; Ludic (self-hosted) -> LLVM IR declare i32 @printf(ptr, ...) declare ptr @malloc(i64) declare ptr @calloc(i64, i64) declare ptr @realloc(ptr, i64) declare void @free(ptr) declare i64 @fread(ptr, i64, i64, ptr) declare i64 @fwrite(ptr, i64, i64, ptr) declare i32 @fclose(ptr) declare ptr @fopen(ptr, ptr) declare i32 @fseek(ptr, i64, i32) declare i64 @ftell(ptr) declare i64 @time(ptr) declare void @exit(i32) declare i32 @system(ptr) declare ptr @getenv(ptr) declare ptr @memcpy(ptr, ptr, i64) declare ptr @memset(ptr, i32, i64) declare i64 @strlen(ptr) declare i32 @strcmp(ptr, ptr) declare i32 @strncmp(ptr, ptr, i64) declare ptr @strstr(ptr, ptr) declare i32 @atoi(ptr) declare i32 @getchar() declare i32 @putchar(i32) declare void @win_open(i32, i32, i32, ptr) declare i32 @win_poll() declare void @win_present(ptr, i32, i32) declare i32 @win_running() declare void @win_close() declare void @win_held(ptr) declare i32 @win_key_char(i32) declare i32 @win_text(ptr, i32) declare void @win_mouse(ptr) declare void @win_pad(ptr) declare void @win_touch(ptr) declare void @win_cursor_mode(i32) declare ptr @snd_load(ptr) declare void @snd_play(ptr, i32, i32, i32) declare void @snd_stop(ptr) declare i32 @snd_playing(ptr) declare void @snd_set_volume(ptr, i32) declare void @snd_set_rate(ptr, i32) declare void @snd_set_pan(ptr, i32) declare ptr @hs_req_new(ptr, ptr) declare void @hs_req_header(ptr, ptr, ptr) declare void @hs_req_body(ptr, ptr, i32) declare void @hs_send(i32, ptr) declare i32 @hs_done(i32) declare i32 @hs_status(i32) declare ptr @hs_body(i32) declare i32 @hs_blen(i32) declare ptr @hs_header(i32, ptr) declare void @hs_free(i32) @__stderrp = external global ptr @__stdoutp = external global ptr @.fmt_int = private unnamed_addr constant [4 x i8] c"%d\0A\00" @.fmt_long = private unnamed_addr constant [6 x i8] c"%lld\0A\00" @.fmt_line = private unnamed_addr constant [4 x i8] c"%s\0A\00" @L_argc = internal global i32 0 @L_argv = internal global ptr null @L_clock = internal global i32 0 @.gametitle = private unnamed_addr constant [9 x i8] c"SelfHost\00" %LSlice = type { ptr, i32, i32 } %Cmp_Buf = type { ptr, i32, i32 } %Cmp_Node = type { i32, ptr, i32, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr, i32 } %Cmp_Tok = type { i32, ptr, i32, i32 } %Cmp_Val = type { ptr, ptr, ptr } @g_toks = internal global ptr null @g_pi = internal global i32 0 @g_prog = internal global ptr null @g_g_game_name = internal global ptr null @g_g_parse_file = internal global ptr null @g_g_float_files = internal global ptr null @g_g_uses_bytes = internal global i32 0 @g_g_trusted_files = internal global ptr null @g_g_unsafe_all = internal global i32 0 @g_g_mod_file = internal global ptr null @g_g_mod_name = internal global ptr null @g_g_mod_friends = internal global ptr null @g_g_parsing = internal global i32 1 @g_g_err_file = internal global ptr null @g_g_err_line = internal global i32 0 @g_g_interp_line = internal global i32 1 @g_loaded_paths = internal global ptr null @g_cur_dir = internal global ptr null @g_g_uses_regex = internal global i32 0 @g_g_uses_bignum = internal global i32 0 @g_g_uses_dict = internal global i32 0 @g_g_uses_numeric = internal global i32 0 @g_g_uses_jobs = internal global i32 0 @g_g_uses_query = internal global i32 0 @g_g_uses_reflect = internal global i32 0 @g_g_uses_light = internal global i32 0 @g_g_uses_value = internal global i32 0 @g_g_uses_rng = internal global i32 0 @g_g_rt_wants = internal global ptr null @g_g_uses_xml = internal global i32 0 @g_g_uses_base64 = internal global i32 0 @g_g_uses_tiled = internal global i32 0 @g_g_uses_atlas = internal global i32 0 @g_g_uses_reflect_io = internal global i32 0 @g_g_uses_esys = internal global i32 0 @g_g_uses_input = internal global i32 0 @g_g_has_clear_color = internal global i32 0 @g_g_clear_color = internal global ptr null @g_g_warned_draw_sprite = internal global i32 0 @g_g_uses_world_despawn = internal global i32 0 @g_g_uses_anim_rt = internal global i32 0 @g_g_uses_tween_rt = internal global i32 0 @g_g_uses_fx = internal global i32 0 @g_g_uses_audio = internal global i32 0 @g_g_uses_http = internal global i32 0 @g_g_uses_udp = internal global i32 0 @g_g_uses_process = internal global i32 0 @g_g_uses_gl = internal global i32 0 @g_g_uses_vk = internal global i32 0 @g_g_mod_sys_fn = internal global ptr null @g_g_mod_sys_phase = internal global ptr null @g_g_esys_comp = internal global ptr null @g_g_esys_fn = internal global ptr null @g_g_esys_phase = internal global ptr null @g_g_namespaces = internal global ptr null @g_g_ns_blocks = internal global ptr null @g_g_ns_exports = internal global ptr null @g_g_disabled_sys = internal global ptr null @g_g_gi_name = internal global ptr null @g_g_gi_gen = internal global ptr null @g_g_gi_args = internal global ptr null @g_g_gi_open = internal global ptr null @g_g_gi_file = internal global ptr null @g_g_gi_line = internal global ptr null @g_g_gen_tps = internal global ptr null @g_g_al_ns = internal global ptr null @g_g_al_meth = internal global ptr null @g_g_al_target = internal global ptr null @g_g_al_labels = internal global ptr null @g_g_al_file = internal global ptr null @g_g_mu_mod = internal global ptr null @g_g_mu_list = internal global ptr null @g_g_mu_file = internal global ptr null @g_g_mu_line = internal global ptr null @g_g_fr_scope = internal global ptr null @g_g_ly_mod = internal global ptr null @g_g_ly_name = internal global ptr null @g_g_pk_file = internal global ptr null @g_g_pk_name = internal global ptr null @g_g_mu_done = internal global ptr null @g_g_pt_name = internal global ptr null @g_g_pt_comp = internal global ptr null @g_g_pt_var = internal global ptr null @g_g_pt_bind = internal global ptr null @g_g_bd = internal global ptr null @g_g_rn_mod = internal global ptr null @g_g_rn_old = internal global ptr null @g_g_rn_new = internal global ptr null @g_g_rn_fn = internal global ptr null @g_g_rt_mod = internal global ptr null @g_g_rt_old = internal global ptr null @g_g_rt_new = internal global ptr null @g_g_re_mod = internal global ptr null @g_g_re_old = internal global ptr null @g_g_re_new = internal global ptr null @g_g_rg_name = internal global ptr null @g_g_rg_type = internal global ptr null @g_g_rg_prefix = internal global ptr null @g_g_rg_var = internal global ptr null @g_g_rg_open = internal global ptr null @g_g_df_reg = internal global ptr null @g_g_df_key = internal global ptr null @g_g_df_rec = internal global ptr null @g_g_res_mode = internal global i32 0 @g_g_vw_name = internal global ptr null @g_g_vw_node = internal global ptr null @g_g_vw_fields = internal global ptr null @g_g_vw_fnames = internal global ptr null @g_g_vw_calls = internal global ptr null @g_g_vw_cnames = internal global ptr null @g_g_vw_helpers = internal global ptr null @g_g_cm_name = internal global ptr null @g_g_cm_file = internal global ptr null @g_g_cm_line = internal global ptr null @g_g_cm_vis = internal global ptr null @g_g_cm_keep = internal global ptr null @g_g_cm_keep_ty = internal global ptr null @g_g_cm_prop = internal global ptr null @g_g_cm_defs = internal global ptr null @g_g_cm_fields = internal global ptr null @g_g_cm_fnames = internal global ptr null @g_g_cm_calls = internal global ptr null @g_g_cm_cnames = internal global ptr null @g_g_cm_head = internal global ptr null @g_head = internal global ptr null @g_code = internal global ptr null @g_falloc = internal global ptr null @g_ll_t = internal global i32 0 @g_ll_lbl = internal global i32 0 @g_ll_str = internal global i32 0 @g_loc_name = internal global ptr null @g_loc_reg = internal global ptr null @g_loc_ty = internal global ptr null @g_loc_mut = internal global ptr null @g_nloc = internal global i32 0 @g_g_emit_module = internal global i32 0 @g_g_uses_str = internal global i32 0 @g_g_uses_intstr = internal global i32 0 @g_g_uses_strslice = internal global i32 0 @g_g_uses_mathrt = internal global i32 0 @g_g_uses_textrt = internal global i32 0 @g_g_uses_textrt2 = internal global i32 0 @g_g_uses_hashrt = internal global i32 0 @g_g_uses_cryptort = internal global i32 0 @g_g_uses_uuidrt = internal global i32 0 @g_g_uses_noisert = internal global i32 0 @g_g_uses_logrt = internal global i32 0 @g_g_uses_osrt = internal global i32 0 @g_g_uses_pid = internal global i32 0 @g_g_uses_unicodert = internal global i32 0 @g_g_uses_fsrt = internal global i32 0 @g_g_uses_pak = internal global i32 0 @g_g_uses_datert = internal global i32 0 @g_g_uses_expect = internal global i32 0 @g_g_uses_panic = internal global i32 0 @g_g_uses_bounds = internal global i32 0 @g_g_fprintf_declared = internal global i32 0 @g_g_bounds = internal global i32 1 @g_g_uses_result = internal global i32 0 @g_g_uses_option = internal global i32 0 @g_g_uses_quit = internal global i32 0 @g_g_tests = internal global ptr null @g_g_src_name = internal global ptr null @g_g_uses_longstr = internal global i32 0 @g_g_coverage = internal global i32 0 @g_g_cov_active = internal global i32 1 @g_g_cov_lines = internal global ptr null @g_g_prog_user_end = internal global i32 0 @g_brk_lbl = internal global ptr null @g_cnt_lbl = internal global ptr null @g_nloop = internal global i32 0 @g_ret_ty = internal global ptr null @g_g_term = internal global i32 0 @g_self_stk = internal global ptr null @g_nself = internal global i32 0 @g_mach_stk = internal global ptr null @g_nmach = internal global i32 0 @g_g_scenes = internal global ptr null @g_g_scene_count = internal global i32 0 @g_g_start_scene = internal global i32 0 @g_g_cur_scene = internal global ptr null @g_g_var_ord = internal global i32 0 @g_g_computed = internal global ptr null @g_g_onspawn = internal global ptr null @g_g_ondespawn = internal global ptr null @g_g_onattach = internal global ptr null @g_g_ondetach = internal global ptr null @g_g_onenable = internal global ptr null @g_g_ondisable = internal global ptr null @g_g_events = internal global ptr null @g_g_onlisten = internal global ptr null @g_g_ret_label = internal global ptr null @g_g_cancel_addr = internal global ptr null @g_g_toggled_layers = internal global ptr null @g_loc_blk = internal global ptr null @g_g_blk_cur = internal global i32 0 @g_g_blk_next = internal global i32 0 @g_g_dp_on = internal global i32 -1 @g_g_dp_key = internal global ptr null @g_g_dp_cnt = internal global ptr null @g_g_dp_name = internal global ptr null @g_g_dp_writes = internal global ptr null @g_g_addr_ty = internal global ptr null @g_g_intrin_ok = internal global i32 0 @g_g_windowed = internal global i32 0 @g_g_target_win = internal global i32 0 @g_g_det_names = internal global ptr null @g_g_det_ctx = internal global ptr null @g_g_warn_promote = internal global i32 -1 @g_g_uses_fpstr = internal global i32 0 @g_g_fp_decls = internal global ptr null @g_g_prevals = internal global ptr null @g_g_uses_expect_fp = internal global i32 0 @g_g_vis_report = internal global i32 -1 @g_g_vis_off = internal global i32 0 @g_ck_fn_k = internal global ptr null @g_ck_fn_v = internal global ptr null @g_ck_gl_k = internal global ptr null @g_ck_gl_v = internal global ptr null @g_ck_rec_k = internal global ptr null @g_ck_rec_v = internal global ptr null @g_ck_en_k = internal global ptr null @g_ck_en_v = internal global ptr null @g_ck_ex_k = internal global ptr null @g_ck_ex_v = internal global ptr null @g_ck_extern_arg = internal global i32 0 @g_ck_names = internal global ptr null @g_ck_tys = internal global ptr null @g_ck_ret = internal global ptr null @g_ck_errors = internal global i32 0 @g_ck_report = internal global i32 -1 @g_ck_top = internal global i32 0 @g_ck_shadow_seen = internal global ptr null @g_g_gen_recs = internal global ptr null @g_g_gen_fns = internal global ptr null @g_g_gen_out = internal global ptr null @g_g_gen_work = internal global ptr null @g_ck_expect = internal global ptr null @g_ck_call_expect = internal global ptr null @g_ck_unsafe = internal global i32 0 @g_g_iok = internal global i32 0 @g_g_snap_mode = internal global ptr null @g_g_off = internal global ptr null @g_g_uses_loopback = internal global i32 0 @g_uiw = internal global ptr null @g_uiw_parent = internal global ptr null @g_ui_roots = internal global ptr null @.str0 = private unnamed_addr constant [3 x i8] c"rb\00" @.str1 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:194: index out of range: \00" @.str2 = private unnamed_addr constant [23 x i8] c"unexpected character '\00" @.str3 = private unnamed_addr constant [9 x i8] c"' (byte \00" @.str4 = private unnamed_addr constant [2 x i8] c")\00" @.str5 = private unnamed_addr constant [2 x i8] c":\00" @.str6 = private unnamed_addr constant [10 x i8] c": error: \00" @.str7 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8 = private unnamed_addr constant [52 x i8] c"unterminated character literal (expected closing ')\00" @.str9 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:468: index out of range: \00" @.str10 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:479: index out of range: \00" @.str11 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:479: index out of range: \00" @.str12 = private unnamed_addr constant [1 x i8] c"\00" @.str13 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:492: index out of range: \00" @.str14 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:501: index out of range: \00" @.str15 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:502: index out of range: \00" @.str16 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:503: index out of range: \00" @.str17 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:504: index out of range: \00" @.str18 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:513: index out of range: \00" @.str19 = private unnamed_addr constant [1 x i8] c"\00" @.str20 = private unnamed_addr constant [2 x i8] c":\00" @.str21 = private unnamed_addr constant [10 x i8] c": error: \00" @.str22 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str23 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:523: index out of range: \00" @.str24 = private unnamed_addr constant [12 x i8] c"end of file\00" @.str25 = private unnamed_addr constant [12 x i8] c"end of line\00" @.str26 = private unnamed_addr constant [8 x i8] c"number \00" @.str27 = private unnamed_addr constant [9 x i8] c"string \22\00" @.str28 = private unnamed_addr constant [2 x i8] c"\22\00" @.str29 = private unnamed_addr constant [2 x i8] c"'\00" @.str30 = private unnamed_addr constant [2 x i8] c"'\00" @.str31 = private unnamed_addr constant [11 x i8] c"expected '\00" @.str32 = private unnamed_addr constant [8 x i8] c"', got \00" @.str33 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:532: index out of range: \00" @.str34 = private unnamed_addr constant [29 x i8] c"expected an identifier, got \00" @.str35 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:537: index out of range: \00" @.str36 = private unnamed_addr constant [7 x i8] c"floats\00" @.str37 = private unnamed_addr constant [8 x i8] c"[]float\00" @.str38 = private unnamed_addr constant [6 x i8] c"words\00" @.str39 = private unnamed_addr constant [6 x i8] c"[]int\00" @.str40 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str41 = private unnamed_addr constant [8 x i8] c"[]fixed\00" @.str42 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str43 = private unnamed_addr constant [9 x i8] c"[]double\00" @.str44 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str45 = private unnamed_addr constant [10 x i8] c"[]pointer\00" @.str46 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:551: index out of range: \00" @.str47 = private unnamed_addr constant [3 x i8] c"fn\00" @.str48 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:551: index out of range: \00" @.str49 = private unnamed_addr constant [2 x i8] c"(\00" @.str50 = private unnamed_addr constant [2 x i8] c"(\00" @.str51 = private unnamed_addr constant [4 x i8] c"fn(\00" @.str52 = private unnamed_addr constant [2 x i8] c")\00" @.str53 = private unnamed_addr constant [2 x i8] c",\00" @.str54 = private unnamed_addr constant [2 x i8] c",\00" @.str55 = private unnamed_addr constant [2 x i8] c")\00" @.str56 = private unnamed_addr constant [5 x i8] c"void\00" @.str57 = private unnamed_addr constant [3 x i8] c"->\00" @.str58 = private unnamed_addr constant [4 x i8] c")->\00" @.str59 = private unnamed_addr constant [2 x i8] c"[\00" @.str60 = private unnamed_addr constant [2 x i8] c"]\00" @.str61 = private unnamed_addr constant [2 x i8] c"<\00" @.str62 = private unnamed_addr constant [2 x i8] c"(\00" @.str63 = private unnamed_addr constant [2 x i8] c")\00" @.str64 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:596: index out of range: \00" @.str65 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:597: index out of range: \00" @.str66 = private unnamed_addr constant [2 x i8] c":\00" @.str67 = private unnamed_addr constant [2 x i8] c":\00" @.str68 = private unnamed_addr constant [2 x i8] c",\00" @.str69 = private unnamed_addr constant [2 x i8] c")\00" @.str70 = private unnamed_addr constant [2 x i8] c"+\00" @.str71 = private unnamed_addr constant [7 x i8] c"string\00" @.str72 = private unnamed_addr constant [2 x i8] c"(\00" @.str73 = private unnamed_addr constant [2 x i8] c")\00" @.str74 = private unnamed_addr constant [2 x i8] c":\00" @.str75 = private unnamed_addr constant [2 x i8] c",\00" @.str76 = private unnamed_addr constant [2 x i8] c")\00" @.str77 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:675: index out of range: \00" @.str78 = private unnamed_addr constant [2 x i8] c"[\00" @.str79 = private unnamed_addr constant [2 x i8] c"]\00" @.str80 = private unnamed_addr constant [2 x i8] c",\00" @.str81 = private unnamed_addr constant [2 x i8] c"]\00" @.str82 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:686: index out of range: \00" @.str83 = private unnamed_addr constant [2 x i8] c"[\00" @.str84 = private unnamed_addr constant [5 x i8] c"emit\00" @.str85 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:689: index out of range: \00" @.str86 = private unnamed_addr constant [5 x i8] c"true\00" @.str87 = private unnamed_addr constant [6 x i8] c"false\00" @.str88 = private unnamed_addr constant [5 x i8] c"null\00" @.str89 = private unnamed_addr constant [4 x i8] c"new\00" @.str90 = private unnamed_addr constant [2 x i8] c"{\00" @.str91 = private unnamed_addr constant [6 x i8] c"spawn\00" @.str92 = private unnamed_addr constant [3 x i8] c"fn\00" @.str93 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:701: index out of range: \00" @.str94 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:701: index out of range: \00" @.str95 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:701: index out of range: \00" @.str96 = private unnamed_addr constant [4 x i8] c"and\00" @.str97 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:701: index out of range: \00" @.str98 = private unnamed_addr constant [3 x i8] c"or\00" @.str99 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:701: index out of range: \00" @.str100 = private unnamed_addr constant [4 x i8] c"not\00" @.str101 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:701: index out of range: \00" @.str102 = private unnamed_addr constant [3 x i8] c"in\00" @.str103 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:701: index out of range: \00" @.str104 = private unnamed_addr constant [3 x i8] c"is\00" @.str105 = private unnamed_addr constant [4 x i8] c"try\00" @.str106 = private unnamed_addr constant [5 x i8] c"else\00" @.str107 = private unnamed_addr constant [37 x i8] c"try needs an `else { ... }` fallback\00" @.str108 = private unnamed_addr constant [8 x i8] c"text_of\00" @.str109 = private unnamed_addr constant [2 x i8] c"(\00" @.str110 = private unnamed_addr constant [2 x i8] c")\00" @.str111 = private unnamed_addr constant [2 x i8] c"{\00" @.str112 = private unnamed_addr constant [20 x i8] c"expected expression\00" @.str113 = private unnamed_addr constant [2 x i8] c".\00" @.str114 = private unnamed_addr constant [6 x i8] c"Regex\00" @.str115 = private unnamed_addr constant [7 x i8] c"Random\00" @.str116 = private unnamed_addr constant [3 x i8] c"Fs\00" @.str117 = private unnamed_addr constant [11 x i8] c"read_bytes\00" @.str118 = private unnamed_addr constant [12 x i8] c"write_bytes\00" @.str119 = private unnamed_addr constant [7 x i8] c"BigInt\00" @.str120 = private unnamed_addr constant [8 x i8] c"Decimal\00" @.str121 = private unnamed_addr constant [5 x i8] c"Dict\00" @.str122 = private unnamed_addr constant [4 x i8] c"Set\00" @.str123 = private unnamed_addr constant [5 x i8] c"Huge\00" @.str124 = private unnamed_addr constant [6 x i8] c"Angle\00" @.str125 = private unnamed_addr constant [8 x i8] c"Percent\00" @.str126 = private unnamed_addr constant [4 x i8] c"Job\00" @.str127 = private unnamed_addr constant [8 x i8] c"Promise\00" @.str128 = private unnamed_addr constant [5 x i8] c"Sync\00" @.str129 = private unnamed_addr constant [6 x i8] c"Query\00" @.str130 = private unnamed_addr constant [8 x i8] c"Reflect\00" @.str131 = private unnamed_addr constant [6 x i8] c"Light\00" @.str132 = private unnamed_addr constant [6 x i8] c"Value\00" @.str133 = private unnamed_addr constant [5 x i8] c"Json\00" @.str134 = private unnamed_addr constant [4 x i8] c"Xml\00" @.str135 = private unnamed_addr constant [7 x i8] c"Base64\00" @.str136 = private unnamed_addr constant [6 x i8] c"Tiled\00" @.str137 = private unnamed_addr constant [7 x i8] c"Sprite\00" @.str138 = private unnamed_addr constant [6 x i8] c"sheet\00" @.str139 = private unnamed_addr constant [5 x i8] c"cell\00" @.str140 = private unnamed_addr constant [10 x i8] c"cell_span\00" @.str141 = private unnamed_addr constant [7 x i8] c"define\00" @.str142 = private unnamed_addr constant [6 x i8] c"named\00" @.str143 = private unnamed_addr constant [5 x i8] c"draw\00" @.str144 = private unnamed_addr constant [12 x i8] c"draw_scaled\00" @.str145 = private unnamed_addr constant [6 x i8] c"width\00" @.str146 = private unnamed_addr constant [7 x i8] c"height\00" @.str147 = private unnamed_addr constant [7 x i8] c"Assets\00" @.str148 = private unnamed_addr constant [8 x i8] c"Reflect\00" @.str149 = private unnamed_addr constant [10 x i8] c"serialize\00" @.str150 = private unnamed_addr constant [6 x i8] c"apply\00" @.str151 = private unnamed_addr constant [6 x i8] c"Input\00" @.str152 = private unnamed_addr constant [5 x i8] c"bind\00" @.str153 = private unnamed_addr constant [7 x i8] c"rebind\00" @.str154 = private unnamed_addr constant [5 x i8] c"poll\00" @.str155 = private unnamed_addr constant [5 x i8] c"down\00" @.str156 = private unnamed_addr constant [8 x i8] c"pressed\00" @.str157 = private unnamed_addr constant [7 x i8] c"record\00" @.str158 = private unnamed_addr constant [7 x i8] c"replay\00" @.str159 = private unnamed_addr constant [7 x i8] c"action\00" @.str160 = private unnamed_addr constant [9 x i8] c"bind_pad\00" @.str161 = private unnamed_addr constant [7 x i8] c"active\00" @.str162 = private unnamed_addr constant [13 x i8] c"just_pressed\00" @.str163 = private unnamed_addr constant [14 x i8] c"just_released\00" @.str164 = private unnamed_addr constant [6 x i8] c"Input\00" @.str165 = private unnamed_addr constant [9 x i8] c"key_down\00" @.str166 = private unnamed_addr constant [12 x i8] c"key_pressed\00" @.str167 = private unnamed_addr constant [13 x i8] c"key_released\00" @.str168 = private unnamed_addr constant [10 x i8] c"key_label\00" @.str169 = private unnamed_addr constant [6 x i8] c"press\00" @.str170 = private unnamed_addr constant [8 x i8] c"release\00" @.str171 = private unnamed_addr constant [5 x i8] c"axis\00" @.str172 = private unnamed_addr constant [7 x i8] c"axis_i\00" @.str173 = private unnamed_addr constant [7 x i8] c"vector\00" @.str174 = private unnamed_addr constant [9 x i8] c"strength\00" @.str175 = private unnamed_addr constant [8 x i8] c"mouse_x\00" @.str176 = private unnamed_addr constant [8 x i8] c"mouse_y\00" @.str177 = private unnamed_addr constant [9 x i8] c"mouse_dx\00" @.str178 = private unnamed_addr constant [9 x i8] c"mouse_dy\00" @.str179 = private unnamed_addr constant [11 x i8] c"mouse_down\00" @.str180 = private unnamed_addr constant [6 x i8] c"wheel\00" @.str181 = private unnamed_addr constant [10 x i8] c"set_mouse\00" @.str182 = private unnamed_addr constant [14 x i8] c"pad_connected\00" @.str183 = private unnamed_addr constant [11 x i8] c"pad_button\00" @.str184 = private unnamed_addr constant [9 x i8] c"pad_axis\00" @.str185 = private unnamed_addr constant [7 x i8] c"move_i\00" @.str186 = private unnamed_addr constant [8 x i8] c"set_pad\00" @.str187 = private unnamed_addr constant [12 x i8] c"touch_count\00" @.str188 = private unnamed_addr constant [8 x i8] c"touch_x\00" @.str189 = private unnamed_addr constant [8 x i8] c"touch_y\00" @.str190 = private unnamed_addr constant [10 x i8] c"set_touch\00" @.str191 = private unnamed_addr constant [12 x i8] c"cursor_mode\00" @.str192 = private unnamed_addr constant [5 x i8] c"Anim\00" @.str193 = private unnamed_addr constant [5 x i8] c"play\00" @.str194 = private unnamed_addr constant [5 x i8] c"clip\00" @.str195 = private unnamed_addr constant [9 x i8] c"on_frame\00" @.str196 = private unnamed_addr constant [6 x i8] c"fired\00" @.str197 = private unnamed_addr constant [7 x i8] c"Motion\00" @.str198 = private unnamed_addr constant [3 x i8] c"to\00" @.str199 = private unnamed_addr constant [6 x i8] c"Audio\00" @.str200 = private unnamed_addr constant [5 x i8] c"Http\00" @.str201 = private unnamed_addr constant [4 x i8] c"Udp\00" @.str202 = private unnamed_addr constant [8 x i8] c"Process\00" @.str203 = private unnamed_addr constant [3 x i8] c"Gl\00" @.str204 = private unnamed_addr constant [3 x i8] c"Vk\00" @.str205 = private unnamed_addr constant [6 x i8] c"Tween\00" @.str206 = private unnamed_addr constant [3 x i8] c"to\00" @.str207 = private unnamed_addr constant [6 x i8] c"chain\00" @.str208 = private unnamed_addr constant [6 x i8] c"delay\00" @.str209 = private unnamed_addr constant [6 x i8] c"value\00" @.str210 = private unnamed_addr constant [5 x i8] c"stop\00" @.str211 = private unnamed_addr constant [9 x i8] c"parallel\00" @.str212 = private unnamed_addr constant [3 x i8] c"Fx\00" @.str213 = private unnamed_addr constant [2 x i8] c"[\00" @.str214 = private unnamed_addr constant [3 x i8] c"..\00" @.str215 = private unnamed_addr constant [2 x i8] c"]\00" @.str216 = private unnamed_addr constant [2 x i8] c"]\00" @.str217 = private unnamed_addr constant [2 x i8] c"(\00" @.str218 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:780: index out of range: \00" @.str219 = private unnamed_addr constant [12 x i8] c"draw_sprite\00" @.str220 = private unnamed_addr constant [19 x i8] c"draw_sprite_scaled\00" @.str221 = private unnamed_addr constant [2 x i8] c"-\00" @.str222 = private unnamed_addr constant [2 x i8] c"-\00" @.str223 = private unnamed_addr constant [2 x i8] c"~\00" @.str224 = private unnamed_addr constant [2 x i8] c"~\00" @.str225 = private unnamed_addr constant [4 x i8] c"not\00" @.str226 = private unnamed_addr constant [4 x i8] c"not\00" @.str227 = private unnamed_addr constant [2 x i8] c"*\00" @.str228 = private unnamed_addr constant [2 x i8] c"/\00" @.str229 = private unnamed_addr constant [2 x i8] c"%\00" @.str230 = private unnamed_addr constant [3 x i8] c"<<\00" @.str231 = private unnamed_addr constant [3 x i8] c">>\00" @.str232 = private unnamed_addr constant [2 x i8] c"&\00" @.str233 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:803: index out of range: \00" @.str234 = private unnamed_addr constant [2 x i8] c"+\00" @.str235 = private unnamed_addr constant [2 x i8] c"-\00" @.str236 = private unnamed_addr constant [2 x i8] c"|\00" @.str237 = private unnamed_addr constant [2 x i8] c"^\00" @.str238 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:809: index out of range: \00" @.str239 = private unnamed_addr constant [2 x i8] c"<\00" @.str240 = private unnamed_addr constant [3 x i8] c"<=\00" @.str241 = private unnamed_addr constant [2 x i8] c">\00" @.str242 = private unnamed_addr constant [3 x i8] c">=\00" @.str243 = private unnamed_addr constant [3 x i8] c"==\00" @.str244 = private unnamed_addr constant [3 x i8] c"!=\00" @.str245 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:815: index out of range: \00" @.str246 = private unnamed_addr constant [4 x i8] c"and\00" @.str247 = private unnamed_addr constant [4 x i8] c"and\00" @.str248 = private unnamed_addr constant [3 x i8] c"or\00" @.str249 = private unnamed_addr constant [3 x i8] c"or\00" @.str250 = private unnamed_addr constant [2 x i8] c"{\00" @.str251 = private unnamed_addr constant [2 x i8] c"}\00" @.str252 = private unnamed_addr constant [2 x i8] c":\00" @.str253 = private unnamed_addr constant [2 x i8] c",\00" @.str254 = private unnamed_addr constant [2 x i8] c"}\00" @.str255 = private unnamed_addr constant [2 x i8] c"{\00" @.str256 = private unnamed_addr constant [2 x i8] c"}\00" @.str257 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:850: index out of range: \00" @.str258 = private unnamed_addr constant [2 x i8] c"}\00" @.str259 = private unnamed_addr constant [43 x i8] c"expected newline or ';' between statements\00" @.str260 = private unnamed_addr constant [2 x i8] c"}\00" @.str261 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:862: index out of range: \00" @.str262 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:869: index out of range: \00" @.str263 = private unnamed_addr constant [4 x i8] c"let\00" @.str264 = private unnamed_addr constant [4 x i8] c"var\00" @.str265 = private unnamed_addr constant [4 x i8] c"var\00" @.str266 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:873: index out of range: \00" @.str267 = private unnamed_addr constant [2 x i8] c":\00" @.str268 = private unnamed_addr constant [2 x i8] c"=\00" @.str269 = private unnamed_addr constant [7 x i8] c"return\00" @.str270 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:880: index out of range: \00" @.str271 = private unnamed_addr constant [2 x i8] c"}\00" @.str272 = private unnamed_addr constant [3 x i8] c"if\00" @.str273 = private unnamed_addr constant [5 x i8] c"else\00" @.str274 = private unnamed_addr constant [3 x i8] c"if\00" @.str275 = private unnamed_addr constant [6 x i8] c"while\00" @.str276 = private unnamed_addr constant [4 x i8] c"for\00" @.str277 = private unnamed_addr constant [2 x i8] c"(\00" @.str278 = private unnamed_addr constant [3 x i8] c"..\00" @.str279 = private unnamed_addr constant [6 x i8] c"spawn\00" @.str280 = private unnamed_addr constant [8 x i8] c"machine\00" @.str281 = private unnamed_addr constant [2 x i8] c"{\00" @.str282 = private unnamed_addr constant [2 x i8] c"}\00" @.str283 = private unnamed_addr constant [2 x i8] c"=\00" @.str284 = private unnamed_addr constant [2 x i8] c"}\00" @.str285 = private unnamed_addr constant [5 x i8] c"emit\00" @.str286 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:916: index out of range: \00" @.str287 = private unnamed_addr constant [7 x i8] c"become\00" @.str288 = private unnamed_addr constant [8 x i8] c"despawn\00" @.str289 = private unnamed_addr constant [7 x i8] c"enable\00" @.str290 = private unnamed_addr constant [8 x i8] c"disable\00" @.str291 = private unnamed_addr constant [7 x i8] c"enable\00" @.str292 = private unnamed_addr constant [6 x i8] c"layer\00" @.str293 = private unnamed_addr constant [6 x i8] c"layer\00" @.str294 = private unnamed_addr constant [7 x i8] c"system\00" @.str295 = private unnamed_addr constant [7 x i8] c"system\00" @.str296 = private unnamed_addr constant [3 x i8] c"on\00" @.str297 = private unnamed_addr constant [7 x i8] c"attach\00" @.str298 = private unnamed_addr constant [3 x i8] c"on\00" @.str299 = private unnamed_addr constant [27 x i8] c"attach needs 'on '\00" @.str300 = private unnamed_addr constant [2 x i8] c"{\00" @.str301 = private unnamed_addr constant [7 x i8] c"detach\00" @.str302 = private unnamed_addr constant [3 x i8] c"on\00" @.str303 = private unnamed_addr constant [27 x i8] c"detach needs 'on '\00" @.str304 = private unnamed_addr constant [7 x i8] c"unsafe\00" @.str305 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:941: index out of range: \00" @.str306 = private unnamed_addr constant [2 x i8] c"{\00" @.str307 = private unnamed_addr constant [6 x i8] c"break\00" @.str308 = private unnamed_addr constant [9 x i8] c"continue\00" @.str309 = private unnamed_addr constant [7 x i8] c"cancel\00" @.str310 = private unnamed_addr constant [6 x i8] c"match\00" @.str311 = private unnamed_addr constant [2 x i8] c"{\00" @.str312 = private unnamed_addr constant [2 x i8] c"}\00" @.str313 = private unnamed_addr constant [2 x i8] c",\00" @.str314 = private unnamed_addr constant [3 x i8] c"=>\00" @.str315 = private unnamed_addr constant [2 x i8] c"{\00" @.str316 = private unnamed_addr constant [2 x i8] c"}\00" @.str317 = private unnamed_addr constant [2 x i8] c"=\00" @.str318 = private unnamed_addr constant [3 x i8] c"+=\00" @.str319 = private unnamed_addr constant [3 x i8] c"-=\00" @.str320 = private unnamed_addr constant [3 x i8] c"*=\00" @.str321 = private unnamed_addr constant [3 x i8] c"/=\00" @.str322 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:965: index out of range: \00" @.str323 = private unnamed_addr constant [53 x i8] c"build/cfree/selfhost.ludic:965: index out of range: \00" @.str324 = private unnamed_addr constant [2 x i8] c":\00" @.str325 = private unnamed_addr constant [2 x i8] c"=\00" @.str326 = private unnamed_addr constant [2 x i8] c":\00" @.str327 = private unnamed_addr constant [2 x i8] c"=\00" @.str328 = private unnamed_addr constant [4 x i8] c"new\00" @.str329 = private unnamed_addr constant [6 x i8] c"match\00" @.str330 = private unnamed_addr constant [8 x i8] c"machine\00" @.str331 = private unnamed_addr constant [7 x i8] c"become\00" @.str332 = private unnamed_addr constant [6 x i8] c"spawn\00" @.str333 = private unnamed_addr constant [8 x i8] c"despawn\00" @.str334 = private unnamed_addr constant [6 x i8] c"query\00" @.str335 = private unnamed_addr constant [7 x i8] c"cancel\00" @.str336 = private unnamed_addr constant [6 x i8] c"scene\00" @.str337 = private unnamed_addr constant [6 x i8] c"layer\00" @.str338 = private unnamed_addr constant [8 x i8] c"handler\00" @.str339 = private unnamed_addr constant [9 x i8] c"property\00" @.str340 = private unnamed_addr constant [6 x i8] c"model\00" @.str341 = private unnamed_addr constant [5 x i8] c"enum\00" @.str342 = private unnamed_addr constant [6 x i8] c"event\00" @.str343 = private unnamed_addr constant [10 x i8] c"namespace\00" @.str344 = private unnamed_addr constant [9 x i8] c"function\00" @.str345 = private unnamed_addr constant [4 x i8] c"let\00" @.str346 = private unnamed_addr constant [7 x i8] c"prefab\00" @.str347 = private unnamed_addr constant [4 x i8] c"var\00" @.str348 = private unnamed_addr constant [6 x i8] c"const\00" @.str349 = private unnamed_addr constant [3 x i8] c"if\00" @.str350 = private unnamed_addr constant [5 x i8] c"else\00" @.str351 = private unnamed_addr constant [6 x i8] c"while\00" @.str352 = private unnamed_addr constant [4 x i8] c"for\00" @.str353 = private unnamed_addr constant [7 x i8] c"return\00" @.str354 = private unnamed_addr constant [7 x i8] c"import\00" @.str355 = private unnamed_addr constant [8 x i8] c"program\00" @.str356 = private unnamed_addr constant [6 x i8] c"entry\00" @.str357 = private unnamed_addr constant [3 x i8] c"ui\00" @.str358 = private unnamed_addr constant [6 x i8] c"break\00" @.str359 = private unnamed_addr constant [9 x i8] c"continue\00" @.str360 = private unnamed_addr constant [4 x i8] c"and\00" @.str361 = private unnamed_addr constant [3 x i8] c"or\00" @.str362 = private unnamed_addr constant [4 x i8] c"not\00" @.str363 = private unnamed_addr constant [5 x i8] c"true\00" @.str364 = private unnamed_addr constant [6 x i8] c"false\00" @.str365 = private unnamed_addr constant [5 x i8] c"null\00" @.str366 = private unnamed_addr constant [2 x i8] c"<\00" @.str367 = private unnamed_addr constant [2 x i8] c"(\00" @.str368 = private unnamed_addr constant [2 x i8] c"'\00" @.str369 = private unnamed_addr constant [48 x i8] c"' is a reserved word and cannot name a function\00" @.str370 = private unnamed_addr constant [2 x i8] c")\00" @.str371 = private unnamed_addr constant [2 x i8] c":\00" @.str372 = private unnamed_addr constant [2 x i8] c"=\00" @.str373 = private unnamed_addr constant [2 x i8] c",\00" @.str374 = private unnamed_addr constant [2 x i8] c")\00" @.str375 = private unnamed_addr constant [5 x i8] c"void\00" @.str376 = private unnamed_addr constant [3 x i8] c"->\00" @.str377 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1022: index out of range: \00" @.str378 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1034: index out of range: \00" @.str379 = private unnamed_addr constant [2 x i8] c"{\00" @.str380 = private unnamed_addr constant [2 x i8] c"}\00" @.str381 = private unnamed_addr constant [7 x i8] c"export\00" @.str382 = private unnamed_addr constant [9 x i8] c"internal\00" @.str383 = private unnamed_addr constant [6 x i8] c"alias\00" @.str384 = private unnamed_addr constant [9 x i8] c"function\00" @.str385 = private unnamed_addr constant [76 x i8] c"a namespace body holds functions or aliases: expected `function` or `alias`\00" @.str386 = private unnamed_addr constant [2 x i8] c"}\00" @.str387 = private unnamed_addr constant [2 x i8] c"_\00" @.str388 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1068: index out of range: \00" @.str389 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1068: index out of range: \00" @.str390 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1070: index out of range: \00" @.str391 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1075: index out of range: \00" @.str392 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1075: index out of range: \00" @.str393 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1076: index out of range: \00" @.str394 = private unnamed_addr constant [3 x i8] c"OS\00" @.str395 = private unnamed_addr constant [11 x i8] c"Windows_NT\00" @.str396 = private unnamed_addr constant [1 x i8] c"\00" @.str397 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00" @.str398 = private unnamed_addr constant [1 x i8] c"\00" @.str399 = private unnamed_addr constant [5 x i8] c"bin/\00" @.str400 = private unnamed_addr constant [5 x i8] c"PATH\00" @.str401 = private unnamed_addr constant [1 x i8] c"\00" @.str402 = private unnamed_addr constant [3 x i8] c"rb\00" @.str403 = private unnamed_addr constant [5 x i8] c".exe\00" @.str404 = private unnamed_addr constant [3 x i8] c"rb\00" @.str405 = private unnamed_addr constant [1 x i8] c"\00" @.str406 = private unnamed_addr constant [23 x i8] c"ludicc: warning: bare \00" @.str407 = private unnamed_addr constant [139 x i8] c"(...) is deprecated (#85) \E2\80\94 use Screen.sprite / Screen.sprite_scaled, or declare a Sprite component for the engine sprite-render system\0A\00" @.str408 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1240: index out of range: \00" @.str409 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1245: index out of range: \00" @.str410 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1258: index out of range: \00" @.str411 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1267: index out of range: \00" @.str412 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1272: index out of range: \00" @.str413 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1278: index out of range: \00" @.str414 = private unnamed_addr constant [2 x i8] c"@\00" @.str415 = private unnamed_addr constant [7 x i8] c"export\00" @.str416 = private unnamed_addr constant [7 x i8] c"Public\00" @.str417 = private unnamed_addr constant [3 x i8] c"On\00" @.str418 = private unnamed_addr constant [2 x i8] c"(\00" @.str419 = private unnamed_addr constant [2 x i8] c")\00" @.str420 = private unnamed_addr constant [8 x i8] c"Queries\00" @.str421 = private unnamed_addr constant [8 x i8] c"OnSpawn\00" @.str422 = private unnamed_addr constant [2 x i8] c"(\00" @.str423 = private unnamed_addr constant [2 x i8] c")\00" @.str424 = private unnamed_addr constant [10 x i8] c"OnDespawn\00" @.str425 = private unnamed_addr constant [2 x i8] c"(\00" @.str426 = private unnamed_addr constant [2 x i8] c",\00" @.str427 = private unnamed_addr constant [2 x i8] c":\00" @.str428 = private unnamed_addr constant [2 x i8] c")\00" @.str429 = private unnamed_addr constant [9 x i8] c"OnAttach\00" @.str430 = private unnamed_addr constant [2 x i8] c"(\00" @.str431 = private unnamed_addr constant [2 x i8] c")\00" @.str432 = private unnamed_addr constant [9 x i8] c"OnDetach\00" @.str433 = private unnamed_addr constant [2 x i8] c"(\00" @.str434 = private unnamed_addr constant [2 x i8] c")\00" @.str435 = private unnamed_addr constant [9 x i8] c"OnEnable\00" @.str436 = private unnamed_addr constant [2 x i8] c"(\00" @.str437 = private unnamed_addr constant [2 x i8] c")\00" @.str438 = private unnamed_addr constant [10 x i8] c"OnDisable\00" @.str439 = private unnamed_addr constant [2 x i8] c"(\00" @.str440 = private unnamed_addr constant [2 x i8] c")\00" @.str441 = private unnamed_addr constant [8 x i8] c"OnStart\00" @.str442 = private unnamed_addr constant [6 x i8] c"Start\00" @.str443 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str444 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str445 = private unnamed_addr constant [5 x i8] c"Sync\00" @.str446 = private unnamed_addr constant [6 x i8] c"Owned\00" @.str447 = private unnamed_addr constant [7 x i8] c"Server\00" @.str448 = private unnamed_addr constant [7 x i8] c"server\00" @.str449 = private unnamed_addr constant [10 x i8] c"Predicted\00" @.str450 = private unnamed_addr constant [10 x i8] c"predicted\00" @.str451 = private unnamed_addr constant [9 x i8] c"ToServer\00" @.str452 = private unnamed_addr constant [9 x i8] c"toserver\00" @.str453 = private unnamed_addr constant [10 x i8] c"ToClients\00" @.str454 = private unnamed_addr constant [10 x i8] c"toclients\00" @.str455 = private unnamed_addr constant [7 x i8] c"System\00" @.str456 = private unnamed_addr constant [7 x i8] c"Update\00" @.str457 = private unnamed_addr constant [2 x i8] c"(\00" @.str458 = private unnamed_addr constant [2 x i8] c")\00" @.str459 = private unnamed_addr constant [13 x i8] c"EngineSystem\00" @.str460 = private unnamed_addr constant [2 x i8] c"(\00" @.str461 = private unnamed_addr constant [2 x i8] c",\00" @.str462 = private unnamed_addr constant [2 x i8] c")\00" @.str463 = private unnamed_addr constant [10 x i8] c"Namespace\00" @.str464 = private unnamed_addr constant [2 x i8] c"(\00" @.str465 = private unnamed_addr constant [2 x i8] c")\00" @.str466 = private unnamed_addr constant [14 x i8] c"deterministic\00" @.str467 = private unnamed_addr constant [11 x i8] c"ClearColor\00" @.str468 = private unnamed_addr constant [2 x i8] c"(\00" @.str469 = private unnamed_addr constant [2 x i8] c")\00" @.str470 = private unnamed_addr constant [2 x i8] c"(\00" @.str471 = private unnamed_addr constant [2 x i8] c"(\00" @.str472 = private unnamed_addr constant [2 x i8] c")\00" @.str473 = private unnamed_addr constant [7 x i8] c"friend\00" @.str474 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1347: index out of range: \00" @.str475 = private unnamed_addr constant [7 x i8] c"module\00" @.str476 = private unnamed_addr constant [7 x i8] c"module\00" @.str477 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1351: index out of range: \00" @.str478 = private unnamed_addr constant [7 x i8] c"export\00" @.str479 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1356: index out of range: \00" @.str480 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1363: index out of range: \00" @.str481 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1368: index out of range: \00" @.str482 = private unnamed_addr constant [8 x i8] c"numbers\00" @.str483 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1373: index out of range: \00" @.str484 = private unnamed_addr constant [6 x i8] c"float\00" @.str485 = private unnamed_addr constant [7 x i8] c"import\00" @.str486 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1379: index out of range: \00" @.str487 = private unnamed_addr constant [29 x i8] c"expected \22path\22 after import\00" @.str488 = private unnamed_addr constant [5 x i8] c"enum\00" @.str489 = private unnamed_addr constant [6 x i8] c"event\00" @.str490 = private unnamed_addr constant [9 x i8] c"property\00" @.str491 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1393: index out of range: \00" @.str492 = private unnamed_addr constant [6 x i8] c"model\00" @.str493 = private unnamed_addr constant [6 x i8] c"scene\00" @.str494 = private unnamed_addr constant [7 x i8] c"prefab\00" @.str495 = private unnamed_addr constant [8 x i8] c"handler\00" @.str496 = private unnamed_addr constant [7 x i8] c"server\00" @.str497 = private unnamed_addr constant [7 x i8] c"model_\00" @.str498 = private unnamed_addr constant [7 x i8] c"_spawn\00" @.str499 = private unnamed_addr constant [7 x i8] c"model_\00" @.str500 = private unnamed_addr constant [9 x i8] c"_despawn\00" @.str501 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str502 = private unnamed_addr constant [8 x i8] c"_attach\00" @.str503 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str504 = private unnamed_addr constant [8 x i8] c"_detach\00" @.str505 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str506 = private unnamed_addr constant [8 x i8] c"_enable\00" @.str507 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str508 = private unnamed_addr constant [9 x i8] c"_disable\00" @.str509 = private unnamed_addr constant [6 x i8] c"Start\00" @.str510 = private unnamed_addr constant [14 x i8] c"program_start\00" @.str511 = private unnamed_addr constant [13 x i8] c"program_quit\00" @.str512 = private unnamed_addr constant [3 x i8] c"ui\00" @.str513 = private unnamed_addr constant [10 x i8] c"namespace\00" @.str514 = private unnamed_addr constant [5 x i8] c"port\00" @.str515 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1437: index out of range: \00" @.str516 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1437: index out of range: \00" @.str517 = private unnamed_addr constant [2 x i8] c"{\00" @.str518 = private unnamed_addr constant [5 x i8] c"bind\00" @.str519 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1438: index out of range: \00" @.str520 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1438: index out of range: \00" @.str521 = private unnamed_addr constant [2 x i8] c"{\00" @.str522 = private unnamed_addr constant [5 x i8] c"open\00" @.str523 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1439: index out of range: \00" @.str524 = private unnamed_addr constant [9 x i8] c"registry\00" @.str525 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1442: index out of range: \00" @.str526 = private unnamed_addr constant [9 x i8] c"registry\00" @.str527 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1445: index out of range: \00" @.str528 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1445: index out of range: \00" @.str529 = private unnamed_addr constant [3 x i8] c"of\00" @.str530 = private unnamed_addr constant [4 x i8] c"def\00" @.str531 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1446: index out of range: \00" @.str532 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1446: index out of range: \00" @.str533 = private unnamed_addr constant [5 x i8] c"view\00" @.str534 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1447: index out of range: \00" @.str535 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1447: index out of range: \00" @.str536 = private unnamed_addr constant [2 x i8] c"{\00" @.str537 = private unnamed_addr constant [10 x i8] c"component\00" @.str538 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1448: index out of range: \00" @.str539 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1448: index out of range: \00" @.str540 = private unnamed_addr constant [2 x i8] c"{\00" @.str541 = private unnamed_addr constant [4 x i8] c"var\00" @.str542 = private unnamed_addr constant [6 x i8] c"const\00" @.str543 = private unnamed_addr constant [7 x i8] c"unsafe\00" @.str544 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1452: index out of range: \00" @.str545 = private unnamed_addr constant [9 x i8] c"function\00" @.str546 = private unnamed_addr constant [9 x i8] c"function\00" @.str547 = private unnamed_addr constant [7 x i8] c"extern\00" @.str548 = private unnamed_addr constant [6 x i8] c"entry\00" @.str549 = private unnamed_addr constant [5 x i8] c"test\00" @.str550 = private unnamed_addr constant [71 x i8] c"expected a declaration (property, model, handler, function, \E2\80\A6), got \00" @.str551 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1476: index out of range: \00" @.str552 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1478: index out of range: \00" @.str553 = private unnamed_addr constant [36 x i8] c"expected a \22name\22 string after test\00" @.str554 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1480: index out of range: \00" @.str555 = private unnamed_addr constant [9 x i8] c"runtime/\00" @.str556 = private unnamed_addr constant [22 x i8] c"import: no directory \00" @.str557 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1522: index out of range: \00" @.str558 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1522: index out of range: \00" @.str559 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1523: index out of range: \00" @.str560 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1523: index out of range: \00" @.str561 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1523: index out of range: \00" @.str562 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1523: index out of range: \00" @.str563 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1528: index out of range: \00" @.str564 = private unnamed_addr constant [7 x i8] c".ludic\00" @.str565 = private unnamed_addr constant [2 x i8] c"/\00" @.str566 = private unnamed_addr constant [7 x i8] c".ludic\00" @.str567 = private unnamed_addr constant [1 x i8] c"\00" @.str568 = private unnamed_addr constant [12 x i8] c"index.ludic\00" @.str569 = private unnamed_addr constant [13 x i8] c"/index.ludic\00" @.str570 = private unnamed_addr constant [9 x i8] c"/*.ludic\00" @.str571 = private unnamed_addr constant [1 x i8] c"\00" @.str572 = private unnamed_addr constant [9 x i8] c"import: \00" @.str573 = private unnamed_addr constant [42 x i8] c" is a directory with no index.ludic (add \00" @.str574 = private unnamed_addr constant [22 x i8] c" listing its imports)\00" @.str575 = private unnamed_addr constant [14 x i8] c"LUDIC_MODULES\00" @.str576 = private unnamed_addr constant [14 x i8] c"ludic_modules\00" @.str577 = private unnamed_addr constant [10 x i8] c"packages/\00" @.str578 = private unnamed_addr constant [1 x i8] c"\00" @.str579 = private unnamed_addr constant [1 x i8] c"\00" @.str580 = private unnamed_addr constant [20 x i8] c"cannot open import \00" @.str581 = private unnamed_addr constant [27 x i8] c"runtime/native/audio.ludic\00" @.str582 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1606: index out of range: \00" @.str583 = private unnamed_addr constant [5 x i8] c"seed\00" @.str584 = private unnamed_addr constant [5 x i8] c"rng_\00" @.str585 = private unnamed_addr constant [7 x i8] c"value_\00" @.str586 = private unnamed_addr constant [6 x i8] c"json_\00" @.str587 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1623: index out of range: \00" @.str588 = private unnamed_addr constant [1 x i8] c"\00" @.str589 = private unnamed_addr constant [32 x i8] c"runtime/native/namespaces.ludic\00" @.str590 = private unnamed_addr constant [27 x i8] c"runtime/native/bytes.ludic\00" @.str591 = private unnamed_addr constant [5 x i8] c"rng_\00" @.str592 = private unnamed_addr constant [5 x i8] c"seed\00" @.str593 = private unnamed_addr constant [1 x i8] c"\00" @.str594 = private unnamed_addr constant [25 x i8] c"runtime/native/rng.ludic\00" @.str595 = private unnamed_addr constant [1 x i8] c"\00" @.str596 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str597 = private unnamed_addr constant [1 x i8] c"\00" @.str598 = private unnamed_addr constant [27 x i8] c"runtime/native/regex.ludic\00" @.str599 = private unnamed_addr constant [30 x i8] c"runtime/native/regex_vm.ludic\00" @.str600 = private unnamed_addr constant [1 x i8] c"\00" @.str601 = private unnamed_addr constant [28 x i8] c"runtime/native/bignum.ludic\00" @.str602 = private unnamed_addr constant [1 x i8] c"\00" @.str603 = private unnamed_addr constant [26 x i8] c"runtime/native/dict.ludic\00" @.str604 = private unnamed_addr constant [1 x i8] c"\00" @.str605 = private unnamed_addr constant [29 x i8] c"runtime/native/numeric.ludic\00" @.str606 = private unnamed_addr constant [1 x i8] c"\00" @.str607 = private unnamed_addr constant [26 x i8] c"runtime/native/jobs.ludic\00" @.str608 = private unnamed_addr constant [1 x i8] c"\00" @.str609 = private unnamed_addr constant [27 x i8] c"runtime/native/query.ludic\00" @.str610 = private unnamed_addr constant [1 x i8] c"\00" @.str611 = private unnamed_addr constant [27 x i8] c"runtime/native/light.ludic\00" @.str612 = private unnamed_addr constant [7 x i8] c"value_\00" @.str613 = private unnamed_addr constant [6 x i8] c"json_\00" @.str614 = private unnamed_addr constant [1 x i8] c"\00" @.str615 = private unnamed_addr constant [27 x i8] c"runtime/native/value.ludic\00" @.str616 = private unnamed_addr constant [1 x i8] c"\00" @.str617 = private unnamed_addr constant [25 x i8] c"runtime/native/xml.ludic\00" @.str618 = private unnamed_addr constant [1 x i8] c"\00" @.str619 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str620 = private unnamed_addr constant [27 x i8] c"runtime/native/audio.ludic\00" @.str621 = private unnamed_addr constant [27 x i8] c"runtime/native/atlas.ludic\00" @.str622 = private unnamed_addr constant [1 x i8] c"\00" @.str623 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str624 = private unnamed_addr constant [24 x i8] c"runtime/native/fx.ludic\00" @.str625 = private unnamed_addr constant [1 x i8] c"\00" @.str626 = private unnamed_addr constant [29 x i8] c"runtime/native/inflate.ludic\00" @.str627 = private unnamed_addr constant [26 x i8] c"runtime/native/zstd.ludic\00" @.str628 = private unnamed_addr constant [28 x i8] c"runtime/native/base64.ludic\00" @.str629 = private unnamed_addr constant [1 x i8] c"\00" @.str630 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str631 = private unnamed_addr constant [25 x i8] c"runtime/native/xml.ludic\00" @.str632 = private unnamed_addr constant [29 x i8] c"runtime/native/inflate.ludic\00" @.str633 = private unnamed_addr constant [26 x i8] c"runtime/native/zstd.ludic\00" @.str634 = private unnamed_addr constant [28 x i8] c"runtime/native/base64.ludic\00" @.str635 = private unnamed_addr constant [27 x i8] c"runtime/native/value.ludic\00" @.str636 = private unnamed_addr constant [27 x i8] c"runtime/native/tiled.ludic\00" @.str637 = private unnamed_addr constant [33 x i8] c"runtime/native/tiled_spawn.ludic\00" @.str638 = private unnamed_addr constant [1 x i8] c"\00" @.str639 = private unnamed_addr constant [32 x i8] c"runtime/native/reflect_io.ludic\00" @.str640 = private unnamed_addr constant [1 x i8] c"\00" @.str641 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str642 = private unnamed_addr constant [27 x i8] c"runtime/native/input.ludic\00" @.str643 = private unnamed_addr constant [1 x i8] c"\00" @.str644 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str645 = private unnamed_addr constant [27 x i8] c"runtime/native/tween.ludic\00" @.str646 = private unnamed_addr constant [1 x i8] c"\00" @.str647 = private unnamed_addr constant [27 x i8] c"runtime/native/audio.ludic\00" @.str648 = private unnamed_addr constant [1 x i8] c"\00" @.str649 = private unnamed_addr constant [26 x i8] c"runtime/native/http.ludic\00" @.str650 = private unnamed_addr constant [1 x i8] c"\00" @.str651 = private unnamed_addr constant [25 x i8] c"runtime/native/udp.ludic\00" @.str652 = private unnamed_addr constant [1 x i8] c"\00" @.str653 = private unnamed_addr constant [29 x i8] c"runtime/native/process.ludic\00" @.str654 = private unnamed_addr constant [1 x i8] c"\00" @.str655 = private unnamed_addr constant [24 x i8] c"runtime/native/gl.ludic\00" @.str656 = private unnamed_addr constant [1 x i8] c"\00" @.str657 = private unnamed_addr constant [24 x i8] c"runtime/native/vk.ludic\00" @.str658 = private unnamed_addr constant [1 x i8] c"\00" @.str659 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str660 = private unnamed_addr constant [29 x i8] c"runtime/native/systems.ludic\00" @.str661 = private unnamed_addr constant [1 x i8] c"\00" @.str662 = private unnamed_addr constant [11 x i8] c"SpriteAnim\00" @.str663 = private unnamed_addr constant [7 x i8] c"Motion\00" @.str664 = private unnamed_addr constant [29 x i8] c"runtime/native/systems.ludic\00" @.str665 = private unnamed_addr constant [5 x i8] c"Body\00" @.str666 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str667 = private unnamed_addr constant [34 x i8] c"runtime/native/systems_move.ludic\00" @.str668 = private unnamed_addr constant [7 x i8] c"Sprite\00" @.str669 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str670 = private unnamed_addr constant [36 x i8] c"runtime/native/systems_sprite.ludic\00" @.str671 = private unnamed_addr constant [9 x i8] c"TileSkin\00" @.str672 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str673 = private unnamed_addr constant [38 x i8] c"runtime/native/systems_tileskin.ludic\00" @.str674 = private unnamed_addr constant [7 x i8] c"Bounds\00" @.str675 = private unnamed_addr constant [36 x i8] c"runtime/native/systems_bounds.ludic\00" @.str676 = private unnamed_addr constant [8 x i8] c"Light2D\00" @.str677 = private unnamed_addr constant [9 x i8] c"Occluder\00" @.str678 = private unnamed_addr constant [27 x i8] c"runtime/native/light.ludic\00" @.str679 = private unnamed_addr constant [35 x i8] c"runtime/native/systems_light.ludic\00" @.str680 = private unnamed_addr constant [11 x i8] c"SpriteAnim\00" @.str681 = private unnamed_addr constant [16 x i8] c"esys_spriteanim\00" @.str682 = private unnamed_addr constant [7 x i8] c"Update\00" @.str683 = private unnamed_addr constant [7 x i8] c"Motion\00" @.str684 = private unnamed_addr constant [12 x i8] c"esys_motion\00" @.str685 = private unnamed_addr constant [7 x i8] c"Update\00" @.str686 = private unnamed_addr constant [5 x i8] c"Body\00" @.str687 = private unnamed_addr constant [10 x i8] c"esys_move\00" @.str688 = private unnamed_addr constant [7 x i8] c"Update\00" @.str689 = private unnamed_addr constant [7 x i8] c"Bounds\00" @.str690 = private unnamed_addr constant [12 x i8] c"esys_bounds\00" @.str691 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" @.str692 = private unnamed_addr constant [9 x i8] c"TileSkin\00" @.str693 = private unnamed_addr constant [14 x i8] c"esys_tileskin\00" @.str694 = private unnamed_addr constant [7 x i8] c"Render\00" @.str695 = private unnamed_addr constant [7 x i8] c"Sprite\00" @.str696 = private unnamed_addr constant [12 x i8] c"esys_sprite\00" @.str697 = private unnamed_addr constant [7 x i8] c"Render\00" @.str698 = private unnamed_addr constant [8 x i8] c"Light2D\00" @.str699 = private unnamed_addr constant [13 x i8] c"esys_light2d\00" @.str700 = private unnamed_addr constant [7 x i8] c"Render\00" @.str701 = private unnamed_addr constant [6 x i8] c"Ludic\00" @.str702 = private unnamed_addr constant [7 x i8] c"import\00" @.str703 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1957: index out of range: \00" @.str704 = private unnamed_addr constant [2 x i8] c"@\00" @.str705 = private unnamed_addr constant [2 x i8] c"(\00" @.str706 = private unnamed_addr constant [2 x i8] c"(\00" @.str707 = private unnamed_addr constant [2 x i8] c")\00" @.str708 = private unnamed_addr constant [8 x i8] c"program\00" @.str709 = private unnamed_addr constant [2 x i8] c"{\00" @.str710 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:1968: index out of range: \00" @.str711 = private unnamed_addr constant [2 x i8] c"}\00" @.str712 = private unnamed_addr constant [2 x i8] c"<\00" @.str713 = private unnamed_addr constant [2 x i8] c"{\00" @.str714 = private unnamed_addr constant [2 x i8] c"}\00" @.str715 = private unnamed_addr constant [2 x i8] c"@\00" @.str716 = private unnamed_addr constant [9 x i8] c"Computed\00" @.str717 = private unnamed_addr constant [5 x i8] c"Sync\00" @.str718 = private unnamed_addr constant [2 x i8] c":\00" @.str719 = private unnamed_addr constant [2 x i8] c"=\00" @.str720 = private unnamed_addr constant [2 x i8] c",\00" @.str721 = private unnamed_addr constant [2 x i8] c"}\00" @.str722 = private unnamed_addr constant [12 x i8] c"cancellable\00" @.str723 = private unnamed_addr constant [2 x i8] c"{\00" @.str724 = private unnamed_addr constant [2 x i8] c"}\00" @.str725 = private unnamed_addr constant [2 x i8] c":\00" @.str726 = private unnamed_addr constant [2 x i8] c"=\00" @.str727 = private unnamed_addr constant [2 x i8] c",\00" @.str728 = private unnamed_addr constant [2 x i8] c"}\00" @.str729 = private unnamed_addr constant [7 x i8] c"Update\00" @.str730 = private unnamed_addr constant [2 x i8] c"@\00" @.str731 = private unnamed_addr constant [2 x i8] c"(\00" @.str732 = private unnamed_addr constant [2 x i8] c"(\00" @.str733 = private unnamed_addr constant [2 x i8] c")\00" @.str734 = private unnamed_addr constant [6 x i8] c"phase\00" @.str735 = private unnamed_addr constant [16 x i8] c"unknown phase '\00" @.str736 = private unnamed_addr constant [78 x i8] c"' (expected Start, Input, FixedUpdate, Update, LateUpdate, Render or Overlay)\00" @.str737 = private unnamed_addr constant [2 x i8] c"[\00" @.str738 = private unnamed_addr constant [2 x i8] c"]\00" @.str739 = private unnamed_addr constant [2 x i8] c"{\00" @.str740 = private unnamed_addr constant [2 x i8] c"}\00" @.str741 = private unnamed_addr constant [2 x i8] c",\00" @.str742 = private unnamed_addr constant [2 x i8] c"]\00" @.str743 = private unnamed_addr constant [6 x i8] c"where\00" @.str744 = private unnamed_addr constant [2 x i8] c"(\00" @.str745 = private unnamed_addr constant [2 x i8] c")\00" @.str746 = private unnamed_addr constant [2 x i8] c",\00" @.str747 = private unnamed_addr constant [2 x i8] c")\00" @.str748 = private unnamed_addr constant [6 x i8] c"query\00" @.str749 = private unnamed_addr constant [29 x i8] c"expected 'query' in for-loop\00" @.str750 = private unnamed_addr constant [4 x i8] c"and\00" @.str751 = private unnamed_addr constant [2 x i8] c"(\00" @.str752 = private unnamed_addr constant [2 x i8] c")\00" @.str753 = private unnamed_addr constant [2 x i8] c")\00" @.str754 = private unnamed_addr constant [2 x i8] c":\00" @.str755 = private unnamed_addr constant [6 x i8] c"these\00" @.str756 = private unnamed_addr constant [2 x i8] c"[\00" @.str757 = private unnamed_addr constant [2 x i8] c"]\00" @.str758 = private unnamed_addr constant [2 x i8] c"{\00" @.str759 = private unnamed_addr constant [2 x i8] c"}\00" @.str760 = private unnamed_addr constant [2 x i8] c",\00" @.str761 = private unnamed_addr constant [2 x i8] c"]\00" @.str762 = private unnamed_addr constant [3 x i8] c"on\00" @.str763 = private unnamed_addr constant [2 x i8] c",\00" @.str764 = private unnamed_addr constant [2 x i8] c")\00" @.str765 = private unnamed_addr constant [2 x i8] c"{\00" @.str766 = private unnamed_addr constant [2 x i8] c"}\00" @.str767 = private unnamed_addr constant [2 x i8] c"}\00" @.str768 = private unnamed_addr constant [2 x i8] c",\00" @.str769 = private unnamed_addr constant [2 x i8] c":\00" @.str770 = private unnamed_addr constant [2 x i8] c"{\00" @.str771 = private unnamed_addr constant [2 x i8] c"}\00" @.str772 = private unnamed_addr constant [6 x i8] c"start\00" @.str773 = private unnamed_addr constant [7 x i8] c"public\00" @.str774 = private unnamed_addr constant [6 x i8] c"shows\00" @.str775 = private unnamed_addr constant [6 x i8] c"lasts\00" @.str776 = private unnamed_addr constant [6 x i8] c"loads\00" @.str777 = private unnamed_addr constant [6 x i8] c"start\00" @.str778 = private unnamed_addr constant [6 x i8] c"shows\00" @.str779 = private unnamed_addr constant [6 x i8] c"lasts\00" @.str780 = private unnamed_addr constant [5 x i8] c"then\00" @.str781 = private unnamed_addr constant [27 x i8] c"lasts N needs `then Scene`\00" @.str782 = private unnamed_addr constant [6 x i8] c"loads\00" @.str783 = private unnamed_addr constant [5 x i8] c"then\00" @.str784 = private unnamed_addr constant [25 x i8] c"loads needs `then Scene`\00" @.str785 = private unnamed_addr constant [7 x i8] c"scene_\00" @.str786 = private unnamed_addr constant [7 x i8] c"_enter\00" @.str787 = private unnamed_addr constant [7 x i8] c"scene_\00" @.str788 = private unnamed_addr constant [6 x i8] c"_exit\00" @.str789 = private unnamed_addr constant [2 x i8] c"{\00" @.str790 = private unnamed_addr constant [2 x i8] c"}\00" @.str791 = private unnamed_addr constant [3 x i8] c"on\00" @.str792 = private unnamed_addr constant [6 x i8] c"enter\00" @.str793 = private unnamed_addr constant [5 x i8] c"exit\00" @.str794 = private unnamed_addr constant [38 x i8] c"expected 'enter' or 'exit' after 'on'\00" @.str795 = private unnamed_addr constant [6 x i8] c"layer\00" @.str796 = private unnamed_addr constant [7 x i8] c"public\00" @.str797 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str798 = private unnamed_addr constant [6 x i8] c"_show\00" @.str799 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str800 = private unnamed_addr constant [6 x i8] c"_hide\00" @.str801 = private unnamed_addr constant [2 x i8] c"{\00" @.str802 = private unnamed_addr constant [2 x i8] c"}\00" @.str803 = private unnamed_addr constant [2 x i8] c"@\00" @.str804 = private unnamed_addr constant [8 x i8] c"Queries\00" @.str805 = private unnamed_addr constant [56 x i8] c"a handler inside a layer may only carry @Queries (got @\00" @.str806 = private unnamed_addr constant [2 x i8] c")\00" @.str807 = private unnamed_addr constant [8 x i8] c"handler\00" @.str808 = private unnamed_addr constant [28 x i8] c"expected 'handler' in layer\00" @.str809 = private unnamed_addr constant [2 x i8] c"_\00" @.str810 = private unnamed_addr constant [2 x i8] c"}\00" @.str811 = private unnamed_addr constant [39 x i8] c"expected 'on', 'layer' or '}' in scene\00" @.str812 = private unnamed_addr constant [2 x i8] c"}\00" @.str813 = private unnamed_addr constant [8 x i8] c"_Loader\00" @.str814 = private unnamed_addr constant [7 x i8] c"Update\00" @.str815 = private unnamed_addr constant [7 x i8] c"Assets\00" @.str816 = private unnamed_addr constant [5 x i8] c"pump\00" @.str817 = private unnamed_addr constant [7 x i8] c"Assets\00" @.str818 = private unnamed_addr constant [6 x i8] c"ready\00" @.str819 = private unnamed_addr constant [11 x i8] c"_LoaderBar\00" @.str820 = private unnamed_addr constant [7 x i8] c"Render\00" @.str821 = private unnamed_addr constant [21 x i8] c"assets_draw_progress\00" @.str822 = private unnamed_addr constant [7 x i8] c"scene_\00" @.str823 = private unnamed_addr constant [6 x i8] c"_left\00" @.str824 = private unnamed_addr constant [4 x i8] c"int\00" @.str825 = private unnamed_addr constant [2 x i8] c"=\00" @.str826 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2250: index out of range: \00" @.str827 = private unnamed_addr constant [7 x i8] c"_Timer\00" @.str828 = private unnamed_addr constant [7 x i8] c"Update\00" @.str829 = private unnamed_addr constant [3 x i8] c"-=\00" @.str830 = private unnamed_addr constant [3 x i8] c"<=\00" @.str831 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2270: index out of range: \00" @.str832 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2270: index out of range: \00" @.str833 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2270: index out of range: \00" @.str834 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2279: index out of range: \00" @.str835 = private unnamed_addr constant [3 x i8] c"id\00" @.str836 = private unnamed_addr constant [5 x i8] c"goto\00" @.str837 = private unnamed_addr constant [3 x i8] c"==\00" @.str838 = private unnamed_addr constant [3 x i8] c"id\00" @.str839 = private unnamed_addr constant [4 x i8] c"UI_\00" @.str840 = private unnamed_addr constant [10 x i8] c"UiClicked\00" @.str841 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2293: index out of range: \00" @.str842 = private unnamed_addr constant [2 x i8] c"{\00" @.str843 = private unnamed_addr constant [2 x i8] c"}\00" @.str844 = private unnamed_addr constant [2 x i8] c"(\00" @.str845 = private unnamed_addr constant [2 x i8] c")\00" @.str846 = private unnamed_addr constant [2 x i8] c",\00" @.str847 = private unnamed_addr constant [2 x i8] c")\00" @.str848 = private unnamed_addr constant [2 x i8] c",\00" @.str849 = private unnamed_addr constant [2 x i8] c"}\00" @.str850 = private unnamed_addr constant [2 x i8] c"{\00" @.str851 = private unnamed_addr constant [2 x i8] c"}\00" @.str852 = private unnamed_addr constant [2 x i8] c"@\00" @.str853 = private unnamed_addr constant [5 x i8] c"Sync\00" @.str854 = private unnamed_addr constant [2 x i8] c",\00" @.str855 = private unnamed_addr constant [2 x i8] c"}\00" @.str856 = private unnamed_addr constant [2 x i8] c"(\00" @.str857 = private unnamed_addr constant [2 x i8] c")\00" @.str858 = private unnamed_addr constant [2 x i8] c":\00" @.str859 = private unnamed_addr constant [2 x i8] c",\00" @.str860 = private unnamed_addr constant [2 x i8] c")\00" @.str861 = private unnamed_addr constant [5 x i8] c"void\00" @.str862 = private unnamed_addr constant [3 x i8] c"->\00" @.str863 = private unnamed_addr constant [2 x i8] c"=\00" @.str864 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2348: index out of range: \00" @.str865 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2357: index out of range: \00" @.str866 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2357: index out of range: \00" @.str867 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2357: index out of range: \00" @.str868 = private unnamed_addr constant [2 x i8] c":\00" @.str869 = private unnamed_addr constant [2 x i8] c":\00" @.str870 = private unnamed_addr constant [2 x i8] c"{\00" @.str871 = private unnamed_addr constant [2 x i8] c"}\00" @.str872 = private unnamed_addr constant [2 x i8] c"}\00" @.str873 = private unnamed_addr constant [2 x i8] c"{\00" @.str874 = private unnamed_addr constant [2 x i8] c"}\00" @.str875 = private unnamed_addr constant [2 x i8] c"<\00" @.str876 = private unnamed_addr constant [1 x i8] c"\00" @.str877 = private unnamed_addr constant [2 x i8] c">\00" @.str878 = private unnamed_addr constant [2 x i8] c"|\00" @.str879 = private unnamed_addr constant [2 x i8] c",\00" @.str880 = private unnamed_addr constant [2 x i8] c">\00" @.str881 = private unnamed_addr constant [1 x i8] c"\00" @.str882 = private unnamed_addr constant [4 x i8] c"Sl_\00" @.str883 = private unnamed_addr constant [2 x i8] c"_\00" @.str884 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2442: index out of range: \00" @.str885 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2465: index out of range: \00" @.str886 = private unnamed_addr constant [1 x i8] c"\00" @.str887 = private unnamed_addr constant [2 x i8] c"$\00" @.str888 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2477: index out of range: \00" @.str889 = private unnamed_addr constant [2 x i8] c"|\00" @.str890 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2479: index out of range: \00" @.str891 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2480: index out of range: \00" @.str892 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2481: index out of range: \00" @.str893 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2481: index out of range: \00" @.str894 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2481: index out of range: \00" @.str895 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2491: index out of range: \00" @.str896 = private unnamed_addr constant [2 x i8] c"<\00" @.str897 = private unnamed_addr constant [3 x i8] c">>\00" @.str898 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2502: index out of range: \00" @.str899 = private unnamed_addr constant [2 x i8] c">\00" @.str900 = private unnamed_addr constant [2 x i8] c">\00" @.str901 = private unnamed_addr constant [2 x i8] c",\00" @.str902 = private unnamed_addr constant [2 x i8] c"(\00" @.str903 = private unnamed_addr constant [1 x i8] c"\00" @.str904 = private unnamed_addr constant [2 x i8] c")\00" @.str905 = private unnamed_addr constant [2 x i8] c"|\00" @.str906 = private unnamed_addr constant [2 x i8] c",\00" @.str907 = private unnamed_addr constant [2 x i8] c")\00" @.str908 = private unnamed_addr constant [2 x i8] c"=\00" @.str909 = private unnamed_addr constant [2 x i8] c".\00" @.str910 = private unnamed_addr constant [19 x i8] c" is declared twice\00" @.str911 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2556: index out of range: \00" @.str912 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2556: index out of range: \00" @.str913 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2563: index out of range: \00" @.str914 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2565: index out of range: \00" @.str915 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2566: index out of range: \00" @.str916 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2586: index out of range: \00" @.str917 = private unnamed_addr constant [2 x i8] c",\00" @.str918 = private unnamed_addr constant [2 x i8] c",\00" @.str919 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2615: index out of range: \00" @.str920 = private unnamed_addr constant [2 x i8] c",\00" @.str921 = private unnamed_addr constant [2 x i8] c",\00" @.str922 = private unnamed_addr constant [2 x i8] c",\00" @.str923 = private unnamed_addr constant [2 x i8] c",\00" @.str924 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2637: index out of range: \00" @.str925 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2637: index out of range: \00" @.str926 = private unnamed_addr constant [1 x i8] c"\00" @.str927 = private unnamed_addr constant [1 x i8] c"\00" @.str928 = private unnamed_addr constant [8 x i8] c"module \00" @.str929 = private unnamed_addr constant [14 x i8] c" is in layer \00" @.str930 = private unnamed_addr constant [34 x i8] c", and this line puts it in layer \00" @.str931 = private unnamed_addr constant [3 x i8] c"in\00" @.str932 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2655: index out of range: \00" @.str933 = private unnamed_addr constant [6 x i8] c"layer\00" @.str934 = private unnamed_addr constant [5 x i8] c"uses\00" @.str935 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2661: index out of range: \00" @.str936 = private unnamed_addr constant [2 x i8] c",\00" @.str937 = private unnamed_addr constant [5 x i8] c"uses\00" @.str938 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2666: index out of range: \00" @.str939 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2670: index out of range: \00" @.str940 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2670: index out of range: \00" @.str941 = private unnamed_addr constant [1 x i8] c"\00" @.str942 = private unnamed_addr constant [3 x i8] c"of\00" @.str943 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2695: index out of range: \00" @.str944 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2696: index out of range: \00" @.str945 = private unnamed_addr constant [1 x i8] c"\00" @.str946 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2696: index out of range: \00" @.str947 = private unnamed_addr constant [1 x i8] c"\00" @.str948 = private unnamed_addr constant [2 x i8] c"_\00" @.str949 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2727: index out of range: \00" @.str950 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2727: index out of range: \00" @.str951 = private unnamed_addr constant [1 x i8] c"\00" @.str952 = private unnamed_addr constant [1 x i8] c"\00" @.str953 = private unnamed_addr constant [1 x i8] c"\00" @.str954 = private unnamed_addr constant [1 x i8] c"\00" @.str955 = private unnamed_addr constant [1 x i8] c"\00" @.str956 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2744: index out of range: \00" @.str957 = private unnamed_addr constant [1 x i8] c"\00" @.str958 = private unnamed_addr constant [7 x i8] c"layer \00" @.str959 = private unnamed_addr constant [2 x i8] c",\00" @.str960 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2773: index out of range: \00" @.str961 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2774: index out of range: \00" @.str962 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2777: index out of range: \00" @.str963 = private unnamed_addr constant [2 x i8] c",\00" @.str964 = private unnamed_addr constant [2 x i8] c",\00" @.str965 = private unnamed_addr constant [2 x i8] c",\00" @.str966 = private unnamed_addr constant [4 x i8] c"-> \00" @.str967 = private unnamed_addr constant [4 x i8] c"-> \00" @.str968 = private unnamed_addr constant [5 x i8] c" -> \00" @.str969 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2789: index out of range: \00" @.str970 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2790: index out of range: \00" @.str971 = private unnamed_addr constant [41 x i8] c"the modules' uses go round in a circle: \00" @.str972 = private unnamed_addr constant [125 x i8] c"; one of them has to take the other through a port, or the ones that belong together declare one layer (module m in layer L)\00" @.str973 = private unnamed_addr constant [2 x i8] c",\00" @.str974 = private unnamed_addr constant [2 x i8] c",\00" @.str975 = private unnamed_addr constant [2 x i8] c",\00" @.str976 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2799: index out of range: \00" @.str977 = private unnamed_addr constant [5 x i8] c" -> \00" @.str978 = private unnamed_addr constant [2 x i8] c",\00" @.str979 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2809: index out of range: \00" @.str980 = private unnamed_addr constant [1 x i8] c"\00" @.str981 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2809: index out of range: \00" @.str982 = private unnamed_addr constant [6 x i8] c"_port\00" @.str983 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2863: index out of range: \00" @.str984 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2872: index out of range: \00" @.str985 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2877: index out of range: \00" @.str986 = private unnamed_addr constant [6 x i8] c"port \00" @.str987 = private unnamed_addr constant [61 x i8] c" is used here but never bound: the program has to say 'bind \00" @.str988 = private unnamed_addr constant [41 x i8] c" { ... }' once, where it is put together\00" @.str989 = private unnamed_addr constant [6 x i8] c"bind \00" @.str990 = private unnamed_addr constant [20 x i8] c": there is no port \00" @.str991 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2888: index out of range: \00" @.str992 = private unnamed_addr constant [6 x i8] c"port \00" @.str993 = private unnamed_addr constant [27 x i8] c" is bound twice (first at \00" @.str994 = private unnamed_addr constant [2 x i8] c":\00" @.str995 = private unnamed_addr constant [2 x i8] c")\00" @.str996 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2890: index out of range: \00" @.str997 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2891: index out of range: \00" @.str998 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2895: index out of range: \00" @.str999 = private unnamed_addr constant [6 x i8] c"port \00" @.str1000 = private unnamed_addr constant [16 x i8] c" has no member \00" @.str1001 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2895: index out of range: \00" @.str1002 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2900: index out of range: \00" @.str1003 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2900: index out of range: \00" @.str1004 = private unnamed_addr constant [6 x i8] c"bind \00" @.str1005 = private unnamed_addr constant [13 x i8] c" leaves out \00" @.str1006 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2901: index out of range: \00" @.str1007 = private unnamed_addr constant [23 x i8] c", which has no default\00" @.str1008 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2908: index out of range: \00" @.str1009 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2912: index out of range: \00" @.str1010 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2928: index out of range: \00" @.str1011 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2931: index out of range: \00" @.str1012 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2934: index out of range: \00" @.str1013 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2940: index out of range: \00" @.str1014 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2947: index out of range: \00" @.str1015 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2952: index out of range: \00" @.str1016 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2987: index out of range: \00" @.str1017 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2987: index out of range: \00" @.str1018 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2987: index out of range: \00" @.str1019 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2987: index out of range: \00" @.str1020 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2988: index out of range: \00" @.str1021 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2988: index out of range: \00" @.str1022 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2991: index out of range: \00" @.str1023 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2991: index out of range: \00" @.str1024 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2998: index out of range: \00" @.str1025 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:2998: index out of range: \00" @.str1026 = private unnamed_addr constant [1 x i8] c"\00" @.str1027 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3005: index out of range: \00" @.str1028 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3012: index out of range: \00" @.str1029 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3013: index out of range: \00" @.str1030 = private unnamed_addr constant [1 x i8] c"\00" @.str1031 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3019: index out of range: \00" @.str1032 = private unnamed_addr constant [2 x i8] c"$\00" @.str1033 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3039: index out of range: \00" @.str1034 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3039: index out of range: \00" @.str1035 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3049: index out of range: \00" @.str1036 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3049: index out of range: \00" @.str1037 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3050: index out of range: \00" @.str1038 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3050: index out of range: \00" @.str1039 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3058: index out of range: \00" @.str1040 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3058: index out of range: \00" @.str1041 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3058: index out of range: \00" @.str1042 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3074: index out of range: \00" @.str1043 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3074: index out of range: \00" @.str1044 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3075: index out of range: \00" @.str1045 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3075: index out of range: \00" @.str1046 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3084: index out of range: \00" @.str1047 = private unnamed_addr constant [2 x i8] c",\00" @.str1048 = private unnamed_addr constant [2 x i8] c",\00" @.str1049 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3117: index out of range: \00" @.str1050 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3118: index out of range: \00" @.str1051 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3118: index out of range: \00" @.str1052 = private unnamed_addr constant [2 x i8] c",\00" @.str1053 = private unnamed_addr constant [2 x i8] c",\00" @.str1054 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3134: index out of range: \00" @.str1055 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3135: index out of range: \00" @.str1056 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3135: index out of range: \00" @.str1057 = private unnamed_addr constant [2 x i8] c",\00" @.str1058 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3150: index out of range: \00" @.str1059 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3158: index out of range: \00" @.str1060 = private unnamed_addr constant [2 x i8] c",\00" @.str1061 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3166: index out of range: \00" @.str1062 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3179: index out of range: \00" @.str1063 = private unnamed_addr constant [2 x i8] c",\00" @.str1064 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3196: index out of range: \00" @.str1065 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3196: index out of range: \00" @.str1066 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3197: index out of range: \00" @.str1067 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3220: index out of range: \00" @.str1068 = private unnamed_addr constant [2 x i8] c"|\00" @.str1069 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3231: index out of range: \00" @.str1070 = private unnamed_addr constant [2 x i8] c"|\00" @.str1071 = private unnamed_addr constant [2 x i8] c"|\00" @.str1072 = private unnamed_addr constant [2 x i8] c"|\00" @.str1073 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3231: index out of range: \00" @.str1074 = private unnamed_addr constant [2 x i8] c"<\00" @.str1075 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3236: index out of range: \00" @.str1076 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3240: index out of range: \00" @.str1077 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3253: index out of range: \00" @.str1078 = private unnamed_addr constant [1 x i8] c"\00" @.str1079 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3259: index out of range: \00" @.str1080 = private unnamed_addr constant [3 x i8] c"__\00" @.str1081 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3275: index out of range: \00" @.str1082 = private unnamed_addr constant [1 x i8] c"\00" @.str1083 = private unnamed_addr constant [1 x i8] c"\00" @.str1084 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3282: index out of range: \00" @.str1085 = private unnamed_addr constant [1 x i8] c"\00" @.str1086 = private unnamed_addr constant [3 x i8] c"__\00" @.str1087 = private unnamed_addr constant [1 x i8] c"\00" @.str1088 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3324: index out of range: \00" @.str1089 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3326: index out of range: \00" @.str1090 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3326: index out of range: \00" @.str1091 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3326: index out of range: \00" @.str1092 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3336: index out of range: \00" @.str1093 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3336: index out of range: \00" @.str1094 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3336: index out of range: \00" @.str1095 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3352: index out of range: \00" @.str1096 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3361: index out of range: \00" @.str1097 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3368: index out of range: \00" @.str1098 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3372: index out of range: \00" @.str1099 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3372: index out of range: \00" @.str1100 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3373: index out of range: \00" @.str1101 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3383: index out of range: \00" @.str1102 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3389: index out of range: \00" @.str1103 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3406: index out of range: \00" @.str1104 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3406: index out of range: \00" @.str1105 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3406: index out of range: \00" @.str1106 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3417: index out of range: \00" @.str1107 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3417: index out of range: \00" @.str1108 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3417: index out of range: \00" @.str1109 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3418: index out of range: \00" @.str1110 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3419: index out of range: \00" @.str1111 = private unnamed_addr constant [8 x i8] c"event '\00" @.str1112 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3420: index out of range: \00" @.str1113 = private unnamed_addr constant [30 x i8] c"' is defined twice (first in \00" @.str1114 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3420: index out of range: \00" @.str1115 = private unnamed_addr constant [2 x i8] c":\00" @.str1116 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3420: index out of range: \00" @.str1117 = private unnamed_addr constant [2 x i8] c")\00" @.str1118 = private unnamed_addr constant [3 x i8] c"of\00" @.str1119 = private unnamed_addr constant [10 x i8] c"registry \00" @.str1120 = private unnamed_addr constant [32 x i8] c": say what it holds - registry \00" @.str1121 = private unnamed_addr constant [15 x i8] c" of SomeRecord\00" @.str1122 = private unnamed_addr constant [3 x i8] c"as\00" @.str1123 = private unnamed_addr constant [5 x i8] c"from\00" @.str1124 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3498: index out of range: \00" @.str1125 = private unnamed_addr constant [3 x i8] c"[]\00" @.str1126 = private unnamed_addr constant [5 x i8] c"from\00" @.str1127 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3515: index out of range: \00" @.str1128 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3516: index out of range: \00" @.str1129 = private unnamed_addr constant [5 x i8] c"def \00" @.str1130 = private unnamed_addr constant [6 x i8] c" from\00" @.str1131 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3531: index out of range: \00" @.str1132 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3539: index out of range: \00" @.str1133 = private unnamed_addr constant [4 x i8] c"int\00" @.str1134 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3567: index out of range: \00" @.str1135 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3568: index out of range: \00" @.str1136 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3569: index out of range: \00" @.str1137 = private unnamed_addr constant [5 x i8] c"def \00" @.str1138 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3571: index out of range: \00" @.str1139 = private unnamed_addr constant [2 x i8] c" \00" @.str1140 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3571: index out of range: \00" @.str1141 = private unnamed_addr constant [24 x i8] c": there is no registry \00" @.str1142 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3571: index out of range: \00" @.str1143 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3583: index out of range: \00" @.str1144 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3584: index out of range: \00" @.str1145 = private unnamed_addr constant [4 x i8] c"key\00" @.str1146 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3595: index out of range: \00" @.str1147 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3596: index out of range: \00" @.str1148 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3597: index out of range: \00" @.str1149 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3600: index out of range: \00" @.str1150 = private unnamed_addr constant [5 x i8] c"def \00" @.str1151 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3604: index out of range: \00" @.str1152 = private unnamed_addr constant [2 x i8] c" \00" @.str1153 = private unnamed_addr constant [19 x i8] c" is declared twice\00" @.str1154 = private unnamed_addr constant [4 x i8] c"key\00" @.str1155 = private unnamed_addr constant [4 x i8] c"key\00" @.str1156 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3624: index out of range: \00" @.str1157 = private unnamed_addr constant [2 x i8] c"_\00" @.str1158 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3628: index out of range: \00" @.str1159 = private unnamed_addr constant [7 x i8] c"_COUNT\00" @.str1160 = private unnamed_addr constant [6 x i8] c"_find\00" @.str1161 = private unnamed_addr constant [10 x i8] c"function \00" @.str1162 = private unnamed_addr constant [52 x i8] c"(key: string) -> int {\0A var i = 0\0A while i < len(\00" @.str1163 = private unnamed_addr constant [12 x i8] c") {\0A if \00" @.str1164 = private unnamed_addr constant [58 x i8] c"[i].key == key { return i }\0A i += 1\0A }\0A return -1\0A}\0A\00" @.str1165 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3656: index out of range: \00" @.str1166 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3675: index out of range: \00" @.str1167 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3676: index out of range: \00" @.str1168 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3677: index out of range: \00" @.str1169 = private unnamed_addr constant [1 x i8] c"\00" @.str1170 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3685: index out of range: \00" @.str1171 = private unnamed_addr constant [5 x i8] c"def \00" @.str1172 = private unnamed_addr constant [2 x i8] c" \00" @.str1173 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3686: index out of range: \00" @.str1174 = private unnamed_addr constant [12 x i8] c": registry \00" @.str1175 = private unnamed_addr constant [58 x i8] c" is not open to other modules; declare it 'open registry \00" @.str1176 = private unnamed_addr constant [13 x i8] c"' in module \00" @.str1177 = private unnamed_addr constant [25 x i8] c", or write the def there\00" @.str1178 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3703: index out of range: \00" @.str1179 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3707: index out of range: \00" @.str1180 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3707: index out of range: \00" @.str1181 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3708: index out of range: \00" @.str1182 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3714: index out of range: \00" @.str1183 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3725: index out of range: \00" @.str1184 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3727: index out of range: \00" @.str1185 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3728: index out of range: \00" @.str1186 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3728: index out of range: \00" @.str1187 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3731: index out of range: \00" @.str1188 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3738: index out of range: \00" @.str1189 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3738: index out of range: \00" @.str1190 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3738: index out of range: \00" @.str1191 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3738: index out of range: \00" @.str1192 = private unnamed_addr constant [10 x i8] c"registry \00" @.str1193 = private unnamed_addr constant [33 x i8] c": cannot read the resource file \00" @.str1194 = private unnamed_addr constant [1 x i8] c"\00" @.str1195 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3785: index out of range: \00" @.str1196 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3823: index out of range: \00" @.str1197 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3823: index out of range: \00" @.str1198 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3832: index out of range: \00" @.str1199 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3834: index out of range: \00" @.str1200 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3849: index out of range: \00" @.str1201 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3850: index out of range: \00" @.str1202 = private unnamed_addr constant [40 x i8] c"a positional argument after a named one\00" @.str1203 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3861: index out of range: \00" @.str1204 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3864: index out of range: \00" @.str1205 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3882: index out of range: \00" @.str1206 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3892: index out of range: \00" @.str1207 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3899: index out of range: \00" @.str1208 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3899: index out of range: \00" @.str1209 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3899: index out of range: \00" @.str1210 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3902: index out of range: \00" @.str1211 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3904: index out of range: \00" @.str1212 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3905: index out of range: \00" @.str1213 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3913: index out of range: \00" @.str1214 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3913: index out of range: \00" @.str1215 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3919: index out of range: \00" @.str1216 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3919: index out of range: \00" @.str1217 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3924: index out of range: \00" @.str1218 = private unnamed_addr constant [6 x i8] c"view_\00" @.str1219 = private unnamed_addr constant [2 x i8] c"_\00" @.str1220 = private unnamed_addr constant [2 x i8] c"{\00" @.str1221 = private unnamed_addr constant [2 x i8] c"}\00" @.str1222 = private unnamed_addr constant [9 x i8] c"function\00" @.str1223 = private unnamed_addr constant [3 x i8] c"on\00" @.str1224 = private unnamed_addr constant [3 x i8] c"on\00" @.str1225 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3977: index out of range: \00" @.str1226 = private unnamed_addr constant [9 x i8] c"function\00" @.str1227 = private unnamed_addr constant [4 x i8] c"on_\00" @.str1228 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:3986: index out of range: \00" @.str1229 = private unnamed_addr constant [2 x i8] c"}\00" @.str1230 = private unnamed_addr constant [5 x i8] c"get_\00" @.str1231 = private unnamed_addr constant [2 x i8] c":\00" @.str1232 = private unnamed_addr constant [2 x i8] c"=\00" @.str1233 = private unnamed_addr constant [12 x i8] c"view field \00" @.str1234 = private unnamed_addr constant [20 x i8] c": say what it is - \00" @.str1235 = private unnamed_addr constant [15 x i8] c" = some_global\00" @.str1236 = private unnamed_addr constant [15 x i8] c"function view_\00" @.str1237 = private unnamed_addr constant [49 x i8] c"() -> UiView {\0A let v = new UiView\0A v.name = \22\00" @.str1238 = private unnamed_addr constant [18 x i8] c"\22\0A v.model = fn \00" @.str1239 = private unnamed_addr constant [21 x i8] c"model\0A v.call = fn \00" @.str1240 = private unnamed_addr constant [19 x i8] c"call\0A return v\0A}\0A\00" @.str1241 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4020: index out of range: \00" @.str1242 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4021: index out of range: \00" @.str1243 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4036: index out of range: \00" @.str1244 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4041: index out of range: \00" @.str1245 = private unnamed_addr constant [4 x i8] c"int\00" @.str1246 = private unnamed_addr constant [11 x i8] c"value_int(\00" @.str1247 = private unnamed_addr constant [2 x i8] c")\00" @.str1248 = private unnamed_addr constant [6 x i8] c"float\00" @.str1249 = private unnamed_addr constant [13 x i8] c"value_float(\00" @.str1250 = private unnamed_addr constant [2 x i8] c")\00" @.str1251 = private unnamed_addr constant [7 x i8] c"string\00" @.str1252 = private unnamed_addr constant [11 x i8] c"value_str(\00" @.str1253 = private unnamed_addr constant [2 x i8] c")\00" @.str1254 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1255 = private unnamed_addr constant [99 x i8] c"function view_val_bool(b: bool) -> Val {\0A if b { return value_bool(1) }\0A return value_bool(0)\0A}\0A\00" @.str1256 = private unnamed_addr constant [14 x i8] c"view_val_bool\00" @.str1257 = private unnamed_addr constant [15 x i8] c"view_val_bool(\00" @.str1258 = private unnamed_addr constant [2 x i8] c")\00" @.str1259 = private unnamed_addr constant [15 x i8] c"view_val_list_\00" @.str1260 = private unnamed_addr constant [2 x i8] c"(\00" @.str1261 = private unnamed_addr constant [2 x i8] c")\00" @.str1262 = private unnamed_addr constant [6 x i8] c"xs[i]\00" @.str1263 = private unnamed_addr constant [10 x i8] c"function \00" @.str1264 = private unnamed_addr constant [6 x i8] c"(xs: \00" @.str1265 = private unnamed_addr constant [90 x i8] c") -> Val {\0A let out = value_list()\0A var i = 0\0A while i < len(xs) {\0A value_add(out, \00" @.str1266 = private unnamed_addr constant [33 x i8] c")\0A i += 1\0A }\0A return out\0A}\0A\00" @.str1267 = private unnamed_addr constant [2 x i8] c"(\00" @.str1268 = private unnamed_addr constant [2 x i8] c")\00" @.str1269 = private unnamed_addr constant [10 x i8] c"view_val_\00" @.str1270 = private unnamed_addr constant [2 x i8] c"(\00" @.str1271 = private unnamed_addr constant [2 x i8] c")\00" @.str1272 = private unnamed_addr constant [10 x i8] c"function \00" @.str1273 = private unnamed_addr constant [5 x i8] c"(r: \00" @.str1274 = private unnamed_addr constant [76 x i8] c") -> Val {\0A if r == null { return value_null() }\0A let o = value_object()\0A\00" @.str1275 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4080: index out of range: \00" @.str1276 = private unnamed_addr constant [3 x i8] c"r.\00" @.str1277 = private unnamed_addr constant [17 x i8] c" value_put(o, \22\00" @.str1278 = private unnamed_addr constant [4 x i8] c"\22, \00" @.str1279 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str1280 = private unnamed_addr constant [14 x i8] c" return o\0A}\0A\00" @.str1281 = private unnamed_addr constant [2 x i8] c"(\00" @.str1282 = private unnamed_addr constant [2 x i8] c")\00" @.str1283 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4093: index out of range: \00" @.str1284 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4131: index out of range: \00" @.str1285 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4132: index out of range: \00" @.str1286 = private unnamed_addr constant [6 x i8] c"view \00" @.str1287 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4134: index out of range: \00" @.str1288 = private unnamed_addr constant [3 x i8] c": \00" @.str1289 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4137: index out of range: \00" @.str1290 = private unnamed_addr constant [7 x i8] c"UiView\00" @.str1291 = private unnamed_addr constant [48 x i8] c"a view is shown by ludic.ui - import \22ludic.ui\22\00" @.str1292 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4139: index out of range: \00" @.str1293 = private unnamed_addr constant [10 x i8] c"function \00" @.str1294 = private unnamed_addr constant [43 x i8] c"model() -> Val {\0A let o = value_object()\0A\00" @.str1295 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4141: index out of range: \00" @.str1296 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4144: index out of range: \00" @.str1297 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4145: index out of range: \00" @.str1298 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4145: index out of range: \00" @.str1299 = private unnamed_addr constant [3 x i8] c"()\00" @.str1300 = private unnamed_addr constant [7 x i8] c" is a \00" @.str1301 = private unnamed_addr constant [31 x i8] c", which a template cannot read\00" @.str1302 = private unnamed_addr constant [17 x i8] c" value_put(o, \22\00" @.str1303 = private unnamed_addr constant [4 x i8] c"\22, \00" @.str1304 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str1305 = private unnamed_addr constant [14 x i8] c" return o\0A}\0A\00" @.str1306 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4158: index out of range: \00" @.str1307 = private unnamed_addr constant [4 x i8] c"int\00" @.str1308 = private unnamed_addr constant [6 x i8] c"float\00" @.str1309 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1310 = private unnamed_addr constant [7 x i8] c"string\00" @.str1311 = private unnamed_addr constant [5 x i8] c"void\00" @.str1312 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4171: index out of range: \00" @.str1313 = private unnamed_addr constant [15 x i8] c"say what type \00" @.str1314 = private unnamed_addr constant [7 x i8] c" is - \00" @.str1315 = private unnamed_addr constant [12 x i8] c": int = ...\00" @.str1316 = private unnamed_addr constant [4 x i8] c"int\00" @.str1317 = private unnamed_addr constant [10 x i8] c"function \00" @.str1318 = private unnamed_addr constant [40 x i8] c"call(name: string, args: Val) -> Val {\0A\00" @.str1319 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4178: index out of range: \00" @.str1320 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4181: index out of range: \00" @.str1321 = private unnamed_addr constant [1 x i8] c"\00" @.str1322 = private unnamed_addr constant [3 x i8] c", \00" @.str1323 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4186: index out of range: \00" @.str1324 = private unnamed_addr constant [2 x i8] c"(\00" @.str1325 = private unnamed_addr constant [2 x i8] c")\00" @.str1326 = private unnamed_addr constant [15 x i8] c" if name == \22\00" @.str1327 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4190: index out of range: \00" @.str1328 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4190: index out of range: \00" @.str1329 = private unnamed_addr constant [5 x i8] c"\22 {\0A\00" @.str1330 = private unnamed_addr constant [5 x i8] c"void\00" @.str1331 = private unnamed_addr constant [5 x i8] c" \00" @.str1332 = private unnamed_addr constant [26 x i8] c"\0A return value_null()\0A\00" @.str1333 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4193: index out of range: \00" @.str1334 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4193: index out of range: \00" @.str1335 = private unnamed_addr constant [12 x i8] c" answers a \00" @.str1336 = private unnamed_addr constant [31 x i8] c", which a template cannot read\00" @.str1337 = private unnamed_addr constant [12 x i8] c" return \00" @.str1338 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1339 = private unnamed_addr constant [5 x i8] c" }\0A\00" @.str1340 = private unnamed_addr constant [25 x i8] c" return value_null()\0A}\0A\00" @.str1341 = private unnamed_addr constant [16 x i8] c"value_at(args, \00" @.str1342 = private unnamed_addr constant [2 x i8] c")\00" @.str1343 = private unnamed_addr constant [4 x i8] c"int\00" @.str1344 = private unnamed_addr constant [14 x i8] c"value_as_int(\00" @.str1345 = private unnamed_addr constant [2 x i8] c")\00" @.str1346 = private unnamed_addr constant [6 x i8] c"float\00" @.str1347 = private unnamed_addr constant [16 x i8] c"value_as_float(\00" @.str1348 = private unnamed_addr constant [2 x i8] c")\00" @.str1349 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1350 = private unnamed_addr constant [14 x i8] c"value_as_int(\00" @.str1351 = private unnamed_addr constant [7 x i8] c") != 0\00" @.str1352 = private unnamed_addr constant [7 x i8] c"string\00" @.str1353 = private unnamed_addr constant [14 x i8] c"value_as_str(\00" @.str1354 = private unnamed_addr constant [2 x i8] c")\00" @.str1355 = private unnamed_addr constant [7 x i8] c" is a \00" @.str1356 = private unnamed_addr constant [58 x i8] c"; a template can pass an int, a float, a bool or a string\00" @.str1357 = private unnamed_addr constant [1 x i8] c"\00" @.str1358 = private unnamed_addr constant [5 x i8] c"cmp_\00" @.str1359 = private unnamed_addr constant [2 x i8] c"_\00" @.str1360 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4254: index out of range: \00" @.str1361 = private unnamed_addr constant [2 x i8] c"{\00" @.str1362 = private unnamed_addr constant [2 x i8] c"}\00" @.str1363 = private unnamed_addr constant [2 x i8] c"}\00" @.str1364 = private unnamed_addr constant [4 x i8] c"reg\00" @.str1365 = private unnamed_addr constant [4 x i8] c"int\00" @.str1366 = private unnamed_addr constant [5 x i8] c"prop\00" @.str1367 = private unnamed_addr constant [6 x i8] c"state\00" @.str1368 = private unnamed_addr constant [5 x i8] c"prop\00" @.str1369 = private unnamed_addr constant [2 x i8] c":\00" @.str1370 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4284: index out of range: \00" @.str1371 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4285: index out of range: \00" @.str1372 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4286: index out of range: \00" @.str1373 = private unnamed_addr constant [2 x i8] c"=\00" @.str1374 = private unnamed_addr constant [5 x i8] c"def_\00" @.str1375 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4292: index out of range: \00" @.str1376 = private unnamed_addr constant [9 x i8] c"function\00" @.str1377 = private unnamed_addr constant [3 x i8] c"on\00" @.str1378 = private unnamed_addr constant [3 x i8] c"on\00" @.str1379 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4297: index out of range: \00" @.str1380 = private unnamed_addr constant [9 x i8] c"function\00" @.str1381 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4299: index out of range: \00" @.str1382 = private unnamed_addr constant [4 x i8] c"on_\00" @.str1383 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4301: index out of range: \00" @.str1384 = private unnamed_addr constant [2 x i8] c":\00" @.str1385 = private unnamed_addr constant [2 x i8] c"=\00" @.str1386 = private unnamed_addr constant [17 x i8] c"component field \00" @.str1387 = private unnamed_addr constant [20 x i8] c": say what it is - \00" @.str1388 = private unnamed_addr constant [15 x i8] c" = some_global\00" @.str1389 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4313: index out of range: \00" @.str1390 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4314: index out of range: \00" @.str1391 = private unnamed_addr constant [5 x i8] c"get_\00" @.str1392 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4336: index out of range: \00" @.str1393 = private unnamed_addr constant [11 x i8] c"component \00" @.str1394 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4341: index out of range: \00" @.str1395 = private unnamed_addr constant [17 x i8] c": the parameter \00" @.str1396 = private unnamed_addr constant [66 x i8] c" has the name of its prop, state or field; call it something else\00" @.str1397 = private unnamed_addr constant [5 x i8] c"self\00" @.str1398 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4352: index out of range: \00" @.str1399 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4360: index out of range: \00" @.str1400 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4361: index out of range: \00" @.str1401 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4361: index out of range: \00" @.str1402 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4368: index out of range: \00" @.str1403 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4369: index out of range: \00" @.str1404 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4369: index out of range: \00" @.str1405 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4376: index out of range: \00" @.str1406 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4377: index out of range: \00" @.str1407 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4377: index out of range: \00" @.str1408 = private unnamed_addr constant [5 x i8] c"self\00" @.str1409 = private unnamed_addr constant [11 x i8] c"component \00" @.str1410 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4393: index out of range: \00" @.str1411 = private unnamed_addr constant [3 x i8] c": \00" @.str1412 = private unnamed_addr constant [64 x i8] c" is its own prop, state or field; name the local something else\00" @.str1413 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4403: index out of range: \00" @.str1414 = private unnamed_addr constant [5 x i8] c"get_\00" @.str1415 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4410: index out of range: \00" @.str1416 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4415: index out of range: \00" @.str1417 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4425: index out of range: \00" @.str1418 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4440: index out of range: \00" @.str1419 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4441: index out of range: \00" @.str1420 = private unnamed_addr constant [11 x i8] c"component \00" @.str1421 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4443: index out of range: \00" @.str1422 = private unnamed_addr constant [3 x i8] c": \00" @.str1423 = private unnamed_addr constant [8 x i8] c"UiClass\00" @.str1424 = private unnamed_addr constant [53 x i8] c"a component is shown by ludic.ui - import \22ludic.ui\22\00" @.str1425 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4447: index out of range: \00" @.str1426 = private unnamed_addr constant [4 x i8] c"Cmp\00" @.str1427 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4450: index out of range: \00" @.str1428 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4451: index out of range: \00" @.str1429 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4452: index out of range: \00" @.str1430 = private unnamed_addr constant [10 x i8] c"property \00" @.str1431 = private unnamed_addr constant [4 x i8] c" {\0A\00" @.str1432 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4455: index out of range: \00" @.str1433 = private unnamed_addr constant [3 x i8] c" \00" @.str1434 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4456: index out of range: \00" @.str1435 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4456: index out of range: \00" @.str1436 = private unnamed_addr constant [3 x i8] c": \00" @.str1437 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4456: index out of range: \00" @.str1438 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4456: index out of range: \00" @.str1439 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1440 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1441 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4470: index out of range: \00" @.str1442 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4471: index out of range: \00" @.str1443 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4471: index out of range: \00" @.str1444 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4471: index out of range: \00" @.str1445 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4471: index out of range: \00" @.str1446 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4475: index out of range: \00" @.str1447 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4476: index out of range: \00" @.str1448 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4476: index out of range: \00" @.str1449 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4477: index out of range: \00" @.str1450 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4477: index out of range: \00" @.str1451 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4482: index out of range: \00" @.str1452 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4483: index out of range: \00" @.str1453 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4483: index out of range: \00" @.str1454 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4488: index out of range: \00" @.str1455 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4491: index out of range: \00" @.str1456 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4492: index out of range: \00" @.str1457 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4492: index out of range: \00" @.str1458 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4492: index out of range: \00" @.str1459 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4492: index out of range: \00" @.str1460 = private unnamed_addr constant [4 x i8] c"int\00" @.str1461 = private unnamed_addr constant [6 x i8] c"float\00" @.str1462 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1463 = private unnamed_addr constant [7 x i8] c"string\00" @.str1464 = private unnamed_addr constant [5 x i8] c"void\00" @.str1465 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4508: index out of range: \00" @.str1466 = private unnamed_addr constant [15 x i8] c"say what type \00" @.str1467 = private unnamed_addr constant [7 x i8] c" is - \00" @.str1468 = private unnamed_addr constant [12 x i8] c": int = ...\00" @.str1469 = private unnamed_addr constant [4 x i8] c"int\00" @.str1470 = private unnamed_addr constant [10 x i8] c"function \00" @.str1471 = private unnamed_addr constant [34 x i8] c"new() -> pointer {\0A let s = new \00" @.str1472 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1473 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4515: index out of range: \00" @.str1474 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4516: index out of range: \00" @.str1475 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4516: index out of range: \00" @.str1476 = private unnamed_addr constant [5 x i8] c" s.\00" @.str1477 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4516: index out of range: \00" @.str1478 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4516: index out of range: \00" @.str1479 = private unnamed_addr constant [4 x i8] c" = \00" @.str1480 = private unnamed_addr constant [5 x i8] c"def_\00" @.str1481 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4516: index out of range: \00" @.str1482 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4516: index out of range: \00" @.str1483 = private unnamed_addr constant [5 x i8] c"(s)\0A\00" @.str1484 = private unnamed_addr constant [14 x i8] c" return s\0A}\0A\00" @.str1485 = private unnamed_addr constant [10 x i8] c"function \00" @.str1486 = private unnamed_addr constant [46 x i8] c"props(p: pointer, v: Val) -> void {\0A let s: \00" @.str1487 = private unnamed_addr constant [6 x i8] c" = p\0A\00" @.str1488 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4527: index out of range: \00" @.str1489 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4528: index out of range: \00" @.str1490 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4528: index out of range: \00" @.str1491 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4529: index out of range: \00" @.str1492 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4529: index out of range: \00" @.str1493 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4530: index out of range: \00" @.str1494 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4530: index out of range: \00" @.str1495 = private unnamed_addr constant [15 x i8] c"value_get(v, \22\00" @.str1496 = private unnamed_addr constant [3 x i8] c"\22)\00" @.str1497 = private unnamed_addr constant [20 x i8] c" if value_has(v, \22\00" @.str1498 = private unnamed_addr constant [13 x i8] c"\22) != 0 { s.\00" @.str1499 = private unnamed_addr constant [4 x i8] c" = \00" @.str1500 = private unnamed_addr constant [4 x i8] c" }\0A\00" @.str1501 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1502 = private unnamed_addr constant [4 x i8] c"Val\00" @.str1503 = private unnamed_addr constant [4 x i8] c"int\00" @.str1504 = private unnamed_addr constant [14 x i8] c"value_as_int(\00" @.str1505 = private unnamed_addr constant [2 x i8] c")\00" @.str1506 = private unnamed_addr constant [6 x i8] c"float\00" @.str1507 = private unnamed_addr constant [16 x i8] c"value_as_float(\00" @.str1508 = private unnamed_addr constant [2 x i8] c")\00" @.str1509 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1510 = private unnamed_addr constant [14 x i8] c"value_as_int(\00" @.str1511 = private unnamed_addr constant [7 x i8] c") != 0\00" @.str1512 = private unnamed_addr constant [7 x i8] c"string\00" @.str1513 = private unnamed_addr constant [13 x i8] c"ui_val_text(\00" @.str1514 = private unnamed_addr constant [2 x i8] c")\00" @.str1515 = private unnamed_addr constant [70 x i8] c"a prop or state is an int, a float, a bool, a string or a Val, not a \00" @.str1516 = private unnamed_addr constant [10 x i8] c"function \00" @.str1517 = private unnamed_addr constant [37 x i8] c"model(p: pointer) -> Val {\0A let s: \00" @.str1518 = private unnamed_addr constant [31 x i8] c" = p\0A let o = value_object()\0A\00" @.str1519 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4550: index out of range: \00" @.str1520 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4551: index out of range: \00" @.str1521 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4551: index out of range: \00" @.str1522 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4552: index out of range: \00" @.str1523 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4552: index out of range: \00" @.str1524 = private unnamed_addr constant [3 x i8] c"s.\00" @.str1525 = private unnamed_addr constant [17 x i8] c" value_put(o, \22\00" @.str1526 = private unnamed_addr constant [4 x i8] c"\22, \00" @.str1527 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str1528 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4557: index out of range: \00" @.str1529 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4558: index out of range: \00" @.str1530 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4558: index out of range: \00" @.str1531 = private unnamed_addr constant [4 x i8] c"(s)\00" @.str1532 = private unnamed_addr constant [17 x i8] c" value_put(o, \22\00" @.str1533 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4560: index out of range: \00" @.str1534 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4560: index out of range: \00" @.str1535 = private unnamed_addr constant [4 x i8] c"\22, \00" @.str1536 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str1537 = private unnamed_addr constant [14 x i8] c" return o\0A}\0A\00" @.str1538 = private unnamed_addr constant [4 x i8] c"Val\00" @.str1539 = private unnamed_addr constant [3 x i8] c"a \00" @.str1540 = private unnamed_addr constant [37 x i8] c" is something a template cannot read\00" @.str1541 = private unnamed_addr constant [10 x i8] c"function \00" @.str1542 = private unnamed_addr constant [61 x i8] c"call(p: pointer, name: string, args: Val) -> Val {\0A let s: \00" @.str1543 = private unnamed_addr constant [6 x i8] c" = p\0A\00" @.str1544 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4575: index out of range: \00" @.str1545 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4578: index out of range: \00" @.str1546 = private unnamed_addr constant [2 x i8] c"s\00" @.str1547 = private unnamed_addr constant [3 x i8] c", \00" @.str1548 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4582: index out of range: \00" @.str1549 = private unnamed_addr constant [15 x i8] c" if name == \22\00" @.str1550 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4585: index out of range: \00" @.str1551 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4585: index out of range: \00" @.str1552 = private unnamed_addr constant [5 x i8] c"\22 {\0A\00" @.str1553 = private unnamed_addr constant [2 x i8] c"(\00" @.str1554 = private unnamed_addr constant [2 x i8] c")\00" @.str1555 = private unnamed_addr constant [5 x i8] c"void\00" @.str1556 = private unnamed_addr constant [5 x i8] c" \00" @.str1557 = private unnamed_addr constant [26 x i8] c"\0A return value_null()\0A\00" @.str1558 = private unnamed_addr constant [12 x i8] c" return \00" @.str1559 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1560 = private unnamed_addr constant [5 x i8] c" }\0A\00" @.str1561 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4595: index out of range: \00" @.str1562 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4596: index out of range: \00" @.str1563 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4596: index out of range: \00" @.str1564 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4597: index out of range: \00" @.str1565 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4597: index out of range: \00" @.str1566 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4598: index out of range: \00" @.str1567 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4598: index out of range: \00" @.str1568 = private unnamed_addr constant [18 x i8] c"value_at(args, 0)\00" @.str1569 = private unnamed_addr constant [19 x i8] c" if name == \22set:\00" @.str1570 = private unnamed_addr constant [11 x i8] c"\22 {\0A s.\00" @.str1571 = private unnamed_addr constant [4 x i8] c" = \00" @.str1572 = private unnamed_addr constant [30 x i8] c"\0A return value_null()\0A }\0A\00" @.str1573 = private unnamed_addr constant [26 x i8] c" return value_new(99)\0A}\0A\00" @.str1574 = private unnamed_addr constant [16 x i8] c"value_at(args, \00" @.str1575 = private unnamed_addr constant [2 x i8] c")\00" @.str1576 = private unnamed_addr constant [4 x i8] c"int\00" @.str1577 = private unnamed_addr constant [6 x i8] c"float\00" @.str1578 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1579 = private unnamed_addr constant [7 x i8] c"string\00" @.str1580 = private unnamed_addr constant [4 x i8] c"Val\00" @.str1581 = private unnamed_addr constant [7 x i8] c" is a \00" @.str1582 = private unnamed_addr constant [65 x i8] c"; a template can pass an int, a float, a bool, a string or a Val\00" @.str1583 = private unnamed_addr constant [1 x i8] c"\00" @.str1584 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4617: index out of range: \00" @.str1585 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4618: index out of range: \00" @.str1586 = private unnamed_addr constant [5 x i8] c".xml\00" @.str1587 = private unnamed_addr constant [5 x i8] c".lss\00" @.str1588 = private unnamed_addr constant [13 x i8] c"there is no \00" @.str1589 = private unnamed_addr constant [69 x i8] c".xml beside it - a component's template is NAME.xml in its directory\00" @.str1590 = private unnamed_addr constant [1 x i8] c"\00" @.str1591 = private unnamed_addr constant [1 x i8] c"\00" @.str1592 = private unnamed_addr constant [10 x i8] c"function \00" @.str1593 = private unnamed_addr constant [56 x i8] c"class() -> UiClass {\0A let k = new UiClass\0A k.name = \22\00" @.str1594 = private unnamed_addr constant [3 x i8] c"\22\0A\00" @.str1595 = private unnamed_addr constant [17 x i8] c" k.xml_path = \22\00" @.str1596 = private unnamed_addr constant [13 x i8] c"\22\0A k.xml = \00" @.str1597 = private unnamed_addr constant [28 x i8] c"xml_text()\0A k.lss_path = \22\00" @.str1598 = private unnamed_addr constant [13 x i8] c"\22\0A k.lss = \00" @.str1599 = private unnamed_addr constant [12 x i8] c"lss_text()\0A\00" @.str1600 = private unnamed_addr constant [15 x i8] c" k.make = fn \00" @.str1601 = private unnamed_addr constant [20 x i8] c"new\0A k.props = fn \00" @.str1602 = private unnamed_addr constant [22 x i8] c"props\0A k.model = fn \00" @.str1603 = private unnamed_addr constant [21 x i8] c"model\0A k.call = fn \00" @.str1604 = private unnamed_addr constant [19 x i8] c"call\0A return k\0A}\0A\00" @.str1605 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4632: index out of range: \00" @.str1606 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4632: index out of range: \00" @.str1607 = private unnamed_addr constant [9 x i8] c"xml_text\00" @.str1608 = private unnamed_addr constant [9 x i8] c"lss_text\00" @.str1609 = private unnamed_addr constant [12 x i8] c"ui_register\00" @.str1610 = private unnamed_addr constant [6 x i8] c"class\00" @.str1611 = private unnamed_addr constant [10 x i8] c"function \00" @.str1612 = private unnamed_addr constant [30 x i8] c"() -> string {\0A return \22\22\0A}\0A\00" @.str1613 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4651: index out of range: \00" @.str1614 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4651: index out of range: \00" @.str1615 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4652: index out of range: \00" @.str1616 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4652: index out of range: \00" @.str1617 = private unnamed_addr constant [47 x i8] c"its stylesheets @import each other in a circle\00" @.str1618 = private unnamed_addr constant [1 x i8] c"\00" @.str1619 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1620 = private unnamed_addr constant [24 x i8] c"its stylesheet imports \00" @.str1621 = private unnamed_addr constant [21 x i8] c", which is not there\00" @.str1622 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1623 = private unnamed_addr constant [8 x i8] c"@import\00" @.str1624 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4696: index out of range: \00" @.str1625 = private unnamed_addr constant [11 x i8] c"component \00" @.str1626 = private unnamed_addr constant [33 x i8] c" is declared twice: here and in \00" @.str1627 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4697: index out of range: \00" @.str1628 = private unnamed_addr constant [2 x i8] c":\00" @.str1629 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4697: index out of range: \00" @.str1630 = private unnamed_addr constant [77 x i8] c" - a component is used by its name as a tag, so each needs a name of its own\00" @.str1631 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4770: index out of range: \00" @.str1632 = private unnamed_addr constant [3 x i8] c" \00" @.str1633 = private unnamed_addr constant [53 x i8] c" = getelementptr inbounds i32, ptr @L_cov_hits, i32 \00" @.str1634 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1635 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str1636 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1637 = private unnamed_addr constant [4 x i8] c", 1\00" @.str1638 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str1639 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1640 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1641 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4811: index out of range: \00" @.str1642 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4811: index out of range: \00" @.str1643 = private unnamed_addr constant [3 x i8] c"%t\00" @.str1644 = private unnamed_addr constant [3 x i8] c" \00" @.str1645 = private unnamed_addr constant [11 x i8] c" = alloca \00" @.str1646 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1647 = private unnamed_addr constant [3 x i8] c"%t\00" @.str1648 = private unnamed_addr constant [4 x i8] c"int\00" @.str1649 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1650 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1651 = private unnamed_addr constant [7 x i8] c"entity\00" @.str1652 = private unnamed_addr constant [4 x i8] c"i32\00" @.str1653 = private unnamed_addr constant [4 x i8] c"i32\00" @.str1654 = private unnamed_addr constant [10 x i8] c"countdown\00" @.str1655 = private unnamed_addr constant [4 x i8] c"i32\00" @.str1656 = private unnamed_addr constant [5 x i8] c"long\00" @.str1657 = private unnamed_addr constant [4 x i8] c"i64\00" @.str1658 = private unnamed_addr constant [6 x i8] c"float\00" @.str1659 = private unnamed_addr constant [6 x i8] c"float\00" @.str1660 = private unnamed_addr constant [7 x i8] c"double\00" @.str1661 = private unnamed_addr constant [7 x i8] c"double\00" @.str1662 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1663 = private unnamed_addr constant [4 x i8] c"i64\00" @.str1664 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str1665 = private unnamed_addr constant [4 x i8] c"i64\00" @.str1666 = private unnamed_addr constant [5 x i8] c"Rect\00" @.str1667 = private unnamed_addr constant [5 x i8] c"i128\00" @.str1668 = private unnamed_addr constant [5 x i8] c"byte\00" @.str1669 = private unnamed_addr constant [3 x i8] c"i8\00" @.str1670 = private unnamed_addr constant [6 x i8] c"words\00" @.str1671 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str1672 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str1673 = private unnamed_addr constant [7 x i8] c"floats\00" @.str1674 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str1675 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str1676 = private unnamed_addr constant [5 x i8] c"void\00" @.str1677 = private unnamed_addr constant [5 x i8] c"void\00" @.str1678 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str1679 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4853: index out of range: \00" @.str1680 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4858: index out of range: \00" @.str1681 = private unnamed_addr constant [6 x i8] c"%Cmp_\00" @.str1682 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4868: index out of range: \00" @.str1683 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4873: index out of range: \00" @.str1684 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4873: index out of range: \00" @.str1685 = private unnamed_addr constant [4 x i8] c"int\00" @.str1686 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4881: index out of range: \00" @.str1687 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4894: index out of range: \00" @.str1688 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4897: index out of range: \00" @.str1689 = private unnamed_addr constant [10 x i8] c"EndReason\00" @.str1690 = private unnamed_addr constant [10 x i8] c"Despawned\00" @.str1691 = private unnamed_addr constant [10 x i8] c"SceneExit\00" @.str1692 = private unnamed_addr constant [5 x i8] c"Quit\00" @.str1693 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4915: index out of range: \00" @.str1694 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4920: index out of range: \00" @.str1695 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4925: index out of range: \00" @.str1696 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4932: index out of range: \00" @.str1697 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4933: index out of range: \00" @.str1698 = private unnamed_addr constant [10 x i8] c"countdown\00" @.str1699 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4940: index out of range: \00" @.str1700 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4954: index out of range: \00" @.str1701 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4959: index out of range: \00" @.str1702 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4973: index out of range: \00" @.str1703 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4983: index out of range: \00" @.str1704 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:4998: index out of range: \00" @.str1705 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5012: index out of range: \00" @.str1706 = private unnamed_addr constant [2 x i8] c".\00" @.str1707 = private unnamed_addr constant [2 x i8] c".\00" @.str1708 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5029: index out of range: \00" @.str1709 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5029: index out of range: \00" @.str1710 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5035: index out of range: \00" @.str1711 = private unnamed_addr constant [3 x i8] c"of\00" @.str1712 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str1713 = private unnamed_addr constant [5 x i8] c"make\00" @.str1714 = private unnamed_addr constant [5 x i8] c"zero\00" @.str1715 = private unnamed_addr constant [4 x i8] c"add\00" @.str1716 = private unnamed_addr constant [4 x i8] c"sub\00" @.str1717 = private unnamed_addr constant [6 x i8] c"scale\00" @.str1718 = private unnamed_addr constant [6 x i8] c"along\00" @.str1719 = private unnamed_addr constant [5 x i8] c"step\00" @.str1720 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str1721 = private unnamed_addr constant [4 x i8] c"Map\00" @.str1722 = private unnamed_addr constant [12 x i8] c"random_cell\00" @.str1723 = private unnamed_addr constant [16 x i8] c"random_cell_far\00" @.str1724 = private unnamed_addr constant [8 x i8] c"to_tile\00" @.str1725 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str1726 = private unnamed_addr constant [9 x i8] c"Collider\00" @.str1727 = private unnamed_addr constant [7 x i8] c"center\00" @.str1728 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str1729 = private unnamed_addr constant [6 x i8] c"Input\00" @.str1730 = private unnamed_addr constant [7 x i8] c"move_i\00" @.str1731 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str1732 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5047: index out of range: \00" @.str1733 = private unnamed_addr constant [2 x i8] c"_\00" @.str1734 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5061: index out of range: \00" @.str1735 = private unnamed_addr constant [3 x i8] c"[]\00" @.str1736 = private unnamed_addr constant [7 x i8] c"string\00" @.str1737 = private unnamed_addr constant [5 x i8] c"long\00" @.str1738 = private unnamed_addr constant [4 x i8] c"int\00" @.str1739 = private unnamed_addr constant [6 x i8] c"float\00" @.str1740 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1741 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1742 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5085: index out of range: \00" @.str1743 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5085: index out of range: \00" @.str1744 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5103: index out of range: \00" @.str1745 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5103: index out of range: \00" @.str1746 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5111: index out of range: \00" @.str1747 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5111: index out of range: \00" @.str1748 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5124: index out of range: \00" @.str1749 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5124: index out of range: \00" @.str1750 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5136: index out of range: \00" @.str1751 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5136: index out of range: \00" @.str1752 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5141: index out of range: \00" @.str1753 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5141: index out of range: \00" @.str1754 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5158: index out of range: \00" @.str1755 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5158: index out of range: \00" @.str1756 = private unnamed_addr constant [7 x i8] c"entity\00" @.str1757 = private unnamed_addr constant [4 x i8] c"int\00" @.str1758 = private unnamed_addr constant [7 x i8] c"reason\00" @.str1759 = private unnamed_addr constant [4 x i8] c"int\00" @.str1760 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5190: index out of range: \00" @.str1761 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5195: index out of range: \00" @.str1762 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5212: index out of range: \00" @.str1763 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5212: index out of range: \00" @.str1764 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5212: index out of range: \00" @.str1765 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5212: index out of range: \00" @.str1766 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5215: index out of range: \00" @.str1767 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5219: index out of range: \00" @.str1768 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5226: index out of range: \00" @.str1769 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5226: index out of range: \00" @.str1770 = private unnamed_addr constant [2 x i8] c"'\00" @.str1771 = private unnamed_addr constant [34 x i8] c"' is declared twice in this block\00" @.str1772 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5230: index out of range: \00" @.str1773 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5233: index out of range: \00" @.str1774 = private unnamed_addr constant [6 x i8] c"@.str\00" @.str1775 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" @.str1776 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" @.str1777 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" @.str1778 = private unnamed_addr constant [2 x i8] c"-\00" @.str1779 = private unnamed_addr constant [2 x i8] c"-\00" @.str1780 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str1781 = private unnamed_addr constant [5 x i8] c"null\00" @.str1782 = private unnamed_addr constant [2 x i8] c"0\00" @.str1783 = private unnamed_addr constant [2 x i8] c"-\00" @.str1784 = private unnamed_addr constant [5 x i8] c"void\00" @.str1785 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5311: index out of range: \00" @.str1786 = private unnamed_addr constant [9 x i8] c" store \00" @.str1787 = private unnamed_addr constant [2 x i8] c" \00" @.str1788 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" @.str1789 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1790 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str1791 = private unnamed_addr constant [40 x i8] c"define void @L_init_globals() {\0Aentry:\0A\00" @.str1792 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str1793 = private unnamed_addr constant [34 x i8] c"; Ludic (self-hosted) -> LLVM IR\0A\00" @.str1794 = private unnamed_addr constant [31 x i8] c"declare i32 @printf(ptr, ...)\0A\00" @.str1795 = private unnamed_addr constant [26 x i8] c"declare ptr @malloc(i64)\0A\00" @.str1796 = private unnamed_addr constant [31 x i8] c"declare ptr @calloc(i64, i64)\0A\00" @.str1797 = private unnamed_addr constant [32 x i8] c"declare ptr @realloc(ptr, i64)\0A\00" @.str1798 = private unnamed_addr constant [25 x i8] c"declare void @free(ptr)\0A\00" @.str1799 = private unnamed_addr constant [40 x i8] c"declare i64 @fread(ptr, i64, i64, ptr)\0A\00" @.str1800 = private unnamed_addr constant [41 x i8] c"declare i64 @fwrite(ptr, i64, i64, ptr)\0A\00" @.str1801 = private unnamed_addr constant [26 x i8] c"declare i32 @fclose(ptr)\0A\00" @.str1802 = private unnamed_addr constant [30 x i8] c"declare ptr @fopen(ptr, ptr)\0A\00" @.str1803 = private unnamed_addr constant [35 x i8] c"declare i32 @fseek(ptr, i64, i32)\0A\00" @.str1804 = private unnamed_addr constant [25 x i8] c"declare i64 @ftell(ptr)\0A\00" @.str1805 = private unnamed_addr constant [24 x i8] c"declare i64 @time(ptr)\0A\00" @.str1806 = private unnamed_addr constant [25 x i8] c"declare void @exit(i32)\0A\00" @.str1807 = private unnamed_addr constant [26 x i8] c"declare i32 @system(ptr)\0A\00" @.str1808 = private unnamed_addr constant [26 x i8] c"declare ptr @getenv(ptr)\0A\00" @.str1809 = private unnamed_addr constant [36 x i8] c"declare ptr @memcpy(ptr, ptr, i64)\0A\00" @.str1810 = private unnamed_addr constant [36 x i8] c"declare ptr @memset(ptr, i32, i64)\0A\00" @.str1811 = private unnamed_addr constant [26 x i8] c"declare i64 @strlen(ptr)\0A\00" @.str1812 = private unnamed_addr constant [31 x i8] c"declare i32 @strcmp(ptr, ptr)\0A\00" @.str1813 = private unnamed_addr constant [37 x i8] c"declare i32 @strncmp(ptr, ptr, i64)\0A\00" @.str1814 = private unnamed_addr constant [31 x i8] c"declare ptr @strstr(ptr, ptr)\0A\00" @.str1815 = private unnamed_addr constant [24 x i8] c"declare i32 @atoi(ptr)\0A\00" @.str1816 = private unnamed_addr constant [24 x i8] c"declare i32 @getchar()\0A\00" @.str1817 = private unnamed_addr constant [27 x i8] c"declare i32 @putchar(i32)\0A\00" @.str1818 = private unnamed_addr constant [44 x i8] c"declare void @win_open(i32, i32, i32, ptr)\0A\00" @.str1819 = private unnamed_addr constant [25 x i8] c"declare i32 @win_poll()\0A\00" @.str1820 = private unnamed_addr constant [42 x i8] c"declare void @win_present(ptr, i32, i32)\0A\00" @.str1821 = private unnamed_addr constant [28 x i8] c"declare i32 @win_running()\0A\00" @.str1822 = private unnamed_addr constant [27 x i8] c"declare void @win_close()\0A\00" @.str1823 = private unnamed_addr constant [29 x i8] c"declare void @win_held(ptr)\0A\00" @.str1824 = private unnamed_addr constant [32 x i8] c"declare i32 @win_key_char(i32)\0A\00" @.str1825 = private unnamed_addr constant [33 x i8] c"declare i32 @win_text(ptr, i32)\0A\00" @.str1826 = private unnamed_addr constant [30 x i8] c"declare void @win_mouse(ptr)\0A\00" @.str1827 = private unnamed_addr constant [28 x i8] c"declare void @win_pad(ptr)\0A\00" @.str1828 = private unnamed_addr constant [30 x i8] c"declare void @win_touch(ptr)\0A\00" @.str1829 = private unnamed_addr constant [36 x i8] c"declare void @win_cursor_mode(i32)\0A\00" @.str1830 = private unnamed_addr constant [28 x i8] c"declare ptr @snd_load(ptr)\0A\00" @.str1831 = private unnamed_addr constant [44 x i8] c"declare void @snd_play(ptr, i32, i32, i32)\0A\00" @.str1832 = private unnamed_addr constant [29 x i8] c"declare void @snd_stop(ptr)\0A\00" @.str1833 = private unnamed_addr constant [31 x i8] c"declare i32 @snd_playing(ptr)\0A\00" @.str1834 = private unnamed_addr constant [40 x i8] c"declare void @snd_set_volume(ptr, i32)\0A\00" @.str1835 = private unnamed_addr constant [38 x i8] c"declare void @snd_set_rate(ptr, i32)\0A\00" @.str1836 = private unnamed_addr constant [37 x i8] c"declare void @snd_set_pan(ptr, i32)\0A\00" @.str1837 = private unnamed_addr constant [35 x i8] c"declare ptr @hs_req_new(ptr, ptr)\0A\00" @.str1838 = private unnamed_addr constant [44 x i8] c"declare void @hs_req_header(ptr, ptr, ptr)\0A\00" @.str1839 = private unnamed_addr constant [42 x i8] c"declare void @hs_req_body(ptr, ptr, i32)\0A\00" @.str1840 = private unnamed_addr constant [33 x i8] c"declare void @hs_send(i32, ptr)\0A\00" @.str1841 = private unnamed_addr constant [27 x i8] c"declare i32 @hs_done(i32)\0A\00" @.str1842 = private unnamed_addr constant [29 x i8] c"declare i32 @hs_status(i32)\0A\00" @.str1843 = private unnamed_addr constant [27 x i8] c"declare ptr @hs_body(i32)\0A\00" @.str1844 = private unnamed_addr constant [27 x i8] c"declare i32 @hs_blen(i32)\0A\00" @.str1845 = private unnamed_addr constant [34 x i8] c"declare ptr @hs_header(i32, ptr)\0A\00" @.str1846 = private unnamed_addr constant [28 x i8] c"declare void @hs_free(i32)\0A\00" @.str1847 = private unnamed_addr constant [34 x i8] c"@__stderrp = external global ptr\0A\00" @.str1848 = private unnamed_addr constant [34 x i8] c"@__stdoutp = external global ptr\0A\00" @.str1849 = private unnamed_addr constant [64 x i8] c"@.fmt_int = private unnamed_addr constant [4 x i8] c\22%d\5C0A\5C00\22\0A\00" @.str1850 = private unnamed_addr constant [67 x i8] c"@.fmt_long = private unnamed_addr constant [6 x i8] c\22%lld\5C0A\5C00\22\0A\00" @.str1851 = private unnamed_addr constant [65 x i8] c"@.fmt_line = private unnamed_addr constant [4 x i8] c\22%s\5C0A\5C00\22\0A\00" @.str1852 = private unnamed_addr constant [33 x i8] c"@L_argc = internal global i32 0\0A\00" @.str1853 = private unnamed_addr constant [36 x i8] c"@L_argv = internal global ptr null\0A\00" @.str1854 = private unnamed_addr constant [34 x i8] c"@L_clock = internal global i32 0\0A\00" @.str1855 = private unnamed_addr constant [46 x i8] c"@.gametitle = private unnamed_addr constant [\00" @.str1856 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" @.str1857 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" @.str1858 = private unnamed_addr constant [34 x i8] c"%LSlice = type { ptr, i32, i32 }\0A\00" @.str1859 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5415: index out of range: \00" @.str1860 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5419: index out of range: \00" @.str1861 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5419: index out of range: \00" @.str1862 = private unnamed_addr constant [10 x i8] c"property \00" @.str1863 = private unnamed_addr constant [63 x i8] c" is also a property of the engine runtime; choose another name\00" @.str1864 = private unnamed_addr constant [10 x i8] c"property \00" @.str1865 = private unnamed_addr constant [19 x i8] c" is declared twice\00" @.str1866 = private unnamed_addr constant [11 x i8] c" = type { \00" @.str1867 = private unnamed_addr constant [4 x i8] c"i32\00" @.str1868 = private unnamed_addr constant [3 x i8] c", \00" @.str1869 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5430: index out of range: \00" @.str1870 = private unnamed_addr constant [4 x i8] c" }\0A\00" @.str1871 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5440: index out of range: \00" @.str1872 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5444: index out of range: \00" @.str1873 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5444: index out of range: \00" @.str1874 = private unnamed_addr constant [10 x i8] c"variable \00" @.str1875 = private unnamed_addr constant [63 x i8] c" is also a variable of the engine runtime; choose another name\00" @.str1876 = private unnamed_addr constant [10 x i8] c"variable \00" @.str1877 = private unnamed_addr constant [19 x i8] c" is declared twice\00" @.str1878 = private unnamed_addr constant [4 x i8] c"@g_\00" @.str1879 = private unnamed_addr constant [20 x i8] c" = internal global \00" @.str1880 = private unnamed_addr constant [2 x i8] c" \00" @.str1881 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1882 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5465: index out of range: \00" @.str1883 = private unnamed_addr constant [9 x i8] c"declare \00" @.str1884 = private unnamed_addr constant [3 x i8] c" @\00" @.str1885 = private unnamed_addr constant [2 x i8] c"(\00" @.str1886 = private unnamed_addr constant [3 x i8] c", \00" @.str1887 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5471: index out of range: \00" @.str1888 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str1889 = private unnamed_addr constant [41 x i8] c"define i32 @lp_str_eq(ptr %a, ptr %b) {\0A\00" @.str1890 = private unnamed_addr constant [25 x i8] c"entry:\0A br label %loop\0A\00" @.str1891 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00" @.str1892 = private unnamed_addr constant [51 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %i\0A\00" @.str1893 = private unnamed_addr constant [51 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %i\0A\00" @.str1894 = private unnamed_addr constant [51 x i8] c" %ca = load i8, ptr %pa\0A %cb = load i8, ptr %pb\0A\00" @.str1895 = private unnamed_addr constant [66 x i8] c" %df = icmp ne i8 %ca, %cb\0A br i1 %df, label %ret0, label %chk\0A\00" @.str1896 = private unnamed_addr constant [70 x i8] c"chk:\0A %zt = icmp eq i8 %ca, 0\0A br i1 %zt, label %ret1, label %cont\0A\00" @.str1897 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" @.str1898 = private unnamed_addr constant [39 x i8] c"ret1:\0A ret i32 1\0Aret0:\0A ret i32 0\0A}\0A\00" @.str1899 = private unnamed_addr constant [45 x i8] c"define ptr @lp_str_concat(ptr %a, ptr %b) {\0A\00" @.str1900 = private unnamed_addr constant [23 x i8] c"entry:\0A br label %al\0A\00" @.str1901 = private unnamed_addr constant [51 x i8] c"al:\0A %ia = phi i32 [ 0, %entry ], [ %ia1, %alb ]\0A\00" @.str1902 = private unnamed_addr constant [78 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %ia\0A %cca = load i8, ptr %pa\0A\00" @.str1903 = private unnamed_addr constant [64 x i8] c" %za = icmp eq i8 %cca, 0\0A br i1 %za, label %bl0, label %alb\0A\00" @.str1904 = private unnamed_addr constant [45 x i8] c"alb:\0A %ia1 = add i32 %ia, 1\0A br label %al\0A\00" @.str1905 = private unnamed_addr constant [21 x i8] c"bl0:\0A br label %bl\0A\00" @.str1906 = private unnamed_addr constant [49 x i8] c"bl:\0A %ib = phi i32 [ 0, %bl0 ], [ %ib1, %blb ]\0A\00" @.str1907 = private unnamed_addr constant [78 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %ib\0A %ccb = load i8, ptr %pb\0A\00" @.str1908 = private unnamed_addr constant [66 x i8] c" %zb = icmp eq i8 %ccb, 0\0A br i1 %zb, label %alloc, label %blb\0A\00" @.str1909 = private unnamed_addr constant [45 x i8] c"blb:\0A %ib1 = add i32 %ib, 1\0A br label %bl\0A\00" @.str1910 = private unnamed_addr constant [58 x i8] c"alloc:\0A %sum = add i32 %ia, %ib\0A %sz = add i32 %sum, 1\0A\00" @.str1911 = private unnamed_addr constant [83 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %c1\0A\00" @.str1912 = private unnamed_addr constant [49 x i8] c"c1:\0A %i = phi i32 [ 0, %alloc ], [ %i1, %c1b ]\0A\00" @.str1913 = private unnamed_addr constant [66 x i8] c" %d1 = icmp slt i32 %i, %ia\0A br i1 %d1, label %c1b, label %c2i\0A\00" @.str1914 = private unnamed_addr constant [81 x i8] c"c1b:\0A %s1 = getelementptr inbounds i8, ptr %a, i32 %i\0A %v1 = load i8, ptr %s1\0A\00" @.str1915 = private unnamed_addr constant [77 x i8] c" %o1 = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %v1, ptr %o1\0A\00" @.str1916 = private unnamed_addr constant [38 x i8] c" %i1 = add i32 %i, 1\0A br label %c1\0A\00" @.str1917 = private unnamed_addr constant [21 x i8] c"c2i:\0A br label %c2\0A\00" @.str1918 = private unnamed_addr constant [47 x i8] c"c2:\0A %j = phi i32 [ 0, %c2i ], [ %j1, %c2b ]\0A\00" @.str1919 = private unnamed_addr constant [66 x i8] c" %d2 = icmp slt i32 %j, %ib\0A br i1 %d2, label %c2b, label %fin\0A\00" @.str1920 = private unnamed_addr constant [81 x i8] c"c2b:\0A %s2 = getelementptr inbounds i8, ptr %b, i32 %j\0A %v2 = load i8, ptr %s2\0A\00" @.str1921 = private unnamed_addr constant [102 x i8] c" %oj = add i32 %ia, %j\0A %o2 = getelementptr inbounds i8, ptr %out, i32 %oj\0A store i8 %v2, ptr %o2\0A\00" @.str1922 = private unnamed_addr constant [38 x i8] c" %j1 = add i32 %j, 1\0A br label %c2\0A\00" @.str1923 = private unnamed_addr constant [99 x i8] c"fin:\0A %pe = getelementptr inbounds i8, ptr %out, i32 %sum\0A store i8 0, ptr %pe\0A ret ptr %out\0A}\0A\00" @.str1924 = private unnamed_addr constant [35 x i8] c"define ptr @lp_int_str(i32 %n0) {\0A\00" @.str1925 = private unnamed_addr constant [42 x i8] c"entry:\0A %buf = call ptr @malloc(i64 24)\0A\00" @.str1926 = private unnamed_addr constant [56 x i8] c" %isneg = icmp slt i32 %n0, 0\0A %neg = sub i32 0, %n0\0A\00" @.str1927 = private unnamed_addr constant [44 x i8] c" %n = select i1 %isneg, i32 %neg, i32 %n0\0A\00" @.str1928 = private unnamed_addr constant [79 x i8] c" %term = getelementptr inbounds i8, ptr %buf, i32 23\0A store i8 0, ptr %term\0A\00" @.str1929 = private unnamed_addr constant [70 x i8] c" %iszero = icmp eq i32 %n0, 0\0A br i1 %iszero, label %zc, label %dl\0A\00" @.str1930 = private unnamed_addr constant [94 x i8] c"zc:\0A %zp = getelementptr inbounds i8, ptr %buf, i32 22\0A store i8 48, ptr %zp\0A ret ptr %zp\0A\00" @.str1931 = private unnamed_addr constant [23 x i8] c"dl:\0A br label %dloop\0A\00" @.str1932 = private unnamed_addr constant [104 x i8] c"dloop:\0A %pos = phi i32 [ 22, %dl ], [ %pos2, %dbody ]\0A %cur = phi i32 [ %n, %dl ], [ %cur2, %dbody ]\0A\00" @.str1933 = private unnamed_addr constant [72 x i8] c" %done = icmp eq i32 %cur, 0\0A br i1 %done, label %sign, label %dbody\0A\00" @.str1934 = private unnamed_addr constant [85 x i8] c"dbody:\0A %d = urem i32 %cur, 10\0A %ch = add i32 %d, 48\0A %ch8 = trunc i32 %ch to i8\0A\00" @.str1935 = private unnamed_addr constant [80 x i8] c" %pp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 %ch8, ptr %pp\0A\00" @.str1936 = private unnamed_addr constant [73 x i8] c" %cur2 = udiv i32 %cur, 10\0A %pos2 = sub i32 %pos, 1\0A br label %dloop\0A\00" @.str1937 = private unnamed_addr constant [49 x i8] c"sign:\0A br i1 %isneg, label %addneg, label %fin\0A\00" @.str1938 = private unnamed_addr constant [128 x i8] c"addneg:\0A %sp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 45, ptr %sp\0A %posn = sub i32 %pos, 1\0A br label %fin\0A\00" @.str1939 = private unnamed_addr constant [60 x i8] c"fin:\0A %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ]\0A\00" @.str1940 = private unnamed_addr constant [101 x i8] c" %rpos = add i32 %fpos, 1\0A %res = getelementptr inbounds i8, ptr %buf, i32 %rpos\0A ret ptr %res\0A}\0A\00" @.str1941 = private unnamed_addr constant [36 x i8] c"define ptr @lp_long_str(i64 %n0) {\0A\00" @.str1942 = private unnamed_addr constant [42 x i8] c"entry:\0A %buf = call ptr @malloc(i64 24)\0A\00" @.str1943 = private unnamed_addr constant [56 x i8] c" %isneg = icmp slt i64 %n0, 0\0A %neg = sub i64 0, %n0\0A\00" @.str1944 = private unnamed_addr constant [44 x i8] c" %n = select i1 %isneg, i64 %neg, i64 %n0\0A\00" @.str1945 = private unnamed_addr constant [79 x i8] c" %term = getelementptr inbounds i8, ptr %buf, i32 23\0A store i8 0, ptr %term\0A\00" @.str1946 = private unnamed_addr constant [70 x i8] c" %iszero = icmp eq i64 %n0, 0\0A br i1 %iszero, label %zc, label %dl\0A\00" @.str1947 = private unnamed_addr constant [94 x i8] c"zc:\0A %zp = getelementptr inbounds i8, ptr %buf, i32 22\0A store i8 48, ptr %zp\0A ret ptr %zp\0A\00" @.str1948 = private unnamed_addr constant [23 x i8] c"dl:\0A br label %dloop\0A\00" @.str1949 = private unnamed_addr constant [104 x i8] c"dloop:\0A %pos = phi i32 [ 22, %dl ], [ %pos2, %dbody ]\0A %cur = phi i64 [ %n, %dl ], [ %cur2, %dbody ]\0A\00" @.str1950 = private unnamed_addr constant [72 x i8] c" %done = icmp eq i64 %cur, 0\0A br i1 %done, label %sign, label %dbody\0A\00" @.str1951 = private unnamed_addr constant [116 x i8] c"dbody:\0A %d = urem i64 %cur, 10\0A %d32 = trunc i64 %d to i32\0A %ch = add i32 %d32, 48\0A %ch8 = trunc i32 %ch to i8\0A\00" @.str1952 = private unnamed_addr constant [80 x i8] c" %pp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 %ch8, ptr %pp\0A\00" @.str1953 = private unnamed_addr constant [73 x i8] c" %cur2 = udiv i64 %cur, 10\0A %pos2 = sub i32 %pos, 1\0A br label %dloop\0A\00" @.str1954 = private unnamed_addr constant [49 x i8] c"sign:\0A br i1 %isneg, label %addneg, label %fin\0A\00" @.str1955 = private unnamed_addr constant [128 x i8] c"addneg:\0A %sp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 45, ptr %sp\0A %posn = sub i32 %pos, 1\0A br label %fin\0A\00" @.str1956 = private unnamed_addr constant [60 x i8] c"fin:\0A %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ]\0A\00" @.str1957 = private unnamed_addr constant [101 x i8] c" %rpos = add i32 %fpos, 1\0A %res = getelementptr inbounds i8, ptr %buf, i32 %rpos\0A ret ptr %res\0A}\0A\00" @.str1958 = private unnamed_addr constant [58 x i8] c"define ptr @lp_str_slice(ptr %s, i32 %start, i32 %end) {\0A\00" @.str1959 = private unnamed_addr constant [62 x i8] c"entry:\0A %len = sub i32 %end, %start\0A %sz = add i32 %len, 1\0A\00" @.str1960 = private unnamed_addr constant [85 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %loop\0A\00" @.str1961 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %body ]\0A\00" @.str1962 = private unnamed_addr constant [66 x i8] c" %d = icmp slt i32 %i, %len\0A br i1 %d, label %body, label %fin\0A\00" @.str1963 = private unnamed_addr constant [109 x i8] c"body:\0A %si = add i32 %start, %i\0A %sp = getelementptr inbounds i8, ptr %s, i32 %si\0A %c = load i8, ptr %sp\0A\00" @.str1964 = private unnamed_addr constant [115 x i8] c" %op = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %c, ptr %op\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" @.str1965 = private unnamed_addr constant [99 x i8] c"fin:\0A %tp = getelementptr inbounds i8, ptr %out, i32 %len\0A store i8 0, ptr %tp\0A ret ptr %out\0A}\0A\00" @.str1966 = private unnamed_addr constant [11 x i8] c"LUDIC_DEPS\00" @.str1967 = private unnamed_addr constant [1 x i8] c"\00" @.str1968 = private unnamed_addr constant [1 x i8] c"\00" @.str1969 = private unnamed_addr constant [2 x i8] c" \00" @.str1970 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5611: index out of range: \00" @.str1971 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5612: index out of range: \00" @.str1972 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5612: index out of range: \00" @.str1973 = private unnamed_addr constant [1 x i8] c"\00" @.str1974 = private unnamed_addr constant [1 x i8] c"\00" @.str1975 = private unnamed_addr constant [7 x i8] c"write \00" @.str1976 = private unnamed_addr constant [2 x i8] c" \00" @.str1977 = private unnamed_addr constant [2 x i8] c" \00" @.str1978 = private unnamed_addr constant [2 x i8] c" \00" @.str1979 = private unnamed_addr constant [2 x i8] c":\00" @.str1980 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1981 = private unnamed_addr constant [11 x i8] c"LUDIC_DEPS\00" @.str1982 = private unnamed_addr constant [3 x i8] c"wb\00" @.str1983 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5648: index out of range: \00" @.str1984 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5652: index out of range: \00" @.str1985 = private unnamed_addr constant [1 x i8] c"\00" @.str1986 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5658: index out of range: \00" @.str1987 = private unnamed_addr constant [1 x i8] c"\00" @.str1988 = private unnamed_addr constant [2 x i8] c"-\00" @.str1989 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5661: index out of range: \00" @.str1990 = private unnamed_addr constant [1 x i8] c"\00" @.str1991 = private unnamed_addr constant [2 x i8] c"-\00" @.str1992 = private unnamed_addr constant [8 x i8] c"module \00" @.str1993 = private unnamed_addr constant [2 x i8] c" \00" @.str1994 = private unnamed_addr constant [2 x i8] c" \00" @.str1995 = private unnamed_addr constant [2 x i8] c" \00" @.str1996 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5671: index out of range: \00" @.str1997 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5675: index out of range: \00" @.str1998 = private unnamed_addr constant [1 x i8] c"\00" @.str1999 = private unnamed_addr constant [8 x i8] c"module \00" @.str2000 = private unnamed_addr constant [7 x i8] c" 1 - -\00" @.str2001 = private unnamed_addr constant [6 x i8] c"edge \00" @.str2002 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5686: index out of range: \00" @.str2003 = private unnamed_addr constant [2 x i8] c" \00" @.str2004 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5686: index out of range: \00" @.str2005 = private unnamed_addr constant [2 x i8] c" \00" @.str2006 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5686: index out of range: \00" @.str2007 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5691: index out of range: \00" @.str2008 = private unnamed_addr constant [32 x i8] c"member access on non-aggregate \00" @.str2009 = private unnamed_addr constant [15 x i8] c"no such field \00" @.str2010 = private unnamed_addr constant [3 x i8] c" \00" @.str2011 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str2012 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2013 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str2014 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2015 = private unnamed_addr constant [6 x i8] c"words\00" @.str2016 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds i32, ptr \00" @.str2017 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2018 = private unnamed_addr constant [4 x i8] c"int\00" @.str2019 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str2020 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds i32, ptr \00" @.str2021 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2022 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2023 = private unnamed_addr constant [7 x i8] c"floats\00" @.str2024 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str2025 = private unnamed_addr constant [6 x i8] c"float\00" @.str2026 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str2027 = private unnamed_addr constant [7 x i8] c"double\00" @.str2028 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" @.str2029 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2030 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2031 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str2032 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds ptr, ptr \00" @.str2033 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2034 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str2035 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str2036 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2037 = private unnamed_addr constant [5 x i8] c"byte\00" @.str2038 = private unnamed_addr constant [3 x i8] c" \00" @.str2039 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str2040 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" @.str2041 = private unnamed_addr constant [3 x i8] c" \00" @.str2042 = private unnamed_addr constant [18 x i8] c" = load ptr, ptr \00" @.str2043 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2044 = private unnamed_addr constant [3 x i8] c" \00" @.str2045 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str2046 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00" @.str2047 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str2048 = private unnamed_addr constant [14 x i8] c"icmp ult i32 \00" @.str2049 = private unnamed_addr constant [3 x i8] c", \00" @.str2050 = private unnamed_addr constant [5 x i8] c"ixok\00" @.str2051 = private unnamed_addr constant [6 x i8] c"ixbad\00" @.str2052 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str2053 = private unnamed_addr constant [10 x i8] c", label %\00" @.str2054 = private unnamed_addr constant [10 x i8] c", label %\00" @.str2055 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2056 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str2057 = private unnamed_addr constant [2 x i8] c":\00" @.str2058 = private unnamed_addr constant [23 x i8] c": index out of range: \00" @.str2059 = private unnamed_addr constant [41 x i8] c" call i32 (ptr, ptr, ...) @fprintf(ptr \00" @.str2060 = private unnamed_addr constant [25 x i8] c", ptr @.fmt_bounds, ptr \00" @.str2061 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2062 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2063 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2064 = private unnamed_addr constant [40 x i8] c" call void @exit(i32 1)\0A unreachable\0A\00" @.str2065 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str2066 = private unnamed_addr constant [3 x i8] c" \00" @.str2067 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str2068 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2069 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2070 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2071 = private unnamed_addr constant [7 x i8] c"resize\00" @.str2072 = private unnamed_addr constant [10 x i8] c"file_open\00" @.str2073 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str2074 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str2075 = private unnamed_addr constant [10 x i8] c"file_seek\00" @.str2076 = private unnamed_addr constant [10 x i8] c"file_tell\00" @.str2077 = private unnamed_addr constant [11 x i8] c"file_close\00" @.str2078 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str2079 = private unnamed_addr constant [4 x i8] c"arg\00" @.str2080 = private unnamed_addr constant [5 x i8] c"exit\00" @.str2081 = private unnamed_addr constant [12 x i8] c"file_stderr\00" @.str2082 = private unnamed_addr constant [12 x i8] c"file_stdout\00" @.str2083 = private unnamed_addr constant [4 x i8] c"run\00" @.str2084 = private unnamed_addr constant [7 x i8] c"getenv\00" @.str2085 = private unnamed_addr constant [14 x i8] c"world_despawn\00" @.str2086 = private unnamed_addr constant [3 x i8] c" \00" @.str2087 = private unnamed_addr constant [4 x i8] c" = \00" @.str2088 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2089 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5809: index out of range: \00" @.str2090 = private unnamed_addr constant [7 x i8] c"resize\00" @.str2091 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str2092 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2093 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" @.str2094 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str2095 = private unnamed_addr constant [2 x i8] c")\00" @.str2096 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2097 = private unnamed_addr constant [10 x i8] c"file_open\00" @.str2098 = private unnamed_addr constant [27 x i8] c"call ptr @lp_pak_open(ptr \00" @.str2099 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2100 = private unnamed_addr constant [2 x i8] c")\00" @.str2101 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2102 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str2103 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str2104 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5832: index out of range: \00" @.str2105 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str2106 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2107 = private unnamed_addr constant [7 x i8] c"@fread\00" @.str2108 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str2109 = private unnamed_addr constant [8 x i8] c"@fwrite\00" @.str2110 = private unnamed_addr constant [10 x i8] c"call i64 \00" @.str2111 = private unnamed_addr constant [6 x i8] c"(ptr \00" @.str2112 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" @.str2113 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2114 = private unnamed_addr constant [2 x i8] c")\00" @.str2115 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str2116 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2117 = private unnamed_addr constant [4 x i8] c"int\00" @.str2118 = private unnamed_addr constant [10 x i8] c"file_seek\00" @.str2119 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str2120 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2121 = private unnamed_addr constant [21 x i8] c"call i32 @fseek(ptr \00" @.str2122 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str2123 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2124 = private unnamed_addr constant [2 x i8] c")\00" @.str2125 = private unnamed_addr constant [4 x i8] c"int\00" @.str2126 = private unnamed_addr constant [10 x i8] c"file_tell\00" @.str2127 = private unnamed_addr constant [21 x i8] c"call i64 @ftell(ptr \00" @.str2128 = private unnamed_addr constant [2 x i8] c")\00" @.str2129 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str2130 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2131 = private unnamed_addr constant [4 x i8] c"int\00" @.str2132 = private unnamed_addr constant [11 x i8] c"file_close\00" @.str2133 = private unnamed_addr constant [24 x i8] c" call i32 @fclose(ptr \00" @.str2134 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2135 = private unnamed_addr constant [2 x i8] c"0\00" @.str2136 = private unnamed_addr constant [5 x i8] c"void\00" @.str2137 = private unnamed_addr constant [14 x i8] c"world_despawn\00" @.str2138 = private unnamed_addr constant [35 x i8] c" call void @fn_world_despawn(i32 \00" @.str2139 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2140 = private unnamed_addr constant [2 x i8] c"0\00" @.str2141 = private unnamed_addr constant [5 x i8] c"void\00" @.str2142 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str2143 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" @.str2144 = private unnamed_addr constant [4 x i8] c"int\00" @.str2145 = private unnamed_addr constant [4 x i8] c"arg\00" @.str2146 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" @.str2147 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" @.str2148 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2149 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str2150 = private unnamed_addr constant [7 x i8] c"string\00" @.str2151 = private unnamed_addr constant [5 x i8] c"exit\00" @.str2152 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" @.str2153 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2154 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" @.str2155 = private unnamed_addr constant [2 x i8] c"0\00" @.str2156 = private unnamed_addr constant [5 x i8] c"void\00" @.str2157 = private unnamed_addr constant [12 x i8] c"file_stderr\00" @.str2158 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2159 = private unnamed_addr constant [12 x i8] c"file_stdout\00" @.str2160 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2161 = private unnamed_addr constant [4 x i8] c"run\00" @.str2162 = private unnamed_addr constant [22 x i8] c"call i32 @system(ptr \00" @.str2163 = private unnamed_addr constant [2 x i8] c")\00" @.str2164 = private unnamed_addr constant [4 x i8] c"int\00" @.str2165 = private unnamed_addr constant [7 x i8] c"getenv\00" @.str2166 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" @.str2167 = private unnamed_addr constant [2 x i8] c")\00" @.str2168 = private unnamed_addr constant [7 x i8] c"string\00" @.str2169 = private unnamed_addr constant [2 x i8] c"0\00" @.str2170 = private unnamed_addr constant [5 x i8] c"void\00" @.str2171 = private unnamed_addr constant [28 x i8] c"call ptr @lp_win_stdio(i32 \00" @.str2172 = private unnamed_addr constant [2 x i8] c")\00" @.str2173 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stderrp\00" @.str2174 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stdoutp\00" @.str2175 = private unnamed_addr constant [5 x i8] c"free\00" @.str2176 = private unnamed_addr constant [5 x i8] c"fill\00" @.str2177 = private unnamed_addr constant [7 x i8] c"offset\00" @.str2178 = private unnamed_addr constant [10 x i8] c"read_char\00" @.str2179 = private unnamed_addr constant [9 x i8] c"as_fixed\00" @.str2180 = private unnamed_addr constant [7 x i8] c"as_int\00" @.str2181 = private unnamed_addr constant [12 x i8] c"is_windowed\00" @.str2182 = private unnamed_addr constant [11 x i8] c"game_title\00" @.str2183 = private unnamed_addr constant [9 x i8] c"win_open\00" @.str2184 = private unnamed_addr constant [9 x i8] c"win_poll\00" @.str2185 = private unnamed_addr constant [12 x i8] c"win_present\00" @.str2186 = private unnamed_addr constant [12 x i8] c"win_running\00" @.str2187 = private unnamed_addr constant [10 x i8] c"win_close\00" @.str2188 = private unnamed_addr constant [9 x i8] c"win_held\00" @.str2189 = private unnamed_addr constant [10 x i8] c"win_mouse\00" @.str2190 = private unnamed_addr constant [9 x i8] c"win_text\00" @.str2191 = private unnamed_addr constant [13 x i8] c"win_key_char\00" @.str2192 = private unnamed_addr constant [8 x i8] c"win_pad\00" @.str2193 = private unnamed_addr constant [10 x i8] c"win_touch\00" @.str2194 = private unnamed_addr constant [16 x i8] c"win_cursor_mode\00" @.str2195 = private unnamed_addr constant [9 x i8] c"snd_load\00" @.str2196 = private unnamed_addr constant [9 x i8] c"snd_play\00" @.str2197 = private unnamed_addr constant [9 x i8] c"snd_stop\00" @.str2198 = private unnamed_addr constant [12 x i8] c"snd_playing\00" @.str2199 = private unnamed_addr constant [15 x i8] c"snd_set_volume\00" @.str2200 = private unnamed_addr constant [13 x i8] c"snd_set_rate\00" @.str2201 = private unnamed_addr constant [12 x i8] c"snd_set_pan\00" @.str2202 = private unnamed_addr constant [11 x i8] c"hs_req_new\00" @.str2203 = private unnamed_addr constant [14 x i8] c"hs_req_header\00" @.str2204 = private unnamed_addr constant [12 x i8] c"hs_req_body\00" @.str2205 = private unnamed_addr constant [8 x i8] c"hs_send\00" @.str2206 = private unnamed_addr constant [8 x i8] c"hs_done\00" @.str2207 = private unnamed_addr constant [10 x i8] c"hs_status\00" @.str2208 = private unnamed_addr constant [8 x i8] c"hs_body\00" @.str2209 = private unnamed_addr constant [8 x i8] c"hs_blen\00" @.str2210 = private unnamed_addr constant [10 x i8] c"hs_header\00" @.str2211 = private unnamed_addr constant [8 x i8] c"hs_free\00" @.str2212 = private unnamed_addr constant [5 x i8] c"free\00" @.str2213 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5931: index out of range: \00" @.str2214 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str2215 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" @.str2216 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2217 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" @.str2218 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2219 = private unnamed_addr constant [2 x i8] c"0\00" @.str2220 = private unnamed_addr constant [5 x i8] c"void\00" @.str2221 = private unnamed_addr constant [5 x i8] c"fill\00" @.str2222 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5941: index out of range: \00" @.str2223 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str2224 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2225 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" @.str2226 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2227 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str2228 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2229 = private unnamed_addr constant [2 x i8] c"0\00" @.str2230 = private unnamed_addr constant [5 x i8] c"void\00" @.str2231 = private unnamed_addr constant [7 x i8] c"offset\00" @.str2232 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5947: index out of range: \00" @.str2233 = private unnamed_addr constant [3 x i8] c" \00" @.str2234 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" @.str2235 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2236 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2237 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2238 = private unnamed_addr constant [10 x i8] c"read_char\00" @.str2239 = private unnamed_addr constant [20 x i8] c"call i32 @getchar()\00" @.str2240 = private unnamed_addr constant [4 x i8] c"int\00" @.str2241 = private unnamed_addr constant [9 x i8] c"as_fixed\00" @.str2242 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5953: index out of range: \00" @.str2243 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2244 = private unnamed_addr constant [7 x i8] c"as_int\00" @.str2245 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:5954: index out of range: \00" @.str2246 = private unnamed_addr constant [4 x i8] c"int\00" @.str2247 = private unnamed_addr constant [12 x i8] c"is_windowed\00" @.str2248 = private unnamed_addr constant [2 x i8] c"1\00" @.str2249 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2250 = private unnamed_addr constant [2 x i8] c"0\00" @.str2251 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2252 = private unnamed_addr constant [11 x i8] c"game_title\00" @.str2253 = private unnamed_addr constant [12 x i8] c"@.gametitle\00" @.str2254 = private unnamed_addr constant [7 x i8] c"string\00" @.str2255 = private unnamed_addr constant [9 x i8] c"win_poll\00" @.str2256 = private unnamed_addr constant [21 x i8] c"call i32 @win_poll()\00" @.str2257 = private unnamed_addr constant [4 x i8] c"int\00" @.str2258 = private unnamed_addr constant [12 x i8] c"win_running\00" @.str2259 = private unnamed_addr constant [24 x i8] c"call i32 @win_running()\00" @.str2260 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2261 = private unnamed_addr constant [9 x i8] c"win_open\00" @.str2262 = private unnamed_addr constant [27 x i8] c" call void @win_open(i32 \00" @.str2263 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2264 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2265 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2266 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2267 = private unnamed_addr constant [2 x i8] c"0\00" @.str2268 = private unnamed_addr constant [5 x i8] c"void\00" @.str2269 = private unnamed_addr constant [12 x i8] c"win_present\00" @.str2270 = private unnamed_addr constant [30 x i8] c" call void @win_present(ptr \00" @.str2271 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2272 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2273 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2274 = private unnamed_addr constant [2 x i8] c"0\00" @.str2275 = private unnamed_addr constant [5 x i8] c"void\00" @.str2276 = private unnamed_addr constant [10 x i8] c"win_close\00" @.str2277 = private unnamed_addr constant [26 x i8] c" call void @win_close()\0A\00" @.str2278 = private unnamed_addr constant [2 x i8] c"0\00" @.str2279 = private unnamed_addr constant [5 x i8] c"void\00" @.str2280 = private unnamed_addr constant [9 x i8] c"win_held\00" @.str2281 = private unnamed_addr constant [27 x i8] c" call void @win_held(ptr \00" @.str2282 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2283 = private unnamed_addr constant [2 x i8] c"0\00" @.str2284 = private unnamed_addr constant [5 x i8] c"void\00" @.str2285 = private unnamed_addr constant [10 x i8] c"win_mouse\00" @.str2286 = private unnamed_addr constant [28 x i8] c" call void @win_mouse(ptr \00" @.str2287 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2288 = private unnamed_addr constant [2 x i8] c"0\00" @.str2289 = private unnamed_addr constant [5 x i8] c"void\00" @.str2290 = private unnamed_addr constant [13 x i8] c"win_key_char\00" @.str2291 = private unnamed_addr constant [28 x i8] c"call i32 @win_key_char(i32 \00" @.str2292 = private unnamed_addr constant [2 x i8] c")\00" @.str2293 = private unnamed_addr constant [4 x i8] c"int\00" @.str2294 = private unnamed_addr constant [9 x i8] c"win_text\00" @.str2295 = private unnamed_addr constant [24 x i8] c"call i32 @win_text(ptr \00" @.str2296 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2297 = private unnamed_addr constant [2 x i8] c")\00" @.str2298 = private unnamed_addr constant [4 x i8] c"int\00" @.str2299 = private unnamed_addr constant [8 x i8] c"win_pad\00" @.str2300 = private unnamed_addr constant [26 x i8] c" call void @win_pad(ptr \00" @.str2301 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2302 = private unnamed_addr constant [2 x i8] c"0\00" @.str2303 = private unnamed_addr constant [5 x i8] c"void\00" @.str2304 = private unnamed_addr constant [10 x i8] c"win_touch\00" @.str2305 = private unnamed_addr constant [28 x i8] c" call void @win_touch(ptr \00" @.str2306 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2307 = private unnamed_addr constant [2 x i8] c"0\00" @.str2308 = private unnamed_addr constant [5 x i8] c"void\00" @.str2309 = private unnamed_addr constant [16 x i8] c"win_cursor_mode\00" @.str2310 = private unnamed_addr constant [34 x i8] c" call void @win_cursor_mode(i32 \00" @.str2311 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2312 = private unnamed_addr constant [2 x i8] c"0\00" @.str2313 = private unnamed_addr constant [5 x i8] c"void\00" @.str2314 = private unnamed_addr constant [9 x i8] c"snd_load\00" @.str2315 = private unnamed_addr constant [24 x i8] c"call ptr @snd_load(ptr \00" @.str2316 = private unnamed_addr constant [2 x i8] c")\00" @.str2317 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2318 = private unnamed_addr constant [9 x i8] c"snd_play\00" @.str2319 = private unnamed_addr constant [27 x i8] c" call void @snd_play(ptr \00" @.str2320 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2321 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2322 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2323 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2324 = private unnamed_addr constant [2 x i8] c"0\00" @.str2325 = private unnamed_addr constant [5 x i8] c"void\00" @.str2326 = private unnamed_addr constant [9 x i8] c"snd_stop\00" @.str2327 = private unnamed_addr constant [27 x i8] c" call void @snd_stop(ptr \00" @.str2328 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2329 = private unnamed_addr constant [2 x i8] c"0\00" @.str2330 = private unnamed_addr constant [5 x i8] c"void\00" @.str2331 = private unnamed_addr constant [12 x i8] c"snd_playing\00" @.str2332 = private unnamed_addr constant [27 x i8] c"call i32 @snd_playing(ptr \00" @.str2333 = private unnamed_addr constant [2 x i8] c")\00" @.str2334 = private unnamed_addr constant [4 x i8] c"int\00" @.str2335 = private unnamed_addr constant [15 x i8] c"snd_set_volume\00" @.str2336 = private unnamed_addr constant [33 x i8] c" call void @snd_set_volume(ptr \00" @.str2337 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2338 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2339 = private unnamed_addr constant [2 x i8] c"0\00" @.str2340 = private unnamed_addr constant [5 x i8] c"void\00" @.str2341 = private unnamed_addr constant [13 x i8] c"snd_set_rate\00" @.str2342 = private unnamed_addr constant [31 x i8] c" call void @snd_set_rate(ptr \00" @.str2343 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2344 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2345 = private unnamed_addr constant [2 x i8] c"0\00" @.str2346 = private unnamed_addr constant [5 x i8] c"void\00" @.str2347 = private unnamed_addr constant [12 x i8] c"snd_set_pan\00" @.str2348 = private unnamed_addr constant [30 x i8] c" call void @snd_set_pan(ptr \00" @.str2349 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2350 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2351 = private unnamed_addr constant [2 x i8] c"0\00" @.str2352 = private unnamed_addr constant [5 x i8] c"void\00" @.str2353 = private unnamed_addr constant [11 x i8] c"hs_req_new\00" @.str2354 = private unnamed_addr constant [26 x i8] c"call ptr @hs_req_new(ptr \00" @.str2355 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2356 = private unnamed_addr constant [2 x i8] c")\00" @.str2357 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2358 = private unnamed_addr constant [14 x i8] c"hs_req_header\00" @.str2359 = private unnamed_addr constant [32 x i8] c" call void @hs_req_header(ptr \00" @.str2360 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2361 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2362 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2363 = private unnamed_addr constant [2 x i8] c"0\00" @.str2364 = private unnamed_addr constant [5 x i8] c"void\00" @.str2365 = private unnamed_addr constant [12 x i8] c"hs_req_body\00" @.str2366 = private unnamed_addr constant [30 x i8] c" call void @hs_req_body(ptr \00" @.str2367 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2368 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2369 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2370 = private unnamed_addr constant [2 x i8] c"0\00" @.str2371 = private unnamed_addr constant [5 x i8] c"void\00" @.str2372 = private unnamed_addr constant [8 x i8] c"hs_send\00" @.str2373 = private unnamed_addr constant [26 x i8] c" call void @hs_send(i32 \00" @.str2374 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2375 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2376 = private unnamed_addr constant [2 x i8] c"0\00" @.str2377 = private unnamed_addr constant [5 x i8] c"void\00" @.str2378 = private unnamed_addr constant [8 x i8] c"hs_done\00" @.str2379 = private unnamed_addr constant [23 x i8] c"call i32 @hs_done(i32 \00" @.str2380 = private unnamed_addr constant [2 x i8] c")\00" @.str2381 = private unnamed_addr constant [4 x i8] c"int\00" @.str2382 = private unnamed_addr constant [10 x i8] c"hs_status\00" @.str2383 = private unnamed_addr constant [25 x i8] c"call i32 @hs_status(i32 \00" @.str2384 = private unnamed_addr constant [2 x i8] c")\00" @.str2385 = private unnamed_addr constant [4 x i8] c"int\00" @.str2386 = private unnamed_addr constant [8 x i8] c"hs_body\00" @.str2387 = private unnamed_addr constant [23 x i8] c"call ptr @hs_body(i32 \00" @.str2388 = private unnamed_addr constant [2 x i8] c")\00" @.str2389 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2390 = private unnamed_addr constant [8 x i8] c"hs_blen\00" @.str2391 = private unnamed_addr constant [23 x i8] c"call i32 @hs_blen(i32 \00" @.str2392 = private unnamed_addr constant [2 x i8] c")\00" @.str2393 = private unnamed_addr constant [4 x i8] c"int\00" @.str2394 = private unnamed_addr constant [10 x i8] c"hs_header\00" @.str2395 = private unnamed_addr constant [25 x i8] c"call ptr @hs_header(i32 \00" @.str2396 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2397 = private unnamed_addr constant [2 x i8] c")\00" @.str2398 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str2399 = private unnamed_addr constant [8 x i8] c"hs_free\00" @.str2400 = private unnamed_addr constant [26 x i8] c" call void @hs_free(i32 \00" @.str2401 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2402 = private unnamed_addr constant [2 x i8] c"0\00" @.str2403 = private unnamed_addr constant [5 x i8] c"void\00" @.str2404 = private unnamed_addr constant [2 x i8] c"0\00" @.str2405 = private unnamed_addr constant [5 x i8] c"void\00" @.str2406 = private unnamed_addr constant [6 x i8] c"float\00" @.str2407 = private unnamed_addr constant [7 x i8] c"double\00" @.str2408 = private unnamed_addr constant [1 x i8] c"\00" @.str2409 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6037: index out of range: \00" @.str2410 = private unnamed_addr constant [1 x i8] c"\00" @.str2411 = private unnamed_addr constant [16 x i8] c"@deterministic \00" @.str2412 = private unnamed_addr constant [22 x i8] c" cannot compute with \00" @.str2413 = private unnamed_addr constant [56 x i8] c": floating point differs between machines \E2\80\94 use fixed\00" @.str2414 = private unnamed_addr constant [7 x i8] c"double\00" @.str2415 = private unnamed_addr constant [7 x i8] c"double\00" @.str2416 = private unnamed_addr constant [7 x i8] c"double\00" @.str2417 = private unnamed_addr constant [6 x i8] c"float\00" @.str2418 = private unnamed_addr constant [6 x i8] c"fneg \00" @.str2419 = private unnamed_addr constant [2 x i8] c" \00" @.str2420 = private unnamed_addr constant [5 x i8] c"fadd\00" @.str2421 = private unnamed_addr constant [2 x i8] c"-\00" @.str2422 = private unnamed_addr constant [5 x i8] c"fsub\00" @.str2423 = private unnamed_addr constant [2 x i8] c"*\00" @.str2424 = private unnamed_addr constant [5 x i8] c"fmul\00" @.str2425 = private unnamed_addr constant [2 x i8] c"/\00" @.str2426 = private unnamed_addr constant [5 x i8] c"fdiv\00" @.str2427 = private unnamed_addr constant [2 x i8] c"%\00" @.str2428 = private unnamed_addr constant [5 x i8] c"frem\00" @.str2429 = private unnamed_addr constant [2 x i8] c" \00" @.str2430 = private unnamed_addr constant [2 x i8] c" \00" @.str2431 = private unnamed_addr constant [3 x i8] c", \00" @.str2432 = private unnamed_addr constant [35 x i8] c"internal: not a literal expression\00" @.str2433 = private unnamed_addr constant [4 x i8] c"0.0\00" @.str2434 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str2435 = private unnamed_addr constant [5 x i8] c"null\00" @.str2436 = private unnamed_addr constant [6 x i8] c"float\00" @.str2437 = private unnamed_addr constant [7 x i8] c"double\00" @.str2438 = private unnamed_addr constant [4 x i8] c"0.0\00" @.str2439 = private unnamed_addr constant [2 x i8] c"0\00" @.str2440 = private unnamed_addr constant [3 x i8] c".0\00" @.str2441 = private unnamed_addr constant [7 x i8] c"double\00" @.str2442 = private unnamed_addr constant [16 x i8] c"fptrunc double \00" @.str2443 = private unnamed_addr constant [10 x i8] c" to float\00" @.str2444 = private unnamed_addr constant [6 x i8] c"float\00" @.str2445 = private unnamed_addr constant [7 x i8] c"double\00" @.str2446 = private unnamed_addr constant [13 x i8] c"fpext float \00" @.str2447 = private unnamed_addr constant [11 x i8] c" to double\00" @.str2448 = private unnamed_addr constant [7 x i8] c"double\00" @.str2449 = private unnamed_addr constant [6 x i8] c"float\00" @.str2450 = private unnamed_addr constant [66 x i8] c": a double does not narrow to float implicitly \E2\80\94 write float(x)\00" @.str2451 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2452 = private unnamed_addr constant [13 x i8] c": fixed and \00" @.str2453 = private unnamed_addr constant [41 x i8] c" do not mix implicitly \E2\80\94 convert with \00" @.str2454 = private unnamed_addr constant [16 x i8] c"(x) or fixed(x)\00" @.str2455 = private unnamed_addr constant [4 x i8] c"i64\00" @.str2456 = private unnamed_addr constant [4 x i8] c"i32\00" @.str2457 = private unnamed_addr constant [6 x i8] c": an \00" @.str2458 = private unnamed_addr constant [20 x i8] c" does not become a \00" @.str2459 = private unnamed_addr constant [47 x i8] c" implicitly in a numbers float file \E2\80\94 write \00" @.str2460 = private unnamed_addr constant [4 x i8] c"(x)\00" @.str2461 = private unnamed_addr constant [4 x i8] c"i64\00" @.str2462 = private unnamed_addr constant [12 x i8] c"sitofp i64 \00" @.str2463 = private unnamed_addr constant [5 x i8] c" to \00" @.str2464 = private unnamed_addr constant [4 x i8] c"i32\00" @.str2465 = private unnamed_addr constant [12 x i8] c"sitofp i32 \00" @.str2466 = private unnamed_addr constant [5 x i8] c" to \00" @.str2467 = private unnamed_addr constant [5 x i8] c": a \00" @.str2468 = private unnamed_addr constant [17 x i8] c" is not a number\00" @.str2469 = private unnamed_addr constant [25 x i8] c"LUDIC_WARN_FLOAT_PROMOTE\00" @.str2470 = private unnamed_addr constant [1 x i8] c"\00" @.str2471 = private unnamed_addr constant [2 x i8] c":\00" @.str2472 = private unnamed_addr constant [23 x i8] c": warning: a computed \00" @.str2473 = private unnamed_addr constant [17 x i8] c" is promoted to \00" @.str2474 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2475 = private unnamed_addr constant [2 x i8] c"<\00" @.str2476 = private unnamed_addr constant [4 x i8] c"olt\00" @.str2477 = private unnamed_addr constant [3 x i8] c"<=\00" @.str2478 = private unnamed_addr constant [4 x i8] c"ole\00" @.str2479 = private unnamed_addr constant [2 x i8] c">\00" @.str2480 = private unnamed_addr constant [4 x i8] c"ogt\00" @.str2481 = private unnamed_addr constant [3 x i8] c">=\00" @.str2482 = private unnamed_addr constant [4 x i8] c"oge\00" @.str2483 = private unnamed_addr constant [3 x i8] c"==\00" @.str2484 = private unnamed_addr constant [4 x i8] c"oeq\00" @.str2485 = private unnamed_addr constant [4 x i8] c"une\00" @.str2486 = private unnamed_addr constant [1 x i8] c"\00" @.str2487 = private unnamed_addr constant [1 x i8] c"\00" @.str2488 = private unnamed_addr constant [1 x i8] c"\00" @.str2489 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2490 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2491 = private unnamed_addr constant [1 x i8] c"\00" @.str2492 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2493 = private unnamed_addr constant [1 x i8] c"\00" @.str2494 = private unnamed_addr constant [6 x i8] c"float\00" @.str2495 = private unnamed_addr constant [18 x i8] c"the left side of \00" @.str2496 = private unnamed_addr constant [19 x i8] c"the right side of \00" @.str2497 = private unnamed_addr constant [6 x i8] c"fcmp \00" @.str2498 = private unnamed_addr constant [2 x i8] c" \00" @.str2499 = private unnamed_addr constant [2 x i8] c" \00" @.str2500 = private unnamed_addr constant [3 x i8] c", \00" @.str2501 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str2502 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2503 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2504 = private unnamed_addr constant [1 x i8] c"\00" @.str2505 = private unnamed_addr constant [2 x i8] c"+\00" @.str2506 = private unnamed_addr constant [5 x i8] c"fadd\00" @.str2507 = private unnamed_addr constant [2 x i8] c"-\00" @.str2508 = private unnamed_addr constant [5 x i8] c"fsub\00" @.str2509 = private unnamed_addr constant [2 x i8] c"*\00" @.str2510 = private unnamed_addr constant [5 x i8] c"fmul\00" @.str2511 = private unnamed_addr constant [2 x i8] c"/\00" @.str2512 = private unnamed_addr constant [5 x i8] c"fdiv\00" @.str2513 = private unnamed_addr constant [2 x i8] c"%\00" @.str2514 = private unnamed_addr constant [5 x i8] c"frem\00" @.str2515 = private unnamed_addr constant [1 x i8] c"\00" @.str2516 = private unnamed_addr constant [10 x i8] c"operator \00" @.str2517 = private unnamed_addr constant [20 x i8] c" does not apply to \00" @.str2518 = private unnamed_addr constant [2 x i8] c" \00" @.str2519 = private unnamed_addr constant [2 x i8] c" \00" @.str2520 = private unnamed_addr constant [3 x i8] c", \00" @.str2521 = private unnamed_addr constant [7 x i8] c"double\00" @.str2522 = private unnamed_addr constant [13 x i8] c"fpext float \00" @.str2523 = private unnamed_addr constant [11 x i8] c" to double\00" @.str2524 = private unnamed_addr constant [16 x i8] c"fptrunc double \00" @.str2525 = private unnamed_addr constant [10 x i8] c" to float\00" @.str2526 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2527 = private unnamed_addr constant [12 x i8] c"sitofp i32 \00" @.str2528 = private unnamed_addr constant [5 x i8] c" to \00" @.str2529 = private unnamed_addr constant [6 x i8] c"fdiv \00" @.str2530 = private unnamed_addr constant [2 x i8] c" \00" @.str2531 = private unnamed_addr constant [10 x i8] c", 65536.0\00" @.str2532 = private unnamed_addr constant [4 x i8] c"i32\00" @.str2533 = private unnamed_addr constant [4 x i8] c"i64\00" @.str2534 = private unnamed_addr constant [8 x i8] c"sitofp \00" @.str2535 = private unnamed_addr constant [2 x i8] c" \00" @.str2536 = private unnamed_addr constant [5 x i8] c" to \00" @.str2537 = private unnamed_addr constant [4 x i8] c"(x)\00" @.str2538 = private unnamed_addr constant [8 x i8] c"fptosi \00" @.str2539 = private unnamed_addr constant [2 x i8] c" \00" @.str2540 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2541 = private unnamed_addr constant [4 x i8] c"int\00" @.str2542 = private unnamed_addr constant [8 x i8] c"fptosi \00" @.str2543 = private unnamed_addr constant [2 x i8] c" \00" @.str2544 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2545 = private unnamed_addr constant [5 x i8] c"long\00" @.str2546 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2547 = private unnamed_addr constant [2 x i8] c" \00" @.str2548 = private unnamed_addr constant [10 x i8] c", 65536.0\00" @.str2549 = private unnamed_addr constant [8 x i8] c"fptosi \00" @.str2550 = private unnamed_addr constant [2 x i8] c" \00" @.str2551 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2552 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2553 = private unnamed_addr constant [6 x i8] c"float\00" @.str2554 = private unnamed_addr constant [14 x i8] c"float_bits(x)\00" @.str2555 = private unnamed_addr constant [15 x i8] c"bitcast float \00" @.str2556 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2557 = private unnamed_addr constant [4 x i8] c"int\00" @.str2558 = private unnamed_addr constant [13 x i8] c"bitcast i32 \00" @.str2559 = private unnamed_addr constant [10 x i8] c" to float\00" @.str2560 = private unnamed_addr constant [6 x i8] c"float\00" @.str2561 = private unnamed_addr constant [7 x i8] c"double\00" @.str2562 = private unnamed_addr constant [15 x i8] c"double_bits(x)\00" @.str2563 = private unnamed_addr constant [16 x i8] c"bitcast double \00" @.str2564 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2565 = private unnamed_addr constant [5 x i8] c"long\00" @.str2566 = private unnamed_addr constant [13 x i8] c"bitcast i64 \00" @.str2567 = private unnamed_addr constant [11 x i8] c" to double\00" @.str2568 = private unnamed_addr constant [7 x i8] c"double\00" @.str2569 = private unnamed_addr constant [2 x i8] c"0\00" @.str2570 = private unnamed_addr constant [6 x i8] c"float\00" @.str2571 = private unnamed_addr constant [13 x i8] c"fpext float \00" @.str2572 = private unnamed_addr constant [11 x i8] c" to double\00" @.str2573 = private unnamed_addr constant [2 x i8] c"1\00" @.str2574 = private unnamed_addr constant [28 x i8] c"call ptr @lp_fp_str(double \00" @.str2575 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2576 = private unnamed_addr constant [2 x i8] c")\00" @.str2577 = private unnamed_addr constant [7 x i8] c"string\00" @.str2578 = private unnamed_addr constant [43 x i8] c"declare i32 @snprintf(ptr, i64, ptr, ...)\0A\00" @.str2579 = private unnamed_addr constant [34 x i8] c"declare double @strtod(ptr, ptr)\0A\00" @.str2580 = private unnamed_addr constant [32 x i8] c"declare ptr @strpbrk(ptr, ptr)\0A\00" @.str2581 = private unnamed_addr constant [63 x i8] c"@.fmt_fpg = private unnamed_addr constant [5 x i8] c\22%.*g\5C00\22\0A\00" @.str2582 = private unnamed_addr constant [67 x i8] c"@.fp_marks = private unnamed_addr constant [8 x i8] c\22.eEnNiI\5C00\22\0A\00" @.str2583 = private unnamed_addr constant [49 x i8] c"define ptr @lp_fp_str(double %v, i32 %single) {\0A\00" @.str2584 = private unnamed_addr constant [58 x i8] c"entry:\0A %buf = call ptr @malloc(i64 40)\0A br label %try\0A\00" @.str2585 = private unnamed_addr constant [52 x i8] c"try:\0A %p = phi i32 [ 6, %entry ], [ %p1, %again ]\0A\00" @.str2586 = private unnamed_addr constant [100 x i8] c" %w = call i32 (ptr, i64, ptr, ...) @snprintf(ptr %buf, i64 36, ptr @.fmt_fpg, i32 %p, double %v)\0A\00" @.str2587 = private unnamed_addr constant [48 x i8] c" %r = call double @strtod(ptr %buf, ptr null)\0A\00" @.str2588 = private unnamed_addr constant [71 x i8] c" %rf = fptrunc double %r to float\0A %vf = fptrunc double %v to float\0A\00" @.str2589 = private unnamed_addr constant [66 x i8] c" %eqf = fcmp oeq float %rf, %vf\0A %eqd = fcmp oeq double %r, %v\0A\00" @.str2590 = private unnamed_addr constant [74 x i8] c" %is1 = icmp ne i32 %single, 0\0A %eq = select i1 %is1, i1 %eqf, i1 %eqd\0A\00" @.str2591 = private unnamed_addr constant [80 x i8] c" %p1 = add i32 %p, 1\0A %last = icmp sge i32 %p, 17\0A %stop = or i1 %eq, %last\0A\00" @.str2592 = private unnamed_addr constant [42 x i8] c" br i1 %stop, label %done, label %again\0A\00" @.str2593 = private unnamed_addr constant [24 x i8] c"again:\0A br label %try\0A\00" @.str2594 = private unnamed_addr constant [96 x i8] c"done:\0A %mark = call ptr @strpbrk(ptr %buf, ptr @.fp_marks)\0A %whole = icmp eq ptr %mark, null\0A\00" @.str2595 = private unnamed_addr constant [40 x i8] c" br i1 %whole, label %dot, label %out\0A\00" @.str2596 = private unnamed_addr constant [96 x i8] c"dot:\0A %n64 = call i64 @strlen(ptr %buf)\0A %e0 = getelementptr inbounds i8, ptr %buf, i64 %n64\0A\00" @.str2597 = private unnamed_addr constant [101 x i8] c" store i8 46, ptr %e0\0A %n1 = add i64 %n64, 1\0A %e1 = getelementptr inbounds i8, ptr %buf, i64 %n1\0A\00" @.str2598 = private unnamed_addr constant [101 x i8] c" store i8 48, ptr %e1\0A %n2 = add i64 %n64, 2\0A %e2 = getelementptr inbounds i8, ptr %buf, i64 %n2\0A\00" @.str2599 = private unnamed_addr constant [39 x i8] c" store i8 0, ptr %e2\0A br label %out\0A\00" @.str2600 = private unnamed_addr constant [23 x i8] c"out:\0A ret ptr %buf\0A}\0A\00" @.str2601 = private unnamed_addr constant [2 x i8] c"4\00" @.str2602 = private unnamed_addr constant [7 x i8] c"floats\00" @.str2603 = private unnamed_addr constant [7 x i8] c"double\00" @.str2604 = private unnamed_addr constant [2 x i8] c"8\00" @.str2605 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str2606 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str2607 = private unnamed_addr constant [3 x i8] c", \00" @.str2608 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str2609 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2610 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str2611 = private unnamed_addr constant [2 x i8] c")\00" @.str2612 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6310: index out of range: \00" @.str2613 = private unnamed_addr constant [6 x i8] c"float\00" @.str2614 = private unnamed_addr constant [2 x i8] c"f\00" @.str2615 = private unnamed_addr constant [9 x i8] c"declare \00" @.str2616 = private unnamed_addr constant [3 x i8] c" @\00" @.str2617 = private unnamed_addr constant [2 x i8] c"(\00" @.str2618 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2619 = private unnamed_addr constant [6 x i8] c"call \00" @.str2620 = private unnamed_addr constant [3 x i8] c" @\00" @.str2621 = private unnamed_addr constant [2 x i8] c"(\00" @.str2622 = private unnamed_addr constant [2 x i8] c" \00" @.str2623 = private unnamed_addr constant [2 x i8] c")\00" @.str2624 = private unnamed_addr constant [6 x i8] c"float\00" @.str2625 = private unnamed_addr constant [2 x i8] c"f\00" @.str2626 = private unnamed_addr constant [9 x i8] c"declare \00" @.str2627 = private unnamed_addr constant [3 x i8] c" @\00" @.str2628 = private unnamed_addr constant [2 x i8] c"(\00" @.str2629 = private unnamed_addr constant [3 x i8] c", \00" @.str2630 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2631 = private unnamed_addr constant [6 x i8] c"call \00" @.str2632 = private unnamed_addr constant [3 x i8] c" @\00" @.str2633 = private unnamed_addr constant [2 x i8] c"(\00" @.str2634 = private unnamed_addr constant [2 x i8] c" \00" @.str2635 = private unnamed_addr constant [3 x i8] c", \00" @.str2636 = private unnamed_addr constant [2 x i8] c" \00" @.str2637 = private unnamed_addr constant [2 x i8] c")\00" @.str2638 = private unnamed_addr constant [4 x i8] c"f64\00" @.str2639 = private unnamed_addr constant [6 x i8] c"float\00" @.str2640 = private unnamed_addr constant [4 x i8] c"f32\00" @.str2641 = private unnamed_addr constant [9 x i8] c"declare \00" @.str2642 = private unnamed_addr constant [8 x i8] c" @llvm.\00" @.str2643 = private unnamed_addr constant [2 x i8] c".\00" @.str2644 = private unnamed_addr constant [2 x i8] c"(\00" @.str2645 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2646 = private unnamed_addr constant [6 x i8] c"call \00" @.str2647 = private unnamed_addr constant [8 x i8] c" @llvm.\00" @.str2648 = private unnamed_addr constant [2 x i8] c".\00" @.str2649 = private unnamed_addr constant [2 x i8] c"(\00" @.str2650 = private unnamed_addr constant [2 x i8] c" \00" @.str2651 = private unnamed_addr constant [2 x i8] c")\00" @.str2652 = private unnamed_addr constant [4 x i8] c"f64\00" @.str2653 = private unnamed_addr constant [6 x i8] c"float\00" @.str2654 = private unnamed_addr constant [4 x i8] c"f32\00" @.str2655 = private unnamed_addr constant [9 x i8] c"declare \00" @.str2656 = private unnamed_addr constant [8 x i8] c" @llvm.\00" @.str2657 = private unnamed_addr constant [2 x i8] c".\00" @.str2658 = private unnamed_addr constant [2 x i8] c"(\00" @.str2659 = private unnamed_addr constant [3 x i8] c", \00" @.str2660 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2661 = private unnamed_addr constant [6 x i8] c"call \00" @.str2662 = private unnamed_addr constant [8 x i8] c" @llvm.\00" @.str2663 = private unnamed_addr constant [2 x i8] c".\00" @.str2664 = private unnamed_addr constant [2 x i8] c"(\00" @.str2665 = private unnamed_addr constant [2 x i8] c" \00" @.str2666 = private unnamed_addr constant [3 x i8] c", \00" @.str2667 = private unnamed_addr constant [2 x i8] c" \00" @.str2668 = private unnamed_addr constant [2 x i8] c")\00" @.str2669 = private unnamed_addr constant [4 x i8] c"olt\00" @.str2670 = private unnamed_addr constant [4 x i8] c"max\00" @.str2671 = private unnamed_addr constant [4 x i8] c"ogt\00" @.str2672 = private unnamed_addr constant [6 x i8] c"fcmp \00" @.str2673 = private unnamed_addr constant [2 x i8] c" \00" @.str2674 = private unnamed_addr constant [2 x i8] c" \00" @.str2675 = private unnamed_addr constant [3 x i8] c", \00" @.str2676 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2677 = private unnamed_addr constant [3 x i8] c", \00" @.str2678 = private unnamed_addr constant [2 x i8] c" \00" @.str2679 = private unnamed_addr constant [3 x i8] c", \00" @.str2680 = private unnamed_addr constant [2 x i8] c" \00" @.str2681 = private unnamed_addr constant [1 x i8] c"\00" @.str2682 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6356: index out of range: \00" @.str2683 = private unnamed_addr constant [1 x i8] c"\00" @.str2684 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6366: index out of range: \00" @.str2685 = private unnamed_addr constant [6 x i8] c"Math.\00" @.str2686 = private unnamed_addr constant [6 x i8] c"Math.\00" @.str2687 = private unnamed_addr constant [4 x i8] c"abs\00" @.str2688 = private unnamed_addr constant [5 x i8] c"fabs\00" @.str2689 = private unnamed_addr constant [5 x i8] c"sqrt\00" @.str2690 = private unnamed_addr constant [5 x i8] c"sqrt\00" @.str2691 = private unnamed_addr constant [4 x i8] c"sin\00" @.str2692 = private unnamed_addr constant [4 x i8] c"sin\00" @.str2693 = private unnamed_addr constant [4 x i8] c"cos\00" @.str2694 = private unnamed_addr constant [4 x i8] c"cos\00" @.str2695 = private unnamed_addr constant [4 x i8] c"exp\00" @.str2696 = private unnamed_addr constant [4 x i8] c"exp\00" @.str2697 = private unnamed_addr constant [4 x i8] c"log\00" @.str2698 = private unnamed_addr constant [4 x i8] c"log\00" @.str2699 = private unnamed_addr constant [4 x i8] c"tan\00" @.str2700 = private unnamed_addr constant [4 x i8] c"tan\00" @.str2701 = private unnamed_addr constant [5 x i8] c"asin\00" @.str2702 = private unnamed_addr constant [5 x i8] c"asin\00" @.str2703 = private unnamed_addr constant [5 x i8] c"acos\00" @.str2704 = private unnamed_addr constant [5 x i8] c"acos\00" @.str2705 = private unnamed_addr constant [5 x i8] c"atan\00" @.str2706 = private unnamed_addr constant [5 x i8] c"atan\00" @.str2707 = private unnamed_addr constant [6 x i8] c"floor\00" @.str2708 = private unnamed_addr constant [6 x i8] c"floor\00" @.str2709 = private unnamed_addr constant [5 x i8] c"ceil\00" @.str2710 = private unnamed_addr constant [5 x i8] c"ceil\00" @.str2711 = private unnamed_addr constant [6 x i8] c"round\00" @.str2712 = private unnamed_addr constant [6 x i8] c"round\00" @.str2713 = private unnamed_addr constant [6 x i8] c"trunc\00" @.str2714 = private unnamed_addr constant [6 x i8] c"trunc\00" @.str2715 = private unnamed_addr constant [5 x i8] c"sign\00" @.str2716 = private unnamed_addr constant [10 x i8] c"fcmp ogt \00" @.str2717 = private unnamed_addr constant [2 x i8] c" \00" @.str2718 = private unnamed_addr constant [6 x i8] c", 0.0\00" @.str2719 = private unnamed_addr constant [10 x i8] c"fcmp olt \00" @.str2720 = private unnamed_addr constant [2 x i8] c" \00" @.str2721 = private unnamed_addr constant [6 x i8] c", 0.0\00" @.str2722 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2723 = private unnamed_addr constant [16 x i8] c", i32 -1, i32 0\00" @.str2724 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2725 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str2726 = private unnamed_addr constant [4 x i8] c"int\00" @.str2727 = private unnamed_addr constant [11 x i8] c"deg_to_rad\00" @.str2728 = private unnamed_addr constant [6 x i8] c"fdiv \00" @.str2729 = private unnamed_addr constant [2 x i8] c" \00" @.str2730 = private unnamed_addr constant [18 x i8] c"3.141592653589793\00" @.str2731 = private unnamed_addr constant [8 x i8] c", 180.0\00" @.str2732 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2733 = private unnamed_addr constant [2 x i8] c" \00" @.str2734 = private unnamed_addr constant [3 x i8] c", \00" @.str2735 = private unnamed_addr constant [11 x i8] c"rad_to_deg\00" @.str2736 = private unnamed_addr constant [6 x i8] c"fdiv \00" @.str2737 = private unnamed_addr constant [9 x i8] c" 180.0, \00" @.str2738 = private unnamed_addr constant [18 x i8] c"3.141592653589793\00" @.str2739 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2740 = private unnamed_addr constant [2 x i8] c" \00" @.str2741 = private unnamed_addr constant [3 x i8] c", \00" @.str2742 = private unnamed_addr constant [4 x i8] c"min\00" @.str2743 = private unnamed_addr constant [4 x i8] c"max\00" @.str2744 = private unnamed_addr constant [4 x i8] c"pow\00" @.str2745 = private unnamed_addr constant [4 x i8] c"pow\00" @.str2746 = private unnamed_addr constant [6 x i8] c"atan2\00" @.str2747 = private unnamed_addr constant [6 x i8] c"atan2\00" @.str2748 = private unnamed_addr constant [6 x i8] c"hypot\00" @.str2749 = private unnamed_addr constant [6 x i8] c"hypot\00" @.str2750 = private unnamed_addr constant [7 x i8] c"posmod\00" @.str2751 = private unnamed_addr constant [5 x i8] c"wrap\00" @.str2752 = private unnamed_addr constant [6 x i8] c"frem \00" @.str2753 = private unnamed_addr constant [2 x i8] c" \00" @.str2754 = private unnamed_addr constant [3 x i8] c", \00" @.str2755 = private unnamed_addr constant [6 x i8] c"fadd \00" @.str2756 = private unnamed_addr constant [2 x i8] c" \00" @.str2757 = private unnamed_addr constant [3 x i8] c", \00" @.str2758 = private unnamed_addr constant [6 x i8] c"frem \00" @.str2759 = private unnamed_addr constant [2 x i8] c" \00" @.str2760 = private unnamed_addr constant [3 x i8] c", \00" @.str2761 = private unnamed_addr constant [6 x i8] c"clamp\00" @.str2762 = private unnamed_addr constant [4 x i8] c"max\00" @.str2763 = private unnamed_addr constant [4 x i8] c"min\00" @.str2764 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str2765 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2766 = private unnamed_addr constant [2 x i8] c" \00" @.str2767 = private unnamed_addr constant [3 x i8] c", \00" @.str2768 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2769 = private unnamed_addr constant [2 x i8] c" \00" @.str2770 = private unnamed_addr constant [3 x i8] c", \00" @.str2771 = private unnamed_addr constant [6 x i8] c"fadd \00" @.str2772 = private unnamed_addr constant [2 x i8] c" \00" @.str2773 = private unnamed_addr constant [3 x i8] c", \00" @.str2774 = private unnamed_addr constant [13 x i8] c"inverse_lerp\00" @.str2775 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2776 = private unnamed_addr constant [2 x i8] c" \00" @.str2777 = private unnamed_addr constant [3 x i8] c", \00" @.str2778 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2779 = private unnamed_addr constant [2 x i8] c" \00" @.str2780 = private unnamed_addr constant [3 x i8] c", \00" @.str2781 = private unnamed_addr constant [6 x i8] c"fdiv \00" @.str2782 = private unnamed_addr constant [2 x i8] c" \00" @.str2783 = private unnamed_addr constant [3 x i8] c", \00" @.str2784 = private unnamed_addr constant [6 x i8] c"remap\00" @.str2785 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2786 = private unnamed_addr constant [2 x i8] c" \00" @.str2787 = private unnamed_addr constant [3 x i8] c", \00" @.str2788 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2789 = private unnamed_addr constant [2 x i8] c" \00" @.str2790 = private unnamed_addr constant [3 x i8] c", \00" @.str2791 = private unnamed_addr constant [6 x i8] c"fdiv \00" @.str2792 = private unnamed_addr constant [2 x i8] c" \00" @.str2793 = private unnamed_addr constant [3 x i8] c", \00" @.str2794 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2795 = private unnamed_addr constant [2 x i8] c" \00" @.str2796 = private unnamed_addr constant [3 x i8] c", \00" @.str2797 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2798 = private unnamed_addr constant [2 x i8] c" \00" @.str2799 = private unnamed_addr constant [3 x i8] c", \00" @.str2800 = private unnamed_addr constant [6 x i8] c"fadd \00" @.str2801 = private unnamed_addr constant [2 x i8] c" \00" @.str2802 = private unnamed_addr constant [3 x i8] c", \00" @.str2803 = private unnamed_addr constant [11 x i8] c"smoothstep\00" @.str2804 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2805 = private unnamed_addr constant [2 x i8] c" \00" @.str2806 = private unnamed_addr constant [3 x i8] c", \00" @.str2807 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2808 = private unnamed_addr constant [2 x i8] c" \00" @.str2809 = private unnamed_addr constant [3 x i8] c", \00" @.str2810 = private unnamed_addr constant [6 x i8] c"fdiv \00" @.str2811 = private unnamed_addr constant [2 x i8] c" \00" @.str2812 = private unnamed_addr constant [3 x i8] c", \00" @.str2813 = private unnamed_addr constant [4 x i8] c"max\00" @.str2814 = private unnamed_addr constant [4 x i8] c"0.0\00" @.str2815 = private unnamed_addr constant [4 x i8] c"min\00" @.str2816 = private unnamed_addr constant [4 x i8] c"1.0\00" @.str2817 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2818 = private unnamed_addr constant [2 x i8] c" \00" @.str2819 = private unnamed_addr constant [3 x i8] c", \00" @.str2820 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2821 = private unnamed_addr constant [2 x i8] c" \00" @.str2822 = private unnamed_addr constant [6 x i8] c", 2.0\00" @.str2823 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2824 = private unnamed_addr constant [7 x i8] c" 3.0, \00" @.str2825 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2826 = private unnamed_addr constant [2 x i8] c" \00" @.str2827 = private unnamed_addr constant [3 x i8] c", \00" @.str2828 = private unnamed_addr constant [12 x i8] c"move_toward\00" @.str2829 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2830 = private unnamed_addr constant [2 x i8] c" \00" @.str2831 = private unnamed_addr constant [3 x i8] c", \00" @.str2832 = private unnamed_addr constant [5 x i8] c"fabs\00" @.str2833 = private unnamed_addr constant [10 x i8] c"fcmp ole \00" @.str2834 = private unnamed_addr constant [2 x i8] c" \00" @.str2835 = private unnamed_addr constant [3 x i8] c", \00" @.str2836 = private unnamed_addr constant [10 x i8] c"fcmp olt \00" @.str2837 = private unnamed_addr constant [2 x i8] c" \00" @.str2838 = private unnamed_addr constant [6 x i8] c", 0.0\00" @.str2839 = private unnamed_addr constant [6 x i8] c"fneg \00" @.str2840 = private unnamed_addr constant [2 x i8] c" \00" @.str2841 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2842 = private unnamed_addr constant [3 x i8] c", \00" @.str2843 = private unnamed_addr constant [2 x i8] c" \00" @.str2844 = private unnamed_addr constant [3 x i8] c", \00" @.str2845 = private unnamed_addr constant [2 x i8] c" \00" @.str2846 = private unnamed_addr constant [6 x i8] c"fadd \00" @.str2847 = private unnamed_addr constant [2 x i8] c" \00" @.str2848 = private unnamed_addr constant [3 x i8] c", \00" @.str2849 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2850 = private unnamed_addr constant [3 x i8] c", \00" @.str2851 = private unnamed_addr constant [2 x i8] c" \00" @.str2852 = private unnamed_addr constant [3 x i8] c", \00" @.str2853 = private unnamed_addr constant [2 x i8] c" \00" @.str2854 = private unnamed_addr constant [5 x i8] c"dist\00" @.str2855 = private unnamed_addr constant [6 x i8] c"dist2\00" @.str2856 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2857 = private unnamed_addr constant [2 x i8] c" \00" @.str2858 = private unnamed_addr constant [3 x i8] c", \00" @.str2859 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str2860 = private unnamed_addr constant [2 x i8] c" \00" @.str2861 = private unnamed_addr constant [3 x i8] c", \00" @.str2862 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2863 = private unnamed_addr constant [2 x i8] c" \00" @.str2864 = private unnamed_addr constant [3 x i8] c", \00" @.str2865 = private unnamed_addr constant [6 x i8] c"fmul \00" @.str2866 = private unnamed_addr constant [2 x i8] c" \00" @.str2867 = private unnamed_addr constant [3 x i8] c", \00" @.str2868 = private unnamed_addr constant [6 x i8] c"fadd \00" @.str2869 = private unnamed_addr constant [2 x i8] c" \00" @.str2870 = private unnamed_addr constant [3 x i8] c", \00" @.str2871 = private unnamed_addr constant [6 x i8] c"dist2\00" @.str2872 = private unnamed_addr constant [5 x i8] c"sqrt\00" @.str2873 = private unnamed_addr constant [6 x i8] c"Math.\00" @.str2874 = private unnamed_addr constant [9 x i8] c" has no \00" @.str2875 = private unnamed_addr constant [6 x i8] c" form\00" @.str2876 = private unnamed_addr constant [4 x i8] c"min\00" @.str2877 = private unnamed_addr constant [4 x i8] c"max\00" @.str2878 = private unnamed_addr constant [4 x i8] c"abs\00" @.str2879 = private unnamed_addr constant [6 x i8] c"clamp\00" @.str2880 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6514: index out of range: \00" @.str2881 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6518: index out of range: \00" @.str2882 = private unnamed_addr constant [4 x i8] c"abs\00" @.str2883 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6524: index out of range: \00" @.str2884 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str2885 = private unnamed_addr constant [4 x i8] c", 0\00" @.str2886 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str2887 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2888 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2889 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2890 = private unnamed_addr constant [4 x i8] c"min\00" @.str2891 = private unnamed_addr constant [4 x i8] c"max\00" @.str2892 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6530: index out of range: \00" @.str2893 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6530: index out of range: \00" @.str2894 = private unnamed_addr constant [4 x i8] c"slt\00" @.str2895 = private unnamed_addr constant [4 x i8] c"max\00" @.str2896 = private unnamed_addr constant [4 x i8] c"sgt\00" @.str2897 = private unnamed_addr constant [6 x i8] c"icmp \00" @.str2898 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str2899 = private unnamed_addr constant [3 x i8] c", \00" @.str2900 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2901 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2902 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2903 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6537: index out of range: \00" @.str2904 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6537: index out of range: \00" @.str2905 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6537: index out of range: \00" @.str2906 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str2907 = private unnamed_addr constant [3 x i8] c", \00" @.str2908 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2909 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2910 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2911 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str2912 = private unnamed_addr constant [3 x i8] c", \00" @.str2913 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2914 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2915 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2916 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str2917 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2918 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str2919 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2920 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str2921 = private unnamed_addr constant [3 x i8] c", \00" @.str2922 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str2923 = private unnamed_addr constant [5 x i8] c", 16\00" @.str2924 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str2925 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2926 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str2927 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2928 = private unnamed_addr constant [9 x i8] c"shl i64 \00" @.str2929 = private unnamed_addr constant [5 x i8] c", 16\00" @.str2930 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str2931 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2932 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" @.str2933 = private unnamed_addr constant [3 x i8] c", \00" @.str2934 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str2935 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2936 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str2937 = private unnamed_addr constant [3 x i8] c", \00" @.str2938 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str2939 = private unnamed_addr constant [3 x i8] c", \00" @.str2940 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str2941 = private unnamed_addr constant [3 x i8] c", \00" @.str2942 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str2943 = private unnamed_addr constant [3 x i8] c", \00" @.str2944 = private unnamed_addr constant [4 x i8] c"min\00" @.str2945 = private unnamed_addr constant [4 x i8] c"max\00" @.str2946 = private unnamed_addr constant [4 x i8] c"abs\00" @.str2947 = private unnamed_addr constant [6 x i8] c"clamp\00" @.str2948 = private unnamed_addr constant [5 x i8] c"sign\00" @.str2949 = private unnamed_addr constant [6 x i8] c"floor\00" @.str2950 = private unnamed_addr constant [5 x i8] c"ceil\00" @.str2951 = private unnamed_addr constant [6 x i8] c"round\00" @.str2952 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str2953 = private unnamed_addr constant [13 x i8] c"inverse_lerp\00" @.str2954 = private unnamed_addr constant [6 x i8] c"remap\00" @.str2955 = private unnamed_addr constant [5 x i8] c"sqrt\00" @.str2956 = private unnamed_addr constant [4 x i8] c"sin\00" @.str2957 = private unnamed_addr constant [4 x i8] c"cos\00" @.str2958 = private unnamed_addr constant [4 x i8] c"tan\00" @.str2959 = private unnamed_addr constant [6 x i8] c"hypot\00" @.str2960 = private unnamed_addr constant [6 x i8] c"atan2\00" @.str2961 = private unnamed_addr constant [5 x i8] c"asin\00" @.str2962 = private unnamed_addr constant [5 x i8] c"acos\00" @.str2963 = private unnamed_addr constant [11 x i8] c"deg_to_rad\00" @.str2964 = private unnamed_addr constant [11 x i8] c"rad_to_deg\00" @.str2965 = private unnamed_addr constant [7 x i8] c"posmod\00" @.str2966 = private unnamed_addr constant [5 x i8] c"wrap\00" @.str2967 = private unnamed_addr constant [10 x i8] c"ping_pong\00" @.str2968 = private unnamed_addr constant [8 x i8] c"snapped\00" @.str2969 = private unnamed_addr constant [12 x i8] c"move_toward\00" @.str2970 = private unnamed_addr constant [11 x i8] c"smoothstep\00" @.str2971 = private unnamed_addr constant [5 x i8] c"dist\00" @.str2972 = private unnamed_addr constant [6 x i8] c"dist2\00" @.str2973 = private unnamed_addr constant [4 x i8] c"exp\00" @.str2974 = private unnamed_addr constant [4 x i8] c"log\00" @.str2975 = private unnamed_addr constant [4 x i8] c"pow\00" @.str2976 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6596: index out of range: \00" @.str2977 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6597: index out of range: \00" @.str2978 = private unnamed_addr constant [1 x i8] c"\00" @.str2979 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6600: index out of range: \00" @.str2980 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6606: index out of range: \00" @.str2981 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6610: index out of range: \00" @.str2982 = private unnamed_addr constant [4 x i8] c"min\00" @.str2983 = private unnamed_addr constant [4 x i8] c"max\00" @.str2984 = private unnamed_addr constant [4 x i8] c"abs\00" @.str2985 = private unnamed_addr constant [6 x i8] c"clamp\00" @.str2986 = private unnamed_addr constant [5 x i8] c"sign\00" @.str2987 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6619: index out of range: \00" @.str2988 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str2989 = private unnamed_addr constant [4 x i8] c", 0\00" @.str2990 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str2991 = private unnamed_addr constant [4 x i8] c", 0\00" @.str2992 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2993 = private unnamed_addr constant [16 x i8] c", i32 -1, i32 0\00" @.str2994 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str2995 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str2996 = private unnamed_addr constant [4 x i8] c"int\00" @.str2997 = private unnamed_addr constant [6 x i8] c"floor\00" @.str2998 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6626: index out of range: \00" @.str2999 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str3000 = private unnamed_addr constant [5 x i8] c", 16\00" @.str3001 = private unnamed_addr constant [4 x i8] c"int\00" @.str3002 = private unnamed_addr constant [5 x i8] c"ceil\00" @.str3003 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6630: index out of range: \00" @.str3004 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3005 = private unnamed_addr constant [8 x i8] c", 65535\00" @.str3006 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str3007 = private unnamed_addr constant [5 x i8] c", 16\00" @.str3008 = private unnamed_addr constant [4 x i8] c"int\00" @.str3009 = private unnamed_addr constant [6 x i8] c"round\00" @.str3010 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6635: index out of range: \00" @.str3011 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3012 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str3013 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str3014 = private unnamed_addr constant [5 x i8] c", 16\00" @.str3015 = private unnamed_addr constant [4 x i8] c"int\00" @.str3016 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str3017 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6640: index out of range: \00" @.str3018 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6640: index out of range: \00" @.str3019 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6640: index out of range: \00" @.str3020 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3021 = private unnamed_addr constant [13 x i8] c"inverse_lerp\00" @.str3022 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6644: index out of range: \00" @.str3023 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6644: index out of range: \00" @.str3024 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6644: index out of range: \00" @.str3025 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3026 = private unnamed_addr constant [5 x i8] c"sqrt\00" @.str3027 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6649: index out of range: \00" @.str3028 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3029 = private unnamed_addr constant [2 x i8] c")\00" @.str3030 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3031 = private unnamed_addr constant [4 x i8] c"sin\00" @.str3032 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6654: index out of range: \00" @.str3033 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3034 = private unnamed_addr constant [2 x i8] c")\00" @.str3035 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3036 = private unnamed_addr constant [4 x i8] c"cos\00" @.str3037 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6659: index out of range: \00" @.str3038 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3039 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str3040 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3041 = private unnamed_addr constant [2 x i8] c")\00" @.str3042 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3043 = private unnamed_addr constant [4 x i8] c"tan\00" @.str3044 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6665: index out of range: \00" @.str3045 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3046 = private unnamed_addr constant [2 x i8] c")\00" @.str3047 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3048 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str3049 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3050 = private unnamed_addr constant [2 x i8] c")\00" @.str3051 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3052 = private unnamed_addr constant [6 x i8] c"atan2\00" @.str3053 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6673: index out of range: \00" @.str3054 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6673: index out of range: \00" @.str3055 = private unnamed_addr constant [27 x i8] c"call i32 @lp_fx_atan2(i32 \00" @.str3056 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3057 = private unnamed_addr constant [2 x i8] c")\00" @.str3058 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3059 = private unnamed_addr constant [5 x i8] c"asin\00" @.str3060 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6678: index out of range: \00" @.str3061 = private unnamed_addr constant [16 x i8] c"sub i32 65536, \00" @.str3062 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3063 = private unnamed_addr constant [2 x i8] c")\00" @.str3064 = private unnamed_addr constant [27 x i8] c"call i32 @lp_fx_atan2(i32 \00" @.str3065 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3066 = private unnamed_addr constant [2 x i8] c")\00" @.str3067 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3068 = private unnamed_addr constant [5 x i8] c"acos\00" @.str3069 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6686: index out of range: \00" @.str3070 = private unnamed_addr constant [16 x i8] c"sub i32 65536, \00" @.str3071 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3072 = private unnamed_addr constant [2 x i8] c")\00" @.str3073 = private unnamed_addr constant [27 x i8] c"call i32 @lp_fx_atan2(i32 \00" @.str3074 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3075 = private unnamed_addr constant [2 x i8] c")\00" @.str3076 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3077 = private unnamed_addr constant [6 x i8] c"hypot\00" @.str3078 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6694: index out of range: \00" @.str3079 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6694: index out of range: \00" @.str3080 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3081 = private unnamed_addr constant [3 x i8] c", \00" @.str3082 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3083 = private unnamed_addr constant [2 x i8] c")\00" @.str3084 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3085 = private unnamed_addr constant [6 x i8] c"dist2\00" @.str3086 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6700: index out of range: \00" @.str3087 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6700: index out of range: \00" @.str3088 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6701: index out of range: \00" @.str3089 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6701: index out of range: \00" @.str3090 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3091 = private unnamed_addr constant [3 x i8] c", \00" @.str3092 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3093 = private unnamed_addr constant [3 x i8] c", \00" @.str3094 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3095 = private unnamed_addr constant [3 x i8] c", \00" @.str3096 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3097 = private unnamed_addr constant [5 x i8] c"dist\00" @.str3098 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6709: index out of range: \00" @.str3099 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6709: index out of range: \00" @.str3100 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6710: index out of range: \00" @.str3101 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6710: index out of range: \00" @.str3102 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3103 = private unnamed_addr constant [3 x i8] c", \00" @.str3104 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3105 = private unnamed_addr constant [3 x i8] c", \00" @.str3106 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3107 = private unnamed_addr constant [3 x i8] c", \00" @.str3108 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3109 = private unnamed_addr constant [2 x i8] c")\00" @.str3110 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3111 = private unnamed_addr constant [4 x i8] c"exp\00" @.str3112 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6719: index out of range: \00" @.str3113 = private unnamed_addr constant [6 x i8] c"94548\00" @.str3114 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_exp2(i32 \00" @.str3115 = private unnamed_addr constant [2 x i8] c")\00" @.str3116 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3117 = private unnamed_addr constant [4 x i8] c"log\00" @.str3118 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6725: index out of range: \00" @.str3119 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_log2(i32 \00" @.str3120 = private unnamed_addr constant [2 x i8] c")\00" @.str3121 = private unnamed_addr constant [6 x i8] c"45426\00" @.str3122 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3123 = private unnamed_addr constant [4 x i8] c"pow\00" @.str3124 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6731: index out of range: \00" @.str3125 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6731: index out of range: \00" @.str3126 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_log2(i32 \00" @.str3127 = private unnamed_addr constant [2 x i8] c")\00" @.str3128 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_exp2(i32 \00" @.str3129 = private unnamed_addr constant [2 x i8] c")\00" @.str3130 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3131 = private unnamed_addr constant [11 x i8] c"deg_to_rad\00" @.str3132 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6737: index out of range: \00" @.str3133 = private unnamed_addr constant [5 x i8] c"1144\00" @.str3134 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3135 = private unnamed_addr constant [11 x i8] c"rad_to_deg\00" @.str3136 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6741: index out of range: \00" @.str3137 = private unnamed_addr constant [8 x i8] c"3754936\00" @.str3138 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3139 = private unnamed_addr constant [7 x i8] c"posmod\00" @.str3140 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6745: index out of range: \00" @.str3141 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6745: index out of range: \00" @.str3142 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str3143 = private unnamed_addr constant [3 x i8] c", \00" @.str3144 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3145 = private unnamed_addr constant [3 x i8] c", \00" @.str3146 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str3147 = private unnamed_addr constant [3 x i8] c", \00" @.str3148 = private unnamed_addr constant [4 x i8] c"int\00" @.str3149 = private unnamed_addr constant [5 x i8] c"wrap\00" @.str3150 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6751: index out of range: \00" @.str3151 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6751: index out of range: \00" @.str3152 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6751: index out of range: \00" @.str3153 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3154 = private unnamed_addr constant [3 x i8] c", \00" @.str3155 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3156 = private unnamed_addr constant [3 x i8] c", \00" @.str3157 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str3158 = private unnamed_addr constant [3 x i8] c", \00" @.str3159 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3160 = private unnamed_addr constant [3 x i8] c", \00" @.str3161 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str3162 = private unnamed_addr constant [3 x i8] c", \00" @.str3163 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3164 = private unnamed_addr constant [3 x i8] c", \00" @.str3165 = private unnamed_addr constant [4 x i8] c"int\00" @.str3166 = private unnamed_addr constant [10 x i8] c"ping_pong\00" @.str3167 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6760: index out of range: \00" @.str3168 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6760: index out of range: \00" @.str3169 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3170 = private unnamed_addr constant [4 x i8] c", 2\00" @.str3171 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str3172 = private unnamed_addr constant [3 x i8] c", \00" @.str3173 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3174 = private unnamed_addr constant [3 x i8] c", \00" @.str3175 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str3176 = private unnamed_addr constant [3 x i8] c", \00" @.str3177 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3178 = private unnamed_addr constant [3 x i8] c", \00" @.str3179 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str3180 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3181 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3182 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3183 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3184 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3185 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3186 = private unnamed_addr constant [3 x i8] c", \00" @.str3187 = private unnamed_addr constant [4 x i8] c"int\00" @.str3188 = private unnamed_addr constant [8 x i8] c"snapped\00" @.str3189 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6772: index out of range: \00" @.str3190 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6772: index out of range: \00" @.str3191 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3192 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str3193 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str3194 = private unnamed_addr constant [5 x i8] c", 16\00" @.str3195 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3196 = private unnamed_addr constant [3 x i8] c", \00" @.str3197 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3198 = private unnamed_addr constant [12 x i8] c"move_toward\00" @.str3199 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6779: index out of range: \00" @.str3200 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6779: index out of range: \00" @.str3201 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6779: index out of range: \00" @.str3202 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3203 = private unnamed_addr constant [3 x i8] c", \00" @.str3204 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str3205 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3206 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3207 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3208 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3209 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3210 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str3211 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3212 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3213 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3214 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3215 = private unnamed_addr constant [16 x i8] c", i32 -1, i32 0\00" @.str3216 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3217 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str3218 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3219 = private unnamed_addr constant [3 x i8] c", \00" @.str3220 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3221 = private unnamed_addr constant [3 x i8] c", \00" @.str3222 = private unnamed_addr constant [14 x i8] c"icmp sle i32 \00" @.str3223 = private unnamed_addr constant [3 x i8] c", \00" @.str3224 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3225 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3226 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3227 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3228 = private unnamed_addr constant [11 x i8] c"smoothstep\00" @.str3229 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6794: index out of range: \00" @.str3230 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6794: index out of range: \00" @.str3231 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6794: index out of range: \00" @.str3232 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3233 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3234 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3235 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str3236 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str3237 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str3238 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3239 = private unnamed_addr constant [18 x i8] c", i32 65536, i32 \00" @.str3240 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3241 = private unnamed_addr constant [4 x i8] c", 2\00" @.str3242 = private unnamed_addr constant [17 x i8] c"sub i32 196608, \00" @.str3243 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3244 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6806: index out of range: \00" @.str3245 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6807: index out of range: \00" @.str3246 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6807: index out of range: \00" @.str3247 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6808: index out of range: \00" @.str3248 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6808: index out of range: \00" @.str3249 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3250 = private unnamed_addr constant [2968 x i8] c"@L_sin_tab = private unnamed_addr constant [256 x i32] [i32 0, i32 1608, i32 3216, i32 4821, i32 6424, i32 8022, i32 9616, i32 11204, i32 12785, i32 14359, i32 15924, i32 17479, i32 19024, i32 20557, i32 22078, i32 23586, i32 25080, i32 26558, i32 28020, i32 29466, i32 30893, i32 32303, i32 33692, i32 35062, i32 36410, i32 37736, i32 39040, i32 40320, i32 41576, i32 42806, i32 44011, i32 45190, i32 46341, i32 47464, i32 48559, i32 49624, i32 50660, i32 51665, i32 52639, i32 53581, i32 54491, i32 55368, i32 56212, i32 57022, i32 57798, i32 58538, i32 59244, i32 59914, i32 60547, i32 61145, i32 61705, i32 62228, i32 62714, i32 63162, i32 63572, i32 63944, i32 64277, i32 64571, i32 64827, i32 65043, i32 65220, i32 65358, i32 65457, i32 65516, i32 65536, i32 65516, i32 65457, i32 65358, i32 65220, i32 65043, i32 64827, i32 64571, i32 64277, i32 63944, i32 63572, i32 63162, i32 62714, i32 62228, i32 61705, i32 61145, i32 60547, i32 59914, i32 59244, i32 58538, i32 57798, i32 57022, i32 56212, i32 55368, i32 54491, i32 53581, i32 52639, i32 51665, i32 50660, i32 49624, i32 48559, i32 47464, i32 46341, i32 45190, i32 44011, i32 42806, i32 41576, i32 40320, i32 39040, i32 37736, i32 36410, i32 35062, i32 33692, i32 32303, i32 30893, i32 29466, i32 28020, i32 26558, i32 25080, i32 23586, i32 22078, i32 20557, i32 19024, i32 17479, i32 15924, i32 14359, i32 12785, i32 11204, i32 9616, i32 8022, i32 6424, i32 4821, i32 3216, i32 1608, i32 0, i32 -1608, i32 -3216, i32 -4821, i32 -6424, i32 -8022, i32 -9616, i32 -11204, i32 -12785, i32 -14359, i32 -15924, i32 -17479, i32 -19024, i32 -20557, i32 -22078, i32 -23586, i32 -25080, i32 -26558, i32 -28020, i32 -29466, i32 -30893, i32 -32303, i32 -33692, i32 -35062, i32 -36410, i32 -37736, i32 -39040, i32 -40320, i32 -41576, i32 -42806, i32 -44011, i32 -45190, i32 -46341, i32 -47464, i32 -48559, i32 -49624, i32 -50660, i32 -51665, i32 -52639, i32 -53581, i32 -54491, i32 -55368, i32 -56212, i32 -57022, i32 -57798, i32 -58538, i32 -59244, i32 -59914, i32 -60547, i32 -61145, i32 -61705, i32 -62228, i32 -62714, i32 -63162, i32 -63572, i32 -63944, i32 -64277, i32 -64571, i32 -64827, i32 -65043, i32 -65220, i32 -65358, i32 -65457, i32 -65516, i32 -65536, i32 -65516, i32 -65457, i32 -65358, i32 -65220, i32 -65043, i32 -64827, i32 -64571, i32 -64277, i32 -63944, i32 -63572, i32 -63162, i32 -62714, i32 -62228, i32 -61705, i32 -61145, i32 -60547, i32 -59914, i32 -59244, i32 -58538, i32 -57798, i32 -57022, i32 -56212, i32 -55368, i32 -54491, i32 -53581, i32 -52639, i32 -51665, i32 -50660, i32 -49624, i32 -48559, i32 -47464, i32 -46341, i32 -45190, i32 -44011, i32 -42806, i32 -41576, i32 -40320, i32 -39040, i32 -37736, i32 -36410, i32 -35062, i32 -33692, i32 -32303, i32 -30893, i32 -29466, i32 -28020, i32 -26558, i32 -25080, i32 -23586, i32 -22078, i32 -20557, i32 -19024, i32 -17479, i32 -15924, i32 -14359, i32 -12785, i32 -11204, i32 -9616, i32 -8022, i32 -6424, i32 -4821, i32 -3216, i32 -1608]\0A\00" @.str3251 = private unnamed_addr constant [34 x i8] c"define i32 @lp_fx_sqrt(i32 %x) {\0A\00" @.str3252 = private unnamed_addr constant [73 x i8] c"entry:\0A %neg = icmp slt i32 %x, 0\0A br i1 %neg, label %ret0, label %go\0A\00" @.str3253 = private unnamed_addr constant [19 x i8] c"ret0:\0A ret i32 0\0A\00" @.str3254 = private unnamed_addr constant [58 x i8] c"go:\0A %x64 = sext i32 %x to i64\0A %n0 = shl i64 %x64, 16\0A\00" @.str3255 = private unnamed_addr constant [58 x i8] c" %np = alloca i64\0A %rp = alloca i64\0A %bp = alloca i64\0A\00" @.str3256 = private unnamed_addr constant [106 x i8] c" store i64 %n0, ptr %np\0A store i64 0, ptr %rp\0A store i64 4611686018427387904, ptr %bp\0A br label %adj\0A\00" @.str3257 = private unnamed_addr constant [126 x i8] c"adj:\0A %b1 = load i64, ptr %bp\0A %n1 = load i64, ptr %np\0A %tb = icmp ugt i64 %b1, %n1\0A br i1 %tb, label %adjb, label %loop\0A\00" @.str3258 = private unnamed_addr constant [72 x i8] c"adjb:\0A %b2 = lshr i64 %b1, 2\0A store i64 %b2, ptr %bp\0A br label %adj\0A\00" @.str3259 = private unnamed_addr constant [98 x i8] c"loop:\0A %b3 = load i64, ptr %bp\0A %bz = icmp eq i64 %b3, 0\0A br i1 %bz, label %done, label %body\0A\00" @.str3260 = private unnamed_addr constant [152 x i8] c"body:\0A %r1 = load i64, ptr %rp\0A %n2 = load i64, ptr %np\0A %rb = add i64 %r1, %b3\0A %ge = icmp uge i64 %n2, %rb\0A br i1 %ge, label %sub, label %shift\0A\00" @.str3261 = private unnamed_addr constant [153 x i8] c"sub:\0A %n3 = sub i64 %n2, %rb\0A store i64 %n3, ptr %np\0A %rsh = lshr i64 %r1, 1\0A %rnew = add i64 %rsh, %b3\0A store i64 %rnew, ptr %rp\0A br label %next\0A\00" @.str3262 = private unnamed_addr constant [78 x i8] c"shift:\0A %rsh2 = lshr i64 %r1, 1\0A store i64 %rsh2, ptr %rp\0A br label %next\0A\00" @.str3263 = private unnamed_addr constant [73 x i8] c"next:\0A %b4 = lshr i64 %b3, 2\0A store i64 %b4, ptr %bp\0A br label %loop\0A\00" @.str3264 = private unnamed_addr constant [80 x i8] c"done:\0A %rf = load i64, ptr %rp\0A %r32 = trunc i64 %rf to i32\0A ret i32 %r32\0A}\0A\00" @.str3265 = private unnamed_addr constant [33 x i8] c"define i32 @lp_fx_sin(i32 %x) {\0A\00" @.str3266 = private unnamed_addr constant [82 x i8] c" %xe = sext i32 %x to i64\0A %m = mul i64 %xe, 2670177\0A %idxf = ashr i64 %m, 16\0A\00" @.str3267 = private unnamed_addr constant [85 x i8] c" %i0 = ashr i64 %idxf, 16\0A %i0m = and i64 %i0, 255\0A %frac = and i64 %idxf, 65535\0A\00" @.str3268 = private unnamed_addr constant [51 x i8] c" %i1 = add i64 %i0m, 1\0A %i1m = and i64 %i1, 255\0A\00" @.str3269 = private unnamed_addr constant [94 x i8] c" %p0 = getelementptr [256 x i32], ptr @L_sin_tab, i64 0, i64 %i0m\0A %v0 = load i32, ptr %p0\0A\00" @.str3270 = private unnamed_addr constant [94 x i8] c" %p1 = getelementptr [256 x i32], ptr @L_sin_tab, i64 0, i64 %i1m\0A %v1 = load i32, ptr %p1\0A\00" @.str3271 = private unnamed_addr constant [184 x i8] c" %d = sub i32 %v1, %v0\0A %de = sext i32 %d to i64\0A %dm = mul i64 %de, %frac\0A %dsh = ashr i64 %dm, 16\0A %dsh32 = trunc i64 %dsh to i32\0A %res = add i32 %v0, %dsh32\0A ret i32 %res\0A}\0A\00" @.str3272 = private unnamed_addr constant [43 x i8] c"define i32 @lp_fx_atan2(i32 %y, i32 %x) {\0A\00" @.str3273 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str3274 = private unnamed_addr constant [27 x i8] c" %xz = icmp eq i32 %x, 0\0A\00" @.str3275 = private unnamed_addr constant [27 x i8] c" %yz = icmp eq i32 %y, 0\0A\00" @.str3276 = private unnamed_addr constant [28 x i8] c" %both0 = and i1 %xz, %yz\0A\00" @.str3277 = private unnamed_addr constant [37 x i8] c" br i1 %both0, label %z, label %go\0A\00" @.str3278 = private unnamed_addr constant [4 x i8] c"z:\0A\00" @.str3279 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" @.str3280 = private unnamed_addr constant [5 x i8] c"go:\0A\00" @.str3281 = private unnamed_addr constant [30 x i8] c" %yneg = icmp slt i32 %y, 0\0A\00" @.str3282 = private unnamed_addr constant [24 x i8] c" %yng = sub i32 0, %y\0A\00" @.str3283 = private unnamed_addr constant [44 x i8] c" %ay0 = select i1 %yneg, i32 %yng, i32 %y\0A\00" @.str3284 = private unnamed_addr constant [25 x i8] c" %ay = add i32 %ay0, 1\0A\00" @.str3285 = private unnamed_addr constant [30 x i8] c" %xpos = icmp sge i32 %x, 0\0A\00" @.str3286 = private unnamed_addr constant [37 x i8] c" br i1 %xpos, label %xp, label %xn\0A\00" @.str3287 = private unnamed_addr constant [5 x i8] c"xp:\0A\00" @.str3288 = private unnamed_addr constant [25 x i8] c" %n1 = sub i32 %x, %ay\0A\00" @.str3289 = private unnamed_addr constant [25 x i8] c" %d1 = add i32 %x, %ay\0A\00" @.str3290 = private unnamed_addr constant [16 x i8] c" br label %dv\0A\00" @.str3291 = private unnamed_addr constant [5 x i8] c"xn:\0A\00" @.str3292 = private unnamed_addr constant [25 x i8] c" %n2 = add i32 %x, %ay\0A\00" @.str3293 = private unnamed_addr constant [25 x i8] c" %d2 = sub i32 %ay, %x\0A\00" @.str3294 = private unnamed_addr constant [16 x i8] c" br label %dv\0A\00" @.str3295 = private unnamed_addr constant [5 x i8] c"dv:\0A\00" @.str3296 = private unnamed_addr constant [45 x i8] c" %num = phi i32 [ %n1, %xp ], [ %n2, %xn ]\0A\00" @.str3297 = private unnamed_addr constant [45 x i8] c" %den = phi i32 [ %d1, %xp ], [ %d2, %xn ]\0A\00" @.str3298 = private unnamed_addr constant [51 x i8] c" %base = phi i32 [ 51472, %xp ], [ 154416, %xn ]\0A\00" @.str3299 = private unnamed_addr constant [31 x i8] c" %n64 = sext i32 %num to i64\0A\00" @.str3300 = private unnamed_addr constant [27 x i8] c" %nsh = shl i64 %n64, 16\0A\00" @.str3301 = private unnamed_addr constant [31 x i8] c" %d64 = sext i32 %den to i64\0A\00" @.str3302 = private unnamed_addr constant [30 x i8] c" %rdv = sdiv i64 %nsh, %d64\0A\00" @.str3303 = private unnamed_addr constant [30 x i8] c" %r = trunc i64 %rdv to i32\0A\00" @.str3304 = private unnamed_addr constant [30 x i8] c" %r64a = sext i32 %r to i64\0A\00" @.str3305 = private unnamed_addr constant [30 x i8] c" %r64b = sext i32 %r to i64\0A\00" @.str3306 = private unnamed_addr constant [30 x i8] c" %rr = mul i64 %r64a, %r64b\0A\00" @.str3307 = private unnamed_addr constant [27 x i8] c" %rrs = ashr i64 %rr, 16\0A\00" @.str3308 = private unnamed_addr constant [31 x i8] c" %r2 = trunc i64 %rrs to i32\0A\00" @.str3309 = private unnamed_addr constant [30 x i8] c" %r2e = sext i32 %r2 to i64\0A\00" @.str3310 = private unnamed_addr constant [28 x i8] c" %re = sext i32 %r to i64\0A\00" @.str3311 = private unnamed_addr constant [28 x i8] c" %r3m = mul i64 %r2e, %re\0A\00" @.str3312 = private unnamed_addr constant [28 x i8] c" %r3s = ashr i64 %r3m, 16\0A\00" @.str3313 = private unnamed_addr constant [31 x i8] c" %r3 = trunc i64 %r3s to i32\0A\00" @.str3314 = private unnamed_addr constant [30 x i8] c" %r3e = sext i32 %r3 to i64\0A\00" @.str3315 = private unnamed_addr constant [29 x i8] c" %c1 = mul i64 %r3e, 12865\0A\00" @.str3316 = private unnamed_addr constant [27 x i8] c" %c1s = ashr i64 %c1, 16\0A\00" @.str3317 = private unnamed_addr constant [31 x i8] c" %t1 = trunc i64 %c1s to i32\0A\00" @.str3318 = private unnamed_addr constant [29 x i8] c" %re2 = sext i32 %r to i64\0A\00" @.str3319 = private unnamed_addr constant [29 x i8] c" %c2 = mul i64 %re2, 64337\0A\00" @.str3320 = private unnamed_addr constant [27 x i8] c" %c2s = ashr i64 %c2, 16\0A\00" @.str3321 = private unnamed_addr constant [31 x i8] c" %t2 = trunc i64 %c2s to i32\0A\00" @.str3322 = private unnamed_addr constant [28 x i8] c" %poly = sub i32 %t1, %t2\0A\00" @.str3323 = private unnamed_addr constant [33 x i8] c" %angle = add i32 %poly, %base\0A\00" @.str3324 = private unnamed_addr constant [31 x i8] c" %angneg = sub i32 0, %angle\0A\00" @.str3325 = private unnamed_addr constant [51 x i8] c" %res = select i1 %yneg, i32 %angneg, i32 %angle\0A\00" @.str3326 = private unnamed_addr constant [16 x i8] c" ret i32 %res\0A\00" @.str3327 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str3328 = private unnamed_addr constant [34 x i8] c"define i32 @lp_fx_exp2(i32 %x) {\0A\00" @.str3329 = private unnamed_addr constant [76 x i8] c" %i = ashr i32 %x, 16\0A %f = and i32 %x, 65535\0A %fe = sext i32 %f to i64\0A\00" @.str3330 = private unnamed_addr constant [75 x i8] c" %m5 = mul i64 %fe, 87\0A %s5 = ashr i64 %m5, 16\0A %p5 = add i64 %s5, 630\0A\00" @.str3331 = private unnamed_addr constant [77 x i8] c" %m4 = mul i64 %fe, %p5\0A %s4 = ashr i64 %m4, 16\0A %p4 = add i64 %s4, 3638\0A\00" @.str3332 = private unnamed_addr constant [78 x i8] c" %m3 = mul i64 %fe, %p4\0A %s3 = ashr i64 %m3, 16\0A %p3 = add i64 %s3, 15744\0A\00" @.str3333 = private unnamed_addr constant [78 x i8] c" %m2 = mul i64 %fe, %p3\0A %s2 = ashr i64 %m2, 16\0A %p2 = add i64 %s2, 45426\0A\00" @.str3334 = private unnamed_addr constant [78 x i8] c" %m1 = mul i64 %fe, %p2\0A %s1 = ashr i64 %m1, 16\0A %p1 = add i64 %s1, 65536\0A\00" @.str3335 = private unnamed_addr constant [29 x i8] c" %p = trunc i64 %p1 to i32\0A\00" @.str3336 = private unnamed_addr constant [30 x i8] c" %ipos = icmp sge i32 %i, 0\0A\00" @.str3337 = private unnamed_addr constant [115 x i8] c" %sa0 = select i1 %ipos, i32 %i, i32 0\0A %sahi = icmp sgt i32 %sa0, 30\0A %sa = select i1 %sahi, i32 30, i32 %sa0\0A\00" @.str3338 = private unnamed_addr constant [26 x i8] c" %shl = shl i32 %p, %sa\0A\00" @.str3339 = private unnamed_addr constant [138 x i8] c" %ni = sub i32 0, %i\0A %ra0 = select i1 %ipos, i32 0, i32 %ni\0A %rahi = icmp sgt i32 %ra0, 31\0A %ra = select i1 %rahi, i32 31, i32 %ra0\0A\00" @.str3340 = private unnamed_addr constant [27 x i8] c" %shr = ashr i32 %p, %ra\0A\00" @.str3341 = private unnamed_addr constant [63 x i8] c" %res = select i1 %ipos, i32 %shl, i32 %shr\0A ret i32 %res\0A}\0A\00" @.str3342 = private unnamed_addr constant [37 x i8] c"declare i32 @llvm.ctlz.i32(i32, i1)\0A\00" @.str3343 = private unnamed_addr constant [34 x i8] c"define i32 @lp_fx_log2(i32 %x) {\0A\00" @.str3344 = private unnamed_addr constant [72 x i8] c"entry:\0A %pos = icmp sgt i32 %x, 0\0A br i1 %pos, label %go, label %neg\0A\00" @.str3345 = private unnamed_addr constant [28 x i8] c"neg:\0A ret i32 -2147483648\0A\00" @.str3346 = private unnamed_addr constant [80 x i8] c"go:\0A %lz = call i32 @llvm.ctlz.i32(i32 %x, i1 true)\0A %pmsb = sub i32 31, %lz\0A\00" @.str3347 = private unnamed_addr constant [49 x i8] c" %e = sub i32 %pmsb, 16\0A %ef = shl i32 %e, 16\0A\00" @.str3348 = private unnamed_addr constant [82 x i8] c" %sh = sub i32 16, %pmsb\0A %shpos = icmp sge i32 %sh, 0\0A %nsh = sub i32 0, %sh\0A\00" @.str3349 = private unnamed_addr constant [93 x i8] c" %mL = shl i32 %x, %sh\0A %mR = ashr i32 %x, %nsh\0A %m = select i1 %shpos, i32 %mL, i32 %mR\0A\00" @.str3350 = private unnamed_addr constant [55 x i8] c" %num = sub i32 %m, 65536\0A %den = add i32 %m, 65536\0A\00" @.str3351 = private unnamed_addr constant [147 x i8] c" %n64 = sext i32 %num to i64\0A %nshl = shl i64 %n64, 16\0A %d64 = sext i32 %den to i64\0A %rdv = sdiv i64 %nshl, %d64\0A %r = trunc i64 %rdv to i32\0A\00" @.str3352 = private unnamed_addr constant [78 x i8] c" %re = sext i32 %r to i64\0A %rr = mul i64 %re, %re\0A %r2 = ashr i64 %rr, 16\0A\00" @.str3353 = private unnamed_addr constant [81 x i8] c" %c3 = mul i64 %r2, 9362\0A %c3s = ashr i64 %c3, 16\0A %q3 = add i64 %c3s, 13107\0A\00" @.str3354 = private unnamed_addr constant [80 x i8] c" %c2 = mul i64 %r2, %q3\0A %c2s = ashr i64 %c2, 16\0A %q2 = add i64 %c2s, 21845\0A\00" @.str3355 = private unnamed_addr constant [80 x i8] c" %c1 = mul i64 %r2, %q2\0A %c1s = ashr i64 %c1, 16\0A %q1 = add i64 %c1s, 65536\0A\00" @.str3356 = private unnamed_addr constant [77 x i8] c" %rp = mul i64 %re, %q1\0A %rps = ashr i64 %rp, 16\0A %lnm = shl i64 %rps, 1\0A\00" @.str3357 = private unnamed_addr constant [86 x i8] c" %lm = mul i64 %lnm, 94548\0A %lms = ashr i64 %lm, 16\0A %l2m = trunc i64 %lms to i32\0A\00" @.str3358 = private unnamed_addr constant [45 x i8] c" %res = add i32 %ef, %l2m\0A ret i32 %res\0A}\0A\00" @.str3359 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str3360 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str3361 = private unnamed_addr constant [9 x i8] c"shl i64 \00" @.str3362 = private unnamed_addr constant [5 x i8] c", 32\00" @.str3363 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str3364 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str3365 = private unnamed_addr constant [8 x i8] c"or i64 \00" @.str3366 = private unnamed_addr constant [3 x i8] c", \00" @.str3367 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str3368 = private unnamed_addr constant [5 x i8] c", 32\00" @.str3369 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str3370 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3371 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str3372 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3373 = private unnamed_addr constant [5 x i8] c"make\00" @.str3374 = private unnamed_addr constant [5 x i8] c"zero\00" @.str3375 = private unnamed_addr constant [2 x i8] c"x\00" @.str3376 = private unnamed_addr constant [2 x i8] c"y\00" @.str3377 = private unnamed_addr constant [4 x i8] c"add\00" @.str3378 = private unnamed_addr constant [4 x i8] c"sub\00" @.str3379 = private unnamed_addr constant [6 x i8] c"scale\00" @.str3380 = private unnamed_addr constant [4 x i8] c"dot\00" @.str3381 = private unnamed_addr constant [7 x i8] c"length\00" @.str3382 = private unnamed_addr constant [9 x i8] c"distance\00" @.str3383 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str3384 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str3385 = private unnamed_addr constant [7 x i8] c"rotate\00" @.str3386 = private unnamed_addr constant [6 x i8] c"angle\00" @.str3387 = private unnamed_addr constant [11 x i8] c"from_angle\00" @.str3388 = private unnamed_addr constant [5 x i8] c"zero\00" @.str3389 = private unnamed_addr constant [2 x i8] c"0\00" @.str3390 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3391 = private unnamed_addr constant [5 x i8] c"make\00" @.str3392 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6982: index out of range: \00" @.str3393 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6982: index out of range: \00" @.str3394 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3395 = private unnamed_addr constant [2 x i8] c"x\00" @.str3396 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6986: index out of range: \00" @.str3397 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3398 = private unnamed_addr constant [2 x i8] c"y\00" @.str3399 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6990: index out of range: \00" @.str3400 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3401 = private unnamed_addr constant [4 x i8] c"add\00" @.str3402 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6994: index out of range: \00" @.str3403 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:6994: index out of range: \00" @.str3404 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3405 = private unnamed_addr constant [3 x i8] c", \00" @.str3406 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3407 = private unnamed_addr constant [3 x i8] c", \00" @.str3408 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3409 = private unnamed_addr constant [4 x i8] c"sub\00" @.str3410 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7001: index out of range: \00" @.str3411 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7001: index out of range: \00" @.str3412 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3413 = private unnamed_addr constant [3 x i8] c", \00" @.str3414 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3415 = private unnamed_addr constant [3 x i8] c", \00" @.str3416 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3417 = private unnamed_addr constant [6 x i8] c"scale\00" @.str3418 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7008: index out of range: \00" @.str3419 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7008: index out of range: \00" @.str3420 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3421 = private unnamed_addr constant [4 x i8] c"dot\00" @.str3422 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7015: index out of range: \00" @.str3423 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7015: index out of range: \00" @.str3424 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3425 = private unnamed_addr constant [3 x i8] c", \00" @.str3426 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3427 = private unnamed_addr constant [7 x i8] c"length\00" @.str3428 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7022: index out of range: \00" @.str3429 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3430 = private unnamed_addr constant [3 x i8] c", \00" @.str3431 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3432 = private unnamed_addr constant [2 x i8] c")\00" @.str3433 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3434 = private unnamed_addr constant [9 x i8] c"distance\00" @.str3435 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7030: index out of range: \00" @.str3436 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7030: index out of range: \00" @.str3437 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3438 = private unnamed_addr constant [3 x i8] c", \00" @.str3439 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3440 = private unnamed_addr constant [3 x i8] c", \00" @.str3441 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3442 = private unnamed_addr constant [3 x i8] c", \00" @.str3443 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3444 = private unnamed_addr constant [2 x i8] c")\00" @.str3445 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3446 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str3447 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7040: index out of range: \00" @.str3448 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3449 = private unnamed_addr constant [3 x i8] c", \00" @.str3450 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_sqrt(i32 \00" @.str3451 = private unnamed_addr constant [2 x i8] c")\00" @.str3452 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str3453 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3454 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3455 = private unnamed_addr constant [18 x i8] c", i32 65536, i32 \00" @.str3456 = private unnamed_addr constant [6 x i8] c"65536\00" @.str3457 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3458 = private unnamed_addr constant [7 x i8] c"rotate\00" @.str3459 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7053: index out of range: \00" @.str3460 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7053: index out of range: \00" @.str3461 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3462 = private unnamed_addr constant [2 x i8] c")\00" @.str3463 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3464 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str3465 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3466 = private unnamed_addr constant [2 x i8] c")\00" @.str3467 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3468 = private unnamed_addr constant [3 x i8] c", \00" @.str3469 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3470 = private unnamed_addr constant [3 x i8] c", \00" @.str3471 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3472 = private unnamed_addr constant [6 x i8] c"angle\00" @.str3473 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7066: index out of range: \00" @.str3474 = private unnamed_addr constant [27 x i8] c"call i32 @lp_fx_atan2(i32 \00" @.str3475 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3476 = private unnamed_addr constant [2 x i8] c")\00" @.str3477 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3478 = private unnamed_addr constant [11 x i8] c"from_angle\00" @.str3479 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7072: index out of range: \00" @.str3480 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3481 = private unnamed_addr constant [2 x i8] c")\00" @.str3482 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3483 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str3484 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str3485 = private unnamed_addr constant [2 x i8] c")\00" @.str3486 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3487 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7079: index out of range: \00" @.str3488 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7079: index out of range: \00" @.str3489 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7079: index out of range: \00" @.str3490 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3491 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str3492 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3493 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3494 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3495 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3496 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3497 = private unnamed_addr constant [5 x i8] c"make\00" @.str3498 = private unnamed_addr constant [5 x i8] c"zero\00" @.str3499 = private unnamed_addr constant [2 x i8] c"x\00" @.str3500 = private unnamed_addr constant [2 x i8] c"y\00" @.str3501 = private unnamed_addr constant [4 x i8] c"add\00" @.str3502 = private unnamed_addr constant [4 x i8] c"sub\00" @.str3503 = private unnamed_addr constant [6 x i8] c"scale\00" @.str3504 = private unnamed_addr constant [4 x i8] c"dot\00" @.str3505 = private unnamed_addr constant [6 x i8] c"equal\00" @.str3506 = private unnamed_addr constant [10 x i8] c"manhattan\00" @.str3507 = private unnamed_addr constant [10 x i8] c"to_vector\00" @.str3508 = private unnamed_addr constant [10 x i8] c"distance2\00" @.str3509 = private unnamed_addr constant [7 x i8] c"within\00" @.str3510 = private unnamed_addr constant [8 x i8] c"heading\00" @.str3511 = private unnamed_addr constant [6 x i8] c"along\00" @.str3512 = private unnamed_addr constant [5 x i8] c"step\00" @.str3513 = private unnamed_addr constant [5 x i8] c"zero\00" @.str3514 = private unnamed_addr constant [2 x i8] c"0\00" @.str3515 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str3516 = private unnamed_addr constant [5 x i8] c"make\00" @.str3517 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7117: index out of range: \00" @.str3518 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7117: index out of range: \00" @.str3519 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str3520 = private unnamed_addr constant [2 x i8] c"x\00" @.str3521 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7121: index out of range: \00" @.str3522 = private unnamed_addr constant [4 x i8] c"int\00" @.str3523 = private unnamed_addr constant [2 x i8] c"y\00" @.str3524 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7125: index out of range: \00" @.str3525 = private unnamed_addr constant [4 x i8] c"int\00" @.str3526 = private unnamed_addr constant [10 x i8] c"distance2\00" @.str3527 = private unnamed_addr constant [7 x i8] c"within\00" @.str3528 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7129: index out of range: \00" @.str3529 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7129: index out of range: \00" @.str3530 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3531 = private unnamed_addr constant [3 x i8] c", \00" @.str3532 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3533 = private unnamed_addr constant [3 x i8] c", \00" @.str3534 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3535 = private unnamed_addr constant [3 x i8] c", \00" @.str3536 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3537 = private unnamed_addr constant [3 x i8] c", \00" @.str3538 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3539 = private unnamed_addr constant [3 x i8] c", \00" @.str3540 = private unnamed_addr constant [10 x i8] c"distance2\00" @.str3541 = private unnamed_addr constant [4 x i8] c"int\00" @.str3542 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7136: index out of range: \00" @.str3543 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3544 = private unnamed_addr constant [3 x i8] c", \00" @.str3545 = private unnamed_addr constant [14 x i8] c"icmp sle i32 \00" @.str3546 = private unnamed_addr constant [3 x i8] c", \00" @.str3547 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str3548 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3549 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3550 = private unnamed_addr constant [8 x i8] c"heading\00" @.str3551 = private unnamed_addr constant [16 x i8] c"rt_ivec_heading\00" @.str3552 = private unnamed_addr constant [39 x i8] c"IVec2.heading needs the engine runtime\00" @.str3553 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7143: index out of range: \00" @.str3554 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7143: index out of range: \00" @.str3555 = private unnamed_addr constant [34 x i8] c"call i32 @fn_rt_ivec_heading(i64 \00" @.str3556 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str3557 = private unnamed_addr constant [2 x i8] c")\00" @.str3558 = private unnamed_addr constant [4 x i8] c"int\00" @.str3559 = private unnamed_addr constant [6 x i8] c"along\00" @.str3560 = private unnamed_addr constant [14 x i8] c"rt_ivec_along\00" @.str3561 = private unnamed_addr constant [37 x i8] c"IVec2.along needs the engine runtime\00" @.str3562 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7148: index out of range: \00" @.str3563 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7148: index out of range: \00" @.str3564 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7148: index out of range: \00" @.str3565 = private unnamed_addr constant [32 x i8] c"call i64 @fn_rt_ivec_along(i64 \00" @.str3566 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3567 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3568 = private unnamed_addr constant [2 x i8] c")\00" @.str3569 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str3570 = private unnamed_addr constant [5 x i8] c"step\00" @.str3571 = private unnamed_addr constant [13 x i8] c"rt_ivec_step\00" @.str3572 = private unnamed_addr constant [36 x i8] c"IVec2.step needs the engine runtime\00" @.str3573 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7153: index out of range: \00" @.str3574 = private unnamed_addr constant [31 x i8] c"call i64 @fn_rt_ivec_step(i32 \00" @.str3575 = private unnamed_addr constant [2 x i8] c")\00" @.str3576 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str3577 = private unnamed_addr constant [4 x i8] c"add\00" @.str3578 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7157: index out of range: \00" @.str3579 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7157: index out of range: \00" @.str3580 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3581 = private unnamed_addr constant [3 x i8] c", \00" @.str3582 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3583 = private unnamed_addr constant [3 x i8] c", \00" @.str3584 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str3585 = private unnamed_addr constant [4 x i8] c"sub\00" @.str3586 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7164: index out of range: \00" @.str3587 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7164: index out of range: \00" @.str3588 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3589 = private unnamed_addr constant [3 x i8] c", \00" @.str3590 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3591 = private unnamed_addr constant [3 x i8] c", \00" @.str3592 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str3593 = private unnamed_addr constant [6 x i8] c"scale\00" @.str3594 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7171: index out of range: \00" @.str3595 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7171: index out of range: \00" @.str3596 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3597 = private unnamed_addr constant [3 x i8] c", \00" @.str3598 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3599 = private unnamed_addr constant [3 x i8] c", \00" @.str3600 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str3601 = private unnamed_addr constant [4 x i8] c"dot\00" @.str3602 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7178: index out of range: \00" @.str3603 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7178: index out of range: \00" @.str3604 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3605 = private unnamed_addr constant [3 x i8] c", \00" @.str3606 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3607 = private unnamed_addr constant [3 x i8] c", \00" @.str3608 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3609 = private unnamed_addr constant [3 x i8] c", \00" @.str3610 = private unnamed_addr constant [4 x i8] c"int\00" @.str3611 = private unnamed_addr constant [6 x i8] c"equal\00" @.str3612 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7184: index out of range: \00" @.str3613 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7184: index out of range: \00" @.str3614 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" @.str3615 = private unnamed_addr constant [3 x i8] c", \00" @.str3616 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str3617 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3618 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3619 = private unnamed_addr constant [10 x i8] c"manhattan\00" @.str3620 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7189: index out of range: \00" @.str3621 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7189: index out of range: \00" @.str3622 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3623 = private unnamed_addr constant [3 x i8] c", \00" @.str3624 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3625 = private unnamed_addr constant [3 x i8] c", \00" @.str3626 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3627 = private unnamed_addr constant [3 x i8] c", \00" @.str3628 = private unnamed_addr constant [4 x i8] c"int\00" @.str3629 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7196: index out of range: \00" @.str3630 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str3631 = private unnamed_addr constant [5 x i8] c", 16\00" @.str3632 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str3633 = private unnamed_addr constant [5 x i8] c", 16\00" @.str3634 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3635 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str3636 = private unnamed_addr constant [9 x i8] c" to i128\00" @.str3637 = private unnamed_addr constant [10 x i8] c"shl i128 \00" @.str3638 = private unnamed_addr constant [5 x i8] c", 96\00" @.str3639 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str3640 = private unnamed_addr constant [9 x i8] c" to i128\00" @.str3641 = private unnamed_addr constant [10 x i8] c"shl i128 \00" @.str3642 = private unnamed_addr constant [5 x i8] c", 64\00" @.str3643 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str3644 = private unnamed_addr constant [9 x i8] c" to i128\00" @.str3645 = private unnamed_addr constant [10 x i8] c"shl i128 \00" @.str3646 = private unnamed_addr constant [5 x i8] c", 32\00" @.str3647 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str3648 = private unnamed_addr constant [9 x i8] c" to i128\00" @.str3649 = private unnamed_addr constant [9 x i8] c"or i128 \00" @.str3650 = private unnamed_addr constant [3 x i8] c", \00" @.str3651 = private unnamed_addr constant [9 x i8] c"or i128 \00" @.str3652 = private unnamed_addr constant [3 x i8] c", \00" @.str3653 = private unnamed_addr constant [9 x i8] c"or i128 \00" @.str3654 = private unnamed_addr constant [3 x i8] c", \00" @.str3655 = private unnamed_addr constant [12 x i8] c"trunc i128 \00" @.str3656 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3657 = private unnamed_addr constant [11 x i8] c"lshr i128 \00" @.str3658 = private unnamed_addr constant [3 x i8] c", \00" @.str3659 = private unnamed_addr constant [12 x i8] c"trunc i128 \00" @.str3660 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3661 = private unnamed_addr constant [6 x i8] c"icmp \00" @.str3662 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str3663 = private unnamed_addr constant [3 x i8] c", \00" @.str3664 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str3665 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3666 = private unnamed_addr constant [5 x i8] c"make\00" @.str3667 = private unnamed_addr constant [2 x i8] c"x\00" @.str3668 = private unnamed_addr constant [2 x i8] c"y\00" @.str3669 = private unnamed_addr constant [2 x i8] c"w\00" @.str3670 = private unnamed_addr constant [2 x i8] c"h\00" @.str3671 = private unnamed_addr constant [6 x i8] c"right\00" @.str3672 = private unnamed_addr constant [7 x i8] c"bottom\00" @.str3673 = private unnamed_addr constant [7 x i8] c"center\00" @.str3674 = private unnamed_addr constant [9 x i8] c"contains\00" @.str3675 = private unnamed_addr constant [11 x i8] c"intersects\00" @.str3676 = private unnamed_addr constant [5 x i8] c"make\00" @.str3677 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7249: index out of range: \00" @.str3678 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7249: index out of range: \00" @.str3679 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7250: index out of range: \00" @.str3680 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7250: index out of range: \00" @.str3681 = private unnamed_addr constant [5 x i8] c"Rect\00" @.str3682 = private unnamed_addr constant [2 x i8] c"x\00" @.str3683 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7253: index out of range: \00" @.str3684 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3685 = private unnamed_addr constant [2 x i8] c"y\00" @.str3686 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7254: index out of range: \00" @.str3687 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3688 = private unnamed_addr constant [2 x i8] c"w\00" @.str3689 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7255: index out of range: \00" @.str3690 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3691 = private unnamed_addr constant [2 x i8] c"h\00" @.str3692 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7256: index out of range: \00" @.str3693 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3694 = private unnamed_addr constant [6 x i8] c"right\00" @.str3695 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7258: index out of range: \00" @.str3696 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3697 = private unnamed_addr constant [3 x i8] c", \00" @.str3698 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3699 = private unnamed_addr constant [7 x i8] c"bottom\00" @.str3700 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7263: index out of range: \00" @.str3701 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3702 = private unnamed_addr constant [3 x i8] c", \00" @.str3703 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str3704 = private unnamed_addr constant [7 x i8] c"center\00" @.str3705 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7268: index out of range: \00" @.str3706 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str3707 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3708 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str3709 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3710 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3711 = private unnamed_addr constant [3 x i8] c", \00" @.str3712 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3713 = private unnamed_addr constant [3 x i8] c", \00" @.str3714 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str3715 = private unnamed_addr constant [9 x i8] c"contains\00" @.str3716 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7276: index out of range: \00" @.str3717 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7276: index out of range: \00" @.str3718 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7276: index out of range: \00" @.str3719 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3720 = private unnamed_addr constant [3 x i8] c", \00" @.str3721 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3722 = private unnamed_addr constant [3 x i8] c", \00" @.str3723 = private unnamed_addr constant [4 x i8] c"sge\00" @.str3724 = private unnamed_addr constant [4 x i8] c"slt\00" @.str3725 = private unnamed_addr constant [4 x i8] c"sge\00" @.str3726 = private unnamed_addr constant [4 x i8] c"slt\00" @.str3727 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str3728 = private unnamed_addr constant [3 x i8] c", \00" @.str3729 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str3730 = private unnamed_addr constant [3 x i8] c", \00" @.str3731 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str3732 = private unnamed_addr constant [3 x i8] c", \00" @.str3733 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3734 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7286: index out of range: \00" @.str3735 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7286: index out of range: \00" @.str3736 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3737 = private unnamed_addr constant [3 x i8] c", \00" @.str3738 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3739 = private unnamed_addr constant [3 x i8] c", \00" @.str3740 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3741 = private unnamed_addr constant [3 x i8] c", \00" @.str3742 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3743 = private unnamed_addr constant [3 x i8] c", \00" @.str3744 = private unnamed_addr constant [4 x i8] c"slt\00" @.str3745 = private unnamed_addr constant [4 x i8] c"slt\00" @.str3746 = private unnamed_addr constant [4 x i8] c"slt\00" @.str3747 = private unnamed_addr constant [4 x i8] c"slt\00" @.str3748 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str3749 = private unnamed_addr constant [3 x i8] c", \00" @.str3750 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str3751 = private unnamed_addr constant [3 x i8] c", \00" @.str3752 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str3753 = private unnamed_addr constant [3 x i8] c", \00" @.str3754 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3755 = private unnamed_addr constant [7 x i8] c"length\00" @.str3756 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str3757 = private unnamed_addr constant [6 x i8] c"slice\00" @.str3758 = private unnamed_addr constant [7 x i8] c"equals\00" @.str3759 = private unnamed_addr constant [7 x i8] c"concat\00" @.str3760 = private unnamed_addr constant [7 x i8] c"to_int\00" @.str3761 = private unnamed_addr constant [9 x i8] c"from_int\00" @.str3762 = private unnamed_addr constant [9 x i8] c"to_float\00" @.str3763 = private unnamed_addr constant [12 x i8] c"starts_with\00" @.str3764 = private unnamed_addr constant [10 x i8] c"ends_with\00" @.str3765 = private unnamed_addr constant [9 x i8] c"contains\00" @.str3766 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str3767 = private unnamed_addr constant [6 x i8] c"upper\00" @.str3768 = private unnamed_addr constant [6 x i8] c"lower\00" @.str3769 = private unnamed_addr constant [5 x i8] c"trim\00" @.str3770 = private unnamed_addr constant [7 x i8] c"repeat\00" @.str3771 = private unnamed_addr constant [9 x i8] c"pad_left\00" @.str3772 = private unnamed_addr constant [10 x i8] c"pad_right\00" @.str3773 = private unnamed_addr constant [6 x i8] c"split\00" @.str3774 = private unnamed_addr constant [5 x i8] c"join\00" @.str3775 = private unnamed_addr constant [8 x i8] c"replace\00" @.str3776 = private unnamed_addr constant [9 x i8] c"from_int\00" @.str3777 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7318: index out of range: \00" @.str3778 = private unnamed_addr constant [26 x i8] c"call ptr @lp_int_str(i32 \00" @.str3779 = private unnamed_addr constant [2 x i8] c")\00" @.str3780 = private unnamed_addr constant [7 x i8] c"string\00" @.str3781 = private unnamed_addr constant [6 x i8] c"slice\00" @.str3782 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7323: index out of range: \00" @.str3783 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7323: index out of range: \00" @.str3784 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7323: index out of range: \00" @.str3785 = private unnamed_addr constant [28 x i8] c"call ptr @lp_str_slice(ptr \00" @.str3786 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3787 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3788 = private unnamed_addr constant [2 x i8] c")\00" @.str3789 = private unnamed_addr constant [7 x i8] c"string\00" @.str3790 = private unnamed_addr constant [7 x i8] c"equals\00" @.str3791 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7328: index out of range: \00" @.str3792 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7328: index out of range: \00" @.str3793 = private unnamed_addr constant [25 x i8] c"call i32 @lp_str_eq(ptr \00" @.str3794 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3795 = private unnamed_addr constant [2 x i8] c")\00" @.str3796 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3797 = private unnamed_addr constant [7 x i8] c"concat\00" @.str3798 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7333: index out of range: \00" @.str3799 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7333: index out of range: \00" @.str3800 = private unnamed_addr constant [29 x i8] c"call ptr @lp_str_concat(ptr \00" @.str3801 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3802 = private unnamed_addr constant [2 x i8] c")\00" @.str3803 = private unnamed_addr constant [7 x i8] c"string\00" @.str3804 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7338: index out of range: \00" @.str3805 = private unnamed_addr constant [7 x i8] c"length\00" @.str3806 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str3807 = private unnamed_addr constant [2 x i8] c")\00" @.str3808 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str3809 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3810 = private unnamed_addr constant [4 x i8] c"int\00" @.str3811 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str3812 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7344: index out of range: \00" @.str3813 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str3814 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3815 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str3816 = private unnamed_addr constant [9 x i8] c"zext i8 \00" @.str3817 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3818 = private unnamed_addr constant [4 x i8] c"int\00" @.str3819 = private unnamed_addr constant [9 x i8] c"to_float\00" @.str3820 = private unnamed_addr constant [34 x i8] c"declare double @strtod(ptr, ptr)\0A\00" @.str3821 = private unnamed_addr constant [25 x i8] c"call double @strtod(ptr \00" @.str3822 = private unnamed_addr constant [12 x i8] c", ptr null)\00" @.str3823 = private unnamed_addr constant [16 x i8] c"fptrunc double \00" @.str3824 = private unnamed_addr constant [10 x i8] c" to float\00" @.str3825 = private unnamed_addr constant [6 x i8] c"float\00" @.str3826 = private unnamed_addr constant [7 x i8] c"to_int\00" @.str3827 = private unnamed_addr constant [20 x i8] c"call i32 @atoi(ptr \00" @.str3828 = private unnamed_addr constant [2 x i8] c")\00" @.str3829 = private unnamed_addr constant [4 x i8] c"int\00" @.str3830 = private unnamed_addr constant [6 x i8] c"upper\00" @.str3831 = private unnamed_addr constant [28 x i8] c"call ptr @lp_str_upper(ptr \00" @.str3832 = private unnamed_addr constant [2 x i8] c")\00" @.str3833 = private unnamed_addr constant [7 x i8] c"string\00" @.str3834 = private unnamed_addr constant [6 x i8] c"lower\00" @.str3835 = private unnamed_addr constant [28 x i8] c"call ptr @lp_str_lower(ptr \00" @.str3836 = private unnamed_addr constant [2 x i8] c")\00" @.str3837 = private unnamed_addr constant [7 x i8] c"string\00" @.str3838 = private unnamed_addr constant [5 x i8] c"trim\00" @.str3839 = private unnamed_addr constant [27 x i8] c"call ptr @lp_str_trim(ptr \00" @.str3840 = private unnamed_addr constant [2 x i8] c")\00" @.str3841 = private unnamed_addr constant [7 x i8] c"string\00" @.str3842 = private unnamed_addr constant [7 x i8] c"repeat\00" @.str3843 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7371: index out of range: \00" @.str3844 = private unnamed_addr constant [29 x i8] c"call ptr @lp_str_repeat(ptr \00" @.str3845 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3846 = private unnamed_addr constant [2 x i8] c")\00" @.str3847 = private unnamed_addr constant [7 x i8] c"string\00" @.str3848 = private unnamed_addr constant [9 x i8] c"pad_left\00" @.str3849 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7376: index out of range: \00" @.str3850 = private unnamed_addr constant [26 x i8] c"call ptr @lp_str_pad(ptr \00" @.str3851 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3852 = private unnamed_addr constant [8 x i8] c", i1 1)\00" @.str3853 = private unnamed_addr constant [7 x i8] c"string\00" @.str3854 = private unnamed_addr constant [10 x i8] c"pad_right\00" @.str3855 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7381: index out of range: \00" @.str3856 = private unnamed_addr constant [26 x i8] c"call ptr @lp_str_pad(ptr \00" @.str3857 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3858 = private unnamed_addr constant [8 x i8] c", i1 0)\00" @.str3859 = private unnamed_addr constant [7 x i8] c"string\00" @.str3860 = private unnamed_addr constant [8 x i8] c"replace\00" @.str3861 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7386: index out of range: \00" @.str3862 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7386: index out of range: \00" @.str3863 = private unnamed_addr constant [30 x i8] c"call ptr @lp_str_replace(ptr \00" @.str3864 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3865 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3866 = private unnamed_addr constant [2 x i8] c")\00" @.str3867 = private unnamed_addr constant [7 x i8] c"string\00" @.str3868 = private unnamed_addr constant [6 x i8] c"split\00" @.str3869 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7391: index out of range: \00" @.str3870 = private unnamed_addr constant [28 x i8] c"call ptr @lp_str_split(ptr \00" @.str3871 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3872 = private unnamed_addr constant [2 x i8] c")\00" @.str3873 = private unnamed_addr constant [9 x i8] c"[]string\00" @.str3874 = private unnamed_addr constant [5 x i8] c"join\00" @.str3875 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7396: index out of range: \00" @.str3876 = private unnamed_addr constant [27 x i8] c"call ptr @lp_str_join(ptr \00" @.str3877 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3878 = private unnamed_addr constant [2 x i8] c")\00" @.str3879 = private unnamed_addr constant [7 x i8] c"string\00" @.str3880 = private unnamed_addr constant [9 x i8] c"contains\00" @.str3881 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str3882 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7400: index out of range: \00" @.str3883 = private unnamed_addr constant [22 x i8] c"call ptr @strstr(ptr \00" @.str3884 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3885 = private unnamed_addr constant [2 x i8] c")\00" @.str3886 = private unnamed_addr constant [9 x i8] c"contains\00" @.str3887 = private unnamed_addr constant [13 x i8] c"icmp ne ptr \00" @.str3888 = private unnamed_addr constant [7 x i8] c", null\00" @.str3889 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str3890 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3891 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3892 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" @.str3893 = private unnamed_addr constant [7 x i8] c", null\00" @.str3894 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" @.str3895 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str3896 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" @.str3897 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str3898 = private unnamed_addr constant [9 x i8] c"sub i64 \00" @.str3899 = private unnamed_addr constant [3 x i8] c", \00" @.str3900 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str3901 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3902 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3903 = private unnamed_addr constant [15 x i8] c", i32 -1, i32 \00" @.str3904 = private unnamed_addr constant [4 x i8] c"int\00" @.str3905 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7415: index out of range: \00" @.str3906 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str3907 = private unnamed_addr constant [2 x i8] c")\00" @.str3908 = private unnamed_addr constant [12 x i8] c"starts_with\00" @.str3909 = private unnamed_addr constant [23 x i8] c"call i32 @strncmp(ptr \00" @.str3910 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3911 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str3912 = private unnamed_addr constant [2 x i8] c")\00" @.str3913 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str3914 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3915 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str3916 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3917 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3918 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str3919 = private unnamed_addr constant [2 x i8] c")\00" @.str3920 = private unnamed_addr constant [9 x i8] c"sub i64 \00" @.str3921 = private unnamed_addr constant [3 x i8] c", \00" @.str3922 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3923 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3924 = private unnamed_addr constant [2 x i8] c"0\00" @.str3925 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" @.str3926 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3927 = private unnamed_addr constant [7 x i8] c"ew_cmp\00" @.str3928 = private unnamed_addr constant [7 x i8] c"ew_end\00" @.str3929 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3930 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3931 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3932 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3933 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3934 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str3935 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str3936 = private unnamed_addr constant [23 x i8] c"call i32 @strncmp(ptr \00" @.str3937 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3938 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str3939 = private unnamed_addr constant [2 x i8] c")\00" @.str3940 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str3941 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3942 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str3943 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3944 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3945 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3946 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3947 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3948 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3949 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3950 = private unnamed_addr constant [36 x i8] c"define ptr @lp_str_upper(ptr %s) {\0A\00" @.str3951 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str3952 = private unnamed_addr constant [33 x i8] c" %n = call i64 @strlen(ptr %s)\0A\00" @.str3953 = private unnamed_addr constant [23 x i8] c" %sz = add i64 %n, 1\0A\00" @.str3954 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str3955 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str3956 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str3957 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str3958 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str3959 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str3960 = private unnamed_addr constant [28 x i8] c" %d = icmp ult i64 %i, %n\0A\00" @.str3961 = private unnamed_addr constant [37 x i8] c" br i1 %d, label %body, label %fin\0A\00" @.str3962 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str3963 = private unnamed_addr constant [42 x i8] c" %sp = getelementptr i8, ptr %s, i64 %i\0A\00" @.str3964 = private unnamed_addr constant [25 x i8] c" %c = load i8, ptr %sp\0A\00" @.str3965 = private unnamed_addr constant [28 x i8] c" %ge = icmp uge i8 %c, 97\0A\00" @.str3966 = private unnamed_addr constant [29 x i8] c" %le = icmp ule i8 %c, 122\0A\00" @.str3967 = private unnamed_addr constant [25 x i8] c" %in = and i1 %ge, %le\0A\00" @.str3968 = private unnamed_addr constant [24 x i8] c" %cc = add i8 %c, -32\0A\00" @.str3969 = private unnamed_addr constant [38 x i8] c" %oc = select i1 %in, i8 %cc, i8 %c\0A\00" @.str3970 = private unnamed_addr constant [44 x i8] c" %op = getelementptr i8, ptr %out, i64 %i\0A\00" @.str3971 = private unnamed_addr constant [25 x i8] c" store i8 %oc, ptr %op\0A\00" @.str3972 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str3973 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str3974 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str3975 = private unnamed_addr constant [6 x i8] c"fin:\0A\00" @.str3976 = private unnamed_addr constant [44 x i8] c" %tp = getelementptr i8, ptr %out, i64 %n\0A\00" @.str3977 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str3978 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str3979 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str3980 = private unnamed_addr constant [36 x i8] c"define ptr @lp_str_lower(ptr %s) {\0A\00" @.str3981 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str3982 = private unnamed_addr constant [33 x i8] c" %n = call i64 @strlen(ptr %s)\0A\00" @.str3983 = private unnamed_addr constant [23 x i8] c" %sz = add i64 %n, 1\0A\00" @.str3984 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str3985 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str3986 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str3987 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str3988 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str3989 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str3990 = private unnamed_addr constant [28 x i8] c" %d = icmp ult i64 %i, %n\0A\00" @.str3991 = private unnamed_addr constant [37 x i8] c" br i1 %d, label %body, label %fin\0A\00" @.str3992 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str3993 = private unnamed_addr constant [42 x i8] c" %sp = getelementptr i8, ptr %s, i64 %i\0A\00" @.str3994 = private unnamed_addr constant [25 x i8] c" %c = load i8, ptr %sp\0A\00" @.str3995 = private unnamed_addr constant [28 x i8] c" %ge = icmp uge i8 %c, 65\0A\00" @.str3996 = private unnamed_addr constant [28 x i8] c" %le = icmp ule i8 %c, 90\0A\00" @.str3997 = private unnamed_addr constant [25 x i8] c" %in = and i1 %ge, %le\0A\00" @.str3998 = private unnamed_addr constant [23 x i8] c" %cc = add i8 %c, 32\0A\00" @.str3999 = private unnamed_addr constant [38 x i8] c" %oc = select i1 %in, i8 %cc, i8 %c\0A\00" @.str4000 = private unnamed_addr constant [44 x i8] c" %op = getelementptr i8, ptr %out, i64 %i\0A\00" @.str4001 = private unnamed_addr constant [25 x i8] c" store i8 %oc, ptr %op\0A\00" @.str4002 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4003 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4004 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4005 = private unnamed_addr constant [6 x i8] c"fin:\0A\00" @.str4006 = private unnamed_addr constant [44 x i8] c" %tp = getelementptr i8, ptr %out, i64 %n\0A\00" @.str4007 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str4008 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str4009 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4010 = private unnamed_addr constant [35 x i8] c"define ptr @lp_str_trim(ptr %s) {\0A\00" @.str4011 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4012 = private unnamed_addr constant [33 x i8] c" %n = call i64 @strlen(ptr %s)\0A\00" @.str4013 = private unnamed_addr constant [20 x i8] c" %sp = alloca i64\0A\00" @.str4014 = private unnamed_addr constant [20 x i8] c" %ep = alloca i64\0A\00" @.str4015 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %sp\0A\00" @.str4016 = private unnamed_addr constant [25 x i8] c" store i64 %n, ptr %ep\0A\00" @.str4017 = private unnamed_addr constant [19 x i8] c" br label %lcond\0A\00" @.str4018 = private unnamed_addr constant [8 x i8] c"lcond:\0A\00" @.str4019 = private unnamed_addr constant [27 x i8] c" %a0 = load i64, ptr %sp\0A\00" @.str4020 = private unnamed_addr constant [27 x i8] c" %e0 = load i64, ptr %ep\0A\00" @.str4021 = private unnamed_addr constant [32 x i8] c" %lt0 = icmp ult i64 %a0, %e0\0A\00" @.str4022 = private unnamed_addr constant [41 x i8] c" br i1 %lt0, label %lchk, label %rcond\0A\00" @.str4023 = private unnamed_addr constant [7 x i8] c"lchk:\0A\00" @.str4024 = private unnamed_addr constant [43 x i8] c" %p0 = getelementptr i8, ptr %s, i64 %a0\0A\00" @.str4025 = private unnamed_addr constant [26 x i8] c" %c0 = load i8, ptr %p0\0A\00" @.str4026 = private unnamed_addr constant [36 x i8] c" %ws0 = call i1 @lp_is_ws(i8 %c0)\0A\00" @.str4027 = private unnamed_addr constant [41 x i8] c" br i1 %ws0, label %linc, label %rcond\0A\00" @.str4028 = private unnamed_addr constant [7 x i8] c"linc:\0A\00" @.str4029 = private unnamed_addr constant [24 x i8] c" %a1 = add i64 %a0, 1\0A\00" @.str4030 = private unnamed_addr constant [26 x i8] c" store i64 %a1, ptr %sp\0A\00" @.str4031 = private unnamed_addr constant [19 x i8] c" br label %lcond\0A\00" @.str4032 = private unnamed_addr constant [8 x i8] c"rcond:\0A\00" @.str4033 = private unnamed_addr constant [27 x i8] c" %a2 = load i64, ptr %sp\0A\00" @.str4034 = private unnamed_addr constant [27 x i8] c" %e2 = load i64, ptr %ep\0A\00" @.str4035 = private unnamed_addr constant [32 x i8] c" %lt2 = icmp ult i64 %a2, %e2\0A\00" @.str4036 = private unnamed_addr constant [41 x i8] c" br i1 %lt2, label %rchk, label %build\0A\00" @.str4037 = private unnamed_addr constant [7 x i8] c"rchk:\0A\00" @.str4038 = private unnamed_addr constant [25 x i8] c" %em1 = sub i64 %e2, 1\0A\00" @.str4039 = private unnamed_addr constant [44 x i8] c" %p1 = getelementptr i8, ptr %s, i64 %em1\0A\00" @.str4040 = private unnamed_addr constant [26 x i8] c" %c1 = load i8, ptr %p1\0A\00" @.str4041 = private unnamed_addr constant [36 x i8] c" %ws1 = call i1 @lp_is_ws(i8 %c1)\0A\00" @.str4042 = private unnamed_addr constant [41 x i8] c" br i1 %ws1, label %rdec, label %build\0A\00" @.str4043 = private unnamed_addr constant [7 x i8] c"rdec:\0A\00" @.str4044 = private unnamed_addr constant [27 x i8] c" store i64 %em1, ptr %ep\0A\00" @.str4045 = private unnamed_addr constant [19 x i8] c" br label %rcond\0A\00" @.str4046 = private unnamed_addr constant [8 x i8] c"build:\0A\00" @.str4047 = private unnamed_addr constant [27 x i8] c" %st = load i64, ptr %sp\0A\00" @.str4048 = private unnamed_addr constant [27 x i8] c" %en = load i64, ptr %ep\0A\00" @.str4049 = private unnamed_addr constant [27 x i8] c" %len = sub i64 %en, %st\0A\00" @.str4050 = private unnamed_addr constant [25 x i8] c" %sz = add i64 %len, 1\0A\00" @.str4051 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str4052 = private unnamed_addr constant [44 x i8] c" %src = getelementptr i8, ptr %s, i64 %st\0A\00" @.str4053 = private unnamed_addr constant [50 x i8] c" call ptr @memcpy(ptr %out, ptr %src, i64 %len)\0A\00" @.str4054 = private unnamed_addr constant [46 x i8] c" %tp = getelementptr i8, ptr %out, i64 %len\0A\00" @.str4055 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str4056 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str4057 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4058 = private unnamed_addr constant [30 x i8] c"define i1 @lp_is_ws(i8 %c) {\0A\00" @.str4059 = private unnamed_addr constant [26 x i8] c" %a = icmp eq i8 %c, 32\0A\00" @.str4060 = private unnamed_addr constant [25 x i8] c" %b = icmp eq i8 %c, 9\0A\00" @.str4061 = private unnamed_addr constant [26 x i8] c" %d = icmp eq i8 %c, 10\0A\00" @.str4062 = private unnamed_addr constant [26 x i8] c" %e = icmp eq i8 %c, 13\0A\00" @.str4063 = private unnamed_addr constant [22 x i8] c" %ab = or i1 %a, %b\0A\00" @.str4064 = private unnamed_addr constant [22 x i8] c" %de = or i1 %d, %e\0A\00" @.str4065 = private unnamed_addr constant [23 x i8] c" %r = or i1 %ab, %de\0A\00" @.str4066 = private unnamed_addr constant [13 x i8] c" ret i1 %r\0A\00" @.str4067 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4068 = private unnamed_addr constant [47 x i8] c"define ptr @lp_str_repeat(ptr %s, i32 %n32) {\0A\00" @.str4069 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4070 = private unnamed_addr constant [32 x i8] c" %nneg = icmp slt i32 %n32, 0\0A\00" @.str4071 = private unnamed_addr constant [42 x i8] c" %nn = select i1 %nneg, i32 0, i32 %n32\0A\00" @.str4072 = private unnamed_addr constant [28 x i8] c" %n = zext i32 %nn to i64\0A\00" @.str4073 = private unnamed_addr constant [33 x i8] c" %L = call i64 @strlen(ptr %s)\0A\00" @.str4074 = private unnamed_addr constant [25 x i8] c" %tot = mul i64 %L, %n\0A\00" @.str4075 = private unnamed_addr constant [25 x i8] c" %sz = add i64 %tot, 1\0A\00" @.str4076 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str4077 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str4078 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str4079 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4080 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str4081 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str4082 = private unnamed_addr constant [28 x i8] c" %d = icmp ult i64 %i, %n\0A\00" @.str4083 = private unnamed_addr constant [37 x i8] c" br i1 %d, label %body, label %fin\0A\00" @.str4084 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str4085 = private unnamed_addr constant [25 x i8] c" %off = mul i64 %i, %L\0A\00" @.str4086 = private unnamed_addr constant [47 x i8] c" %dst = getelementptr i8, ptr %out, i64 %off\0A\00" @.str4087 = private unnamed_addr constant [46 x i8] c" call ptr @memcpy(ptr %dst, ptr %s, i64 %L)\0A\00" @.str4088 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4089 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4090 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4091 = private unnamed_addr constant [6 x i8] c"fin:\0A\00" @.str4092 = private unnamed_addr constant [46 x i8] c" %tp = getelementptr i8, ptr %out, i64 %tot\0A\00" @.str4093 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str4094 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str4095 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4096 = private unnamed_addr constant [54 x i8] c"define ptr @lp_str_pad(ptr %s, i32 %w32, i1 %left) {\0A\00" @.str4097 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4098 = private unnamed_addr constant [33 x i8] c" %L = call i64 @strlen(ptr %s)\0A\00" @.str4099 = private unnamed_addr constant [30 x i8] c" %w0 = sext i32 %w32 to i64\0A\00" @.str4100 = private unnamed_addr constant [32 x i8] c" %need = icmp ugt i64 %w0, %L\0A\00" @.str4101 = private unnamed_addr constant [39 x i8] c" br i1 %need, label %do, label %copy\0A\00" @.str4102 = private unnamed_addr constant [7 x i8] c"copy:\0A\00" @.str4103 = private unnamed_addr constant [24 x i8] c" %sz0 = add i64 %L, 1\0A\00" @.str4104 = private unnamed_addr constant [36 x i8] c" %o0 = call ptr @malloc(i64 %sz0)\0A\00" @.str4105 = private unnamed_addr constant [23 x i8] c" %e0 = add i64 %L, 0\0A\00" @.str4106 = private unnamed_addr constant [45 x i8] c" call ptr @memcpy(ptr %o0, ptr %s, i64 %L)\0A\00" @.str4107 = private unnamed_addr constant [43 x i8] c" %t0 = getelementptr i8, ptr %o0, i64 %L\0A\00" @.str4108 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %t0\0A\00" @.str4109 = private unnamed_addr constant [15 x i8] c" ret ptr %o0\0A\00" @.str4110 = private unnamed_addr constant [5 x i8] c"do:\0A\00" @.str4111 = private unnamed_addr constant [26 x i8] c" %pad = sub i64 %w0, %L\0A\00" @.str4112 = private unnamed_addr constant [24 x i8] c" %sz = add i64 %w0, 1\0A\00" @.str4113 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str4114 = private unnamed_addr constant [48 x i8] c" br i1 %left, label %padleft, label %padright\0A\00" @.str4115 = private unnamed_addr constant [10 x i8] c"padleft:\0A\00" @.str4116 = private unnamed_addr constant [52 x i8] c" call void @lp_fill_sp(ptr %out, i64 0, i64 %pad)\0A\00" @.str4117 = private unnamed_addr constant [48 x i8] c" %dstL = getelementptr i8, ptr %out, i64 %pad\0A\00" @.str4118 = private unnamed_addr constant [47 x i8] c" call ptr @memcpy(ptr %dstL, ptr %s, i64 %L)\0A\00" @.str4119 = private unnamed_addr constant [18 x i8] c" br label %term\0A\00" @.str4120 = private unnamed_addr constant [11 x i8] c"padright:\0A\00" @.str4121 = private unnamed_addr constant [46 x i8] c" call ptr @memcpy(ptr %out, ptr %s, i64 %L)\0A\00" @.str4122 = private unnamed_addr constant [53 x i8] c" call void @lp_fill_sp(ptr %out, i64 %L, i64 %pad)\0A\00" @.str4123 = private unnamed_addr constant [18 x i8] c" br label %term\0A\00" @.str4124 = private unnamed_addr constant [7 x i8] c"term:\0A\00" @.str4125 = private unnamed_addr constant [45 x i8] c" %tp = getelementptr i8, ptr %out, i64 %w0\0A\00" @.str4126 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str4127 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str4128 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4129 = private unnamed_addr constant [61 x i8] c"define void @lp_fill_sp(ptr %buf, i64 %start, i64 %count) {\0A\00" @.str4130 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4131 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str4132 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str4133 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4134 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str4135 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str4136 = private unnamed_addr constant [32 x i8] c" %d = icmp ult i64 %i, %count\0A\00" @.str4137 = private unnamed_addr constant [38 x i8] c" br i1 %d, label %body, label %done\0A\00" @.str4138 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str4139 = private unnamed_addr constant [29 x i8] c" %off = add i64 %start, %i\0A\00" @.str4140 = private unnamed_addr constant [45 x i8] c" %p = getelementptr i8, ptr %buf, i64 %off\0A\00" @.str4141 = private unnamed_addr constant [23 x i8] c" store i8 32, ptr %p\0A\00" @.str4142 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4143 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4144 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4145 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str4146 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str4147 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4148 = private unnamed_addr constant [58 x i8] c"define ptr @lp_str_replace(ptr %s, ptr %from, ptr %to) {\0A\00" @.str4149 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4150 = private unnamed_addr constant [37 x i8] c" %lf = call i64 @strlen(ptr %from)\0A\00" @.str4151 = private unnamed_addr constant [28 x i8] c" %lz = icmp eq i64 %lf, 0\0A\00" @.str4152 = private unnamed_addr constant [42 x i8] c" br i1 %lz, label %copyall, label %scan\0A\00" @.str4153 = private unnamed_addr constant [10 x i8] c"copyall:\0A\00" @.str4154 = private unnamed_addr constant [35 x i8] c" %ls0 = call i64 @strlen(ptr %s)\0A\00" @.str4155 = private unnamed_addr constant [26 x i8] c" %sz0 = add i64 %ls0, 1\0A\00" @.str4156 = private unnamed_addr constant [36 x i8] c" %o0 = call ptr @malloc(i64 %sz0)\0A\00" @.str4157 = private unnamed_addr constant [47 x i8] c" call ptr @memcpy(ptr %o0, ptr %s, i64 %sz0)\0A\00" @.str4158 = private unnamed_addr constant [15 x i8] c" ret ptr %o0\0A\00" @.str4159 = private unnamed_addr constant [7 x i8] c"scan:\0A\00" @.str4160 = private unnamed_addr constant [35 x i8] c" %lt = call i64 @strlen(ptr %to)\0A\00" @.str4161 = private unnamed_addr constant [34 x i8] c" %ls = call i64 @strlen(ptr %s)\0A\00" @.str4162 = private unnamed_addr constant [22 x i8] c" %cntp = alloca i64\0A\00" @.str4163 = private unnamed_addr constant [26 x i8] c" store i64 0, ptr %cntp\0A\00" @.str4164 = private unnamed_addr constant [22 x i8] c" %curp = alloca ptr\0A\00" @.str4165 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %curp\0A\00" @.str4166 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str4167 = private unnamed_addr constant [8 x i8] c"ccond:\0A\00" @.str4168 = private unnamed_addr constant [30 x i8] c" %cur = load ptr, ptr %curp\0A\00" @.str4169 = private unnamed_addr constant [48 x i8] c" %hit = call ptr @strstr(ptr %cur, ptr %from)\0A\00" @.str4170 = private unnamed_addr constant [36 x i8] c" %isnull = icmp eq ptr %hit, null\0A\00" @.str4171 = private unnamed_addr constant [44 x i8] c" br i1 %isnull, label %csize, label %cinc\0A\00" @.str4172 = private unnamed_addr constant [7 x i8] c"cinc:\0A\00" @.str4173 = private unnamed_addr constant [29 x i8] c" %c0 = load i64, ptr %cntp\0A\00" @.str4174 = private unnamed_addr constant [24 x i8] c" %c1 = add i64 %c0, 1\0A\00" @.str4175 = private unnamed_addr constant [28 x i8] c" store i64 %c1, ptr %cntp\0A\00" @.str4176 = private unnamed_addr constant [46 x i8] c" %adv = getelementptr i8, ptr %hit, i64 %lf\0A\00" @.str4177 = private unnamed_addr constant [29 x i8] c" store ptr %adv, ptr %curp\0A\00" @.str4178 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str4179 = private unnamed_addr constant [8 x i8] c"csize:\0A\00" @.str4180 = private unnamed_addr constant [30 x i8] c" %cnt = load i64, ptr %cntp\0A\00" @.str4181 = private unnamed_addr constant [29 x i8] c" %delta = sub i64 %lt, %lf\0A\00" @.str4182 = private unnamed_addr constant [32 x i8] c" %grow = mul i64 %cnt, %delta\0A\00" @.str4183 = private unnamed_addr constant [32 x i8] c" %newlen = add i64 %ls, %grow\0A\00" @.str4184 = private unnamed_addr constant [29 x i8] c" %osz = add i64 %newlen, 1\0A\00" @.str4185 = private unnamed_addr constant [37 x i8] c" %out = call ptr @malloc(i64 %osz)\0A\00" @.str4186 = private unnamed_addr constant [22 x i8] c" %srcp = alloca ptr\0A\00" @.str4187 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %srcp\0A\00" @.str4188 = private unnamed_addr constant [22 x i8] c" %dstp = alloca ptr\0A\00" @.str4189 = private unnamed_addr constant [29 x i8] c" store ptr %out, ptr %dstp\0A\00" @.str4190 = private unnamed_addr constant [19 x i8] c" br label %bcond\0A\00" @.str4191 = private unnamed_addr constant [8 x i8] c"bcond:\0A\00" @.str4192 = private unnamed_addr constant [30 x i8] c" %src = load ptr, ptr %srcp\0A\00" @.str4193 = private unnamed_addr constant [47 x i8] c" %h2 = call ptr @strstr(ptr %src, ptr %from)\0A\00" @.str4194 = private unnamed_addr constant [31 x i8] c" %n2 = icmp eq ptr %h2, null\0A\00" @.str4195 = private unnamed_addr constant [38 x i8] c" br i1 %n2, label %tail, label %seg\0A\00" @.str4196 = private unnamed_addr constant [6 x i8] c"seg:\0A\00" @.str4197 = private unnamed_addr constant [34 x i8] c" %si = ptrtoint ptr %src to i64\0A\00" @.str4198 = private unnamed_addr constant [33 x i8] c" %hi = ptrtoint ptr %h2 to i64\0A\00" @.str4199 = private unnamed_addr constant [30 x i8] c" %seglen = sub i64 %hi, %si\0A\00" @.str4200 = private unnamed_addr constant [31 x i8] c" %dst0 = load ptr, ptr %dstp\0A\00" @.str4201 = private unnamed_addr constant [54 x i8] c" call ptr @memcpy(ptr %dst0, ptr %src, i64 %seglen)\0A\00" @.str4202 = private unnamed_addr constant [52 x i8] c" %dst1 = getelementptr i8, ptr %dst0, i64 %seglen\0A\00" @.str4203 = private unnamed_addr constant [49 x i8] c" call ptr @memcpy(ptr %dst1, ptr %to, i64 %lt)\0A\00" @.str4204 = private unnamed_addr constant [48 x i8] c" %dst2 = getelementptr i8, ptr %dst1, i64 %lt\0A\00" @.str4205 = private unnamed_addr constant [30 x i8] c" store ptr %dst2, ptr %dstp\0A\00" @.str4206 = private unnamed_addr constant [46 x i8] c" %src2 = getelementptr i8, ptr %h2, i64 %lf\0A\00" @.str4207 = private unnamed_addr constant [30 x i8] c" store ptr %src2, ptr %srcp\0A\00" @.str4208 = private unnamed_addr constant [19 x i8] c" br label %bcond\0A\00" @.str4209 = private unnamed_addr constant [7 x i8] c"tail:\0A\00" @.str4210 = private unnamed_addr constant [31 x i8] c" %src3 = load ptr, ptr %srcp\0A\00" @.str4211 = private unnamed_addr constant [38 x i8] c" %rem = call i64 @strlen(ptr %src3)\0A\00" @.str4212 = private unnamed_addr constant [31 x i8] c" %dst3 = load ptr, ptr %dstp\0A\00" @.str4213 = private unnamed_addr constant [28 x i8] c" %remp1 = add i64 %rem, 1\0A\00" @.str4214 = private unnamed_addr constant [54 x i8] c" call ptr @memcpy(ptr %dst3, ptr %src3, i64 %remp1)\0A\00" @.str4215 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str4216 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4217 = private unnamed_addr constant [45 x i8] c"define ptr @lp_str_join(ptr %h, ptr %sep) {\0A\00" @.str4218 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4219 = private unnamed_addr constant [62 x i8] c" %lp = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 1\0A\00" @.str4220 = private unnamed_addr constant [30 x i8] c" %len32 = load i32, ptr %lp\0A\00" @.str4221 = private unnamed_addr constant [33 x i8] c" %len = sext i32 %len32 to i64\0A\00" @.str4222 = private unnamed_addr constant [62 x i8] c" %dp = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 0\0A\00" @.str4223 = private unnamed_addr constant [29 x i8] c" %data = load ptr, ptr %dp\0A\00" @.str4224 = private unnamed_addr constant [38 x i8] c" %lsep = call i64 @strlen(ptr %sep)\0A\00" @.str4225 = private unnamed_addr constant [22 x i8] c" %totp = alloca i64\0A\00" @.str4226 = private unnamed_addr constant [26 x i8] c" store i64 0, ptr %totp\0A\00" @.str4227 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str4228 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str4229 = private unnamed_addr constant [19 x i8] c" br label %scond\0A\00" @.str4230 = private unnamed_addr constant [8 x i8] c"scond:\0A\00" @.str4231 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str4232 = private unnamed_addr constant [30 x i8] c" %d = icmp ult i64 %i, %len\0A\00" @.str4233 = private unnamed_addr constant [40 x i8] c" br i1 %d, label %sbody, label %alloc\0A\00" @.str4234 = private unnamed_addr constant [8 x i8] c"sbody:\0A\00" @.str4235 = private unnamed_addr constant [46 x i8] c" %ep = getelementptr ptr, ptr %data, i64 %i\0A\00" @.str4236 = private unnamed_addr constant [27 x i8] c" %es = load ptr, ptr %ep\0A\00" @.str4237 = private unnamed_addr constant [35 x i8] c" %el = call i64 @strlen(ptr %es)\0A\00" @.str4238 = private unnamed_addr constant [29 x i8] c" %t0 = load i64, ptr %totp\0A\00" @.str4239 = private unnamed_addr constant [26 x i8] c" %t1 = add i64 %t0, %el\0A\00" @.str4240 = private unnamed_addr constant [28 x i8] c" store i64 %t1, ptr %totp\0A\00" @.str4241 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4242 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4243 = private unnamed_addr constant [19 x i8] c" br label %scond\0A\00" @.str4244 = private unnamed_addr constant [8 x i8] c"alloc:\0A\00" @.str4245 = private unnamed_addr constant [30 x i8] c" %nz = icmp ugt i64 %len, 0\0A\00" @.str4246 = private unnamed_addr constant [26 x i8] c" %lm1 = sub i64 %len, 1\0A\00" @.str4247 = private unnamed_addr constant [31 x i8] c" %seps = mul i64 %lm1, %lsep\0A\00" @.str4248 = private unnamed_addr constant [44 x i8] c" %sepsz = select i1 %nz, i64 %seps, i64 0\0A\00" @.str4249 = private unnamed_addr constant [31 x i8] c" %tot0 = load i64, ptr %totp\0A\00" @.str4250 = private unnamed_addr constant [32 x i8] c" %tot = add i64 %tot0, %sepsz\0A\00" @.str4251 = private unnamed_addr constant [26 x i8] c" %osz = add i64 %tot, 1\0A\00" @.str4252 = private unnamed_addr constant [37 x i8] c" %out = call ptr @malloc(i64 %osz)\0A\00" @.str4253 = private unnamed_addr constant [22 x i8] c" %dstp = alloca ptr\0A\00" @.str4254 = private unnamed_addr constant [29 x i8] c" store ptr %out, ptr %dstp\0A\00" @.str4255 = private unnamed_addr constant [20 x i8] c" %jp = alloca i64\0A\00" @.str4256 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %jp\0A\00" @.str4257 = private unnamed_addr constant [19 x i8] c" br label %jcond\0A\00" @.str4258 = private unnamed_addr constant [8 x i8] c"jcond:\0A\00" @.str4259 = private unnamed_addr constant [26 x i8] c" %j = load i64, ptr %jp\0A\00" @.str4260 = private unnamed_addr constant [31 x i8] c" %d2 = icmp ult i64 %j, %len\0A\00" @.str4261 = private unnamed_addr constant [40 x i8] c" br i1 %d2, label %jbody, label %jfin\0A\00" @.str4262 = private unnamed_addr constant [8 x i8] c"jbody:\0A\00" @.str4263 = private unnamed_addr constant [29 x i8] c" %jnz = icmp ugt i64 %j, 0\0A\00" @.str4264 = private unnamed_addr constant [43 x i8] c" br i1 %jnz, label %putsep, label %putel\0A\00" @.str4265 = private unnamed_addr constant [9 x i8] c"putsep:\0A\00" @.str4266 = private unnamed_addr constant [30 x i8] c" %ds0 = load ptr, ptr %dstp\0A\00" @.str4267 = private unnamed_addr constant [51 x i8] c" call ptr @memcpy(ptr %ds0, ptr %sep, i64 %lsep)\0A\00" @.str4268 = private unnamed_addr constant [48 x i8] c" %ds1 = getelementptr i8, ptr %ds0, i64 %lsep\0A\00" @.str4269 = private unnamed_addr constant [29 x i8] c" store ptr %ds1, ptr %dstp\0A\00" @.str4270 = private unnamed_addr constant [19 x i8] c" br label %putel\0A\00" @.str4271 = private unnamed_addr constant [8 x i8] c"putel:\0A\00" @.str4272 = private unnamed_addr constant [47 x i8] c" %ep2 = getelementptr ptr, ptr %data, i64 %j\0A\00" @.str4273 = private unnamed_addr constant [29 x i8] c" %es2 = load ptr, ptr %ep2\0A\00" @.str4274 = private unnamed_addr constant [37 x i8] c" %el2 = call i64 @strlen(ptr %es2)\0A\00" @.str4275 = private unnamed_addr constant [30 x i8] c" %ds2 = load ptr, ptr %dstp\0A\00" @.str4276 = private unnamed_addr constant [50 x i8] c" call ptr @memcpy(ptr %ds2, ptr %es2, i64 %el2)\0A\00" @.str4277 = private unnamed_addr constant [47 x i8] c" %ds3 = getelementptr i8, ptr %ds2, i64 %el2\0A\00" @.str4278 = private unnamed_addr constant [29 x i8] c" store ptr %ds3, ptr %dstp\0A\00" @.str4279 = private unnamed_addr constant [23 x i8] c" %j1 = add i64 %j, 1\0A\00" @.str4280 = private unnamed_addr constant [26 x i8] c" store i64 %j1, ptr %jp\0A\00" @.str4281 = private unnamed_addr constant [19 x i8] c" br label %jcond\0A\00" @.str4282 = private unnamed_addr constant [7 x i8] c"jfin:\0A\00" @.str4283 = private unnamed_addr constant [30 x i8] c" %dsf = load ptr, ptr %dstp\0A\00" @.str4284 = private unnamed_addr constant [24 x i8] c" store i8 0, ptr %dsf\0A\00" @.str4285 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str4286 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4287 = private unnamed_addr constant [46 x i8] c"define ptr @lp_str_split(ptr %s, ptr %sep) {\0A\00" @.str4288 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4289 = private unnamed_addr constant [38 x i8] c" %lsep = call i64 @strlen(ptr %sep)\0A\00" @.str4290 = private unnamed_addr constant [22 x i8] c" %cntp = alloca i64\0A\00" @.str4291 = private unnamed_addr constant [26 x i8] c" store i64 1, ptr %cntp\0A\00" @.str4292 = private unnamed_addr constant [22 x i8] c" %curp = alloca ptr\0A\00" @.str4293 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %curp\0A\00" @.str4294 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str4295 = private unnamed_addr constant [8 x i8] c"ccond:\0A\00" @.str4296 = private unnamed_addr constant [30 x i8] c" %cur = load ptr, ptr %curp\0A\00" @.str4297 = private unnamed_addr constant [47 x i8] c" %hit = call ptr @strstr(ptr %cur, ptr %sep)\0A\00" @.str4298 = private unnamed_addr constant [36 x i8] c" %isnull = icmp eq ptr %hit, null\0A\00" @.str4299 = private unnamed_addr constant [41 x i8] c" br i1 %isnull, label %mk, label %cinc\0A\00" @.str4300 = private unnamed_addr constant [7 x i8] c"cinc:\0A\00" @.str4301 = private unnamed_addr constant [29 x i8] c" %c0 = load i64, ptr %cntp\0A\00" @.str4302 = private unnamed_addr constant [24 x i8] c" %c1 = add i64 %c0, 1\0A\00" @.str4303 = private unnamed_addr constant [28 x i8] c" store i64 %c1, ptr %cntp\0A\00" @.str4304 = private unnamed_addr constant [48 x i8] c" %adv = getelementptr i8, ptr %hit, i64 %lsep\0A\00" @.str4305 = private unnamed_addr constant [29 x i8] c" store ptr %adv, ptr %curp\0A\00" @.str4306 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str4307 = private unnamed_addr constant [5 x i8] c"mk:\0A\00" @.str4308 = private unnamed_addr constant [30 x i8] c" %cnt = load i64, ptr %cntp\0A\00" @.str4309 = private unnamed_addr constant [35 x i8] c" %hdr = call ptr @malloc(i64 16)\0A\00" @.str4310 = private unnamed_addr constant [28 x i8] c" %arrsz = mul i64 %cnt, 8\0A\00" @.str4311 = private unnamed_addr constant [39 x i8] c" %arr = call ptr @malloc(i64 %arrsz)\0A\00" @.str4312 = private unnamed_addr constant [64 x i8] c" %d0 = getelementptr inbounds %LSlice, ptr %hdr, i32 0, i32 0\0A\00" @.str4313 = private unnamed_addr constant [27 x i8] c" store ptr %arr, ptr %d0\0A\00" @.str4314 = private unnamed_addr constant [34 x i8] c" %cnt32 = trunc i64 %cnt to i32\0A\00" @.str4315 = private unnamed_addr constant [64 x i8] c" %d1 = getelementptr inbounds %LSlice, ptr %hdr, i32 0, i32 1\0A\00" @.str4316 = private unnamed_addr constant [29 x i8] c" store i32 %cnt32, ptr %d1\0A\00" @.str4317 = private unnamed_addr constant [64 x i8] c" %d2 = getelementptr inbounds %LSlice, ptr %hdr, i32 0, i32 2\0A\00" @.str4318 = private unnamed_addr constant [29 x i8] c" store i32 %cnt32, ptr %d2\0A\00" @.str4319 = private unnamed_addr constant [22 x i8] c" %srcp = alloca ptr\0A\00" @.str4320 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %srcp\0A\00" @.str4321 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str4322 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str4323 = private unnamed_addr constant [19 x i8] c" br label %fcond\0A\00" @.str4324 = private unnamed_addr constant [8 x i8] c"fcond:\0A\00" @.str4325 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str4326 = private unnamed_addr constant [31 x i8] c" %lt = icmp ult i64 %i, %cnt\0A\00" @.str4327 = private unnamed_addr constant [40 x i8] c" br i1 %lt, label %fbody, label %done\0A\00" @.str4328 = private unnamed_addr constant [8 x i8] c"fbody:\0A\00" @.str4329 = private unnamed_addr constant [30 x i8] c" %src = load ptr, ptr %srcp\0A\00" @.str4330 = private unnamed_addr constant [46 x i8] c" %h2 = call ptr @strstr(ptr %src, ptr %sep)\0A\00" @.str4331 = private unnamed_addr constant [31 x i8] c" %n2 = icmp eq ptr %h2, null\0A\00" @.str4332 = private unnamed_addr constant [38 x i8] c" br i1 %n2, label %last, label %mid\0A\00" @.str4333 = private unnamed_addr constant [6 x i8] c"mid:\0A\00" @.str4334 = private unnamed_addr constant [34 x i8] c" %si = ptrtoint ptr %src to i64\0A\00" @.str4335 = private unnamed_addr constant [33 x i8] c" %hi = ptrtoint ptr %h2 to i64\0A\00" @.str4336 = private unnamed_addr constant [30 x i8] c" %seglen = sub i64 %hi, %si\0A\00" @.str4337 = private unnamed_addr constant [19 x i8] c" br label %store\0A\00" @.str4338 = private unnamed_addr constant [7 x i8] c"last:\0A\00" @.str4339 = private unnamed_addr constant [37 x i8] c" %rem = call i64 @strlen(ptr %src)\0A\00" @.str4340 = private unnamed_addr constant [19 x i8] c" br label %store\0A\00" @.str4341 = private unnamed_addr constant [8 x i8] c"store:\0A\00" @.str4342 = private unnamed_addr constant [53 x i8] c" %seg = phi i64 [ %seglen, %mid ], [ %rem, %last ]\0A\00" @.str4343 = private unnamed_addr constant [26 x i8] c" %ssz = add i64 %seg, 1\0A\00" @.str4344 = private unnamed_addr constant [37 x i8] c" %sub = call ptr @malloc(i64 %ssz)\0A\00" @.str4345 = private unnamed_addr constant [31 x i8] c" %src2 = load ptr, ptr %srcp\0A\00" @.str4346 = private unnamed_addr constant [51 x i8] c" call ptr @memcpy(ptr %sub, ptr %src2, i64 %seg)\0A\00" @.str4347 = private unnamed_addr constant [46 x i8] c" %tp = getelementptr i8, ptr %sub, i64 %seg\0A\00" @.str4348 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str4349 = private unnamed_addr constant [47 x i8] c" %slot = getelementptr ptr, ptr %arr, i64 %i\0A\00" @.str4350 = private unnamed_addr constant [29 x i8] c" store ptr %sub, ptr %slot\0A\00" @.str4351 = private unnamed_addr constant [48 x i8] c" %adv2 = getelementptr i8, ptr %h2, i64 %lsep\0A\00" @.str4352 = private unnamed_addr constant [30 x i8] c" store ptr %adv2, ptr %srcp\0A\00" @.str4353 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4354 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4355 = private unnamed_addr constant [19 x i8] c" br label %fcond\0A\00" @.str4356 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str4357 = private unnamed_addr constant [16 x i8] c" ret ptr %hdr\0A\00" @.str4358 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4359 = private unnamed_addr constant [3 x i8] c"of\00" @.str4360 = private unnamed_addr constant [6 x i8] c"fnv1a\00" @.str4361 = private unnamed_addr constant [6 x i8] c"crc32\00" @.str4362 = private unnamed_addr constant [4 x i8] c"mix\00" @.str4363 = private unnamed_addr constant [8 x i8] c"combine\00" @.str4364 = private unnamed_addr constant [5 x i8] c"of64\00" @.str4365 = private unnamed_addr constant [9 x i8] c"fnv1a_64\00" @.str4366 = private unnamed_addr constant [6 x i8] c"mix64\00" @.str4367 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str4368 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4369 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str4370 = private unnamed_addr constant [3 x i8] c", \00" @.str4371 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4372 = private unnamed_addr constant [14 x i8] c", -2048144789\00" @.str4373 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str4374 = private unnamed_addr constant [5 x i8] c", 13\00" @.str4375 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str4376 = private unnamed_addr constant [3 x i8] c", \00" @.str4377 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4378 = private unnamed_addr constant [14 x i8] c", -1028477387\00" @.str4379 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str4380 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4381 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str4382 = private unnamed_addr constant [3 x i8] c", \00" @.str4383 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str4384 = private unnamed_addr constant [5 x i8] c", 33\00" @.str4385 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str4386 = private unnamed_addr constant [3 x i8] c", \00" @.str4387 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4388 = private unnamed_addr constant [21 x i8] c", -49064778989728563\00" @.str4389 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str4390 = private unnamed_addr constant [5 x i8] c", 33\00" @.str4391 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str4392 = private unnamed_addr constant [3 x i8] c", \00" @.str4393 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4394 = private unnamed_addr constant [23 x i8] c", -4265267296055464877\00" @.str4395 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str4396 = private unnamed_addr constant [5 x i8] c", 33\00" @.str4397 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str4398 = private unnamed_addr constant [3 x i8] c", \00" @.str4399 = private unnamed_addr constant [3 x i8] c"of\00" @.str4400 = private unnamed_addr constant [6 x i8] c"fnv1a\00" @.str4401 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7916: index out of range: \00" @.str4402 = private unnamed_addr constant [29 x i8] c"call i32 @lp_hash_fnv1a(ptr \00" @.str4403 = private unnamed_addr constant [2 x i8] c")\00" @.str4404 = private unnamed_addr constant [4 x i8] c"int\00" @.str4405 = private unnamed_addr constant [5 x i8] c"of64\00" @.str4406 = private unnamed_addr constant [9 x i8] c"fnv1a_64\00" @.str4407 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7921: index out of range: \00" @.str4408 = private unnamed_addr constant [32 x i8] c"call i64 @lp_hash_fnv1a_64(ptr \00" @.str4409 = private unnamed_addr constant [2 x i8] c")\00" @.str4410 = private unnamed_addr constant [5 x i8] c"long\00" @.str4411 = private unnamed_addr constant [6 x i8] c"mix64\00" @.str4412 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7925: index out of range: \00" @.str4413 = private unnamed_addr constant [5 x i8] c"long\00" @.str4414 = private unnamed_addr constant [6 x i8] c"crc32\00" @.str4415 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7930: index out of range: \00" @.str4416 = private unnamed_addr constant [29 x i8] c"call i32 @lp_hash_crc32(ptr \00" @.str4417 = private unnamed_addr constant [2 x i8] c")\00" @.str4418 = private unnamed_addr constant [4 x i8] c"int\00" @.str4419 = private unnamed_addr constant [4 x i8] c"mix\00" @.str4420 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7934: index out of range: \00" @.str4421 = private unnamed_addr constant [4 x i8] c"int\00" @.str4422 = private unnamed_addr constant [2 x i8] c"0\00" @.str4423 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:7944: index out of range: \00" @.str4424 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4425 = private unnamed_addr constant [14 x i8] c", -1640531527\00" @.str4426 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str4427 = private unnamed_addr constant [4 x i8] c", 6\00" @.str4428 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str4429 = private unnamed_addr constant [4 x i8] c", 2\00" @.str4430 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4431 = private unnamed_addr constant [3 x i8] c", \00" @.str4432 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4433 = private unnamed_addr constant [3 x i8] c", \00" @.str4434 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str4435 = private unnamed_addr constant [3 x i8] c", \00" @.str4436 = private unnamed_addr constant [4 x i8] c"int\00" @.str4437 = private unnamed_addr constant [37 x i8] c"define i32 @lp_hash_fnv1a(ptr %s) {\0A\00" @.str4438 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4439 = private unnamed_addr constant [20 x i8] c" %hp = alloca i32\0A\00" @.str4440 = private unnamed_addr constant [34 x i8] c" store i32 -2128831035, ptr %hp\0A\00" @.str4441 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str4442 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str4443 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4444 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str4445 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str4446 = private unnamed_addr constant [41 x i8] c" %p = getelementptr i8, ptr %s, i64 %i\0A\00" @.str4447 = private unnamed_addr constant [24 x i8] c" %c = load i8, ptr %p\0A\00" @.str4448 = private unnamed_addr constant [25 x i8] c" %z = icmp eq i8 %c, 0\0A\00" @.str4449 = private unnamed_addr constant [38 x i8] c" br i1 %z, label %done, label %body\0A\00" @.str4450 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str4451 = private unnamed_addr constant [27 x i8] c" %ce = zext i8 %c to i32\0A\00" @.str4452 = private unnamed_addr constant [26 x i8] c" %h = load i32, ptr %hp\0A\00" @.str4453 = private unnamed_addr constant [24 x i8] c" %x = xor i32 %h, %ce\0A\00" @.str4454 = private unnamed_addr constant [29 x i8] c" %m = mul i32 %x, 16777619\0A\00" @.str4455 = private unnamed_addr constant [25 x i8] c" store i32 %m, ptr %hp\0A\00" @.str4456 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4457 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4458 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4459 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str4460 = private unnamed_addr constant [27 x i8] c" %hr = load i32, ptr %hp\0A\00" @.str4461 = private unnamed_addr constant [15 x i8] c" ret i32 %hr\0A\00" @.str4462 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4463 = private unnamed_addr constant [40 x i8] c"define i64 @lp_hash_fnv1a_64(ptr %s) {\0A\00" @.str4464 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4465 = private unnamed_addr constant [20 x i8] c" %hp = alloca i64\0A\00" @.str4466 = private unnamed_addr constant [43 x i8] c" store i64 -3750763034362895579, ptr %hp\0A\00" @.str4467 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str4468 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str4469 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4470 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str4471 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str4472 = private unnamed_addr constant [41 x i8] c" %p = getelementptr i8, ptr %s, i64 %i\0A\00" @.str4473 = private unnamed_addr constant [24 x i8] c" %c = load i8, ptr %p\0A\00" @.str4474 = private unnamed_addr constant [25 x i8] c" %z = icmp eq i8 %c, 0\0A\00" @.str4475 = private unnamed_addr constant [38 x i8] c" br i1 %z, label %done, label %body\0A\00" @.str4476 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str4477 = private unnamed_addr constant [27 x i8] c" %ce = zext i8 %c to i64\0A\00" @.str4478 = private unnamed_addr constant [26 x i8] c" %h = load i64, ptr %hp\0A\00" @.str4479 = private unnamed_addr constant [24 x i8] c" %x = xor i64 %h, %ce\0A\00" @.str4480 = private unnamed_addr constant [34 x i8] c" %m = mul i64 %x, 1099511628211\0A\00" @.str4481 = private unnamed_addr constant [25 x i8] c" store i64 %m, ptr %hp\0A\00" @.str4482 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4483 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4484 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4485 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str4486 = private unnamed_addr constant [27 x i8] c" %hr = load i64, ptr %hp\0A\00" @.str4487 = private unnamed_addr constant [15 x i8] c" ret i64 %hr\0A\00" @.str4488 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4489 = private unnamed_addr constant [37 x i8] c"define i32 @lp_hash_crc32(ptr %s) {\0A\00" @.str4490 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4491 = private unnamed_addr constant [20 x i8] c" %cp = alloca i32\0A\00" @.str4492 = private unnamed_addr constant [25 x i8] c" store i32 -1, ptr %cp\0A\00" @.str4493 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str4494 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str4495 = private unnamed_addr constant [20 x i8] c" %kp = alloca i32\0A\00" @.str4496 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4497 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str4498 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str4499 = private unnamed_addr constant [41 x i8] c" %p = getelementptr i8, ptr %s, i64 %i\0A\00" @.str4500 = private unnamed_addr constant [25 x i8] c" %ch = load i8, ptr %p\0A\00" @.str4501 = private unnamed_addr constant [26 x i8] c" %z = icmp eq i8 %ch, 0\0A\00" @.str4502 = private unnamed_addr constant [38 x i8] c" br i1 %z, label %done, label %body\0A\00" @.str4503 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str4504 = private unnamed_addr constant [28 x i8] c" %ce = zext i8 %ch to i32\0A\00" @.str4505 = private unnamed_addr constant [27 x i8] c" %c0 = load i32, ptr %cp\0A\00" @.str4506 = private unnamed_addr constant [26 x i8] c" %cx = xor i32 %c0, %ce\0A\00" @.str4507 = private unnamed_addr constant [26 x i8] c" store i32 %cx, ptr %cp\0A\00" @.str4508 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %kp\0A\00" @.str4509 = private unnamed_addr constant [17 x i8] c" br label %bit\0A\00" @.str4510 = private unnamed_addr constant [6 x i8] c"bit:\0A\00" @.str4511 = private unnamed_addr constant [26 x i8] c" %k = load i32, ptr %kp\0A\00" @.str4512 = private unnamed_addr constant [28 x i8] c" %kd = icmp slt i32 %k, 8\0A\00" @.str4513 = private unnamed_addr constant [45 x i8] c" br i1 %kd, label %bitbody, label %bitdone\0A\00" @.str4514 = private unnamed_addr constant [10 x i8] c"bitbody:\0A\00" @.str4515 = private unnamed_addr constant [27 x i8] c" %c1 = load i32, ptr %cp\0A\00" @.str4516 = private unnamed_addr constant [24 x i8] c" %lb = and i32 %c1, 1\0A\00" @.str4517 = private unnamed_addr constant [25 x i8] c" %ls = lshr i32 %c1, 1\0A\00" @.str4518 = private unnamed_addr constant [29 x i8] c" %ism = icmp eq i32 %lb, 1\0A\00" @.str4519 = private unnamed_addr constant [47 x i8] c" %px = select i1 %ism, i32 -306674912, i32 0\0A\00" @.str4520 = private unnamed_addr constant [26 x i8] c" %c2 = xor i32 %ls, %px\0A\00" @.str4521 = private unnamed_addr constant [26 x i8] c" store i32 %c2, ptr %cp\0A\00" @.str4522 = private unnamed_addr constant [23 x i8] c" %k1 = add i32 %k, 1\0A\00" @.str4523 = private unnamed_addr constant [26 x i8] c" store i32 %k1, ptr %kp\0A\00" @.str4524 = private unnamed_addr constant [17 x i8] c" br label %bit\0A\00" @.str4525 = private unnamed_addr constant [10 x i8] c"bitdone:\0A\00" @.str4526 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str4527 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str4528 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str4529 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str4530 = private unnamed_addr constant [27 x i8] c" %cf = load i32, ptr %cp\0A\00" @.str4531 = private unnamed_addr constant [24 x i8] c" %r = xor i32 %cf, -1\0A\00" @.str4532 = private unnamed_addr constant [14 x i8] c" ret i32 %r\0A\00" @.str4533 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4534 = private unnamed_addr constant [7 x i8] c"sha256\00" @.str4535 = private unnamed_addr constant [12 x i8] c"hmac_sha256\00" @.str4536 = private unnamed_addr constant [12 x i8] c"verify_hmac\00" @.str4537 = private unnamed_addr constant [4 x i8] c"hex\00" @.str4538 = private unnamed_addr constant [9 x i8] c"ct_equal\00" @.str4539 = private unnamed_addr constant [13 x i8] c"random_bytes\00" @.str4540 = private unnamed_addr constant [11 x i8] c"random_hex\00" @.str4541 = private unnamed_addr constant [11 x i8] c"random_u32\00" @.str4542 = private unnamed_addr constant [7 x i8] c"base64\00" @.str4543 = private unnamed_addr constant [7 x i8] c"sha256\00" @.str4544 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8107: index out of range: \00" @.str4545 = private unnamed_addr constant [29 x i8] c"call ptr @lp_sha256_hex(ptr \00" @.str4546 = private unnamed_addr constant [2 x i8] c")\00" @.str4547 = private unnamed_addr constant [7 x i8] c"string\00" @.str4548 = private unnamed_addr constant [12 x i8] c"hmac_sha256\00" @.str4549 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8111: index out of range: \00" @.str4550 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8111: index out of range: \00" @.str4551 = private unnamed_addr constant [34 x i8] c"call ptr @lp_hmac_sha256_hex(ptr \00" @.str4552 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4553 = private unnamed_addr constant [2 x i8] c")\00" @.str4554 = private unnamed_addr constant [7 x i8] c"string\00" @.str4555 = private unnamed_addr constant [4 x i8] c"hex\00" @.str4556 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8115: index out of range: \00" @.str4557 = private unnamed_addr constant [26 x i8] c"call ptr @lp_str_hex(ptr \00" @.str4558 = private unnamed_addr constant [2 x i8] c")\00" @.str4559 = private unnamed_addr constant [7 x i8] c"string\00" @.str4560 = private unnamed_addr constant [9 x i8] c"ct_equal\00" @.str4561 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8119: index out of range: \00" @.str4562 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8119: index out of range: \00" @.str4563 = private unnamed_addr constant [27 x i8] c"call i32 @lp_ct_streq(ptr \00" @.str4564 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4565 = private unnamed_addr constant [2 x i8] c")\00" @.str4566 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4567 = private unnamed_addr constant [13 x i8] c"random_bytes\00" @.str4568 = private unnamed_addr constant [11 x i8] c"random_hex\00" @.str4569 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8126: index out of range: \00" @.str4570 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4571 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4572 = private unnamed_addr constant [29 x i8] c"call ptr @lp_random_hex(i64 \00" @.str4573 = private unnamed_addr constant [2 x i8] c")\00" @.str4574 = private unnamed_addr constant [7 x i8] c"string\00" @.str4575 = private unnamed_addr constant [11 x i8] c"random_u32\00" @.str4576 = private unnamed_addr constant [26 x i8] c"call i32 @lp_random_u32()\00" @.str4577 = private unnamed_addr constant [4 x i8] c"int\00" @.str4578 = private unnamed_addr constant [7 x i8] c"base64\00" @.str4579 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8134: index out of range: \00" @.str4580 = private unnamed_addr constant [25 x i8] c"call ptr @lp_base64(ptr \00" @.str4581 = private unnamed_addr constant [2 x i8] c")\00" @.str4582 = private unnamed_addr constant [7 x i8] c"string\00" @.str4583 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8140: index out of range: \00" @.str4584 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8140: index out of range: \00" @.str4585 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8140: index out of range: \00" @.str4586 = private unnamed_addr constant [34 x i8] c"call ptr @lp_hmac_sha256_hex(ptr \00" @.str4587 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4588 = private unnamed_addr constant [2 x i8] c")\00" @.str4589 = private unnamed_addr constant [27 x i8] c"call i32 @lp_ct_streq(ptr \00" @.str4590 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4591 = private unnamed_addr constant [2 x i8] c")\00" @.str4592 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4593 = private unnamed_addr constant [1083 x i8] c"@sha256_K = private unnamed_addr constant [64 x i32] [i32 1116352408, i32 1899447441, i32 -1245643825, i32 -373957723, i32 961987163, i32 1508970993, i32 -1841331548, i32 -1424204075, i32 -670586216, i32 310598401, i32 607225278, i32 1426881987, i32 1925078388, i32 -2132889090, i32 -1680079193, i32 -1046744716, i32 -459576895, i32 -272742522, i32 264347078, i32 604807628, i32 770255983, i32 1249150122, i32 1555081692, i32 1996064986, i32 -1740746414, i32 -1473132947, i32 -1341970488, i32 -1084653625, i32 -958395405, i32 -710438585, i32 113926993, i32 338241895, i32 666307205, i32 773529912, i32 1294757372, i32 1396182291, i32 1695183700, i32 1986661051, i32 -2117940946, i32 -1838011259, i32 -1564481375, i32 -1474664885, i32 -1035236496, i32 -949202525, i32 -778901479, i32 -694614492, i32 -200395387, i32 275423344, i32 430227734, i32 506948616, i32 659060556, i32 883997877, i32 958139571, i32 1322822218, i32 1537002063, i32 1747873779, i32 1955562222, i32 2024104815, i32 -2067236844, i32 -1933114872, i32 -1866530822, i32 -1538233109, i32 -1090935817, i32 -965641998]\0A\00" @.str4594 = private unnamed_addr constant [41 x i8] c"define i32 @lp_rotr32(i32 %x, i32 %n) {\0A\00" @.str4595 = private unnamed_addr constant [104 x i8] c" %r = lshr i32 %x, %n\0A %m = sub i32 32, %n\0A %l = shl i32 %x, %m\0A %o = or i32 %r, %l\0A ret i32 %o\0A}\0A\00" @.str4596 = private unnamed_addr constant [60 x i8] c"define void @lp_sha256_buf(ptr %msg, i64 %len, ptr %out) {\0A\00" @.str4597 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4598 = private unnamed_addr constant [50 x i8] c" %H = alloca [8 x i32]\0A %W = alloca [64 x i32]\0A\00" @.str4599 = private unnamed_addr constant [145 x i8] c" %a = alloca i32\0A %b = alloca i32\0A %c = alloca i32\0A %d = alloca i32\0A %e = alloca i32\0A %f = alloca i32\0A %g = alloca i32\0A %h = alloca i32\0A\00" @.str4600 = private unnamed_addr constant [39 x i8] c" %ip = alloca i64\0A %bp = alloca i64\0A\00" @.str4601 = private unnamed_addr constant [95 x i8] c" %e0 = add i64 %len, 8\0A %e1 = lshr i64 %e0, 6\0A %e2 = add i64 %e1, 1\0A %pl = shl i64 %e2, 6\0A\00" @.str4602 = private unnamed_addr constant [36 x i8] c" %buf = call ptr @malloc(i64 %pl)\0A\00" @.str4603 = private unnamed_addr constant [46 x i8] c" call ptr @memset(ptr %buf, i32 0, i64 %pl)\0A\00" @.str4604 = private unnamed_addr constant [50 x i8] c" call ptr @memcpy(ptr %buf, ptr %msg, i64 %len)\0A\00" @.str4605 = private unnamed_addr constant [77 x i8] c" %pmark = getelementptr i8, ptr %buf, i64 %len\0A store i8 -128, ptr %pmark\0A\00" @.str4606 = private unnamed_addr constant [27 x i8] c" %bits = shl i64 %len, 3\0A\00" @.str4607 = private unnamed_addr constant [41 x i8] c" store i64 0, ptr %ip\0A br label %lenc\0A\00" @.str4608 = private unnamed_addr constant [104 x i8] c"lenc:\0A %lj = load i64, ptr %ip\0A %ljlt = icmp slt i64 %lj, 8\0A br i1 %ljlt, label %lenb, label %hinit\0A\00" @.str4609 = private unnamed_addr constant [7 x i8] c"lenb:\0A\00" @.str4610 = private unnamed_addr constant [113 x i8] c" %lj8 = mul i64 %lj, 8\0A %lsh = sub i64 56, %lj8\0A %lbsh = lshr i64 %bits, %lsh\0A %lbb = trunc i64 %lbsh to i8\0A\00" @.str4611 = private unnamed_addr constant [128 x i8] c" %lpm8 = sub i64 %pl, 8\0A %lpos = add i64 %lpm8, %lj\0A %lpp = getelementptr i8, ptr %buf, i64 %lpos\0A store i8 %lbb, ptr %lpp\0A\00" @.str4612 = private unnamed_addr constant [68 x i8] c" %lj1 = add i64 %lj, 1\0A store i64 %lj1, ptr %ip\0A br label %lenc\0A\00" @.str4613 = private unnamed_addr constant [8 x i8] c"hinit:\0A\00" @.str4614 = private unnamed_addr constant [87 x i8] c" %H0 = getelementptr [8 x i32], ptr %H, i64 0, i64 0\0A store i32 1779033703, ptr %H0\0A\00" @.str4615 = private unnamed_addr constant [88 x i8] c" %H1 = getelementptr [8 x i32], ptr %H, i64 0, i64 1\0A store i32 -1150833019, ptr %H1\0A\00" @.str4616 = private unnamed_addr constant [87 x i8] c" %H2 = getelementptr [8 x i32], ptr %H, i64 0, i64 2\0A store i32 1013904242, ptr %H2\0A\00" @.str4617 = private unnamed_addr constant [88 x i8] c" %H3 = getelementptr [8 x i32], ptr %H, i64 0, i64 3\0A store i32 -1521486534, ptr %H3\0A\00" @.str4618 = private unnamed_addr constant [87 x i8] c" %H4 = getelementptr [8 x i32], ptr %H, i64 0, i64 4\0A store i32 1359893119, ptr %H4\0A\00" @.str4619 = private unnamed_addr constant [88 x i8] c" %H5 = getelementptr [8 x i32], ptr %H, i64 0, i64 5\0A store i32 -1694144372, ptr %H5\0A\00" @.str4620 = private unnamed_addr constant [86 x i8] c" %H6 = getelementptr [8 x i32], ptr %H, i64 0, i64 6\0A store i32 528734635, ptr %H6\0A\00" @.str4621 = private unnamed_addr constant [87 x i8] c" %H7 = getelementptr [8 x i32], ptr %H, i64 0, i64 7\0A store i32 1541459225, ptr %H7\0A\00" @.str4622 = private unnamed_addr constant [65 x i8] c" %nb = lshr i64 %pl, 6\0A store i64 0, ptr %bp\0A br label %blkc\0A\00" @.str4623 = private unnamed_addr constant [103 x i8] c"blkc:\0A %bi = load i64, ptr %bp\0A %blt = icmp ult i64 %bi, %nb\0A br i1 %blt, label %blkb, label %outp\0A\00" @.str4624 = private unnamed_addr constant [80 x i8] c"blkb:\0A %bi64 = shl i64 %bi, 6\0A %base = getelementptr i8, ptr %buf, i64 %bi64\0A\00" @.str4625 = private unnamed_addr constant [40 x i8] c" store i64 0, ptr %ip\0A br label %w1c\0A\00" @.str4626 = private unnamed_addr constant [104 x i8] c"w1c:\0A %wi = load i64, ptr %ip\0A %wilt = icmp slt i64 %wi, 16\0A br i1 %wilt, label %w1b, label %w2init\0A\00" @.str4627 = private unnamed_addr constant [6 x i8] c"w1b:\0A\00" @.str4628 = private unnamed_addr constant [25 x i8] c" %wi4 = shl i64 %wi, 2\0A\00" @.str4629 = private unnamed_addr constant [75 x i8] c" %wp0 = getelementptr i8, ptr %base, i64 %wi4\0A %wc0 = load i8, ptr %wp0\0A\00" @.str4630 = private unnamed_addr constant [100 x i8] c" %wo1 = add i64 %wi4, 1\0A %wp1 = getelementptr i8, ptr %base, i64 %wo1\0A %wc1 = load i8, ptr %wp1\0A\00" @.str4631 = private unnamed_addr constant [100 x i8] c" %wo2 = add i64 %wi4, 2\0A %wp2 = getelementptr i8, ptr %base, i64 %wo2\0A %wc2 = load i8, ptr %wp2\0A\00" @.str4632 = private unnamed_addr constant [100 x i8] c" %wo3 = add i64 %wi4, 3\0A %wp3 = getelementptr i8, ptr %base, i64 %wo3\0A %wc3 = load i8, ptr %wp3\0A\00" @.str4633 = private unnamed_addr constant [117 x i8] c" %wz0 = zext i8 %wc0 to i32\0A %wz1 = zext i8 %wc1 to i32\0A %wz2 = zext i8 %wc2 to i32\0A %wz3 = zext i8 %wc3 to i32\0A\00" @.str4634 = private unnamed_addr constant [80 x i8] c" %ws24 = shl i32 %wz0, 24\0A %ws16 = shl i32 %wz1, 16\0A %ws8 = shl i32 %wz2, 8\0A\00" @.str4635 = private unnamed_addr constant [89 x i8] c" %wor1 = or i32 %ws24, %ws16\0A %wor2 = or i32 %wor1, %ws8\0A %word = or i32 %wor2, %wz3\0A\00" @.str4636 = private unnamed_addr constant [87 x i8] c" %wwp = getelementptr [64 x i32], ptr %W, i64 0, i64 %wi\0A store i32 %word, ptr %wwp\0A\00" @.str4637 = private unnamed_addr constant [67 x i8] c" %wi1 = add i64 %wi, 1\0A store i64 %wi1, ptr %ip\0A br label %w1c\0A\00" @.str4638 = private unnamed_addr constant [49 x i8] c"w2init:\0A store i64 16, ptr %ip\0A br label %w2c\0A\00" @.str4639 = private unnamed_addr constant [106 x i8] c"w2c:\0A %xi = load i64, ptr %ip\0A %xilt = icmp slt i64 %xi, 64\0A br i1 %xilt, label %w2b, label %compinit\0A\00" @.str4640 = private unnamed_addr constant [6 x i8] c"w2b:\0A\00" @.str4641 = private unnamed_addr constant [117 x i8] c" %im15 = sub i64 %xi, 15\0A %pm15 = getelementptr [64 x i32], ptr %W, i64 0, i64 %im15\0A %w15 = load i32, ptr %pm15\0A\00" @.str4642 = private unnamed_addr constant [119 x i8] c" %r7 = call i32 @lp_rotr32(i32 %w15, i32 7)\0A %r18 = call i32 @lp_rotr32(i32 %w15, i32 18)\0A %sh3 = lshr i32 %w15, 3\0A\00" @.str4643 = private unnamed_addr constant [55 x i8] c" %x01 = xor i32 %r7, %r18\0A %s0 = xor i32 %x01, %sh3\0A\00" @.str4644 = private unnamed_addr constant [112 x i8] c" %im2 = sub i64 %xi, 2\0A %pm2 = getelementptr [64 x i32], ptr %W, i64 0, i64 %im2\0A %w2v = load i32, ptr %pm2\0A\00" @.str4645 = private unnamed_addr constant [123 x i8] c" %r17 = call i32 @lp_rotr32(i32 %w2v, i32 17)\0A %r19 = call i32 @lp_rotr32(i32 %w2v, i32 19)\0A %sh10 = lshr i32 %w2v, 10\0A\00" @.str4646 = private unnamed_addr constant [57 x i8] c" %x02 = xor i32 %r17, %r19\0A %s1 = xor i32 %x02, %sh10\0A\00" @.str4647 = private unnamed_addr constant [117 x i8] c" %im16 = sub i64 %xi, 16\0A %pm16 = getelementptr [64 x i32], ptr %W, i64 0, i64 %im16\0A %w16 = load i32, ptr %pm16\0A\00" @.str4648 = private unnamed_addr constant [111 x i8] c" %im7 = sub i64 %xi, 7\0A %pm7 = getelementptr [64 x i32], ptr %W, i64 0, i64 %im7\0A %w7 = load i32, ptr %pm7\0A\00" @.str4649 = private unnamed_addr constant [81 x i8] c" %wa1 = add i32 %w16, %s0\0A %wa2 = add i32 %wa1, %w7\0A %wv = add i32 %wa2, %s1\0A\00" @.str4650 = private unnamed_addr constant [85 x i8] c" %wpi = getelementptr [64 x i32], ptr %W, i64 0, i64 %xi\0A store i32 %wv, ptr %wpi\0A\00" @.str4651 = private unnamed_addr constant [67 x i8] c" %xi1 = add i64 %xi, 1\0A store i64 %xi1, ptr %ip\0A br label %w2c\0A\00" @.str4652 = private unnamed_addr constant [11 x i8] c"compinit:\0A\00" @.str4653 = private unnamed_addr constant [53 x i8] c" %cv0 = load i32, ptr %H0\0A store i32 %cv0, ptr %a\0A\00" @.str4654 = private unnamed_addr constant [53 x i8] c" %cv1 = load i32, ptr %H1\0A store i32 %cv1, ptr %b\0A\00" @.str4655 = private unnamed_addr constant [53 x i8] c" %cv2 = load i32, ptr %H2\0A store i32 %cv2, ptr %c\0A\00" @.str4656 = private unnamed_addr constant [53 x i8] c" %cv3 = load i32, ptr %H3\0A store i32 %cv3, ptr %d\0A\00" @.str4657 = private unnamed_addr constant [53 x i8] c" %cv4 = load i32, ptr %H4\0A store i32 %cv4, ptr %e\0A\00" @.str4658 = private unnamed_addr constant [53 x i8] c" %cv5 = load i32, ptr %H5\0A store i32 %cv5, ptr %f\0A\00" @.str4659 = private unnamed_addr constant [53 x i8] c" %cv6 = load i32, ptr %H6\0A store i32 %cv6, ptr %g\0A\00" @.str4660 = private unnamed_addr constant [53 x i8] c" %cv7 = load i32, ptr %H7\0A store i32 %cv7, ptr %h\0A\00" @.str4661 = private unnamed_addr constant [39 x i8] c" store i64 0, ptr %ip\0A br label %rc\0A\00" @.str4662 = private unnamed_addr constant [98 x i8] c"rc:\0A %ri = load i64, ptr %ip\0A %rlt = icmp slt i64 %ri, 64\0A br i1 %rlt, label %rb, label %addH\0A\00" @.str4663 = private unnamed_addr constant [5 x i8] c"rb:\0A\00" @.str4664 = private unnamed_addr constant [102 x i8] c" %av = load i32, ptr %a\0A %bv = load i32, ptr %b\0A %cvv = load i32, ptr %c\0A %dv = load i32, ptr %d\0A\00" @.str4665 = private unnamed_addr constant [101 x i8] c" %ev = load i32, ptr %e\0A %fv = load i32, ptr %f\0A %gv = load i32, ptr %g\0A %hv = load i32, ptr %h\0A\00" @.str4666 = private unnamed_addr constant [137 x i8] c" %e6 = call i32 @lp_rotr32(i32 %ev, i32 6)\0A %e11 = call i32 @lp_rotr32(i32 %ev, i32 11)\0A %e25 = call i32 @lp_rotr32(i32 %ev, i32 25)\0A\00" @.str4667 = private unnamed_addr constant [55 x i8] c" %S1a = xor i32 %e6, %e11\0A %S1 = xor i32 %S1a, %e25\0A\00" @.str4668 = private unnamed_addr constant [102 x i8] c" %ef = and i32 %ev, %fv\0A %ne = xor i32 %ev, -1\0A %neg = and i32 %ne, %gv\0A %ch = xor i32 %ef, %neg\0A\00" @.str4669 = private unnamed_addr constant [91 x i8] c" %kp = getelementptr [64 x i32], ptr @sha256_K, i64 0, i64 %ri\0A %kv = load i32, ptr %kp\0A\00" @.str4670 = private unnamed_addr constant [87 x i8] c" %wpr = getelementptr [64 x i32], ptr %W, i64 0, i64 %ri\0A %wvr = load i32, ptr %wpr\0A\00" @.str4671 = private unnamed_addr constant [111 x i8] c" %t1a = add i32 %hv, %S1\0A %t1b = add i32 %t1a, %ch\0A %t1c = add i32 %t1b, %kv\0A %temp1 = add i32 %t1c, %wvr\0A\00" @.str4672 = private unnamed_addr constant [138 x i8] c" %a2r = call i32 @lp_rotr32(i32 %av, i32 2)\0A %a13 = call i32 @lp_rotr32(i32 %av, i32 13)\0A %a22 = call i32 @lp_rotr32(i32 %av, i32 22)\0A\00" @.str4673 = private unnamed_addr constant [56 x i8] c" %S0a = xor i32 %a2r, %a13\0A %S0 = xor i32 %S0a, %a22\0A\00" @.str4674 = private unnamed_addr constant [131 x i8] c" %ab = and i32 %av, %bv\0A %ac = and i32 %av, %cvv\0A %bc = and i32 %bv, %cvv\0A %mj1 = xor i32 %ab, %ac\0A %maj = xor i32 %mj1, %bc\0A\00" @.str4675 = private unnamed_addr constant [30 x i8] c" %temp2 = add i32 %S0, %maj\0A\00" @.str4676 = private unnamed_addr constant [73 x i8] c" store i32 %gv, ptr %h\0A store i32 %fv, ptr %g\0A store i32 %ev, ptr %f\0A\00" @.str4677 = private unnamed_addr constant [57 x i8] c" %newe = add i32 %dv, %temp1\0A store i32 %newe, ptr %e\0A\00" @.str4678 = private unnamed_addr constant [74 x i8] c" store i32 %cvv, ptr %d\0A store i32 %bv, ptr %c\0A store i32 %av, ptr %b\0A\00" @.str4679 = private unnamed_addr constant [60 x i8] c" %newa = add i32 %temp1, %temp2\0A store i32 %newa, ptr %a\0A\00" @.str4680 = private unnamed_addr constant [66 x i8] c" %rin = add i64 %ri, 1\0A store i64 %rin, ptr %ip\0A br label %rc\0A\00" @.str4681 = private unnamed_addr constant [7 x i8] c"addH:\0A\00" @.str4682 = private unnamed_addr constant [106 x i8] c" %fa = load i32, ptr %a\0A %lH0 = load i32, ptr %H0\0A %nH0 = add i32 %lH0, %fa\0A store i32 %nH0, ptr %H0\0A\00" @.str4683 = private unnamed_addr constant [106 x i8] c" %fb = load i32, ptr %b\0A %lH1 = load i32, ptr %H1\0A %nH1 = add i32 %lH1, %fb\0A store i32 %nH1, ptr %H1\0A\00" @.str4684 = private unnamed_addr constant [106 x i8] c" %fc = load i32, ptr %c\0A %lH2 = load i32, ptr %H2\0A %nH2 = add i32 %lH2, %fc\0A store i32 %nH2, ptr %H2\0A\00" @.str4685 = private unnamed_addr constant [106 x i8] c" %fd = load i32, ptr %d\0A %lH3 = load i32, ptr %H3\0A %nH3 = add i32 %lH3, %fd\0A store i32 %nH3, ptr %H3\0A\00" @.str4686 = private unnamed_addr constant [106 x i8] c" %fe = load i32, ptr %e\0A %lH4 = load i32, ptr %H4\0A %nH4 = add i32 %lH4, %fe\0A store i32 %nH4, ptr %H4\0A\00" @.str4687 = private unnamed_addr constant [106 x i8] c" %ff = load i32, ptr %f\0A %lH5 = load i32, ptr %H5\0A %nH5 = add i32 %lH5, %ff\0A store i32 %nH5, ptr %H5\0A\00" @.str4688 = private unnamed_addr constant [106 x i8] c" %fg = load i32, ptr %g\0A %lH6 = load i32, ptr %H6\0A %nH6 = add i32 %lH6, %fg\0A store i32 %nH6, ptr %H6\0A\00" @.str4689 = private unnamed_addr constant [106 x i8] c" %fh = load i32, ptr %h\0A %lH7 = load i32, ptr %H7\0A %nH7 = add i32 %lH7, %fh\0A store i32 %nH7, ptr %H7\0A\00" @.str4690 = private unnamed_addr constant [70 x i8] c" %binc = add i64 %bi, 1\0A store i64 %binc, ptr %bp\0A br label %blkc\0A\00" @.str4691 = private unnamed_addr constant [45 x i8] c"outp:\0A store i64 0, ptr %ip\0A br label %oc\0A\00" @.str4692 = private unnamed_addr constant [98 x i8] c"oc:\0A %oi = load i64, ptr %ip\0A %olt = icmp slt i64 %oi, 8\0A br i1 %olt, label %ob, label %freeb\0A\00" @.str4693 = private unnamed_addr constant [5 x i8] c"ob:\0A\00" @.str4694 = private unnamed_addr constant [111 x i8] c" %hpp = getelementptr [8 x i32], ptr %H, i64 0, i64 %oi\0A %hval = load i32, ptr %hpp\0A %oi4 = shl i64 %oi, 2\0A\00" @.str4695 = private unnamed_addr constant [137 x i8] c" %ob24 = lshr i32 %hval, 24\0A %obb24 = trunc i32 %ob24 to i8\0A %op0 = getelementptr i8, ptr %out, i64 %oi4\0A store i8 %obb24, ptr %op0\0A\00" @.str4696 = private unnamed_addr constant [162 x i8] c" %ob16 = lshr i32 %hval, 16\0A %obb16 = trunc i32 %ob16 to i8\0A %oo1 = add i64 %oi4, 1\0A %op1 = getelementptr i8, ptr %out, i64 %oo1\0A store i8 %obb16, ptr %op1\0A\00" @.str4697 = private unnamed_addr constant [157 x i8] c" %ob8 = lshr i32 %hval, 8\0A %obb8 = trunc i32 %ob8 to i8\0A %oo2 = add i64 %oi4, 2\0A %op2 = getelementptr i8, ptr %out, i64 %oo2\0A store i8 %obb8, ptr %op2\0A\00" @.str4698 = private unnamed_addr constant [131 x i8] c" %obb0 = trunc i32 %hval to i8\0A %oo3 = add i64 %oi4, 3\0A %op3 = getelementptr i8, ptr %out, i64 %oo3\0A store i8 %obb0, ptr %op3\0A\00" @.str4699 = private unnamed_addr constant [66 x i8] c" %oin = add i64 %oi, 1\0A store i64 %oin, ptr %ip\0A br label %oc\0A\00" @.str4700 = private unnamed_addr constant [49 x i8] c"freeb:\0A call void @free(ptr %buf)\0A ret void\0A}\0A\00" @.str4701 = private unnamed_addr constant [35 x i8] c"define i8 @lp_hex_digit(i32 %d) {\0A\00" @.str4702 = private unnamed_addr constant [134 x i8] c" %lt = icmp ult i32 %d, 10\0A %base = select i1 %lt, i32 48, i32 87\0A %v = add i32 %base, %d\0A %c = trunc i32 %v to i8\0A ret i8 %c\0A}\0A\00" @.str4703 = private unnamed_addr constant [46 x i8] c"define ptr @lp_hex_encode(ptr %in, i64 %n) {\0A\00" @.str4704 = private unnamed_addr constant [152 x i8] c"entry:\0A %ip = alloca i64\0A %olen = shl i64 %n, 1\0A %olen1 = add i64 %olen, 1\0A %s = call ptr @malloc(i64 %olen1)\0A store i64 0, ptr %ip\0A br label %c\0A\00" @.str4705 = private unnamed_addr constant [94 x i8] c"c:\0A %i = load i64, ptr %ip\0A %lt = icmp ult i64 %i, %n\0A br i1 %lt, label %bdy, label %done\0A\00" @.str4706 = private unnamed_addr constant [104 x i8] c"bdy:\0A %pp = getelementptr i8, ptr %in, i64 %i\0A %byte = load i8, ptr %pp\0A %bz = zext i8 %byte to i32\0A\00" @.str4707 = private unnamed_addr constant [127 x i8] c" %hi = lshr i32 %bz, 4\0A %lo = and i32 %bz, 15\0A %hc = call i8 @lp_hex_digit(i32 %hi)\0A %lc = call i8 @lp_hex_digit(i32 %lo)\0A\00" @.str4708 = private unnamed_addr constant [180 x i8] c" %oi = shl i64 %i, 1\0A %o0 = getelementptr i8, ptr %s, i64 %oi\0A store i8 %hc, ptr %o0\0A %oi1 = add i64 %oi, 1\0A %o1 = getelementptr i8, ptr %s, i64 %oi1\0A store i8 %lc, ptr %o1\0A\00" @.str4709 = private unnamed_addr constant [64 x i8] c" %in1 = add i64 %i, 1\0A store i64 %in1, ptr %ip\0A br label %c\0A\00" @.str4710 = private unnamed_addr constant [88 x i8] c"done:\0A %tp = getelementptr i8, ptr %s, i64 %olen\0A store i8 0, ptr %tp\0A ret ptr %s\0A}\0A\00" @.str4711 = private unnamed_addr constant [37 x i8] c"define ptr @lp_sha256_hex(ptr %s) {\0A\00" @.str4712 = private unnamed_addr constant [124 x i8] c"entry:\0A %dig = alloca [32 x i8]\0A %len = call i64 @strlen(ptr %s)\0A %dp = getelementptr [32 x i8], ptr %dig, i64 0, i64 0\0A\00" @.str4713 = private unnamed_addr constant [122 x i8] c" call void @lp_sha256_buf(ptr %s, i64 %len, ptr %dp)\0A %hex = call ptr @lp_hex_encode(ptr %dp, i64 32)\0A ret ptr %hex\0A}\0A\00" @.str4714 = private unnamed_addr constant [34 x i8] c"define ptr @lp_str_hex(ptr %s) {\0A\00" @.str4715 = private unnamed_addr constant [95 x i8] c" %n = call i64 @strlen(ptr %s)\0A %h = call ptr @lp_hex_encode(ptr %s, i64 %n)\0A ret ptr %h\0A}\0A\00" @.str4716 = private unnamed_addr constant [55 x i8] c"define void @lp_xor64(ptr %dst, ptr %src, i32 %pad) {\0A\00" @.str4717 = private unnamed_addr constant [64 x i8] c"entry:\0A %ip = alloca i64\0A store i64 0, ptr %ip\0A br label %c\0A\00" @.str4718 = private unnamed_addr constant [89 x i8] c"c:\0A %i = load i64, ptr %ip\0A %lt = icmp ult i64 %i, 64\0A br i1 %lt, label %b, label %d\0A\00" @.str4719 = private unnamed_addr constant [281 x i8] c"b:\0A %sp = getelementptr i8, ptr %src, i64 %i\0A %sv = load i8, ptr %sp\0A %sz = zext i8 %sv to i32\0A %xr = xor i32 %sz, %pad\0A %xb = trunc i32 %xr to i8\0A %dp = getelementptr i8, ptr %dst, i64 %i\0A store i8 %xb, ptr %dp\0A %in = add i64 %i, 1\0A store i64 %in, ptr %ip\0A br label %c\0A\00" @.str4720 = private unnamed_addr constant [17 x i8] c"d:\0A ret void\0A}\0A\00" @.str4721 = private unnamed_addr constant [54 x i8] c"define ptr @lp_hmac_sha256_hex(ptr %key, ptr %msg) {\0A\00" @.str4722 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str4723 = private unnamed_addr constant [109 x i8] c" %k0 = alloca [64 x i8]\0A %inner = alloca [32 x i8]\0A %outbuf = alloca [96 x i8]\0A %fin = alloca [32 x i8]\0A\00" @.str4724 = private unnamed_addr constant [75 x i8] c" %klen = call i64 @strlen(ptr %key)\0A %mlen = call i64 @strlen(ptr %msg)\0A\00" @.str4725 = private unnamed_addr constant [101 x i8] c" %k0p = getelementptr [64 x i8], ptr %k0, i64 0, i64 0\0A call ptr @memset(ptr %k0p, i32 0, i64 64)\0A\00" @.str4726 = private unnamed_addr constant [74 x i8] c" %big = icmp ugt i64 %klen, 64\0A br i1 %big, label %hashk, label %copyk\0A\00" @.str4727 = private unnamed_addr constant [83 x i8] c"hashk:\0A call void @lp_sha256_buf(ptr %key, i64 %klen, ptr %k0p)\0A br label %pads\0A\00" @.str4728 = private unnamed_addr constant [75 x i8] c"copyk:\0A call ptr @memcpy(ptr %k0p, ptr %key, i64 %klen)\0A br label %pads\0A\00" @.str4729 = private unnamed_addr constant [7 x i8] c"pads:\0A\00" @.str4730 = private unnamed_addr constant [70 x i8] c" %inlen = add i64 64, %mlen\0A %inbuf = call ptr @malloc(i64 %inlen)\0A\00" @.str4731 = private unnamed_addr constant [53 x i8] c" call void @lp_xor64(ptr %inbuf, ptr %k0p, i32 54)\0A\00" @.str4732 = private unnamed_addr constant [101 x i8] c" %inmsg = getelementptr i8, ptr %inbuf, i64 64\0A call ptr @memcpy(ptr %inmsg, ptr %msg, i64 %mlen)\0A\00" @.str4733 = private unnamed_addr constant [157 x i8] c" %innerp = getelementptr [32 x i8], ptr %inner, i64 0, i64 0\0A call void @lp_sha256_buf(ptr %inbuf, i64 %inlen, ptr %innerp)\0A call void @free(ptr %inbuf)\0A\00" @.str4734 = private unnamed_addr constant [113 x i8] c" %outp = getelementptr [96 x i8], ptr %outbuf, i64 0, i64 0\0A call void @lp_xor64(ptr %outp, ptr %k0p, i32 92)\0A\00" @.str4735 = private unnamed_addr constant [104 x i8] c" %outmsg = getelementptr i8, ptr %outbuf, i64 64\0A call ptr @memcpy(ptr %outmsg, ptr %innerp, i64 32)\0A\00" @.str4736 = private unnamed_addr constant [116 x i8] c" %finp = getelementptr [32 x i8], ptr %fin, i64 0, i64 0\0A call void @lp_sha256_buf(ptr %outp, i64 96, ptr %finp)\0A\00" @.str4737 = private unnamed_addr constant [70 x i8] c" %hex = call ptr @lp_hex_encode(ptr %finp, i64 32)\0A ret ptr %hex\0A}\0A\00" @.str4738 = private unnamed_addr constant [43 x i8] c"define i32 @lp_ct_streq(ptr %a, ptr %b) {\0A\00" @.str4739 = private unnamed_addr constant [183 x i8] c"entry:\0A %accp = alloca i32\0A %ip = alloca i64\0A %la = call i64 @strlen(ptr %a)\0A %lb = call i64 @strlen(ptr %b)\0A %eqlen = icmp eq i64 %la, %lb\0A br i1 %eqlen, label %go, label %ne\0A\00" @.str4740 = private unnamed_addr constant [17 x i8] c"ne:\0A ret i32 0\0A\00" @.str4741 = private unnamed_addr constant [67 x i8] c"go:\0A store i32 0, ptr %accp\0A store i64 0, ptr %ip\0A br label %c\0A\00" @.str4742 = private unnamed_addr constant [92 x i8] c"c:\0A %i = load i64, ptr %ip\0A %lt = icmp ult i64 %i, %la\0A br i1 %lt, label %bdy, label %d\0A\00" @.str4743 = private unnamed_addr constant [327 x i8] c"bdy:\0A %pa = getelementptr i8, ptr %a, i64 %i\0A %va = load i8, ptr %pa\0A %pb = getelementptr i8, ptr %b, i64 %i\0A %vb = load i8, ptr %pb\0A %x = xor i8 %va, %vb\0A %xz = zext i8 %x to i32\0A %ac = load i32, ptr %accp\0A %ao = or i32 %ac, %xz\0A store i32 %ao, ptr %accp\0A %in = add i64 %i, 1\0A store i64 %in, ptr %ip\0A br label %c\0A\00" @.str4744 = private unnamed_addr constant [102 x i8] c"d:\0A %finv = load i32, ptr %accp\0A %z = icmp eq i32 %finv, 0\0A %r = zext i1 %z to i32\0A ret i32 %r\0A}\0A\00" @.str4745 = private unnamed_addr constant [78 x i8] c"@.ludic_urandom = private unnamed_addr constant [13 x i8] c\22/dev/urandom\5C00\22\0A\00" @.str4746 = private unnamed_addr constant [66 x i8] c"@.ludic_rbmode = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str4747 = private unnamed_addr constant [126 x i8] c"@.ludic_b64tab = private unnamed_addr constant [64 x i8] c\22ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\22\0A\00" @.str4748 = private unnamed_addr constant [41 x i8] c"declare i8 @SystemFunction036(ptr, i32)\0A\00" @.str4749 = private unnamed_addr constant [50 x i8] c"define void @lp_secure_bytes(ptr %out, i64 %n) {\0A\00" @.str4750 = private unnamed_addr constant [108 x i8] c"entry:\0A call ptr @memset(ptr %out, i32 0, i64 %n)\0A %op = alloca i64\0A store i64 0, ptr %op\0A br label %c\0A\00" @.str4751 = private unnamed_addr constant [120 x i8] c"c:\0A %o = load i64, ptr %op\0A %left = sub i64 %n, %o\0A %more = icmp sgt i64 %left, 0\0A br i1 %more, label %b, label %d\0A\00" @.str4752 = private unnamed_addr constant [112 x i8] c"b:\0A %big = icmp sgt i64 %left, 65536\0A %k = select i1 %big, i64 65536, i64 %left\0A %k32 = trunc i64 %k to i32\0A\00" @.str4753 = private unnamed_addr constant [96 x i8] c" %p = getelementptr i8, ptr %out, i64 %o\0A %ok = call i8 @SystemFunction036(ptr %p, i32 %k32)\0A\00" @.str4754 = private unnamed_addr constant [63 x i8] c" %on = add i64 %o, %k\0A store i64 %on, ptr %op\0A br label %c\0A\00" @.str4755 = private unnamed_addr constant [17 x i8] c"d:\0A ret void\0A}\0A\00" @.str4756 = private unnamed_addr constant [50 x i8] c"define void @lp_secure_bytes(ptr %out, i64 %n) {\0A\00" @.str4757 = private unnamed_addr constant [52 x i8] c"entry:\0A call ptr @memset(ptr %out, i32 0, i64 %n)\0A\00" @.str4758 = private unnamed_addr constant [66 x i8] c" %fp = call ptr @fopen(ptr @.ludic_urandom, ptr @.ludic_rbmode)\0A\00" @.str4759 = private unnamed_addr constant [75 x i8] c" %isnull = icmp eq ptr %fp, null\0A br i1 %isnull, label %fail, label %ok\0A\00" @.str4760 = private unnamed_addr constant [108 x i8] c"ok:\0A %rd = call i64 @fread(ptr %out, i64 1, i64 %n, ptr %fp)\0A %cl = call i32 @fclose(ptr %fp)\0A ret void\0A\00" @.str4761 = private unnamed_addr constant [20 x i8] c"fail:\0A ret void\0A}\0A\00" @.str4762 = private unnamed_addr constant [37 x i8] c"define ptr @lp_random_hex(i64 %n) {\0A\00" @.str4763 = private unnamed_addr constant [89 x i8] c"entry:\0A %buf = call ptr @malloc(i64 %n)\0A call void @lp_secure_bytes(ptr %buf, i64 %n)\0A\00" @.str4764 = private unnamed_addr constant [97 x i8] c" %hex = call ptr @lp_hex_encode(ptr %buf, i64 %n)\0A call void @free(ptr %buf)\0A ret ptr %hex\0A}\0A\00" @.str4765 = private unnamed_addr constant [31 x i8] c"define i32 @lp_random_u32() {\0A\00" @.str4766 = private unnamed_addr constant [129 x i8] c"entry:\0A %b = alloca [4 x i8]\0A %bp = getelementptr [4 x i8], ptr %b, i64 0, i64 0\0A call void @lp_secure_bytes(ptr %bp, i64 4)\0A\00" @.str4767 = private unnamed_addr constant [94 x i8] c" %p0 = getelementptr i8, ptr %bp, i64 0\0A %c0 = load i8, ptr %p0\0A %z0 = zext i8 %c0 to i32\0A\00" @.str4768 = private unnamed_addr constant [117 x i8] c" %p1 = getelementptr i8, ptr %bp, i64 1\0A %c1 = load i8, ptr %p1\0A %z1 = zext i8 %c1 to i32\0A %s1 = shl i32 %z1, 8\0A\00" @.str4769 = private unnamed_addr constant [118 x i8] c" %p2 = getelementptr i8, ptr %bp, i64 2\0A %c2 = load i8, ptr %p2\0A %z2 = zext i8 %c2 to i32\0A %s2 = shl i32 %z2, 16\0A\00" @.str4770 = private unnamed_addr constant [118 x i8] c" %p3 = getelementptr i8, ptr %bp, i64 3\0A %c3 = load i8, ptr %p3\0A %z3 = zext i8 %c3 to i32\0A %s3 = shl i32 %z3, 24\0A\00" @.str4771 = private unnamed_addr constant [89 x i8] c" %o1 = or i32 %z0, %s1\0A %o2 = or i32 %o1, %s2\0A %o3 = or i32 %o2, %s3\0A ret i32 %o3\0A}\0A\00" @.str4772 = private unnamed_addr constant [33 x i8] c"define ptr @lp_base64(ptr %s) {\0A\00" @.str4773 = private unnamed_addr constant [40 x i8] c"entry:\0A %n = call i64 @strlen(ptr %s)\0A\00" @.str4774 = private unnamed_addr constant [74 x i8] c" %n2 = add i64 %n, 2\0A %grp = udiv i64 %n2, 3\0A %bufn = mul i64 %grp, 3\0A\00" @.str4775 = private unnamed_addr constant [93 x i8] c" %olen = mul i64 %grp, 4\0A %olen1 = add i64 %olen, 1\0A %out = call ptr @malloc(i64 %olen1)\0A\00" @.str4776 = private unnamed_addr constant [136 x i8] c" %inbuf = call ptr @malloc(i64 %bufn)\0A call ptr @memset(ptr %inbuf, i32 0, i64 %bufn)\0A call ptr @memcpy(ptr %inbuf, ptr %s, i64 %n)\0A\00" @.str4777 = private unnamed_addr constant [60 x i8] c" %gp = alloca i64\0A store i64 0, ptr %gp\0A br label %cond\0A\00" @.str4778 = private unnamed_addr constant [101 x i8] c"cond:\0A %gi = load i64, ptr %gp\0A %lt = icmp ult i64 %gi, %grp\0A br i1 %lt, label %body, label %pad\0A\00" @.str4779 = private unnamed_addr constant [30 x i8] c"body:\0A %i3 = mul i64 %gi, 3\0A\00" @.str4780 = private unnamed_addr constant [103 x i8] c" %ip0 = getelementptr i8, ptr %inbuf, i64 %i3\0A %bv0 = load i8, ptr %ip0\0A %b0 = zext i8 %bv0 to i32\0A\00" @.str4781 = private unnamed_addr constant [128 x i8] c" %i3a = add i64 %i3, 1\0A %ip1 = getelementptr i8, ptr %inbuf, i64 %i3a\0A %bv1 = load i8, ptr %ip1\0A %b1 = zext i8 %bv1 to i32\0A\00" @.str4782 = private unnamed_addr constant [128 x i8] c" %i3b = add i64 %i3, 2\0A %ip2 = getelementptr i8, ptr %inbuf, i64 %i3b\0A %bv2 = load i8, ptr %ip2\0A %b2 = zext i8 %bv2 to i32\0A\00" @.str4783 = private unnamed_addr constant [25 x i8] c" %e0 = lshr i32 %b0, 2\0A\00" @.str4784 = private unnamed_addr constant [101 x i8] c" %b0l = and i32 %b0, 3\0A %b0s = shl i32 %b0l, 4\0A %b1h = lshr i32 %b1, 4\0A %e1 = or i32 %b0s, %b1h\0A\00" @.str4785 = private unnamed_addr constant [102 x i8] c" %b1l = and i32 %b1, 15\0A %b1s = shl i32 %b1l, 2\0A %b2h = lshr i32 %b2, 6\0A %e2 = or i32 %b1s, %b2h\0A\00" @.str4786 = private unnamed_addr constant [25 x i8] c" %e3 = and i32 %b2, 63\0A\00" @.str4787 = private unnamed_addr constant [24 x i8] c" %o4 = mul i64 %gi, 4\0A\00" @.str4788 = private unnamed_addr constant [117 x i8] c" %e0z = zext i32 %e0 to i64\0A %e1z = zext i32 %e1 to i64\0A %e2z = zext i32 %e2 to i64\0A %e3z = zext i32 %e3 to i64\0A\00" @.str4789 = private unnamed_addr constant [167 x i8] c" %g0 = getelementptr [64 x i8], ptr @.ludic_b64tab, i64 0, i64 %e0z\0A %ch0 = load i8, ptr %g0\0A %op0 = getelementptr i8, ptr %out, i64 %o4\0A store i8 %ch0, ptr %op0\0A\00" @.str4790 = private unnamed_addr constant [192 x i8] c" %o4a = add i64 %o4, 1\0A %g1 = getelementptr [64 x i8], ptr @.ludic_b64tab, i64 0, i64 %e1z\0A %ch1 = load i8, ptr %g1\0A %op1 = getelementptr i8, ptr %out, i64 %o4a\0A store i8 %ch1, ptr %op1\0A\00" @.str4791 = private unnamed_addr constant [192 x i8] c" %o4b = add i64 %o4, 2\0A %g2 = getelementptr [64 x i8], ptr @.ludic_b64tab, i64 0, i64 %e2z\0A %ch2 = load i8, ptr %g2\0A %op2 = getelementptr i8, ptr %out, i64 %o4b\0A store i8 %ch2, ptr %op2\0A\00" @.str4792 = private unnamed_addr constant [192 x i8] c" %o4c = add i64 %o4, 3\0A %g3 = getelementptr [64 x i8], ptr @.ludic_b64tab, i64 0, i64 %e3z\0A %ch3 = load i8, ptr %g3\0A %op3 = getelementptr i8, ptr %out, i64 %o4c\0A store i8 %ch3, ptr %op3\0A\00" @.str4793 = private unnamed_addr constant [68 x i8] c" %gin = add i64 %gi, 1\0A store i64 %gin, ptr %gp\0A br label %cond\0A\00" @.str4794 = private unnamed_addr constant [86 x i8] c"pad:\0A %rem = urem i64 %n, 3\0A %r1 = icmp eq i64 %rem, 1\0A %r2 = icmp eq i64 %rem, 2\0A\00" @.str4795 = private unnamed_addr constant [69 x i8] c" %eq = getelementptr i8, ptr %out, i64 %olen\0A store i8 0, ptr %eq\0A\00" @.str4796 = private unnamed_addr constant [41 x i8] c" br i1 %r1, label %pad1, label %maybe2\0A\00" @.str4797 = private unnamed_addr constant [216 x i8] c"pad1:\0A %pm1 = sub i64 %olen, 1\0A %pp1 = getelementptr i8, ptr %out, i64 %pm1\0A store i8 61, ptr %pp1\0A %pm2 = sub i64 %olen, 2\0A %pp2 = getelementptr i8, ptr %out, i64 %pm2\0A store i8 61, ptr %pp2\0A br label %done\0A\00" @.str4798 = private unnamed_addr constant [47 x i8] c"maybe2:\0A br i1 %r2, label %pad2, label %done\0A\00" @.str4799 = private unnamed_addr constant [120 x i8] c"pad2:\0A %qm1 = sub i64 %olen, 1\0A %qp1 = getelementptr i8, ptr %out, i64 %qm1\0A store i8 61, ptr %qp1\0A br label %done\0A\00" @.str4800 = private unnamed_addr constant [54 x i8] c"done:\0A call void @free(ptr %inbuf)\0A ret ptr %out\0A}\0A\00" @.str4801 = private unnamed_addr constant [4 x i8] c"new\00" @.str4802 = private unnamed_addr constant [3 x i8] c"v4\00" @.str4803 = private unnamed_addr constant [7 x i8] c"new_v7\00" @.str4804 = private unnamed_addr constant [3 x i8] c"v7\00" @.str4805 = private unnamed_addr constant [6 x i8] c"parse\00" @.str4806 = private unnamed_addr constant [9 x i8] c"is_valid\00" @.str4807 = private unnamed_addr constant [8 x i8] c"to_text\00" @.str4808 = private unnamed_addr constant [7 x i8] c"equals\00" @.str4809 = private unnamed_addr constant [4 x i8] c"nil\00" @.str4810 = private unnamed_addr constant [4 x i8] c"new\00" @.str4811 = private unnamed_addr constant [3 x i8] c"v4\00" @.str4812 = private unnamed_addr constant [23 x i8] c"call ptr @lp_uuid_v4()\00" @.str4813 = private unnamed_addr constant [7 x i8] c"string\00" @.str4814 = private unnamed_addr constant [7 x i8] c"new_v7\00" @.str4815 = private unnamed_addr constant [3 x i8] c"v7\00" @.str4816 = private unnamed_addr constant [23 x i8] c"call ptr @lp_uuid_v7()\00" @.str4817 = private unnamed_addr constant [7 x i8] c"string\00" @.str4818 = private unnamed_addr constant [4 x i8] c"nil\00" @.str4819 = private unnamed_addr constant [24 x i8] c"call ptr @lp_uuid_nil()\00" @.str4820 = private unnamed_addr constant [7 x i8] c"string\00" @.str4821 = private unnamed_addr constant [9 x i8] c"is_valid\00" @.str4822 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8475: index out of range: \00" @.str4823 = private unnamed_addr constant [29 x i8] c"call i32 @lp_uuid_valid(ptr \00" @.str4824 = private unnamed_addr constant [2 x i8] c")\00" @.str4825 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4826 = private unnamed_addr constant [8 x i8] c"to_text\00" @.str4827 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8479: index out of range: \00" @.str4828 = private unnamed_addr constant [7 x i8] c"string\00" @.str4829 = private unnamed_addr constant [7 x i8] c"equals\00" @.str4830 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8483: index out of range: \00" @.str4831 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8483: index out of range: \00" @.str4832 = private unnamed_addr constant [26 x i8] c"call i32 @lp_uuid_eq(ptr \00" @.str4833 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4834 = private unnamed_addr constant [2 x i8] c")\00" @.str4835 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4836 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8489: index out of range: \00" @.str4837 = private unnamed_addr constant [29 x i8] c"call ptr @lp_uuid_parse(ptr \00" @.str4838 = private unnamed_addr constant [2 x i8] c")\00" @.str4839 = private unnamed_addr constant [7 x i8] c"string\00" @.str4840 = private unnamed_addr constant [40 x i8] c"define ptr @lp_uuid_format(ptr %b16) {\0A\00" @.str4841 = private unnamed_addr constant [93 x i8] c"entry:\0A %hex = call ptr @lp_hex_encode(ptr %b16, i64 16)\0A %out = call ptr @malloc(i64 37)\0A\00" @.str4842 = private unnamed_addr constant [47 x i8] c" call ptr @memcpy(ptr %out, ptr %hex, i64 8)\0A\00" @.str4843 = private unnamed_addr constant [66 x i8] c" %o8 = getelementptr i8, ptr %out, i64 8\0A store i8 45, ptr %o8\0A\00" @.str4844 = private unnamed_addr constant [129 x i8] c" %h8 = getelementptr i8, ptr %hex, i64 8\0A %o9 = getelementptr i8, ptr %out, i64 9\0A call ptr @memcpy(ptr %o9, ptr %h8, i64 4)\0A\00" @.str4845 = private unnamed_addr constant [69 x i8] c" %o13 = getelementptr i8, ptr %out, i64 13\0A store i8 45, ptr %o13\0A\00" @.str4846 = private unnamed_addr constant [135 x i8] c" %h12 = getelementptr i8, ptr %hex, i64 12\0A %o14 = getelementptr i8, ptr %out, i64 14\0A call ptr @memcpy(ptr %o14, ptr %h12, i64 4)\0A\00" @.str4847 = private unnamed_addr constant [69 x i8] c" %o18 = getelementptr i8, ptr %out, i64 18\0A store i8 45, ptr %o18\0A\00" @.str4848 = private unnamed_addr constant [135 x i8] c" %h16 = getelementptr i8, ptr %hex, i64 16\0A %o19 = getelementptr i8, ptr %out, i64 19\0A call ptr @memcpy(ptr %o19, ptr %h16, i64 4)\0A\00" @.str4849 = private unnamed_addr constant [69 x i8] c" %o23 = getelementptr i8, ptr %out, i64 23\0A store i8 45, ptr %o23\0A\00" @.str4850 = private unnamed_addr constant [136 x i8] c" %h20 = getelementptr i8, ptr %hex, i64 20\0A %o24 = getelementptr i8, ptr %out, i64 24\0A call ptr @memcpy(ptr %o24, ptr %h20, i64 12)\0A\00" @.str4851 = private unnamed_addr constant [68 x i8] c" %o36 = getelementptr i8, ptr %out, i64 36\0A store i8 0, ptr %o36\0A\00" @.str4852 = private unnamed_addr constant [46 x i8] c" call void @free(ptr %hex)\0A ret ptr %out\0A}\0A\00" @.str4853 = private unnamed_addr constant [28 x i8] c"define ptr @lp_uuid_v4() {\0A\00" @.str4854 = private unnamed_addr constant [132 x i8] c"entry:\0A %b = alloca [16 x i8]\0A %bp = getelementptr [16 x i8], ptr %b, i64 0, i64 0\0A call void @lp_secure_bytes(ptr %bp, i64 16)\0A\00" @.str4855 = private unnamed_addr constant [140 x i8] c" %p6 = getelementptr i8, ptr %bp, i64 6\0A %v6 = load i8, ptr %p6\0A %v6a = and i8 %v6, 15\0A %v6b = or i8 %v6a, 64\0A store i8 %v6b, ptr %p6\0A\00" @.str4856 = private unnamed_addr constant [142 x i8] c" %p8 = getelementptr i8, ptr %bp, i64 8\0A %v8 = load i8, ptr %p8\0A %v8a = and i8 %v8, 63\0A %v8b = or i8 %v8a, -128\0A store i8 %v8b, ptr %p8\0A\00" @.str4857 = private unnamed_addr constant [57 x i8] c" %s = call ptr @lp_uuid_format(ptr %bp)\0A ret ptr %s\0A}\0A\00" @.str4858 = private unnamed_addr constant [28 x i8] c"define ptr @lp_uuid_v7() {\0A\00" @.str4859 = private unnamed_addr constant [132 x i8] c"entry:\0A %b = alloca [16 x i8]\0A %bp = getelementptr [16 x i8], ptr %b, i64 0, i64 0\0A call void @lp_secure_bytes(ptr %bp, i64 16)\0A\00" @.str4860 = private unnamed_addr constant [58 x i8] c" %t = call i64 @time(ptr null)\0A %ms = mul i64 %t, 1000\0A\00" @.str4861 = private unnamed_addr constant [121 x i8] c" %s40 = lshr i64 %ms, 40\0A %t0 = trunc i64 %s40 to i8\0A %q0 = getelementptr i8, ptr %bp, i64 0\0A store i8 %t0, ptr %q0\0A\00" @.str4862 = private unnamed_addr constant [121 x i8] c" %s32 = lshr i64 %ms, 32\0A %t1 = trunc i64 %s32 to i8\0A %q1 = getelementptr i8, ptr %bp, i64 1\0A store i8 %t1, ptr %q1\0A\00" @.str4863 = private unnamed_addr constant [121 x i8] c" %s24 = lshr i64 %ms, 24\0A %t2 = trunc i64 %s24 to i8\0A %q2 = getelementptr i8, ptr %bp, i64 2\0A store i8 %t2, ptr %q2\0A\00" @.str4864 = private unnamed_addr constant [121 x i8] c" %s16 = lshr i64 %ms, 16\0A %t3 = trunc i64 %s16 to i8\0A %q3 = getelementptr i8, ptr %bp, i64 3\0A store i8 %t3, ptr %q3\0A\00" @.str4865 = private unnamed_addr constant [118 x i8] c" %s8 = lshr i64 %ms, 8\0A %t4 = trunc i64 %s8 to i8\0A %q4 = getelementptr i8, ptr %bp, i64 4\0A store i8 %t4, ptr %q4\0A\00" @.str4866 = private unnamed_addr constant [94 x i8] c" %t5 = trunc i64 %ms to i8\0A %q5 = getelementptr i8, ptr %bp, i64 5\0A store i8 %t5, ptr %q5\0A\00" @.str4867 = private unnamed_addr constant [141 x i8] c" %p6 = getelementptr i8, ptr %bp, i64 6\0A %v6 = load i8, ptr %p6\0A %v6a = and i8 %v6, 15\0A %v6b = or i8 %v6a, 112\0A store i8 %v6b, ptr %p6\0A\00" @.str4868 = private unnamed_addr constant [142 x i8] c" %p8 = getelementptr i8, ptr %bp, i64 8\0A %v8 = load i8, ptr %p8\0A %v8a = and i8 %v8, 63\0A %v8b = or i8 %v8a, -128\0A store i8 %v8b, ptr %p8\0A\00" @.str4869 = private unnamed_addr constant [57 x i8] c" %s = call ptr @lp_uuid_format(ptr %bp)\0A ret ptr %s\0A}\0A\00" @.str4870 = private unnamed_addr constant [29 x i8] c"define ptr @lp_uuid_nil() {\0A\00" @.str4871 = private unnamed_addr constant [87 x i8] c"entry:\0A %out = call ptr @malloc(i64 37)\0A call ptr @memset(ptr %out, i32 48, i64 36)\0A\00" @.str4872 = private unnamed_addr constant [66 x i8] c" %o8 = getelementptr i8, ptr %out, i64 8\0A store i8 45, ptr %o8\0A\00" @.str4873 = private unnamed_addr constant [69 x i8] c" %o13 = getelementptr i8, ptr %out, i64 13\0A store i8 45, ptr %o13\0A\00" @.str4874 = private unnamed_addr constant [69 x i8] c" %o18 = getelementptr i8, ptr %out, i64 18\0A store i8 45, ptr %o18\0A\00" @.str4875 = private unnamed_addr constant [69 x i8] c" %o23 = getelementptr i8, ptr %out, i64 23\0A store i8 45, ptr %o23\0A\00" @.str4876 = private unnamed_addr constant [85 x i8] c" %o36 = getelementptr i8, ptr %out, i64 36\0A store i8 0, ptr %o36\0A ret ptr %out\0A}\0A\00" @.str4877 = private unnamed_addr constant [37 x i8] c"define i32 @lp_uuid_valid(ptr %s) {\0A\00" @.str4878 = private unnamed_addr constant [102 x i8] c"entry:\0A %n = call i64 @strlen(ptr %s)\0A %ne = icmp eq i64 %n, 36\0A br i1 %ne, label %go, label %bad\0A\00" @.str4879 = private unnamed_addr constant [64 x i8] c"go:\0A %ip = alloca i64\0A store i64 0, ptr %ip\0A br label %cond\0A\00" @.str4880 = private unnamed_addr constant [98 x i8] c"cond:\0A %i = load i64, ptr %ip\0A %lt = icmp ult i64 %i, 36\0A br i1 %lt, label %body, label %good\0A\00" @.str4881 = private unnamed_addr constant [70 x i8] c"body:\0A %p = getelementptr i8, ptr %s, i64 %i\0A %c = load i8, ptr %p\0A\00" @.str4882 = private unnamed_addr constant [111 x i8] c" %h8 = icmp eq i64 %i, 8\0A %h13 = icmp eq i64 %i, 13\0A %h18 = icmp eq i64 %i, 18\0A %h23 = icmp eq i64 %i, 23\0A\00" @.str4883 = private unnamed_addr constant [118 x i8] c" %hx = or i1 %h8, %h13\0A %hy = or i1 %hx, %h18\0A %hyph = or i1 %hy, %h23\0A br i1 %hyph, label %ckhyph, label %ckhex\0A\00" @.str4884 = private unnamed_addr constant [74 x i8] c"ckhyph:\0A %ish = icmp eq i8 %c, 45\0A br i1 %ish, label %next, label %bad\0A\00" @.str4885 = private unnamed_addr constant [8 x i8] c"ckhex:\0A\00" @.str4886 = private unnamed_addr constant [86 x i8] c" %ge0 = icmp uge i8 %c, 48\0A %le9 = icmp ule i8 %c, 57\0A %isdig = and i1 %ge0, %le9\0A\00" @.str4887 = private unnamed_addr constant [86 x i8] c" %gea = icmp uge i8 %c, 97\0A %lef = icmp ule i8 %c, 102\0A %islo = and i1 %gea, %lef\0A\00" @.str4888 = private unnamed_addr constant [85 x i8] c" %geA = icmp uge i8 %c, 65\0A %leF = icmp ule i8 %c, 70\0A %ishi = and i1 %geA, %leF\0A\00" @.str4889 = private unnamed_addr constant [99 x i8] c" %hx1 = or i1 %isdig, %islo\0A %ishex = or i1 %hx1, %ishi\0A br i1 %ishex, label %next, label %bad\0A\00" @.str4890 = private unnamed_addr constant [71 x i8] c"next:\0A %i1 = add i64 %i, 1\0A store i64 %i1, ptr %ip\0A br label %cond\0A\00" @.str4891 = private unnamed_addr constant [19 x i8] c"good:\0A ret i32 1\0A\00" @.str4892 = private unnamed_addr constant [20 x i8] c"bad:\0A ret i32 0\0A}\0A\00" @.str4893 = private unnamed_addr constant [42 x i8] c"define i32 @lp_uuid_eq(ptr %a, ptr %b) {\0A\00" @.str4894 = private unnamed_addr constant [137 x i8] c"entry:\0A %la = call i64 @strlen(ptr %a)\0A %lb = call i64 @strlen(ptr %b)\0A %eq = icmp eq i64 %la, %lb\0A br i1 %eq, label %go, label %ne\0A\00" @.str4895 = private unnamed_addr constant [64 x i8] c"go:\0A %ip = alloca i64\0A store i64 0, ptr %ip\0A br label %cond\0A\00" @.str4896 = private unnamed_addr constant [100 x i8] c"cond:\0A %i = load i64, ptr %ip\0A %lt = icmp ult i64 %i, %la\0A br i1 %lt, label %body, label %eqret\0A\00" @.str4897 = private unnamed_addr constant [139 x i8] c"body:\0A %pa = getelementptr i8, ptr %a, i64 %i\0A %ca = load i8, ptr %pa\0A %pb = getelementptr i8, ptr %b, i64 %i\0A %cb = load i8, ptr %pb\0A\00" @.str4898 = private unnamed_addr constant [155 x i8] c" %caA = icmp uge i8 %ca, 65\0A %caZ = icmp ule i8 %ca, 90\0A %caup = and i1 %caA, %caZ\0A %ca32 = add i8 %ca, 32\0A %cal = select i1 %caup, i8 %ca32, i8 %ca\0A\00" @.str4899 = private unnamed_addr constant [155 x i8] c" %cbA = icmp uge i8 %cb, 65\0A %cbZ = icmp ule i8 %cb, 90\0A %cbup = and i1 %cbA, %cbZ\0A %cb32 = add i8 %cb, 32\0A %cbl = select i1 %cbup, i8 %cb32, i8 %cb\0A\00" @.str4900 = private unnamed_addr constant [71 x i8] c" %same = icmp eq i8 %cal, %cbl\0A br i1 %same, label %next, label %ne\0A\00" @.str4901 = private unnamed_addr constant [71 x i8] c"next:\0A %i1 = add i64 %i, 1\0A store i64 %i1, ptr %ip\0A br label %cond\0A\00" @.str4902 = private unnamed_addr constant [20 x i8] c"eqret:\0A ret i32 1\0A\00" @.str4903 = private unnamed_addr constant [19 x i8] c"ne:\0A ret i32 0\0A}\0A\00" @.str4904 = private unnamed_addr constant [37 x i8] c"define ptr @lp_uuid_parse(ptr %s) {\0A\00" @.str4905 = private unnamed_addr constant [116 x i8] c"entry:\0A %ok = call i32 @lp_uuid_valid(ptr %s)\0A %isok = icmp ne i32 %ok, 0\0A br i1 %isok, label %dup, label %nilb\0A\00" @.str4906 = private unnamed_addr constant [99 x i8] c"dup:\0A %out = call ptr @malloc(i64 37)\0A %ip = alloca i64\0A store i64 0, ptr %ip\0A br label %cond\0A\00" @.str4907 = private unnamed_addr constant [97 x i8] c"cond:\0A %i = load i64, ptr %ip\0A %lt = icmp ult i64 %i, 36\0A br i1 %lt, label %body, label %fin\0A\00" @.str4908 = private unnamed_addr constant [70 x i8] c"body:\0A %p = getelementptr i8, ptr %s, i64 %i\0A %c = load i8, ptr %p\0A\00" @.str4909 = private unnamed_addr constant [142 x i8] c" %cA = icmp uge i8 %c, 65\0A %cZ = icmp ule i8 %c, 90\0A %cup = and i1 %cA, %cZ\0A %c32 = add i8 %c, 32\0A %cl = select i1 %cup, i8 %c32, i8 %c\0A\00" @.str4910 = private unnamed_addr constant [68 x i8] c" %op = getelementptr i8, ptr %out, i64 %i\0A store i8 %cl, ptr %op\0A\00" @.str4911 = private unnamed_addr constant [65 x i8] c" %i1 = add i64 %i, 1\0A store i64 %i1, ptr %ip\0A br label %cond\0A\00" @.str4912 = private unnamed_addr constant [88 x i8] c"fin:\0A %o36 = getelementptr i8, ptr %out, i64 36\0A store i8 0, ptr %o36\0A ret ptr %out\0A\00" @.str4913 = private unnamed_addr constant [55 x i8] c"nilb:\0A %nn = call ptr @lp_uuid_nil()\0A ret ptr %nn\0A}\0A\00" @.str4914 = private unnamed_addr constant [7 x i8] c"value2\00" @.str4915 = private unnamed_addr constant [8 x i8] c"perlin2\00" @.str4916 = private unnamed_addr constant [9 x i8] c"simplex2\00" @.str4917 = private unnamed_addr constant [5 x i8] c"fbm2\00" @.str4918 = private unnamed_addr constant [10 x i8] c"cellular2\00" @.str4919 = private unnamed_addr constant [13 x i8] c"cellular2_id\00" @.str4920 = private unnamed_addr constant [5 x i8] c"unit\00" @.str4921 = private unnamed_addr constant [5 x i8] c"unit\00" @.str4922 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8623: index out of range: \00" @.str4923 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4924 = private unnamed_addr constant [4 x i8] c", 1\00" @.str4925 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4926 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str4927 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4928 = private unnamed_addr constant [7 x i8] c"value2\00" @.str4929 = private unnamed_addr constant [7 x i8] c"value2\00" @.str4930 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8630: index out of range: \00" @.str4931 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8630: index out of range: \00" @.str4932 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8630: index out of range: \00" @.str4933 = private unnamed_addr constant [31 x i8] c"call i32 @lp_noise_value2(i32 \00" @.str4934 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4935 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4936 = private unnamed_addr constant [2 x i8] c")\00" @.str4937 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4938 = private unnamed_addr constant [8 x i8] c"perlin2\00" @.str4939 = private unnamed_addr constant [8 x i8] c"perlin2\00" @.str4940 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8635: index out of range: \00" @.str4941 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8635: index out of range: \00" @.str4942 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8635: index out of range: \00" @.str4943 = private unnamed_addr constant [32 x i8] c"call i32 @lp_noise_perlin2(i32 \00" @.str4944 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4945 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4946 = private unnamed_addr constant [2 x i8] c")\00" @.str4947 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4948 = private unnamed_addr constant [9 x i8] c"simplex2\00" @.str4949 = private unnamed_addr constant [9 x i8] c"simplex2\00" @.str4950 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8640: index out of range: \00" @.str4951 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8640: index out of range: \00" @.str4952 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8640: index out of range: \00" @.str4953 = private unnamed_addr constant [33 x i8] c"call i32 @lp_noise_simplex2(i32 \00" @.str4954 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4955 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4956 = private unnamed_addr constant [2 x i8] c")\00" @.str4957 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4958 = private unnamed_addr constant [5 x i8] c"fbm2\00" @.str4959 = private unnamed_addr constant [5 x i8] c"fbm2\00" @.str4960 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8646: index out of range: \00" @.str4961 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8646: index out of range: \00" @.str4962 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8646: index out of range: \00" @.str4963 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8646: index out of range: \00" @.str4964 = private unnamed_addr constant [29 x i8] c"call i32 @lp_noise_fbm2(i32 \00" @.str4965 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4966 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4967 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4968 = private unnamed_addr constant [2 x i8] c")\00" @.str4969 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4970 = private unnamed_addr constant [10 x i8] c"cellular2\00" @.str4971 = private unnamed_addr constant [10 x i8] c"cellular2\00" @.str4972 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8652: index out of range: \00" @.str4973 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8652: index out of range: \00" @.str4974 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8652: index out of range: \00" @.str4975 = private unnamed_addr constant [34 x i8] c"call i32 @lp_noise_cellular2(i32 \00" @.str4976 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4977 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4978 = private unnamed_addr constant [2 x i8] c")\00" @.str4979 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4980 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8657: index out of range: \00" @.str4981 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8657: index out of range: \00" @.str4982 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8657: index out of range: \00" @.str4983 = private unnamed_addr constant [37 x i8] c"call i32 @lp_noise_cellular2_id(i32 \00" @.str4984 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4985 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4986 = private unnamed_addr constant [2 x i8] c")\00" @.str4987 = private unnamed_addr constant [4 x i8] c"int\00" @.str4988 = private unnamed_addr constant [42 x i8] c"define i32 @lp_nfx_mul(i32 %a, i32 %b) {\0A\00" @.str4989 = private unnamed_addr constant [148 x i8] c" %a64 = sext i32 %a to i64\0A %b64 = sext i32 %b to i64\0A %m = mul i64 %a64, %b64\0A %s = ashr i64 %m, 16\0A %r = trunc i64 %s to i32\0A ret i32 %r\0A}\0A\00" @.str4990 = private unnamed_addr constant [42 x i8] c"define i32 @lp_nfx_div(i32 %a, i32 %b) {\0A\00" @.str4991 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %b, 0\0A br i1 %z, label %zero, label %go\0A\00" @.str4992 = private unnamed_addr constant [19 x i8] c"zero:\0A ret i32 0\0A\00" @.str4993 = private unnamed_addr constant [156 x i8] c"go:\0A %a64 = sext i32 %a to i64\0A %ash = shl i64 %a64, 16\0A %b64 = sext i32 %b to i64\0A %d = sdiv i64 %ash, %b64\0A %r = trunc i64 %d to i32\0A ret i32 %r\0A}\0A\00" @.str4994 = private unnamed_addr constant [51 x i8] c"define i32 @lp_nfx_lerp(i32 %a, i32 %b, i32 %t) {\0A\00" @.str4995 = private unnamed_addr constant [106 x i8] c" %d = sub i32 %b, %a\0A %dt = call i32 @lp_nfx_mul(i32 %d, i32 %t)\0A %r = add i32 %a, %dt\0A ret i32 %r\0A}\0A\00" @.str4996 = private unnamed_addr constant [38 x i8] c"define i32 @lp_noise_clamp(i32 %v) {\0A\00" @.str4997 = private unnamed_addr constant [163 x i8] c" %hi = icmp sgt i32 %v, 65536\0A %v1 = select i1 %hi, i32 65536, i32 %v\0A %lo = icmp slt i32 %v1, -65536\0A %r = select i1 %lo, i32 -65536, i32 %v1\0A ret i32 %r\0A}\0A\00" @.str4998 = private unnamed_addr constant [58 x i8] c"define i32 @lp_noise_hash(i32 %seed, i32 %xi, i32 %yi) {\0A\00" @.str4999 = private unnamed_addr constant [111 x i8] c" %a = mul i32 %xi, 374761393\0A %b = mul i32 %yi, -1028477387\0A %c = add i32 %seed, %a\0A %d0 = add i32 %c, %b\0A\00" @.str5000 = private unnamed_addr constant [79 x i8] c" %e = lshr i32 %d0, 16\0A %f = xor i32 %d0, %e\0A %g = mul i32 %f, -2048144789\0A\00" @.str5001 = private unnamed_addr constant [77 x i8] c" %h = lshr i32 %g, 13\0A %i = xor i32 %g, %h\0A %j = mul i32 %i, -1028477387\0A\00" @.str5002 = private unnamed_addr constant [61 x i8] c" %k = lshr i32 %j, 16\0A %l = xor i32 %j, %k\0A ret i32 %l\0A}\0A\00" @.str5003 = private unnamed_addr constant [37 x i8] c"define i32 @lp_noise_fade(i32 %t) {\0A\00" @.str5004 = private unnamed_addr constant [92 x i8] c" %t2 = call i32 @lp_nfx_mul(i32 %t, i32 %t)\0A %t3 = call i32 @lp_nfx_mul(i32 %t2, i32 %t)\0A\00" @.str5005 = private unnamed_addr constant [93 x i8] c" %t4 = call i32 @lp_nfx_mul(i32 %t3, i32 %t)\0A %t5 = call i32 @lp_nfx_mul(i32 %t4, i32 %t)\0A\00" @.str5006 = private unnamed_addr constant [74 x i8] c" %c6 = mul i32 %t5, 6\0A %c15 = mul i32 %t4, 15\0A %c10 = mul i32 %t3, 10\0A\00" @.str5007 = private unnamed_addr constant [67 x i8] c" %s1 = sub i32 %c6, %c15\0A %r = add i32 %s1, %c10\0A ret i32 %r\0A}\0A\00" @.str5008 = private unnamed_addr constant [58 x i8] c"define i32 @lp_noise_value2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str5009 = private unnamed_addr constant [101 x i8] c" %xi = ashr i32 %x, 16\0A %yi = ashr i32 %y, 16\0A %xf = and i32 %x, 65535\0A %yf = and i32 %y, 65535\0A\00" @.str5010 = private unnamed_addr constant [81 x i8] c" %u = call i32 @lp_noise_fade(i32 %xf)\0A %v = call i32 @lp_noise_fade(i32 %yf)\0A\00" @.str5011 = private unnamed_addr constant [49 x i8] c" %xi1 = add i32 %xi, 1\0A %yi1 = add i32 %yi, 1\0A\00" @.str5012 = private unnamed_addr constant [122 x i8] c" %h00 = call i32 @lp_noise_hash(i32 %seed, i32 %xi, i32 %yi)\0A %m00 = and i32 %h00, 131071\0A %n00 = sub i32 %m00, 65536\0A\00" @.str5013 = private unnamed_addr constant [123 x i8] c" %h10 = call i32 @lp_noise_hash(i32 %seed, i32 %xi1, i32 %yi)\0A %m10 = and i32 %h10, 131071\0A %n10 = sub i32 %m10, 65536\0A\00" @.str5014 = private unnamed_addr constant [123 x i8] c" %h01 = call i32 @lp_noise_hash(i32 %seed, i32 %xi, i32 %yi1)\0A %m01 = and i32 %h01, 131071\0A %n01 = sub i32 %m01, 65536\0A\00" @.str5015 = private unnamed_addr constant [124 x i8] c" %h11 = call i32 @lp_noise_hash(i32 %seed, i32 %xi1, i32 %yi1)\0A %m11 = and i32 %h11, 131071\0A %n11 = sub i32 %m11, 65536\0A\00" @.str5016 = private unnamed_addr constant [115 x i8] c" %a = call i32 @lp_nfx_lerp(i32 %n00, i32 %n10, i32 %u)\0A %b = call i32 @lp_nfx_lerp(i32 %n01, i32 %n11, i32 %u)\0A\00" @.str5017 = private unnamed_addr constant [109 x i8] c" %n = call i32 @lp_nfx_lerp(i32 %a, i32 %b, i32 %v)\0A %r = call i32 @lp_noise_clamp(i32 %n)\0A ret i32 %r\0A}\0A\00" @.str5018 = private unnamed_addr constant [224 x i8] c"@noise_grad2 = private unnamed_addr constant [16 x i32] [i32 65536, i32 0, i32 -65536, i32 0, i32 0, i32 65536, i32 0, i32 -65536, i32 46341, i32 46341, i32 -46341, i32 46341, i32 46341, i32 -46341, i32 -46341, i32 -46341]\0A\00" @.str5019 = private unnamed_addr constant [59 x i8] c"define i32 @lp_noise_grad2(i32 %hash, i32 %dx, i32 %dy) {\0A\00" @.str5020 = private unnamed_addr constant [80 x i8] c" %h = and i32 %hash, 7\0A %idx = shl i32 %h, 1\0A %idx64 = sext i32 %idx to i64\0A\00" @.str5021 = private unnamed_addr constant [99 x i8] c" %gxp = getelementptr [16 x i32], ptr @noise_grad2, i64 0, i64 %idx64\0A %gx = load i32, ptr %gxp\0A\00" @.str5022 = private unnamed_addr constant [156 x i8] c" %idy = add i32 %idx, 1\0A %idy64 = sext i32 %idy to i64\0A %gyp = getelementptr [16 x i32], ptr @noise_grad2, i64 0, i64 %idy64\0A %gy = load i32, ptr %gyp\0A\00" @.str5023 = private unnamed_addr constant [134 x i8] c" %px = call i32 @lp_nfx_mul(i32 %gx, i32 %dx)\0A %py = call i32 @lp_nfx_mul(i32 %gy, i32 %dy)\0A %r = add i32 %px, %py\0A ret i32 %r\0A}\0A\00" @.str5024 = private unnamed_addr constant [59 x i8] c"define i32 @lp_noise_perlin2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str5025 = private unnamed_addr constant [101 x i8] c" %xi = ashr i32 %x, 16\0A %yi = ashr i32 %y, 16\0A %xf = and i32 %x, 65535\0A %yf = and i32 %y, 65535\0A\00" @.str5026 = private unnamed_addr constant [57 x i8] c" %xf1 = sub i32 %xf, 65536\0A %yf1 = sub i32 %yf, 65536\0A\00" @.str5027 = private unnamed_addr constant [81 x i8] c" %u = call i32 @lp_noise_fade(i32 %xf)\0A %v = call i32 @lp_noise_fade(i32 %yf)\0A\00" @.str5028 = private unnamed_addr constant [49 x i8] c" %xi1 = add i32 %xi, 1\0A %yi1 = add i32 %yi, 1\0A\00" @.str5029 = private unnamed_addr constant [126 x i8] c" %h00 = call i32 @lp_noise_hash(i32 %seed, i32 %xi, i32 %yi)\0A %h10 = call i32 @lp_noise_hash(i32 %seed, i32 %xi1, i32 %yi)\0A\00" @.str5030 = private unnamed_addr constant [128 x i8] c" %h01 = call i32 @lp_noise_hash(i32 %seed, i32 %xi, i32 %yi1)\0A %h11 = call i32 @lp_noise_hash(i32 %seed, i32 %xi1, i32 %yi1)\0A\00" @.str5031 = private unnamed_addr constant [126 x i8] c" %g00 = call i32 @lp_noise_grad2(i32 %h00, i32 %xf, i32 %yf)\0A %g10 = call i32 @lp_noise_grad2(i32 %h10, i32 %xf1, i32 %yf)\0A\00" @.str5032 = private unnamed_addr constant [128 x i8] c" %g01 = call i32 @lp_noise_grad2(i32 %h01, i32 %xf, i32 %yf1)\0A %g11 = call i32 @lp_noise_grad2(i32 %h11, i32 %xf1, i32 %yf1)\0A\00" @.str5033 = private unnamed_addr constant [115 x i8] c" %a = call i32 @lp_nfx_lerp(i32 %g00, i32 %g10, i32 %u)\0A %b = call i32 @lp_nfx_lerp(i32 %g01, i32 %g11, i32 %u)\0A\00" @.str5034 = private unnamed_addr constant [158 x i8] c" %n = call i32 @lp_nfx_lerp(i32 %a, i32 %b, i32 %v)\0A %sc = call i32 @lp_nfx_mul(i32 %n, i32 92682)\0A %r = call i32 @lp_noise_clamp(i32 %sc)\0A ret i32 %r\0A}\0A\00" @.str5035 = private unnamed_addr constant [61 x i8] c"define i32 @lp_noise_scorner(i32 %hash, i32 %dx, i32 %dy) {\0A\00" @.str5036 = private unnamed_addr constant [95 x i8] c" %xx = call i32 @lp_nfx_mul(i32 %dx, i32 %dx)\0A %yy = call i32 @lp_nfx_mul(i32 %dy, i32 %dy)\0A\00" @.str5037 = private unnamed_addr constant [117 x i8] c" %s0 = sub i32 32768, %xx\0A %t = sub i32 %s0, %yy\0A %neg = icmp sle i32 %t, 0\0A br i1 %neg, label %zero, label %go\0A\00" @.str5038 = private unnamed_addr constant [19 x i8] c"zero:\0A ret i32 0\0A\00" @.str5039 = private unnamed_addr constant [97 x i8] c"go:\0A %t2 = call i32 @lp_nfx_mul(i32 %t, i32 %t)\0A %t4 = call i32 @lp_nfx_mul(i32 %t2, i32 %t2)\0A\00" @.str5040 = private unnamed_addr constant [122 x i8] c" %g = call i32 @lp_noise_grad2(i32 %hash, i32 %dx, i32 %dy)\0A %r = call i32 @lp_nfx_mul(i32 %t4, i32 %g)\0A ret i32 %r\0A}\0A\00" @.str5041 = private unnamed_addr constant [60 x i8] c"define i32 @lp_noise_simplex2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str5042 = private unnamed_addr constant [79 x i8] c" %sum0 = add i32 %x, %y\0A %skew = call i32 @lp_nfx_mul(i32 %sum0, i32 23994)\0A\00" @.str5043 = private unnamed_addr constant [101 x i8] c" %xs = add i32 %x, %skew\0A %ys = add i32 %y, %skew\0A %i = ashr i32 %xs, 16\0A %j = ashr i32 %ys, 16\0A\00" @.str5044 = private unnamed_addr constant [51 x i8] c" %ij = add i32 %i, %j\0A %tt = mul i32 %ij, 13849\0A\00" @.str5045 = private unnamed_addr constant [49 x i8] c" %if0 = shl i32 %i, 16\0A %jf0 = shl i32 %j, 16\0A\00" @.str5046 = private unnamed_addr constant [101 x i8] c" %X0 = sub i32 %if0, %tt\0A %Y0 = sub i32 %jf0, %tt\0A %x0 = sub i32 %x, %X0\0A %y0 = sub i32 %y, %Y0\0A\00" @.str5047 = private unnamed_addr constant [103 x i8] c" %gt = icmp sgt i32 %x0, %y0\0A %i1 = select i1 %gt, i32 1, i32 0\0A %j1 = select i1 %gt, i32 0, i32 1\0A\00" @.str5048 = private unnamed_addr constant [51 x i8] c" %i1f = shl i32 %i1, 16\0A %j1f = shl i32 %j1, 16\0A\00" @.str5049 = private unnamed_addr constant [111 x i8] c" %x1a = sub i32 %x0, %i1f\0A %x1 = add i32 %x1a, 13849\0A %y1a = sub i32 %y0, %j1f\0A %y1 = add i32 %y1a, 13849\0A\00" @.str5050 = private unnamed_addr constant [113 x i8] c" %x2a = sub i32 %x0, 65536\0A %x2 = add i32 %x2a, 27698\0A %y2a = sub i32 %y0, 65536\0A %y2 = add i32 %y2a, 27698\0A\00" @.str5051 = private unnamed_addr constant [95 x i8] c" %i1p = add i32 %i, %i1\0A %j1p = add i32 %j, %j1\0A %i2 = add i32 %i, 1\0A %j2 = add i32 %j, 1\0A\00" @.str5052 = private unnamed_addr constant [187 x i8] c" %gi0 = call i32 @lp_noise_hash(i32 %seed, i32 %i, i32 %j)\0A %gi1 = call i32 @lp_noise_hash(i32 %seed, i32 %i1p, i32 %j1p)\0A %gi2 = call i32 @lp_noise_hash(i32 %seed, i32 %i2, i32 %j2)\0A\00" @.str5053 = private unnamed_addr constant [190 x i8] c" %n0 = call i32 @lp_noise_scorner(i32 %gi0, i32 %x0, i32 %y0)\0A %n1 = call i32 @lp_noise_scorner(i32 %gi1, i32 %x1, i32 %y1)\0A %n2 = call i32 @lp_noise_scorner(i32 %gi2, i32 %x2, i32 %y2)\0A\00" @.str5054 = private unnamed_addr constant [51 x i8] c" %sa = add i32 %n0, %n1\0A %sb = add i32 %sa, %n2\0A\00" @.str5055 = private unnamed_addr constant [81 x i8] c" %sc = mul i32 %sb, 45\0A %r = call i32 @lp_noise_clamp(i32 %sc)\0A ret i32 %r\0A}\0A\00" @.str5056 = private unnamed_addr constant [66 x i8] c"define i32 @lp_noise_fbm2(i32 %x, i32 %y, i32 %seed, i32 %oct) {\0A\00" @.str5057 = private unnamed_addr constant [113 x i8] c"entry:\0A %sump = alloca i32\0A %normp = alloca i32\0A %ampp = alloca i32\0A %freqp = alloca i32\0A %op = alloca i32\0A\00" @.str5058 = private unnamed_addr constant [151 x i8] c" store i32 0, ptr %sump\0A store i32 0, ptr %normp\0A store i32 65536, ptr %ampp\0A store i32 65536, ptr %freqp\0A store i32 0, ptr %op\0A br label %cond\0A\00" @.str5059 = private unnamed_addr constant [100 x i8] c"cond:\0A %o = load i32, ptr %op\0A %lt = icmp slt i32 %o, %oct\0A br i1 %lt, label %body, label %done\0A\00" @.str5060 = private unnamed_addr constant [67 x i8] c"body:\0A %freq = load i32, ptr %freqp\0A %amp = load i32, ptr %ampp\0A\00" @.str5061 = private unnamed_addr constant [97 x i8] c" %fx = call i32 @lp_nfx_mul(i32 %x, i32 %freq)\0A %fy = call i32 @lp_nfx_mul(i32 %y, i32 %freq)\0A\00" @.str5062 = private unnamed_addr constant [89 x i8] c" %so = add i32 %seed, %o\0A %n = call i32 @lp_noise_simplex2(i32 %fx, i32 %fy, i32 %so)\0A\00" @.str5063 = private unnamed_addr constant [134 x i8] c" %na = call i32 @lp_nfx_mul(i32 %n, i32 %amp)\0A %sum = load i32, ptr %sump\0A %sum2 = add i32 %sum, %na\0A store i32 %sum2, ptr %sump\0A\00" @.str5064 = private unnamed_addr constant [94 x i8] c" %norm = load i32, ptr %normp\0A %norm2 = add i32 %norm, %amp\0A store i32 %norm2, ptr %normp\0A\00" @.str5065 = private unnamed_addr constant [82 x i8] c" %amp2 = call i32 @lp_nfx_mul(i32 %amp, i32 32768)\0A store i32 %amp2, ptr %ampp\0A\00" @.str5066 = private unnamed_addr constant [87 x i8] c" %freq2 = call i32 @lp_nfx_mul(i32 %freq, i32 131072)\0A store i32 %freq2, ptr %freqp\0A\00" @.str5067 = private unnamed_addr constant [65 x i8] c" %o1 = add i32 %o, 1\0A store i32 %o1, ptr %op\0A br label %cond\0A\00" @.str5068 = private unnamed_addr constant [69 x i8] c"done:\0A %fsum = load i32, ptr %sump\0A %fnorm = load i32, ptr %normp\0A\00" @.str5069 = private unnamed_addr constant [65 x i8] c" %nz = icmp eq i32 %fnorm, 0\0A br i1 %nz, label %z, label %div\0A\00" @.str5070 = private unnamed_addr constant [16 x i8] c"z:\0A ret i32 0\0A\00" @.str5071 = private unnamed_addr constant [112 x i8] c"div:\0A %d = call i32 @lp_nfx_div(i32 %fsum, i32 %fnorm)\0A %r = call i32 @lp_noise_clamp(i32 %d)\0A ret i32 %r\0A}\0A\00" @.str5072 = private unnamed_addr constant [86 x i8] c"define void @lp_noise_cell_scan(i32 %x, i32 %y, i32 %seed, ptr %d2out, ptr %idout) {\0A\00" @.str5073 = private unnamed_addr constant [56 x i8] c"entry:\0A %xi = ashr i32 %x, 16\0A %yi = ashr i32 %y, 16\0A\00" @.str5074 = private unnamed_addr constant [83 x i8] c" %bestp = alloca i32\0A %idp = alloca i32\0A %dyp = alloca i32\0A %dxp = alloca i32\0A\00" @.str5075 = private unnamed_addr constant [100 x i8] c" store i32 2147483647, ptr %bestp\0A store i32 0, ptr %idp\0A store i32 -1, ptr %dyp\0A br label %yc\0A\00" @.str5076 = private unnamed_addr constant [99 x i8] c"yc:\0A %oy = load i32, ptr %dyp\0A %yok = icmp sle i32 %oy, 1\0A br i1 %yok, label %yb, label %ydone\0A\00" @.str5077 = private unnamed_addr constant [45 x i8] c"yb:\0A store i32 -1, ptr %dxp\0A br label %xc\0A\00" @.str5078 = private unnamed_addr constant [99 x i8] c"xc:\0A %ox = load i32, ptr %dxp\0A %xok = icmp sle i32 %ox, 1\0A br i1 %xok, label %xb, label %xdone\0A\00" @.str5079 = private unnamed_addr constant [55 x i8] c"xb:\0A %cx = add i32 %xi, %ox\0A %cy = add i32 %yi, %oy\0A\00" @.str5080 = private unnamed_addr constant [61 x i8] c" %h = call i32 @lp_noise_hash(i32 %seed, i32 %cx, i32 %cy)\0A\00" @.str5081 = private unnamed_addr constant [80 x i8] c" %fxr = and i32 %h, 65535\0A %hs = lshr i32 %h, 16\0A %fyr = and i32 %hs, 65535\0A\00" @.str5082 = private unnamed_addr constant [107 x i8] c" %cxf = shl i32 %cx, 16\0A %cyf = shl i32 %cy, 16\0A %pxr = add i32 %cxf, %fxr\0A %pyr = add i32 %cyf, %fyr\0A\00" @.str5083 = private unnamed_addr constant [53 x i8] c" %ddx = sub i32 %pxr, %x\0A %ddy = sub i32 %pyr, %y\0A\00" @.str5084 = private unnamed_addr constant [128 x i8] c" %dxx = call i32 @lp_nfx_mul(i32 %ddx, i32 %ddx)\0A %dyy = call i32 @lp_nfx_mul(i32 %ddy, i32 %ddy)\0A %d2 = add i32 %dxx, %dyy\0A\00" @.str5085 = private unnamed_addr constant [105 x i8] c" %best = load i32, ptr %bestp\0A %less = icmp slt i32 %d2, %best\0A br i1 %less, label %upd, label %skip\0A\00" @.str5086 = private unnamed_addr constant [76 x i8] c"upd:\0A store i32 %d2, ptr %bestp\0A store i32 %h, ptr %idp\0A br label %skip\0A\00" @.str5087 = private unnamed_addr constant [73 x i8] c"skip:\0A %ox1 = add i32 %ox, 1\0A store i32 %ox1, ptr %dxp\0A br label %xc\0A\00" @.str5088 = private unnamed_addr constant [74 x i8] c"xdone:\0A %oy1 = add i32 %oy, 1\0A store i32 %oy1, ptr %dyp\0A br label %yc\0A\00" @.str5089 = private unnamed_addr constant [133 x i8] c"ydone:\0A %fb = load i32, ptr %bestp\0A store i32 %fb, ptr %d2out\0A %fi = load i32, ptr %idp\0A store i32 %fi, ptr %idout\0A ret void\0A}\0A\00" @.str5090 = private unnamed_addr constant [61 x i8] c"define i32 @lp_noise_cellular2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str5091 = private unnamed_addr constant [116 x i8] c" %d2 = alloca i32\0A %id = alloca i32\0A call void @lp_noise_cell_scan(i32 %x, i32 %y, i32 %seed, ptr %d2, ptr %id)\0A\00" @.str5092 = private unnamed_addr constant [77 x i8] c" %v = load i32, ptr %d2\0A %r = call i32 @lp_fx_sqrt(i32 %v)\0A ret i32 %r\0A}\0A\00" @.str5093 = private unnamed_addr constant [64 x i8] c"define i32 @lp_noise_cellular2_id(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str5094 = private unnamed_addr constant [116 x i8] c" %d2 = alloca i32\0A %id = alloca i32\0A call void @lp_noise_cell_scan(i32 %x, i32 %y, i32 %seed, ptr %d2, ptr %id)\0A\00" @.str5095 = private unnamed_addr constant [41 x i8] c" %r = load i32, ptr %id\0A ret i32 %r\0A}\0A\00" @.str5096 = private unnamed_addr constant [7 x i8] c"Noise.\00" @.str5097 = private unnamed_addr constant [8 x i8] c" takes \00" @.str5098 = private unnamed_addr constant [23 x i8] c" arguments (x, y, seed\00" @.str5099 = private unnamed_addr constant [24 x i8] c"), and this call gives \00" @.str5100 = private unnamed_addr constant [10 x i8] c", octaves\00" @.str5101 = private unnamed_addr constant [1 x i8] c"\00" @.str5102 = private unnamed_addr constant [6 x i8] c"trace\00" @.str5103 = private unnamed_addr constant [6 x i8] c"debug\00" @.str5104 = private unnamed_addr constant [5 x i8] c"info\00" @.str5105 = private unnamed_addr constant [5 x i8] c"warn\00" @.str5106 = private unnamed_addr constant [6 x i8] c"error\00" @.str5107 = private unnamed_addr constant [10 x i8] c"set_level\00" @.str5108 = private unnamed_addr constant [6 x i8] c"level\00" @.str5109 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str5110 = private unnamed_addr constant [4 x i8] c"i64\00" @.str5111 = private unnamed_addr constant [27 x i8] c"call ptr @lp_long_str(i64 \00" @.str5112 = private unnamed_addr constant [2 x i8] c")\00" @.str5113 = private unnamed_addr constant [26 x i8] c"call ptr @lp_int_str(i32 \00" @.str5114 = private unnamed_addr constant [2 x i8] c")\00" @.str5115 = private unnamed_addr constant [10 x i8] c"set_level\00" @.str5116 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8868: index out of range: \00" @.str5117 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str5118 = private unnamed_addr constant [20 x i8] c", ptr @L_log_level\0A\00" @.str5119 = private unnamed_addr constant [2 x i8] c"0\00" @.str5120 = private unnamed_addr constant [5 x i8] c"void\00" @.str5121 = private unnamed_addr constant [6 x i8] c"level\00" @.str5122 = private unnamed_addr constant [27 x i8] c"load i32, ptr @L_log_level\00" @.str5123 = private unnamed_addr constant [4 x i8] c"int\00" @.str5124 = private unnamed_addr constant [2 x i8] c"2\00" @.str5125 = private unnamed_addr constant [8 x i8] c"[INFO] \00" @.str5126 = private unnamed_addr constant [6 x i8] c"trace\00" @.str5127 = private unnamed_addr constant [2 x i8] c"0\00" @.str5128 = private unnamed_addr constant [9 x i8] c"[TRACE] \00" @.str5129 = private unnamed_addr constant [6 x i8] c"debug\00" @.str5130 = private unnamed_addr constant [2 x i8] c"1\00" @.str5131 = private unnamed_addr constant [9 x i8] c"[DEBUG] \00" @.str5132 = private unnamed_addr constant [5 x i8] c"warn\00" @.str5133 = private unnamed_addr constant [2 x i8] c"3\00" @.str5134 = private unnamed_addr constant [8 x i8] c"[WARN] \00" @.str5135 = private unnamed_addr constant [6 x i8] c"error\00" @.str5136 = private unnamed_addr constant [2 x i8] c"4\00" @.str5137 = private unnamed_addr constant [9 x i8] c"[ERROR] \00" @.str5138 = private unnamed_addr constant [7 x i8] c"string\00" @.str5139 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8884: index out of range: \00" @.str5140 = private unnamed_addr constant [2 x i8] c"+\00" @.str5141 = private unnamed_addr constant [7 x i8] c"string\00" @.str5142 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8888: index out of range: \00" @.str5143 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8889: index out of range: \00" @.str5144 = private unnamed_addr constant [2 x i8] c"+\00" @.str5145 = private unnamed_addr constant [2 x i8] c" \00" @.str5146 = private unnamed_addr constant [7 x i8] c"string\00" @.str5147 = private unnamed_addr constant [2 x i8] c"+\00" @.str5148 = private unnamed_addr constant [7 x i8] c"string\00" @.str5149 = private unnamed_addr constant [2 x i8] c"+\00" @.str5150 = private unnamed_addr constant [2 x i8] c"=\00" @.str5151 = private unnamed_addr constant [7 x i8] c"string\00" @.str5152 = private unnamed_addr constant [2 x i8] c"+\00" @.str5153 = private unnamed_addr constant [7 x i8] c"string\00" @.str5154 = private unnamed_addr constant [30 x i8] c" call void @lp_log_emit(i32 \00" @.str5155 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5156 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5157 = private unnamed_addr constant [2 x i8] c"0\00" @.str5158 = private unnamed_addr constant [5 x i8] c"void\00" @.str5159 = private unnamed_addr constant [29 x i8] c"@L_log_level = global i32 0\0A\00" @.str5160 = private unnamed_addr constant [61 x i8] c"@.log_nl = private unnamed_addr constant [2 x i8] c\22\5C0A\5C00\22\0A\00" @.str5161 = private unnamed_addr constant [46 x i8] c"define void @lp_log_emit(i32 %lvl, ptr %s) {\0A\00" @.str5162 = private unnamed_addr constant [114 x i8] c"entry:\0A %th = load i32, ptr @L_log_level\0A %skip = icmp slt i32 %lvl, %th\0A br i1 %skip, label %done, label %go\0A\00" @.str5163 = private unnamed_addr constant [12 x i8] c"go:\0A %e = \00" @.str5164 = private unnamed_addr constant [34 x i8] c"\0A %n = call i64 @strlen(ptr %s)\0A\00" @.str5165 = private unnamed_addr constant [134 x i8] c" %w = call i64 @fwrite(ptr %s, i64 1, i64 %n, ptr %e)\0A %w2 = call i64 @fwrite(ptr @.log_nl, i64 1, i64 1, ptr %e)\0A br label %done\0A\00" @.str5166 = private unnamed_addr constant [20 x i8] c"done:\0A ret void\0A}\0A\00" @.str5167 = private unnamed_addr constant [5 x i8] c"args\00" @.str5168 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str5169 = private unnamed_addr constant [4 x i8] c"arg\00" @.str5170 = private unnamed_addr constant [4 x i8] c"env\00" @.str5171 = private unnamed_addr constant [7 x i8] c"env_or\00" @.str5172 = private unnamed_addr constant [8 x i8] c"has_env\00" @.str5173 = private unnamed_addr constant [8 x i8] c"set_env\00" @.str5174 = private unnamed_addr constant [10 x i8] c"unset_env\00" @.str5175 = private unnamed_addr constant [5 x i8] c"exit\00" @.str5176 = private unnamed_addr constant [4 x i8] c"pid\00" @.str5177 = private unnamed_addr constant [9 x i8] c"platform\00" @.str5178 = private unnamed_addr constant [5 x i8] c"arch\00" @.str5179 = private unnamed_addr constant [13 x i8] c"stdout_write\00" @.str5180 = private unnamed_addr constant [13 x i8] c"stderr_write\00" @.str5181 = private unnamed_addr constant [9 x i8] c"save_dir\00" @.str5182 = private unnamed_addr constant [11 x i8] c"config_dir\00" @.str5183 = private unnamed_addr constant [10 x i8] c"cache_dir\00" @.str5184 = private unnamed_addr constant [9 x i8] c"temp_dir\00" @.str5185 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str5186 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" @.str5187 = private unnamed_addr constant [4 x i8] c"int\00" @.str5188 = private unnamed_addr constant [4 x i8] c"arg\00" @.str5189 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8962: index out of range: \00" @.str5190 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" @.str5191 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" @.str5192 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5193 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str5194 = private unnamed_addr constant [7 x i8] c"string\00" @.str5195 = private unnamed_addr constant [4 x i8] c"pid\00" @.str5196 = private unnamed_addr constant [19 x i8] c"call i32 @getpid()\00" @.str5197 = private unnamed_addr constant [4 x i8] c"int\00" @.str5198 = private unnamed_addr constant [5 x i8] c"exit\00" @.str5199 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8969: index out of range: \00" @.str5200 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" @.str5201 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5202 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" @.str5203 = private unnamed_addr constant [2 x i8] c"0\00" @.str5204 = private unnamed_addr constant [5 x i8] c"void\00" @.str5205 = private unnamed_addr constant [4 x i8] c"env\00" @.str5206 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8976: index out of range: \00" @.str5207 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" @.str5208 = private unnamed_addr constant [2 x i8] c")\00" @.str5209 = private unnamed_addr constant [7 x i8] c"string\00" @.str5210 = private unnamed_addr constant [8 x i8] c"has_env\00" @.str5211 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8980: index out of range: \00" @.str5212 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" @.str5213 = private unnamed_addr constant [2 x i8] c")\00" @.str5214 = private unnamed_addr constant [13 x i8] c"icmp ne ptr \00" @.str5215 = private unnamed_addr constant [7 x i8] c", null\00" @.str5216 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str5217 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5218 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5219 = private unnamed_addr constant [13 x i8] c"stdout_write\00" @.str5220 = private unnamed_addr constant [13 x i8] c"stderr_write\00" @.str5221 = private unnamed_addr constant [13 x i8] c"stderr_write\00" @.str5222 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8988: index out of range: \00" @.str5223 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str5224 = private unnamed_addr constant [2 x i8] c")\00" @.str5225 = private unnamed_addr constant [24 x i8] c" call i64 @fwrite(ptr \00" @.str5226 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" @.str5227 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5228 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5229 = private unnamed_addr constant [2 x i8] c"0\00" @.str5230 = private unnamed_addr constant [5 x i8] c"void\00" @.str5231 = private unnamed_addr constant [5 x i8] c"args\00" @.str5232 = private unnamed_addr constant [23 x i8] c"call ptr @lp_os_args()\00" @.str5233 = private unnamed_addr constant [9 x i8] c"[]string\00" @.str5234 = private unnamed_addr constant [7 x i8] c"env_or\00" @.str5235 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8998: index out of range: \00" @.str5236 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:8998: index out of range: \00" @.str5237 = private unnamed_addr constant [31 x i8] c"call ptr @lp_os_getenv_or(ptr \00" @.str5238 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5239 = private unnamed_addr constant [2 x i8] c")\00" @.str5240 = private unnamed_addr constant [7 x i8] c"string\00" @.str5241 = private unnamed_addr constant [8 x i8] c"set_env\00" @.str5242 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9002: index out of range: \00" @.str5243 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9002: index out of range: \00" @.str5244 = private unnamed_addr constant [22 x i8] c"call i32 @setenv(ptr \00" @.str5245 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5246 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str5247 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str5248 = private unnamed_addr constant [4 x i8] c", 0\00" @.str5249 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str5250 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5251 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5252 = private unnamed_addr constant [10 x i8] c"unset_env\00" @.str5253 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9008: index out of range: \00" @.str5254 = private unnamed_addr constant [24 x i8] c"call i32 @unsetenv(ptr \00" @.str5255 = private unnamed_addr constant [2 x i8] c")\00" @.str5256 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str5257 = private unnamed_addr constant [4 x i8] c", 0\00" @.str5258 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str5259 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5260 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5261 = private unnamed_addr constant [9 x i8] c"platform\00" @.str5262 = private unnamed_addr constant [27 x i8] c"call ptr @lp_os_platform()\00" @.str5263 = private unnamed_addr constant [7 x i8] c"string\00" @.str5264 = private unnamed_addr constant [5 x i8] c"arch\00" @.str5265 = private unnamed_addr constant [23 x i8] c"call ptr @lp_os_arch()\00" @.str5266 = private unnamed_addr constant [7 x i8] c"string\00" @.str5267 = private unnamed_addr constant [9 x i8] c"save_dir\00" @.str5268 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9016: index out of range: \00" @.str5269 = private unnamed_addr constant [30 x i8] c"call ptr @lp_os_save_dir(ptr \00" @.str5270 = private unnamed_addr constant [2 x i8] c")\00" @.str5271 = private unnamed_addr constant [7 x i8] c"string\00" @.str5272 = private unnamed_addr constant [11 x i8] c"config_dir\00" @.str5273 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9020: index out of range: \00" @.str5274 = private unnamed_addr constant [32 x i8] c"call ptr @lp_os_config_dir(ptr \00" @.str5275 = private unnamed_addr constant [2 x i8] c")\00" @.str5276 = private unnamed_addr constant [7 x i8] c"string\00" @.str5277 = private unnamed_addr constant [10 x i8] c"cache_dir\00" @.str5278 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9024: index out of range: \00" @.str5279 = private unnamed_addr constant [31 x i8] c"call ptr @lp_os_cache_dir(ptr \00" @.str5280 = private unnamed_addr constant [2 x i8] c")\00" @.str5281 = private unnamed_addr constant [7 x i8] c"string\00" @.str5282 = private unnamed_addr constant [27 x i8] c"call ptr @lp_os_temp_dir()\00" @.str5283 = private unnamed_addr constant [7 x i8] c"string\00" @.str5284 = private unnamed_addr constant [36 x i8] c"declare i32 @setenv(ptr, ptr, i32)\0A\00" @.str5285 = private unnamed_addr constant [28 x i8] c"declare i32 @unsetenv(ptr)\0A\00" @.str5286 = private unnamed_addr constant [25 x i8] c"declare i32 @uname(ptr)\0A\00" @.str5287 = private unnamed_addr constant [5 x i8] c"HOME\00" @.str5288 = private unnamed_addr constant [2 x i8] c".\00" @.str5289 = private unnamed_addr constant [30 x i8] c"/Library/Application Support/\00" @.str5290 = private unnamed_addr constant [17 x i8] c"/Library/Caches/\00" @.str5291 = private unnamed_addr constant [7 x i8] c"TMPDIR\00" @.str5292 = private unnamed_addr constant [5 x i8] c"/tmp\00" @.str5293 = private unnamed_addr constant [7 x i8] c"Darwin\00" @.str5294 = private unnamed_addr constant [14 x i8] c"XDG_DATA_HOME\00" @.str5295 = private unnamed_addr constant [16 x i8] c"XDG_CONFIG_HOME\00" @.str5296 = private unnamed_addr constant [15 x i8] c"XDG_CACHE_HOME\00" @.str5297 = private unnamed_addr constant [15 x i8] c"/.local/share/\00" @.str5298 = private unnamed_addr constant [10 x i8] c"/.config/\00" @.str5299 = private unnamed_addr constant [9 x i8] c"/.cache/\00" @.str5300 = private unnamed_addr constant [2 x i8] c"/\00" @.str5301 = private unnamed_addr constant [6 x i8] c"macos\00" @.str5302 = private unnamed_addr constant [6 x i8] c"Linux\00" @.str5303 = private unnamed_addr constant [6 x i8] c"linux\00" @.str5304 = private unnamed_addr constant [51 x i8] c"define ptr @lp_os_getenv_or(ptr %name, ptr %fb) {\0A\00" @.str5305 = private unnamed_addr constant [106 x i8] c"entry:\0A %r = call ptr @getenv(ptr %name)\0A %z = icmp eq ptr %r, null\0A br i1 %z, label %use, label %got\0A\00" @.str5306 = private unnamed_addr constant [20 x i8] c"use:\0A ret ptr %fb\0A\00" @.str5307 = private unnamed_addr constant [21 x i8] c"got:\0A ret ptr %r\0A}\0A\00" @.str5308 = private unnamed_addr constant [43 x i8] c"define ptr @lp_os_join2(ptr %a, ptr %b) {\0A\00" @.str5309 = private unnamed_addr constant [74 x i8] c"entry:\0A %la = call i64 @strlen(ptr %a)\0A %lb = call i64 @strlen(ptr %b)\0A\00" @.str5310 = private unnamed_addr constant [86 x i8] c" %sum = add i64 %la, %lb\0A %tot = add i64 %sum, 1\0A %m = call ptr @malloc(i64 %tot)\0A\00" @.str5311 = private unnamed_addr constant [45 x i8] c" call ptr @memcpy(ptr %m, ptr %a, i64 %la)\0A\00" @.str5312 = private unnamed_addr constant [88 x i8] c" %m2 = getelementptr i8, ptr %m, i64 %la\0A call ptr @memcpy(ptr %m2, ptr %b, i64 %lb)\0A\00" @.str5313 = private unnamed_addr constant [83 x i8] c" %end = getelementptr i8, ptr %m, i64 %sum\0A store i8 0, ptr %end\0A ret ptr %m\0A}\0A\00" @.str5314 = private unnamed_addr constant [51 x i8] c"define ptr @lp_os_join3(ptr %a, ptr %b, ptr %c) {\0A\00" @.str5315 = private unnamed_addr constant [115 x i8] c"entry:\0A %ab = call ptr @lp_os_join2(ptr %a, ptr %b)\0A %r = call ptr @lp_os_join2(ptr %ab, ptr %c)\0A ret ptr %r\0A}\0A\00" @.str5316 = private unnamed_addr constant [65 x i8] c"define ptr @lp_os_home() {\0A %r = call ptr @lp_os_getenv_or(ptr \00" @.str5317 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5318 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str5319 = private unnamed_addr constant [39 x i8] c"@L_os_darwin = internal global i32 -1\0A\00" @.str5320 = private unnamed_addr constant [33 x i8] c"define i32 @lp_os_is_darwin() {\0A\00" @.str5321 = private unnamed_addr constant [114 x i8] c"entry:\0A %c = load i32, ptr @L_os_darwin\0A %known = icmp sge i32 %c, 0\0A br i1 %known, label %done, label %probe\0A\00" @.str5322 = private unnamed_addr constant [20 x i8] c"done:\0A ret i32 %c\0A\00" @.str5323 = private unnamed_addr constant [72 x i8] c"probe:\0A %buf = call ptr @malloc(i64 8192)\0A call i32 @uname(ptr %buf)\0A\00" @.str5324 = private unnamed_addr constant [41 x i8] c" %cd = call i32 @strncmp(ptr %buf, ptr \00" @.str5325 = private unnamed_addr constant [38 x i8] c", i64 6)\0A %isd = icmp eq i32 %cd, 0\0A\00" @.str5326 = private unnamed_addr constant [113 x i8] c" %r = select i1 %isd, i32 1, i32 0\0A call void @free(ptr %buf)\0A store i32 %r, ptr @L_os_darwin\0A ret i32 %r\0A}\0A\00" @.str5327 = private unnamed_addr constant [45 x i8] c"define ptr @lp_os_xdg(ptr %var, ptr %rel) {\0A\00" @.str5328 = private unnamed_addr constant [106 x i8] c"entry:\0A %v = call ptr @getenv(ptr %var)\0A %z = icmp eq ptr %v, null\0A br i1 %z, label %dflt, label %chk\0A\00" @.str5329 = private unnamed_addr constant [99 x i8] c"chk:\0A %c0 = load i8, ptr %v\0A %empty = icmp eq i8 %c0, 0\0A br i1 %empty, label %dflt, label %use\0A\00" @.str5330 = private unnamed_addr constant [47 x i8] c"use:\0A %u = call ptr @lp_os_join2(ptr %v, ptr \00" @.str5331 = private unnamed_addr constant [16 x i8] c")\0A ret ptr %u\0A\00" @.str5332 = private unnamed_addr constant [99 x i8] c"dflt:\0A %h = call ptr @lp_os_home()\0A %d = call ptr @lp_os_join2(ptr %h, ptr %rel)\0A ret ptr %d\0A}\0A\00" @.str5333 = private unnamed_addr constant [67 x i8] c"define ptr @lp_os_known(ptr %app, ptr %mac, ptr %var, ptr %rel) {\0A\00" @.str5334 = private unnamed_addr constant [103 x i8] c"entry:\0A %d = call i32 @lp_os_is_darwin()\0A %isd = icmp ne i32 %d, 0\0A br i1 %isd, label %m, label %x\0A\00" @.str5335 = private unnamed_addr constant [106 x i8] c"m:\0A %h = call ptr @lp_os_home()\0A %r1 = call ptr @lp_os_join3(ptr %h, ptr %mac, ptr %app)\0A ret ptr %r1\0A\00" @.str5336 = private unnamed_addr constant [115 x i8] c"x:\0A %b = call ptr @lp_os_xdg(ptr %var, ptr %rel)\0A %r2 = call ptr @lp_os_join2(ptr %b, ptr %app)\0A ret ptr %r2\0A}\0A\00" @.str5337 = private unnamed_addr constant [83 x i8] c"define ptr @lp_os_save_dir(ptr %app) {\0A %r = call ptr @lp_os_known(ptr %app, ptr \00" @.str5338 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5339 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5340 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str5341 = private unnamed_addr constant [85 x i8] c"define ptr @lp_os_config_dir(ptr %app) {\0A %r = call ptr @lp_os_known(ptr %app, ptr \00" @.str5342 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5343 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5344 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str5345 = private unnamed_addr constant [84 x i8] c"define ptr @lp_os_cache_dir(ptr %app) {\0A %r = call ptr @lp_os_known(ptr %app, ptr \00" @.str5346 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5347 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5348 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str5349 = private unnamed_addr constant [69 x i8] c"define ptr @lp_os_temp_dir() {\0A %r = call ptr @lp_os_getenv_or(ptr \00" @.str5350 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5351 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str5352 = private unnamed_addr constant [28 x i8] c"define ptr @lp_os_args() {\0A\00" @.str5353 = private unnamed_addr constant [66 x i8] c"entry:\0A %c = load i32, ptr @L_argc\0A %v = load ptr, ptr @L_argv\0A\00" @.str5354 = private unnamed_addr constant [33 x i8] c" %h = call ptr @malloc(i64 16)\0A\00" @.str5355 = private unnamed_addr constant [86 x i8] c" %d0 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 0\0A store ptr %v, ptr %d0\0A\00" @.str5356 = private unnamed_addr constant [86 x i8] c" %d1 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 1\0A store i32 %c, ptr %d1\0A\00" @.str5357 = private unnamed_addr constant [86 x i8] c" %d2 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 2\0A store i32 %c, ptr %d2\0A\00" @.str5358 = private unnamed_addr constant [16 x i8] c" ret ptr %h\0A}\0A\00" @.str5359 = private unnamed_addr constant [32 x i8] c"define ptr @lp_os_platform() {\0A\00" @.str5360 = private unnamed_addr constant [72 x i8] c"entry:\0A %buf = call ptr @malloc(i64 8192)\0A call i32 @uname(ptr %buf)\0A\00" @.str5361 = private unnamed_addr constant [41 x i8] c" %cd = call i32 @strncmp(ptr %buf, ptr \00" @.str5362 = private unnamed_addr constant [76 x i8] c", i64 6)\0A %isd = icmp eq i32 %cd, 0\0A br i1 %isd, label %mac, label %chkl\0A\00" @.str5363 = private unnamed_addr constant [16 x i8] c"mac:\0A ret ptr \00" @.str5364 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5365 = private unnamed_addr constant [47 x i8] c"chkl:\0A %cl = call i32 @strncmp(ptr %buf, ptr \00" @.str5366 = private unnamed_addr constant [77 x i8] c", i64 5)\0A %isl = icmp eq i32 %cl, 0\0A br i1 %isl, label %lin, label %other\0A\00" @.str5367 = private unnamed_addr constant [16 x i8] c"lin:\0A ret ptr \00" @.str5368 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5369 = private unnamed_addr constant [25 x i8] c"other:\0A ret ptr %buf\0A}\0A\00" @.str5370 = private unnamed_addr constant [28 x i8] c"define ptr @lp_os_arch() {\0A\00" @.str5371 = private unnamed_addr constant [72 x i8] c"entry:\0A %buf = call ptr @malloc(i64 8192)\0A call i32 @uname(ptr %buf)\0A\00" @.str5372 = private unnamed_addr constant [60 x i8] c" %m = getelementptr i8, ptr %buf, i64 1024\0A ret ptr %m\0A}\0A\00" @.str5373 = private unnamed_addr constant [4 x i8] c"len\00" @.str5374 = private unnamed_addr constant [9 x i8] c"byte_len\00" @.str5375 = private unnamed_addr constant [14 x i8] c"is_valid_utf8\00" @.str5376 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str5377 = private unnamed_addr constant [6 x i8] c"chars\00" @.str5378 = private unnamed_addr constant [6 x i8] c"upper\00" @.str5379 = private unnamed_addr constant [6 x i8] c"lower\00" @.str5380 = private unnamed_addr constant [9 x i8] c"truncate\00" @.str5381 = private unnamed_addr constant [13 x i8] c"grapheme_len\00" @.str5382 = private unnamed_addr constant [9 x i8] c"byte_len\00" @.str5383 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9198: index out of range: \00" @.str5384 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str5385 = private unnamed_addr constant [2 x i8] c")\00" @.str5386 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str5387 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5388 = private unnamed_addr constant [4 x i8] c"int\00" @.str5389 = private unnamed_addr constant [4 x i8] c"len\00" @.str5390 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9203: index out of range: \00" @.str5391 = private unnamed_addr constant [26 x i8] c"call i32 @lp_uni_len(ptr \00" @.str5392 = private unnamed_addr constant [2 x i8] c")\00" @.str5393 = private unnamed_addr constant [4 x i8] c"int\00" @.str5394 = private unnamed_addr constant [14 x i8] c"is_valid_utf8\00" @.str5395 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9207: index out of range: \00" @.str5396 = private unnamed_addr constant [28 x i8] c"call i32 @lp_uni_valid(ptr \00" @.str5397 = private unnamed_addr constant [2 x i8] c")\00" @.str5398 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5399 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str5400 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9211: index out of range: \00" @.str5401 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9211: index out of range: \00" @.str5402 = private unnamed_addr constant [30 x i8] c"call i32 @lp_uni_char_at(ptr \00" @.str5403 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5404 = private unnamed_addr constant [2 x i8] c")\00" @.str5405 = private unnamed_addr constant [4 x i8] c"int\00" @.str5406 = private unnamed_addr constant [6 x i8] c"chars\00" @.str5407 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9215: index out of range: \00" @.str5408 = private unnamed_addr constant [28 x i8] c"call ptr @lp_uni_chars(ptr \00" @.str5409 = private unnamed_addr constant [2 x i8] c")\00" @.str5410 = private unnamed_addr constant [6 x i8] c"[]int\00" @.str5411 = private unnamed_addr constant [6 x i8] c"upper\00" @.str5412 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9219: index out of range: \00" @.str5413 = private unnamed_addr constant [27 x i8] c"call ptr @lp_uni_case(ptr \00" @.str5414 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str5415 = private unnamed_addr constant [7 x i8] c"string\00" @.str5416 = private unnamed_addr constant [6 x i8] c"lower\00" @.str5417 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9223: index out of range: \00" @.str5418 = private unnamed_addr constant [27 x i8] c"call ptr @lp_uni_case(ptr \00" @.str5419 = private unnamed_addr constant [9 x i8] c", i32 0)\00" @.str5420 = private unnamed_addr constant [7 x i8] c"string\00" @.str5421 = private unnamed_addr constant [9 x i8] c"truncate\00" @.str5422 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9227: index out of range: \00" @.str5423 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9227: index out of range: \00" @.str5424 = private unnamed_addr constant [31 x i8] c"call ptr @lp_uni_truncate(ptr \00" @.str5425 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5426 = private unnamed_addr constant [2 x i8] c")\00" @.str5427 = private unnamed_addr constant [7 x i8] c"string\00" @.str5428 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9231: index out of range: \00" @.str5429 = private unnamed_addr constant [35 x i8] c"call i32 @lp_uni_grapheme_len(ptr \00" @.str5430 = private unnamed_addr constant [2 x i8] c")\00" @.str5431 = private unnamed_addr constant [4 x i8] c"int\00" @.str5432 = private unnamed_addr constant [34 x i8] c"define i32 @lp_uni_len(ptr %s) {\0A\00" @.str5433 = private unnamed_addr constant [107 x i8] c"entry:\0A %ip = alloca i32\0A %np = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %np\0A br label %lp\0A\00" @.str5434 = private unnamed_addr constant [118 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5435 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str5436 = private unnamed_addr constant [99 x i8] c"go:\0A %m = and i32 %c, 192\0A %cont = icmp eq i32 %m, 128\0A br i1 %cont, label %skip, label %count\0A\00" @.str5437 = private unnamed_addr constant [97 x i8] c"count:\0A %n = load i32, ptr %np\0A %n1 = add i32 %n, 1\0A store i32 %n1, ptr %np\0A br label %skip\0A\00" @.str5438 = private unnamed_addr constant [69 x i8] c"skip:\0A %i1 = add i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %lp\0A\00" @.str5439 = private unnamed_addr constant [47 x i8] c"done:\0A %r = load i32, ptr %np\0A ret i32 %r\0A}\0A\00" @.str5440 = private unnamed_addr constant [57 x i8] c"define i32 @lp_uni_decode(ptr %s, i32 %i, ptr %cpout) {\0A\00" @.str5441 = private unnamed_addr constant [101 x i8] c"entry:\0A %p0 = getelementptr i8, ptr %s, i32 %i\0A %b0 = load i8, ptr %p0\0A %c0 = zext i8 %b0 to i32\0A\00" @.str5442 = private unnamed_addr constant [69 x i8] c" %a1 = icmp ult i32 %c0, 128\0A br i1 %a1, label %one, label %multi\0A\00" @.str5443 = private unnamed_addr constant [70 x i8] c"one:\0A store i32 %c0, ptr %cpout\0A %oi = add i32 %i, 1\0A ret i32 %oi\0A\00" @.str5444 = private unnamed_addr constant [99 x i8] c"multi:\0A %h2 = and i32 %c0, 224\0A %is2 = icmp eq i32 %h2, 192\0A br i1 %is2, label %two, label %c3\0A\00" @.str5445 = private unnamed_addr constant [98 x i8] c"c3:\0A %h3 = and i32 %c0, 240\0A %is3 = icmp eq i32 %h3, 224\0A br i1 %is3, label %three, label %c4\0A\00" @.str5446 = private unnamed_addr constant [98 x i8] c"c4:\0A %h4 = and i32 %c0, 248\0A %is4 = icmp eq i32 %h4, 240\0A br i1 %is4, label %four, label %bad\0A\00" @.str5447 = private unnamed_addr constant [70 x i8] c"bad:\0A store i32 %c0, ptr %cpout\0A %bi = add i32 %i, 1\0A ret i32 %bi\0A\00" @.str5448 = private unnamed_addr constant [128 x i8] c"two:\0A %t1i = add i32 %i, 1\0A %t1p = getelementptr i8, ptr %s, i32 %t1i\0A %t1b = load i8, ptr %t1p\0A %t1 = zext i8 %t1b to i32\0A\00" @.str5449 = private unnamed_addr constant [67 x i8] c" %t1z = icmp eq i32 %t1, 0\0A br i1 %t1z, label %tbad, label %tok\0A\00" @.str5450 = private unnamed_addr constant [73 x i8] c"tbad:\0A store i32 %c0, ptr %cpout\0A %tbi = add i32 %i, 1\0A ret i32 %tbi\0A\00" @.str5451 = private unnamed_addr constant [169 x i8] c"tok:\0A %tm = and i32 %c0, 31\0A %tsh = shl i32 %tm, 6\0A %tl = and i32 %t1, 63\0A %tcp = or i32 %tsh, %tl\0A store i32 %tcp, ptr %cpout\0A %ti = add i32 %i, 2\0A ret i32 %ti\0A\00" @.str5452 = private unnamed_addr constant [130 x i8] c"three:\0A %r1i = add i32 %i, 1\0A %r1p = getelementptr i8, ptr %s, i32 %r1i\0A %r1b = load i8, ptr %r1p\0A %r1 = zext i8 %r1b to i32\0A\00" @.str5453 = private unnamed_addr constant [67 x i8] c" %r1z = icmp eq i32 %r1, 0\0A br i1 %r1z, label %rbad, label %rc2\0A\00" @.str5454 = private unnamed_addr constant [73 x i8] c"rbad:\0A store i32 %c0, ptr %cpout\0A %rbi = add i32 %i, 1\0A ret i32 %rbi\0A\00" @.str5455 = private unnamed_addr constant [128 x i8] c"rc2:\0A %r2i = add i32 %i, 2\0A %r2p = getelementptr i8, ptr %s, i32 %r2i\0A %r2b = load i8, ptr %r2p\0A %r2 = zext i8 %r2b to i32\0A\00" @.str5456 = private unnamed_addr constant [67 x i8] c" %r2z = icmp eq i32 %r2, 0\0A br i1 %r2z, label %rbad, label %rok\0A\00" @.str5457 = private unnamed_addr constant [131 x i8] c"rok:\0A %rm = and i32 %c0, 15\0A %rsh = shl i32 %rm, 12\0A %ram = and i32 %r1, 63\0A %rash = shl i32 %ram, 6\0A %rbm = and i32 %r2, 63\0A\00" @.str5458 = private unnamed_addr constant [121 x i8] c" %rp1 = or i32 %rsh, %rash\0A %rcp = or i32 %rp1, %rbm\0A store i32 %rcp, ptr %cpout\0A %ri = add i32 %i, 3\0A ret i32 %ri\0A\00" @.str5459 = private unnamed_addr constant [129 x i8] c"four:\0A %f1i = add i32 %i, 1\0A %f1p = getelementptr i8, ptr %s, i32 %f1i\0A %f1b = load i8, ptr %f1p\0A %f1 = zext i8 %f1b to i32\0A\00" @.str5460 = private unnamed_addr constant [67 x i8] c" %f1z = icmp eq i32 %f1, 0\0A br i1 %f1z, label %fbad, label %fc2\0A\00" @.str5461 = private unnamed_addr constant [73 x i8] c"fbad:\0A store i32 %c0, ptr %cpout\0A %fbi = add i32 %i, 1\0A ret i32 %fbi\0A\00" @.str5462 = private unnamed_addr constant [128 x i8] c"fc2:\0A %f2i = add i32 %i, 2\0A %f2p = getelementptr i8, ptr %s, i32 %f2i\0A %f2b = load i8, ptr %f2p\0A %f2 = zext i8 %f2b to i32\0A\00" @.str5463 = private unnamed_addr constant [67 x i8] c" %f2z = icmp eq i32 %f2, 0\0A br i1 %f2z, label %fbad, label %fc3\0A\00" @.str5464 = private unnamed_addr constant [128 x i8] c"fc3:\0A %f3i = add i32 %i, 3\0A %f3p = getelementptr i8, ptr %s, i32 %f3i\0A %f3b = load i8, ptr %f3p\0A %f3 = zext i8 %f3b to i32\0A\00" @.str5465 = private unnamed_addr constant [67 x i8] c" %f3z = icmp eq i32 %f3, 0\0A br i1 %f3z, label %fbad, label %fok\0A\00" @.str5466 = private unnamed_addr constant [106 x i8] c"fok:\0A %fm = and i32 %c0, 7\0A %fsh = shl i32 %fm, 18\0A %fam = and i32 %f1, 63\0A %fash = shl i32 %fam, 12\0A\00" @.str5467 = private unnamed_addr constant [77 x i8] c" %fbm = and i32 %f2, 63\0A %fbsh = shl i32 %fbm, 6\0A %fcm = and i32 %f3, 63\0A\00" @.str5468 = private unnamed_addr constant [151 x i8] c" %fp1 = or i32 %fsh, %fash\0A %fp2 = or i32 %fp1, %fbsh\0A %fcp = or i32 %fp2, %fcm\0A store i32 %fcp, ptr %cpout\0A %fi = add i32 %i, 4\0A ret i32 %fi\0A}\0A\00" @.str5469 = private unnamed_addr constant [36 x i8] c"define i32 @lp_uni_valid(ptr %s) {\0A\00" @.str5470 = private unnamed_addr constant [65 x i8] c"entry:\0A %ip = alloca i32\0A store i32 0, ptr %ip\0A br label %lp\0A\00" @.str5471 = private unnamed_addr constant [118 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5472 = private unnamed_addr constant [60 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %good, label %g\0A\00" @.str5473 = private unnamed_addr constant [69 x i8] c"g:\0A %a1 = icmp ult i32 %c, 128\0A br i1 %a1, label %adv1, label %m2\0A\00" @.str5474 = private unnamed_addr constant [69 x i8] c"adv1:\0A %n1 = add i32 %i, 1\0A store i32 %n1, ptr %ip\0A br label %lp\0A\00" @.str5475 = private unnamed_addr constant [95 x i8] c"m2:\0A %h2 = and i32 %c, 224\0A %is2 = icmp eq i32 %h2, 192\0A br i1 %is2, label %do2, label %m3\0A\00" @.str5476 = private unnamed_addr constant [95 x i8] c"m3:\0A %h3 = and i32 %c, 240\0A %is3 = icmp eq i32 %h3, 224\0A br i1 %is3, label %do3, label %m4\0A\00" @.str5477 = private unnamed_addr constant [96 x i8] c"m4:\0A %h4 = and i32 %c, 248\0A %is4 = icmp eq i32 %h4, 240\0A br i1 %is4, label %do4, label %bad\0A\00" @.str5478 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str5479 = private unnamed_addr constant [128 x i8] c"do2:\0A %v1i = add i32 %i, 1\0A %v1p = getelementptr i8, ptr %s, i32 %v1i\0A %v1b = load i8, ptr %v1p\0A %v1 = zext i8 %v1b to i32\0A\00" @.str5480 = private unnamed_addr constant [98 x i8] c" %v1m = and i32 %v1, 192\0A %v1ok = icmp eq i32 %v1m, 128\0A br i1 %v1ok, label %do2b, label %bad\0A\00" @.str5481 = private unnamed_addr constant [108 x i8] c"do2b:\0A %q2m = and i32 %c, 31\0A %q2s = shl i32 %q2m, 6\0A %q2l = and i32 %v1, 63\0A %cp2 = or i32 %q2s, %q2l\0A\00" @.str5482 = private unnamed_addr constant [71 x i8] c" %ov2 = icmp ult i32 %cp2, 128\0A br i1 %ov2, label %bad, label %adv2\0A\00" @.str5483 = private unnamed_addr constant [69 x i8] c"adv2:\0A %n2 = add i32 %i, 2\0A store i32 %n2, ptr %ip\0A br label %lp\0A\00" @.str5484 = private unnamed_addr constant [128 x i8] c"do3:\0A %w1i = add i32 %i, 1\0A %w1p = getelementptr i8, ptr %s, i32 %w1i\0A %w1b = load i8, ptr %w1p\0A %w1 = zext i8 %w1b to i32\0A\00" @.str5485 = private unnamed_addr constant [98 x i8] c" %w1m = and i32 %w1, 192\0A %w1ok = icmp eq i32 %w1m, 128\0A br i1 %w1ok, label %do3b, label %bad\0A\00" @.str5486 = private unnamed_addr constant [129 x i8] c"do3b:\0A %w2i = add i32 %i, 2\0A %w2p = getelementptr i8, ptr %s, i32 %w2i\0A %w2b = load i8, ptr %w2p\0A %w2 = zext i8 %w2b to i32\0A\00" @.str5487 = private unnamed_addr constant [98 x i8] c" %w2m = and i32 %w2, 192\0A %w2ok = icmp eq i32 %w2m, 128\0A br i1 %w2ok, label %do3c, label %bad\0A\00" @.str5488 = private unnamed_addr constant [136 x i8] c"do3c:\0A %e3m = and i32 %c, 15\0A %e3s = shl i32 %e3m, 12\0A %e3am = and i32 %w1, 63\0A %e3as = shl i32 %e3am, 6\0A %e3bm = and i32 %w2, 63\0A\00" @.str5489 = private unnamed_addr constant [59 x i8] c" %cp3p = or i32 %e3s, %e3as\0A %cp3 = or i32 %cp3p, %e3bm\0A\00" @.str5490 = private unnamed_addr constant [72 x i8] c" %ov3 = icmp ult i32 %cp3, 2048\0A br i1 %ov3, label %bad, label %do3d\0A\00" @.str5491 = private unnamed_addr constant [138 x i8] c"do3d:\0A %sg1 = icmp uge i32 %cp3, 55296\0A %sg2 = icmp ule i32 %cp3, 57343\0A %sg = and i1 %sg1, %sg2\0A br i1 %sg, label %bad, label %adv3\0A\00" @.str5492 = private unnamed_addr constant [69 x i8] c"adv3:\0A %n3 = add i32 %i, 3\0A store i32 %n3, ptr %ip\0A br label %lp\0A\00" @.str5493 = private unnamed_addr constant [128 x i8] c"do4:\0A %x1i = add i32 %i, 1\0A %x1p = getelementptr i8, ptr %s, i32 %x1i\0A %x1b = load i8, ptr %x1p\0A %x1 = zext i8 %x1b to i32\0A\00" @.str5494 = private unnamed_addr constant [98 x i8] c" %x1m = and i32 %x1, 192\0A %x1ok = icmp eq i32 %x1m, 128\0A br i1 %x1ok, label %do4b, label %bad\0A\00" @.str5495 = private unnamed_addr constant [129 x i8] c"do4b:\0A %x2i = add i32 %i, 2\0A %x2p = getelementptr i8, ptr %s, i32 %x2i\0A %x2b = load i8, ptr %x2p\0A %x2 = zext i8 %x2b to i32\0A\00" @.str5496 = private unnamed_addr constant [98 x i8] c" %x2m = and i32 %x2, 192\0A %x2ok = icmp eq i32 %x2m, 128\0A br i1 %x2ok, label %do4c, label %bad\0A\00" @.str5497 = private unnamed_addr constant [129 x i8] c"do4c:\0A %x3i = add i32 %i, 3\0A %x3p = getelementptr i8, ptr %s, i32 %x3i\0A %x3b = load i8, ptr %x3p\0A %x3 = zext i8 %x3b to i32\0A\00" @.str5498 = private unnamed_addr constant [98 x i8] c" %x3m = and i32 %x3, 192\0A %x3ok = icmp eq i32 %x3m, 128\0A br i1 %x3ok, label %do4d, label %bad\0A\00" @.str5499 = private unnamed_addr constant [180 x i8] c"do4d:\0A %y0 = and i32 %c, 7\0A %y0s = shl i32 %y0, 18\0A %y1m = and i32 %x1, 63\0A %y1s = shl i32 %y1m, 12\0A %y2m = and i32 %x2, 63\0A %y2s = shl i32 %y2m, 6\0A %y3m = and i32 %x3, 63\0A\00" @.str5500 = private unnamed_addr constant [86 x i8] c" %cp4p = or i32 %y0s, %y1s\0A %cp4q = or i32 %cp4p, %y2s\0A %cp4 = or i32 %cp4q, %y3m\0A\00" @.str5501 = private unnamed_addr constant [73 x i8] c" %ov4 = icmp ult i32 %cp4, 65536\0A br i1 %ov4, label %bad, label %do4e\0A\00" @.str5502 = private unnamed_addr constant [81 x i8] c"do4e:\0A %hi4 = icmp ugt i32 %cp4, 1114111\0A br i1 %hi4, label %bad, label %adv4\0A\00" @.str5503 = private unnamed_addr constant [69 x i8] c"adv4:\0A %n4 = add i32 %i, 4\0A store i32 %n4, ptr %ip\0A br label %lp\0A\00" @.str5504 = private unnamed_addr constant [21 x i8] c"good:\0A ret i32 1\0A}\0A\00" @.str5505 = private unnamed_addr constant [35 x i8] c"define i32 @lp_uni_upcp(i32 %c) {\0A\00" @.str5506 = private unnamed_addr constant [83 x i8] c" %la = icmp uge i32 %c, 97\0A %lb = icmp ule i32 %c, 122\0A %asc = and i1 %la, %lb\0A\00" @.str5507 = private unnamed_addr constant [135 x i8] c" %da = icmp uge i32 %c, 224\0A %db = icmp ule i32 %c, 254\0A %dd = icmp ne i32 %c, 247\0A %d1 = and i1 %da, %db\0A %d2 = and i1 %d1, %dd\0A\00" @.str5508 = private unnamed_addr constant [103 x i8] c" %map = or i1 %asc, %d2\0A %up = sub i32 %c, 32\0A %r = select i1 %map, i32 %up, i32 %c\0A ret i32 %r\0A}\0A\00" @.str5509 = private unnamed_addr constant [35 x i8] c"define i32 @lp_uni_locp(i32 %c) {\0A\00" @.str5510 = private unnamed_addr constant [82 x i8] c" %ua = icmp uge i32 %c, 65\0A %ub = icmp ule i32 %c, 90\0A %asc = and i1 %ua, %ub\0A\00" @.str5511 = private unnamed_addr constant [135 x i8] c" %da = icmp uge i32 %c, 192\0A %db = icmp ule i32 %c, 222\0A %dd = icmp ne i32 %c, 215\0A %d1 = and i1 %da, %db\0A %d2 = and i1 %d1, %dd\0A\00" @.str5512 = private unnamed_addr constant [103 x i8] c" %map = or i1 %asc, %d2\0A %lo = add i32 %c, 32\0A %r = select i1 %map, i32 %lo, i32 %c\0A ret i32 %r\0A}\0A\00" @.str5513 = private unnamed_addr constant [39 x i8] c"define i32 @lp_uni_cpwidth(i32 %cp) {\0A\00" @.str5514 = private unnamed_addr constant [91 x i8] c" %a = icmp ult i32 %cp, 128\0A %b = icmp ult i32 %cp, 2048\0A %c = icmp ult i32 %cp, 65536\0A\00" @.str5515 = private unnamed_addr constant [130 x i8] c" %w34 = select i1 %c, i32 3, i32 4\0A %w234 = select i1 %b, i32 2, i32 %w34\0A %w = select i1 %a, i32 1, i32 %w234\0A ret i32 %w\0A}\0A\00" @.str5516 = private unnamed_addr constant [58 x i8] c"define i32 @lp_uni_encode(ptr %dst, i32 %off, i32 %cp) {\0A\00" @.str5517 = private unnamed_addr constant [111 x i8] c"entry:\0A %w = call i32 @lp_uni_cpwidth(i32 %cp)\0A %is1 = icmp eq i32 %w, 1\0A br i1 %is1, label %e1, label %k2\0A\00" @.str5518 = private unnamed_addr constant [140 x i8] c"e1:\0A %d0 = getelementptr i8, ptr %dst, i32 %off\0A %b0 = trunc i32 %cp to i8\0A store i8 %b0, ptr %d0\0A %o1 = add i32 %off, 1\0A ret i32 %o1\0A\00" @.str5519 = private unnamed_addr constant [67 x i8] c"k2:\0A %is2 = icmp eq i32 %w, 2\0A br i1 %is2, label %e2, label %k3\0A\00" @.str5520 = private unnamed_addr constant [107 x i8] c"e2:\0A %hi2 = lshr i32 %cp, 6\0A %by0 = or i32 %hi2, 192\0A %lo2 = and i32 %cp, 63\0A %by1 = or i32 %lo2, 128\0A\00" @.str5521 = private unnamed_addr constant [103 x i8] c" %p20 = getelementptr i8, ptr %dst, i32 %off\0A %t20 = trunc i32 %by0 to i8\0A store i8 %t20, ptr %p20\0A\00" @.str5522 = private unnamed_addr constant [166 x i8] c" %o21 = add i32 %off, 1\0A %p21 = getelementptr i8, ptr %dst, i32 %o21\0A %t21 = trunc i32 %by1 to i8\0A store i8 %t21, ptr %p21\0A %o2 = add i32 %off, 2\0A ret i32 %o2\0A\00" @.str5523 = private unnamed_addr constant [67 x i8] c"k3:\0A %is3 = icmp eq i32 %w, 3\0A br i1 %is3, label %e3, label %e4\0A\00" @.str5524 = private unnamed_addr constant [190 x i8] c"e3:\0A %hi3 = lshr i32 %cp, 12\0A %by30 = or i32 %hi3, 224\0A %m31 = lshr i32 %cp, 6\0A %m31b = and i32 %m31, 63\0A %by31 = or i32 %m31b, 128\0A %m32 = and i32 %cp, 63\0A %by32 = or i32 %m32, 128\0A\00" @.str5525 = private unnamed_addr constant [104 x i8] c" %p30 = getelementptr i8, ptr %dst, i32 %off\0A %t30 = trunc i32 %by30 to i8\0A store i8 %t30, ptr %p30\0A\00" @.str5526 = private unnamed_addr constant [129 x i8] c" %o31 = add i32 %off, 1\0A %p31 = getelementptr i8, ptr %dst, i32 %o31\0A %t31 = trunc i32 %by31 to i8\0A store i8 %t31, ptr %p31\0A\00" @.str5527 = private unnamed_addr constant [167 x i8] c" %o32 = add i32 %off, 2\0A %p32 = getelementptr i8, ptr %dst, i32 %o32\0A %t32 = trunc i32 %by32 to i8\0A store i8 %t32, ptr %p32\0A %o3 = add i32 %off, 3\0A ret i32 %o3\0A\00" @.str5528 = private unnamed_addr constant [139 x i8] c"e4:\0A %hi4 = lshr i32 %cp, 18\0A %by40 = or i32 %hi4, 240\0A %m41 = lshr i32 %cp, 12\0A %m41b = and i32 %m41, 63\0A %by41 = or i32 %m41b, 128\0A\00" @.str5529 = private unnamed_addr constant [133 x i8] c" %m42 = lshr i32 %cp, 6\0A %m42b = and i32 %m42, 63\0A %by42 = or i32 %m42b, 128\0A %m43 = and i32 %cp, 63\0A %by43 = or i32 %m43, 128\0A\00" @.str5530 = private unnamed_addr constant [104 x i8] c" %p40 = getelementptr i8, ptr %dst, i32 %off\0A %t40 = trunc i32 %by40 to i8\0A store i8 %t40, ptr %p40\0A\00" @.str5531 = private unnamed_addr constant [129 x i8] c" %o41 = add i32 %off, 1\0A %p41 = getelementptr i8, ptr %dst, i32 %o41\0A %t41 = trunc i32 %by41 to i8\0A store i8 %t41, ptr %p41\0A\00" @.str5532 = private unnamed_addr constant [129 x i8] c" %o42 = add i32 %off, 2\0A %p42 = getelementptr i8, ptr %dst, i32 %o42\0A %t42 = trunc i32 %by42 to i8\0A store i8 %t42, ptr %p42\0A\00" @.str5533 = private unnamed_addr constant [169 x i8] c" %o43 = add i32 %off, 3\0A %p43 = getelementptr i8, ptr %dst, i32 %o43\0A %t43 = trunc i32 %by43 to i8\0A store i8 %t43, ptr %p43\0A %o4 = add i32 %off, 4\0A ret i32 %o4\0A}\0A\00" @.str5534 = private unnamed_addr constant [40 x i8] c"define i32 @lp_uni_is_extend(i32 %c) {\0A\00" @.str5535 = private unnamed_addr constant [60 x i8] c" %r1 = call i32 @lp_uni_inrange(i32 %c, i32 768, i32 879)\0A\00" @.str5536 = private unnamed_addr constant [62 x i8] c" %r2 = call i32 @lp_uni_inrange(i32 %c, i32 6832, i32 6911)\0A\00" @.str5537 = private unnamed_addr constant [62 x i8] c" %r3 = call i32 @lp_uni_inrange(i32 %c, i32 7616, i32 7679)\0A\00" @.str5538 = private unnamed_addr constant [62 x i8] c" %r4 = call i32 @lp_uni_inrange(i32 %c, i32 8400, i32 8447)\0A\00" @.str5539 = private unnamed_addr constant [64 x i8] c" %r5 = call i32 @lp_uni_inrange(i32 %c, i32 65056, i32 65071)\0A\00" @.str5540 = private unnamed_addr constant [64 x i8] c" %r6 = call i32 @lp_uni_inrange(i32 %c, i32 65024, i32 65039)\0A\00" @.str5541 = private unnamed_addr constant [66 x i8] c" %r7 = call i32 @lp_uni_inrange(i32 %c, i32 917760, i32 917999)\0A\00" @.str5542 = private unnamed_addr constant [161 x i8] c" %o1 = or i32 %r1, %r2\0A %o2 = or i32 %o1, %r3\0A %o3 = or i32 %o2, %r4\0A %o4 = or i32 %o3, %r5\0A %o5 = or i32 %o4, %r6\0A %o6 = or i32 %o5, %r7\0A ret i32 %o6\0A}\0A\00" @.str5543 = private unnamed_addr constant [56 x i8] c"define i32 @lp_uni_inrange(i32 %c, i32 %lo, i32 %hi) {\0A\00" @.str5544 = private unnamed_addr constant [118 x i8] c" %a = icmp uge i32 %c, %lo\0A %b = icmp ule i32 %c, %hi\0A %x = and i1 %a, %b\0A %r = zext i1 %x to i32\0A ret i32 %r\0A}\0A\00" @.str5545 = private unnamed_addr constant [48 x i8] c"define i32 @lp_uni_char_at(ptr %s, i32 %idx) {\0A\00" @.str5546 = private unnamed_addr constant [126 x i8] c"entry:\0A %ip = alloca i32\0A %kp = alloca i32\0A %cp = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %kp\0A br label %lp\0A\00" @.str5547 = private unnamed_addr constant [118 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5548 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %none, label %go\0A\00" @.str5549 = private unnamed_addr constant [157 x i8] c"go:\0A %ni = call i32 @lp_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %k = load i32, ptr %kp\0A %hit = icmp eq i32 %k, %idx\0A br i1 %hit, label %found, label %next\0A\00" @.str5550 = private unnamed_addr constant [46 x i8] c"found:\0A %v = load i32, ptr %cp\0A ret i32 %v\0A\00" @.str5551 = private unnamed_addr constant [94 x i8] c"next:\0A %k1 = add i32 %k, 1\0A store i32 %k1, ptr %kp\0A store i32 %ni, ptr %ip\0A br label %lp\0A\00" @.str5552 = private unnamed_addr constant [22 x i8] c"none:\0A ret i32 -1\0A}\0A\00" @.str5553 = private unnamed_addr constant [36 x i8] c"define ptr @lp_uni_chars(ptr %s) {\0A\00" @.str5554 = private unnamed_addr constant [76 x i8] c"entry:\0A %n = call i32 @lp_uni_len(ptr %s)\0A %h = call ptr @malloc(i64 16)\0A\00" @.str5555 = private unnamed_addr constant [93 x i8] c" %nz = zext i32 %n to i64\0A %bytes = mul i64 %nz, 4\0A %data = call ptr @malloc(i64 %bytes)\0A\00" @.str5556 = private unnamed_addr constant [89 x i8] c" %d0 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 0\0A store ptr %data, ptr %d0\0A\00" @.str5557 = private unnamed_addr constant [86 x i8] c" %d1 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 1\0A store i32 %n, ptr %d1\0A\00" @.str5558 = private unnamed_addr constant [86 x i8] c" %d2 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 2\0A store i32 %n, ptr %d2\0A\00" @.str5559 = private unnamed_addr constant [119 x i8] c" %ip = alloca i32\0A %kp = alloca i32\0A %cp = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %kp\0A br label %lp\0A\00" @.str5560 = private unnamed_addr constant [118 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5561 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str5562 = private unnamed_addr constant [112 x i8] c"go:\0A %ni = call i32 @lp_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %v = load i32, ptr %cp\0A %k = load i32, ptr %kp\0A\00" @.str5563 = private unnamed_addr constant [161 x i8] c" %slot = getelementptr i32, ptr %data, i32 %k\0A store i32 %v, ptr %slot\0A %k1 = add i32 %k, 1\0A store i32 %k1, ptr %kp\0A store i32 %ni, ptr %ip\0A br label %lp\0A\00" @.str5564 = private unnamed_addr constant [22 x i8] c"done:\0A ret ptr %h\0A}\0A\00" @.str5565 = private unnamed_addr constant [44 x i8] c"define ptr @lp_uni_case(ptr %s, i32 %up) {\0A\00" @.str5566 = private unnamed_addr constant [128 x i8] c"entry:\0A %bl = call i64 @strlen(ptr %s)\0A %cap0 = mul i64 %bl, 4\0A %cap = add i64 %cap0, 4\0A %out = call ptr @malloc(i64 %cap)\0A\00" @.str5567 = private unnamed_addr constant [119 x i8] c" %ip = alloca i32\0A %op = alloca i32\0A %cp = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %op\0A br label %lp\0A\00" @.str5568 = private unnamed_addr constant [118 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5569 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str5570 = private unnamed_addr constant [87 x i8] c"go:\0A %ni = call i32 @lp_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %v = load i32, ptr %cp\0A\00" @.str5571 = private unnamed_addr constant [147 x i8] c" %mu = call i32 @lp_uni_upcp(i32 %v)\0A %ml = call i32 @lp_uni_locp(i32 %v)\0A %isup = icmp ne i32 %up, 0\0A %m = select i1 %isup, i32 %mu, i32 %ml\0A\00" @.str5572 = private unnamed_addr constant [149 x i8] c" %o = load i32, ptr %op\0A %no = call i32 @lp_uni_encode(ptr %out, i32 %o, i32 %m)\0A store i32 %no, ptr %op\0A store i32 %ni, ptr %ip\0A br label %lp\0A\00" @.str5573 = private unnamed_addr constant [120 x i8] c"done:\0A %fo = load i32, ptr %op\0A %endp = getelementptr i8, ptr %out, i32 %fo\0A store i8 0, ptr %endp\0A ret ptr %out\0A}\0A\00" @.str5574 = private unnamed_addr constant [47 x i8] c"define ptr @lp_uni_truncate(ptr %s, i32 %n) {\0A\00" @.str5575 = private unnamed_addr constant [126 x i8] c"entry:\0A %ip = alloca i32\0A %kp = alloca i32\0A %cp = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %kp\0A br label %lp\0A\00" @.str5576 = private unnamed_addr constant [102 x i8] c"lp:\0A %k = load i32, ptr %kp\0A %enough = icmp sge i32 %k, %n\0A br i1 %enough, label %cut, label %chk\0A\00" @.str5577 = private unnamed_addr constant [119 x i8] c"chk:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5578 = private unnamed_addr constant [60 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %cut, label %go\0A\00" @.str5579 = private unnamed_addr constant [149 x i8] c"go:\0A %ni = call i32 @lp_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %k1 = add i32 %k, 1\0A store i32 %k1, ptr %kp\0A store i32 %ni, ptr %ip\0A br label %lp\0A\00" @.str5580 = private unnamed_addr constant [199 x i8] c"cut:\0A %len = load i32, ptr %ip\0A %lz = zext i32 %len to i64\0A %cap = add i64 %lz, 1\0A %out = call ptr @malloc(i64 %cap)\0A %lz2 = zext i32 %len to i64\0A call ptr @memcpy(ptr %out, ptr %s, i64 %lz2)\0A\00" @.str5581 = private unnamed_addr constant [89 x i8] c" %endp = getelementptr i8, ptr %out, i32 %len\0A store i8 0, ptr %endp\0A ret ptr %out\0A}\0A\00" @.str5582 = private unnamed_addr constant [43 x i8] c"define i32 @lp_uni_grapheme_len(ptr %s) {\0A\00" @.str5583 = private unnamed_addr constant [103 x i8] c"entry:\0A %ip = alloca i32\0A %np = alloca i32\0A %zp = alloca i32\0A %rp = alloca i32\0A %cp = alloca i32\0A\00" @.str5584 = private unnamed_addr constant [108 x i8] c" store i32 0, ptr %ip\0A store i32 0, ptr %np\0A store i32 0, ptr %zp\0A store i32 0, ptr %rp\0A br label %lp\0A\00" @.str5585 = private unnamed_addr constant [118 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5586 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str5587 = private unnamed_addr constant [112 x i8] c"go:\0A %ni = call i32 @lp_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %v = load i32, ptr %cp\0A store i32 %ni, ptr %ip\0A\00" @.str5588 = private unnamed_addr constant [75 x i8] c" %iszwj = icmp eq i32 %v, 8205\0A br i1 %iszwj, label %zwj, label %notzwj\0A\00" @.str5589 = private unnamed_addr constant [142 x i8] c"zwj:\0A %n0 = load i32, ptr %np\0A %n0z = icmp eq i32 %n0, 0\0A %n0b = zext i1 %n0z to i32\0A %n0n = add i32 %n0, %n0b\0A store i32 %n0n, ptr %np\0A\00" @.str5590 = private unnamed_addr constant [62 x i8] c" store i32 1, ptr %zp\0A store i32 0, ptr %rp\0A br label %lp\0A\00" @.str5591 = private unnamed_addr constant [104 x i8] c"notzwj:\0A %n = load i32, ptr %np\0A %first = icmp eq i32 %n, 0\0A br i1 %first, label %open, label %cont\0A\00" @.str5592 = private unnamed_addr constant [160 x i8] c"open:\0A store i32 1, ptr %np\0A store i32 0, ptr %zp\0A %ri0 = call i32 @lp_uni_inrange(i32 %v, i32 127462, i32 127487)\0A store i32 %ri0, ptr %rp\0A br label %lp\0A\00" @.str5593 = private unnamed_addr constant [109 x i8] c"cont:\0A %zj = load i32, ptr %zp\0A %afterz = icmp ne i32 %zj, 0\0A br i1 %afterz, label %joinz, label %chkext\0A\00" @.str5594 = private unnamed_addr constant [69 x i8] c"joinz:\0A store i32 0, ptr %zp\0A store i32 0, ptr %rp\0A br label %lp\0A\00" @.str5595 = private unnamed_addr constant [129 x i8] c"chkext:\0A %ext = call i32 @lp_uni_is_extend(i32 %v)\0A %isext = icmp ne i32 %ext, 0\0A br i1 %isext, label %joinext, label %chkri\0A\00" @.str5596 = private unnamed_addr constant [48 x i8] c"joinext:\0A store i32 0, ptr %rp\0A br label %lp\0A\00" @.str5597 = private unnamed_addr constant [240 x i8] c"chkri:\0A %ri = call i32 @lp_uni_inrange(i32 %v, i32 127462, i32 127487)\0A %isri = icmp ne i32 %ri, 0\0A %ropen = load i32, ptr %rp\0A %ropenb = icmp ne i32 %ropen, 0\0A %pair = and i1 %isri, %ropenb\0A br i1 %pair, label %joinri, label %newcl\0A\00" @.str5598 = private unnamed_addr constant [47 x i8] c"joinri:\0A store i32 0, ptr %rp\0A br label %lp\0A\00" @.str5599 = private unnamed_addr constant [191 x i8] c"newcl:\0A %nn = load i32, ptr %np\0A %nn1 = add i32 %nn, 1\0A store i32 %nn1, ptr %np\0A store i32 0, ptr %zp\0A %riset = select i1 %isri, i32 1, i32 0\0A store i32 %riset, ptr %rp\0A br label %lp\0A\00" @.str5600 = private unnamed_addr constant [47 x i8] c"done:\0A %r = load i32, ptr %np\0A ret i32 %r\0A}\0A\00" @.str5601 = private unnamed_addr constant [7 x i8] c"exists\00" @.str5602 = private unnamed_addr constant [7 x i8] c"is_dir\00" @.str5603 = private unnamed_addr constant [10 x i8] c"read_text\00" @.str5604 = private unnamed_addr constant [11 x i8] c"write_text\00" @.str5605 = private unnamed_addr constant [12 x i8] c"append_text\00" @.str5606 = private unnamed_addr constant [7 x i8] c"remove\00" @.str5607 = private unnamed_addr constant [5 x i8] c"size\00" @.str5608 = private unnamed_addr constant [6 x i8] c"mkdir\00" @.str5609 = private unnamed_addr constant [5 x i8] c"copy\00" @.str5610 = private unnamed_addr constant [5 x i8] c"list\00" @.str5611 = private unnamed_addr constant [5 x i8] c"join\00" @.str5612 = private unnamed_addr constant [4 x i8] c"dir\00" @.str5613 = private unnamed_addr constant [5 x i8] c"base\00" @.str5614 = private unnamed_addr constant [4 x i8] c"ext\00" @.str5615 = private unnamed_addr constant [5 x i8] c"stem\00" @.str5616 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str5617 = private unnamed_addr constant [3 x i8] c"of\00" @.str5618 = private unnamed_addr constant [6 x i8] c"sniff\00" @.str5619 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9533: index out of range: \00" @.str5620 = private unnamed_addr constant [7 x i8] c"exists\00" @.str5621 = private unnamed_addr constant [28 x i8] c"call i32 @lp_fs_exists(ptr \00" @.str5622 = private unnamed_addr constant [2 x i8] c")\00" @.str5623 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5624 = private unnamed_addr constant [7 x i8] c"is_dir\00" @.str5625 = private unnamed_addr constant [28 x i8] c"call i32 @lp_fs_is_dir(ptr \00" @.str5626 = private unnamed_addr constant [2 x i8] c")\00" @.str5627 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5628 = private unnamed_addr constant [10 x i8] c"read_text\00" @.str5629 = private unnamed_addr constant [31 x i8] c"call ptr @lp_fs_read_text(ptr \00" @.str5630 = private unnamed_addr constant [2 x i8] c")\00" @.str5631 = private unnamed_addr constant [7 x i8] c"string\00" @.str5632 = private unnamed_addr constant [7 x i8] c"remove\00" @.str5633 = private unnamed_addr constant [28 x i8] c"call i32 @lp_fs_remove(ptr \00" @.str5634 = private unnamed_addr constant [2 x i8] c")\00" @.str5635 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5636 = private unnamed_addr constant [5 x i8] c"size\00" @.str5637 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fs_size(ptr \00" @.str5638 = private unnamed_addr constant [2 x i8] c")\00" @.str5639 = private unnamed_addr constant [4 x i8] c"int\00" @.str5640 = private unnamed_addr constant [6 x i8] c"mkdir\00" @.str5641 = private unnamed_addr constant [27 x i8] c"call i32 @lp_fs_mkdir(ptr \00" @.str5642 = private unnamed_addr constant [2 x i8] c")\00" @.str5643 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5644 = private unnamed_addr constant [5 x i8] c"list\00" @.str5645 = private unnamed_addr constant [26 x i8] c"call ptr @lp_fs_list(ptr \00" @.str5646 = private unnamed_addr constant [2 x i8] c")\00" @.str5647 = private unnamed_addr constant [9 x i8] c"[]string\00" @.str5648 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9541: index out of range: \00" @.str5649 = private unnamed_addr constant [11 x i8] c"write_text\00" @.str5650 = private unnamed_addr constant [32 x i8] c"call i32 @lp_fs_write_text(ptr \00" @.str5651 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5652 = private unnamed_addr constant [2 x i8] c")\00" @.str5653 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5654 = private unnamed_addr constant [12 x i8] c"append_text\00" @.str5655 = private unnamed_addr constant [33 x i8] c"call i32 @lp_fs_append_text(ptr \00" @.str5656 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5657 = private unnamed_addr constant [2 x i8] c")\00" @.str5658 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5659 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fs_copy(ptr \00" @.str5660 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5661 = private unnamed_addr constant [2 x i8] c")\00" @.str5662 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5663 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9550: index out of range: \00" @.str5664 = private unnamed_addr constant [4 x i8] c"dir\00" @.str5665 = private unnamed_addr constant [27 x i8] c"call ptr @lp_path_dir(ptr \00" @.str5666 = private unnamed_addr constant [2 x i8] c")\00" @.str5667 = private unnamed_addr constant [7 x i8] c"string\00" @.str5668 = private unnamed_addr constant [5 x i8] c"base\00" @.str5669 = private unnamed_addr constant [28 x i8] c"call ptr @lp_path_base(ptr \00" @.str5670 = private unnamed_addr constant [2 x i8] c")\00" @.str5671 = private unnamed_addr constant [7 x i8] c"string\00" @.str5672 = private unnamed_addr constant [4 x i8] c"ext\00" @.str5673 = private unnamed_addr constant [27 x i8] c"call ptr @lp_path_ext(ptr \00" @.str5674 = private unnamed_addr constant [2 x i8] c")\00" @.str5675 = private unnamed_addr constant [7 x i8] c"string\00" @.str5676 = private unnamed_addr constant [5 x i8] c"stem\00" @.str5677 = private unnamed_addr constant [28 x i8] c"call ptr @lp_path_stem(ptr \00" @.str5678 = private unnamed_addr constant [2 x i8] c")\00" @.str5679 = private unnamed_addr constant [7 x i8] c"string\00" @.str5680 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str5681 = private unnamed_addr constant [28 x i8] c"call ptr @lp_path_norm(ptr \00" @.str5682 = private unnamed_addr constant [2 x i8] c")\00" @.str5683 = private unnamed_addr constant [7 x i8] c"string\00" @.str5684 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9557: index out of range: \00" @.str5685 = private unnamed_addr constant [28 x i8] c"call ptr @lp_path_join(ptr \00" @.str5686 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5687 = private unnamed_addr constant [2 x i8] c")\00" @.str5688 = private unnamed_addr constant [7 x i8] c"string\00" @.str5689 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9563: index out of range: \00" @.str5690 = private unnamed_addr constant [6 x i8] c"sniff\00" @.str5691 = private unnamed_addr constant [29 x i8] c"call ptr @lp_mime_sniff(ptr \00" @.str5692 = private unnamed_addr constant [2 x i8] c")\00" @.str5693 = private unnamed_addr constant [7 x i8] c"string\00" @.str5694 = private unnamed_addr constant [26 x i8] c"call ptr @lp_mime_of(ptr \00" @.str5695 = private unnamed_addr constant [2 x i8] c")\00" @.str5696 = private unnamed_addr constant [7 x i8] c"string\00" @.str5697 = private unnamed_addr constant [26 x i8] c"declare i32 @remove(ptr)\0A\00" @.str5698 = private unnamed_addr constant [31 x i8] c"declare i32 @access(ptr, i32)\0A\00" @.str5699 = private unnamed_addr constant [30 x i8] c"declare i32 @mkdir(ptr, i32)\0A\00" @.str5700 = private unnamed_addr constant [31 x i8] c"declare i32 @rename(ptr, ptr)\0A\00" @.str5701 = private unnamed_addr constant [27 x i8] c"declare ptr @opendir(ptr)\0A\00" @.str5702 = private unnamed_addr constant [27 x i8] c"declare ptr @readdir(ptr)\0A\00" @.str5703 = private unnamed_addr constant [28 x i8] c"declare i32 @closedir(ptr)\0A\00" @.str5704 = private unnamed_addr constant [41 x i8] c"define ptr @lp_fs_dup(ptr %s, i32 %n) {\0A\00" @.str5705 = private unnamed_addr constant [133 x i8] c"entry:\0A %nz = zext i32 %n to i64\0A %t = add i64 %nz, 1\0A %m = call ptr @malloc(i64 %t)\0A call ptr @memcpy(ptr %m, ptr %s, i64 %nz)\0A\00" @.str5706 = private unnamed_addr constant [81 x i8] c" %end = getelementptr i8, ptr %m, i32 %n\0A store i8 0, ptr %end\0A ret ptr %m\0A}\0A\00" @.str5707 = private unnamed_addr constant [36 x i8] c"define ptr @lp_fs_strdup(ptr %s) {\0A\00" @.str5708 = private unnamed_addr constant [127 x i8] c"entry:\0A %l = call i64 @strlen(ptr %s)\0A %li = trunc i64 %l to i32\0A %r = call ptr @lp_fs_dup(ptr %s, i32 %li)\0A ret ptr %r\0A}\0A\00" @.str5709 = private unnamed_addr constant [39 x i8] c"define i32 @lp_fs_lastslash(ptr %s) {\0A\00" @.str5710 = private unnamed_addr constant [108 x i8] c"entry:\0A %ip = alloca i32\0A %rp = alloca i32\0A store i32 0, ptr %ip\0A store i32 -1, ptr %rp\0A br label %lp\0A\00" @.str5711 = private unnamed_addr constant [118 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A\00" @.str5712 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str5713 = private unnamed_addr constant [67 x i8] c"go:\0A %sl = icmp eq i32 %c, 47\0A br i1 %sl, label %set, label %nx\0A\00" @.str5714 = private unnamed_addr constant [45 x i8] c"set:\0A store i32 %i, ptr %rp\0A br label %nx\0A\00" @.str5715 = private unnamed_addr constant [67 x i8] c"nx:\0A %i1 = add i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %lp\0A\00" @.str5716 = private unnamed_addr constant [47 x i8] c"done:\0A %r = load i32, ptr %rp\0A ret i32 %r\0A}\0A\00" @.str5717 = private unnamed_addr constant [44 x i8] c"define ptr @lp_path_join(ptr %a, ptr %b) {\0A\00" @.str5718 = private unnamed_addr constant [140 x i8] c"entry:\0A %la64 = call i64 @strlen(ptr %a)\0A %la = trunc i64 %la64 to i32\0A %lb64 = call i64 @strlen(ptr %b)\0A %lb = trunc i64 %lb64 to i32\0A\00" @.str5719 = private unnamed_addr constant [122 x i8] c" %b0 = load i8, ptr %b\0A %b0i = zext i8 %b0 to i32\0A %babs = icmp eq i32 %b0i, 47\0A br i1 %babs, label %retb, label %ka\0A\00" @.str5720 = private unnamed_addr constant [60 x i8] c"retb:\0A %rb = call ptr @lp_fs_strdup(ptr %b)\0A ret ptr %rb\0A\00" @.str5721 = private unnamed_addr constant [73 x i8] c"ka:\0A %aemp = icmp eq i32 %la, 0\0A br i1 %aemp, label %retb2, label %kb\0A\00" @.str5722 = private unnamed_addr constant [63 x i8] c"retb2:\0A %rb2 = call ptr @lp_fs_strdup(ptr %b)\0A ret ptr %rb2\0A\00" @.str5723 = private unnamed_addr constant [73 x i8] c"kb:\0A %bemp = icmp eq i32 %lb, 0\0A br i1 %bemp, label %reta, label %chk\0A\00" @.str5724 = private unnamed_addr constant [60 x i8] c"reta:\0A %ra = call ptr @lp_fs_strdup(ptr %a)\0A ret ptr %ra\0A\00" @.str5725 = private unnamed_addr constant [159 x i8] c"chk:\0A %lam1 = sub i32 %la, 1\0A %pe = getelementptr i8, ptr %a, i32 %lam1\0A %ae = load i8, ptr %pe\0A %aei = zext i8 %ae to i32\0A %ends = icmp eq i32 %aei, 47\0A\00" @.str5726 = private unnamed_addr constant [189 x i8] c" %sep = select i1 %ends, i32 0, i32 1\0A %tot = add i32 %la, %lb\0A %tot2 = add i32 %tot, %sep\0A %tot3 = add i32 %tot2, 1\0A %totz = zext i32 %tot3 to i64\0A %m = call ptr @malloc(i64 %totz)\0A\00" @.str5727 = private unnamed_addr constant [75 x i8] c" %laz = zext i32 %la to i64\0A call ptr @memcpy(ptr %m, ptr %a, i64 %laz)\0A\00" @.str5728 = private unnamed_addr constant [42 x i8] c" br i1 %ends, label %nosep, label %wsep\0A\00" @.str5729 = private unnamed_addr constant [90 x i8] c"wsep:\0A %sp = getelementptr i8, ptr %m, i32 %la\0A store i8 47, ptr %sp\0A br label %after\0A\00" @.str5730 = private unnamed_addr constant [26 x i8] c"nosep:\0A br label %after\0A\00" @.str5731 = private unnamed_addr constant [155 x i8] c"after:\0A %boff = add i32 %la, %sep\0A %dp = getelementptr i8, ptr %m, i32 %boff\0A %lbz = zext i32 %lb to i64\0A call ptr @memcpy(ptr %dp, ptr %b, i64 %lbz)\0A\00" @.str5732 = private unnamed_addr constant [115 x i8] c" %endoff = add i32 %boff, %lb\0A %ep = getelementptr i8, ptr %m, i32 %endoff\0A store i8 0, ptr %ep\0A ret ptr %m\0A}\0A\00" @.str5733 = private unnamed_addr constant [36 x i8] c"define ptr @lp_path_base(ptr %s) {\0A\00" @.str5734 = private unnamed_addr constant [121 x i8] c"entry:\0A %ls = call i32 @lp_fs_lastslash(ptr %s)\0A %none = icmp eq i32 %ls, -1\0A br i1 %none, label %whole, label %tail\0A\00" @.str5735 = private unnamed_addr constant [59 x i8] c"whole:\0A %r = call ptr @lp_fs_strdup(ptr %s)\0A ret ptr %r\0A\00" @.str5736 = private unnamed_addr constant [126 x i8] c"tail:\0A %st = add i32 %ls, 1\0A %p = getelementptr i8, ptr %s, i32 %st\0A %r2 = call ptr @lp_fs_strdup(ptr %p)\0A ret ptr %r2\0A}\0A\00" @.str5737 = private unnamed_addr constant [35 x i8] c"define ptr @lp_path_dir(ptr %s) {\0A\00" @.str5738 = private unnamed_addr constant [119 x i8] c"entry:\0A %ls = call i32 @lp_fs_lastslash(ptr %s)\0A %none = icmp eq i32 %ls, -1\0A br i1 %none, label %dot, label %chk0\0A\00" @.str5739 = private unnamed_addr constant [66 x i8] c"dot:\0A %d = call ptr @lp_fs_strdup(ptr @fn_str_dot)\0A ret ptr %d\0A\00" @.str5740 = private unnamed_addr constant [79 x i8] c"chk0:\0A %isroot = icmp eq i32 %ls, 0\0A br i1 %isroot, label %root, label %cut\0A\00" @.str5741 = private unnamed_addr constant [69 x i8] c"root:\0A %r = call ptr @lp_fs_strdup(ptr @fn_str_slash)\0A ret ptr %r\0A\00" @.str5742 = private unnamed_addr constant [67 x i8] c"cut:\0A %r2 = call ptr @lp_fs_dup(ptr %s, i32 %ls)\0A ret ptr %r2\0A}\0A\00" @.str5743 = private unnamed_addr constant [35 x i8] c"define ptr @lp_path_ext(ptr %s) {\0A\00" @.str5744 = private unnamed_addr constant [77 x i8] c"entry:\0A %ls = call i32 @lp_fs_lastslash(ptr %s)\0A %bstart = add i32 %ls, 1\0A\00" @.str5745 = private unnamed_addr constant [107 x i8] c" %dp = alloca i32\0A %ip = alloca i32\0A store i32 -1, ptr %dp\0A store i32 %bstart, ptr %ip\0A br label %lp\0A\00" @.str5746 = private unnamed_addr constant [178 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %p = getelementptr i8, ptr %s, i32 %i\0A %b = load i8, ptr %p\0A %c = zext i8 %b to i32\0A %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str5747 = private unnamed_addr constant [68 x i8] c"go:\0A %dot = icmp eq i32 %c, 46\0A br i1 %dot, label %sd, label %nx\0A\00" @.str5748 = private unnamed_addr constant [44 x i8] c"sd:\0A store i32 %i, ptr %dp\0A br label %nx\0A\00" @.str5749 = private unnamed_addr constant [67 x i8] c"nx:\0A %i1 = add i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %lp\0A\00" @.str5750 = private unnamed_addr constant [102 x i8] c"done:\0A %d = load i32, ptr %dp\0A %nod = icmp eq i32 %d, -1\0A br i1 %nod, label %empty, label %chkpos\0A\00" @.str5751 = private unnamed_addr constant [70 x i8] c"empty:\0A %e = call ptr @lp_fs_strdup(ptr @fn_str_empty)\0A ret ptr %e\0A\00" @.str5752 = private unnamed_addr constant [91 x i8] c"chkpos:\0A %atstart = icmp eq i32 %d, %bstart\0A br i1 %atstart, label %empty2, label %take\0A\00" @.str5753 = private unnamed_addr constant [73 x i8] c"empty2:\0A %e2 = call ptr @lp_fs_strdup(ptr @fn_str_empty)\0A ret ptr %e2\0A\00" @.str5754 = private unnamed_addr constant [102 x i8] c"take:\0A %pp = getelementptr i8, ptr %s, i32 %d\0A %r = call ptr @lp_fs_strdup(ptr %pp)\0A ret ptr %r\0A}\0A\00" @.str5755 = private unnamed_addr constant [36 x i8] c"define ptr @lp_path_stem(ptr %s) {\0A\00" @.str5756 = private unnamed_addr constant [88 x i8] c"entry:\0A %base = call ptr @lp_path_base(ptr %s)\0A %ext = call ptr @lp_path_ext(ptr %s)\0A\00" @.str5757 = private unnamed_addr constant [138 x i8] c" %bl64 = call i64 @strlen(ptr %base)\0A %bl = trunc i64 %bl64 to i32\0A %el64 = call i64 @strlen(ptr %ext)\0A %el = trunc i64 %el64 to i32\0A\00" @.str5758 = private unnamed_addr constant [92 x i8] c" %keep = sub i32 %bl, %el\0A %r = call ptr @lp_fs_dup(ptr %base, i32 %keep)\0A ret ptr %r\0A}\0A\00" @.str5759 = private unnamed_addr constant [36 x i8] c"define ptr @lp_path_norm(ptr %s) {\0A\00" @.str5760 = private unnamed_addr constant [133 x i8] c"entry:\0A %len64 = call i64 @strlen(ptr %s)\0A %len = trunc i64 %len64 to i32\0A %cap = add i32 %len, 2\0A %capz = zext i32 %cap to i64\0A\00" @.str5761 = private unnamed_addr constant [38 x i8] c" %out = call ptr @malloc(i64 %capz)\0A\00" @.str5762 = private unnamed_addr constant [96 x i8] c" %stz = mul i32 %cap, 4\0A %stzz = zext i32 %stz to i64\0A %segst = call ptr @malloc(i64 %stzz)\0A\00" @.str5763 = private unnamed_addr constant [83 x i8] c" %b0 = load i8, ptr %s\0A %b0i = zext i8 %b0 to i32\0A %abs = icmp eq i32 %b0i, 47\0A\00" @.str5764 = private unnamed_addr constant [106 x i8] c" %ip = alloca i32\0A %op = alloca i32\0A %scp = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %scp\0A\00" @.str5765 = private unnamed_addr constant [40 x i8] c" br i1 %abs, label %ldr, label %noldr\0A\00" @.str5766 = private unnamed_addr constant [69 x i8] c"ldr:\0A store i8 47, ptr %out\0A store i32 1, ptr %op\0A br label %seg\0A\00" @.str5767 = private unnamed_addr constant [47 x i8] c"noldr:\0A store i32 0, ptr %op\0A br label %seg\0A\00" @.str5768 = private unnamed_addr constant [23 x i8] c"seg:\0A br label %sksl\0A\00" @.str5769 = private unnamed_addr constant [200 x i8] c"sksl:\0A %i = load i32, ptr %ip\0A %pp = getelementptr i8, ptr %s, i32 %i\0A %cc = load i8, ptr %pp\0A %cci = zext i8 %cc to i32\0A %issl = icmp eq i32 %cci, 47\0A br i1 %issl, label %adv, label %segstart\0A\00" @.str5770 = private unnamed_addr constant [70 x i8] c"adv:\0A %i2 = add i32 %i, 1\0A store i32 %i2, ptr %ip\0A br label %sksl\0A\00" @.str5771 = private unnamed_addr constant [54 x i8] c"segstart:\0A %ss = load i32, ptr %ip\0A br label %scan\0A\00" @.str5772 = private unnamed_addr constant [260 x i8] c"scan:\0A %j = load i32, ptr %ip\0A %pj = getelementptr i8, ptr %s, i32 %j\0A %cj = load i8, ptr %pj\0A %cji = zext i8 %cj to i32\0A %endc = icmp eq i32 %cji, 0\0A %slc = icmp eq i32 %cji, 47\0A %stop = or i1 %endc, %slc\0A br i1 %stop, label %seghave, label %scanadv\0A\00" @.str5773 = private unnamed_addr constant [74 x i8] c"scanadv:\0A %j1 = add i32 %j, 1\0A store i32 %j1, ptr %ip\0A br label %scan\0A\00" @.str5774 = private unnamed_addr constant [147 x i8] c"seghave:\0A %se = load i32, ptr %ip\0A %slen = sub i32 %se, %ss\0A %emptyseg = icmp eq i32 %slen, 0\0A br i1 %emptyseg, label %atend, label %classify\0A\00" @.str5775 = private unnamed_addr constant [11 x i8] c"classify:\0A\00" @.str5776 = private unnamed_addr constant [244 x i8] c" %is1 = icmp eq i32 %slen, 1\0A %c0p = getelementptr i8, ptr %s, i32 %ss\0A %c0 = load i8, ptr %c0p\0A %c0i = zext i8 %c0 to i32\0A %isdotchar = icmp eq i32 %c0i, 46\0A %isdot = and i1 %is1, %isdotchar\0A br i1 %isdot, label %contseg, label %chkdd\0A\00" @.str5777 = private unnamed_addr constant [257 x i8] c"chkdd:\0A %is2 = icmp eq i32 %slen, 2\0A %d0p = getelementptr i8, ptr %s, i32 %ss\0A %d0 = load i8, ptr %d0p\0A %d0i = zext i8 %d0 to i32\0A %d1o = add i32 %ss, 1\0A %d1p = getelementptr i8, ptr %s, i32 %d1o\0A %d1 = load i8, ptr %d1p\0A %d1i = zext i8 %d1 to i32\0A\00" @.str5778 = private unnamed_addr constant [161 x i8] c" %dd0 = icmp eq i32 %d0i, 46\0A %dd1 = icmp eq i32 %d1i, 46\0A %ddx = and i1 %dd0, %dd1\0A %isdd = and i1 %is2, %ddx\0A br i1 %isdd, label %dotdot, label %keepseg\0A\00" @.str5779 = private unnamed_addr constant [105 x i8] c"dotdot:\0A %sc = load i32, ptr %scp\0A %has = icmp sgt i32 %sc, 0\0A br i1 %has, label %pop, label %chkrel\0A\00" @.str5780 = private unnamed_addr constant [184 x i8] c"pop:\0A %sc1 = sub i32 %sc, 1\0A %stp = getelementptr i32, ptr %segst, i32 %sc1\0A %newop = load i32, ptr %stp\0A store i32 %newop, ptr %op\0A store i32 %sc1, ptr %scp\0A br label %contseg\0A\00" @.str5781 = private unnamed_addr constant [54 x i8] c"chkrel:\0A br i1 %abs, label %contseg, label %keepseg\0A\00" @.str5782 = private unnamed_addr constant [195 x i8] c"keepseg:\0A %sc2 = load i32, ptr %scp\0A %o0 = load i32, ptr %op\0A %stp2 = getelementptr i32, ptr %segst, i32 %sc2\0A store i32 %o0, ptr %stp2\0A %sc2n = add i32 %sc2, 1\0A store i32 %sc2n, ptr %scp\0A\00" @.str5783 = private unnamed_addr constant [63 x i8] c" %cpp = alloca i32\0A store i32 %ss, ptr %cpp\0A br label %cpy\0A\00" @.str5784 = private unnamed_addr constant [102 x i8] c"cpy:\0A %k = load i32, ptr %cpp\0A %klt = icmp slt i32 %k, %se\0A br i1 %klt, label %cpyb, label %cpysl\0A\00" @.str5785 = private unnamed_addr constant [285 x i8] c"cpyb:\0A %skp = getelementptr i8, ptr %s, i32 %k\0A %sk = load i8, ptr %skp\0A %oo = load i32, ptr %op\0A %dkp = getelementptr i8, ptr %out, i32 %oo\0A store i8 %sk, ptr %dkp\0A %oo1 = add i32 %oo, 1\0A store i32 %oo1, ptr %op\0A %k1 = add i32 %k, 1\0A store i32 %k1, ptr %cpp\0A br label %cpy\0A\00" @.str5786 = private unnamed_addr constant [175 x i8] c"cpysl:\0A %oc = load i32, ptr %op\0A %scp3 = getelementptr i8, ptr %out, i32 %oc\0A store i8 47, ptr %scp3\0A %oc1 = add i32 %oc, 1\0A store i32 %oc1, ptr %op\0A br label %contseg\0A\00" @.str5787 = private unnamed_addr constant [206 x i8] c"contseg:\0A %ci = load i32, ptr %ip\0A %cip = getelementptr i8, ptr %s, i32 %ci\0A %cic = load i8, ptr %cip\0A %cici = zext i8 %cic to i32\0A %atz = icmp eq i32 %cici, 0\0A br i1 %atz, label %finish, label %seg\0A\00" @.str5788 = private unnamed_addr constant [27 x i8] c"atend:\0A br label %finish\0A\00" @.str5789 = private unnamed_addr constant [110 x i8] c"finish:\0A %fo = load i32, ptr %op\0A %gt1 = icmp sgt i32 %fo, 1\0A br i1 %gt1, label %trimchk, label %fdefault\0A\00" @.str5790 = private unnamed_addr constant [211 x i8] c"trimchk:\0A %lasto = sub i32 %fo, 1\0A %lop = getelementptr i8, ptr %out, i32 %lasto\0A %lc = load i8, ptr %lop\0A %lci = zext i8 %lc to i32\0A %istsl = icmp eq i32 %lci, 47\0A br i1 %istsl, label %trim, label %term\0A\00" @.str5791 = private unnamed_addr constant [52 x i8] c"trim:\0A store i32 %lasto, ptr %op\0A br label %term\0A\00" @.str5792 = private unnamed_addr constant [28 x i8] c"fdefault:\0A br label %term\0A\00" @.str5793 = private unnamed_addr constant [104 x i8] c"term:\0A %eo = load i32, ptr %op\0A %ez = icmp eq i32 %eo, 0\0A br i1 %ez, label %emptyout, label %putnul\0A\00" @.str5794 = private unnamed_addr constant [114 x i8] c"emptyout:\0A store i8 46, ptr %out\0A %e1 = getelementptr i8, ptr %out, i32 1\0A store i8 0, ptr %e1\0A ret ptr %out\0A\00" @.str5795 = private unnamed_addr constant [92 x i8] c"putnul:\0A %ep = getelementptr i8, ptr %out, i32 %eo\0A store i8 0, ptr %ep\0A ret ptr %out\0A}\0A\00" @.str5796 = private unnamed_addr constant [36 x i8] c"define i32 @lp_fs_exists(ptr %p) {\0A\00" @.str5797 = private unnamed_addr constant [115 x i8] c"entry:\0A %ip = call i32 @lp_pak_has(ptr %p)\0A %inpak = icmp ne i32 %ip, 0\0A br i1 %inpak, label %yes, label %disk\0A\00" @.str5798 = private unnamed_addr constant [18 x i8] c"yes:\0A ret i32 1\0A\00" @.str5799 = private unnamed_addr constant [113 x i8] c"disk:\0A %r = call i32 @access(ptr %p, i32 0)\0A %ok = icmp eq i32 %r, 0\0A %z = zext i1 %ok to i32\0A ret i32 %z\0A}\0A\00" @.str5800 = private unnamed_addr constant [36 x i8] c"define i32 @lp_fs_is_dir(ptr %p) {\0A\00" @.str5801 = private unnamed_addr constant [105 x i8] c"entry:\0A %d = call ptr @opendir(ptr %p)\0A %nz = icmp ne ptr %d, null\0A br i1 %nz, label %yes, label %no\0A\00" @.str5802 = private unnamed_addr constant [47 x i8] c"yes:\0A call i32 @closedir(ptr %d)\0A ret i32 1\0A\00" @.str5803 = private unnamed_addr constant [19 x i8] c"no:\0A ret i32 0\0A}\0A\00" @.str5804 = private unnamed_addr constant [34 x i8] c"define i32 @lp_fs_size(ptr %p) {\0A\00" @.str5805 = private unnamed_addr constant [121 x i8] c"entry:\0A %pn = call i32 @lp_pak_bytes(ptr %p)\0A %inpak = icmp sge i32 %pn, 0\0A br i1 %inpak, label %packed, label %disk\0A\00" @.str5806 = private unnamed_addr constant [23 x i8] c"packed:\0A ret i32 %pn\0A\00" @.str5807 = private unnamed_addr constant [118 x i8] c"disk:\0A %f = call ptr @fopen(ptr %p, ptr @fn_str_rb)\0A %nz = icmp ne ptr %f, null\0A br i1 %nz, label %ok, label %bad\0A\00" @.str5808 = private unnamed_addr constant [19 x i8] c"bad:\0A ret i32 -1\0A\00" @.str5809 = private unnamed_addr constant [147 x i8] c"ok:\0A call i32 @fseek(ptr %f, i64 0, i32 2)\0A %n = call i64 @ftell(ptr %f)\0A call i32 @fclose(ptr %f)\0A %ni = trunc i64 %n to i32\0A ret i32 %ni\0A}\0A\00" @.str5810 = private unnamed_addr constant [50 x i8] c"define ptr @lp_fs_readall(ptr %p, ptr %lenout) {\0A\00" @.str5811 = private unnamed_addr constant [152 x i8] c"entry:\0A store i32 0, ptr %lenout\0A %f = call ptr @lp_pak_open(ptr %p, ptr @fn_str_rb)\0A %nz = icmp ne ptr %f, null\0A br i1 %nz, label %ok, label %bad\0A\00" @.str5812 = private unnamed_addr constant [21 x i8] c"bad:\0A ret ptr null\0A\00" @.str5813 = private unnamed_addr constant [147 x i8] c"ok:\0A call i32 @fseek(ptr %f, i64 0, i32 2)\0A %n64 = call i64 @ftell(ptr %f)\0A call i32 @fseek(ptr %f, i64 0, i32 0)\0A %n = trunc i64 %n64 to i32\0A\00" @.str5814 = private unnamed_addr constant [144 x i8] c" %cap = add i64 %n64, 1\0A %m = call ptr @malloc(i64 %cap)\0A %rd = call i64 @fread(ptr %m, i64 1, i64 %n64, ptr %f)\0A call i32 @fclose(ptr %f)\0A\00" @.str5815 = private unnamed_addr constant [145 x i8] c" %rdi = trunc i64 %rd to i32\0A %endp = getelementptr i8, ptr %m, i32 %rdi\0A store i8 0, ptr %endp\0A store i32 %rdi, ptr %lenout\0A ret ptr %m\0A}\0A\00" @.str5816 = private unnamed_addr constant [39 x i8] c"define ptr @lp_fs_read_text(ptr %p) {\0A\00" @.str5817 = private unnamed_addr constant [90 x i8] c"entry:\0A %lp = alloca i32\0A %r = call ptr @lp_fs_readall(ptr %p, ptr %lp)\0A ret ptr %r\0A}\0A\00" @.str5818 = private unnamed_addr constant [48 x i8] c"define i32 @lp_fs_write_text(ptr %p, ptr %s) {\0A\00" @.str5819 = private unnamed_addr constant [185 x i8] c"entry:\0A %tmp = call ptr @lp_path_join_ext(ptr %p, ptr @fn_str_dottmp)\0A %f = call ptr @fopen(ptr %tmp, ptr @fn_str_wb)\0A %nz = icmp ne ptr %f, null\0A br i1 %nz, label %ok, label %bad\0A\00" @.str5820 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str5821 = private unnamed_addr constant [119 x i8] c"ok:\0A %n = call i64 @strlen(ptr %s)\0A %w = call i64 @fwrite(ptr %s, i64 1, i64 %n, ptr %f)\0A call i32 @fclose(ptr %f)\0A\00" @.str5822 = private unnamed_addr constant [114 x i8] c" %rr = call i32 @rename(ptr %tmp, ptr %p)\0A %ok2 = icmp eq i32 %rr, 0\0A %z = zext i1 %ok2 to i32\0A ret i32 %z\0A}\0A\00" @.str5823 = private unnamed_addr constant [48 x i8] c"define ptr @lp_path_join_ext(ptr %a, ptr %b) {\0A\00" @.str5824 = private unnamed_addr constant [159 x i8] c"entry:\0A %la = call i64 @strlen(ptr %a)\0A %lb = call i64 @strlen(ptr %b)\0A %sum = add i64 %la, %lb\0A %tot = add i64 %sum, 1\0A %m = call ptr @malloc(i64 %tot)\0A\00" @.str5825 = private unnamed_addr constant [212 x i8] c" call ptr @memcpy(ptr %m, ptr %a, i64 %la)\0A %m2 = getelementptr i8, ptr %m, i64 %la\0A call ptr @memcpy(ptr %m2, ptr %b, i64 %lb)\0A %ep = getelementptr i8, ptr %m, i64 %sum\0A store i8 0, ptr %ep\0A ret ptr %m\0A}\0A\00" @.str5826 = private unnamed_addr constant [49 x i8] c"define i32 @lp_fs_append_text(ptr %p, ptr %s) {\0A\00" @.str5827 = private unnamed_addr constant [119 x i8] c"entry:\0A %f = call ptr @fopen(ptr %p, ptr @fn_str_ab)\0A %nz = icmp ne ptr %f, null\0A br i1 %nz, label %ok, label %bad\0A\00" @.str5828 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str5829 = private unnamed_addr constant [128 x i8] c"ok:\0A %n = call i64 @strlen(ptr %s)\0A call i64 @fwrite(ptr %s, i64 1, i64 %n, ptr %f)\0A call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\00" @.str5830 = private unnamed_addr constant [36 x i8] c"define i32 @lp_fs_remove(ptr %p) {\0A\00" @.str5831 = private unnamed_addr constant [107 x i8] c"entry:\0A %r = call i32 @remove(ptr %p)\0A %ok = icmp eq i32 %r, 0\0A %z = zext i1 %ok to i32\0A ret i32 %z\0A}\0A\00" @.str5832 = private unnamed_addr constant [46 x i8] c"define i32 @lp_fs_copy(ptr %src, ptr %dst) {\0A\00" @.str5833 = private unnamed_addr constant [145 x i8] c"entry:\0A %lp = alloca i32\0A %buf = call ptr @lp_fs_readall(ptr %src, ptr %lp)\0A %nz = icmp ne ptr %buf, null\0A br i1 %nz, label %ok, label %bad\0A\00" @.str5834 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str5835 = private unnamed_addr constant [185 x i8] c"ok:\0A %tmp = call ptr @lp_path_join_ext(ptr %dst, ptr @fn_str_dottmp)\0A %f = call ptr @fopen(ptr %tmp, ptr @fn_str_wb)\0A %fnz = icmp ne ptr %f, null\0A br i1 %fnz, label %w, label %bad\0A\00" @.str5836 = private unnamed_addr constant [255 x i8] c"w:\0A %n = load i32, ptr %lp\0A %nz64 = zext i32 %n to i64\0A call i64 @fwrite(ptr %buf, i64 1, i64 %nz64, ptr %f)\0A call i32 @fclose(ptr %f)\0A %rr = call i32 @rename(ptr %tmp, ptr %dst)\0A %ok2 = icmp eq i32 %rr, 0\0A %z = zext i1 %ok2 to i32\0A ret i32 %z\0A}\0A\00" @.str5837 = private unnamed_addr constant [35 x i8] c"define i32 @lp_fs_mkdir(ptr %p) {\0A\00" @.str5838 = private unnamed_addr constant [105 x i8] c"entry:\0A %dup = call ptr @lp_fs_strdup(ptr %p)\0A %ip = alloca i32\0A store i32 1, ptr %ip\0A br label %lp\0A\00" @.str5839 = private unnamed_addr constant [183 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %pp = getelementptr i8, ptr %dup, i32 %i\0A %c = load i8, ptr %pp\0A %ci = zext i8 %c to i32\0A %z = icmp eq i32 %ci, 0\0A br i1 %z, label %fin, label %go\0A\00" @.str5840 = private unnamed_addr constant [68 x i8] c"go:\0A %sl = icmp eq i32 %ci, 47\0A br i1 %sl, label %cut, label %nx\0A\00" @.str5841 = private unnamed_addr constant [103 x i8] c"cut:\0A store i8 0, ptr %pp\0A call i32 @mkdir(ptr %dup, i32 493)\0A store i8 47, ptr %pp\0A br label %nx\0A\00" @.str5842 = private unnamed_addr constant [67 x i8] c"nx:\0A %i1 = add i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %lp\0A\00" @.str5843 = private unnamed_addr constant [96 x i8] c"fin:\0A call i32 @mkdir(ptr %dup, i32 493)\0A %r = call i32 @lp_fs_is_dir(ptr %p)\0A ret i32 %r\0A}\0A\00" @.str5844 = private unnamed_addr constant [37 x i8] c"define ptr @lp_fs_list(ptr %path) {\0A\00" @.str5845 = private unnamed_addr constant [223 x i8] c"entry:\0A %h = call ptr @malloc(i64 16)\0A %d0 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 0\0A %d1 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 1\0A %d2 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 2\0A\00" @.str5846 = private unnamed_addr constant [182 x i8] c" %datap = alloca ptr\0A %cntp = alloca i32\0A %capp = alloca i32\0A %init = call ptr @malloc(i64 128)\0A store ptr %init, ptr %datap\0A store i32 0, ptr %cntp\0A store i32 16, ptr %capp\0A\00" @.str5847 = private unnamed_addr constant [109 x i8] c" %dir = call ptr @opendir(ptr %path)\0A %dnz = icmp ne ptr %dir, null\0A br i1 %dnz, label %rd, label %empty\0A\00" @.str5848 = private unnamed_addr constant [114 x i8] c"rd:\0A %de = call ptr @readdir(ptr %dir)\0A %denz = icmp ne ptr %de, null\0A br i1 %denz, label %ent, label %closed\0A\00" @.str5849 = private unnamed_addr constant [51 x i8] c"ent:\0A %namep = getelementptr i8, ptr %de, i32 21\0A\00" @.str5850 = private unnamed_addr constant [135 x i8] c" %n0 = load i8, ptr %namep\0A %n0i = zext i8 %n0 to i32\0A %isdot0 = icmp eq i32 %n0i, 46\0A br i1 %isdot0, label %chkdots, label %keep\0A\00" @.str5851 = private unnamed_addr constant [176 x i8] c"chkdots:\0A %n1p = getelementptr i8, ptr %namep, i32 1\0A %n1 = load i8, ptr %n1p\0A %n1i = zext i8 %n1 to i32\0A %n1z = icmp eq i32 %n1i, 0\0A br i1 %n1z, label %rd, label %chkdd\0A\00" @.str5852 = private unnamed_addr constant [85 x i8] c"chkdd:\0A %isdot1 = icmp eq i32 %n1i, 46\0A br i1 %isdot1, label %chkdd2, label %keep\0A\00" @.str5853 = private unnamed_addr constant [174 x i8] c"chkdd2:\0A %n2p = getelementptr i8, ptr %namep, i32 2\0A %n2 = load i8, ptr %n2p\0A %n2i = zext i8 %n2 to i32\0A %n2z = icmp eq i32 %n2i, 0\0A br i1 %n2z, label %rd, label %keep\0A\00" @.str5854 = private unnamed_addr constant [50 x i8] c"keep:\0A %nm = call ptr @lp_fs_strdup(ptr %namep)\0A\00" @.str5855 = private unnamed_addr constant [132 x i8] c" %cnt = load i32, ptr %cntp\0A %cap = load i32, ptr %capp\0A %full = icmp sge i32 %cnt, %cap\0A br i1 %full, label %grow, label %put\0A\00" @.str5856 = private unnamed_addr constant [232 x i8] c"grow:\0A %nc = mul i32 %cap, 2\0A store i32 %nc, ptr %capp\0A %ncz = zext i32 %nc to i64\0A %nb = mul i64 %ncz, 8\0A %old = load ptr, ptr %datap\0A %new = call ptr @realloc(ptr %old, i64 %nb)\0A store ptr %new, ptr %datap\0A br label %put\0A\00" @.str5857 = private unnamed_addr constant [215 x i8] c"put:\0A %data = load ptr, ptr %datap\0A %cnt2 = load i32, ptr %cntp\0A %slot = getelementptr ptr, ptr %data, i32 %cnt2\0A store ptr %nm, ptr %slot\0A %cnt3 = add i32 %cnt2, 1\0A store i32 %cnt3, ptr %cntp\0A br label %rd\0A\00" @.str5858 = private unnamed_addr constant [59 x i8] c"closed:\0A call i32 @closedir(ptr %dir)\0A br label %sortit\0A\00" @.str5859 = private unnamed_addr constant [27 x i8] c"empty:\0A br label %sortit\0A\00" @.str5860 = private unnamed_addr constant [130 x i8] c"sortit:\0A %fdata = load ptr, ptr %datap\0A %fcnt = load i32, ptr %cntp\0A %aip = alloca i32\0A store i32 1, ptr %aip\0A br label %so\0A\00" @.str5861 = private unnamed_addr constant [104 x i8] c"so:\0A %ai = load i32, ptr %aip\0A %ailt = icmp slt i32 %ai, %fcnt\0A br i1 %ailt, label %sob, label %sod\0A\00" @.str5862 = private unnamed_addr constant [166 x i8] c"sob:\0A %kp = getelementptr ptr, ptr %fdata, i32 %ai\0A %key = load ptr, ptr %kp\0A %jp = alloca i32\0A %aim1 = sub i32 %ai, 1\0A store i32 %aim1, ptr %jp\0A br label %si\0A\00" @.str5863 = private unnamed_addr constant [98 x i8] c"si:\0A %jj = load i32, ptr %jp\0A %jge = icmp sge i32 %jj, 0\0A br i1 %jge, label %sic, label %sins\0A\00" @.str5864 = private unnamed_addr constant [194 x i8] c"sic:\0A %ejp = getelementptr ptr, ptr %fdata, i32 %jj\0A %ej = load ptr, ptr %ejp\0A %cmp = call i32 @strcmp(ptr %ej, ptr %key)\0A %gt = icmp sgt i32 %cmp, 0\0A br i1 %gt, label %shift, label %sins\0A\00" @.str5865 = private unnamed_addr constant [168 x i8] c"shift:\0A %j1 = add i32 %jj, 1\0A %dp1 = getelementptr ptr, ptr %fdata, i32 %j1\0A store ptr %ej, ptr %dp1\0A %jm = sub i32 %jj, 1\0A store i32 %jm, ptr %jp\0A br label %si\0A\00" @.str5866 = private unnamed_addr constant [201 x i8] c"sins:\0A %jf = load i32, ptr %jp\0A %jf1 = add i32 %jf, 1\0A %insp = getelementptr ptr, ptr %fdata, i32 %jf1\0A store ptr %key, ptr %insp\0A %ai1 = add i32 %ai, 1\0A store i32 %ai1, ptr %aip\0A br label %so\0A\00" @.str5867 = private unnamed_addr constant [103 x i8] c"sod:\0A store ptr %fdata, ptr %d0\0A store i32 %fcnt, ptr %d1\0A store i32 %fcnt, ptr %d2\0A ret ptr %h\0A}\0A\00" @.str5868 = private unnamed_addr constant [4 x i8] c"png\00" @.str5869 = private unnamed_addr constant [10 x i8] c"image/png\00" @.str5870 = private unnamed_addr constant [4 x i8] c"jpg\00" @.str5871 = private unnamed_addr constant [11 x i8] c"image/jpeg\00" @.str5872 = private unnamed_addr constant [5 x i8] c"jpeg\00" @.str5873 = private unnamed_addr constant [11 x i8] c"image/jpeg\00" @.str5874 = private unnamed_addr constant [4 x i8] c"gif\00" @.str5875 = private unnamed_addr constant [10 x i8] c"image/gif\00" @.str5876 = private unnamed_addr constant [4 x i8] c"bmp\00" @.str5877 = private unnamed_addr constant [10 x i8] c"image/bmp\00" @.str5878 = private unnamed_addr constant [5 x i8] c"webp\00" @.str5879 = private unnamed_addr constant [11 x i8] c"image/webp\00" @.str5880 = private unnamed_addr constant [4 x i8] c"svg\00" @.str5881 = private unnamed_addr constant [14 x i8] c"image/svg+xml\00" @.str5882 = private unnamed_addr constant [4 x i8] c"txt\00" @.str5883 = private unnamed_addr constant [11 x i8] c"text/plain\00" @.str5884 = private unnamed_addr constant [3 x i8] c"md\00" @.str5885 = private unnamed_addr constant [14 x i8] c"text/markdown\00" @.str5886 = private unnamed_addr constant [4 x i8] c"csv\00" @.str5887 = private unnamed_addr constant [9 x i8] c"text/csv\00" @.str5888 = private unnamed_addr constant [5 x i8] c"html\00" @.str5889 = private unnamed_addr constant [10 x i8] c"text/html\00" @.str5890 = private unnamed_addr constant [4 x i8] c"htm\00" @.str5891 = private unnamed_addr constant [10 x i8] c"text/html\00" @.str5892 = private unnamed_addr constant [4 x i8] c"css\00" @.str5893 = private unnamed_addr constant [9 x i8] c"text/css\00" @.str5894 = private unnamed_addr constant [3 x i8] c"js\00" @.str5895 = private unnamed_addr constant [16 x i8] c"text/javascript\00" @.str5896 = private unnamed_addr constant [5 x i8] c"json\00" @.str5897 = private unnamed_addr constant [17 x i8] c"application/json\00" @.str5898 = private unnamed_addr constant [4 x i8] c"xml\00" @.str5899 = private unnamed_addr constant [16 x i8] c"application/xml\00" @.str5900 = private unnamed_addr constant [4 x i8] c"zip\00" @.str5901 = private unnamed_addr constant [16 x i8] c"application/zip\00" @.str5902 = private unnamed_addr constant [4 x i8] c"pdf\00" @.str5903 = private unnamed_addr constant [16 x i8] c"application/pdf\00" @.str5904 = private unnamed_addr constant [4 x i8] c"wav\00" @.str5905 = private unnamed_addr constant [10 x i8] c"audio/wav\00" @.str5906 = private unnamed_addr constant [4 x i8] c"ogg\00" @.str5907 = private unnamed_addr constant [10 x i8] c"audio/ogg\00" @.str5908 = private unnamed_addr constant [4 x i8] c"mp3\00" @.str5909 = private unnamed_addr constant [11 x i8] c"audio/mpeg\00" @.str5910 = private unnamed_addr constant [4 x i8] c"ttf\00" @.str5911 = private unnamed_addr constant [9 x i8] c"font/ttf\00" @.str5912 = private unnamed_addr constant [4 x i8] c"otf\00" @.str5913 = private unnamed_addr constant [9 x i8] c"font/otf\00" @.str5914 = private unnamed_addr constant [6 x i8] c"ludic\00" @.str5915 = private unnamed_addr constant [13 x i8] c"text/x-ludic\00" @.str5916 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9865: index out of range: \00" @.str5917 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9865: index out of range: \00" @.str5918 = private unnamed_addr constant [25 x i8] c"application/octet-stream\00" @.str5919 = private unnamed_addr constant [44 x i8] c"@mime_tbl = private unnamed_addr constant [\00" @.str5920 = private unnamed_addr constant [19 x i8] c" x { ptr, ptr }] [\00" @.str5921 = private unnamed_addr constant [3 x i8] c", \00" @.str5922 = private unnamed_addr constant [20 x i8] c"{ ptr, ptr } { ptr \00" @.str5923 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9874: index out of range: \00" @.str5924 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5925 = private unnamed_addr constant [54 x i8] c"build/cfree/selfhost.ludic:9874: index out of range: \00" @.str5926 = private unnamed_addr constant [3 x i8] c" }\00" @.str5927 = private unnamed_addr constant [3 x i8] c"]\0A\00" @.str5928 = private unnamed_addr constant [37 x i8] c"define ptr @lp_mime_of(ptr %path) {\0A\00" @.str5929 = private unnamed_addr constant [146 x i8] c"entry:\0A %ext = call ptr @lp_path_ext(ptr %path)\0A %lc = call ptr @lp_mime_lc(ptr %ext)\0A %ip = alloca i32\0A store i32 0, ptr %ip\0A br label %lp\0A\00" @.str5930 = private unnamed_addr constant [55 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %lt = icmp slt i32 %i, \00" @.str5931 = private unnamed_addr constant [39 x i8] c"\0A br i1 %lt, label %body, label %def\0A\00" @.str5932 = private unnamed_addr constant [30 x i8] c"body:\0A %kp = getelementptr [\00" @.str5933 = private unnamed_addr constant [182 x i8] c" x { ptr, ptr }], ptr @mime_tbl, i32 0, i32 %i, i32 0\0A %k = load ptr, ptr %kp\0A %c = call i32 @strcmp(ptr %lc, ptr %k)\0A %eq = icmp eq i32 %c, 0\0A br i1 %eq, label %hit, label %nx\0A\00" @.str5934 = private unnamed_addr constant [29 x i8] c"hit:\0A %vp = getelementptr [\00" @.str5935 = private unnamed_addr constant [131 x i8] c" x { ptr, ptr }], ptr @mime_tbl, i32 0, i32 %i, i32 1\0A %v = load ptr, ptr %vp\0A %r = call ptr @lp_fs_strdup(ptr %v)\0A ret ptr %r\0A\00" @.str5936 = private unnamed_addr constant [67 x i8] c"nx:\0A %i1 = add i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %lp\0A\00" @.str5937 = private unnamed_addr constant [40 x i8] c"def:\0A %d = call ptr @lp_fs_strdup(ptr \00" @.str5938 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %d\0A}\0A\00" @.str5939 = private unnamed_addr constant [34 x i8] c"define ptr @lp_mime_lc(ptr %s) {\0A\00" @.str5940 = private unnamed_addr constant [132 x i8] c"entry:\0A %l64 = call i64 @strlen(ptr %s)\0A %l = trunc i64 %l64 to i32\0A %cap = add i64 %l64, 1\0A %out = call ptr @malloc(i64 %cap)\0A\00" @.str5941 = private unnamed_addr constant [127 x i8] c" %b0 = load i8, ptr %s\0A %b0i = zext i8 %b0 to i32\0A %isdot = icmp eq i32 %b0i, 46\0A %start = select i1 %isdot, i32 1, i32 0\0A\00" @.str5942 = private unnamed_addr constant [105 x i8] c" %ip = alloca i32\0A %op = alloca i32\0A store i32 %start, ptr %ip\0A store i32 0, ptr %op\0A br label %lp\0A\00" @.str5943 = private unnamed_addr constant [182 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %pp = getelementptr i8, ptr %s, i32 %i\0A %c = load i8, ptr %pp\0A %ci = zext i8 %c to i32\0A %z = icmp eq i32 %ci, 0\0A br i1 %z, label %done, label %go\0A\00" @.str5944 = private unnamed_addr constant [378 x i8] c"go:\0A %ua = icmp uge i32 %ci, 65\0A %ub = icmp ule i32 %ci, 90\0A %up = and i1 %ua, %ub\0A %lo = add i32 %ci, 32\0A %m = select i1 %up, i32 %lo, i32 %ci\0A %mt = trunc i32 %m to i8\0A %o = load i32, ptr %op\0A %dp = getelementptr i8, ptr %out, i32 %o\0A store i8 %mt, ptr %dp\0A %o1 = add i32 %o, 1\0A store i32 %o1, ptr %op\0A %i1 = add i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %lp\0A\00" @.str5945 = private unnamed_addr constant [116 x i8] c"done:\0A %fo = load i32, ptr %op\0A %ep = getelementptr i8, ptr %out, i32 %fo\0A store i8 0, ptr %ep\0A ret ptr %out\0A}\0A\00" @.str5946 = private unnamed_addr constant [40 x i8] c"define ptr @lp_mime_sniff(ptr %path) {\0A\00" @.str5947 = private unnamed_addr constant [127 x i8] c"entry:\0A %f = call ptr @fopen(ptr %path, ptr @fn_str_rb)\0A %nz = icmp ne ptr %f, null\0A br i1 %nz, label %ok, label %fallback\0A\00" @.str5948 = private unnamed_addr constant [226 x i8] c"ok:\0A %buf = call ptr @malloc(i64 16)\0A %rd = call i64 @fread(ptr %buf, i64 1, i64 8, ptr %f)\0A call i32 @fclose(ptr %f)\0A %rdi = trunc i64 %rd to i32\0A %has4 = icmp sge i32 %rdi, 4\0A br i1 %has4, label %chk, label %fallback\0A\00" @.str5949 = private unnamed_addr constant [394 x i8] c"chk:\0A %b0p = getelementptr i8, ptr %buf, i32 0\0A %b0 = load i8, ptr %b0p\0A %b0i = zext i8 %b0 to i32\0A %b1p = getelementptr i8, ptr %buf, i32 1\0A %b1 = load i8, ptr %b1p\0A %b1i = zext i8 %b1 to i32\0A %b2p = getelementptr i8, ptr %buf, i32 2\0A %b2 = load i8, ptr %b2p\0A %b2i = zext i8 %b2 to i32\0A %b3p = getelementptr i8, ptr %buf, i32 3\0A %b3 = load i8, ptr %b3p\0A %b3i = zext i8 %b3 to i32\0A\00" @.str5950 = private unnamed_addr constant [225 x i8] c" %p0 = icmp eq i32 %b0i, 137\0A %p1 = icmp eq i32 %b1i, 80\0A %p2 = icmp eq i32 %b2i, 78\0A %p3 = icmp eq i32 %b3i, 71\0A %pa = and i1 %p0, %p1\0A %pb = and i1 %pa, %p2\0A %pc = and i1 %pb, %p3\0A br i1 %pc, label %png, label %cj\0A\00" @.str5951 = private unnamed_addr constant [72 x i8] c"png:\0A %rpng = call ptr @lp_fs_strdup(ptr @fn_sig_png)\0A ret ptr %rpng\0A\00" @.str5952 = private unnamed_addr constant [178 x i8] c"cj:\0A %j0 = icmp eq i32 %b0i, 255\0A %j1 = icmp eq i32 %b1i, 216\0A %j2 = icmp eq i32 %b2i, 255\0A %ja = and i1 %j0, %j1\0A %jb = and i1 %ja, %j2\0A br i1 %jb, label %jpg, label %cg\0A\00" @.str5953 = private unnamed_addr constant [72 x i8] c"jpg:\0A %rjpg = call ptr @lp_fs_strdup(ptr @fn_sig_jpg)\0A ret ptr %rjpg\0A\00" @.str5954 = private unnamed_addr constant [175 x i8] c"cg:\0A %g0 = icmp eq i32 %b0i, 71\0A %g1 = icmp eq i32 %b1i, 73\0A %g2 = icmp eq i32 %b2i, 70\0A %ga = and i1 %g0, %g1\0A %gb = and i1 %ga, %g2\0A br i1 %gb, label %gif, label %cp\0A\00" @.str5955 = private unnamed_addr constant [72 x i8] c"gif:\0A %rgif = call ptr @lp_fs_strdup(ptr @fn_sig_gif)\0A ret ptr %rgif\0A\00" @.str5956 = private unnamed_addr constant [234 x i8] c"cp:\0A %q0 = icmp eq i32 %b0i, 37\0A %q1 = icmp eq i32 %b1i, 80\0A %q2 = icmp eq i32 %b2i, 68\0A %q3 = icmp eq i32 %b3i, 70\0A %qa = and i1 %q0, %q1\0A %qb = and i1 %qa, %q2\0A %qc = and i1 %qb, %q3\0A br i1 %qc, label %pdf, label %fallback\0A\00" @.str5957 = private unnamed_addr constant [72 x i8] c"pdf:\0A %rpdf = call ptr @lp_fs_strdup(ptr @fn_sig_pdf)\0A ret ptr %rpdf\0A\00" @.str5958 = private unnamed_addr constant [65 x i8] c"fallback:\0A %r = call ptr @lp_mime_of(ptr %path)\0A ret ptr %r\0A}\0A\00" @.str5959 = private unnamed_addr constant [62 x i8] c"@fn_str_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str5960 = private unnamed_addr constant [62 x i8] c"@fn_str_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" @.str5961 = private unnamed_addr constant [62 x i8] c"@fn_str_ab = private unnamed_addr constant [3 x i8] c\22ab\5C00\22\0A\00" @.str5962 = private unnamed_addr constant [62 x i8] c"@fn_str_dot = private unnamed_addr constant [2 x i8] c\22.\5C00\22\0A\00" @.str5963 = private unnamed_addr constant [64 x i8] c"@fn_str_slash = private unnamed_addr constant [2 x i8] c\22/\5C00\22\0A\00" @.str5964 = private unnamed_addr constant [63 x i8] c"@fn_str_empty = private unnamed_addr constant [1 x i8] c\22\5C00\22\0A\00" @.str5965 = private unnamed_addr constant [68 x i8] c"@fn_str_dottmp = private unnamed_addr constant [5 x i8] c\22.tmp\5C00\22\0A\00" @.str5966 = private unnamed_addr constant [71 x i8] c"@fn_sig_png = private unnamed_addr constant [10 x i8] c\22image/png\5C00\22\0A\00" @.str5967 = private unnamed_addr constant [72 x i8] c"@fn_sig_jpg = private unnamed_addr constant [11 x i8] c\22image/jpeg\5C00\22\0A\00" @.str5968 = private unnamed_addr constant [71 x i8] c"@fn_sig_gif = private unnamed_addr constant [10 x i8] c\22image/gif\5C00\22\0A\00" @.str5969 = private unnamed_addr constant [77 x i8] c"@fn_sig_pdf = private unnamed_addr constant [16 x i8] c\22application/pdf\5C00\22\0A\00" @.str5970 = private unnamed_addr constant [34 x i8] c"declare i32 @open(ptr, i32, ...)\0A\00" @.str5971 = private unnamed_addr constant [25 x i8] c"declare i32 @close(i32)\0A\00" @.str5972 = private unnamed_addr constant [35 x i8] c"declare i64 @lseek(i32, i64, i32)\0A\00" @.str5973 = private unnamed_addr constant [49 x i8] c"declare ptr @mmap(ptr, i64, i32, i32, i32, i64)\0A\00" @.str5974 = private unnamed_addr constant [38 x i8] c"declare ptr @fmemopen(ptr, i64, ptr)\0A\00" @.str5975 = private unnamed_addr constant [25 x i8] c"declare i32 @chdir(ptr)\0A\00" @.str5976 = private unnamed_addr constant [45 x i8] c"declare i32 @_NSGetExecutablePath(ptr, ptr)\0A\00" @.str5977 = private unnamed_addr constant [63 x i8] c"@.pak_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str5978 = private unnamed_addr constant [73 x i8] c"@.pak_idx = private unnamed_addr constant [12 x i8] c\22packs.index\5C00\22\0A\00" @.str5979 = private unnamed_addr constant [74 x i8] c"@.pak_res = private unnamed_addr constant [13 x i8] c\22../Resources\5C00\22\0A\00" @.str5980 = private unnamed_addr constant [89 x i8] c"@.pak_appsup= private unnamed_addr constant [28 x i8] c\22Library/Application Support\5C00\22\0A\00" @.str5981 = private unnamed_addr constant [65 x i8] c"@.pak_home = private unnamed_addr constant [5 x i8] c\22HOME\5C00\22\0A\00" @.str5982 = private unnamed_addr constant [57 x i8] c"@L_pak_base = internal global [8 x ptr] zeroinitializer\0A\00" @.str5983 = private unnamed_addr constant [37 x i8] c"@L_pak_n = internal global i32 0\0A\00" @.str5984 = private unnamed_addr constant [44 x i8] c"@L_pak_splash = internal global ptr null\0A\00" @.str5985 = private unnamed_addr constant [41 x i8] c"@L_pak_splashbg = internal global i32 0\0A\00" @.str5986 = private unnamed_addr constant [42 x i8] c"declare void @splash_show(ptr, i32, i32)\0A\00" @.str5987 = private unnamed_addr constant [29 x i8] c"declare void @splash_hide()\0A\00" @.str5988 = private unnamed_addr constant [38 x i8] c"declare void @app_set_icon(ptr, i32)\0A\00" @.str5989 = private unnamed_addr constant [37 x i8] c"declare void @app_window_fixed(i32)\0A\00" @.str5990 = private unnamed_addr constant [34 x i8] c"declare i32 @win_monitor_count()\0A\00" @.str5991 = private unnamed_addr constant [42 x i8] c"declare void @app_window_to_monitor(i32)\0A\00" @.str5992 = private unnamed_addr constant [33 x i8] c"declare void @app_window_hide()\0A\00" @.str5993 = private unnamed_addr constant [33 x i8] c"declare void @app_window_show()\0A\00" @.str5994 = private unnamed_addr constant [63 x i8] c"@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] \00" @.str5995 = private unnamed_addr constant [61 x i8] c"[{ i32, ptr, ptr } { i32 101, ptr @lp_pak_boot, ptr null }]\0A\00" @.str5996 = private unnamed_addr constant [39 x i8] c"define i32 @lp_pak_mount(ptr %path) {\0A\00" @.str5997 = private unnamed_addr constant [103 x i8] c"entry:\0A %n = load i32, ptr @L_pak_n\0A %full = icmp sge i32 %n, 8\0A br i1 %full, label %no, label %op\0A\00" @.str5998 = private unnamed_addr constant [126 x i8] c"op:\0A %fd = call i32 (ptr, i32, ...) @open(ptr %path, i32 0)\0A %bad = icmp slt i32 %fd, 0\0A br i1 %bad, label %no, label %sz\0A\00" @.str5999 = private unnamed_addr constant [124 x i8] c"sz:\0A %end = call i64 @lseek(i32 %fd, i64 0, i32 2)\0A %small = icmp slt i64 %end, 32\0A br i1 %small, label %clo, label %mp\0A\00" @.str6000 = private unnamed_addr constant [80 x i8] c"mp:\0A %base = call ptr @mmap(ptr null, i64 %end, i32 1, i32 2, i32 %fd, i64 0)\0A\00" @.str6001 = private unnamed_addr constant [93 x i8] c" %mbad = icmp eq ptr %base, inttoptr (i64 -1 to ptr)\0A br i1 %mbad, label %clo, label %chk\0A\00" @.str6002 = private unnamed_addr constant [107 x i8] c"chk:\0A %m = load i32, ptr %base\0A %okm = icmp eq i32 %m, 1262571596\0A br i1 %okm, label %keep, label %clo\0A\00" @.str6003 = private unnamed_addr constant [102 x i8] c"keep:\0A %slot = getelementptr [8 x ptr], ptr @L_pak_base, i32 0, i32 %n\0A store ptr %base, ptr %slot\0A\00" @.str6004 = private unnamed_addr constant [98 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @L_pak_n\0A %c1 = call i32 @close(i32 %fd)\0A ret i32 1\0A\00" @.str6005 = private unnamed_addr constant [51 x i8] c"clo:\0A %c2 = call i32 @close(i32 %fd)\0A ret i32 0\0A\00" @.str6006 = private unnamed_addr constant [19 x i8] c"no:\0A ret i32 0\0A}\0A\00" @.str6007 = private unnamed_addr constant [35 x i8] c"define ptr @lp_pak_norm(ptr %p) {\0A\00" @.str6008 = private unnamed_addr constant [133 x i8] c"entry:\0A %c0 = load i8, ptr %p\0A %c0i = zext i8 %c0 to i32\0A %isdot = icmp eq i32 %c0i, 46\0A br i1 %isdot, label %chk2, label %same\0A\00" @.str6009 = private unnamed_addr constant [171 x i8] c"chk2:\0A %p1 = getelementptr i8, ptr %p, i32 1\0A %c1 = load i8, ptr %p1\0A %c1i = zext i8 %c1 to i32\0A %issl = icmp eq i32 %c1i, 47\0A br i1 %issl, label %skip, label %same\0A\00" @.str6010 = private unnamed_addr constant [98 x i8] c"skip:\0A %p2 = getelementptr i8, ptr %p, i32 2\0A %r = call ptr @lp_pak_norm(ptr %p2)\0A ret ptr %r\0A\00" @.str6011 = private unnamed_addr constant [22 x i8] c"same:\0A ret ptr %p\0A}\0A\00" @.str6012 = private unnamed_addr constant [63 x i8] c"define ptr @lp_pak_find1(ptr %base, ptr %name, ptr %outlen) {\0A\00" @.str6013 = private unnamed_addr constant [82 x i8] c"entry:\0A %cntp = getelementptr i8, ptr %base, i32 8\0A %cnt = load i32, ptr %cntp\0A\00" @.str6014 = private unnamed_addr constant [132 x i8] c" %lop = alloca i32\0A %hip = alloca i32\0A store i32 0, ptr %lop\0A %h0 = sub i32 %cnt, 1\0A store i32 %h0, ptr %hip\0A br label %loop\0A\00" @.str6015 = private unnamed_addr constant [130 x i8] c"loop:\0A %lo = load i32, ptr %lop\0A %hi = load i32, ptr %hip\0A %fin = icmp sgt i32 %lo, %hi\0A br i1 %fin, label %miss, label %mid\0A\00" @.str6016 = private unnamed_addr constant [150 x i8] c"mid:\0A %sum = add i32 %lo, %hi\0A %m = sdiv i32 %sum, 2\0A %eo = mul i32 %m, 16\0A %eo2 = add i32 %eo, 32\0A %ep = getelementptr i8, ptr %base, i32 %eo2\0A\00" @.str6017 = private unnamed_addr constant [124 x i8] c" %noff = load i32, ptr %ep\0A %nptr = getelementptr i8, ptr %base, i32 %noff\0A %c = call i32 @strcmp(ptr %nptr, ptr %name)\0A\00" @.str6018 = private unnamed_addr constant [67 x i8] c" %iseq = icmp eq i32 %c, 0\0A br i1 %iseq, label %hit, label %cmp\0A\00" @.str6019 = private unnamed_addr constant [71 x i8] c"cmp:\0A %lt = icmp slt i32 %c, 0\0A br i1 %lt, label %goup, label %godn\0A\00" @.str6020 = private unnamed_addr constant [72 x i8] c"goup:\0A %m1 = add i32 %m, 1\0A store i32 %m1, ptr %lop\0A br label %loop\0A\00" @.str6021 = private unnamed_addr constant [72 x i8] c"godn:\0A %m2 = sub i32 %m, 1\0A store i32 %m2, ptr %hip\0A br label %loop\0A\00" @.str6022 = private unnamed_addr constant [148 x i8] c"hit:\0A %dop = getelementptr i8, ptr %ep, i32 4\0A %doff = load i32, ptr %dop\0A %dlp = getelementptr i8, ptr %ep, i32 8\0A %dlen = load i32, ptr %dlp\0A\00" @.str6023 = private unnamed_addr constant [93 x i8] c" store i32 %dlen, ptr %outlen\0A %dp = getelementptr i8, ptr %base, i32 %doff\0A ret ptr %dp\0A\00" @.str6024 = private unnamed_addr constant [24 x i8] c"miss:\0A ret ptr null\0A}\0A\00" @.str6025 = private unnamed_addr constant [51 x i8] c"define ptr @lp_pak_find(ptr %path, ptr %outlen) {\0A\00" @.str6026 = private unnamed_addr constant [79 x i8] c"entry:\0A %p = call ptr @lp_pak_norm(ptr %path)\0A %np = load i32, ptr @L_pak_n\0A\00" @.str6027 = private unnamed_addr constant [85 x i8] c" %ip = alloca i32\0A %i0 = sub i32 %np, 1\0A store i32 %i0, ptr %ip\0A br label %loop\0A\00" @.str6028 = private unnamed_addr constant [101 x i8] c"loop:\0A %i = load i32, ptr %ip\0A %done = icmp slt i32 %i, 0\0A br i1 %done, label %miss, label %body\0A\00" @.str6029 = private unnamed_addr constant [103 x i8] c"body:\0A %slot = getelementptr [8 x ptr], ptr @L_pak_base, i32 0, i32 %i\0A %base = load ptr, ptr %slot\0A\00" @.str6030 = private unnamed_addr constant [131 x i8] c" %r = call ptr @lp_pak_find1(ptr %base, ptr %p, ptr %outlen)\0A %hit = icmp ne ptr %r, null\0A br i1 %hit, label %got, label %next\0A\00" @.str6031 = private unnamed_addr constant [19 x i8] c"got:\0A ret ptr %r\0A\00" @.str6032 = private unnamed_addr constant [71 x i8] c"next:\0A %i1 = sub i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %loop\0A\00" @.str6033 = private unnamed_addr constant [24 x i8] c"miss:\0A ret ptr null\0A}\0A\00" @.str6034 = private unnamed_addr constant [37 x i8] c"define i32 @lp_pak_has(ptr %path) {\0A\00" @.str6035 = private unnamed_addr constant [99 x i8] c"entry:\0A %lp = alloca i32\0A store i32 0, ptr %lp\0A %b = call ptr @lp_pak_find(ptr %path, ptr %lp)\0A\00" @.str6036 = private unnamed_addr constant [82 x i8] c" %hit = icmp ne ptr %b, null\0A %r = select i1 %hit, i32 1, i32 0\0A ret i32 %r\0A}\0A\00" @.str6037 = private unnamed_addr constant [39 x i8] c"define i32 @lp_pak_bytes(ptr %path) {\0A\00" @.str6038 = private unnamed_addr constant [99 x i8] c"entry:\0A %lp = alloca i32\0A store i32 0, ptr %lp\0A %b = call ptr @lp_pak_find(ptr %path, ptr %lp)\0A\00" @.str6039 = private unnamed_addr constant [67 x i8] c" %hit = icmp ne ptr %b, null\0A br i1 %hit, label %yes, label %no\0A\00" @.str6040 = private unnamed_addr constant [44 x i8] c"yes:\0A %l = load i32, ptr %lp\0A ret i32 %l\0A\00" @.str6041 = private unnamed_addr constant [20 x i8] c"no:\0A ret i32 -1\0A}\0A\00" @.str6042 = private unnamed_addr constant [49 x i8] c"define ptr @lp_pak_open(ptr %path, ptr %mode) {\0A\00" @.str6043 = private unnamed_addr constant [132 x i8] c"entry:\0A %m0 = load i8, ptr %mode\0A %m0i = zext i8 %m0 to i32\0A %isr = icmp eq i32 %m0i, 114\0A br i1 %isr, label %try, label %real\0A\00" @.str6044 = private unnamed_addr constant [100 x i8] c"try:\0A %lp = alloca i32\0A store i32 0, ptr %lp\0A %blob = call ptr @lp_pak_find(ptr %path, ptr %lp)\0A\00" @.str6045 = private unnamed_addr constant [72 x i8] c" %hit = icmp ne ptr %blob, null\0A br i1 %hit, label %mem, label %real\0A\00" @.str6046 = private unnamed_addr constant [135 x i8] c"mem:\0A %len = load i32, ptr %lp\0A %lz = zext i32 %len to i64\0A %f = call ptr @fmemopen(ptr %blob, i64 %lz, ptr @.pak_rb)\0A ret ptr %f\0A\00" @.str6047 = private unnamed_addr constant [69 x i8] c"real:\0A %rf = call ptr @fopen(ptr %path, ptr %mode)\0A ret ptr %rf\0A}\0A\00" @.str6048 = private unnamed_addr constant [39 x i8] c"define ptr @lp_pak_slurp(ptr %path) {\0A\00" @.str6049 = private unnamed_addr constant [121 x i8] c"entry:\0A %f = call ptr @fopen(ptr %path, ptr @.pak_rb)\0A %bad = icmp eq ptr %f, null\0A br i1 %bad, label %no, label %go\0A\00" @.str6050 = private unnamed_addr constant [130 x i8] c"go:\0A %s1 = call i32 @fseek(ptr %f, i64 0, i32 2)\0A %n64 = call i64 @ftell(ptr %f)\0A %s2 = call i32 @fseek(ptr %f, i64 0, i32 0)\0A\00" @.str6051 = private unnamed_addr constant [121 x i8] c" %cap = add i64 %n64, 1\0A %buf = call ptr @malloc(i64 %cap)\0A %rd = call i64 @fread(ptr %buf, i64 1, i64 %n64, ptr %f)\0A\00" @.str6052 = private unnamed_addr constant [112 x i8] c" %e = getelementptr i8, ptr %buf, i64 %rd\0A store i8 0, ptr %e\0A %c = call i32 @fclose(ptr %f)\0A ret ptr %buf\0A\00" @.str6053 = private unnamed_addr constant [22 x i8] c"no:\0A ret ptr null\0A}\0A\00" @.str6054 = private unnamed_addr constant [41 x i8] c"define i32 @lp_pak_boot_dir(ptr %dir) {\0A\00" @.str6055 = private unnamed_addr constant [105 x i8] c"entry:\0A %ix = call ptr @lp_path_join(ptr %dir, ptr @.pak_idx)\0A %txt = call ptr @lp_pak_slurp(ptr %ix)\0A\00" @.str6056 = private unnamed_addr constant [72 x i8] c" %none = icmp eq ptr %txt, null\0A br i1 %none, label %no, label %scan\0A\00" @.str6057 = private unnamed_addr constant [129 x i8] c"scan:\0A %ip = alloca i32\0A %got = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %got\0A %jp = alloca i32\0A br label %line\0A\00" @.str6058 = private unnamed_addr constant [128 x i8] c"line:\0A %i = load i32, ptr %ip\0A %lp = getelementptr i8, ptr %txt, i32 %i\0A %c0 = load i8, ptr %lp\0A %c0i = zext i8 %c0 to i32\0A\00" @.str6059 = private unnamed_addr constant [71 x i8] c" %atend = icmp eq i32 %c0i, 0\0A br i1 %atend, label %fin, label %eol\0A\00" @.str6060 = private unnamed_addr constant [48 x i8] c"eol:\0A store i32 %i, ptr %jp\0A br label %escan\0A\00" @.str6061 = private unnamed_addr constant [129 x i8] c"escan:\0A %j = load i32, ptr %jp\0A %jq = getelementptr i8, ptr %txt, i32 %j\0A %cj = load i8, ptr %jq\0A %cji = zext i8 %cj to i32\0A\00" @.str6062 = private unnamed_addr constant [130 x i8] c" %isnl = icmp eq i32 %cji, 10\0A %isz = icmp eq i32 %cji, 0\0A %stop = or i1 %isnl, %isz\0A br i1 %stop, label %ehave, label %eadv\0A\00" @.str6063 = private unnamed_addr constant [72 x i8] c"eadv:\0A %j1 = add i32 %j, 1\0A store i32 %j1, ptr %jp\0A br label %escan\0A\00" @.str6064 = private unnamed_addr constant [156 x i8] c"ehave:\0A %je = load i32, ptr %jp\0A %jep = getelementptr i8, ptr %txt, i32 %je\0A store i8 0, ptr %jep\0A %nexti = add i32 %je, 1\0A store i32 %nexti, ptr %ip\0A\00" @.str6065 = private unnamed_addr constant [177 x i8] c" %ln = getelementptr i8, ptr %txt, i32 %i\0A %isp = call i32 @strncmp(ptr %ln, ptr @.pak_kw_pack, i64 5)\0A %pk = icmp eq i32 %isp, 0\0A br i1 %pk, label %dopack, label %chkhome\0A\00" @.str6066 = private unnamed_addr constant [144 x i8] c"dopack:\0A %pv = getelementptr i8, ptr %ln, i32 5\0A %full = call ptr @lp_path_join(ptr %dir, ptr %pv)\0A %ok = call i32 @lp_pak_mount(ptr %full)\0A\00" @.str6067 = private unnamed_addr constant [94 x i8] c" %g = load i32, ptr %got\0A %g1 = add i32 %g, %ok\0A store i32 %g1, ptr %got\0A br label %line\0A\00" @.str6068 = private unnamed_addr constant [143 x i8] c"chkhome:\0A %ish = call i32 @strncmp(ptr %ln, ptr @.pak_kw_home, i64 5)\0A %hm = icmp eq i32 %ish, 0\0A br i1 %hm, label %dohome, label %chkspbg\0A\00" @.str6069 = private unnamed_addr constant [104 x i8] c"dohome:\0A %hv = getelementptr i8, ptr %ln, i32 5\0A call void @lp_pak_sethome(ptr %hv)\0A br label %line\0A\00" @.str6070 = private unnamed_addr constant [141 x i8] c"chkspbg:\0A %isb = call i32 @strncmp(ptr %ln, ptr @.pak_kw_spbg, i64 9)\0A %bg = icmp eq i32 %isb, 0\0A br i1 %bg, label %dospbg, label %chksp\0A\00" @.str6071 = private unnamed_addr constant [136 x i8] c"dospbg:\0A %bv = getelementptr i8, ptr %ln, i32 9\0A %bi = call i32 @atoi(ptr %bv)\0A store i32 %bi, ptr @L_pak_splashbg\0A br label %line\0A\00" @.str6072 = private unnamed_addr constant [138 x i8] c"chksp:\0A %isS = call i32 @strncmp(ptr %ln, ptr @.pak_kw_splash, i64 7)\0A %sp = icmp eq i32 %isS, 0\0A br i1 %sp, label %dosp, label %line\0A\00" @.str6073 = private unnamed_addr constant [100 x i8] c"dosp:\0A %sv = getelementptr i8, ptr %ln, i32 7\0A store ptr %sv, ptr @L_pak_splash\0A br label %line\0A\00" @.str6074 = private unnamed_addr constant [47 x i8] c"fin:\0A %gf = load i32, ptr %got\0A ret i32 %gf\0A\00" @.str6075 = private unnamed_addr constant [19 x i8] c"no:\0A ret i32 0\0A}\0A\00" @.str6076 = private unnamed_addr constant [71 x i8] c"@.pak_kw_pack = private unnamed_addr constant [6 x i8] c\22pack \5C00\22\0A\00" @.str6077 = private unnamed_addr constant [71 x i8] c"@.pak_kw_home = private unnamed_addr constant [6 x i8] c\22home \5C00\22\0A\00" @.str6078 = private unnamed_addr constant [73 x i8] c"@.pak_kw_splash = private unnamed_addr constant [8 x i8] c\22splash \5C00\22\0A\00" @.str6079 = private unnamed_addr constant [75 x i8] c"@.pak_kw_spbg = private unnamed_addr constant [10 x i8] c\22splashbg \5C00\22\0A\00" @.str6080 = private unnamed_addr constant [42 x i8] c"define void @lp_pak_sethome(ptr %name) {\0A\00" @.str6081 = private unnamed_addr constant [115 x i8] c"entry:\0A %h = call ptr @getenv(ptr @.pak_appdata)\0A %nh = icmp eq ptr %h, null\0A br i1 %nh, label %out, label %go\0A\00" @.str6082 = private unnamed_addr constant [90 x i8] c"go:\0A %b = call ptr @lp_path_join(ptr %h, ptr %name)\0A call void @lp_win_slashes(ptr %b)\0A\00" @.str6083 = private unnamed_addr constant [112 x i8] c"entry:\0A %h = call ptr @getenv(ptr @.pak_home)\0A %nh = icmp eq ptr %h, null\0A br i1 %nh, label %out, label %go\0A\00" @.str6084 = private unnamed_addr constant [110 x i8] c"go:\0A %a = call ptr @lp_path_join(ptr %h, ptr @.pak_appsup)\0A %b = call ptr @lp_path_join(ptr %a, ptr %name)\0A\00" @.str6085 = private unnamed_addr constant [90 x i8] c" %mk = call i32 @mkdir(ptr %b, i32 493)\0A %cd = call i32 @chdir(ptr %b)\0A br label %out\0A\00" @.str6086 = private unnamed_addr constant [19 x i8] c"out:\0A ret void\0A}\0A\00" @.str6087 = private unnamed_addr constant [70 x i8] c"@.pak_appdata = private unnamed_addr constant [8 x i8] c\22APPDATA\5C00\22\0A\00" @.str6088 = private unnamed_addr constant [30 x i8] c"define void @lp_pak_boot() {\0A\00" @.str6089 = private unnamed_addr constant [83 x i8] c"entry:\0A %buf = alloca [1024 x i8]\0A %szp = alloca i32\0A store i32 1024, ptr %szp\0A\00" @.str6090 = private unnamed_addr constant [124 x i8] c" %rc = call i32 @_NSGetExecutablePath(ptr %buf, ptr %szp)\0A %bad = icmp ne i32 %rc, 0\0A br i1 %bad, label %out, label %go\0A\00" @.str6091 = private unnamed_addr constant [103 x i8] c"go:\0A %dir = call ptr @lp_path_dir(ptr %buf)\0A %res = call ptr @lp_path_join(ptr %dir, ptr @.pak_res)\0A\00" @.str6092 = private unnamed_addr constant [115 x i8] c" %n1 = call i32 @lp_pak_boot_dir(ptr %res)\0A %any = icmp sgt i32 %n1, 0\0A br i1 %any, label %splash, label %try2\0A\00" @.str6093 = private unnamed_addr constant [70 x i8] c"try2:\0A %n2 = call i32 @lp_pak_boot_dir(ptr %dir)\0A br label %splash\0A\00" @.str6094 = private unnamed_addr constant [9 x i8] c"splash:\0A\00" @.str6095 = private unnamed_addr constant [33 x i8] c" call void @lp_pak_splash_go()\0A\00" @.str6096 = private unnamed_addr constant [17 x i8] c" br label %out\0A\00" @.str6097 = private unnamed_addr constant [19 x i8] c"out:\0A ret void\0A}\0A\00" @.str6098 = private unnamed_addr constant [35 x i8] c"define void @lp_pak_splash_go() {\0A\00" @.str6099 = private unnamed_addr constant [115 x i8] c"entry:\0A %sp = load ptr, ptr @L_pak_splash\0A %none = icmp eq ptr %sp, null\0A br i1 %none, label %out, label %find\0A\00" @.str6100 = private unnamed_addr constant [99 x i8] c"find:\0A %lp = alloca i32\0A store i32 0, ptr %lp\0A %blob = call ptr @lp_pak_find(ptr %sp, ptr %lp)\0A\00" @.str6101 = private unnamed_addr constant [74 x i8] c" %miss = icmp eq ptr %blob, null\0A br i1 %miss, label %out, label %show\0A\00" @.str6102 = private unnamed_addr constant [72 x i8] c"show:\0A %len = load i32, ptr %lp\0A %bg = load i32, ptr @L_pak_splashbg\0A\00" @.str6103 = private unnamed_addr constant [72 x i8] c" call void @splash_show(ptr %blob, i32 %len, i32 %bg)\0A br label %out\0A\00" @.str6104 = private unnamed_addr constant [19 x i8] c"out:\0A ret void\0A}\0A\00" @.str6105 = private unnamed_addr constant [39 x i8] c"define void @lp_app_icon(ptr %path) {\0A\00" @.str6106 = private unnamed_addr constant [128 x i8] c"entry:\0A %f = call ptr @lp_pak_open(ptr %path, ptr @.pak_rb)\0A %bad = icmp eq ptr %f, null\0A br i1 %bad, label %out, label %go\0A\00" @.str6107 = private unnamed_addr constant [130 x i8] c"go:\0A %s1 = call i32 @fseek(ptr %f, i64 0, i32 2)\0A %n64 = call i64 @ftell(ptr %f)\0A %s2 = call i32 @fseek(ptr %f, i64 0, i32 0)\0A\00" @.str6108 = private unnamed_addr constant [72 x i8] c" %tiny = icmp sle i64 %n64, 0\0A br i1 %tiny, label %shut, label %read\0A\00" @.str6109 = private unnamed_addr constant [102 x i8] c"read:\0A %buf = call ptr @malloc(i64 %n64)\0A %rd = call i64 @fread(ptr %buf, i64 1, i64 %n64, ptr %f)\0A\00" @.str6110 = private unnamed_addr constant [64 x i8] c" %c1 = call i32 @fclose(ptr %f)\0A %n32 = trunc i64 %rd to i32\0A\00" @.str6111 = private unnamed_addr constant [86 x i8] c" call void @app_set_icon(ptr %buf, i32 %n32)\0A call void @free(ptr %buf)\0A ret void\0A\00" @.str6112 = private unnamed_addr constant [51 x i8] c"shut:\0A %c2 = call i32 @fclose(ptr %f)\0A ret void\0A\00" @.str6113 = private unnamed_addr constant [19 x i8] c"out:\0A ret void\0A}\0A\00" @.str6114 = private unnamed_addr constant [35 x i8] c"declare ptr @__acrt_iob_func(i32)\0A\00" @.str6115 = private unnamed_addr constant [33 x i8] c"declare i32 @_setmode(i32, i32)\0A\00" @.str6116 = private unnamed_addr constant [37 x i8] c"declare ptr @_fsopen(ptr, ptr, i32)\0A\00" @.str6117 = private unnamed_addr constant [29 x i8] c"declare i64 @_ftelli64(ptr)\0A\00" @.str6118 = private unnamed_addr constant [39 x i8] c"declare i32 @_fseeki64(ptr, i64, i32)\0A\00" @.str6119 = private unnamed_addr constant [27 x i8] c"declare i64 @_time64(ptr)\0A\00" @.str6120 = private unnamed_addr constant [32 x i8] c"declare i32 @_access(ptr, i32)\0A\00" @.str6121 = private unnamed_addr constant [26 x i8] c"declare i32 @_mkdir(ptr)\0A\00" @.str6122 = private unnamed_addr constant [26 x i8] c"declare i32 @_chdir(ptr)\0A\00" @.str6123 = private unnamed_addr constant [24 x i8] c"declare i32 @_getpid()\0A\00" @.str6124 = private unnamed_addr constant [35 x i8] c"declare i32 @_open(ptr, i32, ...)\0A\00" @.str6125 = private unnamed_addr constant [26 x i8] c"declare i32 @_close(i32)\0A\00" @.str6126 = private unnamed_addr constant [39 x i8] c"declare i64 @_lseeki64(i32, i64, i32)\0A\00" @.str6127 = private unnamed_addr constant [34 x i8] c"declare i32 @_putenv_s(ptr, ptr)\0A\00" @.str6128 = private unnamed_addr constant [34 x i8] c"declare i64 @_get_osfhandle(i32)\0A\00" @.str6129 = private unnamed_addr constant [40 x i8] c"declare i32 @_open_osfhandle(i64, i32)\0A\00" @.str6130 = private unnamed_addr constant [32 x i8] c"declare ptr @_fdopen(i32, ptr)\0A\00" @.str6131 = private unnamed_addr constant [41 x i8] c"declare i32 @MoveFileExA(ptr, ptr, i32)\0A\00" @.str6132 = private unnamed_addr constant [31 x i8] c"declare i32 @DeleteFileA(ptr)\0A\00" @.str6133 = private unnamed_addr constant [36 x i8] c"declare i32 @RemoveDirectoryA(ptr)\0A\00" @.str6134 = private unnamed_addr constant [39 x i8] c"declare ptr @FindFirstFileA(ptr, ptr)\0A\00" @.str6135 = private unnamed_addr constant [38 x i8] c"declare i32 @FindNextFileA(ptr, ptr)\0A\00" @.str6136 = private unnamed_addr constant [29 x i8] c"declare i32 @FindClose(ptr)\0A\00" @.str6137 = private unnamed_addr constant [63 x i8] c"declare ptr @CreateFileMappingA(ptr, ptr, i32, i32, i32, ptr)\0A\00" @.str6138 = private unnamed_addr constant [53 x i8] c"declare ptr @MapViewOfFile(ptr, i32, i32, i32, i64)\0A\00" @.str6139 = private unnamed_addr constant [31 x i8] c"declare i32 @CloseHandle(ptr)\0A\00" @.str6140 = private unnamed_addr constant [48 x i8] c"declare i32 @GetModuleFileNameA(ptr, ptr, i32)\0A\00" @.str6141 = private unnamed_addr constant [37 x i8] c"declare i32 @GetTempPathA(i32, ptr)\0A\00" @.str6142 = private unnamed_addr constant [51 x i8] c"declare i32 @GetTempFileNameA(ptr, ptr, i32, ptr)\0A\00" @.str6143 = private unnamed_addr constant [61 x i8] c"declare ptr @CreateFileA(ptr, i32, i32, ptr, i32, i32, ptr)\0A\00" @.str6144 = private unnamed_addr constant [49 x i8] c"declare i32 @WriteFile(ptr, ptr, i32, ptr, ptr)\0A\00" @.str6145 = private unnamed_addr constant [49 x i8] c"declare i32 @SetFilePointer(ptr, i32, ptr, i32)\0A\00" @.str6146 = private unnamed_addr constant [65 x i8] c"@.win_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str6147 = private unnamed_addr constant [66 x i8] c"@.win_lpk = private unnamed_addr constant [4 x i8] c\22lpk\5C00\22\0A\00" @.str6148 = private unnamed_addr constant [63 x i8] c"@.win_empty = private unnamed_addr constant [1 x i8] c\22\5C00\22\0A\00" @.str6149 = private unnamed_addr constant [70 x i8] c"@.win_windows = private unnamed_addr constant [8 x i8] c\22Windows\5C00\22\0A\00" @.str6150 = private unnamed_addr constant [69 x i8] c"@.win_x64 = private unnamed_addr constant [7 x i8] c\22x86_64\5C00\22\0A\00" @.str6151 = private unnamed_addr constant [48 x i8] c"define internal void @lp_win_slashes(ptr %s) {\0A\00" @.str6152 = private unnamed_addr constant [23 x i8] c"entry:\0A br label %lp\0A\00" @.str6153 = private unnamed_addr constant [132 x i8] c"lp:\0A %p = phi ptr [ %s, %entry ], [ %p1, %nx ]\0A %c = load i8, ptr %p\0A %z = icmp eq i8 %c, 0\0A br i1 %z, label %done, label %chk\0A\00" @.str6154 = private unnamed_addr constant [67 x i8] c"chk:\0A %bs = icmp eq i8 %c, 92\0A br i1 %bs, label %fix, label %nx\0A\00" @.str6155 = private unnamed_addr constant [43 x i8] c"fix:\0A store i8 47, ptr %p\0A br label %nx\0A\00" @.str6156 = private unnamed_addr constant [60 x i8] c"nx:\0A %p1 = getelementptr i8, ptr %p, i64 1\0A br label %lp\0A\00" @.str6157 = private unnamed_addr constant [20 x i8] c"done:\0A ret void\0A}\0A\00" @.str6158 = private unnamed_addr constant [42 x i8] c"@L_win_stdio_bin = internal global i32 0\0A\00" @.str6159 = private unnamed_addr constant [46 x i8] c"define internal ptr @lp_win_stdio(i32 %fd) {\0A\00" @.str6160 = private unnamed_addr constant [112 x i8] c"entry:\0A %b = load i32, ptr @L_win_stdio_bin\0A %done = icmp ne i32 %b, 0\0A br i1 %done, label %get, label %set\0A\00" @.str6161 = private unnamed_addr constant [148 x i8] c"set:\0A store i32 1, ptr @L_win_stdio_bin\0A %s1 = call i32 @_setmode(i32 1, i32 32768)\0A %s2 = call i32 @_setmode(i32 2, i32 32768)\0A br label %get\0A\00" @.str6162 = private unnamed_addr constant [63 x i8] c"get:\0A %f = call ptr @__acrt_iob_func(i32 %fd)\0A ret ptr %f\0A}\0A\00" @.str6163 = private unnamed_addr constant [46 x i8] c"define internal ptr @fopen(ptr %p, ptr %m) {\0A\00" @.str6164 = private unnamed_addr constant [132 x i8] c"entry:\0A %buf = alloca [8 x i8]\0A %ip = alloca i32\0A %hb = alloca i32\0A store i32 0, ptr %ip\0A store i32 0, ptr %hb\0A br label %lp\0A\00" @.str6165 = private unnamed_addr constant [213 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %src = getelementptr i8, ptr %m, i32 %i\0A %c = load i8, ptr %src\0A %z = icmp eq i8 %c, 0\0A %full = icmp sge i32 %i, 6\0A %stop = or i1 %z, %full\0A br i1 %stop, label %fin, label %cp\0A\00" @.str6166 = private unnamed_addr constant [256 x i8] c"cp:\0A %dst = getelementptr i8, ptr %buf, i32 %i\0A store i8 %c, ptr %dst\0A %isb = icmp eq i8 %c, 98\0A %hbv = load i32, ptr %hb\0A %hbn = select i1 %isb, i32 1, i32 %hbv\0A store i32 %hbn, ptr %hb\0A %i1 = add i32 %i, 1\0A store i32 %i1, ptr %ip\0A br label %lp\0A\00" @.str6167 = private unnamed_addr constant [103 x i8] c"fin:\0A %hbf = load i32, ptr %hb\0A %need = icmp eq i32 %hbf, 0\0A br i1 %need, label %addb, label %term\0A\00" @.str6168 = private unnamed_addr constant [137 x i8] c"addb:\0A %bp = getelementptr i8, ptr %buf, i32 %i\0A store i8 98, ptr %bp\0A %i2 = add i32 %i, 1\0A store i32 %i2, ptr %ip\0A br label %term\0A\00" @.str6169 = private unnamed_addr constant [165 x i8] c"term:\0A %ie = load i32, ptr %ip\0A %ep = getelementptr i8, ptr %buf, i32 %ie\0A store i8 0, ptr %ep\0A %f = call ptr @_fsopen(ptr %p, ptr %buf, i32 64)\0A ret ptr %f\0A}\0A\00" @.str6170 = private unnamed_addr constant [95 x i8] c"define internal i64 @ftell(ptr %f) {\0Aentry:\0A %r = call i64 @_ftelli64(ptr %f)\0A ret i64 %r\0A}\0A\00" @.str6171 = private unnamed_addr constant [127 x i8] c"define internal i32 @fseek(ptr %f, i64 %o, i32 %w) {\0Aentry:\0A %r = call i32 @_fseeki64(ptr %f, i64 %o, i32 %w)\0A ret i32 %r\0A}\0A\00" @.str6172 = private unnamed_addr constant [184 x i8] c"define internal i32 @rename(ptr %a, ptr %b) {\0Aentry:\0A %r = call i32 @MoveFileExA(ptr %a, ptr %b, i32 11)\0A %ok = icmp ne i32 %r, 0\0A %v = select i1 %ok, i32 0, i32 -1\0A ret i32 %v\0A}\0A\00" @.str6173 = private unnamed_addr constant [39 x i8] c"define internal i32 @remove(ptr %p) {\0A\00" @.str6174 = private unnamed_addr constant [107 x i8] c"entry:\0A %d = call i32 @DeleteFileA(ptr %p)\0A %ok = icmp ne i32 %d, 0\0A br i1 %ok, label %yes, label %dir\0A\00" @.str6175 = private unnamed_addr constant [111 x i8] c"dir:\0A %r = call i32 @RemoveDirectoryA(ptr %p)\0A %ok2 = icmp ne i32 %r, 0\0A br i1 %ok2, label %yes, label %no\0A\00" @.str6176 = private unnamed_addr constant [18 x i8] c"yes:\0A ret i32 0\0A\00" @.str6177 = private unnamed_addr constant [20 x i8] c"no:\0A ret i32 -1\0A}\0A\00" @.str6178 = private unnamed_addr constant [110 x i8] c"define internal i32 @access(ptr %p, i32 %m) {\0Aentry:\0A %r = call i32 @_access(ptr %p, i32 %m)\0A ret i32 %r\0A}\0A\00" @.str6179 = private unnamed_addr constant [103 x i8] c"define internal i32 @mkdir(ptr %p, i32 %mode) {\0Aentry:\0A %r = call i32 @_mkdir(ptr %p)\0A ret i32 %r\0A}\0A\00" @.str6180 = private unnamed_addr constant [155 x i8] c"define internal i32 @open(ptr %p, i32 %fl, ...) {\0Aentry:\0A %f2 = or i32 %fl, 32768\0A %r = call i32 (ptr, i32, ...) @_open(ptr %p, i32 %f2)\0A ret i32 %r\0A}\0A\00" @.str6181 = private unnamed_addr constant [94 x i8] c"define internal i32 @close(i32 %fd) {\0Aentry:\0A %r = call i32 @_close(i32 %fd)\0A ret i32 %r\0A}\0A\00" @.str6182 = private unnamed_addr constant [129 x i8] c"define internal i64 @lseek(i32 %fd, i64 %o, i32 %w) {\0Aentry:\0A %r = call i64 @_lseeki64(i32 %fd, i64 %o, i32 %w)\0A ret i64 %r\0A}\0A\00" @.str6183 = private unnamed_addr constant [43 x i8] c"define internal ptr @opendir(ptr %path) {\0A\00" @.str6184 = private unnamed_addr constant [150 x i8] c"entry:\0A %l = call i64 @strlen(ptr %path)\0A %cap = add i64 %l, 3\0A %pat = call ptr @malloc(i64 %cap)\0A call ptr @memcpy(ptr %pat, ptr %path, i64 %l)\0A\00" @.str6185 = private unnamed_addr constant [194 x i8] c" %e0 = getelementptr i8, ptr %pat, i64 %l\0A store i8 47, ptr %e0\0A %e1 = getelementptr i8, ptr %e0, i64 1\0A store i8 42, ptr %e1\0A %e2 = getelementptr i8, ptr %e0, i64 2\0A store i8 0, ptr %e2\0A\00" @.str6186 = private unnamed_addr constant [154 x i8] c" %d = call ptr @malloc(i64 368)\0A %fd = getelementptr i8, ptr %d, i64 16\0A %h = call ptr @FindFirstFileA(ptr %pat, ptr %fd)\0A call void @free(ptr %pat)\0A\00" @.str6187 = private unnamed_addr constant [86 x i8] c" %bad = icmp eq ptr %h, inttoptr (i64 -1 to ptr)\0A br i1 %bad, label %no, label %ok\0A\00" @.str6188 = private unnamed_addr constant [46 x i8] c"no:\0A call void @free(ptr %d)\0A ret ptr null\0A\00" @.str6189 = private unnamed_addr constant [106 x i8] c"ok:\0A store ptr %h, ptr %d\0A %fl = getelementptr i8, ptr %d, i64 8\0A store i32 1, ptr %fl\0A ret ptr %d\0A}\0A\00" @.str6190 = private unnamed_addr constant [40 x i8] c"define internal ptr @readdir(ptr %d) {\0A\00" @.str6191 = private unnamed_addr constant [143 x i8] c"entry:\0A %fl = getelementptr i8, ptr %d, i64 8\0A %f = load i32, ptr %fl\0A %first = icmp ne i32 %f, 0\0A br i1 %first, label %take, label %next\0A\00" @.str6192 = private unnamed_addr constant [47 x i8] c"take:\0A store i32 0, ptr %fl\0A br label %give\0A\00" @.str6193 = private unnamed_addr constant [189 x i8] c"next:\0A %h = load ptr, ptr %d\0A %fd = getelementptr i8, ptr %d, i64 16\0A %ok = call i32 @FindNextFileA(ptr %h, ptr %fd)\0A %more = icmp ne i32 %ok, 0\0A br i1 %more, label %give, label %end\0A\00" @.str6194 = private unnamed_addr constant [62 x i8] c"give:\0A %de = getelementptr i8, ptr %d, i64 39\0A ret ptr %de\0A\00" @.str6195 = private unnamed_addr constant [23 x i8] c"end:\0A ret ptr null\0A}\0A\00" @.str6196 = private unnamed_addr constant [147 x i8] c"define internal i32 @closedir(ptr %d) {\0Aentry:\0A %h = load ptr, ptr %d\0A %r = call i32 @FindClose(ptr %h)\0A call void @free(ptr %d)\0A ret i32 0\0A}\0A\00" @.str6197 = private unnamed_addr constant [89 x i8] c"define internal ptr @mmap(ptr %a, i64 %len, i32 %prot, i32 %flags, i32 %fd, i64 %off) {\0A\00" @.str6198 = private unnamed_addr constant [166 x i8] c"entry:\0A %oh = call i64 @_get_osfhandle(i32 %fd)\0A %h = inttoptr i64 %oh to ptr\0A %m = call ptr @CreateFileMappingA(ptr %h, ptr null, i32 2, i32 0, i32 0, ptr null)\0A\00" @.str6199 = private unnamed_addr constant [66 x i8] c" %nm = icmp eq ptr %m, null\0A br i1 %nm, label %bad, label %map\0A\00" @.str6200 = private unnamed_addr constant [174 x i8] c"map:\0A %v = call ptr @MapViewOfFile(ptr %m, i32 4, i32 0, i32 0, i64 0)\0A %c = call i32 @CloseHandle(ptr %m)\0A %nv = icmp eq ptr %v, null\0A br i1 %nv, label %bad, label %ok\0A\00" @.str6201 = private unnamed_addr constant [18 x i8] c"ok:\0A ret ptr %v\0A\00" @.str6202 = private unnamed_addr constant [43 x i8] c"bad:\0A ret ptr inttoptr (i64 -1 to ptr)\0A}\0A\00" @.str6203 = private unnamed_addr constant [64 x i8] c"define internal ptr @fmemopen(ptr %buf, i64 %len, ptr %mode) {\0A\00" @.str6204 = private unnamed_addr constant [190 x i8] c"entry:\0A %dir = alloca [270 x i8]\0A %name = alloca [270 x i8]\0A %wr = alloca i32\0A %n = call i32 @GetTempPathA(i32 260, ptr %dir)\0A %z = icmp eq i32 %n, 0\0A br i1 %z, label %bad, label %mk\0A\00" @.str6205 = private unnamed_addr constant [143 x i8] c"mk:\0A %u = call i32 @GetTempFileNameA(ptr %dir, ptr @.win_lpk, i32 0, ptr %name)\0A %uz = icmp eq i32 %u, 0\0A br i1 %uz, label %bad, label %cr\0A\00" @.str6206 = private unnamed_addr constant [195 x i8] c"cr:\0A %h = call ptr @CreateFileA(ptr %name, i32 -1073741824, i32 7, ptr null, i32 2, i32 67109120, ptr null)\0A %hb = icmp eq ptr %h, inttoptr (i64 -1 to ptr)\0A br i1 %hb, label %bad, label %wrt\0A\00" @.str6207 = private unnamed_addr constant [176 x i8] c"wrt:\0A %l32 = trunc i64 %len to i32\0A %w = call i32 @WriteFile(ptr %h, ptr %buf, i32 %l32, ptr %wr, ptr null)\0A %sp = call i32 @SetFilePointer(ptr %h, i32 0, ptr null, i32 0)\0A\00" @.str6208 = private unnamed_addr constant [153 x i8] c" %hi = ptrtoint ptr %h to i64\0A %fd = call i32 @_open_osfhandle(i64 %hi, i32 32768)\0A %fdb = icmp slt i32 %fd, 0\0A br i1 %fdb, label %shut, label %fdo\0A\00" @.str6209 = private unnamed_addr constant [67 x i8] c"fdo:\0A %f = call ptr @_fdopen(i32 %fd, ptr @.win_rb)\0A ret ptr %f\0A\00" @.str6210 = private unnamed_addr constant [60 x i8] c"shut:\0A %c = call i32 @CloseHandle(ptr %h)\0A br label %bad\0A\00" @.str6211 = private unnamed_addr constant [23 x i8] c"bad:\0A ret ptr null\0A}\0A\00" @.str6212 = private unnamed_addr constant [65 x i8] c"define internal i32 @_NSGetExecutablePath(ptr %buf, ptr %szp) {\0A\00" @.str6213 = private unnamed_addr constant [221 x i8] c"entry:\0A %sz = load i32, ptr %szp\0A %n = call i32 @GetModuleFileNameA(ptr null, ptr %buf, i32 %sz)\0A %bad = icmp eq i32 %n, 0\0A %full = icmp sge i32 %n, %sz\0A %no = or i1 %bad, %full\0A br i1 %no, label %fail, label %fix\0A\00" @.str6214 = private unnamed_addr constant [56 x i8] c"fix:\0A call void @lp_win_slashes(ptr %buf)\0A ret i32 0\0A\00" @.str6215 = private unnamed_addr constant [22 x i8] c"fail:\0A ret i32 -1\0A}\0A\00" @.str6216 = private unnamed_addr constant [92 x i8] c"define internal i32 @chdir(ptr %p) {\0Aentry:\0A %r = call i32 @_chdir(ptr %p)\0A ret i32 %r\0A}\0A\00" @.str6217 = private unnamed_addr constant [82 x i8] c"define internal i32 @getpid() {\0Aentry:\0A %r = call i32 @_getpid()\0A ret i32 %r\0A}\0A\00" @.str6218 = private unnamed_addr constant [92 x i8] c"define internal i64 @time(ptr %t) {\0Aentry:\0A %r = call i64 @_time64(ptr %t)\0A ret i64 %r\0A}\0A\00" @.str6219 = private unnamed_addr constant [120 x i8] c"define internal i32 @setenv(ptr %n, ptr %v, i32 %o) {\0Aentry:\0A %r = call i32 @_putenv_s(ptr %n, ptr %v)\0A ret i32 %r\0A}\0A\00" @.str6220 = private unnamed_addr constant [115 x i8] c"define internal i32 @unsetenv(ptr %n) {\0Aentry:\0A %r = call i32 @_putenv_s(ptr %n, ptr @.win_empty)\0A ret i32 %r\0A}\0A\00" @.str6221 = private unnamed_addr constant [40 x i8] c"define internal i32 @uname(ptr %buf) {\0A\00" @.str6222 = private unnamed_addr constant [170 x i8] c"entry:\0A call ptr @memcpy(ptr %buf, ptr @.win_windows, i64 8)\0A %m = getelementptr i8, ptr %buf, i64 1024\0A call ptr @memcpy(ptr %m, ptr @.win_x64, i64 7)\0A ret i32 0\0A}\0A\00" @.str6223 = private unnamed_addr constant [12 x i8] c"USERPROFILE\00" @.str6224 = private unnamed_addr constant [8 x i8] c"APPDATA\00" @.str6225 = private unnamed_addr constant [13 x i8] c"LOCALAPPDATA\00" @.str6226 = private unnamed_addr constant [5 x i8] c"TEMP\00" @.str6227 = private unnamed_addr constant [1 x i8] c"\00" @.str6228 = private unnamed_addr constant [8 x i8] c"windows\00" @.str6229 = private unnamed_addr constant [7 x i8] c"x86_64\00" @.str6230 = private unnamed_addr constant [65 x i8] c"define ptr @lp_os_home() {\0A %r = call ptr @lp_os_getenv_or(ptr \00" @.str6231 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6232 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str6233 = private unnamed_addr constant [50 x i8] c"define ptr @lp_os_winknown(ptr %var, ptr %app) {\0A\00" @.str6234 = private unnamed_addr constant [106 x i8] c"entry:\0A %v = call ptr @getenv(ptr %var)\0A %z = icmp eq ptr %v, null\0A br i1 %z, label %home, label %use\0A\00" @.str6235 = private unnamed_addr constant [54 x i8] c"home:\0A %h = call ptr @lp_os_home()\0A br label %join\0A\00" @.str6236 = private unnamed_addr constant [23 x i8] c"use:\0A br label %join\0A\00" @.str6237 = private unnamed_addr constant [91 x i8] c"join:\0A %b = phi ptr [ %h, %home ], [ %v, %use ]\0A %r = call ptr @lp_os_join3(ptr %b, ptr \00" @.str6238 = private unnamed_addr constant [64 x i8] c", ptr %app)\0A call void @lp_win_slashes(ptr %r)\0A ret ptr %r\0A}\0A\00" @.str6239 = private unnamed_addr constant [76 x i8] c"define ptr @lp_os_save_dir(ptr %app) {\0A %r = call ptr @lp_os_winknown(ptr \00" @.str6240 = private unnamed_addr constant [28 x i8] c", ptr %app)\0A ret ptr %r\0A}\0A\00" @.str6241 = private unnamed_addr constant [78 x i8] c"define ptr @lp_os_config_dir(ptr %app) {\0A %r = call ptr @lp_os_winknown(ptr \00" @.str6242 = private unnamed_addr constant [28 x i8] c", ptr %app)\0A ret ptr %r\0A}\0A\00" @.str6243 = private unnamed_addr constant [77 x i8] c"define ptr @lp_os_cache_dir(ptr %app) {\0A %r = call ptr @lp_os_winknown(ptr \00" @.str6244 = private unnamed_addr constant [28 x i8] c", ptr %app)\0A ret ptr %r\0A}\0A\00" @.str6245 = private unnamed_addr constant [69 x i8] c"define ptr @lp_os_temp_dir() {\0A %t = call ptr @lp_os_getenv_or(ptr \00" @.str6246 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6247 = private unnamed_addr constant [44 x i8] c")\0A %r = call ptr @lp_os_join2(ptr %t, ptr \00" @.str6248 = private unnamed_addr constant [54 x i8] c")\0A call void @lp_win_slashes(ptr %r)\0A ret ptr %r\0A}\0A\00" @.str6249 = private unnamed_addr constant [42 x i8] c"define ptr @lp_os_platform() {\0A ret ptr \00" @.str6250 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" @.str6251 = private unnamed_addr constant [38 x i8] c"define ptr @lp_os_arch() {\0A ret ptr \00" @.str6252 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" @.str6253 = private unnamed_addr constant [28 x i8] c"define ptr @lp_os_args() {\0A\00" @.str6254 = private unnamed_addr constant [66 x i8] c"entry:\0A %c = load i32, ptr @L_argc\0A %v = load ptr, ptr @L_argv\0A\00" @.str6255 = private unnamed_addr constant [33 x i8] c" %h = call ptr @malloc(i64 16)\0A\00" @.str6256 = private unnamed_addr constant [86 x i8] c" %d0 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 0\0A store ptr %v, ptr %d0\0A\00" @.str6257 = private unnamed_addr constant [86 x i8] c" %d1 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 1\0A store i32 %c, ptr %d1\0A\00" @.str6258 = private unnamed_addr constant [86 x i8] c" %d2 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 2\0A store i32 %c, ptr %d2\0A\00" @.str6259 = private unnamed_addr constant [16 x i8] c" ret ptr %h\0A}\0A\00" @.str6260 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str6261 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" @.str6262 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6263 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6264 = private unnamed_addr constant [4 x i8] c"len\00" @.str6265 = private unnamed_addr constant [5 x i8] c"push\00" @.str6266 = private unnamed_addr constant [6 x i8] c"clear\00" @.str6267 = private unnamed_addr constant [7 x i8] c"sample\00" @.str6268 = private unnamed_addr constant [6 x i8] c"first\00" @.str6269 = private unnamed_addr constant [5 x i8] c"last\00" @.str6270 = private unnamed_addr constant [4 x i8] c"pop\00" @.str6271 = private unnamed_addr constant [5 x i8] c"swap\00" @.str6272 = private unnamed_addr constant [9 x i8] c"contains\00" @.str6273 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str6274 = private unnamed_addr constant [8 x i8] c"reverse\00" @.str6275 = private unnamed_addr constant [7 x i8] c"insert\00" @.str6276 = private unnamed_addr constant [10 x i8] c"remove_at\00" @.str6277 = private unnamed_addr constant [7 x i8] c"remove\00" @.str6278 = private unnamed_addr constant [5 x i8] c"sort\00" @.str6279 = private unnamed_addr constant [8 x i8] c"sort_by\00" @.str6280 = private unnamed_addr constant [13 x i8] c"sort_desc_by\00" @.str6281 = private unnamed_addr constant [10 x i8] c"sort_with\00" @.str6282 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6283 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6284 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str6285 = private unnamed_addr constant [3 x i8] c", \00" @.str6286 = private unnamed_addr constant [3 x i8] c"ig\00" @.str6287 = private unnamed_addr constant [4 x i8] c"igd\00" @.str6288 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6289 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6290 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6291 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6292 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6293 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str6294 = private unnamed_addr constant [4 x i8] c", 2\00" @.str6295 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6296 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6297 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str6298 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" @.str6299 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str6300 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str6301 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str6302 = private unnamed_addr constant [3 x i8] c", \00" @.str6303 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str6304 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" @.str6305 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str6306 = private unnamed_addr constant [2 x i8] c")\00" @.str6307 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str6308 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6309 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6310 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6311 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6312 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6313 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6314 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6315 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6316 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" @.str6317 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6318 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6319 = private unnamed_addr constant [10 x i8] c"icmp slt \00" @.str6320 = private unnamed_addr constant [2 x i8] c" \00" @.str6321 = private unnamed_addr constant [3 x i8] c", \00" @.str6322 = private unnamed_addr constant [14 x i8] c"call i32 @fn_\00" @.str6323 = private unnamed_addr constant [2 x i8] c"(\00" @.str6324 = private unnamed_addr constant [2 x i8] c" \00" @.str6325 = private unnamed_addr constant [3 x i8] c", \00" @.str6326 = private unnamed_addr constant [2 x i8] c" \00" @.str6327 = private unnamed_addr constant [2 x i8] c")\00" @.str6328 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str6329 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6330 = private unnamed_addr constant [6 x i8] c"call \00" @.str6331 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str6332 = private unnamed_addr constant [2 x i8] c"(\00" @.str6333 = private unnamed_addr constant [2 x i8] c" \00" @.str6334 = private unnamed_addr constant [2 x i8] c")\00" @.str6335 = private unnamed_addr constant [6 x i8] c"call \00" @.str6336 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str6337 = private unnamed_addr constant [2 x i8] c"(\00" @.str6338 = private unnamed_addr constant [2 x i8] c" \00" @.str6339 = private unnamed_addr constant [2 x i8] c")\00" @.str6340 = private unnamed_addr constant [10 x i8] c"icmp slt \00" @.str6341 = private unnamed_addr constant [2 x i8] c" \00" @.str6342 = private unnamed_addr constant [3 x i8] c", \00" @.str6343 = private unnamed_addr constant [10 x i8] c"icmp sgt \00" @.str6344 = private unnamed_addr constant [2 x i8] c" \00" @.str6345 = private unnamed_addr constant [3 x i8] c", \00" @.str6346 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str6347 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6348 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str6349 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str6350 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str6351 = private unnamed_addr constant [3 x i8] c", \00" @.str6352 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str6353 = private unnamed_addr constant [2 x i8] c")\00" @.str6354 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6355 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6356 = private unnamed_addr constant [2 x i8] c"1\00" @.str6357 = private unnamed_addr constant [6 x i8] c"ms_wc\00" @.str6358 = private unnamed_addr constant [6 x i8] c"ms_wb\00" @.str6359 = private unnamed_addr constant [6 x i8] c"ms_we\00" @.str6360 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6361 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6362 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6363 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6364 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6365 = private unnamed_addr constant [3 x i8] c", \00" @.str6366 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6367 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6368 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6369 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6370 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6371 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str6372 = private unnamed_addr constant [4 x i8] c", 2\00" @.str6373 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6374 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6375 = private unnamed_addr constant [2 x i8] c"0\00" @.str6376 = private unnamed_addr constant [6 x i8] c"ms_ic\00" @.str6377 = private unnamed_addr constant [6 x i8] c"ms_ib\00" @.str6378 = private unnamed_addr constant [6 x i8] c"ms_ie\00" @.str6379 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6380 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6381 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6382 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6383 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6384 = private unnamed_addr constant [3 x i8] c", \00" @.str6385 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6386 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6387 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6388 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6389 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6390 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6391 = private unnamed_addr constant [3 x i8] c", \00" @.str6392 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6393 = private unnamed_addr constant [3 x i8] c", \00" @.str6394 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str6395 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6396 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6397 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6398 = private unnamed_addr constant [3 x i8] c", \00" @.str6399 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6400 = private unnamed_addr constant [3 x i8] c", \00" @.str6401 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str6402 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6403 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6404 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6405 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6406 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6407 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6408 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6409 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6410 = private unnamed_addr constant [6 x i8] c"ms_mc\00" @.str6411 = private unnamed_addr constant [6 x i8] c"ms_mb\00" @.str6412 = private unnamed_addr constant [8 x i8] c"ms_mend\00" @.str6413 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6414 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6415 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6416 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6417 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6418 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6419 = private unnamed_addr constant [3 x i8] c", \00" @.str6420 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6421 = private unnamed_addr constant [3 x i8] c", \00" @.str6422 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str6423 = private unnamed_addr constant [3 x i8] c", \00" @.str6424 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6425 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6426 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6427 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6428 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6429 = private unnamed_addr constant [6 x i8] c"load \00" @.str6430 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6431 = private unnamed_addr constant [6 x i8] c"load \00" @.str6432 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6433 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6434 = private unnamed_addr constant [9 x i8] c"ms_takeR\00" @.str6435 = private unnamed_addr constant [9 x i8] c"ms_takeL\00" @.str6436 = private unnamed_addr constant [9 x i8] c"ms_takeD\00" @.str6437 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6438 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6439 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6440 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6441 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6442 = private unnamed_addr constant [9 x i8] c" store \00" @.str6443 = private unnamed_addr constant [2 x i8] c" \00" @.str6444 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6445 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6446 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6447 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6448 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6449 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6450 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6451 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6452 = private unnamed_addr constant [9 x i8] c" store \00" @.str6453 = private unnamed_addr constant [2 x i8] c" \00" @.str6454 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6455 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6456 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6457 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6458 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6459 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6460 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6461 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6462 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6463 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6464 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6465 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6466 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6467 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6468 = private unnamed_addr constant [7 x i8] c"ms_dac\00" @.str6469 = private unnamed_addr constant [7 x i8] c"ms_dab\00" @.str6470 = private unnamed_addr constant [7 x i8] c"ms_dae\00" @.str6471 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6472 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6473 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6474 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6475 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6476 = private unnamed_addr constant [3 x i8] c", \00" @.str6477 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6478 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6479 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6480 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6481 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6482 = private unnamed_addr constant [6 x i8] c"load \00" @.str6483 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6484 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6485 = private unnamed_addr constant [9 x i8] c" store \00" @.str6486 = private unnamed_addr constant [2 x i8] c" \00" @.str6487 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6488 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6489 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6490 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6491 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6492 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6493 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6494 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6495 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6496 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6497 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6498 = private unnamed_addr constant [7 x i8] c"ms_dbc\00" @.str6499 = private unnamed_addr constant [7 x i8] c"ms_dbb\00" @.str6500 = private unnamed_addr constant [7 x i8] c"ms_dbe\00" @.str6501 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6502 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6503 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6504 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6505 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6506 = private unnamed_addr constant [3 x i8] c", \00" @.str6507 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6508 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6509 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6510 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6511 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6512 = private unnamed_addr constant [6 x i8] c"load \00" @.str6513 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6514 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6515 = private unnamed_addr constant [9 x i8] c" store \00" @.str6516 = private unnamed_addr constant [2 x i8] c" \00" @.str6517 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6518 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6519 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6520 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6521 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6522 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6523 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6524 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6525 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6526 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6527 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6528 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6529 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6530 = private unnamed_addr constant [7 x i8] c"ms_cbc\00" @.str6531 = private unnamed_addr constant [7 x i8] c"ms_cbb\00" @.str6532 = private unnamed_addr constant [7 x i8] c"ms_cbe\00" @.str6533 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6534 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6535 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6536 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6537 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6538 = private unnamed_addr constant [3 x i8] c", \00" @.str6539 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6540 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6541 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6542 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6543 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6544 = private unnamed_addr constant [6 x i8] c"load \00" @.str6545 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6546 = private unnamed_addr constant [9 x i8] c" store \00" @.str6547 = private unnamed_addr constant [2 x i8] c" \00" @.str6548 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6549 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6550 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6551 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6552 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6553 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6554 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6555 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6556 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6557 = private unnamed_addr constant [3 x i8] c", \00" @.str6558 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6559 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6560 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6561 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6562 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6563 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6564 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6565 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6566 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" @.str6567 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6568 = private unnamed_addr constant [6 x i8] c"List.\00" @.str6569 = private unnamed_addr constant [25 x i8] c" needs (slice, function)\00" @.str6570 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10746: index out of range: \00" @.str6571 = private unnamed_addr constant [6 x i8] c"List.\00" @.str6572 = private unnamed_addr constant [46 x i8] c": the second argument must be a function name\00" @.str6573 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10747: index out of range: \00" @.str6574 = private unnamed_addr constant [6 x i8] c"List.\00" @.str6575 = private unnamed_addr constant [22 x i8] c": no function named '\00" @.str6576 = private unnamed_addr constant [2 x i8] c"'\00" @.str6577 = private unnamed_addr constant [4 x i8] c"len\00" @.str6578 = private unnamed_addr constant [5 x i8] c"push\00" @.str6579 = private unnamed_addr constant [7 x i8] c"sample\00" @.str6580 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10756: index out of range: \00" @.str6581 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10757: index out of range: \00" @.str6582 = private unnamed_addr constant [15 x i8] c"rt_list_sample\00" @.str6583 = private unnamed_addr constant [68 x i8] c"List.sample needs the engine runtime (a game, or import ludic.core)\00" @.str6584 = private unnamed_addr constant [33 x i8] c"call ptr @fn_rt_list_sample(ptr \00" @.str6585 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6586 = private unnamed_addr constant [2 x i8] c")\00" @.str6587 = private unnamed_addr constant [6 x i8] c"[]int\00" @.str6588 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10761: index out of range: \00" @.str6589 = private unnamed_addr constant [6 x i8] c"List.\00" @.str6590 = private unnamed_addr constant [15 x i8] c" needs a slice\00" @.str6591 = private unnamed_addr constant [6 x i8] c"clear\00" @.str6592 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str6593 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6594 = private unnamed_addr constant [2 x i8] c"0\00" @.str6595 = private unnamed_addr constant [5 x i8] c"void\00" @.str6596 = private unnamed_addr constant [6 x i8] c"first\00" @.str6597 = private unnamed_addr constant [2 x i8] c"0\00" @.str6598 = private unnamed_addr constant [6 x i8] c"load \00" @.str6599 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6600 = private unnamed_addr constant [5 x i8] c"last\00" @.str6601 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6602 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6603 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6604 = private unnamed_addr constant [6 x i8] c"load \00" @.str6605 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6606 = private unnamed_addr constant [4 x i8] c"pop\00" @.str6607 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6608 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6609 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6610 = private unnamed_addr constant [6 x i8] c"load \00" @.str6611 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6612 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6613 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6614 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6615 = private unnamed_addr constant [5 x i8] c"swap\00" @.str6616 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10791: index out of range: \00" @.str6617 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10791: index out of range: \00" @.str6618 = private unnamed_addr constant [6 x i8] c"load \00" @.str6619 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6620 = private unnamed_addr constant [6 x i8] c"load \00" @.str6621 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6622 = private unnamed_addr constant [9 x i8] c" store \00" @.str6623 = private unnamed_addr constant [2 x i8] c" \00" @.str6624 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6625 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6626 = private unnamed_addr constant [9 x i8] c" store \00" @.str6627 = private unnamed_addr constant [2 x i8] c" \00" @.str6628 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6629 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6630 = private unnamed_addr constant [2 x i8] c"0\00" @.str6631 = private unnamed_addr constant [5 x i8] c"void\00" @.str6632 = private unnamed_addr constant [9 x i8] c"contains\00" @.str6633 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str6634 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10801: index out of range: \00" @.str6635 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6636 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6637 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6638 = private unnamed_addr constant [3 x i8] c"-1\00" @.str6639 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6640 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6641 = private unnamed_addr constant [2 x i8] c"0\00" @.str6642 = private unnamed_addr constant [8 x i8] c"lc_cond\00" @.str6643 = private unnamed_addr constant [8 x i8] c"lc_body\00" @.str6644 = private unnamed_addr constant [7 x i8] c"lc_hit\00" @.str6645 = private unnamed_addr constant [8 x i8] c"lc_next\00" @.str6646 = private unnamed_addr constant [7 x i8] c"lc_end\00" @.str6647 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6648 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6649 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6650 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6651 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6652 = private unnamed_addr constant [3 x i8] c", \00" @.str6653 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6654 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6655 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6656 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6657 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6658 = private unnamed_addr constant [6 x i8] c"load \00" @.str6659 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6660 = private unnamed_addr constant [9 x i8] c"icmp eq \00" @.str6661 = private unnamed_addr constant [2 x i8] c" \00" @.str6662 = private unnamed_addr constant [3 x i8] c", \00" @.str6663 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6664 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6665 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6666 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6667 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6668 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6669 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6670 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6671 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6672 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6673 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6674 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6675 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6676 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6677 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6678 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6679 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str6680 = private unnamed_addr constant [4 x i8] c"int\00" @.str6681 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str6682 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6683 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str6684 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str6685 = private unnamed_addr constant [5 x i8] c"bool\00" @.str6686 = private unnamed_addr constant [7 x i8] c"insert\00" @.str6687 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10833: index out of range: \00" @.str6688 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10833: index out of range: \00" @.str6689 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6690 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6691 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6692 = private unnamed_addr constant [5 x i8] c"li_c\00" @.str6693 = private unnamed_addr constant [5 x i8] c"li_b\00" @.str6694 = private unnamed_addr constant [5 x i8] c"li_e\00" @.str6695 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6696 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6697 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6698 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6699 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str6700 = private unnamed_addr constant [3 x i8] c", \00" @.str6701 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6702 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6703 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6704 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6705 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6706 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6707 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6708 = private unnamed_addr constant [6 x i8] c"load \00" @.str6709 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6710 = private unnamed_addr constant [9 x i8] c" store \00" @.str6711 = private unnamed_addr constant [2 x i8] c" \00" @.str6712 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6713 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6714 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6715 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6716 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6717 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6718 = private unnamed_addr constant [9 x i8] c" store \00" @.str6719 = private unnamed_addr constant [2 x i8] c" \00" @.str6720 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6721 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6722 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6723 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6724 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6725 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6726 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6727 = private unnamed_addr constant [2 x i8] c"0\00" @.str6728 = private unnamed_addr constant [5 x i8] c"void\00" @.str6729 = private unnamed_addr constant [10 x i8] c"remove_at\00" @.str6730 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10859: index out of range: \00" @.str6731 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6732 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6733 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6734 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6735 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6736 = private unnamed_addr constant [5 x i8] c"lr_c\00" @.str6737 = private unnamed_addr constant [5 x i8] c"lr_b\00" @.str6738 = private unnamed_addr constant [5 x i8] c"lr_e\00" @.str6739 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6740 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6741 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6742 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6743 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6744 = private unnamed_addr constant [3 x i8] c", \00" @.str6745 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6746 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6747 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6748 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6749 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6750 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6751 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6752 = private unnamed_addr constant [6 x i8] c"load \00" @.str6753 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6754 = private unnamed_addr constant [9 x i8] c" store \00" @.str6755 = private unnamed_addr constant [2 x i8] c" \00" @.str6756 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6757 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6758 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6759 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6760 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6761 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6762 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6763 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6764 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6765 = private unnamed_addr constant [2 x i8] c"0\00" @.str6766 = private unnamed_addr constant [5 x i8] c"void\00" @.str6767 = private unnamed_addr constant [7 x i8] c"remove\00" @.str6768 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:10882: index out of range: \00" @.str6769 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6770 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6771 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6772 = private unnamed_addr constant [3 x i8] c"-1\00" @.str6773 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6774 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6775 = private unnamed_addr constant [2 x i8] c"0\00" @.str6776 = private unnamed_addr constant [5 x i8] c"lv_c\00" @.str6777 = private unnamed_addr constant [5 x i8] c"lv_b\00" @.str6778 = private unnamed_addr constant [5 x i8] c"lv_h\00" @.str6779 = private unnamed_addr constant [5 x i8] c"lv_n\00" @.str6780 = private unnamed_addr constant [5 x i8] c"lv_e\00" @.str6781 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6782 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6783 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6784 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6785 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6786 = private unnamed_addr constant [3 x i8] c", \00" @.str6787 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6788 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6789 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6790 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str6791 = private unnamed_addr constant [3 x i8] c", \00" @.str6792 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6793 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6794 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6795 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6796 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6797 = private unnamed_addr constant [6 x i8] c"load \00" @.str6798 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6799 = private unnamed_addr constant [9 x i8] c"icmp eq \00" @.str6800 = private unnamed_addr constant [2 x i8] c" \00" @.str6801 = private unnamed_addr constant [3 x i8] c", \00" @.str6802 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6803 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6804 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6805 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6806 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6807 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6808 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6809 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6810 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6811 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6812 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6813 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6814 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6815 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6816 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6817 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6818 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str6819 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6820 = private unnamed_addr constant [6 x i8] c"lv_do\00" @.str6821 = private unnamed_addr constant [7 x i8] c"lv_end\00" @.str6822 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6823 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6824 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6825 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6826 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6827 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6828 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6829 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6830 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6831 = private unnamed_addr constant [6 x i8] c"lv_dc\00" @.str6832 = private unnamed_addr constant [6 x i8] c"lv_db\00" @.str6833 = private unnamed_addr constant [6 x i8] c"lv_de\00" @.str6834 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6835 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6836 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6837 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6838 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6839 = private unnamed_addr constant [3 x i8] c", \00" @.str6840 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6841 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6842 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6843 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6844 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6845 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6846 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6847 = private unnamed_addr constant [6 x i8] c"load \00" @.str6848 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6849 = private unnamed_addr constant [9 x i8] c" store \00" @.str6850 = private unnamed_addr constant [2 x i8] c" \00" @.str6851 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6852 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6853 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6854 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6855 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6856 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6857 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6858 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6859 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6860 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6861 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6862 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6863 = private unnamed_addr constant [2 x i8] c"0\00" @.str6864 = private unnamed_addr constant [5 x i8] c"void\00" @.str6865 = private unnamed_addr constant [5 x i8] c"sort\00" @.str6866 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6867 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6868 = private unnamed_addr constant [5 x i8] c", 32\00" @.str6869 = private unnamed_addr constant [9 x i8] c"sort_ins\00" @.str6870 = private unnamed_addr constant [9 x i8] c"sort_mrg\00" @.str6871 = private unnamed_addr constant [9 x i8] c"sort_end\00" @.str6872 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6873 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6874 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6875 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6876 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6877 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6878 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6879 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6880 = private unnamed_addr constant [2 x i8] c"1\00" @.str6881 = private unnamed_addr constant [6 x i8] c"ls_oc\00" @.str6882 = private unnamed_addr constant [6 x i8] c"ls_ob\00" @.str6883 = private unnamed_addr constant [6 x i8] c"ls_oe\00" @.str6884 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6885 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6886 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6887 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6888 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6889 = private unnamed_addr constant [3 x i8] c", \00" @.str6890 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6891 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6892 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6893 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6894 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6895 = private unnamed_addr constant [6 x i8] c"load \00" @.str6896 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6897 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6898 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6899 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6900 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6901 = private unnamed_addr constant [6 x i8] c"ls_ic\00" @.str6902 = private unnamed_addr constant [6 x i8] c"ls_ib\00" @.str6903 = private unnamed_addr constant [6 x i8] c"ls_ie\00" @.str6904 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6905 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6906 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6907 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6908 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str6909 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6910 = private unnamed_addr constant [6 x i8] c"load \00" @.str6911 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6912 = private unnamed_addr constant [10 x i8] c"icmp sgt \00" @.str6913 = private unnamed_addr constant [2 x i8] c" \00" @.str6914 = private unnamed_addr constant [3 x i8] c", \00" @.str6915 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str6916 = private unnamed_addr constant [3 x i8] c", \00" @.str6917 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6918 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6919 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6920 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6921 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6922 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6923 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6924 = private unnamed_addr constant [9 x i8] c" store \00" @.str6925 = private unnamed_addr constant [2 x i8] c" \00" @.str6926 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6927 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6928 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6929 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6930 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6931 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6932 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6933 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6934 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6935 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6936 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6937 = private unnamed_addr constant [9 x i8] c" store \00" @.str6938 = private unnamed_addr constant [2 x i8] c" \00" @.str6939 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6940 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6941 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6942 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6943 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6944 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6945 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6946 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6947 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6948 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6949 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6950 = private unnamed_addr constant [1 x i8] c"\00" @.str6951 = private unnamed_addr constant [1 x i8] c"\00" @.str6952 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6953 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6954 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6955 = private unnamed_addr constant [2 x i8] c"0\00" @.str6956 = private unnamed_addr constant [5 x i8] c"void\00" @.str6957 = private unnamed_addr constant [10 x i8] c"sort_with\00" @.str6958 = private unnamed_addr constant [18 x i8] c"List.sort_with: '\00" @.str6959 = private unnamed_addr constant [26 x i8] c"' must take two arguments\00" @.str6960 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6961 = private unnamed_addr constant [2 x i8] c"0\00" @.str6962 = private unnamed_addr constant [5 x i8] c"void\00" @.str6963 = private unnamed_addr constant [8 x i8] c"sort_by\00" @.str6964 = private unnamed_addr constant [13 x i8] c"sort_desc_by\00" @.str6965 = private unnamed_addr constant [6 x i8] c"List.\00" @.str6966 = private unnamed_addr constant [8 x i8] c": key '\00" @.str6967 = private unnamed_addr constant [25 x i8] c"' must take one argument\00" @.str6968 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6969 = private unnamed_addr constant [5 x i8] c"void\00" @.str6970 = private unnamed_addr constant [6 x i8] c"List.\00" @.str6971 = private unnamed_addr constant [8 x i8] c": key '\00" @.str6972 = private unnamed_addr constant [23 x i8] c"' must return a number\00" @.str6973 = private unnamed_addr constant [13 x i8] c"sort_desc_by\00" @.str6974 = private unnamed_addr constant [2 x i8] c"0\00" @.str6975 = private unnamed_addr constant [5 x i8] c"void\00" @.str6976 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6977 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6978 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6979 = private unnamed_addr constant [2 x i8] c"0\00" @.str6980 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6981 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6982 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6983 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6984 = private unnamed_addr constant [8 x i8] c"lr_cond\00" @.str6985 = private unnamed_addr constant [8 x i8] c"lr_body\00" @.str6986 = private unnamed_addr constant [7 x i8] c"lr_end\00" @.str6987 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6988 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6989 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6990 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6991 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6992 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6993 = private unnamed_addr constant [3 x i8] c", \00" @.str6994 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6995 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6996 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6997 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6998 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6999 = private unnamed_addr constant [6 x i8] c"load \00" @.str7000 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7001 = private unnamed_addr constant [6 x i8] c"load \00" @.str7002 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7003 = private unnamed_addr constant [9 x i8] c" store \00" @.str7004 = private unnamed_addr constant [2 x i8] c" \00" @.str7005 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7006 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7007 = private unnamed_addr constant [9 x i8] c" store \00" @.str7008 = private unnamed_addr constant [2 x i8] c" \00" @.str7009 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7010 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7011 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7012 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7013 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7014 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7015 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7016 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7017 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str7018 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7019 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7020 = private unnamed_addr constant [2 x i8] c"0\00" @.str7021 = private unnamed_addr constant [5 x i8] c"void\00" @.str7022 = private unnamed_addr constant [3 x i8] c"in\00" @.str7023 = private unnamed_addr constant [4 x i8] c"out\00" @.str7024 = private unnamed_addr constant [7 x i8] c"in_out\00" @.str7025 = private unnamed_addr constant [5 x i8] c"back\00" @.str7026 = private unnamed_addr constant [7 x i8] c"bounce\00" @.str7027 = private unnamed_addr constant [8 x i8] c"elastic\00" @.str7028 = private unnamed_addr constant [7 x i8] c"495616\00" @.str7029 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7030 = private unnamed_addr constant [8 x i8] c", 35747\00" @.str7031 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7032 = private unnamed_addr constant [8 x i8] c", 49152\00" @.str7033 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7034 = private unnamed_addr constant [8 x i8] c", 53620\00" @.str7035 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7036 = private unnamed_addr constant [8 x i8] c", 61440\00" @.str7037 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7038 = private unnamed_addr constant [8 x i8] c", 62557\00" @.str7039 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7040 = private unnamed_addr constant [8 x i8] c", 64512\00" @.str7041 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7042 = private unnamed_addr constant [8 x i8] c", 59578\00" @.str7043 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7044 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7045 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7046 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7047 = private unnamed_addr constant [8 x i8] c", 47663\00" @.str7048 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7049 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7050 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7051 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7052 = private unnamed_addr constant [8 x i8] c", 23831\00" @.str7053 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7054 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7055 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7056 = private unnamed_addr constant [17 x i8] c"sub i32 131072, \00" @.str7057 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7058 = private unnamed_addr constant [4 x i8] c", 3\00" @.str7059 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7060 = private unnamed_addr constant [4 x i8] c", 2\00" @.str7061 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7062 = private unnamed_addr constant [3 x i8] c", \00" @.str7063 = private unnamed_addr constant [7 x i8] c"177051\00" @.str7064 = private unnamed_addr constant [7 x i8] c"111515\00" @.str7065 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7066 = private unnamed_addr constant [3 x i8] c", \00" @.str7067 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7068 = private unnamed_addr constant [5 x i8] c", 10\00" @.str7069 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str7070 = private unnamed_addr constant [26 x i8] c"call i32 @lp_fx_exp2(i32 \00" @.str7071 = private unnamed_addr constant [2 x i8] c")\00" @.str7072 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7073 = private unnamed_addr constant [8 x i8] c", 49152\00" @.str7074 = private unnamed_addr constant [7 x i8] c"137258\00" @.str7075 = private unnamed_addr constant [25 x i8] c"call i32 @lp_fx_sin(i32 \00" @.str7076 = private unnamed_addr constant [2 x i8] c")\00" @.str7077 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7078 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str7079 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11117: index out of range: \00" @.str7080 = private unnamed_addr constant [3 x i8] c"in\00" @.str7081 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7082 = private unnamed_addr constant [4 x i8] c"out\00" @.str7083 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7084 = private unnamed_addr constant [7 x i8] c"in_out\00" @.str7085 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7086 = private unnamed_addr constant [5 x i8] c"back\00" @.str7087 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7088 = private unnamed_addr constant [8 x i8] c"elastic\00" @.str7089 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7090 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7091 = private unnamed_addr constant [6 x i8] c"frame\00" @.str7092 = private unnamed_addr constant [5 x i8] c"once\00" @.str7093 = private unnamed_addr constant [9 x i8] c"pingpong\00" @.str7094 = private unnamed_addr constant [9 x i8] c"finished\00" @.str7095 = private unnamed_addr constant [9 x i8] c"duration\00" @.str7096 = private unnamed_addr constant [7 x i8] c"cell_x\00" @.str7097 = private unnamed_addr constant [7 x i8] c"cell_y\00" @.str7098 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7099 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7100 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7101 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7102 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str7103 = private unnamed_addr constant [3 x i8] c", \00" @.str7104 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str7105 = private unnamed_addr constant [5 x i8] c", 16\00" @.str7106 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str7107 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7108 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7109 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7110 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7111 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str7112 = private unnamed_addr constant [6 x i8] c"frame\00" @.str7113 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11166: index out of range: \00" @.str7114 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11166: index out of range: \00" @.str7115 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11166: index out of range: \00" @.str7116 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7117 = private unnamed_addr constant [3 x i8] c", \00" @.str7118 = private unnamed_addr constant [4 x i8] c"int\00" @.str7119 = private unnamed_addr constant [5 x i8] c"once\00" @.str7120 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11172: index out of range: \00" @.str7121 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11172: index out of range: \00" @.str7122 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11172: index out of range: \00" @.str7123 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7124 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7125 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7126 = private unnamed_addr constant [3 x i8] c", \00" @.str7127 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7128 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7129 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7130 = private unnamed_addr constant [4 x i8] c"int\00" @.str7131 = private unnamed_addr constant [9 x i8] c"pingpong\00" @.str7132 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11179: index out of range: \00" @.str7133 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11179: index out of range: \00" @.str7134 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11179: index out of range: \00" @.str7135 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7136 = private unnamed_addr constant [4 x i8] c", 2\00" @.str7137 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7138 = private unnamed_addr constant [4 x i8] c", 2\00" @.str7139 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7140 = private unnamed_addr constant [3 x i8] c", \00" @.str7141 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7142 = private unnamed_addr constant [3 x i8] c", \00" @.str7143 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7144 = private unnamed_addr constant [3 x i8] c", \00" @.str7145 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7146 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7147 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7148 = private unnamed_addr constant [4 x i8] c"int\00" @.str7149 = private unnamed_addr constant [9 x i8] c"finished\00" @.str7150 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11190: index out of range: \00" @.str7151 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11190: index out of range: \00" @.str7152 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11190: index out of range: \00" @.str7153 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str7154 = private unnamed_addr constant [3 x i8] c", \00" @.str7155 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str7156 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7157 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7158 = private unnamed_addr constant [9 x i8] c"duration\00" @.str7159 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11196: index out of range: \00" @.str7160 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11196: index out of range: \00" @.str7161 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str7162 = private unnamed_addr constant [5 x i8] c", 16\00" @.str7163 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7164 = private unnamed_addr constant [3 x i8] c", \00" @.str7165 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7166 = private unnamed_addr constant [7 x i8] c"cell_x\00" @.str7167 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11202: index out of range: \00" @.str7168 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11202: index out of range: \00" @.str7169 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11202: index out of range: \00" @.str7170 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7171 = private unnamed_addr constant [3 x i8] c", \00" @.str7172 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7173 = private unnamed_addr constant [3 x i8] c", \00" @.str7174 = private unnamed_addr constant [4 x i8] c"int\00" @.str7175 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11208: index out of range: \00" @.str7176 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11208: index out of range: \00" @.str7177 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11208: index out of range: \00" @.str7178 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7179 = private unnamed_addr constant [3 x i8] c", \00" @.str7180 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7181 = private unnamed_addr constant [3 x i8] c", \00" @.str7182 = private unnamed_addr constant [4 x i8] c"int\00" @.str7183 = private unnamed_addr constant [9 x i8] c"progress\00" @.str7184 = private unnamed_addr constant [5 x i8] c"loop\00" @.str7185 = private unnamed_addr constant [5 x i8] c"yoyo\00" @.str7186 = private unnamed_addr constant [5 x i8] c"done\00" @.str7187 = private unnamed_addr constant [5 x i8] c"ease\00" @.str7188 = private unnamed_addr constant [7 x i8] c"number\00" @.str7189 = private unnamed_addr constant [6 x i8] c"round\00" @.str7190 = private unnamed_addr constant [6 x i8] c"point\00" @.str7191 = private unnamed_addr constant [5 x i8] c"tint\00" @.str7192 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str7193 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7194 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7195 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7196 = private unnamed_addr constant [12 x i8] c", i32 65536\00" @.str7197 = private unnamed_addr constant [9 x i8] c"progress\00" @.str7198 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11235: index out of range: \00" @.str7199 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11235: index out of range: \00" @.str7200 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str7201 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7202 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7203 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7204 = private unnamed_addr constant [12 x i8] c", i32 65536\00" @.str7205 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7206 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7207 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7208 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str7209 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str7210 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str7211 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7212 = private unnamed_addr constant [18 x i8] c", i32 65536, i32 \00" @.str7213 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7214 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7215 = private unnamed_addr constant [12 x i8] c", i32 65536\00" @.str7216 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7217 = private unnamed_addr constant [5 x i8] c"loop\00" @.str7218 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11246: index out of range: \00" @.str7219 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11246: index out of range: \00" @.str7220 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str7221 = private unnamed_addr constant [8 x i8] c", 65535\00" @.str7222 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7223 = private unnamed_addr constant [5 x i8] c"yoyo\00" @.str7224 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11252: index out of range: \00" @.str7225 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11252: index out of range: \00" @.str7226 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7227 = private unnamed_addr constant [9 x i8] c", 131072\00" @.str7228 = private unnamed_addr constant [17 x i8] c"sub i32 131072, \00" @.str7229 = private unnamed_addr constant [14 x i8] c"icmp sle i32 \00" @.str7230 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str7231 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7232 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7233 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7234 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7235 = private unnamed_addr constant [5 x i8] c"done\00" @.str7236 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11264: index out of range: \00" @.str7237 = private unnamed_addr constant [29 x i8] c"call i32 @fn_tween_done(i32 \00" @.str7238 = private unnamed_addr constant [2 x i8] c")\00" @.str7239 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7240 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11267: index out of range: \00" @.str7241 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11267: index out of range: \00" @.str7242 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str7243 = private unnamed_addr constant [3 x i8] c", \00" @.str7244 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str7245 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7246 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7247 = private unnamed_addr constant [5 x i8] c"ease\00" @.str7248 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11272: index out of range: \00" @.str7249 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11273: index out of range: \00" @.str7250 = private unnamed_addr constant [55 x i8] c"Tween.ease: the easing mode must be a literal int 0..6\00" @.str7251 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7252 = private unnamed_addr constant [7 x i8] c"number\00" @.str7253 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11278: index out of range: \00" @.str7254 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11278: index out of range: \00" @.str7255 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11278: index out of range: \00" @.str7256 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7257 = private unnamed_addr constant [6 x i8] c"round\00" @.str7258 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11282: index out of range: \00" @.str7259 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11282: index out of range: \00" @.str7260 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11282: index out of range: \00" @.str7261 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7262 = private unnamed_addr constant [3 x i8] c", \00" @.str7263 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7264 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7265 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7266 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7267 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str7268 = private unnamed_addr constant [3 x i8] c", \00" @.str7269 = private unnamed_addr constant [9 x i8] c"add i64 \00" @.str7270 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str7271 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str7272 = private unnamed_addr constant [5 x i8] c", 16\00" @.str7273 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str7274 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7275 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7276 = private unnamed_addr constant [3 x i8] c", \00" @.str7277 = private unnamed_addr constant [4 x i8] c"int\00" @.str7278 = private unnamed_addr constant [6 x i8] c"point\00" @.str7279 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11293: index out of range: \00" @.str7280 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11293: index out of range: \00" @.str7281 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11293: index out of range: \00" @.str7282 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str7283 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11300: index out of range: \00" @.str7284 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11300: index out of range: \00" @.str7285 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11300: index out of range: \00" @.str7286 = private unnamed_addr constant [3 x i8] c"16\00" @.str7287 = private unnamed_addr constant [3 x i8] c"16\00" @.str7288 = private unnamed_addr constant [2 x i8] c"8\00" @.str7289 = private unnamed_addr constant [2 x i8] c"8\00" @.str7290 = private unnamed_addr constant [2 x i8] c"0\00" @.str7291 = private unnamed_addr constant [2 x i8] c"0\00" @.str7292 = private unnamed_addr constant [4 x i8] c"int\00" @.str7293 = private unnamed_addr constant [6 x i8] c"rects\00" @.str7294 = private unnamed_addr constant [11 x i8] c"point_rect\00" @.str7295 = private unnamed_addr constant [8 x i8] c"circles\00" @.str7296 = private unnamed_addr constant [12 x i8] c"rect_circle\00" @.str7297 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7298 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7299 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7300 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7301 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str7302 = private unnamed_addr constant [3 x i8] c", \00" @.str7303 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str7304 = private unnamed_addr constant [3 x i8] c", \00" @.str7305 = private unnamed_addr constant [9 x i8] c"add i64 \00" @.str7306 = private unnamed_addr constant [3 x i8] c", \00" @.str7307 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7308 = private unnamed_addr constant [3 x i8] c", \00" @.str7309 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7310 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7311 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7312 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str7313 = private unnamed_addr constant [3 x i8] c", \00" @.str7314 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7315 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7316 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7317 = private unnamed_addr constant [6 x i8] c"rects\00" @.str7318 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11337: index out of range: \00" @.str7319 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11337: index out of range: \00" @.str7320 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11337: index out of range: \00" @.str7321 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11337: index out of range: \00" @.str7322 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11338: index out of range: \00" @.str7323 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11338: index out of range: \00" @.str7324 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11338: index out of range: \00" @.str7325 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11338: index out of range: \00" @.str7326 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7327 = private unnamed_addr constant [3 x i8] c", \00" @.str7328 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7329 = private unnamed_addr constant [3 x i8] c", \00" @.str7330 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7331 = private unnamed_addr constant [3 x i8] c", \00" @.str7332 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7333 = private unnamed_addr constant [3 x i8] c", \00" @.str7334 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7335 = private unnamed_addr constant [3 x i8] c", \00" @.str7336 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7337 = private unnamed_addr constant [3 x i8] c", \00" @.str7338 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7339 = private unnamed_addr constant [3 x i8] c", \00" @.str7340 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7341 = private unnamed_addr constant [3 x i8] c", \00" @.str7342 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7343 = private unnamed_addr constant [3 x i8] c", \00" @.str7344 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7345 = private unnamed_addr constant [3 x i8] c", \00" @.str7346 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7347 = private unnamed_addr constant [3 x i8] c", \00" @.str7348 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str7349 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7350 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7351 = private unnamed_addr constant [11 x i8] c"point_rect\00" @.str7352 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11353: index out of range: \00" @.str7353 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11353: index out of range: \00" @.str7354 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11354: index out of range: \00" @.str7355 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11354: index out of range: \00" @.str7356 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11354: index out of range: \00" @.str7357 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11354: index out of range: \00" @.str7358 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7359 = private unnamed_addr constant [3 x i8] c", \00" @.str7360 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7361 = private unnamed_addr constant [3 x i8] c", \00" @.str7362 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str7363 = private unnamed_addr constant [3 x i8] c", \00" @.str7364 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7365 = private unnamed_addr constant [3 x i8] c", \00" @.str7366 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str7367 = private unnamed_addr constant [3 x i8] c", \00" @.str7368 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7369 = private unnamed_addr constant [3 x i8] c", \00" @.str7370 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7371 = private unnamed_addr constant [3 x i8] c", \00" @.str7372 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7373 = private unnamed_addr constant [3 x i8] c", \00" @.str7374 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7375 = private unnamed_addr constant [3 x i8] c", \00" @.str7376 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str7377 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7378 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7379 = private unnamed_addr constant [8 x i8] c"circles\00" @.str7380 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11367: index out of range: \00" @.str7381 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11367: index out of range: \00" @.str7382 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11367: index out of range: \00" @.str7383 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11368: index out of range: \00" @.str7384 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11368: index out of range: \00" @.str7385 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11368: index out of range: \00" @.str7386 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7387 = private unnamed_addr constant [3 x i8] c", \00" @.str7388 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7389 = private unnamed_addr constant [3 x i8] c", \00" @.str7390 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7391 = private unnamed_addr constant [3 x i8] c", \00" @.str7392 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7393 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7394 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str7395 = private unnamed_addr constant [3 x i8] c", \00" @.str7396 = private unnamed_addr constant [14 x i8] c"icmp sle i64 \00" @.str7397 = private unnamed_addr constant [3 x i8] c", \00" @.str7398 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str7399 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7400 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7401 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11379: index out of range: \00" @.str7402 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11379: index out of range: \00" @.str7403 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11379: index out of range: \00" @.str7404 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11379: index out of range: \00" @.str7405 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11380: index out of range: \00" @.str7406 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11380: index out of range: \00" @.str7407 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11380: index out of range: \00" @.str7408 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7409 = private unnamed_addr constant [3 x i8] c", \00" @.str7410 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7411 = private unnamed_addr constant [3 x i8] c", \00" @.str7412 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7413 = private unnamed_addr constant [3 x i8] c", \00" @.str7414 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7415 = private unnamed_addr constant [3 x i8] c", \00" @.str7416 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str7417 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7418 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str7419 = private unnamed_addr constant [3 x i8] c", \00" @.str7420 = private unnamed_addr constant [14 x i8] c"icmp sle i64 \00" @.str7421 = private unnamed_addr constant [3 x i8] c", \00" @.str7422 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str7423 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7424 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7425 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str7426 = private unnamed_addr constant [6 x i8] c"words\00" @.str7427 = private unnamed_addr constant [5 x i8] c"copy\00" @.str7428 = private unnamed_addr constant [5 x i8] c"fill\00" @.str7429 = private unnamed_addr constant [5 x i8] c"peek\00" @.str7430 = private unnamed_addr constant [5 x i8] c"poke\00" @.str7431 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str7432 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11407: index out of range: \00" @.str7433 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str7434 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7435 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str7436 = private unnamed_addr constant [2 x i8] c")\00" @.str7437 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str7438 = private unnamed_addr constant [6 x i8] c"words\00" @.str7439 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11412: index out of range: \00" @.str7440 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7441 = private unnamed_addr constant [4 x i8] c", 4\00" @.str7442 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str7443 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7444 = private unnamed_addr constant [4 x i8] c"int\00" @.str7445 = private unnamed_addr constant [5 x i8] c"copy\00" @.str7446 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11418: index out of range: \00" @.str7447 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11418: index out of range: \00" @.str7448 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11418: index out of range: \00" @.str7449 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str7450 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7451 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str7452 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7453 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str7454 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7455 = private unnamed_addr constant [2 x i8] c"0\00" @.str7456 = private unnamed_addr constant [5 x i8] c"void\00" @.str7457 = private unnamed_addr constant [5 x i8] c"fill\00" @.str7458 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11424: index out of range: \00" @.str7459 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11424: index out of range: \00" @.str7460 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11424: index out of range: \00" @.str7461 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str7462 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str7463 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" @.str7464 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7465 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str7466 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7467 = private unnamed_addr constant [2 x i8] c"0\00" @.str7468 = private unnamed_addr constant [5 x i8] c"void\00" @.str7469 = private unnamed_addr constant [5 x i8] c"peek\00" @.str7470 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11430: index out of range: \00" @.str7471 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11430: index out of range: \00" @.str7472 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str7473 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7474 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str7475 = private unnamed_addr constant [9 x i8] c"zext i8 \00" @.str7476 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7477 = private unnamed_addr constant [4 x i8] c"int\00" @.str7478 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11436: index out of range: \00" @.str7479 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11436: index out of range: \00" @.str7480 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11436: index out of range: \00" @.str7481 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str7482 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7483 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" @.str7484 = private unnamed_addr constant [7 x i8] c" to i8\00" @.str7485 = private unnamed_addr constant [12 x i8] c" store i8 \00" @.str7486 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7487 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7488 = private unnamed_addr constant [2 x i8] c"0\00" @.str7489 = private unnamed_addr constant [5 x i8] c"void\00" @.str7490 = private unnamed_addr constant [6 x i8] c"frame\00" @.str7491 = private unnamed_addr constant [6 x i8] c"delta\00" @.str7492 = private unnamed_addr constant [8 x i8] c"elapsed\00" @.str7493 = private unnamed_addr constant [4 x i8] c"now\00" @.str7494 = private unnamed_addr constant [6 x i8] c"since\00" @.str7495 = private unnamed_addr constant [6 x i8] c"frame\00" @.str7496 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_frame\00" @.str7497 = private unnamed_addr constant [4 x i8] c"int\00" @.str7498 = private unnamed_addr constant [6 x i8] c"delta\00" @.str7499 = private unnamed_addr constant [5 x i8] c"1092\00" @.str7500 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7501 = private unnamed_addr constant [8 x i8] c"elapsed\00" @.str7502 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_frame\00" @.str7503 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7504 = private unnamed_addr constant [7 x i8] c", 1092\00" @.str7505 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str7506 = private unnamed_addr constant [6 x i8] c"since\00" @.str7507 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11466: index out of range: \00" @.str7508 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" @.str7509 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str7510 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7511 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7512 = private unnamed_addr constant [3 x i8] c", \00" @.str7513 = private unnamed_addr constant [4 x i8] c"int\00" @.str7514 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" @.str7515 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str7516 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7517 = private unnamed_addr constant [4 x i8] c"int\00" @.str7518 = private unnamed_addr constant [8 x i8] c"seconds\00" @.str7519 = private unnamed_addr constant [8 x i8] c"minutes\00" @.str7520 = private unnamed_addr constant [6 x i8] c"hours\00" @.str7521 = private unnamed_addr constant [5 x i8] c"days\00" @.str7522 = private unnamed_addr constant [11 x i8] c"as_seconds\00" @.str7523 = private unnamed_addr constant [11 x i8] c"as_minutes\00" @.str7524 = private unnamed_addr constant [9 x i8] c"as_hours\00" @.str7525 = private unnamed_addr constant [8 x i8] c"as_days\00" @.str7526 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11501: index out of range: \00" @.str7527 = private unnamed_addr constant [8 x i8] c"seconds\00" @.str7528 = private unnamed_addr constant [4 x i8] c"int\00" @.str7529 = private unnamed_addr constant [8 x i8] c"minutes\00" @.str7530 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7531 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7532 = private unnamed_addr constant [4 x i8] c"int\00" @.str7533 = private unnamed_addr constant [6 x i8] c"hours\00" @.str7534 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7535 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7536 = private unnamed_addr constant [4 x i8] c"int\00" @.str7537 = private unnamed_addr constant [5 x i8] c"days\00" @.str7538 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7539 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7540 = private unnamed_addr constant [4 x i8] c"int\00" @.str7541 = private unnamed_addr constant [11 x i8] c"as_seconds\00" @.str7542 = private unnamed_addr constant [4 x i8] c"int\00" @.str7543 = private unnamed_addr constant [11 x i8] c"as_minutes\00" @.str7544 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7545 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7546 = private unnamed_addr constant [4 x i8] c"int\00" @.str7547 = private unnamed_addr constant [9 x i8] c"as_hours\00" @.str7548 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7549 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7550 = private unnamed_addr constant [4 x i8] c"int\00" @.str7551 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7552 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7553 = private unnamed_addr constant [4 x i8] c"int\00" @.str7554 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7555 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7556 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7557 = private unnamed_addr constant [37 x i8] c" call void @lp_civil_from_days(i32 \00" @.str7558 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7559 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7560 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7561 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7562 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7563 = private unnamed_addr constant [4 x i8] c"new\00" @.str7564 = private unnamed_addr constant [5 x i8] c"year\00" @.str7565 = private unnamed_addr constant [6 x i8] c"month\00" @.str7566 = private unnamed_addr constant [4 x i8] c"day\00" @.str7567 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str7568 = private unnamed_addr constant [8 x i8] c"is_leap\00" @.str7569 = private unnamed_addr constant [14 x i8] c"days_in_month\00" @.str7570 = private unnamed_addr constant [9 x i8] c"to_epoch\00" @.str7571 = private unnamed_addr constant [9 x i8] c"add_days\00" @.str7572 = private unnamed_addr constant [10 x i8] c"diff_days\00" @.str7573 = private unnamed_addr constant [4 x i8] c"new\00" @.str7574 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11538: index out of range: \00" @.str7575 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11538: index out of range: \00" @.str7576 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11538: index out of range: \00" @.str7577 = private unnamed_addr constant [34 x i8] c"call i32 @lp_days_from_civil(i32 \00" @.str7578 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7579 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7580 = private unnamed_addr constant [2 x i8] c")\00" @.str7581 = private unnamed_addr constant [4 x i8] c"int\00" @.str7582 = private unnamed_addr constant [5 x i8] c"year\00" @.str7583 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11541: index out of range: \00" @.str7584 = private unnamed_addr constant [4 x i8] c"int\00" @.str7585 = private unnamed_addr constant [6 x i8] c"month\00" @.str7586 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11542: index out of range: \00" @.str7587 = private unnamed_addr constant [4 x i8] c"int\00" @.str7588 = private unnamed_addr constant [4 x i8] c"day\00" @.str7589 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11543: index out of range: \00" @.str7590 = private unnamed_addr constant [4 x i8] c"int\00" @.str7591 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str7592 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11545: index out of range: \00" @.str7593 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7594 = private unnamed_addr constant [4 x i8] c", 4\00" @.str7595 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7596 = private unnamed_addr constant [4 x i8] c", 7\00" @.str7597 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7598 = private unnamed_addr constant [4 x i8] c", 7\00" @.str7599 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7600 = private unnamed_addr constant [4 x i8] c", 7\00" @.str7601 = private unnamed_addr constant [4 x i8] c"int\00" @.str7602 = private unnamed_addr constant [8 x i8] c"is_leap\00" @.str7603 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11552: index out of range: \00" @.str7604 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7605 = private unnamed_addr constant [4 x i8] c", 4\00" @.str7606 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str7607 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7608 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7609 = private unnamed_addr constant [6 x i8] c", 100\00" @.str7610 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str7611 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7612 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7613 = private unnamed_addr constant [6 x i8] c", 400\00" @.str7614 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str7615 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7616 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7617 = private unnamed_addr constant [3 x i8] c", \00" @.str7618 = private unnamed_addr constant [7 x i8] c"or i1 \00" @.str7619 = private unnamed_addr constant [3 x i8] c", \00" @.str7620 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str7621 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str7622 = private unnamed_addr constant [5 x i8] c"bool\00" @.str7623 = private unnamed_addr constant [14 x i8] c"days_in_month\00" @.str7624 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11562: index out of range: \00" @.str7625 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11562: index out of range: \00" @.str7626 = private unnamed_addr constant [34 x i8] c"call i32 @lp_days_from_civil(i32 \00" @.str7627 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7628 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str7629 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str7630 = private unnamed_addr constant [5 x i8] c", 12\00" @.str7631 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7632 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7633 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7634 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7635 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7636 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7637 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7638 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7639 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str7640 = private unnamed_addr constant [34 x i8] c"call i32 @lp_days_from_civil(i32 \00" @.str7641 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7642 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str7643 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7644 = private unnamed_addr constant [3 x i8] c", \00" @.str7645 = private unnamed_addr constant [4 x i8] c"int\00" @.str7646 = private unnamed_addr constant [9 x i8] c"to_epoch\00" @.str7647 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11573: index out of range: \00" @.str7648 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7649 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7650 = private unnamed_addr constant [4 x i8] c"int\00" @.str7651 = private unnamed_addr constant [9 x i8] c"add_days\00" @.str7652 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11577: index out of range: \00" @.str7653 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11577: index out of range: \00" @.str7654 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7655 = private unnamed_addr constant [3 x i8] c", \00" @.str7656 = private unnamed_addr constant [4 x i8] c"int\00" @.str7657 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11581: index out of range: \00" @.str7658 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11581: index out of range: \00" @.str7659 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7660 = private unnamed_addr constant [3 x i8] c", \00" @.str7661 = private unnamed_addr constant [4 x i8] c"int\00" @.str7662 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7663 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7664 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7665 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7666 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7667 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7668 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7669 = private unnamed_addr constant [3 x i8] c", \00" @.str7670 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7671 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7672 = private unnamed_addr constant [5 x i8] c"from\00" @.str7673 = private unnamed_addr constant [5 x i8] c"date\00" @.str7674 = private unnamed_addr constant [4 x i8] c"add\00" @.str7675 = private unnamed_addr constant [5 x i8] c"year\00" @.str7676 = private unnamed_addr constant [6 x i8] c"month\00" @.str7677 = private unnamed_addr constant [4 x i8] c"day\00" @.str7678 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str7679 = private unnamed_addr constant [5 x i8] c"hour\00" @.str7680 = private unnamed_addr constant [7 x i8] c"minute\00" @.str7681 = private unnamed_addr constant [7 x i8] c"second\00" @.str7682 = private unnamed_addr constant [7 x i8] c"format\00" @.str7683 = private unnamed_addr constant [6 x i8] c"parse\00" @.str7684 = private unnamed_addr constant [29 x i8] c"call ptr @lp_str_concat(ptr \00" @.str7685 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7686 = private unnamed_addr constant [2 x i8] c")\00" @.str7687 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11629: index out of range: \00" @.str7688 = private unnamed_addr constant [47 x i8] c"DateTime.format needs a string-literal pattern\00" @.str7689 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11630: index out of range: \00" @.str7690 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11631: index out of range: \00" @.str7691 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7692 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7693 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7694 = private unnamed_addr constant [37 x i8] c" call void @lp_civil_from_days(i32 \00" @.str7695 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7696 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7697 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7698 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7699 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7700 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7701 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7702 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7703 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7704 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7705 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7706 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7707 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7708 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7709 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7710 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7711 = private unnamed_addr constant [6 x i8] c", 100\00" @.str7712 = private unnamed_addr constant [1 x i8] c"\00" @.str7713 = private unnamed_addr constant [5 x i8] c"YYYY\00" @.str7714 = private unnamed_addr constant [3 x i8] c"YY\00" @.str7715 = private unnamed_addr constant [3 x i8] c"MM\00" @.str7716 = private unnamed_addr constant [3 x i8] c"DD\00" @.str7717 = private unnamed_addr constant [3 x i8] c"HH\00" @.str7718 = private unnamed_addr constant [3 x i8] c"mm\00" @.str7719 = private unnamed_addr constant [3 x i8] c"ss\00" @.str7720 = private unnamed_addr constant [26 x i8] c"call ptr @lp_dt_pad0(i32 \00" @.str7721 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7722 = private unnamed_addr constant [2 x i8] c")\00" @.str7723 = private unnamed_addr constant [7 x i8] c"string\00" @.str7724 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11679: index out of range: \00" @.str7725 = private unnamed_addr constant [46 x i8] c"DateTime.parse needs a string-literal pattern\00" @.str7726 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11680: index out of range: \00" @.str7727 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11681: index out of range: \00" @.str7728 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7729 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7730 = private unnamed_addr constant [2 x i8] c"0\00" @.str7731 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7732 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7733 = private unnamed_addr constant [5 x i8] c"1970\00" @.str7734 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7735 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7736 = private unnamed_addr constant [2 x i8] c"1\00" @.str7737 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7738 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7739 = private unnamed_addr constant [2 x i8] c"1\00" @.str7740 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7741 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7742 = private unnamed_addr constant [2 x i8] c"0\00" @.str7743 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7744 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7745 = private unnamed_addr constant [2 x i8] c"0\00" @.str7746 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7747 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7748 = private unnamed_addr constant [2 x i8] c"0\00" @.str7749 = private unnamed_addr constant [5 x i8] c"YYYY\00" @.str7750 = private unnamed_addr constant [3 x i8] c"MM\00" @.str7751 = private unnamed_addr constant [3 x i8] c"DD\00" @.str7752 = private unnamed_addr constant [3 x i8] c"HH\00" @.str7753 = private unnamed_addr constant [3 x i8] c"mm\00" @.str7754 = private unnamed_addr constant [3 x i8] c"ss\00" @.str7755 = private unnamed_addr constant [24 x i8] c"call i32 @lp_dt_rd(ptr \00" @.str7756 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7757 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7758 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7759 = private unnamed_addr constant [2 x i8] c")\00" @.str7760 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7761 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7762 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7763 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7764 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7765 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7766 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7767 = private unnamed_addr constant [34 x i8] c"call i32 @lp_days_from_civil(i32 \00" @.str7768 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7769 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7770 = private unnamed_addr constant [2 x i8] c")\00" @.str7771 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7772 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7773 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7774 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7775 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7776 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7777 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7778 = private unnamed_addr constant [3 x i8] c", \00" @.str7779 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7780 = private unnamed_addr constant [3 x i8] c", \00" @.str7781 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7782 = private unnamed_addr constant [3 x i8] c", \00" @.str7783 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7784 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str7785 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7786 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7787 = private unnamed_addr constant [15 x i8] c", i32 -1, i32 \00" @.str7788 = private unnamed_addr constant [4 x i8] c"int\00" @.str7789 = private unnamed_addr constant [7 x i8] c"format\00" @.str7790 = private unnamed_addr constant [6 x i8] c"parse\00" @.str7791 = private unnamed_addr constant [5 x i8] c"from\00" @.str7792 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11733: index out of range: \00" @.str7793 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11733: index out of range: \00" @.str7794 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11733: index out of range: \00" @.str7795 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11734: index out of range: \00" @.str7796 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11734: index out of range: \00" @.str7797 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11734: index out of range: \00" @.str7798 = private unnamed_addr constant [34 x i8] c"call i32 @lp_days_from_civil(i32 \00" @.str7799 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7800 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7801 = private unnamed_addr constant [2 x i8] c")\00" @.str7802 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7803 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str7804 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7805 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7806 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str7807 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7808 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7809 = private unnamed_addr constant [3 x i8] c", \00" @.str7810 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7811 = private unnamed_addr constant [3 x i8] c", \00" @.str7812 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7813 = private unnamed_addr constant [3 x i8] c", \00" @.str7814 = private unnamed_addr constant [4 x i8] c"int\00" @.str7815 = private unnamed_addr constant [5 x i8] c"date\00" @.str7816 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11744: index out of range: \00" @.str7817 = private unnamed_addr constant [4 x i8] c"int\00" @.str7818 = private unnamed_addr constant [4 x i8] c"add\00" @.str7819 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11748: index out of range: \00" @.str7820 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11748: index out of range: \00" @.str7821 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7822 = private unnamed_addr constant [3 x i8] c", \00" @.str7823 = private unnamed_addr constant [4 x i8] c"int\00" @.str7824 = private unnamed_addr constant [5 x i8] c"year\00" @.str7825 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11751: index out of range: \00" @.str7826 = private unnamed_addr constant [4 x i8] c"int\00" @.str7827 = private unnamed_addr constant [6 x i8] c"month\00" @.str7828 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11752: index out of range: \00" @.str7829 = private unnamed_addr constant [4 x i8] c"int\00" @.str7830 = private unnamed_addr constant [4 x i8] c"day\00" @.str7831 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11753: index out of range: \00" @.str7832 = private unnamed_addr constant [4 x i8] c"int\00" @.str7833 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str7834 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11755: index out of range: \00" @.str7835 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7836 = private unnamed_addr constant [4 x i8] c", 4\00" @.str7837 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7838 = private unnamed_addr constant [4 x i8] c", 7\00" @.str7839 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7840 = private unnamed_addr constant [4 x i8] c", 7\00" @.str7841 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7842 = private unnamed_addr constant [4 x i8] c", 7\00" @.str7843 = private unnamed_addr constant [4 x i8] c"int\00" @.str7844 = private unnamed_addr constant [5 x i8] c"hour\00" @.str7845 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11763: index out of range: \00" @.str7846 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7847 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7848 = private unnamed_addr constant [4 x i8] c"int\00" @.str7849 = private unnamed_addr constant [7 x i8] c"minute\00" @.str7850 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11768: index out of range: \00" @.str7851 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7852 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str7853 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str7854 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7855 = private unnamed_addr constant [4 x i8] c"int\00" @.str7856 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11774: index out of range: \00" @.str7857 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str7858 = private unnamed_addr constant [5 x i8] c", 60\00" @.str7859 = private unnamed_addr constant [4 x i8] c"int\00" @.str7860 = private unnamed_addr constant [59 x i8] c"define i32 @lp_days_from_civil(i32 %y0, i32 %m, i32 %d) {\0A\00" @.str7861 = private unnamed_addr constant [30 x i8] c" %mle2 = icmp sle i32 %m, 2\0A\00" @.str7862 = private unnamed_addr constant [41 x i8] c" %ysub = select i1 %mle2, i32 1, i32 0\0A\00" @.str7863 = private unnamed_addr constant [27 x i8] c" %y = sub i32 %y0, %ysub\0A\00" @.str7864 = private unnamed_addr constant [30 x i8] c" %yneg = icmp slt i32 %y, 0\0A\00" @.str7865 = private unnamed_addr constant [28 x i8] c" %ym399 = sub i32 %y, 399\0A\00" @.str7866 = private unnamed_addr constant [47 x i8] c" %enum = select i1 %yneg, i32 %ym399, i32 %y\0A\00" @.str7867 = private unnamed_addr constant [30 x i8] c" %era = sdiv i32 %enum, 400\0A\00" @.str7868 = private unnamed_addr constant [31 x i8] c" %era400 = mul i32 %era, 400\0A\00" @.str7869 = private unnamed_addr constant [30 x i8] c" %yoe = sub i32 %y, %era400\0A\00" @.str7870 = private unnamed_addr constant [30 x i8] c" %mgt2 = icmp sgt i32 %m, 2\0A\00" @.str7871 = private unnamed_addr constant [44 x i8] c" %mshift = select i1 %mgt2, i32 -3, i32 9\0A\00" @.str7872 = private unnamed_addr constant [29 x i8] c" %mm = add i32 %m, %mshift\0A\00" @.str7873 = private unnamed_addr constant [28 x i8] c" %t153 = mul i32 153, %mm\0A\00" @.str7874 = private unnamed_addr constant [29 x i8] c" %t153b = add i32 %t153, 2\0A\00" @.str7875 = private unnamed_addr constant [30 x i8] c" %doy0 = sdiv i32 %t153b, 5\0A\00" @.str7876 = private unnamed_addr constant [29 x i8] c" %doy1 = add i32 %doy0, %d\0A\00" @.str7877 = private unnamed_addr constant [27 x i8] c" %doy = sub i32 %doy1, 1\0A\00" @.str7878 = private unnamed_addr constant [31 x i8] c" %yoe365 = mul i32 %yoe, 365\0A\00" @.str7879 = private unnamed_addr constant [28 x i8] c" %yoe4 = sdiv i32 %yoe, 4\0A\00" @.str7880 = private unnamed_addr constant [32 x i8] c" %yoe100 = sdiv i32 %yoe, 100\0A\00" @.str7881 = private unnamed_addr constant [34 x i8] c" %doe0 = add i32 %yoe365, %yoe4\0A\00" @.str7882 = private unnamed_addr constant [34 x i8] c" %doe1 = sub i32 %doe0, %yoe100\0A\00" @.str7883 = private unnamed_addr constant [30 x i8] c" %doe = add i32 %doe1, %doy\0A\00" @.str7884 = private unnamed_addr constant [35 x i8] c" %e146097 = mul i32 %era, 146097\0A\00" @.str7885 = private unnamed_addr constant [32 x i8] c" %r0 = add i32 %e146097, %doe\0A\00" @.str7886 = private unnamed_addr constant [28 x i8] c" %r = sub i32 %r0, 719468\0A\00" @.str7887 = private unnamed_addr constant [14 x i8] c" ret i32 %r\0A\00" @.str7888 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str7889 = private unnamed_addr constant [71 x i8] c"define void @lp_civil_from_days(i32 %z0, ptr %yp, ptr %mp, ptr %dp) {\0A\00" @.str7890 = private unnamed_addr constant [28 x i8] c" %z = add i32 %z0, 719468\0A\00" @.str7891 = private unnamed_addr constant [30 x i8] c" %zneg = icmp slt i32 %z, 0\0A\00" @.str7892 = private unnamed_addr constant [28 x i8] c" %zm = sub i32 %z, 146096\0A\00" @.str7893 = private unnamed_addr constant [44 x i8] c" %enum = select i1 %zneg, i32 %zm, i32 %z\0A\00" @.str7894 = private unnamed_addr constant [33 x i8] c" %era = sdiv i32 %enum, 146097\0A\00" @.str7895 = private unnamed_addr constant [37 x i8] c" %era146097 = mul i32 %era, 146097\0A\00" @.str7896 = private unnamed_addr constant [33 x i8] c" %doe = sub i32 %z, %era146097\0A\00" @.str7897 = private unnamed_addr constant [32 x i8] c" %d1460 = sdiv i32 %doe, 1460\0A\00" @.str7898 = private unnamed_addr constant [34 x i8] c" %d36524 = sdiv i32 %doe, 36524\0A\00" @.str7899 = private unnamed_addr constant [36 x i8] c" %d146096 = sdiv i32 %doe, 146096\0A\00" @.str7900 = private unnamed_addr constant [30 x i8] c" %ya = sub i32 %doe, %d1460\0A\00" @.str7901 = private unnamed_addr constant [30 x i8] c" %yb = add i32 %ya, %d36524\0A\00" @.str7902 = private unnamed_addr constant [31 x i8] c" %yc = sub i32 %yb, %d146096\0A\00" @.str7903 = private unnamed_addr constant [28 x i8] c" %yoe = sdiv i32 %yc, 365\0A\00" @.str7904 = private unnamed_addr constant [31 x i8] c" %era400 = mul i32 %era, 400\0A\00" @.str7905 = private unnamed_addr constant [31 x i8] c" %yy = add i32 %yoe, %era400\0A\00" @.str7906 = private unnamed_addr constant [31 x i8] c" %yoe365 = mul i32 %yoe, 365\0A\00" @.str7907 = private unnamed_addr constant [28 x i8] c" %yoe4 = sdiv i32 %yoe, 4\0A\00" @.str7908 = private unnamed_addr constant [32 x i8] c" %yoe100 = sdiv i32 %yoe, 100\0A\00" @.str7909 = private unnamed_addr constant [34 x i8] c" %sub0 = add i32 %yoe365, %yoe4\0A\00" @.str7910 = private unnamed_addr constant [34 x i8] c" %sub1 = sub i32 %sub0, %yoe100\0A\00" @.str7911 = private unnamed_addr constant [30 x i8] c" %doy = sub i32 %doe, %sub1\0A\00" @.str7912 = private unnamed_addr constant [30 x i8] c" %fivedoy = mul i32 5, %doy\0A\00" @.str7913 = private unnamed_addr constant [35 x i8] c" %fivedoy2 = add i32 %fivedoy, 2\0A\00" @.str7914 = private unnamed_addr constant [34 x i8] c" %mpv = sdiv i32 %fivedoy2, 153\0A\00" @.str7915 = private unnamed_addr constant [29 x i8] c" %m153 = mul i32 153, %mpv\0A\00" @.str7916 = private unnamed_addr constant [29 x i8] c" %m153b = add i32 %m153, 2\0A\00" @.str7917 = private unnamed_addr constant [31 x i8] c" %m153c = sdiv i32 %m153b, 5\0A\00" @.str7918 = private unnamed_addr constant [31 x i8] c" %dd0 = sub i32 %doy, %m153c\0A\00" @.str7919 = private unnamed_addr constant [25 x i8] c" %dd = add i32 %dd0, 1\0A\00" @.str7920 = private unnamed_addr constant [35 x i8] c" %mplt10 = icmp slt i32 %mpv, 10\0A\00" @.str7921 = private unnamed_addr constant [29 x i8] c" %mplus3 = add i32 %mpv, 3\0A\00" @.str7922 = private unnamed_addr constant [30 x i8] c" %mminus9 = sub i32 %mpv, 9\0A\00" @.str7923 = private unnamed_addr constant [56 x i8] c" %mfin = select i1 %mplt10, i32 %mplus3, i32 %mminus9\0A\00" @.str7924 = private unnamed_addr constant [34 x i8] c" %mmle2 = icmp sle i32 %mfin, 2\0A\00" @.str7925 = private unnamed_addr constant [42 x i8] c" %yinc = select i1 %mmle2, i32 1, i32 0\0A\00" @.str7926 = private unnamed_addr constant [30 x i8] c" %yfin = add i32 %yy, %yinc\0A\00" @.str7927 = private unnamed_addr constant [28 x i8] c" store i32 %yfin, ptr %yp\0A\00" @.str7928 = private unnamed_addr constant [28 x i8] c" store i32 %mfin, ptr %mp\0A\00" @.str7929 = private unnamed_addr constant [26 x i8] c" store i32 %dd, ptr %dp\0A\00" @.str7930 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str7931 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str7932 = private unnamed_addr constant [42 x i8] c"define ptr @lp_dt_pad0(i32 %v, i32 %w) {\0A\00" @.str7933 = private unnamed_addr constant [28 x i8] c" %we = zext i32 %w to i64\0A\00" @.str7934 = private unnamed_addr constant [24 x i8] c" %sz = add i64 %we, 1\0A\00" @.str7935 = private unnamed_addr constant [36 x i8] c" %buf = call ptr @malloc(i64 %sz)\0A\00" @.str7936 = private unnamed_addr constant [46 x i8] c" %endp = getelementptr i8, ptr %buf, i32 %w\0A\00" @.str7937 = private unnamed_addr constant [25 x i8] c" store i8 0, ptr %endp\0A\00" @.str7938 = private unnamed_addr constant [39 x i8] c" %kp = alloca i32\0A %vp = alloca i32\0A\00" @.str7939 = private unnamed_addr constant [74 x i8] c" %km1 = sub i32 %w, 1\0A store i32 %km1, ptr %kp\0A store i32 %v, ptr %vp\0A\00" @.str7940 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str7941 = private unnamed_addr constant [99 x i8] c"loop:\0A %k = load i32, ptr %kp\0A %kok = icmp sge i32 %k, 0\0A br i1 %kok, label %body, label %done\0A\00" @.str7942 = private unnamed_addr constant [109 x i8] c"body:\0A %vv = load i32, ptr %vp\0A %d = srem i32 %vv, 10\0A %ch = add i32 %d, 48\0A %ch8 = trunc i32 %ch to i8\0A\00" @.str7943 = private unnamed_addr constant [69 x i8] c" %cp = getelementptr i8, ptr %buf, i32 %k\0A store i8 %ch8, ptr %cp\0A\00" @.str7944 = private unnamed_addr constant [115 x i8] c" %vn = sdiv i32 %vv, 10\0A store i32 %vn, ptr %vp\0A %kn = sub i32 %k, 1\0A store i32 %kn, ptr %kp\0A br label %loop\0A\00" @.str7945 = private unnamed_addr constant [24 x i8] c"done:\0A ret ptr %buf\0A}\0A\00" @.str7946 = private unnamed_addr constant [62 x i8] c"define i32 @lp_dt_rd(ptr %s, i32 %off, i32 %w, ptr %failp) {\0A\00" @.str7947 = private unnamed_addr constant [89 x i8] c" %accp = alloca i32\0A store i32 0, ptr %accp\0A %kp = alloca i32\0A store i32 0, ptr %kp\0A\00" @.str7948 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str7949 = private unnamed_addr constant [100 x i8] c"loop:\0A %k = load i32, ptr %kp\0A %kok = icmp slt i32 %k, %w\0A br i1 %kok, label %body, label %done\0A\00" @.str7950 = private unnamed_addr constant [127 x i8] c"body:\0A %idx = add i32 %off, %k\0A %cp = getelementptr i8, ptr %s, i32 %idx\0A %c8 = load i8, ptr %cp\0A %c = sext i8 %c8 to i32\0A\00" @.str7951 = private unnamed_addr constant [70 x i8] c" %zero = icmp eq i32 %c, 0\0A br i1 %zero, label %stop, label %digit\0A\00" @.str7952 = private unnamed_addr constant [50 x i8] c"stop:\0A store i32 1, ptr %failp\0A br label %done\0A\00" @.str7953 = private unnamed_addr constant [129 x i8] c"digit:\0A %lt = icmp slt i32 %c, 48\0A %gt = icmp sgt i32 %c, 57\0A %isbad = or i1 %lt, %gt\0A br i1 %isbad, label %fail, label %ok\0A\00" @.str7954 = private unnamed_addr constant [50 x i8] c"fail:\0A store i32 1, ptr %failp\0A br label %next\0A\00" @.str7955 = private unnamed_addr constant [159 x i8] c"ok:\0A %acc0 = load i32, ptr %accp\0A %m10 = mul i32 %acc0, 10\0A %dg = sub i32 %c, 48\0A %acc1 = add i32 %m10, %dg\0A store i32 %acc1, ptr %accp\0A br label %next\0A\00" @.str7956 = private unnamed_addr constant [71 x i8] c"next:\0A %kn = add i32 %k, 1\0A store i32 %kn, ptr %kp\0A br label %loop\0A\00" @.str7957 = private unnamed_addr constant [49 x i8] c"done:\0A %r = load i32, ptr %accp\0A ret i32 %r\0A}\0A\00" @.str7958 = private unnamed_addr constant [4 x i8] c"now\00" @.str7959 = private unnamed_addr constant [4 x i8] c"set\00" @.str7960 = private unnamed_addr constant [8 x i8] c"advance\00" @.str7961 = private unnamed_addr constant [6 x i8] c"reset\00" @.str7962 = private unnamed_addr constant [4 x i8] c"now\00" @.str7963 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_clock\00" @.str7964 = private unnamed_addr constant [4 x i8] c"int\00" @.str7965 = private unnamed_addr constant [6 x i8] c"reset\00" @.str7966 = private unnamed_addr constant [29 x i8] c" store i32 0, ptr @L_clock\0A\00" @.str7967 = private unnamed_addr constant [2 x i8] c"0\00" @.str7968 = private unnamed_addr constant [5 x i8] c"void\00" @.str7969 = private unnamed_addr constant [4 x i8] c"set\00" @.str7970 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11911: index out of range: \00" @.str7971 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7972 = private unnamed_addr constant [16 x i8] c", ptr @L_clock\0A\00" @.str7973 = private unnamed_addr constant [2 x i8] c"0\00" @.str7974 = private unnamed_addr constant [5 x i8] c"void\00" @.str7975 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11916: index out of range: \00" @.str7976 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_clock\00" @.str7977 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7978 = private unnamed_addr constant [3 x i8] c", \00" @.str7979 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7980 = private unnamed_addr constant [16 x i8] c", ptr @L_clock\0A\00" @.str7981 = private unnamed_addr constant [2 x i8] c"0\00" @.str7982 = private unnamed_addr constant [5 x i8] c"void\00" @.str7983 = private unnamed_addr constant [4 x i8] c"rgb\00" @.str7984 = private unnamed_addr constant [5 x i8] c"rgba\00" @.str7985 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str7986 = private unnamed_addr constant [7 x i8] c"darken\00" @.str7987 = private unnamed_addr constant [8 x i8] c"lighten\00" @.str7988 = private unnamed_addr constant [11 x i8] c"with_alpha\00" @.str7989 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str7990 = private unnamed_addr constant [3 x i8] c", \00" @.str7991 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str7992 = private unnamed_addr constant [6 x i8] c", 255\00" @.str7993 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str7994 = private unnamed_addr constant [5 x i8] c", 16\00" @.str7995 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str7996 = private unnamed_addr constant [4 x i8] c", 8\00" @.str7997 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str7998 = private unnamed_addr constant [3 x i8] c", \00" @.str7999 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str8000 = private unnamed_addr constant [3 x i8] c", \00" @.str8001 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str8002 = private unnamed_addr constant [3 x i8] c", \00" @.str8003 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8004 = private unnamed_addr constant [3 x i8] c", \00" @.str8005 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str8006 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8007 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8008 = private unnamed_addr constant [3 x i8] c", \00" @.str8009 = private unnamed_addr constant [4 x i8] c"rgb\00" @.str8010 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11958: index out of range: \00" @.str8011 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11958: index out of range: \00" @.str8012 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11958: index out of range: \00" @.str8013 = private unnamed_addr constant [4 x i8] c"int\00" @.str8014 = private unnamed_addr constant [5 x i8] c"rgba\00" @.str8015 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11962: index out of range: \00" @.str8016 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11962: index out of range: \00" @.str8017 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11962: index out of range: \00" @.str8018 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11962: index out of range: \00" @.str8019 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str8020 = private unnamed_addr constant [5 x i8] c", 24\00" @.str8021 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str8022 = private unnamed_addr constant [3 x i8] c", \00" @.str8023 = private unnamed_addr constant [4 x i8] c"int\00" @.str8024 = private unnamed_addr constant [11 x i8] c"with_alpha\00" @.str8025 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11968: index out of range: \00" @.str8026 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11968: index out of range: \00" @.str8027 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str8028 = private unnamed_addr constant [11 x i8] c", 16777215\00" @.str8029 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str8030 = private unnamed_addr constant [5 x i8] c", 24\00" @.str8031 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str8032 = private unnamed_addr constant [3 x i8] c", \00" @.str8033 = private unnamed_addr constant [4 x i8] c"int\00" @.str8034 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str8035 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11974: index out of range: \00" @.str8036 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11974: index out of range: \00" @.str8037 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11974: index out of range: \00" @.str8038 = private unnamed_addr constant [3 x i8] c"16\00" @.str8039 = private unnamed_addr constant [3 x i8] c"16\00" @.str8040 = private unnamed_addr constant [2 x i8] c"8\00" @.str8041 = private unnamed_addr constant [2 x i8] c"8\00" @.str8042 = private unnamed_addr constant [2 x i8] c"0\00" @.str8043 = private unnamed_addr constant [2 x i8] c"0\00" @.str8044 = private unnamed_addr constant [4 x i8] c"int\00" @.str8045 = private unnamed_addr constant [7 x i8] c"darken\00" @.str8046 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11981: index out of range: \00" @.str8047 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11981: index out of range: \00" @.str8048 = private unnamed_addr constant [16 x i8] c"sub i32 65536, \00" @.str8049 = private unnamed_addr constant [3 x i8] c"16\00" @.str8050 = private unnamed_addr constant [2 x i8] c"8\00" @.str8051 = private unnamed_addr constant [2 x i8] c"0\00" @.str8052 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8053 = private unnamed_addr constant [3 x i8] c", \00" @.str8054 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str8055 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8056 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8057 = private unnamed_addr constant [3 x i8] c", \00" @.str8058 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str8059 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8060 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8061 = private unnamed_addr constant [3 x i8] c", \00" @.str8062 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str8063 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8064 = private unnamed_addr constant [4 x i8] c"int\00" @.str8065 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11990: index out of range: \00" @.str8066 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:11990: index out of range: \00" @.str8067 = private unnamed_addr constant [3 x i8] c"16\00" @.str8068 = private unnamed_addr constant [2 x i8] c"8\00" @.str8069 = private unnamed_addr constant [2 x i8] c"0\00" @.str8070 = private unnamed_addr constant [14 x i8] c"sub i32 255, \00" @.str8071 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8072 = private unnamed_addr constant [3 x i8] c", \00" @.str8073 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str8074 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8075 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8076 = private unnamed_addr constant [3 x i8] c", \00" @.str8077 = private unnamed_addr constant [14 x i8] c"sub i32 255, \00" @.str8078 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8079 = private unnamed_addr constant [3 x i8] c", \00" @.str8080 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str8081 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8082 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8083 = private unnamed_addr constant [3 x i8] c", \00" @.str8084 = private unnamed_addr constant [14 x i8] c"sub i32 255, \00" @.str8085 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8086 = private unnamed_addr constant [3 x i8] c", \00" @.str8087 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str8088 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8089 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8090 = private unnamed_addr constant [3 x i8] c", \00" @.str8091 = private unnamed_addr constant [4 x i8] c"int\00" @.str8092 = private unnamed_addr constant [6 x i8] c"White\00" @.str8093 = private unnamed_addr constant [5 x i8] c"Snow\00" @.str8094 = private unnamed_addr constant [6 x i8] c"Ivory\00" @.str8095 = private unnamed_addr constant [14 x i8] c"EggShellWhite\00" @.str8096 = private unnamed_addr constant [12 x i8] c"FloralWhite\00" @.str8097 = private unnamed_addr constant [9 x i8] c"SeaShell\00" @.str8098 = private unnamed_addr constant [6 x i8] c"Linen\00" @.str8099 = private unnamed_addr constant [13 x i8] c"AntiqueWhite\00" @.str8100 = private unnamed_addr constant [8 x i8] c"OldLace\00" @.str8101 = private unnamed_addr constant [6 x i8] c"Beige\00" @.str8102 = private unnamed_addr constant [6 x i8] c"Cream\00" @.str8103 = private unnamed_addr constant [9 x i8] c"Honeydew\00" @.str8104 = private unnamed_addr constant [10 x i8] c"MintCream\00" @.str8105 = private unnamed_addr constant [6 x i8] c"Azure\00" @.str8106 = private unnamed_addr constant [10 x i8] c"AliceBlue\00" @.str8107 = private unnamed_addr constant [11 x i8] c"GhostWhite\00" @.str8108 = private unnamed_addr constant [11 x i8] c"WhiteSmoke\00" @.str8109 = private unnamed_addr constant [9 x i8] c"Lavender\00" @.str8110 = private unnamed_addr constant [5 x i8] c"Bone\00" @.str8111 = private unnamed_addr constant [10 x i8] c"Parchment\00" @.str8112 = private unnamed_addr constant [10 x i8] c"Gainsboro\00" @.str8113 = private unnamed_addr constant [10 x i8] c"LightGray\00" @.str8114 = private unnamed_addr constant [7 x i8] c"Silver\00" @.str8115 = private unnamed_addr constant [4 x i8] c"Ash\00" @.str8116 = private unnamed_addr constant [9 x i8] c"DarkGray\00" @.str8117 = private unnamed_addr constant [5 x i8] c"Gray\00" @.str8118 = private unnamed_addr constant [8 x i8] c"DimGray\00" @.str8119 = private unnamed_addr constant [7 x i8] c"Nickel\00" @.str8120 = private unnamed_addr constant [6 x i8] c"Slate\00" @.str8121 = private unnamed_addr constant [10 x i8] c"SlateGray\00" @.str8122 = private unnamed_addr constant [15 x i8] c"LightSlateGray\00" @.str8123 = private unnamed_addr constant [9 x i8] c"Gunmetal\00" @.str8124 = private unnamed_addr constant [9 x i8] c"Charcoal\00" @.str8125 = private unnamed_addr constant [9 x i8] c"Graphite\00" @.str8126 = private unnamed_addr constant [5 x i8] c"Onyx\00" @.str8127 = private unnamed_addr constant [4 x i8] c"Jet\00" @.str8128 = private unnamed_addr constant [6 x i8] c"Black\00" @.str8129 = private unnamed_addr constant [11 x i8] c"EerieBlack\00" @.str8130 = private unnamed_addr constant [12 x i8] c"RaisinBlack\00" @.str8131 = private unnamed_addr constant [6 x i8] c"Ebony\00" @.str8132 = private unnamed_addr constant [4 x i8] c"Red\00" @.str8133 = private unnamed_addr constant [8 x i8] c"Crimson\00" @.str8134 = private unnamed_addr constant [8 x i8] c"Scarlet\00" @.str8135 = private unnamed_addr constant [10 x i8] c"Vermilion\00" @.str8136 = private unnamed_addr constant [10 x i8] c"FireBrick\00" @.str8137 = private unnamed_addr constant [9 x i8] c"Cinnabar\00" @.str8138 = private unnamed_addr constant [8 x i8] c"DarkRed\00" @.str8139 = private unnamed_addr constant [7 x i8] c"Maroon\00" @.str8140 = private unnamed_addr constant [5 x i8] c"Ruby\00" @.str8141 = private unnamed_addr constant [9 x i8] c"Cardinal\00" @.str8142 = private unnamed_addr constant [10 x i8] c"IndianRed\00" @.str8143 = private unnamed_addr constant [5 x i8] c"Rust\00" @.str8144 = private unnamed_addr constant [8 x i8] c"Sangria\00" @.str8145 = private unnamed_addr constant [8 x i8] c"Redwood\00" @.str8146 = private unnamed_addr constant [7 x i8] c"Cerise\00" @.str8147 = private unnamed_addr constant [9 x i8] c"Amaranth\00" @.str8148 = private unnamed_addr constant [8 x i8] c"Carmine\00" @.str8149 = private unnamed_addr constant [9 x i8] c"Chestnut\00" @.str8150 = private unnamed_addr constant [6 x i8] c"Brick\00" @.str8151 = private unnamed_addr constant [11 x i8] c"TerraCotta\00" @.str8152 = private unnamed_addr constant [5 x i8] c"Pink\00" @.str8153 = private unnamed_addr constant [10 x i8] c"LightPink\00" @.str8154 = private unnamed_addr constant [8 x i8] c"HotPink\00" @.str8155 = private unnamed_addr constant [9 x i8] c"DeepPink\00" @.str8156 = private unnamed_addr constant [14 x i8] c"PaleVioletRed\00" @.str8157 = private unnamed_addr constant [5 x i8] c"Rose\00" @.str8158 = private unnamed_addr constant [6 x i8] c"Blush\00" @.str8159 = private unnamed_addr constant [7 x i8] c"Salmon\00" @.str8160 = private unnamed_addr constant [12 x i8] c"LightSalmon\00" @.str8161 = private unnamed_addr constant [11 x i8] c"DarkSalmon\00" @.str8162 = private unnamed_addr constant [6 x i8] c"Coral\00" @.str8163 = private unnamed_addr constant [11 x i8] c"Watermelon\00" @.str8164 = private unnamed_addr constant [9 x i8] c"Flamingo\00" @.str8165 = private unnamed_addr constant [10 x i8] c"Bubblegum\00" @.str8166 = private unnamed_addr constant [8 x i8] c"Fuchsia\00" @.str8167 = private unnamed_addr constant [8 x i8] c"Magenta\00" @.str8168 = private unnamed_addr constant [6 x i8] c"Mauve\00" @.str8169 = private unnamed_addr constant [5 x i8] c"Puce\00" @.str8170 = private unnamed_addr constant [8 x i8] c"Thistle\00" @.str8171 = private unnamed_addr constant [7 x i8] c"Orchid\00" @.str8172 = private unnamed_addr constant [7 x i8] c"Orange\00" @.str8173 = private unnamed_addr constant [11 x i8] c"DarkOrange\00" @.str8174 = private unnamed_addr constant [10 x i8] c"Tangerine\00" @.str8175 = private unnamed_addr constant [8 x i8] c"Pumpkin\00" @.str8176 = private unnamed_addr constant [8 x i8] c"Apricot\00" @.str8177 = private unnamed_addr constant [6 x i8] c"Peach\00" @.str8178 = private unnamed_addr constant [11 x i8] c"Cantaloupe\00" @.str8179 = private unnamed_addr constant [6 x i8] c"Amber\00" @.str8180 = private unnamed_addr constant [7 x i8] c"Bronze\00" @.str8181 = private unnamed_addr constant [7 x i8] c"Copper\00" @.str8182 = private unnamed_addr constant [9 x i8] c"Marigold\00" @.str8183 = private unnamed_addr constant [7 x i8] c"Carrot\00" @.str8184 = private unnamed_addr constant [10 x i8] c"Persimmon\00" @.str8185 = private unnamed_addr constant [7 x i8] c"Papaya\00" @.str8186 = private unnamed_addr constant [7 x i8] c"Sunset\00" @.str8187 = private unnamed_addr constant [7 x i8] c"Yellow\00" @.str8188 = private unnamed_addr constant [12 x i8] c"LightYellow\00" @.str8189 = private unnamed_addr constant [5 x i8] c"Gold\00" @.str8190 = private unnamed_addr constant [10 x i8] c"Goldenrod\00" @.str8191 = private unnamed_addr constant [6 x i8] c"Lemon\00" @.str8192 = private unnamed_addr constant [7 x i8] c"Canary\00" @.str8193 = private unnamed_addr constant [8 x i8] c"Mustard\00" @.str8194 = private unnamed_addr constant [5 x i8] c"Flax\00" @.str8195 = private unnamed_addr constant [6 x i8] c"Wheat\00" @.str8196 = private unnamed_addr constant [5 x i8] c"Corn\00" @.str8197 = private unnamed_addr constant [10 x i8] c"Dandelion\00" @.str8198 = private unnamed_addr constant [8 x i8] c"Saffron\00" @.str8199 = private unnamed_addr constant [6 x i8] c"Khaki\00" @.str8200 = private unnamed_addr constant [10 x i8] c"DarkKhaki\00" @.str8201 = private unnamed_addr constant [6 x i8] c"Straw\00" @.str8202 = private unnamed_addr constant [6 x i8] c"Brown\00" @.str8203 = private unnamed_addr constant [12 x i8] c"SaddleBrown\00" @.str8204 = private unnamed_addr constant [7 x i8] c"Sienna\00" @.str8205 = private unnamed_addr constant [10 x i8] c"Chocolate\00" @.str8206 = private unnamed_addr constant [5 x i8] c"Peru\00" @.str8207 = private unnamed_addr constant [4 x i8] c"Tan\00" @.str8208 = private unnamed_addr constant [10 x i8] c"BurlyWood\00" @.str8209 = private unnamed_addr constant [5 x i8] c"Sand\00" @.str8210 = private unnamed_addr constant [7 x i8] c"Coffee\00" @.str8211 = private unnamed_addr constant [9 x i8] c"Espresso\00" @.str8212 = private unnamed_addr constant [9 x i8] c"Mahogany\00" @.str8213 = private unnamed_addr constant [7 x i8] c"Walnut\00" @.str8214 = private unnamed_addr constant [6 x i8] c"Umber\00" @.str8215 = private unnamed_addr constant [6 x i8] c"Sepia\00" @.str8216 = private unnamed_addr constant [6 x i8] c"Taupe\00" @.str8217 = private unnamed_addr constant [5 x i8] c"Fawn\00" @.str8218 = private unnamed_addr constant [8 x i8] c"Caramel\00" @.str8219 = private unnamed_addr constant [6 x i8] c"Cocoa\00" @.str8220 = private unnamed_addr constant [6 x i8] c"Hazel\00" @.str8221 = private unnamed_addr constant [6 x i8] c"Wenge\00" @.str8222 = private unnamed_addr constant [6 x i8] c"Green\00" @.str8223 = private unnamed_addr constant [5 x i8] c"Lime\00" @.str8224 = private unnamed_addr constant [10 x i8] c"LimeGreen\00" @.str8225 = private unnamed_addr constant [10 x i8] c"LawnGreen\00" @.str8226 = private unnamed_addr constant [11 x i8] c"Chartreuse\00" @.str8227 = private unnamed_addr constant [12 x i8] c"GreenYellow\00" @.str8228 = private unnamed_addr constant [12 x i8] c"SpringGreen\00" @.str8229 = private unnamed_addr constant [10 x i8] c"MintGreen\00" @.str8230 = private unnamed_addr constant [9 x i8] c"SeaGreen\00" @.str8231 = private unnamed_addr constant [15 x i8] c"MediumSeaGreen\00" @.str8232 = private unnamed_addr constant [12 x i8] c"ForestGreen\00" @.str8233 = private unnamed_addr constant [10 x i8] c"DarkGreen\00" @.str8234 = private unnamed_addr constant [10 x i8] c"OliveDrab\00" @.str8235 = private unnamed_addr constant [6 x i8] c"Olive\00" @.str8236 = private unnamed_addr constant [5 x i8] c"Moss\00" @.str8237 = private unnamed_addr constant [5 x i8] c"Fern\00" @.str8238 = private unnamed_addr constant [8 x i8] c"Emerald\00" @.str8239 = private unnamed_addr constant [5 x i8] c"Jade\00" @.str8240 = private unnamed_addr constant [10 x i8] c"Malachite\00" @.str8241 = private unnamed_addr constant [9 x i8] c"Shamrock\00" @.str8242 = private unnamed_addr constant [10 x i8] c"Pistachio\00" @.str8243 = private unnamed_addr constant [8 x i8] c"Avocado\00" @.str8244 = private unnamed_addr constant [5 x i8] c"Pine\00" @.str8245 = private unnamed_addr constant [5 x i8] c"Sage\00" @.str8246 = private unnamed_addr constant [6 x i8] c"Kelly\00" @.str8247 = private unnamed_addr constant [7 x i8] c"Hunter\00" @.str8248 = private unnamed_addr constant [6 x i8] c"Basil\00" @.str8249 = private unnamed_addr constant [7 x i8] c"Clover\00" @.str8250 = private unnamed_addr constant [8 x i8] c"Juniper\00" @.str8251 = private unnamed_addr constant [5 x i8] c"Neon\00" @.str8252 = private unnamed_addr constant [5 x i8] c"Cyan\00" @.str8253 = private unnamed_addr constant [5 x i8] c"Aqua\00" @.str8254 = private unnamed_addr constant [10 x i8] c"LightCyan\00" @.str8255 = private unnamed_addr constant [14 x i8] c"PaleTurquoise\00" @.str8256 = private unnamed_addr constant [11 x i8] c"Aquamarine\00" @.str8257 = private unnamed_addr constant [10 x i8] c"Turquoise\00" @.str8258 = private unnamed_addr constant [16 x i8] c"MediumTurquoise\00" @.str8259 = private unnamed_addr constant [14 x i8] c"DarkTurquoise\00" @.str8260 = private unnamed_addr constant [5 x i8] c"Teal\00" @.str8261 = private unnamed_addr constant [9 x i8] c"DarkCyan\00" @.str8262 = private unnamed_addr constant [10 x i8] c"CadetBlue\00" @.str8263 = private unnamed_addr constant [7 x i8] c"Lagoon\00" @.str8264 = private unnamed_addr constant [8 x i8] c"Seafoam\00" @.str8265 = private unnamed_addr constant [9 x i8] c"Cerulean\00" @.str8266 = private unnamed_addr constant [13 x i8] c"SkyBlueLight\00" @.str8267 = private unnamed_addr constant [6 x i8] c"Robin\00" @.str8268 = private unnamed_addr constant [10 x i8] c"Verdigris\00" @.str8269 = private unnamed_addr constant [8 x i8] c"Celadon\00" @.str8270 = private unnamed_addr constant [5 x i8] c"Blue\00" @.str8271 = private unnamed_addr constant [10 x i8] c"LightBlue\00" @.str8272 = private unnamed_addr constant [11 x i8] c"PowderBlue\00" @.str8273 = private unnamed_addr constant [8 x i8] c"SkyBlue\00" @.str8274 = private unnamed_addr constant [13 x i8] c"LightSkyBlue\00" @.str8275 = private unnamed_addr constant [12 x i8] c"DeepSkyBlue\00" @.str8276 = private unnamed_addr constant [11 x i8] c"DodgerBlue\00" @.str8277 = private unnamed_addr constant [15 x i8] c"CornflowerBlue\00" @.str8278 = private unnamed_addr constant [10 x i8] c"SteelBlue\00" @.str8279 = private unnamed_addr constant [10 x i8] c"RoyalBlue\00" @.str8280 = private unnamed_addr constant [11 x i8] c"MediumBlue\00" @.str8281 = private unnamed_addr constant [9 x i8] c"DarkBlue\00" @.str8282 = private unnamed_addr constant [5 x i8] c"Navy\00" @.str8283 = private unnamed_addr constant [13 x i8] c"MidnightBlue\00" @.str8284 = private unnamed_addr constant [7 x i8] c"Cobalt\00" @.str8285 = private unnamed_addr constant [9 x i8] c"Sapphire\00" @.str8286 = private unnamed_addr constant [6 x i8] c"Denim\00" @.str8287 = private unnamed_addr constant [7 x i8] c"Indigo\00" @.str8288 = private unnamed_addr constant [9 x i8] c"Prussian\00" @.str8289 = private unnamed_addr constant [12 x i8] c"Ultramarine\00" @.str8290 = private unnamed_addr constant [11 x i8] c"Periwinkle\00" @.str8291 = private unnamed_addr constant [5 x i8] c"Iris\00" @.str8292 = private unnamed_addr constant [9 x i8] c"Glaucous\00" @.str8293 = private unnamed_addr constant [7 x i8] c"Zaffre\00" @.str8294 = private unnamed_addr constant [6 x i8] c"Berry\00" @.str8295 = private unnamed_addr constant [7 x i8] c"Purple\00" @.str8296 = private unnamed_addr constant [7 x i8] c"Violet\00" @.str8297 = private unnamed_addr constant [11 x i8] c"DarkViolet\00" @.str8298 = private unnamed_addr constant [11 x i8] c"BlueViolet\00" @.str8299 = private unnamed_addr constant [13 x i8] c"MediumPurple\00" @.str8300 = private unnamed_addr constant [9 x i8] c"Amethyst\00" @.str8301 = private unnamed_addr constant [5 x i8] c"Plum\00" @.str8302 = private unnamed_addr constant [9 x i8] c"Eggplant\00" @.str8303 = private unnamed_addr constant [6 x i8] c"Grape\00" @.str8304 = private unnamed_addr constant [5 x i8] c"Wine\00" @.str8305 = private unnamed_addr constant [9 x i8] c"Mulberry\00" @.str8306 = private unnamed_addr constant [6 x i8] c"Lilac\00" @.str8307 = private unnamed_addr constant [9 x i8] c"Wisteria\00" @.str8308 = private unnamed_addr constant [11 x i8] c"Heliotrope\00" @.str8309 = private unnamed_addr constant [10 x i8] c"Byzantium\00" @.str8310 = private unnamed_addr constant [7 x i8] c"Tyrian\00" @.str8311 = private unnamed_addr constant [14 x i8] c"RebeccaPurple\00" @.str8312 = private unnamed_addr constant [8 x i8] c"Orchid2\00" @.str8313 = private unnamed_addr constant [6 x i8] c"Space\00" @.str8314 = private unnamed_addr constant [6 x i8] c"Enter\00" @.str8315 = private unnamed_addr constant [7 x i8] c"Return\00" @.str8316 = private unnamed_addr constant [7 x i8] c"Escape\00" @.str8317 = private unnamed_addr constant [4 x i8] c"Esc\00" @.str8318 = private unnamed_addr constant [6 x i8] c"Shift\00" @.str8319 = private unnamed_addr constant [4 x i8] c"Tab\00" @.str8320 = private unnamed_addr constant [10 x i8] c"Backspace\00" @.str8321 = private unnamed_addr constant [3 x i8] c"Up\00" @.str8322 = private unnamed_addr constant [5 x i8] c"Down\00" @.str8323 = private unnamed_addr constant [5 x i8] c"Left\00" @.str8324 = private unnamed_addr constant [6 x i8] c"Right\00" @.str8325 = private unnamed_addr constant [3 x i8] c"F1\00" @.str8326 = private unnamed_addr constant [3 x i8] c"F2\00" @.str8327 = private unnamed_addr constant [3 x i8] c"F3\00" @.str8328 = private unnamed_addr constant [3 x i8] c"F4\00" @.str8329 = private unnamed_addr constant [3 x i8] c"F5\00" @.str8330 = private unnamed_addr constant [3 x i8] c"F6\00" @.str8331 = private unnamed_addr constant [3 x i8] c"F7\00" @.str8332 = private unnamed_addr constant [3 x i8] c"F8\00" @.str8333 = private unnamed_addr constant [3 x i8] c"F9\00" @.str8334 = private unnamed_addr constant [4 x i8] c"F10\00" @.str8335 = private unnamed_addr constant [4 x i8] c"F11\00" @.str8336 = private unnamed_addr constant [4 x i8] c"F12\00" @.str8337 = private unnamed_addr constant [5 x i8] c"Home\00" @.str8338 = private unnamed_addr constant [4 x i8] c"End\00" @.str8339 = private unnamed_addr constant [7 x i8] c"PageUp\00" @.str8340 = private unnamed_addr constant [9 x i8] c"PageDown\00" @.str8341 = private unnamed_addr constant [7 x i8] c"Insert\00" @.str8342 = private unnamed_addr constant [7 x i8] c"Delete\00" @.str8343 = private unnamed_addr constant [9 x i8] c"CapsLock\00" @.str8344 = private unnamed_addr constant [8 x i8] c"Numpad0\00" @.str8345 = private unnamed_addr constant [8 x i8] c"Numpad1\00" @.str8346 = private unnamed_addr constant [8 x i8] c"Numpad2\00" @.str8347 = private unnamed_addr constant [8 x i8] c"Numpad3\00" @.str8348 = private unnamed_addr constant [8 x i8] c"Numpad4\00" @.str8349 = private unnamed_addr constant [8 x i8] c"Numpad5\00" @.str8350 = private unnamed_addr constant [8 x i8] c"Numpad6\00" @.str8351 = private unnamed_addr constant [8 x i8] c"Numpad7\00" @.str8352 = private unnamed_addr constant [8 x i8] c"Numpad8\00" @.str8353 = private unnamed_addr constant [8 x i8] c"Numpad9\00" @.str8354 = private unnamed_addr constant [15 x i8] c"NumpadMultiply\00" @.str8355 = private unnamed_addr constant [10 x i8] c"NumpadAdd\00" @.str8356 = private unnamed_addr constant [15 x i8] c"NumpadSubtract\00" @.str8357 = private unnamed_addr constant [14 x i8] c"NumpadDecimal\00" @.str8358 = private unnamed_addr constant [13 x i8] c"NumpadDivide\00" @.str8359 = private unnamed_addr constant [7 x i8] c"Digit0\00" @.str8360 = private unnamed_addr constant [7 x i8] c"Digit1\00" @.str8361 = private unnamed_addr constant [7 x i8] c"Digit2\00" @.str8362 = private unnamed_addr constant [7 x i8] c"Digit3\00" @.str8363 = private unnamed_addr constant [7 x i8] c"Digit4\00" @.str8364 = private unnamed_addr constant [7 x i8] c"Digit5\00" @.str8365 = private unnamed_addr constant [7 x i8] c"Digit6\00" @.str8366 = private unnamed_addr constant [7 x i8] c"Digit7\00" @.str8367 = private unnamed_addr constant [7 x i8] c"Digit8\00" @.str8368 = private unnamed_addr constant [7 x i8] c"Digit9\00" @.str8369 = private unnamed_addr constant [15 x i8] c"getelementptr \00" @.str8370 = private unnamed_addr constant [18 x i8] c", ptr null, i32 1\00" @.str8371 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" @.str8372 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8373 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12325: index out of range: \00" @.str8374 = private unnamed_addr constant [42 x i8] c" is a port: it is filled once with 'bind \00" @.str8375 = private unnamed_addr constant [63 x i8] c" { ... }' where the program is put together, not made with new\00" @.str8376 = private unnamed_addr constant [21 x i8] c"unknown record type \00" @.str8377 = private unnamed_addr constant [8 x i8] c" in new\00" @.str8378 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str8379 = private unnamed_addr constant [2 x i8] c")\00" @.str8380 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12345: index out of range: \00" @.str8381 = private unnamed_addr constant [3 x i8] c" \00" @.str8382 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str8383 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8384 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str8385 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8386 = private unnamed_addr constant [9 x i8] c" store \00" @.str8387 = private unnamed_addr constant [2 x i8] c" \00" @.str8388 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8389 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8390 = private unnamed_addr constant [8 x i8] c"%LSlice\00" @.str8391 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str8392 = private unnamed_addr constant [2 x i8] c")\00" @.str8393 = private unnamed_addr constant [3 x i8] c" \00" @.str8394 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str8395 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" @.str8396 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00" @.str8397 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8398 = private unnamed_addr constant [3 x i8] c" \00" @.str8399 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str8400 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00" @.str8401 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str8402 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8403 = private unnamed_addr constant [3 x i8] c" \00" @.str8404 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str8405 = private unnamed_addr constant [16 x i8] c", i32 0, i32 2\0A\00" @.str8406 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str8407 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8408 = private unnamed_addr constant [3 x i8] c"[]\00" @.str8409 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str8410 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8411 = private unnamed_addr constant [22 x i8] c"call ptr @calloc(i64 \00" @.str8412 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str8413 = private unnamed_addr constant [2 x i8] c")\00" @.str8414 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str8415 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8416 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8417 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8418 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8419 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8420 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8421 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8422 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8423 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12389: index out of range: \00" @.str8424 = private unnamed_addr constant [33 x i8] c"view takes a slice, and this is \00" @.str8425 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12391: index out of range: \00" @.str8426 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12392: index out of range: \00" @.str8427 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8428 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8429 = private unnamed_addr constant [3 x i8] c", \00" @.str8430 = private unnamed_addr constant [14 x i8] c"icmp ule i32 \00" @.str8431 = private unnamed_addr constant [3 x i8] c", \00" @.str8432 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str8433 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8434 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str8435 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8436 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str8437 = private unnamed_addr constant [3 x i8] c", \00" @.str8438 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str8439 = private unnamed_addr constant [3 x i8] c", \00" @.str8440 = private unnamed_addr constant [5 x i8] c"vwok\00" @.str8441 = private unnamed_addr constant [6 x i8] c"vwbad\00" @.str8442 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8443 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8444 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8445 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8446 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8447 = private unnamed_addr constant [2 x i8] c":\00" @.str8448 = private unnamed_addr constant [27 x i8] c": view past the end: from \00" @.str8449 = private unnamed_addr constant [41 x i8] c" call i32 (ptr, ptr, ...) @fprintf(ptr \00" @.str8450 = private unnamed_addr constant [25 x i8] c", ptr @.fmt_bounds, ptr \00" @.str8451 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str8452 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str8453 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str8454 = private unnamed_addr constant [40 x i8] c" call void @exit(i32 1)\0A unreachable\0A\00" @.str8455 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8456 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str8457 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" @.str8458 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8459 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str8460 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str8461 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8462 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8463 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8464 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8465 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8466 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8467 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8468 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8469 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str8470 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str8471 = private unnamed_addr constant [3 x i8] c" \00" @.str8472 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str8473 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str8474 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8475 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12433: index out of range: \00" @.str8476 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8477 = private unnamed_addr constant [4 x i8] c"int\00" @.str8478 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str8479 = private unnamed_addr constant [2 x i8] c")\00" @.str8480 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str8481 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8482 = private unnamed_addr constant [4 x i8] c"int\00" @.str8483 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12443: index out of range: \00" @.str8484 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12444: index out of range: \00" @.str8485 = private unnamed_addr constant [2 x i8] c"0\00" @.str8486 = private unnamed_addr constant [5 x i8] c"void\00" @.str8487 = private unnamed_addr constant [67 x i8] c"an empty list literal has no element type: write `new []T` instead\00" @.str8488 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12452: index out of range: \00" @.str8489 = private unnamed_addr constant [3 x i8] c"[]\00" @.str8490 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12459: index out of range: \00" @.str8491 = private unnamed_addr constant [34 x i8] c"list literal mixes element types \00" @.str8492 = private unnamed_addr constant [6 x i8] c" and \00" @.str8493 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8494 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8495 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str8496 = private unnamed_addr constant [3 x i8] c", \00" @.str8497 = private unnamed_addr constant [5 x i8] c"grow\00" @.str8498 = private unnamed_addr constant [4 x i8] c"put\00" @.str8499 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8500 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8501 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8502 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8503 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8504 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str8505 = private unnamed_addr constant [4 x i8] c", 2\00" @.str8506 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str8507 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8508 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str8509 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" @.str8510 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str8511 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8512 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str8513 = private unnamed_addr constant [3 x i8] c", \00" @.str8514 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str8515 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" @.str8516 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str8517 = private unnamed_addr constant [2 x i8] c")\00" @.str8518 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str8519 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8520 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8521 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8522 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8523 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8524 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8525 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8526 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8527 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str8528 = private unnamed_addr constant [3 x i8] c" \00" @.str8529 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str8530 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8531 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str8532 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8533 = private unnamed_addr constant [9 x i8] c" store \00" @.str8534 = private unnamed_addr constant [2 x i8] c" \00" @.str8535 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8536 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8537 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8538 = private unnamed_addr constant [4 x i8] c", 1\00" @.str8539 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8540 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8541 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8542 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12516: index out of range: \00" @.str8543 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8544 = private unnamed_addr constant [4 x i8] c"int\00" @.str8545 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8546 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8547 = private unnamed_addr constant [7 x i8] c"result\00" @.str8548 = private unnamed_addr constant [33 x i8] c"try expects a result value (got \00" @.str8549 = private unnamed_addr constant [12 x i8] c") \E2\80\94 line \00" @.str8550 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8551 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str8552 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8553 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str8554 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str8555 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8556 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str8557 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8558 = private unnamed_addr constant [6 x i8] c"tryok\00" @.str8559 = private unnamed_addr constant [8 x i8] c"tryelse\00" @.str8560 = private unnamed_addr constant [7 x i8] c"tryend\00" @.str8561 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8562 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8563 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8564 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8565 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8566 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str8567 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str8568 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8569 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8570 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8571 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8572 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8573 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8574 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8575 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str8576 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" @.str8577 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str8578 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8579 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str8580 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8581 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8582 = private unnamed_addr constant [6 x i8] c"error\00" @.str8583 = private unnamed_addr constant [7 x i8] c"string\00" @.str8584 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8585 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8586 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8587 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8588 = private unnamed_addr constant [4 x i8] c"int\00" @.str8589 = private unnamed_addr constant [6 x i8] c"load \00" @.str8590 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8591 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8592 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str8593 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8594 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str8595 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8596 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8597 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8598 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8599 = private unnamed_addr constant [3 x i8] c"sc\00" @.str8600 = private unnamed_addr constant [6 x i8] c"scend\00" @.str8601 = private unnamed_addr constant [4 x i8] c"and\00" @.str8602 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8603 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8604 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8605 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8606 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8607 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8608 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8609 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8610 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8611 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str8612 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8613 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str8614 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8615 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str8616 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8617 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8618 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8619 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8620 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8621 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8622 = private unnamed_addr constant [5 x i8] c"bool\00" @.str8623 = private unnamed_addr constant [2 x i8] c"<\00" @.str8624 = private unnamed_addr constant [4 x i8] c"slt\00" @.str8625 = private unnamed_addr constant [3 x i8] c"<=\00" @.str8626 = private unnamed_addr constant [4 x i8] c"sle\00" @.str8627 = private unnamed_addr constant [2 x i8] c">\00" @.str8628 = private unnamed_addr constant [4 x i8] c"sgt\00" @.str8629 = private unnamed_addr constant [3 x i8] c">=\00" @.str8630 = private unnamed_addr constant [4 x i8] c"sge\00" @.str8631 = private unnamed_addr constant [3 x i8] c"==\00" @.str8632 = private unnamed_addr constant [3 x i8] c"eq\00" @.str8633 = private unnamed_addr constant [3 x i8] c"ne\00" @.str8634 = private unnamed_addr constant [2 x i8] c"<\00" @.str8635 = private unnamed_addr constant [3 x i8] c"<=\00" @.str8636 = private unnamed_addr constant [2 x i8] c">\00" @.str8637 = private unnamed_addr constant [3 x i8] c">=\00" @.str8638 = private unnamed_addr constant [3 x i8] c"==\00" @.str8639 = private unnamed_addr constant [3 x i8] c"!=\00" @.str8640 = private unnamed_addr constant [2 x i8] c"+\00" @.str8641 = private unnamed_addr constant [4 x i8] c"add\00" @.str8642 = private unnamed_addr constant [2 x i8] c"-\00" @.str8643 = private unnamed_addr constant [4 x i8] c"sub\00" @.str8644 = private unnamed_addr constant [2 x i8] c"*\00" @.str8645 = private unnamed_addr constant [4 x i8] c"mul\00" @.str8646 = private unnamed_addr constant [2 x i8] c"/\00" @.str8647 = private unnamed_addr constant [5 x i8] c"sdiv\00" @.str8648 = private unnamed_addr constant [2 x i8] c"&\00" @.str8649 = private unnamed_addr constant [4 x i8] c"and\00" @.str8650 = private unnamed_addr constant [2 x i8] c"|\00" @.str8651 = private unnamed_addr constant [3 x i8] c"or\00" @.str8652 = private unnamed_addr constant [2 x i8] c"^\00" @.str8653 = private unnamed_addr constant [4 x i8] c"xor\00" @.str8654 = private unnamed_addr constant [3 x i8] c"<<\00" @.str8655 = private unnamed_addr constant [4 x i8] c"shl\00" @.str8656 = private unnamed_addr constant [3 x i8] c">>\00" @.str8657 = private unnamed_addr constant [5 x i8] c"lshr\00" @.str8658 = private unnamed_addr constant [5 x i8] c"srem\00" @.str8659 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8660 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str8661 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8662 = private unnamed_addr constant [3 x i8] c"a \00" @.str8663 = private unnamed_addr constant [6 x i8] c" slot\00" @.str8664 = private unnamed_addr constant [3 x i8] c"a \00" @.str8665 = private unnamed_addr constant [11 x i8] c" is not a \00" @.str8666 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8667 = private unnamed_addr constant [1 x i8] c"\00" @.str8668 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8669 = private unnamed_addr constant [3 x i8] c"a \00" @.str8670 = private unnamed_addr constant [22 x i8] c" does not convert to \00" @.str8671 = private unnamed_addr constant [41 x i8] c" implicitly \E2\80\94 write int(x) or fixed(x)\00" @.str8672 = private unnamed_addr constant [4 x i8] c"i64\00" @.str8673 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8674 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str8675 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8676 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8677 = private unnamed_addr constant [4 x i8] c"i64\00" @.str8678 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str8679 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8680 = private unnamed_addr constant [4 x i8] c"i64\00" @.str8681 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str8682 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8683 = private unnamed_addr constant [2 x i8] c"+\00" @.str8684 = private unnamed_addr constant [29 x i8] c"call ptr @lp_str_concat(ptr \00" @.str8685 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8686 = private unnamed_addr constant [2 x i8] c")\00" @.str8687 = private unnamed_addr constant [7 x i8] c"string\00" @.str8688 = private unnamed_addr constant [25 x i8] c"call i32 @lp_str_eq(ptr \00" @.str8689 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str8690 = private unnamed_addr constant [2 x i8] c")\00" @.str8691 = private unnamed_addr constant [3 x i8] c"!=\00" @.str8692 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str8693 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8694 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str8695 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8696 = private unnamed_addr constant [5 x i8] c"bool\00" @.str8697 = private unnamed_addr constant [5 x i8] c"bool\00" @.str8698 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8699 = private unnamed_addr constant [5 x i8] c"long\00" @.str8700 = private unnamed_addr constant [4 x i8] c"int\00" @.str8701 = private unnamed_addr constant [4 x i8] c"and\00" @.str8702 = private unnamed_addr constant [3 x i8] c"or\00" @.str8703 = private unnamed_addr constant [7 x i8] c"string\00" @.str8704 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str8705 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8706 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8707 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8708 = private unnamed_addr constant [2 x i8] c"+\00" @.str8709 = private unnamed_addr constant [2 x i8] c"+\00" @.str8710 = private unnamed_addr constant [3 x i8] c"==\00" @.str8711 = private unnamed_addr constant [3 x i8] c"!=\00" @.str8712 = private unnamed_addr constant [7 x i8] c"string\00" @.str8713 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8714 = private unnamed_addr constant [7 x i8] c"string\00" @.str8715 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8716 = private unnamed_addr constant [16 x i8] c"cannot compare \00" @.str8717 = private unnamed_addr constant [7 x i8] c" with \00" @.str8718 = private unnamed_addr constant [8 x i8] c" using \00" @.str8719 = private unnamed_addr constant [59 x i8] c": strings compare by content, other references by identity\00" @.str8720 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8721 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8722 = private unnamed_addr constant [4 x i8] c"i64\00" @.str8723 = private unnamed_addr constant [4 x i8] c"i64\00" @.str8724 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8725 = private unnamed_addr constant [4 x i8] c"i64\00" @.str8726 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8727 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8728 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str8729 = private unnamed_addr constant [6 x i8] c"icmp \00" @.str8730 = private unnamed_addr constant [2 x i8] c" \00" @.str8731 = private unnamed_addr constant [2 x i8] c" \00" @.str8732 = private unnamed_addr constant [3 x i8] c", \00" @.str8733 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str8734 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8735 = private unnamed_addr constant [5 x i8] c"bool\00" @.str8736 = private unnamed_addr constant [6 x i8] c" i64 \00" @.str8737 = private unnamed_addr constant [3 x i8] c", \00" @.str8738 = private unnamed_addr constant [5 x i8] c"long\00" @.str8739 = private unnamed_addr constant [2 x i8] c"*\00" @.str8740 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str8741 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8742 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str8743 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8744 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str8745 = private unnamed_addr constant [3 x i8] c", \00" @.str8746 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str8747 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8748 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str8749 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8750 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8751 = private unnamed_addr constant [2 x i8] c"/\00" @.str8752 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str8753 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8754 = private unnamed_addr constant [9 x i8] c"shl i64 \00" @.str8755 = private unnamed_addr constant [5 x i8] c", 16\00" @.str8756 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str8757 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str8758 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" @.str8759 = private unnamed_addr constant [3 x i8] c", \00" @.str8760 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str8761 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8762 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8763 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str8764 = private unnamed_addr constant [3 x i8] c", \00" @.str8765 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str8766 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str8767 = private unnamed_addr constant [3 x i8] c", \00" @.str8768 = private unnamed_addr constant [4 x i8] c"int\00" @.str8769 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12745: index out of range: \00" @.str8770 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12752: index out of range: \00" @.str8771 = private unnamed_addr constant [59 x i8] c"named and positional arguments cannot be mixed in one call\00" @.str8772 = private unnamed_addr constant [26 x i8] c"wrong number of arguments\00" @.str8773 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12761: index out of range: \00" @.str8774 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12761: index out of range: \00" @.str8775 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12761: index out of range: \00" @.str8776 = private unnamed_addr constant [19 x i8] c"no argument named \00" @.str8777 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12762: index out of range: \00" @.str8778 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12772: index out of range: \00" @.str8779 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12772: index out of range: \00" @.str8780 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12779: index out of range: \00" @.str8781 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12779: index out of range: \00" @.str8782 = private unnamed_addr constant [5 x i8] c"exok\00" @.str8783 = private unnamed_addr constant [6 x i8] c"exbad\00" @.str8784 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8785 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8786 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8787 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8788 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8789 = private unnamed_addr constant [33 x i8] c" store i32 1, ptr @L_test_fail\0A\00" @.str8790 = private unnamed_addr constant [1 x i8] c"\00" @.str8791 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str8792 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str8793 = private unnamed_addr constant [53 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_expect, ptr \00" @.str8794 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str8795 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str8796 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str8797 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8798 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8799 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8800 = private unnamed_addr constant [6 x i8] c"float\00" @.str8801 = private unnamed_addr constant [7 x i8] c"double\00" @.str8802 = private unnamed_addr constant [7 x i8] c"double\00" @.str8803 = private unnamed_addr constant [7 x i8] c"double\00" @.str8804 = private unnamed_addr constant [7 x i8] c"double\00" @.str8805 = private unnamed_addr constant [7 x i8] c"double\00" @.str8806 = private unnamed_addr constant [7 x i8] c"expect\00" @.str8807 = private unnamed_addr constant [7 x i8] c"expect\00" @.str8808 = private unnamed_addr constant [1 x i8] c"\00" @.str8809 = private unnamed_addr constant [10 x i8] c"expect_eq\00" @.str8810 = private unnamed_addr constant [10 x i8] c"fcmp oeq \00" @.str8811 = private unnamed_addr constant [2 x i8] c" \00" @.str8812 = private unnamed_addr constant [3 x i8] c", \00" @.str8813 = private unnamed_addr constant [12 x i8] c"expect_near\00" @.str8814 = private unnamed_addr constant [12 x i8] c"expect_near\00" @.str8815 = private unnamed_addr constant [6 x i8] c"fsub \00" @.str8816 = private unnamed_addr constant [2 x i8] c" \00" @.str8817 = private unnamed_addr constant [3 x i8] c", \00" @.str8818 = private unnamed_addr constant [6 x i8] c"fneg \00" @.str8819 = private unnamed_addr constant [2 x i8] c" \00" @.str8820 = private unnamed_addr constant [10 x i8] c"fcmp olt \00" @.str8821 = private unnamed_addr constant [2 x i8] c" \00" @.str8822 = private unnamed_addr constant [6 x i8] c", 0.0\00" @.str8823 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str8824 = private unnamed_addr constant [3 x i8] c", \00" @.str8825 = private unnamed_addr constant [2 x i8] c" \00" @.str8826 = private unnamed_addr constant [3 x i8] c", \00" @.str8827 = private unnamed_addr constant [2 x i8] c" \00" @.str8828 = private unnamed_addr constant [10 x i8] c"fcmp ole \00" @.str8829 = private unnamed_addr constant [2 x i8] c" \00" @.str8830 = private unnamed_addr constant [3 x i8] c", \00" @.str8831 = private unnamed_addr constant [3 x i8] c": \00" @.str8832 = private unnamed_addr constant [8 x i8] c" failed\00" @.str8833 = private unnamed_addr constant [6 x i8] c"float\00" @.str8834 = private unnamed_addr constant [13 x i8] c"fpext float \00" @.str8835 = private unnamed_addr constant [11 x i8] c" to double\00" @.str8836 = private unnamed_addr constant [13 x i8] c"fpext float \00" @.str8837 = private unnamed_addr constant [11 x i8] c" to double\00" @.str8838 = private unnamed_addr constant [5 x i8] c"exok\00" @.str8839 = private unnamed_addr constant [6 x i8] c"exbad\00" @.str8840 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8841 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8842 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8843 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8844 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8845 = private unnamed_addr constant [33 x i8] c" store i32 1, ptr @L_test_fail\0A\00" @.str8846 = private unnamed_addr constant [56 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_expect_fp, ptr \00" @.str8847 = private unnamed_addr constant [10 x i8] c", double \00" @.str8848 = private unnamed_addr constant [10 x i8] c", double \00" @.str8849 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str8850 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8851 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8852 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8853 = private unnamed_addr constant [2 x i8] c"0\00" @.str8854 = private unnamed_addr constant [5 x i8] c"void\00" @.str8855 = private unnamed_addr constant [2 x i8] c":\00" @.str8856 = private unnamed_addr constant [2 x i8] c":\00" @.str8857 = private unnamed_addr constant [12 x i8] c"despawn_all\00" @.str8858 = private unnamed_addr constant [32 x i8] c".despawn_all takes no arguments\00" @.str8859 = private unnamed_addr constant [7 x i8] c"__each\00" @.str8860 = private unnamed_addr constant [5 x i8] c"self\00" @.str8861 = private unnamed_addr constant [2 x i8] c"0\00" @.str8862 = private unnamed_addr constant [5 x i8] c"void\00" @.str8863 = private unnamed_addr constant [6 x i8] c"count\00" @.str8864 = private unnamed_addr constant [26 x i8] c".count takes no arguments\00" @.str8865 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8866 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8867 = private unnamed_addr constant [2 x i8] c"0\00" @.str8868 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8869 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8870 = private unnamed_addr constant [2 x i8] c"0\00" @.str8871 = private unnamed_addr constant [3 x i8] c"cc\00" @.str8872 = private unnamed_addr constant [3 x i8] c"cb\00" @.str8873 = private unnamed_addr constant [3 x i8] c"cn\00" @.str8874 = private unnamed_addr constant [3 x i8] c"ce\00" @.str8875 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8876 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8877 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8878 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8879 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" @.str8880 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str8881 = private unnamed_addr constant [3 x i8] c", \00" @.str8882 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str8883 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8884 = private unnamed_addr constant [10 x i8] c", label %\00" @.str8885 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8886 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8887 = private unnamed_addr constant [25 x i8] c"getelementptr inbounds [\00" @.str8888 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" @.str8889 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8890 = private unnamed_addr constant [25 x i8] c"getelementptr inbounds [\00" @.str8891 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str8892 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str8893 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str8894 = private unnamed_addr constant [9 x i8] c"zext i8 \00" @.str8895 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8896 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str8897 = private unnamed_addr constant [3 x i8] c", \00" @.str8898 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8899 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8900 = private unnamed_addr constant [3 x i8] c", \00" @.str8901 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8902 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8903 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8904 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8905 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str8906 = private unnamed_addr constant [4 x i8] c", 1\00" @.str8907 = private unnamed_addr constant [4 x i8] c"i32\00" @.str8908 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str8909 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8910 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str8911 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8912 = private unnamed_addr constant [4 x i8] c"int\00" @.str8913 = private unnamed_addr constant [2 x i8] c".\00" @.str8914 = private unnamed_addr constant [32 x i8] c" takes one argument: the entity\00" @.str8915 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12908: index out of range: \00" @.str8916 = private unnamed_addr constant [3 x i8] c"of\00" @.str8917 = private unnamed_addr constant [25 x i8] c"getelementptr inbounds [\00" @.str8918 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str8919 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str8920 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str8921 = private unnamed_addr constant [14 x i8] c"icmp ult i32 \00" @.str8922 = private unnamed_addr constant [3 x i8] c", \00" @.str8923 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str8924 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str8925 = private unnamed_addr constant [8 x i8] c", i32 0\00" @.str8926 = private unnamed_addr constant [25 x i8] c"getelementptr inbounds [\00" @.str8927 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" @.str8928 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str8929 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str8930 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8931 = private unnamed_addr constant [25 x i8] c"getelementptr inbounds [\00" @.str8932 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str8933 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str8934 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str8935 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" @.str8936 = private unnamed_addr constant [4 x i8] c", 0\00" @.str8937 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str8938 = private unnamed_addr constant [3 x i8] c", \00" @.str8939 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str8940 = private unnamed_addr constant [3 x i8] c", \00" @.str8941 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str8942 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str8943 = private unnamed_addr constant [5 x i8] c"bool\00" @.str8944 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:12930: index out of range: \00" @.str8945 = private unnamed_addr constant [5 x i8] c"name\00" @.str8946 = private unnamed_addr constant [7 x i8] c"string\00" @.str8947 = private unnamed_addr constant [17 x i8] c"unknown builtin \00" @.str8948 = private unnamed_addr constant [2 x i8] c".\00" @.str8949 = private unnamed_addr constant [3 x i8] c"of\00" @.str8950 = private unnamed_addr constant [4 x i8] c"has\00" @.str8951 = private unnamed_addr constant [6 x i8] c"count\00" @.str8952 = private unnamed_addr constant [12 x i8] c"despawn_all\00" @.str8953 = private unnamed_addr constant [2 x i8] c"_\00" @.str8954 = private unnamed_addr constant [5 x i8] c"Math\00" @.str8955 = private unnamed_addr constant [5 x i8] c"Math\00" @.str8956 = private unnamed_addr constant [5 x i8] c"Text\00" @.str8957 = private unnamed_addr constant [5 x i8] c"Text\00" @.str8958 = private unnamed_addr constant [5 x i8] c"List\00" @.str8959 = private unnamed_addr constant [5 x i8] c"List\00" @.str8960 = private unnamed_addr constant [5 x i8] c"Ease\00" @.str8961 = private unnamed_addr constant [5 x i8] c"Ease\00" @.str8962 = private unnamed_addr constant [5 x i8] c"Anim\00" @.str8963 = private unnamed_addr constant [6 x i8] c"Tween\00" @.str8964 = private unnamed_addr constant [10 x i8] c"Collision\00" @.str8965 = private unnamed_addr constant [10 x i8] c"Collision\00" @.str8966 = private unnamed_addr constant [7 x i8] c"Memory\00" @.str8967 = private unnamed_addr constant [7 x i8] c"Memory\00" @.str8968 = private unnamed_addr constant [6 x i8] c"Color\00" @.str8969 = private unnamed_addr constant [6 x i8] c"Color\00" @.str8970 = private unnamed_addr constant [5 x i8] c"Time\00" @.str8971 = private unnamed_addr constant [5 x i8] c"Time\00" @.str8972 = private unnamed_addr constant [5 x i8] c"Hash\00" @.str8973 = private unnamed_addr constant [5 x i8] c"Hash\00" @.str8974 = private unnamed_addr constant [7 x i8] c"Crypto\00" @.str8975 = private unnamed_addr constant [7 x i8] c"Crypto\00" @.str8976 = private unnamed_addr constant [5 x i8] c"Uuid\00" @.str8977 = private unnamed_addr constant [5 x i8] c"Uuid\00" @.str8978 = private unnamed_addr constant [6 x i8] c"Noise\00" @.str8979 = private unnamed_addr constant [6 x i8] c"Noise\00" @.str8980 = private unnamed_addr constant [4 x i8] c"Log\00" @.str8981 = private unnamed_addr constant [4 x i8] c"Log\00" @.str8982 = private unnamed_addr constant [3 x i8] c"Os\00" @.str8983 = private unnamed_addr constant [3 x i8] c"Os\00" @.str8984 = private unnamed_addr constant [8 x i8] c"Unicode\00" @.str8985 = private unnamed_addr constant [8 x i8] c"Unicode\00" @.str8986 = private unnamed_addr constant [3 x i8] c"Fs\00" @.str8987 = private unnamed_addr constant [3 x i8] c"Fs\00" @.str8988 = private unnamed_addr constant [5 x i8] c"Path\00" @.str8989 = private unnamed_addr constant [5 x i8] c"Path\00" @.str8990 = private unnamed_addr constant [5 x i8] c"Mime\00" @.str8991 = private unnamed_addr constant [5 x i8] c"Mime\00" @.str8992 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str8993 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str8994 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str8995 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str8996 = private unnamed_addr constant [5 x i8] c"Rect\00" @.str8997 = private unnamed_addr constant [5 x i8] c"Rect\00" @.str8998 = private unnamed_addr constant [9 x i8] c"Duration\00" @.str8999 = private unnamed_addr constant [9 x i8] c"Duration\00" @.str9000 = private unnamed_addr constant [5 x i8] c"Date\00" @.str9001 = private unnamed_addr constant [5 x i8] c"Date\00" @.str9002 = private unnamed_addr constant [9 x i8] c"DateTime\00" @.str9003 = private unnamed_addr constant [9 x i8] c"DateTime\00" @.str9004 = private unnamed_addr constant [6 x i8] c"Clock\00" @.str9005 = private unnamed_addr constant [6 x i8] c"Clock\00" @.str9006 = private unnamed_addr constant [4 x i8] c"App\00" @.str9007 = private unnamed_addr constant [12 x i8] c"splash_hide\00" @.str9008 = private unnamed_addr constant [28 x i8] c" call void @splash_hide()\0A\00" @.str9009 = private unnamed_addr constant [2 x i8] c"0\00" @.str9010 = private unnamed_addr constant [5 x i8] c"void\00" @.str9011 = private unnamed_addr constant [9 x i8] c"set_icon\00" @.str9012 = private unnamed_addr constant [30 x i8] c" call void @lp_app_icon(ptr \00" @.str9013 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9014 = private unnamed_addr constant [2 x i8] c"0\00" @.str9015 = private unnamed_addr constant [5 x i8] c"void\00" @.str9016 = private unnamed_addr constant [14 x i8] c"monitor_count\00" @.str9017 = private unnamed_addr constant [30 x i8] c"call i32 @win_monitor_count()\00" @.str9018 = private unnamed_addr constant [4 x i8] c"int\00" @.str9019 = private unnamed_addr constant [2 x i8] c"1\00" @.str9020 = private unnamed_addr constant [4 x i8] c"int\00" @.str9021 = private unnamed_addr constant [18 x i8] c"window_to_monitor\00" @.str9022 = private unnamed_addr constant [40 x i8] c" call void @app_window_to_monitor(i32 \00" @.str9023 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9024 = private unnamed_addr constant [2 x i8] c"0\00" @.str9025 = private unnamed_addr constant [5 x i8] c"void\00" @.str9026 = private unnamed_addr constant [13 x i8] c"window_fixed\00" @.str9027 = private unnamed_addr constant [35 x i8] c" call void @app_window_fixed(i32 \00" @.str9028 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9029 = private unnamed_addr constant [2 x i8] c"0\00" @.str9030 = private unnamed_addr constant [5 x i8] c"void\00" @.str9031 = private unnamed_addr constant [12 x i8] c"window_hide\00" @.str9032 = private unnamed_addr constant [12 x i8] c"window_show\00" @.str9033 = private unnamed_addr constant [18 x i8] c" call void @app_\00" @.str9034 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str9035 = private unnamed_addr constant [2 x i8] c"0\00" @.str9036 = private unnamed_addr constant [5 x i8] c"void\00" @.str9037 = private unnamed_addr constant [4 x i8] c"App\00" @.str9038 = private unnamed_addr constant [5 x i8] c"Pool\00" @.str9039 = private unnamed_addr constant [9 x i8] c"capacity\00" @.str9040 = private unnamed_addr constant [4 x i8] c"int\00" @.str9041 = private unnamed_addr constant [9 x i8] c"reserved\00" @.str9042 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" @.str9043 = private unnamed_addr constant [4 x i8] c"int\00" @.str9044 = private unnamed_addr constant [5 x i8] c"free\00" @.str9045 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_freen\00" @.str9046 = private unnamed_addr constant [4 x i8] c"int\00" @.str9047 = private unnamed_addr constant [5 x i8] c"live\00" @.str9048 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" @.str9049 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_freen\00" @.str9050 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str9051 = private unnamed_addr constant [3 x i8] c", \00" @.str9052 = private unnamed_addr constant [4 x i8] c"int\00" @.str9053 = private unnamed_addr constant [5 x i8] c"Pool\00" @.str9054 = private unnamed_addr constant [7 x i8] c"Prefab\00" @.str9055 = private unnamed_addr constant [9 x i8] c"spawn_at\00" @.str9056 = private unnamed_addr constant [48 x i8] c"Prefab.spawn_at: the program declares no prefab\00" @.str9057 = private unnamed_addr constant [9 x i8] c"Position\00" @.str9058 = private unnamed_addr constant [42 x i8] c"Prefab.spawn_at needs a Position property\00" @.str9059 = private unnamed_addr constant [5 x i8] c"name\00" @.str9060 = private unnamed_addr constant [3 x i8] c"at\00" @.str9061 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13158: index out of range: \00" @.str9062 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13159: index out of range: \00" @.str9063 = private unnamed_addr constant [30 x i8] c"call i32 @L_spawn_prefab(ptr \00" @.str9064 = private unnamed_addr constant [2 x i8] c")\00" @.str9065 = private unnamed_addr constant [25 x i8] c"getelementptr inbounds [\00" @.str9066 = private unnamed_addr constant [48 x i8] c" x %Cmp_Position], ptr @S_Position, i32 0, i32 \00" @.str9067 = private unnamed_addr constant [43 x i8] c"getelementptr inbounds %Cmp_Position, ptr \00" @.str9068 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str9069 = private unnamed_addr constant [2 x i8] c"x\00" @.str9070 = private unnamed_addr constant [43 x i8] c"getelementptr inbounds %Cmp_Position, ptr \00" @.str9071 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str9072 = private unnamed_addr constant [2 x i8] c"y\00" @.str9073 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str9074 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9075 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9076 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str9077 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9078 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9079 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9080 = private unnamed_addr constant [6 x i8] c"spawn\00" @.str9081 = private unnamed_addr constant [45 x i8] c"Prefab.spawn: the program declares no prefab\00" @.str9082 = private unnamed_addr constant [5 x i8] c"name\00" @.str9083 = private unnamed_addr constant [51 x i8] c"Prefab.spawn takes one argument: the prefab's name\00" @.str9084 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13176: index out of range: \00" @.str9085 = private unnamed_addr constant [30 x i8] c"call i32 @L_spawn_prefab(ptr \00" @.str9086 = private unnamed_addr constant [2 x i8] c")\00" @.str9087 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9088 = private unnamed_addr constant [7 x i8] c"Prefab\00" @.str9089 = private unnamed_addr constant [6 x i8] c"Audio\00" @.str9090 = private unnamed_addr constant [5 x i8] c"play\00" @.str9091 = private unnamed_addr constant [17 x i8] c"audio_play_named\00" @.str9092 = private unnamed_addr constant [5 x i8] c"name\00" @.str9093 = private unnamed_addr constant [11 x i8] c"audio_play\00" @.str9094 = private unnamed_addr constant [3 x i8] c"id\00" @.str9095 = private unnamed_addr constant [11 x i8] c"play_music\00" @.str9096 = private unnamed_addr constant [23 x i8] c"audio_play_music_named\00" @.str9097 = private unnamed_addr constant [5 x i8] c"name\00" @.str9098 = private unnamed_addr constant [17 x i8] c"audio_play_music\00" @.str9099 = private unnamed_addr constant [3 x i8] c"id\00" @.str9100 = private unnamed_addr constant [4 x i8] c"Job\00" @.str9101 = private unnamed_addr constant [13 x i8] c"parallel_for\00" @.str9102 = private unnamed_addr constant [17 x i8] c"job_parallel_for\00" @.str9103 = private unnamed_addr constant [6 x i8] c"count\00" @.str9104 = private unnamed_addr constant [5 x i8] c"work\00" @.str9105 = private unnamed_addr constant [4 x i8] c"ctx\00" @.str9106 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13222: index out of range: \00" @.str9107 = private unnamed_addr constant [5 x i8] c"Anim\00" @.str9108 = private unnamed_addr constant [5 x i8] c"clip\00" @.str9109 = private unnamed_addr constant [10 x i8] c"anim_clip\00" @.str9110 = private unnamed_addr constant [5 x i8] c"name\00" @.str9111 = private unnamed_addr constant [7 x i8] c"frames\00" @.str9112 = private unnamed_addr constant [4 x i8] c"fps\00" @.str9113 = private unnamed_addr constant [5 x i8] c"mode\00" @.str9114 = private unnamed_addr constant [9 x i8] c"on_frame\00" @.str9115 = private unnamed_addr constant [14 x i8] c"anim_on_frame\00" @.str9116 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9117 = private unnamed_addr constant [6 x i8] c"frame\00" @.str9118 = private unnamed_addr constant [6 x i8] c"fired\00" @.str9119 = private unnamed_addr constant [11 x i8] c"anim_fired\00" @.str9120 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9121 = private unnamed_addr constant [5 x i8] c"play\00" @.str9122 = private unnamed_addr constant [16 x i8] c"anim_play_named\00" @.str9123 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9124 = private unnamed_addr constant [5 x i8] c"clip\00" @.str9125 = private unnamed_addr constant [10 x i8] c"anim_play\00" @.str9126 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9127 = private unnamed_addr constant [4 x i8] c"fps\00" @.str9128 = private unnamed_addr constant [7 x i8] c"frames\00" @.str9129 = private unnamed_addr constant [5 x i8] c"mode\00" @.str9130 = private unnamed_addr constant [3 x i8] c"Vk\00" @.str9131 = private unnamed_addr constant [4 x i8] c"vk_\00" @.str9132 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13284: index out of range: \00" @.str9133 = private unnamed_addr constant [3 x i8] c"Gl\00" @.str9134 = private unnamed_addr constant [4 x i8] c"gl_\00" @.str9135 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13294: index out of range: \00" @.str9136 = private unnamed_addr constant [2 x i8] c"_\00" @.str9137 = private unnamed_addr constant [2 x i8] c".\00" @.str9138 = private unnamed_addr constant [27 x i8] c" is internal to namespace \00" @.str9139 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13308: index out of range: \00" @.str9140 = private unnamed_addr constant [17 x i8] c"unknown builtin \00" @.str9141 = private unnamed_addr constant [2 x i8] c".\00" @.str9142 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13323: index out of range: \00" @.str9143 = private unnamed_addr constant [14 x i8] c"enum variant \00" @.str9144 = private unnamed_addr constant [8 x i8] c" takes \00" @.str9145 = private unnamed_addr constant [18 x i8] c" payload(s), got \00" @.str9146 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str9147 = private unnamed_addr constant [2 x i8] c")\00" @.str9148 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str9149 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9150 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9151 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13330: index out of range: \00" @.str9152 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13331: index out of range: \00" @.str9153 = private unnamed_addr constant [3 x i8] c" \00" @.str9154 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" @.str9155 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9156 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9157 = private unnamed_addr constant [9 x i8] c" store \00" @.str9158 = private unnamed_addr constant [2 x i8] c" \00" @.str9159 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9160 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9161 = private unnamed_addr constant [30 x i8] c"call target is not a function\00" @.str9162 = private unnamed_addr constant [5 x i8] c"self\00" @.str9163 = private unnamed_addr constant [2 x i8] c"0\00" @.str9164 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9165 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str9166 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13351: index out of range: \00" @.str9167 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9168 = private unnamed_addr constant [4 x i8] c"key\00" @.str9169 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00" @.str9170 = private unnamed_addr constant [4 x i8] c"int\00" @.str9171 = private unnamed_addr constant [5 x i8] c"save\00" @.str9172 = private unnamed_addr constant [23 x i8] c" call void @L_save()\0A\00" @.str9173 = private unnamed_addr constant [2 x i8] c"0\00" @.str9174 = private unnamed_addr constant [5 x i8] c"void\00" @.str9175 = private unnamed_addr constant [9 x i8] c"ui_build\00" @.str9176 = private unnamed_addr constant [25 x i8] c" call void @ui_build()\0A\00" @.str9177 = private unnamed_addr constant [2 x i8] c"0\00" @.str9178 = private unnamed_addr constant [5 x i8] c"void\00" @.str9179 = private unnamed_addr constant [5 x i8] c"load\00" @.str9180 = private unnamed_addr constant [19 x i8] c"call i32 @L_load()\00" @.str9181 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9182 = private unnamed_addr constant [11 x i8] c"world_size\00" @.str9183 = private unnamed_addr constant [25 x i8] c"call i32 @L_world_size()\00" @.str9184 = private unnamed_addr constant [4 x i8] c"int\00" @.str9185 = private unnamed_addr constant [11 x i8] c"world_save\00" @.str9186 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13358: index out of range: \00" @.str9187 = private unnamed_addr constant [28 x i8] c"call i32 @L_world_save(ptr \00" @.str9188 = private unnamed_addr constant [2 x i8] c")\00" @.str9189 = private unnamed_addr constant [4 x i8] c"int\00" @.str9190 = private unnamed_addr constant [11 x i8] c"world_load\00" @.str9191 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13362: index out of range: \00" @.str9192 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13363: index out of range: \00" @.str9193 = private unnamed_addr constant [31 x i8] c" call void @L_world_load(ptr \00" @.str9194 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9195 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9196 = private unnamed_addr constant [2 x i8] c"0\00" @.str9197 = private unnamed_addr constant [5 x i8] c"void\00" @.str9198 = private unnamed_addr constant [5 x i8] c"quit\00" @.str9199 = private unnamed_addr constant [31 x i8] c" store i32 0, ptr @L_running\0A\00" @.str9200 = private unnamed_addr constant [2 x i8] c"0\00" @.str9201 = private unnamed_addr constant [5 x i8] c"void\00" @.str9202 = private unnamed_addr constant [10 x i8] c"serialize\00" @.str9203 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13374: index out of range: \00" @.str9204 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13374: index out of range: \00" @.str9205 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_serialize(i32 \00" @.str9206 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9207 = private unnamed_addr constant [2 x i8] c")\00" @.str9208 = private unnamed_addr constant [4 x i8] c"int\00" @.str9209 = private unnamed_addr constant [6 x i8] c"apply\00" @.str9210 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13378: index out of range: \00" @.str9211 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13378: index out of range: \00" @.str9212 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13378: index out of range: \00" @.str9213 = private unnamed_addr constant [30 x i8] c" call void @ludic_apply(i32 \00" @.str9214 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9215 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9216 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9217 = private unnamed_addr constant [2 x i8] c"0\00" @.str9218 = private unnamed_addr constant [5 x i8] c"void\00" @.str9219 = private unnamed_addr constant [10 x i8] c"sync_size\00" @.str9220 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13383: index out of range: \00" @.str9221 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_sync_size(i32 \00" @.str9222 = private unnamed_addr constant [2 x i8] c")\00" @.str9223 = private unnamed_addr constant [4 x i8] c"int\00" @.str9224 = private unnamed_addr constant [6 x i8] c"owner\00" @.str9225 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13387: index out of range: \00" @.str9226 = private unnamed_addr constant [23 x i8] c"call i32 @L_owner(i32 \00" @.str9227 = private unnamed_addr constant [2 x i8] c")\00" @.str9228 = private unnamed_addr constant [4 x i8] c"int\00" @.str9229 = private unnamed_addr constant [10 x i8] c"set_owner\00" @.str9230 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13391: index out of range: \00" @.str9231 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13391: index out of range: \00" @.str9232 = private unnamed_addr constant [30 x i8] c" call void @L_set_owner(i32 \00" @.str9233 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9234 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9235 = private unnamed_addr constant [2 x i8] c"0\00" @.str9236 = private unnamed_addr constant [5 x i8] c"void\00" @.str9237 = private unnamed_addr constant [9 x i8] c"is_owner\00" @.str9238 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13396: index out of range: \00" @.str9239 = private unnamed_addr constant [26 x i8] c"call i32 @L_is_owner(i32 \00" @.str9240 = private unnamed_addr constant [2 x i8] c")\00" @.str9241 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9242 = private unnamed_addr constant [10 x i8] c"is_server\00" @.str9243 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_role\00" @.str9244 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str9245 = private unnamed_addr constant [4 x i8] c", 1\00" @.str9246 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str9247 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9248 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9249 = private unnamed_addr constant [9 x i8] c"local_id\00" @.str9250 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_localid\00" @.str9251 = private unnamed_addr constant [4 x i8] c"int\00" @.str9252 = private unnamed_addr constant [9 x i8] c"net_pump\00" @.str9253 = private unnamed_addr constant [27 x i8] c" call void @L_net_pump()\0A\00" @.str9254 = private unnamed_addr constant [2 x i8] c"0\00" @.str9255 = private unnamed_addr constant [5 x i8] c"void\00" @.str9256 = private unnamed_addr constant [11 x i8] c"tick_fixed\00" @.str9257 = private unnamed_addr constant [29 x i8] c" call void @L_tick_fixed()\0A\00" @.str9258 = private unnamed_addr constant [2 x i8] c"0\00" @.str9259 = private unnamed_addr constant [5 x i8] c"void\00" @.str9260 = private unnamed_addr constant [12 x i8] c"tick_render\00" @.str9261 = private unnamed_addr constant [30 x i8] c" call void @L_tick_render()\0A\00" @.str9262 = private unnamed_addr constant [2 x i8] c"0\00" @.str9263 = private unnamed_addr constant [5 x i8] c"void\00" @.str9264 = private unnamed_addr constant [9 x i8] c"set_role\00" @.str9265 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13409: index out of range: \00" @.str9266 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str9267 = private unnamed_addr constant [15 x i8] c", ptr @L_role\0A\00" @.str9268 = private unnamed_addr constant [2 x i8] c"0\00" @.str9269 = private unnamed_addr constant [5 x i8] c"void\00" @.str9270 = private unnamed_addr constant [13 x i8] c"set_local_id\00" @.str9271 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13412: index out of range: \00" @.str9272 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str9273 = private unnamed_addr constant [18 x i8] c", ptr @L_localid\0A\00" @.str9274 = private unnamed_addr constant [2 x i8] c"0\00" @.str9275 = private unnamed_addr constant [5 x i8] c"void\00" @.str9276 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str9277 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str9278 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13419: index out of range: \00" @.str9279 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13419: index out of range: \00" @.str9280 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13419: index out of range: \00" @.str9281 = private unnamed_addr constant [29 x i8] c" call void @L_net_send(i32 \00" @.str9282 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9283 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9284 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9285 = private unnamed_addr constant [2 x i8] c"0\00" @.str9286 = private unnamed_addr constant [5 x i8] c"void\00" @.str9287 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str9288 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str9289 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13425: index out of range: \00" @.str9290 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13425: index out of range: \00" @.str9291 = private unnamed_addr constant [26 x i8] c"call i32 @L_net_poll(ptr \00" @.str9292 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9293 = private unnamed_addr constant [2 x i8] c")\00" @.str9294 = private unnamed_addr constant [4 x i8] c"int\00" @.str9295 = private unnamed_addr constant [4 x i8] c"len\00" @.str9296 = private unnamed_addr constant [5 x i8] c"push\00" @.str9297 = private unnamed_addr constant [7 x i8] c"string\00" @.str9298 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13431: index out of range: \00" @.str9299 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str9300 = private unnamed_addr constant [4 x i8] c"i64\00" @.str9301 = private unnamed_addr constant [27 x i8] c"call ptr @lp_long_str(i64 \00" @.str9302 = private unnamed_addr constant [2 x i8] c")\00" @.str9303 = private unnamed_addr constant [7 x i8] c"string\00" @.str9304 = private unnamed_addr constant [26 x i8] c"call ptr @lp_int_str(i32 \00" @.str9305 = private unnamed_addr constant [2 x i8] c")\00" @.str9306 = private unnamed_addr constant [7 x i8] c"string\00" @.str9307 = private unnamed_addr constant [6 x i8] c"print\00" @.str9308 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13439: index out of range: \00" @.str9309 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str9310 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str9311 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9312 = private unnamed_addr constant [4 x i8] c"i64\00" @.str9313 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_long, i64 \00" @.str9314 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9315 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_int, i32 \00" @.str9316 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9317 = private unnamed_addr constant [2 x i8] c"0\00" @.str9318 = private unnamed_addr constant [5 x i8] c"void\00" @.str9319 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str9320 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13447: index out of range: \00" @.str9321 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str9322 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str9323 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str9324 = private unnamed_addr constant [2 x i8] c")\00" @.str9325 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9326 = private unnamed_addr constant [6 x i8] c"words\00" @.str9327 = private unnamed_addr constant [4 x i8] c"int\00" @.str9328 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13451: index out of range: \00" @.str9329 = private unnamed_addr constant [7 x i8] c"buffer\00" @.str9330 = private unnamed_addr constant [5 x i8] c"byte\00" @.str9331 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13452: index out of range: \00" @.str9332 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str9333 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9334 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13453: index out of range: \00" @.str9335 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str9336 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9337 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13454: index out of range: \00" @.str9338 = private unnamed_addr constant [5 x i8] c"view\00" @.str9339 = private unnamed_addr constant [8 x i8] c"data_of\00" @.str9340 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13460: index out of range: \00" @.str9341 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str9342 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9343 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9344 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13464: index out of range: \00" @.str9345 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9346 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str9347 = private unnamed_addr constant [5 x i8] c", 16\00" @.str9348 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9349 = private unnamed_addr constant [6 x i8] c"float\00" @.str9350 = private unnamed_addr constant [7 x i8] c"double\00" @.str9351 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13471: index out of range: \00" @.str9352 = private unnamed_addr constant [4 x i8] c"int\00" @.str9353 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13474: index out of range: \00" @.str9354 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9355 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str9356 = private unnamed_addr constant [5 x i8] c", 16\00" @.str9357 = private unnamed_addr constant [4 x i8] c"int\00" @.str9358 = private unnamed_addr constant [4 x i8] c"i64\00" @.str9359 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str9360 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9361 = private unnamed_addr constant [4 x i8] c"int\00" @.str9362 = private unnamed_addr constant [4 x i8] c"int\00" @.str9363 = private unnamed_addr constant [5 x i8] c"long\00" @.str9364 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13481: index out of range: \00" @.str9365 = private unnamed_addr constant [5 x i8] c"long\00" @.str9366 = private unnamed_addr constant [11 x i8] c"float_bits\00" @.str9367 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13485: index out of range: \00" @.str9368 = private unnamed_addr constant [16 x i8] c"float_from_bits\00" @.str9369 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13486: index out of range: \00" @.str9370 = private unnamed_addr constant [12 x i8] c"double_bits\00" @.str9371 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13487: index out of range: \00" @.str9372 = private unnamed_addr constant [17 x i8] c"double_from_bits\00" @.str9373 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13488: index out of range: \00" @.str9374 = private unnamed_addr constant [7 x i8] c"floats\00" @.str9375 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str9376 = private unnamed_addr constant [6 x i8] c"float\00" @.str9377 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str9378 = private unnamed_addr constant [7 x i8] c"double\00" @.str9379 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13492: index out of range: \00" @.str9380 = private unnamed_addr constant [6 x i8] c"floor\00" @.str9381 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13494: index out of range: \00" @.str9382 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str9383 = private unnamed_addr constant [5 x i8] c", 16\00" @.str9384 = private unnamed_addr constant [4 x i8] c"int\00" @.str9385 = private unnamed_addr constant [7 x i8] c"expect\00" @.str9386 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13502: index out of range: \00" @.str9387 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str9388 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9389 = private unnamed_addr constant [16 x i8] c": expect failed\00" @.str9390 = private unnamed_addr constant [1 x i8] c"\00" @.str9391 = private unnamed_addr constant [1 x i8] c"\00" @.str9392 = private unnamed_addr constant [2 x i8] c"0\00" @.str9393 = private unnamed_addr constant [5 x i8] c"void\00" @.str9394 = private unnamed_addr constant [10 x i8] c"expect_eq\00" @.str9395 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13510: index out of range: \00" @.str9396 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13510: index out of range: \00" @.str9397 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str9398 = private unnamed_addr constant [3 x i8] c", \00" @.str9399 = private unnamed_addr constant [19 x i8] c": expect_eq failed\00" @.str9400 = private unnamed_addr constant [2 x i8] c"0\00" @.str9401 = private unnamed_addr constant [5 x i8] c"void\00" @.str9402 = private unnamed_addr constant [12 x i8] c"expect_near\00" @.str9403 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13519: index out of range: \00" @.str9404 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13519: index out of range: \00" @.str9405 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13519: index out of range: \00" @.str9406 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str9407 = private unnamed_addr constant [3 x i8] c", \00" @.str9408 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str9409 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str9410 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9411 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str9412 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9413 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9414 = private unnamed_addr constant [14 x i8] c"icmp sle i32 \00" @.str9415 = private unnamed_addr constant [3 x i8] c", \00" @.str9416 = private unnamed_addr constant [21 x i8] c": expect_near failed\00" @.str9417 = private unnamed_addr constant [2 x i8] c"0\00" @.str9418 = private unnamed_addr constant [5 x i8] c"void\00" @.str9419 = private unnamed_addr constant [6 x i8] c"panic\00" @.str9420 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13538: index out of range: \00" @.str9421 = private unnamed_addr constant [2 x i8] c":\00" @.str9422 = private unnamed_addr constant [10 x i8] c": panic: \00" @.str9423 = private unnamed_addr constant [41 x i8] c" call i32 (ptr, ptr, ...) @fprintf(ptr \00" @.str9424 = private unnamed_addr constant [24 x i8] c", ptr @.fmt_panic, ptr \00" @.str9425 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9426 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9427 = private unnamed_addr constant [40 x i8] c" call void @exit(i32 1)\0A unreachable\0A\00" @.str9428 = private unnamed_addr constant [2 x i8] c"0\00" @.str9429 = private unnamed_addr constant [5 x i8] c"void\00" @.str9430 = private unnamed_addr constant [7 x i8] c"assert\00" @.str9431 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13548: index out of range: \00" @.str9432 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str9433 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9434 = private unnamed_addr constant [5 x i8] c"asok\00" @.str9435 = private unnamed_addr constant [6 x i8] c"asbad\00" @.str9436 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str9437 = private unnamed_addr constant [10 x i8] c", label %\00" @.str9438 = private unnamed_addr constant [10 x i8] c", label %\00" @.str9439 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9440 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str9441 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13553: index out of range: \00" @.str9442 = private unnamed_addr constant [2 x i8] c":\00" @.str9443 = private unnamed_addr constant [21 x i8] c": assertion failed: \00" @.str9444 = private unnamed_addr constant [41 x i8] c" call i32 (ptr, ptr, ...) @fprintf(ptr \00" @.str9445 = private unnamed_addr constant [24 x i8] c", ptr @.fmt_panic, ptr \00" @.str9446 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9447 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9448 = private unnamed_addr constant [40 x i8] c" call void @exit(i32 1)\0A unreachable\0A\00" @.str9449 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str9450 = private unnamed_addr constant [2 x i8] c"0\00" @.str9451 = private unnamed_addr constant [5 x i8] c"void\00" @.str9452 = private unnamed_addr constant [3 x i8] c"ok\00" @.str9453 = private unnamed_addr constant [3 x i8] c"ok\00" @.str9454 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13569: index out of range: \00" @.str9455 = private unnamed_addr constant [25 x i8] c"call ptr @malloc(i64 16)\00" @.str9456 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9457 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9458 = private unnamed_addr constant [20 x i8] c" store i32 1, ptr \00" @.str9459 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9460 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9461 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str9462 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str9463 = private unnamed_addr constant [4 x i8] c"int\00" @.str9464 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9465 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9466 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9467 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" @.str9468 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00" @.str9469 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9470 = private unnamed_addr constant [7 x i8] c"result\00" @.str9471 = private unnamed_addr constant [4 x i8] c"err\00" @.str9472 = private unnamed_addr constant [4 x i8] c"err\00" @.str9473 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13581: index out of range: \00" @.str9474 = private unnamed_addr constant [25 x i8] c"call ptr @malloc(i64 16)\00" @.str9475 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9476 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9477 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str9478 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9479 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9480 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str9481 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str9482 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9483 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9484 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" @.str9485 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str9486 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9487 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9488 = private unnamed_addr constant [7 x i8] c"result\00" @.str9489 = private unnamed_addr constant [6 x i8] c"is_ok\00" @.str9490 = private unnamed_addr constant [6 x i8] c"is_ok\00" @.str9491 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13592: index out of range: \00" @.str9492 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9493 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9494 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str9495 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str9496 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9497 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str9498 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9499 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9500 = private unnamed_addr constant [7 x i8] c"is_err\00" @.str9501 = private unnamed_addr constant [7 x i8] c"is_err\00" @.str9502 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13599: index out of range: \00" @.str9503 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Result, ptr \00" @.str9504 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9505 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str9506 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str9507 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9508 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str9509 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9510 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9511 = private unnamed_addr constant [5 x i8] c"some\00" @.str9512 = private unnamed_addr constant [5 x i8] c"some\00" @.str9513 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13613: index out of range: \00" @.str9514 = private unnamed_addr constant [24 x i8] c"call ptr @malloc(i64 8)\00" @.str9515 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9516 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9517 = private unnamed_addr constant [20 x i8] c" store i32 1, ptr \00" @.str9518 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9519 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9520 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str9521 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str9522 = private unnamed_addr constant [4 x i8] c"int\00" @.str9523 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9524 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9525 = private unnamed_addr constant [7 x i8] c"option\00" @.str9526 = private unnamed_addr constant [5 x i8] c"none\00" @.str9527 = private unnamed_addr constant [5 x i8] c"none\00" @.str9528 = private unnamed_addr constant [24 x i8] c"call ptr @malloc(i64 8)\00" @.str9529 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9530 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9531 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str9532 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9533 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9534 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str9535 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str9536 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9537 = private unnamed_addr constant [7 x i8] c"option\00" @.str9538 = private unnamed_addr constant [8 x i8] c"is_some\00" @.str9539 = private unnamed_addr constant [8 x i8] c"is_some\00" @.str9540 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13631: index out of range: \00" @.str9541 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9542 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9543 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str9544 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str9545 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9546 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str9547 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9548 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9549 = private unnamed_addr constant [8 x i8] c"is_none\00" @.str9550 = private unnamed_addr constant [8 x i8] c"is_none\00" @.str9551 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13638: index out of range: \00" @.str9552 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9553 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9554 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str9555 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str9556 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9557 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str9558 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9559 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9560 = private unnamed_addr constant [10 x i8] c"unwrap_or\00" @.str9561 = private unnamed_addr constant [10 x i8] c"unwrap_or\00" @.str9562 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13645: index out of range: \00" @.str9563 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13646: index out of range: \00" @.str9564 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9565 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" @.str9566 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str9567 = private unnamed_addr constant [37 x i8] c"getelementptr inbounds %Option, ptr \00" @.str9568 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str9569 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str9570 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str9571 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9572 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str9573 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9574 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9575 = private unnamed_addr constant [4 x i8] c"int\00" @.str9576 = private unnamed_addr constant [4 x i8] c"int\00" @.str9577 = private unnamed_addr constant [14 x i8] c"world_prop_id\00" @.str9578 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13657: index out of range: \00" @.str9579 = private unnamed_addr constant [29 x i8] c"call i32 @ludic_prop_id(ptr \00" @.str9580 = private unnamed_addr constant [2 x i8] c")\00" @.str9581 = private unnamed_addr constant [4 x i8] c"int\00" @.str9582 = private unnamed_addr constant [15 x i8] c"world_field_id\00" @.str9583 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13658: index out of range: \00" @.str9584 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13658: index out of range: \00" @.str9585 = private unnamed_addr constant [30 x i8] c"call i32 @ludic_field_id(i32 \00" @.str9586 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str9587 = private unnamed_addr constant [2 x i8] c")\00" @.str9588 = private unnamed_addr constant [4 x i8] c"int\00" @.str9589 = private unnamed_addr constant [10 x i8] c"world_get\00" @.str9590 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13660: index out of range: \00" @.str9591 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13660: index out of range: \00" @.str9592 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13660: index out of range: \00" @.str9593 = private unnamed_addr constant [25 x i8] c"call i64 @ludic_get(i32 \00" @.str9594 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9595 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9596 = private unnamed_addr constant [2 x i8] c")\00" @.str9597 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str9598 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9599 = private unnamed_addr constant [4 x i8] c"int\00" @.str9600 = private unnamed_addr constant [10 x i8] c"world_set\00" @.str9601 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13665: index out of range: \00" @.str9602 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13665: index out of range: \00" @.str9603 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13665: index out of range: \00" @.str9604 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13665: index out of range: \00" @.str9605 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str9606 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str9607 = private unnamed_addr constant [28 x i8] c" call void @ludic_set(i32 \00" @.str9608 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9609 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9610 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str9611 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9612 = private unnamed_addr constant [2 x i8] c"0\00" @.str9613 = private unnamed_addr constant [5 x i8] c"void\00" @.str9614 = private unnamed_addr constant [10 x i8] c"world_has\00" @.str9615 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13670: index out of range: \00" @.str9616 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13670: index out of range: \00" @.str9617 = private unnamed_addr constant [25 x i8] c"call i32 @ludic_has(i32 \00" @.str9618 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9619 = private unnamed_addr constant [2 x i8] c")\00" @.str9620 = private unnamed_addr constant [4 x i8] c"int\00" @.str9621 = private unnamed_addr constant [12 x i8] c"world_count\00" @.str9622 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_entity_count()\00" @.str9623 = private unnamed_addr constant [4 x i8] c"int\00" @.str9624 = private unnamed_addr constant [11 x i8] c"world_kind\00" @.str9625 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13672: index out of range: \00" @.str9626 = private unnamed_addr constant [26 x i8] c"call i32 @ludic_kind(i32 \00" @.str9627 = private unnamed_addr constant [2 x i8] c")\00" @.str9628 = private unnamed_addr constant [4 x i8] c"int\00" @.str9629 = private unnamed_addr constant [15 x i8] c"world_model_id\00" @.str9630 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13673: index out of range: \00" @.str9631 = private unnamed_addr constant [30 x i8] c"call i32 @ludic_model_id(ptr \00" @.str9632 = private unnamed_addr constant [2 x i8] c")\00" @.str9633 = private unnamed_addr constant [4 x i8] c"int\00" @.str9634 = private unnamed_addr constant [17 x i8] c"world_query_next\00" @.str9635 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13674: index out of range: \00" @.str9636 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13674: index out of range: \00" @.str9637 = private unnamed_addr constant [32 x i8] c"call i32 @ludic_query_next(i32 \00" @.str9638 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9639 = private unnamed_addr constant [2 x i8] c")\00" @.str9640 = private unnamed_addr constant [4 x i8] c"int\00" @.str9641 = private unnamed_addr constant [20 x i8] c"world_register_prop\00" @.str9642 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13675: index out of range: \00" @.str9643 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13675: index out of range: \00" @.str9644 = private unnamed_addr constant [35 x i8] c"call i32 @ludic_register_prop(ptr \00" @.str9645 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9646 = private unnamed_addr constant [2 x i8] c")\00" @.str9647 = private unnamed_addr constant [4 x i8] c"int\00" @.str9648 = private unnamed_addr constant [17 x i8] c"world_attach_dyn\00" @.str9649 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13676: index out of range: \00" @.str9650 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13676: index out of range: \00" @.str9651 = private unnamed_addr constant [35 x i8] c" call void @ludic_attach_dyn(i32 \00" @.str9652 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9653 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9654 = private unnamed_addr constant [2 x i8] c"0\00" @.str9655 = private unnamed_addr constant [5 x i8] c"void\00" @.str9656 = private unnamed_addr constant [17 x i8] c"world_detach_dyn\00" @.str9657 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13677: index out of range: \00" @.str9658 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13677: index out of range: \00" @.str9659 = private unnamed_addr constant [35 x i8] c" call void @ludic_detach_dyn(i32 \00" @.str9660 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9661 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9662 = private unnamed_addr constant [2 x i8] c"0\00" @.str9663 = private unnamed_addr constant [5 x i8] c"void\00" @.str9664 = private unnamed_addr constant [12 x i8] c"world_spawn\00" @.str9665 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13678: index out of range: \00" @.str9666 = private unnamed_addr constant [27 x i8] c"call i32 @ludic_spawn(i32 \00" @.str9667 = private unnamed_addr constant [2 x i8] c")\00" @.str9668 = private unnamed_addr constant [4 x i8] c"int\00" @.str9669 = private unnamed_addr constant [17 x i8] c"world_prop_count\00" @.str9670 = private unnamed_addr constant [29 x i8] c"call i32 @ludic_prop_count()\00" @.str9671 = private unnamed_addr constant [4 x i8] c"int\00" @.str9672 = private unnamed_addr constant [16 x i8] c"world_prop_name\00" @.str9673 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13681: index out of range: \00" @.str9674 = private unnamed_addr constant [31 x i8] c"call ptr @ludic_prop_name(i32 \00" @.str9675 = private unnamed_addr constant [2 x i8] c")\00" @.str9676 = private unnamed_addr constant [7 x i8] c"string\00" @.str9677 = private unnamed_addr constant [18 x i8] c"world_field_count\00" @.str9678 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13682: index out of range: \00" @.str9679 = private unnamed_addr constant [33 x i8] c"call i32 @ludic_field_count(i32 \00" @.str9680 = private unnamed_addr constant [2 x i8] c")\00" @.str9681 = private unnamed_addr constant [4 x i8] c"int\00" @.str9682 = private unnamed_addr constant [17 x i8] c"world_field_name\00" @.str9683 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13683: index out of range: \00" @.str9684 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13683: index out of range: \00" @.str9685 = private unnamed_addr constant [32 x i8] c"call ptr @ludic_field_name(i32 \00" @.str9686 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9687 = private unnamed_addr constant [2 x i8] c")\00" @.str9688 = private unnamed_addr constant [7 x i8] c"string\00" @.str9689 = private unnamed_addr constant [17 x i8] c"world_field_type\00" @.str9690 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13684: index out of range: \00" @.str9691 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13684: index out of range: \00" @.str9692 = private unnamed_addr constant [32 x i8] c"call ptr @ludic_field_type(i32 \00" @.str9693 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9694 = private unnamed_addr constant [2 x i8] c")\00" @.str9695 = private unnamed_addr constant [7 x i8] c"string\00" @.str9696 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13700: index out of range: \00" @.str9697 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str9698 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9699 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13704: index out of range: \00" @.str9700 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9701 = private unnamed_addr constant [3 x i8] c" \00" @.str9702 = private unnamed_addr constant [2 x i8] c"0\00" @.str9703 = private unnamed_addr constant [5 x i8] c"void\00" @.str9704 = private unnamed_addr constant [4 x i8] c" = \00" @.str9705 = private unnamed_addr constant [6 x i8] c"call \00" @.str9706 = private unnamed_addr constant [3 x i8] c" @\00" @.str9707 = private unnamed_addr constant [2 x i8] c"(\00" @.str9708 = private unnamed_addr constant [3 x i8] c", \00" @.str9709 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13718: index out of range: \00" @.str9710 = private unnamed_addr constant [2 x i8] c" \00" @.str9711 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13718: index out of range: \00" @.str9712 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9713 = private unnamed_addr constant [4 x i8] c"rt_\00" @.str9714 = private unnamed_addr constant [18 x i8] c"unknown function \00" @.str9715 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13748: index out of range: \00" @.str9716 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13750: index out of range: \00" @.str9717 = private unnamed_addr constant [3 x i8] c" \00" @.str9718 = private unnamed_addr constant [2 x i8] c"0\00" @.str9719 = private unnamed_addr constant [5 x i8] c"void\00" @.str9720 = private unnamed_addr constant [4 x i8] c" = \00" @.str9721 = private unnamed_addr constant [6 x i8] c"call \00" @.str9722 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str9723 = private unnamed_addr constant [2 x i8] c"(\00" @.str9724 = private unnamed_addr constant [3 x i8] c", \00" @.str9725 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13761: index out of range: \00" @.str9726 = private unnamed_addr constant [2 x i8] c" \00" @.str9727 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13761: index out of range: \00" @.str9728 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9729 = private unnamed_addr constant [2 x i8] c"0\00" @.str9730 = private unnamed_addr constant [4 x i8] c"int\00" @.str9731 = private unnamed_addr constant [5 x i8] c"long\00" @.str9732 = private unnamed_addr constant [4 x i8] c"int\00" @.str9733 = private unnamed_addr constant [6 x i8] c"float\00" @.str9734 = private unnamed_addr constant [6 x i8] c"float\00" @.str9735 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9736 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13780: index out of range: \00" @.str9737 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9738 = private unnamed_addr constant [5 x i8] c"null\00" @.str9739 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9740 = private unnamed_addr constant [7 x i8] c"entity\00" @.str9741 = private unnamed_addr constant [28 x i8] c"call ptr @lp_str_slice(ptr \00" @.str9742 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9743 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str9744 = private unnamed_addr constant [2 x i8] c")\00" @.str9745 = private unnamed_addr constant [7 x i8] c"string\00" @.str9746 = private unnamed_addr constant [7 x i8] c"string\00" @.str9747 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13802: index out of range: \00" @.str9748 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13802: index out of range: \00" @.str9749 = private unnamed_addr constant [7 x i8] c"const \00" @.str9750 = private unnamed_addr constant [6 x i8] c"load \00" @.str9751 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" @.str9752 = private unnamed_addr constant [4 x i8] c"int\00" @.str9753 = private unnamed_addr constant [20 x i8] c"unknown identifier \00" @.str9754 = private unnamed_addr constant [6 x i8] c"Color\00" @.str9755 = private unnamed_addr constant [21 x i8] c"unknown color Color.\00" @.str9756 = private unnamed_addr constant [4 x i8] c"int\00" @.str9757 = private unnamed_addr constant [4 x i8] c"Key\00" @.str9758 = private unnamed_addr constant [17 x i8] c"unknown key Key.\00" @.str9759 = private unnamed_addr constant [4 x i8] c"int\00" @.str9760 = private unnamed_addr constant [4 x i8] c"int\00" @.str9761 = private unnamed_addr constant [6 x i8] c"IVec2\00" @.str9762 = private unnamed_addr constant [2 x i8] c"x\00" @.str9763 = private unnamed_addr constant [2 x i8] c"y\00" @.str9764 = private unnamed_addr constant [2 x i8] c"x\00" @.str9765 = private unnamed_addr constant [4 x i8] c"int\00" @.str9766 = private unnamed_addr constant [4 x i8] c"int\00" @.str9767 = private unnamed_addr constant [5 x i8] c"byte\00" @.str9768 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str9769 = private unnamed_addr constant [9 x i8] c"zext i8 \00" @.str9770 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9771 = private unnamed_addr constant [4 x i8] c"int\00" @.str9772 = private unnamed_addr constant [2 x i8] c"-\00" @.str9773 = private unnamed_addr constant [6 x i8] c"fneg \00" @.str9774 = private unnamed_addr constant [2 x i8] c" \00" @.str9775 = private unnamed_addr constant [10 x i8] c"operator \00" @.str9776 = private unnamed_addr constant [20 x i8] c" does not apply to \00" @.str9777 = private unnamed_addr constant [2 x i8] c"-\00" @.str9778 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str9779 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9780 = private unnamed_addr constant [4 x i8] c"i64\00" @.str9781 = private unnamed_addr constant [2 x i8] c"-\00" @.str9782 = private unnamed_addr constant [12 x i8] c"sub i64 0, \00" @.str9783 = private unnamed_addr constant [5 x i8] c"long\00" @.str9784 = private unnamed_addr constant [2 x i8] c"~\00" @.str9785 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str9786 = private unnamed_addr constant [5 x i8] c", -1\00" @.str9787 = private unnamed_addr constant [5 x i8] c"long\00" @.str9788 = private unnamed_addr constant [2 x i8] c"-\00" @.str9789 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str9790 = private unnamed_addr constant [2 x i8] c"~\00" @.str9791 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str9792 = private unnamed_addr constant [5 x i8] c", -1\00" @.str9793 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str9794 = private unnamed_addr constant [4 x i8] c", 0\00" @.str9795 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str9796 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str9797 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9798 = private unnamed_addr constant [23 x i8] c"cannot emit expression\00" @.str9799 = private unnamed_addr constant [2 x i8] c"0\00" @.str9800 = private unnamed_addr constant [4 x i8] c"int\00" @.str9801 = private unnamed_addr constant [4 x i8] c"fn(\00" @.str9802 = private unnamed_addr constant [2 x i8] c",\00" @.str9803 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13909: index out of range: \00" @.str9804 = private unnamed_addr constant [5 x i8] c"void\00" @.str9805 = private unnamed_addr constant [4 x i8] c")->\00" @.str9806 = private unnamed_addr constant [5 x i8] c"void\00" @.str9807 = private unnamed_addr constant [4 x i8] c"fn \00" @.str9808 = private unnamed_addr constant [22 x i8] c": no function called \00" @.str9809 = private unnamed_addr constant [5 x i8] c"@fn_\00" @.str9810 = private unnamed_addr constant [3 x i8] c"a \00" @.str9811 = private unnamed_addr constant [8 x i8] c" takes \00" @.str9812 = private unnamed_addr constant [35 x i8] c" argument(s), and this call gives \00" @.str9813 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13970: index out of range: \00" @.str9814 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13971: index out of range: \00" @.str9815 = private unnamed_addr constant [3 x i8] c" \00" @.str9816 = private unnamed_addr constant [2 x i8] c"0\00" @.str9817 = private unnamed_addr constant [5 x i8] c"void\00" @.str9818 = private unnamed_addr constant [4 x i8] c" = \00" @.str9819 = private unnamed_addr constant [6 x i8] c"call \00" @.str9820 = private unnamed_addr constant [2 x i8] c" \00" @.str9821 = private unnamed_addr constant [2 x i8] c"(\00" @.str9822 = private unnamed_addr constant [3 x i8] c", \00" @.str9823 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13986: index out of range: \00" @.str9824 = private unnamed_addr constant [2 x i8] c" \00" @.str9825 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13986: index out of range: \00" @.str9826 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9827 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:13998: index out of range: \00" @.str9828 = private unnamed_addr constant [3 x i8] c"a \00" @.str9829 = private unnamed_addr constant [40 x i8] c" is not a function and cannot be called\00" @.str9830 = private unnamed_addr constant [5 x i8] c"void\00" @.str9831 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14024: index out of range: \00" @.str9832 = private unnamed_addr constant [4 x i8] c"i32\00" @.str9833 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14024: index out of range: \00" @.str9834 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str9835 = private unnamed_addr constant [4 x i8] c"fn \00" @.str9836 = private unnamed_addr constant [69 x i8] c": a worker function takes (i: int, ctx: pointer) and returns nothing\00" @.str9837 = private unnamed_addr constant [17 x i8] c"LUDIC_VIS_REPORT\00" @.str9838 = private unnamed_addr constant [1 x i8] c"\00" @.str9839 = private unnamed_addr constant [7 x i8] c"uses: \00" @.str9840 = private unnamed_addr constant [2 x i8] c":\00" @.str9841 = private unnamed_addr constant [3 x i8] c": \00" @.str9842 = private unnamed_addr constant [2 x i8] c".\00" @.str9843 = private unnamed_addr constant [12 x i8] c" used from \00" @.str9844 = private unnamed_addr constant [10 x i8] c" (module \00" @.str9845 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str9846 = private unnamed_addr constant [7 x i8] c" uses \00" @.str9847 = private unnamed_addr constant [2 x i8] c".\00" @.str9848 = private unnamed_addr constant [3 x i8] c" (\00" @.str9849 = private unnamed_addr constant [2 x i8] c":\00" @.str9850 = private unnamed_addr constant [14 x i8] c"): add 'uses \00" @.str9851 = private unnamed_addr constant [6 x i8] c"' to \00" @.str9852 = private unnamed_addr constant [42 x i8] c"'s module line, or take it through a port\00" @.str9853 = private unnamed_addr constant [1 x i8] c"\00" @.str9854 = private unnamed_addr constant [6 x i8] c"vis: \00" @.str9855 = private unnamed_addr constant [2 x i8] c":\00" @.str9856 = private unnamed_addr constant [3 x i8] c": \00" @.str9857 = private unnamed_addr constant [2 x i8] c".\00" @.str9858 = private unnamed_addr constant [12 x i8] c" used from \00" @.str9859 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9860 = private unnamed_addr constant [23 x i8] c" is private to module \00" @.str9861 = private unnamed_addr constant [42 x i8] c"; mark it 'export' where it is declared (\00" @.str9862 = private unnamed_addr constant [2 x i8] c")\00" @.str9863 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14124: index out of range: \00" @.str9864 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14125: index out of range: \00" @.str9865 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14128: index out of range: \00" @.str9866 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14129: index out of range: \00" @.str9867 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14134: index out of range: \00" @.str9868 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14135: index out of range: \00" @.str9869 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14135: index out of range: \00" @.str9870 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14148: index out of range: \00" @.str9871 = private unnamed_addr constant [2 x i8] c"?\00" @.str9872 = private unnamed_addr constant [4 x i8] c"int\00" @.str9873 = private unnamed_addr constant [5 x i8] c"long\00" @.str9874 = private unnamed_addr constant [5 x i8] c"byte\00" @.str9875 = private unnamed_addr constant [4 x i8] c"i64\00" @.str9876 = private unnamed_addr constant [3 x i8] c"u8\00" @.str9877 = private unnamed_addr constant [4 x i8] c"an \00" @.str9878 = private unnamed_addr constant [3 x i8] c"a \00" @.str9879 = private unnamed_addr constant [6 x i8] c"float\00" @.str9880 = private unnamed_addr constant [7 x i8] c"double\00" @.str9881 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9882 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9883 = private unnamed_addr constant [5 x i8] c"void\00" @.str9884 = private unnamed_addr constant [5 x i8] c"null\00" @.str9885 = private unnamed_addr constant [2 x i8] c"-\00" @.str9886 = private unnamed_addr constant [7 x i8] c"number\00" @.str9887 = private unnamed_addr constant [7 x i8] c"string\00" @.str9888 = private unnamed_addr constant [7 x i8] c"string\00" @.str9889 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9890 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9891 = private unnamed_addr constant [10 x i8] c"reference\00" @.str9892 = private unnamed_addr constant [5 x i8] c"void\00" @.str9893 = private unnamed_addr constant [5 x i8] c"null\00" @.str9894 = private unnamed_addr constant [5 x i8] c"null\00" @.str9895 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9896 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9897 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9898 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9899 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9900 = private unnamed_addr constant [10 x i8] c"narrowing\00" @.str9901 = private unnamed_addr constant [5 x i8] c"kind\00" @.str9902 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9903 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9904 = private unnamed_addr constant [5 x i8] c"kind\00" @.str9905 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9906 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9907 = private unnamed_addr constant [5 x i8] c"kind\00" @.str9908 = private unnamed_addr constant [5 x i8] c"kind\00" @.str9909 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str9910 = private unnamed_addr constant [14 x i8] c"slice-pointer\00" @.str9911 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str9912 = private unnamed_addr constant [14 x i8] c"pointer-slice\00" @.str9913 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9914 = private unnamed_addr constant [14 x i8] c"slice-pointer\00" @.str9915 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9916 = private unnamed_addr constant [14 x i8] c"pointer-slice\00" @.str9917 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9918 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str9919 = private unnamed_addr constant [7 x i8] c"string\00" @.str9920 = private unnamed_addr constant [5 x i8] c"kind\00" @.str9921 = private unnamed_addr constant [7 x i8] c"record\00" @.str9922 = private unnamed_addr constant [7 x i8] c"string\00" @.str9923 = private unnamed_addr constant [5 x i8] c"kind\00" @.str9924 = private unnamed_addr constant [10 x i8] c"[]pointer\00" @.str9925 = private unnamed_addr constant [10 x i8] c"[]pointer\00" @.str9926 = private unnamed_addr constant [6 x i8] c"slice\00" @.str9927 = private unnamed_addr constant [3 x i8] c"fn\00" @.str9928 = private unnamed_addr constant [7 x i8] c"string\00" @.str9929 = private unnamed_addr constant [5 x i8] c"kind\00" @.str9930 = private unnamed_addr constant [5 x i8] c"null\00" @.str9931 = private unnamed_addr constant [2 x i8] c"?\00" @.str9932 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14278: index out of range: \00" @.str9933 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14279: index out of range: \00" @.str9934 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14291: index out of range: \00" @.str9935 = private unnamed_addr constant [19 x i8] c"LUDIC_CHECK_REPORT\00" @.str9936 = private unnamed_addr constant [1 x i8] c"\00" @.str9937 = private unnamed_addr constant [2 x i8] c":\00" @.str9938 = private unnamed_addr constant [10 x i8] c": error: \00" @.str9939 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9940 = private unnamed_addr constant [7 x i8] c"check[\00" @.str9941 = private unnamed_addr constant [4 x i8] c"]: \00" @.str9942 = private unnamed_addr constant [2 x i8] c":\00" @.str9943 = private unnamed_addr constant [3 x i8] c": \00" @.str9944 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str9945 = private unnamed_addr constant [4 x i8] c"int\00" @.str9946 = private unnamed_addr constant [5 x i8] c"byte\00" @.str9947 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9948 = private unnamed_addr constant [8 x i8] c"literal\00" @.str9949 = private unnamed_addr constant [8 x i8] c" wants \00" @.str9950 = private unnamed_addr constant [6 x i8] c" and \00" @.str9951 = private unnamed_addr constant [32 x i8] c" does not fit one; it is a long\00" @.str9952 = private unnamed_addr constant [14 x i8] c"slice-pointer\00" @.str9953 = private unnamed_addr constant [30 x i8] c" wants a pointer and this is \00" @.str9954 = private unnamed_addr constant [55 x i8] c": take the slice itself, or data_of(xs) in unsafe code\00" @.str9955 = private unnamed_addr constant [14 x i8] c"pointer-slice\00" @.str9956 = private unnamed_addr constant [8 x i8] c" wants \00" @.str9957 = private unnamed_addr constant [93 x i8] c" and this is a pointer: a slice is made with words(n), floats(n) or new, not from an address\00" @.str9958 = private unnamed_addr constant [8 x i8] c" wants \00" @.str9959 = private unnamed_addr constant [14 x i8] c" and this is \00" @.str9960 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14341: index out of range: \00" @.str9961 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14341: index out of range: \00" @.str9962 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14354: index out of range: \00" @.str9963 = private unnamed_addr constant [2 x i8] c"?\00" @.str9964 = private unnamed_addr constant [5 x i8] c"long\00" @.str9965 = private unnamed_addr constant [4 x i8] c"int\00" @.str9966 = private unnamed_addr constant [6 x i8] c"float\00" @.str9967 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str9968 = private unnamed_addr constant [7 x i8] c"string\00" @.str9969 = private unnamed_addr constant [7 x i8] c"string\00" @.str9970 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9971 = private unnamed_addr constant [5 x i8] c"null\00" @.str9972 = private unnamed_addr constant [2 x i8] c"?\00" @.str9973 = private unnamed_addr constant [2 x i8] c"?\00" @.str9974 = private unnamed_addr constant [2 x i8] c"?\00" @.str9975 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14404: index out of range: \00" @.str9976 = private unnamed_addr constant [2 x i8] c"?\00" @.str9977 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14414: index out of range: \00" @.str9978 = private unnamed_addr constant [7 x i8] c"field \00" @.str9979 = private unnamed_addr constant [5 x i8] c" of \00" @.str9980 = private unnamed_addr constant [6 x i8] c"field\00" @.str9981 = private unnamed_addr constant [15 x i8] c" has no field \00" @.str9982 = private unnamed_addr constant [2 x i8] c"?\00" @.str9983 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14430: index out of range: \00" @.str9984 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14432: index out of range: \00" @.str9985 = private unnamed_addr constant [19 x i8] c"an element of a []\00" @.str9986 = private unnamed_addr constant [5 x i8] c"null\00" @.str9987 = private unnamed_addr constant [2 x i8] c"?\00" @.str9988 = private unnamed_addr constant [3 x i8] c"[]\00" @.str9989 = private unnamed_addr constant [4 x i8] c"not\00" @.str9990 = private unnamed_addr constant [2 x i8] c"!\00" @.str9991 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9992 = private unnamed_addr constant [2 x i8] c"-\00" @.str9993 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9994 = private unnamed_addr constant [5 x i8] c"bool\00" @.str9995 = private unnamed_addr constant [12 x i8] c"- on a bool\00" @.str9996 = private unnamed_addr constant [2 x i8] c"?\00" @.str9997 = private unnamed_addr constant [2 x i8] c"?\00" @.str9998 = private unnamed_addr constant [2 x i8] c"?\00" @.str9999 = private unnamed_addr constant [10 x i8] c"indexing \00" @.str10000 = private unnamed_addr constant [6 x i8] c"index\00" @.str10001 = private unnamed_addr constant [35 x i8] c"an index wants an int and this is \00" @.str10002 = private unnamed_addr constant [2 x i8] c"?\00" @.str10003 = private unnamed_addr constant [7 x i8] c"string\00" @.str10004 = private unnamed_addr constant [6 x i8] c"words\00" @.str10005 = private unnamed_addr constant [4 x i8] c"int\00" @.str10006 = private unnamed_addr constant [7 x i8] c"floats\00" @.str10007 = private unnamed_addr constant [6 x i8] c"float\00" @.str10008 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str10009 = private unnamed_addr constant [7 x i8] c"double\00" @.str10010 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str10011 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10012 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str10013 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str10014 = private unnamed_addr constant [2 x i8] c"?\00" @.str10015 = private unnamed_addr constant [5 x i8] c"bool\00" @.str10016 = private unnamed_addr constant [5 x i8] c"cond\00" @.str10017 = private unnamed_addr constant [38 x i8] c"a condition wants a bool and this is \00" @.str10018 = private unnamed_addr constant [4 x i8] c"and\00" @.str10019 = private unnamed_addr constant [3 x i8] c"or\00" @.str10020 = private unnamed_addr constant [3 x i8] c"&&\00" @.str10021 = private unnamed_addr constant [3 x i8] c"||\00" @.str10022 = private unnamed_addr constant [5 x i8] c"bool\00" @.str10023 = private unnamed_addr constant [3 x i8] c"==\00" @.str10024 = private unnamed_addr constant [3 x i8] c"!=\00" @.str10025 = private unnamed_addr constant [2 x i8] c"<\00" @.str10026 = private unnamed_addr constant [2 x i8] c">\00" @.str10027 = private unnamed_addr constant [3 x i8] c"<=\00" @.str10028 = private unnamed_addr constant [3 x i8] c">=\00" @.str10029 = private unnamed_addr constant [5 x i8] c"bool\00" @.str10030 = private unnamed_addr constant [2 x i8] c"+\00" @.str10031 = private unnamed_addr constant [2 x i8] c"-\00" @.str10032 = private unnamed_addr constant [2 x i8] c"*\00" @.str10033 = private unnamed_addr constant [2 x i8] c"/\00" @.str10034 = private unnamed_addr constant [2 x i8] c"%\00" @.str10035 = private unnamed_addr constant [2 x i8] c"&\00" @.str10036 = private unnamed_addr constant [2 x i8] c"|\00" @.str10037 = private unnamed_addr constant [2 x i8] c"^\00" @.str10038 = private unnamed_addr constant [3 x i8] c"<<\00" @.str10039 = private unnamed_addr constant [3 x i8] c">>\00" @.str10040 = private unnamed_addr constant [5 x i8] c"long\00" @.str10041 = private unnamed_addr constant [5 x i8] c"long\00" @.str10042 = private unnamed_addr constant [5 x i8] c"long\00" @.str10043 = private unnamed_addr constant [4 x i8] c"int\00" @.str10044 = private unnamed_addr constant [2 x i8] c"?\00" @.str10045 = private unnamed_addr constant [5 x i8] c"null\00" @.str10046 = private unnamed_addr constant [5 x i8] c"null\00" @.str10047 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str10048 = private unnamed_addr constant [7 x i8] c"string\00" @.str10049 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str10050 = private unnamed_addr constant [7 x i8] c"string\00" @.str10051 = private unnamed_addr constant [8 x i8] c"compare\00" @.str10052 = private unnamed_addr constant [10 x i8] c" between \00" @.str10053 = private unnamed_addr constant [6 x i8] c" and \00" @.str10054 = private unnamed_addr constant [8 x i8] c"compare\00" @.str10055 = private unnamed_addr constant [10 x i8] c" between \00" @.str10056 = private unnamed_addr constant [6 x i8] c" and \00" @.str10057 = private unnamed_addr constant [19 x i8] c" can never be true\00" @.str10058 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10059 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10060 = private unnamed_addr constant [22 x i8] c" between a fixed and \00" @.str10061 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10062 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10063 = private unnamed_addr constant [10 x i8] c" between \00" @.str10064 = private unnamed_addr constant [13 x i8] c" and a fixed\00" @.str10065 = private unnamed_addr constant [7 x i8] c"string\00" @.str10066 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str10067 = private unnamed_addr constant [7 x i8] c"string\00" @.str10068 = private unnamed_addr constant [2 x i8] c"+\00" @.str10069 = private unnamed_addr constant [7 x i8] c"string\00" @.str10070 = private unnamed_addr constant [5 x i8] c"text\00" @.str10071 = private unnamed_addr constant [5 x i8] c" of \00" @.str10072 = private unnamed_addr constant [6 x i8] c" and \00" @.str10073 = private unnamed_addr constant [54 x i8] c": text joins text only - write string(x) for a number\00" @.str10074 = private unnamed_addr constant [2 x i8] c"?\00" @.str10075 = private unnamed_addr constant [2 x i8] c"?\00" @.str10076 = private unnamed_addr constant [5 x i8] c"bool\00" @.str10077 = private unnamed_addr constant [5 x i8] c"bool\00" @.str10078 = private unnamed_addr constant [5 x i8] c"bool\00" @.str10079 = private unnamed_addr constant [11 x i8] c" on a bool\00" @.str10080 = private unnamed_addr constant [2 x i8] c"?\00" @.str10081 = private unnamed_addr constant [5 x i8] c"kind\00" @.str10082 = private unnamed_addr constant [5 x i8] c" of \00" @.str10083 = private unnamed_addr constant [6 x i8] c" and \00" @.str10084 = private unnamed_addr constant [2 x i8] c"?\00" @.str10085 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10086 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10087 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10088 = private unnamed_addr constant [17 x i8] c" of a fixed and \00" @.str10089 = private unnamed_addr constant [40 x i8] c": convert one with float(x) or fixed(x)\00" @.str10090 = private unnamed_addr constant [2 x i8] c"?\00" @.str10091 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10092 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10093 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10094 = private unnamed_addr constant [5 x i8] c" of \00" @.str10095 = private unnamed_addr constant [52 x i8] c" and a fixed: convert one with float(x) or fixed(x)\00" @.str10096 = private unnamed_addr constant [2 x i8] c"?\00" @.str10097 = private unnamed_addr constant [7 x i8] c"double\00" @.str10098 = private unnamed_addr constant [7 x i8] c"double\00" @.str10099 = private unnamed_addr constant [7 x i8] c"double\00" @.str10100 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10101 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10102 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10103 = private unnamed_addr constant [5 x i8] c"long\00" @.str10104 = private unnamed_addr constant [5 x i8] c"long\00" @.str10105 = private unnamed_addr constant [5 x i8] c"long\00" @.str10106 = private unnamed_addr constant [4 x i8] c"int\00" @.str10107 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14571: index out of range: \00" @.str10108 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14572: index out of range: \00" @.str10109 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14573: index out of range: \00" @.str10110 = private unnamed_addr constant [5 x i8] c"void\00" @.str10111 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14588: index out of range: \00" @.str10112 = private unnamed_addr constant [5 x i8] c"void\00" @.str10113 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14604: index out of range: \00" @.str10114 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14611: index out of range: \00" @.str10115 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14614: index out of range: \00" @.str10116 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14617: index out of range: \00" @.str10117 = private unnamed_addr constant [10 x i8] c"argument \00" @.str10118 = private unnamed_addr constant [5 x i8] c" of \00" @.str10119 = private unnamed_addr constant [6 x i8] c"arity\00" @.str10120 = private unnamed_addr constant [19 x i8] c" has no parameter \00" @.str10121 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14623: index out of range: \00" @.str10122 = private unnamed_addr constant [6 x i8] c"arity\00" @.str10123 = private unnamed_addr constant [14 x i8] c"this call to \00" @.str10124 = private unnamed_addr constant [13 x i8] c" leaves out \00" @.str10125 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14623: index out of range: \00" @.str10126 = private unnamed_addr constant [23 x i8] c", which has no default\00" @.str10127 = private unnamed_addr constant [6 x i8] c"arity\00" @.str10128 = private unnamed_addr constant [14 x i8] c"this call to \00" @.str10129 = private unnamed_addr constant [13 x i8] c" leaves out \00" @.str10130 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14628: index out of range: \00" @.str10131 = private unnamed_addr constant [23 x i8] c", which has no default\00" @.str10132 = private unnamed_addr constant [6 x i8] c"arity\00" @.str10133 = private unnamed_addr constant [8 x i8] c" takes \00" @.str10134 = private unnamed_addr constant [34 x i8] c" argument(s) and this call gives \00" @.str10135 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14632: index out of range: \00" @.str10136 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14633: index out of range: \00" @.str10137 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14634: index out of range: \00" @.str10138 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14634: index out of range: \00" @.str10139 = private unnamed_addr constant [10 x i8] c"argument \00" @.str10140 = private unnamed_addr constant [5 x i8] c" of \00" @.str10141 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14641: index out of range: \00" @.str10142 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14649: index out of range: \00" @.str10143 = private unnamed_addr constant [7 x i8] c"string\00" @.str10144 = private unnamed_addr constant [4 x i8] c"int\00" @.str10145 = private unnamed_addr constant [6 x i8] c"float\00" @.str10146 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str10147 = private unnamed_addr constant [5 x i8] c"long\00" @.str10148 = private unnamed_addr constant [7 x i8] c"double\00" @.str10149 = private unnamed_addr constant [7 x i8] c"as_int\00" @.str10150 = private unnamed_addr constant [9 x i8] c"as_fixed\00" @.str10151 = private unnamed_addr constant [4 x i8] c"len\00" @.str10152 = private unnamed_addr constant [11 x i8] c"float_bits\00" @.str10153 = private unnamed_addr constant [4 x i8] c"int\00" @.str10154 = private unnamed_addr constant [5 x i8] c"view\00" @.str10155 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14668: index out of range: \00" @.str10156 = private unnamed_addr constant [4 x i8] c"int\00" @.str10157 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14669: index out of range: \00" @.str10158 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14669: index out of range: \00" @.str10159 = private unnamed_addr constant [20 x i8] c"the start of a view\00" @.str10160 = private unnamed_addr constant [4 x i8] c"int\00" @.str10161 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14670: index out of range: \00" @.str10162 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14670: index out of range: \00" @.str10163 = private unnamed_addr constant [21 x i8] c"the length of a view\00" @.str10164 = private unnamed_addr constant [5 x i8] c"kind\00" @.str10165 = private unnamed_addr constant [33 x i8] c"view takes a slice, and this is \00" @.str10166 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str10167 = private unnamed_addr constant [7 x i8] c"offset\00" @.str10168 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str10169 = private unnamed_addr constant [8 x i8] c"data_of\00" @.str10170 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str10171 = private unnamed_addr constant [6 x i8] c"words\00" @.str10172 = private unnamed_addr constant [6 x i8] c"[]int\00" @.str10173 = private unnamed_addr constant [7 x i8] c"buffer\00" @.str10174 = private unnamed_addr constant [7 x i8] c"[]byte\00" @.str10175 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str10176 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str10177 = private unnamed_addr constant [3 x i8] c"[]\00" @.str10178 = private unnamed_addr constant [7 x i8] c"floats\00" @.str10179 = private unnamed_addr constant [8 x i8] c"doubles\00" @.str10180 = private unnamed_addr constant [3 x i8] c"[]\00" @.str10181 = private unnamed_addr constant [16 x i8] c"float_from_bits\00" @.str10182 = private unnamed_addr constant [6 x i8] c"float\00" @.str10183 = private unnamed_addr constant [6 x i8] c"print\00" @.str10184 = private unnamed_addr constant [5 x i8] c"void\00" @.str10185 = private unnamed_addr constant [5 x i8] c"push\00" @.str10186 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14707: index out of range: \00" @.str10187 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14708: index out of range: \00" @.str10188 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14709: index out of range: \00" @.str10189 = private unnamed_addr constant [11 x i8] c"push onto \00" @.str10190 = private unnamed_addr constant [5 x i8] c"void\00" @.str10191 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14719: index out of range: \00" @.str10192 = private unnamed_addr constant [16 x i8] c"runtime/native/\00" @.str10193 = private unnamed_addr constant [16 x i8] c"runtime/native/\00" @.str10194 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14723: index out of range: \00" @.str10195 = private unnamed_addr constant [7 x i8] c"shadow\00" @.str10196 = private unnamed_addr constant [18 x i8] c" is the engine's \00" @.str10197 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14727: index out of range: \00" @.str10198 = private unnamed_addr constant [2 x i8] c".\00" @.str10199 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14727: index out of range: \00" @.str10200 = private unnamed_addr constant [29 x i8] c", which this program calls (\00" @.str10201 = private unnamed_addr constant [2 x i8] c":\00" @.str10202 = private unnamed_addr constant [78 x i8] c"), and every such call would reach this function instead; choose another name\00" @.str10203 = private unnamed_addr constant [7 x i8] c"Memory\00" @.str10204 = private unnamed_addr constant [8 x i8] c"Memory.\00" @.str10205 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14739: index out of range: \00" @.str10206 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14742: index out of range: \00" @.str10207 = private unnamed_addr constant [2 x i8] c".\00" @.str10208 = private unnamed_addr constant [15 x i8] c", a C function\00" @.str10209 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14746: index out of range: \00" @.str10210 = private unnamed_addr constant [2 x i8] c".\00" @.str10211 = private unnamed_addr constant [2 x i8] c"?\00" @.str10212 = private unnamed_addr constant [2 x i8] c"_\00" @.str10213 = private unnamed_addr constant [2 x i8] c"?\00" @.str10214 = private unnamed_addr constant [2 x i8] c"?\00" @.str10215 = private unnamed_addr constant [2 x i8] c"?\00" @.str10216 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14776: index out of range: \00" @.str10217 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14776: index out of range: \00" @.str10218 = private unnamed_addr constant [2 x i8] c"?\00" @.str10219 = private unnamed_addr constant [3 x i8] c"()\00" @.str10220 = private unnamed_addr constant [16 x i8] c"the C function \00" @.str10221 = private unnamed_addr constant [2 x i8] c"?\00" @.str10222 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14806: index out of range: \00" @.str10223 = private unnamed_addr constant [7 x i8] c"field \00" @.str10224 = private unnamed_addr constant [5 x i8] c" of \00" @.str10225 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14830: index out of range: \00" @.str10226 = private unnamed_addr constant [2 x i8] c"?\00" @.str10227 = private unnamed_addr constant [2 x i8] c"=\00" @.str10228 = private unnamed_addr constant [16 x i8] c"this assignment\00" @.str10229 = private unnamed_addr constant [7 x i8] c"field \00" @.str10230 = private unnamed_addr constant [2 x i8] c"=\00" @.str10231 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14869: index out of range: \00" @.str10232 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14873: index out of range: \00" @.str10233 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14878: index out of range: \00" @.str10234 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14878: index out of range: \00" @.str10235 = private unnamed_addr constant [2 x i8] c"?\00" @.str10236 = private unnamed_addr constant [4 x i8] c"int\00" @.str10237 = private unnamed_addr constant [5 x i8] c"void\00" @.str10238 = private unnamed_addr constant [11 x i8] c"the result\00" @.str10239 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14937: index out of range: \00" @.str10240 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14937: index out of range: \00" @.str10241 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14937: index out of range: \00" @.str10242 = private unnamed_addr constant [5 x i8] c"void\00" @.str10243 = private unnamed_addr constant [5 x i8] c"void\00" @.str10244 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14957: index out of range: \00" @.str10245 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14957: index out of range: \00" @.str10246 = private unnamed_addr constant [5 x i8] c"void\00" @.str10247 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14971: index out of range: \00" @.str10248 = private unnamed_addr constant [7 x i8] c"shadow\00" @.str10249 = private unnamed_addr constant [102 x i8] c" is a built-in of the compiler, and a call to it would never reach this function; choose another name\00" @.str10250 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14977: index out of range: \00" @.str10251 = private unnamed_addr constant [7 x i8] c"shadow\00" @.str10252 = private unnamed_addr constant [44 x i8] c" is also a function of the engine runtime (\00" @.str10253 = private unnamed_addr constant [23 x i8] c"); choose another name\00" @.str10254 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:14992: index out of range: \00" @.str10255 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15000: index out of range: \00" @.str10256 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15006: index out of range: \00" @.str10257 = private unnamed_addr constant [16 x i8] c" type error(s)\0A\00" @.str10258 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15035: index out of range: \00" @.str10259 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15035: index out of range: \00" @.str10260 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15046: index out of range: \00" @.str10261 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15061: index out of range: \00" @.str10262 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15070: index out of range: \00" @.str10263 = private unnamed_addr constant [3 x i8] c"[]\00" @.str10264 = private unnamed_addr constant [4 x i8] c"fn(\00" @.str10265 = private unnamed_addr constant [2 x i8] c",\00" @.str10266 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15078: index out of range: \00" @.str10267 = private unnamed_addr constant [4 x i8] c")->\00" @.str10268 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15084: index out of range: \00" @.str10269 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15085: index out of range: \00" @.str10270 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15089: index out of range: \00" @.str10271 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15092: index out of range: \00" @.str10272 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15113: index out of range: \00" @.str10273 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15121: index out of range: \00" @.str10274 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15122: index out of range: \00" @.str10275 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15124: index out of range: \00" @.str10276 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15128: index out of range: \00" @.str10277 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15129: index out of range: \00" @.str10278 = private unnamed_addr constant [8 x i8] c"generic\00" @.str10279 = private unnamed_addr constant [8 x i8] c" takes \00" @.str10280 = private unnamed_addr constant [23 x i8] c" type argument(s) and \00" @.str10281 = private unnamed_addr constant [8 x i8] c" gives \00" @.str10282 = private unnamed_addr constant [5 x i8] c"null\00" @.str10283 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15144: index out of range: \00" @.str10284 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15144: index out of range: \00" @.str10285 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15156: index out of range: \00" @.str10286 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15156: index out of range: \00" @.str10287 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15164: index out of range: \00" @.str10288 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15164: index out of range: \00" @.str10289 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15165: index out of range: \00" @.str10290 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15166: index out of range: \00" @.str10291 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15169: index out of range: \00" @.str10292 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15169: index out of range: \00" @.str10293 = private unnamed_addr constant [2 x i8] c"?\00" @.str10294 = private unnamed_addr constant [3 x i8] c"[]\00" @.str10295 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15180: index out of range: \00" @.str10296 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15181: index out of range: \00" @.str10297 = private unnamed_addr constant [2 x i8] c"<\00" @.str10298 = private unnamed_addr constant [3 x i8] c", \00" @.str10299 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15185: index out of range: \00" @.str10300 = private unnamed_addr constant [2 x i8] c">\00" @.str10301 = private unnamed_addr constant [2 x i8] c"$\00" @.str10302 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15200: index out of range: \00" @.str10303 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15225: index out of range: \00" @.str10304 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15228: index out of range: \00" @.str10305 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15230: index out of range: \00" @.str10306 = private unnamed_addr constant [6 x i8] c"arity\00" @.str10307 = private unnamed_addr constant [8 x i8] c" takes \00" @.str10308 = private unnamed_addr constant [34 x i8] c" argument(s) and this call gives \00" @.str10309 = private unnamed_addr constant [2 x i8] c"?\00" @.str10310 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15255: index out of range: \00" @.str10311 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15255: index out of range: \00" @.str10312 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15257: index out of range: \00" @.str10313 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15257: index out of range: \00" @.str10314 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15257: index out of range: \00" @.str10315 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15263: index out of range: \00" @.str10316 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15263: index out of range: \00" @.str10317 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15263: index out of range: \00" @.str10318 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15263: index out of range: \00" @.str10319 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15268: index out of range: \00" @.str10320 = private unnamed_addr constant [8 x i8] c"generic\00" @.str10321 = private unnamed_addr constant [18 x i8] c"cannot tell what \00" @.str10322 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15269: index out of range: \00" @.str10323 = private unnamed_addr constant [21 x i8] c" is in this call to \00" @.str10324 = private unnamed_addr constant [88 x i8] c": pass it an argument that says, or write the call where its result has a declared type\00" @.str10325 = private unnamed_addr constant [2 x i8] c"?\00" @.str10326 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15281: index out of range: \00" @.str10327 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15281: index out of range: \00" @.str10328 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15281: index out of range: \00" @.str10329 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15281: index out of range: \00" @.str10330 = private unnamed_addr constant [10 x i8] c"argument \00" @.str10331 = private unnamed_addr constant [5 x i8] c" of \00" @.str10332 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15292: index out of range: \00" @.str10333 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15297: index out of range: \00" @.str10334 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15297: index out of range: \00" @.str10335 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15297: index out of range: \00" @.str10336 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15307: index out of range: \00" @.str10337 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15311: index out of range: \00" @.str10338 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15317: index out of range: \00" @.str10339 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str10340 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str10341 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str10342 = private unnamed_addr constant [8 x i8] c"data_of\00" @.str10343 = private unnamed_addr constant [5 x i8] c"free\00" @.str10344 = private unnamed_addr constant [7 x i8] c"resize\00" @.str10345 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str10346 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str10347 = private unnamed_addr constant [7 x i8] c"unsafe\00" @.str10348 = private unnamed_addr constant [83 x i8] c" is raw memory: it belongs inside unsafe { }, and a game reaches it through an API\00" @.str10349 = private unnamed_addr constant [13 x i8] c"unsafe-block\00" @.str10350 = private unnamed_addr constant [95 x i8] c"unsafe is for the runtime and packages; this file may use it only when the build says --unsafe\00" @.str10351 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15366: index out of range: \00" @.str10352 = private unnamed_addr constant [9 x i8] c" store \00" @.str10353 = private unnamed_addr constant [2 x i8] c" \00" @.str10354 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10355 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10356 = private unnamed_addr constant [2 x i8] c"0\00" @.str10357 = private unnamed_addr constant [4 x i8] c"int\00" @.str10358 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15392: index out of range: \00" @.str10359 = private unnamed_addr constant [29 x i8] c"cannot assign to immutable '\00" @.str10360 = private unnamed_addr constant [41 x i8] c"' (declared with let; use var) \E2\80\94 line \00" @.str10361 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15393: index out of range: \00" @.str10362 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15393: index out of range: \00" @.str10363 = private unnamed_addr constant [19 x i8] c"assign to unknown \00" @.str10364 = private unnamed_addr constant [4 x i8] c"@g_\00" @.str10365 = private unnamed_addr constant [22 x i8] c"bad assignment target\00" @.str10366 = private unnamed_addr constant [2 x i8] c"=\00" @.str10367 = private unnamed_addr constant [6 x i8] c"load \00" @.str10368 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10369 = private unnamed_addr constant [3 x i8] c"i8\00" @.str10370 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" @.str10371 = private unnamed_addr constant [7 x i8] c" to i8\00" @.str10372 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10373 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10374 = private unnamed_addr constant [5 x i8] c"then\00" @.str10375 = private unnamed_addr constant [5 x i8] c"else\00" @.str10376 = private unnamed_addr constant [6 x i8] c"ifend\00" @.str10377 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10378 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10379 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10380 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10381 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10382 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10383 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10384 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10385 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10386 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10387 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10388 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10389 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10390 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10391 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10392 = private unnamed_addr constant [6 x i8] c"wcond\00" @.str10393 = private unnamed_addr constant [6 x i8] c"wbody\00" @.str10394 = private unnamed_addr constant [5 x i8] c"wend\00" @.str10395 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10396 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10397 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10398 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10399 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10400 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10401 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10402 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10403 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10404 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10405 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10406 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10407 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10408 = private unnamed_addr constant [4 x i8] c"i32\00" @.str10409 = private unnamed_addr constant [4 x i8] c"i32\00" @.str10410 = private unnamed_addr constant [4 x i8] c"int\00" @.str10411 = private unnamed_addr constant [6 x i8] c"fcond\00" @.str10412 = private unnamed_addr constant [6 x i8] c"fbody\00" @.str10413 = private unnamed_addr constant [6 x i8] c"fcont\00" @.str10414 = private unnamed_addr constant [5 x i8] c"fend\00" @.str10415 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10416 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10417 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10418 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10419 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str10420 = private unnamed_addr constant [3 x i8] c", \00" @.str10421 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10422 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10423 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10424 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10425 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10426 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10427 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10428 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10429 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10430 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str10431 = private unnamed_addr constant [4 x i8] c", 1\00" @.str10432 = private unnamed_addr constant [4 x i8] c"i32\00" @.str10433 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10434 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10435 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10436 = private unnamed_addr constant [5 x i8] c"void\00" @.str10437 = private unnamed_addr constant [54 x i8] c"a function that returns nothing cannot return a value\00" @.str10438 = private unnamed_addr constant [8 x i8] c"%retval\00" @.str10439 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10440 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10441 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15501: index out of range: \00" @.str10442 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15518: index out of range: \00" @.str10443 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15530: index out of range: \00" @.str10444 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15530: index out of range: \00" @.str10445 = private unnamed_addr constant [2 x i8] c"_\00" @.str10446 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15540: index out of range: \00" @.str10447 = private unnamed_addr constant [8 x i8] c"match: \00" @.str10448 = private unnamed_addr constant [8 x i8] c" binds \00" @.str10449 = private unnamed_addr constant [22 x i8] c" name(s) but carries \00" @.str10450 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15546: index out of range: \00" @.str10451 = private unnamed_addr constant [8 x i8] c"match: \00" @.str10452 = private unnamed_addr constant [10 x i8] c" payload \00" @.str10453 = private unnamed_addr constant [24 x i8] c" must be a binding name\00" @.str10454 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15547: index out of range: \00" @.str10455 = private unnamed_addr constant [3 x i8] c" \00" @.str10456 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" @.str10457 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str10458 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10459 = private unnamed_addr constant [6 x i8] c"load \00" @.str10460 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10461 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15553: index out of range: \00" @.str10462 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10463 = private unnamed_addr constant [5 x i8] c"mend\00" @.str10464 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15569: index out of range: \00" @.str10465 = private unnamed_addr constant [2 x i8] c"0\00" @.str10466 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15577: index out of range: \00" @.str10467 = private unnamed_addr constant [8 x i8] c"match: \00" @.str10468 = private unnamed_addr constant [27 x i8] c" is not a variant of enum \00" @.str10469 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str10470 = private unnamed_addr constant [3 x i8] c", \00" @.str10471 = private unnamed_addr constant [7 x i8] c"or i1 \00" @.str10472 = private unnamed_addr constant [3 x i8] c", \00" @.str10473 = private unnamed_addr constant [6 x i8] c"mbody\00" @.str10474 = private unnamed_addr constant [5 x i8] c"marm\00" @.str10475 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10476 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10477 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10478 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10479 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10480 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10481 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10482 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10483 = private unnamed_addr constant [10 x i8] c"match on \00" @.str10484 = private unnamed_addr constant [29 x i8] c" is not exhaustive: variant \00" @.str10485 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15605: index out of range: \00" @.str10486 = private unnamed_addr constant [34 x i8] c" is unhandled (add it or a _ arm)\00" @.str10487 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10488 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10489 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10490 = private unnamed_addr constant [5 x i8] c"mend\00" @.str10491 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15622: index out of range: \00" @.str10492 = private unnamed_addr constant [2 x i8] c"0\00" @.str10493 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15629: index out of range: \00" @.str10494 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str10495 = private unnamed_addr constant [3 x i8] c", \00" @.str10496 = private unnamed_addr constant [7 x i8] c"or i1 \00" @.str10497 = private unnamed_addr constant [3 x i8] c", \00" @.str10498 = private unnamed_addr constant [6 x i8] c"mbody\00" @.str10499 = private unnamed_addr constant [5 x i8] c"marm\00" @.str10500 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10501 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10502 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10503 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10504 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10505 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10506 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10507 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10508 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10509 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10510 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10511 = private unnamed_addr constant [21 x i8] c"emit: unknown event \00" @.str10512 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15661: index out of range: \00" @.str10513 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15664: index out of range: \00" @.str10514 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15664: index out of range: \00" @.str10515 = private unnamed_addr constant [2 x i8] c"0\00" @.str10516 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str10517 = private unnamed_addr constant [5 x i8] c"null\00" @.str10518 = private unnamed_addr constant [3 x i8] c" \00" @.str10519 = private unnamed_addr constant [53 x i8] c" = getelementptr inbounds i8, ptr @L_sendbuf, i32 0\0A\00" @.str10520 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str10521 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10522 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10523 = private unnamed_addr constant [3 x i8] c" \00" @.str10524 = private unnamed_addr constant [51 x i8] c" = getelementptr inbounds i8, ptr @L_sendbuf, i32 \00" @.str10525 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10526 = private unnamed_addr constant [9 x i8] c" store \00" @.str10527 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15683: index out of range: \00" @.str10528 = private unnamed_addr constant [2 x i8] c" \00" @.str10529 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15683: index out of range: \00" @.str10530 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10531 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10532 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15684: index out of range: \00" @.str10533 = private unnamed_addr constant [2 x i8] c"0\00" @.str10534 = private unnamed_addr constant [10 x i8] c"toclients\00" @.str10535 = private unnamed_addr constant [3 x i8] c"-1\00" @.str10536 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str10537 = private unnamed_addr constant [14 x i8] c" call void @\00" @.str10538 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str10539 = private unnamed_addr constant [23 x i8] c", ptr @L_sendbuf, i32 \00" @.str10540 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10541 = private unnamed_addr constant [2 x i8] c"0\00" @.str10542 = private unnamed_addr constant [4 x i8] c"int\00" @.str10543 = private unnamed_addr constant [3 x i8] c", \00" @.str10544 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15699: index out of range: \00" @.str10545 = private unnamed_addr constant [2 x i8] c" \00" @.str10546 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15699: index out of range: \00" @.str10547 = private unnamed_addr constant [3 x i8] c" \00" @.str10548 = private unnamed_addr constant [17 x i8] c" = call i32 @ev_\00" @.str10549 = private unnamed_addr constant [2 x i8] c"(\00" @.str10550 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10551 = private unnamed_addr constant [4 x i8] c"int\00" @.str10552 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str10553 = private unnamed_addr constant [2 x i8] c"(\00" @.str10554 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10555 = private unnamed_addr constant [2 x i8] c"0\00" @.str10556 = private unnamed_addr constant [4 x i8] c"int\00" @.str10557 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10558 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15733: index out of range: \00" @.str10559 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10560 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10561 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15734: index out of range: \00" @.str10562 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10563 = private unnamed_addr constant [44 x i8] c"cancel outside a cancellable event listener\00" @.str10564 = private unnamed_addr constant [20 x i8] c" store i32 1, ptr \00" @.str10565 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10566 = private unnamed_addr constant [22 x i8] c"cannot emit statement\00" @.str10567 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15755: index out of range: \00" @.str10568 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15755: index out of range: \00" @.str10569 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15770: index out of range: \00" @.str10570 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15779: index out of range: \00" @.str10571 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15793: index out of range: \00" @.str10572 = private unnamed_addr constant [9 x i8] c"Occluder\00" @.str10573 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15802: index out of range: \00" @.str10574 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00" @.str10575 = private unnamed_addr constant [32 x i8] c"@L_key = internal global i32 0\0A\00" @.str10576 = private unnamed_addr constant [34 x i8] c"@L_frame = internal global i32 0\0A\00" @.str10577 = private unnamed_addr constant [34 x i8] c"@L_scene = internal global i32 0\0A\00" @.str10578 = private unnamed_addr constant [33 x i8] c"@L_entc = internal global i32 0\0A\00" @.str10579 = private unnamed_addr constant [29 x i8] c"@L_alive = internal global [\00" @.str10580 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str10581 = private unnamed_addr constant [28 x i8] c"@L_kind = internal global [\00" @.str10582 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str10583 = private unnamed_addr constant [32 x i8] c"@L_freelist = internal global [\00" @.str10584 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str10585 = private unnamed_addr constant [34 x i8] c"@L_freen = internal global i32 0\0A\00" @.str10586 = private unnamed_addr constant [33 x i8] c"@L_role = internal global i32 1\0A\00" @.str10587 = private unnamed_addr constant [36 x i8] c"@L_localid = internal global i32 0\0A\00" @.str10588 = private unnamed_addr constant [33 x i8] c"@L_owner_arr = internal global [\00" @.str10589 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str10590 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15834: index out of range: \00" @.str10591 = private unnamed_addr constant [4 x i8] c"@S_\00" @.str10592 = private unnamed_addr constant [21 x i8] c" = internal global [\00" @.str10593 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str10594 = private unnamed_addr constant [19 x i8] c"] zeroinitializer\0A\00" @.str10595 = private unnamed_addr constant [4 x i8] c"@H_\00" @.str10596 = private unnamed_addr constant [21 x i8] c" = internal global [\00" @.str10597 = private unnamed_addr constant [24 x i8] c" x i8] zeroinitializer\0A\00" @.str10598 = private unnamed_addr constant [5 x i8] c"@ME_\00" @.str10599 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" @.str10600 = private unnamed_addr constant [5 x i8] c"@HE_\00" @.str10601 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" @.str10602 = private unnamed_addr constant [5 x i8] c"@LE_\00" @.str10603 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15849: index out of range: \00" @.str10604 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" @.str10605 = private unnamed_addr constant [39 x i8] c"define void @L_reset(i32 %e) {\0Aentry:\0A\00" @.str10606 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15858: index out of range: \00" @.str10607 = private unnamed_addr constant [3 x i8] c"%h\00" @.str10608 = private unnamed_addr constant [3 x i8] c" \00" @.str10609 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10610 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str10611 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15860: index out of range: \00" @.str10612 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str10613 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" @.str10614 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10615 = private unnamed_addr constant [32 x i8] c" %k = getelementptr inbounds [\00" @.str10616 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" @.str10617 = private unnamed_addr constant [23 x i8] c" store i32 0, ptr %k\0A\00" @.str10618 = private unnamed_addr constant [33 x i8] c" %ow = getelementptr inbounds [\00" @.str10619 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A\00" @.str10620 = private unnamed_addr constant [25 x i8] c" store i32 -1, ptr %ow\0A\00" @.str10621 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str10622 = private unnamed_addr constant [32 x i8] c"define i32 @L_alloc() {\0Aentry:\0A\00" @.str10623 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" @.str10624 = private unnamed_addr constant [30 x i8] c" %has = icmp sgt i32 %fn, 0\0A\00" @.str10625 = private unnamed_addr constant [42 x i8] c" br i1 %has, label %reuse, label %fresh\0A\00" @.str10626 = private unnamed_addr constant [8 x i8] c"reuse:\0A\00" @.str10627 = private unnamed_addr constant [25 x i8] c" %fn1 = sub i32 %fn, 1\0A\00" @.str10628 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" @.str10629 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" @.str10630 = private unnamed_addr constant [43 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn1\0A\00" @.str10631 = private unnamed_addr constant [27 x i8] c" %re = load i32, ptr %fp\0A\00" @.str10632 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" @.str10633 = private unnamed_addr constant [8 x i8] c"fresh:\0A\00" @.str10634 = private unnamed_addr constant [31 x i8] c" %ec = load i32, ptr @L_entc\0A\00" @.str10635 = private unnamed_addr constant [25 x i8] c" %ec1 = add i32 %ec, 1\0A\00" @.str10636 = private unnamed_addr constant [31 x i8] c" store i32 %ec1, ptr @L_entc\0A\00" @.str10637 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" @.str10638 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str10639 = private unnamed_addr constant [49 x i8] c" %e = phi i32 [ %re, %reuse ], [ %ec, %fresh ]\0A\00" @.str10640 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" @.str10641 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" @.str10642 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" @.str10643 = private unnamed_addr constant [24 x i8] c" store i32 1, ptr %ap\0A\00" @.str10644 = private unnamed_addr constant [17 x i8] c" ret i32 %e\0A}\0A\0A\00" @.str10645 = private unnamed_addr constant [45 x i8] c"define void @L_free_entity(i32 %e) {\0Aentry:\0A\00" @.str10646 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" @.str10647 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" @.str10648 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %ap\0A\00" @.str10649 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" @.str10650 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" @.str10651 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" @.str10652 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn\0A\00" @.str10653 = private unnamed_addr constant [25 x i8] c" store i32 %e, ptr %fp\0A\00" @.str10654 = private unnamed_addr constant [25 x i8] c" %fn1 = add i32 %fn, 1\0A\00" @.str10655 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" @.str10656 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str10657 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15914: index out of range: \00" @.str10658 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15914: index out of range: \00" @.str10659 = private unnamed_addr constant [4 x i8] c"i32\00" @.str10660 = private unnamed_addr constant [4 x i8] c"i32\00" @.str10661 = private unnamed_addr constant [2 x i8] c"0\00" @.str10662 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15922: index out of range: \00" @.str10663 = private unnamed_addr constant [6 x i8] c"qcond\00" @.str10664 = private unnamed_addr constant [6 x i8] c"qbody\00" @.str10665 = private unnamed_addr constant [6 x i8] c"qnext\00" @.str10666 = private unnamed_addr constant [5 x i8] c"qend\00" @.str10667 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10668 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10669 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10670 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10671 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" @.str10672 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str10673 = private unnamed_addr constant [3 x i8] c", \00" @.str10674 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10675 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10676 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10677 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10678 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10679 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10680 = private unnamed_addr constant [3 x i8] c" \00" @.str10681 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10682 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" @.str10683 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10684 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10685 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10686 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10687 = private unnamed_addr constant [3 x i8] c"qa\00" @.str10688 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10689 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10690 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10691 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10692 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10693 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15946: index out of range: \00" @.str10694 = private unnamed_addr constant [2 x i8] c"0\00" @.str10695 = private unnamed_addr constant [3 x i8] c" \00" @.str10696 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10697 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" @.str10698 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10699 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10700 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str10701 = private unnamed_addr constant [3 x i8] c", \00" @.str10702 = private unnamed_addr constant [19 x i8] c"load i32, ptr @ME_\00" @.str10703 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10704 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10705 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str10706 = private unnamed_addr constant [3 x i8] c", \00" @.str10707 = private unnamed_addr constant [3 x i8] c" \00" @.str10708 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10709 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str10710 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10711 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10712 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str10713 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" @.str10714 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10715 = private unnamed_addr constant [3 x i8] c"qt\00" @.str10716 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10717 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10718 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10719 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10720 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10721 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15972: index out of range: \00" @.str10722 = private unnamed_addr constant [3 x i8] c" \00" @.str10723 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10724 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str10725 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str10726 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10727 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10728 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str10729 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str10730 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10731 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10732 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:15979: index out of range: \00" @.str10733 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10734 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10735 = private unnamed_addr constant [3 x i8] c"qw\00" @.str10736 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10737 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10738 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10739 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10740 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10741 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10742 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10743 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10744 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10745 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str10746 = private unnamed_addr constant [4 x i8] c", 1\00" @.str10747 = private unnamed_addr constant [4 x i8] c"i32\00" @.str10748 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10749 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10750 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10751 = private unnamed_addr constant [4 x i8] c"i32\00" @.str10752 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str10753 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10754 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10755 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16017: index out of range: \00" @.str10756 = private unnamed_addr constant [25 x i8] c"spawn: unknown property \00" @.str10757 = private unnamed_addr constant [3 x i8] c" \00" @.str10758 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10759 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str10760 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10761 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10762 = private unnamed_addr constant [19 x i8] c" store i8 1, ptr \00" @.str10763 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10764 = private unnamed_addr constant [3 x i8] c" \00" @.str10765 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10766 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str10767 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str10768 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10769 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10770 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16034: index out of range: \00" @.str10771 = private unnamed_addr constant [3 x i8] c" \00" @.str10772 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str10773 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10774 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10775 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10776 = private unnamed_addr constant [9 x i8] c" store \00" @.str10777 = private unnamed_addr constant [2 x i8] c" \00" @.str10778 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10779 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10780 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16047: index out of range: \00" @.str10781 = private unnamed_addr constant [3 x i8] c" \00" @.str10782 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str10783 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10784 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10785 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10786 = private unnamed_addr constant [9 x i8] c" store \00" @.str10787 = private unnamed_addr constant [2 x i8] c" \00" @.str10788 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10789 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10790 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str10791 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str10792 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10793 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10794 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str10795 = private unnamed_addr constant [8 x i8] c"_attach\00" @.str10796 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str10797 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str10798 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10799 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16081: index out of range: \00" @.str10800 = private unnamed_addr constant [3 x i8] c" \00" @.str10801 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10802 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str10803 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str10804 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10805 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10806 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str10807 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str10808 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10809 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10810 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16095: index out of range: \00" @.str10811 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16095: index out of range: \00" @.str10812 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16104: index out of range: \00" @.str10813 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16106: index out of range: \00" @.str10814 = private unnamed_addr constant [8 x i8] c"prefab \00" @.str10815 = private unnamed_addr constant [45 x i8] c": the chain of prefabs never reaches a model\00" @.str10816 = private unnamed_addr constant [26 x i8] c"call i32 @thr_is_worker()\00" @.str10817 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10818 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10819 = private unnamed_addr constant [5 x i8] c"wgok\00" @.str10820 = private unnamed_addr constant [6 x i8] c"wgbad\00" @.str10821 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10822 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10823 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10824 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10825 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10826 = private unnamed_addr constant [2 x i8] c":\00" @.str10827 = private unnamed_addr constant [10 x i8] c": panic: \00" @.str10828 = private unnamed_addr constant [73 x i8] c" on a Job.parallel_for worker thread (workers must not change the world)\00" @.str10829 = private unnamed_addr constant [41 x i8] c" call i32 (ptr, ptr, ...) @fprintf(ptr \00" @.str10830 = private unnamed_addr constant [24 x i8] c", ptr @.fmt_panic, ptr \00" @.str10831 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10832 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10833 = private unnamed_addr constant [40 x i8] c" call void @exit(i32 1)\0A unreachable\0A\00" @.str10834 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10835 = private unnamed_addr constant [6 x i8] c"spawn\00" @.str10836 = private unnamed_addr constant [20 x i8] c"call i32 @L_alloc()\00" @.str10837 = private unnamed_addr constant [8 x i8] c"prefab \00" @.str10838 = private unnamed_addr constant [17 x i8] c": unknown model \00" @.str10839 = private unnamed_addr constant [3 x i8] c" \00" @.str10840 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10841 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" @.str10842 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10843 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str10844 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10845 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10846 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16163: index out of range: \00" @.str10847 = private unnamed_addr constant [7 x i8] c"model_\00" @.str10848 = private unnamed_addr constant [7 x i8] c"_spawn\00" @.str10849 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str10850 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str10851 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10852 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16180: index out of range: \00" @.str10853 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16180: index out of range: \00" @.str10854 = private unnamed_addr constant [8 x i8] c"despawn\00" @.str10855 = private unnamed_addr constant [3 x i8] c" \00" @.str10856 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10857 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" @.str10858 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10859 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str10860 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16195: index out of range: \00" @.str10861 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str10862 = private unnamed_addr constant [3 x i8] c", \00" @.str10863 = private unnamed_addr constant [3 x i8] c"dh\00" @.str10864 = private unnamed_addr constant [4 x i8] c"dhn\00" @.str10865 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10866 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10867 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10868 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10869 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" @.str10870 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str10871 = private unnamed_addr constant [10 x i8] c", i32 0)\0A\00" @.str10872 = private unnamed_addr constant [7 x i8] c"model_\00" @.str10873 = private unnamed_addr constant [9 x i8] c"_despawn\00" @.str10874 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str10875 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str10876 = private unnamed_addr constant [10 x i8] c", i32 0)\0A\00" @.str10877 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10878 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10879 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10880 = private unnamed_addr constant [37 x i8] c" call void @ludic_sweep_entity(i32 \00" @.str10881 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10882 = private unnamed_addr constant [32 x i8] c" call void @L_free_entity(i32 \00" @.str10883 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10884 = private unnamed_addr constant [3 x i8] c" \00" @.str10885 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10886 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str10887 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10888 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10889 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str10890 = private unnamed_addr constant [12 x i8] c"icmp eq i8 \00" @.str10891 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10892 = private unnamed_addr constant [7 x i8] c"attach\00" @.str10893 = private unnamed_addr constant [8 x i8] c"attdone\00" @.str10894 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10895 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10896 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10897 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10898 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10899 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10900 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10901 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10902 = private unnamed_addr constant [3 x i8] c" \00" @.str10903 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10904 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str10905 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10906 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10907 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str10908 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" @.str10909 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10910 = private unnamed_addr constant [7 x i8] c"detach\00" @.str10911 = private unnamed_addr constant [8 x i8] c"detdone\00" @.str10912 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str10913 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10914 = private unnamed_addr constant [10 x i8] c", label %\00" @.str10915 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10916 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10917 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" @.str10918 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10919 = private unnamed_addr constant [3 x i8] c" \00" @.str10920 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10921 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str10922 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str10923 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10924 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10925 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str10926 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str10927 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10928 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10929 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str10930 = private unnamed_addr constant [8 x i8] c"_detach\00" @.str10931 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str10932 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str10933 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10934 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str10935 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10936 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str10937 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16263: index out of range: \00" @.str10938 = private unnamed_addr constant [2 x i8] c"0\00" @.str10939 = private unnamed_addr constant [2 x i8] c"1\00" @.str10940 = private unnamed_addr constant [7 x i8] c"system\00" @.str10941 = private unnamed_addr constant [6 x i8] c"layer\00" @.str10942 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str10943 = private unnamed_addr constant [11 x i8] c", ptr @LE_\00" @.str10944 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10945 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str10946 = private unnamed_addr constant [6 x i8] c"_hide\00" @.str10947 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str10948 = private unnamed_addr constant [6 x i8] c"_show\00" @.str10949 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str10950 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str10951 = private unnamed_addr constant [3 x i8] c" \00" @.str10952 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10953 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str10954 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10955 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10956 = private unnamed_addr constant [12 x i8] c" store i8 \00" @.str10957 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10958 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10959 = private unnamed_addr constant [3 x i8] c" \00" @.str10960 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str10961 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str10962 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str10963 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str10964 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10965 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str10966 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str10967 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10968 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10969 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str10970 = private unnamed_addr constant [9 x i8] c"_disable\00" @.str10971 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str10972 = private unnamed_addr constant [8 x i8] c"_enable\00" @.str10973 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str10974 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str10975 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str10976 = private unnamed_addr constant [5 x i8] c"@HE_\00" @.str10977 = private unnamed_addr constant [5 x i8] c"@ME_\00" @.str10978 = private unnamed_addr constant [5 x i8] c"@HE_\00" @.str10979 = private unnamed_addr constant [2 x i8] c"_\00" @.str10980 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str10981 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str10982 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str10983 = private unnamed_addr constant [5 x i8] c"void\00" @.str10984 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str10985 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str10986 = private unnamed_addr constant [18 x i8] c"define void @sys_\00" @.str10987 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str10988 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str10989 = private unnamed_addr constant [1 x i8] c"\00" @.str10990 = private unnamed_addr constant [19 x i8] c"load i32, ptr @HE_\00" @.str10991 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10992 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10993 = private unnamed_addr constant [19 x i8] c"load i32, ptr @LE_\00" @.str10994 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str10995 = private unnamed_addr constant [4 x i8] c", 0\00" @.str10996 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str10997 = private unnamed_addr constant [3 x i8] c", \00" @.str10998 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_role\00" @.str10999 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str11000 = private unnamed_addr constant [4 x i8] c", 1\00" @.str11001 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str11002 = private unnamed_addr constant [3 x i8] c", \00" @.str11003 = private unnamed_addr constant [5 x i8] c"hrun\00" @.str11004 = private unnamed_addr constant [6 x i8] c"hskip\00" @.str11005 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11006 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11007 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11008 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11009 = private unnamed_addr constant [20 x i8] c":\0A call void @sys_\00" @.str11010 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str11011 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11012 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11013 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11014 = private unnamed_addr constant [17 x i8] c" call void @fn_\00" @.str11015 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str11016 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16376: index out of range: \00" @.str11017 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16376: index out of range: \00" @.str11018 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16376: index out of range: \00" @.str11019 = private unnamed_addr constant [7 x i8] c"Update\00" @.str11020 = private unnamed_addr constant [11 x i8] c"esys_tween\00" @.str11021 = private unnamed_addr constant [30 x i8] c" call void @fn_esys_tween()\0A\00" @.str11022 = private unnamed_addr constant [29 x i8] c" call void @L_countdowns()\0A\00" @.str11023 = private unnamed_addr constant [8 x i8] c"fx_tick\00" @.str11024 = private unnamed_addr constant [27 x i8] c" call void @fn_fx_tick()\0A\00" @.str11025 = private unnamed_addr constant [7 x i8] c"Render\00" @.str11026 = private unnamed_addr constant [8 x i8] c"fx_draw\00" @.str11027 = private unnamed_addr constant [27 x i8] c" call void @fn_fx_draw()\0A\00" @.str11028 = private unnamed_addr constant [38 x i8] c"define void @L_countdowns() {\0Aentry:\0A\00" @.str11029 = private unnamed_addr constant [53 x i8] c" %n = load i32, ptr @L_entc\0A br label %loop\0Aloop:\0A\00" @.str11030 = private unnamed_addr constant [46 x i8] c" %i = phi i32 [ 0, %entry ], [ %i1, %next ]\0A\00" @.str11031 = private unnamed_addr constant [73 x i8] c" %go = icmp slt i32 %i, %n\0A br i1 %go, label %body, label %done\0Abody:\0A\00" @.str11032 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" @.str11033 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %i\0A\00" @.str11034 = private unnamed_addr constant [96 x i8] c" %al = load i32, ptr %ap\0A %alive = icmp ne i32 %al, 0\0A br i1 %alive, label %c0, label %next\0A\00" @.str11035 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16405: index out of range: \00" @.str11036 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16409: index out of range: \00" @.str11037 = private unnamed_addr constant [10 x i8] c"countdown\00" @.str11038 = private unnamed_addr constant [2 x i8] c"c\00" @.str11039 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11040 = private unnamed_addr constant [5 x i8] c" %h\00" @.str11041 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11042 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str11043 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %i\0A\00" @.str11044 = private unnamed_addr constant [6 x i8] c" %hv\00" @.str11045 = private unnamed_addr constant [19 x i8] c" = load i8, ptr %h\00" @.str11046 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11047 = private unnamed_addr constant [7 x i8] c" %has\00" @.str11048 = private unnamed_addr constant [18 x i8] c" = icmp ne i8 %hv\00" @.str11049 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str11050 = private unnamed_addr constant [13 x i8] c" br i1 %has\00" @.str11051 = private unnamed_addr constant [11 x i8] c", label %t\00" @.str11052 = private unnamed_addr constant [11 x i8] c", label %c\00" @.str11053 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11054 = private unnamed_addr constant [2 x i8] c"t\00" @.str11055 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11056 = private unnamed_addr constant [5 x i8] c" %s\00" @.str11057 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11058 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str11059 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str11060 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %i\0A\00" @.str11061 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16421: index out of range: \00" @.str11062 = private unnamed_addr constant [10 x i8] c"countdown\00" @.str11063 = private unnamed_addr constant [2 x i8] c"_\00" @.str11064 = private unnamed_addr constant [6 x i8] c" %fa\00" @.str11065 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str11066 = private unnamed_addr constant [9 x i8] c", ptr %s\00" @.str11067 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str11068 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11069 = private unnamed_addr constant [6 x i8] c" %fv\00" @.str11070 = private unnamed_addr constant [21 x i8] c" = load i32, ptr %fa\00" @.str11071 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11072 = private unnamed_addr constant [6 x i8] c" %fp\00" @.str11073 = private unnamed_addr constant [20 x i8] c" = icmp sgt i32 %fv\00" @.str11074 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str11075 = private unnamed_addr constant [6 x i8] c" %fd\00" @.str11076 = private unnamed_addr constant [15 x i8] c" = sub i32 %fv\00" @.str11077 = private unnamed_addr constant [5 x i8] c", 1\0A\00" @.str11078 = private unnamed_addr constant [6 x i8] c" %fn\00" @.str11079 = private unnamed_addr constant [17 x i8] c" = select i1 %fp\00" @.str11080 = private unnamed_addr constant [10 x i8] c", i32 %fd\00" @.str11081 = private unnamed_addr constant [10 x i8] c", i32 %fv\00" @.str11082 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11083 = private unnamed_addr constant [16 x i8] c" store i32 %fn\00" @.str11084 = private unnamed_addr constant [10 x i8] c", ptr %fa\00" @.str11085 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11086 = private unnamed_addr constant [14 x i8] c" br label %c\00" @.str11087 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11088 = private unnamed_addr constant [2 x i8] c"c\00" @.str11089 = private unnamed_addr constant [20 x i8] c":\0A br label %next\0A\00" @.str11090 = private unnamed_addr constant [66 x i8] c"next:\0A %i1 = add i32 %i, 1\0A br label %loop\0Adone:\0A ret void\0A}\0A\0A\00" @.str11091 = private unnamed_addr constant [4 x i8] c"int\00" @.str11092 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str11093 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11094 = private unnamed_addr constant [22 x i8] c"define i32 @L_prefab_\00" @.str11095 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str11096 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str11097 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16463: index out of range: \00" @.str11098 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16463: index out of range: \00" @.str11099 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16472: index out of range: \00" @.str11100 = private unnamed_addr constant [36 x i8] c"call i32 @lp_str_eq(ptr %name, ptr \00" @.str11101 = private unnamed_addr constant [2 x i8] c")\00" @.str11102 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str11103 = private unnamed_addr constant [4 x i8] c", 0\00" @.str11104 = private unnamed_addr constant [3 x i8] c"pf\00" @.str11105 = private unnamed_addr constant [4 x i8] c"pfn\00" @.str11106 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11107 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11108 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11109 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11110 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11111 = private unnamed_addr constant [20 x i8] c"call i32 @L_prefab_\00" @.str11112 = private unnamed_addr constant [3 x i8] c"()\00" @.str11113 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str11114 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11115 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11116 = private unnamed_addr constant [14 x i8] c" ret i32 -1\0A\00" @.str11117 = private unnamed_addr constant [48 x i8] c"define i32 @L_spawn_prefab(ptr %name) {\0Aentry:\0A\00" @.str11118 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str11119 = private unnamed_addr constant [6 x i8] c"Input\00" @.str11120 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" @.str11121 = private unnamed_addr constant [7 x i8] c"Update\00" @.str11122 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" @.str11123 = private unnamed_addr constant [7 x i8] c"Render\00" @.str11124 = private unnamed_addr constant [6 x i8] c"Start\00" @.str11125 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str11126 = private unnamed_addr constant [8 x i8] c"Overlay\00" @.str11127 = private unnamed_addr constant [16 x i8] c"unknown phase '\00" @.str11128 = private unnamed_addr constant [2 x i8] c"'\00" @.str11129 = private unnamed_addr constant [6 x i8] c"Start\00" @.str11130 = private unnamed_addr constant [6 x i8] c"Input\00" @.str11131 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" @.str11132 = private unnamed_addr constant [7 x i8] c"Update\00" @.str11133 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" @.str11134 = private unnamed_addr constant [7 x i8] c"Render\00" @.str11135 = private unnamed_addr constant [8 x i8] c"Overlay\00" @.str11136 = private unnamed_addr constant [44 x i8] c"declare i32 @ludic_register_prop(ptr, i32)\0A\00" @.str11137 = private unnamed_addr constant [46 x i8] c"declare i32 @ludic_register_system(ptr, i32)\0A\00" @.str11138 = private unnamed_addr constant [39 x i8] c"declare i64 @ludic_get(i32, i32, i32)\0A\00" @.str11139 = private unnamed_addr constant [45 x i8] c"declare void @ludic_set(i32, i32, i32, i64)\0A\00" @.str11140 = private unnamed_addr constant [34 x i8] c"declare i32 @ludic_has(i32, i32)\0A\00" @.str11141 = private unnamed_addr constant [42 x i8] c"declare void @ludic_attach_dyn(i32, i32)\0A\00" @.str11142 = private unnamed_addr constant [42 x i8] c"declare void @ludic_detach_dyn(i32, i32)\0A\00" @.str11143 = private unnamed_addr constant [33 x i8] c"declare i32 @ludic_prop_id(ptr)\0A\00" @.str11144 = private unnamed_addr constant [39 x i8] c"declare i32 @ludic_field_id(i32, ptr)\0A\00" @.str11145 = private unnamed_addr constant [35 x i8] c"declare i32 @ludic_entity_count()\0A\00" @.str11146 = private unnamed_addr constant [30 x i8] c"declare i32 @ludic_kind(i32)\0A\00" @.str11147 = private unnamed_addr constant [34 x i8] c"declare i32 @ludic_model_id(ptr)\0A\00" @.str11148 = private unnamed_addr constant [31 x i8] c"declare i32 @ludic_spawn(i32)\0A\00" @.str11149 = private unnamed_addr constant [41 x i8] c"declare i32 @ludic_query_next(i32, i32)\0A\00" @.str11150 = private unnamed_addr constant [33 x i8] c"declare i32 @ludic_prop_count()\0A\00" @.str11151 = private unnamed_addr constant [35 x i8] c"declare ptr @ludic_prop_name(i32)\0A\00" @.str11152 = private unnamed_addr constant [37 x i8] c"declare i32 @ludic_field_count(i32)\0A\00" @.str11153 = private unnamed_addr constant [41 x i8] c"declare ptr @ludic_field_name(i32, i32)\0A\00" @.str11154 = private unnamed_addr constant [41 x i8] c"declare ptr @ludic_field_type(i32, i32)\0A\00" @.str11155 = private unnamed_addr constant [42 x i8] c"define void @__ludic_mod_init() {\0Aentry:\0A\00" @.str11156 = private unnamed_addr constant [12 x i8] c"module_init\00" @.str11157 = private unnamed_addr constant [31 x i8] c" call void @fn_module_init()\0A\00" @.str11158 = private unnamed_addr constant [43 x i8] c" call i32 @ludic_register_system(ptr @fn_\00" @.str11159 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16565: index out of range: \00" @.str11160 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str11161 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16565: index out of range: \00" @.str11162 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str11163 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str11164 = private unnamed_addr constant [130 x i8] c"@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__ludic_mod_init, ptr null }]\0A\00" @.str11165 = private unnamed_addr constant [22 x i8] c"@sysreg_fn = global [\00" @.str11166 = private unnamed_addr constant [25 x i8] c" x ptr] zeroinitializer\0A\00" @.str11167 = private unnamed_addr constant [25 x i8] c"@sysreg_phase = global [\00" @.str11168 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str11169 = private unnamed_addr constant [30 x i8] c"@sysreg_count = global i32 0\0A\00" @.str11170 = private unnamed_addr constant [65 x i8] c"define i32 @ludic_register_system(ptr %fn, i32 %phase) {\0Aentry:\0A\00" @.str11171 = private unnamed_addr constant [36 x i8] c" %n = load i32, ptr @sysreg_count\0A\00" @.str11172 = private unnamed_addr constant [26 x i8] c" %ok = icmp slt i32 %n, \00" @.str11173 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11174 = private unnamed_addr constant [38 x i8] c" br i1 %ok, label %add, label %drop\0A\00" @.str11175 = private unnamed_addr constant [6 x i8] c"add:\0A\00" @.str11176 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" @.str11177 = private unnamed_addr constant [40 x i8] c" x ptr], ptr @sysreg_fn, i32 0, i32 %n\0A\00" @.str11178 = private unnamed_addr constant [26 x i8] c" store ptr %fn, ptr %fp\0A\00" @.str11179 = private unnamed_addr constant [33 x i8] c" %pp = getelementptr inbounds [\00" @.str11180 = private unnamed_addr constant [43 x i8] c" x i32], ptr @sysreg_phase, i32 0, i32 %n\0A\00" @.str11181 = private unnamed_addr constant [29 x i8] c" store i32 %phase, ptr %pp\0A\00" @.str11182 = private unnamed_addr constant [71 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @sysreg_count\0A ret i32 %n\0A\00" @.str11183 = private unnamed_addr constant [23 x i8] c"drop:\0A ret i32 -1\0A}\0A\0A\00" @.str11184 = private unnamed_addr constant [4 x i8] c"dsp\00" @.str11185 = private unnamed_addr constant [4 x i8] c"dsh\00" @.str11186 = private unnamed_addr constant [4 x i8] c"dsb\00" @.str11187 = private unnamed_addr constant [5 x i8] c"dsdo\00" @.str11188 = private unnamed_addr constant [4 x i8] c"dsc\00" @.str11189 = private unnamed_addr constant [4 x i8] c"dsn\00" @.str11190 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11191 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11192 = private unnamed_addr constant [15 x i8] c":\0A br label %\00" @.str11193 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11194 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11195 = private unnamed_addr constant [3 x i8] c" \00" @.str11196 = private unnamed_addr constant [18 x i8] c" = phi i32 [ 0, %\00" @.str11197 = private unnamed_addr constant [7 x i8] c" ], [ \00" @.str11198 = private unnamed_addr constant [4 x i8] c", %\00" @.str11199 = private unnamed_addr constant [4 x i8] c" ]\0A\00" @.str11200 = private unnamed_addr constant [28 x i8] c"load i32, ptr @sysreg_count\00" @.str11201 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str11202 = private unnamed_addr constant [3 x i8] c", \00" @.str11203 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11204 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11205 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11206 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11207 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11208 = private unnamed_addr constant [3 x i8] c" \00" @.str11209 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11210 = private unnamed_addr constant [40 x i8] c" x i32], ptr @sysreg_phase, i32 0, i32 \00" @.str11211 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11212 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str11213 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str11214 = private unnamed_addr constant [3 x i8] c", \00" @.str11215 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11216 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11217 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11218 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11219 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11220 = private unnamed_addr constant [3 x i8] c" \00" @.str11221 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11222 = private unnamed_addr constant [37 x i8] c" x ptr], ptr @sysreg_fn, i32 0, i32 \00" @.str11223 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11224 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str11225 = private unnamed_addr constant [13 x i8] c" call void \00" @.str11226 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str11227 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11228 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11229 = private unnamed_addr constant [5 x i8] c":\0A \00" @.str11230 = private unnamed_addr constant [12 x i8] c" = add i32 \00" @.str11231 = private unnamed_addr constant [17 x i8] c", 1\0A br label %\00" @.str11232 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11233 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11234 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16625: index out of range: \00" @.str11235 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16632: index out of range: \00" @.str11236 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_scene\00" @.str11237 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16637: index out of range: \00" @.str11238 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str11239 = private unnamed_addr constant [3 x i8] c", \00" @.str11240 = private unnamed_addr constant [6 x i8] c"scrun\00" @.str11241 = private unnamed_addr constant [7 x i8] c"scskip\00" @.str11242 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11243 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11244 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11245 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11246 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11247 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11248 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11249 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11250 = private unnamed_addr constant [8 x i8] c"Overlay\00" @.str11251 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16658: index out of range: \00" @.str11252 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_scene\00" @.str11253 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16663: index out of range: \00" @.str11254 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str11255 = private unnamed_addr constant [3 x i8] c", \00" @.str11256 = private unnamed_addr constant [5 x i8] c"mrun\00" @.str11257 = private unnamed_addr constant [6 x i8] c"mskip\00" @.str11258 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11259 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11260 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11261 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11262 = private unnamed_addr constant [34 x i8] c":\0A call void @fn_rt_ui_render()\0A\00" @.str11263 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11264 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11265 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11266 = private unnamed_addr constant [5 x i8] c"void\00" @.str11267 = private unnamed_addr constant [6 x i8] c"enter\00" @.str11268 = private unnamed_addr constant [18 x i8] c"input_cursor_mode\00" @.str11269 = private unnamed_addr constant [42 x i8] c" call void @fn_input_cursor_mode(i32 0)\0A\00" @.str11270 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_ui_open(i32 \00" @.str11271 = private unnamed_addr constant [4 x i8] c"UI_\00" @.str11272 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str11273 = private unnamed_addr constant [5 x i8] c"exit\00" @.str11274 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_close()\0A\00" @.str11275 = private unnamed_addr constant [7 x i8] c"scene_\00" @.str11276 = private unnamed_addr constant [2 x i8] c"_\00" @.str11277 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str11278 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str11279 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str11280 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str11281 = private unnamed_addr constant [20 x i8] c"define void @scene_\00" @.str11282 = private unnamed_addr constant [2 x i8] c"_\00" @.str11283 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str11284 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str11285 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16707: index out of range: \00" @.str11286 = private unnamed_addr constant [6 x i8] c"enter\00" @.str11287 = private unnamed_addr constant [5 x i8] c"exit\00" @.str11288 = private unnamed_addr constant [39 x i8] c"define void @L_scene_leave() {\0Aentry:\0A\00" @.str11289 = private unnamed_addr constant [31 x i8] c" %s = load i32, ptr @L_scene\0A\00" @.str11290 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16725: index out of range: \00" @.str11291 = private unnamed_addr constant [6 x i8] c" %is\00" @.str11292 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %s, \00" @.str11293 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11294 = private unnamed_addr constant [12 x i8] c" br i1 %is\00" @.str11295 = private unnamed_addr constant [15 x i8] c", label %leave\00" @.str11296 = private unnamed_addr constant [14 x i8] c", label %next\00" @.str11297 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11298 = private unnamed_addr constant [6 x i8] c"leave\00" @.str11299 = private unnamed_addr constant [27 x i8] c":\0A call void @scene_exit_\00" @.str11300 = private unnamed_addr constant [15 x i8] c"()\0A ret void\0A\00" @.str11301 = private unnamed_addr constant [5 x i8] c"next\00" @.str11302 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11303 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str11304 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16743: index out of range: \00" @.str11305 = private unnamed_addr constant [5 x i8] c"void\00" @.str11306 = private unnamed_addr constant [4 x i8] c"i32\00" @.str11307 = private unnamed_addr constant [26 x i8] c" store i32 %reason, ptr \00" @.str11308 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11309 = private unnamed_addr constant [4 x i8] c"int\00" @.str11310 = private unnamed_addr constant [3 x i8] c"%e\00" @.str11311 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str11312 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str11313 = private unnamed_addr constant [25 x i8] c"define void @on_despawn_\00" @.str11314 = private unnamed_addr constant [32 x i8] c"(i32 %e, i32 %reason) {\0Aentry:\0A\00" @.str11315 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str11316 = private unnamed_addr constant [48 x i8] c"define void @fn_world_despawn(i32 %e) {\0Aentry:\0A\00" @.str11317 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str11318 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" @.str11319 = private unnamed_addr constant [26 x i8] c" %k = load i32, ptr %kp\0A\00" @.str11320 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16784: index out of range: \00" @.str11321 = private unnamed_addr constant [5 x i8] c" %c\00" @.str11322 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str11323 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11324 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str11325 = private unnamed_addr constant [13 x i8] c", label %hit\00" @.str11326 = private unnamed_addr constant [14 x i8] c", label %next\00" @.str11327 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11328 = private unnamed_addr constant [4 x i8] c"hit\00" @.str11329 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" @.str11330 = private unnamed_addr constant [17 x i8] c"(i32 %e, i32 0)\0A\00" @.str11331 = private unnamed_addr constant [7 x i8] c"model_\00" @.str11332 = private unnamed_addr constant [9 x i8] c"_despawn\00" @.str11333 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str11334 = private unnamed_addr constant [17 x i8] c"(i32 %e, i32 0)\0A\00" @.str11335 = private unnamed_addr constant [17 x i8] c" br label %next\00" @.str11336 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11337 = private unnamed_addr constant [5 x i8] c"next\00" @.str11338 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11339 = private unnamed_addr constant [41 x i8] c" call void @ludic_sweep_entity(i32 %e)\0A\00" @.str11340 = private unnamed_addr constant [36 x i8] c" call void @L_free_entity(i32 %e)\0A\00" @.str11341 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str11342 = private unnamed_addr constant [67 x i8] c"define void @L_despawn_all(i32 %reason) {\0Aentry:\0A br label %loop\0A\00" @.str11343 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00" @.str11344 = private unnamed_addr constant [58 x i8] c" %n = load i32, ptr @L_entc\0A %go = icmp slt i32 %i, %n\0A\00" @.str11345 = private unnamed_addr constant [38 x i8] c" br i1 %go, label %body, label %fin\0A\00" @.str11346 = private unnamed_addr constant [39 x i8] c"body:\0A %ap = getelementptr inbounds [\00" @.str11347 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %i\0A\00" @.str11348 = private unnamed_addr constant [55 x i8] c" %al = load i32, ptr %ap\0A %isa = icmp ne i32 %al, 0\0A\00" @.str11349 = private unnamed_addr constant [38 x i8] c" br i1 %isa, label %do, label %cont\0A\00" @.str11350 = private unnamed_addr constant [37 x i8] c"do:\0A %kp = getelementptr inbounds [\00" @.str11351 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %i\0A\00" @.str11352 = private unnamed_addr constant [26 x i8] c" %k = load i32, ptr %kp\0A\00" @.str11353 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16821: index out of range: \00" @.str11354 = private unnamed_addr constant [5 x i8] c" %c\00" @.str11355 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str11356 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11357 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str11358 = private unnamed_addr constant [13 x i8] c", label %hit\00" @.str11359 = private unnamed_addr constant [14 x i8] c", label %next\00" @.str11360 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11361 = private unnamed_addr constant [4 x i8] c"hit\00" @.str11362 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" @.str11363 = private unnamed_addr constant [23 x i8] c"(i32 %i, i32 %reason)\0A\00" @.str11364 = private unnamed_addr constant [7 x i8] c"model_\00" @.str11365 = private unnamed_addr constant [9 x i8] c"_despawn\00" @.str11366 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str11367 = private unnamed_addr constant [23 x i8] c"(i32 %i, i32 %reason)\0A\00" @.str11368 = private unnamed_addr constant [17 x i8] c" br label %next\00" @.str11369 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11370 = private unnamed_addr constant [5 x i8] c"next\00" @.str11371 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11372 = private unnamed_addr constant [18 x i8] c" br label %cont\0A\00" @.str11373 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" @.str11374 = private unnamed_addr constant [20 x i8] c"fin:\0A ret void\0A}\0A\0A\00" @.str11375 = private unnamed_addr constant [26 x i8] c"@ev_depth = global i32 0\0A\00" @.str11376 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16863: index out of range: \00" @.str11377 = private unnamed_addr constant [5 x i8] c"%Ev_\00" @.str11378 = private unnamed_addr constant [11 x i8] c" = type { \00" @.str11379 = private unnamed_addr constant [3 x i8] c", \00" @.str11380 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16874: index out of range: \00" @.str11381 = private unnamed_addr constant [3 x i8] c", \00" @.str11382 = private unnamed_addr constant [4 x i8] c"i32\00" @.str11383 = private unnamed_addr constant [4 x i8] c" }\0A\00" @.str11384 = private unnamed_addr constant [6 x i8] c"@evL_\00" @.str11385 = private unnamed_addr constant [12 x i8] c" = global [\00" @.str11386 = private unnamed_addr constant [25 x i8] c" x ptr] zeroinitializer\0A\00" @.str11387 = private unnamed_addr constant [6 x i8] c"@evN_\00" @.str11388 = private unnamed_addr constant [17 x i8] c" = global i32 0\0A\00" @.str11389 = private unnamed_addr constant [6 x i8] c"@evO_\00" @.str11390 = private unnamed_addr constant [12 x i8] c" = global [\00" @.str11391 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str11392 = private unnamed_addr constant [22 x i8] c"define i32 @ludic_on_\00" @.str11393 = private unnamed_addr constant [20 x i8] c"(ptr %cb) {\0Aentry:\0A\00" @.str11394 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00" @.str11395 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11396 = private unnamed_addr constant [28 x i8] c" %full = icmp slt i32 %n, \00" @.str11397 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11398 = private unnamed_addr constant [40 x i8] c" br i1 %full, label %add, label %drop\0A\00" @.str11399 = private unnamed_addr constant [40 x i8] c"add:\0A %slot = getelementptr inbounds [\00" @.str11400 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str11401 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str11402 = private unnamed_addr constant [28 x i8] c" store ptr %cb, ptr %slot\0A\00" @.str11403 = private unnamed_addr constant [36 x i8] c" %oslot = getelementptr inbounds [\00" @.str11404 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00" @.str11405 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str11406 = private unnamed_addr constant [28 x i8] c" store i32 -1, ptr %oslot\0A\00" @.str11407 = private unnamed_addr constant [49 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @evN_\00" @.str11408 = private unnamed_addr constant [15 x i8] c"\0A ret i32 %n\0A\00" @.str11409 = private unnamed_addr constant [23 x i8] c"drop:\0A ret i32 -1\0A}\0A\0A\00" @.str11410 = private unnamed_addr constant [29 x i8] c"define i32 @ludic_on_entity_\00" @.str11411 = private unnamed_addr constant [32 x i8] c"(i32 %owner, ptr %cb) {\0Aentry:\0A\00" @.str11412 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00" @.str11413 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11414 = private unnamed_addr constant [28 x i8] c" %full = icmp slt i32 %n, \00" @.str11415 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11416 = private unnamed_addr constant [40 x i8] c" br i1 %full, label %add, label %drop\0A\00" @.str11417 = private unnamed_addr constant [40 x i8] c"add:\0A %slot = getelementptr inbounds [\00" @.str11418 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str11419 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str11420 = private unnamed_addr constant [28 x i8] c" store ptr %cb, ptr %slot\0A\00" @.str11421 = private unnamed_addr constant [36 x i8] c" %oslot = getelementptr inbounds [\00" @.str11422 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00" @.str11423 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str11424 = private unnamed_addr constant [32 x i8] c" store i32 %owner, ptr %oslot\0A\00" @.str11425 = private unnamed_addr constant [49 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @evN_\00" @.str11426 = private unnamed_addr constant [15 x i8] c"\0A ret i32 %n\0A\00" @.str11427 = private unnamed_addr constant [23 x i8] c"drop:\0A ret i32 -1\0A}\0A\0A\00" @.str11428 = private unnamed_addr constant [24 x i8] c"define void @ludic_off_\00" @.str11429 = private unnamed_addr constant [21 x i8] c"(i32 %tok) {\0Aentry:\0A\00" @.str11430 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00" @.str11431 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11432 = private unnamed_addr constant [84 x i8] c" %lo = icmp sge i32 %tok, 0\0A %hi = icmp slt i32 %tok, %n\0A %ok = and i1 %lo, %hi\0A\00" @.str11433 = private unnamed_addr constant [37 x i8] c" br i1 %ok, label %do, label %skip\0A\00" @.str11434 = private unnamed_addr constant [39 x i8] c"do:\0A %slot = getelementptr inbounds [\00" @.str11435 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str11436 = private unnamed_addr constant [19 x i8] c", i32 0, i32 %tok\0A\00" @.str11437 = private unnamed_addr constant [46 x i8] c" store ptr null, ptr %slot\0A br label %skip\0A\00" @.str11438 = private unnamed_addr constant [21 x i8] c"skip:\0A ret void\0A}\0A\0A\00" @.str11439 = private unnamed_addr constant [5 x i8] c"void\00" @.str11440 = private unnamed_addr constant [34 x i8] c" %evd = load i32, ptr @ev_depth\0A\00" @.str11441 = private unnamed_addr constant [32 x i8] c" %evover = icmp sge i32 %evd, \00" @.str11442 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11443 = private unnamed_addr constant [44 x i8] c" br i1 %evover, label %evcap, label %evgo\0A\00" @.str11444 = private unnamed_addr constant [8 x i8] c"evcap:\0A\00" @.str11445 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" @.str11446 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str11447 = private unnamed_addr constant [7 x i8] c"evgo:\0A\00" @.str11448 = private unnamed_addr constant [60 x i8] c" %evd1 = add i32 %evd, 1\0A store i32 %evd1, ptr @ev_depth\0A\00" @.str11449 = private unnamed_addr constant [5 x i8] c"%Ev_\00" @.str11450 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16940: index out of range: \00" @.str11451 = private unnamed_addr constant [3 x i8] c" \00" @.str11452 = private unnamed_addr constant [31 x i8] c" = getelementptr inbounds %Ev_\00" @.str11453 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str11454 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str11455 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11456 = private unnamed_addr constant [9 x i8] c" store \00" @.str11457 = private unnamed_addr constant [4 x i8] c" %p\00" @.str11458 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str11459 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11460 = private unnamed_addr constant [9 x i8] c" store \00" @.str11461 = private unnamed_addr constant [4 x i8] c" %p\00" @.str11462 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str11463 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11464 = private unnamed_addr constant [3 x i8] c" \00" @.str11465 = private unnamed_addr constant [31 x i8] c" = getelementptr inbounds %Ev_\00" @.str11466 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str11467 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str11468 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11469 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str11470 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11471 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16959: index out of range: \00" @.str11472 = private unnamed_addr constant [7 x i8] c"evnext\00" @.str11473 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16965: index out of range: \00" @.str11474 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:16967: index out of range: \00" @.str11475 = private unnamed_addr constant [4 x i8] c"ret\00" @.str11476 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11477 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11478 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11479 = private unnamed_addr constant [4 x i8] c"i32\00" @.str11480 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str11481 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11482 = private unnamed_addr constant [4 x i8] c"evl\00" @.str11483 = private unnamed_addr constant [4 x i8] c"evb\00" @.str11484 = private unnamed_addr constant [4 x i8] c"evd\00" @.str11485 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11486 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11487 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11488 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str11489 = private unnamed_addr constant [20 x i8] c"load i32, ptr @evN_\00" @.str11490 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str11491 = private unnamed_addr constant [3 x i8] c", \00" @.str11492 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11493 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11494 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11495 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11496 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11497 = private unnamed_addr constant [3 x i8] c" \00" @.str11498 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11499 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str11500 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str11501 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11502 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str11503 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" @.str11504 = private unnamed_addr constant [7 x i8] c", null\00" @.str11505 = private unnamed_addr constant [5 x i8] c"evdo\00" @.str11506 = private unnamed_addr constant [5 x i8] c"evsk\00" @.str11507 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str11508 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11509 = private unnamed_addr constant [10 x i8] c", label %\00" @.str11510 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11511 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11512 = private unnamed_addr constant [13 x i8] c" call void \00" @.str11513 = private unnamed_addr constant [6 x i8] c"(ptr \00" @.str11514 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str11515 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11516 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11517 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11518 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str11519 = private unnamed_addr constant [4 x i8] c", 1\00" @.str11520 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str11521 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str11522 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11523 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str11524 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11525 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11526 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str11527 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" @.str11528 = private unnamed_addr constant [97 x i8] c" %evdd = load i32, ptr @ev_depth\0A %evdd1 = sub i32 %evdd, 1\0A store i32 %evdd1, ptr @ev_depth\0A\00" @.str11529 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str11530 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str11531 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11532 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str11533 = private unnamed_addr constant [5 x i8] c"void\00" @.str11534 = private unnamed_addr constant [4 x i8] c"i32\00" @.str11535 = private unnamed_addr constant [8 x i8] c"define \00" @.str11536 = private unnamed_addr constant [6 x i8] c" @ev_\00" @.str11537 = private unnamed_addr constant [2 x i8] c"(\00" @.str11538 = private unnamed_addr constant [3 x i8] c", \00" @.str11539 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17014: index out of range: \00" @.str11540 = private unnamed_addr constant [4 x i8] c" %p\00" @.str11541 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" @.str11542 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str11543 = private unnamed_addr constant [112 x i8] c"define void @ludic_sweep_entity(i32 %owner) {\0Aentry:\0A %ci = alloca i32\0A store i32 0, ptr %ci\0A br label %sw0\0A\00" @.str11544 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17031: index out of range: \00" @.str11545 = private unnamed_addr constant [3 x i8] c"sw\00" @.str11546 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11547 = private unnamed_addr constant [7 x i8] c" %swi\00" @.str11548 = private unnamed_addr constant [22 x i8] c" = load i32, ptr %ci\0A\00" @.str11549 = private unnamed_addr constant [7 x i8] c" %swn\00" @.str11550 = private unnamed_addr constant [23 x i8] c" = load i32, ptr @evN_\00" @.str11551 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11552 = private unnamed_addr constant [7 x i8] c" %swg\00" @.str11553 = private unnamed_addr constant [21 x i8] c" = icmp slt i32 %swi\00" @.str11554 = private unnamed_addr constant [7 x i8] c", %swn\00" @.str11555 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11556 = private unnamed_addr constant [13 x i8] c" br i1 %swg\00" @.str11557 = private unnamed_addr constant [13 x i8] c", label %swb\00" @.str11558 = private unnamed_addr constant [13 x i8] c", label %swd\00" @.str11559 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11560 = private unnamed_addr constant [4 x i8] c"swb\00" @.str11561 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11562 = private unnamed_addr constant [8 x i8] c" %swop\00" @.str11563 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11564 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00" @.str11565 = private unnamed_addr constant [18 x i8] c", i32 0, i32 %swi\00" @.str11566 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11567 = private unnamed_addr constant [8 x i8] c" %swov\00" @.str11568 = private unnamed_addr constant [23 x i8] c" = load i32, ptr %swop\00" @.str11569 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11570 = private unnamed_addr constant [7 x i8] c" %swm\00" @.str11571 = private unnamed_addr constant [21 x i8] c" = icmp eq i32 %swov\00" @.str11572 = private unnamed_addr constant [10 x i8] c", %owner\0A\00" @.str11573 = private unnamed_addr constant [13 x i8] c" br i1 %swm\00" @.str11574 = private unnamed_addr constant [13 x i8] c", label %swh\00" @.str11575 = private unnamed_addr constant [13 x i8] c", label %swx\00" @.str11576 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11577 = private unnamed_addr constant [4 x i8] c"swh\00" @.str11578 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11579 = private unnamed_addr constant [8 x i8] c" %swlp\00" @.str11580 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11581 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str11582 = private unnamed_addr constant [18 x i8] c", i32 0, i32 %swi\00" @.str11583 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11584 = private unnamed_addr constant [28 x i8] c" store ptr null, ptr %swlp\00" @.str11585 = private unnamed_addr constant [17 x i8] c"\0A br label %swx\00" @.str11586 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11587 = private unnamed_addr constant [4 x i8] c"swx\00" @.str11588 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11589 = private unnamed_addr constant [9 x i8] c" %swinc\00" @.str11590 = private unnamed_addr constant [16 x i8] c" = add i32 %swi\00" @.str11591 = private unnamed_addr constant [23 x i8] c", 1\0A store i32 %swinc\00" @.str11592 = private unnamed_addr constant [25 x i8] c", ptr %ci\0A br label %sw\00" @.str11593 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11594 = private unnamed_addr constant [4 x i8] c"swd\00" @.str11595 = private unnamed_addr constant [26 x i8] c":\0A store i32 0, ptr %ci\0A\00" @.str11596 = private unnamed_addr constant [15 x i8] c" br label %sw\00" @.str11597 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11598 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str11599 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str11600 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17080: index out of range: \00" @.str11601 = private unnamed_addr constant [27 x i8] c"@dyn_count = global i32 0\0A\00" @.str11602 = private unnamed_addr constant [43 x i8] c"@dynS = global [32 x ptr] zeroinitializer\0A\00" @.str11603 = private unnamed_addr constant [43 x i8] c"@dynH = global [32 x ptr] zeroinitializer\0A\00" @.str11604 = private unnamed_addr constant [43 x i8] c"@dynF = global [32 x i32] zeroinitializer\0A\00" @.str11605 = private unnamed_addr constant [46 x i8] c"@dynName = global [32 x ptr] zeroinitializer\0A\00" @.str11606 = private unnamed_addr constant [47 x i8] c"define i32 @ludic_prop_id(ptr %name) {\0Aentry:\0A\00" @.str11607 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17093: index out of range: \00" @.str11608 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17094: index out of range: \00" @.str11609 = private unnamed_addr constant [5 x i8] c" %c\00" @.str11610 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00" @.str11611 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str11612 = private unnamed_addr constant [5 x i8] c" %e\00" @.str11613 = private unnamed_addr constant [18 x i8] c" = icmp eq i32 %c\00" @.str11614 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str11615 = private unnamed_addr constant [11 x i8] c" br i1 %e\00" @.str11616 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str11617 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str11618 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11619 = private unnamed_addr constant [2 x i8] c"h\00" @.str11620 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str11621 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11622 = private unnamed_addr constant [2 x i8] c"n\00" @.str11623 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11624 = private unnamed_addr constant [61 x i8] c" %dpi = alloca i32\0A store i32 0, ptr %dpi\0A br label %dpl\0A\00" @.str11625 = private unnamed_addr constant [135 x i8] c"dpl:\0A %di = load i32, ptr %dpi\0A %dn = load i32, ptr @dyn_count\0A %dg = icmp slt i32 %di, %dn\0A br i1 %dg, label %dpb, label %dpnone\0A\00" @.str11626 = private unnamed_addr constant [231 x i8] c"dpb:\0A %dnp = getelementptr inbounds [32 x ptr], ptr @dynName, i32 0, i32 %di\0A %dname = load ptr, ptr %dnp\0A %dcmp = call i32 @strcmp(ptr %name, ptr %dname)\0A %deq = icmp eq i32 %dcmp, 0\0A br i1 %deq, label %dphit, label %dpnext\0A\00" @.str11627 = private unnamed_addr constant [31 x i8] c"dphit:\0A %drid = add i32 %di, \00" @.str11628 = private unnamed_addr constant [18 x i8] c"\0A ret i32 %drid\0A\00" @.str11629 = private unnamed_addr constant [76 x i8] c"dpnext:\0A %di1 = add i32 %di, 1\0A store i32 %di1, ptr %dpi\0A br label %dpl\0A\00" @.str11630 = private unnamed_addr constant [25 x i8] c"dpnone:\0A ret i32 -1\0A}\0A\0A\00" @.str11631 = private unnamed_addr constant [56 x i8] c"define i32 @ludic_field_id(i32 %p, ptr %name) {\0Aentry:\0A\00" @.str11632 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17116: index out of range: \00" @.str11633 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17117: index out of range: \00" @.str11634 = private unnamed_addr constant [6 x i8] c" %pm\00" @.str11635 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str11636 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11637 = private unnamed_addr constant [12 x i8] c" br i1 %pm\00" @.str11638 = private unnamed_addr constant [12 x i8] c", label %pk\00" @.str11639 = private unnamed_addr constant [12 x i8] c", label %pn\00" @.str11640 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11641 = private unnamed_addr constant [3 x i8] c"pk\00" @.str11642 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11643 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17123: index out of range: \00" @.str11644 = private unnamed_addr constant [2 x i8] c"_\00" @.str11645 = private unnamed_addr constant [6 x i8] c" %fc\00" @.str11646 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00" @.str11647 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str11648 = private unnamed_addr constant [6 x i8] c" %fe\00" @.str11649 = private unnamed_addr constant [19 x i8] c" = icmp eq i32 %fc\00" @.str11650 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str11651 = private unnamed_addr constant [12 x i8] c" br i1 %fe\00" @.str11652 = private unnamed_addr constant [12 x i8] c", label %fh\00" @.str11653 = private unnamed_addr constant [12 x i8] c", label %fn\00" @.str11654 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11655 = private unnamed_addr constant [3 x i8] c"fh\00" @.str11656 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str11657 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11658 = private unnamed_addr constant [3 x i8] c"fn\00" @.str11659 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11660 = private unnamed_addr constant [14 x i8] c" ret i32 -1\0A\00" @.str11661 = private unnamed_addr constant [3 x i8] c"pn\00" @.str11662 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11663 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00" @.str11664 = private unnamed_addr constant [56 x i8] c"define i64 @ludic_get(i32 %e, i32 %p, i32 %f) {\0Aentry:\0A\00" @.str11665 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17148: index out of range: \00" @.str11666 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17149: index out of range: \00" @.str11667 = private unnamed_addr constant [5 x i8] c" %m\00" @.str11668 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str11669 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11670 = private unnamed_addr constant [11 x i8] c" br i1 %m\00" @.str11671 = private unnamed_addr constant [11 x i8] c", label %g\00" @.str11672 = private unnamed_addr constant [12 x i8] c", label %gn\00" @.str11673 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11674 = private unnamed_addr constant [2 x i8] c"g\00" @.str11675 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11676 = private unnamed_addr constant [5 x i8] c" %s\00" @.str11677 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11678 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str11679 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str11680 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str11681 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17156: index out of range: \00" @.str11682 = private unnamed_addr constant [2 x i8] c"_\00" @.str11683 = private unnamed_addr constant [6 x i8] c" %gm\00" @.str11684 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str11685 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11686 = private unnamed_addr constant [12 x i8] c" br i1 %gm\00" @.str11687 = private unnamed_addr constant [12 x i8] c", label %gf\00" @.str11688 = private unnamed_addr constant [12 x i8] c", label %gk\00" @.str11689 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11690 = private unnamed_addr constant [3 x i8] c"gf\00" @.str11691 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11692 = private unnamed_addr constant [6 x i8] c" %ga\00" @.str11693 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str11694 = private unnamed_addr constant [9 x i8] c", ptr %s\00" @.str11695 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str11696 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11697 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str11698 = private unnamed_addr constant [6 x i8] c" %gl\00" @.str11699 = private unnamed_addr constant [21 x i8] c" = load ptr, ptr %ga\00" @.str11700 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11701 = private unnamed_addr constant [6 x i8] c" %gr\00" @.str11702 = private unnamed_addr constant [20 x i8] c" = ptrtoint ptr %gl\00" @.str11703 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00" @.str11704 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11705 = private unnamed_addr constant [3 x i8] c"i8\00" @.str11706 = private unnamed_addr constant [6 x i8] c" %gl\00" @.str11707 = private unnamed_addr constant [20 x i8] c" = load i8, ptr %ga\00" @.str11708 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11709 = private unnamed_addr constant [6 x i8] c" %gr\00" @.str11710 = private unnamed_addr constant [15 x i8] c" = zext i8 %gl\00" @.str11711 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00" @.str11712 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11713 = private unnamed_addr constant [6 x i8] c" %gl\00" @.str11714 = private unnamed_addr constant [21 x i8] c" = load i32, ptr %ga\00" @.str11715 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11716 = private unnamed_addr constant [6 x i8] c" %gr\00" @.str11717 = private unnamed_addr constant [16 x i8] c" = sext i32 %gl\00" @.str11718 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00" @.str11719 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11720 = private unnamed_addr constant [3 x i8] c"gk\00" @.str11721 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11722 = private unnamed_addr constant [13 x i8] c" ret i64 0\0A\00" @.str11723 = private unnamed_addr constant [3 x i8] c"gn\00" @.str11724 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11725 = private unnamed_addr constant [23 x i8] c" %gdyn = sub i32 %p, \00" @.str11726 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11727 = private unnamed_addr constant [175 x i8] c" %gdlo = icmp sge i32 %gdyn, 0\0A %gdc = load i32, ptr @dyn_count\0A %gdhi = icmp slt i32 %gdyn, %gdc\0A %gdok = and i1 %gdlo, %gdhi\0A br i1 %gdok, label %gdyng, label %gdnone\0A\00" @.str11728 = private unnamed_addr constant [110 x i8] c"gdyng:\0A %gsp = getelementptr inbounds [32 x ptr], ptr @dynS, i32 0, i32 %gdyn\0A %gbase = load ptr, ptr %gsp\0A\00" @.str11729 = private unnamed_addr constant [156 x i8] c" %gfp = getelementptr inbounds [32 x i32], ptr @dynF, i32 0, i32 %gdyn\0A %gnf = load i32, ptr %gfp\0A %grow = mul i32 %e, %gnf\0A %gidx = add i32 %grow, %f\0A\00" @.str11730 = private unnamed_addr constant [133 x i8] c" %gaddr = getelementptr inbounds i32, ptr %gbase, i32 %gidx\0A %gv = load i32, ptr %gaddr\0A %gr = sext i32 %gv to i64\0A ret i64 %gr\0A\00" @.str11731 = private unnamed_addr constant [24 x i8] c"gdnone:\0A ret i64 0\0A}\0A\0A\00" @.str11732 = private unnamed_addr constant [67 x i8] c"define void @ludic_set(i32 %e, i32 %p, i32 %f, i64 %val) {\0Aentry:\0A\00" @.str11733 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17191: index out of range: \00" @.str11734 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17192: index out of range: \00" @.str11735 = private unnamed_addr constant [5 x i8] c" %m\00" @.str11736 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str11737 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11738 = private unnamed_addr constant [11 x i8] c" br i1 %m\00" @.str11739 = private unnamed_addr constant [11 x i8] c", label %g\00" @.str11740 = private unnamed_addr constant [12 x i8] c", label %gn\00" @.str11741 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11742 = private unnamed_addr constant [2 x i8] c"g\00" @.str11743 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11744 = private unnamed_addr constant [5 x i8] c" %s\00" @.str11745 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11746 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str11747 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str11748 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str11749 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17199: index out of range: \00" @.str11750 = private unnamed_addr constant [2 x i8] c"_\00" @.str11751 = private unnamed_addr constant [6 x i8] c" %sm\00" @.str11752 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str11753 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11754 = private unnamed_addr constant [12 x i8] c" br i1 %sm\00" @.str11755 = private unnamed_addr constant [12 x i8] c", label %sf\00" @.str11756 = private unnamed_addr constant [12 x i8] c", label %sk\00" @.str11757 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11758 = private unnamed_addr constant [3 x i8] c"sf\00" @.str11759 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11760 = private unnamed_addr constant [6 x i8] c" %sa\00" @.str11761 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str11762 = private unnamed_addr constant [9 x i8] c", ptr %s\00" @.str11763 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str11764 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11765 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str11766 = private unnamed_addr constant [6 x i8] c" %sp\00" @.str11767 = private unnamed_addr constant [29 x i8] c" = inttoptr i64 %val to ptr\0A\00" @.str11768 = private unnamed_addr constant [16 x i8] c" store ptr %sp\00" @.str11769 = private unnamed_addr constant [10 x i8] c", ptr %sa\00" @.str11770 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00" @.str11771 = private unnamed_addr constant [3 x i8] c"i8\00" @.str11772 = private unnamed_addr constant [6 x i8] c" %sb\00" @.str11773 = private unnamed_addr constant [25 x i8] c" = trunc i64 %val to i8\0A\00" @.str11774 = private unnamed_addr constant [15 x i8] c" store i8 %sb\00" @.str11775 = private unnamed_addr constant [10 x i8] c", ptr %sa\00" @.str11776 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00" @.str11777 = private unnamed_addr constant [6 x i8] c" %sw\00" @.str11778 = private unnamed_addr constant [26 x i8] c" = trunc i64 %val to i32\0A\00" @.str11779 = private unnamed_addr constant [16 x i8] c" store i32 %sw\00" @.str11780 = private unnamed_addr constant [10 x i8] c", ptr %sa\00" @.str11781 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00" @.str11782 = private unnamed_addr constant [3 x i8] c"sk\00" @.str11783 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11784 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str11785 = private unnamed_addr constant [3 x i8] c"gn\00" @.str11786 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11787 = private unnamed_addr constant [23 x i8] c" %sdyn = sub i32 %p, \00" @.str11788 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11789 = private unnamed_addr constant [175 x i8] c" %sdlo = icmp sge i32 %sdyn, 0\0A %sdc = load i32, ptr @dyn_count\0A %sdhi = icmp slt i32 %sdyn, %sdc\0A %sdok = and i1 %sdlo, %sdhi\0A br i1 %sdok, label %sdyng, label %sdnone\0A\00" @.str11790 = private unnamed_addr constant [110 x i8] c"sdyng:\0A %ssp = getelementptr inbounds [32 x ptr], ptr @dynS, i32 0, i32 %sdyn\0A %sbase = load ptr, ptr %ssp\0A\00" @.str11791 = private unnamed_addr constant [156 x i8] c" %sfp = getelementptr inbounds [32 x i32], ptr @dynF, i32 0, i32 %sdyn\0A %snf = load i32, ptr %sfp\0A %srow = mul i32 %e, %snf\0A %sidx = add i32 %srow, %f\0A\00" @.str11792 = private unnamed_addr constant [131 x i8] c" %saddr = getelementptr inbounds i32, ptr %sbase, i32 %sidx\0A %sv = trunc i64 %val to i32\0A store i32 %sv, ptr %saddr\0A ret void\0A\00" @.str11793 = private unnamed_addr constant [23 x i8] c"sdnone:\0A ret void\0A}\0A\0A\00" @.str11794 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_has(i32 %e, i32 %p) {\0Aentry:\0A\00" @.str11795 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17234: index out of range: \00" @.str11796 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17235: index out of range: \00" @.str11797 = private unnamed_addr constant [5 x i8] c" %m\00" @.str11798 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str11799 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11800 = private unnamed_addr constant [11 x i8] c" br i1 %m\00" @.str11801 = private unnamed_addr constant [11 x i8] c", label %g\00" @.str11802 = private unnamed_addr constant [12 x i8] c", label %gn\00" @.str11803 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11804 = private unnamed_addr constant [2 x i8] c"g\00" @.str11805 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11806 = private unnamed_addr constant [6 x i8] c" %hp\00" @.str11807 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str11808 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str11809 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str11810 = private unnamed_addr constant [6 x i8] c" %hv\00" @.str11811 = private unnamed_addr constant [20 x i8] c" = load i8, ptr %hp\00" @.str11812 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11813 = private unnamed_addr constant [6 x i8] c" %hr\00" @.str11814 = private unnamed_addr constant [15 x i8] c" = zext i8 %hv\00" @.str11815 = private unnamed_addr constant [22 x i8] c" to i32\0A ret i32 %hr\00" @.str11816 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11817 = private unnamed_addr constant [3 x i8] c"gn\00" @.str11818 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11819 = private unnamed_addr constant [23 x i8] c" %hdyn = sub i32 %p, \00" @.str11820 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11821 = private unnamed_addr constant [175 x i8] c" %hdlo = icmp sge i32 %hdyn, 0\0A %hdc = load i32, ptr @dyn_count\0A %hdhi = icmp slt i32 %hdyn, %hdc\0A %hdok = and i1 %hdlo, %hdhi\0A br i1 %hdok, label %hdyng, label %hdnone\0A\00" @.str11822 = private unnamed_addr constant [238 x i8] c"hdyng:\0A %hhp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %hdyn\0A %hh = load ptr, ptr %hhp\0A %hslot = getelementptr inbounds i8, ptr %hh, i32 %e\0A %hval = load i8, ptr %hslot\0A %hres = zext i8 %hval to i32\0A ret i32 %hres\0A\00" @.str11823 = private unnamed_addr constant [24 x i8] c"hdnone:\0A ret i32 0\0A}\0A\0A\00" @.str11824 = private unnamed_addr constant [67 x i8] c"define i32 @ludic_register_prop(ptr %name, i32 %nfields) {\0Aentry:\0A\00" @.str11825 = private unnamed_addr constant [102 x i8] c" %dc = load i32, ptr @dyn_count\0A %full = icmp slt i32 %dc, 32\0A br i1 %full, label %do, label %rej\0A\00" @.str11826 = private unnamed_addr constant [56 x i8] c"do:\0A %nf4 = mul i32 %nfields, 4\0A %sz = mul i32 %nf4, \00" @.str11827 = private unnamed_addr constant [31 x i8] c"\0A %szl = sext i32 %sz to i64\0A\00" @.str11828 = private unnamed_addr constant [83 x i8] c" %buf = call ptr @malloc(i64 %szl)\0A call ptr @memset(ptr %buf, i32 0, i64 %szl)\0A\00" @.str11829 = private unnamed_addr constant [96 x i8] c" %sp = getelementptr inbounds [32 x ptr], ptr @dynS, i32 0, i32 %dc\0A store ptr %buf, ptr %sp\0A\00" @.str11830 = private unnamed_addr constant [32 x i8] c" %hbuf = call ptr @malloc(i64 \00" @.str11831 = private unnamed_addr constant [44 x i8] c")\0A call ptr @memset(ptr %hbuf, i32 0, i64 \00" @.str11832 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str11833 = private unnamed_addr constant [97 x i8] c" %hp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %dc\0A store ptr %hbuf, ptr %hp\0A\00" @.str11834 = private unnamed_addr constant [100 x i8] c" %fp = getelementptr inbounds [32 x i32], ptr @dynF, i32 0, i32 %dc\0A store i32 %nfields, ptr %fp\0A\00" @.str11835 = private unnamed_addr constant [100 x i8] c" %np = getelementptr inbounds [32 x ptr], ptr @dynName, i32 0, i32 %dc\0A store ptr %name, ptr %np\0A\00" @.str11836 = private unnamed_addr constant [22 x i8] c" %id = add i32 %dc, \00" @.str11837 = private unnamed_addr constant [73 x i8] c"\0A %dc1 = add i32 %dc, 1\0A store i32 %dc1, ptr @dyn_count\0A ret i32 %id\0A\00" @.str11838 = private unnamed_addr constant [22 x i8] c"rej:\0A ret i32 -1\0A}\0A\0A\00" @.str11839 = private unnamed_addr constant [56 x i8] c"define void @ludic_attach_dyn(i32 %e, i32 %p) {\0Aentry:\0A\00" @.str11840 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00" @.str11841 = private unnamed_addr constant [187 x i8] c"\0A %hp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %dyn\0A %h = load ptr, ptr %hp\0A %slot = getelementptr inbounds i8, ptr %h, i32 %e\0A store i8 1, ptr %slot\0A ret void\0A}\0A\0A\00" @.str11842 = private unnamed_addr constant [56 x i8] c"define void @ludic_detach_dyn(i32 %e, i32 %p) {\0Aentry:\0A\00" @.str11843 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00" @.str11844 = private unnamed_addr constant [187 x i8] c"\0A %hp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %dyn\0A %h = load ptr, ptr %hp\0A %slot = getelementptr inbounds i8, ptr %h, i32 %e\0A store i8 0, ptr %slot\0A ret void\0A}\0A\0A\00" @.str11845 = private unnamed_addr constant [88 x i8] c"define i32 @ludic_entity_count() {\0Aentry:\0A %n = load i32, ptr @L_entc\0A ret i32 %n\0A}\0A\0A\00" @.str11846 = private unnamed_addr constant [41 x i8] c"define i32 @ludic_kind(i32 %e) {\0Aentry:\0A\00" @.str11847 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str11848 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" @.str11849 = private unnamed_addr constant [42 x i8] c" %k = load i32, ptr %kp\0A ret i32 %k\0A}\0A\0A\00" @.str11850 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_model_id(ptr %name) {\0Aentry:\0A\00" @.str11851 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17284: index out of range: \00" @.str11852 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17285: index out of range: \00" @.str11853 = private unnamed_addr constant [7 x i8] c" %mdc\00" @.str11854 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00" @.str11855 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str11856 = private unnamed_addr constant [7 x i8] c" %mde\00" @.str11857 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %mdc\00" @.str11858 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str11859 = private unnamed_addr constant [13 x i8] c" br i1 %mde\00" @.str11860 = private unnamed_addr constant [13 x i8] c", label %mdh\00" @.str11861 = private unnamed_addr constant [13 x i8] c", label %mdn\00" @.str11862 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11863 = private unnamed_addr constant [4 x i8] c"mdh\00" @.str11864 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str11865 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17289: index out of range: \00" @.str11866 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11867 = private unnamed_addr constant [4 x i8] c"mdn\00" @.str11868 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11869 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00" @.str11870 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17303: index out of range: \00" @.str11871 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17304: index out of range: \00" @.str11872 = private unnamed_addr constant [4 x i8] c"int\00" @.str11873 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str11874 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11875 = private unnamed_addr constant [25 x i8] c"define i32 @ludic_spawn_\00" @.str11876 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str11877 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str11878 = private unnamed_addr constant [42 x i8] c"define i32 @ludic_spawn(i32 %m) {\0Aentry:\0A\00" @.str11879 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17325: index out of range: \00" @.str11880 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17326: index out of range: \00" @.str11881 = private unnamed_addr constant [6 x i8] c" %sm\00" @.str11882 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %m, \00" @.str11883 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11884 = private unnamed_addr constant [12 x i8] c" br i1 %sm\00" @.str11885 = private unnamed_addr constant [12 x i8] c", label %sh\00" @.str11886 = private unnamed_addr constant [12 x i8] c", label %sn\00" @.str11887 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11888 = private unnamed_addr constant [3 x i8] c"sh\00" @.str11889 = private unnamed_addr constant [8 x i8] c":\0A %sr\00" @.str11890 = private unnamed_addr constant [26 x i8] c" = call i32 @ludic_spawn_\00" @.str11891 = private unnamed_addr constant [17 x i8] c"()\0A ret i32 %sr\00" @.str11892 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11893 = private unnamed_addr constant [3 x i8] c"sn\00" @.str11894 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11895 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00" @.str11896 = private unnamed_addr constant [58 x i8] c"define i32 @ludic_query_next(i32 %p, i32 %from) {\0Aentry:\0A\00" @.str11897 = private unnamed_addr constant [47 x i8] c" %n = load i32, ptr @L_entc\0A br label %loop\0A\00" @.str11898 = private unnamed_addr constant [56 x i8] c"loop:\0A %e = phi i32 [ %from, %entry ], [ %e1, %cont ]\0A\00" @.str11899 = private unnamed_addr constant [67 x i8] c" %go = icmp slt i32 %e, %n\0A br i1 %go, label %body, label %none\0A\00" @.str11900 = private unnamed_addr constant [39 x i8] c"body:\0A %ap = getelementptr inbounds [\00" @.str11901 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" @.str11902 = private unnamed_addr constant [93 x i8] c" %al = load i32, ptr %ap\0A %isa = icmp ne i32 %al, 0\0A br i1 %isa, label %chk, label %cont\0A\00" @.str11903 = private unnamed_addr constant [115 x i8] c"chk:\0A %h = call i32 @ludic_has(i32 %e, i32 %p)\0A %hit = icmp ne i32 %h, 0\0A br i1 %hit, label %hitb, label %cont\0A\00" @.str11904 = private unnamed_addr constant [20 x i8] c"hitb:\0A ret i32 %e\0A\00" @.str11905 = private unnamed_addr constant [46 x i8] c"cont:\0A %e1 = add i32 %e, 1\0A br label %loop\0A\00" @.str11906 = private unnamed_addr constant [23 x i8] c"none:\0A ret i32 -1\0A}\0A\0A\00" @.str11907 = private unnamed_addr constant [1 x i8] c"\00" @.str11908 = private unnamed_addr constant [4 x i8] c"int\00" @.str11909 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17366: index out of range: \00" @.str11910 = private unnamed_addr constant [41 x i8] c"define i32 @ludic_prop_count() {\0Aentry:\0A\00" @.str11911 = private unnamed_addr constant [52 x i8] c" %d = load i32, ptr @dyn_count\0A %n = add i32 %d, \00" @.str11912 = private unnamed_addr constant [18 x i8] c"\0A ret i32 %n\0A}\0A\0A\00" @.str11913 = private unnamed_addr constant [46 x i8] c"define ptr @ludic_prop_name(i32 %i) {\0Aentry:\0A\00" @.str11914 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17377: index out of range: \00" @.str11915 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17378: index out of range: \00" @.str11916 = private unnamed_addr constant [6 x i8] c" %pe\00" @.str11917 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %i, \00" @.str11918 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11919 = private unnamed_addr constant [12 x i8] c" br i1 %pe\00" @.str11920 = private unnamed_addr constant [12 x i8] c", label %ph\00" @.str11921 = private unnamed_addr constant [12 x i8] c", label %pn\00" @.str11922 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11923 = private unnamed_addr constant [3 x i8] c"ph\00" @.str11924 = private unnamed_addr constant [13 x i8] c":\0A ret ptr \00" @.str11925 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11926 = private unnamed_addr constant [3 x i8] c"pn\00" @.str11927 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11928 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %i, \00" @.str11929 = private unnamed_addr constant [35 x i8] c"\0A %dc = load i32, ptr @dyn_count\0A\00" @.str11930 = private unnamed_addr constant [70 x i8] c" %ib = icmp uge i32 %dyn, %dc\0A br i1 %ib, label %pbad, label %pdyn\0A\00" @.str11931 = private unnamed_addr constant [120 x i8] c"pdyn:\0A %np = getelementptr inbounds [32 x ptr], ptr @dynName, i32 0, i32 %dyn\0A %nm = load ptr, ptr %np\0A ret ptr %nm\0A\00" @.str11932 = private unnamed_addr constant [17 x i8] c"pbad:\0A ret ptr \00" @.str11933 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str11934 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_field_count(i32 %p) {\0Aentry:\0A\00" @.str11935 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17396: index out of range: \00" @.str11936 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17397: index out of range: \00" @.str11937 = private unnamed_addr constant [7 x i8] c" %fce\00" @.str11938 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str11939 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11940 = private unnamed_addr constant [13 x i8] c" br i1 %fce\00" @.str11941 = private unnamed_addr constant [13 x i8] c", label %fch\00" @.str11942 = private unnamed_addr constant [13 x i8] c", label %fcn\00" @.str11943 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11944 = private unnamed_addr constant [4 x i8] c"fch\00" @.str11945 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str11946 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11947 = private unnamed_addr constant [4 x i8] c"fcn\00" @.str11948 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11949 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00" @.str11950 = private unnamed_addr constant [35 x i8] c"\0A %dc = load i32, ptr @dyn_count\0A\00" @.str11951 = private unnamed_addr constant [72 x i8] c" %ib = icmp uge i32 %dyn, %dc\0A br i1 %ib, label %fcbad, label %fcdyn\0A\00" @.str11952 = private unnamed_addr constant [118 x i8] c"fcdyn:\0A %fp = getelementptr inbounds [32 x i32], ptr @dynF, i32 0, i32 %dyn\0A %fn = load i32, ptr %fp\0A ret i32 %fn\0A\00" @.str11953 = private unnamed_addr constant [23 x i8] c"fcbad:\0A ret i32 0\0A}\0A\0A\00" @.str11954 = private unnamed_addr constant [55 x i8] c"define ptr @ludic_field_name(i32 %p, i32 %f) {\0Aentry:\0A\00" @.str11955 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17415: index out of range: \00" @.str11956 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17416: index out of range: \00" @.str11957 = private unnamed_addr constant [7 x i8] c" %fne\00" @.str11958 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str11959 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11960 = private unnamed_addr constant [13 x i8] c" br i1 %fne\00" @.str11961 = private unnamed_addr constant [13 x i8] c", label %fnk\00" @.str11962 = private unnamed_addr constant [13 x i8] c", label %fnn\00" @.str11963 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11964 = private unnamed_addr constant [4 x i8] c"fnk\00" @.str11965 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11966 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17422: index out of range: \00" @.str11967 = private unnamed_addr constant [2 x i8] c"_\00" @.str11968 = private unnamed_addr constant [8 x i8] c" %fnfe\00" @.str11969 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str11970 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11971 = private unnamed_addr constant [14 x i8] c" br i1 %fnfe\00" @.str11972 = private unnamed_addr constant [14 x i8] c", label %fnfh\00" @.str11973 = private unnamed_addr constant [14 x i8] c", label %fnfn\00" @.str11974 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11975 = private unnamed_addr constant [5 x i8] c"fnfh\00" @.str11976 = private unnamed_addr constant [13 x i8] c":\0A ret ptr \00" @.str11977 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11978 = private unnamed_addr constant [5 x i8] c"fnfn\00" @.str11979 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11980 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str11981 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11982 = private unnamed_addr constant [4 x i8] c"fnn\00" @.str11983 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11984 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str11985 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str11986 = private unnamed_addr constant [55 x i8] c"define ptr @ludic_field_type(i32 %p, i32 %f) {\0Aentry:\0A\00" @.str11987 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17441: index out of range: \00" @.str11988 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17442: index out of range: \00" @.str11989 = private unnamed_addr constant [7 x i8] c" %fte\00" @.str11990 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str11991 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11992 = private unnamed_addr constant [13 x i8] c" br i1 %fte\00" @.str11993 = private unnamed_addr constant [13 x i8] c", label %ftk\00" @.str11994 = private unnamed_addr constant [13 x i8] c", label %ftn\00" @.str11995 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str11996 = private unnamed_addr constant [4 x i8] c"ftk\00" @.str11997 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str11998 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17448: index out of range: \00" @.str11999 = private unnamed_addr constant [2 x i8] c"_\00" @.str12000 = private unnamed_addr constant [8 x i8] c" %ftfe\00" @.str12001 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str12002 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12003 = private unnamed_addr constant [14 x i8] c" br i1 %ftfe\00" @.str12004 = private unnamed_addr constant [14 x i8] c", label %ftfh\00" @.str12005 = private unnamed_addr constant [14 x i8] c", label %ftfn\00" @.str12006 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12007 = private unnamed_addr constant [5 x i8] c"ftfh\00" @.str12008 = private unnamed_addr constant [13 x i8] c":\0A ret ptr \00" @.str12009 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12010 = private unnamed_addr constant [5 x i8] c"ftfn\00" @.str12011 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12012 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str12013 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12014 = private unnamed_addr constant [4 x i8] c"ftn\00" @.str12015 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12016 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str12017 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str12018 = private unnamed_addr constant [38 x i8] c"define void @L_tick_fixed() {\0Aentry:\0A\00" @.str12019 = private unnamed_addr constant [6 x i8] c"Input\00" @.str12020 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" @.str12021 = private unnamed_addr constant [7 x i8] c"Update\00" @.str12022 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" @.str12023 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str12024 = private unnamed_addr constant [39 x i8] c"define void @L_tick_render() {\0Aentry:\0A\00" @.str12025 = private unnamed_addr constant [7 x i8] c"Render\00" @.str12026 = private unnamed_addr constant [8 x i8] c"Overlay\00" @.str12027 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str12028 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17488: index out of range: \00" @.str12029 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17488: index out of range: \00" @.str12030 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" @.str12031 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" @.str12032 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" @.str12033 = private unnamed_addr constant [8 x i8] c"rt_init\00" @.str12034 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00" @.str12035 = private unnamed_addr constant [31 x i8] c" call void @L_init_globals()\0A\00" @.str12036 = private unnamed_addr constant [6 x i8] c"Start\00" @.str12037 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12038 = private unnamed_addr constant [16 x i8] c", ptr @L_scene\0A\00" @.str12039 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17510: index out of range: \00" @.str12040 = private unnamed_addr constant [26 x i8] c" call void @scene_enter_\00" @.str12041 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17510: index out of range: \00" @.str12042 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str12043 = private unnamed_addr constant [14 x i8] c"program_start\00" @.str12044 = private unnamed_addr constant [33 x i8] c" call void @ev_program_start()\0A\00" @.str12045 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str12046 = private unnamed_addr constant [7 x i8] c"loop:\0A\00" @.str12047 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_running\00" @.str12048 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str12049 = private unnamed_addr constant [4 x i8] c", 0\00" @.str12050 = private unnamed_addr constant [11 x i8] c"rt_running\00" @.str12051 = private unnamed_addr constant [26 x i8] c"call i32 @fn_rt_running()\00" @.str12052 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str12053 = private unnamed_addr constant [4 x i8] c", 0\00" @.str12054 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str12055 = private unnamed_addr constant [3 x i8] c", \00" @.str12056 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12057 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" @.str12058 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12059 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" @.str12060 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str12061 = private unnamed_addr constant [12 x i8] c"input_drive\00" @.str12062 = private unnamed_addr constant [27 x i8] c"call i32 @fn_input_drive()\00" @.str12063 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12064 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00" @.str12065 = private unnamed_addr constant [8 x i8] c"rt_poll\00" @.str12066 = private unnamed_addr constant [23 x i8] c"call i32 @fn_rt_poll()\00" @.str12067 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12068 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00" @.str12069 = private unnamed_addr constant [11 x i8] c"rt_ui_tick\00" @.str12070 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00" @.str12071 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_ui_tick(i32 \00" @.str12072 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12073 = private unnamed_addr constant [6 x i8] c"Input\00" @.str12074 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" @.str12075 = private unnamed_addr constant [7 x i8] c"Update\00" @.str12076 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" @.str12077 = private unnamed_addr constant [9 x i8] c"rt_clear\00" @.str12078 = private unnamed_addr constant [30 x i8] c" call void @fn_rt_clear(i32 \00" @.str12079 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12080 = private unnamed_addr constant [7 x i8] c"Render\00" @.str12081 = private unnamed_addr constant [8 x i8] c"Overlay\00" @.str12082 = private unnamed_addr constant [11 x i8] c"rt_present\00" @.str12083 = private unnamed_addr constant [30 x i8] c" call void @fn_rt_present()\0A\00" @.str12084 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_frame\00" @.str12085 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str12086 = private unnamed_addr constant [4 x i8] c", 1\00" @.str12087 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12088 = private unnamed_addr constant [16 x i8] c", ptr @L_frame\0A\00" @.str12089 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str12090 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str12091 = private unnamed_addr constant [35 x i8] c" call void @L_despawn_all(i32 2)\0A\00" @.str12092 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str12093 = private unnamed_addr constant [13 x i8] c"program_quit\00" @.str12094 = private unnamed_addr constant [32 x i8] c" call void @ev_program_quit()\0A\00" @.str12095 = private unnamed_addr constant [12 x i8] c"rt_shutdown\00" @.str12096 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_shutdown()\0A\00" @.str12097 = private unnamed_addr constant [15 x i8] c" ret i32 0\0A}\0A\00" @.str12098 = private unnamed_addr constant [15 x i8] c"machine state \00" @.str12099 = private unnamed_addr constant [27 x i8] c" is not a variant of enum \00" @.str12100 = private unnamed_addr constant [1 x i8] c"\00" @.str12101 = private unnamed_addr constant [18 x i8] c"load i32, ptr @g_\00" @.str12102 = private unnamed_addr constant [25 x i8] c"call i32 @fn_rt_reg(i32 \00" @.str12103 = private unnamed_addr constant [2 x i8] c")\00" @.str12104 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17619: index out of range: \00" @.str12105 = private unnamed_addr constant [6 x i8] c"smend\00" @.str12106 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17624: index out of range: \00" @.str12107 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str12108 = private unnamed_addr constant [3 x i8] c", \00" @.str12109 = private unnamed_addr constant [6 x i8] c"sbody\00" @.str12110 = private unnamed_addr constant [5 x i8] c"sarm\00" @.str12111 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12112 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12113 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12114 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12115 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12116 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str12117 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12118 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12119 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str12120 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12121 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12122 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17646: index out of range: \00" @.str12123 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17649: index out of range: \00" @.str12124 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17649: index out of range: \00" @.str12125 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12126 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" @.str12127 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12128 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_set_reg(i32 \00" @.str12129 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str12130 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12131 = private unnamed_addr constant [27 x i8] c"become: no state or scene \00" @.str12132 = private unnamed_addr constant [25 x i8] c" call void @scene_exit_\00" @.str12133 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str12134 = private unnamed_addr constant [30 x i8] c" call void @L_scene_leave()\0A\00" @.str12135 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12136 = private unnamed_addr constant [16 x i8] c", ptr @L_scene\0A\00" @.str12137 = private unnamed_addr constant [26 x i8] c" call void @scene_enter_\00" @.str12138 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str12139 = private unnamed_addr constant [5 x i8] c"file\00" @.str12140 = private unnamed_addr constant [4 x i8] c"%io\00" @.str12141 = private unnamed_addr constant [3 x i8] c" \00" @.str12142 = private unnamed_addr constant [14 x i8] c" = call i64 @\00" @.str12143 = private unnamed_addr constant [6 x i8] c"(ptr \00" @.str12144 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" @.str12145 = private unnamed_addr constant [11 x i8] c", ptr %f)\0A\00" @.str12146 = private unnamed_addr constant [5 x i8] c"size\00" @.str12147 = private unnamed_addr constant [6 x i8] c"%ioff\00" @.str12148 = private unnamed_addr constant [3 x i8] c" \00" @.str12149 = private unnamed_addr constant [12 x i8] c" = add i64 \00" @.str12150 = private unnamed_addr constant [3 x i8] c", \00" @.str12151 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12152 = private unnamed_addr constant [5 x i8] c"%ioa\00" @.str12153 = private unnamed_addr constant [3 x i8] c" \00" @.str12154 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i64 \00" @.str12155 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12156 = private unnamed_addr constant [5 x i8] c"save\00" @.str12157 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str12158 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12159 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str12160 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12161 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str12162 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12163 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str12164 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12165 = private unnamed_addr constant [6 x i8] c"%ioff\00" @.str12166 = private unnamed_addr constant [3 x i8] c" \00" @.str12167 = private unnamed_addr constant [12 x i8] c" = add i64 \00" @.str12168 = private unnamed_addr constant [3 x i8] c", \00" @.str12169 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12170 = private unnamed_addr constant [2 x i8] c"0\00" @.str12171 = private unnamed_addr constant [8 x i8] c"@L_entc\00" @.str12172 = private unnamed_addr constant [2 x i8] c"4\00" @.str12173 = private unnamed_addr constant [9 x i8] c"@L_freen\00" @.str12174 = private unnamed_addr constant [2 x i8] c"4\00" @.str12175 = private unnamed_addr constant [21 x i8] c" %nalive = mul i64 \00" @.str12176 = private unnamed_addr constant [5 x i8] c", 4\0A\00" @.str12177 = private unnamed_addr constant [9 x i8] c"@L_alive\00" @.str12178 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str12179 = private unnamed_addr constant [12 x i8] c"@L_freelist\00" @.str12180 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str12181 = private unnamed_addr constant [8 x i8] c"@L_kind\00" @.str12182 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str12183 = private unnamed_addr constant [13 x i8] c"@L_owner_arr\00" @.str12184 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str12185 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17731: index out of range: \00" @.str12186 = private unnamed_addr constant [4 x i8] c"@g_\00" @.str12187 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17731: index out of range: \00" @.str12188 = private unnamed_addr constant [2 x i8] c"4\00" @.str12189 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17735: index out of range: \00" @.str12190 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17736: index out of range: \00" @.str12191 = private unnamed_addr constant [5 x i8] c"%csz\00" @.str12192 = private unnamed_addr constant [3 x i8] c" \00" @.str12193 = private unnamed_addr constant [37 x i8] c" = ptrtoint ptr getelementptr (%Cmp_\00" @.str12194 = private unnamed_addr constant [17 x i8] c", ptr null, i32 \00" @.str12195 = private unnamed_addr constant [10 x i8] c") to i64\0A\00" @.str12196 = private unnamed_addr constant [4 x i8] c"@S_\00" @.str12197 = private unnamed_addr constant [4 x i8] c"@H_\00" @.str12198 = private unnamed_addr constant [5 x i8] c"file\00" @.str12199 = private unnamed_addr constant [70 x i8] c"@.sav_path = private unnamed_addr constant [10 x i8] c\22ludic.sav\5C00\22\0A\00" @.str12200 = private unnamed_addr constant [60 x i8] c"@.sav_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" @.str12201 = private unnamed_addr constant [60 x i8] c"@.sav_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str12202 = private unnamed_addr constant [14 x i8] c"rt_save_state\00" @.str12203 = private unnamed_addr constant [14 x i8] c"rt_load_state\00" @.str12204 = private unnamed_addr constant [32 x i8] c"define void @L_save() {\0Aentry:\0A\00" @.str12205 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\0A\00" @.str12206 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" @.str12207 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %out, label %go\0Ago:\0A\00" @.str12208 = private unnamed_addr constant [7 x i8] c"fwrite\00" @.str12209 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_save_state(ptr %f)\0A\00" @.str12210 = private unnamed_addr constant [68 x i8] c" %c = call i32 @fclose(ptr %f)\0A br label %out\0Aout:\0A ret void\0A}\0A\0A\00" @.str12211 = private unnamed_addr constant [31 x i8] c"define i32 @L_load() {\0Aentry:\0A\00" @.str12212 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_rb)\0A\00" @.str12213 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" @.str12214 = private unnamed_addr constant [60 x i8] c" br i1 %bad, label %miss, label %go\0Amiss:\0A ret i32 0\0Ago:\0A\00" @.str12215 = private unnamed_addr constant [6 x i8] c"fread\00" @.str12216 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_load_state(ptr %f)\0A\00" @.str12217 = private unnamed_addr constant [48 x i8] c" %c = call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\0A\00" @.str12218 = private unnamed_addr constant [45 x i8] c"define i32 @L_world_save(ptr %buf) {\0Aentry:\0A\00" @.str12219 = private unnamed_addr constant [5 x i8] c"save\00" @.str12220 = private unnamed_addr constant [1 x i8] c"\00" @.str12221 = private unnamed_addr constant [5 x i8] c"%wsn\00" @.str12222 = private unnamed_addr constant [3 x i8] c" \00" @.str12223 = private unnamed_addr constant [14 x i8] c" = trunc i64 \00" @.str12224 = private unnamed_addr constant [9 x i8] c" to i32\0A\00" @.str12225 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str12226 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str12227 = private unnamed_addr constant [56 x i8] c"define void @L_world_load(ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str12228 = private unnamed_addr constant [5 x i8] c"load\00" @.str12229 = private unnamed_addr constant [1 x i8] c"\00" @.str12230 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str12231 = private unnamed_addr constant [37 x i8] c"define i32 @L_world_size() {\0Aentry:\0A\00" @.str12232 = private unnamed_addr constant [5 x i8] c"size\00" @.str12233 = private unnamed_addr constant [1 x i8] c"\00" @.str12234 = private unnamed_addr constant [5 x i8] c"%wzn\00" @.str12235 = private unnamed_addr constant [3 x i8] c" \00" @.str12236 = private unnamed_addr constant [14 x i8] c" = trunc i64 \00" @.str12237 = private unnamed_addr constant [9 x i8] c" to i32\0A\00" @.str12238 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str12239 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str12240 = private unnamed_addr constant [5 x i8] c"file\00" @.str12241 = private unnamed_addr constant [3 x i8] c"i8\00" @.str12242 = private unnamed_addr constant [3 x i8] c"i8\00" @.str12243 = private unnamed_addr constant [2 x i8] c"1\00" @.str12244 = private unnamed_addr constant [2 x i8] c"4\00" @.str12245 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17829: index out of range: \00" @.str12246 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17830: index out of range: \00" @.str12247 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17833: index out of range: \00" @.str12248 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17833: index out of range: \00" @.str12249 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17845: index out of range: \00" @.str12250 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17845: index out of range: \00" @.str12251 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17852: index out of range: \00" @.str12252 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17852: index out of range: \00" @.str12253 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17860: index out of range: \00" @.str12254 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17860: index out of range: \00" @.str12255 = private unnamed_addr constant [24 x i8] c"ludicc(self): warning: \00" @.str12256 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12257 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17882: index out of range: \00" @.str12258 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17883: index out of range: \00" @.str12259 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17886: index out of range: \00" @.str12260 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17887: index out of range: \00" @.str12261 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17893: index out of range: \00" @.str12262 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17895: index out of range: \00" @.str12263 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str12264 = private unnamed_addr constant [13 x i8] c"@Sync field \00" @.str12265 = private unnamed_addr constant [2 x i8] c".\00" @.str12266 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17895: index out of range: \00" @.str12267 = private unnamed_addr constant [68 x i8] c" is not a POD scalar (networked fields must be int/bool/fixed/byte)\00" @.str12268 = private unnamed_addr constant [7 x i8] c"model \00" @.str12269 = private unnamed_addr constant [9 x i8] c" @Syncs \00" @.str12270 = private unnamed_addr constant [51 x i8] c" but it has no @Sync fields \E2\80\94 nothing replicates\00" @.str12271 = private unnamed_addr constant [25 x i8] c"define i32 @L_serialize_\00" @.str12272 = private unnamed_addr constant [29 x i8] c"(i32 %e, ptr %buf) {\0Aentry:\0A\00" @.str12273 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17919: index out of range: \00" @.str12274 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17920: index out of range: \00" @.str12275 = private unnamed_addr constant [3 x i8] c" \00" @.str12276 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str12277 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str12278 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str12279 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str12280 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17926: index out of range: \00" @.str12281 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17927: index out of range: \00" @.str12282 = private unnamed_addr constant [3 x i8] c" \00" @.str12283 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str12284 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12285 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str12286 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12287 = private unnamed_addr constant [3 x i8] c" \00" @.str12288 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i32 \00" @.str12289 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12290 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str12291 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12292 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str12293 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12294 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17931: index out of range: \00" @.str12295 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str12296 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str12297 = private unnamed_addr constant [22 x i8] c"define void @L_apply_\00" @.str12298 = private unnamed_addr constant [39 x i8] c"(i32 %e, ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str12299 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17952: index out of range: \00" @.str12300 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17953: index out of range: \00" @.str12301 = private unnamed_addr constant [3 x i8] c" \00" @.str12302 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str12303 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str12304 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str12305 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str12306 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17959: index out of range: \00" @.str12307 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17960: index out of range: \00" @.str12308 = private unnamed_addr constant [3 x i8] c" \00" @.str12309 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str12310 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12311 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str12312 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12313 = private unnamed_addr constant [3 x i8] c" \00" @.str12314 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i32 \00" @.str12315 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12316 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str12317 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12318 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str12319 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12320 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17964: index out of range: \00" @.str12321 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str12322 = private unnamed_addr constant [56 x i8] c"define i32 @ludic_serialize(i32 %e, ptr %buf) {\0Aentry:\0A\00" @.str12323 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str12324 = private unnamed_addr constant [62 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A %k = load i32, ptr %kp\0A\00" @.str12325 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17987: index out of range: \00" @.str12326 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17987: index out of range: \00" @.str12327 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:17988: index out of range: \00" @.str12328 = private unnamed_addr constant [5 x i8] c" %c\00" @.str12329 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str12330 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12331 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str12332 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str12333 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str12334 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12335 = private unnamed_addr constant [2 x i8] c"h\00" @.str12336 = private unnamed_addr constant [7 x i8] c":\0A %r\00" @.str12337 = private unnamed_addr constant [26 x i8] c" = call i32 @L_serialize_\00" @.str12338 = private unnamed_addr constant [32 x i8] c"(i32 %e, ptr %buf)\0A ret i32 %r\00" @.str12339 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12340 = private unnamed_addr constant [2 x i8] c"n\00" @.str12341 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12342 = private unnamed_addr constant [16 x i8] c" ret i32 0\0A}\0A\0A\00" @.str12343 = private unnamed_addr constant [63 x i8] c"define void @ludic_apply(i32 %e, ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str12344 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str12345 = private unnamed_addr constant [62 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A %k = load i32, ptr %kp\0A\00" @.str12346 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18003: index out of range: \00" @.str12347 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18003: index out of range: \00" @.str12348 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18004: index out of range: \00" @.str12349 = private unnamed_addr constant [5 x i8] c" %c\00" @.str12350 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str12351 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12352 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str12353 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str12354 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str12355 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12356 = private unnamed_addr constant [2 x i8] c"h\00" @.str12357 = private unnamed_addr constant [24 x i8] c":\0A call void @L_apply_\00" @.str12358 = private unnamed_addr constant [41 x i8] c"(i32 %e, ptr %buf, i32 %len)\0A ret void\0A\00" @.str12359 = private unnamed_addr constant [2 x i8] c"n\00" @.str12360 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12361 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str12362 = private unnamed_addr constant [46 x i8] c"define i32 @ludic_sync_size(i32 %e) {\0Aentry:\0A\00" @.str12363 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str12364 = private unnamed_addr constant [62 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A %k = load i32, ptr %kp\0A\00" @.str12365 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18021: index out of range: \00" @.str12366 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18021: index out of range: \00" @.str12367 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18022: index out of range: \00" @.str12368 = private unnamed_addr constant [5 x i8] c" %c\00" @.str12369 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str12370 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12371 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str12372 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str12373 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str12374 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12375 = private unnamed_addr constant [2 x i8] c"h\00" @.str12376 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str12377 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18025: index out of range: \00" @.str12378 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12379 = private unnamed_addr constant [2 x i8] c"n\00" @.str12380 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12381 = private unnamed_addr constant [16 x i8] c" ret i32 0\0A}\0A\0A\00" @.str12382 = private unnamed_addr constant [38 x i8] c"define i32 @L_owner(i32 %e) {\0Aentry:\0A\00" @.str12383 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00" @.str12384 = private unnamed_addr constant [82 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A %v = load i32, ptr %p\0A ret i32 %v\0A}\0A\0A\00" @.str12385 = private unnamed_addr constant [52 x i8] c"define void @L_set_owner(i32 %e, i32 %id) {\0Aentry:\0A\00" @.str12386 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00" @.str12387 = private unnamed_addr constant [80 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A store i32 %id, ptr %p\0A ret void\0A}\0A\0A\00" @.str12388 = private unnamed_addr constant [41 x i8] c"define i32 @L_is_owner(i32 %e) {\0Aentry:\0A\00" @.str12389 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00" @.str12390 = private unnamed_addr constant [66 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A %o = load i32, ptr %p\0A\00" @.str12391 = private unnamed_addr constant [106 x i8] c" %lid = load i32, ptr @L_localid\0A %eq = icmp eq i32 %o, %lid\0A %r = zext i1 %eq to i32\0A ret i32 %r\0A}\0A\0A\00" @.str12392 = private unnamed_addr constant [62 x i8] c"@L_netq = internal global [64 x [2048 x i8]] zeroinitializer\0A\00" @.str12393 = private unnamed_addr constant [56 x i8] c"@L_netlen = internal global [64 x i32] zeroinitializer\0A\00" @.str12394 = private unnamed_addr constant [36 x i8] c"@L_nethead = internal global i32 0\0A\00" @.str12395 = private unnamed_addr constant [36 x i8] c"@L_nettail = internal global i32 0\0A\00" @.str12396 = private unnamed_addr constant [65 x i8] c"define void @L_net_send(i32 %peer, ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str12397 = private unnamed_addr constant [71 x i8] c" %l0 = icmp slt i32 %len, 0\0A %len1 = select i1 %l0, i32 0, i32 %len\0A\00" @.str12398 = private unnamed_addr constant [76 x i8] c" %l1 = icmp sgt i32 %len1, 2048\0A %n = select i1 %l1, i32 2048, i32 %len1\0A\00" @.str12399 = private unnamed_addr constant [65 x i8] c" %t = load i32, ptr @L_nettail\0A %h = load i32, ptr @L_nethead\0A\00" @.str12400 = private unnamed_addr constant [78 x i8] c" %t1 = add i32 %t, 1\0A %tn = srem i32 %t1, 64\0A %full = icmp eq i32 %tn, %h\0A\00" @.str12401 = private unnamed_addr constant [39 x i8] c" br i1 %full, label %drop, label %go\0A\00" @.str12402 = private unnamed_addr constant [5 x i8] c"go:\0A\00" @.str12403 = private unnamed_addr constant [80 x i8] c" %row = getelementptr inbounds [64 x [2048 x i8]], ptr @L_netq, i32 0, i32 %t\0A\00" @.str12404 = private unnamed_addr constant [76 x i8] c" %nz = zext i32 %n to i64\0A call ptr @memcpy(ptr %row, ptr %buf, i64 %nz)\0A\00" @.str12405 = private unnamed_addr constant [97 x i8] c" %lp = getelementptr inbounds [64 x i32], ptr @L_netlen, i32 0, i32 %t\0A store i32 %n, ptr %lp\0A\00" @.str12406 = private unnamed_addr constant [50 x i8] c" store i32 %tn, ptr @L_nettail\0A br label %drop\0A\00" @.str12407 = private unnamed_addr constant [21 x i8] c"drop:\0A ret void\0A}\0A\0A\00" @.str12408 = private unnamed_addr constant [53 x i8] c"define i32 @L_net_poll(ptr %buf, i32 %cap) {\0Aentry:\0A\00" @.str12409 = private unnamed_addr constant [95 x i8] c" %h = load i32, ptr @L_nethead\0A %t = load i32, ptr @L_nettail\0A %empty = icmp eq i32 %h, %t\0A\00" @.str12410 = private unnamed_addr constant [40 x i8] c" br i1 %empty, label %none, label %go\0A\00" @.str12411 = private unnamed_addr constant [5 x i8] c"go:\0A\00" @.str12412 = private unnamed_addr constant [99 x i8] c" %lp = getelementptr inbounds [64 x i32], ptr @L_netlen, i32 0, i32 %h\0A %ln = load i32, ptr %lp\0A\00" @.str12413 = private unnamed_addr constant [74 x i8] c" %big = icmp sgt i32 %ln, %cap\0A %n = select i1 %big, i32 %cap, i32 %ln\0A\00" @.str12414 = private unnamed_addr constant [80 x i8] c" %row = getelementptr inbounds [64 x [2048 x i8]], ptr @L_netq, i32 0, i32 %h\0A\00" @.str12415 = private unnamed_addr constant [76 x i8] c" %nz = zext i32 %n to i64\0A call ptr @memcpy(ptr %buf, ptr %row, i64 %nz)\0A\00" @.str12416 = private unnamed_addr constant [93 x i8] c" %h1 = add i32 %h, 1\0A %hn = srem i32 %h1, 64\0A store i32 %hn, ptr @L_nethead\0A ret i32 %n\0A\00" @.str12417 = private unnamed_addr constant [22 x i8] c"none:\0A ret i32 0\0A}\0A\0A\00" @.str12418 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18098: index out of range: \00" @.str12419 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18104: index out of range: \00" @.str12420 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str12421 = private unnamed_addr constant [11 x i8] c"L_net_send\00" @.str12422 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str12423 = private unnamed_addr constant [11 x i8] c"L_net_poll\00" @.str12424 = private unnamed_addr constant [58 x i8] c"@L_recvbuf = internal global [2048 x i8] zeroinitializer\0A\00" @.str12425 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str12426 = private unnamed_addr constant [53 x i8] c"define void @L_net_pump() {\0Aentry:\0A br label %loop\0A\00" @.str12427 = private unnamed_addr constant [24 x i8] c"loop:\0A %n = call i32 @\00" @.str12428 = private unnamed_addr constant [28 x i8] c"(ptr @L_recvbuf, i32 2048)\0A\00" @.str12429 = private unnamed_addr constant [68 x i8] c" %done = icmp eq i32 %n, 0\0A br i1 %done, label %fin, label %body\0A\00" @.str12430 = private unnamed_addr constant [41 x i8] c"body:\0A %eid = load i32, ptr @L_recvbuf\0A\00" @.str12431 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18123: index out of range: \00" @.str12432 = private unnamed_addr constant [5 x i8] c" %c\00" @.str12433 = private unnamed_addr constant [22 x i8] c" = icmp eq i32 %eid, \00" @.str12434 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12435 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str12436 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str12437 = private unnamed_addr constant [11 x i8] c", label %x\00" @.str12438 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12439 = private unnamed_addr constant [2 x i8] c"h\00" @.str12440 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12441 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18134: index out of range: \00" @.str12442 = private unnamed_addr constant [2 x i8] c"_\00" @.str12443 = private unnamed_addr constant [6 x i8] c" %fa\00" @.str12444 = private unnamed_addr constant [51 x i8] c" = getelementptr inbounds i8, ptr @L_recvbuf, i32 \00" @.str12445 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12446 = private unnamed_addr constant [6 x i8] c" %fv\00" @.str12447 = private unnamed_addr constant [9 x i8] c" = load \00" @.str12448 = private unnamed_addr constant [10 x i8] c", ptr %fa\00" @.str12449 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12450 = private unnamed_addr constant [3 x i8] c", \00" @.str12451 = private unnamed_addr constant [5 x i8] c" %fv\00" @.str12452 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18140: index out of range: \00" @.str12453 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str12454 = private unnamed_addr constant [2 x i8] c"(\00" @.str12455 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12456 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str12457 = private unnamed_addr constant [2 x i8] c"x\00" @.str12458 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12459 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str12460 = private unnamed_addr constant [20 x i8] c"fin:\0A ret void\0A}\0A\0A\00" @.str12461 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18159: index out of range: \00" @.str12462 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18159: index out of range: \00" @.str12463 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18160: index out of range: \00" @.str12464 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18161: index out of range: \00" @.str12465 = private unnamed_addr constant [58 x i8] c"@L_sendbuf = internal global [2048 x i8] zeroinitializer\0A\00" @.str12466 = private unnamed_addr constant [6 x i8] c"panel\00" @.str12467 = private unnamed_addr constant [4 x i8] c"col\00" @.str12468 = private unnamed_addr constant [4 x i8] c"row\00" @.str12469 = private unnamed_addr constant [6 x i8] c"label\00" @.str12470 = private unnamed_addr constant [7 x i8] c"button\00" @.str12471 = private unnamed_addr constant [6 x i8] c"image\00" @.str12472 = private unnamed_addr constant [7 x i8] c"spacer\00" @.str12473 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18192: index out of range: \00" @.str12474 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18192: index out of range: \00" @.str12475 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18198: index out of range: \00" @.str12476 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18201: index out of range: \00" @.str12477 = private unnamed_addr constant [5 x i8] c"font\00" @.str12478 = private unnamed_addr constant [5 x i8] c"size\00" @.str12479 = private unnamed_addr constant [3 x i8] c"fg\00" @.str12480 = private unnamed_addr constant [6 x i8] c"align\00" @.str12481 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18206: index out of range: \00" @.str12482 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18207: index out of range: \00" @.str12483 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18209: index out of range: \00" @.str12484 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18209: index out of range: \00" @.str12485 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18210: index out of range: \00" @.str12486 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18211: index out of range: \00" @.str12487 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18222: index out of range: \00" @.str12488 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18228: index out of range: \00" @.str12489 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18228: index out of range: \00" @.str12490 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18228: index out of range: \00" @.str12491 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18234: index out of range: \00" @.str12492 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18234: index out of range: \00" @.str12493 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18245: index out of range: \00" @.str12494 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18245: index out of range: \00" @.str12495 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18245: index out of range: \00" @.str12496 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18245: index out of range: \00" @.str12497 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18250: index out of range: \00" @.str12498 = private unnamed_addr constant [3 x i8] c"id\00" @.str12499 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_set(i32 \00" @.str12500 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str12501 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str12502 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12503 = private unnamed_addr constant [2 x i8] c"w\00" @.str12504 = private unnamed_addr constant [2 x i8] c"h\00" @.str12505 = private unnamed_addr constant [2 x i8] c"x\00" @.str12506 = private unnamed_addr constant [2 x i8] c"y\00" @.str12507 = private unnamed_addr constant [4 x i8] c"pad\00" @.str12508 = private unnamed_addr constant [4 x i8] c"gap\00" @.str12509 = private unnamed_addr constant [3 x i8] c"bg\00" @.str12510 = private unnamed_addr constant [3 x i8] c"fg\00" @.str12511 = private unnamed_addr constant [7 x i8] c"border\00" @.str12512 = private unnamed_addr constant [5 x i8] c"grow\00" @.str12513 = private unnamed_addr constant [5 x i8] c"font\00" @.str12514 = private unnamed_addr constant [5 x i8] c"size\00" @.str12515 = private unnamed_addr constant [6 x i8] c"inset\00" @.str12516 = private unnamed_addr constant [6 x i8] c"focus\00" @.str12517 = private unnamed_addr constant [33 x i8] c" call void @fn_rt_ui_reset(i32 \00" @.str12518 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12519 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18281: index out of range: \00" @.str12520 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18284: index out of range: \00" @.str12521 = private unnamed_addr constant [2 x i8] c"1\00" @.str12522 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18289: index out of range: \00" @.str12523 = private unnamed_addr constant [3 x i8] c"id\00" @.str12524 = private unnamed_addr constant [5 x i8] c"goto\00" @.str12525 = private unnamed_addr constant [5 x i8] c"text\00" @.str12526 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_ui_static_text(i32 \00" @.str12527 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12528 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12529 = private unnamed_addr constant [5 x i8] c"skin\00" @.str12530 = private unnamed_addr constant [6 x i8] c"image\00" @.str12531 = private unnamed_addr constant [32 x i8] c"call i32 @fn_rt_image_load(ptr \00" @.str12532 = private unnamed_addr constant [2 x i8] c")\00" @.str12533 = private unnamed_addr constant [5 x i8] c"skin\00" @.str12534 = private unnamed_addr constant [6 x i8] c"align\00" @.str12535 = private unnamed_addr constant [7 x i8] c"center\00" @.str12536 = private unnamed_addr constant [4 x i8] c"end\00" @.str12537 = private unnamed_addr constant [2 x i8] c"1\00" @.str12538 = private unnamed_addr constant [34 x i8] c"define void @ui_build() {\0Aentry:\0A\00" @.str12539 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str12540 = private unnamed_addr constant [3 x i8] c", \00" @.str12541 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18333: index out of range: \00" @.str12542 = private unnamed_addr constant [7 x i8] c" %arg_\00" @.str12543 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18333: index out of range: \00" @.str12544 = private unnamed_addr constant [5 x i8] c"void\00" @.str12545 = private unnamed_addr constant [20 x i8] c" %retval = alloca \00" @.str12546 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12547 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18352: index out of range: \00" @.str12548 = private unnamed_addr constant [9 x i8] c" store \00" @.str12549 = private unnamed_addr constant [7 x i8] c" %arg_\00" @.str12550 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12551 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12552 = private unnamed_addr constant [5 x i8] c"void\00" @.str12553 = private unnamed_addr constant [11 x i8] c"function '\00" @.str12554 = private unnamed_addr constant [41 x i8] c"' can reach its end without returning a \00" @.str12555 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str12556 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" @.str12557 = private unnamed_addr constant [5 x i8] c"void\00" @.str12558 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str12559 = private unnamed_addr constant [6 x i8] c"load \00" @.str12560 = private unnamed_addr constant [14 x i8] c", ptr %retval\00" @.str12561 = private unnamed_addr constant [7 x i8] c" ret \00" @.str12562 = private unnamed_addr constant [2 x i8] c" \00" @.str12563 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12564 = private unnamed_addr constant [8 x i8] c"define \00" @.str12565 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str12566 = private unnamed_addr constant [2 x i8] c"(\00" @.str12567 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" @.str12568 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str12569 = private unnamed_addr constant [1 x i8] c"\00" @.str12570 = private unnamed_addr constant [4 x i8] c"int\00" @.str12571 = private unnamed_addr constant [24 x i8] c" %retval = alloca i32\0A\00" @.str12572 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" @.str12573 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" @.str12574 = private unnamed_addr constant [28 x i8] c" store i32 0, ptr %retval\0A\00" @.str12575 = private unnamed_addr constant [8 x i8] c"rt_init\00" @.str12576 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00" @.str12577 = private unnamed_addr constant [31 x i8] c" call void @L_init_globals()\0A\00" @.str12578 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str12579 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" @.str12580 = private unnamed_addr constant [22 x i8] c"load i32, ptr %retval\00" @.str12581 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str12582 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12583 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" @.str12584 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str12585 = private unnamed_addr constant [5 x i8] c"void\00" @.str12586 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str12587 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str12588 = private unnamed_addr constant [23 x i8] c"define void @fn__test_\00" @.str12589 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str12590 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str12591 = private unnamed_addr constant [38 x i8] c"@L_test_fail = internal global i32 0\0A\00" @.str12592 = private unnamed_addr constant [94 x i8] c"@.fmt_test_sum = private unnamed_addr constant [28 x i8] c\22== %d passed, %d failed ==\5C0A\5C00\22\0A\00" @.str12593 = private unnamed_addr constant [91 x i8] c"@.fmt_test_none = private unnamed_addr constant [20 x i8] c\22no test named \5C22%s\5C22\5C0A\5C00\22\0A\00" @.str12594 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18432: index out of range: \00" @.str12595 = private unnamed_addr constant [86 x i8] c"@.fmt_expect = private unnamed_addr constant [22 x i8] c\22%s (got %d, want %d)\5C0A\5C00\22\0A\00" @.str12596 = private unnamed_addr constant [89 x i8] c"@.fmt_expect_fp = private unnamed_addr constant [22 x i8] c\22%s (got %g, want %g)\5C0A\5C00\22\0A\00" @.str12597 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" @.str12598 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" @.str12599 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" @.str12600 = private unnamed_addr constant [51 x i8] c" %failed = alloca i32\0A store i32 0, ptr %failed\0A\00" @.str12601 = private unnamed_addr constant [45 x i8] c" %ran = alloca i32\0A store i32 0, ptr %ran\0A\00" @.str12602 = private unnamed_addr constant [54 x i8] c" %filter = alloca ptr\0A store ptr null, ptr %filter\0A\00" @.str12603 = private unnamed_addr constant [6 x i8] c"tfilt\00" @.str12604 = private unnamed_addr constant [7 x i8] c"tbegin\00" @.str12605 = private unnamed_addr constant [22 x i8] c"icmp sgt i32 %argc, 1\00" @.str12606 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12607 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12608 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12609 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12610 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12611 = private unnamed_addr constant [36 x i8] c"getelementptr ptr, ptr %argv, i64 1\00" @.str12612 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str12613 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str12614 = private unnamed_addr constant [15 x i8] c", ptr %filter\0A\00" @.str12615 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str12616 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12617 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12618 = private unnamed_addr constant [6 x i8] c"tlist\00" @.str12619 = private unnamed_addr constant [6 x i8] c"trun0\00" @.str12620 = private unnamed_addr constant [22 x i8] c"load ptr, ptr %filter\00" @.str12621 = private unnamed_addr constant [13 x i8] c"icmp ne ptr \00" @.str12622 = private unnamed_addr constant [7 x i8] c", null\00" @.str12623 = private unnamed_addr constant [6 x i8] c"tlcmp\00" @.str12624 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12625 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12626 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12627 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12628 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12629 = private unnamed_addr constant [7 x i8] c"--list\00" @.str12630 = private unnamed_addr constant [22 x i8] c"call i32 @strcmp(ptr \00" @.str12631 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12632 = private unnamed_addr constant [2 x i8] c")\00" @.str12633 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str12634 = private unnamed_addr constant [4 x i8] c", 0\00" @.str12635 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12636 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12637 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12638 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12639 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12640 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18467: index out of range: \00" @.str12641 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str12642 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12643 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" @.str12644 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12645 = private unnamed_addr constant [24 x i8] c" call void @rt_init()\0A\00" @.str12646 = private unnamed_addr constant [31 x i8] c" call void @L_init_globals()\0A\00" @.str12647 = private unnamed_addr constant [8 x i8] c"ok - \00" @.str12648 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18477: index out of range: \00" @.str12649 = private unnamed_addr constant [8 x i8] c"FAIL - \00" @.str12650 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18478: index out of range: \00" @.str12651 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18479: index out of range: \00" @.str12652 = private unnamed_addr constant [5 x i8] c"tcmp\00" @.str12653 = private unnamed_addr constant [5 x i8] c"trun\00" @.str12654 = private unnamed_addr constant [6 x i8] c"tskip\00" @.str12655 = private unnamed_addr constant [22 x i8] c"load ptr, ptr %filter\00" @.str12656 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" @.str12657 = private unnamed_addr constant [7 x i8] c", null\00" @.str12658 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12659 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12660 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12661 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12662 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12663 = private unnamed_addr constant [22 x i8] c"call i32 @strcmp(ptr \00" @.str12664 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str12665 = private unnamed_addr constant [2 x i8] c")\00" @.str12666 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str12667 = private unnamed_addr constant [4 x i8] c", 0\00" @.str12668 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12669 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12670 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12671 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12672 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12673 = private unnamed_addr constant [19 x i8] c"load i32, ptr %ran\00" @.str12674 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str12675 = private unnamed_addr constant [4 x i8] c", 1\00" @.str12676 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12677 = private unnamed_addr constant [12 x i8] c", ptr %ran\0A\00" @.str12678 = private unnamed_addr constant [33 x i8] c" store i32 0, ptr @L_test_fail\0A\00" @.str12679 = private unnamed_addr constant [23 x i8] c" call void @fn__test_\00" @.str12680 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str12681 = private unnamed_addr constant [27 x i8] c"load i32, ptr @L_test_fail\00" @.str12682 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str12683 = private unnamed_addr constant [4 x i8] c", 0\00" @.str12684 = private unnamed_addr constant [6 x i8] c"tpass\00" @.str12685 = private unnamed_addr constant [6 x i8] c"tfail\00" @.str12686 = private unnamed_addr constant [6 x i8] c"tdone\00" @.str12687 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12688 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12689 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12690 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12691 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12692 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str12693 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12694 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str12695 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12696 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12697 = private unnamed_addr constant [22 x i8] c"load i32, ptr %failed\00" @.str12698 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str12699 = private unnamed_addr constant [4 x i8] c", 1\00" @.str12700 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str12701 = private unnamed_addr constant [15 x i8] c", ptr %failed\0A\00" @.str12702 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str12703 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12704 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str12705 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12706 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12707 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str12708 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12709 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12710 = private unnamed_addr constant [6 x i8] c"tnone\00" @.str12711 = private unnamed_addr constant [5 x i8] c"tsum\00" @.str12712 = private unnamed_addr constant [19 x i8] c"load i32, ptr %ran\00" @.str12713 = private unnamed_addr constant [22 x i8] c"load ptr, ptr %filter\00" @.str12714 = private unnamed_addr constant [13 x i8] c"icmp ne ptr \00" @.str12715 = private unnamed_addr constant [7 x i8] c", null\00" @.str12716 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str12717 = private unnamed_addr constant [4 x i8] c", 0\00" @.str12718 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str12719 = private unnamed_addr constant [3 x i8] c", \00" @.str12720 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str12721 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12722 = private unnamed_addr constant [10 x i8] c", label %\00" @.str12723 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12724 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12725 = private unnamed_addr constant [56 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_test_none, ptr \00" @.str12726 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12727 = private unnamed_addr constant [13 x i8] c" ret i32 1\0A\00" @.str12728 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str12729 = private unnamed_addr constant [22 x i8] c"load i32, ptr %failed\00" @.str12730 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str12731 = private unnamed_addr constant [3 x i8] c", \00" @.str12732 = private unnamed_addr constant [55 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_test_sum, i32 \00" @.str12733 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str12734 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12735 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str12736 = private unnamed_addr constant [4 x i8] c", 0\00" @.str12737 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str12738 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str12739 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str12740 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" @.str12741 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18537: index out of range: \00" @.str12742 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18541: index out of range: \00" @.str12743 = private unnamed_addr constant [11 x i8] c"function '\00" @.str12744 = private unnamed_addr constant [30 x i8] c"' is defined twice (first in \00" @.str12745 = private unnamed_addr constant [2 x i8] c":\00" @.str12746 = private unnamed_addr constant [2 x i8] c")\00" @.str12747 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18565: index out of range: \00" @.str12748 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18570: index out of range: \00" @.str12749 = private unnamed_addr constant [2 x i8] c"'\00" @.str12750 = private unnamed_addr constant [30 x i8] c"' is defined twice (first in \00" @.str12751 = private unnamed_addr constant [2 x i8] c":\00" @.str12752 = private unnamed_addr constant [2 x i8] c")\00" @.str12753 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18613: index out of range: \00" @.str12754 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18615: index out of range: \00" @.str12755 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18633: index out of range: \00" @.str12756 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18633: index out of range: \00" @.str12757 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18638: index out of range: \00" @.str12758 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18638: index out of range: \00" @.str12759 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00" @.str12760 = private unnamed_addr constant [23 x i8] c"declare i32 @getpid()\0A\00" @.str12761 = private unnamed_addr constant [37 x i8] c"declare i32 @fprintf(ptr, ptr, ...)\0A\00" @.str12762 = private unnamed_addr constant [68 x i8] c"@.fmt_panic = private unnamed_addr constant [6 x i8] c\22%s%s\5C0A\5C00\22\0A\00" @.str12763 = private unnamed_addr constant [37 x i8] c"declare i32 @fprintf(ptr, ptr, ...)\0A\00" @.str12764 = private unnamed_addr constant [78 x i8] c"@.fmt_bounds = private unnamed_addr constant [14 x i8] c\22%s%d, len %d\5C0A\5C00\22\0A\00" @.str12765 = private unnamed_addr constant [34 x i8] c"%Result = type { i32, i32, ptr }\0A\00" @.str12766 = private unnamed_addr constant [29 x i8] c"%Option = type { i32, i32 }\0A\00" @.str12767 = private unnamed_addr constant [33 x i8] c"@L_cov_lines = internal global [\00" @.str12768 = private unnamed_addr constant [10 x i8] c" x i32] [\00" @.str12769 = private unnamed_addr constant [3 x i8] c", \00" @.str12770 = private unnamed_addr constant [5 x i8] c"i32 \00" @.str12771 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:18694: index out of range: \00" @.str12772 = private unnamed_addr constant [3 x i8] c"]\0A\00" @.str12773 = private unnamed_addr constant [32 x i8] c"@L_cov_hits = internal global [\00" @.str12774 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str12775 = private unnamed_addr constant [32 x i8] c"@L_cov_n = internal global i32 \00" @.str12776 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12777 = private unnamed_addr constant [15 x i8] c"LUDIC_COVERAGE\00" @.str12778 = private unnamed_addr constant [10 x i8] c"ludic.cov\00" @.str12779 = private unnamed_addr constant [2 x i8] c"w\00" @.str12780 = private unnamed_addr constant [73 x i8] c"@.cov_filefmt = private unnamed_addr constant [9 x i8] c\22FILE %s\5C0A\5C00\22\0A\00" @.str12781 = private unnamed_addr constant [70 x i8] c"@.cov_rowfmt = private unnamed_addr constant [7 x i8] c\22%d %d\5C0A\5C00\22\0A\00" @.str12782 = private unnamed_addr constant [37 x i8] c"declare i32 @fprintf(ptr, ptr, ...)\0A\00" @.str12783 = private unnamed_addr constant [26 x i8] c"declare i32 @atexit(ptr)\0A\00" @.str12784 = private unnamed_addr constant [34 x i8] c"define void @cov_dump() {\0Aentry:\0A\00" @.str12785 = private unnamed_addr constant [31 x i8] c" %env = call ptr @getenv(ptr \00" @.str12786 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12787 = private unnamed_addr constant [35 x i8] c" %noenv = icmp eq ptr %env, null\0A\00" @.str12788 = private unnamed_addr constant [33 x i8] c" %path = select i1 %noenv, ptr \00" @.str12789 = private unnamed_addr constant [12 x i8] c", ptr %env\0A\00" @.str12790 = private unnamed_addr constant [39 x i8] c" %f = call ptr @fopen(ptr %path, ptr \00" @.str12791 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12792 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" @.str12793 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %done, label %write\0A\00" @.str12794 = private unnamed_addr constant [8 x i8] c"write:\0A\00" @.str12795 = private unnamed_addr constant [68 x i8] c" call i32 (ptr, ptr, ...) @fprintf(ptr %f, ptr @.cov_filefmt, ptr \00" @.str12796 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str12797 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str12798 = private unnamed_addr constant [7 x i8] c"loop:\0A\00" @.str12799 = private unnamed_addr constant [46 x i8] c" %i = phi i32 [ 0, %write ], [ %i1, %body ]\0A\00" @.str12800 = private unnamed_addr constant [26 x i8] c" %go = icmp slt i32 %i, \00" @.str12801 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12802 = private unnamed_addr constant [40 x i8] c" br i1 %go, label %body, label %close\0A\00" @.str12803 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str12804 = private unnamed_addr constant [33 x i8] c" %lp = getelementptr inbounds [\00" @.str12805 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_cov_lines, i32 0, i32 %i\0A\00" @.str12806 = private unnamed_addr constant [27 x i8] c" %lv = load i32, ptr %lp\0A\00" @.str12807 = private unnamed_addr constant [33 x i8] c" %hp = getelementptr inbounds [\00" @.str12808 = private unnamed_addr constant [41 x i8] c" x i32], ptr @L_cov_hits, i32 0, i32 %i\0A\00" @.str12809 = private unnamed_addr constant [27 x i8] c" %hv = load i32, ptr %hp\0A\00" @.str12810 = private unnamed_addr constant [81 x i8] c" call i32 (ptr, ptr, ...) @fprintf(ptr %f, ptr @.cov_rowfmt, i32 %lv, i32 %hv)\0A\00" @.str12811 = private unnamed_addr constant [23 x i8] c" %i1 = add i32 %i, 1\0A\00" @.str12812 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str12813 = private unnamed_addr constant [8 x i8] c"close:\0A\00" @.str12814 = private unnamed_addr constant [34 x i8] c" %rc = call i32 @fclose(ptr %f)\0A\00" @.str12815 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" @.str12816 = private unnamed_addr constant [21 x i8] c"done:\0A ret void\0A}\0A\0A\00" @.str12817 = private unnamed_addr constant [34 x i8] c"define void @cov_init() {\0Aentry:\0A\00" @.str12818 = private unnamed_addr constant [40 x i8] c" %r = call i32 @atexit(ptr @cov_dump)\0A\00" @.str12819 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str12820 = private unnamed_addr constant [122 x i8] c"@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @cov_init, ptr null }]\0A\00" @.str12821 = private unnamed_addr constant [3 x i8] c"wb\00" @.str12822 = private unnamed_addr constant [7 x i8] c".ludic\00" @.str12823 = private unnamed_addr constant [2 x i8] c"/\00" @.str12824 = private unnamed_addr constant [15 x i8] c"if not exist \22\00" @.str12825 = private unnamed_addr constant [10 x i8] c"\22 mkdir \22\00" @.str12826 = private unnamed_addr constant [2 x i8] c"\22\00" @.str12827 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" @.str12828 = private unnamed_addr constant [12 x i8] c"del /f /q \22\00" @.str12829 = private unnamed_addr constant [8 x i8] c"\22 2>nul\00" @.str12830 = private unnamed_addr constant [7 x i8] c"rm -f \00" @.str12831 = private unnamed_addr constant [9 x i8] c"LUDIC_CC\00" @.str12832 = private unnamed_addr constant [36 x i8] c"C:/Program Files/LLVM/bin/clang.exe\00" @.str12833 = private unnamed_addr constant [3 x i8] c"rb\00" @.str12834 = private unnamed_addr constant [2 x i8] c"\22\00" @.str12835 = private unnamed_addr constant [2 x i8] c"\22\00" @.str12836 = private unnamed_addr constant [6 x i8] c"clang\00" @.str12837 = private unnamed_addr constant [8 x i8] c"VERSION\00" @.str12838 = private unnamed_addr constant [24 x i8] c"ludic (version unknown)\00" @.str12839 = private unnamed_addr constant [7 x i8] c"ludic \00" @.str12840 = private unnamed_addr constant [1 x i8] c"\00" @.str12841 = private unnamed_addr constant [1 x i8] c"\00" @.str12842 = private unnamed_addr constant [2 x i8] c",\00" @.str12843 = private unnamed_addr constant [2 x i8] c"?\00" @.str12844 = private unnamed_addr constant [4 x i8] c"ret\00" @.str12845 = private unnamed_addr constant [1 x i8] c"\00" @.str12846 = private unnamed_addr constant [5 x i8] c"void\00" @.str12847 = private unnamed_addr constant [10 x i8] c"--version\00" @.str12848 = private unnamed_addr constant [11 x i8] c"--windowed\00" @.str12849 = private unnamed_addr constant [11 x i8] c"--headless\00" @.str12850 = private unnamed_addr constant [12 x i8] c"--emit-llvm\00" @.str12851 = private unnamed_addr constant [9 x i8] c"--unsafe\00" @.str12852 = private unnamed_addr constant [14 x i8] c"--emit-module\00" @.str12853 = private unnamed_addr constant [6 x i8] c"--fmt\00" @.str12854 = private unnamed_addr constant [13 x i8] c"--save-temps\00" @.str12855 = private unnamed_addr constant [6 x i8] c"--run\00" @.str12856 = private unnamed_addr constant [11 x i8] c"--coverage\00" @.str12857 = private unnamed_addr constant [9 x i8] c"--target\00" @.str12858 = private unnamed_addr constant [6 x i8] c"--gui\00" @.str12859 = private unnamed_addr constant [8 x i8] c"--title\00" @.str12860 = private unnamed_addr constant [7 x i8] c"--link\00" @.str12861 = private unnamed_addr constant [3 x i8] c"-o\00" @.str12862 = private unnamed_addr constant [31 x i8] c"ludicc: ignoring unknown flag \00" @.str12863 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str12864 = private unnamed_addr constant [108 x i8] c"usage: ludicc [-o out] [--windowed|--headless] [--target triple] [--emit-llvm] [--save-temps]\0A\00" @.str12865 = private unnamed_addr constant [8 x i8] c"windows\00" @.str12866 = private unnamed_addr constant [27 x i8] c"ludicc: cannot open input\0A\00" @.str12867 = private unnamed_addr constant [5 x i8] c"TEMP\00" @.str12868 = private unnamed_addr constant [2 x i8] c".\00" @.str12869 = private unnamed_addr constant [12 x i8] c"/ludic-run-\00" @.str12870 = private unnamed_addr constant [16 x i8] c"/tmp/ludic-run-\00" @.str12871 = private unnamed_addr constant [5 x i8] c".exe\00" @.str12872 = private unnamed_addr constant [5 x i8] c".exe\00" @.str12873 = private unnamed_addr constant [4 x i8] c".ll\00" @.str12874 = private unnamed_addr constant [25 x i8] c"ludicc: cannot write IR\0A\00" @.str12875 = private unnamed_addr constant [27 x i8] c" -O2 -Wno-override-module \00" @.str12876 = private unnamed_addr constant [24 x i8] c"runtime/native/win32.ll\00" @.str12877 = private unnamed_addr constant [2 x i8] c" \00" @.str12878 = private unnamed_addr constant [63 x i8] c" -luser32 -lgdi32 -lxinput -lole32 -Wl,/ignore:importeddllmain\00" @.str12879 = private unnamed_addr constant [28 x i8] c"runtime/native/audio_win.ll\00" @.str12880 = private unnamed_addr constant [2 x i8] c" \00" @.str12881 = private unnamed_addr constant [19 x i8] c" -lxaudio2 -lole32\00" @.str12882 = private unnamed_addr constant [24 x i8] c"runtime/native/cocoa.ll\00" @.str12883 = private unnamed_addr constant [2 x i8] c" \00" @.str12884 = private unnamed_addr constant [79 x i8] c" -framework Cocoa -Wl,-needed_framework,GameController -Wl,-rpath,@loader_path\00" @.str12885 = private unnamed_addr constant [24 x i8] c"runtime/native/audio.ll\00" @.str12886 = private unnamed_addr constant [2 x i8] c" \00" @.str12887 = private unnamed_addr constant [36 x i8] c" -Wl,-needed_framework,AVFoundation\00" @.str12888 = private unnamed_addr constant [2 x i8] c" \00" @.str12889 = private unnamed_addr constant [30 x i8] c"runtime/native/threads_win.ll\00" @.str12890 = private unnamed_addr constant [2 x i8] c" \00" @.str12891 = private unnamed_addr constant [26 x i8] c"runtime/native/threads.ll\00" @.str12892 = private unnamed_addr constant [2 x i8] c" \00" @.str12893 = private unnamed_addr constant [26 x i8] c"runtime/native/udp_win.ll\00" @.str12894 = private unnamed_addr constant [10 x i8] c" -lws2_32\00" @.str12895 = private unnamed_addr constant [2 x i8] c" \00" @.str12896 = private unnamed_addr constant [22 x i8] c"runtime/native/udp.ll\00" @.str12897 = private unnamed_addr constant [12 x i8] c" -ladvapi32\00" @.str12898 = private unnamed_addr constant [2 x i8] c" \00" @.str12899 = private unnamed_addr constant [30 x i8] c"runtime/native/process_win.ll\00" @.str12900 = private unnamed_addr constant [2 x i8] c" \00" @.str12901 = private unnamed_addr constant [26 x i8] c"runtime/native/process.ll\00" @.str12902 = private unnamed_addr constant [27 x i8] c"runtime/native/http_win.ll\00" @.str12903 = private unnamed_addr constant [2 x i8] c" \00" @.str12904 = private unnamed_addr constant [11 x i8] c" -lwinhttp\00" @.str12905 = private unnamed_addr constant [23 x i8] c"runtime/native/http.ll\00" @.str12906 = private unnamed_addr constant [2 x i8] c" \00" @.str12907 = private unnamed_addr constant [34 x i8] c" -Wl,-needed_framework,Foundation\00" @.str12908 = private unnamed_addr constant [25 x i8] c"runtime/native/gl_win.ll\00" @.str12909 = private unnamed_addr constant [32 x i8] c"runtime/native/gl_thunks_win.ll\00" @.str12910 = private unnamed_addr constant [31 x i8] c"runtime/native/gl_win_nowin.ll\00" @.str12911 = private unnamed_addr constant [27 x i8] c"runtime/native/win32_gl.ll\00" @.str12912 = private unnamed_addr constant [2 x i8] c" \00" @.str12913 = private unnamed_addr constant [2 x i8] c" \00" @.str12914 = private unnamed_addr constant [2 x i8] c" \00" @.str12915 = private unnamed_addr constant [29 x i8] c" -luser32 -lgdi32 -lopengl32\00" @.str12916 = private unnamed_addr constant [21 x i8] c"runtime/native/gl.ll\00" @.str12917 = private unnamed_addr constant [28 x i8] c"runtime/native/gl_thunks.ll\00" @.str12918 = private unnamed_addr constant [2 x i8] c" \00" @.str12919 = private unnamed_addr constant [2 x i8] c" \00" @.str12920 = private unnamed_addr constant [19 x i8] c" -framework OpenGL\00" @.str12921 = private unnamed_addr constant [28 x i8] c"runtime/native/vk_thunks.ll\00" @.str12922 = private unnamed_addr constant [25 x i8] c"runtime/native/vk_mac.ll\00" @.str12923 = private unnamed_addr constant [25 x i8] c"runtime/native/vk_win.ll\00" @.str12924 = private unnamed_addr constant [2 x i8] c" \00" @.str12925 = private unnamed_addr constant [2 x i8] c" \00" @.str12926 = private unnamed_addr constant [50 x i8] c" -Wl,/subsystem:windows -Wl,/entry:mainCRTStartup\00" @.str12927 = private unnamed_addr constant [3 x i8] c" \22\00" @.str12928 = private unnamed_addr constant [55 x i8] c"build/cfree/selfhost.ludic:19107: index out of range: \00" @.str12929 = private unnamed_addr constant [2 x i8] c"\22\00" @.str12930 = private unnamed_addr constant [5 x i8] c" -o \00" @.str12931 = private unnamed_addr constant [2 x i8] c"\22\00" @.str12932 = private unnamed_addr constant [2 x i8] c"\22\00" @.str12933 = private unnamed_addr constant [21 x i8] c"ludicc: link failed\0A\00" @.str12934 = private unnamed_addr constant [2 x i8] c"\22\00" @.str12935 = private unnamed_addr constant [2 x i8] c"\22\00" define i32 @lp_str_eq(ptr %a, ptr %b) { entry: br label %loop loop: %i = phi i32 [ 0, %entry ], [ %i1, %cont ] %pa = getelementptr inbounds i8, ptr %a, i32 %i %pb = getelementptr inbounds i8, ptr %b, i32 %i %ca = load i8, ptr %pa %cb = load i8, ptr %pb %df = icmp ne i8 %ca, %cb br i1 %df, label %ret0, label %chk chk: %zt = icmp eq i8 %ca, 0 br i1 %zt, label %ret1, label %cont cont: %i1 = add i32 %i, 1 br label %loop ret1: ret i32 1 ret0: ret i32 0 } define ptr @lp_str_concat(ptr %a, ptr %b) { entry: br label %al al: %ia = phi i32 [ 0, %entry ], [ %ia1, %alb ] %pa = getelementptr inbounds i8, ptr %a, i32 %ia %cca = load i8, ptr %pa %za = icmp eq i8 %cca, 0 br i1 %za, label %bl0, label %alb alb: %ia1 = add i32 %ia, 1 br label %al bl0: br label %bl bl: %ib = phi i32 [ 0, %bl0 ], [ %ib1, %blb ] %pb = getelementptr inbounds i8, ptr %b, i32 %ib %ccb = load i8, ptr %pb %zb = icmp eq i8 %ccb, 0 br i1 %zb, label %alloc, label %blb blb: %ib1 = add i32 %ib, 1 br label %bl alloc: %sum = add i32 %ia, %ib %sz = add i32 %sum, 1 %sz64 = sext i32 %sz to i64 %out = call ptr @malloc(i64 %sz64) br label %c1 c1: %i = phi i32 [ 0, %alloc ], [ %i1, %c1b ] %d1 = icmp slt i32 %i, %ia br i1 %d1, label %c1b, label %c2i c1b: %s1 = getelementptr inbounds i8, ptr %a, i32 %i %v1 = load i8, ptr %s1 %o1 = getelementptr inbounds i8, ptr %out, i32 %i store i8 %v1, ptr %o1 %i1 = add i32 %i, 1 br label %c1 c2i: br label %c2 c2: %j = phi i32 [ 0, %c2i ], [ %j1, %c2b ] %d2 = icmp slt i32 %j, %ib br i1 %d2, label %c2b, label %fin c2b: %s2 = getelementptr inbounds i8, ptr %b, i32 %j %v2 = load i8, ptr %s2 %oj = add i32 %ia, %j %o2 = getelementptr inbounds i8, ptr %out, i32 %oj store i8 %v2, ptr %o2 %j1 = add i32 %j, 1 br label %c2 fin: %pe = getelementptr inbounds i8, ptr %out, i32 %sum store i8 0, ptr %pe ret ptr %out } define ptr @lp_int_str(i32 %n0) { entry: %buf = call ptr @malloc(i64 24) %isneg = icmp slt i32 %n0, 0 %neg = sub i32 0, %n0 %n = select i1 %isneg, i32 %neg, i32 %n0 %term = getelementptr inbounds i8, ptr %buf, i32 23 store i8 0, ptr %term %iszero = icmp eq i32 %n0, 0 br i1 %iszero, label %zc, label %dl zc: %zp = getelementptr inbounds i8, ptr %buf, i32 22 store i8 48, ptr %zp ret ptr %zp dl: br label %dloop dloop: %pos = phi i32 [ 22, %dl ], [ %pos2, %dbody ] %cur = phi i32 [ %n, %dl ], [ %cur2, %dbody ] %done = icmp eq i32 %cur, 0 br i1 %done, label %sign, label %dbody dbody: %d = urem i32 %cur, 10 %ch = add i32 %d, 48 %ch8 = trunc i32 %ch to i8 %pp = getelementptr inbounds i8, ptr %buf, i32 %pos store i8 %ch8, ptr %pp %cur2 = udiv i32 %cur, 10 %pos2 = sub i32 %pos, 1 br label %dloop sign: br i1 %isneg, label %addneg, label %fin addneg: %sp = getelementptr inbounds i8, ptr %buf, i32 %pos store i8 45, ptr %sp %posn = sub i32 %pos, 1 br label %fin fin: %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ] %rpos = add i32 %fpos, 1 %res = getelementptr inbounds i8, ptr %buf, i32 %rpos ret ptr %res } define ptr @lp_long_str(i64 %n0) { entry: %buf = call ptr @malloc(i64 24) %isneg = icmp slt i64 %n0, 0 %neg = sub i64 0, %n0 %n = select i1 %isneg, i64 %neg, i64 %n0 %term = getelementptr inbounds i8, ptr %buf, i32 23 store i8 0, ptr %term %iszero = icmp eq i64 %n0, 0 br i1 %iszero, label %zc, label %dl zc: %zp = getelementptr inbounds i8, ptr %buf, i32 22 store i8 48, ptr %zp ret ptr %zp dl: br label %dloop dloop: %pos = phi i32 [ 22, %dl ], [ %pos2, %dbody ] %cur = phi i64 [ %n, %dl ], [ %cur2, %dbody ] %done = icmp eq i64 %cur, 0 br i1 %done, label %sign, label %dbody dbody: %d = urem i64 %cur, 10 %d32 = trunc i64 %d to i32 %ch = add i32 %d32, 48 %ch8 = trunc i32 %ch to i8 %pp = getelementptr inbounds i8, ptr %buf, i32 %pos store i8 %ch8, ptr %pp %cur2 = udiv i64 %cur, 10 %pos2 = sub i32 %pos, 1 br label %dloop sign: br i1 %isneg, label %addneg, label %fin addneg: %sp = getelementptr inbounds i8, ptr %buf, i32 %pos store i8 45, ptr %sp %posn = sub i32 %pos, 1 br label %fin fin: %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ] %rpos = add i32 %fpos, 1 %res = getelementptr inbounds i8, ptr %buf, i32 %rpos ret ptr %res } define ptr @lp_str_slice(ptr %s, i32 %start, i32 %end) { entry: %len = sub i32 %end, %start %sz = add i32 %len, 1 %sz64 = sext i32 %sz to i64 %out = call ptr @malloc(i64 %sz64) br label %loop loop: %i = phi i32 [ 0, %entry ], [ %i1, %body ] %d = icmp slt i32 %i, %len br i1 %d, label %body, label %fin body: %si = add i32 %start, %i %sp = getelementptr inbounds i8, ptr %s, i32 %si %c = load i8, ptr %sp %op = getelementptr inbounds i8, ptr %out, i32 %i store i8 %c, ptr %op %i1 = add i32 %i, 1 br label %loop fin: %tp = getelementptr inbounds i8, ptr %out, i32 %len store i8 0, ptr %tp ret ptr %out } declare i32 @remove(ptr) declare i32 @access(ptr, i32) declare i32 @mkdir(ptr, i32) declare i32 @rename(ptr, ptr) declare ptr @opendir(ptr) declare ptr @readdir(ptr) declare i32 @closedir(ptr) define ptr @lp_fs_dup(ptr %s, i32 %n) { entry: %nz = zext i32 %n to i64 %t = add i64 %nz, 1 %m = call ptr @malloc(i64 %t) call ptr @memcpy(ptr %m, ptr %s, i64 %nz) %end = getelementptr i8, ptr %m, i32 %n store i8 0, ptr %end ret ptr %m } define ptr @lp_fs_strdup(ptr %s) { entry: %l = call i64 @strlen(ptr %s) %li = trunc i64 %l to i32 %r = call ptr @lp_fs_dup(ptr %s, i32 %li) ret ptr %r } define i32 @lp_fs_lastslash(ptr %s) { entry: %ip = alloca i32 %rp = alloca i32 store i32 0, ptr %ip store i32 -1, ptr %rp br label %lp lp: %i = load i32, ptr %ip %p = getelementptr i8, ptr %s, i32 %i %b = load i8, ptr %p %c = zext i8 %b to i32 %z = icmp eq i32 %c, 0 br i1 %z, label %done, label %go go: %sl = icmp eq i32 %c, 47 br i1 %sl, label %set, label %nx set: store i32 %i, ptr %rp br label %nx nx: %i1 = add i32 %i, 1 store i32 %i1, ptr %ip br label %lp done: %r = load i32, ptr %rp ret i32 %r } define ptr @lp_path_join(ptr %a, ptr %b) { entry: %la64 = call i64 @strlen(ptr %a) %la = trunc i64 %la64 to i32 %lb64 = call i64 @strlen(ptr %b) %lb = trunc i64 %lb64 to i32 %b0 = load i8, ptr %b %b0i = zext i8 %b0 to i32 %babs = icmp eq i32 %b0i, 47 br i1 %babs, label %retb, label %ka retb: %rb = call ptr @lp_fs_strdup(ptr %b) ret ptr %rb ka: %aemp = icmp eq i32 %la, 0 br i1 %aemp, label %retb2, label %kb retb2: %rb2 = call ptr @lp_fs_strdup(ptr %b) ret ptr %rb2 kb: %bemp = icmp eq i32 %lb, 0 br i1 %bemp, label %reta, label %chk reta: %ra = call ptr @lp_fs_strdup(ptr %a) ret ptr %ra chk: %lam1 = sub i32 %la, 1 %pe = getelementptr i8, ptr %a, i32 %lam1 %ae = load i8, ptr %pe %aei = zext i8 %ae to i32 %ends = icmp eq i32 %aei, 47 %sep = select i1 %ends, i32 0, i32 1 %tot = add i32 %la, %lb %tot2 = add i32 %tot, %sep %tot3 = add i32 %tot2, 1 %totz = zext i32 %tot3 to i64 %m = call ptr @malloc(i64 %totz) %laz = zext i32 %la to i64 call ptr @memcpy(ptr %m, ptr %a, i64 %laz) br i1 %ends, label %nosep, label %wsep wsep: %sp = getelementptr i8, ptr %m, i32 %la store i8 47, ptr %sp br label %after nosep: br label %after after: %boff = add i32 %la, %sep %dp = getelementptr i8, ptr %m, i32 %boff %lbz = zext i32 %lb to i64 call ptr @memcpy(ptr %dp, ptr %b, i64 %lbz) %endoff = add i32 %boff, %lb %ep = getelementptr i8, ptr %m, i32 %endoff store i8 0, ptr %ep ret ptr %m } define ptr @lp_path_base(ptr %s) { entry: %ls = call i32 @lp_fs_lastslash(ptr %s) %none = icmp eq i32 %ls, -1 br i1 %none, label %whole, label %tail whole: %r = call ptr @lp_fs_strdup(ptr %s) ret ptr %r tail: %st = add i32 %ls, 1 %p = getelementptr i8, ptr %s, i32 %st %r2 = call ptr @lp_fs_strdup(ptr %p) ret ptr %r2 } define ptr @lp_path_dir(ptr %s) { entry: %ls = call i32 @lp_fs_lastslash(ptr %s) %none = icmp eq i32 %ls, -1 br i1 %none, label %dot, label %chk0 dot: %d = call ptr @lp_fs_strdup(ptr @fn_str_dot) ret ptr %d chk0: %isroot = icmp eq i32 %ls, 0 br i1 %isroot, label %root, label %cut root: %r = call ptr @lp_fs_strdup(ptr @fn_str_slash) ret ptr %r cut: %r2 = call ptr @lp_fs_dup(ptr %s, i32 %ls) ret ptr %r2 } define ptr @lp_path_ext(ptr %s) { entry: %ls = call i32 @lp_fs_lastslash(ptr %s) %bstart = add i32 %ls, 1 %dp = alloca i32 %ip = alloca i32 store i32 -1, ptr %dp store i32 %bstart, ptr %ip br label %lp lp: %i = load i32, ptr %ip %p = getelementptr i8, ptr %s, i32 %i %b = load i8, ptr %p %c = zext i8 %b to i32 %z = icmp eq i32 %c, 0 br i1 %z, label %done, label %go go: %dot = icmp eq i32 %c, 46 br i1 %dot, label %sd, label %nx sd: store i32 %i, ptr %dp br label %nx nx: %i1 = add i32 %i, 1 store i32 %i1, ptr %ip br label %lp done: %d = load i32, ptr %dp %nod = icmp eq i32 %d, -1 br i1 %nod, label %empty, label %chkpos empty: %e = call ptr @lp_fs_strdup(ptr @fn_str_empty) ret ptr %e chkpos: %atstart = icmp eq i32 %d, %bstart br i1 %atstart, label %empty2, label %take empty2: %e2 = call ptr @lp_fs_strdup(ptr @fn_str_empty) ret ptr %e2 take: %pp = getelementptr i8, ptr %s, i32 %d %r = call ptr @lp_fs_strdup(ptr %pp) ret ptr %r } define ptr @lp_path_stem(ptr %s) { entry: %base = call ptr @lp_path_base(ptr %s) %ext = call ptr @lp_path_ext(ptr %s) %bl64 = call i64 @strlen(ptr %base) %bl = trunc i64 %bl64 to i32 %el64 = call i64 @strlen(ptr %ext) %el = trunc i64 %el64 to i32 %keep = sub i32 %bl, %el %r = call ptr @lp_fs_dup(ptr %base, i32 %keep) ret ptr %r } define ptr @lp_path_norm(ptr %s) { entry: %len64 = call i64 @strlen(ptr %s) %len = trunc i64 %len64 to i32 %cap = add i32 %len, 2 %capz = zext i32 %cap to i64 %out = call ptr @malloc(i64 %capz) %stz = mul i32 %cap, 4 %stzz = zext i32 %stz to i64 %segst = call ptr @malloc(i64 %stzz) %b0 = load i8, ptr %s %b0i = zext i8 %b0 to i32 %abs = icmp eq i32 %b0i, 47 %ip = alloca i32 %op = alloca i32 %scp = alloca i32 store i32 0, ptr %ip store i32 0, ptr %scp br i1 %abs, label %ldr, label %noldr ldr: store i8 47, ptr %out store i32 1, ptr %op br label %seg noldr: store i32 0, ptr %op br label %seg seg: br label %sksl sksl: %i = load i32, ptr %ip %pp = getelementptr i8, ptr %s, i32 %i %cc = load i8, ptr %pp %cci = zext i8 %cc to i32 %issl = icmp eq i32 %cci, 47 br i1 %issl, label %adv, label %segstart adv: %i2 = add i32 %i, 1 store i32 %i2, ptr %ip br label %sksl segstart: %ss = load i32, ptr %ip br label %scan scan: %j = load i32, ptr %ip %pj = getelementptr i8, ptr %s, i32 %j %cj = load i8, ptr %pj %cji = zext i8 %cj to i32 %endc = icmp eq i32 %cji, 0 %slc = icmp eq i32 %cji, 47 %stop = or i1 %endc, %slc br i1 %stop, label %seghave, label %scanadv scanadv: %j1 = add i32 %j, 1 store i32 %j1, ptr %ip br label %scan seghave: %se = load i32, ptr %ip %slen = sub i32 %se, %ss %emptyseg = icmp eq i32 %slen, 0 br i1 %emptyseg, label %atend, label %classify classify: %is1 = icmp eq i32 %slen, 1 %c0p = getelementptr i8, ptr %s, i32 %ss %c0 = load i8, ptr %c0p %c0i = zext i8 %c0 to i32 %isdotchar = icmp eq i32 %c0i, 46 %isdot = and i1 %is1, %isdotchar br i1 %isdot, label %contseg, label %chkdd chkdd: %is2 = icmp eq i32 %slen, 2 %d0p = getelementptr i8, ptr %s, i32 %ss %d0 = load i8, ptr %d0p %d0i = zext i8 %d0 to i32 %d1o = add i32 %ss, 1 %d1p = getelementptr i8, ptr %s, i32 %d1o %d1 = load i8, ptr %d1p %d1i = zext i8 %d1 to i32 %dd0 = icmp eq i32 %d0i, 46 %dd1 = icmp eq i32 %d1i, 46 %ddx = and i1 %dd0, %dd1 %isdd = and i1 %is2, %ddx br i1 %isdd, label %dotdot, label %keepseg dotdot: %sc = load i32, ptr %scp %has = icmp sgt i32 %sc, 0 br i1 %has, label %pop, label %chkrel pop: %sc1 = sub i32 %sc, 1 %stp = getelementptr i32, ptr %segst, i32 %sc1 %newop = load i32, ptr %stp store i32 %newop, ptr %op store i32 %sc1, ptr %scp br label %contseg chkrel: br i1 %abs, label %contseg, label %keepseg keepseg: %sc2 = load i32, ptr %scp %o0 = load i32, ptr %op %stp2 = getelementptr i32, ptr %segst, i32 %sc2 store i32 %o0, ptr %stp2 %sc2n = add i32 %sc2, 1 store i32 %sc2n, ptr %scp %cpp = alloca i32 store i32 %ss, ptr %cpp br label %cpy cpy: %k = load i32, ptr %cpp %klt = icmp slt i32 %k, %se br i1 %klt, label %cpyb, label %cpysl cpyb: %skp = getelementptr i8, ptr %s, i32 %k %sk = load i8, ptr %skp %oo = load i32, ptr %op %dkp = getelementptr i8, ptr %out, i32 %oo store i8 %sk, ptr %dkp %oo1 = add i32 %oo, 1 store i32 %oo1, ptr %op %k1 = add i32 %k, 1 store i32 %k1, ptr %cpp br label %cpy cpysl: %oc = load i32, ptr %op %scp3 = getelementptr i8, ptr %out, i32 %oc store i8 47, ptr %scp3 %oc1 = add i32 %oc, 1 store i32 %oc1, ptr %op br label %contseg contseg: %ci = load i32, ptr %ip %cip = getelementptr i8, ptr %s, i32 %ci %cic = load i8, ptr %cip %cici = zext i8 %cic to i32 %atz = icmp eq i32 %cici, 0 br i1 %atz, label %finish, label %seg atend: br label %finish finish: %fo = load i32, ptr %op %gt1 = icmp sgt i32 %fo, 1 br i1 %gt1, label %trimchk, label %fdefault trimchk: %lasto = sub i32 %fo, 1 %lop = getelementptr i8, ptr %out, i32 %lasto %lc = load i8, ptr %lop %lci = zext i8 %lc to i32 %istsl = icmp eq i32 %lci, 47 br i1 %istsl, label %trim, label %term trim: store i32 %lasto, ptr %op br label %term fdefault: br label %term term: %eo = load i32, ptr %op %ez = icmp eq i32 %eo, 0 br i1 %ez, label %emptyout, label %putnul emptyout: store i8 46, ptr %out %e1 = getelementptr i8, ptr %out, i32 1 store i8 0, ptr %e1 ret ptr %out putnul: %ep = getelementptr i8, ptr %out, i32 %eo store i8 0, ptr %ep ret ptr %out } define i32 @lp_fs_exists(ptr %p) { entry: %ip = call i32 @lp_pak_has(ptr %p) %inpak = icmp ne i32 %ip, 0 br i1 %inpak, label %yes, label %disk yes: ret i32 1 disk: %r = call i32 @access(ptr %p, i32 0) %ok = icmp eq i32 %r, 0 %z = zext i1 %ok to i32 ret i32 %z } define i32 @lp_fs_is_dir(ptr %p) { entry: %d = call ptr @opendir(ptr %p) %nz = icmp ne ptr %d, null br i1 %nz, label %yes, label %no yes: call i32 @closedir(ptr %d) ret i32 1 no: ret i32 0 } define i32 @lp_fs_size(ptr %p) { entry: %pn = call i32 @lp_pak_bytes(ptr %p) %inpak = icmp sge i32 %pn, 0 br i1 %inpak, label %packed, label %disk packed: ret i32 %pn disk: %f = call ptr @fopen(ptr %p, ptr @fn_str_rb) %nz = icmp ne ptr %f, null br i1 %nz, label %ok, label %bad bad: ret i32 -1 ok: call i32 @fseek(ptr %f, i64 0, i32 2) %n = call i64 @ftell(ptr %f) call i32 @fclose(ptr %f) %ni = trunc i64 %n to i32 ret i32 %ni } define ptr @lp_fs_readall(ptr %p, ptr %lenout) { entry: store i32 0, ptr %lenout %f = call ptr @lp_pak_open(ptr %p, ptr @fn_str_rb) %nz = icmp ne ptr %f, null br i1 %nz, label %ok, label %bad bad: ret ptr null ok: call i32 @fseek(ptr %f, i64 0, i32 2) %n64 = call i64 @ftell(ptr %f) call i32 @fseek(ptr %f, i64 0, i32 0) %n = trunc i64 %n64 to i32 %cap = add i64 %n64, 1 %m = call ptr @malloc(i64 %cap) %rd = call i64 @fread(ptr %m, i64 1, i64 %n64, ptr %f) call i32 @fclose(ptr %f) %rdi = trunc i64 %rd to i32 %endp = getelementptr i8, ptr %m, i32 %rdi store i8 0, ptr %endp store i32 %rdi, ptr %lenout ret ptr %m } define ptr @lp_fs_read_text(ptr %p) { entry: %lp = alloca i32 %r = call ptr @lp_fs_readall(ptr %p, ptr %lp) ret ptr %r } define i32 @lp_fs_write_text(ptr %p, ptr %s) { entry: %tmp = call ptr @lp_path_join_ext(ptr %p, ptr @fn_str_dottmp) %f = call ptr @fopen(ptr %tmp, ptr @fn_str_wb) %nz = icmp ne ptr %f, null br i1 %nz, label %ok, label %bad bad: ret i32 0 ok: %n = call i64 @strlen(ptr %s) %w = call i64 @fwrite(ptr %s, i64 1, i64 %n, ptr %f) call i32 @fclose(ptr %f) %rr = call i32 @rename(ptr %tmp, ptr %p) %ok2 = icmp eq i32 %rr, 0 %z = zext i1 %ok2 to i32 ret i32 %z } define ptr @lp_path_join_ext(ptr %a, ptr %b) { entry: %la = call i64 @strlen(ptr %a) %lb = call i64 @strlen(ptr %b) %sum = add i64 %la, %lb %tot = add i64 %sum, 1 %m = call ptr @malloc(i64 %tot) call ptr @memcpy(ptr %m, ptr %a, i64 %la) %m2 = getelementptr i8, ptr %m, i64 %la call ptr @memcpy(ptr %m2, ptr %b, i64 %lb) %ep = getelementptr i8, ptr %m, i64 %sum store i8 0, ptr %ep ret ptr %m } define i32 @lp_fs_append_text(ptr %p, ptr %s) { entry: %f = call ptr @fopen(ptr %p, ptr @fn_str_ab) %nz = icmp ne ptr %f, null br i1 %nz, label %ok, label %bad bad: ret i32 0 ok: %n = call i64 @strlen(ptr %s) call i64 @fwrite(ptr %s, i64 1, i64 %n, ptr %f) call i32 @fclose(ptr %f) ret i32 1 } define i32 @lp_fs_remove(ptr %p) { entry: %r = call i32 @remove(ptr %p) %ok = icmp eq i32 %r, 0 %z = zext i1 %ok to i32 ret i32 %z } define i32 @lp_fs_copy(ptr %src, ptr %dst) { entry: %lp = alloca i32 %buf = call ptr @lp_fs_readall(ptr %src, ptr %lp) %nz = icmp ne ptr %buf, null br i1 %nz, label %ok, label %bad bad: ret i32 0 ok: %tmp = call ptr @lp_path_join_ext(ptr %dst, ptr @fn_str_dottmp) %f = call ptr @fopen(ptr %tmp, ptr @fn_str_wb) %fnz = icmp ne ptr %f, null br i1 %fnz, label %w, label %bad w: %n = load i32, ptr %lp %nz64 = zext i32 %n to i64 call i64 @fwrite(ptr %buf, i64 1, i64 %nz64, ptr %f) call i32 @fclose(ptr %f) %rr = call i32 @rename(ptr %tmp, ptr %dst) %ok2 = icmp eq i32 %rr, 0 %z = zext i1 %ok2 to i32 ret i32 %z } define i32 @lp_fs_mkdir(ptr %p) { entry: %dup = call ptr @lp_fs_strdup(ptr %p) %ip = alloca i32 store i32 1, ptr %ip br label %lp lp: %i = load i32, ptr %ip %pp = getelementptr i8, ptr %dup, i32 %i %c = load i8, ptr %pp %ci = zext i8 %c to i32 %z = icmp eq i32 %ci, 0 br i1 %z, label %fin, label %go go: %sl = icmp eq i32 %ci, 47 br i1 %sl, label %cut, label %nx cut: store i8 0, ptr %pp call i32 @mkdir(ptr %dup, i32 493) store i8 47, ptr %pp br label %nx nx: %i1 = add i32 %i, 1 store i32 %i1, ptr %ip br label %lp fin: call i32 @mkdir(ptr %dup, i32 493) %r = call i32 @lp_fs_is_dir(ptr %p) ret i32 %r } define ptr @lp_fs_list(ptr %path) { entry: %h = call ptr @malloc(i64 16) %d0 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 0 %d1 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 1 %d2 = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 2 %datap = alloca ptr %cntp = alloca i32 %capp = alloca i32 %init = call ptr @malloc(i64 128) store ptr %init, ptr %datap store i32 0, ptr %cntp store i32 16, ptr %capp %dir = call ptr @opendir(ptr %path) %dnz = icmp ne ptr %dir, null br i1 %dnz, label %rd, label %empty rd: %de = call ptr @readdir(ptr %dir) %denz = icmp ne ptr %de, null br i1 %denz, label %ent, label %closed ent: %namep = getelementptr i8, ptr %de, i32 21 %n0 = load i8, ptr %namep %n0i = zext i8 %n0 to i32 %isdot0 = icmp eq i32 %n0i, 46 br i1 %isdot0, label %chkdots, label %keep chkdots: %n1p = getelementptr i8, ptr %namep, i32 1 %n1 = load i8, ptr %n1p %n1i = zext i8 %n1 to i32 %n1z = icmp eq i32 %n1i, 0 br i1 %n1z, label %rd, label %chkdd chkdd: %isdot1 = icmp eq i32 %n1i, 46 br i1 %isdot1, label %chkdd2, label %keep chkdd2: %n2p = getelementptr i8, ptr %namep, i32 2 %n2 = load i8, ptr %n2p %n2i = zext i8 %n2 to i32 %n2z = icmp eq i32 %n2i, 0 br i1 %n2z, label %rd, label %keep keep: %nm = call ptr @lp_fs_strdup(ptr %namep) %cnt = load i32, ptr %cntp %cap = load i32, ptr %capp %full = icmp sge i32 %cnt, %cap br i1 %full, label %grow, label %put grow: %nc = mul i32 %cap, 2 store i32 %nc, ptr %capp %ncz = zext i32 %nc to i64 %nb = mul i64 %ncz, 8 %old = load ptr, ptr %datap %new = call ptr @realloc(ptr %old, i64 %nb) store ptr %new, ptr %datap br label %put put: %data = load ptr, ptr %datap %cnt2 = load i32, ptr %cntp %slot = getelementptr ptr, ptr %data, i32 %cnt2 store ptr %nm, ptr %slot %cnt3 = add i32 %cnt2, 1 store i32 %cnt3, ptr %cntp br label %rd closed: call i32 @closedir(ptr %dir) br label %sortit empty: br label %sortit sortit: %fdata = load ptr, ptr %datap %fcnt = load i32, ptr %cntp %aip = alloca i32 store i32 1, ptr %aip br label %so so: %ai = load i32, ptr %aip %ailt = icmp slt i32 %ai, %fcnt br i1 %ailt, label %sob, label %sod sob: %kp = getelementptr ptr, ptr %fdata, i32 %ai %key = load ptr, ptr %kp %jp = alloca i32 %aim1 = sub i32 %ai, 1 store i32 %aim1, ptr %jp br label %si si: %jj = load i32, ptr %jp %jge = icmp sge i32 %jj, 0 br i1 %jge, label %sic, label %sins sic: %ejp = getelementptr ptr, ptr %fdata, i32 %jj %ej = load ptr, ptr %ejp %cmp = call i32 @strcmp(ptr %ej, ptr %key) %gt = icmp sgt i32 %cmp, 0 br i1 %gt, label %shift, label %sins shift: %j1 = add i32 %jj, 1 %dp1 = getelementptr ptr, ptr %fdata, i32 %j1 store ptr %ej, ptr %dp1 %jm = sub i32 %jj, 1 store i32 %jm, ptr %jp br label %si sins: %jf = load i32, ptr %jp %jf1 = add i32 %jf, 1 %insp = getelementptr ptr, ptr %fdata, i32 %jf1 store ptr %key, ptr %insp %ai1 = add i32 %ai, 1 store i32 %ai1, ptr %aip br label %so sod: store ptr %fdata, ptr %d0 store i32 %fcnt, ptr %d1 store i32 %fcnt, ptr %d2 ret ptr %h } @.str12936 = private unnamed_addr constant [4 x i8] c"png\00" @.str12937 = private unnamed_addr constant [10 x i8] c"image/png\00" @.str12938 = private unnamed_addr constant [4 x i8] c"jpg\00" @.str12939 = private unnamed_addr constant [11 x i8] c"image/jpeg\00" @.str12940 = private unnamed_addr constant [5 x i8] c"jpeg\00" @.str12941 = private unnamed_addr constant [11 x i8] c"image/jpeg\00" @.str12942 = private unnamed_addr constant [4 x i8] c"gif\00" @.str12943 = private unnamed_addr constant [10 x i8] c"image/gif\00" @.str12944 = private unnamed_addr constant [4 x i8] c"bmp\00" @.str12945 = private unnamed_addr constant [10 x i8] c"image/bmp\00" @.str12946 = private unnamed_addr constant [5 x i8] c"webp\00" @.str12947 = private unnamed_addr constant [11 x i8] c"image/webp\00" @.str12948 = private unnamed_addr constant [4 x i8] c"svg\00" @.str12949 = private unnamed_addr constant [14 x i8] c"image/svg+xml\00" @.str12950 = private unnamed_addr constant [4 x i8] c"txt\00" @.str12951 = private unnamed_addr constant [11 x i8] c"text/plain\00" @.str12952 = private unnamed_addr constant [3 x i8] c"md\00" @.str12953 = private unnamed_addr constant [14 x i8] c"text/markdown\00" @.str12954 = private unnamed_addr constant [4 x i8] c"csv\00" @.str12955 = private unnamed_addr constant [9 x i8] c"text/csv\00" @.str12956 = private unnamed_addr constant [5 x i8] c"html\00" @.str12957 = private unnamed_addr constant [10 x i8] c"text/html\00" @.str12958 = private unnamed_addr constant [4 x i8] c"htm\00" @.str12959 = private unnamed_addr constant [10 x i8] c"text/html\00" @.str12960 = private unnamed_addr constant [4 x i8] c"css\00" @.str12961 = private unnamed_addr constant [9 x i8] c"text/css\00" @.str12962 = private unnamed_addr constant [3 x i8] c"js\00" @.str12963 = private unnamed_addr constant [16 x i8] c"text/javascript\00" @.str12964 = private unnamed_addr constant [5 x i8] c"json\00" @.str12965 = private unnamed_addr constant [17 x i8] c"application/json\00" @.str12966 = private unnamed_addr constant [4 x i8] c"xml\00" @.str12967 = private unnamed_addr constant [16 x i8] c"application/xml\00" @.str12968 = private unnamed_addr constant [4 x i8] c"zip\00" @.str12969 = private unnamed_addr constant [16 x i8] c"application/zip\00" @.str12970 = private unnamed_addr constant [4 x i8] c"pdf\00" @.str12971 = private unnamed_addr constant [16 x i8] c"application/pdf\00" @.str12972 = private unnamed_addr constant [4 x i8] c"wav\00" @.str12973 = private unnamed_addr constant [10 x i8] c"audio/wav\00" @.str12974 = private unnamed_addr constant [4 x i8] c"ogg\00" @.str12975 = private unnamed_addr constant [10 x i8] c"audio/ogg\00" @.str12976 = private unnamed_addr constant [4 x i8] c"mp3\00" @.str12977 = private unnamed_addr constant [11 x i8] c"audio/mpeg\00" @.str12978 = private unnamed_addr constant [4 x i8] c"ttf\00" @.str12979 = private unnamed_addr constant [9 x i8] c"font/ttf\00" @.str12980 = private unnamed_addr constant [4 x i8] c"otf\00" @.str12981 = private unnamed_addr constant [9 x i8] c"font/otf\00" @.str12982 = private unnamed_addr constant [6 x i8] c"ludic\00" @.str12983 = private unnamed_addr constant [13 x i8] c"text/x-ludic\00" @.str12984 = private unnamed_addr constant [25 x i8] c"application/octet-stream\00" @mime_tbl = private unnamed_addr constant [24 x { ptr, ptr }] [{ ptr, ptr } { ptr @.str12936, ptr @.str12937 }, { ptr, ptr } { ptr @.str12938, ptr @.str12939 }, { ptr, ptr } { ptr @.str12940, ptr @.str12941 }, { ptr, ptr } { ptr @.str12942, ptr @.str12943 }, { ptr, ptr } { ptr @.str12944, ptr @.str12945 }, { ptr, ptr } { ptr @.str12946, ptr @.str12947 }, { ptr, ptr } { ptr @.str12948, ptr @.str12949 }, { ptr, ptr } { ptr @.str12950, ptr @.str12951 }, { ptr, ptr } { ptr @.str12952, ptr @.str12953 }, { ptr, ptr } { ptr @.str12954, ptr @.str12955 }, { ptr, ptr } { ptr @.str12956, ptr @.str12957 }, { ptr, ptr } { ptr @.str12958, ptr @.str12959 }, { ptr, ptr } { ptr @.str12960, ptr @.str12961 }, { ptr, ptr } { ptr @.str12962, ptr @.str12963 }, { ptr, ptr } { ptr @.str12964, ptr @.str12965 }, { ptr, ptr } { ptr @.str12966, ptr @.str12967 }, { ptr, ptr } { ptr @.str12968, ptr @.str12969 }, { ptr, ptr } { ptr @.str12970, ptr @.str12971 }, { ptr, ptr } { ptr @.str12972, ptr @.str12973 }, { ptr, ptr } { ptr @.str12974, ptr @.str12975 }, { ptr, ptr } { ptr @.str12976, ptr @.str12977 }, { ptr, ptr } { ptr @.str12978, ptr @.str12979 }, { ptr, ptr } { ptr @.str12980, ptr @.str12981 }, { ptr, ptr } { ptr @.str12982, ptr @.str12983 }] define ptr @lp_mime_of(ptr %path) { entry: %ext = call ptr @lp_path_ext(ptr %path) %lc = call ptr @lp_mime_lc(ptr %ext) %ip = alloca i32 store i32 0, ptr %ip br label %lp lp: %i = load i32, ptr %ip %lt = icmp slt i32 %i, 24 br i1 %lt, label %body, label %def body: %kp = getelementptr [24 x { ptr, ptr }], ptr @mime_tbl, i32 0, i32 %i, i32 0 %k = load ptr, ptr %kp %c = call i32 @strcmp(ptr %lc, ptr %k) %eq = icmp eq i32 %c, 0 br i1 %eq, label %hit, label %nx hit: %vp = getelementptr [24 x { ptr, ptr }], ptr @mime_tbl, i32 0, i32 %i, i32 1 %v = load ptr, ptr %vp %r = call ptr @lp_fs_strdup(ptr %v) ret ptr %r nx: %i1 = add i32 %i, 1 store i32 %i1, ptr %ip br label %lp def: %d = call ptr @lp_fs_strdup(ptr @.str12984) ret ptr %d } define ptr @lp_mime_lc(ptr %s) { entry: %l64 = call i64 @strlen(ptr %s) %l = trunc i64 %l64 to i32 %cap = add i64 %l64, 1 %out = call ptr @malloc(i64 %cap) %b0 = load i8, ptr %s %b0i = zext i8 %b0 to i32 %isdot = icmp eq i32 %b0i, 46 %start = select i1 %isdot, i32 1, i32 0 %ip = alloca i32 %op = alloca i32 store i32 %start, ptr %ip store i32 0, ptr %op br label %lp lp: %i = load i32, ptr %ip %pp = getelementptr i8, ptr %s, i32 %i %c = load i8, ptr %pp %ci = zext i8 %c to i32 %z = icmp eq i32 %ci, 0 br i1 %z, label %done, label %go go: %ua = icmp uge i32 %ci, 65 %ub = icmp ule i32 %ci, 90 %up = and i1 %ua, %ub %lo = add i32 %ci, 32 %m = select i1 %up, i32 %lo, i32 %ci %mt = trunc i32 %m to i8 %o = load i32, ptr %op %dp = getelementptr i8, ptr %out, i32 %o store i8 %mt, ptr %dp %o1 = add i32 %o, 1 store i32 %o1, ptr %op %i1 = add i32 %i, 1 store i32 %i1, ptr %ip br label %lp done: %fo = load i32, ptr %op %ep = getelementptr i8, ptr %out, i32 %fo store i8 0, ptr %ep ret ptr %out } define ptr @lp_mime_sniff(ptr %path) { entry: %f = call ptr @fopen(ptr %path, ptr @fn_str_rb) %nz = icmp ne ptr %f, null br i1 %nz, label %ok, label %fallback ok: %buf = call ptr @malloc(i64 16) %rd = call i64 @fread(ptr %buf, i64 1, i64 8, ptr %f) call i32 @fclose(ptr %f) %rdi = trunc i64 %rd to i32 %has4 = icmp sge i32 %rdi, 4 br i1 %has4, label %chk, label %fallback chk: %b0p = getelementptr i8, ptr %buf, i32 0 %b0 = load i8, ptr %b0p %b0i = zext i8 %b0 to i32 %b1p = getelementptr i8, ptr %buf, i32 1 %b1 = load i8, ptr %b1p %b1i = zext i8 %b1 to i32 %b2p = getelementptr i8, ptr %buf, i32 2 %b2 = load i8, ptr %b2p %b2i = zext i8 %b2 to i32 %b3p = getelementptr i8, ptr %buf, i32 3 %b3 = load i8, ptr %b3p %b3i = zext i8 %b3 to i32 %p0 = icmp eq i32 %b0i, 137 %p1 = icmp eq i32 %b1i, 80 %p2 = icmp eq i32 %b2i, 78 %p3 = icmp eq i32 %b3i, 71 %pa = and i1 %p0, %p1 %pb = and i1 %pa, %p2 %pc = and i1 %pb, %p3 br i1 %pc, label %png, label %cj png: %rpng = call ptr @lp_fs_strdup(ptr @fn_sig_png) ret ptr %rpng cj: %j0 = icmp eq i32 %b0i, 255 %j1 = icmp eq i32 %b1i, 216 %j2 = icmp eq i32 %b2i, 255 %ja = and i1 %j0, %j1 %jb = and i1 %ja, %j2 br i1 %jb, label %jpg, label %cg jpg: %rjpg = call ptr @lp_fs_strdup(ptr @fn_sig_jpg) ret ptr %rjpg cg: %g0 = icmp eq i32 %b0i, 71 %g1 = icmp eq i32 %b1i, 73 %g2 = icmp eq i32 %b2i, 70 %ga = and i1 %g0, %g1 %gb = and i1 %ga, %g2 br i1 %gb, label %gif, label %cp gif: %rgif = call ptr @lp_fs_strdup(ptr @fn_sig_gif) ret ptr %rgif cp: %q0 = icmp eq i32 %b0i, 37 %q1 = icmp eq i32 %b1i, 80 %q2 = icmp eq i32 %b2i, 68 %q3 = icmp eq i32 %b3i, 70 %qa = and i1 %q0, %q1 %qb = and i1 %qa, %q2 %qc = and i1 %qb, %q3 br i1 %qc, label %pdf, label %fallback pdf: %rpdf = call ptr @lp_fs_strdup(ptr @fn_sig_pdf) ret ptr %rpdf fallback: %r = call ptr @lp_mime_of(ptr %path) ret ptr %r } @fn_str_rb = private unnamed_addr constant [3 x i8] c"rb\00" @fn_str_wb = private unnamed_addr constant [3 x i8] c"wb\00" @fn_str_ab = private unnamed_addr constant [3 x i8] c"ab\00" @fn_str_dot = private unnamed_addr constant [2 x i8] c".\00" @fn_str_slash = private unnamed_addr constant [2 x i8] c"/\00" @fn_str_empty = private unnamed_addr constant [1 x i8] c"\00" @fn_str_dottmp = private unnamed_addr constant [5 x i8] c".tmp\00" @fn_sig_png = private unnamed_addr constant [10 x i8] c"image/png\00" @fn_sig_jpg = private unnamed_addr constant [11 x i8] c"image/jpeg\00" @fn_sig_gif = private unnamed_addr constant [10 x i8] c"image/gif\00" @fn_sig_pdf = private unnamed_addr constant [16 x i8] c"application/pdf\00" declare i32 @open(ptr, i32, ...) declare i32 @close(i32) declare i64 @lseek(i32, i64, i32) declare ptr @mmap(ptr, i64, i32, i32, i32, i64) declare ptr @fmemopen(ptr, i64, ptr) declare i32 @chdir(ptr) declare i32 @_NSGetExecutablePath(ptr, ptr) @.pak_rb = private unnamed_addr constant [3 x i8] c"rb\00" @.pak_idx = private unnamed_addr constant [12 x i8] c"packs.index\00" @.pak_res = private unnamed_addr constant [13 x i8] c"../Resources\00" @.pak_appsup= private unnamed_addr constant [28 x i8] c"Library/Application Support\00" @.pak_home = private unnamed_addr constant [5 x i8] c"HOME\00" @L_pak_base = internal global [8 x ptr] zeroinitializer @L_pak_n = internal global i32 0 @L_pak_splash = internal global ptr null @L_pak_splashbg = internal global i32 0 define i32 @lp_pak_mount(ptr %path) { entry: %n = load i32, ptr @L_pak_n %full = icmp sge i32 %n, 8 br i1 %full, label %no, label %op op: %fd = call i32 (ptr, i32, ...) @open(ptr %path, i32 0) %bad = icmp slt i32 %fd, 0 br i1 %bad, label %no, label %sz sz: %end = call i64 @lseek(i32 %fd, i64 0, i32 2) %small = icmp slt i64 %end, 32 br i1 %small, label %clo, label %mp mp: %base = call ptr @mmap(ptr null, i64 %end, i32 1, i32 2, i32 %fd, i64 0) %mbad = icmp eq ptr %base, inttoptr (i64 -1 to ptr) br i1 %mbad, label %clo, label %chk chk: %m = load i32, ptr %base %okm = icmp eq i32 %m, 1262571596 br i1 %okm, label %keep, label %clo keep: %slot = getelementptr [8 x ptr], ptr @L_pak_base, i32 0, i32 %n store ptr %base, ptr %slot %n1 = add i32 %n, 1 store i32 %n1, ptr @L_pak_n %c1 = call i32 @close(i32 %fd) ret i32 1 clo: %c2 = call i32 @close(i32 %fd) ret i32 0 no: ret i32 0 } define ptr @lp_pak_norm(ptr %p) { entry: %c0 = load i8, ptr %p %c0i = zext i8 %c0 to i32 %isdot = icmp eq i32 %c0i, 46 br i1 %isdot, label %chk2, label %same chk2: %p1 = getelementptr i8, ptr %p, i32 1 %c1 = load i8, ptr %p1 %c1i = zext i8 %c1 to i32 %issl = icmp eq i32 %c1i, 47 br i1 %issl, label %skip, label %same skip: %p2 = getelementptr i8, ptr %p, i32 2 %r = call ptr @lp_pak_norm(ptr %p2) ret ptr %r same: ret ptr %p } define ptr @lp_pak_find1(ptr %base, ptr %name, ptr %outlen) { entry: %cntp = getelementptr i8, ptr %base, i32 8 %cnt = load i32, ptr %cntp %lop = alloca i32 %hip = alloca i32 store i32 0, ptr %lop %h0 = sub i32 %cnt, 1 store i32 %h0, ptr %hip br label %loop loop: %lo = load i32, ptr %lop %hi = load i32, ptr %hip %fin = icmp sgt i32 %lo, %hi br i1 %fin, label %miss, label %mid mid: %sum = add i32 %lo, %hi %m = sdiv i32 %sum, 2 %eo = mul i32 %m, 16 %eo2 = add i32 %eo, 32 %ep = getelementptr i8, ptr %base, i32 %eo2 %noff = load i32, ptr %ep %nptr = getelementptr i8, ptr %base, i32 %noff %c = call i32 @strcmp(ptr %nptr, ptr %name) %iseq = icmp eq i32 %c, 0 br i1 %iseq, label %hit, label %cmp cmp: %lt = icmp slt i32 %c, 0 br i1 %lt, label %goup, label %godn goup: %m1 = add i32 %m, 1 store i32 %m1, ptr %lop br label %loop godn: %m2 = sub i32 %m, 1 store i32 %m2, ptr %hip br label %loop hit: %dop = getelementptr i8, ptr %ep, i32 4 %doff = load i32, ptr %dop %dlp = getelementptr i8, ptr %ep, i32 8 %dlen = load i32, ptr %dlp store i32 %dlen, ptr %outlen %dp = getelementptr i8, ptr %base, i32 %doff ret ptr %dp miss: ret ptr null } define ptr @lp_pak_find(ptr %path, ptr %outlen) { entry: %p = call ptr @lp_pak_norm(ptr %path) %np = load i32, ptr @L_pak_n %ip = alloca i32 %i0 = sub i32 %np, 1 store i32 %i0, ptr %ip br label %loop loop: %i = load i32, ptr %ip %done = icmp slt i32 %i, 0 br i1 %done, label %miss, label %body body: %slot = getelementptr [8 x ptr], ptr @L_pak_base, i32 0, i32 %i %base = load ptr, ptr %slot %r = call ptr @lp_pak_find1(ptr %base, ptr %p, ptr %outlen) %hit = icmp ne ptr %r, null br i1 %hit, label %got, label %next got: ret ptr %r next: %i1 = sub i32 %i, 1 store i32 %i1, ptr %ip br label %loop miss: ret ptr null } define i32 @lp_pak_has(ptr %path) { entry: %lp = alloca i32 store i32 0, ptr %lp %b = call ptr @lp_pak_find(ptr %path, ptr %lp) %hit = icmp ne ptr %b, null %r = select i1 %hit, i32 1, i32 0 ret i32 %r } define i32 @lp_pak_bytes(ptr %path) { entry: %lp = alloca i32 store i32 0, ptr %lp %b = call ptr @lp_pak_find(ptr %path, ptr %lp) %hit = icmp ne ptr %b, null br i1 %hit, label %yes, label %no yes: %l = load i32, ptr %lp ret i32 %l no: ret i32 -1 } define ptr @lp_pak_open(ptr %path, ptr %mode) { entry: %m0 = load i8, ptr %mode %m0i = zext i8 %m0 to i32 %isr = icmp eq i32 %m0i, 114 br i1 %isr, label %try, label %real try: %lp = alloca i32 store i32 0, ptr %lp %blob = call ptr @lp_pak_find(ptr %path, ptr %lp) %hit = icmp ne ptr %blob, null br i1 %hit, label %mem, label %real mem: %len = load i32, ptr %lp %lz = zext i32 %len to i64 %f = call ptr @fmemopen(ptr %blob, i64 %lz, ptr @.pak_rb) ret ptr %f real: %rf = call ptr @fopen(ptr %path, ptr %mode) ret ptr %rf } define ptr @lp_pak_slurp(ptr %path) { entry: %f = call ptr @fopen(ptr %path, ptr @.pak_rb) %bad = icmp eq ptr %f, null br i1 %bad, label %no, label %go go: %s1 = call i32 @fseek(ptr %f, i64 0, i32 2) %n64 = call i64 @ftell(ptr %f) %s2 = call i32 @fseek(ptr %f, i64 0, i32 0) %cap = add i64 %n64, 1 %buf = call ptr @malloc(i64 %cap) %rd = call i64 @fread(ptr %buf, i64 1, i64 %n64, ptr %f) %e = getelementptr i8, ptr %buf, i64 %rd store i8 0, ptr %e %c = call i32 @fclose(ptr %f) ret ptr %buf no: ret ptr null } define i32 @lp_pak_boot_dir(ptr %dir) { entry: %ix = call ptr @lp_path_join(ptr %dir, ptr @.pak_idx) %txt = call ptr @lp_pak_slurp(ptr %ix) %none = icmp eq ptr %txt, null br i1 %none, label %no, label %scan scan: %ip = alloca i32 %got = alloca i32 store i32 0, ptr %ip store i32 0, ptr %got %jp = alloca i32 br label %line line: %i = load i32, ptr %ip %lp = getelementptr i8, ptr %txt, i32 %i %c0 = load i8, ptr %lp %c0i = zext i8 %c0 to i32 %atend = icmp eq i32 %c0i, 0 br i1 %atend, label %fin, label %eol eol: store i32 %i, ptr %jp br label %escan escan: %j = load i32, ptr %jp %jq = getelementptr i8, ptr %txt, i32 %j %cj = load i8, ptr %jq %cji = zext i8 %cj to i32 %isnl = icmp eq i32 %cji, 10 %isz = icmp eq i32 %cji, 0 %stop = or i1 %isnl, %isz br i1 %stop, label %ehave, label %eadv eadv: %j1 = add i32 %j, 1 store i32 %j1, ptr %jp br label %escan ehave: %je = load i32, ptr %jp %jep = getelementptr i8, ptr %txt, i32 %je store i8 0, ptr %jep %nexti = add i32 %je, 1 store i32 %nexti, ptr %ip %ln = getelementptr i8, ptr %txt, i32 %i %isp = call i32 @strncmp(ptr %ln, ptr @.pak_kw_pack, i64 5) %pk = icmp eq i32 %isp, 0 br i1 %pk, label %dopack, label %chkhome dopack: %pv = getelementptr i8, ptr %ln, i32 5 %full = call ptr @lp_path_join(ptr %dir, ptr %pv) %ok = call i32 @lp_pak_mount(ptr %full) %g = load i32, ptr %got %g1 = add i32 %g, %ok store i32 %g1, ptr %got br label %line chkhome: %ish = call i32 @strncmp(ptr %ln, ptr @.pak_kw_home, i64 5) %hm = icmp eq i32 %ish, 0 br i1 %hm, label %dohome, label %chkspbg dohome: %hv = getelementptr i8, ptr %ln, i32 5 call void @lp_pak_sethome(ptr %hv) br label %line chkspbg: %isb = call i32 @strncmp(ptr %ln, ptr @.pak_kw_spbg, i64 9) %bg = icmp eq i32 %isb, 0 br i1 %bg, label %dospbg, label %chksp dospbg: %bv = getelementptr i8, ptr %ln, i32 9 %bi = call i32 @atoi(ptr %bv) store i32 %bi, ptr @L_pak_splashbg br label %line chksp: %isS = call i32 @strncmp(ptr %ln, ptr @.pak_kw_splash, i64 7) %sp = icmp eq i32 %isS, 0 br i1 %sp, label %dosp, label %line dosp: %sv = getelementptr i8, ptr %ln, i32 7 store ptr %sv, ptr @L_pak_splash br label %line fin: %gf = load i32, ptr %got ret i32 %gf no: ret i32 0 } @.pak_kw_pack = private unnamed_addr constant [6 x i8] c"pack \00" @.pak_kw_home = private unnamed_addr constant [6 x i8] c"home \00" @.pak_kw_splash = private unnamed_addr constant [8 x i8] c"splash \00" @.pak_kw_spbg = private unnamed_addr constant [10 x i8] c"splashbg \00" define void @lp_pak_sethome(ptr %name) { entry: %h = call ptr @getenv(ptr @.pak_home) %nh = icmp eq ptr %h, null br i1 %nh, label %out, label %go go: %a = call ptr @lp_path_join(ptr %h, ptr @.pak_appsup) %b = call ptr @lp_path_join(ptr %a, ptr %name) %mk = call i32 @mkdir(ptr %b, i32 493) %cd = call i32 @chdir(ptr %b) br label %out out: ret void } @.pak_appdata = private unnamed_addr constant [8 x i8] c"APPDATA\00" define void @lp_pak_boot() { entry: %buf = alloca [1024 x i8] %szp = alloca i32 store i32 1024, ptr %szp %rc = call i32 @_NSGetExecutablePath(ptr %buf, ptr %szp) %bad = icmp ne i32 %rc, 0 br i1 %bad, label %out, label %go go: %dir = call ptr @lp_path_dir(ptr %buf) %res = call ptr @lp_path_join(ptr %dir, ptr @.pak_res) %n1 = call i32 @lp_pak_boot_dir(ptr %res) %any = icmp sgt i32 %n1, 0 br i1 %any, label %splash, label %try2 try2: %n2 = call i32 @lp_pak_boot_dir(ptr %dir) br label %splash splash: br label %out out: ret void } @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 101, ptr @lp_pak_boot, ptr null }] declare i32 @fprintf(ptr, ptr, ...) @.fmt_bounds = private unnamed_addr constant [14 x i8] c"%s%d, len %d\0A\00" define i32 @fn_char_is_digit(i32 %arg_c) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 store i32 %arg_c, ptr %t0 %t2 = load i32, ptr %t0 %t3 = icmp sge i32 %t2, 48 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %sc0, label %scend1 sc0: %t7 = load i32, ptr %t0 %t8 = icmp sle i32 %t7, 57 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t1 br label %scend1 scend1: %t12 = load i32, ptr %t1 store i32 %t12, ptr %retval br label %ret ret: %t13 = load i32, ptr %retval ret i32 %t13 } define i32 @fn_char_is_alpha(i32 %arg_c) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 %t14 = alloca i32 store i32 %arg_c, ptr %t0 %t2 = load i32, ptr %t0 %t3 = icmp sge i32 %t2, 65 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %sc0, label %scend1 sc0: %t7 = load i32, ptr %t0 %t8 = icmp sle i32 %t7, 90 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t1 br label %scend1 scend1: %t12 = load i32, ptr %t1 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then2, label %ifend4 then2: store i32 1, ptr %retval br label %ret ifend4: %t15 = load i32, ptr %t0 %t16 = icmp sge i32 %t15, 97 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t14 br i1 %t18, label %sc5, label %scend6 sc5: %t20 = load i32, ptr %t0 %t21 = icmp sle i32 %t20, 122 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t14 br label %scend6 scend6: %t25 = load i32, ptr %t14 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then7, label %ifend9 then7: store i32 1, ptr %retval br label %ret ifend9: %t27 = load i32, ptr %t0 %t28 = icmp eq i32 %t27, 95 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %retval br label %ret ret: %t30 = load i32, ptr %retval ret i32 %t30 } define i32 @fn_char_is_alnum(i32 %arg_c) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 store i32 %arg_c, ptr %t0 %t2 = load i32, ptr %t0 %t3 = call i32 @fn_char_is_alpha(i32 %t2) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load i32, ptr %t0 %t7 = call i32 @fn_char_is_digit(i32 %t6) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define i32 @fn_str_starts(ptr %arg_s, ptr %arg_prefix) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_s, ptr %t0 store ptr %arg_prefix, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load ptr, ptr %t1 %t4 = load i32, ptr %t2 %t5 = getelementptr inbounds i8, ptr %t3, i32 %t4 %t6 = load i8, ptr %t5 %t7 = zext i8 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = load i32, ptr %t2 %t13 = getelementptr inbounds i8, ptr %t11, i32 %t12 %t14 = load i8, ptr %t13 %t15 = zext i8 %t14 to i32 %t16 = load ptr, ptr %t1 %t17 = load i32, ptr %t2 %t18 = getelementptr inbounds i8, ptr %t16, i32 %t17 %t19 = load i8, ptr %t18 %t20 = zext i8 %t19 to i32 %t21 = icmp ne i32 %t15, %t20 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %ifend5 then3: store i32 0, ptr %retval br label %ret ifend5: %t24 = load i32, ptr %t2 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t2 br label %wcond0 wend2: store i32 1, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define ptr @fn_itoa(i32 %arg_v) { entry: %retval = alloca ptr %t0 = alloca i32 %t7 = alloca ptr %t15 = alloca i32 %t17 = alloca i32 %t26 = alloca ptr %t27 = alloca i32 %t44 = alloca i32 %t53 = alloca ptr %t54 = alloca i32 %t60 = alloca i32 store i32 %arg_v, ptr %t0 %t1 = load i32, ptr %t0 %t2 = icmp eq i32 %t1, 0 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = zext i32 2 to i64 %t6 = call ptr @malloc(i64 %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds i8, ptr %t8, i32 0 %t10 = trunc i32 48 to i8 store i8 %t10, ptr %t9 %t11 = load ptr, ptr %t7 %t12 = getelementptr inbounds i8, ptr %t11, i32 1 %t13 = trunc i32 0 to i8 store i8 %t13, ptr %t12 %t14 = load ptr, ptr %t7 store ptr %t14, ptr %retval br label %ret ifend2: store i32 0, ptr %t15 %t16 = load i32, ptr %t0 store i32 %t16, ptr %t17 %t18 = load i32, ptr %t17 %t19 = icmp slt i32 %t18, 0 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then3, label %ifend5 then3: store i32 1, ptr %t15 %t22 = load i32, ptr %t17 %t23 = sub i32 0, %t22 store i32 %t23, ptr %t17 br label %ifend5 ifend5: %t24 = zext i32 16 to i64 %t25 = call ptr @malloc(i64 %t24) store ptr %t25, ptr %t26 store i32 0, ptr %t27 br label %wcond6 wcond6: %t28 = load i32, ptr %t17 %t29 = icmp sgt i32 %t28, 0 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %wbody7, label %wend8 wbody7: %t32 = load ptr, ptr %t26 %t33 = load i32, ptr %t27 %t34 = getelementptr inbounds i8, ptr %t32, i32 %t33 %t35 = load i32, ptr %t17 %t36 = srem i32 %t35, 10 %t37 = add i32 48, %t36 %t38 = trunc i32 %t37 to i8 store i8 %t38, ptr %t34 %t39 = load i32, ptr %t17 %t40 = sdiv i32 %t39, 10 store i32 %t40, ptr %t17 %t41 = load i32, ptr %t27 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t27 br label %wcond6 wend8: %t43 = load i32, ptr %t27 store i32 %t43, ptr %t44 %t45 = load i32, ptr %t15 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then9, label %ifend11 then9: %t47 = load i32, ptr %t44 %t48 = add i32 %t47, 1 store i32 %t48, ptr %t44 br label %ifend11 ifend11: %t49 = load i32, ptr %t44 %t50 = add i32 %t49, 1 %t51 = zext i32 %t50 to i64 %t52 = call ptr @malloc(i64 %t51) store ptr %t52, ptr %t53 store i32 0, ptr %t54 %t55 = load i32, ptr %t15 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then12, label %ifend14 then12: %t57 = load ptr, ptr %t53 %t58 = getelementptr inbounds i8, ptr %t57, i32 0 %t59 = trunc i32 45 to i8 store i8 %t59, ptr %t58 store i32 1, ptr %t54 br label %ifend14 ifend14: store i32 0, ptr %t60 br label %wcond15 wcond15: %t61 = load i32, ptr %t60 %t62 = load i32, ptr %t27 %t63 = icmp slt i32 %t61, %t62 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %wbody16, label %wend17 wbody16: %t66 = load ptr, ptr %t53 %t67 = load i32, ptr %t54 %t68 = load i32, ptr %t60 %t69 = add i32 %t67, %t68 %t70 = getelementptr inbounds i8, ptr %t66, i32 %t69 %t71 = load ptr, ptr %t26 %t72 = load i32, ptr %t27 %t73 = sub i32 %t72, 1 %t74 = load i32, ptr %t60 %t75 = sub i32 %t73, %t74 %t76 = getelementptr inbounds i8, ptr %t71, i32 %t75 %t77 = load i8, ptr %t76 %t78 = zext i8 %t77 to i32 %t79 = trunc i32 %t78 to i8 store i8 %t79, ptr %t70 %t80 = load i32, ptr %t60 %t81 = add i32 %t80, 1 store i32 %t81, ptr %t60 br label %wcond15 wend17: %t82 = load ptr, ptr %t53 %t83 = load i32, ptr %t44 %t84 = getelementptr inbounds i8, ptr %t82, i32 %t83 %t85 = trunc i32 0 to i8 store i8 %t85, ptr %t84 %t86 = load ptr, ptr %t53 store ptr %t86, ptr %retval br label %ret ret: %t87 = load ptr, ptr %retval ret ptr %t87 } define ptr @fn_buf_new() { entry: %retval = alloca ptr %t6 = alloca ptr %t0 = getelementptr %Cmp_Buf, ptr null, i32 1 %t1 = ptrtoint ptr %t0 to i64 %t2 = call ptr @malloc(i64 %t1) %t3 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 0 store ptr null, ptr %t3 %t4 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 1 store i32 0, ptr %t4 %t5 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 2 store i32 0, ptr %t5 store ptr %t2, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Buf, ptr %t7, i32 0, i32 2 store i32 256, ptr %t8 %t9 = load ptr, ptr %t6 %t10 = getelementptr inbounds %Cmp_Buf, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t6 %t12 = getelementptr inbounds %Cmp_Buf, ptr %t11, i32 0, i32 2 %t13 = load i32, ptr %t12 %t14 = zext i32 %t13 to i64 %t15 = call ptr @malloc(i64 %t14) store ptr %t15, ptr %t10 %t16 = load ptr, ptr %t6 %t17 = getelementptr inbounds %Cmp_Buf, ptr %t16, i32 0, i32 1 store i32 0, ptr %t17 %t18 = load ptr, ptr %t6 store ptr %t18, ptr %retval br label %ret ret: %t19 = load ptr, ptr %retval ret ptr %t19 } define void @fn_buf_ensure(ptr %arg_b, i32 %arg_extra) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_b, ptr %t0 store i32 %arg_extra, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = load i32, ptr %t1 %t6 = add i32 %t4, %t5 %t7 = add i32 %t6, 1 %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Buf, ptr %t8, i32 0, i32 2 %t10 = load i32, ptr %t9 %t11 = icmp sle i32 %t7, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: br label %ret ifend2: br label %wcond3 wcond3: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Buf, ptr %t14, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = load i32, ptr %t1 %t18 = add i32 %t16, %t17 %t19 = add i32 %t18, 1 %t20 = load ptr, ptr %t0 %t21 = getelementptr inbounds %Cmp_Buf, ptr %t20, i32 0, i32 2 %t22 = load i32, ptr %t21 %t23 = icmp sgt i32 %t19, %t22 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %wbody4, label %wend5 wbody4: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Buf, ptr %t26, i32 0, i32 2 %t28 = load i32, ptr %t27 %t29 = mul i32 %t28, 2 store i32 %t29, ptr %t27 br label %wcond3 wend5: %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Buf, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t0 %t33 = getelementptr inbounds %Cmp_Buf, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = load ptr, ptr %t0 %t36 = getelementptr inbounds %Cmp_Buf, ptr %t35, i32 0, i32 2 %t37 = load i32, ptr %t36 %t38 = zext i32 %t37 to i64 %t39 = call ptr @realloc(ptr %t34, i64 %t38) store ptr %t39, ptr %t31 br label %ret ret: ret void } define void @fn_buf_putc(ptr %arg_b, i32 %arg_c) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_b, ptr %t0 store i32 %arg_c, ptr %t1 %t2 = load ptr, ptr %t0 call void @fn_buf_ensure(ptr %t2, i32 1) %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Buf, ptr %t3, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Buf, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = getelementptr inbounds i8, ptr %t5, i32 %t8 %t10 = load i32, ptr %t1 %t11 = trunc i32 %t10 to i8 store i8 %t11, ptr %t9 %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Buf, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = add i32 %t14, 1 store i32 %t15, ptr %t13 br label %ret ret: ret void } define void @fn_buf_puts(ptr %arg_b, ptr %arg_s) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_b, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load ptr, ptr %t1 %t4 = load i32, ptr %t2 %t5 = getelementptr inbounds i8, ptr %t3, i32 %t4 %t6 = load i8, ptr %t5 %t7 = zext i8 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = load ptr, ptr %t1 %t13 = load i32, ptr %t2 %t14 = getelementptr inbounds i8, ptr %t12, i32 %t13 %t15 = load i8, ptr %t14 %t16 = zext i8 %t15 to i32 call void @fn_buf_putc(ptr %t11, i32 %t16) %t17 = load i32, ptr %t2 %t18 = add i32 %t17, 1 store i32 %t18, ptr %t2 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_buf_puti(ptr %arg_b, i32 %arg_n) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_b, ptr %t0 store i32 %arg_n, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = load i32, ptr %t1 %t4 = call ptr @fn_itoa(i32 %t3) call void @fn_buf_puts(ptr %t2, ptr %t4) br label %ret ret: ret void } define ptr @fn_buf_str(ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_b, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Buf, ptr %t1, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Buf, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = getelementptr inbounds i8, ptr %t3, i32 %t6 %t8 = trunc i32 0 to i8 store i8 %t8, ptr %t7 %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Buf, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define ptr @fn_read_file(ptr %arg_path) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr %t14 = alloca i32 %t22 = alloca ptr store ptr %arg_path, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_pak_open(ptr %t1, ptr @.str0) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = icmp eq ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t3 %t9 = sext i32 0 to i64 %t10 = call i32 @fseek(ptr %t8, i64 %t9, i32 2) %t11 = load ptr, ptr %t3 %t12 = call i64 @ftell(ptr %t11) %t13 = trunc i64 %t12 to i32 store i32 %t13, ptr %t14 %t15 = load ptr, ptr %t3 %t16 = sext i32 0 to i64 %t17 = call i32 @fseek(ptr %t15, i64 %t16, i32 0) %t18 = load i32, ptr %t14 %t19 = add i32 %t18, 1 %t20 = zext i32 %t19 to i64 %t21 = call ptr @malloc(i64 %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t3 %t24 = load ptr, ptr %t22 %t25 = load i32, ptr %t14 %t26 = zext i32 %t25 to i64 %t27 = call i64 @fread(ptr %t24, i64 1, i64 %t26, ptr %t23) %t28 = trunc i64 %t27 to i32 %t29 = load ptr, ptr %t22 %t30 = load i32, ptr %t14 %t31 = getelementptr inbounds i8, ptr %t29, i32 %t30 %t32 = trunc i32 0 to i8 store i8 %t32, ptr %t31 %t33 = load ptr, ptr %t3 call i32 @fclose(ptr %t33) %t34 = load ptr, ptr %t22 store ptr %t34, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define i32 @fn_cstr_len(ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_s, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load ptr, ptr %t0 %t3 = load i32, ptr %t1 %t4 = getelementptr inbounds i8, ptr %t2, i32 %t3 %t5 = load i8, ptr %t4 %t6 = zext i8 %t5 to i32 %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load i32, ptr %t1 %t11 = add i32 %t10, 1 store i32 %t11, ptr %t1 br label %wcond0 wend2: %t12 = load i32, ptr %t1 store i32 %t12, ptr %retval br label %ret ret: %t13 = load i32, ptr %retval ret i32 %t13 } define ptr @fn_node(i32 %arg_kind) { entry: %retval = alloca ptr %t0 = alloca i32 %t17 = alloca ptr %t32 = alloca i32 store i32 %arg_kind, ptr %t0 %t1 = getelementptr %Cmp_Node, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 0 store i32 0, ptr %t4 %t5 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1 store ptr null, ptr %t5 %t6 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 %t7 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 3 store ptr null, ptr %t7 %t8 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 store ptr null, ptr %t8 %t9 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 5 store ptr null, ptr %t9 %t10 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 6 store ptr null, ptr %t10 %t11 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 store ptr null, ptr %t11 %t12 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 8 store i32 0, ptr %t12 %t13 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 9 store ptr null, ptr %t13 %t14 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 10 store i32 0, ptr %t14 %t15 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 11 store ptr null, ptr %t15 %t16 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 12 store i32 0, ptr %t16 store ptr %t3, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0 %t20 = load i32, ptr %t0 store i32 %t20, ptr %t19 %t21 = load ptr, ptr %t17 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 7 %t23 = getelementptr %LSlice, ptr null, i32 1 %t24 = ptrtoint ptr %t23 to i64 %t25 = call ptr @malloc(i64 %t24) %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 store ptr null, ptr %t26 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 store i32 0, ptr %t27 %t28 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 2 store i32 0, ptr %t28 store ptr %t25, ptr %t22 %t29 = load ptr, ptr %t17 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 9 %t31 = load ptr, ptr @g_g_parse_file store ptr %t31, ptr %t30 %t33 = load i32, ptr @g_g_parsing %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t32 br i1 %t34, label %sc0, label %scend1 sc0: %t36 = load i32, ptr @g_pi %t37 = load ptr, ptr @g_toks %t38 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp slt i32 %t36, %t39 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t32 br label %scend1 scend1: %t44 = load i32, ptr %t32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then2, label %ifend4 then2: %t46 = load ptr, ptr %t17 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 8 %t48 = load ptr, ptr @g_toks %t49 = load i32, ptr @g_pi %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = icmp ult i32 %t49, %t53 br i1 %t54, label %ixok5, label %ixbad6 ixbad6: %t55 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t55, ptr @.fmt_bounds, ptr @.str1, i32 %t49, i32 %t53) call void @exit(i32 1) unreachable ixok5: %t56 = getelementptr inbounds ptr, ptr %t51, i32 %t49 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %Cmp_Tok, ptr %t57, i32 0, i32 3 %t59 = load i32, ptr %t58 store i32 %t59, ptr %t47 br label %ifend4 ifend4: %t60 = load ptr, ptr %t17 store ptr %t60, ptr %retval br label %ret ret: %t61 = load ptr, ptr %retval ret ptr %t61 } define void @fn_tok_push(i32 %arg_kind, ptr %arg_text, i32 %arg_ival, i32 %arg_line) { entry: %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t11 = alloca ptr store i32 %arg_kind, ptr %t0 store ptr %arg_text, ptr %t1 store i32 %arg_ival, ptr %t2 store i32 %arg_line, ptr %t3 %t4 = getelementptr %Cmp_Tok, ptr null, i32 1 %t5 = ptrtoint ptr %t4 to i64 %t6 = call ptr @malloc(i64 %t5) %t7 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 0 store i32 0, ptr %t7 %t8 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 1 store ptr null, ptr %t8 %t9 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 2 store i32 0, ptr %t9 %t10 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 3 store i32 0, ptr %t10 store ptr %t6, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %Cmp_Tok, ptr %t12, i32 0, i32 0 %t14 = load i32, ptr %t0 store i32 %t14, ptr %t13 %t15 = load ptr, ptr %t11 %t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t1 store ptr %t17, ptr %t16 %t18 = load ptr, ptr %t11 %t19 = getelementptr inbounds %Cmp_Tok, ptr %t18, i32 0, i32 2 %t20 = load i32, ptr %t2 store i32 %t20, ptr %t19 %t21 = load ptr, ptr %t11 %t22 = getelementptr inbounds %Cmp_Tok, ptr %t21, i32 0, i32 3 %t23 = load i32, ptr %t3 store i32 %t23, ptr %t22 %t24 = load ptr, ptr @g_toks %t25 = load ptr, ptr %t11 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t29 = load i32, ptr %t26 %t30 = load i32, ptr %t27 %t31 = icmp sge i32 %t29, %t30 br i1 %t31, label %grow0, label %put1 grow0: %t32 = mul i32 %t30, 2 %t33 = icmp eq i32 %t30, 0 %t34 = select i1 %t33, i32 8, i32 %t32 %t35 = getelementptr ptr, ptr null, i32 1 %t36 = ptrtoint ptr %t35 to i64 %t37 = zext i32 %t34 to i64 %t38 = mul i64 %t37, %t36 %t39 = load ptr, ptr %t28 %t40 = call ptr @realloc(ptr %t39, i64 %t38) store ptr %t40, ptr %t28 store i32 %t34, ptr %t27 br label %put1 put1: %t41 = load ptr, ptr %t28 %t42 = getelementptr inbounds ptr, ptr %t41, i32 %t29 store ptr %t25, ptr %t42 %t43 = add i32 %t29, 1 store i32 %t43, ptr %t26 br label %ret ret: ret void } define i32 @fn_two_at(ptr %arg_src, i32 %arg_i, i32 %arg_a, i32 %arg_b) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 store ptr %arg_src, ptr %t0 store i32 %arg_i, ptr %t1 store i32 %arg_a, ptr %t2 store i32 %arg_b, ptr %t3 %t5 = load ptr, ptr %t0 %t6 = load i32, ptr %t1 %t7 = getelementptr inbounds i8, ptr %t5, i32 %t6 %t8 = load i8, ptr %t7 %t9 = zext i8 %t8 to i32 %t10 = load i32, ptr %t2 %t11 = icmp eq i32 %t9, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t4 br i1 %t13, label %sc0, label %scend1 sc0: %t15 = load ptr, ptr %t0 %t16 = load i32, ptr %t1 %t17 = add i32 %t16, 1 %t18 = getelementptr inbounds i8, ptr %t15, i32 %t17 %t19 = load i8, ptr %t18 %t20 = zext i8 %t19 to i32 %t21 = load i32, ptr %t3 %t22 = icmp eq i32 %t20, %t21 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t4 br label %scend1 scend1: %t26 = load i32, ptr %t4 store i32 %t26, ptr %retval br label %ret ret: %t27 = load i32, ptr %retval ret i32 %t27 } define i32 @fn_is_op1(i32 %arg_c) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t41 = alloca i32 %t42 = alloca i32 %t63 = alloca i32 %t64 = alloca i32 %t65 = alloca i32 %t94 = alloca i32 %t95 = alloca i32 %t96 = alloca i32 %t97 = alloca i32 %t134 = alloca i32 %t147 = alloca i32 %t148 = alloca i32 %t149 = alloca i32 store i32 %arg_c, ptr %t0 %t5 = load i32, ptr %t0 %t6 = icmp eq i32 %t5, 43 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t4 br i1 %t8, label %scend1, label %sc0 sc0: %t10 = load i32, ptr %t0 %t11 = icmp eq i32 %t10, 45 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t4 br label %scend1 scend1: %t15 = load i32, ptr %t4 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t3 br i1 %t16, label %scend3, label %sc2 sc2: %t18 = load i32, ptr %t0 %t19 = icmp eq i32 %t18, 42 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t3 br label %scend3 scend3: %t23 = load i32, ptr %t3 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t2 br i1 %t24, label %scend5, label %sc4 sc4: %t26 = load i32, ptr %t0 %t27 = icmp eq i32 %t26, 47 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t2 br label %scend5 scend5: %t31 = load i32, ptr %t2 %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t1 br i1 %t32, label %scend7, label %sc6 sc6: %t34 = load i32, ptr %t0 %t35 = icmp eq i32 %t34, 37 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t1 br label %scend7 scend7: %t39 = load i32, ptr %t1 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t43 = load i32, ptr %t0 %t44 = icmp eq i32 %t43, 60 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t42 br i1 %t46, label %scend12, label %sc11 sc11: %t48 = load i32, ptr %t0 %t49 = icmp eq i32 %t48, 62 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t42 br label %scend12 scend12: %t53 = load i32, ptr %t42 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t41 br i1 %t54, label %scend14, label %sc13 sc13: %t56 = load i32, ptr %t0 %t57 = icmp eq i32 %t56, 61 %t58 = zext i1 %t57 to i32 %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t41 br label %scend14 scend14: %t61 = load i32, ptr %t41 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: %t66 = load i32, ptr %t0 %t67 = icmp eq i32 %t66, 40 %t68 = zext i1 %t67 to i32 %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t65 br i1 %t69, label %scend19, label %sc18 sc18: %t71 = load i32, ptr %t0 %t72 = icmp eq i32 %t71, 41 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t65 br label %scend19 scend19: %t76 = load i32, ptr %t65 %t77 = icmp ne i32 %t76, 0 %t78 = zext i1 %t77 to i32 store i32 %t78, ptr %t64 br i1 %t77, label %scend21, label %sc20 sc20: %t79 = load i32, ptr %t0 %t80 = icmp eq i32 %t79, 123 %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t64 br label %scend21 scend21: %t84 = load i32, ptr %t64 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t63 br i1 %t85, label %scend23, label %sc22 sc22: %t87 = load i32, ptr %t0 %t88 = icmp eq i32 %t87, 125 %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 store i32 %t91, ptr %t63 br label %scend23 scend23: %t92 = load i32, ptr %t63 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then24, label %ifend26 then24: store i32 1, ptr %retval br label %ret ifend26: %t98 = load i32, ptr %t0 %t99 = icmp eq i32 %t98, 91 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t97 br i1 %t101, label %scend28, label %sc27 sc27: %t103 = load i32, ptr %t0 %t104 = icmp eq i32 %t103, 93 %t105 = zext i1 %t104 to i32 %t106 = icmp ne i32 %t105, 0 %t107 = zext i1 %t106 to i32 store i32 %t107, ptr %t97 br label %scend28 scend28: %t108 = load i32, ptr %t97 %t109 = icmp ne i32 %t108, 0 %t110 = zext i1 %t109 to i32 store i32 %t110, ptr %t96 br i1 %t109, label %scend30, label %sc29 sc29: %t111 = load i32, ptr %t0 %t112 = icmp eq i32 %t111, 44 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t96 br label %scend30 scend30: %t116 = load i32, ptr %t96 %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t95 br i1 %t117, label %scend32, label %sc31 sc31: %t119 = load i32, ptr %t0 %t120 = icmp eq i32 %t119, 58 %t121 = zext i1 %t120 to i32 %t122 = icmp ne i32 %t121, 0 %t123 = zext i1 %t122 to i32 store i32 %t123, ptr %t95 br label %scend32 scend32: %t124 = load i32, ptr %t95 %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t94 br i1 %t125, label %scend34, label %sc33 sc33: %t127 = load i32, ptr %t0 %t128 = icmp eq i32 %t127, 46 %t129 = zext i1 %t128 to i32 %t130 = icmp ne i32 %t129, 0 %t131 = zext i1 %t130 to i32 store i32 %t131, ptr %t94 br label %scend34 scend34: %t132 = load i32, ptr %t94 %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then35, label %ifend37 then35: store i32 1, ptr %retval br label %ret ifend37: %t135 = load i32, ptr %t0 %t136 = icmp eq i32 %t135, 33 %t137 = zext i1 %t136 to i32 %t138 = icmp ne i32 %t137, 0 %t139 = zext i1 %t138 to i32 store i32 %t139, ptr %t134 br i1 %t138, label %scend39, label %sc38 sc38: %t140 = load i32, ptr %t0 %t141 = icmp eq i32 %t140, 64 %t142 = zext i1 %t141 to i32 %t143 = icmp ne i32 %t142, 0 %t144 = zext i1 %t143 to i32 store i32 %t144, ptr %t134 br label %scend39 scend39: %t145 = load i32, ptr %t134 %t146 = icmp ne i32 %t145, 0 br i1 %t146, label %then40, label %ifend42 then40: store i32 1, ptr %retval br label %ret ifend42: %t150 = load i32, ptr %t0 %t151 = icmp eq i32 %t150, 38 %t152 = zext i1 %t151 to i32 %t153 = icmp ne i32 %t152, 0 %t154 = zext i1 %t153 to i32 store i32 %t154, ptr %t149 br i1 %t153, label %scend44, label %sc43 sc43: %t155 = load i32, ptr %t0 %t156 = icmp eq i32 %t155, 124 %t157 = zext i1 %t156 to i32 %t158 = icmp ne i32 %t157, 0 %t159 = zext i1 %t158 to i32 store i32 %t159, ptr %t149 br label %scend44 scend44: %t160 = load i32, ptr %t149 %t161 = icmp ne i32 %t160, 0 %t162 = zext i1 %t161 to i32 store i32 %t162, ptr %t148 br i1 %t161, label %scend46, label %sc45 sc45: %t163 = load i32, ptr %t0 %t164 = icmp eq i32 %t163, 94 %t165 = zext i1 %t164 to i32 %t166 = icmp ne i32 %t165, 0 %t167 = zext i1 %t166 to i32 store i32 %t167, ptr %t148 br label %scend46 scend46: %t168 = load i32, ptr %t148 %t169 = icmp ne i32 %t168, 0 %t170 = zext i1 %t169 to i32 store i32 %t170, ptr %t147 br i1 %t169, label %scend48, label %sc47 sc47: %t171 = load i32, ptr %t0 %t172 = icmp eq i32 %t171, 126 %t173 = zext i1 %t172 to i32 %t174 = icmp ne i32 %t173, 0 %t175 = zext i1 %t174 to i32 store i32 %t175, ptr %t147 br label %scend48 scend48: %t176 = load i32, ptr %t147 %t177 = icmp ne i32 %t176, 0 br i1 %t177, label %then49, label %ifend51 then49: store i32 1, ptr %retval br label %ret ifend51: store i32 0, ptr %retval br label %ret ret: %t178 = load i32, ptr %retval ret i32 %t178 } define i32 @fn_unescape(i32 %arg_e) { entry: %retval = alloca i32 %t0 = alloca i32 store i32 %arg_e, ptr %t0 %t1 = load i32, ptr %t0 %t2 = icmp eq i32 %t1, 110 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 10, ptr %retval br label %ret ifend2: %t5 = load i32, ptr %t0 %t6 = icmp eq i32 %t5, 114 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then3, label %ifend5 then3: store i32 13, ptr %retval br label %ret ifend5: %t9 = load i32, ptr %t0 %t10 = icmp eq i32 %t9, 116 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then6, label %ifend8 then6: store i32 9, ptr %retval br label %ret ifend8: %t13 = load i32, ptr %t0 %t14 = icmp eq i32 %t13, 48 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then9, label %ifend11 then9: store i32 0, ptr %retval br label %ret ifend11: %t17 = load i32, ptr %t0 store i32 %t17, ptr %retval br label %ret ret: %t18 = load i32, ptr %retval ret i32 %t18 } define void @fn_lex_error(i32 %arg_line, i32 %arg_c) { entry: %t0 = alloca i32 %t1 = alloca i32 %t4 = alloca ptr store i32 %arg_line, ptr %t0 store i32 %arg_c, ptr %t1 %t2 = zext i32 2 to i64 %t3 = call ptr @malloc(i64 %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds i8, ptr %t5, i32 0 %t7 = load i32, ptr %t1 %t8 = trunc i32 %t7 to i8 store i8 %t8, ptr %t6 %t9 = load ptr, ptr %t4 %t10 = getelementptr inbounds i8, ptr %t9, i32 1 %t11 = trunc i32 0 to i8 store i8 %t11, ptr %t10 %t12 = load i32, ptr %t0 %t13 = load ptr, ptr %t4 %t14 = call ptr @lp_str_concat(ptr @.str2, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str3) %t16 = load i32, ptr %t1 %t17 = call ptr @lp_int_str(i32 %t16) %t18 = call ptr @lp_str_concat(ptr %t15, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str4) call void @fn_lex_fail(i32 %t12, ptr %t19) br label %ret ret: ret void } define i32 @fn_tmpl_end(ptr %arg_s, i32 %arg_i0, i32 %arg_n) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t5 = alloca i32 %t6 = alloca i32 %t34 = alloca i32 %t35 = alloca i32 store ptr %arg_s, ptr %t0 store i32 %arg_i0, ptr %t1 store i32 %arg_n, ptr %t2 %t3 = load i32, ptr %t1 %t4 = add i32 %t3, 1 store i32 %t4, ptr %t5 br label %wcond0 wcond0: %t7 = load i32, ptr %t5 %t8 = load i32, ptr %t2 %t9 = icmp slt i32 %t7, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t6 br i1 %t11, label %sc3, label %scend4 sc3: %t13 = load ptr, ptr %t0 %t14 = load i32, ptr %t5 %t15 = getelementptr inbounds i8, ptr %t13, i32 %t14 %t16 = load i8, ptr %t15 %t17 = zext i8 %t16 to i32 %t18 = icmp ne i32 %t17, 96 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t6 br label %scend4 scend4: %t22 = load i32, ptr %t6 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %wbody1, label %wend2 wbody1: %t24 = load ptr, ptr %t0 %t25 = load i32, ptr %t5 %t26 = getelementptr inbounds i8, ptr %t24, i32 %t25 %t27 = load i8, ptr %t26 %t28 = zext i8 %t27 to i32 %t29 = icmp eq i32 %t28, 92 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then5, label %ifend7 then5: %t32 = load i32, ptr %t5 %t33 = add i32 %t32, 2 store i32 %t33, ptr %t5 br label %wcond0 ifend7: %t36 = load ptr, ptr %t0 %t37 = load i32, ptr %t5 %t38 = getelementptr inbounds i8, ptr %t36, i32 %t37 %t39 = load i8, ptr %t38 %t40 = zext i8 %t39 to i32 %t41 = icmp eq i32 %t40, 123 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t35 br i1 %t43, label %sc8, label %scend9 sc8: %t45 = load i32, ptr %t5 %t46 = add i32 %t45, 1 %t47 = load i32, ptr %t2 %t48 = icmp slt i32 %t46, %t47 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t35 br label %scend9 scend9: %t52 = load i32, ptr %t35 %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t34 br i1 %t53, label %sc10, label %scend11 sc10: %t55 = load ptr, ptr %t0 %t56 = load i32, ptr %t5 %t57 = add i32 %t56, 1 %t58 = getelementptr inbounds i8, ptr %t55, i32 %t57 %t59 = load i8, ptr %t58 %t60 = zext i8 %t59 to i32 %t61 = icmp eq i32 %t60, 123 %t62 = zext i1 %t61 to i32 %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t34 br label %scend11 scend11: %t65 = load i32, ptr %t34 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then12, label %ifend14 then12: %t67 = load i32, ptr %t5 %t68 = add i32 %t67, 2 store i32 %t68, ptr %t5 br label %wcond0 ifend14: %t69 = load ptr, ptr %t0 %t70 = load i32, ptr %t5 %t71 = getelementptr inbounds i8, ptr %t69, i32 %t70 %t72 = load i8, ptr %t71 %t73 = zext i8 %t72 to i32 %t74 = icmp eq i32 %t73, 123 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then15, label %ifend17 then15: %t77 = load ptr, ptr %t0 %t78 = load i32, ptr %t5 %t79 = add i32 %t78, 1 %t80 = load i32, ptr %t2 %t81 = call i32 @fn_hole_end(ptr %t77, i32 %t79, i32 %t80) store i32 %t81, ptr %t5 br label %ifend17 ifend17: %t82 = load i32, ptr %t5 %t83 = add i32 %t82, 1 store i32 %t83, ptr %t5 br label %wcond0 wend2: %t84 = load i32, ptr %t5 store i32 %t84, ptr %retval br label %ret ret: %t85 = load i32, ptr %retval ret i32 %t85 } define i32 @fn_hole_end(ptr %arg_s, i32 %arg_i0, i32 %arg_n) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 %t16 = alloca i32 %t17 = alloca i32 %t32 = alloca i32 store ptr %arg_s, ptr %t0 store i32 %arg_i0, ptr %t1 store i32 %arg_n, ptr %t2 %t3 = load i32, ptr %t1 store i32 %t3, ptr %t4 store i32 1, ptr %t5 br label %wcond0 wcond0: %t6 = load i32, ptr %t4 %t7 = load i32, ptr %t2 %t8 = icmp slt i32 %t6, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = load i32, ptr %t4 %t13 = getelementptr inbounds i8, ptr %t11, i32 %t12 %t14 = load i8, ptr %t13 %t15 = zext i8 %t14 to i32 store i32 %t15, ptr %t16 %t18 = load i32, ptr %t16 %t19 = icmp eq i32 %t18, 34 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t17 br i1 %t21, label %scend4, label %sc3 sc3: %t23 = load i32, ptr %t16 %t24 = icmp eq i32 %t23, 39 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t17 br label %scend4 scend4: %t28 = load i32, ptr %t17 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then5, label %else6 then5: %t30 = load i32, ptr %t4 %t31 = add i32 %t30, 1 store i32 %t31, ptr %t4 br label %wcond8 wcond8: %t33 = load i32, ptr %t4 %t34 = load i32, ptr %t2 %t35 = icmp slt i32 %t33, %t34 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t32 br i1 %t37, label %sc11, label %scend12 sc11: %t39 = load ptr, ptr %t0 %t40 = load i32, ptr %t4 %t41 = getelementptr inbounds i8, ptr %t39, i32 %t40 %t42 = load i8, ptr %t41 %t43 = zext i8 %t42 to i32 %t44 = load i32, ptr %t16 %t45 = icmp ne i32 %t43, %t44 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t32 br label %scend12 scend12: %t49 = load i32, ptr %t32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %wbody9, label %wend10 wbody9: %t51 = load ptr, ptr %t0 %t52 = load i32, ptr %t4 %t53 = getelementptr inbounds i8, ptr %t51, i32 %t52 %t54 = load i8, ptr %t53 %t55 = zext i8 %t54 to i32 %t56 = icmp eq i32 %t55, 92 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then13, label %ifend15 then13: %t59 = load i32, ptr %t4 %t60 = add i32 %t59, 1 store i32 %t60, ptr %t4 br label %ifend15 ifend15: %t61 = load i32, ptr %t4 %t62 = add i32 %t61, 1 store i32 %t62, ptr %t4 br label %wcond8 wend10: br label %ifend7 else6: %t63 = load i32, ptr %t16 %t64 = icmp eq i32 %t63, 96 %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then16, label %else17 then16: %t67 = load ptr, ptr %t0 %t68 = load i32, ptr %t4 %t69 = load i32, ptr %t2 %t70 = call i32 @fn_tmpl_end(ptr %t67, i32 %t68, i32 %t69) store i32 %t70, ptr %t4 br label %ifend18 else17: %t71 = load i32, ptr %t16 %t72 = icmp eq i32 %t71, 123 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then19, label %else20 then19: %t75 = load i32, ptr %t5 %t76 = add i32 %t75, 1 store i32 %t76, ptr %t5 br label %ifend21 else20: %t77 = load i32, ptr %t16 %t78 = icmp eq i32 %t77, 125 %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then22, label %ifend24 then22: %t81 = load i32, ptr %t5 %t82 = sub i32 %t81, 1 store i32 %t82, ptr %t5 %t83 = load i32, ptr %t5 %t84 = icmp eq i32 %t83, 0 %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then25, label %ifend27 then25: %t87 = load i32, ptr %t4 store i32 %t87, ptr %retval br label %ret ifend27: br label %ifend24 ifend24: br label %ifend21 ifend21: br label %ifend18 ifend18: br label %ifend7 ifend7: %t88 = load i32, ptr %t4 %t89 = add i32 %t88, 1 store i32 %t89, ptr %t4 br label %wcond0 wend2: %t90 = load i32, ptr %t2 store i32 %t90, ptr %retval br label %ret ret: %t91 = load i32, ptr %retval ret i32 %t91 } define void @fn_lex_fail(i32 %arg_line, ptr %arg_msg) { entry: %t0 = alloca i32 %t1 = alloca ptr %t11 = alloca ptr store i32 %arg_line, ptr %t0 store ptr %arg_msg, ptr %t1 %t2 = load ptr, ptr @g_g_parse_file %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str5) %t4 = load i32, ptr %t0 %t5 = call ptr @lp_int_str(i32 %t4) %t6 = call ptr @lp_str_concat(ptr %t3, ptr %t5) %t7 = call ptr @lp_str_concat(ptr %t6, ptr @.str6) %t8 = load ptr, ptr %t1 %t9 = call ptr @lp_str_concat(ptr %t7, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str7) store ptr %t10, ptr %t11 %t12 = load ptr, ptr @__stderrp %t13 = load ptr, ptr %t11 %t14 = load ptr, ptr %t11 %t15 = call i64 @strlen(ptr %t14) %t16 = trunc i64 %t15 to i32 %t17 = zext i32 %t16 to i64 %t18 = call i64 @fwrite(ptr %t13, i64 1, i64 %t17, ptr %t12) %t19 = trunc i64 %t18 to i32 call void @exit(i32 1) unreachable ret: ret void } define void @fn_lex(ptr %arg_src) { entry: %t0 = alloca ptr store ptr %arg_src, ptr %t0 %t1 = load ptr, ptr %t0 call void @fn_lex_at(ptr %t1, i32 1) br label %ret ret: ret void } define void @fn_lex_at(ptr %arg_src, i32 %arg_first_line) { entry: %t0 = alloca ptr %t1 = alloca i32 %t8 = alloca i32 %t10 = alloca i32 %t14 = alloca i32 %t25 = alloca i32 %t35 = alloca i32 %t36 = alloca i32 %t63 = alloca i32 %t90 = alloca i32 %t94 = alloca ptr %t95 = alloca i32 %t96 = alloca i32 %t166 = alloca i32 %t170 = alloca ptr %t171 = alloca i32 %t206 = alloca i32 %t247 = alloca i32 %t265 = alloca i32 %t266 = alloca i64 %t268 = alloca i32 %t281 = alloca i32 %t282 = alloca i32 %t288 = alloca i32 %t303 = alloca i32 %t328 = alloca i32 %t345 = alloca ptr %t355 = alloca i32 %t356 = alloca i64 %t359 = alloca i32 %t360 = alloca i32 %t399 = alloca i32 %t400 = alloca i32 %t432 = alloca i32 %t433 = alloca i32 %t434 = alloca i32 %t478 = alloca i32 %t485 = alloca ptr %t500 = alloca i32 %t501 = alloca i32 store ptr %arg_src, ptr %t0 store i32 %arg_first_line, ptr %t1 %t2 = getelementptr %LSlice, ptr null, i32 1 %t3 = ptrtoint ptr %t2 to i64 %t4 = call ptr @malloc(i64 %t3) %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 store ptr null, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 store i32 0, ptr %t6 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 2 store i32 0, ptr %t7 store ptr %t4, ptr @g_toks store i32 0, ptr %t8 %t9 = load i32, ptr %t1 store i32 %t9, ptr %t10 %t11 = load ptr, ptr %t0 %t12 = call i64 @strlen(ptr %t11) %t13 = trunc i64 %t12 to i32 store i32 %t13, ptr %t14 br label %wcond0 wcond0: %t15 = load i32, ptr %t8 %t16 = load i32, ptr %t14 %t17 = icmp slt i32 %t15, %t16 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody1, label %wend2 wbody1: %t20 = load ptr, ptr %t0 %t21 = load i32, ptr %t8 %t22 = getelementptr inbounds i8, ptr %t20, i32 %t21 %t23 = load i8, ptr %t22 %t24 = zext i8 %t23 to i32 store i32 %t24, ptr %t25 %t26 = load i32, ptr %t25 %t27 = icmp eq i32 %t26, 10 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then3, label %ifend5 then3: %t30 = load i32, ptr %t10 call void @fn_tok_push(i32 4, ptr null, i32 0, i32 %t30) %t31 = load i32, ptr %t10 %t32 = add i32 %t31, 1 store i32 %t32, ptr %t10 %t33 = load i32, ptr %t8 %t34 = add i32 %t33, 1 store i32 %t34, ptr %t8 br label %wcond0 ifend5: %t37 = load i32, ptr %t25 %t38 = icmp eq i32 %t37, 32 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t36 br i1 %t40, label %scend7, label %sc6 sc6: %t42 = load i32, ptr %t25 %t43 = icmp eq i32 %t42, 9 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t36 br label %scend7 scend7: %t47 = load i32, ptr %t36 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t35 br i1 %t48, label %scend9, label %sc8 sc8: %t50 = load i32, ptr %t25 %t51 = icmp eq i32 %t50, 13 %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t35 br label %scend9 scend9: %t55 = load i32, ptr %t35 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then10, label %ifend12 then10: %t57 = load i32, ptr %t8 %t58 = add i32 %t57, 1 store i32 %t58, ptr %t8 br label %wcond0 ifend12: %t59 = load i32, ptr %t25 %t60 = icmp eq i32 %t59, 35 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then13, label %ifend15 then13: br label %wcond16 wcond16: %t64 = load i32, ptr %t8 %t65 = load i32, ptr %t14 %t66 = icmp slt i32 %t64, %t65 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t63 br i1 %t68, label %sc19, label %scend20 sc19: %t70 = load ptr, ptr %t0 %t71 = load i32, ptr %t8 %t72 = getelementptr inbounds i8, ptr %t70, i32 %t71 %t73 = load i8, ptr %t72 %t74 = zext i8 %t73 to i32 %t75 = icmp ne i32 %t74, 10 %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 %t78 = zext i1 %t77 to i32 store i32 %t78, ptr %t63 br label %scend20 scend20: %t79 = load i32, ptr %t63 %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %wbody17, label %wend18 wbody17: %t81 = load i32, ptr %t8 %t82 = add i32 %t81, 1 store i32 %t82, ptr %t8 br label %wcond16 wend18: br label %wcond0 ifend15: %t83 = load i32, ptr %t25 %t84 = icmp eq i32 %t83, 34 %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then21, label %ifend23 then21: %t87 = load i32, ptr %t8 %t88 = add i32 %t87, 1 store i32 %t88, ptr %t8 %t89 = load i32, ptr %t8 store i32 %t89, ptr %t90 %t91 = load i32, ptr %t14 %t92 = zext i32 %t91 to i64 %t93 = call ptr @malloc(i64 %t92) store ptr %t93, ptr %t94 store i32 0, ptr %t95 br label %wcond24 wcond24: %t97 = load i32, ptr %t8 %t98 = load i32, ptr %t14 %t99 = icmp slt i32 %t97, %t98 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t96 br i1 %t101, label %sc27, label %scend28 sc27: %t103 = load ptr, ptr %t0 %t104 = load i32, ptr %t8 %t105 = getelementptr inbounds i8, ptr %t103, i32 %t104 %t106 = load i8, ptr %t105 %t107 = zext i8 %t106 to i32 %t108 = icmp ne i32 %t107, 34 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 %t111 = zext i1 %t110 to i32 store i32 %t111, ptr %t96 br label %scend28 scend28: %t112 = load i32, ptr %t96 %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %wbody25, label %wend26 wbody25: %t114 = load ptr, ptr %t0 %t115 = load i32, ptr %t8 %t116 = getelementptr inbounds i8, ptr %t114, i32 %t115 %t117 = load i8, ptr %t116 %t118 = zext i8 %t117 to i32 %t119 = icmp eq i32 %t118, 92 %t120 = zext i1 %t119 to i32 %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then29, label %else30 then29: %t122 = load ptr, ptr %t94 %t123 = load i32, ptr %t95 %t124 = getelementptr inbounds i8, ptr %t122, i32 %t123 %t125 = load ptr, ptr %t0 %t126 = load i32, ptr %t8 %t127 = add i32 %t126, 1 %t128 = getelementptr inbounds i8, ptr %t125, i32 %t127 %t129 = load i8, ptr %t128 %t130 = zext i8 %t129 to i32 %t131 = call i32 @fn_unescape(i32 %t130) %t132 = trunc i32 %t131 to i8 store i8 %t132, ptr %t124 %t133 = load i32, ptr %t95 %t134 = add i32 %t133, 1 store i32 %t134, ptr %t95 %t135 = load i32, ptr %t8 %t136 = add i32 %t135, 2 store i32 %t136, ptr %t8 br label %ifend31 else30: %t137 = load ptr, ptr %t94 %t138 = load i32, ptr %t95 %t139 = getelementptr inbounds i8, ptr %t137, i32 %t138 %t140 = load ptr, ptr %t0 %t141 = load i32, ptr %t8 %t142 = getelementptr inbounds i8, ptr %t140, i32 %t141 %t143 = load i8, ptr %t142 %t144 = zext i8 %t143 to i32 %t145 = trunc i32 %t144 to i8 store i8 %t145, ptr %t139 %t146 = load i32, ptr %t95 %t147 = add i32 %t146, 1 store i32 %t147, ptr %t95 %t148 = load i32, ptr %t8 %t149 = add i32 %t148, 1 store i32 %t149, ptr %t8 br label %ifend31 ifend31: br label %wcond24 wend26: %t150 = load i32, ptr %t8 %t151 = add i32 %t150, 1 store i32 %t151, ptr %t8 %t152 = load ptr, ptr %t94 %t153 = load i32, ptr %t95 %t154 = getelementptr inbounds i8, ptr %t152, i32 %t153 %t155 = trunc i32 0 to i8 store i8 %t155, ptr %t154 %t156 = load ptr, ptr %t94 %t157 = load i32, ptr %t10 call void @fn_tok_push(i32 2, ptr %t156, i32 0, i32 %t157) br label %wcond0 ifend23: %t158 = load i32, ptr %t25 %t159 = icmp eq i32 %t158, 96 %t160 = zext i1 %t159 to i32 %t161 = icmp ne i32 %t160, 0 br i1 %t161, label %then32, label %ifend34 then32: %t162 = load ptr, ptr %t0 %t163 = load i32, ptr %t8 %t164 = load i32, ptr %t14 %t165 = call i32 @fn_tmpl_end(ptr %t162, i32 %t163, i32 %t164) store i32 %t165, ptr %t166 %t167 = load i32, ptr %t14 %t168 = zext i32 %t167 to i64 %t169 = call ptr @malloc(i64 %t168) store ptr %t169, ptr %t170 store i32 0, ptr %t171 %t172 = load i32, ptr %t8 %t173 = add i32 %t172, 1 store i32 %t173, ptr %t8 br label %wcond35 wcond35: %t174 = load i32, ptr %t8 %t175 = load i32, ptr %t166 %t176 = icmp slt i32 %t174, %t175 %t177 = zext i1 %t176 to i32 %t178 = icmp ne i32 %t177, 0 br i1 %t178, label %wbody36, label %wend37 wbody36: %t179 = load ptr, ptr %t170 %t180 = load i32, ptr %t171 %t181 = getelementptr inbounds i8, ptr %t179, i32 %t180 %t182 = load ptr, ptr %t0 %t183 = load i32, ptr %t8 %t184 = getelementptr inbounds i8, ptr %t182, i32 %t183 %t185 = load i8, ptr %t184 %t186 = zext i8 %t185 to i32 %t187 = trunc i32 %t186 to i8 store i8 %t187, ptr %t181 %t188 = load i32, ptr %t171 %t189 = add i32 %t188, 1 store i32 %t189, ptr %t171 %t190 = load i32, ptr %t8 %t191 = add i32 %t190, 1 store i32 %t191, ptr %t8 br label %wcond35 wend37: %t192 = load i32, ptr %t166 %t193 = add i32 %t192, 1 store i32 %t193, ptr %t8 %t194 = load ptr, ptr %t170 %t195 = load i32, ptr %t171 %t196 = getelementptr inbounds i8, ptr %t194, i32 %t195 %t197 = trunc i32 0 to i8 store i8 %t197, ptr %t196 %t198 = load ptr, ptr %t170 %t199 = load i32, ptr %t10 call void @fn_tok_push(i32 7, ptr %t198, i32 0, i32 %t199) br label %wcond0 ifend34: %t200 = load i32, ptr %t25 %t201 = icmp eq i32 %t200, 39 %t202 = zext i1 %t201 to i32 %t203 = icmp ne i32 %t202, 0 br i1 %t203, label %then38, label %ifend40 then38: %t204 = load i32, ptr %t8 %t205 = add i32 %t204, 1 store i32 %t205, ptr %t8 store i32 0, ptr %t206 %t207 = load ptr, ptr %t0 %t208 = load i32, ptr %t8 %t209 = getelementptr inbounds i8, ptr %t207, i32 %t208 %t210 = load i8, ptr %t209 %t211 = zext i8 %t210 to i32 %t212 = icmp eq i32 %t211, 92 %t213 = zext i1 %t212 to i32 %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %then41, label %else42 then41: %t215 = load ptr, ptr %t0 %t216 = load i32, ptr %t8 %t217 = add i32 %t216, 1 %t218 = getelementptr inbounds i8, ptr %t215, i32 %t217 %t219 = load i8, ptr %t218 %t220 = zext i8 %t219 to i32 %t221 = call i32 @fn_unescape(i32 %t220) store i32 %t221, ptr %t206 %t222 = load i32, ptr %t8 %t223 = add i32 %t222, 2 store i32 %t223, ptr %t8 br label %ifend43 else42: %t224 = load ptr, ptr %t0 %t225 = load i32, ptr %t8 %t226 = getelementptr inbounds i8, ptr %t224, i32 %t225 %t227 = load i8, ptr %t226 %t228 = zext i8 %t227 to i32 store i32 %t228, ptr %t206 %t229 = load i32, ptr %t8 %t230 = add i32 %t229, 1 store i32 %t230, ptr %t8 br label %ifend43 ifend43: %t231 = load ptr, ptr %t0 %t232 = load i32, ptr %t8 %t233 = getelementptr inbounds i8, ptr %t231, i32 %t232 %t234 = load i8, ptr %t233 %t235 = zext i8 %t234 to i32 %t236 = icmp ne i32 %t235, 39 %t237 = zext i1 %t236 to i32 %t238 = icmp ne i32 %t237, 0 br i1 %t238, label %then44, label %ifend46 then44: %t239 = load i32, ptr %t10 call void @fn_lex_fail(i32 %t239, ptr @.str8) br label %ifend46 ifend46: %t240 = load i32, ptr %t8 %t241 = add i32 %t240, 1 store i32 %t241, ptr %t8 %t242 = load i32, ptr %t206 %t243 = load i32, ptr %t10 call void @fn_tok_push(i32 1, ptr null, i32 %t242, i32 %t243) br label %wcond0 ifend40: %t244 = load i32, ptr %t25 %t245 = call i32 @fn_char_is_digit(i32 %t244) %t246 = icmp ne i32 %t245, 0 br i1 %t246, label %then47, label %ifend49 then47: %t248 = load i32, ptr %t25 %t249 = icmp eq i32 %t248, 48 %t250 = zext i1 %t249 to i32 %t251 = icmp ne i32 %t250, 0 %t252 = zext i1 %t251 to i32 store i32 %t252, ptr %t247 br i1 %t251, label %sc50, label %scend51 sc50: %t253 = load ptr, ptr %t0 %t254 = load i32, ptr %t8 %t255 = add i32 %t254, 1 %t256 = getelementptr inbounds i8, ptr %t253, i32 %t255 %t257 = load i8, ptr %t256 %t258 = zext i8 %t257 to i32 %t259 = icmp eq i32 %t258, 120 %t260 = zext i1 %t259 to i32 %t261 = icmp ne i32 %t260, 0 %t262 = zext i1 %t261 to i32 store i32 %t262, ptr %t247 br label %scend51 scend51: %t263 = load i32, ptr %t247 %t264 = icmp ne i32 %t263, 0 br i1 %t264, label %then52, label %ifend54 then52: store i32 0, ptr %t265 %t267 = sext i32 0 to i64 store i64 %t267, ptr %t266 store i32 0, ptr %t268 %t269 = load i32, ptr %t8 %t270 = add i32 %t269, 2 store i32 %t270, ptr %t8 br label %wcond55 wcond55: %t271 = load i32, ptr %t8 %t272 = load i32, ptr %t14 %t273 = icmp slt i32 %t271, %t272 %t274 = zext i1 %t273 to i32 %t275 = icmp ne i32 %t274, 0 br i1 %t275, label %wbody56, label %wend57 wbody56: %t276 = load ptr, ptr %t0 %t277 = load i32, ptr %t8 %t278 = getelementptr inbounds i8, ptr %t276, i32 %t277 %t279 = load i8, ptr %t278 %t280 = zext i8 %t279 to i32 store i32 %t280, ptr %t281 store i32 0, ptr %t282 %t283 = load i32, ptr %t281 %t284 = call i32 @fn_char_is_digit(i32 %t283) %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then58, label %else59 then58: %t286 = load i32, ptr %t281 %t287 = sub i32 %t286, 48 store i32 %t287, ptr %t282 br label %ifend60 else59: %t289 = load i32, ptr %t281 %t290 = icmp sge i32 %t289, 97 %t291 = zext i1 %t290 to i32 %t292 = icmp ne i32 %t291, 0 %t293 = zext i1 %t292 to i32 store i32 %t293, ptr %t288 br i1 %t292, label %sc61, label %scend62 sc61: %t294 = load i32, ptr %t281 %t295 = icmp sle i32 %t294, 102 %t296 = zext i1 %t295 to i32 %t297 = icmp ne i32 %t296, 0 %t298 = zext i1 %t297 to i32 store i32 %t298, ptr %t288 br label %scend62 scend62: %t299 = load i32, ptr %t288 %t300 = icmp ne i32 %t299, 0 br i1 %t300, label %then63, label %else64 then63: %t301 = load i32, ptr %t281 %t302 = sub i32 %t301, 87 store i32 %t302, ptr %t282 br label %ifend65 else64: %t304 = load i32, ptr %t281 %t305 = icmp sge i32 %t304, 65 %t306 = zext i1 %t305 to i32 %t307 = icmp ne i32 %t306, 0 %t308 = zext i1 %t307 to i32 store i32 %t308, ptr %t303 br i1 %t307, label %sc66, label %scend67 sc66: %t309 = load i32, ptr %t281 %t310 = icmp sle i32 %t309, 70 %t311 = zext i1 %t310 to i32 %t312 = icmp ne i32 %t311, 0 %t313 = zext i1 %t312 to i32 store i32 %t313, ptr %t303 br label %scend67 scend67: %t314 = load i32, ptr %t303 %t315 = icmp ne i32 %t314, 0 br i1 %t315, label %then68, label %else69 then68: %t316 = load i32, ptr %t281 %t317 = sub i32 %t316, 55 store i32 %t317, ptr %t282 br label %ifend70 else69: br label %wend57 ifend70: br label %ifend65 ifend65: br label %ifend60 ifend60: %t318 = load i32, ptr %t265 %t319 = mul i32 %t318, 16 %t320 = load i32, ptr %t282 %t321 = add i32 %t319, %t320 store i32 %t321, ptr %t265 %t322 = load i64, ptr %t266 %t323 = sext i32 16 to i64 %t324 = mul i64 %t322, %t323 %t325 = load i32, ptr %t282 %t326 = sext i32 %t325 to i64 %t327 = add i64 %t324, %t326 store i64 %t327, ptr %t266 %t329 = load i32, ptr %t268 %t330 = icmp sgt i32 %t329, 0 %t331 = zext i1 %t330 to i32 %t332 = icmp ne i32 %t331, 0 %t333 = zext i1 %t332 to i32 store i32 %t333, ptr %t328 br i1 %t332, label %scend72, label %sc71 sc71: %t334 = load i32, ptr %t282 %t335 = icmp sgt i32 %t334, 0 %t336 = zext i1 %t335 to i32 %t337 = icmp ne i32 %t336, 0 %t338 = zext i1 %t337 to i32 store i32 %t338, ptr %t328 br label %scend72 scend72: %t339 = load i32, ptr %t328 %t340 = icmp ne i32 %t339, 0 br i1 %t340, label %then73, label %ifend75 then73: %t341 = load i32, ptr %t268 %t342 = add i32 %t341, 1 store i32 %t342, ptr %t268 br label %ifend75 ifend75: %t343 = load i32, ptr %t8 %t344 = add i32 %t343, 1 store i32 %t344, ptr %t8 br label %wcond55 wend57: store ptr null, ptr %t345 %t346 = load i32, ptr %t268 %t347 = icmp sgt i32 %t346, 8 %t348 = zext i1 %t347 to i32 %t349 = icmp ne i32 %t348, 0 br i1 %t349, label %then76, label %ifend78 then76: %t350 = load i64, ptr %t266 %t351 = call ptr @lp_long_str(i64 %t350) store ptr %t351, ptr %t345 br label %ifend78 ifend78: %t352 = load ptr, ptr %t345 %t353 = load i32, ptr %t265 %t354 = load i32, ptr %t10 call void @fn_tok_push(i32 1, ptr %t352, i32 %t353, i32 %t354) br label %wcond0 ifend54: store i32 0, ptr %t355 %t357 = sext i32 0 to i64 store i64 %t357, ptr %t356 %t358 = load i32, ptr %t8 store i32 %t358, ptr %t359 br label %wcond79 wcond79: %t361 = load i32, ptr %t8 %t362 = load i32, ptr %t14 %t363 = icmp slt i32 %t361, %t362 %t364 = zext i1 %t363 to i32 %t365 = icmp ne i32 %t364, 0 %t366 = zext i1 %t365 to i32 store i32 %t366, ptr %t360 br i1 %t365, label %sc82, label %scend83 sc82: %t367 = load ptr, ptr %t0 %t368 = load i32, ptr %t8 %t369 = getelementptr inbounds i8, ptr %t367, i32 %t368 %t370 = load i8, ptr %t369 %t371 = zext i8 %t370 to i32 %t372 = call i32 @fn_char_is_digit(i32 %t371) %t373 = icmp ne i32 %t372, 0 %t374 = zext i1 %t373 to i32 store i32 %t374, ptr %t360 br label %scend83 scend83: %t375 = load i32, ptr %t360 %t376 = icmp ne i32 %t375, 0 br i1 %t376, label %wbody80, label %wend81 wbody80: %t377 = load i32, ptr %t355 %t378 = mul i32 %t377, 10 %t379 = load ptr, ptr %t0 %t380 = load i32, ptr %t8 %t381 = getelementptr inbounds i8, ptr %t379, i32 %t380 %t382 = load i8, ptr %t381 %t383 = zext i8 %t382 to i32 %t384 = sub i32 %t383, 48 %t385 = add i32 %t378, %t384 store i32 %t385, ptr %t355 %t386 = load i64, ptr %t356 %t387 = sext i32 10 to i64 %t388 = mul i64 %t386, %t387 %t389 = load ptr, ptr %t0 %t390 = load i32, ptr %t8 %t391 = getelementptr inbounds i8, ptr %t389, i32 %t390 %t392 = load i8, ptr %t391 %t393 = zext i8 %t392 to i32 %t394 = sub i32 %t393, 48 %t395 = sext i32 %t394 to i64 %t396 = add i64 %t388, %t395 store i64 %t396, ptr %t356 %t397 = load i32, ptr %t8 %t398 = add i32 %t397, 1 store i32 %t398, ptr %t8 br label %wcond79 wend81: %t401 = load i32, ptr %t8 %t402 = load i32, ptr %t14 %t403 = icmp slt i32 %t401, %t402 %t404 = zext i1 %t403 to i32 %t405 = icmp ne i32 %t404, 0 %t406 = zext i1 %t405 to i32 store i32 %t406, ptr %t400 br i1 %t405, label %sc84, label %scend85 sc84: %t407 = load ptr, ptr %t0 %t408 = load i32, ptr %t8 %t409 = getelementptr inbounds i8, ptr %t407, i32 %t408 %t410 = load i8, ptr %t409 %t411 = zext i8 %t410 to i32 %t412 = icmp eq i32 %t411, 46 %t413 = zext i1 %t412 to i32 %t414 = icmp ne i32 %t413, 0 %t415 = zext i1 %t414 to i32 store i32 %t415, ptr %t400 br label %scend85 scend85: %t416 = load i32, ptr %t400 %t417 = icmp ne i32 %t416, 0 %t418 = zext i1 %t417 to i32 store i32 %t418, ptr %t399 br i1 %t417, label %sc86, label %scend87 sc86: %t419 = load ptr, ptr %t0 %t420 = load i32, ptr %t8 %t421 = add i32 %t420, 1 %t422 = getelementptr inbounds i8, ptr %t419, i32 %t421 %t423 = load i8, ptr %t422 %t424 = zext i8 %t423 to i32 %t425 = call i32 @fn_char_is_digit(i32 %t424) %t426 = icmp ne i32 %t425, 0 %t427 = zext i1 %t426 to i32 store i32 %t427, ptr %t399 br label %scend87 scend87: %t428 = load i32, ptr %t399 %t429 = icmp ne i32 %t428, 0 br i1 %t429, label %then88, label %ifend90 then88: %t430 = load i32, ptr %t8 %t431 = add i32 %t430, 1 store i32 %t431, ptr %t8 store i32 0, ptr %t432 store i32 1, ptr %t433 br label %wcond91 wcond91: %t435 = load i32, ptr %t8 %t436 = load i32, ptr %t14 %t437 = icmp slt i32 %t435, %t436 %t438 = zext i1 %t437 to i32 %t439 = icmp ne i32 %t438, 0 %t440 = zext i1 %t439 to i32 store i32 %t440, ptr %t434 br i1 %t439, label %sc94, label %scend95 sc94: %t441 = load ptr, ptr %t0 %t442 = load i32, ptr %t8 %t443 = getelementptr inbounds i8, ptr %t441, i32 %t442 %t444 = load i8, ptr %t443 %t445 = zext i8 %t444 to i32 %t446 = call i32 @fn_char_is_digit(i32 %t445) %t447 = icmp ne i32 %t446, 0 %t448 = zext i1 %t447 to i32 store i32 %t448, ptr %t434 br label %scend95 scend95: %t449 = load i32, ptr %t434 %t450 = icmp ne i32 %t449, 0 br i1 %t450, label %wbody92, label %wend93 wbody92: %t451 = load i32, ptr %t433 %t452 = icmp slt i32 %t451, 10000 %t453 = zext i1 %t452 to i32 %t454 = icmp ne i32 %t453, 0 br i1 %t454, label %then96, label %ifend98 then96: %t455 = load i32, ptr %t432 %t456 = mul i32 %t455, 10 %t457 = load ptr, ptr %t0 %t458 = load i32, ptr %t8 %t459 = getelementptr inbounds i8, ptr %t457, i32 %t458 %t460 = load i8, ptr %t459 %t461 = zext i8 %t460 to i32 %t462 = sub i32 %t461, 48 %t463 = add i32 %t456, %t462 store i32 %t463, ptr %t432 %t464 = load i32, ptr %t433 %t465 = mul i32 %t464, 10 store i32 %t465, ptr %t433 br label %ifend98 ifend98: %t466 = load i32, ptr %t8 %t467 = add i32 %t466, 1 store i32 %t467, ptr %t8 br label %wcond91 wend93: %t468 = load i32, ptr %t355 %t469 = shl i32 %t468, 16 %t470 = load i32, ptr %t432 %t471 = shl i32 %t470, 16 %t472 = load i32, ptr %t433 %t473 = lshr i32 %t472, 1 %t474 = add i32 %t471, %t473 %t475 = load i32, ptr %t433 %t476 = sdiv i32 %t474, %t475 %t477 = add i32 %t469, %t476 store i32 %t477, ptr %t478 %t479 = load ptr, ptr %t0 %t480 = load i32, ptr %t359 %t481 = load i32, ptr %t8 %t482 = call ptr @lp_str_slice(ptr %t479, i32 %t480, i32 %t481) %t483 = load i32, ptr %t478 %t484 = load i32, ptr %t10 call void @fn_tok_push(i32 6, ptr %t482, i32 %t483, i32 %t484) br label %wcond0 ifend90: store ptr null, ptr %t485 %t486 = load i64, ptr %t356 %t487 = sext i32 2147483647 to i64 %t488 = icmp sgt i64 %t486, %t487 %t489 = zext i1 %t488 to i32 %t490 = icmp ne i32 %t489, 0 br i1 %t490, label %then99, label %ifend101 then99: %t491 = load i64, ptr %t356 %t492 = call ptr @lp_long_str(i64 %t491) store ptr %t492, ptr %t485 br label %ifend101 ifend101: %t493 = load ptr, ptr %t485 %t494 = load i32, ptr %t355 %t495 = load i32, ptr %t10 call void @fn_tok_push(i32 1, ptr %t493, i32 %t494, i32 %t495) br label %wcond0 ifend49: %t496 = load i32, ptr %t25 %t497 = call i32 @fn_char_is_alpha(i32 %t496) %t498 = icmp ne i32 %t497, 0 br i1 %t498, label %then102, label %ifend104 then102: %t499 = load i32, ptr %t8 store i32 %t499, ptr %t500 br label %wcond105 wcond105: %t502 = load i32, ptr %t8 %t503 = load i32, ptr %t14 %t504 = icmp slt i32 %t502, %t503 %t505 = zext i1 %t504 to i32 %t506 = icmp ne i32 %t505, 0 %t507 = zext i1 %t506 to i32 store i32 %t507, ptr %t501 br i1 %t506, label %sc108, label %scend109 sc108: %t508 = load ptr, ptr %t0 %t509 = load i32, ptr %t8 %t510 = getelementptr inbounds i8, ptr %t508, i32 %t509 %t511 = load i8, ptr %t510 %t512 = zext i8 %t511 to i32 %t513 = call i32 @fn_char_is_alnum(i32 %t512) %t514 = icmp ne i32 %t513, 0 %t515 = zext i1 %t514 to i32 store i32 %t515, ptr %t501 br label %scend109 scend109: %t516 = load i32, ptr %t501 %t517 = icmp ne i32 %t516, 0 br i1 %t517, label %wbody106, label %wend107 wbody106: %t518 = load i32, ptr %t8 %t519 = add i32 %t518, 1 store i32 %t519, ptr %t8 br label %wcond105 wend107: %t520 = load ptr, ptr %t0 %t521 = load i32, ptr %t500 %t522 = load i32, ptr %t8 %t523 = call ptr @lp_str_slice(ptr %t520, i32 %t521, i32 %t522) %t524 = load i32, ptr %t10 call void @fn_tok_push(i32 0, ptr %t523, i32 0, i32 %t524) br label %wcond0 ifend104: %t525 = load i32, ptr %t25 %t526 = icmp eq i32 %t525, 59 %t527 = zext i1 %t526 to i32 %t528 = icmp ne i32 %t527, 0 br i1 %t528, label %then110, label %ifend112 then110: %t529 = load i32, ptr %t10 call void @fn_tok_push(i32 4, ptr null, i32 0, i32 %t529) %t530 = load i32, ptr %t8 %t531 = add i32 %t530, 1 store i32 %t531, ptr %t8 br label %wcond0 ifend112: %t532 = load ptr, ptr %t0 %t533 = load i32, ptr %t8 %t534 = call i32 @fn_two_at(ptr %t532, i32 %t533, i32 45, i32 62) %t535 = icmp ne i32 %t534, 0 br i1 %t535, label %then113, label %ifend115 then113: %t536 = load ptr, ptr %t0 %t537 = load i32, ptr %t8 %t538 = load i32, ptr %t8 %t539 = add i32 %t538, 2 %t540 = call ptr @lp_str_slice(ptr %t536, i32 %t537, i32 %t539) %t541 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t540, i32 0, i32 %t541) %t542 = load i32, ptr %t8 %t543 = add i32 %t542, 2 store i32 %t543, ptr %t8 br label %wcond0 ifend115: %t544 = load ptr, ptr %t0 %t545 = load i32, ptr %t8 %t546 = call i32 @fn_two_at(ptr %t544, i32 %t545, i32 61, i32 62) %t547 = icmp ne i32 %t546, 0 br i1 %t547, label %then116, label %ifend118 then116: %t548 = load ptr, ptr %t0 %t549 = load i32, ptr %t8 %t550 = load i32, ptr %t8 %t551 = add i32 %t550, 2 %t552 = call ptr @lp_str_slice(ptr %t548, i32 %t549, i32 %t551) %t553 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t552, i32 0, i32 %t553) %t554 = load i32, ptr %t8 %t555 = add i32 %t554, 2 store i32 %t555, ptr %t8 br label %wcond0 ifend118: %t556 = load ptr, ptr %t0 %t557 = load i32, ptr %t8 %t558 = call i32 @fn_two_at(ptr %t556, i32 %t557, i32 61, i32 61) %t559 = icmp ne i32 %t558, 0 br i1 %t559, label %then119, label %ifend121 then119: %t560 = load ptr, ptr %t0 %t561 = load i32, ptr %t8 %t562 = load i32, ptr %t8 %t563 = add i32 %t562, 2 %t564 = call ptr @lp_str_slice(ptr %t560, i32 %t561, i32 %t563) %t565 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t564, i32 0, i32 %t565) %t566 = load i32, ptr %t8 %t567 = add i32 %t566, 2 store i32 %t567, ptr %t8 br label %wcond0 ifend121: %t568 = load ptr, ptr %t0 %t569 = load i32, ptr %t8 %t570 = call i32 @fn_two_at(ptr %t568, i32 %t569, i32 33, i32 61) %t571 = icmp ne i32 %t570, 0 br i1 %t571, label %then122, label %ifend124 then122: %t572 = load ptr, ptr %t0 %t573 = load i32, ptr %t8 %t574 = load i32, ptr %t8 %t575 = add i32 %t574, 2 %t576 = call ptr @lp_str_slice(ptr %t572, i32 %t573, i32 %t575) %t577 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t576, i32 0, i32 %t577) %t578 = load i32, ptr %t8 %t579 = add i32 %t578, 2 store i32 %t579, ptr %t8 br label %wcond0 ifend124: %t580 = load ptr, ptr %t0 %t581 = load i32, ptr %t8 %t582 = call i32 @fn_two_at(ptr %t580, i32 %t581, i32 60, i32 61) %t583 = icmp ne i32 %t582, 0 br i1 %t583, label %then125, label %ifend127 then125: %t584 = load ptr, ptr %t0 %t585 = load i32, ptr %t8 %t586 = load i32, ptr %t8 %t587 = add i32 %t586, 2 %t588 = call ptr @lp_str_slice(ptr %t584, i32 %t585, i32 %t587) %t589 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t588, i32 0, i32 %t589) %t590 = load i32, ptr %t8 %t591 = add i32 %t590, 2 store i32 %t591, ptr %t8 br label %wcond0 ifend127: %t592 = load ptr, ptr %t0 %t593 = load i32, ptr %t8 %t594 = call i32 @fn_two_at(ptr %t592, i32 %t593, i32 62, i32 61) %t595 = icmp ne i32 %t594, 0 br i1 %t595, label %then128, label %ifend130 then128: %t596 = load ptr, ptr %t0 %t597 = load i32, ptr %t8 %t598 = load i32, ptr %t8 %t599 = add i32 %t598, 2 %t600 = call ptr @lp_str_slice(ptr %t596, i32 %t597, i32 %t599) %t601 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t600, i32 0, i32 %t601) %t602 = load i32, ptr %t8 %t603 = add i32 %t602, 2 store i32 %t603, ptr %t8 br label %wcond0 ifend130: %t604 = load ptr, ptr %t0 %t605 = load i32, ptr %t8 %t606 = call i32 @fn_two_at(ptr %t604, i32 %t605, i32 43, i32 61) %t607 = icmp ne i32 %t606, 0 br i1 %t607, label %then131, label %ifend133 then131: %t608 = load ptr, ptr %t0 %t609 = load i32, ptr %t8 %t610 = load i32, ptr %t8 %t611 = add i32 %t610, 2 %t612 = call ptr @lp_str_slice(ptr %t608, i32 %t609, i32 %t611) %t613 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t612, i32 0, i32 %t613) %t614 = load i32, ptr %t8 %t615 = add i32 %t614, 2 store i32 %t615, ptr %t8 br label %wcond0 ifend133: %t616 = load ptr, ptr %t0 %t617 = load i32, ptr %t8 %t618 = call i32 @fn_two_at(ptr %t616, i32 %t617, i32 45, i32 61) %t619 = icmp ne i32 %t618, 0 br i1 %t619, label %then134, label %ifend136 then134: %t620 = load ptr, ptr %t0 %t621 = load i32, ptr %t8 %t622 = load i32, ptr %t8 %t623 = add i32 %t622, 2 %t624 = call ptr @lp_str_slice(ptr %t620, i32 %t621, i32 %t623) %t625 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t624, i32 0, i32 %t625) %t626 = load i32, ptr %t8 %t627 = add i32 %t626, 2 store i32 %t627, ptr %t8 br label %wcond0 ifend136: %t628 = load ptr, ptr %t0 %t629 = load i32, ptr %t8 %t630 = call i32 @fn_two_at(ptr %t628, i32 %t629, i32 42, i32 61) %t631 = icmp ne i32 %t630, 0 br i1 %t631, label %then137, label %ifend139 then137: %t632 = load ptr, ptr %t0 %t633 = load i32, ptr %t8 %t634 = load i32, ptr %t8 %t635 = add i32 %t634, 2 %t636 = call ptr @lp_str_slice(ptr %t632, i32 %t633, i32 %t635) %t637 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t636, i32 0, i32 %t637) %t638 = load i32, ptr %t8 %t639 = add i32 %t638, 2 store i32 %t639, ptr %t8 br label %wcond0 ifend139: %t640 = load ptr, ptr %t0 %t641 = load i32, ptr %t8 %t642 = call i32 @fn_two_at(ptr %t640, i32 %t641, i32 47, i32 61) %t643 = icmp ne i32 %t642, 0 br i1 %t643, label %then140, label %ifend142 then140: %t644 = load ptr, ptr %t0 %t645 = load i32, ptr %t8 %t646 = load i32, ptr %t8 %t647 = add i32 %t646, 2 %t648 = call ptr @lp_str_slice(ptr %t644, i32 %t645, i32 %t647) %t649 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t648, i32 0, i32 %t649) %t650 = load i32, ptr %t8 %t651 = add i32 %t650, 2 store i32 %t651, ptr %t8 br label %wcond0 ifend142: %t652 = load ptr, ptr %t0 %t653 = load i32, ptr %t8 %t654 = call i32 @fn_two_at(ptr %t652, i32 %t653, i32 46, i32 46) %t655 = icmp ne i32 %t654, 0 br i1 %t655, label %then143, label %ifend145 then143: %t656 = load ptr, ptr %t0 %t657 = load i32, ptr %t8 %t658 = load i32, ptr %t8 %t659 = add i32 %t658, 2 %t660 = call ptr @lp_str_slice(ptr %t656, i32 %t657, i32 %t659) %t661 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t660, i32 0, i32 %t661) %t662 = load i32, ptr %t8 %t663 = add i32 %t662, 2 store i32 %t663, ptr %t8 br label %wcond0 ifend145: %t664 = load ptr, ptr %t0 %t665 = load i32, ptr %t8 %t666 = call i32 @fn_two_at(ptr %t664, i32 %t665, i32 60, i32 60) %t667 = icmp ne i32 %t666, 0 br i1 %t667, label %then146, label %ifend148 then146: %t668 = load ptr, ptr %t0 %t669 = load i32, ptr %t8 %t670 = load i32, ptr %t8 %t671 = add i32 %t670, 2 %t672 = call ptr @lp_str_slice(ptr %t668, i32 %t669, i32 %t671) %t673 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t672, i32 0, i32 %t673) %t674 = load i32, ptr %t8 %t675 = add i32 %t674, 2 store i32 %t675, ptr %t8 br label %wcond0 ifend148: %t676 = load ptr, ptr %t0 %t677 = load i32, ptr %t8 %t678 = call i32 @fn_two_at(ptr %t676, i32 %t677, i32 62, i32 62) %t679 = icmp ne i32 %t678, 0 br i1 %t679, label %then149, label %ifend151 then149: %t680 = load ptr, ptr %t0 %t681 = load i32, ptr %t8 %t682 = load i32, ptr %t8 %t683 = add i32 %t682, 2 %t684 = call ptr @lp_str_slice(ptr %t680, i32 %t681, i32 %t683) %t685 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t684, i32 0, i32 %t685) %t686 = load i32, ptr %t8 %t687 = add i32 %t686, 2 store i32 %t687, ptr %t8 br label %wcond0 ifend151: %t688 = load i32, ptr %t25 %t689 = call i32 @fn_is_op1(i32 %t688) %t690 = icmp ne i32 %t689, 0 br i1 %t690, label %then152, label %ifend154 then152: %t691 = load ptr, ptr %t0 %t692 = load i32, ptr %t8 %t693 = load i32, ptr %t8 %t694 = add i32 %t693, 1 %t695 = call ptr @lp_str_slice(ptr %t691, i32 %t692, i32 %t694) %t696 = load i32, ptr %t10 call void @fn_tok_push(i32 3, ptr %t695, i32 0, i32 %t696) %t697 = load i32, ptr %t8 %t698 = add i32 %t697, 1 store i32 %t698, ptr %t8 br label %wcond0 ifend154: %t699 = load i32, ptr %t10 %t700 = load i32, ptr %t25 call void @fn_lex_error(i32 %t699, i32 %t700) br label %wcond0 wend2: %t701 = load i32, ptr %t10 call void @fn_tok_push(i32 5, ptr null, i32 0, i32 %t701) br label %ret ret: ret void } define i32 @fn_unsafe_trusted(ptr %arg_f) { entry: %retval = alloca i32 %t0 = alloca ptr %t3 = alloca i32 store ptr %arg_f, ptr %t0 %t1 = load i32, ptr @g_g_unsafe_all %t2 = icmp ne i32 %t1, 0 br i1 %t2, label %then0, label %ifend2 then0: store i32 1, ptr %retval br label %ret ifend2: store i32 0, ptr %t3 br label %wcond3 wcond3: %t4 = load i32, ptr %t3 %t5 = load ptr, ptr @g_g_trusted_files %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t4, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody4, label %wend5 wbody4: %t11 = load ptr, ptr @g_g_trusted_files %t12 = load i32, ptr %t3 %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 %t12, %t16 br i1 %t17, label %ixok6, label %ixbad7 ixbad7: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str9, i32 %t12, i32 %t16) call void @exit(i32 1) unreachable ixok6: %t19 = getelementptr inbounds ptr, ptr %t14, i32 %t12 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t24 = load i32, ptr %t3 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t3 br label %wcond3 wend5: store i32 0, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define ptr @fn_module_of(ptr %arg_f) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca i32 store ptr %arg_f, ptr %t0 %t1 = load ptr, ptr @g_g_mod_file %t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t3 = load i32, ptr %t2 %t4 = sub i32 %t3, 1 store i32 %t4, ptr %t5 br label %wcond0 wcond0: %t6 = load i32, ptr %t5 %t7 = icmp sge i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_g_mod_file %t11 = load i32, ptr %t5 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str10, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t0 %t21 = call i32 @lp_str_eq(ptr %t19, ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load ptr, ptr @g_g_mod_name %t24 = load i32, ptr %t5 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str11, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 store ptr %t32, ptr %retval br label %ret ifend7: %t33 = load i32, ptr %t5 %t34 = sub i32 %t33, 1 store i32 %t34, ptr %t5 br label %wcond0 wend2: store ptr @.str12, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define void @fn_module_set(ptr %arg_f, ptr %arg_name) { entry: %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_f, ptr %t0 store ptr %arg_name, ptr %t1 %t2 = load ptr, ptr @g_g_mod_file %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 %t6 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 %t7 = load i32, ptr %t4 %t8 = load i32, ptr %t5 %t9 = icmp sge i32 %t7, %t8 br i1 %t9, label %grow0, label %put1 grow0: %t10 = mul i32 %t8, 2 %t11 = icmp eq i32 %t8, 0 %t12 = select i1 %t11, i32 8, i32 %t10 %t13 = getelementptr ptr, ptr null, i32 1 %t14 = ptrtoint ptr %t13 to i64 %t15 = zext i32 %t12 to i64 %t16 = mul i64 %t15, %t14 %t17 = load ptr, ptr %t6 %t18 = call ptr @realloc(ptr %t17, i64 %t16) store ptr %t18, ptr %t6 store i32 %t12, ptr %t5 br label %put1 put1: %t19 = load ptr, ptr %t6 %t20 = getelementptr inbounds ptr, ptr %t19, i32 %t7 store ptr %t3, ptr %t20 %t21 = add i32 %t7, 1 store i32 %t21, ptr %t4 %t22 = load ptr, ptr @g_g_mod_name %t23 = load ptr, ptr %t1 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t25 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 2 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t27 = load i32, ptr %t24 %t28 = load i32, ptr %t25 %t29 = icmp sge i32 %t27, %t28 br i1 %t29, label %grow2, label %put3 grow2: %t30 = mul i32 %t28, 2 %t31 = icmp eq i32 %t28, 0 %t32 = select i1 %t31, i32 8, i32 %t30 %t33 = getelementptr ptr, ptr null, i32 1 %t34 = ptrtoint ptr %t33 to i64 %t35 = zext i32 %t32 to i64 %t36 = mul i64 %t35, %t34 %t37 = load ptr, ptr %t26 %t38 = call ptr @realloc(ptr %t37, i64 %t36) store ptr %t38, ptr %t26 store i32 %t32, ptr %t25 br label %put3 put3: %t39 = load ptr, ptr %t26 %t40 = getelementptr inbounds ptr, ptr %t39, i32 %t27 store ptr %t23, ptr %t40 %t41 = add i32 %t27, 1 store i32 %t41, ptr %t24 br label %ret ret: ret void } define i32 @fn_is_float_file(ptr %arg_f) { entry: %retval = alloca i32 %t0 = alloca ptr %t5 = alloca i32 store ptr %arg_f, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: store i32 0, ptr %t5 br label %wcond3 wcond3: %t6 = load i32, ptr %t5 %t7 = load ptr, ptr @g_g_float_files %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t6, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody4, label %wend5 wbody4: %t13 = load ptr, ptr @g_g_float_files %t14 = load i32, ptr %t5 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok6, label %ixbad7 ixbad7: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str13, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok6: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t22, ptr %t23) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t26 = load i32, ptr %t5 %t27 = add i32 %t26, 1 store i32 %t27, ptr %t5 br label %wcond3 wend5: store i32 0, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define ptr @fn_cur() { entry: %retval = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok0, label %ixbad1 ixbad1: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str14, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok0: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_pk(i32 %arg_o) { entry: %retval = alloca ptr %t0 = alloca i32 store i32 %arg_o, ptr %t0 %t1 = load ptr, ptr @g_toks %t2 = load i32, ptr @g_pi %t3 = load i32, ptr %t0 %t4 = add i32 %t2, %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 %t4, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str15, i32 %t4, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 %t4 %t12 = load ptr, ptr %t11 store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define i32 @fn_is_op(ptr %arg_v) { entry: %retval = alloca i32 %t0 = alloca ptr %t11 = alloca ptr %t12 = alloca i32 store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr @g_toks %t2 = load i32, ptr @g_pi %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str16, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t11 %t13 = load ptr, ptr %t11 %t14 = getelementptr inbounds %Cmp_Tok, ptr %t13, i32 0, i32 0 %t15 = load i32, ptr %t14 %t16 = icmp eq i32 %t15, 3 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t12 br i1 %t18, label %sc2, label %scend3 sc2: %t20 = load ptr, ptr %t11 %t21 = getelementptr inbounds %Cmp_Tok, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t22, ptr %t23) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t12 br label %scend3 scend3: %t27 = load i32, ptr %t12 store i32 %t27, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define i32 @fn_is_id(ptr %arg_v) { entry: %retval = alloca i32 %t0 = alloca ptr %t11 = alloca ptr %t12 = alloca i32 store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr @g_toks %t2 = load i32, ptr @g_pi %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str17, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t11 %t13 = load ptr, ptr %t11 %t14 = getelementptr inbounds %Cmp_Tok, ptr %t13, i32 0, i32 0 %t15 = load i32, ptr %t14 %t16 = icmp eq i32 %t15, 0 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t12 br i1 %t18, label %sc2, label %scend3 sc2: %t20 = load ptr, ptr %t11 %t21 = getelementptr inbounds %Cmp_Tok, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t22, ptr %t23) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t12 br label %scend3 scend3: %t27 = load i32, ptr %t12 store i32 %t27, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define i32 @fn_is_kw(ptr %arg_v) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_is_id(ptr %t1) store i32 %t2, ptr %retval br label %ret ret: %t3 = load i32, ptr %retval ret i32 %t3 } define void @fn_perr(ptr %arg_msg) { entry: %t0 = alloca ptr %t2 = alloca ptr %t4 = alloca i32 %t40 = alloca ptr store ptr %arg_msg, ptr %t0 %t1 = load ptr, ptr @g_g_err_file store ptr %t1, ptr %t2 %t3 = load i32, ptr @g_g_err_line store i32 %t3, ptr %t4 %t5 = load i32, ptr @g_g_parsing %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr @g_g_parse_file store ptr %t7, ptr %t2 store i32 0, ptr %t4 %t8 = load i32, ptr @g_pi %t9 = load ptr, ptr @g_toks %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t8, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then3, label %ifend5 then3: %t15 = load ptr, ptr @g_toks %t16 = load i32, ptr @g_pi %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 %t16, %t20 br i1 %t21, label %ixok6, label %ixbad7 ixbad7: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str18, i32 %t16, i32 %t20) call void @exit(i32 1) unreachable ixok6: %t23 = getelementptr inbounds ptr, ptr %t18, i32 %t16 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Tok, ptr %t24, i32 0, i32 3 %t26 = load i32, ptr %t25 store i32 %t26, ptr %t4 br label %ifend5 ifend5: br label %ifend2 ifend2: %t27 = load ptr, ptr %t2 %t28 = icmp eq ptr %t27, null %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then8, label %ifend10 then8: store ptr @.str19, ptr %t2 br label %ifend10 ifend10: %t31 = load ptr, ptr %t2 %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str20) %t33 = load i32, ptr %t4 %t34 = call ptr @lp_int_str(i32 %t33) %t35 = call ptr @lp_str_concat(ptr %t32, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str21) %t37 = load ptr, ptr %t0 %t38 = call ptr @lp_str_concat(ptr %t36, ptr %t37) %t39 = call ptr @lp_str_concat(ptr %t38, ptr @.str22) store ptr %t39, ptr %t40 %t41 = load ptr, ptr @__stderrp %t42 = load ptr, ptr %t40 %t43 = load ptr, ptr %t40 %t44 = call i64 @strlen(ptr %t43) %t45 = trunc i64 %t44 to i32 %t46 = zext i32 %t45 to i64 %t47 = call i64 @fwrite(ptr %t42, i64 1, i64 %t46, ptr %t41) %t48 = trunc i64 %t47 to i32 call void @exit(i32 1) unreachable ret: ret void } define ptr @fn_tok_desc() { entry: %retval = alloca ptr %t10 = alloca ptr %t23 = alloca i32 %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok0, label %ixbad1 ixbad1: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str23, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok0: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Tok, ptr %t11, i32 0, i32 0 %t13 = load i32, ptr %t12 %t14 = icmp eq i32 %t13, 5 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: store ptr @.str24, ptr %retval br label %ret ifend4: %t17 = load ptr, ptr %t10 %t18 = getelementptr inbounds %Cmp_Tok, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 4 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store ptr @.str25, ptr %retval br label %ret ifend7: %t24 = load ptr, ptr %t10 %t25 = getelementptr inbounds %Cmp_Tok, ptr %t24, i32 0, i32 0 %t26 = load i32, ptr %t25 %t27 = icmp eq i32 %t26, 1 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t23 br i1 %t29, label %scend9, label %sc8 sc8: %t31 = load ptr, ptr %t10 %t32 = getelementptr inbounds %Cmp_Tok, ptr %t31, i32 0, i32 0 %t33 = load i32, ptr %t32 %t34 = icmp eq i32 %t33, 6 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t23 br label %scend9 scend9: %t38 = load i32, ptr %t23 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then10, label %ifend12 then10: %t40 = load ptr, ptr %t10 %t41 = getelementptr inbounds %Cmp_Tok, ptr %t40, i32 0, i32 2 %t42 = load i32, ptr %t41 %t43 = call ptr @fn_itoa(i32 %t42) %t44 = call ptr @lp_str_concat(ptr @.str26, ptr %t43) store ptr %t44, ptr %retval br label %ret ifend12: %t45 = load ptr, ptr %t10 %t46 = getelementptr inbounds %Cmp_Tok, ptr %t45, i32 0, i32 0 %t47 = load i32, ptr %t46 %t48 = icmp eq i32 %t47, 2 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then13, label %ifend15 then13: %t51 = load ptr, ptr %t10 %t52 = getelementptr inbounds %Cmp_Tok, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t52 %t54 = call ptr @lp_str_concat(ptr @.str27, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str28) store ptr %t55, ptr %retval br label %ret ifend15: %t56 = load ptr, ptr %t10 %t57 = getelementptr inbounds %Cmp_Tok, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = call ptr @lp_str_concat(ptr @.str29, ptr %t58) %t60 = call ptr @lp_str_concat(ptr %t59, ptr @.str30) store ptr %t60, ptr %retval br label %ret ret: %t61 = load ptr, ptr %retval ret ptr %t61 } define void @fn_eat_op(ptr %arg_v) { entry: %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_is_op(ptr %t1) %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr @.str31, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str32) %t9 = call ptr @fn_tok_desc() %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) call void @fn_perr(ptr %t10) br label %ifend2 ifend2: %t11 = load i32, ptr @g_pi %t12 = add i32 %t11, 1 store i32 %t12, ptr @g_pi br label %ret ret: ret void } define ptr @fn_eat_id() { entry: %retval = alloca ptr %t10 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok0, label %ixbad1 ixbad1: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str33, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok0: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Tok, ptr %t11, i32 0, i32 0 %t13 = load i32, ptr %t12 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: %t17 = call ptr @fn_tok_desc() %t18 = call ptr @lp_str_concat(ptr @.str34, ptr %t17) call void @fn_perr(ptr %t18) br label %ifend4 ifend4: %t19 = load i32, ptr @g_pi %t20 = add i32 %t19, 1 store i32 %t20, ptr @g_pi %t21 = load ptr, ptr %t10 %t22 = getelementptr inbounds %Cmp_Tok, ptr %t21, i32 0, i32 1 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %retval br label %ret ret: %t24 = load ptr, ptr %retval ret ptr %t24 } define void @fn_skipnl() { entry: br label %wcond0 wcond0: %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok3, label %ixbad4 ixbad4: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str35, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok3: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Tok, ptr %t9, i32 0, i32 0 %t11 = load i32, ptr %t10 %t12 = icmp eq i32 %t11, 4 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %wbody1, label %wend2 wbody1: %t15 = load i32, ptr @g_pi %t16 = add i32 %t15, 1 store i32 %t16, ptr @g_pi br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_buffer_slice_ty(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str36) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str37, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str38) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str39, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str40) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str41, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str42) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store ptr @.str43, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str44) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store ptr @.str45, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 store ptr %t16, ptr %retval br label %ret ret: %t17 = load ptr, ptr %retval ret ptr %t17 } define ptr @fn_ptype() { entry: %retval = alloca ptr %t0 = alloca i32 %t36 = alloca ptr %t37 = alloca i32 %t55 = alloca ptr %t70 = alloca ptr %t77 = alloca ptr %t84 = alloca i32 %t112 = alloca ptr %t1 = load ptr, ptr @g_toks %t2 = load i32, ptr @g_pi %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str46, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %Cmp_Tok, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr %t11 %t13 = call i32 @lp_str_eq(ptr %t12, ptr @.str47) %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t0 br i1 %t14, label %sc2, label %scend3 sc2: %t16 = load ptr, ptr @g_toks %t17 = load i32, ptr @g_pi %t18 = add i32 %t17, 1 %t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok4, label %ixbad5 ixbad5: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str48, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok4: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Tok, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str49) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t0 br label %scend3 scend3: %t32 = load i32, ptr %t0 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then6, label %ifend8 then6: %t34 = load i32, ptr @g_pi %t35 = add i32 %t34, 1 store i32 %t35, ptr @g_pi call void @fn_eat_op(ptr @.str50) store ptr @.str51, ptr %t36 store i32 1, ptr %t37 br label %wcond9 wcond9: %t38 = call i32 @fn_is_op(ptr @.str52) %t39 = icmp eq i32 %t38, 0 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %wbody10, label %wend11 wbody10: %t42 = load i32, ptr %t37 %t43 = icmp eq i32 %t42, 0 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then12, label %ifend14 then12: %t46 = load ptr, ptr %t36 %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str53) store ptr %t47, ptr %t36 br label %ifend14 ifend14: %t48 = load ptr, ptr %t36 %t49 = call ptr @fn_ptype() %t50 = call ptr @lp_str_concat(ptr %t48, ptr %t49) store ptr %t50, ptr %t36 store i32 0, ptr %t37 %t51 = call i32 @fn_is_op(ptr @.str54) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then15, label %ifend17 then15: %t53 = load i32, ptr @g_pi %t54 = add i32 %t53, 1 store i32 %t54, ptr @g_pi br label %ifend17 ifend17: br label %wcond9 wend11: call void @fn_eat_op(ptr @.str55) store ptr @.str56, ptr %t55 %t56 = call i32 @fn_is_op(ptr @.str57) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then18, label %ifend20 then18: %t58 = load i32, ptr @g_pi %t59 = add i32 %t58, 1 store i32 %t59, ptr @g_pi %t60 = call ptr @fn_ptype() store ptr %t60, ptr %t55 br label %ifend20 ifend20: %t61 = load ptr, ptr %t36 %t62 = call ptr @lp_str_concat(ptr %t61, ptr @.str58) %t63 = load ptr, ptr %t55 %t64 = call ptr @lp_str_concat(ptr %t62, ptr %t63) store ptr %t64, ptr %retval br label %ret ifend8: %t65 = call i32 @fn_is_op(ptr @.str59) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then21, label %ifend23 then21: %t67 = load i32, ptr @g_pi %t68 = add i32 %t67, 1 store i32 %t68, ptr @g_pi call void @fn_eat_op(ptr @.str60) %t69 = call ptr @fn_ptype() store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t70 %t72 = call i64 @strlen(ptr %t71) %t73 = trunc i64 %t72 to i32 %t74 = add i32 %t73, 3 %t75 = zext i32 %t74 to i64 %t76 = call ptr @malloc(i64 %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds i8, ptr %t78, i32 0 %t80 = trunc i32 91 to i8 store i8 %t80, ptr %t79 %t81 = load ptr, ptr %t77 %t82 = getelementptr inbounds i8, ptr %t81, i32 1 %t83 = trunc i32 93 to i8 store i8 %t83, ptr %t82 store i32 0, ptr %t84 br label %wcond24 wcond24: %t85 = load ptr, ptr %t70 %t86 = load i32, ptr %t84 %t87 = getelementptr inbounds i8, ptr %t85, i32 %t86 %t88 = load i8, ptr %t87 %t89 = zext i8 %t88 to i32 %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %wbody25, label %wend26 wbody25: %t93 = load ptr, ptr %t77 %t94 = load i32, ptr %t84 %t95 = add i32 2, %t94 %t96 = getelementptr inbounds i8, ptr %t93, i32 %t95 %t97 = load ptr, ptr %t70 %t98 = load i32, ptr %t84 %t99 = getelementptr inbounds i8, ptr %t97, i32 %t98 %t100 = load i8, ptr %t99 %t101 = zext i8 %t100 to i32 %t102 = trunc i32 %t101 to i8 store i8 %t102, ptr %t96 %t103 = load i32, ptr %t84 %t104 = add i32 %t103, 1 store i32 %t104, ptr %t84 br label %wcond24 wend26: %t105 = load ptr, ptr %t77 %t106 = load i32, ptr %t84 %t107 = add i32 2, %t106 %t108 = getelementptr inbounds i8, ptr %t105, i32 %t107 %t109 = trunc i32 0 to i8 store i8 %t109, ptr %t108 %t110 = load ptr, ptr %t77 store ptr %t110, ptr %retval br label %ret ifend23: %t111 = call ptr @fn_eat_id() store ptr %t111, ptr %t112 %t113 = call i32 @fn_is_op(ptr @.str61) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then27, label %ifend29 then27: %t115 = load ptr, ptr %t112 %t116 = call ptr @fn_gen_type_args(ptr %t115) store ptr %t116, ptr %retval br label %ret ifend29: %t117 = load ptr, ptr %t112 %t118 = call ptr @fn_buffer_slice_ty(ptr %t117) store ptr %t118, ptr %retval br label %ret ret: %t119 = load ptr, ptr %retval ret ptr %t119 } define ptr @fn_expr() { entry: %retval = alloca ptr %t0 = call ptr @fn_p_or() store ptr %t0, ptr %retval br label %ret ret: %t1 = load ptr, ptr %retval ret ptr %t1 } define void @fn_args_call(ptr %arg_call) { entry: %t0 = alloca ptr %t15 = alloca ptr %t27 = alloca ptr %t28 = alloca i32 %t29 = alloca i32 %t56 = alloca ptr store ptr %arg_call, ptr %t0 call void @fn_eat_op(ptr @.str62) call void @fn_skipnl() br label %wcond0 wcond0: %t1 = call i32 @fn_is_op(ptr @.str63) %t2 = icmp eq i32 %t1, 0 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %wbody1, label %wend2 wbody1: %t5 = load ptr, ptr @g_toks %t6 = load i32, ptr @g_pi %t7 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp ult i32 %t6, %t10 br i1 %t11, label %ixok3, label %ixbad4 ixbad4: %t12 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t12, ptr @.fmt_bounds, ptr @.str64, i32 %t6, i32 %t10) call void @exit(i32 1) unreachable ixok3: %t13 = getelementptr inbounds ptr, ptr %t8, i32 %t6 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t16 = load ptr, ptr @g_toks %t17 = load i32, ptr @g_pi %t18 = add i32 %t17, 1 %t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok5, label %ixbad6 ixbad6: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str65, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok5: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 store ptr %t26, ptr %t27 %t30 = load ptr, ptr %t15 %t31 = getelementptr inbounds %Cmp_Tok, ptr %t30, i32 0, i32 0 %t32 = load i32, ptr %t31 %t33 = icmp eq i32 %t32, 0 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t29 br i1 %t35, label %sc7, label %scend8 sc7: %t37 = load ptr, ptr %t27 %t38 = getelementptr inbounds %Cmp_Tok, ptr %t37, i32 0, i32 0 %t39 = load i32, ptr %t38 %t40 = icmp eq i32 %t39, 3 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t29 br label %scend8 scend8: %t44 = load i32, ptr %t29 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t28 br i1 %t45, label %sc9, label %scend10 sc9: %t47 = load ptr, ptr %t27 %t48 = getelementptr inbounds %Cmp_Tok, ptr %t47, i32 0, i32 1 %t49 = load ptr, ptr %t48 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str66) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t28 br label %scend10 scend10: %t53 = load i32, ptr %t28 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then11, label %else12 then11: %t55 = call ptr @fn_node(i32 42) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 1 %t59 = call ptr @fn_eat_id() store ptr %t59, ptr %t58 call void @fn_eat_op(ptr @.str67) call void @fn_skipnl() %t60 = load ptr, ptr %t56 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4 %t62 = call ptr @fn_expr() store ptr %t62, ptr %t61 %t63 = load ptr, ptr %t0 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 7 %t65 = load ptr, ptr %t64 %t66 = load ptr, ptr %t56 %t67 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t68 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 2 %t69 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 0 %t70 = load i32, ptr %t67 %t71 = load i32, ptr %t68 %t72 = icmp sge i32 %t70, %t71 br i1 %t72, label %grow14, label %put15 grow14: %t73 = mul i32 %t71, 2 %t74 = icmp eq i32 %t71, 0 %t75 = select i1 %t74, i32 8, i32 %t73 %t76 = getelementptr ptr, ptr null, i32 1 %t77 = ptrtoint ptr %t76 to i64 %t78 = zext i32 %t75 to i64 %t79 = mul i64 %t78, %t77 %t80 = load ptr, ptr %t69 %t81 = call ptr @realloc(ptr %t80, i64 %t79) store ptr %t81, ptr %t69 store i32 %t75, ptr %t68 br label %put15 put15: %t82 = load ptr, ptr %t69 %t83 = getelementptr inbounds ptr, ptr %t82, i32 %t70 store ptr %t66, ptr %t83 %t84 = add i32 %t70, 1 store i32 %t84, ptr %t67 br label %ifend13 else12: %t85 = load ptr, ptr %t0 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 7 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_expr() %t89 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t90 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 2 %t91 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 0 %t92 = load i32, ptr %t89 %t93 = load i32, ptr %t90 %t94 = icmp sge i32 %t92, %t93 br i1 %t94, label %grow16, label %put17 grow16: %t95 = mul i32 %t93, 2 %t96 = icmp eq i32 %t93, 0 %t97 = select i1 %t96, i32 8, i32 %t95 %t98 = getelementptr ptr, ptr null, i32 1 %t99 = ptrtoint ptr %t98 to i64 %t100 = zext i32 %t97 to i64 %t101 = mul i64 %t100, %t99 %t102 = load ptr, ptr %t91 %t103 = call ptr @realloc(ptr %t102, i64 %t101) store ptr %t103, ptr %t91 store i32 %t97, ptr %t90 br label %put17 put17: %t104 = load ptr, ptr %t91 %t105 = getelementptr inbounds ptr, ptr %t104, i32 %t92 store ptr %t88, ptr %t105 %t106 = add i32 %t92, 1 store i32 %t106, ptr %t89 br label %ifend13 ifend13: call void @fn_skipnl() %t107 = call i32 @fn_is_op(ptr @.str68) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then18, label %ifend20 then18: %t109 = load i32, ptr @g_pi %t110 = add i32 %t109, 1 store i32 %t110, ptr @g_pi call void @fn_skipnl() br label %ifend20 ifend20: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str69) br label %ret ret: ret void } define ptr @fn_interp_lit(ptr %arg_buf, i32 %arg_len) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t3 = alloca ptr store ptr %arg_buf, ptr %t0 store i32 %arg_len, ptr %t1 %t2 = call ptr @fn_node(i32 31) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 %t7 = load i32, ptr %t1 %t8 = add i32 0, %t7 %t9 = call ptr @lp_str_slice(ptr %t6, i32 0, i32 %t8) store ptr %t9, ptr %t5 %t10 = load ptr, ptr %t3 store ptr %t10, ptr %retval br label %ret ret: %t11 = load ptr, ptr %retval ret ptr %t11 } define ptr @fn_interp_add(ptr %arg_acc, ptr %arg_part) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_acc, ptr %t0 store ptr %arg_part, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = load ptr, ptr %t1 %t9 = call ptr @fn_mkbin(ptr @.str70, ptr %t7, ptr %t8) store ptr %t9, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_interp_str(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = call ptr @fn_node(i32 34) store ptr %t1, ptr %t2 %t3 = call ptr @fn_node(i32 33) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1 store ptr @.str71, ptr %t6 %t7 = load ptr, ptr %t2 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = load ptr, ptr %t4 store ptr %t9, ptr %t8 %t10 = load ptr, ptr %t2 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7 %t12 = load ptr, ptr %t11 %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 2 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t17 = load i32, ptr %t14 %t18 = load i32, ptr %t15 %t19 = icmp sge i32 %t17, %t18 br i1 %t19, label %grow0, label %put1 grow0: %t20 = mul i32 %t18, 2 %t21 = icmp eq i32 %t18, 0 %t22 = select i1 %t21, i32 8, i32 %t20 %t23 = getelementptr ptr, ptr null, i32 1 %t24 = ptrtoint ptr %t23 to i64 %t25 = zext i32 %t22 to i64 %t26 = mul i64 %t25, %t24 %t27 = load ptr, ptr %t16 %t28 = call ptr @realloc(ptr %t27, i64 %t26) store ptr %t28, ptr %t16 store i32 %t22, ptr %t15 br label %put1 put1: %t29 = load ptr, ptr %t16 %t30 = getelementptr inbounds ptr, ptr %t29, i32 %t17 store ptr %t13, ptr %t30 %t31 = add i32 %t17, 1 store i32 %t31, ptr %t14 %t32 = load ptr, ptr %t2 store ptr %t32, ptr %retval br label %ret ret: %t33 = load ptr, ptr %retval ret ptr %t33 } define ptr @fn_parse_hole(ptr %arg_inner) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t4 = alloca i32 %t8 = alloca ptr store ptr %arg_inner, ptr %t0 %t1 = load ptr, ptr @g_toks store ptr %t1, ptr %t2 %t3 = load i32, ptr @g_pi store i32 %t3, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = load i32, ptr @g_g_interp_line call void @fn_lex_at(ptr %t5, i32 %t6) store i32 0, ptr @g_pi call void @fn_skipnl() %t7 = call ptr @fn_expr() store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t2 store ptr %t9, ptr @g_toks %t10 = load i32, ptr %t4 store i32 %t10, ptr @g_pi %t11 = load ptr, ptr %t8 store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define ptr @fn_parse_interp(ptr %arg_raw) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t5 = alloca ptr %t10 = alloca ptr %t11 = alloca i32 %t12 = alloca i32 %t23 = alloca i32 %t57 = alloca i32 %t72 = alloca i32 %t126 = alloca i32 store ptr %arg_raw, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 store ptr null, ptr %t5 %t6 = load i32, ptr %t4 %t7 = add i32 %t6, 1 %t8 = zext i32 %t7 to i64 %t9 = call ptr @malloc(i64 %t8) store ptr %t9, ptr %t10 store i32 0, ptr %t11 store i32 0, ptr %t12 br label %wcond0 wcond0: %t13 = load i32, ptr %t12 %t14 = load i32, ptr %t4 %t15 = icmp slt i32 %t13, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr %t0 %t19 = load i32, ptr %t12 %t20 = getelementptr inbounds i8, ptr %t18, i32 %t19 %t21 = load i8, ptr %t20 %t22 = zext i8 %t21 to i32 store i32 %t22, ptr %t23 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 123 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then3, label %else4 then3: %t28 = load ptr, ptr %t0 %t29 = load i32, ptr %t12 %t30 = add i32 %t29, 1 %t31 = getelementptr inbounds i8, ptr %t28, i32 %t30 %t32 = load i8, ptr %t31 %t33 = zext i8 %t32 to i32 %t34 = icmp eq i32 %t33, 123 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then6, label %ifend8 then6: %t37 = load ptr, ptr %t10 %t38 = load i32, ptr %t11 %t39 = getelementptr inbounds i8, ptr %t37, i32 %t38 %t40 = trunc i32 123 to i8 store i8 %t40, ptr %t39 %t41 = load i32, ptr %t11 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t11 %t43 = load i32, ptr %t12 %t44 = add i32 %t43, 2 store i32 %t44, ptr %t12 br label %wcond0 ifend8: %t45 = load i32, ptr %t11 %t46 = icmp sgt i32 %t45, 0 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then9, label %ifend11 then9: %t49 = load ptr, ptr %t5 %t50 = load ptr, ptr %t10 %t51 = load i32, ptr %t11 %t52 = call ptr @fn_interp_lit(ptr %t50, i32 %t51) %t53 = call ptr @fn_interp_add(ptr %t49, ptr %t52) store ptr %t53, ptr %t5 store i32 0, ptr %t11 br label %ifend11 ifend11: %t54 = load i32, ptr %t12 %t55 = add i32 %t54, 1 store i32 %t55, ptr %t12 %t56 = load i32, ptr %t12 store i32 %t56, ptr %t57 %t58 = load ptr, ptr %t0 %t59 = load i32, ptr %t12 %t60 = load i32, ptr %t4 %t61 = call i32 @fn_hole_end(ptr %t58, i32 %t59, i32 %t60) store i32 %t61, ptr %t12 %t62 = load ptr, ptr %t5 %t63 = load ptr, ptr %t0 %t64 = load i32, ptr %t57 %t65 = load i32, ptr %t12 %t66 = call ptr @lp_str_slice(ptr %t63, i32 %t64, i32 %t65) %t67 = call ptr @fn_parse_hole(ptr %t66) %t68 = call ptr @fn_interp_str(ptr %t67) %t69 = call ptr @fn_interp_add(ptr %t62, ptr %t68) store ptr %t69, ptr %t5 %t70 = load i32, ptr %t12 %t71 = add i32 %t70, 1 store i32 %t71, ptr %t12 br label %ifend5 else4: %t73 = load i32, ptr %t23 %t74 = icmp eq i32 %t73, 125 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t72 br i1 %t76, label %sc12, label %scend13 sc12: %t78 = load ptr, ptr %t0 %t79 = load i32, ptr %t12 %t80 = add i32 %t79, 1 %t81 = getelementptr inbounds i8, ptr %t78, i32 %t80 %t82 = load i8, ptr %t81 %t83 = zext i8 %t82 to i32 %t84 = icmp eq i32 %t83, 125 %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t72 br label %scend13 scend13: %t88 = load i32, ptr %t72 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then14, label %ifend16 then14: %t90 = load ptr, ptr %t10 %t91 = load i32, ptr %t11 %t92 = getelementptr inbounds i8, ptr %t90, i32 %t91 %t93 = trunc i32 125 to i8 store i8 %t93, ptr %t92 %t94 = load i32, ptr %t11 %t95 = add i32 %t94, 1 store i32 %t95, ptr %t11 %t96 = load i32, ptr %t12 %t97 = add i32 %t96, 2 store i32 %t97, ptr %t12 br label %wcond0 ifend16: %t98 = load i32, ptr %t23 %t99 = icmp eq i32 %t98, 92 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then17, label %ifend19 then17: %t102 = load ptr, ptr %t10 %t103 = load i32, ptr %t11 %t104 = getelementptr inbounds i8, ptr %t102, i32 %t103 %t105 = load ptr, ptr %t0 %t106 = load i32, ptr %t12 %t107 = add i32 %t106, 1 %t108 = getelementptr inbounds i8, ptr %t105, i32 %t107 %t109 = load i8, ptr %t108 %t110 = zext i8 %t109 to i32 %t111 = call i32 @fn_unescape(i32 %t110) %t112 = trunc i32 %t111 to i8 store i8 %t112, ptr %t104 %t113 = load i32, ptr %t11 %t114 = add i32 %t113, 1 store i32 %t114, ptr %t11 %t115 = load i32, ptr %t12 %t116 = add i32 %t115, 2 store i32 %t116, ptr %t12 br label %wcond0 ifend19: %t117 = load ptr, ptr %t10 %t118 = load i32, ptr %t11 %t119 = getelementptr inbounds i8, ptr %t117, i32 %t118 %t120 = load i32, ptr %t23 %t121 = trunc i32 %t120 to i8 store i8 %t121, ptr %t119 %t122 = load i32, ptr %t11 %t123 = add i32 %t122, 1 store i32 %t123, ptr %t11 %t124 = load i32, ptr %t12 %t125 = add i32 %t124, 1 store i32 %t125, ptr %t12 br label %ifend5 ifend5: br label %wcond0 wend2: %t127 = load i32, ptr %t11 %t128 = icmp sgt i32 %t127, 0 %t129 = zext i1 %t128 to i32 %t130 = icmp ne i32 %t129, 0 %t131 = zext i1 %t130 to i32 store i32 %t131, ptr %t126 br i1 %t130, label %scend21, label %sc20 sc20: %t132 = load ptr, ptr %t5 %t133 = icmp eq ptr %t132, null %t134 = zext i1 %t133 to i32 %t135 = icmp ne i32 %t134, 0 %t136 = zext i1 %t135 to i32 store i32 %t136, ptr %t126 br label %scend21 scend21: %t137 = load i32, ptr %t126 %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then22, label %ifend24 then22: %t139 = load ptr, ptr %t5 %t140 = load ptr, ptr %t10 %t141 = load i32, ptr %t11 %t142 = call ptr @fn_interp_lit(ptr %t140, i32 %t141) %t143 = call ptr @fn_interp_add(ptr %t139, ptr %t142) store ptr %t143, ptr %t5 br label %ifend24 ifend24: %t144 = load ptr, ptr %t5 store ptr %t144, ptr %retval br label %ret ret: %t145 = load ptr, ptr %retval ret ptr %t145 } define ptr @fn_parse_emit() { entry: %retval = alloca ptr %t3 = alloca ptr %t8 = alloca ptr %t14 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 49) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 %t7 = call ptr @fn_node(i32 41) store ptr %t7, ptr %t8 call void @fn_eat_op(ptr @.str72) call void @fn_skipnl() br label %wcond0 wcond0: %t9 = call i32 @fn_is_op(ptr @.str73) %t10 = icmp eq i32 %t9, 0 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody1, label %wend2 wbody1: %t13 = call ptr @fn_node(i32 42) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = call ptr @fn_eat_id() store ptr %t17, ptr %t16 call void @fn_eat_op(ptr @.str74) %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4 %t20 = call ptr @fn_expr() store ptr %t20, ptr %t19 %t21 = load ptr, ptr %t8 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 7 %t23 = load ptr, ptr %t22 %t24 = load ptr, ptr %t14 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t28 = load i32, ptr %t25 %t29 = load i32, ptr %t26 %t30 = icmp sge i32 %t28, %t29 br i1 %t30, label %grow3, label %put4 grow3: %t31 = mul i32 %t29, 2 %t32 = icmp eq i32 %t29, 0 %t33 = select i1 %t32, i32 8, i32 %t31 %t34 = getelementptr ptr, ptr null, i32 1 %t35 = ptrtoint ptr %t34 to i64 %t36 = zext i32 %t33 to i64 %t37 = mul i64 %t36, %t35 %t38 = load ptr, ptr %t27 %t39 = call ptr @realloc(ptr %t38, i64 %t37) store ptr %t39, ptr %t27 store i32 %t33, ptr %t26 br label %put4 put4: %t40 = load ptr, ptr %t27 %t41 = getelementptr inbounds ptr, ptr %t40, i32 %t28 store ptr %t24, ptr %t41 %t42 = add i32 %t28, 1 store i32 %t42, ptr %t25 call void @fn_skipnl() %t43 = call i32 @fn_is_op(ptr @.str75) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then5, label %ifend7 then5: %t45 = load i32, ptr @g_pi %t46 = add i32 %t45, 1 store i32 %t46, ptr @g_pi call void @fn_skipnl() br label %ifend7 ifend7: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str76) %t47 = load ptr, ptr %t3 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 4 %t49 = load ptr, ptr %t8 store ptr %t49, ptr %t48 %t50 = load ptr, ptr %t3 store ptr %t50, ptr %retval br label %ret ret: %t51 = load ptr, ptr %retval ret ptr %t51 } define ptr @fn_parse_list() { entry: %retval = alloca ptr %t1 = alloca ptr %t0 = call ptr @fn_node(i32 54) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 8 %t4 = load ptr, ptr @g_toks %t5 = load i32, ptr @g_pi %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp ult i32 %t5, %t9 br i1 %t10, label %ixok0, label %ixbad1 ixbad1: %t11 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t11, ptr @.fmt_bounds, ptr @.str77, i32 %t5, i32 %t9) call void @exit(i32 1) unreachable ixok0: %t12 = getelementptr inbounds ptr, ptr %t7, i32 %t5 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %Cmp_Tok, ptr %t13, i32 0, i32 3 %t15 = load i32, ptr %t14 store i32 %t15, ptr %t3 call void @fn_eat_op(ptr @.str78) call void @fn_skipnl() br label %wcond2 wcond2: %t16 = call i32 @fn_is_op(ptr @.str79) %t17 = icmp eq i32 %t16, 0 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody3, label %wend4 wbody3: %t20 = load ptr, ptr %t1 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 7 %t22 = load ptr, ptr %t21 %t23 = call ptr @fn_expr() %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t25 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 2 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t27 = load i32, ptr %t24 %t28 = load i32, ptr %t25 %t29 = icmp sge i32 %t27, %t28 br i1 %t29, label %grow5, label %put6 grow5: %t30 = mul i32 %t28, 2 %t31 = icmp eq i32 %t28, 0 %t32 = select i1 %t31, i32 8, i32 %t30 %t33 = getelementptr ptr, ptr null, i32 1 %t34 = ptrtoint ptr %t33 to i64 %t35 = zext i32 %t32 to i64 %t36 = mul i64 %t35, %t34 %t37 = load ptr, ptr %t26 %t38 = call ptr @realloc(ptr %t37, i64 %t36) store ptr %t38, ptr %t26 store i32 %t32, ptr %t25 br label %put6 put6: %t39 = load ptr, ptr %t26 %t40 = getelementptr inbounds ptr, ptr %t39, i32 %t27 store ptr %t23, ptr %t40 %t41 = add i32 %t27, 1 store i32 %t41, ptr %t24 call void @fn_skipnl() %t42 = call i32 @fn_is_op(ptr @.str80) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then7, label %ifend9 then7: %t44 = load i32, ptr @g_pi %t45 = add i32 %t44, 1 store i32 %t45, ptr @g_pi call void @fn_skipnl() br label %ifend9 ifend9: br label %wcond2 wend4: call void @fn_eat_op(ptr @.str81) %t46 = load ptr, ptr %t1 store ptr %t46, ptr %retval br label %ret ret: %t47 = load ptr, ptr %retval ret ptr %t47 } define ptr @fn_p_primary() { entry: %retval = alloca ptr %t10 = alloca ptr %t29 = alloca i32 %t30 = alloca i32 %t74 = alloca ptr %t95 = alloca ptr %t116 = alloca ptr %t137 = alloca ptr %t149 = alloca ptr %t171 = alloca ptr %t187 = alloca i32 %t188 = alloca i32 %t189 = alloca i32 %t190 = alloca i32 %t191 = alloca i32 %t192 = alloca i32 %t193 = alloca i32 %t350 = alloca ptr %t368 = alloca ptr %t393 = alloca ptr %t407 = alloca ptr %t409 = alloca i32 %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok0, label %ixbad1 ixbad1: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str82, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok0: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Tok, ptr %t11, i32 0, i32 0 %t13 = load i32, ptr %t12 %t14 = icmp eq i32 %t13, 7 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: %t17 = load i32, ptr @g_pi %t18 = add i32 %t17, 1 store i32 %t18, ptr @g_pi %t19 = load ptr, ptr %t10 %t20 = getelementptr inbounds %Cmp_Tok, ptr %t19, i32 0, i32 3 %t21 = load i32, ptr %t20 store i32 %t21, ptr @g_g_interp_line %t22 = load ptr, ptr %t10 %t23 = getelementptr inbounds %Cmp_Tok, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_parse_interp(ptr %t24) store ptr %t25, ptr %retval br label %ret ifend4: %t26 = call i32 @fn_is_op(ptr @.str83) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = call ptr @fn_parse_list() store ptr %t28, ptr %retval br label %ret ifend7: %t31 = load ptr, ptr %t10 %t32 = getelementptr inbounds %Cmp_Tok, ptr %t31, i32 0, i32 0 %t33 = load i32, ptr %t32 %t34 = icmp eq i32 %t33, 0 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t30 br i1 %t36, label %sc8, label %scend9 sc8: %t38 = load ptr, ptr %t10 %t39 = getelementptr inbounds %Cmp_Tok, ptr %t38, i32 0, i32 1 %t40 = load ptr, ptr %t39 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str84) %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t30 br label %scend9 scend9: %t44 = load i32, ptr %t30 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t29 br i1 %t45, label %sc10, label %scend11 sc10: %t47 = load ptr, ptr @g_toks %t48 = load i32, ptr @g_pi %t49 = add i32 %t48, 1 %t50 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = icmp ult i32 %t49, %t53 br i1 %t54, label %ixok12, label %ixbad13 ixbad13: %t55 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t55, ptr @.fmt_bounds, ptr @.str85, i32 %t49, i32 %t53) call void @exit(i32 1) unreachable ixok12: %t56 = getelementptr inbounds ptr, ptr %t51, i32 %t49 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %Cmp_Tok, ptr %t57, i32 0, i32 0 %t59 = load i32, ptr %t58 %t60 = icmp eq i32 %t59, 0 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t29 br label %scend11 scend11: %t64 = load i32, ptr %t29 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then14, label %ifend16 then14: %t66 = call ptr @fn_parse_emit() store ptr %t66, ptr %retval br label %ret ifend16: %t67 = load ptr, ptr %t10 %t68 = getelementptr inbounds %Cmp_Tok, ptr %t67, i32 0, i32 0 %t69 = load i32, ptr %t68 %t70 = icmp eq i32 %t69, 1 %t71 = zext i1 %t70 to i32 %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then17, label %ifend19 then17: %t73 = call ptr @fn_node(i32 30) store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 2 %t77 = load ptr, ptr %t10 %t78 = getelementptr inbounds %Cmp_Tok, ptr %t77, i32 0, i32 2 %t79 = load i32, ptr %t78 store i32 %t79, ptr %t76 %t80 = load ptr, ptr %t74 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 1 %t82 = load ptr, ptr %t10 %t83 = getelementptr inbounds %Cmp_Tok, ptr %t82, i32 0, i32 1 %t84 = load ptr, ptr %t83 store ptr %t84, ptr %t81 %t85 = load i32, ptr @g_pi %t86 = add i32 %t85, 1 store i32 %t86, ptr @g_pi %t87 = load ptr, ptr %t74 store ptr %t87, ptr %retval br label %ret ifend19: %t88 = load ptr, ptr %t10 %t89 = getelementptr inbounds %Cmp_Tok, ptr %t88, i32 0, i32 0 %t90 = load i32, ptr %t89 %t91 = icmp eq i32 %t90, 6 %t92 = zext i1 %t91 to i32 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then20, label %ifend22 then20: %t94 = call ptr @fn_node(i32 40) store ptr %t94, ptr %t95 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 2 %t98 = load ptr, ptr %t10 %t99 = getelementptr inbounds %Cmp_Tok, ptr %t98, i32 0, i32 2 %t100 = load i32, ptr %t99 store i32 %t100, ptr %t97 %t101 = load ptr, ptr %t95 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1 %t103 = load ptr, ptr %t10 %t104 = getelementptr inbounds %Cmp_Tok, ptr %t103, i32 0, i32 1 %t105 = load ptr, ptr %t104 store ptr %t105, ptr %t102 %t106 = load i32, ptr @g_pi %t107 = add i32 %t106, 1 store i32 %t107, ptr @g_pi %t108 = load ptr, ptr %t95 store ptr %t108, ptr %retval br label %ret ifend22: %t109 = load ptr, ptr %t10 %t110 = getelementptr inbounds %Cmp_Tok, ptr %t109, i32 0, i32 0 %t111 = load i32, ptr %t110 %t112 = icmp eq i32 %t111, 2 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then23, label %ifend25 then23: %t115 = call ptr @fn_node(i32 31) store ptr %t115, ptr %t116 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 1 %t119 = load ptr, ptr %t10 %t120 = getelementptr inbounds %Cmp_Tok, ptr %t119, i32 0, i32 1 %t121 = load ptr, ptr %t120 store ptr %t121, ptr %t118 %t122 = load i32, ptr @g_pi %t123 = add i32 %t122, 1 store i32 %t123, ptr @g_pi %t124 = load ptr, ptr %t116 store ptr %t124, ptr %retval br label %ret ifend25: %t125 = load ptr, ptr %t10 %t126 = getelementptr inbounds %Cmp_Tok, ptr %t125, i32 0, i32 0 %t127 = load i32, ptr %t126 %t128 = icmp eq i32 %t127, 0 %t129 = zext i1 %t128 to i32 %t130 = icmp ne i32 %t129, 0 br i1 %t130, label %then26, label %ifend28 then26: %t131 = load ptr, ptr %t10 %t132 = getelementptr inbounds %Cmp_Tok, ptr %t131, i32 0, i32 1 %t133 = load ptr, ptr %t132 %t134 = call i32 @lp_str_eq(ptr %t133, ptr @.str86) %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then29, label %ifend31 then29: %t136 = call ptr @fn_node(i32 32) store ptr %t136, ptr %t137 %t138 = load ptr, ptr %t137 %t139 = getelementptr inbounds %Cmp_Node, ptr %t138, i32 0, i32 2 store i32 1, ptr %t139 %t140 = load i32, ptr @g_pi %t141 = add i32 %t140, 1 store i32 %t141, ptr @g_pi %t142 = load ptr, ptr %t137 store ptr %t142, ptr %retval br label %ret ifend31: %t143 = load ptr, ptr %t10 %t144 = getelementptr inbounds %Cmp_Tok, ptr %t143, i32 0, i32 1 %t145 = load ptr, ptr %t144 %t146 = call i32 @lp_str_eq(ptr %t145, ptr @.str87) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then32, label %ifend34 then32: %t148 = call ptr @fn_node(i32 32) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 2 store i32 0, ptr %t151 %t152 = load i32, ptr @g_pi %t153 = add i32 %t152, 1 store i32 %t153, ptr @g_pi %t154 = load ptr, ptr %t149 store ptr %t154, ptr %retval br label %ret ifend34: %t155 = load ptr, ptr %t10 %t156 = getelementptr inbounds %Cmp_Tok, ptr %t155, i32 0, i32 1 %t157 = load ptr, ptr %t156 %t158 = call i32 @lp_str_eq(ptr %t157, ptr @.str88) %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then35, label %ifend37 then35: %t160 = load i32, ptr @g_pi %t161 = add i32 %t160, 1 store i32 %t161, ptr @g_pi %t162 = call ptr @fn_node(i32 43) store ptr %t162, ptr %retval br label %ret ifend37: %t163 = load ptr, ptr %t10 %t164 = getelementptr inbounds %Cmp_Tok, ptr %t163, i32 0, i32 1 %t165 = load ptr, ptr %t164 %t166 = call i32 @lp_str_eq(ptr %t165, ptr @.str89) %t167 = icmp ne i32 %t166, 0 br i1 %t167, label %then38, label %ifend40 then38: %t168 = load i32, ptr @g_pi %t169 = add i32 %t168, 1 store i32 %t169, ptr @g_pi %t170 = call ptr @fn_node(i32 39) store ptr %t170, ptr %t171 %t172 = load ptr, ptr %t171 %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 1 %t174 = call ptr @fn_ptype() store ptr %t174, ptr %t173 %t175 = call i32 @fn_is_op(ptr @.str90) %t176 = icmp ne i32 %t175, 0 br i1 %t176, label %then41, label %ifend43 then41: %t177 = load ptr, ptr %t171 %t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 4 %t179 = call ptr @fn_record() store ptr %t179, ptr %t178 br label %ifend43 ifend43: %t180 = load ptr, ptr %t171 store ptr %t180, ptr %retval br label %ret ifend40: %t181 = load ptr, ptr %t10 %t182 = getelementptr inbounds %Cmp_Tok, ptr %t181, i32 0, i32 1 %t183 = load ptr, ptr %t182 %t184 = call i32 @lp_str_eq(ptr %t183, ptr @.str91) %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then44, label %ifend46 then44: %t186 = call ptr @fn_parse_spawn() store ptr %t186, ptr %retval br label %ret ifend46: %t194 = load ptr, ptr %t10 %t195 = getelementptr inbounds %Cmp_Tok, ptr %t194, i32 0, i32 1 %t196 = load ptr, ptr %t195 %t197 = call i32 @lp_str_eq(ptr %t196, ptr @.str92) %t198 = icmp ne i32 %t197, 0 %t199 = zext i1 %t198 to i32 store i32 %t199, ptr %t193 br i1 %t198, label %sc47, label %scend48 sc47: %t200 = load ptr, ptr @g_toks %t201 = load i32, ptr @g_pi %t202 = add i32 %t201, 1 %t203 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 0 %t204 = load ptr, ptr %t203 %t205 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 1 %t206 = load i32, ptr %t205 %t207 = icmp ult i32 %t202, %t206 br i1 %t207, label %ixok49, label %ixbad50 ixbad50: %t208 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t208, ptr @.fmt_bounds, ptr @.str93, i32 %t202, i32 %t206) call void @exit(i32 1) unreachable ixok49: %t209 = getelementptr inbounds ptr, ptr %t204, i32 %t202 %t210 = load ptr, ptr %t209 %t211 = getelementptr inbounds %Cmp_Tok, ptr %t210, i32 0, i32 0 %t212 = load i32, ptr %t211 %t213 = icmp eq i32 %t212, 0 %t214 = zext i1 %t213 to i32 %t215 = icmp ne i32 %t214, 0 %t216 = zext i1 %t215 to i32 store i32 %t216, ptr %t193 br label %scend48 scend48: %t217 = load i32, ptr %t193 %t218 = icmp ne i32 %t217, 0 %t219 = zext i1 %t218 to i32 store i32 %t219, ptr %t192 br i1 %t218, label %sc51, label %scend52 sc51: %t220 = load ptr, ptr @g_toks %t221 = load i32, ptr @g_pi %t222 = add i32 %t221, 1 %t223 = getelementptr inbounds %LSlice, ptr %t220, i32 0, i32 0 %t224 = load ptr, ptr %t223 %t225 = getelementptr inbounds %LSlice, ptr %t220, i32 0, i32 1 %t226 = load i32, ptr %t225 %t227 = icmp ult i32 %t222, %t226 br i1 %t227, label %ixok53, label %ixbad54 ixbad54: %t228 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t228, ptr @.fmt_bounds, ptr @.str94, i32 %t222, i32 %t226) call void @exit(i32 1) unreachable ixok53: %t229 = getelementptr inbounds ptr, ptr %t224, i32 %t222 %t230 = load ptr, ptr %t229 %t231 = getelementptr inbounds %Cmp_Tok, ptr %t230, i32 0, i32 3 %t232 = load i32, ptr %t231 %t233 = load ptr, ptr %t10 %t234 = getelementptr inbounds %Cmp_Tok, ptr %t233, i32 0, i32 3 %t235 = load i32, ptr %t234 %t236 = icmp eq i32 %t232, %t235 %t237 = zext i1 %t236 to i32 %t238 = icmp ne i32 %t237, 0 %t239 = zext i1 %t238 to i32 store i32 %t239, ptr %t192 br label %scend52 scend52: %t240 = load i32, ptr %t192 %t241 = icmp ne i32 %t240, 0 %t242 = zext i1 %t241 to i32 store i32 %t242, ptr %t191 br i1 %t241, label %sc55, label %scend56 sc55: %t243 = load ptr, ptr @g_toks %t244 = load i32, ptr @g_pi %t245 = add i32 %t244, 1 %t246 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 0 %t247 = load ptr, ptr %t246 %t248 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 1 %t249 = load i32, ptr %t248 %t250 = icmp ult i32 %t245, %t249 br i1 %t250, label %ixok57, label %ixbad58 ixbad58: %t251 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t251, ptr @.fmt_bounds, ptr @.str95, i32 %t245, i32 %t249) call void @exit(i32 1) unreachable ixok57: %t252 = getelementptr inbounds ptr, ptr %t247, i32 %t245 %t253 = load ptr, ptr %t252 %t254 = getelementptr inbounds %Cmp_Tok, ptr %t253, i32 0, i32 1 %t255 = load ptr, ptr %t254 %t256 = call i32 @lp_str_eq(ptr %t255, ptr @.str96) %t257 = icmp eq i32 %t256, 0 %t258 = zext i1 %t257 to i32 %t259 = icmp ne i32 %t258, 0 %t260 = zext i1 %t259 to i32 store i32 %t260, ptr %t191 br label %scend56 scend56: %t261 = load i32, ptr %t191 %t262 = icmp ne i32 %t261, 0 %t263 = zext i1 %t262 to i32 store i32 %t263, ptr %t190 br i1 %t262, label %sc59, label %scend60 sc59: %t264 = load ptr, ptr @g_toks %t265 = load i32, ptr @g_pi %t266 = add i32 %t265, 1 %t267 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 0 %t268 = load ptr, ptr %t267 %t269 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 1 %t270 = load i32, ptr %t269 %t271 = icmp ult i32 %t266, %t270 br i1 %t271, label %ixok61, label %ixbad62 ixbad62: %t272 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t272, ptr @.fmt_bounds, ptr @.str97, i32 %t266, i32 %t270) call void @exit(i32 1) unreachable ixok61: %t273 = getelementptr inbounds ptr, ptr %t268, i32 %t266 %t274 = load ptr, ptr %t273 %t275 = getelementptr inbounds %Cmp_Tok, ptr %t274, i32 0, i32 1 %t276 = load ptr, ptr %t275 %t277 = call i32 @lp_str_eq(ptr %t276, ptr @.str98) %t278 = icmp eq i32 %t277, 0 %t279 = zext i1 %t278 to i32 %t280 = icmp ne i32 %t279, 0 %t281 = zext i1 %t280 to i32 store i32 %t281, ptr %t190 br label %scend60 scend60: %t282 = load i32, ptr %t190 %t283 = icmp ne i32 %t282, 0 %t284 = zext i1 %t283 to i32 store i32 %t284, ptr %t189 br i1 %t283, label %sc63, label %scend64 sc63: %t285 = load ptr, ptr @g_toks %t286 = load i32, ptr @g_pi %t287 = add i32 %t286, 1 %t288 = getelementptr inbounds %LSlice, ptr %t285, i32 0, i32 0 %t289 = load ptr, ptr %t288 %t290 = getelementptr inbounds %LSlice, ptr %t285, i32 0, i32 1 %t291 = load i32, ptr %t290 %t292 = icmp ult i32 %t287, %t291 br i1 %t292, label %ixok65, label %ixbad66 ixbad66: %t293 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t293, ptr @.fmt_bounds, ptr @.str99, i32 %t287, i32 %t291) call void @exit(i32 1) unreachable ixok65: %t294 = getelementptr inbounds ptr, ptr %t289, i32 %t287 %t295 = load ptr, ptr %t294 %t296 = getelementptr inbounds %Cmp_Tok, ptr %t295, i32 0, i32 1 %t297 = load ptr, ptr %t296 %t298 = call i32 @lp_str_eq(ptr %t297, ptr @.str100) %t299 = icmp eq i32 %t298, 0 %t300 = zext i1 %t299 to i32 %t301 = icmp ne i32 %t300, 0 %t302 = zext i1 %t301 to i32 store i32 %t302, ptr %t189 br label %scend64 scend64: %t303 = load i32, ptr %t189 %t304 = icmp ne i32 %t303, 0 %t305 = zext i1 %t304 to i32 store i32 %t305, ptr %t188 br i1 %t304, label %sc67, label %scend68 sc67: %t306 = load ptr, ptr @g_toks %t307 = load i32, ptr @g_pi %t308 = add i32 %t307, 1 %t309 = getelementptr inbounds %LSlice, ptr %t306, i32 0, i32 0 %t310 = load ptr, ptr %t309 %t311 = getelementptr inbounds %LSlice, ptr %t306, i32 0, i32 1 %t312 = load i32, ptr %t311 %t313 = icmp ult i32 %t308, %t312 br i1 %t313, label %ixok69, label %ixbad70 ixbad70: %t314 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t314, ptr @.fmt_bounds, ptr @.str101, i32 %t308, i32 %t312) call void @exit(i32 1) unreachable ixok69: %t315 = getelementptr inbounds ptr, ptr %t310, i32 %t308 %t316 = load ptr, ptr %t315 %t317 = getelementptr inbounds %Cmp_Tok, ptr %t316, i32 0, i32 1 %t318 = load ptr, ptr %t317 %t319 = call i32 @lp_str_eq(ptr %t318, ptr @.str102) %t320 = icmp eq i32 %t319, 0 %t321 = zext i1 %t320 to i32 %t322 = icmp ne i32 %t321, 0 %t323 = zext i1 %t322 to i32 store i32 %t323, ptr %t188 br label %scend68 scend68: %t324 = load i32, ptr %t188 %t325 = icmp ne i32 %t324, 0 %t326 = zext i1 %t325 to i32 store i32 %t326, ptr %t187 br i1 %t325, label %sc71, label %scend72 sc71: %t327 = load ptr, ptr @g_toks %t328 = load i32, ptr @g_pi %t329 = add i32 %t328, 1 %t330 = getelementptr inbounds %LSlice, ptr %t327, i32 0, i32 0 %t331 = load ptr, ptr %t330 %t332 = getelementptr inbounds %LSlice, ptr %t327, i32 0, i32 1 %t333 = load i32, ptr %t332 %t334 = icmp ult i32 %t329, %t333 br i1 %t334, label %ixok73, label %ixbad74 ixbad74: %t335 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t335, ptr @.fmt_bounds, ptr @.str103, i32 %t329, i32 %t333) call void @exit(i32 1) unreachable ixok73: %t336 = getelementptr inbounds ptr, ptr %t331, i32 %t329 %t337 = load ptr, ptr %t336 %t338 = getelementptr inbounds %Cmp_Tok, ptr %t337, i32 0, i32 1 %t339 = load ptr, ptr %t338 %t340 = call i32 @lp_str_eq(ptr %t339, ptr @.str104) %t341 = icmp eq i32 %t340, 0 %t342 = zext i1 %t341 to i32 %t343 = icmp ne i32 %t342, 0 %t344 = zext i1 %t343 to i32 store i32 %t344, ptr %t187 br label %scend72 scend72: %t345 = load i32, ptr %t187 %t346 = icmp ne i32 %t345, 0 br i1 %t346, label %then75, label %ifend77 then75: %t347 = load i32, ptr @g_pi %t348 = add i32 %t347, 1 store i32 %t348, ptr @g_pi %t349 = call ptr @fn_node(i32 55) store ptr %t349, ptr %t350 %t351 = load ptr, ptr %t350 %t352 = getelementptr inbounds %Cmp_Node, ptr %t351, i32 0, i32 8 %t353 = load ptr, ptr %t10 %t354 = getelementptr inbounds %Cmp_Tok, ptr %t353, i32 0, i32 3 %t355 = load i32, ptr %t354 store i32 %t355, ptr %t352 %t356 = load ptr, ptr %t350 %t357 = getelementptr inbounds %Cmp_Node, ptr %t356, i32 0, i32 1 %t358 = call ptr @fn_eat_id() store ptr %t358, ptr %t357 %t359 = load ptr, ptr %t350 store ptr %t359, ptr %retval br label %ret ifend77: %t360 = load ptr, ptr %t10 %t361 = getelementptr inbounds %Cmp_Tok, ptr %t360, i32 0, i32 1 %t362 = load ptr, ptr %t361 %t363 = call i32 @lp_str_eq(ptr %t362, ptr @.str105) %t364 = icmp ne i32 %t363, 0 br i1 %t364, label %then78, label %ifend80 then78: %t365 = load i32, ptr @g_pi %t366 = add i32 %t365, 1 store i32 %t366, ptr @g_pi %t367 = call ptr @fn_node(i32 52) store ptr %t367, ptr %t368 %t369 = load ptr, ptr %t368 %t370 = getelementptr inbounds %Cmp_Node, ptr %t369, i32 0, i32 8 %t371 = load ptr, ptr %t10 %t372 = getelementptr inbounds %Cmp_Tok, ptr %t371, i32 0, i32 3 %t373 = load i32, ptr %t372 store i32 %t373, ptr %t370 %t374 = load ptr, ptr %t368 %t375 = getelementptr inbounds %Cmp_Node, ptr %t374, i32 0, i32 4 %t376 = call ptr @fn_expr() store ptr %t376, ptr %t375 call void @fn_skipnl() %t377 = call i32 @fn_is_id(ptr @.str106) %t378 = icmp eq i32 %t377, 0 %t379 = zext i1 %t378 to i32 %t380 = icmp ne i32 %t379, 0 br i1 %t380, label %then81, label %ifend83 then81: call void @fn_perr(ptr @.str107) br label %ifend83 ifend83: %t381 = load i32, ptr @g_pi %t382 = add i32 %t381, 1 store i32 %t382, ptr @g_pi call void @fn_skipnl() %t383 = load ptr, ptr %t368 %t384 = getelementptr inbounds %Cmp_Node, ptr %t383, i32 0, i32 5 %t385 = call ptr @fn_block() store ptr %t385, ptr %t384 %t386 = load ptr, ptr %t368 store ptr %t386, ptr %retval br label %ret ifend80: %t387 = load ptr, ptr %t10 %t388 = getelementptr inbounds %Cmp_Tok, ptr %t387, i32 0, i32 1 %t389 = load ptr, ptr %t388 %t390 = call i32 @lp_str_eq(ptr %t389, ptr @.str108) %t391 = icmp ne i32 %t390, 0 br i1 %t391, label %then84, label %ifend86 then84: store i32 1, ptr @g_g_uses_bytes br label %ifend86 ifend86: %t392 = call ptr @fn_node(i32 33) store ptr %t392, ptr %t393 %t394 = load ptr, ptr %t393 %t395 = getelementptr inbounds %Cmp_Node, ptr %t394, i32 0, i32 1 %t396 = load ptr, ptr %t10 %t397 = getelementptr inbounds %Cmp_Tok, ptr %t396, i32 0, i32 1 %t398 = load ptr, ptr %t397 store ptr %t398, ptr %t395 %t399 = load i32, ptr @g_pi %t400 = add i32 %t399, 1 store i32 %t400, ptr @g_pi %t401 = load ptr, ptr %t393 store ptr %t401, ptr %retval br label %ret ifend28: %t402 = call i32 @fn_is_op(ptr @.str109) %t403 = icmp ne i32 %t402, 0 br i1 %t403, label %then87, label %ifend89 then87: %t404 = load i32, ptr @g_pi %t405 = add i32 %t404, 1 store i32 %t405, ptr @g_pi call void @fn_skipnl() %t406 = call ptr @fn_expr() store ptr %t406, ptr %t407 call void @fn_skipnl() call void @fn_eat_op(ptr @.str110) %t408 = load ptr, ptr %t407 store ptr %t408, ptr %retval br label %ret ifend89: %t410 = load i32, ptr @g_g_res_mode %t411 = icmp ne i32 %t410, 0 %t412 = zext i1 %t411 to i32 store i32 %t412, ptr %t409 br i1 %t411, label %sc90, label %scend91 sc90: %t413 = call i32 @fn_is_op(ptr @.str111) %t414 = icmp ne i32 %t413, 0 %t415 = zext i1 %t414 to i32 store i32 %t415, ptr %t409 br label %scend91 scend91: %t416 = load i32, ptr %t409 %t417 = icmp ne i32 %t416, 0 br i1 %t417, label %then92, label %ifend94 then92: %t418 = call ptr @fn_record() store ptr %t418, ptr %retval br label %ret ifend94: call void @fn_perr(ptr @.str112) %t419 = call ptr @fn_node(i32 30) store ptr %t419, ptr %retval br label %ret ret: %t420 = load ptr, ptr %retval ret ptr %t420 } define ptr @fn_p_postfix() { entry: %retval = alloca ptr %t1 = alloca ptr %t8 = alloca ptr %t16 = alloca i32 %t36 = alloca i32 %t56 = alloca i32 %t57 = alloca i32 %t78 = alloca i32 %t96 = alloca i32 %t106 = alloca i32 %t128 = alloca i32 %t138 = alloca i32 %t160 = alloca i32 %t170 = alloca i32 %t171 = alloca i32 %t204 = alloca i32 %t214 = alloca i32 %t215 = alloca i32 %t248 = alloca i32 %t268 = alloca i32 %t288 = alloca i32 %t308 = alloca i32 %t318 = alloca i32 %t340 = alloca i32 %t360 = alloca i32 %t380 = alloca i32 %t400 = alloca i32 %t401 = alloca i32 %t422 = alloca i32 %t423 = alloca i32 %t424 = alloca i32 %t425 = alloca i32 %t426 = alloca i32 %t427 = alloca i32 %t428 = alloca i32 %t429 = alloca i32 %t510 = alloca i32 %t530 = alloca i32 %t531 = alloca i32 %t552 = alloca i32 %t570 = alloca i32 %t571 = alloca i32 %t592 = alloca i32 %t593 = alloca i32 %t594 = alloca i32 %t595 = alloca i32 %t596 = alloca i32 %t597 = alloca i32 %t598 = alloca i32 %t599 = alloca i32 %t600 = alloca i32 %t601 = alloca i32 %t602 = alloca i32 %t710 = alloca i32 %t711 = alloca i32 %t732 = alloca i32 %t733 = alloca i32 %t734 = alloca i32 %t735 = alloca i32 %t736 = alloca i32 %t737 = alloca i32 %t738 = alloca i32 %t739 = alloca i32 %t740 = alloca i32 %t741 = alloca i32 %t742 = alloca i32 %t743 = alloca i32 %t744 = alloca i32 %t745 = alloca i32 %t746 = alloca i32 %t747 = alloca i32 %t748 = alloca i32 %t749 = alloca i32 %t750 = alloca i32 %t751 = alloca i32 %t752 = alloca i32 %t753 = alloca i32 %t754 = alloca i32 %t755 = alloca i32 %t756 = alloca i32 %t757 = alloca i32 %t1000 = alloca i32 %t1001 = alloca i32 %t1022 = alloca i32 %t1023 = alloca i32 %t1024 = alloca i32 %t1060 = alloca i32 %t1061 = alloca i32 %t1090 = alloca i32 %t1110 = alloca i32 %t1130 = alloca i32 %t1150 = alloca i32 %t1170 = alloca i32 %t1190 = alloca i32 %t1210 = alloca i32 %t1211 = alloca i32 %t1232 = alloca i32 %t1233 = alloca i32 %t1234 = alloca i32 %t1235 = alloca i32 %t1236 = alloca i32 %t1290 = alloca i32 %t1315 = alloca ptr %t1321 = alloca ptr %t1333 = alloca ptr %t1344 = alloca ptr %t1364 = alloca i32 %t1408 = alloca i32 %t1418 = alloca i32 %t0 = call ptr @fn_p_primary() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t2 = icmp ne i32 1, 0 br i1 %t2, label %wbody1, label %wend2 wbody1: %t3 = call i32 @fn_is_op(ptr @.str113) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then3, label %else4 then3: %t5 = load i32, ptr @g_pi %t6 = add i32 %t5, 1 store i32 %t6, ptr @g_pi %t7 = call ptr @fn_node(i32 35) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4 %t11 = load ptr, ptr %t1 store ptr %t11, ptr %t10 %t12 = load ptr, ptr %t8 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = call ptr @fn_eat_id() store ptr %t14, ptr %t13 %t15 = load ptr, ptr %t8 store ptr %t15, ptr %t1 %t17 = load ptr, ptr %t1 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 4 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 33 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t16 br i1 %t24, label %sc6, label %scend7 sc6: %t26 = load ptr, ptr %t1 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 4 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str114) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t16 br label %scend7 scend7: %t34 = load i32, ptr %t16 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then8, label %ifend10 then8: store i32 1, ptr @g_g_uses_regex br label %ifend10 ifend10: %t37 = load ptr, ptr %t1 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 4 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 0 %t41 = load i32, ptr %t40 %t42 = icmp eq i32 %t41, 33 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t36 br i1 %t44, label %sc11, label %scend12 sc11: %t46 = load ptr, ptr %t1 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 4 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 1 %t50 = load ptr, ptr %t49 %t51 = call i32 @lp_str_eq(ptr %t50, ptr @.str115) %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t36 br label %scend12 scend12: %t54 = load i32, ptr %t36 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then13, label %ifend15 then13: store i32 1, ptr @g_g_uses_rng br label %ifend15 ifend15: %t58 = load ptr, ptr %t1 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 4 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 0 %t62 = load i32, ptr %t61 %t63 = icmp eq i32 %t62, 33 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t57 br i1 %t65, label %sc16, label %scend17 sc16: %t67 = load ptr, ptr %t1 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 4 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 %t72 = call i32 @lp_str_eq(ptr %t71, ptr @.str116) %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t57 br label %scend17 scend17: %t75 = load i32, ptr %t57 %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t56 br i1 %t76, label %sc18, label %scend19 sc18: %t79 = load ptr, ptr %t1 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 1 %t81 = load ptr, ptr %t80 %t82 = call i32 @lp_str_eq(ptr %t81, ptr @.str117) %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t78 br i1 %t83, label %scend21, label %sc20 sc20: %t85 = load ptr, ptr %t1 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 1 %t87 = load ptr, ptr %t86 %t88 = call i32 @lp_str_eq(ptr %t87, ptr @.str118) %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t78 br label %scend21 scend21: %t91 = load i32, ptr %t78 %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t56 br label %scend19 scend19: %t94 = load i32, ptr %t56 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then22, label %ifend24 then22: store i32 1, ptr @g_g_uses_bytes br label %ifend24 ifend24: %t97 = load ptr, ptr %t1 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 4 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 0 %t101 = load i32, ptr %t100 %t102 = icmp eq i32 %t101, 33 %t103 = zext i1 %t102 to i32 %t104 = icmp ne i32 %t103, 0 %t105 = zext i1 %t104 to i32 store i32 %t105, ptr %t96 br i1 %t104, label %sc25, label %scend26 sc25: %t107 = load ptr, ptr %t1 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 4 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 1 %t111 = load ptr, ptr %t110 %t112 = call i32 @lp_str_eq(ptr %t111, ptr @.str119) %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t106 br i1 %t113, label %scend28, label %sc27 sc27: %t115 = load ptr, ptr %t1 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 4 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 1 %t119 = load ptr, ptr %t118 %t120 = call i32 @lp_str_eq(ptr %t119, ptr @.str120) %t121 = icmp ne i32 %t120, 0 %t122 = zext i1 %t121 to i32 store i32 %t122, ptr %t106 br label %scend28 scend28: %t123 = load i32, ptr %t106 %t124 = icmp ne i32 %t123, 0 %t125 = zext i1 %t124 to i32 store i32 %t125, ptr %t96 br label %scend26 scend26: %t126 = load i32, ptr %t96 %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then29, label %ifend31 then29: store i32 1, ptr @g_g_uses_bignum br label %ifend31 ifend31: %t129 = load ptr, ptr %t1 %t130 = getelementptr inbounds %Cmp_Node, ptr %t129, i32 0, i32 4 %t131 = load ptr, ptr %t130 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 0 %t133 = load i32, ptr %t132 %t134 = icmp eq i32 %t133, 33 %t135 = zext i1 %t134 to i32 %t136 = icmp ne i32 %t135, 0 %t137 = zext i1 %t136 to i32 store i32 %t137, ptr %t128 br i1 %t136, label %sc32, label %scend33 sc32: %t139 = load ptr, ptr %t1 %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 4 %t141 = load ptr, ptr %t140 %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 1 %t143 = load ptr, ptr %t142 %t144 = call i32 @lp_str_eq(ptr %t143, ptr @.str121) %t145 = icmp ne i32 %t144, 0 %t146 = zext i1 %t145 to i32 store i32 %t146, ptr %t138 br i1 %t145, label %scend35, label %sc34 sc34: %t147 = load ptr, ptr %t1 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 4 %t149 = load ptr, ptr %t148 %t150 = getelementptr inbounds %Cmp_Node, ptr %t149, i32 0, i32 1 %t151 = load ptr, ptr %t150 %t152 = call i32 @lp_str_eq(ptr %t151, ptr @.str122) %t153 = icmp ne i32 %t152, 0 %t154 = zext i1 %t153 to i32 store i32 %t154, ptr %t138 br label %scend35 scend35: %t155 = load i32, ptr %t138 %t156 = icmp ne i32 %t155, 0 %t157 = zext i1 %t156 to i32 store i32 %t157, ptr %t128 br label %scend33 scend33: %t158 = load i32, ptr %t128 %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then36, label %ifend38 then36: store i32 1, ptr @g_g_uses_dict br label %ifend38 ifend38: %t161 = load ptr, ptr %t1 %t162 = getelementptr inbounds %Cmp_Node, ptr %t161, i32 0, i32 4 %t163 = load ptr, ptr %t162 %t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 0 %t165 = load i32, ptr %t164 %t166 = icmp eq i32 %t165, 33 %t167 = zext i1 %t166 to i32 %t168 = icmp ne i32 %t167, 0 %t169 = zext i1 %t168 to i32 store i32 %t169, ptr %t160 br i1 %t168, label %sc39, label %scend40 sc39: %t172 = load ptr, ptr %t1 %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 4 %t174 = load ptr, ptr %t173 %t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 1 %t176 = load ptr, ptr %t175 %t177 = call i32 @lp_str_eq(ptr %t176, ptr @.str123) %t178 = icmp ne i32 %t177, 0 %t179 = zext i1 %t178 to i32 store i32 %t179, ptr %t171 br i1 %t178, label %scend42, label %sc41 sc41: %t180 = load ptr, ptr %t1 %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 4 %t182 = load ptr, ptr %t181 %t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 1 %t184 = load ptr, ptr %t183 %t185 = call i32 @lp_str_eq(ptr %t184, ptr @.str124) %t186 = icmp ne i32 %t185, 0 %t187 = zext i1 %t186 to i32 store i32 %t187, ptr %t171 br label %scend42 scend42: %t188 = load i32, ptr %t171 %t189 = icmp ne i32 %t188, 0 %t190 = zext i1 %t189 to i32 store i32 %t190, ptr %t170 br i1 %t189, label %scend44, label %sc43 sc43: %t191 = load ptr, ptr %t1 %t192 = getelementptr inbounds %Cmp_Node, ptr %t191, i32 0, i32 4 %t193 = load ptr, ptr %t192 %t194 = getelementptr inbounds %Cmp_Node, ptr %t193, i32 0, i32 1 %t195 = load ptr, ptr %t194 %t196 = call i32 @lp_str_eq(ptr %t195, ptr @.str125) %t197 = icmp ne i32 %t196, 0 %t198 = zext i1 %t197 to i32 store i32 %t198, ptr %t170 br label %scend44 scend44: %t199 = load i32, ptr %t170 %t200 = icmp ne i32 %t199, 0 %t201 = zext i1 %t200 to i32 store i32 %t201, ptr %t160 br label %scend40 scend40: %t202 = load i32, ptr %t160 %t203 = icmp ne i32 %t202, 0 br i1 %t203, label %then45, label %ifend47 then45: store i32 1, ptr @g_g_uses_numeric br label %ifend47 ifend47: %t205 = load ptr, ptr %t1 %t206 = getelementptr inbounds %Cmp_Node, ptr %t205, i32 0, i32 4 %t207 = load ptr, ptr %t206 %t208 = getelementptr inbounds %Cmp_Node, ptr %t207, i32 0, i32 0 %t209 = load i32, ptr %t208 %t210 = icmp eq i32 %t209, 33 %t211 = zext i1 %t210 to i32 %t212 = icmp ne i32 %t211, 0 %t213 = zext i1 %t212 to i32 store i32 %t213, ptr %t204 br i1 %t212, label %sc48, label %scend49 sc48: %t216 = load ptr, ptr %t1 %t217 = getelementptr inbounds %Cmp_Node, ptr %t216, i32 0, i32 4 %t218 = load ptr, ptr %t217 %t219 = getelementptr inbounds %Cmp_Node, ptr %t218, i32 0, i32 1 %t220 = load ptr, ptr %t219 %t221 = call i32 @lp_str_eq(ptr %t220, ptr @.str126) %t222 = icmp ne i32 %t221, 0 %t223 = zext i1 %t222 to i32 store i32 %t223, ptr %t215 br i1 %t222, label %scend51, label %sc50 sc50: %t224 = load ptr, ptr %t1 %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 4 %t226 = load ptr, ptr %t225 %t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 1 %t228 = load ptr, ptr %t227 %t229 = call i32 @lp_str_eq(ptr %t228, ptr @.str127) %t230 = icmp ne i32 %t229, 0 %t231 = zext i1 %t230 to i32 store i32 %t231, ptr %t215 br label %scend51 scend51: %t232 = load i32, ptr %t215 %t233 = icmp ne i32 %t232, 0 %t234 = zext i1 %t233 to i32 store i32 %t234, ptr %t214 br i1 %t233, label %scend53, label %sc52 sc52: %t235 = load ptr, ptr %t1 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 4 %t237 = load ptr, ptr %t236 %t238 = getelementptr inbounds %Cmp_Node, ptr %t237, i32 0, i32 1 %t239 = load ptr, ptr %t238 %t240 = call i32 @lp_str_eq(ptr %t239, ptr @.str128) %t241 = icmp ne i32 %t240, 0 %t242 = zext i1 %t241 to i32 store i32 %t242, ptr %t214 br label %scend53 scend53: %t243 = load i32, ptr %t214 %t244 = icmp ne i32 %t243, 0 %t245 = zext i1 %t244 to i32 store i32 %t245, ptr %t204 br label %scend49 scend49: %t246 = load i32, ptr %t204 %t247 = icmp ne i32 %t246, 0 br i1 %t247, label %then54, label %ifend56 then54: store i32 1, ptr @g_g_uses_jobs br label %ifend56 ifend56: %t249 = load ptr, ptr %t1 %t250 = getelementptr inbounds %Cmp_Node, ptr %t249, i32 0, i32 4 %t251 = load ptr, ptr %t250 %t252 = getelementptr inbounds %Cmp_Node, ptr %t251, i32 0, i32 0 %t253 = load i32, ptr %t252 %t254 = icmp eq i32 %t253, 33 %t255 = zext i1 %t254 to i32 %t256 = icmp ne i32 %t255, 0 %t257 = zext i1 %t256 to i32 store i32 %t257, ptr %t248 br i1 %t256, label %sc57, label %scend58 sc57: %t258 = load ptr, ptr %t1 %t259 = getelementptr inbounds %Cmp_Node, ptr %t258, i32 0, i32 4 %t260 = load ptr, ptr %t259 %t261 = getelementptr inbounds %Cmp_Node, ptr %t260, i32 0, i32 1 %t262 = load ptr, ptr %t261 %t263 = call i32 @lp_str_eq(ptr %t262, ptr @.str129) %t264 = icmp ne i32 %t263, 0 %t265 = zext i1 %t264 to i32 store i32 %t265, ptr %t248 br label %scend58 scend58: %t266 = load i32, ptr %t248 %t267 = icmp ne i32 %t266, 0 br i1 %t267, label %then59, label %ifend61 then59: store i32 1, ptr @g_g_uses_query br label %ifend61 ifend61: %t269 = load ptr, ptr %t1 %t270 = getelementptr inbounds %Cmp_Node, ptr %t269, i32 0, i32 4 %t271 = load ptr, ptr %t270 %t272 = getelementptr inbounds %Cmp_Node, ptr %t271, i32 0, i32 0 %t273 = load i32, ptr %t272 %t274 = icmp eq i32 %t273, 33 %t275 = zext i1 %t274 to i32 %t276 = icmp ne i32 %t275, 0 %t277 = zext i1 %t276 to i32 store i32 %t277, ptr %t268 br i1 %t276, label %sc62, label %scend63 sc62: %t278 = load ptr, ptr %t1 %t279 = getelementptr inbounds %Cmp_Node, ptr %t278, i32 0, i32 4 %t280 = load ptr, ptr %t279 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 1 %t282 = load ptr, ptr %t281 %t283 = call i32 @lp_str_eq(ptr %t282, ptr @.str130) %t284 = icmp ne i32 %t283, 0 %t285 = zext i1 %t284 to i32 store i32 %t285, ptr %t268 br label %scend63 scend63: %t286 = load i32, ptr %t268 %t287 = icmp ne i32 %t286, 0 br i1 %t287, label %then64, label %ifend66 then64: store i32 1, ptr @g_g_uses_reflect br label %ifend66 ifend66: %t289 = load ptr, ptr %t1 %t290 = getelementptr inbounds %Cmp_Node, ptr %t289, i32 0, i32 4 %t291 = load ptr, ptr %t290 %t292 = getelementptr inbounds %Cmp_Node, ptr %t291, i32 0, i32 0 %t293 = load i32, ptr %t292 %t294 = icmp eq i32 %t293, 33 %t295 = zext i1 %t294 to i32 %t296 = icmp ne i32 %t295, 0 %t297 = zext i1 %t296 to i32 store i32 %t297, ptr %t288 br i1 %t296, label %sc67, label %scend68 sc67: %t298 = load ptr, ptr %t1 %t299 = getelementptr inbounds %Cmp_Node, ptr %t298, i32 0, i32 4 %t300 = load ptr, ptr %t299 %t301 = getelementptr inbounds %Cmp_Node, ptr %t300, i32 0, i32 1 %t302 = load ptr, ptr %t301 %t303 = call i32 @lp_str_eq(ptr %t302, ptr @.str131) %t304 = icmp ne i32 %t303, 0 %t305 = zext i1 %t304 to i32 store i32 %t305, ptr %t288 br label %scend68 scend68: %t306 = load i32, ptr %t288 %t307 = icmp ne i32 %t306, 0 br i1 %t307, label %then69, label %ifend71 then69: store i32 1, ptr @g_g_uses_light br label %ifend71 ifend71: %t309 = load ptr, ptr %t1 %t310 = getelementptr inbounds %Cmp_Node, ptr %t309, i32 0, i32 4 %t311 = load ptr, ptr %t310 %t312 = getelementptr inbounds %Cmp_Node, ptr %t311, i32 0, i32 0 %t313 = load i32, ptr %t312 %t314 = icmp eq i32 %t313, 33 %t315 = zext i1 %t314 to i32 %t316 = icmp ne i32 %t315, 0 %t317 = zext i1 %t316 to i32 store i32 %t317, ptr %t308 br i1 %t316, label %sc72, label %scend73 sc72: %t319 = load ptr, ptr %t1 %t320 = getelementptr inbounds %Cmp_Node, ptr %t319, i32 0, i32 4 %t321 = load ptr, ptr %t320 %t322 = getelementptr inbounds %Cmp_Node, ptr %t321, i32 0, i32 1 %t323 = load ptr, ptr %t322 %t324 = call i32 @lp_str_eq(ptr %t323, ptr @.str132) %t325 = icmp ne i32 %t324, 0 %t326 = zext i1 %t325 to i32 store i32 %t326, ptr %t318 br i1 %t325, label %scend75, label %sc74 sc74: %t327 = load ptr, ptr %t1 %t328 = getelementptr inbounds %Cmp_Node, ptr %t327, i32 0, i32 4 %t329 = load ptr, ptr %t328 %t330 = getelementptr inbounds %Cmp_Node, ptr %t329, i32 0, i32 1 %t331 = load ptr, ptr %t330 %t332 = call i32 @lp_str_eq(ptr %t331, ptr @.str133) %t333 = icmp ne i32 %t332, 0 %t334 = zext i1 %t333 to i32 store i32 %t334, ptr %t318 br label %scend75 scend75: %t335 = load i32, ptr %t318 %t336 = icmp ne i32 %t335, 0 %t337 = zext i1 %t336 to i32 store i32 %t337, ptr %t308 br label %scend73 scend73: %t338 = load i32, ptr %t308 %t339 = icmp ne i32 %t338, 0 br i1 %t339, label %then76, label %ifend78 then76: store i32 1, ptr @g_g_uses_value br label %ifend78 ifend78: %t341 = load ptr, ptr %t1 %t342 = getelementptr inbounds %Cmp_Node, ptr %t341, i32 0, i32 4 %t343 = load ptr, ptr %t342 %t344 = getelementptr inbounds %Cmp_Node, ptr %t343, i32 0, i32 0 %t345 = load i32, ptr %t344 %t346 = icmp eq i32 %t345, 33 %t347 = zext i1 %t346 to i32 %t348 = icmp ne i32 %t347, 0 %t349 = zext i1 %t348 to i32 store i32 %t349, ptr %t340 br i1 %t348, label %sc79, label %scend80 sc79: %t350 = load ptr, ptr %t1 %t351 = getelementptr inbounds %Cmp_Node, ptr %t350, i32 0, i32 4 %t352 = load ptr, ptr %t351 %t353 = getelementptr inbounds %Cmp_Node, ptr %t352, i32 0, i32 1 %t354 = load ptr, ptr %t353 %t355 = call i32 @lp_str_eq(ptr %t354, ptr @.str134) %t356 = icmp ne i32 %t355, 0 %t357 = zext i1 %t356 to i32 store i32 %t357, ptr %t340 br label %scend80 scend80: %t358 = load i32, ptr %t340 %t359 = icmp ne i32 %t358, 0 br i1 %t359, label %then81, label %ifend83 then81: store i32 1, ptr @g_g_uses_xml br label %ifend83 ifend83: %t361 = load ptr, ptr %t1 %t362 = getelementptr inbounds %Cmp_Node, ptr %t361, i32 0, i32 4 %t363 = load ptr, ptr %t362 %t364 = getelementptr inbounds %Cmp_Node, ptr %t363, i32 0, i32 0 %t365 = load i32, ptr %t364 %t366 = icmp eq i32 %t365, 33 %t367 = zext i1 %t366 to i32 %t368 = icmp ne i32 %t367, 0 %t369 = zext i1 %t368 to i32 store i32 %t369, ptr %t360 br i1 %t368, label %sc84, label %scend85 sc84: %t370 = load ptr, ptr %t1 %t371 = getelementptr inbounds %Cmp_Node, ptr %t370, i32 0, i32 4 %t372 = load ptr, ptr %t371 %t373 = getelementptr inbounds %Cmp_Node, ptr %t372, i32 0, i32 1 %t374 = load ptr, ptr %t373 %t375 = call i32 @lp_str_eq(ptr %t374, ptr @.str135) %t376 = icmp ne i32 %t375, 0 %t377 = zext i1 %t376 to i32 store i32 %t377, ptr %t360 br label %scend85 scend85: %t378 = load i32, ptr %t360 %t379 = icmp ne i32 %t378, 0 br i1 %t379, label %then86, label %ifend88 then86: store i32 1, ptr @g_g_uses_base64 br label %ifend88 ifend88: %t381 = load ptr, ptr %t1 %t382 = getelementptr inbounds %Cmp_Node, ptr %t381, i32 0, i32 4 %t383 = load ptr, ptr %t382 %t384 = getelementptr inbounds %Cmp_Node, ptr %t383, i32 0, i32 0 %t385 = load i32, ptr %t384 %t386 = icmp eq i32 %t385, 33 %t387 = zext i1 %t386 to i32 %t388 = icmp ne i32 %t387, 0 %t389 = zext i1 %t388 to i32 store i32 %t389, ptr %t380 br i1 %t388, label %sc89, label %scend90 sc89: %t390 = load ptr, ptr %t1 %t391 = getelementptr inbounds %Cmp_Node, ptr %t390, i32 0, i32 4 %t392 = load ptr, ptr %t391 %t393 = getelementptr inbounds %Cmp_Node, ptr %t392, i32 0, i32 1 %t394 = load ptr, ptr %t393 %t395 = call i32 @lp_str_eq(ptr %t394, ptr @.str136) %t396 = icmp ne i32 %t395, 0 %t397 = zext i1 %t396 to i32 store i32 %t397, ptr %t380 br label %scend90 scend90: %t398 = load i32, ptr %t380 %t399 = icmp ne i32 %t398, 0 br i1 %t399, label %then91, label %ifend93 then91: store i32 1, ptr @g_g_uses_tiled br label %ifend93 ifend93: %t402 = load ptr, ptr %t1 %t403 = getelementptr inbounds %Cmp_Node, ptr %t402, i32 0, i32 4 %t404 = load ptr, ptr %t403 %t405 = getelementptr inbounds %Cmp_Node, ptr %t404, i32 0, i32 0 %t406 = load i32, ptr %t405 %t407 = icmp eq i32 %t406, 33 %t408 = zext i1 %t407 to i32 %t409 = icmp ne i32 %t408, 0 %t410 = zext i1 %t409 to i32 store i32 %t410, ptr %t401 br i1 %t409, label %sc94, label %scend95 sc94: %t411 = load ptr, ptr %t1 %t412 = getelementptr inbounds %Cmp_Node, ptr %t411, i32 0, i32 4 %t413 = load ptr, ptr %t412 %t414 = getelementptr inbounds %Cmp_Node, ptr %t413, i32 0, i32 1 %t415 = load ptr, ptr %t414 %t416 = call i32 @lp_str_eq(ptr %t415, ptr @.str137) %t417 = icmp ne i32 %t416, 0 %t418 = zext i1 %t417 to i32 store i32 %t418, ptr %t401 br label %scend95 scend95: %t419 = load i32, ptr %t401 %t420 = icmp ne i32 %t419, 0 %t421 = zext i1 %t420 to i32 store i32 %t421, ptr %t400 br i1 %t420, label %sc96, label %scend97 sc96: %t430 = load ptr, ptr %t1 %t431 = getelementptr inbounds %Cmp_Node, ptr %t430, i32 0, i32 1 %t432 = load ptr, ptr %t431 %t433 = call i32 @lp_str_eq(ptr %t432, ptr @.str138) %t434 = icmp ne i32 %t433, 0 %t435 = zext i1 %t434 to i32 store i32 %t435, ptr %t429 br i1 %t434, label %scend99, label %sc98 sc98: %t436 = load ptr, ptr %t1 %t437 = getelementptr inbounds %Cmp_Node, ptr %t436, i32 0, i32 1 %t438 = load ptr, ptr %t437 %t439 = call i32 @lp_str_eq(ptr %t438, ptr @.str139) %t440 = icmp ne i32 %t439, 0 %t441 = zext i1 %t440 to i32 store i32 %t441, ptr %t429 br label %scend99 scend99: %t442 = load i32, ptr %t429 %t443 = icmp ne i32 %t442, 0 %t444 = zext i1 %t443 to i32 store i32 %t444, ptr %t428 br i1 %t443, label %scend101, label %sc100 sc100: %t445 = load ptr, ptr %t1 %t446 = getelementptr inbounds %Cmp_Node, ptr %t445, i32 0, i32 1 %t447 = load ptr, ptr %t446 %t448 = call i32 @lp_str_eq(ptr %t447, ptr @.str140) %t449 = icmp ne i32 %t448, 0 %t450 = zext i1 %t449 to i32 store i32 %t450, ptr %t428 br label %scend101 scend101: %t451 = load i32, ptr %t428 %t452 = icmp ne i32 %t451, 0 %t453 = zext i1 %t452 to i32 store i32 %t453, ptr %t427 br i1 %t452, label %scend103, label %sc102 sc102: %t454 = load ptr, ptr %t1 %t455 = getelementptr inbounds %Cmp_Node, ptr %t454, i32 0, i32 1 %t456 = load ptr, ptr %t455 %t457 = call i32 @lp_str_eq(ptr %t456, ptr @.str141) %t458 = icmp ne i32 %t457, 0 %t459 = zext i1 %t458 to i32 store i32 %t459, ptr %t427 br label %scend103 scend103: %t460 = load i32, ptr %t427 %t461 = icmp ne i32 %t460, 0 %t462 = zext i1 %t461 to i32 store i32 %t462, ptr %t426 br i1 %t461, label %scend105, label %sc104 sc104: %t463 = load ptr, ptr %t1 %t464 = getelementptr inbounds %Cmp_Node, ptr %t463, i32 0, i32 1 %t465 = load ptr, ptr %t464 %t466 = call i32 @lp_str_eq(ptr %t465, ptr @.str142) %t467 = icmp ne i32 %t466, 0 %t468 = zext i1 %t467 to i32 store i32 %t468, ptr %t426 br label %scend105 scend105: %t469 = load i32, ptr %t426 %t470 = icmp ne i32 %t469, 0 %t471 = zext i1 %t470 to i32 store i32 %t471, ptr %t425 br i1 %t470, label %scend107, label %sc106 sc106: %t472 = load ptr, ptr %t1 %t473 = getelementptr inbounds %Cmp_Node, ptr %t472, i32 0, i32 1 %t474 = load ptr, ptr %t473 %t475 = call i32 @lp_str_eq(ptr %t474, ptr @.str143) %t476 = icmp ne i32 %t475, 0 %t477 = zext i1 %t476 to i32 store i32 %t477, ptr %t425 br label %scend107 scend107: %t478 = load i32, ptr %t425 %t479 = icmp ne i32 %t478, 0 %t480 = zext i1 %t479 to i32 store i32 %t480, ptr %t424 br i1 %t479, label %scend109, label %sc108 sc108: %t481 = load ptr, ptr %t1 %t482 = getelementptr inbounds %Cmp_Node, ptr %t481, i32 0, i32 1 %t483 = load ptr, ptr %t482 %t484 = call i32 @lp_str_eq(ptr %t483, ptr @.str144) %t485 = icmp ne i32 %t484, 0 %t486 = zext i1 %t485 to i32 store i32 %t486, ptr %t424 br label %scend109 scend109: %t487 = load i32, ptr %t424 %t488 = icmp ne i32 %t487, 0 %t489 = zext i1 %t488 to i32 store i32 %t489, ptr %t423 br i1 %t488, label %scend111, label %sc110 sc110: %t490 = load ptr, ptr %t1 %t491 = getelementptr inbounds %Cmp_Node, ptr %t490, i32 0, i32 1 %t492 = load ptr, ptr %t491 %t493 = call i32 @lp_str_eq(ptr %t492, ptr @.str145) %t494 = icmp ne i32 %t493, 0 %t495 = zext i1 %t494 to i32 store i32 %t495, ptr %t423 br label %scend111 scend111: %t496 = load i32, ptr %t423 %t497 = icmp ne i32 %t496, 0 %t498 = zext i1 %t497 to i32 store i32 %t498, ptr %t422 br i1 %t497, label %scend113, label %sc112 sc112: %t499 = load ptr, ptr %t1 %t500 = getelementptr inbounds %Cmp_Node, ptr %t499, i32 0, i32 1 %t501 = load ptr, ptr %t500 %t502 = call i32 @lp_str_eq(ptr %t501, ptr @.str146) %t503 = icmp ne i32 %t502, 0 %t504 = zext i1 %t503 to i32 store i32 %t504, ptr %t422 br label %scend113 scend113: %t505 = load i32, ptr %t422 %t506 = icmp ne i32 %t505, 0 %t507 = zext i1 %t506 to i32 store i32 %t507, ptr %t400 br label %scend97 scend97: %t508 = load i32, ptr %t400 %t509 = icmp ne i32 %t508, 0 br i1 %t509, label %then114, label %ifend116 then114: store i32 1, ptr @g_g_uses_atlas br label %ifend116 ifend116: %t511 = load ptr, ptr %t1 %t512 = getelementptr inbounds %Cmp_Node, ptr %t511, i32 0, i32 4 %t513 = load ptr, ptr %t512 %t514 = getelementptr inbounds %Cmp_Node, ptr %t513, i32 0, i32 0 %t515 = load i32, ptr %t514 %t516 = icmp eq i32 %t515, 33 %t517 = zext i1 %t516 to i32 %t518 = icmp ne i32 %t517, 0 %t519 = zext i1 %t518 to i32 store i32 %t519, ptr %t510 br i1 %t518, label %sc117, label %scend118 sc117: %t520 = load ptr, ptr %t1 %t521 = getelementptr inbounds %Cmp_Node, ptr %t520, i32 0, i32 4 %t522 = load ptr, ptr %t521 %t523 = getelementptr inbounds %Cmp_Node, ptr %t522, i32 0, i32 1 %t524 = load ptr, ptr %t523 %t525 = call i32 @lp_str_eq(ptr %t524, ptr @.str147) %t526 = icmp ne i32 %t525, 0 %t527 = zext i1 %t526 to i32 store i32 %t527, ptr %t510 br label %scend118 scend118: %t528 = load i32, ptr %t510 %t529 = icmp ne i32 %t528, 0 br i1 %t529, label %then119, label %ifend121 then119: store i32 1, ptr @g_g_uses_atlas br label %ifend121 ifend121: %t532 = load ptr, ptr %t1 %t533 = getelementptr inbounds %Cmp_Node, ptr %t532, i32 0, i32 4 %t534 = load ptr, ptr %t533 %t535 = getelementptr inbounds %Cmp_Node, ptr %t534, i32 0, i32 0 %t536 = load i32, ptr %t535 %t537 = icmp eq i32 %t536, 33 %t538 = zext i1 %t537 to i32 %t539 = icmp ne i32 %t538, 0 %t540 = zext i1 %t539 to i32 store i32 %t540, ptr %t531 br i1 %t539, label %sc122, label %scend123 sc122: %t541 = load ptr, ptr %t1 %t542 = getelementptr inbounds %Cmp_Node, ptr %t541, i32 0, i32 4 %t543 = load ptr, ptr %t542 %t544 = getelementptr inbounds %Cmp_Node, ptr %t543, i32 0, i32 1 %t545 = load ptr, ptr %t544 %t546 = call i32 @lp_str_eq(ptr %t545, ptr @.str148) %t547 = icmp ne i32 %t546, 0 %t548 = zext i1 %t547 to i32 store i32 %t548, ptr %t531 br label %scend123 scend123: %t549 = load i32, ptr %t531 %t550 = icmp ne i32 %t549, 0 %t551 = zext i1 %t550 to i32 store i32 %t551, ptr %t530 br i1 %t550, label %sc124, label %scend125 sc124: %t553 = load ptr, ptr %t1 %t554 = getelementptr inbounds %Cmp_Node, ptr %t553, i32 0, i32 1 %t555 = load ptr, ptr %t554 %t556 = call i32 @lp_str_eq(ptr %t555, ptr @.str149) %t557 = icmp ne i32 %t556, 0 %t558 = zext i1 %t557 to i32 store i32 %t558, ptr %t552 br i1 %t557, label %scend127, label %sc126 sc126: %t559 = load ptr, ptr %t1 %t560 = getelementptr inbounds %Cmp_Node, ptr %t559, i32 0, i32 1 %t561 = load ptr, ptr %t560 %t562 = call i32 @lp_str_eq(ptr %t561, ptr @.str150) %t563 = icmp ne i32 %t562, 0 %t564 = zext i1 %t563 to i32 store i32 %t564, ptr %t552 br label %scend127 scend127: %t565 = load i32, ptr %t552 %t566 = icmp ne i32 %t565, 0 %t567 = zext i1 %t566 to i32 store i32 %t567, ptr %t530 br label %scend125 scend125: %t568 = load i32, ptr %t530 %t569 = icmp ne i32 %t568, 0 br i1 %t569, label %then128, label %ifend130 then128: store i32 1, ptr @g_g_uses_value store i32 1, ptr @g_g_uses_reflect_io br label %ifend130 ifend130: %t572 = load ptr, ptr %t1 %t573 = getelementptr inbounds %Cmp_Node, ptr %t572, i32 0, i32 4 %t574 = load ptr, ptr %t573 %t575 = getelementptr inbounds %Cmp_Node, ptr %t574, i32 0, i32 0 %t576 = load i32, ptr %t575 %t577 = icmp eq i32 %t576, 33 %t578 = zext i1 %t577 to i32 %t579 = icmp ne i32 %t578, 0 %t580 = zext i1 %t579 to i32 store i32 %t580, ptr %t571 br i1 %t579, label %sc131, label %scend132 sc131: %t581 = load ptr, ptr %t1 %t582 = getelementptr inbounds %Cmp_Node, ptr %t581, i32 0, i32 4 %t583 = load ptr, ptr %t582 %t584 = getelementptr inbounds %Cmp_Node, ptr %t583, i32 0, i32 1 %t585 = load ptr, ptr %t584 %t586 = call i32 @lp_str_eq(ptr %t585, ptr @.str151) %t587 = icmp ne i32 %t586, 0 %t588 = zext i1 %t587 to i32 store i32 %t588, ptr %t571 br label %scend132 scend132: %t589 = load i32, ptr %t571 %t590 = icmp ne i32 %t589, 0 %t591 = zext i1 %t590 to i32 store i32 %t591, ptr %t570 br i1 %t590, label %sc133, label %scend134 sc133: %t603 = load ptr, ptr %t1 %t604 = getelementptr inbounds %Cmp_Node, ptr %t603, i32 0, i32 1 %t605 = load ptr, ptr %t604 %t606 = call i32 @lp_str_eq(ptr %t605, ptr @.str152) %t607 = icmp ne i32 %t606, 0 %t608 = zext i1 %t607 to i32 store i32 %t608, ptr %t602 br i1 %t607, label %scend136, label %sc135 sc135: %t609 = load ptr, ptr %t1 %t610 = getelementptr inbounds %Cmp_Node, ptr %t609, i32 0, i32 1 %t611 = load ptr, ptr %t610 %t612 = call i32 @lp_str_eq(ptr %t611, ptr @.str153) %t613 = icmp ne i32 %t612, 0 %t614 = zext i1 %t613 to i32 store i32 %t614, ptr %t602 br label %scend136 scend136: %t615 = load i32, ptr %t602 %t616 = icmp ne i32 %t615, 0 %t617 = zext i1 %t616 to i32 store i32 %t617, ptr %t601 br i1 %t616, label %scend138, label %sc137 sc137: %t618 = load ptr, ptr %t1 %t619 = getelementptr inbounds %Cmp_Node, ptr %t618, i32 0, i32 1 %t620 = load ptr, ptr %t619 %t621 = call i32 @lp_str_eq(ptr %t620, ptr @.str154) %t622 = icmp ne i32 %t621, 0 %t623 = zext i1 %t622 to i32 store i32 %t623, ptr %t601 br label %scend138 scend138: %t624 = load i32, ptr %t601 %t625 = icmp ne i32 %t624, 0 %t626 = zext i1 %t625 to i32 store i32 %t626, ptr %t600 br i1 %t625, label %scend140, label %sc139 sc139: %t627 = load ptr, ptr %t1 %t628 = getelementptr inbounds %Cmp_Node, ptr %t627, i32 0, i32 1 %t629 = load ptr, ptr %t628 %t630 = call i32 @lp_str_eq(ptr %t629, ptr @.str155) %t631 = icmp ne i32 %t630, 0 %t632 = zext i1 %t631 to i32 store i32 %t632, ptr %t600 br label %scend140 scend140: %t633 = load i32, ptr %t600 %t634 = icmp ne i32 %t633, 0 %t635 = zext i1 %t634 to i32 store i32 %t635, ptr %t599 br i1 %t634, label %scend142, label %sc141 sc141: %t636 = load ptr, ptr %t1 %t637 = getelementptr inbounds %Cmp_Node, ptr %t636, i32 0, i32 1 %t638 = load ptr, ptr %t637 %t639 = call i32 @lp_str_eq(ptr %t638, ptr @.str156) %t640 = icmp ne i32 %t639, 0 %t641 = zext i1 %t640 to i32 store i32 %t641, ptr %t599 br label %scend142 scend142: %t642 = load i32, ptr %t599 %t643 = icmp ne i32 %t642, 0 %t644 = zext i1 %t643 to i32 store i32 %t644, ptr %t598 br i1 %t643, label %scend144, label %sc143 sc143: %t645 = load ptr, ptr %t1 %t646 = getelementptr inbounds %Cmp_Node, ptr %t645, i32 0, i32 1 %t647 = load ptr, ptr %t646 %t648 = call i32 @lp_str_eq(ptr %t647, ptr @.str157) %t649 = icmp ne i32 %t648, 0 %t650 = zext i1 %t649 to i32 store i32 %t650, ptr %t598 br label %scend144 scend144: %t651 = load i32, ptr %t598 %t652 = icmp ne i32 %t651, 0 %t653 = zext i1 %t652 to i32 store i32 %t653, ptr %t597 br i1 %t652, label %scend146, label %sc145 sc145: %t654 = load ptr, ptr %t1 %t655 = getelementptr inbounds %Cmp_Node, ptr %t654, i32 0, i32 1 %t656 = load ptr, ptr %t655 %t657 = call i32 @lp_str_eq(ptr %t656, ptr @.str158) %t658 = icmp ne i32 %t657, 0 %t659 = zext i1 %t658 to i32 store i32 %t659, ptr %t597 br label %scend146 scend146: %t660 = load i32, ptr %t597 %t661 = icmp ne i32 %t660, 0 %t662 = zext i1 %t661 to i32 store i32 %t662, ptr %t596 br i1 %t661, label %scend148, label %sc147 sc147: %t663 = load ptr, ptr %t1 %t664 = getelementptr inbounds %Cmp_Node, ptr %t663, i32 0, i32 1 %t665 = load ptr, ptr %t664 %t666 = call i32 @lp_str_eq(ptr %t665, ptr @.str159) %t667 = icmp ne i32 %t666, 0 %t668 = zext i1 %t667 to i32 store i32 %t668, ptr %t596 br label %scend148 scend148: %t669 = load i32, ptr %t596 %t670 = icmp ne i32 %t669, 0 %t671 = zext i1 %t670 to i32 store i32 %t671, ptr %t595 br i1 %t670, label %scend150, label %sc149 sc149: %t672 = load ptr, ptr %t1 %t673 = getelementptr inbounds %Cmp_Node, ptr %t672, i32 0, i32 1 %t674 = load ptr, ptr %t673 %t675 = call i32 @lp_str_eq(ptr %t674, ptr @.str160) %t676 = icmp ne i32 %t675, 0 %t677 = zext i1 %t676 to i32 store i32 %t677, ptr %t595 br label %scend150 scend150: %t678 = load i32, ptr %t595 %t679 = icmp ne i32 %t678, 0 %t680 = zext i1 %t679 to i32 store i32 %t680, ptr %t594 br i1 %t679, label %scend152, label %sc151 sc151: %t681 = load ptr, ptr %t1 %t682 = getelementptr inbounds %Cmp_Node, ptr %t681, i32 0, i32 1 %t683 = load ptr, ptr %t682 %t684 = call i32 @lp_str_eq(ptr %t683, ptr @.str161) %t685 = icmp ne i32 %t684, 0 %t686 = zext i1 %t685 to i32 store i32 %t686, ptr %t594 br label %scend152 scend152: %t687 = load i32, ptr %t594 %t688 = icmp ne i32 %t687, 0 %t689 = zext i1 %t688 to i32 store i32 %t689, ptr %t593 br i1 %t688, label %scend154, label %sc153 sc153: %t690 = load ptr, ptr %t1 %t691 = getelementptr inbounds %Cmp_Node, ptr %t690, i32 0, i32 1 %t692 = load ptr, ptr %t691 %t693 = call i32 @lp_str_eq(ptr %t692, ptr @.str162) %t694 = icmp ne i32 %t693, 0 %t695 = zext i1 %t694 to i32 store i32 %t695, ptr %t593 br label %scend154 scend154: %t696 = load i32, ptr %t593 %t697 = icmp ne i32 %t696, 0 %t698 = zext i1 %t697 to i32 store i32 %t698, ptr %t592 br i1 %t697, label %scend156, label %sc155 sc155: %t699 = load ptr, ptr %t1 %t700 = getelementptr inbounds %Cmp_Node, ptr %t699, i32 0, i32 1 %t701 = load ptr, ptr %t700 %t702 = call i32 @lp_str_eq(ptr %t701, ptr @.str163) %t703 = icmp ne i32 %t702, 0 %t704 = zext i1 %t703 to i32 store i32 %t704, ptr %t592 br label %scend156 scend156: %t705 = load i32, ptr %t592 %t706 = icmp ne i32 %t705, 0 %t707 = zext i1 %t706 to i32 store i32 %t707, ptr %t570 br label %scend134 scend134: %t708 = load i32, ptr %t570 %t709 = icmp ne i32 %t708, 0 br i1 %t709, label %then157, label %ifend159 then157: store i32 1, ptr @g_g_uses_input br label %ifend159 ifend159: %t712 = load ptr, ptr %t1 %t713 = getelementptr inbounds %Cmp_Node, ptr %t712, i32 0, i32 4 %t714 = load ptr, ptr %t713 %t715 = getelementptr inbounds %Cmp_Node, ptr %t714, i32 0, i32 0 %t716 = load i32, ptr %t715 %t717 = icmp eq i32 %t716, 33 %t718 = zext i1 %t717 to i32 %t719 = icmp ne i32 %t718, 0 %t720 = zext i1 %t719 to i32 store i32 %t720, ptr %t711 br i1 %t719, label %sc160, label %scend161 sc160: %t721 = load ptr, ptr %t1 %t722 = getelementptr inbounds %Cmp_Node, ptr %t721, i32 0, i32 4 %t723 = load ptr, ptr %t722 %t724 = getelementptr inbounds %Cmp_Node, ptr %t723, i32 0, i32 1 %t725 = load ptr, ptr %t724 %t726 = call i32 @lp_str_eq(ptr %t725, ptr @.str164) %t727 = icmp ne i32 %t726, 0 %t728 = zext i1 %t727 to i32 store i32 %t728, ptr %t711 br label %scend161 scend161: %t729 = load i32, ptr %t711 %t730 = icmp ne i32 %t729, 0 %t731 = zext i1 %t730 to i32 store i32 %t731, ptr %t710 br i1 %t730, label %sc162, label %scend163 sc162: %t758 = load ptr, ptr %t1 %t759 = getelementptr inbounds %Cmp_Node, ptr %t758, i32 0, i32 1 %t760 = load ptr, ptr %t759 %t761 = call i32 @lp_str_eq(ptr %t760, ptr @.str165) %t762 = icmp ne i32 %t761, 0 %t763 = zext i1 %t762 to i32 store i32 %t763, ptr %t757 br i1 %t762, label %scend165, label %sc164 sc164: %t764 = load ptr, ptr %t1 %t765 = getelementptr inbounds %Cmp_Node, ptr %t764, i32 0, i32 1 %t766 = load ptr, ptr %t765 %t767 = call i32 @lp_str_eq(ptr %t766, ptr @.str166) %t768 = icmp ne i32 %t767, 0 %t769 = zext i1 %t768 to i32 store i32 %t769, ptr %t757 br label %scend165 scend165: %t770 = load i32, ptr %t757 %t771 = icmp ne i32 %t770, 0 %t772 = zext i1 %t771 to i32 store i32 %t772, ptr %t756 br i1 %t771, label %scend167, label %sc166 sc166: %t773 = load ptr, ptr %t1 %t774 = getelementptr inbounds %Cmp_Node, ptr %t773, i32 0, i32 1 %t775 = load ptr, ptr %t774 %t776 = call i32 @lp_str_eq(ptr %t775, ptr @.str167) %t777 = icmp ne i32 %t776, 0 %t778 = zext i1 %t777 to i32 store i32 %t778, ptr %t756 br label %scend167 scend167: %t779 = load i32, ptr %t756 %t780 = icmp ne i32 %t779, 0 %t781 = zext i1 %t780 to i32 store i32 %t781, ptr %t755 br i1 %t780, label %scend169, label %sc168 sc168: %t782 = load ptr, ptr %t1 %t783 = getelementptr inbounds %Cmp_Node, ptr %t782, i32 0, i32 1 %t784 = load ptr, ptr %t783 %t785 = call i32 @lp_str_eq(ptr %t784, ptr @.str168) %t786 = icmp ne i32 %t785, 0 %t787 = zext i1 %t786 to i32 store i32 %t787, ptr %t755 br label %scend169 scend169: %t788 = load i32, ptr %t755 %t789 = icmp ne i32 %t788, 0 %t790 = zext i1 %t789 to i32 store i32 %t790, ptr %t754 br i1 %t789, label %scend171, label %sc170 sc170: %t791 = load ptr, ptr %t1 %t792 = getelementptr inbounds %Cmp_Node, ptr %t791, i32 0, i32 1 %t793 = load ptr, ptr %t792 %t794 = call i32 @lp_str_eq(ptr %t793, ptr @.str169) %t795 = icmp ne i32 %t794, 0 %t796 = zext i1 %t795 to i32 store i32 %t796, ptr %t754 br label %scend171 scend171: %t797 = load i32, ptr %t754 %t798 = icmp ne i32 %t797, 0 %t799 = zext i1 %t798 to i32 store i32 %t799, ptr %t753 br i1 %t798, label %scend173, label %sc172 sc172: %t800 = load ptr, ptr %t1 %t801 = getelementptr inbounds %Cmp_Node, ptr %t800, i32 0, i32 1 %t802 = load ptr, ptr %t801 %t803 = call i32 @lp_str_eq(ptr %t802, ptr @.str170) %t804 = icmp ne i32 %t803, 0 %t805 = zext i1 %t804 to i32 store i32 %t805, ptr %t753 br label %scend173 scend173: %t806 = load i32, ptr %t753 %t807 = icmp ne i32 %t806, 0 %t808 = zext i1 %t807 to i32 store i32 %t808, ptr %t752 br i1 %t807, label %scend175, label %sc174 sc174: %t809 = load ptr, ptr %t1 %t810 = getelementptr inbounds %Cmp_Node, ptr %t809, i32 0, i32 1 %t811 = load ptr, ptr %t810 %t812 = call i32 @lp_str_eq(ptr %t811, ptr @.str171) %t813 = icmp ne i32 %t812, 0 %t814 = zext i1 %t813 to i32 store i32 %t814, ptr %t752 br label %scend175 scend175: %t815 = load i32, ptr %t752 %t816 = icmp ne i32 %t815, 0 %t817 = zext i1 %t816 to i32 store i32 %t817, ptr %t751 br i1 %t816, label %scend177, label %sc176 sc176: %t818 = load ptr, ptr %t1 %t819 = getelementptr inbounds %Cmp_Node, ptr %t818, i32 0, i32 1 %t820 = load ptr, ptr %t819 %t821 = call i32 @lp_str_eq(ptr %t820, ptr @.str172) %t822 = icmp ne i32 %t821, 0 %t823 = zext i1 %t822 to i32 store i32 %t823, ptr %t751 br label %scend177 scend177: %t824 = load i32, ptr %t751 %t825 = icmp ne i32 %t824, 0 %t826 = zext i1 %t825 to i32 store i32 %t826, ptr %t750 br i1 %t825, label %scend179, label %sc178 sc178: %t827 = load ptr, ptr %t1 %t828 = getelementptr inbounds %Cmp_Node, ptr %t827, i32 0, i32 1 %t829 = load ptr, ptr %t828 %t830 = call i32 @lp_str_eq(ptr %t829, ptr @.str173) %t831 = icmp ne i32 %t830, 0 %t832 = zext i1 %t831 to i32 store i32 %t832, ptr %t750 br label %scend179 scend179: %t833 = load i32, ptr %t750 %t834 = icmp ne i32 %t833, 0 %t835 = zext i1 %t834 to i32 store i32 %t835, ptr %t749 br i1 %t834, label %scend181, label %sc180 sc180: %t836 = load ptr, ptr %t1 %t837 = getelementptr inbounds %Cmp_Node, ptr %t836, i32 0, i32 1 %t838 = load ptr, ptr %t837 %t839 = call i32 @lp_str_eq(ptr %t838, ptr @.str174) %t840 = icmp ne i32 %t839, 0 %t841 = zext i1 %t840 to i32 store i32 %t841, ptr %t749 br label %scend181 scend181: %t842 = load i32, ptr %t749 %t843 = icmp ne i32 %t842, 0 %t844 = zext i1 %t843 to i32 store i32 %t844, ptr %t748 br i1 %t843, label %scend183, label %sc182 sc182: %t845 = load ptr, ptr %t1 %t846 = getelementptr inbounds %Cmp_Node, ptr %t845, i32 0, i32 1 %t847 = load ptr, ptr %t846 %t848 = call i32 @lp_str_eq(ptr %t847, ptr @.str175) %t849 = icmp ne i32 %t848, 0 %t850 = zext i1 %t849 to i32 store i32 %t850, ptr %t748 br label %scend183 scend183: %t851 = load i32, ptr %t748 %t852 = icmp ne i32 %t851, 0 %t853 = zext i1 %t852 to i32 store i32 %t853, ptr %t747 br i1 %t852, label %scend185, label %sc184 sc184: %t854 = load ptr, ptr %t1 %t855 = getelementptr inbounds %Cmp_Node, ptr %t854, i32 0, i32 1 %t856 = load ptr, ptr %t855 %t857 = call i32 @lp_str_eq(ptr %t856, ptr @.str176) %t858 = icmp ne i32 %t857, 0 %t859 = zext i1 %t858 to i32 store i32 %t859, ptr %t747 br label %scend185 scend185: %t860 = load i32, ptr %t747 %t861 = icmp ne i32 %t860, 0 %t862 = zext i1 %t861 to i32 store i32 %t862, ptr %t746 br i1 %t861, label %scend187, label %sc186 sc186: %t863 = load ptr, ptr %t1 %t864 = getelementptr inbounds %Cmp_Node, ptr %t863, i32 0, i32 1 %t865 = load ptr, ptr %t864 %t866 = call i32 @lp_str_eq(ptr %t865, ptr @.str177) %t867 = icmp ne i32 %t866, 0 %t868 = zext i1 %t867 to i32 store i32 %t868, ptr %t746 br label %scend187 scend187: %t869 = load i32, ptr %t746 %t870 = icmp ne i32 %t869, 0 %t871 = zext i1 %t870 to i32 store i32 %t871, ptr %t745 br i1 %t870, label %scend189, label %sc188 sc188: %t872 = load ptr, ptr %t1 %t873 = getelementptr inbounds %Cmp_Node, ptr %t872, i32 0, i32 1 %t874 = load ptr, ptr %t873 %t875 = call i32 @lp_str_eq(ptr %t874, ptr @.str178) %t876 = icmp ne i32 %t875, 0 %t877 = zext i1 %t876 to i32 store i32 %t877, ptr %t745 br label %scend189 scend189: %t878 = load i32, ptr %t745 %t879 = icmp ne i32 %t878, 0 %t880 = zext i1 %t879 to i32 store i32 %t880, ptr %t744 br i1 %t879, label %scend191, label %sc190 sc190: %t881 = load ptr, ptr %t1 %t882 = getelementptr inbounds %Cmp_Node, ptr %t881, i32 0, i32 1 %t883 = load ptr, ptr %t882 %t884 = call i32 @lp_str_eq(ptr %t883, ptr @.str179) %t885 = icmp ne i32 %t884, 0 %t886 = zext i1 %t885 to i32 store i32 %t886, ptr %t744 br label %scend191 scend191: %t887 = load i32, ptr %t744 %t888 = icmp ne i32 %t887, 0 %t889 = zext i1 %t888 to i32 store i32 %t889, ptr %t743 br i1 %t888, label %scend193, label %sc192 sc192: %t890 = load ptr, ptr %t1 %t891 = getelementptr inbounds %Cmp_Node, ptr %t890, i32 0, i32 1 %t892 = load ptr, ptr %t891 %t893 = call i32 @lp_str_eq(ptr %t892, ptr @.str180) %t894 = icmp ne i32 %t893, 0 %t895 = zext i1 %t894 to i32 store i32 %t895, ptr %t743 br label %scend193 scend193: %t896 = load i32, ptr %t743 %t897 = icmp ne i32 %t896, 0 %t898 = zext i1 %t897 to i32 store i32 %t898, ptr %t742 br i1 %t897, label %scend195, label %sc194 sc194: %t899 = load ptr, ptr %t1 %t900 = getelementptr inbounds %Cmp_Node, ptr %t899, i32 0, i32 1 %t901 = load ptr, ptr %t900 %t902 = call i32 @lp_str_eq(ptr %t901, ptr @.str181) %t903 = icmp ne i32 %t902, 0 %t904 = zext i1 %t903 to i32 store i32 %t904, ptr %t742 br label %scend195 scend195: %t905 = load i32, ptr %t742 %t906 = icmp ne i32 %t905, 0 %t907 = zext i1 %t906 to i32 store i32 %t907, ptr %t741 br i1 %t906, label %scend197, label %sc196 sc196: %t908 = load ptr, ptr %t1 %t909 = getelementptr inbounds %Cmp_Node, ptr %t908, i32 0, i32 1 %t910 = load ptr, ptr %t909 %t911 = call i32 @lp_str_eq(ptr %t910, ptr @.str182) %t912 = icmp ne i32 %t911, 0 %t913 = zext i1 %t912 to i32 store i32 %t913, ptr %t741 br label %scend197 scend197: %t914 = load i32, ptr %t741 %t915 = icmp ne i32 %t914, 0 %t916 = zext i1 %t915 to i32 store i32 %t916, ptr %t740 br i1 %t915, label %scend199, label %sc198 sc198: %t917 = load ptr, ptr %t1 %t918 = getelementptr inbounds %Cmp_Node, ptr %t917, i32 0, i32 1 %t919 = load ptr, ptr %t918 %t920 = call i32 @lp_str_eq(ptr %t919, ptr @.str183) %t921 = icmp ne i32 %t920, 0 %t922 = zext i1 %t921 to i32 store i32 %t922, ptr %t740 br label %scend199 scend199: %t923 = load i32, ptr %t740 %t924 = icmp ne i32 %t923, 0 %t925 = zext i1 %t924 to i32 store i32 %t925, ptr %t739 br i1 %t924, label %scend201, label %sc200 sc200: %t926 = load ptr, ptr %t1 %t927 = getelementptr inbounds %Cmp_Node, ptr %t926, i32 0, i32 1 %t928 = load ptr, ptr %t927 %t929 = call i32 @lp_str_eq(ptr %t928, ptr @.str184) %t930 = icmp ne i32 %t929, 0 %t931 = zext i1 %t930 to i32 store i32 %t931, ptr %t739 br label %scend201 scend201: %t932 = load i32, ptr %t739 %t933 = icmp ne i32 %t932, 0 %t934 = zext i1 %t933 to i32 store i32 %t934, ptr %t738 br i1 %t933, label %scend203, label %sc202 sc202: %t935 = load ptr, ptr %t1 %t936 = getelementptr inbounds %Cmp_Node, ptr %t935, i32 0, i32 1 %t937 = load ptr, ptr %t936 %t938 = call i32 @lp_str_eq(ptr %t937, ptr @.str185) %t939 = icmp ne i32 %t938, 0 %t940 = zext i1 %t939 to i32 store i32 %t940, ptr %t738 br label %scend203 scend203: %t941 = load i32, ptr %t738 %t942 = icmp ne i32 %t941, 0 %t943 = zext i1 %t942 to i32 store i32 %t943, ptr %t737 br i1 %t942, label %scend205, label %sc204 sc204: %t944 = load ptr, ptr %t1 %t945 = getelementptr inbounds %Cmp_Node, ptr %t944, i32 0, i32 1 %t946 = load ptr, ptr %t945 %t947 = call i32 @lp_str_eq(ptr %t946, ptr @.str186) %t948 = icmp ne i32 %t947, 0 %t949 = zext i1 %t948 to i32 store i32 %t949, ptr %t737 br label %scend205 scend205: %t950 = load i32, ptr %t737 %t951 = icmp ne i32 %t950, 0 %t952 = zext i1 %t951 to i32 store i32 %t952, ptr %t736 br i1 %t951, label %scend207, label %sc206 sc206: %t953 = load ptr, ptr %t1 %t954 = getelementptr inbounds %Cmp_Node, ptr %t953, i32 0, i32 1 %t955 = load ptr, ptr %t954 %t956 = call i32 @lp_str_eq(ptr %t955, ptr @.str187) %t957 = icmp ne i32 %t956, 0 %t958 = zext i1 %t957 to i32 store i32 %t958, ptr %t736 br label %scend207 scend207: %t959 = load i32, ptr %t736 %t960 = icmp ne i32 %t959, 0 %t961 = zext i1 %t960 to i32 store i32 %t961, ptr %t735 br i1 %t960, label %scend209, label %sc208 sc208: %t962 = load ptr, ptr %t1 %t963 = getelementptr inbounds %Cmp_Node, ptr %t962, i32 0, i32 1 %t964 = load ptr, ptr %t963 %t965 = call i32 @lp_str_eq(ptr %t964, ptr @.str188) %t966 = icmp ne i32 %t965, 0 %t967 = zext i1 %t966 to i32 store i32 %t967, ptr %t735 br label %scend209 scend209: %t968 = load i32, ptr %t735 %t969 = icmp ne i32 %t968, 0 %t970 = zext i1 %t969 to i32 store i32 %t970, ptr %t734 br i1 %t969, label %scend211, label %sc210 sc210: %t971 = load ptr, ptr %t1 %t972 = getelementptr inbounds %Cmp_Node, ptr %t971, i32 0, i32 1 %t973 = load ptr, ptr %t972 %t974 = call i32 @lp_str_eq(ptr %t973, ptr @.str189) %t975 = icmp ne i32 %t974, 0 %t976 = zext i1 %t975 to i32 store i32 %t976, ptr %t734 br label %scend211 scend211: %t977 = load i32, ptr %t734 %t978 = icmp ne i32 %t977, 0 %t979 = zext i1 %t978 to i32 store i32 %t979, ptr %t733 br i1 %t978, label %scend213, label %sc212 sc212: %t980 = load ptr, ptr %t1 %t981 = getelementptr inbounds %Cmp_Node, ptr %t980, i32 0, i32 1 %t982 = load ptr, ptr %t981 %t983 = call i32 @lp_str_eq(ptr %t982, ptr @.str190) %t984 = icmp ne i32 %t983, 0 %t985 = zext i1 %t984 to i32 store i32 %t985, ptr %t733 br label %scend213 scend213: %t986 = load i32, ptr %t733 %t987 = icmp ne i32 %t986, 0 %t988 = zext i1 %t987 to i32 store i32 %t988, ptr %t732 br i1 %t987, label %scend215, label %sc214 sc214: %t989 = load ptr, ptr %t1 %t990 = getelementptr inbounds %Cmp_Node, ptr %t989, i32 0, i32 1 %t991 = load ptr, ptr %t990 %t992 = call i32 @lp_str_eq(ptr %t991, ptr @.str191) %t993 = icmp ne i32 %t992, 0 %t994 = zext i1 %t993 to i32 store i32 %t994, ptr %t732 br label %scend215 scend215: %t995 = load i32, ptr %t732 %t996 = icmp ne i32 %t995, 0 %t997 = zext i1 %t996 to i32 store i32 %t997, ptr %t710 br label %scend163 scend163: %t998 = load i32, ptr %t710 %t999 = icmp ne i32 %t998, 0 br i1 %t999, label %then216, label %ifend218 then216: store i32 1, ptr @g_g_uses_input br label %ifend218 ifend218: %t1002 = load ptr, ptr %t1 %t1003 = getelementptr inbounds %Cmp_Node, ptr %t1002, i32 0, i32 4 %t1004 = load ptr, ptr %t1003 %t1005 = getelementptr inbounds %Cmp_Node, ptr %t1004, i32 0, i32 0 %t1006 = load i32, ptr %t1005 %t1007 = icmp eq i32 %t1006, 33 %t1008 = zext i1 %t1007 to i32 %t1009 = icmp ne i32 %t1008, 0 %t1010 = zext i1 %t1009 to i32 store i32 %t1010, ptr %t1001 br i1 %t1009, label %sc219, label %scend220 sc219: %t1011 = load ptr, ptr %t1 %t1012 = getelementptr inbounds %Cmp_Node, ptr %t1011, i32 0, i32 4 %t1013 = load ptr, ptr %t1012 %t1014 = getelementptr inbounds %Cmp_Node, ptr %t1013, i32 0, i32 1 %t1015 = load ptr, ptr %t1014 %t1016 = call i32 @lp_str_eq(ptr %t1015, ptr @.str192) %t1017 = icmp ne i32 %t1016, 0 %t1018 = zext i1 %t1017 to i32 store i32 %t1018, ptr %t1001 br label %scend220 scend220: %t1019 = load i32, ptr %t1001 %t1020 = icmp ne i32 %t1019, 0 %t1021 = zext i1 %t1020 to i32 store i32 %t1021, ptr %t1000 br i1 %t1020, label %sc221, label %scend222 sc221: %t1025 = load ptr, ptr %t1 %t1026 = getelementptr inbounds %Cmp_Node, ptr %t1025, i32 0, i32 1 %t1027 = load ptr, ptr %t1026 %t1028 = call i32 @lp_str_eq(ptr %t1027, ptr @.str193) %t1029 = icmp ne i32 %t1028, 0 %t1030 = zext i1 %t1029 to i32 store i32 %t1030, ptr %t1024 br i1 %t1029, label %scend224, label %sc223 sc223: %t1031 = load ptr, ptr %t1 %t1032 = getelementptr inbounds %Cmp_Node, ptr %t1031, i32 0, i32 1 %t1033 = load ptr, ptr %t1032 %t1034 = call i32 @lp_str_eq(ptr %t1033, ptr @.str194) %t1035 = icmp ne i32 %t1034, 0 %t1036 = zext i1 %t1035 to i32 store i32 %t1036, ptr %t1024 br label %scend224 scend224: %t1037 = load i32, ptr %t1024 %t1038 = icmp ne i32 %t1037, 0 %t1039 = zext i1 %t1038 to i32 store i32 %t1039, ptr %t1023 br i1 %t1038, label %scend226, label %sc225 sc225: %t1040 = load ptr, ptr %t1 %t1041 = getelementptr inbounds %Cmp_Node, ptr %t1040, i32 0, i32 1 %t1042 = load ptr, ptr %t1041 %t1043 = call i32 @lp_str_eq(ptr %t1042, ptr @.str195) %t1044 = icmp ne i32 %t1043, 0 %t1045 = zext i1 %t1044 to i32 store i32 %t1045, ptr %t1023 br label %scend226 scend226: %t1046 = load i32, ptr %t1023 %t1047 = icmp ne i32 %t1046, 0 %t1048 = zext i1 %t1047 to i32 store i32 %t1048, ptr %t1022 br i1 %t1047, label %scend228, label %sc227 sc227: %t1049 = load ptr, ptr %t1 %t1050 = getelementptr inbounds %Cmp_Node, ptr %t1049, i32 0, i32 1 %t1051 = load ptr, ptr %t1050 %t1052 = call i32 @lp_str_eq(ptr %t1051, ptr @.str196) %t1053 = icmp ne i32 %t1052, 0 %t1054 = zext i1 %t1053 to i32 store i32 %t1054, ptr %t1022 br label %scend228 scend228: %t1055 = load i32, ptr %t1022 %t1056 = icmp ne i32 %t1055, 0 %t1057 = zext i1 %t1056 to i32 store i32 %t1057, ptr %t1000 br label %scend222 scend222: %t1058 = load i32, ptr %t1000 %t1059 = icmp ne i32 %t1058, 0 br i1 %t1059, label %then229, label %ifend231 then229: store i32 1, ptr @g_g_uses_anim_rt br label %ifend231 ifend231: %t1062 = load ptr, ptr %t1 %t1063 = getelementptr inbounds %Cmp_Node, ptr %t1062, i32 0, i32 4 %t1064 = load ptr, ptr %t1063 %t1065 = getelementptr inbounds %Cmp_Node, ptr %t1064, i32 0, i32 0 %t1066 = load i32, ptr %t1065 %t1067 = icmp eq i32 %t1066, 33 %t1068 = zext i1 %t1067 to i32 %t1069 = icmp ne i32 %t1068, 0 %t1070 = zext i1 %t1069 to i32 store i32 %t1070, ptr %t1061 br i1 %t1069, label %sc232, label %scend233 sc232: %t1071 = load ptr, ptr %t1 %t1072 = getelementptr inbounds %Cmp_Node, ptr %t1071, i32 0, i32 4 %t1073 = load ptr, ptr %t1072 %t1074 = getelementptr inbounds %Cmp_Node, ptr %t1073, i32 0, i32 1 %t1075 = load ptr, ptr %t1074 %t1076 = call i32 @lp_str_eq(ptr %t1075, ptr @.str197) %t1077 = icmp ne i32 %t1076, 0 %t1078 = zext i1 %t1077 to i32 store i32 %t1078, ptr %t1061 br label %scend233 scend233: %t1079 = load i32, ptr %t1061 %t1080 = icmp ne i32 %t1079, 0 %t1081 = zext i1 %t1080 to i32 store i32 %t1081, ptr %t1060 br i1 %t1080, label %sc234, label %scend235 sc234: %t1082 = load ptr, ptr %t1 %t1083 = getelementptr inbounds %Cmp_Node, ptr %t1082, i32 0, i32 1 %t1084 = load ptr, ptr %t1083 %t1085 = call i32 @lp_str_eq(ptr %t1084, ptr @.str198) %t1086 = icmp ne i32 %t1085, 0 %t1087 = zext i1 %t1086 to i32 store i32 %t1087, ptr %t1060 br label %scend235 scend235: %t1088 = load i32, ptr %t1060 %t1089 = icmp ne i32 %t1088, 0 br i1 %t1089, label %then236, label %ifend238 then236: store i32 1, ptr @g_g_uses_anim_rt br label %ifend238 ifend238: %t1091 = load ptr, ptr %t1 %t1092 = getelementptr inbounds %Cmp_Node, ptr %t1091, i32 0, i32 4 %t1093 = load ptr, ptr %t1092 %t1094 = getelementptr inbounds %Cmp_Node, ptr %t1093, i32 0, i32 0 %t1095 = load i32, ptr %t1094 %t1096 = icmp eq i32 %t1095, 33 %t1097 = zext i1 %t1096 to i32 %t1098 = icmp ne i32 %t1097, 0 %t1099 = zext i1 %t1098 to i32 store i32 %t1099, ptr %t1090 br i1 %t1098, label %sc239, label %scend240 sc239: %t1100 = load ptr, ptr %t1 %t1101 = getelementptr inbounds %Cmp_Node, ptr %t1100, i32 0, i32 4 %t1102 = load ptr, ptr %t1101 %t1103 = getelementptr inbounds %Cmp_Node, ptr %t1102, i32 0, i32 1 %t1104 = load ptr, ptr %t1103 %t1105 = call i32 @lp_str_eq(ptr %t1104, ptr @.str199) %t1106 = icmp ne i32 %t1105, 0 %t1107 = zext i1 %t1106 to i32 store i32 %t1107, ptr %t1090 br label %scend240 scend240: %t1108 = load i32, ptr %t1090 %t1109 = icmp ne i32 %t1108, 0 br i1 %t1109, label %then241, label %ifend243 then241: store i32 1, ptr @g_g_uses_audio br label %ifend243 ifend243: %t1111 = load ptr, ptr %t1 %t1112 = getelementptr inbounds %Cmp_Node, ptr %t1111, i32 0, i32 4 %t1113 = load ptr, ptr %t1112 %t1114 = getelementptr inbounds %Cmp_Node, ptr %t1113, i32 0, i32 0 %t1115 = load i32, ptr %t1114 %t1116 = icmp eq i32 %t1115, 33 %t1117 = zext i1 %t1116 to i32 %t1118 = icmp ne i32 %t1117, 0 %t1119 = zext i1 %t1118 to i32 store i32 %t1119, ptr %t1110 br i1 %t1118, label %sc244, label %scend245 sc244: %t1120 = load ptr, ptr %t1 %t1121 = getelementptr inbounds %Cmp_Node, ptr %t1120, i32 0, i32 4 %t1122 = load ptr, ptr %t1121 %t1123 = getelementptr inbounds %Cmp_Node, ptr %t1122, i32 0, i32 1 %t1124 = load ptr, ptr %t1123 %t1125 = call i32 @lp_str_eq(ptr %t1124, ptr @.str200) %t1126 = icmp ne i32 %t1125, 0 %t1127 = zext i1 %t1126 to i32 store i32 %t1127, ptr %t1110 br label %scend245 scend245: %t1128 = load i32, ptr %t1110 %t1129 = icmp ne i32 %t1128, 0 br i1 %t1129, label %then246, label %ifend248 then246: store i32 1, ptr @g_g_uses_http br label %ifend248 ifend248: %t1131 = load ptr, ptr %t1 %t1132 = getelementptr inbounds %Cmp_Node, ptr %t1131, i32 0, i32 4 %t1133 = load ptr, ptr %t1132 %t1134 = getelementptr inbounds %Cmp_Node, ptr %t1133, i32 0, i32 0 %t1135 = load i32, ptr %t1134 %t1136 = icmp eq i32 %t1135, 33 %t1137 = zext i1 %t1136 to i32 %t1138 = icmp ne i32 %t1137, 0 %t1139 = zext i1 %t1138 to i32 store i32 %t1139, ptr %t1130 br i1 %t1138, label %sc249, label %scend250 sc249: %t1140 = load ptr, ptr %t1 %t1141 = getelementptr inbounds %Cmp_Node, ptr %t1140, i32 0, i32 4 %t1142 = load ptr, ptr %t1141 %t1143 = getelementptr inbounds %Cmp_Node, ptr %t1142, i32 0, i32 1 %t1144 = load ptr, ptr %t1143 %t1145 = call i32 @lp_str_eq(ptr %t1144, ptr @.str201) %t1146 = icmp ne i32 %t1145, 0 %t1147 = zext i1 %t1146 to i32 store i32 %t1147, ptr %t1130 br label %scend250 scend250: %t1148 = load i32, ptr %t1130 %t1149 = icmp ne i32 %t1148, 0 br i1 %t1149, label %then251, label %ifend253 then251: store i32 1, ptr @g_g_uses_udp br label %ifend253 ifend253: %t1151 = load ptr, ptr %t1 %t1152 = getelementptr inbounds %Cmp_Node, ptr %t1151, i32 0, i32 4 %t1153 = load ptr, ptr %t1152 %t1154 = getelementptr inbounds %Cmp_Node, ptr %t1153, i32 0, i32 0 %t1155 = load i32, ptr %t1154 %t1156 = icmp eq i32 %t1155, 33 %t1157 = zext i1 %t1156 to i32 %t1158 = icmp ne i32 %t1157, 0 %t1159 = zext i1 %t1158 to i32 store i32 %t1159, ptr %t1150 br i1 %t1158, label %sc254, label %scend255 sc254: %t1160 = load ptr, ptr %t1 %t1161 = getelementptr inbounds %Cmp_Node, ptr %t1160, i32 0, i32 4 %t1162 = load ptr, ptr %t1161 %t1163 = getelementptr inbounds %Cmp_Node, ptr %t1162, i32 0, i32 1 %t1164 = load ptr, ptr %t1163 %t1165 = call i32 @lp_str_eq(ptr %t1164, ptr @.str202) %t1166 = icmp ne i32 %t1165, 0 %t1167 = zext i1 %t1166 to i32 store i32 %t1167, ptr %t1150 br label %scend255 scend255: %t1168 = load i32, ptr %t1150 %t1169 = icmp ne i32 %t1168, 0 br i1 %t1169, label %then256, label %ifend258 then256: store i32 1, ptr @g_g_uses_process br label %ifend258 ifend258: %t1171 = load ptr, ptr %t1 %t1172 = getelementptr inbounds %Cmp_Node, ptr %t1171, i32 0, i32 4 %t1173 = load ptr, ptr %t1172 %t1174 = getelementptr inbounds %Cmp_Node, ptr %t1173, i32 0, i32 0 %t1175 = load i32, ptr %t1174 %t1176 = icmp eq i32 %t1175, 33 %t1177 = zext i1 %t1176 to i32 %t1178 = icmp ne i32 %t1177, 0 %t1179 = zext i1 %t1178 to i32 store i32 %t1179, ptr %t1170 br i1 %t1178, label %sc259, label %scend260 sc259: %t1180 = load ptr, ptr %t1 %t1181 = getelementptr inbounds %Cmp_Node, ptr %t1180, i32 0, i32 4 %t1182 = load ptr, ptr %t1181 %t1183 = getelementptr inbounds %Cmp_Node, ptr %t1182, i32 0, i32 1 %t1184 = load ptr, ptr %t1183 %t1185 = call i32 @lp_str_eq(ptr %t1184, ptr @.str203) %t1186 = icmp ne i32 %t1185, 0 %t1187 = zext i1 %t1186 to i32 store i32 %t1187, ptr %t1170 br label %scend260 scend260: %t1188 = load i32, ptr %t1170 %t1189 = icmp ne i32 %t1188, 0 br i1 %t1189, label %then261, label %ifend263 then261: store i32 1, ptr @g_g_uses_gl br label %ifend263 ifend263: %t1191 = load ptr, ptr %t1 %t1192 = getelementptr inbounds %Cmp_Node, ptr %t1191, i32 0, i32 4 %t1193 = load ptr, ptr %t1192 %t1194 = getelementptr inbounds %Cmp_Node, ptr %t1193, i32 0, i32 0 %t1195 = load i32, ptr %t1194 %t1196 = icmp eq i32 %t1195, 33 %t1197 = zext i1 %t1196 to i32 %t1198 = icmp ne i32 %t1197, 0 %t1199 = zext i1 %t1198 to i32 store i32 %t1199, ptr %t1190 br i1 %t1198, label %sc264, label %scend265 sc264: %t1200 = load ptr, ptr %t1 %t1201 = getelementptr inbounds %Cmp_Node, ptr %t1200, i32 0, i32 4 %t1202 = load ptr, ptr %t1201 %t1203 = getelementptr inbounds %Cmp_Node, ptr %t1202, i32 0, i32 1 %t1204 = load ptr, ptr %t1203 %t1205 = call i32 @lp_str_eq(ptr %t1204, ptr @.str204) %t1206 = icmp ne i32 %t1205, 0 %t1207 = zext i1 %t1206 to i32 store i32 %t1207, ptr %t1190 br label %scend265 scend265: %t1208 = load i32, ptr %t1190 %t1209 = icmp ne i32 %t1208, 0 br i1 %t1209, label %then266, label %ifend268 then266: store i32 1, ptr @g_g_uses_vk br label %ifend268 ifend268: %t1212 = load ptr, ptr %t1 %t1213 = getelementptr inbounds %Cmp_Node, ptr %t1212, i32 0, i32 4 %t1214 = load ptr, ptr %t1213 %t1215 = getelementptr inbounds %Cmp_Node, ptr %t1214, i32 0, i32 0 %t1216 = load i32, ptr %t1215 %t1217 = icmp eq i32 %t1216, 33 %t1218 = zext i1 %t1217 to i32 %t1219 = icmp ne i32 %t1218, 0 %t1220 = zext i1 %t1219 to i32 store i32 %t1220, ptr %t1211 br i1 %t1219, label %sc269, label %scend270 sc269: %t1221 = load ptr, ptr %t1 %t1222 = getelementptr inbounds %Cmp_Node, ptr %t1221, i32 0, i32 4 %t1223 = load ptr, ptr %t1222 %t1224 = getelementptr inbounds %Cmp_Node, ptr %t1223, i32 0, i32 1 %t1225 = load ptr, ptr %t1224 %t1226 = call i32 @lp_str_eq(ptr %t1225, ptr @.str205) %t1227 = icmp ne i32 %t1226, 0 %t1228 = zext i1 %t1227 to i32 store i32 %t1228, ptr %t1211 br label %scend270 scend270: %t1229 = load i32, ptr %t1211 %t1230 = icmp ne i32 %t1229, 0 %t1231 = zext i1 %t1230 to i32 store i32 %t1231, ptr %t1210 br i1 %t1230, label %sc271, label %scend272 sc271: %t1237 = load ptr, ptr %t1 %t1238 = getelementptr inbounds %Cmp_Node, ptr %t1237, i32 0, i32 1 %t1239 = load ptr, ptr %t1238 %t1240 = call i32 @lp_str_eq(ptr %t1239, ptr @.str206) %t1241 = icmp ne i32 %t1240, 0 %t1242 = zext i1 %t1241 to i32 store i32 %t1242, ptr %t1236 br i1 %t1241, label %scend274, label %sc273 sc273: %t1243 = load ptr, ptr %t1 %t1244 = getelementptr inbounds %Cmp_Node, ptr %t1243, i32 0, i32 1 %t1245 = load ptr, ptr %t1244 %t1246 = call i32 @lp_str_eq(ptr %t1245, ptr @.str207) %t1247 = icmp ne i32 %t1246, 0 %t1248 = zext i1 %t1247 to i32 store i32 %t1248, ptr %t1236 br label %scend274 scend274: %t1249 = load i32, ptr %t1236 %t1250 = icmp ne i32 %t1249, 0 %t1251 = zext i1 %t1250 to i32 store i32 %t1251, ptr %t1235 br i1 %t1250, label %scend276, label %sc275 sc275: %t1252 = load ptr, ptr %t1 %t1253 = getelementptr inbounds %Cmp_Node, ptr %t1252, i32 0, i32 1 %t1254 = load ptr, ptr %t1253 %t1255 = call i32 @lp_str_eq(ptr %t1254, ptr @.str208) %t1256 = icmp ne i32 %t1255, 0 %t1257 = zext i1 %t1256 to i32 store i32 %t1257, ptr %t1235 br label %scend276 scend276: %t1258 = load i32, ptr %t1235 %t1259 = icmp ne i32 %t1258, 0 %t1260 = zext i1 %t1259 to i32 store i32 %t1260, ptr %t1234 br i1 %t1259, label %scend278, label %sc277 sc277: %t1261 = load ptr, ptr %t1 %t1262 = getelementptr inbounds %Cmp_Node, ptr %t1261, i32 0, i32 1 %t1263 = load ptr, ptr %t1262 %t1264 = call i32 @lp_str_eq(ptr %t1263, ptr @.str209) %t1265 = icmp ne i32 %t1264, 0 %t1266 = zext i1 %t1265 to i32 store i32 %t1266, ptr %t1234 br label %scend278 scend278: %t1267 = load i32, ptr %t1234 %t1268 = icmp ne i32 %t1267, 0 %t1269 = zext i1 %t1268 to i32 store i32 %t1269, ptr %t1233 br i1 %t1268, label %scend280, label %sc279 sc279: %t1270 = load ptr, ptr %t1 %t1271 = getelementptr inbounds %Cmp_Node, ptr %t1270, i32 0, i32 1 %t1272 = load ptr, ptr %t1271 %t1273 = call i32 @lp_str_eq(ptr %t1272, ptr @.str210) %t1274 = icmp ne i32 %t1273, 0 %t1275 = zext i1 %t1274 to i32 store i32 %t1275, ptr %t1233 br label %scend280 scend280: %t1276 = load i32, ptr %t1233 %t1277 = icmp ne i32 %t1276, 0 %t1278 = zext i1 %t1277 to i32 store i32 %t1278, ptr %t1232 br i1 %t1277, label %scend282, label %sc281 sc281: %t1279 = load ptr, ptr %t1 %t1280 = getelementptr inbounds %Cmp_Node, ptr %t1279, i32 0, i32 1 %t1281 = load ptr, ptr %t1280 %t1282 = call i32 @lp_str_eq(ptr %t1281, ptr @.str211) %t1283 = icmp ne i32 %t1282, 0 %t1284 = zext i1 %t1283 to i32 store i32 %t1284, ptr %t1232 br label %scend282 scend282: %t1285 = load i32, ptr %t1232 %t1286 = icmp ne i32 %t1285, 0 %t1287 = zext i1 %t1286 to i32 store i32 %t1287, ptr %t1210 br label %scend272 scend272: %t1288 = load i32, ptr %t1210 %t1289 = icmp ne i32 %t1288, 0 br i1 %t1289, label %then283, label %ifend285 then283: store i32 1, ptr @g_g_uses_tween_rt br label %ifend285 ifend285: %t1291 = load ptr, ptr %t1 %t1292 = getelementptr inbounds %Cmp_Node, ptr %t1291, i32 0, i32 4 %t1293 = load ptr, ptr %t1292 %t1294 = getelementptr inbounds %Cmp_Node, ptr %t1293, i32 0, i32 0 %t1295 = load i32, ptr %t1294 %t1296 = icmp eq i32 %t1295, 33 %t1297 = zext i1 %t1296 to i32 %t1298 = icmp ne i32 %t1297, 0 %t1299 = zext i1 %t1298 to i32 store i32 %t1299, ptr %t1290 br i1 %t1298, label %sc286, label %scend287 sc286: %t1300 = load ptr, ptr %t1 %t1301 = getelementptr inbounds %Cmp_Node, ptr %t1300, i32 0, i32 4 %t1302 = load ptr, ptr %t1301 %t1303 = getelementptr inbounds %Cmp_Node, ptr %t1302, i32 0, i32 1 %t1304 = load ptr, ptr %t1303 %t1305 = call i32 @lp_str_eq(ptr %t1304, ptr @.str212) %t1306 = icmp ne i32 %t1305, 0 %t1307 = zext i1 %t1306 to i32 store i32 %t1307, ptr %t1290 br label %scend287 scend287: %t1308 = load i32, ptr %t1290 %t1309 = icmp ne i32 %t1308, 0 br i1 %t1309, label %then288, label %ifend290 then288: store i32 1, ptr @g_g_uses_fx br label %ifend290 ifend290: br label %ifend5 else4: %t1310 = call i32 @fn_is_op(ptr @.str213) %t1311 = icmp ne i32 %t1310, 0 br i1 %t1311, label %then291, label %else292 then291: %t1312 = load i32, ptr @g_pi %t1313 = add i32 %t1312, 1 store i32 %t1313, ptr @g_pi %t1314 = call ptr @fn_expr() store ptr %t1314, ptr %t1315 %t1316 = call i32 @fn_is_op(ptr @.str214) %t1317 = icmp ne i32 %t1316, 0 br i1 %t1317, label %then294, label %else295 then294: %t1318 = load i32, ptr @g_pi %t1319 = add i32 %t1318, 1 store i32 %t1319, ptr @g_pi %t1320 = call ptr @fn_node(i32 44) store ptr %t1320, ptr %t1321 %t1322 = load ptr, ptr %t1321 %t1323 = getelementptr inbounds %Cmp_Node, ptr %t1322, i32 0, i32 4 %t1324 = load ptr, ptr %t1 store ptr %t1324, ptr %t1323 %t1325 = load ptr, ptr %t1321 %t1326 = getelementptr inbounds %Cmp_Node, ptr %t1325, i32 0, i32 5 %t1327 = load ptr, ptr %t1315 store ptr %t1327, ptr %t1326 %t1328 = load ptr, ptr %t1321 %t1329 = getelementptr inbounds %Cmp_Node, ptr %t1328, i32 0, i32 6 %t1330 = call ptr @fn_expr() store ptr %t1330, ptr %t1329 call void @fn_eat_op(ptr @.str215) %t1331 = load ptr, ptr %t1321 store ptr %t1331, ptr %t1 br label %ifend296 else295: %t1332 = call ptr @fn_node(i32 36) store ptr %t1332, ptr %t1333 %t1334 = load ptr, ptr %t1333 %t1335 = getelementptr inbounds %Cmp_Node, ptr %t1334, i32 0, i32 4 %t1336 = load ptr, ptr %t1 store ptr %t1336, ptr %t1335 %t1337 = load ptr, ptr %t1333 %t1338 = getelementptr inbounds %Cmp_Node, ptr %t1337, i32 0, i32 5 %t1339 = load ptr, ptr %t1315 store ptr %t1339, ptr %t1338 call void @fn_eat_op(ptr @.str216) %t1340 = load ptr, ptr %t1333 store ptr %t1340, ptr %t1 br label %ifend296 ifend296: br label %ifend293 else292: %t1341 = call i32 @fn_is_op(ptr @.str217) %t1342 = icmp ne i32 %t1341, 0 br i1 %t1342, label %then297, label %else298 then297: %t1343 = call ptr @fn_node(i32 34) store ptr %t1343, ptr %t1344 %t1345 = load ptr, ptr %t1344 %t1346 = getelementptr inbounds %Cmp_Node, ptr %t1345, i32 0, i32 4 %t1347 = load ptr, ptr %t1 store ptr %t1347, ptr %t1346 %t1348 = load ptr, ptr %t1344 %t1349 = getelementptr inbounds %Cmp_Node, ptr %t1348, i32 0, i32 8 %t1350 = load ptr, ptr @g_toks %t1351 = load i32, ptr @g_pi %t1352 = getelementptr inbounds %LSlice, ptr %t1350, i32 0, i32 0 %t1353 = load ptr, ptr %t1352 %t1354 = getelementptr inbounds %LSlice, ptr %t1350, i32 0, i32 1 %t1355 = load i32, ptr %t1354 %t1356 = icmp ult i32 %t1351, %t1355 br i1 %t1356, label %ixok300, label %ixbad301 ixbad301: %t1357 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1357, ptr @.fmt_bounds, ptr @.str218, i32 %t1351, i32 %t1355) call void @exit(i32 1) unreachable ixok300: %t1358 = getelementptr inbounds ptr, ptr %t1353, i32 %t1351 %t1359 = load ptr, ptr %t1358 %t1360 = getelementptr inbounds %Cmp_Tok, ptr %t1359, i32 0, i32 3 %t1361 = load i32, ptr %t1360 store i32 %t1361, ptr %t1349 %t1362 = load ptr, ptr %t1344 call void @fn_args_call(ptr %t1362) %t1363 = load ptr, ptr %t1344 store ptr %t1363, ptr %t1 %t1365 = load ptr, ptr %t1344 %t1366 = getelementptr inbounds %Cmp_Node, ptr %t1365, i32 0, i32 4 %t1367 = load ptr, ptr %t1366 %t1368 = getelementptr inbounds %Cmp_Node, ptr %t1367, i32 0, i32 0 %t1369 = load i32, ptr %t1368 %t1370 = icmp eq i32 %t1369, 33 %t1371 = zext i1 %t1370 to i32 %t1372 = icmp ne i32 %t1371, 0 %t1373 = zext i1 %t1372 to i32 store i32 %t1373, ptr %t1364 br i1 %t1372, label %sc302, label %scend303 sc302: %t1374 = load ptr, ptr %t1344 %t1375 = getelementptr inbounds %Cmp_Node, ptr %t1374, i32 0, i32 4 %t1376 = load ptr, ptr %t1375 %t1377 = getelementptr inbounds %Cmp_Node, ptr %t1376, i32 0, i32 1 %t1378 = load ptr, ptr %t1377 %t1379 = call i32 @fn_rt_wanted_name(ptr %t1378) %t1380 = icmp ne i32 %t1379, 0 %t1381 = zext i1 %t1380 to i32 store i32 %t1381, ptr %t1364 br label %scend303 scend303: %t1382 = load i32, ptr %t1364 %t1383 = icmp ne i32 %t1382, 0 br i1 %t1383, label %then304, label %ifend306 then304: %t1384 = load ptr, ptr @g_g_rt_wants %t1385 = load ptr, ptr %t1344 %t1386 = getelementptr inbounds %Cmp_Node, ptr %t1385, i32 0, i32 4 %t1387 = load ptr, ptr %t1386 %t1388 = getelementptr inbounds %Cmp_Node, ptr %t1387, i32 0, i32 1 %t1389 = load ptr, ptr %t1388 %t1390 = getelementptr inbounds %LSlice, ptr %t1384, i32 0, i32 1 %t1391 = getelementptr inbounds %LSlice, ptr %t1384, i32 0, i32 2 %t1392 = getelementptr inbounds %LSlice, ptr %t1384, i32 0, i32 0 %t1393 = load i32, ptr %t1390 %t1394 = load i32, ptr %t1391 %t1395 = icmp sge i32 %t1393, %t1394 br i1 %t1395, label %grow307, label %put308 grow307: %t1396 = mul i32 %t1394, 2 %t1397 = icmp eq i32 %t1394, 0 %t1398 = select i1 %t1397, i32 8, i32 %t1396 %t1399 = getelementptr ptr, ptr null, i32 1 %t1400 = ptrtoint ptr %t1399 to i64 %t1401 = zext i32 %t1398 to i64 %t1402 = mul i64 %t1401, %t1400 %t1403 = load ptr, ptr %t1392 %t1404 = call ptr @realloc(ptr %t1403, i64 %t1402) store ptr %t1404, ptr %t1392 store i32 %t1398, ptr %t1391 br label %put308 put308: %t1405 = load ptr, ptr %t1392 %t1406 = getelementptr inbounds ptr, ptr %t1405, i32 %t1393 store ptr %t1389, ptr %t1406 %t1407 = add i32 %t1393, 1 store i32 %t1407, ptr %t1390 br label %ifend306 ifend306: %t1409 = load ptr, ptr %t1344 %t1410 = getelementptr inbounds %Cmp_Node, ptr %t1409, i32 0, i32 4 %t1411 = load ptr, ptr %t1410 %t1412 = getelementptr inbounds %Cmp_Node, ptr %t1411, i32 0, i32 0 %t1413 = load i32, ptr %t1412 %t1414 = icmp eq i32 %t1413, 33 %t1415 = zext i1 %t1414 to i32 %t1416 = icmp ne i32 %t1415, 0 %t1417 = zext i1 %t1416 to i32 store i32 %t1417, ptr %t1408 br i1 %t1416, label %sc309, label %scend310 sc309: %t1419 = load ptr, ptr %t1344 %t1420 = getelementptr inbounds %Cmp_Node, ptr %t1419, i32 0, i32 4 %t1421 = load ptr, ptr %t1420 %t1422 = getelementptr inbounds %Cmp_Node, ptr %t1421, i32 0, i32 1 %t1423 = load ptr, ptr %t1422 %t1424 = call i32 @lp_str_eq(ptr %t1423, ptr @.str219) %t1425 = icmp ne i32 %t1424, 0 %t1426 = zext i1 %t1425 to i32 store i32 %t1426, ptr %t1418 br i1 %t1425, label %scend312, label %sc311 sc311: %t1427 = load ptr, ptr %t1344 %t1428 = getelementptr inbounds %Cmp_Node, ptr %t1427, i32 0, i32 4 %t1429 = load ptr, ptr %t1428 %t1430 = getelementptr inbounds %Cmp_Node, ptr %t1429, i32 0, i32 1 %t1431 = load ptr, ptr %t1430 %t1432 = call i32 @lp_str_eq(ptr %t1431, ptr @.str220) %t1433 = icmp ne i32 %t1432, 0 %t1434 = zext i1 %t1433 to i32 store i32 %t1434, ptr %t1418 br label %scend312 scend312: %t1435 = load i32, ptr %t1418 %t1436 = icmp ne i32 %t1435, 0 %t1437 = zext i1 %t1436 to i32 store i32 %t1437, ptr %t1408 br label %scend310 scend310: %t1438 = load i32, ptr %t1408 %t1439 = icmp ne i32 %t1438, 0 br i1 %t1439, label %then313, label %ifend315 then313: %t1440 = load ptr, ptr %t1344 %t1441 = getelementptr inbounds %Cmp_Node, ptr %t1440, i32 0, i32 4 %t1442 = load ptr, ptr %t1441 %t1443 = getelementptr inbounds %Cmp_Node, ptr %t1442, i32 0, i32 1 %t1444 = load ptr, ptr %t1443 call void @fn_warn_draw_sprite(ptr %t1444) br label %ifend315 ifend315: br label %ifend299 else298: br label %wend2 ifend299: br label %ifend293 ifend293: br label %ifend5 ifend5: br label %wcond0 wend2: %t1445 = load ptr, ptr %t1 store ptr %t1445, ptr %retval br label %ret ret: %t1446 = load ptr, ptr %retval ret ptr %t1446 } define ptr @fn_p_unary() { entry: %retval = alloca ptr %t5 = alloca ptr %t17 = alloca ptr %t29 = alloca ptr %t0 = call i32 @fn_is_op(ptr @.str221) %t1 = icmp ne i32 %t0, 0 br i1 %t1, label %then0, label %ifend2 then0: %t2 = load i32, ptr @g_pi %t3 = add i32 %t2, 1 store i32 %t3, ptr @g_pi %t4 = call ptr @fn_node(i32 38) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 store ptr @.str222, ptr %t7 %t8 = load ptr, ptr %t5 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = call ptr @fn_p_unary() store ptr %t10, ptr %t9 %t11 = load ptr, ptr %t5 store ptr %t11, ptr %retval br label %ret ifend2: %t12 = call i32 @fn_is_op(ptr @.str223) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: %t14 = load i32, ptr @g_pi %t15 = add i32 %t14, 1 store i32 %t15, ptr @g_pi %t16 = call ptr @fn_node(i32 38) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 store ptr @.str224, ptr %t19 %t20 = load ptr, ptr %t17 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 4 %t22 = call ptr @fn_p_unary() store ptr %t22, ptr %t21 %t23 = load ptr, ptr %t17 store ptr %t23, ptr %retval br label %ret ifend5: %t24 = call i32 @fn_is_id(ptr @.str225) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then6, label %ifend8 then6: %t26 = load i32, ptr @g_pi %t27 = add i32 %t26, 1 store i32 %t27, ptr @g_pi %t28 = call ptr @fn_node(i32 38) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 1 store ptr @.str226, ptr %t31 %t32 = load ptr, ptr %t29 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 4 %t34 = call ptr @fn_p_unary() store ptr %t34, ptr %t33 %t35 = load ptr, ptr %t29 store ptr %t35, ptr %retval br label %ret ifend8: %t36 = call ptr @fn_p_postfix() store ptr %t36, ptr %retval br label %ret ret: %t37 = load ptr, ptr %retval ret ptr %t37 } define ptr @fn_mkbin(ptr %arg_op, ptr %arg_l, ptr %arg_r) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr store ptr %arg_op, ptr %t0 store ptr %arg_l, ptr %t1 store ptr %arg_r, ptr %t2 %t3 = call ptr @fn_node(i32 37) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1 %t7 = load ptr, ptr %t0 store ptr %t7, ptr %t6 %t8 = load ptr, ptr %t4 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = load ptr, ptr %t1 store ptr %t10, ptr %t9 %t11 = load ptr, ptr %t4 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 5 %t13 = load ptr, ptr %t2 store ptr %t13, ptr %t12 %t14 = load ptr, ptr %t4 store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } define ptr @fn_p_mul() { entry: %retval = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 %t6 = alloca i32 %t51 = alloca ptr %t0 = call ptr @fn_p_unary() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t7 = call i32 @fn_is_op(ptr @.str227) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t6 br i1 %t8, label %scend4, label %sc3 sc3: %t10 = call i32 @fn_is_op(ptr @.str228) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t6 br label %scend4 scend4: %t13 = load i32, ptr %t6 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t5 br i1 %t14, label %scend6, label %sc5 sc5: %t16 = call i32 @fn_is_op(ptr @.str229) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t5 br label %scend6 scend6: %t19 = load i32, ptr %t5 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t4 br i1 %t20, label %scend8, label %sc7 sc7: %t22 = call i32 @fn_is_op(ptr @.str230) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t4 br label %scend8 scend8: %t25 = load i32, ptr %t4 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t3 br i1 %t26, label %scend10, label %sc9 sc9: %t28 = call i32 @fn_is_op(ptr @.str231) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t3 br label %scend10 scend10: %t31 = load i32, ptr %t3 %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t2 br i1 %t32, label %scend12, label %sc11 sc11: %t34 = call i32 @fn_is_op(ptr @.str232) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t2 br label %scend12 scend12: %t37 = load i32, ptr %t2 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %wbody1, label %wend2 wbody1: %t39 = load ptr, ptr @g_toks %t40 = load i32, ptr @g_pi %t41 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 %t40, %t44 br i1 %t45, label %ixok13, label %ixbad14 ixbad14: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str233, i32 %t40, i32 %t44) call void @exit(i32 1) unreachable ixok13: %t47 = getelementptr inbounds ptr, ptr %t42, i32 %t40 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %Cmp_Tok, ptr %t48, i32 0, i32 1 %t50 = load ptr, ptr %t49 store ptr %t50, ptr %t51 %t52 = load i32, ptr @g_pi %t53 = add i32 %t52, 1 store i32 %t53, ptr @g_pi %t54 = load ptr, ptr %t51 %t55 = load ptr, ptr %t1 %t56 = call ptr @fn_p_unary() %t57 = call ptr @fn_mkbin(ptr %t54, ptr %t55, ptr %t56) store ptr %t57, ptr %t1 br label %wcond0 wend2: %t58 = load ptr, ptr %t1 store ptr %t58, ptr %retval br label %ret ret: %t59 = load ptr, ptr %retval ret ptr %t59 } define ptr @fn_p_add() { entry: %retval = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t37 = alloca ptr %t0 = call ptr @fn_p_mul() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t5 = call i32 @fn_is_op(ptr @.str234) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t4 br i1 %t6, label %scend4, label %sc3 sc3: %t8 = call i32 @fn_is_op(ptr @.str235) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t4 br label %scend4 scend4: %t11 = load i32, ptr %t4 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t3 br i1 %t12, label %scend6, label %sc5 sc5: %t14 = call i32 @fn_is_op(ptr @.str236) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t3 br label %scend6 scend6: %t17 = load i32, ptr %t3 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t2 br i1 %t18, label %scend8, label %sc7 sc7: %t20 = call i32 @fn_is_op(ptr @.str237) %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t2 br label %scend8 scend8: %t23 = load i32, ptr %t2 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %wbody1, label %wend2 wbody1: %t25 = load ptr, ptr @g_toks %t26 = load i32, ptr @g_pi %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok9, label %ixbad10 ixbad10: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str238, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok9: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Tok, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t35 store ptr %t36, ptr %t37 %t38 = load i32, ptr @g_pi %t39 = add i32 %t38, 1 store i32 %t39, ptr @g_pi %t40 = load ptr, ptr %t37 %t41 = load ptr, ptr %t1 %t42 = call ptr @fn_p_mul() %t43 = call ptr @fn_mkbin(ptr %t40, ptr %t41, ptr %t42) store ptr %t43, ptr %t1 br label %wcond0 wend2: %t44 = load ptr, ptr %t1 store ptr %t44, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } define ptr @fn_p_cmp() { entry: %retval = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 %t6 = alloca i32 %t51 = alloca ptr %t0 = call ptr @fn_p_add() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t7 = call i32 @fn_is_op(ptr @.str239) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t6 br i1 %t8, label %scend4, label %sc3 sc3: %t10 = call i32 @fn_is_op(ptr @.str240) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t6 br label %scend4 scend4: %t13 = load i32, ptr %t6 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t5 br i1 %t14, label %scend6, label %sc5 sc5: %t16 = call i32 @fn_is_op(ptr @.str241) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t5 br label %scend6 scend6: %t19 = load i32, ptr %t5 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t4 br i1 %t20, label %scend8, label %sc7 sc7: %t22 = call i32 @fn_is_op(ptr @.str242) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t4 br label %scend8 scend8: %t25 = load i32, ptr %t4 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t3 br i1 %t26, label %scend10, label %sc9 sc9: %t28 = call i32 @fn_is_op(ptr @.str243) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t3 br label %scend10 scend10: %t31 = load i32, ptr %t3 %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t2 br i1 %t32, label %scend12, label %sc11 sc11: %t34 = call i32 @fn_is_op(ptr @.str244) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t2 br label %scend12 scend12: %t37 = load i32, ptr %t2 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %wbody1, label %wend2 wbody1: %t39 = load ptr, ptr @g_toks %t40 = load i32, ptr @g_pi %t41 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 %t40, %t44 br i1 %t45, label %ixok13, label %ixbad14 ixbad14: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str245, i32 %t40, i32 %t44) call void @exit(i32 1) unreachable ixok13: %t47 = getelementptr inbounds ptr, ptr %t42, i32 %t40 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %Cmp_Tok, ptr %t48, i32 0, i32 1 %t50 = load ptr, ptr %t49 store ptr %t50, ptr %t51 %t52 = load i32, ptr @g_pi %t53 = add i32 %t52, 1 store i32 %t53, ptr @g_pi %t54 = load ptr, ptr %t51 %t55 = load ptr, ptr %t1 %t56 = call ptr @fn_p_add() %t57 = call ptr @fn_mkbin(ptr %t54, ptr %t55, ptr %t56) store ptr %t57, ptr %t1 br label %wcond0 wend2: %t58 = load ptr, ptr %t1 store ptr %t58, ptr %retval br label %ret ret: %t59 = load ptr, ptr %retval ret ptr %t59 } define ptr @fn_p_and() { entry: %retval = alloca ptr %t1 = alloca ptr %t0 = call ptr @fn_p_cmp() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t2 = call i32 @fn_is_id(ptr @.str246) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %wbody1, label %wend2 wbody1: %t4 = load i32, ptr @g_pi %t5 = add i32 %t4, 1 store i32 %t5, ptr @g_pi %t6 = load ptr, ptr %t1 %t7 = call ptr @fn_p_cmp() %t8 = call ptr @fn_mkbin(ptr @.str247, ptr %t6, ptr %t7) store ptr %t8, ptr %t1 br label %wcond0 wend2: %t9 = load ptr, ptr %t1 store ptr %t9, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_p_or() { entry: %retval = alloca ptr %t1 = alloca ptr %t0 = call ptr @fn_p_and() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t2 = call i32 @fn_is_id(ptr @.str248) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %wbody1, label %wend2 wbody1: %t4 = load i32, ptr @g_pi %t5 = add i32 %t4, 1 store i32 %t5, ptr @g_pi %t6 = load ptr, ptr %t1 %t7 = call ptr @fn_p_and() %t8 = call ptr @fn_mkbin(ptr @.str249, ptr %t6, ptr %t7) store ptr %t8, ptr %t1 br label %wcond0 wend2: %t9 = load ptr, ptr %t1 store ptr %t9, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_record() { entry: %retval = alloca ptr %t1 = alloca ptr %t6 = alloca ptr call void @fn_eat_op(ptr @.str250) %t0 = call ptr @fn_node(i32 41) store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t2 = icmp ne i32 1, 0 br i1 %t2, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t3 = call i32 @fn_is_op(ptr @.str251) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t5 = call ptr @fn_node(i32 42) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = call ptr @fn_eat_id() store ptr %t9, ptr %t8 call void @fn_eat_op(ptr @.str252) %t10 = load ptr, ptr %t6 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4 %t12 = call ptr @fn_expr() store ptr %t12, ptr %t11 %t13 = load ptr, ptr %t1 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = load ptr, ptr %t6 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t18 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 2 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t20 = load i32, ptr %t17 %t21 = load i32, ptr %t18 %t22 = icmp sge i32 %t20, %t21 br i1 %t22, label %grow6, label %put7 grow6: %t23 = mul i32 %t21, 2 %t24 = icmp eq i32 %t21, 0 %t25 = select i1 %t24, i32 8, i32 %t23 %t26 = getelementptr ptr, ptr null, i32 1 %t27 = ptrtoint ptr %t26 to i64 %t28 = zext i32 %t25 to i64 %t29 = mul i64 %t28, %t27 %t30 = load ptr, ptr %t19 %t31 = call ptr @realloc(ptr %t30, i64 %t29) store ptr %t31, ptr %t19 store i32 %t25, ptr %t18 br label %put7 put7: %t32 = load ptr, ptr %t19 %t33 = getelementptr inbounds ptr, ptr %t32, i32 %t20 store ptr %t16, ptr %t33 %t34 = add i32 %t20, 1 store i32 %t34, ptr %t17 %t35 = call i32 @fn_is_op(ptr @.str253) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then8, label %ifend10 then8: %t37 = load i32, ptr @g_pi %t38 = add i32 %t37, 1 store i32 %t38, ptr @g_pi br label %ifend10 ifend10: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str254) %t39 = load ptr, ptr %t1 store ptr %t39, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_block() { entry: %retval = alloca ptr %t1 = alloca ptr %t41 = alloca i32 call void @fn_skipnl() call void @fn_eat_op(ptr @.str255) %t0 = call ptr @fn_node(i32 7) store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t2 = icmp ne i32 1, 0 br i1 %t2, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t3 = call i32 @fn_is_op(ptr @.str256) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_stmt() %t9 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 2 %t11 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t12 = load i32, ptr %t9 %t13 = load i32, ptr %t10 %t14 = icmp sge i32 %t12, %t13 br i1 %t14, label %grow6, label %put7 grow6: %t15 = mul i32 %t13, 2 %t16 = icmp eq i32 %t13, 0 %t17 = select i1 %t16, i32 8, i32 %t15 %t18 = getelementptr ptr, ptr null, i32 1 %t19 = ptrtoint ptr %t18 to i64 %t20 = zext i32 %t17 to i64 %t21 = mul i64 %t20, %t19 %t22 = load ptr, ptr %t11 %t23 = call ptr @realloc(ptr %t22, i64 %t21) store ptr %t23, ptr %t11 store i32 %t17, ptr %t10 br label %put7 put7: %t24 = load ptr, ptr %t11 %t25 = getelementptr inbounds ptr, ptr %t24, i32 %t12 store ptr %t8, ptr %t25 %t26 = add i32 %t12, 1 store i32 %t26, ptr %t9 %t27 = load ptr, ptr @g_toks %t28 = load i32, ptr @g_pi %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok8, label %ixbad9 ixbad9: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str257, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok8: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %Cmp_Tok, ptr %t36, i32 0, i32 0 %t38 = load i32, ptr %t37 %t39 = icmp eq i32 %t38, 4 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t41 %t42 = call i32 @fn_is_op(ptr @.str258) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then10, label %ifend12 then10: store i32 1, ptr %t41 br label %ifend12 ifend12: %t44 = load i32, ptr %t41 %t45 = icmp eq i32 %t44, 0 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then13, label %ifend15 then13: call void @fn_perr(ptr @.str259) br label %ifend15 ifend15: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str260) %t48 = load ptr, ptr %t1 store ptr %t48, ptr %retval br label %ret ret: %t49 = load ptr, ptr %retval ret ptr %t49 } define ptr @fn_stmt() { entry: %retval = alloca ptr %t12 = alloca i32 %t14 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok0, label %ixbad1 ixbad1: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str261, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok0: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Tok, ptr %t9, i32 0, i32 3 %t11 = load i32, ptr %t10 store i32 %t11, ptr %t12 %t13 = call ptr @fn_stmt_body() store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 8 %t17 = load i32, ptr %t16 %t18 = icmp eq i32 %t17, 0 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then2, label %ifend4 then2: %t21 = load ptr, ptr %t14 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 8 %t23 = load i32, ptr %t12 store i32 %t23, ptr %t22 br label %ifend4 ifend4: %t24 = load ptr, ptr %t14 store ptr %t24, ptr %retval br label %ret ret: %t25 = load ptr, ptr %retval ret ptr %t25 } define ptr @fn_stmt_body() { entry: %retval = alloca ptr %t10 = alloca ptr %t17 = alloca i32 %t32 = alloca i32 %t41 = alloca ptr %t85 = alloca ptr %t86 = alloca i32 %t122 = alloca ptr %t130 = alloca i32 %t153 = alloca ptr %t172 = alloca ptr %t177 = alloca ptr %t202 = alloca ptr %t206 = alloca i32 %t211 = alloca ptr %t213 = alloca ptr %t255 = alloca i32 %t290 = alloca ptr %t303 = alloca ptr %t308 = alloca i32 %t323 = alloca i32 %t332 = alloca ptr %t404 = alloca ptr %t431 = alloca ptr %t445 = alloca i32 %t471 = alloca ptr %t510 = alloca ptr %t518 = alloca ptr %t552 = alloca ptr %t602 = alloca ptr %t603 = alloca i32 %t604 = alloca i32 %t605 = alloca i32 %t606 = alloca i32 %t634 = alloca ptr %t673 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok0, label %ixbad1 ixbad1: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str262, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok0: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Tok, ptr %t11, i32 0, i32 0 %t13 = load i32, ptr %t12 %t14 = icmp eq i32 %t13, 0 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: %t18 = load ptr, ptr %t10 %t19 = getelementptr inbounds %Cmp_Tok, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str263) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t17 br i1 %t22, label %scend6, label %sc5 sc5: %t24 = load ptr, ptr %t10 %t25 = getelementptr inbounds %Cmp_Tok, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t25 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str264) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t17 br label %scend6 scend6: %t30 = load i32, ptr %t17 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then7, label %ifend9 then7: store i32 0, ptr %t32 %t33 = load ptr, ptr %t10 %t34 = getelementptr inbounds %Cmp_Tok, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str265) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then10, label %ifend12 then10: store i32 1, ptr %t32 br label %ifend12 ifend12: %t38 = load i32, ptr @g_pi %t39 = add i32 %t38, 1 store i32 %t39, ptr @g_pi %t40 = call ptr @fn_node(i32 10) store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 2 %t44 = load i32, ptr %t32 store i32 %t44, ptr %t43 %t45 = load ptr, ptr %t41 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 8 %t47 = load ptr, ptr @g_toks %t48 = load i32, ptr @g_pi %t49 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 %t48, %t52 br i1 %t53, label %ixok13, label %ixbad14 ixbad14: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str266, i32 %t48, i32 %t52) call void @exit(i32 1) unreachable ixok13: %t55 = getelementptr inbounds ptr, ptr %t50, i32 %t48 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %Cmp_Tok, ptr %t56, i32 0, i32 3 %t58 = load i32, ptr %t57 store i32 %t58, ptr %t46 %t59 = load ptr, ptr %t41 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 1 %t61 = call ptr @fn_eat_id() store ptr %t61, ptr %t60 %t62 = call i32 @fn_is_op(ptr @.str267) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then15, label %ifend17 then15: %t64 = load i32, ptr @g_pi %t65 = add i32 %t64, 1 store i32 %t65, ptr @g_pi %t66 = load ptr, ptr %t41 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 3 %t68 = call ptr @fn_ptype() store ptr %t68, ptr %t67 br label %ifend17 ifend17: %t69 = call i32 @fn_is_op(ptr @.str268) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then18, label %ifend20 then18: %t71 = load i32, ptr @g_pi %t72 = add i32 %t71, 1 store i32 %t72, ptr @g_pi %t73 = load ptr, ptr %t41 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 4 %t75 = call ptr @fn_expr() store ptr %t75, ptr %t74 br label %ifend20 ifend20: %t76 = load ptr, ptr %t41 store ptr %t76, ptr %retval br label %ret ifend9: %t77 = load ptr, ptr %t10 %t78 = getelementptr inbounds %Cmp_Tok, ptr %t77, i32 0, i32 1 %t79 = load ptr, ptr %t78 %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str269) %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then21, label %ifend23 then21: %t82 = load i32, ptr @g_pi %t83 = add i32 %t82, 1 store i32 %t83, ptr @g_pi %t84 = call ptr @fn_node(i32 15) store ptr %t84, ptr %t85 %t87 = load ptr, ptr @g_toks %t88 = load i32, ptr @g_pi %t89 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t92 = load i32, ptr %t91 %t93 = icmp ult i32 %t88, %t92 br i1 %t93, label %ixok24, label %ixbad25 ixbad25: %t94 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t94, ptr @.fmt_bounds, ptr @.str270, i32 %t88, i32 %t92) call void @exit(i32 1) unreachable ixok24: %t95 = getelementptr inbounds ptr, ptr %t90, i32 %t88 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %Cmp_Tok, ptr %t96, i32 0, i32 0 %t98 = load i32, ptr %t97 %t99 = icmp ne i32 %t98, 4 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t86 br i1 %t101, label %sc26, label %scend27 sc26: %t103 = call i32 @fn_is_op(ptr @.str271) %t104 = icmp eq i32 %t103, 0 %t105 = zext i1 %t104 to i32 %t106 = icmp ne i32 %t105, 0 %t107 = zext i1 %t106 to i32 store i32 %t107, ptr %t86 br label %scend27 scend27: %t108 = load i32, ptr %t86 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then28, label %ifend30 then28: %t110 = load ptr, ptr %t85 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 4 %t112 = call ptr @fn_expr() store ptr %t112, ptr %t111 br label %ifend30 ifend30: %t113 = load ptr, ptr %t85 store ptr %t113, ptr %retval br label %ret ifend23: %t114 = load ptr, ptr %t10 %t115 = getelementptr inbounds %Cmp_Tok, ptr %t114, i32 0, i32 1 %t116 = load ptr, ptr %t115 %t117 = call i32 @lp_str_eq(ptr %t116, ptr @.str272) %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then31, label %ifend33 then31: %t119 = load i32, ptr @g_pi %t120 = add i32 %t119, 1 store i32 %t120, ptr @g_pi %t121 = call ptr @fn_node(i32 12) store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 4 %t125 = call ptr @fn_expr() store ptr %t125, ptr %t124 %t126 = load ptr, ptr %t122 %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 5 %t128 = call ptr @fn_block() store ptr %t128, ptr %t127 %t129 = load i32, ptr @g_pi store i32 %t129, ptr %t130 call void @fn_skipnl() %t131 = call i32 @fn_is_id(ptr @.str273) %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then34, label %else35 then34: %t133 = load i32, ptr @g_pi %t134 = add i32 %t133, 1 store i32 %t134, ptr @g_pi call void @fn_skipnl() %t135 = call i32 @fn_is_id(ptr @.str274) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then37, label %else38 then37: %t137 = load ptr, ptr %t122 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 6 %t139 = call ptr @fn_stmt() store ptr %t139, ptr %t138 br label %ifend39 else38: %t140 = load ptr, ptr %t122 %t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 6 %t142 = call ptr @fn_block() store ptr %t142, ptr %t141 br label %ifend39 ifend39: br label %ifend36 else35: %t143 = load i32, ptr %t130 store i32 %t143, ptr @g_pi br label %ifend36 ifend36: %t144 = load ptr, ptr %t122 store ptr %t144, ptr %retval br label %ret ifend33: %t145 = load ptr, ptr %t10 %t146 = getelementptr inbounds %Cmp_Tok, ptr %t145, i32 0, i32 1 %t147 = load ptr, ptr %t146 %t148 = call i32 @lp_str_eq(ptr %t147, ptr @.str275) %t149 = icmp ne i32 %t148, 0 br i1 %t149, label %then40, label %ifend42 then40: %t150 = load i32, ptr @g_pi %t151 = add i32 %t150, 1 store i32 %t151, ptr @g_pi %t152 = call ptr @fn_node(i32 13) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t153 %t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 4 %t156 = call ptr @fn_expr() store ptr %t156, ptr %t155 %t157 = load ptr, ptr %t153 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 5 %t159 = call ptr @fn_block() store ptr %t159, ptr %t158 %t160 = load ptr, ptr %t153 store ptr %t160, ptr %retval br label %ret ifend42: %t161 = load ptr, ptr %t10 %t162 = getelementptr inbounds %Cmp_Tok, ptr %t161, i32 0, i32 1 %t163 = load ptr, ptr %t162 %t164 = call i32 @lp_str_eq(ptr %t163, ptr @.str276) %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then43, label %ifend45 then43: %t166 = load i32, ptr @g_pi %t167 = add i32 %t166, 1 store i32 %t167, ptr @g_pi %t168 = call i32 @fn_is_op(ptr @.str277) %t169 = icmp ne i32 %t168, 0 br i1 %t169, label %then46, label %ifend48 then46: %t170 = call ptr @fn_parse_query_for() store ptr %t170, ptr %retval br label %ret ifend48: %t171 = call ptr @fn_node(i32 14) store ptr %t171, ptr %t172 %t173 = load ptr, ptr %t172 %t174 = getelementptr inbounds %Cmp_Node, ptr %t173, i32 0, i32 1 %t175 = call ptr @fn_eat_id() store ptr %t175, ptr %t174 %t176 = call ptr @fn_eat_id() store ptr %t176, ptr %t177 %t178 = load ptr, ptr %t172 %t179 = getelementptr inbounds %Cmp_Node, ptr %t178, i32 0, i32 4 %t180 = call ptr @fn_expr() store ptr %t180, ptr %t179 call void @fn_eat_op(ptr @.str278) %t181 = load ptr, ptr %t172 %t182 = getelementptr inbounds %Cmp_Node, ptr %t181, i32 0, i32 5 %t183 = call ptr @fn_expr() store ptr %t183, ptr %t182 %t184 = load ptr, ptr %t172 %t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 6 %t186 = call ptr @fn_block() store ptr %t186, ptr %t185 %t187 = load ptr, ptr %t172 store ptr %t187, ptr %retval br label %ret ifend45: %t188 = load ptr, ptr %t10 %t189 = getelementptr inbounds %Cmp_Tok, ptr %t188, i32 0, i32 1 %t190 = load ptr, ptr %t189 %t191 = call i32 @lp_str_eq(ptr %t190, ptr @.str279) %t192 = icmp ne i32 %t191, 0 br i1 %t192, label %then49, label %ifend51 then49: %t193 = call ptr @fn_parse_spawn() store ptr %t193, ptr %retval br label %ret ifend51: %t194 = load ptr, ptr %t10 %t195 = getelementptr inbounds %Cmp_Tok, ptr %t194, i32 0, i32 1 %t196 = load ptr, ptr %t195 %t197 = call i32 @lp_str_eq(ptr %t196, ptr @.str280) %t198 = icmp ne i32 %t197, 0 br i1 %t198, label %then52, label %ifend54 then52: %t199 = load i32, ptr @g_pi %t200 = add i32 %t199, 1 store i32 %t200, ptr @g_pi %t201 = call ptr @fn_node(i32 24) store ptr %t201, ptr %t202 %t203 = load ptr, ptr %t202 %t204 = getelementptr inbounds %Cmp_Node, ptr %t203, i32 0, i32 4 %t205 = call ptr @fn_expr() store ptr %t205, ptr %t204 call void @fn_skipnl() call void @fn_eat_op(ptr @.str281) store i32 0, ptr %t206 br label %wcond55 wcond55: %t207 = icmp ne i32 1, 0 br i1 %t207, label %wbody56, label %wend57 wbody56: call void @fn_skipnl() %t208 = call i32 @fn_is_op(ptr @.str282) %t209 = icmp ne i32 %t208, 0 br i1 %t209, label %then58, label %ifend60 then58: br label %wend57 ifend60: %t210 = call ptr @fn_eat_id() store ptr %t210, ptr %t211 %t212 = call ptr @fn_node(i32 25) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t213 %t215 = getelementptr inbounds %Cmp_Node, ptr %t214, i32 0, i32 1 %t216 = call ptr @fn_eat_id() store ptr %t216, ptr %t215 %t217 = call i32 @fn_is_op(ptr @.str283) %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %then61, label %ifend63 then61: %t219 = load i32, ptr @g_pi %t220 = add i32 %t219, 1 store i32 %t220, ptr @g_pi %t221 = load ptr, ptr %t213 %t222 = getelementptr inbounds %Cmp_Node, ptr %t221, i32 0, i32 5 %t223 = call ptr @fn_expr() store ptr %t223, ptr %t222 br label %ifend63 ifend63: %t224 = load ptr, ptr %t213 %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 2 %t226 = load i32, ptr %t206 store i32 %t226, ptr %t225 call void @fn_skipnl() %t227 = load ptr, ptr %t213 %t228 = getelementptr inbounds %Cmp_Node, ptr %t227, i32 0, i32 4 %t229 = call ptr @fn_block() store ptr %t229, ptr %t228 %t230 = load ptr, ptr %t202 %t231 = getelementptr inbounds %Cmp_Node, ptr %t230, i32 0, i32 7 %t232 = load ptr, ptr %t231 %t233 = load ptr, ptr %t213 %t234 = getelementptr inbounds %LSlice, ptr %t232, i32 0, i32 1 %t235 = getelementptr inbounds %LSlice, ptr %t232, i32 0, i32 2 %t236 = getelementptr inbounds %LSlice, ptr %t232, i32 0, i32 0 %t237 = load i32, ptr %t234 %t238 = load i32, ptr %t235 %t239 = icmp sge i32 %t237, %t238 br i1 %t239, label %grow64, label %put65 grow64: %t240 = mul i32 %t238, 2 %t241 = icmp eq i32 %t238, 0 %t242 = select i1 %t241, i32 8, i32 %t240 %t243 = getelementptr ptr, ptr null, i32 1 %t244 = ptrtoint ptr %t243 to i64 %t245 = zext i32 %t242 to i64 %t246 = mul i64 %t245, %t244 %t247 = load ptr, ptr %t236 %t248 = call ptr @realloc(ptr %t247, i64 %t246) store ptr %t248, ptr %t236 store i32 %t242, ptr %t235 br label %put65 put65: %t249 = load ptr, ptr %t236 %t250 = getelementptr inbounds ptr, ptr %t249, i32 %t237 store ptr %t233, ptr %t250 %t251 = add i32 %t237, 1 store i32 %t251, ptr %t234 %t252 = load i32, ptr %t206 %t253 = add i32 %t252, 1 store i32 %t253, ptr %t206 br label %wcond55 wend57: call void @fn_eat_op(ptr @.str284) %t254 = load ptr, ptr %t202 store ptr %t254, ptr %retval br label %ret ifend54: %t256 = load ptr, ptr %t10 %t257 = getelementptr inbounds %Cmp_Tok, ptr %t256, i32 0, i32 1 %t258 = load ptr, ptr %t257 %t259 = call i32 @lp_str_eq(ptr %t258, ptr @.str285) %t260 = icmp ne i32 %t259, 0 %t261 = zext i1 %t260 to i32 store i32 %t261, ptr %t255 br i1 %t260, label %sc66, label %scend67 sc66: %t262 = load ptr, ptr @g_toks %t263 = load i32, ptr @g_pi %t264 = add i32 %t263, 1 %t265 = getelementptr inbounds %LSlice, ptr %t262, i32 0, i32 0 %t266 = load ptr, ptr %t265 %t267 = getelementptr inbounds %LSlice, ptr %t262, i32 0, i32 1 %t268 = load i32, ptr %t267 %t269 = icmp ult i32 %t264, %t268 br i1 %t269, label %ixok68, label %ixbad69 ixbad69: %t270 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t270, ptr @.fmt_bounds, ptr @.str286, i32 %t264, i32 %t268) call void @exit(i32 1) unreachable ixok68: %t271 = getelementptr inbounds ptr, ptr %t266, i32 %t264 %t272 = load ptr, ptr %t271 %t273 = getelementptr inbounds %Cmp_Tok, ptr %t272, i32 0, i32 0 %t274 = load i32, ptr %t273 %t275 = icmp eq i32 %t274, 0 %t276 = zext i1 %t275 to i32 %t277 = icmp ne i32 %t276, 0 %t278 = zext i1 %t277 to i32 store i32 %t278, ptr %t255 br label %scend67 scend67: %t279 = load i32, ptr %t255 %t280 = icmp ne i32 %t279, 0 br i1 %t280, label %then70, label %ifend72 then70: %t281 = call ptr @fn_parse_emit() store ptr %t281, ptr %retval br label %ret ifend72: %t282 = load ptr, ptr %t10 %t283 = getelementptr inbounds %Cmp_Tok, ptr %t282, i32 0, i32 1 %t284 = load ptr, ptr %t283 %t285 = call i32 @lp_str_eq(ptr %t284, ptr @.str287) %t286 = icmp ne i32 %t285, 0 br i1 %t286, label %then73, label %ifend75 then73: %t287 = load i32, ptr @g_pi %t288 = add i32 %t287, 1 store i32 %t288, ptr @g_pi %t289 = call ptr @fn_node(i32 26) store ptr %t289, ptr %t290 %t291 = load ptr, ptr %t290 %t292 = getelementptr inbounds %Cmp_Node, ptr %t291, i32 0, i32 1 %t293 = call ptr @fn_eat_id() store ptr %t293, ptr %t292 %t294 = load ptr, ptr %t290 store ptr %t294, ptr %retval br label %ret ifend75: %t295 = load ptr, ptr %t10 %t296 = getelementptr inbounds %Cmp_Tok, ptr %t295, i32 0, i32 1 %t297 = load ptr, ptr %t296 %t298 = call i32 @lp_str_eq(ptr %t297, ptr @.str288) %t299 = icmp ne i32 %t298, 0 br i1 %t299, label %then76, label %ifend78 then76: %t300 = load i32, ptr @g_pi %t301 = add i32 %t300, 1 store i32 %t301, ptr @g_pi %t302 = call ptr @fn_node(i32 23) store ptr %t302, ptr %t303 %t304 = load ptr, ptr %t303 %t305 = getelementptr inbounds %Cmp_Node, ptr %t304, i32 0, i32 4 %t306 = call ptr @fn_expr() store ptr %t306, ptr %t305 %t307 = load ptr, ptr %t303 store ptr %t307, ptr %retval br label %ret ifend78: %t309 = load ptr, ptr %t10 %t310 = getelementptr inbounds %Cmp_Tok, ptr %t309, i32 0, i32 1 %t311 = load ptr, ptr %t310 %t312 = call i32 @lp_str_eq(ptr %t311, ptr @.str289) %t313 = icmp ne i32 %t312, 0 %t314 = zext i1 %t313 to i32 store i32 %t314, ptr %t308 br i1 %t313, label %scend80, label %sc79 sc79: %t315 = load ptr, ptr %t10 %t316 = getelementptr inbounds %Cmp_Tok, ptr %t315, i32 0, i32 1 %t317 = load ptr, ptr %t316 %t318 = call i32 @lp_str_eq(ptr %t317, ptr @.str290) %t319 = icmp ne i32 %t318, 0 %t320 = zext i1 %t319 to i32 store i32 %t320, ptr %t308 br label %scend80 scend80: %t321 = load i32, ptr %t308 %t322 = icmp ne i32 %t321, 0 br i1 %t322, label %then81, label %ifend83 then81: store i32 0, ptr %t323 %t324 = load ptr, ptr %t10 %t325 = getelementptr inbounds %Cmp_Tok, ptr %t324, i32 0, i32 1 %t326 = load ptr, ptr %t325 %t327 = call i32 @lp_str_eq(ptr %t326, ptr @.str291) %t328 = icmp ne i32 %t327, 0 br i1 %t328, label %then84, label %ifend86 then84: store i32 1, ptr %t323 br label %ifend86 ifend86: %t329 = load i32, ptr @g_pi %t330 = add i32 %t329, 1 store i32 %t330, ptr @g_pi %t331 = call ptr @fn_node(i32 28) store ptr %t331, ptr %t332 %t333 = load ptr, ptr %t332 %t334 = getelementptr inbounds %Cmp_Node, ptr %t333, i32 0, i32 2 %t335 = load i32, ptr %t323 store i32 %t335, ptr %t334 %t336 = call i32 @fn_is_id(ptr @.str292) %t337 = icmp ne i32 %t336, 0 br i1 %t337, label %then87, label %ifend89 then87: %t338 = load i32, ptr @g_pi %t339 = add i32 %t338, 1 store i32 %t339, ptr @g_pi %t340 = load ptr, ptr %t332 %t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 3 store ptr @.str293, ptr %t341 %t342 = load ptr, ptr %t332 %t343 = getelementptr inbounds %Cmp_Node, ptr %t342, i32 0, i32 1 %t344 = call ptr @fn_eat_id() store ptr %t344, ptr %t343 %t345 = load ptr, ptr %t332 %t346 = getelementptr inbounds %Cmp_Node, ptr %t345, i32 0, i32 1 %t347 = load ptr, ptr %t346 call void @fn_note_toggled_layer(ptr %t347) %t348 = load ptr, ptr %t332 store ptr %t348, ptr %retval br label %ret ifend89: %t349 = call i32 @fn_is_id(ptr @.str294) %t350 = icmp ne i32 %t349, 0 br i1 %t350, label %then90, label %ifend92 then90: %t351 = load i32, ptr @g_pi %t352 = add i32 %t351, 1 store i32 %t352, ptr @g_pi %t353 = load ptr, ptr %t332 %t354 = getelementptr inbounds %Cmp_Node, ptr %t353, i32 0, i32 3 store ptr @.str295, ptr %t354 %t355 = load ptr, ptr %t332 %t356 = getelementptr inbounds %Cmp_Node, ptr %t355, i32 0, i32 1 %t357 = call ptr @fn_eat_id() store ptr %t357, ptr %t356 %t358 = load i32, ptr %t323 %t359 = icmp eq i32 %t358, 0 %t360 = zext i1 %t359 to i32 %t361 = icmp ne i32 %t360, 0 br i1 %t361, label %then93, label %ifend95 then93: %t362 = load ptr, ptr @g_g_disabled_sys %t363 = load ptr, ptr %t332 %t364 = getelementptr inbounds %Cmp_Node, ptr %t363, i32 0, i32 1 %t365 = load ptr, ptr %t364 %t366 = getelementptr inbounds %LSlice, ptr %t362, i32 0, i32 1 %t367 = getelementptr inbounds %LSlice, ptr %t362, i32 0, i32 2 %t368 = getelementptr inbounds %LSlice, ptr %t362, i32 0, i32 0 %t369 = load i32, ptr %t366 %t370 = load i32, ptr %t367 %t371 = icmp sge i32 %t369, %t370 br i1 %t371, label %grow96, label %put97 grow96: %t372 = mul i32 %t370, 2 %t373 = icmp eq i32 %t370, 0 %t374 = select i1 %t373, i32 8, i32 %t372 %t375 = getelementptr ptr, ptr null, i32 1 %t376 = ptrtoint ptr %t375 to i64 %t377 = zext i32 %t374 to i64 %t378 = mul i64 %t377, %t376 %t379 = load ptr, ptr %t368 %t380 = call ptr @realloc(ptr %t379, i64 %t378) store ptr %t380, ptr %t368 store i32 %t374, ptr %t367 br label %put97 put97: %t381 = load ptr, ptr %t368 %t382 = getelementptr inbounds ptr, ptr %t381, i32 %t369 store ptr %t365, ptr %t382 %t383 = add i32 %t369, 1 store i32 %t383, ptr %t366 br label %ifend95 ifend95: %t384 = load ptr, ptr %t332 store ptr %t384, ptr %retval br label %ret ifend92: %t385 = load ptr, ptr %t332 %t386 = getelementptr inbounds %Cmp_Node, ptr %t385, i32 0, i32 1 %t387 = call ptr @fn_eat_id() store ptr %t387, ptr %t386 %t388 = call i32 @fn_is_id(ptr @.str296) %t389 = icmp ne i32 %t388, 0 br i1 %t389, label %then98, label %ifend100 then98: %t390 = load i32, ptr @g_pi %t391 = add i32 %t390, 1 store i32 %t391, ptr @g_pi %t392 = load ptr, ptr %t332 %t393 = getelementptr inbounds %Cmp_Node, ptr %t392, i32 0, i32 4 %t394 = call ptr @fn_expr() store ptr %t394, ptr %t393 br label %ifend100 ifend100: %t395 = load ptr, ptr %t332 store ptr %t395, ptr %retval br label %ret ifend83: %t396 = load ptr, ptr %t10 %t397 = getelementptr inbounds %Cmp_Tok, ptr %t396, i32 0, i32 1 %t398 = load ptr, ptr %t397 %t399 = call i32 @lp_str_eq(ptr %t398, ptr @.str297) %t400 = icmp ne i32 %t399, 0 br i1 %t400, label %then101, label %ifend103 then101: %t401 = load i32, ptr @g_pi %t402 = add i32 %t401, 1 store i32 %t402, ptr @g_pi %t403 = call ptr @fn_node(i32 46) store ptr %t403, ptr %t404 %t405 = load ptr, ptr %t404 %t406 = getelementptr inbounds %Cmp_Node, ptr %t405, i32 0, i32 1 %t407 = call ptr @fn_eat_id() store ptr %t407, ptr %t406 %t408 = call i32 @fn_is_id(ptr @.str298) %t409 = icmp eq i32 %t408, 0 %t410 = zext i1 %t409 to i32 %t411 = icmp ne i32 %t410, 0 br i1 %t411, label %then104, label %ifend106 then104: call void @fn_perr(ptr @.str299) br label %ifend106 ifend106: %t412 = load i32, ptr @g_pi %t413 = add i32 %t412, 1 store i32 %t413, ptr @g_pi %t414 = load ptr, ptr %t404 %t415 = getelementptr inbounds %Cmp_Node, ptr %t414, i32 0, i32 4 %t416 = call ptr @fn_expr() store ptr %t416, ptr %t415 %t417 = call i32 @fn_is_op(ptr @.str300) %t418 = icmp ne i32 %t417, 0 br i1 %t418, label %then107, label %ifend109 then107: %t419 = load ptr, ptr %t404 %t420 = getelementptr inbounds %Cmp_Node, ptr %t419, i32 0, i32 5 %t421 = call ptr @fn_record() store ptr %t421, ptr %t420 br label %ifend109 ifend109: %t422 = load ptr, ptr %t404 store ptr %t422, ptr %retval br label %ret ifend103: %t423 = load ptr, ptr %t10 %t424 = getelementptr inbounds %Cmp_Tok, ptr %t423, i32 0, i32 1 %t425 = load ptr, ptr %t424 %t426 = call i32 @lp_str_eq(ptr %t425, ptr @.str301) %t427 = icmp ne i32 %t426, 0 br i1 %t427, label %then110, label %ifend112 then110: %t428 = load i32, ptr @g_pi %t429 = add i32 %t428, 1 store i32 %t429, ptr @g_pi %t430 = call ptr @fn_node(i32 47) store ptr %t430, ptr %t431 %t432 = load ptr, ptr %t431 %t433 = getelementptr inbounds %Cmp_Node, ptr %t432, i32 0, i32 1 %t434 = call ptr @fn_eat_id() store ptr %t434, ptr %t433 %t435 = call i32 @fn_is_id(ptr @.str302) %t436 = icmp eq i32 %t435, 0 %t437 = zext i1 %t436 to i32 %t438 = icmp ne i32 %t437, 0 br i1 %t438, label %then113, label %ifend115 then113: call void @fn_perr(ptr @.str303) br label %ifend115 ifend115: %t439 = load i32, ptr @g_pi %t440 = add i32 %t439, 1 store i32 %t440, ptr @g_pi %t441 = load ptr, ptr %t431 %t442 = getelementptr inbounds %Cmp_Node, ptr %t441, i32 0, i32 4 %t443 = call ptr @fn_expr() store ptr %t443, ptr %t442 %t444 = load ptr, ptr %t431 store ptr %t444, ptr %retval br label %ret ifend112: %t446 = load ptr, ptr %t10 %t447 = getelementptr inbounds %Cmp_Tok, ptr %t446, i32 0, i32 1 %t448 = load ptr, ptr %t447 %t449 = call i32 @lp_str_eq(ptr %t448, ptr @.str304) %t450 = icmp ne i32 %t449, 0 %t451 = zext i1 %t450 to i32 store i32 %t451, ptr %t445 br i1 %t450, label %sc116, label %scend117 sc116: %t452 = load ptr, ptr @g_toks %t453 = load i32, ptr @g_pi %t454 = add i32 %t453, 1 %t455 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 0 %t456 = load ptr, ptr %t455 %t457 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 1 %t458 = load i32, ptr %t457 %t459 = icmp ult i32 %t454, %t458 br i1 %t459, label %ixok118, label %ixbad119 ixbad119: %t460 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t460, ptr @.fmt_bounds, ptr @.str305, i32 %t454, i32 %t458) call void @exit(i32 1) unreachable ixok118: %t461 = getelementptr inbounds ptr, ptr %t456, i32 %t454 %t462 = load ptr, ptr %t461 %t463 = getelementptr inbounds %Cmp_Tok, ptr %t462, i32 0, i32 1 %t464 = load ptr, ptr %t463 %t465 = call i32 @lp_str_eq(ptr %t464, ptr @.str306) %t466 = icmp ne i32 %t465, 0 %t467 = zext i1 %t466 to i32 store i32 %t467, ptr %t445 br label %scend117 scend117: %t468 = load i32, ptr %t445 %t469 = icmp ne i32 %t468, 0 br i1 %t469, label %then120, label %ifend122 then120: %t470 = call ptr @fn_node(i32 56) store ptr %t470, ptr %t471 %t472 = load i32, ptr @g_pi %t473 = add i32 %t472, 1 store i32 %t473, ptr @g_pi %t474 = load ptr, ptr %t471 %t475 = getelementptr inbounds %Cmp_Node, ptr %t474, i32 0, i32 4 %t476 = call ptr @fn_block() store ptr %t476, ptr %t475 %t477 = load ptr, ptr %t471 store ptr %t477, ptr %retval br label %ret ifend122: %t478 = load ptr, ptr %t10 %t479 = getelementptr inbounds %Cmp_Tok, ptr %t478, i32 0, i32 1 %t480 = load ptr, ptr %t479 %t481 = call i32 @lp_str_eq(ptr %t480, ptr @.str307) %t482 = icmp ne i32 %t481, 0 br i1 %t482, label %then123, label %ifend125 then123: %t483 = load i32, ptr @g_pi %t484 = add i32 %t483, 1 store i32 %t484, ptr @g_pi %t485 = call ptr @fn_node(i32 17) store ptr %t485, ptr %retval br label %ret ifend125: %t486 = load ptr, ptr %t10 %t487 = getelementptr inbounds %Cmp_Tok, ptr %t486, i32 0, i32 1 %t488 = load ptr, ptr %t487 %t489 = call i32 @lp_str_eq(ptr %t488, ptr @.str308) %t490 = icmp ne i32 %t489, 0 br i1 %t490, label %then126, label %ifend128 then126: %t491 = load i32, ptr @g_pi %t492 = add i32 %t491, 1 store i32 %t492, ptr @g_pi %t493 = call ptr @fn_node(i32 18) store ptr %t493, ptr %retval br label %ret ifend128: %t494 = load ptr, ptr %t10 %t495 = getelementptr inbounds %Cmp_Tok, ptr %t494, i32 0, i32 1 %t496 = load ptr, ptr %t495 %t497 = call i32 @lp_str_eq(ptr %t496, ptr @.str309) %t498 = icmp ne i32 %t497, 0 br i1 %t498, label %then129, label %ifend131 then129: %t499 = load i32, ptr @g_pi %t500 = add i32 %t499, 1 store i32 %t500, ptr @g_pi %t501 = call ptr @fn_node(i32 50) store ptr %t501, ptr %retval br label %ret ifend131: %t502 = load ptr, ptr %t10 %t503 = getelementptr inbounds %Cmp_Tok, ptr %t502, i32 0, i32 1 %t504 = load ptr, ptr %t503 %t505 = call i32 @lp_str_eq(ptr %t504, ptr @.str310) %t506 = icmp ne i32 %t505, 0 br i1 %t506, label %then132, label %ifend134 then132: %t507 = load i32, ptr @g_pi %t508 = add i32 %t507, 1 store i32 %t508, ptr @g_pi %t509 = call ptr @fn_node(i32 19) store ptr %t509, ptr %t510 %t511 = load ptr, ptr %t510 %t512 = getelementptr inbounds %Cmp_Node, ptr %t511, i32 0, i32 4 %t513 = call ptr @fn_expr() store ptr %t513, ptr %t512 call void @fn_skipnl() call void @fn_eat_op(ptr @.str311) br label %wcond135 wcond135: %t514 = icmp ne i32 1, 0 br i1 %t514, label %wbody136, label %wend137 wbody136: call void @fn_skipnl() %t515 = call i32 @fn_is_op(ptr @.str312) %t516 = icmp ne i32 %t515, 0 br i1 %t516, label %then138, label %ifend140 then138: br label %wend137 ifend140: %t517 = call ptr @fn_node(i32 20) store ptr %t517, ptr %t518 br label %wcond141 wcond141: %t519 = icmp ne i32 1, 0 br i1 %t519, label %wbody142, label %wend143 wbody142: %t520 = load ptr, ptr %t518 %t521 = getelementptr inbounds %Cmp_Node, ptr %t520, i32 0, i32 7 %t522 = load ptr, ptr %t521 %t523 = call ptr @fn_expr() %t524 = getelementptr inbounds %LSlice, ptr %t522, i32 0, i32 1 %t525 = getelementptr inbounds %LSlice, ptr %t522, i32 0, i32 2 %t526 = getelementptr inbounds %LSlice, ptr %t522, i32 0, i32 0 %t527 = load i32, ptr %t524 %t528 = load i32, ptr %t525 %t529 = icmp sge i32 %t527, %t528 br i1 %t529, label %grow144, label %put145 grow144: %t530 = mul i32 %t528, 2 %t531 = icmp eq i32 %t528, 0 %t532 = select i1 %t531, i32 8, i32 %t530 %t533 = getelementptr ptr, ptr null, i32 1 %t534 = ptrtoint ptr %t533 to i64 %t535 = zext i32 %t532 to i64 %t536 = mul i64 %t535, %t534 %t537 = load ptr, ptr %t526 %t538 = call ptr @realloc(ptr %t537, i64 %t536) store ptr %t538, ptr %t526 store i32 %t532, ptr %t525 br label %put145 put145: %t539 = load ptr, ptr %t526 %t540 = getelementptr inbounds ptr, ptr %t539, i32 %t527 store ptr %t523, ptr %t540 %t541 = add i32 %t527, 1 store i32 %t541, ptr %t524 %t542 = call i32 @fn_is_op(ptr @.str313) %t543 = icmp ne i32 %t542, 0 br i1 %t543, label %then146, label %ifend148 then146: %t544 = load i32, ptr @g_pi %t545 = add i32 %t544, 1 store i32 %t545, ptr @g_pi call void @fn_skipnl() br label %wcond141 ifend148: br label %wend143 wend143: call void @fn_eat_op(ptr @.str314) call void @fn_skipnl() %t546 = call i32 @fn_is_op(ptr @.str315) %t547 = icmp ne i32 %t546, 0 br i1 %t547, label %then149, label %else150 then149: %t548 = load ptr, ptr %t518 %t549 = getelementptr inbounds %Cmp_Node, ptr %t548, i32 0, i32 4 %t550 = call ptr @fn_block() store ptr %t550, ptr %t549 br label %ifend151 else150: %t551 = call ptr @fn_node(i32 7) store ptr %t551, ptr %t552 %t553 = load ptr, ptr %t552 %t554 = getelementptr inbounds %Cmp_Node, ptr %t553, i32 0, i32 7 %t555 = load ptr, ptr %t554 %t556 = call ptr @fn_stmt() %t557 = getelementptr inbounds %LSlice, ptr %t555, i32 0, i32 1 %t558 = getelementptr inbounds %LSlice, ptr %t555, i32 0, i32 2 %t559 = getelementptr inbounds %LSlice, ptr %t555, i32 0, i32 0 %t560 = load i32, ptr %t557 %t561 = load i32, ptr %t558 %t562 = icmp sge i32 %t560, %t561 br i1 %t562, label %grow152, label %put153 grow152: %t563 = mul i32 %t561, 2 %t564 = icmp eq i32 %t561, 0 %t565 = select i1 %t564, i32 8, i32 %t563 %t566 = getelementptr ptr, ptr null, i32 1 %t567 = ptrtoint ptr %t566 to i64 %t568 = zext i32 %t565 to i64 %t569 = mul i64 %t568, %t567 %t570 = load ptr, ptr %t559 %t571 = call ptr @realloc(ptr %t570, i64 %t569) store ptr %t571, ptr %t559 store i32 %t565, ptr %t558 br label %put153 put153: %t572 = load ptr, ptr %t559 %t573 = getelementptr inbounds ptr, ptr %t572, i32 %t560 store ptr %t556, ptr %t573 %t574 = add i32 %t560, 1 store i32 %t574, ptr %t557 %t575 = load ptr, ptr %t518 %t576 = getelementptr inbounds %Cmp_Node, ptr %t575, i32 0, i32 4 %t577 = load ptr, ptr %t552 store ptr %t577, ptr %t576 br label %ifend151 ifend151: %t578 = load ptr, ptr %t510 %t579 = getelementptr inbounds %Cmp_Node, ptr %t578, i32 0, i32 7 %t580 = load ptr, ptr %t579 %t581 = load ptr, ptr %t518 %t582 = getelementptr inbounds %LSlice, ptr %t580, i32 0, i32 1 %t583 = getelementptr inbounds %LSlice, ptr %t580, i32 0, i32 2 %t584 = getelementptr inbounds %LSlice, ptr %t580, i32 0, i32 0 %t585 = load i32, ptr %t582 %t586 = load i32, ptr %t583 %t587 = icmp sge i32 %t585, %t586 br i1 %t587, label %grow154, label %put155 grow154: %t588 = mul i32 %t586, 2 %t589 = icmp eq i32 %t586, 0 %t590 = select i1 %t589, i32 8, i32 %t588 %t591 = getelementptr ptr, ptr null, i32 1 %t592 = ptrtoint ptr %t591 to i64 %t593 = zext i32 %t590 to i64 %t594 = mul i64 %t593, %t592 %t595 = load ptr, ptr %t584 %t596 = call ptr @realloc(ptr %t595, i64 %t594) store ptr %t596, ptr %t584 store i32 %t590, ptr %t583 br label %put155 put155: %t597 = load ptr, ptr %t584 %t598 = getelementptr inbounds ptr, ptr %t597, i32 %t585 store ptr %t581, ptr %t598 %t599 = add i32 %t585, 1 store i32 %t599, ptr %t582 br label %wcond135 wend137: call void @fn_eat_op(ptr @.str316) %t600 = load ptr, ptr %t510 store ptr %t600, ptr %retval br label %ret ifend134: br label %ifend4 ifend4: %t601 = call ptr @fn_expr() store ptr %t601, ptr %t602 %t607 = call i32 @fn_is_op(ptr @.str317) %t608 = icmp ne i32 %t607, 0 %t609 = zext i1 %t608 to i32 store i32 %t609, ptr %t606 br i1 %t608, label %scend157, label %sc156 sc156: %t610 = call i32 @fn_is_op(ptr @.str318) %t611 = icmp ne i32 %t610, 0 %t612 = zext i1 %t611 to i32 store i32 %t612, ptr %t606 br label %scend157 scend157: %t613 = load i32, ptr %t606 %t614 = icmp ne i32 %t613, 0 %t615 = zext i1 %t614 to i32 store i32 %t615, ptr %t605 br i1 %t614, label %scend159, label %sc158 sc158: %t616 = call i32 @fn_is_op(ptr @.str319) %t617 = icmp ne i32 %t616, 0 %t618 = zext i1 %t617 to i32 store i32 %t618, ptr %t605 br label %scend159 scend159: %t619 = load i32, ptr %t605 %t620 = icmp ne i32 %t619, 0 %t621 = zext i1 %t620 to i32 store i32 %t621, ptr %t604 br i1 %t620, label %scend161, label %sc160 sc160: %t622 = call i32 @fn_is_op(ptr @.str320) %t623 = icmp ne i32 %t622, 0 %t624 = zext i1 %t623 to i32 store i32 %t624, ptr %t604 br label %scend161 scend161: %t625 = load i32, ptr %t604 %t626 = icmp ne i32 %t625, 0 %t627 = zext i1 %t626 to i32 store i32 %t627, ptr %t603 br i1 %t626, label %scend163, label %sc162 sc162: %t628 = call i32 @fn_is_op(ptr @.str321) %t629 = icmp ne i32 %t628, 0 %t630 = zext i1 %t629 to i32 store i32 %t630, ptr %t603 br label %scend163 scend163: %t631 = load i32, ptr %t603 %t632 = icmp ne i32 %t631, 0 br i1 %t632, label %then164, label %ifend166 then164: %t633 = call ptr @fn_node(i32 11) store ptr %t633, ptr %t634 %t635 = load ptr, ptr %t634 %t636 = getelementptr inbounds %Cmp_Node, ptr %t635, i32 0, i32 8 %t637 = load ptr, ptr @g_toks %t638 = load i32, ptr @g_pi %t639 = getelementptr inbounds %LSlice, ptr %t637, i32 0, i32 0 %t640 = load ptr, ptr %t639 %t641 = getelementptr inbounds %LSlice, ptr %t637, i32 0, i32 1 %t642 = load i32, ptr %t641 %t643 = icmp ult i32 %t638, %t642 br i1 %t643, label %ixok167, label %ixbad168 ixbad168: %t644 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t644, ptr @.fmt_bounds, ptr @.str322, i32 %t638, i32 %t642) call void @exit(i32 1) unreachable ixok167: %t645 = getelementptr inbounds ptr, ptr %t640, i32 %t638 %t646 = load ptr, ptr %t645 %t647 = getelementptr inbounds %Cmp_Tok, ptr %t646, i32 0, i32 3 %t648 = load i32, ptr %t647 store i32 %t648, ptr %t636 %t649 = load ptr, ptr %t634 %t650 = getelementptr inbounds %Cmp_Node, ptr %t649, i32 0, i32 1 %t651 = load ptr, ptr @g_toks %t652 = load i32, ptr @g_pi %t653 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 0 %t654 = load ptr, ptr %t653 %t655 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 1 %t656 = load i32, ptr %t655 %t657 = icmp ult i32 %t652, %t656 br i1 %t657, label %ixok169, label %ixbad170 ixbad170: %t658 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t658, ptr @.fmt_bounds, ptr @.str323, i32 %t652, i32 %t656) call void @exit(i32 1) unreachable ixok169: %t659 = getelementptr inbounds ptr, ptr %t654, i32 %t652 %t660 = load ptr, ptr %t659 %t661 = getelementptr inbounds %Cmp_Tok, ptr %t660, i32 0, i32 1 %t662 = load ptr, ptr %t661 store ptr %t662, ptr %t650 %t663 = load i32, ptr @g_pi %t664 = add i32 %t663, 1 store i32 %t664, ptr @g_pi %t665 = load ptr, ptr %t634 %t666 = getelementptr inbounds %Cmp_Node, ptr %t665, i32 0, i32 4 %t667 = load ptr, ptr %t602 store ptr %t667, ptr %t666 %t668 = load ptr, ptr %t634 %t669 = getelementptr inbounds %Cmp_Node, ptr %t668, i32 0, i32 5 %t670 = call ptr @fn_expr() store ptr %t670, ptr %t669 %t671 = load ptr, ptr %t634 store ptr %t671, ptr %retval br label %ret ifend166: %t672 = call ptr @fn_node(i32 16) store ptr %t672, ptr %t673 %t674 = load ptr, ptr %t673 %t675 = getelementptr inbounds %Cmp_Node, ptr %t674, i32 0, i32 4 %t676 = load ptr, ptr %t602 store ptr %t676, ptr %t675 %t677 = load ptr, ptr %t673 store ptr %t677, ptr %retval br label %ret ret: %t678 = load ptr, ptr %retval ret ptr %t678 } define ptr @fn_parse_var() { entry: %retval = alloca ptr %t3 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 2) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_eat_op(ptr @.str324) %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3 %t9 = call ptr @fn_ptype() store ptr %t9, ptr %t8 %t10 = call i32 @fn_is_op(ptr @.str325) %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: %t12 = load i32, ptr @g_pi %t13 = add i32 %t12, 1 store i32 %t13, ptr @g_pi %t14 = load ptr, ptr %t3 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 4 %t16 = call ptr @fn_expr() store ptr %t16, ptr %t15 br label %ifend2 ifend2: %t17 = load ptr, ptr %t3 store ptr %t17, ptr %retval br label %ret ret: %t18 = load ptr, ptr %retval ret ptr %t18 } define ptr @fn_parse_const() { entry: %retval = alloca ptr %t3 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 3) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_eat_op(ptr @.str326) %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3 %t9 = call ptr @fn_ptype() store ptr %t9, ptr %t8 call void @fn_eat_op(ptr @.str327) %t10 = load ptr, ptr %t3 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4 %t12 = call ptr @fn_expr() store ptr %t12, ptr %t11 %t13 = load ptr, ptr %t3 store ptr %t13, ptr %retval br label %ret ret: %t14 = load ptr, ptr %retval ret ptr %t14 } define i32 @fn_is_reserved_word(ptr %arg_w) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 %t44 = alloca i32 %t45 = alloca i32 %t46 = alloca i32 %t47 = alloca i32 %t48 = alloca i32 %t87 = alloca i32 %t88 = alloca i32 %t89 = alloca i32 %t90 = alloca i32 %t91 = alloca i32 %t133 = alloca i32 %t134 = alloca i32 %t135 = alloca i32 %t136 = alloca i32 %t137 = alloca i32 %t138 = alloca i32 %t184 = alloca i32 %t185 = alloca i32 %t186 = alloca i32 %t187 = alloca i32 %t188 = alloca i32 %t227 = alloca i32 %t228 = alloca i32 %t229 = alloca i32 %t230 = alloca i32 %t231 = alloca i32 store ptr %arg_w, ptr %t0 %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str328) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t5 br i1 %t8, label %scend1, label %sc0 sc0: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str329) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t5 br label %scend1 scend1: %t14 = load i32, ptr %t5 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t4 br i1 %t15, label %scend3, label %sc2 sc2: %t17 = load ptr, ptr %t0 %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str330) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t4 br label %scend3 scend3: %t21 = load i32, ptr %t4 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t3 br i1 %t22, label %scend5, label %sc4 sc4: %t24 = load ptr, ptr %t0 %t25 = call i32 @lp_str_eq(ptr %t24, ptr @.str331) %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t3 br label %scend5 scend5: %t28 = load i32, ptr %t3 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t2 br i1 %t29, label %scend7, label %sc6 sc6: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str332) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t2 br label %scend7 scend7: %t35 = load i32, ptr %t2 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t1 br i1 %t36, label %scend9, label %sc8 sc8: %t38 = load ptr, ptr %t0 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str333) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t1 br label %scend9 scend9: %t42 = load i32, ptr %t1 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then10, label %ifend12 then10: store i32 1, ptr %retval br label %ret ifend12: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str334) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t48 br i1 %t51, label %scend14, label %sc13 sc13: %t53 = load ptr, ptr %t0 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str335) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t48 br label %scend14 scend14: %t57 = load i32, ptr %t48 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t47 br i1 %t58, label %scend16, label %sc15 sc15: %t60 = load ptr, ptr %t0 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str336) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t47 br label %scend16 scend16: %t64 = load i32, ptr %t47 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t46 br i1 %t65, label %scend18, label %sc17 sc17: %t67 = load ptr, ptr %t0 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str337) %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t46 br label %scend18 scend18: %t71 = load i32, ptr %t46 %t72 = icmp ne i32 %t71, 0 %t73 = zext i1 %t72 to i32 store i32 %t73, ptr %t45 br i1 %t72, label %scend20, label %sc19 sc19: %t74 = load ptr, ptr %t0 %t75 = call i32 @lp_str_eq(ptr %t74, ptr @.str338) %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t45 br label %scend20 scend20: %t78 = load i32, ptr %t45 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t44 br i1 %t79, label %scend22, label %sc21 sc21: %t81 = load ptr, ptr %t0 %t82 = call i32 @lp_str_eq(ptr %t81, ptr @.str339) %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t44 br label %scend22 scend22: %t85 = load i32, ptr %t44 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then23, label %ifend25 then23: store i32 1, ptr %retval br label %ret ifend25: %t92 = load ptr, ptr %t0 %t93 = call i32 @lp_str_eq(ptr %t92, ptr @.str340) %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t91 br i1 %t94, label %scend27, label %sc26 sc26: %t96 = load ptr, ptr %t0 %t97 = call i32 @lp_str_eq(ptr %t96, ptr @.str341) %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t91 br label %scend27 scend27: %t100 = load i32, ptr %t91 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t90 br i1 %t101, label %scend29, label %sc28 sc28: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str342) %t105 = icmp ne i32 %t104, 0 %t106 = zext i1 %t105 to i32 store i32 %t106, ptr %t90 br label %scend29 scend29: %t107 = load i32, ptr %t90 %t108 = icmp ne i32 %t107, 0 %t109 = zext i1 %t108 to i32 store i32 %t109, ptr %t89 br i1 %t108, label %scend31, label %sc30 sc30: %t110 = load ptr, ptr %t0 %t111 = call i32 @lp_str_eq(ptr %t110, ptr @.str343) %t112 = icmp ne i32 %t111, 0 %t113 = zext i1 %t112 to i32 store i32 %t113, ptr %t89 br label %scend31 scend31: %t114 = load i32, ptr %t89 %t115 = icmp ne i32 %t114, 0 %t116 = zext i1 %t115 to i32 store i32 %t116, ptr %t88 br i1 %t115, label %scend33, label %sc32 sc32: %t117 = load ptr, ptr %t0 %t118 = call i32 @lp_str_eq(ptr %t117, ptr @.str344) %t119 = icmp ne i32 %t118, 0 %t120 = zext i1 %t119 to i32 store i32 %t120, ptr %t88 br label %scend33 scend33: %t121 = load i32, ptr %t88 %t122 = icmp ne i32 %t121, 0 %t123 = zext i1 %t122 to i32 store i32 %t123, ptr %t87 br i1 %t122, label %scend35, label %sc34 sc34: %t124 = load ptr, ptr %t0 %t125 = call i32 @lp_str_eq(ptr %t124, ptr @.str345) %t126 = icmp ne i32 %t125, 0 %t127 = zext i1 %t126 to i32 store i32 %t127, ptr %t87 br label %scend35 scend35: %t128 = load i32, ptr %t87 %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then36, label %ifend38 then36: store i32 1, ptr %retval br label %ret ifend38: %t130 = load ptr, ptr %t0 %t131 = call i32 @lp_str_eq(ptr %t130, ptr @.str346) %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then39, label %ifend41 then39: store i32 1, ptr %retval br label %ret ifend41: %t139 = load ptr, ptr %t0 %t140 = call i32 @lp_str_eq(ptr %t139, ptr @.str347) %t141 = icmp ne i32 %t140, 0 %t142 = zext i1 %t141 to i32 store i32 %t142, ptr %t138 br i1 %t141, label %scend43, label %sc42 sc42: %t143 = load ptr, ptr %t0 %t144 = call i32 @lp_str_eq(ptr %t143, ptr @.str348) %t145 = icmp ne i32 %t144, 0 %t146 = zext i1 %t145 to i32 store i32 %t146, ptr %t138 br label %scend43 scend43: %t147 = load i32, ptr %t138 %t148 = icmp ne i32 %t147, 0 %t149 = zext i1 %t148 to i32 store i32 %t149, ptr %t137 br i1 %t148, label %scend45, label %sc44 sc44: %t150 = load ptr, ptr %t0 %t151 = call i32 @lp_str_eq(ptr %t150, ptr @.str349) %t152 = icmp ne i32 %t151, 0 %t153 = zext i1 %t152 to i32 store i32 %t153, ptr %t137 br label %scend45 scend45: %t154 = load i32, ptr %t137 %t155 = icmp ne i32 %t154, 0 %t156 = zext i1 %t155 to i32 store i32 %t156, ptr %t136 br i1 %t155, label %scend47, label %sc46 sc46: %t157 = load ptr, ptr %t0 %t158 = call i32 @lp_str_eq(ptr %t157, ptr @.str350) %t159 = icmp ne i32 %t158, 0 %t160 = zext i1 %t159 to i32 store i32 %t160, ptr %t136 br label %scend47 scend47: %t161 = load i32, ptr %t136 %t162 = icmp ne i32 %t161, 0 %t163 = zext i1 %t162 to i32 store i32 %t163, ptr %t135 br i1 %t162, label %scend49, label %sc48 sc48: %t164 = load ptr, ptr %t0 %t165 = call i32 @lp_str_eq(ptr %t164, ptr @.str351) %t166 = icmp ne i32 %t165, 0 %t167 = zext i1 %t166 to i32 store i32 %t167, ptr %t135 br label %scend49 scend49: %t168 = load i32, ptr %t135 %t169 = icmp ne i32 %t168, 0 %t170 = zext i1 %t169 to i32 store i32 %t170, ptr %t134 br i1 %t169, label %scend51, label %sc50 sc50: %t171 = load ptr, ptr %t0 %t172 = call i32 @lp_str_eq(ptr %t171, ptr @.str352) %t173 = icmp ne i32 %t172, 0 %t174 = zext i1 %t173 to i32 store i32 %t174, ptr %t134 br label %scend51 scend51: %t175 = load i32, ptr %t134 %t176 = icmp ne i32 %t175, 0 %t177 = zext i1 %t176 to i32 store i32 %t177, ptr %t133 br i1 %t176, label %scend53, label %sc52 sc52: %t178 = load ptr, ptr %t0 %t179 = call i32 @lp_str_eq(ptr %t178, ptr @.str353) %t180 = icmp ne i32 %t179, 0 %t181 = zext i1 %t180 to i32 store i32 %t181, ptr %t133 br label %scend53 scend53: %t182 = load i32, ptr %t133 %t183 = icmp ne i32 %t182, 0 br i1 %t183, label %then54, label %ifend56 then54: store i32 1, ptr %retval br label %ret ifend56: %t189 = load ptr, ptr %t0 %t190 = call i32 @lp_str_eq(ptr %t189, ptr @.str354) %t191 = icmp ne i32 %t190, 0 %t192 = zext i1 %t191 to i32 store i32 %t192, ptr %t188 br i1 %t191, label %scend58, label %sc57 sc57: %t193 = load ptr, ptr %t0 %t194 = call i32 @lp_str_eq(ptr %t193, ptr @.str355) %t195 = icmp ne i32 %t194, 0 %t196 = zext i1 %t195 to i32 store i32 %t196, ptr %t188 br label %scend58 scend58: %t197 = load i32, ptr %t188 %t198 = icmp ne i32 %t197, 0 %t199 = zext i1 %t198 to i32 store i32 %t199, ptr %t187 br i1 %t198, label %scend60, label %sc59 sc59: %t200 = load ptr, ptr %t0 %t201 = call i32 @lp_str_eq(ptr %t200, ptr @.str356) %t202 = icmp ne i32 %t201, 0 %t203 = zext i1 %t202 to i32 store i32 %t203, ptr %t187 br label %scend60 scend60: %t204 = load i32, ptr %t187 %t205 = icmp ne i32 %t204, 0 %t206 = zext i1 %t205 to i32 store i32 %t206, ptr %t186 br i1 %t205, label %scend62, label %sc61 sc61: %t207 = load ptr, ptr %t0 %t208 = call i32 @lp_str_eq(ptr %t207, ptr @.str357) %t209 = icmp ne i32 %t208, 0 %t210 = zext i1 %t209 to i32 store i32 %t210, ptr %t186 br label %scend62 scend62: %t211 = load i32, ptr %t186 %t212 = icmp ne i32 %t211, 0 %t213 = zext i1 %t212 to i32 store i32 %t213, ptr %t185 br i1 %t212, label %scend64, label %sc63 sc63: %t214 = load ptr, ptr %t0 %t215 = call i32 @lp_str_eq(ptr %t214, ptr @.str358) %t216 = icmp ne i32 %t215, 0 %t217 = zext i1 %t216 to i32 store i32 %t217, ptr %t185 br label %scend64 scend64: %t218 = load i32, ptr %t185 %t219 = icmp ne i32 %t218, 0 %t220 = zext i1 %t219 to i32 store i32 %t220, ptr %t184 br i1 %t219, label %scend66, label %sc65 sc65: %t221 = load ptr, ptr %t0 %t222 = call i32 @lp_str_eq(ptr %t221, ptr @.str359) %t223 = icmp ne i32 %t222, 0 %t224 = zext i1 %t223 to i32 store i32 %t224, ptr %t184 br label %scend66 scend66: %t225 = load i32, ptr %t184 %t226 = icmp ne i32 %t225, 0 br i1 %t226, label %then67, label %ifend69 then67: store i32 1, ptr %retval br label %ret ifend69: %t232 = load ptr, ptr %t0 %t233 = call i32 @lp_str_eq(ptr %t232, ptr @.str360) %t234 = icmp ne i32 %t233, 0 %t235 = zext i1 %t234 to i32 store i32 %t235, ptr %t231 br i1 %t234, label %scend71, label %sc70 sc70: %t236 = load ptr, ptr %t0 %t237 = call i32 @lp_str_eq(ptr %t236, ptr @.str361) %t238 = icmp ne i32 %t237, 0 %t239 = zext i1 %t238 to i32 store i32 %t239, ptr %t231 br label %scend71 scend71: %t240 = load i32, ptr %t231 %t241 = icmp ne i32 %t240, 0 %t242 = zext i1 %t241 to i32 store i32 %t242, ptr %t230 br i1 %t241, label %scend73, label %sc72 sc72: %t243 = load ptr, ptr %t0 %t244 = call i32 @lp_str_eq(ptr %t243, ptr @.str362) %t245 = icmp ne i32 %t244, 0 %t246 = zext i1 %t245 to i32 store i32 %t246, ptr %t230 br label %scend73 scend73: %t247 = load i32, ptr %t230 %t248 = icmp ne i32 %t247, 0 %t249 = zext i1 %t248 to i32 store i32 %t249, ptr %t229 br i1 %t248, label %scend75, label %sc74 sc74: %t250 = load ptr, ptr %t0 %t251 = call i32 @lp_str_eq(ptr %t250, ptr @.str363) %t252 = icmp ne i32 %t251, 0 %t253 = zext i1 %t252 to i32 store i32 %t253, ptr %t229 br label %scend75 scend75: %t254 = load i32, ptr %t229 %t255 = icmp ne i32 %t254, 0 %t256 = zext i1 %t255 to i32 store i32 %t256, ptr %t228 br i1 %t255, label %scend77, label %sc76 sc76: %t257 = load ptr, ptr %t0 %t258 = call i32 @lp_str_eq(ptr %t257, ptr @.str364) %t259 = icmp ne i32 %t258, 0 %t260 = zext i1 %t259 to i32 store i32 %t260, ptr %t228 br label %scend77 scend77: %t261 = load i32, ptr %t228 %t262 = icmp ne i32 %t261, 0 %t263 = zext i1 %t262 to i32 store i32 %t263, ptr %t227 br i1 %t262, label %scend79, label %sc78 sc78: %t264 = load ptr, ptr %t0 %t265 = call i32 @lp_str_eq(ptr %t264, ptr @.str365) %t266 = icmp ne i32 %t265, 0 %t267 = zext i1 %t266 to i32 store i32 %t267, ptr %t227 br label %scend79 scend79: %t268 = load i32, ptr %t227 %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then80, label %ifend82 then80: store i32 1, ptr %retval br label %ret ifend82: store i32 0, ptr %retval br label %ret ret: %t270 = load i32, ptr %retval ret i32 %t270 } define ptr @fn_parse_fn() { entry: %retval = alloca ptr %t3 = alloca ptr %t30 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 4) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 %t7 = call i32 @fn_is_op(ptr @.str366) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t3 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 11 %t11 = call ptr @fn_gen_params() store ptr %t11, ptr %t10 br label %ifend2 ifend2: %t12 = load ptr, ptr %t3 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 11 %t14 = load ptr, ptr %t13 call void @fn_gen_enter(ptr %t14) call void @fn_eat_op(ptr @.str367) %t15 = load ptr, ptr %t3 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = call i32 @fn_is_reserved_word(ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr %t3 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 %t23 = call ptr @lp_str_concat(ptr @.str368, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str369) call void @fn_perr(ptr %t24) br label %ifend5 ifend5: br label %wcond6 wcond6: %t25 = call i32 @fn_is_op(ptr @.str370) %t26 = icmp eq i32 %t25, 0 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %wbody7, label %wend8 wbody7: %t29 = call ptr @fn_node(i32 5) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = call ptr @fn_eat_id() store ptr %t33, ptr %t32 call void @fn_eat_op(ptr @.str371) %t34 = load ptr, ptr %t30 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 3 %t36 = call ptr @fn_ptype() store ptr %t36, ptr %t35 %t37 = call i32 @fn_is_op(ptr @.str372) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then9, label %ifend11 then9: %t39 = load i32, ptr @g_pi %t40 = add i32 %t39, 1 store i32 %t40, ptr @g_pi %t41 = load ptr, ptr %t30 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 4 %t43 = call ptr @fn_expr() store ptr %t43, ptr %t42 br label %ifend11 ifend11: %t44 = load ptr, ptr %t3 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = load ptr, ptr %t30 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 2 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t51 = load i32, ptr %t48 %t52 = load i32, ptr %t49 %t53 = icmp sge i32 %t51, %t52 br i1 %t53, label %grow12, label %put13 grow12: %t54 = mul i32 %t52, 2 %t55 = icmp eq i32 %t52, 0 %t56 = select i1 %t55, i32 8, i32 %t54 %t57 = getelementptr ptr, ptr null, i32 1 %t58 = ptrtoint ptr %t57 to i64 %t59 = zext i32 %t56 to i64 %t60 = mul i64 %t59, %t58 %t61 = load ptr, ptr %t50 %t62 = call ptr @realloc(ptr %t61, i64 %t60) store ptr %t62, ptr %t50 store i32 %t56, ptr %t49 br label %put13 put13: %t63 = load ptr, ptr %t50 %t64 = getelementptr inbounds ptr, ptr %t63, i32 %t51 store ptr %t47, ptr %t64 %t65 = add i32 %t51, 1 store i32 %t65, ptr %t48 %t66 = call i32 @fn_is_op(ptr @.str373) %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then14, label %ifend16 then14: %t68 = load i32, ptr @g_pi %t69 = add i32 %t68, 1 store i32 %t69, ptr @g_pi br label %ifend16 ifend16: br label %wcond6 wend8: call void @fn_eat_op(ptr @.str374) %t70 = load ptr, ptr %t3 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 3 store ptr @.str375, ptr %t71 %t72 = call i32 @fn_is_op(ptr @.str376) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then17, label %ifend19 then17: %t74 = load i32, ptr @g_pi %t75 = add i32 %t74, 1 store i32 %t75, ptr @g_pi %t76 = load ptr, ptr %t3 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 3 %t78 = call ptr @fn_ptype() store ptr %t78, ptr %t77 br label %ifend19 ifend19: %t79 = load ptr, ptr %t3 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 4 %t81 = call ptr @fn_block() store ptr %t81, ptr %t80 call void @fn_gen_enter(ptr null) %t82 = load ptr, ptr %t3 store ptr %t82, ptr %retval br label %ret ret: %t83 = load ptr, ptr %retval ret ptr %t83 } define ptr @fn_parse_main() { entry: %retval = alloca ptr %t3 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 6) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 4 %t6 = call ptr @fn_block() store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 store ptr %t7, ptr %retval br label %ret ret: %t8 = load ptr, ptr %retval ret ptr %t8 } define i32 @fn_ns_short_in(ptr %arg_names, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_names, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str377, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t1 %t21 = call i32 @lp_str_eq(ptr %t19, ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t2 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define void @fn_ns_rewrite_calls(ptr %arg_n, ptr %arg_shorts, ptr %arg_prefix) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t7 = alloca i32 %t8 = alloca i32 %t71 = alloca i32 store ptr %arg_n, ptr %t0 store ptr %arg_shorts, ptr %t1 store ptr %arg_prefix, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: br label %ret ifend2: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 0 %t11 = load i32, ptr %t10 %t12 = icmp eq i32 %t11, 34 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t8 br i1 %t14, label %sc3, label %scend4 sc3: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 4 %t18 = load ptr, ptr %t17 %t19 = icmp ne ptr %t18, null %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t8 br label %scend4 scend4: %t23 = load i32, ptr %t8 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t7 br i1 %t24, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 4 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 0 %t30 = load i32, ptr %t29 %t31 = icmp eq i32 %t30, 33 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t7 br label %scend6 scend6: %t35 = load i32, ptr %t7 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t1 %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 4 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 %t43 = call i32 @fn_ns_short_in(ptr %t37, ptr %t42) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then10, label %ifend12 then10: %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 4 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 1 %t49 = load ptr, ptr %t2 %t50 = load ptr, ptr %t0 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 4 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 1 %t54 = load ptr, ptr %t53 %t55 = call ptr @lp_str_concat(ptr %t49, ptr %t54) store ptr %t55, ptr %t48 br label %ifend12 ifend12: br label %ifend9 ifend9: %t56 = load ptr, ptr %t0 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 4 %t58 = load ptr, ptr %t57 %t59 = load ptr, ptr %t1 %t60 = load ptr, ptr %t2 call void @fn_ns_rewrite_calls(ptr %t58, ptr %t59, ptr %t60) %t61 = load ptr, ptr %t0 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 5 %t63 = load ptr, ptr %t62 %t64 = load ptr, ptr %t1 %t65 = load ptr, ptr %t2 call void @fn_ns_rewrite_calls(ptr %t63, ptr %t64, ptr %t65) %t66 = load ptr, ptr %t0 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 6 %t68 = load ptr, ptr %t67 %t69 = load ptr, ptr %t1 %t70 = load ptr, ptr %t2 call void @fn_ns_rewrite_calls(ptr %t68, ptr %t69, ptr %t70) store i32 0, ptr %t71 br label %wcond13 wcond13: %t72 = load i32, ptr %t71 %t73 = load ptr, ptr %t0 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 7 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t77 = load i32, ptr %t76 %t78 = icmp slt i32 %t72, %t77 %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %wbody14, label %wend15 wbody14: %t81 = load ptr, ptr %t0 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 7 %t83 = load ptr, ptr %t82 %t84 = load i32, ptr %t71 %t85 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 0 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t88 = load i32, ptr %t87 %t89 = icmp ult i32 %t84, %t88 br i1 %t89, label %ixok16, label %ixbad17 ixbad17: %t90 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t90, ptr @.fmt_bounds, ptr @.str378, i32 %t84, i32 %t88) call void @exit(i32 1) unreachable ixok16: %t91 = getelementptr inbounds ptr, ptr %t86, i32 %t84 %t92 = load ptr, ptr %t91 %t93 = load ptr, ptr %t1 %t94 = load ptr, ptr %t2 call void @fn_ns_rewrite_calls(ptr %t92, ptr %t93, ptr %t94) %t95 = load i32, ptr %t71 %t96 = add i32 %t95, 1 store i32 %t96, ptr %t71 br label %wcond13 wend15: br label %ret ret: ret void } define void @fn_parse_namespace() { entry: %t3 = alloca ptr %t10 = alloca ptr %t17 = alloca ptr %t24 = alloca ptr %t29 = alloca i32 %t47 = alloca ptr %t113 = alloca ptr %t114 = alloca i32 %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_eat_id() store ptr %t2, ptr %t3 call void @fn_eat_op(ptr @.str379) call void @fn_skipnl() %t4 = getelementptr %LSlice, ptr null, i32 1 %t5 = ptrtoint ptr %t4 to i64 %t6 = call ptr @malloc(i64 %t5) %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 store ptr null, ptr %t7 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 store i32 0, ptr %t8 %t9 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 2 store i32 0, ptr %t9 store ptr %t6, ptr %t10 %t11 = getelementptr %LSlice, ptr null, i32 1 %t12 = ptrtoint ptr %t11 to i64 %t13 = call ptr @malloc(i64 %t12) %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 store ptr null, ptr %t14 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 store i32 0, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 2 store i32 0, ptr %t16 store ptr %t13, ptr %t17 %t18 = getelementptr %LSlice, ptr null, i32 1 %t19 = ptrtoint ptr %t18 to i64 %t20 = call ptr @malloc(i64 %t19) %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 store ptr null, ptr %t21 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 store i32 0, ptr %t22 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 store i32 0, ptr %t23 store ptr %t20, ptr %t24 br label %wcond0 wcond0: %t25 = call i32 @fn_is_op(ptr @.str380) %t26 = icmp eq i32 %t25, 0 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %wbody1, label %wend2 wbody1: store i32 1, ptr %t29 %t30 = call i32 @fn_is_id(ptr @.str381) %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then3, label %else4 then3: %t32 = load i32, ptr @g_pi %t33 = add i32 %t32, 1 store i32 %t33, ptr @g_pi br label %ifend5 else4: %t34 = call i32 @fn_is_id(ptr @.str382) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then6, label %ifend8 then6: %t36 = load i32, ptr @g_pi %t37 = add i32 %t36, 1 store i32 %t37, ptr @g_pi store i32 0, ptr %t29 br label %ifend8 ifend8: br label %ifend5 ifend5: %t38 = call i32 @fn_is_id(ptr @.str383) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then9, label %ifend11 then9: %t40 = load ptr, ptr %t3 %t41 = load i32, ptr %t29 call void @fn_ns_parse_alias(ptr %t40, i32 %t41) call void @fn_skipnl() br label %wcond0 ifend11: %t42 = call i32 @fn_is_id(ptr @.str384) %t43 = icmp eq i32 %t42, 0 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then12, label %ifend14 then12: call void @fn_perr(ptr @.str385) br label %ifend14 ifend14: %t46 = call ptr @fn_parse_fn() store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t10 %t49 = load ptr, ptr %t47 %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 2 %t52 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t53 = load i32, ptr %t50 %t54 = load i32, ptr %t51 %t55 = icmp sge i32 %t53, %t54 br i1 %t55, label %grow15, label %put16 grow15: %t56 = mul i32 %t54, 2 %t57 = icmp eq i32 %t54, 0 %t58 = select i1 %t57, i32 8, i32 %t56 %t59 = getelementptr ptr, ptr null, i32 1 %t60 = ptrtoint ptr %t59 to i64 %t61 = zext i32 %t58 to i64 %t62 = mul i64 %t61, %t60 %t63 = load ptr, ptr %t52 %t64 = call ptr @realloc(ptr %t63, i64 %t62) store ptr %t64, ptr %t52 store i32 %t58, ptr %t51 br label %put16 put16: %t65 = load ptr, ptr %t52 %t66 = getelementptr inbounds ptr, ptr %t65, i32 %t53 store ptr %t49, ptr %t66 %t67 = add i32 %t53, 1 store i32 %t67, ptr %t50 %t68 = load ptr, ptr %t17 %t69 = load ptr, ptr %t47 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 %t73 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 2 %t74 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0 %t75 = load i32, ptr %t72 %t76 = load i32, ptr %t73 %t77 = icmp sge i32 %t75, %t76 br i1 %t77, label %grow17, label %put18 grow17: %t78 = mul i32 %t76, 2 %t79 = icmp eq i32 %t76, 0 %t80 = select i1 %t79, i32 8, i32 %t78 %t81 = getelementptr ptr, ptr null, i32 1 %t82 = ptrtoint ptr %t81 to i64 %t83 = zext i32 %t80 to i64 %t84 = mul i64 %t83, %t82 %t85 = load ptr, ptr %t74 %t86 = call ptr @realloc(ptr %t85, i64 %t84) store ptr %t86, ptr %t74 store i32 %t80, ptr %t73 br label %put18 put18: %t87 = load ptr, ptr %t74 %t88 = getelementptr inbounds ptr, ptr %t87, i32 %t75 store ptr %t71, ptr %t88 %t89 = add i32 %t75, 1 store i32 %t89, ptr %t72 %t90 = load ptr, ptr %t24 %t91 = load i32, ptr %t29 %t92 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t93 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 2 %t94 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 0 %t95 = load i32, ptr %t92 %t96 = load i32, ptr %t93 %t97 = icmp sge i32 %t95, %t96 br i1 %t97, label %grow19, label %put20 grow19: %t98 = mul i32 %t96, 2 %t99 = icmp eq i32 %t96, 0 %t100 = select i1 %t99, i32 8, i32 %t98 %t101 = getelementptr i32, ptr null, i32 1 %t102 = ptrtoint ptr %t101 to i64 %t103 = zext i32 %t100 to i64 %t104 = mul i64 %t103, %t102 %t105 = load ptr, ptr %t94 %t106 = call ptr @realloc(ptr %t105, i64 %t104) store ptr %t106, ptr %t94 store i32 %t100, ptr %t93 br label %put20 put20: %t107 = load ptr, ptr %t94 %t108 = getelementptr inbounds i32, ptr %t107, i32 %t95 store i32 %t91, ptr %t108 %t109 = add i32 %t95, 1 store i32 %t109, ptr %t92 call void @fn_skipnl() br label %wcond0 wend2: call void @fn_eat_op(ptr @.str386) %t110 = load ptr, ptr %t3 %t111 = call ptr @fn_ns_lower(ptr %t110) %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str387) store ptr %t112, ptr %t113 store i32 0, ptr %t114 br label %wcond21 wcond21: %t115 = load i32, ptr %t114 %t116 = load ptr, ptr %t10 %t117 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 1 %t118 = load i32, ptr %t117 %t119 = icmp slt i32 %t115, %t118 %t120 = zext i1 %t119 to i32 %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %wbody22, label %wend23 wbody22: %t122 = load ptr, ptr %t10 %t123 = load i32, ptr %t114 %t124 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 %t127 = load i32, ptr %t126 %t128 = icmp ult i32 %t123, %t127 br i1 %t128, label %ixok24, label %ixbad25 ixbad25: %t129 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t129, ptr @.fmt_bounds, ptr @.str388, i32 %t123, i32 %t127) call void @exit(i32 1) unreachable ixok24: %t130 = getelementptr inbounds ptr, ptr %t125, i32 %t123 %t131 = load ptr, ptr %t130 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 1 %t133 = load ptr, ptr %t113 %t134 = load ptr, ptr %t17 %t135 = load i32, ptr %t114 %t136 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 0 %t137 = load ptr, ptr %t136 %t138 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 1 %t139 = load i32, ptr %t138 %t140 = icmp ult i32 %t135, %t139 br i1 %t140, label %ixok26, label %ixbad27 ixbad27: %t141 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t141, ptr @.fmt_bounds, ptr @.str389, i32 %t135, i32 %t139) call void @exit(i32 1) unreachable ixok26: %t142 = getelementptr inbounds ptr, ptr %t137, i32 %t135 %t143 = load ptr, ptr %t142 %t144 = call ptr @lp_str_concat(ptr %t133, ptr %t143) store ptr %t144, ptr %t132 %t145 = load i32, ptr %t114 %t146 = add i32 %t145, 1 store i32 %t146, ptr %t114 br label %wcond21 wend23: store i32 0, ptr %t114 br label %wcond28 wcond28: %t147 = load i32, ptr %t114 %t148 = load ptr, ptr %t10 %t149 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 1 %t150 = load i32, ptr %t149 %t151 = icmp slt i32 %t147, %t150 %t152 = zext i1 %t151 to i32 %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %wbody29, label %wend30 wbody29: %t154 = load ptr, ptr %t10 %t155 = load i32, ptr %t114 %t156 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 0 %t157 = load ptr, ptr %t156 %t158 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 1 %t159 = load i32, ptr %t158 %t160 = icmp ult i32 %t155, %t159 br i1 %t160, label %ixok31, label %ixbad32 ixbad32: %t161 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t161, ptr @.fmt_bounds, ptr @.str390, i32 %t155, i32 %t159) call void @exit(i32 1) unreachable ixok31: %t162 = getelementptr inbounds ptr, ptr %t157, i32 %t155 %t163 = load ptr, ptr %t162 %t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 4 %t165 = load ptr, ptr %t164 %t166 = load ptr, ptr %t17 %t167 = load ptr, ptr %t113 call void @fn_ns_rewrite_calls(ptr %t165, ptr %t166, ptr %t167) %t168 = load i32, ptr %t114 %t169 = add i32 %t168, 1 store i32 %t169, ptr %t114 br label %wcond28 wend30: %t170 = load ptr, ptr %t3 call void @fn_register_namespace(ptr %t170) %t171 = load ptr, ptr @g_g_ns_blocks %t172 = load ptr, ptr %t3 %t173 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 1 %t174 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 2 %t175 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 0 %t176 = load i32, ptr %t173 %t177 = load i32, ptr %t174 %t178 = icmp sge i32 %t176, %t177 br i1 %t178, label %grow33, label %put34 grow33: %t179 = mul i32 %t177, 2 %t180 = icmp eq i32 %t177, 0 %t181 = select i1 %t180, i32 8, i32 %t179 %t182 = getelementptr ptr, ptr null, i32 1 %t183 = ptrtoint ptr %t182 to i64 %t184 = zext i32 %t181 to i64 %t185 = mul i64 %t184, %t183 %t186 = load ptr, ptr %t175 %t187 = call ptr @realloc(ptr %t186, i64 %t185) store ptr %t187, ptr %t175 store i32 %t181, ptr %t174 br label %put34 put34: %t188 = load ptr, ptr %t175 %t189 = getelementptr inbounds ptr, ptr %t188, i32 %t176 store ptr %t172, ptr %t189 %t190 = add i32 %t176, 1 store i32 %t190, ptr %t173 store i32 0, ptr %t114 br label %wcond35 wcond35: %t191 = load i32, ptr %t114 %t192 = load ptr, ptr %t10 %t193 = getelementptr inbounds %LSlice, ptr %t192, i32 0, i32 1 %t194 = load i32, ptr %t193 %t195 = icmp slt i32 %t191, %t194 %t196 = zext i1 %t195 to i32 %t197 = icmp ne i32 %t196, 0 br i1 %t197, label %wbody36, label %wend37 wbody36: %t198 = load ptr, ptr %t24 %t199 = load i32, ptr %t114 %t200 = getelementptr inbounds %LSlice, ptr %t198, i32 0, i32 0 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %LSlice, ptr %t198, i32 0, i32 1 %t203 = load i32, ptr %t202 %t204 = icmp ult i32 %t199, %t203 br i1 %t204, label %ixok38, label %ixbad39 ixbad39: %t205 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t205, ptr @.fmt_bounds, ptr @.str391, i32 %t199, i32 %t203) call void @exit(i32 1) unreachable ixok38: %t206 = getelementptr inbounds i32, ptr %t201, i32 %t199 %t207 = load i32, ptr %t206 %t208 = icmp eq i32 %t207, 1 %t209 = zext i1 %t208 to i32 %t210 = icmp ne i32 %t209, 0 br i1 %t210, label %then40, label %ifend42 then40: %t211 = load ptr, ptr @g_g_ns_exports %t212 = load ptr, ptr %t10 %t213 = load i32, ptr %t114 %t214 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 0 %t215 = load ptr, ptr %t214 %t216 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 1 %t217 = load i32, ptr %t216 %t218 = icmp ult i32 %t213, %t217 br i1 %t218, label %ixok43, label %ixbad44 ixbad44: %t219 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t219, ptr @.fmt_bounds, ptr @.str392, i32 %t213, i32 %t217) call void @exit(i32 1) unreachable ixok43: %t220 = getelementptr inbounds ptr, ptr %t215, i32 %t213 %t221 = load ptr, ptr %t220 %t222 = getelementptr inbounds %Cmp_Node, ptr %t221, i32 0, i32 1 %t223 = load ptr, ptr %t222 %t224 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 1 %t225 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 2 %t226 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 0 %t227 = load i32, ptr %t224 %t228 = load i32, ptr %t225 %t229 = icmp sge i32 %t227, %t228 br i1 %t229, label %grow45, label %put46 grow45: %t230 = mul i32 %t228, 2 %t231 = icmp eq i32 %t228, 0 %t232 = select i1 %t231, i32 8, i32 %t230 %t233 = getelementptr ptr, ptr null, i32 1 %t234 = ptrtoint ptr %t233 to i64 %t235 = zext i32 %t232 to i64 %t236 = mul i64 %t235, %t234 %t237 = load ptr, ptr %t226 %t238 = call ptr @realloc(ptr %t237, i64 %t236) store ptr %t238, ptr %t226 store i32 %t232, ptr %t225 br label %put46 put46: %t239 = load ptr, ptr %t226 %t240 = getelementptr inbounds ptr, ptr %t239, i32 %t227 store ptr %t223, ptr %t240 %t241 = add i32 %t227, 1 store i32 %t241, ptr %t224 br label %ifend42 ifend42: %t242 = load ptr, ptr @g_prog %t243 = load ptr, ptr %t10 %t244 = load i32, ptr %t114 %t245 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 0 %t246 = load ptr, ptr %t245 %t247 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 1 %t248 = load i32, ptr %t247 %t249 = icmp ult i32 %t244, %t248 br i1 %t249, label %ixok47, label %ixbad48 ixbad48: %t250 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t250, ptr @.fmt_bounds, ptr @.str393, i32 %t244, i32 %t248) call void @exit(i32 1) unreachable ixok47: %t251 = getelementptr inbounds ptr, ptr %t246, i32 %t244 %t252 = load ptr, ptr %t251 %t253 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 1 %t254 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 2 %t255 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 0 %t256 = load i32, ptr %t253 %t257 = load i32, ptr %t254 %t258 = icmp sge i32 %t256, %t257 br i1 %t258, label %grow49, label %put50 grow49: %t259 = mul i32 %t257, 2 %t260 = icmp eq i32 %t257, 0 %t261 = select i1 %t260, i32 8, i32 %t259 %t262 = getelementptr ptr, ptr null, i32 1 %t263 = ptrtoint ptr %t262 to i64 %t264 = zext i32 %t261 to i64 %t265 = mul i64 %t264, %t263 %t266 = load ptr, ptr %t255 %t267 = call ptr @realloc(ptr %t266, i64 %t265) store ptr %t267, ptr %t255 store i32 %t261, ptr %t254 br label %put50 put50: %t268 = load ptr, ptr %t255 %t269 = getelementptr inbounds ptr, ptr %t268, i32 %t256 store ptr %t252, ptr %t269 %t270 = add i32 %t256, 1 store i32 %t270, ptr %t253 %t271 = load i32, ptr %t114 %t272 = add i32 %t271, 1 store i32 %t272, ptr %t114 br label %wcond35 wend37: br label %ret ret: ret void } define i32 @fn_host_is_windows() { entry: %retval = alloca i32 %t1 = alloca ptr %t0 = call ptr @getenv(ptr @.str394) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t1 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str395) store i32 %t7, ptr %retval br label %ret ret: %t8 = load i32, ptr %retval ret i32 %t8 } define i32 @fn_is_sep(i32 %arg_c) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 store i32 %arg_c, ptr %t0 %t2 = load i32, ptr %t0 %t3 = icmp eq i32 %t2, 47 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load i32, ptr %t0 %t8 = icmp eq i32 %t7, 92 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t1 br label %scend1 scend1: %t12 = load i32, ptr %t1 store i32 %t12, ptr %retval br label %ret ret: %t13 = load i32, ptr %retval ret i32 %t13 } define ptr @fn_fwd_slashes(ptr %arg_s) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t9 = alloca ptr %t10 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = add i32 %t5, 1 %t7 = zext i32 %t6 to i64 %t8 = call ptr @malloc(i64 %t7) store ptr %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load i32, ptr %t4 %t13 = icmp slt i32 %t11, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody1, label %wend2 wbody1: %t16 = load ptr, ptr %t0 %t17 = load i32, ptr %t10 %t18 = getelementptr inbounds i8, ptr %t16, i32 %t17 %t19 = load i8, ptr %t18 %t20 = zext i8 %t19 to i32 %t21 = icmp eq i32 %t20, 92 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %else4 then3: %t24 = load ptr, ptr %t9 %t25 = load i32, ptr %t10 %t26 = getelementptr inbounds i8, ptr %t24, i32 %t25 %t27 = trunc i32 47 to i8 store i8 %t27, ptr %t26 br label %ifend5 else4: %t28 = load ptr, ptr %t9 %t29 = load i32, ptr %t10 %t30 = getelementptr inbounds i8, ptr %t28, i32 %t29 %t31 = load ptr, ptr %t0 %t32 = load i32, ptr %t10 %t33 = getelementptr inbounds i8, ptr %t31, i32 %t32 %t34 = load i8, ptr %t33 %t35 = zext i8 %t34 to i32 %t36 = trunc i32 %t35 to i8 store i8 %t36, ptr %t30 br label %ifend5 ifend5: %t37 = load i32, ptr %t10 %t38 = add i32 %t37, 1 store i32 %t38, ptr %t10 br label %wcond0 wend2: %t39 = load ptr, ptr %t9 %t40 = load i32, ptr %t4 %t41 = getelementptr inbounds i8, ptr %t39, i32 %t40 %t42 = trunc i32 0 to i8 store i8 %t42, ptr %t41 %t43 = load ptr, ptr %t9 store ptr %t43, ptr %retval br label %ret ret: %t44 = load ptr, ptr %retval ret ptr %t44 } define ptr @fn_dir_of(ptr %arg_path) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_path, ptr %t0 %t1 = sub i32 0, 1 store i32 %t1, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load ptr, ptr %t0 %t5 = load i32, ptr %t3 %t6 = getelementptr inbounds i8, ptr %t4, i32 %t5 %t7 = load i8, ptr %t6 %t8 = zext i8 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = load i32, ptr %t3 %t14 = getelementptr inbounds i8, ptr %t12, i32 %t13 %t15 = load i8, ptr %t14 %t16 = zext i8 %t15 to i32 %t17 = call i32 @fn_is_sep(i32 %t16) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load i32, ptr %t3 store i32 %t19, ptr %t2 br label %ifend5 ifend5: %t20 = load i32, ptr %t3 %t21 = add i32 %t20, 1 store i32 %t21, ptr %t3 br label %wcond0 wend2: %t22 = load i32, ptr %t2 %t23 = icmp slt i32 %t22, 0 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then6, label %ifend8 then6: store ptr @.str396, ptr %retval br label %ret ifend8: %t26 = load ptr, ptr %t0 %t27 = load i32, ptr %t2 %t28 = add i32 %t27, 1 %t29 = call ptr @lp_str_slice(ptr %t26, i32 0, i32 %t28) store ptr %t29, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } define ptr @fn_join_path(ptr %arg_dir, ptr %arg_rel) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_dir, ptr %t0 store ptr %arg_rel, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds i8, ptr %t2, i32 0 %t4 = load i8, ptr %t3 %t5 = zext i8 %t4 to i32 %t6 = call i32 @fn_is_sep(i32 %t5) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load ptr, ptr %t1 store ptr %t8, ptr %retval br label %ret ifend2: %t9 = load ptr, ptr %t1 %t10 = getelementptr inbounds i8, ptr %t9, i32 0 %t11 = load i8, ptr %t10 %t12 = zext i8 %t11 to i32 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: %t16 = load ptr, ptr %t1 %t17 = getelementptr inbounds i8, ptr %t16, i32 1 %t18 = load i8, ptr %t17 %t19 = zext i8 %t18 to i32 %t20 = icmp eq i32 %t19, 58 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then6, label %ifend8 then6: %t23 = load ptr, ptr %t1 store ptr %t23, ptr %retval br label %ret ifend8: br label %ifend5 ifend5: %t24 = load ptr, ptr %t0 %t25 = load ptr, ptr %t1 %t26 = call ptr @lp_str_concat(ptr %t24, ptr %t25) store ptr %t26, ptr %retval br label %ret ret: %t27 = load ptr, ptr %retval ret ptr %t27 } define ptr @fn_ludic_home() { entry: %retval = alloca ptr %t1 = alloca ptr %t14 = alloca ptr %t32 = alloca i32 %t0 = call ptr @getenv(ptr @.str397) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp ne ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 %t7 = call ptr @fn_fwd_slashes(ptr %t6) %t8 = call ptr @fn_ensure_slash(ptr %t7) store ptr %t8, ptr %retval br label %ret ifend2: %t9 = load ptr, ptr @L_argv %t10 = getelementptr ptr, ptr %t9, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_dir_of(ptr %t11) %t13 = call ptr @fn_fwd_slashes(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = call i64 @strlen(ptr %t15) %t17 = trunc i64 %t16 to i32 %t18 = icmp eq i32 %t17, 0 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load ptr, ptr @L_argv %t22 = getelementptr ptr, ptr %t21, i32 0 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_base_name(ptr %t23) %t25 = call ptr @fn_path_lookup_dir(ptr %t24) store ptr %t25, ptr %t14 br label %ifend5 ifend5: %t26 = load ptr, ptr %t14 %t27 = call i64 @strlen(ptr %t26) %t28 = trunc i64 %t27 to i32 %t29 = icmp eq i32 %t28, 0 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then6, label %ifend8 then6: store ptr @.str398, ptr %retval br label %ret ifend8: %t33 = load ptr, ptr %t14 %t34 = call i64 @strlen(ptr %t33) %t35 = trunc i64 %t34 to i32 %t36 = icmp sge i32 %t35, 4 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t32 br i1 %t38, label %sc9, label %scend10 sc9: %t40 = load ptr, ptr %t14 %t41 = load ptr, ptr %t14 %t42 = call i64 @strlen(ptr %t41) %t43 = trunc i64 %t42 to i32 %t44 = sub i32 %t43, 4 %t45 = load ptr, ptr %t14 %t46 = call i64 @strlen(ptr %t45) %t47 = trunc i64 %t46 to i32 %t48 = call ptr @lp_str_slice(ptr %t40, i32 %t44, i32 %t47) %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str399) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t32 br label %scend10 scend10: %t52 = load i32, ptr %t32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then11, label %ifend13 then11: %t54 = load ptr, ptr %t14 %t55 = load ptr, ptr %t14 %t56 = call i64 @strlen(ptr %t55) %t57 = trunc i64 %t56 to i32 %t58 = sub i32 %t57, 4 %t59 = call ptr @lp_str_slice(ptr %t54, i32 0, i32 %t58) store ptr %t59, ptr %retval br label %ret ifend13: %t60 = load ptr, ptr %t14 store ptr %t60, ptr %retval br label %ret ret: %t61 = load ptr, ptr %retval ret ptr %t61 } define ptr @fn_path_lookup_dir(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 %t15 = alloca i32 %t16 = alloca i32 %t17 = alloca i32 %t23 = alloca i32 %t53 = alloca ptr %t58 = alloca ptr %t72 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = call ptr @getenv(ptr @.str400) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t2 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store ptr @.str401, ptr %retval br label %ret ifend2: %t7 = call i32 @fn_host_is_windows() store i32 %t7, ptr %t8 store i32 58, ptr %t9 %t10 = load i32, ptr %t8 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: store i32 59, ptr %t9 br label %ifend5 ifend5: %t12 = load ptr, ptr %t2 %t13 = call i64 @strlen(ptr %t12) %t14 = trunc i64 %t13 to i32 store i32 %t14, ptr %t15 store i32 0, ptr %t16 store i32 0, ptr %t17 br label %wcond6 wcond6: %t18 = load i32, ptr %t17 %t19 = load i32, ptr %t15 %t20 = icmp sle i32 %t18, %t19 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %wbody7, label %wend8 wbody7: %t24 = load i32, ptr %t17 %t25 = load i32, ptr %t15 %t26 = icmp eq i32 %t24, %t25 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t23 br i1 %t28, label %scend10, label %sc9 sc9: %t30 = load ptr, ptr %t2 %t31 = load i32, ptr %t17 %t32 = getelementptr inbounds i8, ptr %t30, i32 %t31 %t33 = load i8, ptr %t32 %t34 = zext i8 %t33 to i32 %t35 = load i32, ptr %t9 %t36 = icmp eq i32 %t34, %t35 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t23 br label %scend10 scend10: %t40 = load i32, ptr %t23 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then11, label %ifend13 then11: %t42 = load i32, ptr %t17 %t43 = load i32, ptr %t16 %t44 = icmp sgt i32 %t42, %t43 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then14, label %ifend16 then14: %t47 = load ptr, ptr %t2 %t48 = load i32, ptr %t16 %t49 = load i32, ptr %t17 %t50 = call ptr @lp_str_slice(ptr %t47, i32 %t48, i32 %t49) %t51 = call ptr @fn_fwd_slashes(ptr %t50) %t52 = call ptr @fn_ensure_slash(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = load ptr, ptr %t0 %t56 = call ptr @lp_str_concat(ptr %t54, ptr %t55) %t57 = call ptr @lp_pak_open(ptr %t56, ptr @.str402) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = icmp ne ptr %t59, null %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then17, label %ifend19 then17: %t63 = load ptr, ptr %t58 call i32 @fclose(ptr %t63) %t64 = load ptr, ptr %t53 store ptr %t64, ptr %retval br label %ret ifend19: %t65 = load i32, ptr %t8 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then20, label %ifend22 then20: %t67 = load ptr, ptr %t53 %t68 = load ptr, ptr %t0 %t69 = call ptr @lp_str_concat(ptr %t67, ptr %t68) %t70 = call ptr @lp_str_concat(ptr %t69, ptr @.str403) %t71 = call ptr @lp_pak_open(ptr %t70, ptr @.str404) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t72 %t74 = icmp ne ptr %t73, null %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then23, label %ifend25 then23: %t77 = load ptr, ptr %t72 call i32 @fclose(ptr %t77) %t78 = load ptr, ptr %t53 store ptr %t78, ptr %retval br label %ret ifend25: br label %ifend22 ifend22: br label %ifend16 ifend16: %t79 = load i32, ptr %t17 %t80 = add i32 %t79, 1 store i32 %t80, ptr %t16 br label %ifend13 ifend13: %t81 = load i32, ptr %t17 %t82 = add i32 %t81, 1 store i32 %t82, ptr %t17 br label %wcond6 wend8: store ptr @.str405, ptr %retval br label %ret ret: %t83 = load ptr, ptr %retval ret ptr %t83 } define void @fn_warn_draw_sprite(ptr %arg_name) { entry: %t0 = alloca ptr %t6 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load i32, ptr @g_g_warned_draw_sprite %t2 = icmp ne i32 %t1, 0 br i1 %t2, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 1, ptr @g_g_warned_draw_sprite %t3 = load ptr, ptr %t0 %t4 = call ptr @lp_str_concat(ptr @.str406, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str407) store ptr %t5, ptr %t6 %t7 = load ptr, ptr @__stderrp %t8 = load ptr, ptr %t6 %t9 = load ptr, ptr %t6 %t10 = call i64 @strlen(ptr %t9) %t11 = trunc i64 %t10 to i32 %t12 = zext i32 %t11 to i64 %t13 = call i64 @fwrite(ptr %t8, i64 1, i64 %t12, ptr %t7) %t14 = trunc i64 %t13 to i32 br label %ret ret: ret void } define i32 @fn_is_ns_block(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_ns_blocks %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_ns_blocks %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str408, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define i32 @fn_ns_export_has(ptr %arg_prefixed) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_prefixed, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_ns_exports %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_ns_exports %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str409, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define i32 @fn_is_system_disabled(ptr %arg_fn) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_fn, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_disabled_sys %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_disabled_sys %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str410, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define void @fn_register_namespace(ptr %arg_name) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_namespaces %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_namespaces %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str411, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: %t24 = load ptr, ptr @g_g_namespaces %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t29 = load i32, ptr %t26 %t30 = load i32, ptr %t27 %t31 = icmp sge i32 %t29, %t30 br i1 %t31, label %grow8, label %put9 grow8: %t32 = mul i32 %t30, 2 %t33 = icmp eq i32 %t30, 0 %t34 = select i1 %t33, i32 8, i32 %t32 %t35 = getelementptr ptr, ptr null, i32 1 %t36 = ptrtoint ptr %t35 to i64 %t37 = zext i32 %t34 to i64 %t38 = mul i64 %t37, %t36 %t39 = load ptr, ptr %t28 %t40 = call ptr @realloc(ptr %t39, i64 %t38) store ptr %t40, ptr %t28 store i32 %t34, ptr %t27 br label %put9 put9: %t41 = load ptr, ptr %t28 %t42 = getelementptr inbounds ptr, ptr %t41, i32 %t29 store ptr %t25, ptr %t42 %t43 = add i32 %t29, 1 store i32 %t43, ptr %t26 br label %ret ret: ret void } define i32 @fn_is_registered_namespace(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_namespaces %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_namespaces %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str412, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define i32 @fn_already_loaded(ptr %arg_full) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_full, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_loaded_paths %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_loaded_paths %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str413, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define void @fn_parse_one_decl() { entry: %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t6 = alloca ptr %t7 = alloca ptr %t8 = alloca ptr %t9 = alloca ptr %t10 = alloca i32 %t11 = alloca ptr %t12 = alloca i32 %t13 = alloca i32 %t14 = alloca ptr %t15 = alloca ptr %t16 = alloca ptr %t17 = alloca ptr %t18 = alloca ptr %t19 = alloca ptr %t20 = alloca i32 %t26 = alloca ptr %t121 = alloca i32 %t137 = alloca i32 %t159 = alloca i32 %t182 = alloca i32 %t210 = alloca i32 %t214 = alloca i32 %t216 = alloca i32 %t258 = alloca i32 %t321 = alloca ptr %t331 = alloca ptr %t360 = alloca ptr %t372 = alloca ptr %t375 = alloca i32 %t423 = alloca ptr %t475 = alloca ptr %t620 = alloca ptr %t690 = alloca i32 %t691 = alloca i32 %t733 = alloca i32 %t734 = alloca i32 %t776 = alloca i32 %t812 = alloca i32 %t813 = alloca i32 %t855 = alloca i32 %t856 = alloca i32 %t899 = alloca i32 %t900 = alloca i32 %t942 = alloca i32 %t943 = alloca i32 %t1029 = alloca i32 %t1030 = alloca i32 %t1057 = alloca ptr store i32 0, ptr %t0 store ptr null, ptr %t1 store ptr null, ptr %t2 store ptr null, ptr %t3 store ptr null, ptr %t4 store ptr null, ptr %t5 store ptr null, ptr %t6 store ptr null, ptr %t7 store ptr null, ptr %t8 store ptr null, ptr %t9 store i32 0, ptr %t10 store ptr null, ptr %t11 store i32 0, ptr %t12 store i32 0, ptr %t13 store ptr null, ptr %t14 store ptr null, ptr %t15 store ptr null, ptr %t16 store ptr null, ptr %t17 store ptr null, ptr %t18 store ptr null, ptr %t19 store i32 0, ptr %t20 br label %wcond0 wcond0: %t21 = call i32 @fn_is_op(ptr @.str414) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %wbody1, label %wend2 wbody1: %t23 = load i32, ptr @g_pi %t24 = add i32 %t23, 1 store i32 %t24, ptr @g_pi %t25 = call ptr @fn_eat_id() store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t26 %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str415) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then3, label %else4 then3: store i32 1, ptr %t0 br label %ifend5 else4: %t30 = load ptr, ptr %t26 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str416) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then6, label %else7 then6: store i32 1, ptr %t10 br label %ifend8 else7: %t33 = load ptr, ptr %t26 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str417) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then9, label %else10 then9: call void @fn_eat_op(ptr @.str418) %t36 = call ptr @fn_eat_id() store ptr %t36, ptr %t9 call void @fn_eat_op(ptr @.str419) br label %ifend11 else10: %t37 = load ptr, ptr %t26 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str420) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then12, label %else13 then12: %t40 = call ptr @fn_parse_queries_anno() store ptr %t40, ptr %t1 br label %ifend14 else13: %t41 = load ptr, ptr %t26 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str421) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then15, label %else16 then15: call void @fn_eat_op(ptr @.str422) %t44 = call ptr @fn_eat_id() store ptr %t44, ptr %t2 call void @fn_eat_op(ptr @.str423) br label %ifend17 else16: %t45 = load ptr, ptr %t26 %t46 = call i32 @lp_str_eq(ptr %t45, ptr @.str424) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then18, label %else19 then18: call void @fn_eat_op(ptr @.str425) %t48 = call ptr @fn_eat_id() store ptr %t48, ptr %t3 %t49 = call i32 @fn_is_op(ptr @.str426) %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then21, label %ifend23 then21: %t51 = load i32, ptr @g_pi %t52 = add i32 %t51, 1 store i32 %t52, ptr @g_pi %t53 = call ptr @fn_eat_id() call void @fn_eat_op(ptr @.str427) %t54 = call ptr @fn_eat_id() store ptr %t54, ptr %t4 br label %ifend23 ifend23: call void @fn_eat_op(ptr @.str428) br label %ifend20 else19: %t55 = load ptr, ptr %t26 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str429) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then24, label %else25 then24: call void @fn_eat_op(ptr @.str430) %t58 = call ptr @fn_eat_id() store ptr %t58, ptr %t5 call void @fn_eat_op(ptr @.str431) br label %ifend26 else25: %t59 = load ptr, ptr %t26 %t60 = call i32 @lp_str_eq(ptr %t59, ptr @.str432) %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %then27, label %else28 then27: call void @fn_eat_op(ptr @.str433) %t62 = call ptr @fn_eat_id() store ptr %t62, ptr %t6 call void @fn_eat_op(ptr @.str434) br label %ifend29 else28: %t63 = load ptr, ptr %t26 %t64 = call i32 @lp_str_eq(ptr %t63, ptr @.str435) %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then30, label %else31 then30: call void @fn_eat_op(ptr @.str436) %t66 = call ptr @fn_eat_id() store ptr %t66, ptr %t7 call void @fn_eat_op(ptr @.str437) br label %ifend32 else31: %t67 = load ptr, ptr %t26 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str438) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then33, label %else34 then33: call void @fn_eat_op(ptr @.str439) %t70 = call ptr @fn_eat_id() store ptr %t70, ptr %t8 call void @fn_eat_op(ptr @.str440) br label %ifend35 else34: %t71 = load ptr, ptr %t26 %t72 = call i32 @lp_str_eq(ptr %t71, ptr @.str441) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then36, label %else37 then36: store ptr @.str442, ptr %t11 br label %ifend38 else37: %t74 = load ptr, ptr %t26 %t75 = call i32 @lp_str_eq(ptr %t74, ptr @.str443) %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then39, label %else40 then39: store ptr @.str444, ptr %t11 br label %ifend41 else40: %t77 = load ptr, ptr %t26 %t78 = call i32 @lp_str_eq(ptr %t77, ptr @.str445) %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then42, label %else43 then42: store i32 1, ptr %t12 br label %ifend44 else43: %t80 = load ptr, ptr %t26 %t81 = call i32 @lp_str_eq(ptr %t80, ptr @.str446) %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then45, label %else46 then45: store i32 1, ptr %t13 br label %ifend47 else46: %t83 = load ptr, ptr %t26 %t84 = call i32 @lp_str_eq(ptr %t83, ptr @.str447) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then48, label %else49 then48: store ptr @.str448, ptr %t14 br label %ifend50 else49: %t86 = load ptr, ptr %t26 %t87 = call i32 @lp_str_eq(ptr %t86, ptr @.str449) %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then51, label %else52 then51: store ptr @.str450, ptr %t14 br label %ifend53 else52: %t89 = load ptr, ptr %t26 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str451) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then54, label %else55 then54: store ptr @.str452, ptr %t15 br label %ifend56 else55: %t92 = load ptr, ptr %t26 %t93 = call i32 @lp_str_eq(ptr %t92, ptr @.str453) %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then57, label %else58 then57: store ptr @.str454, ptr %t15 br label %ifend59 else58: %t95 = load ptr, ptr %t26 %t96 = call i32 @lp_str_eq(ptr %t95, ptr @.str455) %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then60, label %else61 then60: store ptr @.str456, ptr %t16 %t98 = call i32 @fn_is_op(ptr @.str457) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then63, label %ifend65 then63: %t100 = load i32, ptr @g_pi %t101 = add i32 %t100, 1 store i32 %t101, ptr @g_pi %t102 = call ptr @fn_eat_id() store ptr %t102, ptr %t16 call void @fn_eat_op(ptr @.str458) br label %ifend65 ifend65: br label %ifend62 else61: %t103 = load ptr, ptr %t26 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str459) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then66, label %else67 then66: call void @fn_eat_op(ptr @.str460) %t106 = call ptr @fn_eat_id() store ptr %t106, ptr %t17 call void @fn_eat_op(ptr @.str461) %t107 = call ptr @fn_eat_id() store ptr %t107, ptr %t18 call void @fn_eat_op(ptr @.str462) br label %ifend68 else67: %t108 = load ptr, ptr %t26 %t109 = call i32 @lp_str_eq(ptr %t108, ptr @.str463) %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then69, label %else70 then69: call void @fn_eat_op(ptr @.str464) %t111 = call ptr @fn_eat_id() store ptr %t111, ptr %t19 call void @fn_eat_op(ptr @.str465) br label %ifend71 else70: %t112 = load ptr, ptr %t26 %t113 = call i32 @lp_str_eq(ptr %t112, ptr @.str466) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then72, label %else73 then72: store i32 1, ptr %t20 br label %ifend74 else73: %t115 = load ptr, ptr %t26 %t116 = call i32 @lp_str_eq(ptr %t115, ptr @.str467) %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then75, label %else76 then75: call void @fn_eat_op(ptr @.str468) %t118 = call ptr @fn_expr() store ptr %t118, ptr @g_g_clear_color store i32 1, ptr @g_g_has_clear_color call void @fn_eat_op(ptr @.str469) br label %ifend77 else76: %t119 = call i32 @fn_is_op(ptr @.str470) %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then78, label %ifend80 then78: store i32 0, ptr %t121 br label %wcond81 wcond81: %t122 = icmp ne i32 1, 0 br i1 %t122, label %wbody82, label %wend83 wbody82: %t123 = call i32 @fn_is_op(ptr @.str471) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then84, label %ifend86 then84: %t125 = load i32, ptr %t121 %t126 = add i32 %t125, 1 store i32 %t126, ptr %t121 br label %ifend86 ifend86: %t127 = call i32 @fn_is_op(ptr @.str472) %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %then87, label %ifend89 then87: %t129 = load i32, ptr %t121 %t130 = sub i32 %t129, 1 store i32 %t130, ptr %t121 br label %ifend89 ifend89: %t131 = load i32, ptr @g_pi %t132 = add i32 %t131, 1 store i32 %t132, ptr @g_pi %t133 = load i32, ptr %t121 %t134 = icmp eq i32 %t133, 0 %t135 = zext i1 %t134 to i32 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then90, label %ifend92 then90: br label %wend83 ifend92: br label %wcond81 wend83: br label %ifend80 ifend80: br label %ifend77 ifend77: br label %ifend74 ifend74: br label %ifend71 ifend71: br label %ifend68 ifend68: br label %ifend62 ifend62: br label %ifend59 ifend59: br label %ifend56 ifend56: br label %ifend53 ifend53: br label %ifend50 ifend50: br label %ifend47 ifend47: br label %ifend44 ifend44: br label %ifend41 ifend41: br label %ifend38 ifend38: br label %ifend35 ifend35: br label %ifend32 ifend32: br label %ifend29 ifend29: br label %ifend26 ifend26: br label %ifend20 ifend20: br label %ifend17 ifend17: br label %ifend14 ifend14: br label %ifend11 ifend11: br label %ifend8 ifend8: br label %ifend5 ifend5: call void @fn_skipnl() br label %wcond0 wend2: %t138 = call i32 @fn_is_id(ptr @.str473) %t139 = icmp ne i32 %t138, 0 %t140 = zext i1 %t139 to i32 store i32 %t140, ptr %t137 br i1 %t139, label %sc93, label %scend94 sc93: %t141 = load ptr, ptr @g_toks %t142 = load i32, ptr @g_pi %t143 = add i32 %t142, 1 %t144 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t147 = load i32, ptr %t146 %t148 = icmp ult i32 %t143, %t147 br i1 %t148, label %ixok95, label %ixbad96 ixbad96: %t149 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t149, ptr @.fmt_bounds, ptr @.str474, i32 %t143, i32 %t147) call void @exit(i32 1) unreachable ixok95: %t150 = getelementptr inbounds ptr, ptr %t145, i32 %t143 %t151 = load ptr, ptr %t150 %t152 = getelementptr inbounds %Cmp_Tok, ptr %t151, i32 0, i32 1 %t153 = load ptr, ptr %t152 %t154 = call i32 @lp_str_eq(ptr %t153, ptr @.str475) %t155 = icmp ne i32 %t154, 0 %t156 = zext i1 %t155 to i32 store i32 %t156, ptr %t137 br label %scend94 scend94: %t157 = load i32, ptr %t137 %t158 = icmp ne i32 %t157, 0 br i1 %t158, label %then97, label %ifend99 then97: call void @fn_mod_parse_friend() br label %ret ifend99: %t160 = call i32 @fn_is_id(ptr @.str476) %t161 = icmp ne i32 %t160, 0 %t162 = zext i1 %t161 to i32 store i32 %t162, ptr %t159 br i1 %t161, label %sc100, label %scend101 sc100: %t163 = load ptr, ptr @g_toks %t164 = load i32, ptr @g_pi %t165 = add i32 %t164, 1 %t166 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 0 %t167 = load ptr, ptr %t166 %t168 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 1 %t169 = load i32, ptr %t168 %t170 = icmp ult i32 %t165, %t169 br i1 %t170, label %ixok102, label %ixbad103 ixbad103: %t171 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t171, ptr @.fmt_bounds, ptr @.str477, i32 %t165, i32 %t169) call void @exit(i32 1) unreachable ixok102: %t172 = getelementptr inbounds ptr, ptr %t167, i32 %t165 %t173 = load ptr, ptr %t172 %t174 = getelementptr inbounds %Cmp_Tok, ptr %t173, i32 0, i32 0 %t175 = load i32, ptr %t174 %t176 = icmp eq i32 %t175, 0 %t177 = zext i1 %t176 to i32 %t178 = icmp ne i32 %t177, 0 %t179 = zext i1 %t178 to i32 store i32 %t179, ptr %t159 br label %scend101 scend101: %t180 = load i32, ptr %t159 %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %then104, label %ifend106 then104: call void @fn_mod_parse_line() br label %ret ifend106: %t183 = call i32 @fn_is_id(ptr @.str478) %t184 = icmp ne i32 %t183, 0 %t185 = zext i1 %t184 to i32 store i32 %t185, ptr %t182 br i1 %t184, label %sc107, label %scend108 sc107: %t186 = load ptr, ptr @g_toks %t187 = load i32, ptr @g_pi %t188 = add i32 %t187, 1 %t189 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 0 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 1 %t192 = load i32, ptr %t191 %t193 = icmp ult i32 %t188, %t192 br i1 %t193, label %ixok109, label %ixbad110 ixbad110: %t194 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t194, ptr @.fmt_bounds, ptr @.str479, i32 %t188, i32 %t192) call void @exit(i32 1) unreachable ixok109: %t195 = getelementptr inbounds ptr, ptr %t190, i32 %t188 %t196 = load ptr, ptr %t195 %t197 = getelementptr inbounds %Cmp_Tok, ptr %t196, i32 0, i32 0 %t198 = load i32, ptr %t197 %t199 = icmp eq i32 %t198, 0 %t200 = zext i1 %t199 to i32 %t201 = icmp ne i32 %t200, 0 %t202 = zext i1 %t201 to i32 store i32 %t202, ptr %t182 br label %scend108 scend108: %t203 = load i32, ptr %t182 %t204 = icmp ne i32 %t203, 0 br i1 %t204, label %then111, label %ifend113 then111: %t205 = load i32, ptr @g_pi %t206 = add i32 %t205, 1 store i32 %t206, ptr @g_pi %t207 = load ptr, ptr @g_prog %t208 = getelementptr inbounds %LSlice, ptr %t207, i32 0, i32 1 %t209 = load i32, ptr %t208 store i32 %t209, ptr %t210 %t211 = load ptr, ptr @g_g_events %t212 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 1 %t213 = load i32, ptr %t212 store i32 %t213, ptr %t214 call void @fn_parse_one_decl() %t215 = load i32, ptr %t210 store i32 %t215, ptr %t216 br label %wcond114 wcond114: %t217 = load i32, ptr %t216 %t218 = load ptr, ptr @g_prog %t219 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 1 %t220 = load i32, ptr %t219 %t221 = icmp slt i32 %t217, %t220 %t222 = zext i1 %t221 to i32 %t223 = icmp ne i32 %t222, 0 br i1 %t223, label %wbody115, label %wend116 wbody115: %t224 = load ptr, ptr @g_prog %t225 = load i32, ptr %t216 %t226 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 0 %t227 = load ptr, ptr %t226 %t228 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 1 %t229 = load i32, ptr %t228 %t230 = icmp ult i32 %t225, %t229 br i1 %t230, label %ixok117, label %ixbad118 ixbad118: %t231 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t231, ptr @.fmt_bounds, ptr @.str480, i32 %t225, i32 %t229) call void @exit(i32 1) unreachable ixok117: %t232 = getelementptr inbounds ptr, ptr %t227, i32 %t225 %t233 = load ptr, ptr %t232 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 10 store i32 1, ptr %t234 %t235 = load i32, ptr %t216 %t236 = add i32 %t235, 1 store i32 %t236, ptr %t216 br label %wcond114 wend116: %t237 = load i32, ptr %t214 store i32 %t237, ptr %t216 br label %wcond119 wcond119: %t238 = load i32, ptr %t216 %t239 = load ptr, ptr @g_g_events %t240 = getelementptr inbounds %LSlice, ptr %t239, i32 0, i32 1 %t241 = load i32, ptr %t240 %t242 = icmp slt i32 %t238, %t241 %t243 = zext i1 %t242 to i32 %t244 = icmp ne i32 %t243, 0 br i1 %t244, label %wbody120, label %wend121 wbody120: %t245 = load ptr, ptr @g_g_events %t246 = load i32, ptr %t216 %t247 = getelementptr inbounds %LSlice, ptr %t245, i32 0, i32 0 %t248 = load ptr, ptr %t247 %t249 = getelementptr inbounds %LSlice, ptr %t245, i32 0, i32 1 %t250 = load i32, ptr %t249 %t251 = icmp ult i32 %t246, %t250 br i1 %t251, label %ixok122, label %ixbad123 ixbad123: %t252 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t252, ptr @.fmt_bounds, ptr @.str481, i32 %t246, i32 %t250) call void @exit(i32 1) unreachable ixok122: %t253 = getelementptr inbounds ptr, ptr %t248, i32 %t246 %t254 = load ptr, ptr %t253 %t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 10 store i32 1, ptr %t255 %t256 = load i32, ptr %t216 %t257 = add i32 %t256, 1 store i32 %t257, ptr %t216 br label %wcond119 wend121: br label %ret ifend113: %t259 = call i32 @fn_is_id(ptr @.str482) %t260 = icmp ne i32 %t259, 0 %t261 = zext i1 %t260 to i32 store i32 %t261, ptr %t258 br i1 %t260, label %sc124, label %scend125 sc124: %t262 = load ptr, ptr @g_toks %t263 = load i32, ptr @g_pi %t264 = add i32 %t263, 1 %t265 = getelementptr inbounds %LSlice, ptr %t262, i32 0, i32 0 %t266 = load ptr, ptr %t265 %t267 = getelementptr inbounds %LSlice, ptr %t262, i32 0, i32 1 %t268 = load i32, ptr %t267 %t269 = icmp ult i32 %t264, %t268 br i1 %t269, label %ixok126, label %ixbad127 ixbad127: %t270 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t270, ptr @.fmt_bounds, ptr @.str483, i32 %t264, i32 %t268) call void @exit(i32 1) unreachable ixok126: %t271 = getelementptr inbounds ptr, ptr %t266, i32 %t264 %t272 = load ptr, ptr %t271 %t273 = getelementptr inbounds %Cmp_Tok, ptr %t272, i32 0, i32 1 %t274 = load ptr, ptr %t273 %t275 = call i32 @lp_str_eq(ptr %t274, ptr @.str484) %t276 = icmp ne i32 %t275, 0 %t277 = zext i1 %t276 to i32 store i32 %t277, ptr %t258 br label %scend125 scend125: %t278 = load i32, ptr %t258 %t279 = icmp ne i32 %t278, 0 br i1 %t279, label %then128, label %ifend130 then128: %t280 = load i32, ptr @g_pi %t281 = add i32 %t280, 2 store i32 %t281, ptr @g_pi %t282 = load ptr, ptr @g_g_parse_file %t283 = call i32 @fn_is_float_file(ptr %t282) %t284 = icmp eq i32 %t283, 0 %t285 = zext i1 %t284 to i32 %t286 = icmp ne i32 %t285, 0 br i1 %t286, label %then131, label %ifend133 then131: %t287 = load ptr, ptr @g_g_float_files %t288 = load ptr, ptr @g_g_parse_file %t289 = getelementptr inbounds %LSlice, ptr %t287, i32 0, i32 1 %t290 = getelementptr inbounds %LSlice, ptr %t287, i32 0, i32 2 %t291 = getelementptr inbounds %LSlice, ptr %t287, i32 0, i32 0 %t292 = load i32, ptr %t289 %t293 = load i32, ptr %t290 %t294 = icmp sge i32 %t292, %t293 br i1 %t294, label %grow134, label %put135 grow134: %t295 = mul i32 %t293, 2 %t296 = icmp eq i32 %t293, 0 %t297 = select i1 %t296, i32 8, i32 %t295 %t298 = getelementptr ptr, ptr null, i32 1 %t299 = ptrtoint ptr %t298 to i64 %t300 = zext i32 %t297 to i64 %t301 = mul i64 %t300, %t299 %t302 = load ptr, ptr %t291 %t303 = call ptr @realloc(ptr %t302, i64 %t301) store ptr %t303, ptr %t291 store i32 %t297, ptr %t290 br label %put135 put135: %t304 = load ptr, ptr %t291 %t305 = getelementptr inbounds ptr, ptr %t304, i32 %t292 store ptr %t288, ptr %t305 %t306 = add i32 %t292, 1 store i32 %t306, ptr %t289 br label %ifend133 ifend133: br label %ret ifend130: %t307 = call i32 @fn_is_id(ptr @.str485) %t308 = icmp ne i32 %t307, 0 br i1 %t308, label %then136, label %ifend138 then136: %t309 = load i32, ptr @g_pi %t310 = add i32 %t309, 1 store i32 %t310, ptr @g_pi %t311 = load ptr, ptr @g_toks %t312 = load i32, ptr @g_pi %t313 = getelementptr inbounds %LSlice, ptr %t311, i32 0, i32 0 %t314 = load ptr, ptr %t313 %t315 = getelementptr inbounds %LSlice, ptr %t311, i32 0, i32 1 %t316 = load i32, ptr %t315 %t317 = icmp ult i32 %t312, %t316 br i1 %t317, label %ixok139, label %ixbad140 ixbad140: %t318 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t318, ptr @.fmt_bounds, ptr @.str486, i32 %t312, i32 %t316) call void @exit(i32 1) unreachable ixok139: %t319 = getelementptr inbounds ptr, ptr %t314, i32 %t312 %t320 = load ptr, ptr %t319 store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t321 %t323 = getelementptr inbounds %Cmp_Tok, ptr %t322, i32 0, i32 0 %t324 = load i32, ptr %t323 %t325 = icmp ne i32 %t324, 2 %t326 = zext i1 %t325 to i32 %t327 = icmp ne i32 %t326, 0 br i1 %t327, label %then141, label %ifend143 then141: call void @fn_perr(ptr @.str487) br label %ifend143 ifend143: %t328 = load ptr, ptr %t321 %t329 = getelementptr inbounds %Cmp_Tok, ptr %t328, i32 0, i32 1 %t330 = load ptr, ptr %t329 store ptr %t330, ptr %t331 %t332 = load i32, ptr @g_pi %t333 = add i32 %t332, 1 store i32 %t333, ptr @g_pi %t334 = load ptr, ptr %t331 call void @fn_do_import(ptr %t334) br label %ret ifend138: %t335 = call i32 @fn_is_id(ptr @.str488) %t336 = icmp ne i32 %t335, 0 br i1 %t336, label %then144, label %ifend146 then144: %t337 = load ptr, ptr @g_prog %t338 = call ptr @fn_parse_enum() %t339 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 1 %t340 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 2 %t341 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 0 %t342 = load i32, ptr %t339 %t343 = load i32, ptr %t340 %t344 = icmp sge i32 %t342, %t343 br i1 %t344, label %grow147, label %put148 grow147: %t345 = mul i32 %t343, 2 %t346 = icmp eq i32 %t343, 0 %t347 = select i1 %t346, i32 8, i32 %t345 %t348 = getelementptr ptr, ptr null, i32 1 %t349 = ptrtoint ptr %t348 to i64 %t350 = zext i32 %t347 to i64 %t351 = mul i64 %t350, %t349 %t352 = load ptr, ptr %t341 %t353 = call ptr @realloc(ptr %t352, i64 %t351) store ptr %t353, ptr %t341 store i32 %t347, ptr %t340 br label %put148 put148: %t354 = load ptr, ptr %t341 %t355 = getelementptr inbounds ptr, ptr %t354, i32 %t342 store ptr %t338, ptr %t355 %t356 = add i32 %t342, 1 store i32 %t356, ptr %t339 br label %ret ifend146: %t357 = call i32 @fn_is_id(ptr @.str489) %t358 = icmp ne i32 %t357, 0 br i1 %t358, label %then149, label %ifend151 then149: %t359 = call ptr @fn_parse_event() store ptr %t359, ptr %t360 %t361 = load ptr, ptr %t15 %t362 = icmp ne ptr %t361, null %t363 = zext i1 %t362 to i32 %t364 = icmp ne i32 %t363, 0 br i1 %t364, label %then152, label %ifend154 then152: %t365 = load ptr, ptr %t360 %t366 = getelementptr inbounds %Cmp_Node, ptr %t365, i32 0, i32 3 %t367 = load ptr, ptr %t15 store ptr %t367, ptr %t366 br label %ifend154 ifend154: %t368 = load ptr, ptr %t360 call void @fn_register_event(ptr %t368) br label %ret ifend151: %t369 = call i32 @fn_is_id(ptr @.str490) %t370 = icmp ne i32 %t369, 0 br i1 %t370, label %then155, label %ifend157 then155: %t371 = call ptr @fn_parse_component() store ptr %t371, ptr %t372 %t373 = load i32, ptr %t12 %t374 = icmp ne i32 %t373, 0 br i1 %t374, label %then158, label %ifend160 then158: store i32 0, ptr %t375 br label %wcond161 wcond161: %t376 = load i32, ptr %t375 %t377 = load ptr, ptr %t372 %t378 = getelementptr inbounds %Cmp_Node, ptr %t377, i32 0, i32 7 %t379 = load ptr, ptr %t378 %t380 = getelementptr inbounds %LSlice, ptr %t379, i32 0, i32 1 %t381 = load i32, ptr %t380 %t382 = icmp slt i32 %t376, %t381 %t383 = zext i1 %t382 to i32 %t384 = icmp ne i32 %t383, 0 br i1 %t384, label %wbody162, label %wend163 wbody162: %t385 = load ptr, ptr %t372 %t386 = getelementptr inbounds %Cmp_Node, ptr %t385, i32 0, i32 7 %t387 = load ptr, ptr %t386 %t388 = load i32, ptr %t375 %t389 = getelementptr inbounds %LSlice, ptr %t387, i32 0, i32 0 %t390 = load ptr, ptr %t389 %t391 = getelementptr inbounds %LSlice, ptr %t387, i32 0, i32 1 %t392 = load i32, ptr %t391 %t393 = icmp ult i32 %t388, %t392 br i1 %t393, label %ixok164, label %ixbad165 ixbad165: %t394 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t394, ptr @.fmt_bounds, ptr @.str491, i32 %t388, i32 %t392) call void @exit(i32 1) unreachable ixok164: %t395 = getelementptr inbounds ptr, ptr %t390, i32 %t388 %t396 = load ptr, ptr %t395 %t397 = getelementptr inbounds %Cmp_Node, ptr %t396, i32 0, i32 2 store i32 1, ptr %t397 %t398 = load i32, ptr %t375 %t399 = add i32 %t398, 1 store i32 %t399, ptr %t375 br label %wcond161 wend163: br label %ifend160 ifend160: %t400 = load ptr, ptr @g_prog %t401 = load ptr, ptr %t372 %t402 = getelementptr inbounds %LSlice, ptr %t400, i32 0, i32 1 %t403 = getelementptr inbounds %LSlice, ptr %t400, i32 0, i32 2 %t404 = getelementptr inbounds %LSlice, ptr %t400, i32 0, i32 0 %t405 = load i32, ptr %t402 %t406 = load i32, ptr %t403 %t407 = icmp sge i32 %t405, %t406 br i1 %t407, label %grow166, label %put167 grow166: %t408 = mul i32 %t406, 2 %t409 = icmp eq i32 %t406, 0 %t410 = select i1 %t409, i32 8, i32 %t408 %t411 = getelementptr ptr, ptr null, i32 1 %t412 = ptrtoint ptr %t411 to i64 %t413 = zext i32 %t410 to i64 %t414 = mul i64 %t413, %t412 %t415 = load ptr, ptr %t404 %t416 = call ptr @realloc(ptr %t415, i64 %t414) store ptr %t416, ptr %t404 store i32 %t410, ptr %t403 br label %put167 put167: %t417 = load ptr, ptr %t404 %t418 = getelementptr inbounds ptr, ptr %t417, i32 %t405 store ptr %t401, ptr %t418 %t419 = add i32 %t405, 1 store i32 %t419, ptr %t402 br label %ret ifend157: %t420 = call i32 @fn_is_id(ptr @.str492) %t421 = icmp ne i32 %t420, 0 br i1 %t421, label %then168, label %ifend170 then168: %t422 = call ptr @fn_parse_archetype() store ptr %t422, ptr %t423 %t424 = load i32, ptr %t13 %t425 = icmp ne i32 %t424, 0 br i1 %t425, label %then171, label %ifend173 then171: %t426 = load ptr, ptr %t423 %t427 = getelementptr inbounds %Cmp_Node, ptr %t426, i32 0, i32 2 store i32 1, ptr %t427 br label %ifend173 ifend173: %t428 = load ptr, ptr @g_prog %t429 = load ptr, ptr %t423 %t430 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 1 %t431 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 2 %t432 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 0 %t433 = load i32, ptr %t430 %t434 = load i32, ptr %t431 %t435 = icmp sge i32 %t433, %t434 br i1 %t435, label %grow174, label %put175 grow174: %t436 = mul i32 %t434, 2 %t437 = icmp eq i32 %t434, 0 %t438 = select i1 %t437, i32 8, i32 %t436 %t439 = getelementptr ptr, ptr null, i32 1 %t440 = ptrtoint ptr %t439 to i64 %t441 = zext i32 %t438 to i64 %t442 = mul i64 %t441, %t440 %t443 = load ptr, ptr %t432 %t444 = call ptr @realloc(ptr %t443, i64 %t442) store ptr %t444, ptr %t432 store i32 %t438, ptr %t431 br label %put175 put175: %t445 = load ptr, ptr %t432 %t446 = getelementptr inbounds ptr, ptr %t445, i32 %t433 store ptr %t429, ptr %t446 %t447 = add i32 %t433, 1 store i32 %t447, ptr %t430 br label %ret ifend170: %t448 = call i32 @fn_is_id(ptr @.str493) %t449 = icmp ne i32 %t448, 0 br i1 %t449, label %then176, label %ifend178 then176: call void @fn_parse_scene() br label %ret ifend178: %t450 = call i32 @fn_is_id(ptr @.str494) %t451 = icmp ne i32 %t450, 0 br i1 %t451, label %then179, label %ifend181 then179: %t452 = load ptr, ptr @g_prog %t453 = call ptr @fn_parse_prefab() %t454 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 1 %t455 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 2 %t456 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 0 %t457 = load i32, ptr %t454 %t458 = load i32, ptr %t455 %t459 = icmp sge i32 %t457, %t458 br i1 %t459, label %grow182, label %put183 grow182: %t460 = mul i32 %t458, 2 %t461 = icmp eq i32 %t458, 0 %t462 = select i1 %t461, i32 8, i32 %t460 %t463 = getelementptr ptr, ptr null, i32 1 %t464 = ptrtoint ptr %t463 to i64 %t465 = zext i32 %t462 to i64 %t466 = mul i64 %t465, %t464 %t467 = load ptr, ptr %t456 %t468 = call ptr @realloc(ptr %t467, i64 %t466) store ptr %t468, ptr %t456 store i32 %t462, ptr %t455 br label %put183 put183: %t469 = load ptr, ptr %t456 %t470 = getelementptr inbounds ptr, ptr %t469, i32 %t457 store ptr %t453, ptr %t470 %t471 = add i32 %t457, 1 store i32 %t471, ptr %t454 br label %ret ifend181: %t472 = call i32 @fn_is_id(ptr @.str495) %t473 = icmp ne i32 %t472, 0 br i1 %t473, label %then184, label %ifend186 then184: %t474 = call ptr @fn_parse_system() store ptr %t474, ptr %t475 %t476 = load i32, ptr %t20 %t477 = icmp ne i32 %t476, 0 br i1 %t477, label %then187, label %ifend189 then187: %t478 = load ptr, ptr @g_g_det_names %t479 = load ptr, ptr %t475 %t480 = getelementptr inbounds %Cmp_Node, ptr %t479, i32 0, i32 1 %t481 = load ptr, ptr %t480 %t482 = getelementptr inbounds %LSlice, ptr %t478, i32 0, i32 1 %t483 = getelementptr inbounds %LSlice, ptr %t478, i32 0, i32 2 %t484 = getelementptr inbounds %LSlice, ptr %t478, i32 0, i32 0 %t485 = load i32, ptr %t482 %t486 = load i32, ptr %t483 %t487 = icmp sge i32 %t485, %t486 br i1 %t487, label %grow190, label %put191 grow190: %t488 = mul i32 %t486, 2 %t489 = icmp eq i32 %t486, 0 %t490 = select i1 %t489, i32 8, i32 %t488 %t491 = getelementptr ptr, ptr null, i32 1 %t492 = ptrtoint ptr %t491 to i64 %t493 = zext i32 %t490 to i64 %t494 = mul i64 %t493, %t492 %t495 = load ptr, ptr %t484 %t496 = call ptr @realloc(ptr %t495, i64 %t494) store ptr %t496, ptr %t484 store i32 %t490, ptr %t483 br label %put191 put191: %t497 = load ptr, ptr %t484 %t498 = getelementptr inbounds ptr, ptr %t497, i32 %t485 store ptr %t481, ptr %t498 %t499 = add i32 %t485, 1 store i32 %t499, ptr %t482 br label %ifend189 ifend189: %t500 = load ptr, ptr %t14 %t501 = icmp ne ptr %t500, null %t502 = zext i1 %t501 to i32 %t503 = icmp ne i32 %t502, 0 br i1 %t503, label %then192, label %ifend194 then192: %t504 = load ptr, ptr %t14 %t505 = call i32 @lp_str_eq(ptr %t504, ptr @.str496) %t506 = icmp ne i32 %t505, 0 br i1 %t506, label %then195, label %else196 then195: %t507 = load ptr, ptr %t475 %t508 = getelementptr inbounds %Cmp_Node, ptr %t507, i32 0, i32 2 store i32 1, ptr %t508 br label %ifend197 else196: %t509 = load ptr, ptr %t475 %t510 = getelementptr inbounds %Cmp_Node, ptr %t509, i32 0, i32 2 store i32 2, ptr %t510 br label %ifend197 ifend197: br label %ifend194 ifend194: %t511 = load ptr, ptr %t9 %t512 = icmp ne ptr %t511, null %t513 = zext i1 %t512 to i32 %t514 = icmp ne i32 %t513, 0 br i1 %t514, label %then198, label %ifend200 then198: %t515 = load ptr, ptr %t9 %t516 = load ptr, ptr %t475 %t517 = getelementptr inbounds %Cmp_Node, ptr %t516, i32 0, i32 4 %t518 = load ptr, ptr %t517 call void @fn_register_onlisten(ptr %t515, ptr %t518) br label %ret ifend200: %t519 = load ptr, ptr %t2 %t520 = icmp ne ptr %t519, null %t521 = zext i1 %t520 to i32 %t522 = icmp ne i32 %t521, 0 br i1 %t522, label %then201, label %ifend203 then201: %t523 = load ptr, ptr %t2 %t524 = load ptr, ptr %t475 %t525 = getelementptr inbounds %Cmp_Node, ptr %t524, i32 0, i32 4 %t526 = load ptr, ptr %t525 call void @fn_register_onspawn(ptr %t523, ptr %t526) %t527 = load i32, ptr %t10 %t528 = icmp ne i32 %t527, 0 br i1 %t528, label %then204, label %ifend206 then204: %t529 = load ptr, ptr %t2 %t530 = call ptr @lp_str_concat(ptr @.str497, ptr %t529) %t531 = call ptr @lp_str_concat(ptr %t530, ptr @.str498) call void @fn_ensure_event(ptr %t531, i32 0) br label %ifend206 ifend206: br label %ret ifend203: %t532 = load ptr, ptr %t3 %t533 = icmp ne ptr %t532, null %t534 = zext i1 %t533 to i32 %t535 = icmp ne i32 %t534, 0 br i1 %t535, label %then207, label %ifend209 then207: %t536 = load ptr, ptr %t3 %t537 = load ptr, ptr %t475 %t538 = getelementptr inbounds %Cmp_Node, ptr %t537, i32 0, i32 4 %t539 = load ptr, ptr %t538 %t540 = load ptr, ptr %t4 call void @fn_register_ondespawn(ptr %t536, ptr %t539, ptr %t540) %t541 = load i32, ptr %t10 %t542 = icmp ne i32 %t541, 0 br i1 %t542, label %then210, label %ifend212 then210: %t543 = load ptr, ptr %t3 %t544 = call ptr @lp_str_concat(ptr @.str499, ptr %t543) %t545 = call ptr @lp_str_concat(ptr %t544, ptr @.str500) call void @fn_ensure_event(ptr %t545, i32 1) br label %ifend212 ifend212: br label %ret ifend209: %t546 = load ptr, ptr %t5 %t547 = icmp ne ptr %t546, null %t548 = zext i1 %t547 to i32 %t549 = icmp ne i32 %t548, 0 br i1 %t549, label %then213, label %ifend215 then213: %t550 = load ptr, ptr %t5 %t551 = load ptr, ptr %t475 %t552 = getelementptr inbounds %Cmp_Node, ptr %t551, i32 0, i32 4 %t553 = load ptr, ptr %t552 call void @fn_register_onattach(ptr %t550, ptr %t553) %t554 = load i32, ptr %t10 %t555 = icmp ne i32 %t554, 0 br i1 %t555, label %then216, label %ifend218 then216: %t556 = load ptr, ptr %t5 %t557 = call ptr @lp_str_concat(ptr @.str501, ptr %t556) %t558 = call ptr @lp_str_concat(ptr %t557, ptr @.str502) call void @fn_ensure_event(ptr %t558, i32 0) br label %ifend218 ifend218: br label %ret ifend215: %t559 = load ptr, ptr %t6 %t560 = icmp ne ptr %t559, null %t561 = zext i1 %t560 to i32 %t562 = icmp ne i32 %t561, 0 br i1 %t562, label %then219, label %ifend221 then219: %t563 = load ptr, ptr %t6 %t564 = load ptr, ptr %t475 %t565 = getelementptr inbounds %Cmp_Node, ptr %t564, i32 0, i32 4 %t566 = load ptr, ptr %t565 call void @fn_register_ondetach(ptr %t563, ptr %t566) %t567 = load i32, ptr %t10 %t568 = icmp ne i32 %t567, 0 br i1 %t568, label %then222, label %ifend224 then222: %t569 = load ptr, ptr %t6 %t570 = call ptr @lp_str_concat(ptr @.str503, ptr %t569) %t571 = call ptr @lp_str_concat(ptr %t570, ptr @.str504) call void @fn_ensure_event(ptr %t571, i32 0) br label %ifend224 ifend224: br label %ret ifend221: %t572 = load ptr, ptr %t7 %t573 = icmp ne ptr %t572, null %t574 = zext i1 %t573 to i32 %t575 = icmp ne i32 %t574, 0 br i1 %t575, label %then225, label %ifend227 then225: %t576 = load ptr, ptr %t7 %t577 = load ptr, ptr %t475 %t578 = getelementptr inbounds %Cmp_Node, ptr %t577, i32 0, i32 4 %t579 = load ptr, ptr %t578 call void @fn_register_onenable(ptr %t576, ptr %t579) %t580 = load i32, ptr %t10 %t581 = icmp ne i32 %t580, 0 br i1 %t581, label %then228, label %ifend230 then228: %t582 = load ptr, ptr %t7 %t583 = call ptr @lp_str_concat(ptr @.str505, ptr %t582) %t584 = call ptr @lp_str_concat(ptr %t583, ptr @.str506) call void @fn_ensure_event(ptr %t584, i32 0) br label %ifend230 ifend230: br label %ret ifend227: %t585 = load ptr, ptr %t8 %t586 = icmp ne ptr %t585, null %t587 = zext i1 %t586 to i32 %t588 = icmp ne i32 %t587, 0 br i1 %t588, label %then231, label %ifend233 then231: %t589 = load ptr, ptr %t8 %t590 = load ptr, ptr %t475 %t591 = getelementptr inbounds %Cmp_Node, ptr %t590, i32 0, i32 4 %t592 = load ptr, ptr %t591 call void @fn_register_ondisable(ptr %t589, ptr %t592) %t593 = load i32, ptr %t10 %t594 = icmp ne i32 %t593, 0 br i1 %t594, label %then234, label %ifend236 then234: %t595 = load ptr, ptr %t8 %t596 = call ptr @lp_str_concat(ptr @.str507, ptr %t595) %t597 = call ptr @lp_str_concat(ptr %t596, ptr @.str508) call void @fn_ensure_event(ptr %t597, i32 0) br label %ifend236 ifend236: br label %ret ifend233: %t598 = load ptr, ptr %t11 %t599 = icmp ne ptr %t598, null %t600 = zext i1 %t599 to i32 %t601 = icmp ne i32 %t600, 0 br i1 %t601, label %then237, label %ifend239 then237: %t602 = load ptr, ptr %t475 %t603 = getelementptr inbounds %Cmp_Node, ptr %t602, i32 0, i32 3 %t604 = load ptr, ptr %t11 store ptr %t604, ptr %t603 %t605 = load i32, ptr %t10 %t606 = icmp ne i32 %t605, 0 br i1 %t606, label %then240, label %ifend242 then240: %t607 = load ptr, ptr %t11 %t608 = call i32 @lp_str_eq(ptr %t607, ptr @.str509) %t609 = icmp ne i32 %t608, 0 br i1 %t609, label %then243, label %else244 then243: call void @fn_ensure_event_empty(ptr @.str510) br label %ifend245 else244: call void @fn_ensure_event_empty(ptr @.str511) br label %ifend245 ifend245: br label %ifend242 ifend242: br label %ifend239 ifend239: %t610 = load ptr, ptr %t1 %t611 = icmp ne ptr %t610, null %t612 = zext i1 %t611 to i32 %t613 = icmp ne i32 %t612, 0 br i1 %t613, label %then246, label %ifend248 then246: %t614 = load ptr, ptr %t1 %t615 = getelementptr inbounds %Cmp_Node, ptr %t614, i32 0, i32 4 %t616 = load ptr, ptr %t475 %t617 = getelementptr inbounds %Cmp_Node, ptr %t616, i32 0, i32 4 %t618 = load ptr, ptr %t617 store ptr %t618, ptr %t615 %t619 = call ptr @fn_node(i32 7) store ptr %t619, ptr %t620 %t621 = load ptr, ptr %t620 %t622 = getelementptr inbounds %Cmp_Node, ptr %t621, i32 0, i32 7 %t623 = load ptr, ptr %t622 %t624 = load ptr, ptr %t1 %t625 = getelementptr inbounds %LSlice, ptr %t623, i32 0, i32 1 %t626 = getelementptr inbounds %LSlice, ptr %t623, i32 0, i32 2 %t627 = getelementptr inbounds %LSlice, ptr %t623, i32 0, i32 0 %t628 = load i32, ptr %t625 %t629 = load i32, ptr %t626 %t630 = icmp sge i32 %t628, %t629 br i1 %t630, label %grow249, label %put250 grow249: %t631 = mul i32 %t629, 2 %t632 = icmp eq i32 %t629, 0 %t633 = select i1 %t632, i32 8, i32 %t631 %t634 = getelementptr ptr, ptr null, i32 1 %t635 = ptrtoint ptr %t634 to i64 %t636 = zext i32 %t633 to i64 %t637 = mul i64 %t636, %t635 %t638 = load ptr, ptr %t627 %t639 = call ptr @realloc(ptr %t638, i64 %t637) store ptr %t639, ptr %t627 store i32 %t633, ptr %t626 br label %put250 put250: %t640 = load ptr, ptr %t627 %t641 = getelementptr inbounds ptr, ptr %t640, i32 %t628 store ptr %t624, ptr %t641 %t642 = add i32 %t628, 1 store i32 %t642, ptr %t625 %t643 = load ptr, ptr %t475 %t644 = getelementptr inbounds %Cmp_Node, ptr %t643, i32 0, i32 4 %t645 = load ptr, ptr %t620 store ptr %t645, ptr %t644 br label %ifend248 ifend248: %t646 = load ptr, ptr @g_prog %t647 = load ptr, ptr %t475 %t648 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 1 %t649 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 2 %t650 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 0 %t651 = load i32, ptr %t648 %t652 = load i32, ptr %t649 %t653 = icmp sge i32 %t651, %t652 br i1 %t653, label %grow251, label %put252 grow251: %t654 = mul i32 %t652, 2 %t655 = icmp eq i32 %t652, 0 %t656 = select i1 %t655, i32 8, i32 %t654 %t657 = getelementptr ptr, ptr null, i32 1 %t658 = ptrtoint ptr %t657 to i64 %t659 = zext i32 %t656 to i64 %t660 = mul i64 %t659, %t658 %t661 = load ptr, ptr %t650 %t662 = call ptr @realloc(ptr %t661, i64 %t660) store ptr %t662, ptr %t650 store i32 %t656, ptr %t649 br label %put252 put252: %t663 = load ptr, ptr %t650 %t664 = getelementptr inbounds ptr, ptr %t663, i32 %t651 store ptr %t647, ptr %t664 %t665 = add i32 %t651, 1 store i32 %t665, ptr %t648 br label %ret ifend186: %t666 = call i32 @fn_is_id(ptr @.str512) %t667 = icmp ne i32 %t666, 0 br i1 %t667, label %then253, label %ifend255 then253: %t668 = load ptr, ptr @g_prog %t669 = call ptr @fn_parse_ui() %t670 = getelementptr inbounds %LSlice, ptr %t668, i32 0, i32 1 %t671 = getelementptr inbounds %LSlice, ptr %t668, i32 0, i32 2 %t672 = getelementptr inbounds %LSlice, ptr %t668, i32 0, i32 0 %t673 = load i32, ptr %t670 %t674 = load i32, ptr %t671 %t675 = icmp sge i32 %t673, %t674 br i1 %t675, label %grow256, label %put257 grow256: %t676 = mul i32 %t674, 2 %t677 = icmp eq i32 %t674, 0 %t678 = select i1 %t677, i32 8, i32 %t676 %t679 = getelementptr ptr, ptr null, i32 1 %t680 = ptrtoint ptr %t679 to i64 %t681 = zext i32 %t678 to i64 %t682 = mul i64 %t681, %t680 %t683 = load ptr, ptr %t672 %t684 = call ptr @realloc(ptr %t683, i64 %t682) store ptr %t684, ptr %t672 store i32 %t678, ptr %t671 br label %put257 put257: %t685 = load ptr, ptr %t672 %t686 = getelementptr inbounds ptr, ptr %t685, i32 %t673 store ptr %t669, ptr %t686 %t687 = add i32 %t673, 1 store i32 %t687, ptr %t670 br label %ret ifend255: %t688 = call i32 @fn_is_id(ptr @.str513) %t689 = icmp ne i32 %t688, 0 br i1 %t689, label %then258, label %ifend260 then258: call void @fn_parse_namespace() br label %ret ifend260: %t692 = call i32 @fn_is_id(ptr @.str514) %t693 = icmp ne i32 %t692, 0 %t694 = zext i1 %t693 to i32 store i32 %t694, ptr %t691 br i1 %t693, label %sc261, label %scend262 sc261: %t695 = load ptr, ptr @g_toks %t696 = load i32, ptr @g_pi %t697 = add i32 %t696, 1 %t698 = getelementptr inbounds %LSlice, ptr %t695, i32 0, i32 0 %t699 = load ptr, ptr %t698 %t700 = getelementptr inbounds %LSlice, ptr %t695, i32 0, i32 1 %t701 = load i32, ptr %t700 %t702 = icmp ult i32 %t697, %t701 br i1 %t702, label %ixok263, label %ixbad264 ixbad264: %t703 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t703, ptr @.fmt_bounds, ptr @.str515, i32 %t697, i32 %t701) call void @exit(i32 1) unreachable ixok263: %t704 = getelementptr inbounds ptr, ptr %t699, i32 %t697 %t705 = load ptr, ptr %t704 %t706 = getelementptr inbounds %Cmp_Tok, ptr %t705, i32 0, i32 0 %t707 = load i32, ptr %t706 %t708 = icmp eq i32 %t707, 0 %t709 = zext i1 %t708 to i32 %t710 = icmp ne i32 %t709, 0 %t711 = zext i1 %t710 to i32 store i32 %t711, ptr %t691 br label %scend262 scend262: %t712 = load i32, ptr %t691 %t713 = icmp ne i32 %t712, 0 %t714 = zext i1 %t713 to i32 store i32 %t714, ptr %t690 br i1 %t713, label %sc265, label %scend266 sc265: %t715 = load ptr, ptr @g_toks %t716 = load i32, ptr @g_pi %t717 = add i32 %t716, 2 %t718 = getelementptr inbounds %LSlice, ptr %t715, i32 0, i32 0 %t719 = load ptr, ptr %t718 %t720 = getelementptr inbounds %LSlice, ptr %t715, i32 0, i32 1 %t721 = load i32, ptr %t720 %t722 = icmp ult i32 %t717, %t721 br i1 %t722, label %ixok267, label %ixbad268 ixbad268: %t723 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t723, ptr @.fmt_bounds, ptr @.str516, i32 %t717, i32 %t721) call void @exit(i32 1) unreachable ixok267: %t724 = getelementptr inbounds ptr, ptr %t719, i32 %t717 %t725 = load ptr, ptr %t724 %t726 = getelementptr inbounds %Cmp_Tok, ptr %t725, i32 0, i32 1 %t727 = load ptr, ptr %t726 %t728 = call i32 @lp_str_eq(ptr %t727, ptr @.str517) %t729 = icmp ne i32 %t728, 0 %t730 = zext i1 %t729 to i32 store i32 %t730, ptr %t690 br label %scend266 scend266: %t731 = load i32, ptr %t690 %t732 = icmp ne i32 %t731, 0 br i1 %t732, label %then269, label %ifend271 then269: call void @fn_parse_port() br label %ret ifend271: %t735 = call i32 @fn_is_id(ptr @.str518) %t736 = icmp ne i32 %t735, 0 %t737 = zext i1 %t736 to i32 store i32 %t737, ptr %t734 br i1 %t736, label %sc272, label %scend273 sc272: %t738 = load ptr, ptr @g_toks %t739 = load i32, ptr @g_pi %t740 = add i32 %t739, 1 %t741 = getelementptr inbounds %LSlice, ptr %t738, i32 0, i32 0 %t742 = load ptr, ptr %t741 %t743 = getelementptr inbounds %LSlice, ptr %t738, i32 0, i32 1 %t744 = load i32, ptr %t743 %t745 = icmp ult i32 %t740, %t744 br i1 %t745, label %ixok274, label %ixbad275 ixbad275: %t746 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t746, ptr @.fmt_bounds, ptr @.str519, i32 %t740, i32 %t744) call void @exit(i32 1) unreachable ixok274: %t747 = getelementptr inbounds ptr, ptr %t742, i32 %t740 %t748 = load ptr, ptr %t747 %t749 = getelementptr inbounds %Cmp_Tok, ptr %t748, i32 0, i32 0 %t750 = load i32, ptr %t749 %t751 = icmp eq i32 %t750, 0 %t752 = zext i1 %t751 to i32 %t753 = icmp ne i32 %t752, 0 %t754 = zext i1 %t753 to i32 store i32 %t754, ptr %t734 br label %scend273 scend273: %t755 = load i32, ptr %t734 %t756 = icmp ne i32 %t755, 0 %t757 = zext i1 %t756 to i32 store i32 %t757, ptr %t733 br i1 %t756, label %sc276, label %scend277 sc276: %t758 = load ptr, ptr @g_toks %t759 = load i32, ptr @g_pi %t760 = add i32 %t759, 2 %t761 = getelementptr inbounds %LSlice, ptr %t758, i32 0, i32 0 %t762 = load ptr, ptr %t761 %t763 = getelementptr inbounds %LSlice, ptr %t758, i32 0, i32 1 %t764 = load i32, ptr %t763 %t765 = icmp ult i32 %t760, %t764 br i1 %t765, label %ixok278, label %ixbad279 ixbad279: %t766 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t766, ptr @.fmt_bounds, ptr @.str520, i32 %t760, i32 %t764) call void @exit(i32 1) unreachable ixok278: %t767 = getelementptr inbounds ptr, ptr %t762, i32 %t760 %t768 = load ptr, ptr %t767 %t769 = getelementptr inbounds %Cmp_Tok, ptr %t768, i32 0, i32 1 %t770 = load ptr, ptr %t769 %t771 = call i32 @lp_str_eq(ptr %t770, ptr @.str521) %t772 = icmp ne i32 %t771, 0 %t773 = zext i1 %t772 to i32 store i32 %t773, ptr %t733 br label %scend277 scend277: %t774 = load i32, ptr %t733 %t775 = icmp ne i32 %t774, 0 br i1 %t775, label %then280, label %ifend282 then280: call void @fn_parse_bind() br label %ret ifend282: %t777 = call i32 @fn_is_id(ptr @.str522) %t778 = icmp ne i32 %t777, 0 %t779 = zext i1 %t778 to i32 store i32 %t779, ptr %t776 br i1 %t778, label %sc283, label %scend284 sc283: %t780 = load ptr, ptr @g_toks %t781 = load i32, ptr @g_pi %t782 = add i32 %t781, 1 %t783 = getelementptr inbounds %LSlice, ptr %t780, i32 0, i32 0 %t784 = load ptr, ptr %t783 %t785 = getelementptr inbounds %LSlice, ptr %t780, i32 0, i32 1 %t786 = load i32, ptr %t785 %t787 = icmp ult i32 %t782, %t786 br i1 %t787, label %ixok285, label %ixbad286 ixbad286: %t788 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t788, ptr @.fmt_bounds, ptr @.str523, i32 %t782, i32 %t786) call void @exit(i32 1) unreachable ixok285: %t789 = getelementptr inbounds ptr, ptr %t784, i32 %t782 %t790 = load ptr, ptr %t789 %t791 = getelementptr inbounds %Cmp_Tok, ptr %t790, i32 0, i32 1 %t792 = load ptr, ptr %t791 %t793 = call i32 @lp_str_eq(ptr %t792, ptr @.str524) %t794 = icmp ne i32 %t793, 0 %t795 = zext i1 %t794 to i32 store i32 %t795, ptr %t776 br label %scend284 scend284: %t796 = load i32, ptr %t776 %t797 = icmp ne i32 %t796, 0 br i1 %t797, label %then287, label %ifend289 then287: %t798 = load i32, ptr @g_pi %t799 = add i32 %t798, 1 store i32 %t799, ptr @g_pi call void @fn_parse_registry() %t800 = load ptr, ptr @g_g_rg_open %t801 = load ptr, ptr @g_g_rg_open %t802 = getelementptr inbounds %LSlice, ptr %t801, i32 0, i32 1 %t803 = load i32, ptr %t802 %t804 = sub i32 %t803, 1 %t805 = getelementptr inbounds %LSlice, ptr %t800, i32 0, i32 0 %t806 = load ptr, ptr %t805 %t807 = getelementptr inbounds %LSlice, ptr %t800, i32 0, i32 1 %t808 = load i32, ptr %t807 %t809 = icmp ult i32 %t804, %t808 br i1 %t809, label %ixok290, label %ixbad291 ixbad291: %t810 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t810, ptr @.fmt_bounds, ptr @.str525, i32 %t804, i32 %t808) call void @exit(i32 1) unreachable ixok290: %t811 = getelementptr inbounds i32, ptr %t806, i32 %t804 store i32 1, ptr %t811 br label %ret ifend289: %t814 = call i32 @fn_is_id(ptr @.str526) %t815 = icmp ne i32 %t814, 0 %t816 = zext i1 %t815 to i32 store i32 %t816, ptr %t813 br i1 %t815, label %sc292, label %scend293 sc292: %t817 = load ptr, ptr @g_toks %t818 = load i32, ptr @g_pi %t819 = add i32 %t818, 1 %t820 = getelementptr inbounds %LSlice, ptr %t817, i32 0, i32 0 %t821 = load ptr, ptr %t820 %t822 = getelementptr inbounds %LSlice, ptr %t817, i32 0, i32 1 %t823 = load i32, ptr %t822 %t824 = icmp ult i32 %t819, %t823 br i1 %t824, label %ixok294, label %ixbad295 ixbad295: %t825 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t825, ptr @.fmt_bounds, ptr @.str527, i32 %t819, i32 %t823) call void @exit(i32 1) unreachable ixok294: %t826 = getelementptr inbounds ptr, ptr %t821, i32 %t819 %t827 = load ptr, ptr %t826 %t828 = getelementptr inbounds %Cmp_Tok, ptr %t827, i32 0, i32 0 %t829 = load i32, ptr %t828 %t830 = icmp eq i32 %t829, 0 %t831 = zext i1 %t830 to i32 %t832 = icmp ne i32 %t831, 0 %t833 = zext i1 %t832 to i32 store i32 %t833, ptr %t813 br label %scend293 scend293: %t834 = load i32, ptr %t813 %t835 = icmp ne i32 %t834, 0 %t836 = zext i1 %t835 to i32 store i32 %t836, ptr %t812 br i1 %t835, label %sc296, label %scend297 sc296: %t837 = load ptr, ptr @g_toks %t838 = load i32, ptr @g_pi %t839 = add i32 %t838, 2 %t840 = getelementptr inbounds %LSlice, ptr %t837, i32 0, i32 0 %t841 = load ptr, ptr %t840 %t842 = getelementptr inbounds %LSlice, ptr %t837, i32 0, i32 1 %t843 = load i32, ptr %t842 %t844 = icmp ult i32 %t839, %t843 br i1 %t844, label %ixok298, label %ixbad299 ixbad299: %t845 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t845, ptr @.fmt_bounds, ptr @.str528, i32 %t839, i32 %t843) call void @exit(i32 1) unreachable ixok298: %t846 = getelementptr inbounds ptr, ptr %t841, i32 %t839 %t847 = load ptr, ptr %t846 %t848 = getelementptr inbounds %Cmp_Tok, ptr %t847, i32 0, i32 1 %t849 = load ptr, ptr %t848 %t850 = call i32 @lp_str_eq(ptr %t849, ptr @.str529) %t851 = icmp ne i32 %t850, 0 %t852 = zext i1 %t851 to i32 store i32 %t852, ptr %t812 br label %scend297 scend297: %t853 = load i32, ptr %t812 %t854 = icmp ne i32 %t853, 0 br i1 %t854, label %then300, label %ifend302 then300: call void @fn_parse_registry() br label %ret ifend302: %t857 = call i32 @fn_is_id(ptr @.str530) %t858 = icmp ne i32 %t857, 0 %t859 = zext i1 %t858 to i32 store i32 %t859, ptr %t856 br i1 %t858, label %sc303, label %scend304 sc303: %t860 = load ptr, ptr @g_toks %t861 = load i32, ptr @g_pi %t862 = add i32 %t861, 1 %t863 = getelementptr inbounds %LSlice, ptr %t860, i32 0, i32 0 %t864 = load ptr, ptr %t863 %t865 = getelementptr inbounds %LSlice, ptr %t860, i32 0, i32 1 %t866 = load i32, ptr %t865 %t867 = icmp ult i32 %t862, %t866 br i1 %t867, label %ixok305, label %ixbad306 ixbad306: %t868 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t868, ptr @.fmt_bounds, ptr @.str531, i32 %t862, i32 %t866) call void @exit(i32 1) unreachable ixok305: %t869 = getelementptr inbounds ptr, ptr %t864, i32 %t862 %t870 = load ptr, ptr %t869 %t871 = getelementptr inbounds %Cmp_Tok, ptr %t870, i32 0, i32 0 %t872 = load i32, ptr %t871 %t873 = icmp eq i32 %t872, 0 %t874 = zext i1 %t873 to i32 %t875 = icmp ne i32 %t874, 0 %t876 = zext i1 %t875 to i32 store i32 %t876, ptr %t856 br label %scend304 scend304: %t877 = load i32, ptr %t856 %t878 = icmp ne i32 %t877, 0 %t879 = zext i1 %t878 to i32 store i32 %t879, ptr %t855 br i1 %t878, label %sc307, label %scend308 sc307: %t880 = load ptr, ptr @g_toks %t881 = load i32, ptr @g_pi %t882 = add i32 %t881, 2 %t883 = getelementptr inbounds %LSlice, ptr %t880, i32 0, i32 0 %t884 = load ptr, ptr %t883 %t885 = getelementptr inbounds %LSlice, ptr %t880, i32 0, i32 1 %t886 = load i32, ptr %t885 %t887 = icmp ult i32 %t882, %t886 br i1 %t887, label %ixok309, label %ixbad310 ixbad310: %t888 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t888, ptr @.fmt_bounds, ptr @.str532, i32 %t882, i32 %t886) call void @exit(i32 1) unreachable ixok309: %t889 = getelementptr inbounds ptr, ptr %t884, i32 %t882 %t890 = load ptr, ptr %t889 %t891 = getelementptr inbounds %Cmp_Tok, ptr %t890, i32 0, i32 0 %t892 = load i32, ptr %t891 %t893 = icmp eq i32 %t892, 0 %t894 = zext i1 %t893 to i32 %t895 = icmp ne i32 %t894, 0 %t896 = zext i1 %t895 to i32 store i32 %t896, ptr %t855 br label %scend308 scend308: %t897 = load i32, ptr %t855 %t898 = icmp ne i32 %t897, 0 br i1 %t898, label %then311, label %ifend313 then311: call void @fn_parse_def() br label %ret ifend313: %t901 = call i32 @fn_is_id(ptr @.str533) %t902 = icmp ne i32 %t901, 0 %t903 = zext i1 %t902 to i32 store i32 %t903, ptr %t900 br i1 %t902, label %sc314, label %scend315 sc314: %t904 = load ptr, ptr @g_toks %t905 = load i32, ptr @g_pi %t906 = add i32 %t905, 1 %t907 = getelementptr inbounds %LSlice, ptr %t904, i32 0, i32 0 %t908 = load ptr, ptr %t907 %t909 = getelementptr inbounds %LSlice, ptr %t904, i32 0, i32 1 %t910 = load i32, ptr %t909 %t911 = icmp ult i32 %t906, %t910 br i1 %t911, label %ixok316, label %ixbad317 ixbad317: %t912 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t912, ptr @.fmt_bounds, ptr @.str534, i32 %t906, i32 %t910) call void @exit(i32 1) unreachable ixok316: %t913 = getelementptr inbounds ptr, ptr %t908, i32 %t906 %t914 = load ptr, ptr %t913 %t915 = getelementptr inbounds %Cmp_Tok, ptr %t914, i32 0, i32 0 %t916 = load i32, ptr %t915 %t917 = icmp eq i32 %t916, 0 %t918 = zext i1 %t917 to i32 %t919 = icmp ne i32 %t918, 0 %t920 = zext i1 %t919 to i32 store i32 %t920, ptr %t900 br label %scend315 scend315: %t921 = load i32, ptr %t900 %t922 = icmp ne i32 %t921, 0 %t923 = zext i1 %t922 to i32 store i32 %t923, ptr %t899 br i1 %t922, label %sc318, label %scend319 sc318: %t924 = load ptr, ptr @g_toks %t925 = load i32, ptr @g_pi %t926 = add i32 %t925, 2 %t927 = getelementptr inbounds %LSlice, ptr %t924, i32 0, i32 0 %t928 = load ptr, ptr %t927 %t929 = getelementptr inbounds %LSlice, ptr %t924, i32 0, i32 1 %t930 = load i32, ptr %t929 %t931 = icmp ult i32 %t926, %t930 br i1 %t931, label %ixok320, label %ixbad321 ixbad321: %t932 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t932, ptr @.fmt_bounds, ptr @.str535, i32 %t926, i32 %t930) call void @exit(i32 1) unreachable ixok320: %t933 = getelementptr inbounds ptr, ptr %t928, i32 %t926 %t934 = load ptr, ptr %t933 %t935 = getelementptr inbounds %Cmp_Tok, ptr %t934, i32 0, i32 1 %t936 = load ptr, ptr %t935 %t937 = call i32 @lp_str_eq(ptr %t936, ptr @.str536) %t938 = icmp ne i32 %t937, 0 %t939 = zext i1 %t938 to i32 store i32 %t939, ptr %t899 br label %scend319 scend319: %t940 = load i32, ptr %t899 %t941 = icmp ne i32 %t940, 0 br i1 %t941, label %then322, label %ifend324 then322: call void @fn_parse_view() br label %ret ifend324: %t944 = call i32 @fn_is_id(ptr @.str537) %t945 = icmp ne i32 %t944, 0 %t946 = zext i1 %t945 to i32 store i32 %t946, ptr %t943 br i1 %t945, label %sc325, label %scend326 sc325: %t947 = load ptr, ptr @g_toks %t948 = load i32, ptr @g_pi %t949 = add i32 %t948, 1 %t950 = getelementptr inbounds %LSlice, ptr %t947, i32 0, i32 0 %t951 = load ptr, ptr %t950 %t952 = getelementptr inbounds %LSlice, ptr %t947, i32 0, i32 1 %t953 = load i32, ptr %t952 %t954 = icmp ult i32 %t949, %t953 br i1 %t954, label %ixok327, label %ixbad328 ixbad328: %t955 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t955, ptr @.fmt_bounds, ptr @.str538, i32 %t949, i32 %t953) call void @exit(i32 1) unreachable ixok327: %t956 = getelementptr inbounds ptr, ptr %t951, i32 %t949 %t957 = load ptr, ptr %t956 %t958 = getelementptr inbounds %Cmp_Tok, ptr %t957, i32 0, i32 0 %t959 = load i32, ptr %t958 %t960 = icmp eq i32 %t959, 0 %t961 = zext i1 %t960 to i32 %t962 = icmp ne i32 %t961, 0 %t963 = zext i1 %t962 to i32 store i32 %t963, ptr %t943 br label %scend326 scend326: %t964 = load i32, ptr %t943 %t965 = icmp ne i32 %t964, 0 %t966 = zext i1 %t965 to i32 store i32 %t966, ptr %t942 br i1 %t965, label %sc329, label %scend330 sc329: %t967 = load ptr, ptr @g_toks %t968 = load i32, ptr @g_pi %t969 = add i32 %t968, 2 %t970 = getelementptr inbounds %LSlice, ptr %t967, i32 0, i32 0 %t971 = load ptr, ptr %t970 %t972 = getelementptr inbounds %LSlice, ptr %t967, i32 0, i32 1 %t973 = load i32, ptr %t972 %t974 = icmp ult i32 %t969, %t973 br i1 %t974, label %ixok331, label %ixbad332 ixbad332: %t975 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t975, ptr @.fmt_bounds, ptr @.str539, i32 %t969, i32 %t973) call void @exit(i32 1) unreachable ixok331: %t976 = getelementptr inbounds ptr, ptr %t971, i32 %t969 %t977 = load ptr, ptr %t976 %t978 = getelementptr inbounds %Cmp_Tok, ptr %t977, i32 0, i32 1 %t979 = load ptr, ptr %t978 %t980 = call i32 @lp_str_eq(ptr %t979, ptr @.str540) %t981 = icmp ne i32 %t980, 0 %t982 = zext i1 %t981 to i32 store i32 %t982, ptr %t942 br label %scend330 scend330: %t983 = load i32, ptr %t942 %t984 = icmp ne i32 %t983, 0 br i1 %t984, label %then333, label %ifend335 then333: call void @fn_parse_ui_component() br label %ret ifend335: %t985 = call i32 @fn_is_id(ptr @.str541) %t986 = icmp ne i32 %t985, 0 br i1 %t986, label %then336, label %ifend338 then336: %t987 = load ptr, ptr @g_prog %t988 = call ptr @fn_parse_var() %t989 = getelementptr inbounds %LSlice, ptr %t987, i32 0, i32 1 %t990 = getelementptr inbounds %LSlice, ptr %t987, i32 0, i32 2 %t991 = getelementptr inbounds %LSlice, ptr %t987, i32 0, i32 0 %t992 = load i32, ptr %t989 %t993 = load i32, ptr %t990 %t994 = icmp sge i32 %t992, %t993 br i1 %t994, label %grow339, label %put340 grow339: %t995 = mul i32 %t993, 2 %t996 = icmp eq i32 %t993, 0 %t997 = select i1 %t996, i32 8, i32 %t995 %t998 = getelementptr ptr, ptr null, i32 1 %t999 = ptrtoint ptr %t998 to i64 %t1000 = zext i32 %t997 to i64 %t1001 = mul i64 %t1000, %t999 %t1002 = load ptr, ptr %t991 %t1003 = call ptr @realloc(ptr %t1002, i64 %t1001) store ptr %t1003, ptr %t991 store i32 %t997, ptr %t990 br label %put340 put340: %t1004 = load ptr, ptr %t991 %t1005 = getelementptr inbounds ptr, ptr %t1004, i32 %t992 store ptr %t988, ptr %t1005 %t1006 = add i32 %t992, 1 store i32 %t1006, ptr %t989 br label %ret ifend338: %t1007 = call i32 @fn_is_id(ptr @.str542) %t1008 = icmp ne i32 %t1007, 0 br i1 %t1008, label %then341, label %ifend343 then341: %t1009 = load ptr, ptr @g_prog %t1010 = call ptr @fn_parse_const() %t1011 = getelementptr inbounds %LSlice, ptr %t1009, i32 0, i32 1 %t1012 = getelementptr inbounds %LSlice, ptr %t1009, i32 0, i32 2 %t1013 = getelementptr inbounds %LSlice, ptr %t1009, i32 0, i32 0 %t1014 = load i32, ptr %t1011 %t1015 = load i32, ptr %t1012 %t1016 = icmp sge i32 %t1014, %t1015 br i1 %t1016, label %grow344, label %put345 grow344: %t1017 = mul i32 %t1015, 2 %t1018 = icmp eq i32 %t1015, 0 %t1019 = select i1 %t1018, i32 8, i32 %t1017 %t1020 = getelementptr ptr, ptr null, i32 1 %t1021 = ptrtoint ptr %t1020 to i64 %t1022 = zext i32 %t1019 to i64 %t1023 = mul i64 %t1022, %t1021 %t1024 = load ptr, ptr %t1013 %t1025 = call ptr @realloc(ptr %t1024, i64 %t1023) store ptr %t1025, ptr %t1013 store i32 %t1019, ptr %t1012 br label %put345 put345: %t1026 = load ptr, ptr %t1013 %t1027 = getelementptr inbounds ptr, ptr %t1026, i32 %t1014 store ptr %t1010, ptr %t1027 %t1028 = add i32 %t1014, 1 store i32 %t1028, ptr %t1011 br label %ret ifend343: store i32 0, ptr %t1029 %t1031 = call i32 @fn_is_id(ptr @.str543) %t1032 = icmp ne i32 %t1031, 0 %t1033 = zext i1 %t1032 to i32 store i32 %t1033, ptr %t1030 br i1 %t1032, label %sc346, label %scend347 sc346: %t1034 = load ptr, ptr @g_toks %t1035 = load i32, ptr @g_pi %t1036 = add i32 %t1035, 1 %t1037 = getelementptr inbounds %LSlice, ptr %t1034, i32 0, i32 0 %t1038 = load ptr, ptr %t1037 %t1039 = getelementptr inbounds %LSlice, ptr %t1034, i32 0, i32 1 %t1040 = load i32, ptr %t1039 %t1041 = icmp ult i32 %t1036, %t1040 br i1 %t1041, label %ixok348, label %ixbad349 ixbad349: %t1042 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1042, ptr @.fmt_bounds, ptr @.str544, i32 %t1036, i32 %t1040) call void @exit(i32 1) unreachable ixok348: %t1043 = getelementptr inbounds ptr, ptr %t1038, i32 %t1036 %t1044 = load ptr, ptr %t1043 %t1045 = getelementptr inbounds %Cmp_Tok, ptr %t1044, i32 0, i32 1 %t1046 = load ptr, ptr %t1045 %t1047 = call i32 @lp_str_eq(ptr %t1046, ptr @.str545) %t1048 = icmp ne i32 %t1047, 0 %t1049 = zext i1 %t1048 to i32 store i32 %t1049, ptr %t1030 br label %scend347 scend347: %t1050 = load i32, ptr %t1030 %t1051 = icmp ne i32 %t1050, 0 br i1 %t1051, label %then350, label %ifend352 then350: %t1052 = load i32, ptr @g_pi %t1053 = add i32 %t1052, 1 store i32 %t1053, ptr @g_pi store i32 1, ptr %t1029 br label %ifend352 ifend352: %t1054 = call i32 @fn_is_id(ptr @.str546) %t1055 = icmp ne i32 %t1054, 0 br i1 %t1055, label %then353, label %ifend355 then353: %t1056 = call ptr @fn_parse_fn() store ptr %t1056, ptr %t1057 %t1058 = load i32, ptr %t1029 %t1059 = icmp ne i32 %t1058, 0 br i1 %t1059, label %then356, label %ifend358 then356: %t1060 = load ptr, ptr %t1057 %t1061 = getelementptr inbounds %Cmp_Node, ptr %t1060, i32 0, i32 12 store i32 1, ptr %t1061 br label %ifend358 ifend358: %t1062 = load i32, ptr %t20 %t1063 = icmp ne i32 %t1062, 0 br i1 %t1063, label %then359, label %ifend361 then359: %t1064 = load ptr, ptr @g_g_det_names %t1065 = load ptr, ptr %t1057 %t1066 = getelementptr inbounds %Cmp_Node, ptr %t1065, i32 0, i32 1 %t1067 = load ptr, ptr %t1066 %t1068 = getelementptr inbounds %LSlice, ptr %t1064, i32 0, i32 1 %t1069 = getelementptr inbounds %LSlice, ptr %t1064, i32 0, i32 2 %t1070 = getelementptr inbounds %LSlice, ptr %t1064, i32 0, i32 0 %t1071 = load i32, ptr %t1068 %t1072 = load i32, ptr %t1069 %t1073 = icmp sge i32 %t1071, %t1072 br i1 %t1073, label %grow362, label %put363 grow362: %t1074 = mul i32 %t1072, 2 %t1075 = icmp eq i32 %t1072, 0 %t1076 = select i1 %t1075, i32 8, i32 %t1074 %t1077 = getelementptr ptr, ptr null, i32 1 %t1078 = ptrtoint ptr %t1077 to i64 %t1079 = zext i32 %t1076 to i64 %t1080 = mul i64 %t1079, %t1078 %t1081 = load ptr, ptr %t1070 %t1082 = call ptr @realloc(ptr %t1081, i64 %t1080) store ptr %t1082, ptr %t1070 store i32 %t1076, ptr %t1069 br label %put363 put363: %t1083 = load ptr, ptr %t1070 %t1084 = getelementptr inbounds ptr, ptr %t1083, i32 %t1071 store ptr %t1067, ptr %t1084 %t1085 = add i32 %t1071, 1 store i32 %t1085, ptr %t1068 br label %ifend361 ifend361: %t1086 = load i32, ptr %t0 %t1087 = icmp ne i32 %t1086, 0 br i1 %t1087, label %then364, label %ifend366 then364: %t1088 = load ptr, ptr %t1057 %t1089 = getelementptr inbounds %Cmp_Node, ptr %t1088, i32 0, i32 2 store i32 1, ptr %t1089 br label %ifend366 ifend366: %t1090 = load ptr, ptr %t16 %t1091 = icmp ne ptr %t1090, null %t1092 = zext i1 %t1091 to i32 %t1093 = icmp ne i32 %t1092, 0 br i1 %t1093, label %then367, label %ifend369 then367: %t1094 = load ptr, ptr @g_g_mod_sys_fn %t1095 = load ptr, ptr %t1057 %t1096 = getelementptr inbounds %Cmp_Node, ptr %t1095, i32 0, i32 1 %t1097 = load ptr, ptr %t1096 %t1098 = getelementptr inbounds %LSlice, ptr %t1094, i32 0, i32 1 %t1099 = getelementptr inbounds %LSlice, ptr %t1094, i32 0, i32 2 %t1100 = getelementptr inbounds %LSlice, ptr %t1094, i32 0, i32 0 %t1101 = load i32, ptr %t1098 %t1102 = load i32, ptr %t1099 %t1103 = icmp sge i32 %t1101, %t1102 br i1 %t1103, label %grow370, label %put371 grow370: %t1104 = mul i32 %t1102, 2 %t1105 = icmp eq i32 %t1102, 0 %t1106 = select i1 %t1105, i32 8, i32 %t1104 %t1107 = getelementptr ptr, ptr null, i32 1 %t1108 = ptrtoint ptr %t1107 to i64 %t1109 = zext i32 %t1106 to i64 %t1110 = mul i64 %t1109, %t1108 %t1111 = load ptr, ptr %t1100 %t1112 = call ptr @realloc(ptr %t1111, i64 %t1110) store ptr %t1112, ptr %t1100 store i32 %t1106, ptr %t1099 br label %put371 put371: %t1113 = load ptr, ptr %t1100 %t1114 = getelementptr inbounds ptr, ptr %t1113, i32 %t1101 store ptr %t1097, ptr %t1114 %t1115 = add i32 %t1101, 1 store i32 %t1115, ptr %t1098 %t1116 = load ptr, ptr @g_g_mod_sys_phase %t1117 = load ptr, ptr %t16 %t1118 = getelementptr inbounds %LSlice, ptr %t1116, i32 0, i32 1 %t1119 = getelementptr inbounds %LSlice, ptr %t1116, i32 0, i32 2 %t1120 = getelementptr inbounds %LSlice, ptr %t1116, i32 0, i32 0 %t1121 = load i32, ptr %t1118 %t1122 = load i32, ptr %t1119 %t1123 = icmp sge i32 %t1121, %t1122 br i1 %t1123, label %grow372, label %put373 grow372: %t1124 = mul i32 %t1122, 2 %t1125 = icmp eq i32 %t1122, 0 %t1126 = select i1 %t1125, i32 8, i32 %t1124 %t1127 = getelementptr ptr, ptr null, i32 1 %t1128 = ptrtoint ptr %t1127 to i64 %t1129 = zext i32 %t1126 to i64 %t1130 = mul i64 %t1129, %t1128 %t1131 = load ptr, ptr %t1120 %t1132 = call ptr @realloc(ptr %t1131, i64 %t1130) store ptr %t1132, ptr %t1120 store i32 %t1126, ptr %t1119 br label %put373 put373: %t1133 = load ptr, ptr %t1120 %t1134 = getelementptr inbounds ptr, ptr %t1133, i32 %t1121 store ptr %t1117, ptr %t1134 %t1135 = add i32 %t1121, 1 store i32 %t1135, ptr %t1118 br label %ifend369 ifend369: %t1136 = load ptr, ptr %t17 %t1137 = icmp ne ptr %t1136, null %t1138 = zext i1 %t1137 to i32 %t1139 = icmp ne i32 %t1138, 0 br i1 %t1139, label %then374, label %ifend376 then374: %t1140 = load ptr, ptr @g_g_esys_comp %t1141 = load ptr, ptr %t17 %t1142 = getelementptr inbounds %LSlice, ptr %t1140, i32 0, i32 1 %t1143 = getelementptr inbounds %LSlice, ptr %t1140, i32 0, i32 2 %t1144 = getelementptr inbounds %LSlice, ptr %t1140, i32 0, i32 0 %t1145 = load i32, ptr %t1142 %t1146 = load i32, ptr %t1143 %t1147 = icmp sge i32 %t1145, %t1146 br i1 %t1147, label %grow377, label %put378 grow377: %t1148 = mul i32 %t1146, 2 %t1149 = icmp eq i32 %t1146, 0 %t1150 = select i1 %t1149, i32 8, i32 %t1148 %t1151 = getelementptr ptr, ptr null, i32 1 %t1152 = ptrtoint ptr %t1151 to i64 %t1153 = zext i32 %t1150 to i64 %t1154 = mul i64 %t1153, %t1152 %t1155 = load ptr, ptr %t1144 %t1156 = call ptr @realloc(ptr %t1155, i64 %t1154) store ptr %t1156, ptr %t1144 store i32 %t1150, ptr %t1143 br label %put378 put378: %t1157 = load ptr, ptr %t1144 %t1158 = getelementptr inbounds ptr, ptr %t1157, i32 %t1145 store ptr %t1141, ptr %t1158 %t1159 = add i32 %t1145, 1 store i32 %t1159, ptr %t1142 %t1160 = load ptr, ptr @g_g_esys_fn %t1161 = load ptr, ptr %t1057 %t1162 = getelementptr inbounds %Cmp_Node, ptr %t1161, i32 0, i32 1 %t1163 = load ptr, ptr %t1162 %t1164 = getelementptr inbounds %LSlice, ptr %t1160, i32 0, i32 1 %t1165 = getelementptr inbounds %LSlice, ptr %t1160, i32 0, i32 2 %t1166 = getelementptr inbounds %LSlice, ptr %t1160, i32 0, i32 0 %t1167 = load i32, ptr %t1164 %t1168 = load i32, ptr %t1165 %t1169 = icmp sge i32 %t1167, %t1168 br i1 %t1169, label %grow379, label %put380 grow379: %t1170 = mul i32 %t1168, 2 %t1171 = icmp eq i32 %t1168, 0 %t1172 = select i1 %t1171, i32 8, i32 %t1170 %t1173 = getelementptr ptr, ptr null, i32 1 %t1174 = ptrtoint ptr %t1173 to i64 %t1175 = zext i32 %t1172 to i64 %t1176 = mul i64 %t1175, %t1174 %t1177 = load ptr, ptr %t1166 %t1178 = call ptr @realloc(ptr %t1177, i64 %t1176) store ptr %t1178, ptr %t1166 store i32 %t1172, ptr %t1165 br label %put380 put380: %t1179 = load ptr, ptr %t1166 %t1180 = getelementptr inbounds ptr, ptr %t1179, i32 %t1167 store ptr %t1163, ptr %t1180 %t1181 = add i32 %t1167, 1 store i32 %t1181, ptr %t1164 %t1182 = load ptr, ptr @g_g_esys_phase %t1183 = load ptr, ptr %t18 %t1184 = getelementptr inbounds %LSlice, ptr %t1182, i32 0, i32 1 %t1185 = getelementptr inbounds %LSlice, ptr %t1182, i32 0, i32 2 %t1186 = getelementptr inbounds %LSlice, ptr %t1182, i32 0, i32 0 %t1187 = load i32, ptr %t1184 %t1188 = load i32, ptr %t1185 %t1189 = icmp sge i32 %t1187, %t1188 br i1 %t1189, label %grow381, label %put382 grow381: %t1190 = mul i32 %t1188, 2 %t1191 = icmp eq i32 %t1188, 0 %t1192 = select i1 %t1191, i32 8, i32 %t1190 %t1193 = getelementptr ptr, ptr null, i32 1 %t1194 = ptrtoint ptr %t1193 to i64 %t1195 = zext i32 %t1192 to i64 %t1196 = mul i64 %t1195, %t1194 %t1197 = load ptr, ptr %t1186 %t1198 = call ptr @realloc(ptr %t1197, i64 %t1196) store ptr %t1198, ptr %t1186 store i32 %t1192, ptr %t1185 br label %put382 put382: %t1199 = load ptr, ptr %t1186 %t1200 = getelementptr inbounds ptr, ptr %t1199, i32 %t1187 store ptr %t1183, ptr %t1200 %t1201 = add i32 %t1187, 1 store i32 %t1201, ptr %t1184 br label %ifend376 ifend376: %t1202 = load ptr, ptr %t19 %t1203 = icmp ne ptr %t1202, null %t1204 = zext i1 %t1203 to i32 %t1205 = icmp ne i32 %t1204, 0 br i1 %t1205, label %then383, label %ifend385 then383: %t1206 = load ptr, ptr %t19 call void @fn_register_namespace(ptr %t1206) br label %ifend385 ifend385: %t1207 = load ptr, ptr @g_prog %t1208 = load ptr, ptr %t1057 %t1209 = getelementptr inbounds %LSlice, ptr %t1207, i32 0, i32 1 %t1210 = getelementptr inbounds %LSlice, ptr %t1207, i32 0, i32 2 %t1211 = getelementptr inbounds %LSlice, ptr %t1207, i32 0, i32 0 %t1212 = load i32, ptr %t1209 %t1213 = load i32, ptr %t1210 %t1214 = icmp sge i32 %t1212, %t1213 br i1 %t1214, label %grow386, label %put387 grow386: %t1215 = mul i32 %t1213, 2 %t1216 = icmp eq i32 %t1213, 0 %t1217 = select i1 %t1216, i32 8, i32 %t1215 %t1218 = getelementptr ptr, ptr null, i32 1 %t1219 = ptrtoint ptr %t1218 to i64 %t1220 = zext i32 %t1217 to i64 %t1221 = mul i64 %t1220, %t1219 %t1222 = load ptr, ptr %t1211 %t1223 = call ptr @realloc(ptr %t1222, i64 %t1221) store ptr %t1223, ptr %t1211 store i32 %t1217, ptr %t1210 br label %put387 put387: %t1224 = load ptr, ptr %t1211 %t1225 = getelementptr inbounds ptr, ptr %t1224, i32 %t1212 store ptr %t1208, ptr %t1225 %t1226 = add i32 %t1212, 1 store i32 %t1226, ptr %t1209 br label %ret ifend355: %t1227 = call i32 @fn_is_id(ptr @.str547) %t1228 = icmp ne i32 %t1227, 0 br i1 %t1228, label %then388, label %ifend390 then388: %t1229 = load ptr, ptr @g_prog %t1230 = call ptr @fn_parse_extern() %t1231 = getelementptr inbounds %LSlice, ptr %t1229, i32 0, i32 1 %t1232 = getelementptr inbounds %LSlice, ptr %t1229, i32 0, i32 2 %t1233 = getelementptr inbounds %LSlice, ptr %t1229, i32 0, i32 0 %t1234 = load i32, ptr %t1231 %t1235 = load i32, ptr %t1232 %t1236 = icmp sge i32 %t1234, %t1235 br i1 %t1236, label %grow391, label %put392 grow391: %t1237 = mul i32 %t1235, 2 %t1238 = icmp eq i32 %t1235, 0 %t1239 = select i1 %t1238, i32 8, i32 %t1237 %t1240 = getelementptr ptr, ptr null, i32 1 %t1241 = ptrtoint ptr %t1240 to i64 %t1242 = zext i32 %t1239 to i64 %t1243 = mul i64 %t1242, %t1241 %t1244 = load ptr, ptr %t1233 %t1245 = call ptr @realloc(ptr %t1244, i64 %t1243) store ptr %t1245, ptr %t1233 store i32 %t1239, ptr %t1232 br label %put392 put392: %t1246 = load ptr, ptr %t1233 %t1247 = getelementptr inbounds ptr, ptr %t1246, i32 %t1234 store ptr %t1230, ptr %t1247 %t1248 = add i32 %t1234, 1 store i32 %t1248, ptr %t1231 br label %ret ifend390: %t1249 = call i32 @fn_is_id(ptr @.str548) %t1250 = icmp ne i32 %t1249, 0 br i1 %t1250, label %then393, label %ifend395 then393: %t1251 = load ptr, ptr @g_prog %t1252 = call ptr @fn_parse_main() %t1253 = getelementptr inbounds %LSlice, ptr %t1251, i32 0, i32 1 %t1254 = getelementptr inbounds %LSlice, ptr %t1251, i32 0, i32 2 %t1255 = getelementptr inbounds %LSlice, ptr %t1251, i32 0, i32 0 %t1256 = load i32, ptr %t1253 %t1257 = load i32, ptr %t1254 %t1258 = icmp sge i32 %t1256, %t1257 br i1 %t1258, label %grow396, label %put397 grow396: %t1259 = mul i32 %t1257, 2 %t1260 = icmp eq i32 %t1257, 0 %t1261 = select i1 %t1260, i32 8, i32 %t1259 %t1262 = getelementptr ptr, ptr null, i32 1 %t1263 = ptrtoint ptr %t1262 to i64 %t1264 = zext i32 %t1261 to i64 %t1265 = mul i64 %t1264, %t1263 %t1266 = load ptr, ptr %t1255 %t1267 = call ptr @realloc(ptr %t1266, i64 %t1265) store ptr %t1267, ptr %t1255 store i32 %t1261, ptr %t1254 br label %put397 put397: %t1268 = load ptr, ptr %t1255 %t1269 = getelementptr inbounds ptr, ptr %t1268, i32 %t1256 store ptr %t1252, ptr %t1269 %t1270 = add i32 %t1256, 1 store i32 %t1270, ptr %t1253 br label %ret ifend395: %t1271 = call i32 @fn_is_id(ptr @.str549) %t1272 = icmp ne i32 %t1271, 0 br i1 %t1272, label %then398, label %ifend400 then398: %t1273 = load ptr, ptr @g_g_tests %t1274 = call ptr @fn_parse_test() %t1275 = getelementptr inbounds %LSlice, ptr %t1273, i32 0, i32 1 %t1276 = getelementptr inbounds %LSlice, ptr %t1273, i32 0, i32 2 %t1277 = getelementptr inbounds %LSlice, ptr %t1273, i32 0, i32 0 %t1278 = load i32, ptr %t1275 %t1279 = load i32, ptr %t1276 %t1280 = icmp sge i32 %t1278, %t1279 br i1 %t1280, label %grow401, label %put402 grow401: %t1281 = mul i32 %t1279, 2 %t1282 = icmp eq i32 %t1279, 0 %t1283 = select i1 %t1282, i32 8, i32 %t1281 %t1284 = getelementptr ptr, ptr null, i32 1 %t1285 = ptrtoint ptr %t1284 to i64 %t1286 = zext i32 %t1283 to i64 %t1287 = mul i64 %t1286, %t1285 %t1288 = load ptr, ptr %t1277 %t1289 = call ptr @realloc(ptr %t1288, i64 %t1287) store ptr %t1289, ptr %t1277 store i32 %t1283, ptr %t1276 br label %put402 put402: %t1290 = load ptr, ptr %t1277 %t1291 = getelementptr inbounds ptr, ptr %t1290, i32 %t1278 store ptr %t1274, ptr %t1291 %t1292 = add i32 %t1278, 1 store i32 %t1292, ptr %t1275 br label %ret ifend400: %t1293 = call ptr @fn_tok_desc() %t1294 = call ptr @lp_str_concat(ptr @.str550, ptr %t1293) call void @fn_perr(ptr %t1294) br label %ret ret: ret void } define ptr @fn_parse_test() { entry: %retval = alloca ptr %t12 = alloca i32 %t31 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = load i32, ptr @g_pi %t2 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp ult i32 %t1, %t5 br i1 %t6, label %ixok0, label %ixbad1 ixbad1: %t7 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t7, ptr @.fmt_bounds, ptr @.str551, i32 %t1, i32 %t5) call void @exit(i32 1) unreachable ixok0: %t8 = getelementptr inbounds ptr, ptr %t3, i32 %t1 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Tok, ptr %t9, i32 0, i32 3 %t11 = load i32, ptr %t10 store i32 %t11, ptr %t12 %t13 = load i32, ptr @g_pi %t14 = add i32 %t13, 1 store i32 %t14, ptr @g_pi %t15 = load ptr, ptr @g_toks %t16 = load i32, ptr @g_pi %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 %t16, %t20 br i1 %t21, label %ixok2, label %ixbad3 ixbad3: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str552, i32 %t16, i32 %t20) call void @exit(i32 1) unreachable ixok2: %t23 = getelementptr inbounds ptr, ptr %t18, i32 %t16 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Tok, ptr %t24, i32 0, i32 0 %t26 = load i32, ptr %t25 %t27 = icmp ne i32 %t26, 2 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then4, label %ifend6 then4: call void @fn_perr(ptr @.str553) br label %ifend6 ifend6: %t30 = call ptr @fn_node(i32 51) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr @g_toks %t35 = load i32, ptr @g_pi %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 %t35, %t39 br i1 %t40, label %ixok7, label %ixbad8 ixbad8: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str554, i32 %t35, i32 %t39) call void @exit(i32 1) unreachable ixok7: %t42 = getelementptr inbounds ptr, ptr %t37, i32 %t35 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Tok, ptr %t43, i32 0, i32 1 %t45 = load ptr, ptr %t44 store ptr %t45, ptr %t33 %t46 = load ptr, ptr %t31 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 8 %t48 = load i32, ptr %t12 store i32 %t48, ptr %t47 %t49 = load i32, ptr @g_pi %t50 = add i32 %t49, 1 store i32 %t50, ptr @g_pi %t51 = load ptr, ptr %t31 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 4 %t53 = call ptr @fn_block() store ptr %t53, ptr %t52 %t54 = load ptr, ptr %t31 store ptr %t54, ptr %retval br label %ret ret: %t55 = load ptr, ptr %retval ret ptr %t55 } define i32 @fn_is_runtime_path(ptr %arg_rel) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_rel, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_str_starts(ptr %t1, ptr @.str555) store i32 %t2, ptr %retval br label %ret ret: %t3 = load i32, ptr %retval ret i32 %t3 } define i32 @fn_str_less(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t9 = alloca i32 %t15 = alloca i32 store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = icmp ne i32 1, 0 br i1 %t3, label %wbody1, label %wend2 wbody1: %t4 = load ptr, ptr %t0 %t5 = load i32, ptr %t2 %t6 = getelementptr inbounds i8, ptr %t4, i32 %t5 %t7 = load i8, ptr %t6 %t8 = zext i8 %t7 to i32 store i32 %t8, ptr %t9 %t10 = load ptr, ptr %t1 %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds i8, ptr %t10, i32 %t11 %t13 = load i8, ptr %t12 %t14 = zext i8 %t13 to i32 store i32 %t14, ptr %t15 %t16 = load i32, ptr %t9 %t17 = load i32, ptr %t15 %t18 = icmp ne i32 %t16, %t17 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load i32, ptr %t9 %t22 = load i32, ptr %t15 %t23 = icmp slt i32 %t21, %t22 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %retval br label %ret ifend5: %t25 = load i32, ptr %t9 %t26 = icmp eq i32 %t25, 0 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: store i32 0, ptr %retval br label %ret ifend8: %t29 = load i32, ptr %t2 %t30 = add i32 %t29, 1 store i32 %t30, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t31 = load i32, ptr %retval ret i32 %t31 } define void @fn_do_import_dir(ptr %arg_rel) { entry: %t0 = alloca ptr %t7 = alloca ptr %t12 = alloca ptr %t19 = alloca i32 %t28 = alloca i32 %t31 = alloca i32 %t74 = alloca ptr %t123 = alloca ptr %t127 = alloca i32 %t128 = alloca i32 store ptr %arg_rel, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i64 @strlen(ptr %t2) %t4 = trunc i64 %t3 to i32 %t5 = sub i32 %t4, 8 %t6 = call ptr @lp_str_slice(ptr %t1, i32 0, i32 %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr @g_cur_dir %t9 = load ptr, ptr %t7 %t10 = call ptr @fn_join_path(ptr %t8, ptr %t9) %t11 = call ptr @lp_fs_list(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = icmp eq ptr %t13, null %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then0, label %ifend2 then0: %t17 = load ptr, ptr %t7 %t18 = call ptr @lp_str_concat(ptr @.str556, ptr %t17) call void @fn_perr(ptr %t18) br label %ifend2 ifend2: store i32 0, ptr %t19 br label %wcond3 wcond3: %t20 = load i32, ptr %t19 %t21 = load ptr, ptr %t12 %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp slt i32 %t20, %t23 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %wbody4, label %wend5 wbody4: %t27 = load i32, ptr %t19 store i32 %t27, ptr %t28 %t29 = load i32, ptr %t19 %t30 = add i32 %t29, 1 store i32 %t30, ptr %t31 br label %wcond6 wcond6: %t32 = load i32, ptr %t31 %t33 = load ptr, ptr %t12 %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t35 = load i32, ptr %t34 %t36 = icmp slt i32 %t32, %t35 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %wbody7, label %wend8 wbody7: %t39 = load ptr, ptr %t12 %t40 = load i32, ptr %t31 %t41 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 %t40, %t44 br i1 %t45, label %ixok9, label %ixbad10 ixbad10: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str557, i32 %t40, i32 %t44) call void @exit(i32 1) unreachable ixok9: %t47 = getelementptr inbounds ptr, ptr %t42, i32 %t40 %t48 = load ptr, ptr %t47 %t49 = load ptr, ptr %t12 %t50 = load i32, ptr %t28 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp ult i32 %t50, %t54 br i1 %t55, label %ixok11, label %ixbad12 ixbad12: %t56 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t56, ptr @.fmt_bounds, ptr @.str558, i32 %t50, i32 %t54) call void @exit(i32 1) unreachable ixok11: %t57 = getelementptr inbounds ptr, ptr %t52, i32 %t50 %t58 = load ptr, ptr %t57 %t59 = call i32 @fn_str_less(ptr %t48, ptr %t58) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then13, label %ifend15 then13: %t61 = load i32, ptr %t31 store i32 %t61, ptr %t28 br label %ifend15 ifend15: %t62 = load i32, ptr %t31 %t63 = add i32 %t62, 1 store i32 %t63, ptr %t31 br label %wcond6 wend8: %t64 = load ptr, ptr %t12 %t65 = load i32, ptr %t19 %t66 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 1 %t69 = load i32, ptr %t68 %t70 = icmp ult i32 %t65, %t69 br i1 %t70, label %ixok16, label %ixbad17 ixbad17: %t71 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t71, ptr @.fmt_bounds, ptr @.str559, i32 %t65, i32 %t69) call void @exit(i32 1) unreachable ixok16: %t72 = getelementptr inbounds ptr, ptr %t67, i32 %t65 %t73 = load ptr, ptr %t72 store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t12 %t76 = load i32, ptr %t19 %t77 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t80 = load i32, ptr %t79 %t81 = icmp ult i32 %t76, %t80 br i1 %t81, label %ixok18, label %ixbad19 ixbad19: %t82 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t82, ptr @.fmt_bounds, ptr @.str560, i32 %t76, i32 %t80) call void @exit(i32 1) unreachable ixok18: %t83 = getelementptr inbounds ptr, ptr %t78, i32 %t76 %t84 = load ptr, ptr %t12 %t85 = load i32, ptr %t28 %t86 = getelementptr inbounds %LSlice, ptr %t84, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %LSlice, ptr %t84, i32 0, i32 1 %t89 = load i32, ptr %t88 %t90 = icmp ult i32 %t85, %t89 br i1 %t90, label %ixok20, label %ixbad21 ixbad21: %t91 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t91, ptr @.fmt_bounds, ptr @.str561, i32 %t85, i32 %t89) call void @exit(i32 1) unreachable ixok20: %t92 = getelementptr inbounds ptr, ptr %t87, i32 %t85 %t93 = load ptr, ptr %t92 store ptr %t93, ptr %t83 %t94 = load ptr, ptr %t12 %t95 = load i32, ptr %t28 %t96 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 0 %t97 = load ptr, ptr %t96 %t98 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 1 %t99 = load i32, ptr %t98 %t100 = icmp ult i32 %t95, %t99 br i1 %t100, label %ixok22, label %ixbad23 ixbad23: %t101 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t101, ptr @.fmt_bounds, ptr @.str562, i32 %t95, i32 %t99) call void @exit(i32 1) unreachable ixok22: %t102 = getelementptr inbounds ptr, ptr %t97, i32 %t95 %t103 = load ptr, ptr %t74 store ptr %t103, ptr %t102 %t104 = load i32, ptr %t19 %t105 = add i32 %t104, 1 store i32 %t105, ptr %t19 br label %wcond3 wend5: store i32 0, ptr %t19 br label %wcond24 wcond24: %t106 = load i32, ptr %t19 %t107 = load ptr, ptr %t12 %t108 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 1 %t109 = load i32, ptr %t108 %t110 = icmp slt i32 %t106, %t109 %t111 = zext i1 %t110 to i32 %t112 = icmp ne i32 %t111, 0 br i1 %t112, label %wbody25, label %wend26 wbody25: %t113 = load ptr, ptr %t12 %t114 = load i32, ptr %t19 %t115 = getelementptr inbounds %LSlice, ptr %t113, i32 0, i32 0 %t116 = load ptr, ptr %t115 %t117 = getelementptr inbounds %LSlice, ptr %t113, i32 0, i32 1 %t118 = load i32, ptr %t117 %t119 = icmp ult i32 %t114, %t118 br i1 %t119, label %ixok27, label %ixbad28 ixbad28: %t120 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t120, ptr @.fmt_bounds, ptr @.str563, i32 %t114, i32 %t118) call void @exit(i32 1) unreachable ixok27: %t121 = getelementptr inbounds ptr, ptr %t116, i32 %t114 %t122 = load ptr, ptr %t121 store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t123 %t125 = call i64 @strlen(ptr %t124) %t126 = trunc i64 %t125 to i32 store i32 %t126, ptr %t127 %t129 = load i32, ptr %t127 %t130 = icmp sgt i32 %t129, 6 %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 %t133 = zext i1 %t132 to i32 store i32 %t133, ptr %t128 br i1 %t132, label %sc29, label %scend30 sc29: %t134 = load ptr, ptr %t123 %t135 = load i32, ptr %t127 %t136 = sub i32 %t135, 6 %t137 = load i32, ptr %t127 %t138 = call ptr @lp_str_slice(ptr %t134, i32 %t136, i32 %t137) %t139 = call i32 @lp_str_eq(ptr %t138, ptr @.str564) %t140 = icmp ne i32 %t139, 0 %t141 = zext i1 %t140 to i32 store i32 %t141, ptr %t128 br label %scend30 scend30: %t142 = load i32, ptr %t128 %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %then31, label %ifend33 then31: %t144 = load ptr, ptr %t7 %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str565) %t146 = load ptr, ptr %t123 %t147 = call ptr @lp_str_concat(ptr %t145, ptr %t146) call void @fn_do_import(ptr %t147) br label %ifend33 ifend33: %t148 = load i32, ptr %t19 %t149 = add i32 %t148, 1 store i32 %t149, ptr %t19 br label %wcond24 wend26: br label %ret ret: ret void } define ptr @fn_barrel_of(ptr %arg_rel) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 store ptr %arg_rel, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t6 = load i32, ptr %t4 %t7 = icmp sgt i32 %t6, 6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t5 br i1 %t9, label %sc0, label %scend1 sc0: %t11 = load ptr, ptr %t0 %t12 = load i32, ptr %t4 %t13 = sub i32 %t12, 6 %t14 = load i32, ptr %t4 %t15 = call ptr @lp_str_slice(ptr %t11, i32 %t13, i32 %t14) %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str566) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t5 br label %scend1 scend1: %t19 = load i32, ptr %t5 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then2, label %ifend4 then2: store ptr @.str567, ptr %retval br label %ret ifend4: %t21 = load ptr, ptr %t0 %t22 = load i32, ptr %t4 %t23 = sub i32 %t22, 1 %t24 = getelementptr inbounds i8, ptr %t21, i32 %t23 %t25 = load i8, ptr %t24 %t26 = zext i8 %t25 to i32 %t27 = icmp eq i32 %t26, 47 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then5, label %ifend7 then5: %t30 = load ptr, ptr %t0 %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str568) store ptr %t31, ptr %retval br label %ret ifend7: %t32 = load ptr, ptr %t0 %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str569) store ptr %t33, ptr %retval br label %ret ret: %t34 = load ptr, ptr %retval ret ptr %t34 } define void @fn_do_import(ptr %arg_rel) { entry: %t0 = alloca ptr %t1 = alloca i32 %t26 = alloca ptr %t32 = alloca i32 %t59 = alloca ptr %t62 = alloca ptr %t63 = alloca i32 %t64 = alloca i32 %t90 = alloca ptr %t93 = alloca ptr %t100 = alloca i32 %t120 = alloca ptr %t123 = alloca ptr %t130 = alloca i32 %t150 = alloca ptr %t153 = alloca ptr %t183 = alloca i32 %t184 = alloca i32 %t231 = alloca i32 %t232 = alloca i32 %t233 = alloca i32 %t246 = alloca i32 %t279 = alloca i32 %t280 = alloca i32 %t305 = alloca i32 %t322 = alloca i32 %t323 = alloca i32 %t354 = alloca ptr %t358 = alloca i32 %t359 = alloca i32 %t383 = alloca ptr %t385 = alloca i32 %t387 = alloca ptr %t389 = alloca ptr %t391 = alloca i32 store ptr %arg_rel, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i64 @strlen(ptr %t2) %t4 = trunc i64 %t3 to i32 %t5 = icmp sgt i32 %t4, 8 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t1 br i1 %t7, label %sc0, label %scend1 sc0: %t9 = load ptr, ptr %t0 %t10 = load ptr, ptr %t0 %t11 = call i64 @strlen(ptr %t10) %t12 = trunc i64 %t11 to i32 %t13 = sub i32 %t12, 8 %t14 = load ptr, ptr %t0 %t15 = call i64 @strlen(ptr %t14) %t16 = trunc i64 %t15 to i32 %t17 = call ptr @lp_str_slice(ptr %t9, i32 %t13, i32 %t16) %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str570) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t1 br label %scend1 scend1: %t21 = load i32, ptr %t1 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then2, label %ifend4 then2: %t23 = load ptr, ptr %t0 call void @fn_do_import_dir(ptr %t23) br label %ret ifend4: %t24 = load ptr, ptr %t0 %t25 = call ptr @fn_barrel_of(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t26 %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str571) %t29 = icmp eq i32 %t28, 0 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then5, label %ifend7 then5: %t33 = load ptr, ptr @g_cur_dir %t34 = load ptr, ptr %t26 %t35 = call ptr @fn_join_path(ptr %t33, ptr %t34) %t36 = call ptr @fn_read_file(ptr %t35) %t37 = icmp eq ptr %t36, null %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t32 br i1 %t39, label %sc8, label %scend9 sc8: %t41 = load ptr, ptr @g_cur_dir %t42 = load ptr, ptr %t0 %t43 = call ptr @fn_join_path(ptr %t41, ptr %t42) %t44 = call i32 @lp_fs_is_dir(ptr %t43) %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t32 br label %scend9 scend9: %t47 = load i32, ptr %t32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then10, label %ifend12 then10: %t49 = load ptr, ptr %t0 %t50 = call ptr @lp_str_concat(ptr @.str572, ptr %t49) %t51 = call ptr @lp_str_concat(ptr %t50, ptr @.str573) %t52 = load ptr, ptr %t26 %t53 = call ptr @lp_str_concat(ptr %t51, ptr %t52) %t54 = call ptr @lp_str_concat(ptr %t53, ptr @.str574) call void @fn_perr(ptr %t54) br label %ifend12 ifend12: %t55 = load ptr, ptr %t26 call void @fn_do_import(ptr %t55) br label %ret ifend7: %t56 = load ptr, ptr @g_cur_dir %t57 = load ptr, ptr %t0 %t58 = call ptr @fn_join_path(ptr %t56, ptr %t57) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t59 %t61 = call ptr @fn_read_file(ptr %t60) store ptr %t61, ptr %t62 %t65 = load ptr, ptr %t62 %t66 = icmp eq ptr %t65, null %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t64 br i1 %t68, label %sc13, label %scend14 sc13: %t70 = load ptr, ptr %t0 %t71 = getelementptr inbounds i8, ptr %t70, i32 0 %t72 = load i8, ptr %t71 %t73 = zext i8 %t72 to i32 %t74 = icmp ne i32 %t73, 47 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t64 br label %scend14 scend14: %t78 = load i32, ptr %t64 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t63 br i1 %t79, label %sc15, label %scend16 sc15: %t81 = load ptr, ptr %t0 %t82 = call i32 @fn_is_runtime_path(ptr %t81) %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t63 br label %scend16 scend16: %t85 = load i32, ptr %t63 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then17, label %ifend19 then17: %t87 = call ptr @fn_ludic_home() %t88 = load ptr, ptr %t0 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) store ptr %t89, ptr %t90 %t91 = load ptr, ptr %t90 %t92 = call ptr @fn_read_file(ptr %t91) store ptr %t92, ptr %t93 %t94 = load ptr, ptr %t93 %t95 = icmp ne ptr %t94, null %t96 = zext i1 %t95 to i32 %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then20, label %ifend22 then20: %t98 = load ptr, ptr %t90 store ptr %t98, ptr %t59 %t99 = load ptr, ptr %t93 store ptr %t99, ptr %t62 br label %ifend22 ifend22: br label %ifend19 ifend19: %t101 = load ptr, ptr %t62 %t102 = icmp eq ptr %t101, null %t103 = zext i1 %t102 to i32 %t104 = icmp ne i32 %t103, 0 %t105 = zext i1 %t104 to i32 store i32 %t105, ptr %t100 br i1 %t104, label %sc23, label %scend24 sc23: %t106 = load ptr, ptr %t0 %t107 = getelementptr inbounds i8, ptr %t106, i32 0 %t108 = load i8, ptr %t107 %t109 = zext i8 %t108 to i32 %t110 = icmp ne i32 %t109, 47 %t111 = zext i1 %t110 to i32 %t112 = icmp ne i32 %t111, 0 %t113 = zext i1 %t112 to i32 store i32 %t113, ptr %t100 br label %scend24 scend24: %t114 = load i32, ptr %t100 %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then25, label %ifend27 then25: %t116 = call ptr @fn_getenv_or(ptr @.str575, ptr @.str576) %t117 = call ptr @fn_ensure_slash(ptr %t116) %t118 = load ptr, ptr %t0 %t119 = call ptr @lp_str_concat(ptr %t117, ptr %t118) store ptr %t119, ptr %t120 %t121 = load ptr, ptr %t120 %t122 = call ptr @fn_read_file(ptr %t121) store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t123 %t125 = icmp ne ptr %t124, null %t126 = zext i1 %t125 to i32 %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then28, label %ifend30 then28: %t128 = load ptr, ptr %t120 store ptr %t128, ptr %t59 %t129 = load ptr, ptr %t123 store ptr %t129, ptr %t62 br label %ifend30 ifend30: br label %ifend27 ifend27: %t131 = load ptr, ptr %t62 %t132 = icmp eq ptr %t131, null %t133 = zext i1 %t132 to i32 %t134 = icmp ne i32 %t133, 0 %t135 = zext i1 %t134 to i32 store i32 %t135, ptr %t130 br i1 %t134, label %sc31, label %scend32 sc31: %t136 = load ptr, ptr %t0 %t137 = getelementptr inbounds i8, ptr %t136, i32 0 %t138 = load i8, ptr %t137 %t139 = zext i8 %t138 to i32 %t140 = icmp ne i32 %t139, 47 %t141 = zext i1 %t140 to i32 %t142 = icmp ne i32 %t141, 0 %t143 = zext i1 %t142 to i32 store i32 %t143, ptr %t130 br label %scend32 scend32: %t144 = load i32, ptr %t130 %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then33, label %ifend35 then33: %t146 = call ptr @fn_ludic_home() %t147 = call ptr @lp_str_concat(ptr %t146, ptr @.str577) %t148 = load ptr, ptr %t0 %t149 = call ptr @lp_str_concat(ptr %t147, ptr %t148) store ptr %t149, ptr %t150 %t151 = load ptr, ptr %t150 %t152 = call ptr @fn_read_file(ptr %t151) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t153 %t155 = icmp ne ptr %t154, null %t156 = zext i1 %t155 to i32 %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then36, label %ifend38 then36: %t158 = load ptr, ptr %t150 store ptr %t158, ptr %t59 %t159 = load ptr, ptr %t153 store ptr %t159, ptr %t62 br label %ifend38 ifend38: br label %ifend35 ifend35: %t160 = load ptr, ptr %t59 %t161 = call i32 @fn_already_loaded(ptr %t160) %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then39, label %ifend41 then39: br label %ret ifend41: %t163 = load ptr, ptr @g_loaded_paths %t164 = load ptr, ptr %t59 %t165 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 1 %t166 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 2 %t167 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 0 %t168 = load i32, ptr %t165 %t169 = load i32, ptr %t166 %t170 = icmp sge i32 %t168, %t169 br i1 %t170, label %grow42, label %put43 grow42: %t171 = mul i32 %t169, 2 %t172 = icmp eq i32 %t169, 0 %t173 = select i1 %t172, i32 8, i32 %t171 %t174 = getelementptr ptr, ptr null, i32 1 %t175 = ptrtoint ptr %t174 to i64 %t176 = zext i32 %t173 to i64 %t177 = mul i64 %t176, %t175 %t178 = load ptr, ptr %t167 %t179 = call ptr @realloc(ptr %t178, i64 %t177) store ptr %t179, ptr %t167 store i32 %t173, ptr %t166 br label %put43 put43: %t180 = load ptr, ptr %t167 %t181 = getelementptr inbounds ptr, ptr %t180, i32 %t168 store ptr %t164, ptr %t181 %t182 = add i32 %t168, 1 store i32 %t182, ptr %t165 %t185 = load ptr, ptr @g_g_parse_file %t186 = call i32 @fn_is_float_file(ptr %t185) %t187 = icmp ne i32 %t186, 0 %t188 = zext i1 %t187 to i32 store i32 %t188, ptr %t184 br i1 %t187, label %sc44, label %scend45 sc44: %t189 = load ptr, ptr %t0 %t190 = call i32 @fn_is_runtime_path(ptr %t189) %t191 = icmp eq i32 %t190, 0 %t192 = zext i1 %t191 to i32 %t193 = icmp ne i32 %t192, 0 %t194 = zext i1 %t193 to i32 store i32 %t194, ptr %t184 br label %scend45 scend45: %t195 = load i32, ptr %t184 %t196 = icmp ne i32 %t195, 0 %t197 = zext i1 %t196 to i32 store i32 %t197, ptr %t183 br i1 %t196, label %sc46, label %scend47 sc46: %t198 = load ptr, ptr %t59 %t199 = call i32 @fn_is_float_file(ptr %t198) %t200 = icmp eq i32 %t199, 0 %t201 = zext i1 %t200 to i32 %t202 = icmp ne i32 %t201, 0 %t203 = zext i1 %t202 to i32 store i32 %t203, ptr %t183 br label %scend47 scend47: %t204 = load i32, ptr %t183 %t205 = icmp ne i32 %t204, 0 br i1 %t205, label %then48, label %ifend50 then48: %t206 = load ptr, ptr @g_g_float_files %t207 = load ptr, ptr %t59 %t208 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 1 %t209 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 2 %t210 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 0 %t211 = load i32, ptr %t208 %t212 = load i32, ptr %t209 %t213 = icmp sge i32 %t211, %t212 br i1 %t213, label %grow51, label %put52 grow51: %t214 = mul i32 %t212, 2 %t215 = icmp eq i32 %t212, 0 %t216 = select i1 %t215, i32 8, i32 %t214 %t217 = getelementptr ptr, ptr null, i32 1 %t218 = ptrtoint ptr %t217 to i64 %t219 = zext i32 %t216 to i64 %t220 = mul i64 %t219, %t218 %t221 = load ptr, ptr %t210 %t222 = call ptr @realloc(ptr %t221, i64 %t220) store ptr %t222, ptr %t210 store i32 %t216, ptr %t209 br label %put52 put52: %t223 = load ptr, ptr %t210 %t224 = getelementptr inbounds ptr, ptr %t223, i32 %t211 store ptr %t207, ptr %t224 %t225 = add i32 %t211, 1 store i32 %t225, ptr %t208 br label %ifend50 ifend50: %t226 = load ptr, ptr %t59 %t227 = load ptr, ptr @g_cur_dir %t228 = load ptr, ptr %t0 %t229 = call ptr @fn_join_path(ptr %t227, ptr %t228) %t230 = call i32 @lp_str_eq(ptr %t226, ptr %t229) store i32 %t230, ptr %t231 %t234 = load ptr, ptr %t0 %t235 = call i32 @fn_is_runtime_path(ptr %t234) %t236 = icmp ne i32 %t235, 0 %t237 = zext i1 %t236 to i32 store i32 %t237, ptr %t233 br i1 %t236, label %scend54, label %sc53 sc53: %t238 = load i32, ptr %t231 %t239 = icmp eq i32 %t238, 0 %t240 = zext i1 %t239 to i32 %t241 = icmp ne i32 %t240, 0 %t242 = zext i1 %t241 to i32 store i32 %t242, ptr %t233 br label %scend54 scend54: %t243 = load i32, ptr %t233 %t244 = icmp ne i32 %t243, 0 %t245 = zext i1 %t244 to i32 store i32 %t245, ptr %t232 br i1 %t244, label %scend56, label %sc55 sc55: %t247 = load i32, ptr %t231 %t248 = icmp ne i32 %t247, 0 %t249 = zext i1 %t248 to i32 store i32 %t249, ptr %t246 br i1 %t248, label %sc57, label %scend58 sc57: %t250 = load ptr, ptr @g_g_parse_file %t251 = call i32 @fn_unsafe_trusted(ptr %t250) %t252 = icmp ne i32 %t251, 0 %t253 = zext i1 %t252 to i32 store i32 %t253, ptr %t246 br label %scend58 scend58: %t254 = load i32, ptr %t246 %t255 = icmp ne i32 %t254, 0 %t256 = zext i1 %t255 to i32 store i32 %t256, ptr %t232 br label %scend56 scend56: %t257 = load i32, ptr %t232 %t258 = icmp ne i32 %t257, 0 br i1 %t258, label %then59, label %ifend61 then59: %t259 = load ptr, ptr @g_g_trusted_files %t260 = load ptr, ptr %t59 %t261 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 1 %t262 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 2 %t263 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 0 %t264 = load i32, ptr %t261 %t265 = load i32, ptr %t262 %t266 = icmp sge i32 %t264, %t265 br i1 %t266, label %grow62, label %put63 grow62: %t267 = mul i32 %t265, 2 %t268 = icmp eq i32 %t265, 0 %t269 = select i1 %t268, i32 8, i32 %t267 %t270 = getelementptr ptr, ptr null, i32 1 %t271 = ptrtoint ptr %t270 to i64 %t272 = zext i32 %t269 to i64 %t273 = mul i64 %t272, %t271 %t274 = load ptr, ptr %t263 %t275 = call ptr @realloc(ptr %t274, i64 %t273) store ptr %t275, ptr %t263 store i32 %t269, ptr %t262 br label %put63 put63: %t276 = load ptr, ptr %t263 %t277 = getelementptr inbounds ptr, ptr %t276, i32 %t264 store ptr %t260, ptr %t277 %t278 = add i32 %t264, 1 store i32 %t278, ptr %t261 br label %ifend61 ifend61: %t281 = load i32, ptr %t231 %t282 = icmp ne i32 %t281, 0 %t283 = zext i1 %t282 to i32 store i32 %t283, ptr %t280 br i1 %t282, label %sc64, label %scend65 sc64: %t284 = load ptr, ptr %t0 %t285 = call i32 @fn_is_runtime_path(ptr %t284) %t286 = icmp eq i32 %t285, 0 %t287 = zext i1 %t286 to i32 %t288 = icmp ne i32 %t287, 0 %t289 = zext i1 %t288 to i32 store i32 %t289, ptr %t280 br label %scend65 scend65: %t290 = load i32, ptr %t280 %t291 = icmp ne i32 %t290, 0 %t292 = zext i1 %t291 to i32 store i32 %t292, ptr %t279 br i1 %t291, label %sc66, label %scend67 sc66: %t293 = load ptr, ptr @g_g_parse_file %t294 = call ptr @fn_module_of(ptr %t293) %t295 = call i32 @lp_str_eq(ptr %t294, ptr @.str578) %t296 = icmp eq i32 %t295, 0 %t297 = zext i1 %t296 to i32 %t298 = icmp ne i32 %t297, 0 %t299 = zext i1 %t298 to i32 store i32 %t299, ptr %t279 br label %scend67 scend67: %t300 = load i32, ptr %t279 %t301 = icmp ne i32 %t300, 0 br i1 %t301, label %then68, label %ifend70 then68: %t302 = load ptr, ptr %t59 %t303 = load ptr, ptr @g_g_parse_file %t304 = call ptr @fn_module_of(ptr %t303) call void @fn_module_set(ptr %t302, ptr %t304) br label %ifend70 ifend70: %t306 = load i32, ptr %t231 %t307 = icmp eq i32 %t306, 0 %t308 = zext i1 %t307 to i32 %t309 = icmp ne i32 %t308, 0 %t310 = zext i1 %t309 to i32 store i32 %t310, ptr %t305 br i1 %t309, label %sc71, label %scend72 sc71: %t311 = load ptr, ptr %t0 %t312 = call i32 @fn_is_runtime_path(ptr %t311) %t313 = icmp eq i32 %t312, 0 %t314 = zext i1 %t313 to i32 %t315 = icmp ne i32 %t314, 0 %t316 = zext i1 %t315 to i32 store i32 %t316, ptr %t305 br label %scend72 scend72: %t317 = load i32, ptr %t305 %t318 = icmp ne i32 %t317, 0 br i1 %t318, label %then73, label %ifend75 then73: %t319 = load ptr, ptr %t59 %t320 = load ptr, ptr %t0 %t321 = call ptr @fn_pkg_name_of(ptr %t320) call void @fn_pkg_file_set(ptr %t319, ptr %t321) br label %ifend75 ifend75: %t324 = load i32, ptr %t231 %t325 = icmp ne i32 %t324, 0 %t326 = zext i1 %t325 to i32 store i32 %t326, ptr %t323 br i1 %t325, label %sc76, label %scend77 sc76: %t327 = load ptr, ptr %t0 %t328 = call i32 @fn_is_runtime_path(ptr %t327) %t329 = icmp eq i32 %t328, 0 %t330 = zext i1 %t329 to i32 %t331 = icmp ne i32 %t330, 0 %t332 = zext i1 %t331 to i32 store i32 %t332, ptr %t323 br label %scend77 scend77: %t333 = load i32, ptr %t323 %t334 = icmp ne i32 %t333, 0 %t335 = zext i1 %t334 to i32 store i32 %t335, ptr %t322 br i1 %t334, label %sc78, label %scend79 sc78: %t336 = load ptr, ptr @g_g_parse_file %t337 = call ptr @fn_pkg_of_file(ptr %t336) %t338 = call i32 @lp_str_eq(ptr %t337, ptr @.str579) %t339 = icmp eq i32 %t338, 0 %t340 = zext i1 %t339 to i32 %t341 = icmp ne i32 %t340, 0 %t342 = zext i1 %t341 to i32 store i32 %t342, ptr %t322 br label %scend79 scend79: %t343 = load i32, ptr %t322 %t344 = icmp ne i32 %t343, 0 br i1 %t344, label %then80, label %ifend82 then80: %t345 = load ptr, ptr %t59 %t346 = load ptr, ptr @g_g_parse_file %t347 = call ptr @fn_pkg_of_file(ptr %t346) call void @fn_pkg_file_set(ptr %t345, ptr %t347) br label %ifend82 ifend82: %t348 = load ptr, ptr %t62 %t349 = icmp eq ptr %t348, null %t350 = zext i1 %t349 to i32 %t351 = icmp ne i32 %t350, 0 br i1 %t351, label %then83, label %ifend85 then83: %t352 = load ptr, ptr %t59 %t353 = call ptr @lp_str_concat(ptr @.str580, ptr %t352) call void @fn_perr(ptr %t353) br label %ifend85 ifend85: store ptr @.str581, ptr %t354 %t355 = load ptr, ptr %t59 %t356 = call i64 @strlen(ptr %t355) %t357 = trunc i64 %t356 to i32 store i32 %t357, ptr %t358 %t360 = load i32, ptr %t358 %t361 = load ptr, ptr %t354 %t362 = call i64 @strlen(ptr %t361) %t363 = trunc i64 %t362 to i32 %t364 = icmp sge i32 %t360, %t363 %t365 = zext i1 %t364 to i32 %t366 = icmp ne i32 %t365, 0 %t367 = zext i1 %t366 to i32 store i32 %t367, ptr %t359 br i1 %t366, label %sc86, label %scend87 sc86: %t368 = load ptr, ptr %t59 %t369 = load i32, ptr %t358 %t370 = load ptr, ptr %t354 %t371 = call i64 @strlen(ptr %t370) %t372 = trunc i64 %t371 to i32 %t373 = sub i32 %t369, %t372 %t374 = load i32, ptr %t358 %t375 = call ptr @lp_str_slice(ptr %t368, i32 %t373, i32 %t374) %t376 = load ptr, ptr %t354 %t377 = call i32 @lp_str_eq(ptr %t375, ptr %t376) %t378 = icmp ne i32 %t377, 0 %t379 = zext i1 %t378 to i32 store i32 %t379, ptr %t359 br label %scend87 scend87: %t380 = load i32, ptr %t359 %t381 = icmp ne i32 %t380, 0 br i1 %t381, label %then88, label %ifend90 then88: store i32 1, ptr @g_g_uses_audio br label %ifend90 ifend90: %t382 = load ptr, ptr @g_toks store ptr %t382, ptr %t383 %t384 = load i32, ptr @g_pi store i32 %t384, ptr %t385 %t386 = load ptr, ptr @g_cur_dir store ptr %t386, ptr %t387 %t388 = load ptr, ptr @g_g_parse_file store ptr %t388, ptr %t389 %t390 = load i32, ptr @g_g_parsing store i32 %t390, ptr %t391 %t392 = load ptr, ptr %t59 %t393 = call ptr @fn_dir_of(ptr %t392) store ptr %t393, ptr @g_cur_dir %t394 = load ptr, ptr %t59 store ptr %t394, ptr @g_g_parse_file store i32 1, ptr @g_g_parsing %t395 = load ptr, ptr %t62 call void @fn_lex(ptr %t395) store i32 0, ptr @g_pi call void @fn_skipnl() br label %wcond91 wcond91: %t396 = load ptr, ptr @g_toks %t397 = load i32, ptr @g_pi %t398 = getelementptr inbounds %LSlice, ptr %t396, i32 0, i32 0 %t399 = load ptr, ptr %t398 %t400 = getelementptr inbounds %LSlice, ptr %t396, i32 0, i32 1 %t401 = load i32, ptr %t400 %t402 = icmp ult i32 %t397, %t401 br i1 %t402, label %ixok94, label %ixbad95 ixbad95: %t403 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t403, ptr @.fmt_bounds, ptr @.str582, i32 %t397, i32 %t401) call void @exit(i32 1) unreachable ixok94: %t404 = getelementptr inbounds ptr, ptr %t399, i32 %t397 %t405 = load ptr, ptr %t404 %t406 = getelementptr inbounds %Cmp_Tok, ptr %t405, i32 0, i32 0 %t407 = load i32, ptr %t406 %t408 = icmp ne i32 %t407, 5 %t409 = zext i1 %t408 to i32 %t410 = icmp ne i32 %t409, 0 br i1 %t410, label %wbody92, label %wend93 wbody92: call void @fn_parse_one_decl() call void @fn_skipnl() br label %wcond91 wend93: %t411 = load ptr, ptr %t383 store ptr %t411, ptr @g_toks %t412 = load i32, ptr %t385 store i32 %t412, ptr @g_pi %t413 = load ptr, ptr %t387 store ptr %t413, ptr @g_cur_dir %t414 = load ptr, ptr %t389 store ptr %t414, ptr @g_g_parse_file %t415 = load i32, ptr %t391 store i32 %t415, ptr @g_g_parsing br label %ret ret: ret void } define i32 @fn_rt_wanted_name(ptr %arg_n) { entry: %retval = alloca i32 %t0 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 store ptr %arg_n, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str583) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 1, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = call i32 @fn_str_starts(ptr %t6, ptr @.str584) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t5 br i1 %t8, label %scend4, label %sc3 sc3: %t10 = load ptr, ptr %t0 %t11 = call i32 @fn_str_starts(ptr %t10, ptr @.str585) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t5 br label %scend4 scend4: %t14 = load i32, ptr %t5 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t4 br i1 %t15, label %scend6, label %sc5 sc5: %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_starts(ptr %t17, ptr @.str586) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t4 br label %scend6 scend6: %t21 = load i32, ptr %t4 store i32 %t21, ptr %retval br label %ret ret: %t22 = load i32, ptr %retval ret i32 %t22 } define i32 @fn_rt_wants_unmet(ptr %arg_prefix) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 %t21 = alloca i32 store ptr %arg_prefix, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_rt_wants %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_rt_wants %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str587, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t22 = load ptr, ptr %t19 %t23 = load ptr, ptr %t0 %t24 = call i32 @fn_str_starts(ptr %t22, ptr %t23) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t21 br i1 %t25, label %sc5, label %scend6 sc5: %t27 = load ptr, ptr %t19 %t28 = call ptr @fn_find_fn(ptr %t27) %t29 = icmp eq ptr %t28, null %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t21 br label %scend6 scend6: %t33 = load i32, ptr %t21 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t20 br i1 %t34, label %sc7, label %scend8 sc7: %t36 = load ptr, ptr %t19 %t37 = call ptr @fn_find_global(ptr %t36) %t38 = icmp eq ptr %t37, null %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t20 br label %scend8 scend8: %t42 = load i32, ptr %t20 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t44 = load i32, ptr %t1 %t45 = add i32 %t44, 1 store i32 %t45, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t46 = load i32, ptr %retval ret i32 %t46 } define void @fn_maybe_splice_runtime() { entry: %t1 = alloca ptr %t5 = alloca i32 %t11 = alloca i32 %t12 = alloca i32 %t55 = alloca i32 %t116 = alloca i32 %t145 = alloca i32 %t0 = load ptr, ptr @g_cur_dir store ptr %t0, ptr %t1 store ptr @.str588, ptr @g_cur_dir call void @fn_do_import(ptr @.str589) %t2 = load i32, ptr @g_g_uses_bytes %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: call void @fn_do_import(ptr @.str590) br label %ifend2 ifend2: %t4 = load ptr, ptr %t1 store ptr %t4, ptr @g_cur_dir %t6 = call i32 @fn_has_ecs() %t7 = icmp eq i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t5 br i1 %t9, label %sc3, label %scend4 sc3: %t13 = load i32, ptr @g_g_uses_rng %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t12 br i1 %t14, label %scend6, label %sc5 sc5: %t16 = call i32 @fn_rt_wants_unmet(ptr @.str591) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t12 br label %scend6 scend6: %t19 = load i32, ptr %t12 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t11 br i1 %t20, label %scend8, label %sc7 sc7: %t22 = call i32 @fn_rt_wants_unmet(ptr @.str592) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t11 br label %scend8 scend8: %t25 = load i32, ptr %t11 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t5 br label %scend4 scend4: %t28 = load i32, ptr %t5 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then9, label %ifend11 then9: store ptr @.str593, ptr @g_cur_dir call void @fn_do_import(ptr @.str594) %t30 = load ptr, ptr %t1 store ptr %t30, ptr @g_cur_dir br label %ifend11 ifend11: %t31 = call i32 @fn_has_ecs() %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then12, label %ifend14 then12: store ptr @.str595, ptr @g_cur_dir call void @fn_do_import(ptr @.str596) %t33 = load ptr, ptr %t1 store ptr %t33, ptr @g_cur_dir br label %ifend14 ifend14: %t34 = load i32, ptr @g_g_uses_regex %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then15, label %ifend17 then15: store ptr @.str597, ptr @g_cur_dir call void @fn_do_import(ptr @.str598) call void @fn_do_import(ptr @.str599) %t36 = load ptr, ptr %t1 store ptr %t36, ptr @g_cur_dir br label %ifend17 ifend17: %t37 = load i32, ptr @g_g_uses_bignum %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then18, label %ifend20 then18: store ptr @.str600, ptr @g_cur_dir call void @fn_do_import(ptr @.str601) %t39 = load ptr, ptr %t1 store ptr %t39, ptr @g_cur_dir br label %ifend20 ifend20: %t40 = load i32, ptr @g_g_uses_dict %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then21, label %ifend23 then21: store ptr @.str602, ptr @g_cur_dir call void @fn_do_import(ptr @.str603) %t42 = load ptr, ptr %t1 store ptr %t42, ptr @g_cur_dir br label %ifend23 ifend23: %t43 = load i32, ptr @g_g_uses_numeric %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then24, label %ifend26 then24: store ptr @.str604, ptr @g_cur_dir call void @fn_do_import(ptr @.str605) %t45 = load ptr, ptr %t1 store ptr %t45, ptr @g_cur_dir br label %ifend26 ifend26: %t46 = load i32, ptr @g_g_uses_jobs %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then27, label %ifend29 then27: store ptr @.str606, ptr @g_cur_dir call void @fn_do_import(ptr @.str607) %t48 = load ptr, ptr %t1 store ptr %t48, ptr @g_cur_dir br label %ifend29 ifend29: %t49 = load i32, ptr @g_g_uses_query %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then30, label %ifend32 then30: store ptr @.str608, ptr @g_cur_dir call void @fn_do_import(ptr @.str609) %t51 = load ptr, ptr %t1 store ptr %t51, ptr @g_cur_dir br label %ifend32 ifend32: %t52 = load i32, ptr @g_g_uses_light %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then33, label %ifend35 then33: store ptr @.str610, ptr @g_cur_dir call void @fn_do_import(ptr @.str611) %t54 = load ptr, ptr %t1 store ptr %t54, ptr @g_cur_dir br label %ifend35 ifend35: %t56 = call i32 @fn_rt_wants_unmet(ptr @.str612) %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t55 br i1 %t57, label %scend37, label %sc36 sc36: %t59 = call i32 @fn_rt_wants_unmet(ptr @.str613) %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t55 br label %scend37 scend37: %t62 = load i32, ptr %t55 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then38, label %ifend40 then38: store i32 1, ptr @g_g_uses_value br label %ifend40 ifend40: %t64 = load i32, ptr @g_g_uses_value %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then41, label %ifend43 then41: store ptr @.str614, ptr @g_cur_dir call void @fn_do_import(ptr @.str615) %t66 = load ptr, ptr %t1 store ptr %t66, ptr @g_cur_dir br label %ifend43 ifend43: %t67 = load i32, ptr @g_g_uses_xml %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then44, label %ifend46 then44: store ptr @.str616, ptr @g_cur_dir call void @fn_do_import(ptr @.str617) %t69 = load ptr, ptr %t1 store ptr %t69, ptr @g_cur_dir br label %ifend46 ifend46: %t70 = load i32, ptr @g_g_uses_atlas %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then47, label %ifend49 then47: store ptr @.str618, ptr @g_cur_dir call void @fn_do_import(ptr @.str619) call void @fn_do_import(ptr @.str620) call void @fn_do_import(ptr @.str621) %t72 = load ptr, ptr %t1 store ptr %t72, ptr @g_cur_dir br label %ifend49 ifend49: %t73 = load i32, ptr @g_g_uses_fx %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then50, label %ifend52 then50: store ptr @.str622, ptr @g_cur_dir call void @fn_do_import(ptr @.str623) call void @fn_do_import(ptr @.str624) %t75 = load ptr, ptr %t1 store ptr %t75, ptr @g_cur_dir br label %ifend52 ifend52: %t76 = load i32, ptr @g_g_uses_base64 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then53, label %ifend55 then53: store ptr @.str625, ptr @g_cur_dir call void @fn_do_import(ptr @.str626) call void @fn_do_import(ptr @.str627) call void @fn_do_import(ptr @.str628) %t78 = load ptr, ptr %t1 store ptr %t78, ptr @g_cur_dir br label %ifend55 ifend55: %t79 = load i32, ptr @g_g_uses_tiled %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then56, label %ifend58 then56: store ptr @.str629, ptr @g_cur_dir call void @fn_do_import(ptr @.str630) call void @fn_do_import(ptr @.str631) call void @fn_do_import(ptr @.str632) call void @fn_do_import(ptr @.str633) call void @fn_do_import(ptr @.str634) call void @fn_do_import(ptr @.str635) call void @fn_do_import(ptr @.str636) %t81 = call i32 @fn_has_ecs() %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then59, label %ifend61 then59: call void @fn_do_import(ptr @.str637) br label %ifend61 ifend61: %t83 = load ptr, ptr %t1 store ptr %t83, ptr @g_cur_dir br label %ifend58 ifend58: %t84 = load i32, ptr @g_g_uses_reflect_io %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then62, label %ifend64 then62: store ptr @.str638, ptr @g_cur_dir call void @fn_do_import(ptr @.str639) %t86 = load ptr, ptr %t1 store ptr %t86, ptr @g_cur_dir br label %ifend64 ifend64: %t87 = load i32, ptr @g_g_uses_input %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then65, label %ifend67 then65: store ptr @.str640, ptr @g_cur_dir call void @fn_do_import(ptr @.str641) call void @fn_do_import(ptr @.str642) %t89 = load ptr, ptr %t1 store ptr %t89, ptr @g_cur_dir br label %ifend67 ifend67: %t90 = load i32, ptr @g_g_uses_tween_rt %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then68, label %ifend70 then68: store ptr @.str643, ptr @g_cur_dir call void @fn_do_import(ptr @.str644) call void @fn_do_import(ptr @.str645) %t92 = load ptr, ptr %t1 store ptr %t92, ptr @g_cur_dir br label %ifend70 ifend70: %t93 = load i32, ptr @g_g_uses_audio %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then71, label %ifend73 then71: store ptr @.str646, ptr @g_cur_dir call void @fn_do_import(ptr @.str647) %t95 = load ptr, ptr %t1 store ptr %t95, ptr @g_cur_dir br label %ifend73 ifend73: %t96 = load i32, ptr @g_g_uses_http %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then74, label %ifend76 then74: store ptr @.str648, ptr @g_cur_dir call void @fn_do_import(ptr @.str649) %t98 = load ptr, ptr %t1 store ptr %t98, ptr @g_cur_dir br label %ifend76 ifend76: %t99 = load i32, ptr @g_g_uses_udp %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then77, label %ifend79 then77: store ptr @.str650, ptr @g_cur_dir call void @fn_do_import(ptr @.str651) %t101 = load ptr, ptr %t1 store ptr %t101, ptr @g_cur_dir br label %ifend79 ifend79: %t102 = load i32, ptr @g_g_uses_process %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then80, label %ifend82 then80: store ptr @.str652, ptr @g_cur_dir call void @fn_do_import(ptr @.str653) %t104 = load ptr, ptr %t1 store ptr %t104, ptr @g_cur_dir br label %ifend82 ifend82: %t105 = load i32, ptr @g_g_uses_gl %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then83, label %ifend85 then83: store ptr @.str654, ptr @g_cur_dir call void @fn_do_import(ptr @.str655) %t107 = load ptr, ptr %t1 store ptr %t107, ptr @g_cur_dir br label %ifend85 ifend85: %t108 = load i32, ptr @g_g_uses_vk %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then86, label %ifend88 then86: store ptr @.str656, ptr @g_cur_dir call void @fn_do_import(ptr @.str657) %t110 = load ptr, ptr %t1 store ptr %t110, ptr @g_cur_dir br label %ifend88 ifend88: %t111 = load i32, ptr @g_g_uses_anim_rt %t112 = icmp ne i32 %t111, 0 br i1 %t112, label %then89, label %ifend91 then89: store i32 1, ptr @g_g_uses_esys store ptr @.str658, ptr @g_cur_dir call void @fn_do_import(ptr @.str659) call void @fn_do_import(ptr @.str660) %t113 = load ptr, ptr %t1 store ptr %t113, ptr @g_cur_dir br label %ifend91 ifend91: %t114 = call i32 @fn_uses_engine_systems() %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then92, label %ifend94 then92: store i32 1, ptr @g_g_uses_esys store ptr @.str661, ptr @g_cur_dir %t117 = call ptr @fn_find_comp(ptr @.str662) %t118 = icmp ne ptr %t117, null %t119 = zext i1 %t118 to i32 %t120 = icmp ne i32 %t119, 0 %t121 = zext i1 %t120 to i32 store i32 %t121, ptr %t116 br i1 %t120, label %scend96, label %sc95 sc95: %t122 = call ptr @fn_find_comp(ptr @.str663) %t123 = icmp ne ptr %t122, null %t124 = zext i1 %t123 to i32 %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t116 br label %scend96 scend96: %t127 = load i32, ptr %t116 %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %then97, label %ifend99 then97: call void @fn_do_import(ptr @.str664) br label %ifend99 ifend99: %t129 = call ptr @fn_find_comp(ptr @.str665) %t130 = icmp ne ptr %t129, null %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then100, label %ifend102 then100: call void @fn_do_import(ptr @.str666) call void @fn_do_import(ptr @.str667) br label %ifend102 ifend102: %t133 = call ptr @fn_find_comp(ptr @.str668) %t134 = icmp ne ptr %t133, null %t135 = zext i1 %t134 to i32 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then103, label %ifend105 then103: call void @fn_do_import(ptr @.str669) call void @fn_do_import(ptr @.str670) br label %ifend105 ifend105: %t137 = call ptr @fn_find_comp(ptr @.str671) %t138 = icmp ne ptr %t137, null %t139 = zext i1 %t138 to i32 %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %then106, label %ifend108 then106: call void @fn_do_import(ptr @.str672) call void @fn_do_import(ptr @.str673) br label %ifend108 ifend108: %t141 = call ptr @fn_find_comp(ptr @.str674) %t142 = icmp ne ptr %t141, null %t143 = zext i1 %t142 to i32 %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %then109, label %ifend111 then109: call void @fn_do_import(ptr @.str675) br label %ifend111 ifend111: %t146 = call ptr @fn_find_comp(ptr @.str676) %t147 = icmp ne ptr %t146, null %t148 = zext i1 %t147 to i32 %t149 = icmp ne i32 %t148, 0 %t150 = zext i1 %t149 to i32 store i32 %t150, ptr %t145 br i1 %t149, label %scend113, label %sc112 sc112: %t151 = call ptr @fn_find_comp(ptr @.str677) %t152 = icmp ne ptr %t151, null %t153 = zext i1 %t152 to i32 %t154 = icmp ne i32 %t153, 0 %t155 = zext i1 %t154 to i32 store i32 %t155, ptr %t145 br label %scend113 scend113: %t156 = load i32, ptr %t145 %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then114, label %ifend116 then114: call void @fn_do_import(ptr @.str678) call void @fn_do_import(ptr @.str679) store i32 1, ptr @g_g_uses_light br label %ifend116 ifend116: %t158 = load ptr, ptr %t1 store ptr %t158, ptr @g_cur_dir br label %ifend94 ifend94: br label %ret ret: ret void } define void @fn_parse_program() { entry: %t557 = alloca ptr %t561 = alloca ptr %t570 = alloca ptr %t573 = alloca i32 %t0 = getelementptr %LSlice, ptr null, i32 1 %t1 = ptrtoint ptr %t0 to i64 %t2 = call ptr @malloc(i64 %t1) %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 store ptr null, ptr %t3 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 store i32 0, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 store i32 0, ptr %t5 store ptr %t2, ptr @g_prog %t6 = getelementptr %LSlice, ptr null, i32 1 %t7 = ptrtoint ptr %t6 to i64 %t8 = call ptr @malloc(i64 %t7) %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 store ptr null, ptr %t9 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 store i32 0, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2 store i32 0, ptr %t11 store ptr %t8, ptr @g_g_computed %t12 = getelementptr %LSlice, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = call ptr @malloc(i64 %t13) %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 store ptr null, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 store i32 0, ptr %t16 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 store i32 0, ptr %t17 store ptr %t14, ptr @g_g_onspawn %t18 = getelementptr %LSlice, ptr null, i32 1 %t19 = ptrtoint ptr %t18 to i64 %t20 = call ptr @malloc(i64 %t19) %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 store ptr null, ptr %t21 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 store i32 0, ptr %t22 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 store i32 0, ptr %t23 store ptr %t20, ptr @g_g_ondespawn %t24 = getelementptr %LSlice, ptr null, i32 1 %t25 = ptrtoint ptr %t24 to i64 %t26 = call ptr @malloc(i64 %t25) %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 store ptr null, ptr %t27 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 store i32 0, ptr %t28 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2 store i32 0, ptr %t29 store ptr %t26, ptr @g_g_onattach %t30 = getelementptr %LSlice, ptr null, i32 1 %t31 = ptrtoint ptr %t30 to i64 %t32 = call ptr @malloc(i64 %t31) %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 store ptr null, ptr %t33 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 store i32 0, ptr %t34 %t35 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 2 store i32 0, ptr %t35 store ptr %t32, ptr @g_g_ondetach %t36 = getelementptr %LSlice, ptr null, i32 1 %t37 = ptrtoint ptr %t36 to i64 %t38 = call ptr @malloc(i64 %t37) %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 store ptr null, ptr %t39 %t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 store i32 0, ptr %t40 %t41 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 2 store i32 0, ptr %t41 store ptr %t38, ptr @g_g_onenable %t42 = getelementptr %LSlice, ptr null, i32 1 %t43 = ptrtoint ptr %t42 to i64 %t44 = call ptr @malloc(i64 %t43) %t45 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 store ptr null, ptr %t45 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 store i32 0, ptr %t46 %t47 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 2 store i32 0, ptr %t47 store ptr %t44, ptr @g_g_ondisable %t48 = getelementptr %LSlice, ptr null, i32 1 %t49 = ptrtoint ptr %t48 to i64 %t50 = call ptr @malloc(i64 %t49) %t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 store ptr null, ptr %t51 %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 store i32 0, ptr %t52 %t53 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 2 store i32 0, ptr %t53 store ptr %t50, ptr @g_g_scenes store i32 0, ptr @g_g_scene_count store i32 0, ptr @g_g_start_scene %t54 = getelementptr %LSlice, ptr null, i32 1 %t55 = ptrtoint ptr %t54 to i64 %t56 = call ptr @malloc(i64 %t55) %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 store ptr null, ptr %t57 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 store i32 0, ptr %t58 %t59 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 2 store i32 0, ptr %t59 store ptr %t56, ptr @g_g_events %t60 = getelementptr %LSlice, ptr null, i32 1 %t61 = ptrtoint ptr %t60 to i64 %t62 = call ptr @malloc(i64 %t61) %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 store ptr null, ptr %t63 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 store i32 0, ptr %t64 %t65 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 2 store i32 0, ptr %t65 store ptr %t62, ptr @g_g_onlisten %t66 = getelementptr %LSlice, ptr null, i32 1 %t67 = ptrtoint ptr %t66 to i64 %t68 = call ptr @malloc(i64 %t67) %t69 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0 store ptr null, ptr %t69 %t70 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 store i32 0, ptr %t70 %t71 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 2 store i32 0, ptr %t71 store ptr %t68, ptr @g_g_toggled_layers store i32 0, ptr @g_g_uses_regex store i32 0, ptr @g_g_uses_gl store i32 0, ptr @g_g_uses_vk store i32 0, ptr @g_g_uses_bignum store i32 0, ptr @g_g_uses_dict store i32 0, ptr @g_g_uses_numeric store i32 0, ptr @g_g_uses_jobs store i32 0, ptr @g_g_uses_query store i32 0, ptr @g_g_uses_reflect store i32 0, ptr @g_g_uses_esys store i32 0, ptr @g_g_uses_input store i32 0, ptr @g_g_has_clear_color store ptr null, ptr @g_g_clear_color store i32 0, ptr @g_g_warned_draw_sprite store i32 0, ptr @g_g_uses_world_despawn store i32 0, ptr @g_g_uses_light store i32 0, ptr @g_g_uses_value store i32 0, ptr @g_g_uses_rng %t72 = getelementptr %LSlice, ptr null, i32 1 %t73 = ptrtoint ptr %t72 to i64 %t74 = call ptr @malloc(i64 %t73) %t75 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 store ptr null, ptr %t75 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 store i32 0, ptr %t76 %t77 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 2 store i32 0, ptr %t77 store ptr %t74, ptr @g_g_rt_wants store i32 0, ptr @g_g_uses_xml store i32 0, ptr @g_g_uses_base64 store i32 0, ptr @g_g_uses_tiled store i32 0, ptr @g_g_uses_atlas store i32 0, ptr @g_g_uses_fx store i32 0, ptr @g_g_uses_reflect_io %t78 = getelementptr %LSlice, ptr null, i32 1 %t79 = ptrtoint ptr %t78 to i64 %t80 = call ptr @malloc(i64 %t79) %t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 0 store ptr null, ptr %t81 %t82 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 1 store i32 0, ptr %t82 %t83 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 2 store i32 0, ptr %t83 store ptr %t80, ptr @g_g_tests %t84 = getelementptr %LSlice, ptr null, i32 1 %t85 = ptrtoint ptr %t84 to i64 %t86 = call ptr @malloc(i64 %t85) %t87 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 0 store ptr null, ptr %t87 %t88 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 store i32 0, ptr %t88 %t89 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 2 store i32 0, ptr %t89 store ptr %t86, ptr @g_g_mod_sys_fn %t90 = getelementptr %LSlice, ptr null, i32 1 %t91 = ptrtoint ptr %t90 to i64 %t92 = call ptr @malloc(i64 %t91) %t93 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 0 store ptr null, ptr %t93 %t94 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 store i32 0, ptr %t94 %t95 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 2 store i32 0, ptr %t95 store ptr %t92, ptr @g_g_mod_sys_phase %t96 = getelementptr %LSlice, ptr null, i32 1 %t97 = ptrtoint ptr %t96 to i64 %t98 = call ptr @malloc(i64 %t97) %t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 store ptr null, ptr %t99 %t100 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1 store i32 0, ptr %t100 %t101 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 2 store i32 0, ptr %t101 store ptr %t98, ptr @g_g_esys_comp %t102 = getelementptr %LSlice, ptr null, i32 1 %t103 = ptrtoint ptr %t102 to i64 %t104 = call ptr @malloc(i64 %t103) %t105 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 0 store ptr null, ptr %t105 %t106 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 1 store i32 0, ptr %t106 %t107 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 2 store i32 0, ptr %t107 store ptr %t104, ptr @g_g_esys_fn %t108 = getelementptr %LSlice, ptr null, i32 1 %t109 = ptrtoint ptr %t108 to i64 %t110 = call ptr @malloc(i64 %t109) %t111 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 store ptr null, ptr %t111 %t112 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 store i32 0, ptr %t112 %t113 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 2 store i32 0, ptr %t113 store ptr %t110, ptr @g_g_esys_phase %t114 = getelementptr %LSlice, ptr null, i32 1 %t115 = ptrtoint ptr %t114 to i64 %t116 = call ptr @malloc(i64 %t115) %t117 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 0 store ptr null, ptr %t117 %t118 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 1 store i32 0, ptr %t118 %t119 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 2 store i32 0, ptr %t119 store ptr %t116, ptr @g_g_disabled_sys %t120 = load ptr, ptr @g_g_esys_comp %t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 1 %t122 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 2 %t123 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t124 = load i32, ptr %t121 %t125 = load i32, ptr %t122 %t126 = icmp sge i32 %t124, %t125 br i1 %t126, label %grow0, label %put1 grow0: %t127 = mul i32 %t125, 2 %t128 = icmp eq i32 %t125, 0 %t129 = select i1 %t128, i32 8, i32 %t127 %t130 = getelementptr ptr, ptr null, i32 1 %t131 = ptrtoint ptr %t130 to i64 %t132 = zext i32 %t129 to i64 %t133 = mul i64 %t132, %t131 %t134 = load ptr, ptr %t123 %t135 = call ptr @realloc(ptr %t134, i64 %t133) store ptr %t135, ptr %t123 store i32 %t129, ptr %t122 br label %put1 put1: %t136 = load ptr, ptr %t123 %t137 = getelementptr inbounds ptr, ptr %t136, i32 %t124 store ptr @.str680, ptr %t137 %t138 = add i32 %t124, 1 store i32 %t138, ptr %t121 %t139 = load ptr, ptr @g_g_esys_fn %t140 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 1 %t141 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 2 %t142 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 0 %t143 = load i32, ptr %t140 %t144 = load i32, ptr %t141 %t145 = icmp sge i32 %t143, %t144 br i1 %t145, label %grow2, label %put3 grow2: %t146 = mul i32 %t144, 2 %t147 = icmp eq i32 %t144, 0 %t148 = select i1 %t147, i32 8, i32 %t146 %t149 = getelementptr ptr, ptr null, i32 1 %t150 = ptrtoint ptr %t149 to i64 %t151 = zext i32 %t148 to i64 %t152 = mul i64 %t151, %t150 %t153 = load ptr, ptr %t142 %t154 = call ptr @realloc(ptr %t153, i64 %t152) store ptr %t154, ptr %t142 store i32 %t148, ptr %t141 br label %put3 put3: %t155 = load ptr, ptr %t142 %t156 = getelementptr inbounds ptr, ptr %t155, i32 %t143 store ptr @.str681, ptr %t156 %t157 = add i32 %t143, 1 store i32 %t157, ptr %t140 %t158 = load ptr, ptr @g_g_esys_phase %t159 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1 %t160 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 2 %t161 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 0 %t162 = load i32, ptr %t159 %t163 = load i32, ptr %t160 %t164 = icmp sge i32 %t162, %t163 br i1 %t164, label %grow4, label %put5 grow4: %t165 = mul i32 %t163, 2 %t166 = icmp eq i32 %t163, 0 %t167 = select i1 %t166, i32 8, i32 %t165 %t168 = getelementptr ptr, ptr null, i32 1 %t169 = ptrtoint ptr %t168 to i64 %t170 = zext i32 %t167 to i64 %t171 = mul i64 %t170, %t169 %t172 = load ptr, ptr %t161 %t173 = call ptr @realloc(ptr %t172, i64 %t171) store ptr %t173, ptr %t161 store i32 %t167, ptr %t160 br label %put5 put5: %t174 = load ptr, ptr %t161 %t175 = getelementptr inbounds ptr, ptr %t174, i32 %t162 store ptr @.str682, ptr %t175 %t176 = add i32 %t162, 1 store i32 %t176, ptr %t159 %t177 = load ptr, ptr @g_g_esys_comp %t178 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 1 %t179 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 2 %t180 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 0 %t181 = load i32, ptr %t178 %t182 = load i32, ptr %t179 %t183 = icmp sge i32 %t181, %t182 br i1 %t183, label %grow6, label %put7 grow6: %t184 = mul i32 %t182, 2 %t185 = icmp eq i32 %t182, 0 %t186 = select i1 %t185, i32 8, i32 %t184 %t187 = getelementptr ptr, ptr null, i32 1 %t188 = ptrtoint ptr %t187 to i64 %t189 = zext i32 %t186 to i64 %t190 = mul i64 %t189, %t188 %t191 = load ptr, ptr %t180 %t192 = call ptr @realloc(ptr %t191, i64 %t190) store ptr %t192, ptr %t180 store i32 %t186, ptr %t179 br label %put7 put7: %t193 = load ptr, ptr %t180 %t194 = getelementptr inbounds ptr, ptr %t193, i32 %t181 store ptr @.str683, ptr %t194 %t195 = add i32 %t181, 1 store i32 %t195, ptr %t178 %t196 = load ptr, ptr @g_g_esys_fn %t197 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 1 %t198 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 2 %t199 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 0 %t200 = load i32, ptr %t197 %t201 = load i32, ptr %t198 %t202 = icmp sge i32 %t200, %t201 br i1 %t202, label %grow8, label %put9 grow8: %t203 = mul i32 %t201, 2 %t204 = icmp eq i32 %t201, 0 %t205 = select i1 %t204, i32 8, i32 %t203 %t206 = getelementptr ptr, ptr null, i32 1 %t207 = ptrtoint ptr %t206 to i64 %t208 = zext i32 %t205 to i64 %t209 = mul i64 %t208, %t207 %t210 = load ptr, ptr %t199 %t211 = call ptr @realloc(ptr %t210, i64 %t209) store ptr %t211, ptr %t199 store i32 %t205, ptr %t198 br label %put9 put9: %t212 = load ptr, ptr %t199 %t213 = getelementptr inbounds ptr, ptr %t212, i32 %t200 store ptr @.str684, ptr %t213 %t214 = add i32 %t200, 1 store i32 %t214, ptr %t197 %t215 = load ptr, ptr @g_g_esys_phase %t216 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 1 %t217 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 2 %t218 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 0 %t219 = load i32, ptr %t216 %t220 = load i32, ptr %t217 %t221 = icmp sge i32 %t219, %t220 br i1 %t221, label %grow10, label %put11 grow10: %t222 = mul i32 %t220, 2 %t223 = icmp eq i32 %t220, 0 %t224 = select i1 %t223, i32 8, i32 %t222 %t225 = getelementptr ptr, ptr null, i32 1 %t226 = ptrtoint ptr %t225 to i64 %t227 = zext i32 %t224 to i64 %t228 = mul i64 %t227, %t226 %t229 = load ptr, ptr %t218 %t230 = call ptr @realloc(ptr %t229, i64 %t228) store ptr %t230, ptr %t218 store i32 %t224, ptr %t217 br label %put11 put11: %t231 = load ptr, ptr %t218 %t232 = getelementptr inbounds ptr, ptr %t231, i32 %t219 store ptr @.str685, ptr %t232 %t233 = add i32 %t219, 1 store i32 %t233, ptr %t216 %t234 = load ptr, ptr @g_g_esys_comp %t235 = getelementptr inbounds %LSlice, ptr %t234, i32 0, i32 1 %t236 = getelementptr inbounds %LSlice, ptr %t234, i32 0, i32 2 %t237 = getelementptr inbounds %LSlice, ptr %t234, i32 0, i32 0 %t238 = load i32, ptr %t235 %t239 = load i32, ptr %t236 %t240 = icmp sge i32 %t238, %t239 br i1 %t240, label %grow12, label %put13 grow12: %t241 = mul i32 %t239, 2 %t242 = icmp eq i32 %t239, 0 %t243 = select i1 %t242, i32 8, i32 %t241 %t244 = getelementptr ptr, ptr null, i32 1 %t245 = ptrtoint ptr %t244 to i64 %t246 = zext i32 %t243 to i64 %t247 = mul i64 %t246, %t245 %t248 = load ptr, ptr %t237 %t249 = call ptr @realloc(ptr %t248, i64 %t247) store ptr %t249, ptr %t237 store i32 %t243, ptr %t236 br label %put13 put13: %t250 = load ptr, ptr %t237 %t251 = getelementptr inbounds ptr, ptr %t250, i32 %t238 store ptr @.str686, ptr %t251 %t252 = add i32 %t238, 1 store i32 %t252, ptr %t235 %t253 = load ptr, ptr @g_g_esys_fn %t254 = getelementptr inbounds %LSlice, ptr %t253, i32 0, i32 1 %t255 = getelementptr inbounds %LSlice, ptr %t253, i32 0, i32 2 %t256 = getelementptr inbounds %LSlice, ptr %t253, i32 0, i32 0 %t257 = load i32, ptr %t254 %t258 = load i32, ptr %t255 %t259 = icmp sge i32 %t257, %t258 br i1 %t259, label %grow14, label %put15 grow14: %t260 = mul i32 %t258, 2 %t261 = icmp eq i32 %t258, 0 %t262 = select i1 %t261, i32 8, i32 %t260 %t263 = getelementptr ptr, ptr null, i32 1 %t264 = ptrtoint ptr %t263 to i64 %t265 = zext i32 %t262 to i64 %t266 = mul i64 %t265, %t264 %t267 = load ptr, ptr %t256 %t268 = call ptr @realloc(ptr %t267, i64 %t266) store ptr %t268, ptr %t256 store i32 %t262, ptr %t255 br label %put15 put15: %t269 = load ptr, ptr %t256 %t270 = getelementptr inbounds ptr, ptr %t269, i32 %t257 store ptr @.str687, ptr %t270 %t271 = add i32 %t257, 1 store i32 %t271, ptr %t254 %t272 = load ptr, ptr @g_g_esys_phase %t273 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 1 %t274 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 2 %t275 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 0 %t276 = load i32, ptr %t273 %t277 = load i32, ptr %t274 %t278 = icmp sge i32 %t276, %t277 br i1 %t278, label %grow16, label %put17 grow16: %t279 = mul i32 %t277, 2 %t280 = icmp eq i32 %t277, 0 %t281 = select i1 %t280, i32 8, i32 %t279 %t282 = getelementptr ptr, ptr null, i32 1 %t283 = ptrtoint ptr %t282 to i64 %t284 = zext i32 %t281 to i64 %t285 = mul i64 %t284, %t283 %t286 = load ptr, ptr %t275 %t287 = call ptr @realloc(ptr %t286, i64 %t285) store ptr %t287, ptr %t275 store i32 %t281, ptr %t274 br label %put17 put17: %t288 = load ptr, ptr %t275 %t289 = getelementptr inbounds ptr, ptr %t288, i32 %t276 store ptr @.str688, ptr %t289 %t290 = add i32 %t276, 1 store i32 %t290, ptr %t273 %t291 = load ptr, ptr @g_g_esys_comp %t292 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 1 %t293 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 2 %t294 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 0 %t295 = load i32, ptr %t292 %t296 = load i32, ptr %t293 %t297 = icmp sge i32 %t295, %t296 br i1 %t297, label %grow18, label %put19 grow18: %t298 = mul i32 %t296, 2 %t299 = icmp eq i32 %t296, 0 %t300 = select i1 %t299, i32 8, i32 %t298 %t301 = getelementptr ptr, ptr null, i32 1 %t302 = ptrtoint ptr %t301 to i64 %t303 = zext i32 %t300 to i64 %t304 = mul i64 %t303, %t302 %t305 = load ptr, ptr %t294 %t306 = call ptr @realloc(ptr %t305, i64 %t304) store ptr %t306, ptr %t294 store i32 %t300, ptr %t293 br label %put19 put19: %t307 = load ptr, ptr %t294 %t308 = getelementptr inbounds ptr, ptr %t307, i32 %t295 store ptr @.str689, ptr %t308 %t309 = add i32 %t295, 1 store i32 %t309, ptr %t292 %t310 = load ptr, ptr @g_g_esys_fn %t311 = getelementptr inbounds %LSlice, ptr %t310, i32 0, i32 1 %t312 = getelementptr inbounds %LSlice, ptr %t310, i32 0, i32 2 %t313 = getelementptr inbounds %LSlice, ptr %t310, i32 0, i32 0 %t314 = load i32, ptr %t311 %t315 = load i32, ptr %t312 %t316 = icmp sge i32 %t314, %t315 br i1 %t316, label %grow20, label %put21 grow20: %t317 = mul i32 %t315, 2 %t318 = icmp eq i32 %t315, 0 %t319 = select i1 %t318, i32 8, i32 %t317 %t320 = getelementptr ptr, ptr null, i32 1 %t321 = ptrtoint ptr %t320 to i64 %t322 = zext i32 %t319 to i64 %t323 = mul i64 %t322, %t321 %t324 = load ptr, ptr %t313 %t325 = call ptr @realloc(ptr %t324, i64 %t323) store ptr %t325, ptr %t313 store i32 %t319, ptr %t312 br label %put21 put21: %t326 = load ptr, ptr %t313 %t327 = getelementptr inbounds ptr, ptr %t326, i32 %t314 store ptr @.str690, ptr %t327 %t328 = add i32 %t314, 1 store i32 %t328, ptr %t311 %t329 = load ptr, ptr @g_g_esys_phase %t330 = getelementptr inbounds %LSlice, ptr %t329, i32 0, i32 1 %t331 = getelementptr inbounds %LSlice, ptr %t329, i32 0, i32 2 %t332 = getelementptr inbounds %LSlice, ptr %t329, i32 0, i32 0 %t333 = load i32, ptr %t330 %t334 = load i32, ptr %t331 %t335 = icmp sge i32 %t333, %t334 br i1 %t335, label %grow22, label %put23 grow22: %t336 = mul i32 %t334, 2 %t337 = icmp eq i32 %t334, 0 %t338 = select i1 %t337, i32 8, i32 %t336 %t339 = getelementptr ptr, ptr null, i32 1 %t340 = ptrtoint ptr %t339 to i64 %t341 = zext i32 %t338 to i64 %t342 = mul i64 %t341, %t340 %t343 = load ptr, ptr %t332 %t344 = call ptr @realloc(ptr %t343, i64 %t342) store ptr %t344, ptr %t332 store i32 %t338, ptr %t331 br label %put23 put23: %t345 = load ptr, ptr %t332 %t346 = getelementptr inbounds ptr, ptr %t345, i32 %t333 store ptr @.str691, ptr %t346 %t347 = add i32 %t333, 1 store i32 %t347, ptr %t330 %t348 = load ptr, ptr @g_g_esys_comp %t349 = getelementptr inbounds %LSlice, ptr %t348, i32 0, i32 1 %t350 = getelementptr inbounds %LSlice, ptr %t348, i32 0, i32 2 %t351 = getelementptr inbounds %LSlice, ptr %t348, i32 0, i32 0 %t352 = load i32, ptr %t349 %t353 = load i32, ptr %t350 %t354 = icmp sge i32 %t352, %t353 br i1 %t354, label %grow24, label %put25 grow24: %t355 = mul i32 %t353, 2 %t356 = icmp eq i32 %t353, 0 %t357 = select i1 %t356, i32 8, i32 %t355 %t358 = getelementptr ptr, ptr null, i32 1 %t359 = ptrtoint ptr %t358 to i64 %t360 = zext i32 %t357 to i64 %t361 = mul i64 %t360, %t359 %t362 = load ptr, ptr %t351 %t363 = call ptr @realloc(ptr %t362, i64 %t361) store ptr %t363, ptr %t351 store i32 %t357, ptr %t350 br label %put25 put25: %t364 = load ptr, ptr %t351 %t365 = getelementptr inbounds ptr, ptr %t364, i32 %t352 store ptr @.str692, ptr %t365 %t366 = add i32 %t352, 1 store i32 %t366, ptr %t349 %t367 = load ptr, ptr @g_g_esys_fn %t368 = getelementptr inbounds %LSlice, ptr %t367, i32 0, i32 1 %t369 = getelementptr inbounds %LSlice, ptr %t367, i32 0, i32 2 %t370 = getelementptr inbounds %LSlice, ptr %t367, i32 0, i32 0 %t371 = load i32, ptr %t368 %t372 = load i32, ptr %t369 %t373 = icmp sge i32 %t371, %t372 br i1 %t373, label %grow26, label %put27 grow26: %t374 = mul i32 %t372, 2 %t375 = icmp eq i32 %t372, 0 %t376 = select i1 %t375, i32 8, i32 %t374 %t377 = getelementptr ptr, ptr null, i32 1 %t378 = ptrtoint ptr %t377 to i64 %t379 = zext i32 %t376 to i64 %t380 = mul i64 %t379, %t378 %t381 = load ptr, ptr %t370 %t382 = call ptr @realloc(ptr %t381, i64 %t380) store ptr %t382, ptr %t370 store i32 %t376, ptr %t369 br label %put27 put27: %t383 = load ptr, ptr %t370 %t384 = getelementptr inbounds ptr, ptr %t383, i32 %t371 store ptr @.str693, ptr %t384 %t385 = add i32 %t371, 1 store i32 %t385, ptr %t368 %t386 = load ptr, ptr @g_g_esys_phase %t387 = getelementptr inbounds %LSlice, ptr %t386, i32 0, i32 1 %t388 = getelementptr inbounds %LSlice, ptr %t386, i32 0, i32 2 %t389 = getelementptr inbounds %LSlice, ptr %t386, i32 0, i32 0 %t390 = load i32, ptr %t387 %t391 = load i32, ptr %t388 %t392 = icmp sge i32 %t390, %t391 br i1 %t392, label %grow28, label %put29 grow28: %t393 = mul i32 %t391, 2 %t394 = icmp eq i32 %t391, 0 %t395 = select i1 %t394, i32 8, i32 %t393 %t396 = getelementptr ptr, ptr null, i32 1 %t397 = ptrtoint ptr %t396 to i64 %t398 = zext i32 %t395 to i64 %t399 = mul i64 %t398, %t397 %t400 = load ptr, ptr %t389 %t401 = call ptr @realloc(ptr %t400, i64 %t399) store ptr %t401, ptr %t389 store i32 %t395, ptr %t388 br label %put29 put29: %t402 = load ptr, ptr %t389 %t403 = getelementptr inbounds ptr, ptr %t402, i32 %t390 store ptr @.str694, ptr %t403 %t404 = add i32 %t390, 1 store i32 %t404, ptr %t387 %t405 = load ptr, ptr @g_g_esys_comp %t406 = getelementptr inbounds %LSlice, ptr %t405, i32 0, i32 1 %t407 = getelementptr inbounds %LSlice, ptr %t405, i32 0, i32 2 %t408 = getelementptr inbounds %LSlice, ptr %t405, i32 0, i32 0 %t409 = load i32, ptr %t406 %t410 = load i32, ptr %t407 %t411 = icmp sge i32 %t409, %t410 br i1 %t411, label %grow30, label %put31 grow30: %t412 = mul i32 %t410, 2 %t413 = icmp eq i32 %t410, 0 %t414 = select i1 %t413, i32 8, i32 %t412 %t415 = getelementptr ptr, ptr null, i32 1 %t416 = ptrtoint ptr %t415 to i64 %t417 = zext i32 %t414 to i64 %t418 = mul i64 %t417, %t416 %t419 = load ptr, ptr %t408 %t420 = call ptr @realloc(ptr %t419, i64 %t418) store ptr %t420, ptr %t408 store i32 %t414, ptr %t407 br label %put31 put31: %t421 = load ptr, ptr %t408 %t422 = getelementptr inbounds ptr, ptr %t421, i32 %t409 store ptr @.str695, ptr %t422 %t423 = add i32 %t409, 1 store i32 %t423, ptr %t406 %t424 = load ptr, ptr @g_g_esys_fn %t425 = getelementptr inbounds %LSlice, ptr %t424, i32 0, i32 1 %t426 = getelementptr inbounds %LSlice, ptr %t424, i32 0, i32 2 %t427 = getelementptr inbounds %LSlice, ptr %t424, i32 0, i32 0 %t428 = load i32, ptr %t425 %t429 = load i32, ptr %t426 %t430 = icmp sge i32 %t428, %t429 br i1 %t430, label %grow32, label %put33 grow32: %t431 = mul i32 %t429, 2 %t432 = icmp eq i32 %t429, 0 %t433 = select i1 %t432, i32 8, i32 %t431 %t434 = getelementptr ptr, ptr null, i32 1 %t435 = ptrtoint ptr %t434 to i64 %t436 = zext i32 %t433 to i64 %t437 = mul i64 %t436, %t435 %t438 = load ptr, ptr %t427 %t439 = call ptr @realloc(ptr %t438, i64 %t437) store ptr %t439, ptr %t427 store i32 %t433, ptr %t426 br label %put33 put33: %t440 = load ptr, ptr %t427 %t441 = getelementptr inbounds ptr, ptr %t440, i32 %t428 store ptr @.str696, ptr %t441 %t442 = add i32 %t428, 1 store i32 %t442, ptr %t425 %t443 = load ptr, ptr @g_g_esys_phase %t444 = getelementptr inbounds %LSlice, ptr %t443, i32 0, i32 1 %t445 = getelementptr inbounds %LSlice, ptr %t443, i32 0, i32 2 %t446 = getelementptr inbounds %LSlice, ptr %t443, i32 0, i32 0 %t447 = load i32, ptr %t444 %t448 = load i32, ptr %t445 %t449 = icmp sge i32 %t447, %t448 br i1 %t449, label %grow34, label %put35 grow34: %t450 = mul i32 %t448, 2 %t451 = icmp eq i32 %t448, 0 %t452 = select i1 %t451, i32 8, i32 %t450 %t453 = getelementptr ptr, ptr null, i32 1 %t454 = ptrtoint ptr %t453 to i64 %t455 = zext i32 %t452 to i64 %t456 = mul i64 %t455, %t454 %t457 = load ptr, ptr %t446 %t458 = call ptr @realloc(ptr %t457, i64 %t456) store ptr %t458, ptr %t446 store i32 %t452, ptr %t445 br label %put35 put35: %t459 = load ptr, ptr %t446 %t460 = getelementptr inbounds ptr, ptr %t459, i32 %t447 store ptr @.str697, ptr %t460 %t461 = add i32 %t447, 1 store i32 %t461, ptr %t444 %t462 = load ptr, ptr @g_g_esys_comp %t463 = getelementptr inbounds %LSlice, ptr %t462, i32 0, i32 1 %t464 = getelementptr inbounds %LSlice, ptr %t462, i32 0, i32 2 %t465 = getelementptr inbounds %LSlice, ptr %t462, i32 0, i32 0 %t466 = load i32, ptr %t463 %t467 = load i32, ptr %t464 %t468 = icmp sge i32 %t466, %t467 br i1 %t468, label %grow36, label %put37 grow36: %t469 = mul i32 %t467, 2 %t470 = icmp eq i32 %t467, 0 %t471 = select i1 %t470, i32 8, i32 %t469 %t472 = getelementptr ptr, ptr null, i32 1 %t473 = ptrtoint ptr %t472 to i64 %t474 = zext i32 %t471 to i64 %t475 = mul i64 %t474, %t473 %t476 = load ptr, ptr %t465 %t477 = call ptr @realloc(ptr %t476, i64 %t475) store ptr %t477, ptr %t465 store i32 %t471, ptr %t464 br label %put37 put37: %t478 = load ptr, ptr %t465 %t479 = getelementptr inbounds ptr, ptr %t478, i32 %t466 store ptr @.str698, ptr %t479 %t480 = add i32 %t466, 1 store i32 %t480, ptr %t463 %t481 = load ptr, ptr @g_g_esys_fn %t482 = getelementptr inbounds %LSlice, ptr %t481, i32 0, i32 1 %t483 = getelementptr inbounds %LSlice, ptr %t481, i32 0, i32 2 %t484 = getelementptr inbounds %LSlice, ptr %t481, i32 0, i32 0 %t485 = load i32, ptr %t482 %t486 = load i32, ptr %t483 %t487 = icmp sge i32 %t485, %t486 br i1 %t487, label %grow38, label %put39 grow38: %t488 = mul i32 %t486, 2 %t489 = icmp eq i32 %t486, 0 %t490 = select i1 %t489, i32 8, i32 %t488 %t491 = getelementptr ptr, ptr null, i32 1 %t492 = ptrtoint ptr %t491 to i64 %t493 = zext i32 %t490 to i64 %t494 = mul i64 %t493, %t492 %t495 = load ptr, ptr %t484 %t496 = call ptr @realloc(ptr %t495, i64 %t494) store ptr %t496, ptr %t484 store i32 %t490, ptr %t483 br label %put39 put39: %t497 = load ptr, ptr %t484 %t498 = getelementptr inbounds ptr, ptr %t497, i32 %t485 store ptr @.str699, ptr %t498 %t499 = add i32 %t485, 1 store i32 %t499, ptr %t482 %t500 = load ptr, ptr @g_g_esys_phase %t501 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 1 %t502 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 2 %t503 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 0 %t504 = load i32, ptr %t501 %t505 = load i32, ptr %t502 %t506 = icmp sge i32 %t504, %t505 br i1 %t506, label %grow40, label %put41 grow40: %t507 = mul i32 %t505, 2 %t508 = icmp eq i32 %t505, 0 %t509 = select i1 %t508, i32 8, i32 %t507 %t510 = getelementptr ptr, ptr null, i32 1 %t511 = ptrtoint ptr %t510 to i64 %t512 = zext i32 %t509 to i64 %t513 = mul i64 %t512, %t511 %t514 = load ptr, ptr %t503 %t515 = call ptr @realloc(ptr %t514, i64 %t513) store ptr %t515, ptr %t503 store i32 %t509, ptr %t502 br label %put41 put41: %t516 = load ptr, ptr %t503 %t517 = getelementptr inbounds ptr, ptr %t516, i32 %t504 store ptr @.str700, ptr %t517 %t518 = add i32 %t504, 1 store i32 %t518, ptr %t501 %t519 = getelementptr %LSlice, ptr null, i32 1 %t520 = ptrtoint ptr %t519 to i64 %t521 = call ptr @malloc(i64 %t520) %t522 = getelementptr inbounds %LSlice, ptr %t521, i32 0, i32 0 store ptr null, ptr %t522 %t523 = getelementptr inbounds %LSlice, ptr %t521, i32 0, i32 1 store i32 0, ptr %t523 %t524 = getelementptr inbounds %LSlice, ptr %t521, i32 0, i32 2 store i32 0, ptr %t524 store ptr %t521, ptr @g_g_namespaces %t525 = getelementptr %LSlice, ptr null, i32 1 %t526 = ptrtoint ptr %t525 to i64 %t527 = call ptr @malloc(i64 %t526) %t528 = getelementptr inbounds %LSlice, ptr %t527, i32 0, i32 0 store ptr null, ptr %t528 %t529 = getelementptr inbounds %LSlice, ptr %t527, i32 0, i32 1 store i32 0, ptr %t529 %t530 = getelementptr inbounds %LSlice, ptr %t527, i32 0, i32 2 store i32 0, ptr %t530 store ptr %t527, ptr @g_g_ns_blocks %t531 = getelementptr %LSlice, ptr null, i32 1 %t532 = ptrtoint ptr %t531 to i64 %t533 = call ptr @malloc(i64 %t532) %t534 = getelementptr inbounds %LSlice, ptr %t533, i32 0, i32 0 store ptr null, ptr %t534 %t535 = getelementptr inbounds %LSlice, ptr %t533, i32 0, i32 1 store i32 0, ptr %t535 %t536 = getelementptr inbounds %LSlice, ptr %t533, i32 0, i32 2 store i32 0, ptr %t536 store ptr %t533, ptr @g_g_ns_exports %t537 = getelementptr %LSlice, ptr null, i32 1 %t538 = ptrtoint ptr %t537 to i64 %t539 = call ptr @malloc(i64 %t538) %t540 = getelementptr inbounds %LSlice, ptr %t539, i32 0, i32 0 store ptr null, ptr %t540 %t541 = getelementptr inbounds %LSlice, ptr %t539, i32 0, i32 1 store i32 0, ptr %t541 %t542 = getelementptr inbounds %LSlice, ptr %t539, i32 0, i32 2 store i32 0, ptr %t542 store ptr %t539, ptr @g_loaded_paths call void @fn_skipnl() store ptr @.str701, ptr @g_g_game_name br label %wcond42 wcond42: %t543 = call i32 @fn_is_id(ptr @.str702) %t544 = icmp ne i32 %t543, 0 br i1 %t544, label %wbody43, label %wend44 wbody43: %t545 = load i32, ptr @g_pi %t546 = add i32 %t545, 1 store i32 %t546, ptr @g_pi %t547 = load ptr, ptr @g_toks %t548 = load i32, ptr @g_pi %t549 = getelementptr inbounds %LSlice, ptr %t547, i32 0, i32 0 %t550 = load ptr, ptr %t549 %t551 = getelementptr inbounds %LSlice, ptr %t547, i32 0, i32 1 %t552 = load i32, ptr %t551 %t553 = icmp ult i32 %t548, %t552 br i1 %t553, label %ixok45, label %ixbad46 ixbad46: %t554 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t554, ptr @.fmt_bounds, ptr @.str703, i32 %t548, i32 %t552) call void @exit(i32 1) unreachable ixok45: %t555 = getelementptr inbounds ptr, ptr %t550, i32 %t548 %t556 = load ptr, ptr %t555 store ptr %t556, ptr %t557 %t558 = load ptr, ptr %t557 %t559 = getelementptr inbounds %Cmp_Tok, ptr %t558, i32 0, i32 1 %t560 = load ptr, ptr %t559 store ptr %t560, ptr %t561 %t562 = load i32, ptr @g_pi %t563 = add i32 %t562, 1 store i32 %t563, ptr @g_pi %t564 = load ptr, ptr %t561 call void @fn_do_import(ptr %t564) call void @fn_skipnl() br label %wcond42 wend44: br label %wcond47 wcond47: %t565 = call i32 @fn_is_op(ptr @.str704) %t566 = icmp ne i32 %t565, 0 br i1 %t566, label %wbody48, label %wend49 wbody48: %t567 = load i32, ptr @g_pi %t568 = add i32 %t567, 1 store i32 %t568, ptr @g_pi %t569 = call ptr @fn_eat_id() store ptr %t569, ptr %t570 %t571 = call i32 @fn_is_op(ptr @.str705) %t572 = icmp ne i32 %t571, 0 br i1 %t572, label %then50, label %ifend52 then50: store i32 0, ptr %t573 br label %wcond53 wcond53: %t574 = icmp ne i32 1, 0 br i1 %t574, label %wbody54, label %wend55 wbody54: %t575 = call i32 @fn_is_op(ptr @.str706) %t576 = icmp ne i32 %t575, 0 br i1 %t576, label %then56, label %ifend58 then56: %t577 = load i32, ptr %t573 %t578 = add i32 %t577, 1 store i32 %t578, ptr %t573 br label %ifend58 ifend58: %t579 = call i32 @fn_is_op(ptr @.str707) %t580 = icmp ne i32 %t579, 0 br i1 %t580, label %then59, label %ifend61 then59: %t581 = load i32, ptr %t573 %t582 = sub i32 %t581, 1 store i32 %t582, ptr %t573 br label %ifend61 ifend61: %t583 = load i32, ptr @g_pi %t584 = add i32 %t583, 1 store i32 %t584, ptr @g_pi %t585 = load i32, ptr %t573 %t586 = icmp eq i32 %t585, 0 %t587 = zext i1 %t586 to i32 %t588 = icmp ne i32 %t587, 0 br i1 %t588, label %then62, label %ifend64 then62: br label %wend55 ifend64: br label %wcond53 wend55: br label %ifend52 ifend52: call void @fn_skipnl() br label %wcond47 wend49: %t589 = call i32 @fn_is_id(ptr @.str708) %t590 = icmp ne i32 %t589, 0 br i1 %t590, label %then65, label %ifend67 then65: %t591 = load i32, ptr @g_pi %t592 = add i32 %t591, 1 store i32 %t592, ptr @g_pi %t593 = call ptr @fn_eat_id() store ptr %t593, ptr @g_g_game_name call void @fn_skipnl() call void @fn_eat_op(ptr @.str709) br label %ifend67 ifend67: br label %wcond68 wcond68: %t594 = icmp ne i32 1, 0 br i1 %t594, label %wbody69, label %wend70 wbody69: call void @fn_skipnl() %t595 = load ptr, ptr @g_toks %t596 = load i32, ptr @g_pi %t597 = getelementptr inbounds %LSlice, ptr %t595, i32 0, i32 0 %t598 = load ptr, ptr %t597 %t599 = getelementptr inbounds %LSlice, ptr %t595, i32 0, i32 1 %t600 = load i32, ptr %t599 %t601 = icmp ult i32 %t596, %t600 br i1 %t601, label %ixok71, label %ixbad72 ixbad72: %t602 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t602, ptr @.fmt_bounds, ptr @.str710, i32 %t596, i32 %t600) call void @exit(i32 1) unreachable ixok71: %t603 = getelementptr inbounds ptr, ptr %t598, i32 %t596 %t604 = load ptr, ptr %t603 %t605 = getelementptr inbounds %Cmp_Tok, ptr %t604, i32 0, i32 0 %t606 = load i32, ptr %t605 %t607 = icmp eq i32 %t606, 5 %t608 = zext i1 %t607 to i32 %t609 = icmp ne i32 %t608, 0 br i1 %t609, label %then73, label %ifend75 then73: br label %wend70 ifend75: %t610 = call i32 @fn_is_op(ptr @.str711) %t611 = icmp ne i32 %t610, 0 br i1 %t611, label %then76, label %ifend78 then76: br label %wend70 ifend78: call void @fn_parse_one_decl() br label %wcond68 wend70: call void @fn_modules_finish() call void @fn_registries_finish() call void @fn_ports_finish() call void @fn_views_finish() call void @fn_components_finish() br label %ret ret: ret void } define ptr @fn_parse_component() { entry: %retval = alloca ptr %t3 = alloca ptr %t18 = alloca i32 %t19 = alloca i32 %t25 = alloca ptr %t33 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 8) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 %t7 = call i32 @fn_is_op(ptr @.str712) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t3 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 11 %t11 = call ptr @fn_gen_params() store ptr %t11, ptr %t10 br label %ifend2 ifend2: %t12 = load ptr, ptr %t3 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 11 %t14 = load ptr, ptr %t13 call void @fn_gen_enter(ptr %t14) call void @fn_skipnl() call void @fn_eat_op(ptr @.str713) br label %wcond3 wcond3: %t15 = icmp ne i32 1, 0 br i1 %t15, label %wbody4, label %wend5 wbody4: call void @fn_skipnl() %t16 = call i32 @fn_is_op(ptr @.str714) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: br label %wend5 ifend8: store i32 0, ptr %t18 store i32 0, ptr %t19 %t20 = call i32 @fn_is_op(ptr @.str715) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then9, label %ifend11 then9: %t22 = load i32, ptr @g_pi %t23 = add i32 %t22, 1 store i32 %t23, ptr @g_pi %t24 = call ptr @fn_eat_id() store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t25 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str716) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then12, label %else13 then12: store i32 1, ptr %t18 br label %ifend14 else13: %t29 = load ptr, ptr %t25 %t30 = call i32 @lp_str_eq(ptr %t29, ptr @.str717) %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then15, label %ifend17 then15: store i32 1, ptr %t19 br label %ifend17 ifend17: br label %ifend14 ifend14: call void @fn_skipnl() br label %ifend11 ifend11: %t32 = call ptr @fn_node(i32 1) store ptr %t32, ptr %t33 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = call ptr @fn_eat_id() store ptr %t36, ptr %t35 call void @fn_eat_op(ptr @.str718) %t37 = load ptr, ptr %t33 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 3 %t39 = call ptr @fn_ptype() store ptr %t39, ptr %t38 %t40 = call i32 @fn_is_op(ptr @.str719) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then18, label %ifend20 then18: %t42 = load i32, ptr @g_pi %t43 = add i32 %t42, 1 store i32 %t43, ptr @g_pi %t44 = load ptr, ptr %t33 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 4 %t46 = call ptr @fn_expr() store ptr %t46, ptr %t45 br label %ifend20 ifend20: %t47 = load i32, ptr %t19 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then21, label %ifend23 then21: %t49 = load ptr, ptr %t33 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 2 store i32 1, ptr %t50 br label %ifend23 ifend23: %t51 = load i32, ptr %t18 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then24, label %else25 then24: %t53 = load ptr, ptr %t3 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 1 %t55 = load ptr, ptr %t54 %t56 = load ptr, ptr %t33 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = load ptr, ptr %t33 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 3 %t61 = load ptr, ptr %t60 %t62 = load ptr, ptr %t33 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 4 %t64 = load ptr, ptr %t63 call void @fn_register_computed(ptr %t55, ptr %t58, ptr %t61, ptr %t64) br label %ifend26 else25: %t65 = load ptr, ptr %t3 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 7 %t67 = load ptr, ptr %t66 %t68 = load ptr, ptr %t33 %t69 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 1 %t70 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 2 %t71 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 0 %t72 = load i32, ptr %t69 %t73 = load i32, ptr %t70 %t74 = icmp sge i32 %t72, %t73 br i1 %t74, label %grow27, label %put28 grow27: %t75 = mul i32 %t73, 2 %t76 = icmp eq i32 %t73, 0 %t77 = select i1 %t76, i32 8, i32 %t75 %t78 = getelementptr ptr, ptr null, i32 1 %t79 = ptrtoint ptr %t78 to i64 %t80 = zext i32 %t77 to i64 %t81 = mul i64 %t80, %t79 %t82 = load ptr, ptr %t71 %t83 = call ptr @realloc(ptr %t82, i64 %t81) store ptr %t83, ptr %t71 store i32 %t77, ptr %t70 br label %put28 put28: %t84 = load ptr, ptr %t71 %t85 = getelementptr inbounds ptr, ptr %t84, i32 %t72 store ptr %t68, ptr %t85 %t86 = add i32 %t72, 1 store i32 %t86, ptr %t69 br label %ifend26 ifend26: %t87 = call i32 @fn_is_op(ptr @.str720) %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then29, label %ifend31 then29: %t89 = load i32, ptr @g_pi %t90 = add i32 %t89, 1 store i32 %t90, ptr @g_pi br label %ifend31 ifend31: br label %wcond3 wend5: call void @fn_eat_op(ptr @.str721) call void @fn_gen_enter(ptr null) %t91 = load ptr, ptr %t3 store ptr %t91, ptr %retval br label %ret ret: %t92 = load ptr, ptr %retval ret ptr %t92 } define ptr @fn_parse_event() { entry: %retval = alloca ptr %t3 = alloca ptr %t17 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 48) store ptr %t2, ptr %t3 %t4 = call i32 @fn_is_id(ptr @.str722) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load i32, ptr @g_pi %t7 = add i32 %t6, 1 store i32 %t7, ptr @g_pi %t8 = load ptr, ptr %t3 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 2 store i32 1, ptr %t9 br label %ifend2 ifend2: %t10 = load ptr, ptr %t3 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 1 %t12 = call ptr @fn_eat_id() store ptr %t12, ptr %t11 call void @fn_skipnl() call void @fn_eat_op(ptr @.str723) br label %wcond3 wcond3: %t13 = icmp ne i32 1, 0 br i1 %t13, label %wbody4, label %wend5 wbody4: call void @fn_skipnl() %t14 = call i32 @fn_is_op(ptr @.str724) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then6, label %ifend8 then6: br label %wend5 ifend8: %t16 = call ptr @fn_node(i32 1) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = call ptr @fn_eat_id() store ptr %t20, ptr %t19 call void @fn_eat_op(ptr @.str725) %t21 = load ptr, ptr %t17 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 3 %t23 = call ptr @fn_ptype() store ptr %t23, ptr %t22 %t24 = call i32 @fn_is_op(ptr @.str726) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then9, label %ifend11 then9: %t26 = load i32, ptr @g_pi %t27 = add i32 %t26, 1 store i32 %t27, ptr @g_pi %t28 = load ptr, ptr %t17 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 4 %t30 = call ptr @fn_expr() store ptr %t30, ptr %t29 br label %ifend11 ifend11: %t31 = load ptr, ptr %t3 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = load ptr, ptr %t17 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 2 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t38 = load i32, ptr %t35 %t39 = load i32, ptr %t36 %t40 = icmp sge i32 %t38, %t39 br i1 %t40, label %grow12, label %put13 grow12: %t41 = mul i32 %t39, 2 %t42 = icmp eq i32 %t39, 0 %t43 = select i1 %t42, i32 8, i32 %t41 %t44 = getelementptr ptr, ptr null, i32 1 %t45 = ptrtoint ptr %t44 to i64 %t46 = zext i32 %t43 to i64 %t47 = mul i64 %t46, %t45 %t48 = load ptr, ptr %t37 %t49 = call ptr @realloc(ptr %t48, i64 %t47) store ptr %t49, ptr %t37 store i32 %t43, ptr %t36 br label %put13 put13: %t50 = load ptr, ptr %t37 %t51 = getelementptr inbounds ptr, ptr %t50, i32 %t38 store ptr %t34, ptr %t51 %t52 = add i32 %t38, 1 store i32 %t52, ptr %t35 %t53 = call i32 @fn_is_op(ptr @.str727) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then14, label %ifend16 then14: %t55 = load i32, ptr @g_pi %t56 = add i32 %t55, 1 store i32 %t56, ptr @g_pi br label %ifend16 ifend16: br label %wcond3 wend5: call void @fn_eat_op(ptr @.str728) %t57 = load ptr, ptr %t3 store ptr %t57, ptr %retval br label %ret ret: %t58 = load ptr, ptr %retval ret ptr %t58 } define ptr @fn_parse_system() { entry: %retval = alloca ptr %t3 = alloca ptr %t15 = alloca ptr %t18 = alloca i32 %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 9) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3 store ptr @.str729, ptr %t8 br label %wcond0 wcond0: %t9 = icmp ne i32 1, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t10 = call i32 @fn_is_op(ptr @.str730) %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: %t12 = load i32, ptr @g_pi %t13 = add i32 %t12, 1 store i32 %t13, ptr @g_pi %t14 = call ptr @fn_eat_id() store ptr %t14, ptr %t15 %t16 = call i32 @fn_is_op(ptr @.str731) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: store i32 0, ptr %t18 br label %wcond9 wcond9: %t19 = icmp ne i32 1, 0 br i1 %t19, label %wbody10, label %wend11 wbody10: %t20 = call i32 @fn_is_op(ptr @.str732) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then12, label %ifend14 then12: %t22 = load i32, ptr %t18 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t18 br label %ifend14 ifend14: %t24 = call i32 @fn_is_op(ptr @.str733) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then15, label %ifend17 then15: %t26 = load i32, ptr %t18 %t27 = sub i32 %t26, 1 store i32 %t27, ptr %t18 br label %ifend17 ifend17: %t28 = load i32, ptr @g_pi %t29 = add i32 %t28, 1 store i32 %t29, ptr @g_pi %t30 = load i32, ptr %t18 %t31 = icmp eq i32 %t30, 0 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then18, label %ifend20 then18: br label %wend11 ifend20: br label %wcond9 wend11: br label %ifend8 ifend8: br label %wcond0 ifend5: %t34 = call i32 @fn_is_id(ptr @.str734) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then21, label %ifend23 then21: %t36 = load i32, ptr @g_pi %t37 = add i32 %t36, 1 store i32 %t37, ptr @g_pi %t38 = load ptr, ptr %t3 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 3 %t40 = call ptr @fn_eat_id() store ptr %t40, ptr %t39 %t41 = load ptr, ptr %t3 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 3 %t43 = load ptr, ptr %t42 %t44 = call i32 @fn_is_phase_name(ptr %t43) %t45 = icmp eq i32 %t44, 0 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then24, label %ifend26 then24: %t48 = load ptr, ptr %t3 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 3 %t50 = load ptr, ptr %t49 %t51 = call ptr @lp_str_concat(ptr @.str735, ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t51, ptr @.str736) call void @fn_perr(ptr %t52) br label %ifend26 ifend26: br label %wcond0 ifend23: br label %wend2 wend2: call void @fn_skipnl() %t53 = load ptr, ptr %t3 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 4 %t55 = call ptr @fn_block() store ptr %t55, ptr %t54 %t56 = load ptr, ptr %t3 store ptr %t56, ptr %retval br label %ret ret: %t57 = load ptr, ptr %retval ret ptr %t57 } define ptr @fn_parse_query_tail() { entry: %retval = alloca ptr %t1 = alloca ptr %t11 = alloca ptr %t40 = alloca ptr call void @fn_eat_op(ptr @.str737) %t0 = call ptr @fn_node(i32 7) store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t2 = call i32 @fn_is_op(ptr @.str738) %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %wbody1, label %wend2 wbody1: %t6 = call i32 @fn_is_op(ptr @.str739) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then3, label %else4 then3: %t8 = load i32, ptr @g_pi %t9 = add i32 %t8, 1 store i32 %t9, ptr @g_pi %t10 = call ptr @fn_node(i32 33) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = call ptr @fn_eat_id() store ptr %t14, ptr %t13 %t15 = load ptr, ptr %t11 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 2 store i32 1, ptr %t16 %t17 = load ptr, ptr %t1 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t11 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t22 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 2 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t24 = load i32, ptr %t21 %t25 = load i32, ptr %t22 %t26 = icmp sge i32 %t24, %t25 br i1 %t26, label %grow6, label %put7 grow6: %t27 = mul i32 %t25, 2 %t28 = icmp eq i32 %t25, 0 %t29 = select i1 %t28, i32 8, i32 %t27 %t30 = getelementptr ptr, ptr null, i32 1 %t31 = ptrtoint ptr %t30 to i64 %t32 = zext i32 %t29 to i64 %t33 = mul i64 %t32, %t31 %t34 = load ptr, ptr %t23 %t35 = call ptr @realloc(ptr %t34, i64 %t33) store ptr %t35, ptr %t23 store i32 %t29, ptr %t22 br label %put7 put7: %t36 = load ptr, ptr %t23 %t37 = getelementptr inbounds ptr, ptr %t36, i32 %t24 store ptr %t20, ptr %t37 %t38 = add i32 %t24, 1 store i32 %t38, ptr %t21 call void @fn_eat_op(ptr @.str740) br label %ifend5 else4: %t39 = call ptr @fn_node(i32 33) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = call ptr @fn_eat_id() store ptr %t43, ptr %t42 %t44 = load ptr, ptr %t40 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 2 store i32 0, ptr %t45 %t46 = load ptr, ptr %t1 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 7 %t48 = load ptr, ptr %t47 %t49 = load ptr, ptr %t40 %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 2 %t52 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t53 = load i32, ptr %t50 %t54 = load i32, ptr %t51 %t55 = icmp sge i32 %t53, %t54 br i1 %t55, label %grow8, label %put9 grow8: %t56 = mul i32 %t54, 2 %t57 = icmp eq i32 %t54, 0 %t58 = select i1 %t57, i32 8, i32 %t56 %t59 = getelementptr ptr, ptr null, i32 1 %t60 = ptrtoint ptr %t59 to i64 %t61 = zext i32 %t58 to i64 %t62 = mul i64 %t61, %t60 %t63 = load ptr, ptr %t52 %t64 = call ptr @realloc(ptr %t63, i64 %t62) store ptr %t64, ptr %t52 store i32 %t58, ptr %t51 br label %put9 put9: %t65 = load ptr, ptr %t52 %t66 = getelementptr inbounds ptr, ptr %t65, i32 %t53 store ptr %t49, ptr %t66 %t67 = add i32 %t53, 1 store i32 %t67, ptr %t50 br label %ifend5 ifend5: %t68 = call i32 @fn_is_op(ptr @.str741) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then10, label %ifend12 then10: %t70 = load i32, ptr @g_pi %t71 = add i32 %t70, 1 store i32 %t71, ptr @g_pi br label %ifend12 ifend12: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str742) %t72 = call i32 @fn_is_id(ptr @.str743) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then13, label %ifend15 then13: %t74 = load i32, ptr @g_pi %t75 = add i32 %t74, 1 store i32 %t75, ptr @g_pi %t76 = load ptr, ptr %t1 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 4 %t78 = call ptr @fn_expr() store ptr %t78, ptr %t77 br label %ifend15 ifend15: %t79 = load ptr, ptr %t1 store ptr %t79, ptr %retval br label %ret ret: %t80 = load ptr, ptr %retval ret ptr %t80 } define ptr @fn_parse_query_for() { entry: %retval = alloca ptr %t1 = alloca ptr %t7 = alloca ptr %t38 = alloca ptr %t0 = call ptr @fn_node(i32 21) store ptr %t0, ptr %t1 call void @fn_eat_op(ptr @.str744) br label %wcond0 wcond0: %t2 = call i32 @fn_is_op(ptr @.str745) %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %wbody1, label %wend2 wbody1: %t6 = call ptr @fn_node(i32 33) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1 %t10 = call ptr @fn_eat_id() store ptr %t10, ptr %t9 %t11 = load ptr, ptr %t1 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7 %t13 = load ptr, ptr %t12 %t14 = load ptr, ptr %t7 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t16 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 2 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t18 = load i32, ptr %t15 %t19 = load i32, ptr %t16 %t20 = icmp sge i32 %t18, %t19 br i1 %t20, label %grow3, label %put4 grow3: %t21 = mul i32 %t19, 2 %t22 = icmp eq i32 %t19, 0 %t23 = select i1 %t22, i32 8, i32 %t21 %t24 = getelementptr ptr, ptr null, i32 1 %t25 = ptrtoint ptr %t24 to i64 %t26 = zext i32 %t23 to i64 %t27 = mul i64 %t26, %t25 %t28 = load ptr, ptr %t17 %t29 = call ptr @realloc(ptr %t28, i64 %t27) store ptr %t29, ptr %t17 store i32 %t23, ptr %t16 br label %put4 put4: %t30 = load ptr, ptr %t17 %t31 = getelementptr inbounds ptr, ptr %t30, i32 %t18 store ptr %t14, ptr %t31 %t32 = add i32 %t18, 1 store i32 %t32, ptr %t15 %t33 = call i32 @fn_is_op(ptr @.str746) %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load i32, ptr @g_pi %t36 = add i32 %t35, 1 store i32 %t36, ptr @g_pi br label %ifend7 ifend7: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str747) %t37 = call ptr @fn_eat_id() store ptr %t37, ptr %t38 %t39 = call i32 @fn_is_id(ptr @.str748) %t40 = icmp eq i32 %t39, 0 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then8, label %ifend10 then8: call void @fn_perr(ptr @.str749) br label %ifend10 ifend10: %t43 = load i32, ptr @g_pi %t44 = add i32 %t43, 1 store i32 %t44, ptr @g_pi %t45 = load ptr, ptr %t1 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 6 %t47 = call ptr @fn_parse_query_tail() store ptr %t47, ptr %t46 %t48 = load ptr, ptr %t1 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 5 %t50 = load ptr, ptr %t1 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 6 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4 %t54 = load ptr, ptr %t53 store ptr %t54, ptr %t49 %t55 = load ptr, ptr %t1 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 4 %t57 = call ptr @fn_block() store ptr %t57, ptr %t56 %t58 = load ptr, ptr %t1 store ptr %t58, ptr %retval br label %ret ret: %t59 = load ptr, ptr %retval ret ptr %t59 } define ptr @fn_mk_and(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca ptr store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 store ptr %t6, ptr %retval br label %ret ifend2: %t7 = call ptr @fn_node(i32 37) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1 store ptr @.str750, ptr %t10 %t11 = load ptr, ptr %t8 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4 %t13 = load ptr, ptr %t0 store ptr %t13, ptr %t12 %t14 = load ptr, ptr %t8 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 5 %t16 = load ptr, ptr %t1 store ptr %t16, ptr %t15 %t17 = load ptr, ptr %t8 store ptr %t17, ptr %retval br label %ret ret: %t18 = load ptr, ptr %retval ret ptr %t18 } define ptr @fn_qualify_fields(ptr %arg_e, ptr %arg_base) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t14 = alloca ptr %t31 = alloca ptr %t59 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_base, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t0 store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 %t10 = icmp eq i32 %t9, 33 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: %t13 = call ptr @fn_node(i32 35) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4 %t17 = load ptr, ptr %t1 store ptr %t17, ptr %t16 %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t0 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 store ptr %t22, ptr %t19 %t23 = load ptr, ptr %t14 store ptr %t23, ptr %retval br label %ret ifend5: %t24 = load ptr, ptr %t0 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 0 %t26 = load i32, ptr %t25 %t27 = icmp eq i32 %t26, 37 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then6, label %ifend8 then6: %t30 = call ptr @fn_node(i32 37) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t35 store ptr %t36, ptr %t33 %t37 = load ptr, ptr %t31 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 4 %t39 = load ptr, ptr %t0 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 4 %t41 = load ptr, ptr %t40 %t42 = load ptr, ptr %t1 %t43 = call ptr @fn_qualify_fields(ptr %t41, ptr %t42) store ptr %t43, ptr %t38 %t44 = load ptr, ptr %t31 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 5 %t46 = load ptr, ptr %t0 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 5 %t48 = load ptr, ptr %t47 %t49 = load ptr, ptr %t1 %t50 = call ptr @fn_qualify_fields(ptr %t48, ptr %t49) store ptr %t50, ptr %t45 %t51 = load ptr, ptr %t31 store ptr %t51, ptr %retval br label %ret ifend8: %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 0 %t54 = load i32, ptr %t53 %t55 = icmp eq i32 %t54, 38 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then9, label %ifend11 then9: %t58 = call ptr @fn_node(i32 38) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 1 %t62 = load ptr, ptr %t0 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 store ptr %t64, ptr %t61 %t65 = load ptr, ptr %t59 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 4 %t67 = load ptr, ptr %t0 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 4 %t69 = load ptr, ptr %t68 %t70 = load ptr, ptr %t1 %t71 = call ptr @fn_qualify_fields(ptr %t69, ptr %t70) store ptr %t71, ptr %t66 %t72 = load ptr, ptr %t59 store ptr %t72, ptr %retval br label %ret ifend11: %t73 = load ptr, ptr %t0 store ptr %t73, ptr %retval br label %ret ret: %t74 = load ptr, ptr %retval ret ptr %t74 } define ptr @fn_parse_queries_anno() { entry: %retval = alloca ptr %t1 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t12 = alloca ptr %t21 = alloca ptr %t23 = alloca ptr %t50 = alloca ptr %t83 = alloca ptr %t85 = alloca ptr %t102 = alloca ptr %t104 = alloca ptr call void @fn_eat_op(ptr @.str751) %t0 = call ptr @fn_node(i32 21) store ptr %t0, ptr %t1 %t2 = call ptr @fn_node(i32 7) store ptr %t2, ptr %t3 store ptr null, ptr %t4 br label %wcond0 wcond0: %t5 = call i32 @fn_is_op(ptr @.str752) %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t9 = call i32 @fn_is_op(ptr @.str753) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t11 = call ptr @fn_eat_id() store ptr %t11, ptr %t12 call void @fn_eat_op(ptr @.str754) %t13 = load ptr, ptr %t12 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str755) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then6, label %else7 then6: call void @fn_eat_op(ptr @.str756) call void @fn_skipnl() br label %wcond9 wcond9: %t16 = call i32 @fn_is_op(ptr @.str757) %t17 = icmp eq i32 %t16, 0 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody10, label %wend11 wbody10: %t20 = call ptr @fn_eat_id() store ptr %t20, ptr %t21 %t22 = call ptr @fn_node(i32 33) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t21 store ptr %t26, ptr %t25 %t27 = load ptr, ptr %t1 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 7 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t23 %t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t32 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 2 %t33 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 0 %t34 = load i32, ptr %t31 %t35 = load i32, ptr %t32 %t36 = icmp sge i32 %t34, %t35 br i1 %t36, label %grow12, label %put13 grow12: %t37 = mul i32 %t35, 2 %t38 = icmp eq i32 %t35, 0 %t39 = select i1 %t38, i32 8, i32 %t37 %t40 = getelementptr ptr, ptr null, i32 1 %t41 = ptrtoint ptr %t40 to i64 %t42 = zext i32 %t39 to i64 %t43 = mul i64 %t42, %t41 %t44 = load ptr, ptr %t33 %t45 = call ptr @realloc(ptr %t44, i64 %t43) store ptr %t45, ptr %t33 store i32 %t39, ptr %t32 br label %put13 put13: %t46 = load ptr, ptr %t33 %t47 = getelementptr inbounds ptr, ptr %t46, i32 %t34 store ptr %t30, ptr %t47 %t48 = add i32 %t34, 1 store i32 %t48, ptr %t31 %t49 = call ptr @fn_node(i32 33) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t21 store ptr %t53, ptr %t52 %t54 = load ptr, ptr %t50 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 2 store i32 0, ptr %t55 %t56 = load ptr, ptr %t3 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7 %t58 = load ptr, ptr %t57 %t59 = load ptr, ptr %t50 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t63 = load i32, ptr %t60 %t64 = load i32, ptr %t61 %t65 = icmp sge i32 %t63, %t64 br i1 %t65, label %grow14, label %put15 grow14: %t66 = mul i32 %t64, 2 %t67 = icmp eq i32 %t64, 0 %t68 = select i1 %t67, i32 8, i32 %t66 %t69 = getelementptr ptr, ptr null, i32 1 %t70 = ptrtoint ptr %t69 to i64 %t71 = zext i32 %t68 to i64 %t72 = mul i64 %t71, %t70 %t73 = load ptr, ptr %t62 %t74 = call ptr @realloc(ptr %t73, i64 %t72) store ptr %t74, ptr %t62 store i32 %t68, ptr %t61 br label %put15 put15: %t75 = load ptr, ptr %t62 %t76 = getelementptr inbounds ptr, ptr %t75, i32 %t63 store ptr %t59, ptr %t76 %t77 = add i32 %t63, 1 store i32 %t77, ptr %t60 %t78 = call i32 @fn_is_op(ptr @.str758) %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then16, label %ifend18 then16: %t80 = load i32, ptr @g_pi %t81 = add i32 %t80, 1 store i32 %t81, ptr @g_pi %t82 = call ptr @fn_expr() store ptr %t82, ptr %t83 call void @fn_eat_op(ptr @.str759) %t84 = call ptr @fn_node(i32 33) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %t21 store ptr %t88, ptr %t87 %t89 = load ptr, ptr %t4 %t90 = load ptr, ptr %t83 %t91 = load ptr, ptr %t85 %t92 = call ptr @fn_qualify_fields(ptr %t90, ptr %t91) %t93 = call ptr @fn_mk_and(ptr %t89, ptr %t92) store ptr %t93, ptr %t4 br label %ifend18 ifend18: %t94 = call i32 @fn_is_op(ptr @.str760) %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then19, label %ifend21 then19: %t96 = load i32, ptr @g_pi %t97 = add i32 %t96, 1 store i32 %t97, ptr @g_pi br label %ifend21 ifend21: call void @fn_skipnl() br label %wcond9 wend11: call void @fn_eat_op(ptr @.str761) br label %ifend8 else7: %t98 = load ptr, ptr %t12 %t99 = call i32 @lp_str_eq(ptr %t98, ptr @.str762) %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then22, label %else23 then22: %t101 = call ptr @fn_eat_id() store ptr %t101, ptr %t102 %t103 = call ptr @fn_node(i32 33) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 1 %t107 = load ptr, ptr %t102 store ptr %t107, ptr %t106 %t108 = load ptr, ptr %t104 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 2 store i32 1, ptr %t109 %t110 = load ptr, ptr %t3 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 7 %t112 = load ptr, ptr %t111 %t113 = load ptr, ptr %t104 %t114 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t115 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 2 %t116 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t117 = load i32, ptr %t114 %t118 = load i32, ptr %t115 %t119 = icmp sge i32 %t117, %t118 br i1 %t119, label %grow25, label %put26 grow25: %t120 = mul i32 %t118, 2 %t121 = icmp eq i32 %t118, 0 %t122 = select i1 %t121, i32 8, i32 %t120 %t123 = getelementptr ptr, ptr null, i32 1 %t124 = ptrtoint ptr %t123 to i64 %t125 = zext i32 %t122 to i64 %t126 = mul i64 %t125, %t124 %t127 = load ptr, ptr %t116 %t128 = call ptr @realloc(ptr %t127, i64 %t126) store ptr %t128, ptr %t116 store i32 %t122, ptr %t115 br label %put26 put26: %t129 = load ptr, ptr %t116 %t130 = getelementptr inbounds ptr, ptr %t129, i32 %t117 store ptr %t113, ptr %t130 %t131 = add i32 %t117, 1 store i32 %t131, ptr %t114 br label %ifend24 else23: %t132 = call ptr @fn_expr() br label %ifend24 ifend24: br label %ifend8 ifend8: %t133 = call i32 @fn_is_op(ptr @.str763) %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then27, label %ifend29 then27: %t135 = load i32, ptr @g_pi %t136 = add i32 %t135, 1 store i32 %t136, ptr @g_pi br label %ifend29 ifend29: call void @fn_skipnl() br label %wcond0 wend2: call void @fn_eat_op(ptr @.str764) %t137 = load ptr, ptr %t1 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 6 %t139 = load ptr, ptr %t3 store ptr %t139, ptr %t138 %t140 = load ptr, ptr %t1 %t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 5 %t142 = load ptr, ptr %t4 store ptr %t142, ptr %t141 %t143 = load ptr, ptr %t1 store ptr %t143, ptr %retval br label %ret ret: %t144 = load ptr, ptr %retval ret ptr %t144 } define ptr @fn_parse_spawn() { entry: %retval = alloca ptr %t3 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 22) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() call void @fn_eat_op(ptr @.str765) %t7 = load ptr, ptr %t3 call void @fn_parse_component_records(ptr %t7) call void @fn_eat_op(ptr @.str766) %t8 = load ptr, ptr %t3 store ptr %t8, ptr %retval br label %ret ret: %t9 = load ptr, ptr %retval ret ptr %t9 } define void @fn_parse_component_records(ptr %arg_n) { entry: %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_n, ptr %t0 br label %wcond0 wcond0: %t1 = icmp ne i32 1, 0 br i1 %t1, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t2 = call i32 @fn_is_op(ptr @.str767) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t4 = call ptr @fn_node(i32 42) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = call ptr @fn_eat_id() store ptr %t8, ptr %t7 %t9 = load ptr, ptr %t5 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4 %t11 = call ptr @fn_record() store ptr %t11, ptr %t10 %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load ptr, ptr %t5 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t19 = load i32, ptr %t16 %t20 = load i32, ptr %t17 %t21 = icmp sge i32 %t19, %t20 br i1 %t21, label %grow6, label %put7 grow6: %t22 = mul i32 %t20, 2 %t23 = icmp eq i32 %t20, 0 %t24 = select i1 %t23, i32 8, i32 %t22 %t25 = getelementptr ptr, ptr null, i32 1 %t26 = ptrtoint ptr %t25 to i64 %t27 = zext i32 %t24 to i64 %t28 = mul i64 %t27, %t26 %t29 = load ptr, ptr %t18 %t30 = call ptr @realloc(ptr %t29, i64 %t28) store ptr %t30, ptr %t18 store i32 %t24, ptr %t17 br label %put7 put7: %t31 = load ptr, ptr %t18 %t32 = getelementptr inbounds ptr, ptr %t31, i32 %t19 store ptr %t15, ptr %t32 %t33 = add i32 %t19, 1 store i32 %t33, ptr %t16 %t34 = call i32 @fn_is_op(ptr @.str768) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then8, label %ifend10 then8: %t36 = load i32, ptr @g_pi %t37 = add i32 %t36, 1 store i32 %t37, ptr @g_pi br label %ifend10 ifend10: br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_parse_prefab() { entry: %retval = alloca ptr %t3 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 53) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_eat_op(ptr @.str769) %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3 %t9 = call ptr @fn_eat_id() store ptr %t9, ptr %t8 call void @fn_skipnl() call void @fn_eat_op(ptr @.str770) %t10 = load ptr, ptr %t3 call void @fn_parse_component_records(ptr %t10) call void @fn_eat_op(ptr @.str771) %t11 = load ptr, ptr %t3 store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define void @fn_parse_scene() { entry: %t3 = alloca ptr %t10 = alloca i32 %t11 = alloca ptr %t12 = alloca ptr %t13 = alloca ptr %t14 = alloca i32 %t15 = alloca i32 %t16 = alloca i32 %t17 = alloca i32 %t103 = alloca ptr %t121 = alloca ptr %t133 = alloca ptr %t140 = alloca ptr %t146 = alloca ptr %t159 = alloca ptr %t170 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 45) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 2 %t9 = load i32, ptr @g_g_scene_count store i32 %t9, ptr %t8 store i32 0, ptr %t10 store ptr null, ptr %t11 store ptr null, ptr %t12 store ptr null, ptr %t13 br label %wcond0 wcond0: %t18 = call i32 @fn_is_id(ptr @.str772) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t17 br i1 %t19, label %scend4, label %sc3 sc3: %t21 = call i32 @fn_is_id(ptr @.str773) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t17 br label %scend4 scend4: %t24 = load i32, ptr %t17 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t16 br i1 %t25, label %scend6, label %sc5 sc5: %t27 = call i32 @fn_is_id(ptr @.str774) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t16 br label %scend6 scend6: %t30 = load i32, ptr %t16 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t15 br i1 %t31, label %scend8, label %sc7 sc7: %t33 = call i32 @fn_is_id(ptr @.str775) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t15 br label %scend8 scend8: %t36 = load i32, ptr %t15 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t14 br i1 %t37, label %scend10, label %sc9 sc9: %t39 = call i32 @fn_is_id(ptr @.str776) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t14 br label %scend10 scend10: %t42 = load i32, ptr %t14 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %wbody1, label %wend2 wbody1: %t44 = call i32 @fn_is_id(ptr @.str777) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then11, label %else12 then11: %t46 = load i32, ptr @g_pi %t47 = add i32 %t46, 1 store i32 %t47, ptr @g_pi %t48 = load i32, ptr @g_g_scene_count store i32 %t48, ptr @g_g_start_scene br label %ifend13 else12: %t49 = call i32 @fn_is_id(ptr @.str778) %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then14, label %else15 then14: %t51 = load i32, ptr @g_pi %t52 = add i32 %t51, 1 store i32 %t52, ptr @g_pi %t53 = load ptr, ptr %t3 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 3 %t55 = call ptr @fn_eat_id() store ptr %t55, ptr %t54 br label %ifend16 else15: %t56 = call i32 @fn_is_id(ptr @.str779) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then17, label %else18 then17: %t58 = load i32, ptr @g_pi %t59 = add i32 %t58, 1 store i32 %t59, ptr @g_pi %t60 = call ptr @fn_expr() store ptr %t60, ptr %t11 %t61 = call i32 @fn_is_id(ptr @.str780) %t62 = icmp eq i32 %t61, 0 %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then20, label %ifend22 then20: call void @fn_perr(ptr @.str781) br label %ifend22 ifend22: %t65 = load i32, ptr @g_pi %t66 = add i32 %t65, 1 store i32 %t66, ptr @g_pi %t67 = call ptr @fn_eat_id() store ptr %t67, ptr %t12 br label %ifend19 else18: %t68 = call i32 @fn_is_id(ptr @.str782) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then23, label %else24 then23: %t70 = load i32, ptr @g_pi %t71 = add i32 %t70, 1 store i32 %t71, ptr @g_pi %t72 = call i32 @fn_is_id(ptr @.str783) %t73 = icmp eq i32 %t72, 0 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then26, label %ifend28 then26: call void @fn_perr(ptr @.str784) br label %ifend28 ifend28: %t76 = load i32, ptr @g_pi %t77 = add i32 %t76, 1 store i32 %t77, ptr @g_pi %t78 = call ptr @fn_eat_id() store ptr %t78, ptr %t13 store i32 1, ptr @g_g_uses_atlas br label %ifend25 else24: %t79 = load i32, ptr @g_pi %t80 = add i32 %t79, 1 store i32 %t80, ptr @g_pi store i32 1, ptr %t10 br label %ifend25 ifend25: br label %ifend19 ifend19: br label %ifend16 ifend16: br label %ifend13 ifend13: br label %wcond0 wend2: %t81 = load i32, ptr @g_g_scene_count %t82 = add i32 %t81, 1 store i32 %t82, ptr @g_g_scene_count %t83 = load i32, ptr %t10 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then29, label %ifend31 then29: %t85 = load ptr, ptr %t3 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 1 %t87 = load ptr, ptr %t86 %t88 = call ptr @lp_str_concat(ptr @.str785, ptr %t87) %t89 = call ptr @lp_str_concat(ptr %t88, ptr @.str786) call void @fn_ensure_event_empty(ptr %t89) %t90 = load ptr, ptr %t3 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 1 %t92 = load ptr, ptr %t91 %t93 = call ptr @lp_str_concat(ptr @.str787, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str788) call void @fn_ensure_event_empty(ptr %t94) br label %ifend31 ifend31: call void @fn_skipnl() call void @fn_eat_op(ptr @.str789) br label %wcond32 wcond32: %t95 = icmp ne i32 1, 0 br i1 %t95, label %wbody33, label %wend34 wbody33: call void @fn_skipnl() %t96 = call i32 @fn_is_op(ptr @.str790) %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then35, label %ifend37 then35: br label %wend34 ifend37: %t98 = call i32 @fn_is_id(ptr @.str791) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then38, label %ifend40 then38: %t100 = load i32, ptr @g_pi %t101 = add i32 %t100, 1 store i32 %t101, ptr @g_pi %t102 = call ptr @fn_eat_id() store ptr %t102, ptr %t103 call void @fn_skipnl() %t104 = load ptr, ptr %t103 %t105 = call i32 @lp_str_eq(ptr %t104, ptr @.str792) %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then41, label %else42 then41: %t107 = load ptr, ptr %t3 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 4 %t109 = call ptr @fn_block() store ptr %t109, ptr %t108 br label %ifend43 else42: %t110 = load ptr, ptr %t103 %t111 = call i32 @lp_str_eq(ptr %t110, ptr @.str793) %t112 = icmp ne i32 %t111, 0 br i1 %t112, label %then44, label %else45 then44: %t113 = load ptr, ptr %t3 %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 5 %t115 = call ptr @fn_block() store ptr %t115, ptr %t114 br label %ifend46 else45: call void @fn_perr(ptr @.str794) br label %ifend46 ifend46: br label %ifend43 ifend43: br label %wcond32 ifend40: %t116 = call i32 @fn_is_id(ptr @.str795) %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then47, label %ifend49 then47: %t118 = load i32, ptr @g_pi %t119 = add i32 %t118, 1 store i32 %t119, ptr @g_pi %t120 = call ptr @fn_eat_id() store ptr %t120, ptr %t121 %t122 = call i32 @fn_is_id(ptr @.str796) %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then50, label %ifend52 then50: %t124 = load i32, ptr @g_pi %t125 = add i32 %t124, 1 store i32 %t125, ptr @g_pi %t126 = load ptr, ptr %t121 %t127 = call ptr @lp_str_concat(ptr @.str797, ptr %t126) %t128 = call ptr @lp_str_concat(ptr %t127, ptr @.str798) call void @fn_ensure_event_empty(ptr %t128) %t129 = load ptr, ptr %t121 %t130 = call ptr @lp_str_concat(ptr @.str799, ptr %t129) %t131 = call ptr @lp_str_concat(ptr %t130, ptr @.str800) call void @fn_ensure_event_empty(ptr %t131) br label %ifend52 ifend52: call void @fn_skipnl() call void @fn_eat_op(ptr @.str801) %t132 = call ptr @fn_node(i32 33) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t133 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 1 %t136 = load ptr, ptr %t121 store ptr %t136, ptr %t135 br label %wcond53 wcond53: %t137 = icmp ne i32 1, 0 br i1 %t137, label %wbody54, label %wend55 wbody54: call void @fn_skipnl() %t138 = call i32 @fn_is_op(ptr @.str802) %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then56, label %ifend58 then56: br label %wend55 ifend58: store ptr null, ptr %t140 br label %wcond59 wcond59: %t141 = call i32 @fn_is_op(ptr @.str803) %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %wbody60, label %wend61 wbody60: %t143 = load i32, ptr @g_pi %t144 = add i32 %t143, 1 store i32 %t144, ptr @g_pi %t145 = call ptr @fn_eat_id() store ptr %t145, ptr %t146 %t147 = load ptr, ptr %t146 %t148 = call i32 @lp_str_eq(ptr %t147, ptr @.str804) %t149 = icmp ne i32 %t148, 0 br i1 %t149, label %then62, label %else63 then62: %t150 = call ptr @fn_parse_queries_anno() store ptr %t150, ptr %t140 br label %ifend64 else63: %t151 = load ptr, ptr %t146 %t152 = call ptr @lp_str_concat(ptr @.str805, ptr %t151) %t153 = call ptr @lp_str_concat(ptr %t152, ptr @.str806) call void @fn_perr(ptr %t153) br label %ifend64 ifend64: call void @fn_skipnl() br label %wcond59 wend61: %t154 = call i32 @fn_is_id(ptr @.str807) %t155 = icmp eq i32 %t154, 0 %t156 = zext i1 %t155 to i32 %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then65, label %ifend67 then65: call void @fn_perr(ptr @.str808) br label %ifend67 ifend67: %t158 = call ptr @fn_parse_system() store ptr %t158, ptr %t159 %t160 = load ptr, ptr %t140 %t161 = icmp ne ptr %t160, null %t162 = zext i1 %t161 to i32 %t163 = icmp ne i32 %t162, 0 br i1 %t163, label %then68, label %ifend70 then68: %t164 = load ptr, ptr %t140 %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 4 %t166 = load ptr, ptr %t159 %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 4 %t168 = load ptr, ptr %t167 store ptr %t168, ptr %t165 %t169 = call ptr @fn_node(i32 7) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t170 %t172 = getelementptr inbounds %Cmp_Node, ptr %t171, i32 0, i32 7 %t173 = load ptr, ptr %t172 %t174 = load ptr, ptr %t140 %t175 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 1 %t176 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 2 %t177 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 0 %t178 = load i32, ptr %t175 %t179 = load i32, ptr %t176 %t180 = icmp sge i32 %t178, %t179 br i1 %t180, label %grow71, label %put72 grow71: %t181 = mul i32 %t179, 2 %t182 = icmp eq i32 %t179, 0 %t183 = select i1 %t182, i32 8, i32 %t181 %t184 = getelementptr ptr, ptr null, i32 1 %t185 = ptrtoint ptr %t184 to i64 %t186 = zext i32 %t183 to i64 %t187 = mul i64 %t186, %t185 %t188 = load ptr, ptr %t177 %t189 = call ptr @realloc(ptr %t188, i64 %t187) store ptr %t189, ptr %t177 store i32 %t183, ptr %t176 br label %put72 put72: %t190 = load ptr, ptr %t177 %t191 = getelementptr inbounds ptr, ptr %t190, i32 %t178 store ptr %t174, ptr %t191 %t192 = add i32 %t178, 1 store i32 %t192, ptr %t175 %t193 = load ptr, ptr %t159 %t194 = getelementptr inbounds %Cmp_Node, ptr %t193, i32 0, i32 4 %t195 = load ptr, ptr %t170 store ptr %t195, ptr %t194 br label %ifend70 ifend70: %t196 = load ptr, ptr %t159 %t197 = getelementptr inbounds %Cmp_Node, ptr %t196, i32 0, i32 1 %t198 = load ptr, ptr %t3 %t199 = getelementptr inbounds %Cmp_Node, ptr %t198, i32 0, i32 1 %t200 = load ptr, ptr %t199 %t201 = call ptr @lp_str_concat(ptr %t200, ptr @.str809) %t202 = load ptr, ptr %t159 %t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 1 %t204 = load ptr, ptr %t203 %t205 = call ptr @lp_str_concat(ptr %t201, ptr %t204) store ptr %t205, ptr %t197 %t206 = load ptr, ptr %t159 %t207 = getelementptr inbounds %Cmp_Node, ptr %t206, i32 0, i32 6 %t208 = load ptr, ptr %t3 store ptr %t208, ptr %t207 %t209 = load ptr, ptr %t159 %t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 5 %t211 = load ptr, ptr %t133 store ptr %t211, ptr %t210 %t212 = load ptr, ptr @g_prog %t213 = load ptr, ptr %t159 %t214 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 1 %t215 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 2 %t216 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 0 %t217 = load i32, ptr %t214 %t218 = load i32, ptr %t215 %t219 = icmp sge i32 %t217, %t218 br i1 %t219, label %grow73, label %put74 grow73: %t220 = mul i32 %t218, 2 %t221 = icmp eq i32 %t218, 0 %t222 = select i1 %t221, i32 8, i32 %t220 %t223 = getelementptr ptr, ptr null, i32 1 %t224 = ptrtoint ptr %t223 to i64 %t225 = zext i32 %t222 to i64 %t226 = mul i64 %t225, %t224 %t227 = load ptr, ptr %t216 %t228 = call ptr @realloc(ptr %t227, i64 %t226) store ptr %t228, ptr %t216 store i32 %t222, ptr %t215 br label %put74 put74: %t229 = load ptr, ptr %t216 %t230 = getelementptr inbounds ptr, ptr %t229, i32 %t217 store ptr %t213, ptr %t230 %t231 = add i32 %t217, 1 store i32 %t231, ptr %t214 call void @fn_skipnl() br label %wcond53 wend55: call void @fn_eat_op(ptr @.str810) br label %wcond32 ifend49: call void @fn_perr(ptr @.str811) br label %wcond32 wend34: call void @fn_eat_op(ptr @.str812) %t232 = load ptr, ptr %t11 %t233 = icmp ne ptr %t232, null %t234 = zext i1 %t233 to i32 %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %then75, label %ifend77 then75: %t236 = load ptr, ptr %t3 %t237 = load ptr, ptr %t11 %t238 = load ptr, ptr %t12 call void @fn_scene_add_timer(ptr %t236, ptr %t237, ptr %t238) br label %ifend77 ifend77: %t239 = load ptr, ptr %t13 %t240 = icmp ne ptr %t239, null %t241 = zext i1 %t240 to i32 %t242 = icmp ne i32 %t241, 0 br i1 %t242, label %then78, label %ifend80 then78: %t243 = load ptr, ptr %t3 %t244 = load ptr, ptr %t13 call void @fn_scene_add_loader(ptr %t243, ptr %t244) br label %ifend80 ifend80: %t245 = load ptr, ptr @g_g_scenes %t246 = load ptr, ptr %t3 %t247 = getelementptr inbounds %LSlice, ptr %t245, i32 0, i32 1 %t248 = getelementptr inbounds %LSlice, ptr %t245, i32 0, i32 2 %t249 = getelementptr inbounds %LSlice, ptr %t245, i32 0, i32 0 %t250 = load i32, ptr %t247 %t251 = load i32, ptr %t248 %t252 = icmp sge i32 %t250, %t251 br i1 %t252, label %grow81, label %put82 grow81: %t253 = mul i32 %t251, 2 %t254 = icmp eq i32 %t251, 0 %t255 = select i1 %t254, i32 8, i32 %t253 %t256 = getelementptr ptr, ptr null, i32 1 %t257 = ptrtoint ptr %t256 to i64 %t258 = zext i32 %t255 to i64 %t259 = mul i64 %t258, %t257 %t260 = load ptr, ptr %t249 %t261 = call ptr @realloc(ptr %t260, i64 %t259) store ptr %t261, ptr %t249 store i32 %t255, ptr %t248 br label %put82 put82: %t262 = load ptr, ptr %t249 %t263 = getelementptr inbounds ptr, ptr %t262, i32 %t250 store ptr %t246, ptr %t263 %t264 = add i32 %t250, 1 store i32 %t264, ptr %t247 br label %ret ret: ret void } define void @fn_scene_add_loader(ptr %arg_sc, ptr %arg_next) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr %t16 = alloca ptr %t18 = alloca ptr %t20 = alloca ptr %t22 = alloca ptr %t24 = alloca ptr %t36 = alloca ptr %t87 = alloca ptr %t89 = alloca ptr %t91 = alloca ptr %t93 = alloca ptr %t111 = alloca ptr %t185 = alloca ptr %t198 = alloca ptr %t200 = alloca ptr %t202 = alloca ptr %t209 = alloca ptr store ptr %arg_sc, ptr %t0 store ptr %arg_next, ptr %t1 %t2 = call ptr @fn_node(i32 9) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str813) store ptr %t9, ptr %t5 %t10 = load ptr, ptr %t3 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 3 store ptr @.str814, ptr %t11 %t12 = load ptr, ptr %t3 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 6 %t14 = load ptr, ptr %t0 store ptr %t14, ptr %t13 %t15 = call ptr @fn_node(i32 7) store ptr %t15, ptr %t16 %t17 = call ptr @fn_node(i32 16) store ptr %t17, ptr %t18 %t19 = call ptr @fn_node(i32 34) store ptr %t19, ptr %t20 %t21 = call ptr @fn_node(i32 35) store ptr %t21, ptr %t22 %t23 = call ptr @fn_node(i32 33) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 store ptr @.str815, ptr %t26 %t27 = load ptr, ptr %t22 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 4 %t29 = load ptr, ptr %t24 store ptr %t29, ptr %t28 %t30 = load ptr, ptr %t22 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 1 store ptr @.str816, ptr %t31 %t32 = load ptr, ptr %t20 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 4 %t34 = load ptr, ptr %t22 store ptr %t34, ptr %t33 %t35 = call ptr @fn_node(i32 30) store ptr %t35, ptr %t36 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 2 store i32 4, ptr %t38 %t39 = load ptr, ptr %t20 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 7 %t41 = load ptr, ptr %t40 %t42 = load ptr, ptr %t36 %t43 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 1 %t44 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 2 %t45 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0 %t46 = load i32, ptr %t43 %t47 = load i32, ptr %t44 %t48 = icmp sge i32 %t46, %t47 br i1 %t48, label %grow0, label %put1 grow0: %t49 = mul i32 %t47, 2 %t50 = icmp eq i32 %t47, 0 %t51 = select i1 %t50, i32 8, i32 %t49 %t52 = getelementptr ptr, ptr null, i32 1 %t53 = ptrtoint ptr %t52 to i64 %t54 = zext i32 %t51 to i64 %t55 = mul i64 %t54, %t53 %t56 = load ptr, ptr %t45 %t57 = call ptr @realloc(ptr %t56, i64 %t55) store ptr %t57, ptr %t45 store i32 %t51, ptr %t44 br label %put1 put1: %t58 = load ptr, ptr %t45 %t59 = getelementptr inbounds ptr, ptr %t58, i32 %t46 store ptr %t42, ptr %t59 %t60 = add i32 %t46, 1 store i32 %t60, ptr %t43 %t61 = load ptr, ptr %t18 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 4 %t63 = load ptr, ptr %t20 store ptr %t63, ptr %t62 %t64 = load ptr, ptr %t16 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7 %t66 = load ptr, ptr %t65 %t67 = load ptr, ptr %t18 %t68 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t69 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 2 %t70 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0 %t71 = load i32, ptr %t68 %t72 = load i32, ptr %t69 %t73 = icmp sge i32 %t71, %t72 br i1 %t73, label %grow2, label %put3 grow2: %t74 = mul i32 %t72, 2 %t75 = icmp eq i32 %t72, 0 %t76 = select i1 %t75, i32 8, i32 %t74 %t77 = getelementptr ptr, ptr null, i32 1 %t78 = ptrtoint ptr %t77 to i64 %t79 = zext i32 %t76 to i64 %t80 = mul i64 %t79, %t78 %t81 = load ptr, ptr %t70 %t82 = call ptr @realloc(ptr %t81, i64 %t80) store ptr %t82, ptr %t70 store i32 %t76, ptr %t69 br label %put3 put3: %t83 = load ptr, ptr %t70 %t84 = getelementptr inbounds ptr, ptr %t83, i32 %t71 store ptr %t67, ptr %t84 %t85 = add i32 %t71, 1 store i32 %t85, ptr %t68 %t86 = call ptr @fn_node(i32 12) store ptr %t86, ptr %t87 %t88 = call ptr @fn_node(i32 34) store ptr %t88, ptr %t89 %t90 = call ptr @fn_node(i32 35) store ptr %t90, ptr %t91 %t92 = call ptr @fn_node(i32 33) store ptr %t92, ptr %t93 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 1 store ptr @.str817, ptr %t95 %t96 = load ptr, ptr %t91 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 4 %t98 = load ptr, ptr %t93 store ptr %t98, ptr %t97 %t99 = load ptr, ptr %t91 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 1 store ptr @.str818, ptr %t100 %t101 = load ptr, ptr %t89 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 4 %t103 = load ptr, ptr %t91 store ptr %t103, ptr %t102 %t104 = load ptr, ptr %t87 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 4 %t106 = load ptr, ptr %t89 store ptr %t106, ptr %t105 %t107 = load ptr, ptr %t87 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 5 %t109 = call ptr @fn_node(i32 7) store ptr %t109, ptr %t108 %t110 = call ptr @fn_node(i32 26) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 1 %t114 = load ptr, ptr %t1 store ptr %t114, ptr %t113 %t115 = load ptr, ptr %t87 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 5 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 7 %t119 = load ptr, ptr %t118 %t120 = load ptr, ptr %t111 %t121 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t122 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 2 %t123 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t124 = load i32, ptr %t121 %t125 = load i32, ptr %t122 %t126 = icmp sge i32 %t124, %t125 br i1 %t126, label %grow4, label %put5 grow4: %t127 = mul i32 %t125, 2 %t128 = icmp eq i32 %t125, 0 %t129 = select i1 %t128, i32 8, i32 %t127 %t130 = getelementptr ptr, ptr null, i32 1 %t131 = ptrtoint ptr %t130 to i64 %t132 = zext i32 %t129 to i64 %t133 = mul i64 %t132, %t131 %t134 = load ptr, ptr %t123 %t135 = call ptr @realloc(ptr %t134, i64 %t133) store ptr %t135, ptr %t123 store i32 %t129, ptr %t122 br label %put5 put5: %t136 = load ptr, ptr %t123 %t137 = getelementptr inbounds ptr, ptr %t136, i32 %t124 store ptr %t120, ptr %t137 %t138 = add i32 %t124, 1 store i32 %t138, ptr %t121 %t139 = load ptr, ptr %t16 %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 7 %t141 = load ptr, ptr %t140 %t142 = load ptr, ptr %t87 %t143 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t144 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 2 %t145 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 0 %t146 = load i32, ptr %t143 %t147 = load i32, ptr %t144 %t148 = icmp sge i32 %t146, %t147 br i1 %t148, label %grow6, label %put7 grow6: %t149 = mul i32 %t147, 2 %t150 = icmp eq i32 %t147, 0 %t151 = select i1 %t150, i32 8, i32 %t149 %t152 = getelementptr ptr, ptr null, i32 1 %t153 = ptrtoint ptr %t152 to i64 %t154 = zext i32 %t151 to i64 %t155 = mul i64 %t154, %t153 %t156 = load ptr, ptr %t145 %t157 = call ptr @realloc(ptr %t156, i64 %t155) store ptr %t157, ptr %t145 store i32 %t151, ptr %t144 br label %put7 put7: %t158 = load ptr, ptr %t145 %t159 = getelementptr inbounds ptr, ptr %t158, i32 %t146 store ptr %t142, ptr %t159 %t160 = add i32 %t146, 1 store i32 %t160, ptr %t143 %t161 = load ptr, ptr %t3 %t162 = getelementptr inbounds %Cmp_Node, ptr %t161, i32 0, i32 4 %t163 = load ptr, ptr %t16 store ptr %t163, ptr %t162 %t164 = load ptr, ptr @g_prog %t165 = load ptr, ptr %t3 %t166 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 1 %t167 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 2 %t168 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 0 %t169 = load i32, ptr %t166 %t170 = load i32, ptr %t167 %t171 = icmp sge i32 %t169, %t170 br i1 %t171, label %grow8, label %put9 grow8: %t172 = mul i32 %t170, 2 %t173 = icmp eq i32 %t170, 0 %t174 = select i1 %t173, i32 8, i32 %t172 %t175 = getelementptr ptr, ptr null, i32 1 %t176 = ptrtoint ptr %t175 to i64 %t177 = zext i32 %t174 to i64 %t178 = mul i64 %t177, %t176 %t179 = load ptr, ptr %t168 %t180 = call ptr @realloc(ptr %t179, i64 %t178) store ptr %t180, ptr %t168 store i32 %t174, ptr %t167 br label %put9 put9: %t181 = load ptr, ptr %t168 %t182 = getelementptr inbounds ptr, ptr %t181, i32 %t169 store ptr %t165, ptr %t182 %t183 = add i32 %t169, 1 store i32 %t183, ptr %t166 %t184 = call ptr @fn_node(i32 9) store ptr %t184, ptr %t185 %t186 = load ptr, ptr %t185 %t187 = getelementptr inbounds %Cmp_Node, ptr %t186, i32 0, i32 1 %t188 = load ptr, ptr %t0 %t189 = getelementptr inbounds %Cmp_Node, ptr %t188, i32 0, i32 1 %t190 = load ptr, ptr %t189 %t191 = call ptr @lp_str_concat(ptr %t190, ptr @.str819) store ptr %t191, ptr %t187 %t192 = load ptr, ptr %t185 %t193 = getelementptr inbounds %Cmp_Node, ptr %t192, i32 0, i32 3 store ptr @.str820, ptr %t193 %t194 = load ptr, ptr %t185 %t195 = getelementptr inbounds %Cmp_Node, ptr %t194, i32 0, i32 6 %t196 = load ptr, ptr %t0 store ptr %t196, ptr %t195 %t197 = call ptr @fn_node(i32 7) store ptr %t197, ptr %t198 %t199 = call ptr @fn_node(i32 34) store ptr %t199, ptr %t200 %t201 = call ptr @fn_node(i32 33) store ptr %t201, ptr %t202 %t203 = load ptr, ptr %t202 %t204 = getelementptr inbounds %Cmp_Node, ptr %t203, i32 0, i32 1 store ptr @.str821, ptr %t204 %t205 = load ptr, ptr %t200 %t206 = getelementptr inbounds %Cmp_Node, ptr %t205, i32 0, i32 4 %t207 = load ptr, ptr %t202 store ptr %t207, ptr %t206 %t208 = call ptr @fn_node(i32 16) store ptr %t208, ptr %t209 %t210 = load ptr, ptr %t209 %t211 = getelementptr inbounds %Cmp_Node, ptr %t210, i32 0, i32 4 %t212 = load ptr, ptr %t200 store ptr %t212, ptr %t211 %t213 = load ptr, ptr %t198 %t214 = getelementptr inbounds %Cmp_Node, ptr %t213, i32 0, i32 7 %t215 = load ptr, ptr %t214 %t216 = load ptr, ptr %t209 %t217 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 1 %t218 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 2 %t219 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 0 %t220 = load i32, ptr %t217 %t221 = load i32, ptr %t218 %t222 = icmp sge i32 %t220, %t221 br i1 %t222, label %grow10, label %put11 grow10: %t223 = mul i32 %t221, 2 %t224 = icmp eq i32 %t221, 0 %t225 = select i1 %t224, i32 8, i32 %t223 %t226 = getelementptr ptr, ptr null, i32 1 %t227 = ptrtoint ptr %t226 to i64 %t228 = zext i32 %t225 to i64 %t229 = mul i64 %t228, %t227 %t230 = load ptr, ptr %t219 %t231 = call ptr @realloc(ptr %t230, i64 %t229) store ptr %t231, ptr %t219 store i32 %t225, ptr %t218 br label %put11 put11: %t232 = load ptr, ptr %t219 %t233 = getelementptr inbounds ptr, ptr %t232, i32 %t220 store ptr %t216, ptr %t233 %t234 = add i32 %t220, 1 store i32 %t234, ptr %t217 %t235 = load ptr, ptr %t185 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 4 %t237 = load ptr, ptr %t198 store ptr %t237, ptr %t236 %t238 = load ptr, ptr @g_prog %t239 = load ptr, ptr %t185 %t240 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 1 %t241 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 2 %t242 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 0 %t243 = load i32, ptr %t240 %t244 = load i32, ptr %t241 %t245 = icmp sge i32 %t243, %t244 br i1 %t245, label %grow12, label %put13 grow12: %t246 = mul i32 %t244, 2 %t247 = icmp eq i32 %t244, 0 %t248 = select i1 %t247, i32 8, i32 %t246 %t249 = getelementptr ptr, ptr null, i32 1 %t250 = ptrtoint ptr %t249 to i64 %t251 = zext i32 %t248 to i64 %t252 = mul i64 %t251, %t250 %t253 = load ptr, ptr %t242 %t254 = call ptr @realloc(ptr %t253, i64 %t252) store ptr %t254, ptr %t242 store i32 %t248, ptr %t241 br label %put13 put13: %t255 = load ptr, ptr %t242 %t256 = getelementptr inbounds ptr, ptr %t255, i32 %t243 store ptr %t239, ptr %t256 %t257 = add i32 %t243, 1 store i32 %t257, ptr %t240 br label %ret ret: ret void } define void @fn_scene_add_timer(ptr %arg_sc, ptr %arg_frames, ptr %arg_next) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t8 = alloca ptr %t10 = alloca ptr %t46 = alloca ptr %t50 = alloca ptr %t66 = alloca ptr %t87 = alloca i32 %t140 = alloca ptr %t153 = alloca ptr %t155 = alloca ptr %t159 = alloca ptr %t167 = alloca ptr %t196 = alloca ptr %t200 = alloca ptr %t208 = alloca ptr %t215 = alloca ptr %t223 = alloca ptr store ptr %arg_sc, ptr %t0 store ptr %arg_frames, ptr %t1 store ptr %arg_next, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1 %t5 = load ptr, ptr %t4 %t6 = call ptr @lp_str_concat(ptr @.str822, ptr %t5) %t7 = call ptr @lp_str_concat(ptr %t6, ptr @.str823) store ptr %t7, ptr %t8 %t9 = call ptr @fn_node(i32 2) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 1 %t13 = load ptr, ptr %t8 store ptr %t13, ptr %t12 %t14 = load ptr, ptr %t10 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 3 store ptr @.str824, ptr %t15 %t16 = load ptr, ptr @g_prog %t17 = load ptr, ptr %t10 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 2 %t20 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t21 = load i32, ptr %t18 %t22 = load i32, ptr %t19 %t23 = icmp sge i32 %t21, %t22 br i1 %t23, label %grow0, label %put1 grow0: %t24 = mul i32 %t22, 2 %t25 = icmp eq i32 %t22, 0 %t26 = select i1 %t25, i32 8, i32 %t24 %t27 = getelementptr ptr, ptr null, i32 1 %t28 = ptrtoint ptr %t27 to i64 %t29 = zext i32 %t26 to i64 %t30 = mul i64 %t29, %t28 %t31 = load ptr, ptr %t20 %t32 = call ptr @realloc(ptr %t31, i64 %t30) store ptr %t32, ptr %t20 store i32 %t26, ptr %t19 br label %put1 put1: %t33 = load ptr, ptr %t20 %t34 = getelementptr inbounds ptr, ptr %t33, i32 %t21 store ptr %t17, ptr %t34 %t35 = add i32 %t21, 1 store i32 %t35, ptr %t18 %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 4 %t38 = load ptr, ptr %t37 %t39 = icmp eq ptr %t38, null %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then2, label %ifend4 then2: %t42 = load ptr, ptr %t0 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 4 %t44 = call ptr @fn_node(i32 7) store ptr %t44, ptr %t43 br label %ifend4 ifend4: %t45 = call ptr @fn_node(i32 11) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 1 store ptr @.str825, ptr %t48 %t49 = call ptr @fn_node(i32 33) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t8 store ptr %t53, ptr %t52 %t54 = load ptr, ptr %t46 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 4 %t56 = load ptr, ptr %t50 store ptr %t56, ptr %t55 %t57 = load ptr, ptr %t46 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 5 %t59 = load ptr, ptr %t1 store ptr %t59, ptr %t58 %t60 = getelementptr %LSlice, ptr null, i32 1 %t61 = ptrtoint ptr %t60 to i64 %t62 = call ptr @malloc(i64 %t61) %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 store ptr null, ptr %t63 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 store i32 0, ptr %t64 %t65 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 2 store i32 0, ptr %t65 store ptr %t62, ptr %t66 %t67 = load ptr, ptr %t66 %t68 = load ptr, ptr %t46 %t69 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 1 %t70 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 2 %t71 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 0 %t72 = load i32, ptr %t69 %t73 = load i32, ptr %t70 %t74 = icmp sge i32 %t72, %t73 br i1 %t74, label %grow5, label %put6 grow5: %t75 = mul i32 %t73, 2 %t76 = icmp eq i32 %t73, 0 %t77 = select i1 %t76, i32 8, i32 %t75 %t78 = getelementptr ptr, ptr null, i32 1 %t79 = ptrtoint ptr %t78 to i64 %t80 = zext i32 %t77 to i64 %t81 = mul i64 %t80, %t79 %t82 = load ptr, ptr %t71 %t83 = call ptr @realloc(ptr %t82, i64 %t81) store ptr %t83, ptr %t71 store i32 %t77, ptr %t70 br label %put6 put6: %t84 = load ptr, ptr %t71 %t85 = getelementptr inbounds ptr, ptr %t84, i32 %t72 store ptr %t68, ptr %t85 %t86 = add i32 %t72, 1 store i32 %t86, ptr %t69 store i32 0, ptr %t87 br label %wcond7 wcond7: %t88 = load i32, ptr %t87 %t89 = load ptr, ptr %t0 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 4 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 7 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1 %t95 = load i32, ptr %t94 %t96 = icmp slt i32 %t88, %t95 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %wbody8, label %wend9 wbody8: %t99 = load ptr, ptr %t66 %t100 = load ptr, ptr %t0 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 4 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 7 %t104 = load ptr, ptr %t103 %t105 = load i32, ptr %t87 %t106 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 0 %t107 = load ptr, ptr %t106 %t108 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 1 %t109 = load i32, ptr %t108 %t110 = icmp ult i32 %t105, %t109 br i1 %t110, label %ixok10, label %ixbad11 ixbad11: %t111 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t111, ptr @.fmt_bounds, ptr @.str826, i32 %t105, i32 %t109) call void @exit(i32 1) unreachable ixok10: %t112 = getelementptr inbounds ptr, ptr %t107, i32 %t105 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t115 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 2 %t116 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 0 %t117 = load i32, ptr %t114 %t118 = load i32, ptr %t115 %t119 = icmp sge i32 %t117, %t118 br i1 %t119, label %grow12, label %put13 grow12: %t120 = mul i32 %t118, 2 %t121 = icmp eq i32 %t118, 0 %t122 = select i1 %t121, i32 8, i32 %t120 %t123 = getelementptr ptr, ptr null, i32 1 %t124 = ptrtoint ptr %t123 to i64 %t125 = zext i32 %t122 to i64 %t126 = mul i64 %t125, %t124 %t127 = load ptr, ptr %t116 %t128 = call ptr @realloc(ptr %t127, i64 %t126) store ptr %t128, ptr %t116 store i32 %t122, ptr %t115 br label %put13 put13: %t129 = load ptr, ptr %t116 %t130 = getelementptr inbounds ptr, ptr %t129, i32 %t117 store ptr %t113, ptr %t130 %t131 = add i32 %t117, 1 store i32 %t131, ptr %t114 %t132 = load i32, ptr %t87 %t133 = add i32 %t132, 1 store i32 %t133, ptr %t87 br label %wcond7 wend9: %t134 = load ptr, ptr %t0 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 4 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 7 %t138 = load ptr, ptr %t66 store ptr %t138, ptr %t137 %t139 = call ptr @fn_node(i32 9) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t140 %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 1 %t143 = load ptr, ptr %t0 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 1 %t145 = load ptr, ptr %t144 %t146 = call ptr @lp_str_concat(ptr %t145, ptr @.str827) store ptr %t146, ptr %t142 %t147 = load ptr, ptr %t140 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 3 store ptr @.str828, ptr %t148 %t149 = load ptr, ptr %t140 %t150 = getelementptr inbounds %Cmp_Node, ptr %t149, i32 0, i32 6 %t151 = load ptr, ptr %t0 store ptr %t151, ptr %t150 %t152 = call ptr @fn_node(i32 7) store ptr %t152, ptr %t153 %t154 = call ptr @fn_node(i32 11) store ptr %t154, ptr %t155 %t156 = load ptr, ptr %t155 %t157 = getelementptr inbounds %Cmp_Node, ptr %t156, i32 0, i32 1 store ptr @.str829, ptr %t157 %t158 = call ptr @fn_node(i32 33) store ptr %t158, ptr %t159 %t160 = load ptr, ptr %t159 %t161 = getelementptr inbounds %Cmp_Node, ptr %t160, i32 0, i32 1 %t162 = load ptr, ptr %t8 store ptr %t162, ptr %t161 %t163 = load ptr, ptr %t155 %t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 4 %t165 = load ptr, ptr %t159 store ptr %t165, ptr %t164 %t166 = call ptr @fn_node(i32 30) store ptr %t166, ptr %t167 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds %Cmp_Node, ptr %t168, i32 0, i32 2 store i32 1, ptr %t169 %t170 = load ptr, ptr %t155 %t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 5 %t172 = load ptr, ptr %t167 store ptr %t172, ptr %t171 %t173 = load ptr, ptr %t153 %t174 = getelementptr inbounds %Cmp_Node, ptr %t173, i32 0, i32 7 %t175 = load ptr, ptr %t174 %t176 = load ptr, ptr %t155 %t177 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 1 %t178 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 2 %t179 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 0 %t180 = load i32, ptr %t177 %t181 = load i32, ptr %t178 %t182 = icmp sge i32 %t180, %t181 br i1 %t182, label %grow14, label %put15 grow14: %t183 = mul i32 %t181, 2 %t184 = icmp eq i32 %t181, 0 %t185 = select i1 %t184, i32 8, i32 %t183 %t186 = getelementptr ptr, ptr null, i32 1 %t187 = ptrtoint ptr %t186 to i64 %t188 = zext i32 %t185 to i64 %t189 = mul i64 %t188, %t187 %t190 = load ptr, ptr %t179 %t191 = call ptr @realloc(ptr %t190, i64 %t189) store ptr %t191, ptr %t179 store i32 %t185, ptr %t178 br label %put15 put15: %t192 = load ptr, ptr %t179 %t193 = getelementptr inbounds ptr, ptr %t192, i32 %t180 store ptr %t176, ptr %t193 %t194 = add i32 %t180, 1 store i32 %t194, ptr %t177 %t195 = call ptr @fn_node(i32 37) store ptr %t195, ptr %t196 %t197 = load ptr, ptr %t196 %t198 = getelementptr inbounds %Cmp_Node, ptr %t197, i32 0, i32 1 store ptr @.str830, ptr %t198 %t199 = call ptr @fn_node(i32 33) store ptr %t199, ptr %t200 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %Cmp_Node, ptr %t201, i32 0, i32 1 %t203 = load ptr, ptr %t8 store ptr %t203, ptr %t202 %t204 = load ptr, ptr %t196 %t205 = getelementptr inbounds %Cmp_Node, ptr %t204, i32 0, i32 4 %t206 = load ptr, ptr %t200 store ptr %t206, ptr %t205 %t207 = call ptr @fn_node(i32 30) store ptr %t207, ptr %t208 %t209 = load ptr, ptr %t208 %t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 2 store i32 0, ptr %t210 %t211 = load ptr, ptr %t196 %t212 = getelementptr inbounds %Cmp_Node, ptr %t211, i32 0, i32 5 %t213 = load ptr, ptr %t208 store ptr %t213, ptr %t212 %t214 = call ptr @fn_node(i32 12) store ptr %t214, ptr %t215 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds %Cmp_Node, ptr %t216, i32 0, i32 4 %t218 = load ptr, ptr %t196 store ptr %t218, ptr %t217 %t219 = load ptr, ptr %t215 %t220 = getelementptr inbounds %Cmp_Node, ptr %t219, i32 0, i32 5 %t221 = call ptr @fn_node(i32 7) store ptr %t221, ptr %t220 %t222 = call ptr @fn_node(i32 26) store ptr %t222, ptr %t223 %t224 = load ptr, ptr %t223 %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 1 %t226 = load ptr, ptr %t2 store ptr %t226, ptr %t225 %t227 = load ptr, ptr %t215 %t228 = getelementptr inbounds %Cmp_Node, ptr %t227, i32 0, i32 5 %t229 = load ptr, ptr %t228 %t230 = getelementptr inbounds %Cmp_Node, ptr %t229, i32 0, i32 7 %t231 = load ptr, ptr %t230 %t232 = load ptr, ptr %t223 %t233 = getelementptr inbounds %LSlice, ptr %t231, i32 0, i32 1 %t234 = getelementptr inbounds %LSlice, ptr %t231, i32 0, i32 2 %t235 = getelementptr inbounds %LSlice, ptr %t231, i32 0, i32 0 %t236 = load i32, ptr %t233 %t237 = load i32, ptr %t234 %t238 = icmp sge i32 %t236, %t237 br i1 %t238, label %grow16, label %put17 grow16: %t239 = mul i32 %t237, 2 %t240 = icmp eq i32 %t237, 0 %t241 = select i1 %t240, i32 8, i32 %t239 %t242 = getelementptr ptr, ptr null, i32 1 %t243 = ptrtoint ptr %t242 to i64 %t244 = zext i32 %t241 to i64 %t245 = mul i64 %t244, %t243 %t246 = load ptr, ptr %t235 %t247 = call ptr @realloc(ptr %t246, i64 %t245) store ptr %t247, ptr %t235 store i32 %t241, ptr %t234 br label %put17 put17: %t248 = load ptr, ptr %t235 %t249 = getelementptr inbounds ptr, ptr %t248, i32 %t236 store ptr %t232, ptr %t249 %t250 = add i32 %t236, 1 store i32 %t250, ptr %t233 %t251 = load ptr, ptr %t153 %t252 = getelementptr inbounds %Cmp_Node, ptr %t251, i32 0, i32 7 %t253 = load ptr, ptr %t252 %t254 = load ptr, ptr %t215 %t255 = getelementptr inbounds %LSlice, ptr %t253, i32 0, i32 1 %t256 = getelementptr inbounds %LSlice, ptr %t253, i32 0, i32 2 %t257 = getelementptr inbounds %LSlice, ptr %t253, i32 0, i32 0 %t258 = load i32, ptr %t255 %t259 = load i32, ptr %t256 %t260 = icmp sge i32 %t258, %t259 br i1 %t260, label %grow18, label %put19 grow18: %t261 = mul i32 %t259, 2 %t262 = icmp eq i32 %t259, 0 %t263 = select i1 %t262, i32 8, i32 %t261 %t264 = getelementptr ptr, ptr null, i32 1 %t265 = ptrtoint ptr %t264 to i64 %t266 = zext i32 %t263 to i64 %t267 = mul i64 %t266, %t265 %t268 = load ptr, ptr %t257 %t269 = call ptr @realloc(ptr %t268, i64 %t267) store ptr %t269, ptr %t257 store i32 %t263, ptr %t256 br label %put19 put19: %t270 = load ptr, ptr %t257 %t271 = getelementptr inbounds ptr, ptr %t270, i32 %t258 store ptr %t254, ptr %t271 %t272 = add i32 %t258, 1 store i32 %t272, ptr %t255 %t273 = load ptr, ptr %t140 %t274 = getelementptr inbounds %Cmp_Node, ptr %t273, i32 0, i32 4 %t275 = load ptr, ptr %t153 store ptr %t275, ptr %t274 %t276 = load ptr, ptr @g_prog %t277 = load ptr, ptr %t140 %t278 = getelementptr inbounds %LSlice, ptr %t276, i32 0, i32 1 %t279 = getelementptr inbounds %LSlice, ptr %t276, i32 0, i32 2 %t280 = getelementptr inbounds %LSlice, ptr %t276, i32 0, i32 0 %t281 = load i32, ptr %t278 %t282 = load i32, ptr %t279 %t283 = icmp sge i32 %t281, %t282 br i1 %t283, label %grow20, label %put21 grow20: %t284 = mul i32 %t282, 2 %t285 = icmp eq i32 %t282, 0 %t286 = select i1 %t285, i32 8, i32 %t284 %t287 = getelementptr ptr, ptr null, i32 1 %t288 = ptrtoint ptr %t287 to i64 %t289 = zext i32 %t286 to i64 %t290 = mul i64 %t289, %t288 %t291 = load ptr, ptr %t280 %t292 = call ptr @realloc(ptr %t291, i64 %t290) store ptr %t292, ptr %t280 store i32 %t286, ptr %t279 br label %put21 put21: %t293 = load ptr, ptr %t280 %t294 = getelementptr inbounds ptr, ptr %t293, i32 %t281 store ptr %t277, ptr %t294 %t295 = add i32 %t281, 1 store i32 %t295, ptr %t278 br label %ret ret: ret void } define void @fn_ui_register_gotos() { entry: %t0 = alloca i32 %t8 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t0 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str831, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0 %t20 = load i32, ptr %t19 %t21 = icmp eq i32 %t20, 12 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t8 br i1 %t23, label %sc5, label %scend6 sc5: %t25 = load ptr, ptr @g_prog %t26 = load i32, ptr %t0 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok7, label %ixbad8 ixbad8: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str832, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok7: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2 %t36 = load i32, ptr %t35 %t37 = icmp eq i32 %t36, 1 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t8 br label %scend6 scend6: %t41 = load i32, ptr %t8 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: %t43 = load ptr, ptr @g_prog %t44 = load i32, ptr %t0 %t45 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp ult i32 %t44, %t48 br i1 %t49, label %ixok12, label %ixbad13 ixbad13: %t50 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t50, ptr @.fmt_bounds, ptr @.str833, i32 %t44, i32 %t48) call void @exit(i32 1) unreachable ixok12: %t51 = getelementptr inbounds ptr, ptr %t46, i32 %t44 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4 %t54 = load ptr, ptr %t53 call void @fn_ui_gotos_in(ptr %t54) br label %ifend11 ifend11: %t55 = load i32, ptr %t0 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_ui_gotos_in(ptr %arg_w) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t29 = alloca ptr %t30 = alloca i32 %t53 = alloca i32 %t78 = alloca i32 %t92 = alloca ptr %t94 = alloca ptr %t98 = alloca ptr %t105 = alloca ptr %t114 = alloca ptr %t122 = alloca ptr %t173 = alloca i32 store ptr %arg_w, ptr %t0 store ptr null, ptr %t1 store ptr null, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 5 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 7 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t4, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %wbody1, label %wend2 wbody1: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 5 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = load i32, ptr %t3 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok3, label %ixbad4 ixbad4: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str834, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok3: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 store ptr %t28, ptr %t29 %t31 = load ptr, ptr %t29 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str835) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t30 br i1 %t35, label %sc5, label %scend6 sc5: %t37 = load ptr, ptr %t29 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 4 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 0 %t41 = load i32, ptr %t40 %t42 = icmp eq i32 %t41, 33 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t30 br label %scend6 scend6: %t46 = load i32, ptr %t30 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then7, label %ifend9 then7: %t48 = load ptr, ptr %t29 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 4 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 1 %t52 = load ptr, ptr %t51 store ptr %t52, ptr %t1 br label %ifend9 ifend9: %t54 = load ptr, ptr %t29 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t55 %t57 = call i32 @lp_str_eq(ptr %t56, ptr @.str836) %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t53 br i1 %t58, label %sc10, label %scend11 sc10: %t60 = load ptr, ptr %t29 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 0 %t64 = load i32, ptr %t63 %t65 = icmp eq i32 %t64, 33 %t66 = zext i1 %t65 to i32 %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t53 br label %scend11 scend11: %t69 = load i32, ptr %t53 %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then12, label %ifend14 then12: %t71 = load ptr, ptr %t29 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 1 %t75 = load ptr, ptr %t74 store ptr %t75, ptr %t2 br label %ifend14 ifend14: %t76 = load i32, ptr %t3 %t77 = add i32 %t76, 1 store i32 %t77, ptr %t3 br label %wcond0 wend2: %t79 = load ptr, ptr %t1 %t80 = icmp ne ptr %t79, null %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t78 br i1 %t82, label %sc15, label %scend16 sc15: %t84 = load ptr, ptr %t2 %t85 = icmp ne ptr %t84, null %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t78 br label %scend16 scend16: %t89 = load i32, ptr %t78 %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then17, label %ifend19 then17: %t91 = call ptr @fn_node(i32 7) store ptr %t91, ptr %t92 %t93 = call ptr @fn_node(i32 37) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1 store ptr @.str837, ptr %t96 %t97 = call ptr @fn_node(i32 33) store ptr %t97, ptr %t98 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 1 store ptr @.str838, ptr %t100 %t101 = load ptr, ptr %t94 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 4 %t103 = load ptr, ptr %t98 store ptr %t103, ptr %t102 %t104 = call ptr @fn_node(i32 33) store ptr %t104, ptr %t105 %t106 = load ptr, ptr %t105 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 1 %t108 = load ptr, ptr %t1 %t109 = call ptr @lp_str_concat(ptr @.str839, ptr %t108) store ptr %t109, ptr %t107 %t110 = load ptr, ptr %t94 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 5 %t112 = load ptr, ptr %t105 store ptr %t112, ptr %t111 %t113 = call ptr @fn_node(i32 12) store ptr %t113, ptr %t114 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 4 %t117 = load ptr, ptr %t94 store ptr %t117, ptr %t116 %t118 = load ptr, ptr %t114 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 5 %t120 = call ptr @fn_node(i32 7) store ptr %t120, ptr %t119 %t121 = call ptr @fn_node(i32 26) store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t2 store ptr %t125, ptr %t124 %t126 = load ptr, ptr %t114 %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 5 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 7 %t130 = load ptr, ptr %t129 %t131 = load ptr, ptr %t122 %t132 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t133 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 2 %t134 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t135 = load i32, ptr %t132 %t136 = load i32, ptr %t133 %t137 = icmp sge i32 %t135, %t136 br i1 %t137, label %grow20, label %put21 grow20: %t138 = mul i32 %t136, 2 %t139 = icmp eq i32 %t136, 0 %t140 = select i1 %t139, i32 8, i32 %t138 %t141 = getelementptr ptr, ptr null, i32 1 %t142 = ptrtoint ptr %t141 to i64 %t143 = zext i32 %t140 to i64 %t144 = mul i64 %t143, %t142 %t145 = load ptr, ptr %t134 %t146 = call ptr @realloc(ptr %t145, i64 %t144) store ptr %t146, ptr %t134 store i32 %t140, ptr %t133 br label %put21 put21: %t147 = load ptr, ptr %t134 %t148 = getelementptr inbounds ptr, ptr %t147, i32 %t135 store ptr %t131, ptr %t148 %t149 = add i32 %t135, 1 store i32 %t149, ptr %t132 %t150 = load ptr, ptr %t92 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 7 %t152 = load ptr, ptr %t151 %t153 = load ptr, ptr %t114 %t154 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 1 %t155 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 2 %t156 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 0 %t157 = load i32, ptr %t154 %t158 = load i32, ptr %t155 %t159 = icmp sge i32 %t157, %t158 br i1 %t159, label %grow22, label %put23 grow22: %t160 = mul i32 %t158, 2 %t161 = icmp eq i32 %t158, 0 %t162 = select i1 %t161, i32 8, i32 %t160 %t163 = getelementptr ptr, ptr null, i32 1 %t164 = ptrtoint ptr %t163 to i64 %t165 = zext i32 %t162 to i64 %t166 = mul i64 %t165, %t164 %t167 = load ptr, ptr %t156 %t168 = call ptr @realloc(ptr %t167, i64 %t166) store ptr %t168, ptr %t156 store i32 %t162, ptr %t155 br label %put23 put23: %t169 = load ptr, ptr %t156 %t170 = getelementptr inbounds ptr, ptr %t169, i32 %t157 store ptr %t153, ptr %t170 %t171 = add i32 %t157, 1 store i32 %t171, ptr %t154 %t172 = load ptr, ptr %t92 call void @fn_register_onlisten(ptr @.str840, ptr %t172) br label %ifend19 ifend19: store i32 0, ptr %t173 br label %wcond24 wcond24: %t174 = load i32, ptr %t173 %t175 = load ptr, ptr %t0 %t176 = getelementptr inbounds %Cmp_Node, ptr %t175, i32 0, i32 7 %t177 = load ptr, ptr %t176 %t178 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 1 %t179 = load i32, ptr %t178 %t180 = icmp slt i32 %t174, %t179 %t181 = zext i1 %t180 to i32 %t182 = icmp ne i32 %t181, 0 br i1 %t182, label %wbody25, label %wend26 wbody25: %t183 = load ptr, ptr %t0 %t184 = getelementptr inbounds %Cmp_Node, ptr %t183, i32 0, i32 7 %t185 = load ptr, ptr %t184 %t186 = load i32, ptr %t173 %t187 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 0 %t188 = load ptr, ptr %t187 %t189 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 1 %t190 = load i32, ptr %t189 %t191 = icmp ult i32 %t186, %t190 br i1 %t191, label %ixok27, label %ixbad28 ixbad28: %t192 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t192, ptr @.fmt_bounds, ptr @.str841, i32 %t186, i32 %t190) call void @exit(i32 1) unreachable ixok27: %t193 = getelementptr inbounds ptr, ptr %t188, i32 %t186 %t194 = load ptr, ptr %t193 call void @fn_ui_gotos_in(ptr %t194) %t195 = load i32, ptr %t173 %t196 = add i32 %t195, 1 store i32 %t196, ptr %t173 br label %wcond24 wend26: br label %ret ret: ret void } define ptr @fn_parse_enum() { entry: %retval = alloca ptr %t3 = alloca ptr %t11 = alloca ptr %t24 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 27) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() call void @fn_eat_op(ptr @.str842) br label %wcond0 wcond0: %t7 = icmp ne i32 1, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t8 = call i32 @fn_is_op(ptr @.str843) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t10 = call ptr @fn_node(i32 33) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = call ptr @fn_eat_id() store ptr %t14, ptr %t13 %t15 = call i32 @fn_is_op(ptr @.str844) %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then6, label %ifend8 then6: %t17 = load i32, ptr @g_pi %t18 = add i32 %t17, 1 store i32 %t18, ptr @g_pi call void @fn_skipnl() br label %wcond9 wcond9: %t19 = call i32 @fn_is_op(ptr @.str845) %t20 = icmp eq i32 %t19, 0 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %wbody10, label %wend11 wbody10: %t23 = call ptr @fn_node(i32 5) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 3 %t27 = call ptr @fn_ptype() store ptr %t27, ptr %t26 %t28 = load ptr, ptr %t11 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t24 %t32 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t33 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 2 %t34 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t35 = load i32, ptr %t32 %t36 = load i32, ptr %t33 %t37 = icmp sge i32 %t35, %t36 br i1 %t37, label %grow12, label %put13 grow12: %t38 = mul i32 %t36, 2 %t39 = icmp eq i32 %t36, 0 %t40 = select i1 %t39, i32 8, i32 %t38 %t41 = getelementptr ptr, ptr null, i32 1 %t42 = ptrtoint ptr %t41 to i64 %t43 = zext i32 %t40 to i64 %t44 = mul i64 %t43, %t42 %t45 = load ptr, ptr %t34 %t46 = call ptr @realloc(ptr %t45, i64 %t44) store ptr %t46, ptr %t34 store i32 %t40, ptr %t33 br label %put13 put13: %t47 = load ptr, ptr %t34 %t48 = getelementptr inbounds ptr, ptr %t47, i32 %t35 store ptr %t31, ptr %t48 %t49 = add i32 %t35, 1 store i32 %t49, ptr %t32 %t50 = call i32 @fn_is_op(ptr @.str846) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then14, label %ifend16 then14: %t52 = load i32, ptr @g_pi %t53 = add i32 %t52, 1 store i32 %t53, ptr @g_pi br label %ifend16 ifend16: call void @fn_skipnl() br label %wcond9 wend11: call void @fn_eat_op(ptr @.str847) br label %ifend8 ifend8: %t54 = load ptr, ptr %t3 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 7 %t56 = load ptr, ptr %t55 %t57 = load ptr, ptr %t11 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t59 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 2 %t60 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t61 = load i32, ptr %t58 %t62 = load i32, ptr %t59 %t63 = icmp sge i32 %t61, %t62 br i1 %t63, label %grow17, label %put18 grow17: %t64 = mul i32 %t62, 2 %t65 = icmp eq i32 %t62, 0 %t66 = select i1 %t65, i32 8, i32 %t64 %t67 = getelementptr ptr, ptr null, i32 1 %t68 = ptrtoint ptr %t67 to i64 %t69 = zext i32 %t66 to i64 %t70 = mul i64 %t69, %t68 %t71 = load ptr, ptr %t60 %t72 = call ptr @realloc(ptr %t71, i64 %t70) store ptr %t72, ptr %t60 store i32 %t66, ptr %t59 br label %put18 put18: %t73 = load ptr, ptr %t60 %t74 = getelementptr inbounds ptr, ptr %t73, i32 %t61 store ptr %t57, ptr %t74 %t75 = add i32 %t61, 1 store i32 %t75, ptr %t58 %t76 = call i32 @fn_is_op(ptr @.str848) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then19, label %ifend21 then19: %t78 = load i32, ptr @g_pi %t79 = add i32 %t78, 1 store i32 %t79, ptr @g_pi br label %ifend21 ifend21: call void @fn_skipnl() br label %wcond0 wend2: call void @fn_eat_op(ptr @.str849) %t80 = load ptr, ptr %t3 store ptr %t80, ptr %retval br label %ret ret: %t81 = load ptr, ptr %retval ret ptr %t81 } define ptr @fn_parse_archetype() { entry: %retval = alloca ptr %t3 = alloca ptr %t11 = alloca ptr %t17 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 10) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() call void @fn_eat_op(ptr @.str850) br label %wcond0 wcond0: %t7 = icmp ne i32 1, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t8 = call i32 @fn_is_op(ptr @.str851) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t10 = call ptr @fn_node(i32 33) store ptr %t10, ptr %t11 %t12 = call i32 @fn_is_op(ptr @.str852) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: %t14 = load i32, ptr @g_pi %t15 = add i32 %t14, 1 store i32 %t15, ptr @g_pi %t16 = call ptr @fn_eat_id() store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = call i32 @lp_str_eq(ptr %t18, ptr @.str853) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then9, label %ifend11 then9: %t21 = load ptr, ptr %t11 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 2 store i32 1, ptr %t22 br label %ifend11 ifend11: call void @fn_skipnl() br label %ifend8 ifend8: %t23 = load ptr, ptr %t11 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = call ptr @fn_eat_id() store ptr %t25, ptr %t24 %t26 = load ptr, ptr %t3 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7 %t28 = load ptr, ptr %t27 %t29 = load ptr, ptr %t11 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t31 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 2 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t33 = load i32, ptr %t30 %t34 = load i32, ptr %t31 %t35 = icmp sge i32 %t33, %t34 br i1 %t35, label %grow12, label %put13 grow12: %t36 = mul i32 %t34, 2 %t37 = icmp eq i32 %t34, 0 %t38 = select i1 %t37, i32 8, i32 %t36 %t39 = getelementptr ptr, ptr null, i32 1 %t40 = ptrtoint ptr %t39 to i64 %t41 = zext i32 %t38 to i64 %t42 = mul i64 %t41, %t40 %t43 = load ptr, ptr %t32 %t44 = call ptr @realloc(ptr %t43, i64 %t42) store ptr %t44, ptr %t32 store i32 %t38, ptr %t31 br label %put13 put13: %t45 = load ptr, ptr %t32 %t46 = getelementptr inbounds ptr, ptr %t45, i32 %t33 store ptr %t29, ptr %t46 %t47 = add i32 %t33, 1 store i32 %t47, ptr %t30 %t48 = call i32 @fn_is_op(ptr @.str854) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then14, label %ifend16 then14: %t50 = load i32, ptr @g_pi %t51 = add i32 %t50, 1 store i32 %t51, ptr @g_pi br label %ifend16 ifend16: call void @fn_skipnl() br label %wcond0 wend2: call void @fn_eat_op(ptr @.str855) %t52 = load ptr, ptr %t3 store ptr %t52, ptr %retval br label %ret ret: %t53 = load ptr, ptr %retval ret ptr %t53 } define ptr @fn_parse_extern() { entry: %retval = alloca ptr %t3 = alloca ptr %t5 = alloca ptr %t14 = alloca ptr %t66 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_eat_id() store ptr %t2, ptr %t3 %t4 = call ptr @fn_node(i32 11) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = call ptr @fn_eat_id() store ptr %t8, ptr %t7 call void @fn_eat_op(ptr @.str856) br label %wcond0 wcond0: %t9 = call i32 @fn_is_op(ptr @.str857) %t10 = icmp eq i32 %t9, 0 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody1, label %wend2 wbody1: %t13 = call ptr @fn_node(i32 5) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = call ptr @fn_eat_id() store ptr %t17, ptr %t16 call void @fn_eat_op(ptr @.str858) %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 3 %t20 = call ptr @fn_ptype() store ptr %t20, ptr %t19 %t21 = load ptr, ptr %t5 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 7 %t23 = load ptr, ptr %t22 %t24 = load ptr, ptr %t14 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t28 = load i32, ptr %t25 %t29 = load i32, ptr %t26 %t30 = icmp sge i32 %t28, %t29 br i1 %t30, label %grow3, label %put4 grow3: %t31 = mul i32 %t29, 2 %t32 = icmp eq i32 %t29, 0 %t33 = select i1 %t32, i32 8, i32 %t31 %t34 = getelementptr ptr, ptr null, i32 1 %t35 = ptrtoint ptr %t34 to i64 %t36 = zext i32 %t33 to i64 %t37 = mul i64 %t36, %t35 %t38 = load ptr, ptr %t27 %t39 = call ptr @realloc(ptr %t38, i64 %t37) store ptr %t39, ptr %t27 store i32 %t33, ptr %t26 br label %put4 put4: %t40 = load ptr, ptr %t27 %t41 = getelementptr inbounds ptr, ptr %t40, i32 %t28 store ptr %t24, ptr %t41 %t42 = add i32 %t28, 1 store i32 %t42, ptr %t25 %t43 = call i32 @fn_is_op(ptr @.str859) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then5, label %ifend7 then5: %t45 = load i32, ptr @g_pi %t46 = add i32 %t45, 1 store i32 %t46, ptr @g_pi br label %ifend7 ifend7: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str860) %t47 = load ptr, ptr %t5 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3 store ptr @.str861, ptr %t48 %t49 = call i32 @fn_is_op(ptr @.str862) %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then8, label %ifend10 then8: %t51 = load i32, ptr @g_pi %t52 = add i32 %t51, 1 store i32 %t52, ptr @g_pi %t53 = load ptr, ptr %t5 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 3 %t55 = call ptr @fn_ptype() store ptr %t55, ptr %t54 br label %ifend10 ifend10: call void @fn_eat_op(ptr @.str863) %t56 = load ptr, ptr @g_toks %t57 = load i32, ptr @g_pi %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 %t57, %t61 br i1 %t62, label %ixok11, label %ixbad12 ixbad12: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str864, i32 %t57, i32 %t61) call void @exit(i32 1) unreachable ixok11: %t64 = getelementptr inbounds ptr, ptr %t59, i32 %t57 %t65 = load ptr, ptr %t64 store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t5 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 4 %t69 = call ptr @fn_node(i32 31) store ptr %t69, ptr %t68 %t70 = load ptr, ptr %t5 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 4 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 %t74 = load ptr, ptr %t66 %t75 = getelementptr inbounds %Cmp_Tok, ptr %t74, i32 0, i32 1 %t76 = load ptr, ptr %t75 store ptr %t76, ptr %t73 %t77 = load i32, ptr @g_pi %t78 = add i32 %t77, 1 store i32 %t78, ptr @g_pi %t79 = load ptr, ptr %t5 store ptr %t79, ptr %retval br label %ret ret: %t80 = load ptr, ptr %retval ret ptr %t80 } define ptr @fn_parse_widget() { entry: %retval = alloca ptr %t1 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 %t65 = alloca ptr %t0 = call ptr @fn_node(i32 12) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1 %t4 = call ptr @fn_eat_id() store ptr %t4, ptr %t3 %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 5 %t7 = call ptr @fn_node(i32 7) store ptr %t7, ptr %t6 br label %wcond0 wcond0: %t10 = load ptr, ptr @g_toks %t11 = load i32, ptr @g_pi %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str865, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Tok, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 0 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t9 br i1 %t24, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr @g_toks %t27 = load i32, ptr @g_pi %t28 = add i32 %t27, 1 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok7, label %ixbad8 ixbad8: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str866, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok7: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %Cmp_Tok, ptr %t36, i32 0, i32 0 %t38 = load i32, ptr %t37 %t39 = icmp eq i32 %t38, 3 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t9 br label %scend6 scend6: %t43 = load i32, ptr %t9 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t8 br i1 %t44, label %sc9, label %scend10 sc9: %t46 = load ptr, ptr @g_toks %t47 = load i32, ptr @g_pi %t48 = add i32 %t47, 1 %t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 %t48, %t52 br i1 %t53, label %ixok11, label %ixbad12 ixbad12: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str867, i32 %t48, i32 %t52) call void @exit(i32 1) unreachable ixok11: %t55 = getelementptr inbounds ptr, ptr %t50, i32 %t48 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %Cmp_Tok, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str868) %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t8 br label %scend10 scend10: %t62 = load i32, ptr %t8 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %wbody1, label %wend2 wbody1: %t64 = call ptr @fn_node(i32 42) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1 %t68 = call ptr @fn_eat_id() store ptr %t68, ptr %t67 call void @fn_eat_op(ptr @.str869) %t69 = load ptr, ptr %t65 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 4 %t71 = call ptr @fn_expr() store ptr %t71, ptr %t70 %t72 = load ptr, ptr %t1 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 5 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 7 %t76 = load ptr, ptr %t75 %t77 = load ptr, ptr %t65 %t78 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t79 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 2 %t80 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 0 %t81 = load i32, ptr %t78 %t82 = load i32, ptr %t79 %t83 = icmp sge i32 %t81, %t82 br i1 %t83, label %grow13, label %put14 grow13: %t84 = mul i32 %t82, 2 %t85 = icmp eq i32 %t82, 0 %t86 = select i1 %t85, i32 8, i32 %t84 %t87 = getelementptr ptr, ptr null, i32 1 %t88 = ptrtoint ptr %t87 to i64 %t89 = zext i32 %t86 to i64 %t90 = mul i64 %t89, %t88 %t91 = load ptr, ptr %t80 %t92 = call ptr @realloc(ptr %t91, i64 %t90) store ptr %t92, ptr %t80 store i32 %t86, ptr %t79 br label %put14 put14: %t93 = load ptr, ptr %t80 %t94 = getelementptr inbounds ptr, ptr %t93, i32 %t81 store ptr %t77, ptr %t94 %t95 = add i32 %t81, 1 store i32 %t95, ptr %t78 br label %wcond0 wend2: call void @fn_skipnl() %t96 = call i32 @fn_is_op(ptr @.str870) %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then15, label %ifend17 then15: %t98 = load i32, ptr @g_pi %t99 = add i32 %t98, 1 store i32 %t99, ptr @g_pi br label %wcond18 wcond18: %t100 = icmp ne i32 1, 0 br i1 %t100, label %wbody19, label %wend20 wbody19: call void @fn_skipnl() %t101 = call i32 @fn_is_op(ptr @.str871) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then21, label %ifend23 then21: br label %wend20 ifend23: %t103 = load ptr, ptr %t1 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 7 %t105 = load ptr, ptr %t104 %t106 = call ptr @fn_parse_widget() %t107 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 1 %t108 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 2 %t109 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 0 %t110 = load i32, ptr %t107 %t111 = load i32, ptr %t108 %t112 = icmp sge i32 %t110, %t111 br i1 %t112, label %grow24, label %put25 grow24: %t113 = mul i32 %t111, 2 %t114 = icmp eq i32 %t111, 0 %t115 = select i1 %t114, i32 8, i32 %t113 %t116 = getelementptr ptr, ptr null, i32 1 %t117 = ptrtoint ptr %t116 to i64 %t118 = zext i32 %t115 to i64 %t119 = mul i64 %t118, %t117 %t120 = load ptr, ptr %t109 %t121 = call ptr @realloc(ptr %t120, i64 %t119) store ptr %t121, ptr %t109 store i32 %t115, ptr %t108 br label %put25 put25: %t122 = load ptr, ptr %t109 %t123 = getelementptr inbounds ptr, ptr %t122, i32 %t110 store ptr %t106, ptr %t123 %t124 = add i32 %t110, 1 store i32 %t124, ptr %t107 br label %wcond18 wend20: call void @fn_eat_op(ptr @.str872) br label %ifend17 ifend17: %t125 = load ptr, ptr %t1 store ptr %t125, ptr %retval br label %ret ret: %t126 = load ptr, ptr %retval ret ptr %t126 } define ptr @fn_parse_ui() { entry: %retval = alloca ptr %t3 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 12) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 2 store i32 1, ptr %t8 call void @fn_skipnl() call void @fn_eat_op(ptr @.str873) call void @fn_skipnl() %t9 = load ptr, ptr %t3 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4 %t11 = call ptr @fn_parse_widget() store ptr %t11, ptr %t10 call void @fn_skipnl() call void @fn_eat_op(ptr @.str874) %t12 = load ptr, ptr %t3 store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define void @fn_gen_enter(ptr %arg_tps) { entry: %t0 = alloca ptr store ptr %arg_tps, ptr %t0 %t1 = load ptr, ptr %t0 store ptr %t1, ptr @g_g_gen_tps br label %ret ret: ret void } define ptr @fn_gen_params() { entry: %retval = alloca ptr %t0 = alloca ptr call void @fn_eat_op(ptr @.str875) store ptr @.str876, ptr %t0 br label %wcond0 wcond0: %t1 = call i32 @fn_is_op(ptr @.str877) %t2 = icmp eq i32 %t1, 0 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %wbody1, label %wend2 wbody1: %t5 = load ptr, ptr %t0 %t6 = call i64 @strlen(ptr %t5) %t7 = trunc i64 %t6 to i32 %t8 = icmp sgt i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: %t11 = load ptr, ptr %t0 %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str878) store ptr %t12, ptr %t0 br label %ifend5 ifend5: %t13 = load ptr, ptr %t0 %t14 = call ptr @fn_eat_id() %t15 = call ptr @lp_str_concat(ptr %t13, ptr %t14) store ptr %t15, ptr %t0 %t16 = call i32 @fn_is_op(ptr @.str879) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: %t18 = load i32, ptr @g_pi %t19 = add i32 %t18, 1 store i32 %t19, ptr @g_pi br label %ifend8 ifend8: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str880) %t20 = load ptr, ptr %t0 store ptr %t20, ptr %retval br label %ret ret: %t21 = load ptr, ptr %retval ret ptr %t21 } define i32 @fn_gen_name_ch(i32 %arg_c) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 %t14 = alloca i32 %t27 = alloca i32 %t40 = alloca i32 store i32 %arg_c, ptr %t0 %t2 = load i32, ptr %t0 %t3 = icmp sge i32 %t2, 97 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %sc0, label %scend1 sc0: %t7 = load i32, ptr %t0 %t8 = icmp sle i32 %t7, 122 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t1 br label %scend1 scend1: %t12 = load i32, ptr %t1 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then2, label %ifend4 then2: store i32 1, ptr %retval br label %ret ifend4: %t15 = load i32, ptr %t0 %t16 = icmp sge i32 %t15, 65 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t14 br i1 %t18, label %sc5, label %scend6 sc5: %t20 = load i32, ptr %t0 %t21 = icmp sle i32 %t20, 90 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t14 br label %scend6 scend6: %t25 = load i32, ptr %t14 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then7, label %ifend9 then7: store i32 1, ptr %retval br label %ret ifend9: %t28 = load i32, ptr %t0 %t29 = icmp sge i32 %t28, 48 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t27 br i1 %t31, label %sc10, label %scend11 sc10: %t33 = load i32, ptr %t0 %t34 = icmp sle i32 %t33, 57 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t27 br label %scend11 scend11: %t38 = load i32, ptr %t27 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then12, label %ifend14 then12: store i32 1, ptr %retval br label %ret ifend14: %t41 = load i32, ptr %t0 %t42 = icmp eq i32 %t41, 95 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t40 br i1 %t44, label %scend16, label %sc15 sc15: %t46 = load i32, ptr %t0 %t47 = icmp eq i32 %t46, 36 %t48 = zext i1 %t47 to i32 %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t40 br label %scend16 scend16: %t51 = load i32, ptr %t40 store i32 %t51, ptr %retval br label %ret ret: %t52 = load i32, ptr %retval ret i32 %t52 } define ptr @fn_gen_mangle(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t6 = alloca i32 %t12 = alloca i32 %t13 = alloca i32 store ptr %arg_t, ptr %t0 store ptr @.str881, ptr %t1 store i32 0, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call i64 @strlen(ptr %t3) %t5 = trunc i64 %t4 to i32 store i32 %t5, ptr %t6 br label %wcond0 wcond0: %t7 = load i32, ptr %t2 %t8 = load i32, ptr %t6 %t9 = icmp slt i32 %t7, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t14 = load ptr, ptr %t0 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds i8, ptr %t14, i32 %t15 %t17 = load i8, ptr %t16 %t18 = zext i8 %t17 to i32 %t19 = icmp eq i32 %t18, 91 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t13 br i1 %t21, label %sc3, label %scend4 sc3: %t23 = load i32, ptr %t2 %t24 = add i32 %t23, 1 %t25 = load i32, ptr %t6 %t26 = icmp slt i32 %t24, %t25 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t13 br label %scend4 scend4: %t30 = load i32, ptr %t13 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t12 br i1 %t31, label %sc5, label %scend6 sc5: %t33 = load ptr, ptr %t0 %t34 = load i32, ptr %t2 %t35 = add i32 %t34, 1 %t36 = getelementptr inbounds i8, ptr %t33, i32 %t35 %t37 = load i8, ptr %t36 %t38 = zext i8 %t37 to i32 %t39 = icmp eq i32 %t38, 93 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t12 br label %scend6 scend6: %t43 = load i32, ptr %t12 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then7, label %ifend9 then7: %t45 = load ptr, ptr %t1 %t46 = call ptr @lp_str_concat(ptr %t45, ptr @.str882) store ptr %t46, ptr %t1 %t47 = load i32, ptr %t2 %t48 = add i32 %t47, 2 store i32 %t48, ptr %t2 br label %wcond0 ifend9: %t49 = load ptr, ptr %t0 %t50 = load i32, ptr %t2 %t51 = getelementptr inbounds i8, ptr %t49, i32 %t50 %t52 = load i8, ptr %t51 %t53 = zext i8 %t52 to i32 %t54 = call i32 @fn_gen_name_ch(i32 %t53) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then10, label %else11 then10: %t56 = load ptr, ptr %t1 %t57 = load ptr, ptr %t0 %t58 = load i32, ptr %t2 %t59 = load i32, ptr %t2 %t60 = add i32 %t59, 1 %t61 = call ptr @lp_str_slice(ptr %t57, i32 %t58, i32 %t60) %t62 = call ptr @lp_str_concat(ptr %t56, ptr %t61) store ptr %t62, ptr %t1 br label %ifend12 else11: %t63 = load ptr, ptr %t1 %t64 = call ptr @lp_str_concat(ptr %t63, ptr @.str883) store ptr %t64, ptr %t1 br label %ifend12 ifend12: %t65 = load i32, ptr %t2 %t66 = add i32 %t65, 1 store i32 %t66, ptr %t2 br label %wcond0 wend2: %t67 = load ptr, ptr %t1 store ptr %t67, ptr %retval br label %ret ret: %t68 = load ptr, ptr %retval ret ptr %t68 } define ptr @fn_gen_split(ptr %arg_s) { entry: %retval = alloca ptr %t0 = alloca ptr %t7 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 %t13 = alloca i32 %t19 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 store i32 0, ptr %t8 store i32 0, ptr %t9 %t10 = load ptr, ptr %t0 %t11 = call i64 @strlen(ptr %t10) %t12 = trunc i64 %t11 to i32 store i32 %t12, ptr %t13 br label %wcond0 wcond0: %t14 = load i32, ptr %t9 %t15 = load i32, ptr %t13 %t16 = icmp sle i32 %t14, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody1, label %wend2 wbody1: %t20 = load i32, ptr %t9 %t21 = load i32, ptr %t13 %t22 = icmp eq i32 %t20, %t21 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t19 br i1 %t24, label %scend4, label %sc3 sc3: %t26 = load ptr, ptr %t0 %t27 = load i32, ptr %t9 %t28 = getelementptr inbounds i8, ptr %t26, i32 %t27 %t29 = load i8, ptr %t28 %t30 = zext i8 %t29 to i32 %t31 = icmp eq i32 %t30, 124 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t19 br label %scend4 scend4: %t35 = load i32, ptr %t19 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then5, label %ifend7 then5: %t37 = load ptr, ptr %t7 %t38 = load ptr, ptr %t0 %t39 = load i32, ptr %t8 %t40 = load i32, ptr %t9 %t41 = call ptr @lp_str_slice(ptr %t38, i32 %t39, i32 %t40) %t42 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t43 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 2 %t44 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t45 = load i32, ptr %t42 %t46 = load i32, ptr %t43 %t47 = icmp sge i32 %t45, %t46 br i1 %t47, label %grow8, label %put9 grow8: %t48 = mul i32 %t46, 2 %t49 = icmp eq i32 %t46, 0 %t50 = select i1 %t49, i32 8, i32 %t48 %t51 = getelementptr ptr, ptr null, i32 1 %t52 = ptrtoint ptr %t51 to i64 %t53 = zext i32 %t50 to i64 %t54 = mul i64 %t53, %t52 %t55 = load ptr, ptr %t44 %t56 = call ptr @realloc(ptr %t55, i64 %t54) store ptr %t56, ptr %t44 store i32 %t50, ptr %t43 br label %put9 put9: %t57 = load ptr, ptr %t44 %t58 = getelementptr inbounds ptr, ptr %t57, i32 %t45 store ptr %t41, ptr %t58 %t59 = add i32 %t45, 1 store i32 %t59, ptr %t42 %t60 = load i32, ptr %t9 %t61 = add i32 %t60, 1 store i32 %t61, ptr %t8 br label %ifend7 ifend7: %t62 = load i32, ptr %t9 %t63 = add i32 %t62, 1 store i32 %t63, ptr %t9 br label %wcond0 wend2: %t64 = load ptr, ptr %t7 store ptr %t64, ptr %retval br label %ret ret: %t65 = load ptr, ptr %retval ret ptr %t65 } define i32 @fn_gen_is_param(ptr %arg_name, ptr %arg_tps) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca ptr %t9 = alloca i32 store ptr %arg_name, ptr %t0 store ptr %arg_tps, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t1 %t7 = call ptr @fn_gen_split(ptr %t6) store ptr %t7, ptr %t8 store i32 0, ptr %t9 br label %wcond3 wcond3: %t10 = load i32, ptr %t9 %t11 = load ptr, ptr %t8 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t10, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody4, label %wend5 wbody4: %t17 = load ptr, ptr %t8 %t18 = load i32, ptr %t9 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok6, label %ixbad7 ixbad7: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str884, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok6: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = call i32 @lp_str_eq(ptr %t26, ptr %t27) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t30 = load i32, ptr %t9 %t31 = add i32 %t30, 1 store i32 %t31, ptr %t9 br label %wcond3 wend5: store i32 0, ptr %retval br label %ret ret: %t32 = load i32, ptr %retval ret i32 %t32 } define i32 @fn_gen_mentions(ptr %arg_t, ptr %arg_tps) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 %t11 = alloca i32 %t17 = alloca i32 %t24 = alloca i32 %t49 = alloca i32 store ptr %arg_t, ptr %t0 store ptr %arg_tps, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: store i32 0, ptr %t6 store i32 0, ptr %t7 %t8 = load ptr, ptr %t0 %t9 = call i64 @strlen(ptr %t8) %t10 = trunc i64 %t9 to i32 store i32 %t10, ptr %t11 br label %wcond3 wcond3: %t12 = load i32, ptr %t7 %t13 = load i32, ptr %t11 %t14 = icmp sle i32 %t12, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody4, label %wend5 wbody4: %t18 = load i32, ptr %t7 %t19 = load i32, ptr %t11 %t20 = icmp eq i32 %t18, %t19 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t17 br i1 %t22, label %scend7, label %sc6 sc6: %t25 = load ptr, ptr %t0 %t26 = load i32, ptr %t7 %t27 = getelementptr inbounds i8, ptr %t25, i32 %t26 %t28 = load i8, ptr %t27 %t29 = zext i8 %t28 to i32 %t30 = call i32 @fn_gen_name_ch(i32 %t29) %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t24 br i1 %t31, label %sc8, label %scend9 sc8: %t33 = load ptr, ptr %t0 %t34 = load i32, ptr %t7 %t35 = getelementptr inbounds i8, ptr %t33, i32 %t34 %t36 = load i8, ptr %t35 %t37 = zext i8 %t36 to i32 %t38 = icmp ne i32 %t37, 36 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t24 br label %scend9 scend9: %t42 = load i32, ptr %t24 %t43 = icmp eq i32 %t42, 0 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t17 br label %scend7 scend7: %t47 = load i32, ptr %t17 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then10, label %ifend12 then10: %t50 = load i32, ptr %t7 %t51 = load i32, ptr %t6 %t52 = icmp sgt i32 %t50, %t51 %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t49 br i1 %t54, label %sc13, label %scend14 sc13: %t56 = load ptr, ptr %t0 %t57 = load i32, ptr %t6 %t58 = load i32, ptr %t7 %t59 = call ptr @lp_str_slice(ptr %t56, i32 %t57, i32 %t58) %t60 = load ptr, ptr %t1 %t61 = call i32 @fn_gen_is_param(ptr %t59, ptr %t60) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t49 br label %scend14 scend14: %t64 = load i32, ptr %t49 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: %t66 = load i32, ptr %t7 %t67 = add i32 %t66, 1 store i32 %t67, ptr %t6 br label %ifend12 ifend12: %t68 = load i32, ptr %t7 %t69 = add i32 %t68, 1 store i32 %t69, ptr %t7 br label %wcond3 wend5: store i32 0, ptr %retval br label %ret ret: %t70 = load i32, ptr %retval ret i32 %t70 } define i32 @fn_gen_find(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_gi_name %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_gi_name %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str885, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load i32, ptr %t1 store i32 %t22, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t1 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t1 br label %wcond0 wend2: %t25 = sub i32 0, 1 store i32 %t25, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define ptr @fn_gen_instance(ptr %arg_gen, ptr %arg_args) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t5 = alloca i32 %t6 = alloca i32 %t59 = alloca i32 %t208 = alloca i32 %t209 = alloca i32 store ptr %arg_gen, ptr %t0 store ptr %arg_args, ptr %t1 %t3 = load ptr, ptr %t0 store ptr %t3, ptr %t2 store ptr @.str886, ptr %t4 store i32 0, ptr %t5 store i32 0, ptr %t6 br label %wcond0 wcond0: %t7 = load i32, ptr %t6 %t8 = load ptr, ptr %t1 %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp slt i32 %t7, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %wbody1, label %wend2 wbody1: %t14 = load ptr, ptr %t2 %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str887) %t16 = load ptr, ptr %t1 %t17 = load i32, ptr %t6 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp ult i32 %t17, %t21 br i1 %t22, label %ixok3, label %ixbad4 ixbad4: %t23 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t23, ptr @.fmt_bounds, ptr @.str888, i32 %t17, i32 %t21) call void @exit(i32 1) unreachable ixok3: %t24 = getelementptr inbounds ptr, ptr %t19, i32 %t17 %t25 = load ptr, ptr %t24 %t26 = call ptr @fn_gen_mangle(ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t15, ptr %t26) store ptr %t27, ptr %t2 %t28 = load i32, ptr %t6 %t29 = icmp sgt i32 %t28, 0 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then5, label %ifend7 then5: %t32 = load ptr, ptr %t4 %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str889) store ptr %t33, ptr %t4 br label %ifend7 ifend7: %t34 = load ptr, ptr %t4 %t35 = load ptr, ptr %t1 %t36 = load i32, ptr %t6 %t37 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp ult i32 %t36, %t40 br i1 %t41, label %ixok8, label %ixbad9 ixbad9: %t42 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t42, ptr @.fmt_bounds, ptr @.str890, i32 %t36, i32 %t40) call void @exit(i32 1) unreachable ixok8: %t43 = getelementptr inbounds ptr, ptr %t38, i32 %t36 %t44 = load ptr, ptr %t43 %t45 = call ptr @lp_str_concat(ptr %t34, ptr %t44) store ptr %t45, ptr %t4 %t46 = load ptr, ptr %t1 %t47 = load i32, ptr %t6 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok10, label %ixbad11 ixbad11: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str891, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok10: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = load ptr, ptr @g_g_gen_tps %t57 = call i32 @fn_gen_mentions(ptr %t55, ptr %t56) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then12, label %ifend14 then12: store i32 1, ptr %t5 br label %ifend14 ifend14: %t60 = load ptr, ptr %t1 %t61 = load i32, ptr %t6 %t62 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ult i32 %t61, %t65 br i1 %t66, label %ixok15, label %ixbad16 ixbad16: %t67 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t67, ptr @.fmt_bounds, ptr @.str892, i32 %t61, i32 %t65) call void @exit(i32 1) unreachable ixok15: %t68 = getelementptr inbounds ptr, ptr %t63, i32 %t61 %t69 = load ptr, ptr %t68 %t70 = call i32 @fn_gen_find(ptr %t69) %t71 = icmp sge i32 %t70, 0 %t72 = zext i1 %t71 to i32 %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t59 br i1 %t73, label %sc17, label %scend18 sc17: %t75 = load ptr, ptr @g_g_gi_open %t76 = load ptr, ptr %t1 %t77 = load i32, ptr %t6 %t78 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp ult i32 %t77, %t81 br i1 %t82, label %ixok19, label %ixbad20 ixbad20: %t83 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t83, ptr @.fmt_bounds, ptr @.str893, i32 %t77, i32 %t81) call void @exit(i32 1) unreachable ixok19: %t84 = getelementptr inbounds ptr, ptr %t79, i32 %t77 %t85 = load ptr, ptr %t84 %t86 = call i32 @fn_gen_find(ptr %t85) %t87 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0 %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t90 = load i32, ptr %t89 %t91 = icmp ult i32 %t86, %t90 br i1 %t91, label %ixok21, label %ixbad22 ixbad22: %t92 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t92, ptr @.fmt_bounds, ptr @.str894, i32 %t86, i32 %t90) call void @exit(i32 1) unreachable ixok21: %t93 = getelementptr inbounds i32, ptr %t88, i32 %t86 %t94 = load i32, ptr %t93 %t95 = icmp eq i32 %t94, 1 %t96 = zext i1 %t95 to i32 %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t59 br label %scend18 scend18: %t99 = load i32, ptr %t59 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then23, label %ifend25 then23: store i32 1, ptr %t5 br label %ifend25 ifend25: %t101 = load i32, ptr %t6 %t102 = add i32 %t101, 1 store i32 %t102, ptr %t6 br label %wcond0 wend2: %t103 = load ptr, ptr %t2 %t104 = call i32 @fn_gen_find(ptr %t103) %t105 = icmp slt i32 %t104, 0 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then26, label %ifend28 then26: %t108 = load ptr, ptr @g_g_gi_name %t109 = load ptr, ptr %t2 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t111 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2 %t112 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t113 = load i32, ptr %t110 %t114 = load i32, ptr %t111 %t115 = icmp sge i32 %t113, %t114 br i1 %t115, label %grow29, label %put30 grow29: %t116 = mul i32 %t114, 2 %t117 = icmp eq i32 %t114, 0 %t118 = select i1 %t117, i32 8, i32 %t116 %t119 = getelementptr ptr, ptr null, i32 1 %t120 = ptrtoint ptr %t119 to i64 %t121 = zext i32 %t118 to i64 %t122 = mul i64 %t121, %t120 %t123 = load ptr, ptr %t112 %t124 = call ptr @realloc(ptr %t123, i64 %t122) store ptr %t124, ptr %t112 store i32 %t118, ptr %t111 br label %put30 put30: %t125 = load ptr, ptr %t112 %t126 = getelementptr inbounds ptr, ptr %t125, i32 %t113 store ptr %t109, ptr %t126 %t127 = add i32 %t113, 1 store i32 %t127, ptr %t110 %t128 = load ptr, ptr @g_g_gi_gen %t129 = load ptr, ptr %t0 %t130 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 1 %t131 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 2 %t132 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 0 %t133 = load i32, ptr %t130 %t134 = load i32, ptr %t131 %t135 = icmp sge i32 %t133, %t134 br i1 %t135, label %grow31, label %put32 grow31: %t136 = mul i32 %t134, 2 %t137 = icmp eq i32 %t134, 0 %t138 = select i1 %t137, i32 8, i32 %t136 %t139 = getelementptr ptr, ptr null, i32 1 %t140 = ptrtoint ptr %t139 to i64 %t141 = zext i32 %t138 to i64 %t142 = mul i64 %t141, %t140 %t143 = load ptr, ptr %t132 %t144 = call ptr @realloc(ptr %t143, i64 %t142) store ptr %t144, ptr %t132 store i32 %t138, ptr %t131 br label %put32 put32: %t145 = load ptr, ptr %t132 %t146 = getelementptr inbounds ptr, ptr %t145, i32 %t133 store ptr %t129, ptr %t146 %t147 = add i32 %t133, 1 store i32 %t147, ptr %t130 %t148 = load ptr, ptr @g_g_gi_args %t149 = load ptr, ptr %t4 %t150 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 1 %t151 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 2 %t152 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 0 %t153 = load i32, ptr %t150 %t154 = load i32, ptr %t151 %t155 = icmp sge i32 %t153, %t154 br i1 %t155, label %grow33, label %put34 grow33: %t156 = mul i32 %t154, 2 %t157 = icmp eq i32 %t154, 0 %t158 = select i1 %t157, i32 8, i32 %t156 %t159 = getelementptr ptr, ptr null, i32 1 %t160 = ptrtoint ptr %t159 to i64 %t161 = zext i32 %t158 to i64 %t162 = mul i64 %t161, %t160 %t163 = load ptr, ptr %t152 %t164 = call ptr @realloc(ptr %t163, i64 %t162) store ptr %t164, ptr %t152 store i32 %t158, ptr %t151 br label %put34 put34: %t165 = load ptr, ptr %t152 %t166 = getelementptr inbounds ptr, ptr %t165, i32 %t153 store ptr %t149, ptr %t166 %t167 = add i32 %t153, 1 store i32 %t167, ptr %t150 %t168 = load ptr, ptr @g_g_gi_open %t169 = load i32, ptr %t5 %t170 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 1 %t171 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 2 %t172 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 0 %t173 = load i32, ptr %t170 %t174 = load i32, ptr %t171 %t175 = icmp sge i32 %t173, %t174 br i1 %t175, label %grow35, label %put36 grow35: %t176 = mul i32 %t174, 2 %t177 = icmp eq i32 %t174, 0 %t178 = select i1 %t177, i32 8, i32 %t176 %t179 = getelementptr i32, ptr null, i32 1 %t180 = ptrtoint ptr %t179 to i64 %t181 = zext i32 %t178 to i64 %t182 = mul i64 %t181, %t180 %t183 = load ptr, ptr %t172 %t184 = call ptr @realloc(ptr %t183, i64 %t182) store ptr %t184, ptr %t172 store i32 %t178, ptr %t171 br label %put36 put36: %t185 = load ptr, ptr %t172 %t186 = getelementptr inbounds i32, ptr %t185, i32 %t173 store i32 %t169, ptr %t186 %t187 = add i32 %t173, 1 store i32 %t187, ptr %t170 %t188 = load ptr, ptr @g_g_gi_file %t189 = load ptr, ptr @g_g_parse_file %t190 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 1 %t191 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 2 %t192 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 0 %t193 = load i32, ptr %t190 %t194 = load i32, ptr %t191 %t195 = icmp sge i32 %t193, %t194 br i1 %t195, label %grow37, label %put38 grow37: %t196 = mul i32 %t194, 2 %t197 = icmp eq i32 %t194, 0 %t198 = select i1 %t197, i32 8, i32 %t196 %t199 = getelementptr ptr, ptr null, i32 1 %t200 = ptrtoint ptr %t199 to i64 %t201 = zext i32 %t198 to i64 %t202 = mul i64 %t201, %t200 %t203 = load ptr, ptr %t192 %t204 = call ptr @realloc(ptr %t203, i64 %t202) store ptr %t204, ptr %t192 store i32 %t198, ptr %t191 br label %put38 put38: %t205 = load ptr, ptr %t192 %t206 = getelementptr inbounds ptr, ptr %t205, i32 %t193 store ptr %t189, ptr %t206 %t207 = add i32 %t193, 1 store i32 %t207, ptr %t190 store i32 0, ptr %t208 %t210 = load i32, ptr @g_g_parsing %t211 = icmp ne i32 %t210, 0 %t212 = zext i1 %t211 to i32 store i32 %t212, ptr %t209 br i1 %t211, label %sc39, label %scend40 sc39: %t213 = load i32, ptr @g_pi %t214 = load ptr, ptr @g_toks %t215 = getelementptr inbounds %LSlice, ptr %t214, i32 0, i32 1 %t216 = load i32, ptr %t215 %t217 = icmp slt i32 %t213, %t216 %t218 = zext i1 %t217 to i32 %t219 = icmp ne i32 %t218, 0 %t220 = zext i1 %t219 to i32 store i32 %t220, ptr %t209 br label %scend40 scend40: %t221 = load i32, ptr %t209 %t222 = icmp ne i32 %t221, 0 br i1 %t222, label %then41, label %ifend43 then41: %t223 = load ptr, ptr @g_toks %t224 = load i32, ptr @g_pi %t225 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 0 %t226 = load ptr, ptr %t225 %t227 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 1 %t228 = load i32, ptr %t227 %t229 = icmp ult i32 %t224, %t228 br i1 %t229, label %ixok44, label %ixbad45 ixbad45: %t230 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t230, ptr @.fmt_bounds, ptr @.str895, i32 %t224, i32 %t228) call void @exit(i32 1) unreachable ixok44: %t231 = getelementptr inbounds ptr, ptr %t226, i32 %t224 %t232 = load ptr, ptr %t231 %t233 = getelementptr inbounds %Cmp_Tok, ptr %t232, i32 0, i32 3 %t234 = load i32, ptr %t233 store i32 %t234, ptr %t208 br label %ifend43 ifend43: %t235 = load ptr, ptr @g_g_gi_line %t236 = load i32, ptr %t208 %t237 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 1 %t238 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 2 %t239 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 0 %t240 = load i32, ptr %t237 %t241 = load i32, ptr %t238 %t242 = icmp sge i32 %t240, %t241 br i1 %t242, label %grow46, label %put47 grow46: %t243 = mul i32 %t241, 2 %t244 = icmp eq i32 %t241, 0 %t245 = select i1 %t244, i32 8, i32 %t243 %t246 = getelementptr i32, ptr null, i32 1 %t247 = ptrtoint ptr %t246 to i64 %t248 = zext i32 %t245 to i64 %t249 = mul i64 %t248, %t247 %t250 = load ptr, ptr %t239 %t251 = call ptr @realloc(ptr %t250, i64 %t249) store ptr %t251, ptr %t239 store i32 %t245, ptr %t238 br label %put47 put47: %t252 = load ptr, ptr %t239 %t253 = getelementptr inbounds i32, ptr %t252, i32 %t240 store i32 %t236, ptr %t253 %t254 = add i32 %t240, 1 store i32 %t254, ptr %t237 br label %ifend28 ifend28: %t255 = load ptr, ptr %t2 store ptr %t255, ptr %retval br label %ret ret: %t256 = load ptr, ptr %retval ret ptr %t256 } define ptr @fn_gen_type_args(ptr %arg_gen) { entry: %retval = alloca ptr %t0 = alloca ptr %t7 = alloca ptr store ptr %arg_gen, ptr %t0 call void @fn_eat_op(ptr @.str896) %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 br label %wcond0 wcond0: %t8 = icmp ne i32 1, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = call i32 @fn_is_op(ptr @.str897) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: %t11 = load ptr, ptr @g_toks %t12 = load i32, ptr @g_pi %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 %t12, %t16 br i1 %t17, label %ixok6, label %ixbad7 ixbad7: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str898, i32 %t12, i32 %t16) call void @exit(i32 1) unreachable ixok6: %t19 = getelementptr inbounds ptr, ptr %t14, i32 %t12 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Tok, ptr %t20, i32 0, i32 1 store ptr @.str899, ptr %t21 br label %wend2 ifend5: %t22 = call i32 @fn_is_op(ptr @.str900) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then8, label %ifend10 then8: %t24 = load i32, ptr @g_pi %t25 = add i32 %t24, 1 store i32 %t25, ptr @g_pi br label %wend2 ifend10: %t26 = load ptr, ptr %t7 %t27 = call ptr @fn_ptype() %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t31 = load i32, ptr %t28 %t32 = load i32, ptr %t29 %t33 = icmp sge i32 %t31, %t32 br i1 %t33, label %grow11, label %put12 grow11: %t34 = mul i32 %t32, 2 %t35 = icmp eq i32 %t32, 0 %t36 = select i1 %t35, i32 8, i32 %t34 %t37 = getelementptr ptr, ptr null, i32 1 %t38 = ptrtoint ptr %t37 to i64 %t39 = zext i32 %t36 to i64 %t40 = mul i64 %t39, %t38 %t41 = load ptr, ptr %t30 %t42 = call ptr @realloc(ptr %t41, i64 %t40) store ptr %t42, ptr %t30 store i32 %t36, ptr %t29 br label %put12 put12: %t43 = load ptr, ptr %t30 %t44 = getelementptr inbounds ptr, ptr %t43, i32 %t31 store ptr %t27, ptr %t44 %t45 = add i32 %t31, 1 store i32 %t45, ptr %t28 %t46 = call i32 @fn_is_op(ptr @.str901) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then13, label %ifend15 then13: %t48 = load i32, ptr @g_pi %t49 = add i32 %t48, 1 store i32 %t49, ptr @g_pi br label %ifend15 ifend15: br label %wcond0 wend2: %t50 = load ptr, ptr %t0 %t51 = load ptr, ptr %t7 %t52 = call ptr @fn_gen_instance(ptr %t50, ptr %t51) store ptr %t52, ptr %retval br label %ret ret: %t53 = load ptr, ptr %retval ret ptr %t53 } define void @fn_ns_parse_alias(ptr %arg_nsname, i32 %arg_is_exp) { entry: %t0 = alloca ptr %t1 = alloca i32 %t5 = alloca ptr %t6 = alloca ptr %t31 = alloca ptr store ptr %arg_nsname, ptr %t0 store i32 %arg_is_exp, ptr %t1 %t2 = load i32, ptr @g_pi %t3 = add i32 %t2, 1 store i32 %t3, ptr @g_pi %t4 = call ptr @fn_eat_id() store ptr %t4, ptr %t5 store ptr null, ptr %t6 %t7 = call i32 @fn_is_op(ptr @.str902) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load i32, ptr @g_pi %t10 = add i32 %t9, 1 store i32 %t10, ptr @g_pi store ptr @.str903, ptr %t6 br label %wcond3 wcond3: %t11 = call i32 @fn_is_op(ptr @.str904) %t12 = icmp eq i32 %t11, 0 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %wbody4, label %wend5 wbody4: %t15 = load ptr, ptr %t6 %t16 = call i64 @strlen(ptr %t15) %t17 = trunc i64 %t16 to i32 %t18 = icmp sgt i32 %t17, 0 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then6, label %ifend8 then6: %t21 = load ptr, ptr %t6 %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str905) store ptr %t22, ptr %t6 br label %ifend8 ifend8: %t23 = load ptr, ptr %t6 %t24 = call ptr @fn_eat_id() %t25 = call ptr @lp_str_concat(ptr %t23, ptr %t24) store ptr %t25, ptr %t6 %t26 = call i32 @fn_is_op(ptr @.str906) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then9, label %ifend11 then9: %t28 = load i32, ptr @g_pi %t29 = add i32 %t28, 1 store i32 %t29, ptr @g_pi br label %ifend11 ifend11: br label %wcond3 wend5: call void @fn_eat_op(ptr @.str907) br label %ifend2 ifend2: call void @fn_eat_op(ptr @.str908) %t30 = call ptr @fn_eat_id() store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t0 call void @fn_register_namespace(ptr %t32) %t33 = load i32, ptr %t1 %t34 = icmp eq i32 %t33, 0 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then12, label %ifend14 then12: br label %ret ifend14: %t37 = load ptr, ptr %t0 %t38 = load ptr, ptr %t5 %t39 = call i32 @fn_ns_alias_find(ptr %t37, ptr %t38) %t40 = icmp sge i32 %t39, 0 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then15, label %ifend17 then15: %t43 = load ptr, ptr %t0 %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str909) %t45 = load ptr, ptr %t5 %t46 = call ptr @lp_str_concat(ptr %t44, ptr %t45) %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str910) call void @fn_perr(ptr %t47) br label %ifend17 ifend17: %t48 = load ptr, ptr @g_g_al_ns %t49 = load ptr, ptr %t0 %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 2 %t52 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t53 = load i32, ptr %t50 %t54 = load i32, ptr %t51 %t55 = icmp sge i32 %t53, %t54 br i1 %t55, label %grow18, label %put19 grow18: %t56 = mul i32 %t54, 2 %t57 = icmp eq i32 %t54, 0 %t58 = select i1 %t57, i32 8, i32 %t56 %t59 = getelementptr ptr, ptr null, i32 1 %t60 = ptrtoint ptr %t59 to i64 %t61 = zext i32 %t58 to i64 %t62 = mul i64 %t61, %t60 %t63 = load ptr, ptr %t52 %t64 = call ptr @realloc(ptr %t63, i64 %t62) store ptr %t64, ptr %t52 store i32 %t58, ptr %t51 br label %put19 put19: %t65 = load ptr, ptr %t52 %t66 = getelementptr inbounds ptr, ptr %t65, i32 %t53 store ptr %t49, ptr %t66 %t67 = add i32 %t53, 1 store i32 %t67, ptr %t50 %t68 = load ptr, ptr @g_g_al_meth %t69 = load ptr, ptr %t5 %t70 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 %t71 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 2 %t72 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0 %t73 = load i32, ptr %t70 %t74 = load i32, ptr %t71 %t75 = icmp sge i32 %t73, %t74 br i1 %t75, label %grow20, label %put21 grow20: %t76 = mul i32 %t74, 2 %t77 = icmp eq i32 %t74, 0 %t78 = select i1 %t77, i32 8, i32 %t76 %t79 = getelementptr ptr, ptr null, i32 1 %t80 = ptrtoint ptr %t79 to i64 %t81 = zext i32 %t78 to i64 %t82 = mul i64 %t81, %t80 %t83 = load ptr, ptr %t72 %t84 = call ptr @realloc(ptr %t83, i64 %t82) store ptr %t84, ptr %t72 store i32 %t78, ptr %t71 br label %put21 put21: %t85 = load ptr, ptr %t72 %t86 = getelementptr inbounds ptr, ptr %t85, i32 %t73 store ptr %t69, ptr %t86 %t87 = add i32 %t73, 1 store i32 %t87, ptr %t70 %t88 = load ptr, ptr @g_g_al_target %t89 = load ptr, ptr %t31 %t90 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 1 %t91 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 2 %t92 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 0 %t93 = load i32, ptr %t90 %t94 = load i32, ptr %t91 %t95 = icmp sge i32 %t93, %t94 br i1 %t95, label %grow22, label %put23 grow22: %t96 = mul i32 %t94, 2 %t97 = icmp eq i32 %t94, 0 %t98 = select i1 %t97, i32 8, i32 %t96 %t99 = getelementptr ptr, ptr null, i32 1 %t100 = ptrtoint ptr %t99 to i64 %t101 = zext i32 %t98 to i64 %t102 = mul i64 %t101, %t100 %t103 = load ptr, ptr %t92 %t104 = call ptr @realloc(ptr %t103, i64 %t102) store ptr %t104, ptr %t92 store i32 %t98, ptr %t91 br label %put23 put23: %t105 = load ptr, ptr %t92 %t106 = getelementptr inbounds ptr, ptr %t105, i32 %t93 store ptr %t89, ptr %t106 %t107 = add i32 %t93, 1 store i32 %t107, ptr %t90 %t108 = load ptr, ptr @g_g_al_labels %t109 = load ptr, ptr %t6 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t111 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2 %t112 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t113 = load i32, ptr %t110 %t114 = load i32, ptr %t111 %t115 = icmp sge i32 %t113, %t114 br i1 %t115, label %grow24, label %put25 grow24: %t116 = mul i32 %t114, 2 %t117 = icmp eq i32 %t114, 0 %t118 = select i1 %t117, i32 8, i32 %t116 %t119 = getelementptr ptr, ptr null, i32 1 %t120 = ptrtoint ptr %t119 to i64 %t121 = zext i32 %t118 to i64 %t122 = mul i64 %t121, %t120 %t123 = load ptr, ptr %t112 %t124 = call ptr @realloc(ptr %t123, i64 %t122) store ptr %t124, ptr %t112 store i32 %t118, ptr %t111 br label %put25 put25: %t125 = load ptr, ptr %t112 %t126 = getelementptr inbounds ptr, ptr %t125, i32 %t113 store ptr %t109, ptr %t126 %t127 = add i32 %t113, 1 store i32 %t127, ptr %t110 %t128 = load ptr, ptr @g_g_al_file %t129 = load ptr, ptr @g_g_parse_file %t130 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 1 %t131 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 2 %t132 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 0 %t133 = load i32, ptr %t130 %t134 = load i32, ptr %t131 %t135 = icmp sge i32 %t133, %t134 br i1 %t135, label %grow26, label %put27 grow26: %t136 = mul i32 %t134, 2 %t137 = icmp eq i32 %t134, 0 %t138 = select i1 %t137, i32 8, i32 %t136 %t139 = getelementptr ptr, ptr null, i32 1 %t140 = ptrtoint ptr %t139 to i64 %t141 = zext i32 %t138 to i64 %t142 = mul i64 %t141, %t140 %t143 = load ptr, ptr %t132 %t144 = call ptr @realloc(ptr %t143, i64 %t142) store ptr %t144, ptr %t132 store i32 %t138, ptr %t131 br label %put27 put27: %t145 = load ptr, ptr %t132 %t146 = getelementptr inbounds ptr, ptr %t145, i32 %t133 store ptr %t129, ptr %t146 %t147 = add i32 %t133, 1 store i32 %t147, ptr %t130 br label %ret ret: ret void } define i32 @fn_ns_alias_find(ptr %arg_ns, ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t10 = alloca i32 store ptr %arg_ns, ptr %t0 store ptr %arg_meth, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_al_ns %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr @g_g_al_meth %t12 = load i32, ptr %t2 %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 %t12, %t16 br i1 %t17, label %ixok3, label %ixbad4 ixbad4: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str911, i32 %t12, i32 %t16) call void @exit(i32 1) unreachable ixok3: %t19 = getelementptr inbounds ptr, ptr %t14, i32 %t12 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t1 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t10 br i1 %t23, label %sc5, label %scend6 sc5: %t25 = load ptr, ptr @g_g_al_ns %t26 = load i32, ptr %t2 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok7, label %ixbad8 ixbad8: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str912, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok7: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t34, ptr %t35) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t10 br label %scend6 scend6: %t39 = load i32, ptr %t10 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then9, label %ifend11 then9: %t41 = load i32, ptr %t2 store i32 %t41, ptr %retval br label %ret ifend11: %t42 = load i32, ptr %t2 %t43 = add i32 %t42, 1 store i32 %t43, ptr %t2 br label %wcond0 wend2: %t44 = sub i32 0, 1 store i32 %t44, ptr %retval br label %ret ret: %t45 = load i32, ptr %retval ret i32 %t45 } define ptr @fn_ns_alias_labels(i32 %arg_i) { entry: %retval = alloca ptr %t0 = alloca i32 %t7 = alloca ptr %t18 = alloca ptr %t34 = alloca ptr %t57 = alloca i32 %t58 = alloca i32 %t62 = alloca i32 %t68 = alloca i32 store i32 %arg_i, ptr %t0 %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 %t8 = load ptr, ptr @g_g_al_labels %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok0, label %ixbad1 ixbad1: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str913, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok0: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = icmp eq ptr %t19, null %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then2, label %ifend4 then2: %t23 = load ptr, ptr @g_g_al_target %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok5, label %ixbad6 ixbad6: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str914, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok5: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_find_fn(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = icmp eq ptr %t35, null %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then7, label %ifend9 then7: %t39 = load ptr, ptr @g_g_al_target %t40 = load i32, ptr %t0 %t41 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 %t40, %t44 br i1 %t45, label %ixok10, label %ixbad11 ixbad11: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str915, i32 %t40, i32 %t44) call void @exit(i32 1) unreachable ixok10: %t47 = getelementptr inbounds ptr, ptr %t42, i32 %t40 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_find_extern(ptr %t48) store ptr %t49, ptr %t34 br label %ifend9 ifend9: %t50 = load ptr, ptr %t34 %t51 = icmp ne ptr %t50, null %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then12, label %ifend14 then12: %t54 = load ptr, ptr %t34 %t55 = call ptr @fn_param_labels(ptr %t54) store ptr %t55, ptr %retval br label %ret ifend14: %t56 = load ptr, ptr %t7 store ptr %t56, ptr %retval br label %ret ifend4: store i32 0, ptr %t57 store i32 0, ptr %t58 %t59 = load ptr, ptr %t18 %t60 = call i64 @strlen(ptr %t59) %t61 = trunc i64 %t60 to i32 store i32 %t61, ptr %t62 br label %wcond15 wcond15: %t63 = load i32, ptr %t58 %t64 = load i32, ptr %t62 %t65 = icmp sle i32 %t63, %t64 %t66 = zext i1 %t65 to i32 %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %wbody16, label %wend17 wbody16: %t69 = load i32, ptr %t58 %t70 = load i32, ptr %t62 %t71 = icmp eq i32 %t69, %t70 %t72 = zext i1 %t71 to i32 %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t68 br i1 %t73, label %scend19, label %sc18 sc18: %t75 = load ptr, ptr %t18 %t76 = load i32, ptr %t58 %t77 = getelementptr inbounds i8, ptr %t75, i32 %t76 %t78 = load i8, ptr %t77 %t79 = zext i8 %t78 to i32 %t80 = icmp eq i32 %t79, 124 %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t68 br label %scend19 scend19: %t84 = load i32, ptr %t68 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then20, label %ifend22 then20: %t86 = load i32, ptr %t58 %t87 = load i32, ptr %t57 %t88 = icmp sgt i32 %t86, %t87 %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then23, label %ifend25 then23: %t91 = load ptr, ptr %t7 %t92 = load ptr, ptr %t18 %t93 = load i32, ptr %t57 %t94 = load i32, ptr %t58 %t95 = call ptr @lp_str_slice(ptr %t92, i32 %t93, i32 %t94) %t96 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t97 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 2 %t98 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0 %t99 = load i32, ptr %t96 %t100 = load i32, ptr %t97 %t101 = icmp sge i32 %t99, %t100 br i1 %t101, label %grow26, label %put27 grow26: %t102 = mul i32 %t100, 2 %t103 = icmp eq i32 %t100, 0 %t104 = select i1 %t103, i32 8, i32 %t102 %t105 = getelementptr ptr, ptr null, i32 1 %t106 = ptrtoint ptr %t105 to i64 %t107 = zext i32 %t104 to i64 %t108 = mul i64 %t107, %t106 %t109 = load ptr, ptr %t98 %t110 = call ptr @realloc(ptr %t109, i64 %t108) store ptr %t110, ptr %t98 store i32 %t104, ptr %t97 br label %put27 put27: %t111 = load ptr, ptr %t98 %t112 = getelementptr inbounds ptr, ptr %t111, i32 %t99 store ptr %t95, ptr %t112 %t113 = add i32 %t99, 1 store i32 %t113, ptr %t96 br label %ifend25 ifend25: %t114 = load i32, ptr %t58 %t115 = add i32 %t114, 1 store i32 %t115, ptr %t57 br label %ifend22 ifend22: %t116 = load i32, ptr %t58 %t117 = add i32 %t116, 1 store i32 %t117, ptr %t58 br label %wcond15 wend17: %t118 = load ptr, ptr %t7 store ptr %t118, ptr %retval br label %ret ret: %t119 = load ptr, ptr %retval ret ptr %t119 } define ptr @fn_emit_alias_call(i32 %arg_i, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t9 = alloca ptr store i32 %arg_i, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = load i32, ptr %t0 %t4 = call ptr @fn_ns_alias_labels(i32 %t3) call void @fn_call_mixed_to_named(ptr %t2, ptr %t4) %t5 = load ptr, ptr %t1 %t6 = load i32, ptr %t0 %t7 = call ptr @fn_ns_alias_labels(i32 %t6) call void @fn_reorder_named(ptr %t5, ptr %t7) %t8 = call ptr @fn_node(i32 33) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr @g_g_al_target %t13 = load i32, ptr %t0 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok0, label %ixbad1 ixbad1: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str916, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok0: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 store ptr %t21, ptr %t11 %t22 = load ptr, ptr %t9 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 9 %t24 = load ptr, ptr %t1 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 9 %t26 = load ptr, ptr %t25 store ptr %t26, ptr %t23 %t27 = load ptr, ptr %t9 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 8 %t29 = load ptr, ptr %t1 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 8 %t31 = load i32, ptr %t30 store i32 %t31, ptr %t28 %t32 = load ptr, ptr %t1 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 4 %t34 = load ptr, ptr %t9 store ptr %t34, ptr %t33 %t35 = load ptr, ptr %t1 %t36 = call ptr @fn_emit_call(ptr %t35) store ptr %t36, ptr %retval br label %ret ret: %t37 = load ptr, ptr %retval ret ptr %t37 } define i32 @fn_mod_list_has(ptr %arg_list, ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_list, ptr %t0 store ptr %arg_name, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str917, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str918) %t6 = call i32 @fn_has_sub(ptr %t2, ptr %t5) store i32 %t6, ptr %retval br label %ret ret: %t7 = load i32, ptr %retval ret i32 %t7 } define i32 @fn_mod_find_uses(ptr %arg_m) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_m, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_mu_mod %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_mu_mod %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str919, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load i32, ptr %t1 store i32 %t22, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t1 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t1 br label %wcond0 wend2: %t25 = sub i32 0, 1 store i32 %t25, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define ptr @fn_mod_parse_names() { entry: %retval = alloca ptr %t0 = alloca ptr store ptr @.str920, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_eat_id() %t3 = call ptr @lp_str_concat(ptr %t1, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str921) store ptr %t4, ptr %t0 br label %wcond0 wcond0: %t5 = call i32 @fn_is_op(ptr @.str922) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %wbody1, label %wend2 wbody1: %t7 = load i32, ptr @g_pi %t8 = add i32 %t7, 1 store i32 %t8, ptr @g_pi %t9 = load ptr, ptr %t0 %t10 = call ptr @fn_eat_id() %t11 = call ptr @lp_str_concat(ptr %t9, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str923) store ptr %t12, ptr %t0 br label %wcond0 wend2: %t13 = load ptr, ptr %t0 store ptr %t13, ptr %retval br label %ret ret: %t14 = load ptr, ptr %retval ret ptr %t14 } define ptr @fn_mod_layer(ptr %arg_m) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_m, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_ly_mod %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_ly_mod %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str924, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load ptr, ptr @g_g_ly_name %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok8, label %ixbad9 ixbad9: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str925, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok8: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 store ptr %t31, ptr %retval br label %ret ifend7: %t32 = load i32, ptr %t1 %t33 = add i32 %t32, 1 store i32 %t33, ptr %t1 br label %wcond0 wend2: store ptr @.str926, ptr %retval br label %ret ret: %t34 = load ptr, ptr %retval ret ptr %t34 } define void @fn_mod_set_layer(ptr %arg_m, ptr %arg_layer) { entry: %t0 = alloca ptr %t1 = alloca ptr %t4 = alloca ptr store ptr %arg_m, ptr %t0 store ptr %arg_layer, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_mod_layer(ptr %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = load ptr, ptr %t1 %t7 = call i32 @lp_str_eq(ptr %t5, ptr %t6) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: br label %ret ifend2: %t9 = load ptr, ptr %t4 %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str927) %t11 = icmp eq i32 %t10, 0 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: %t14 = load ptr, ptr %t0 %t15 = call ptr @lp_str_concat(ptr @.str928, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str929) %t17 = load ptr, ptr %t4 %t18 = call ptr @lp_str_concat(ptr %t16, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str930) %t20 = load ptr, ptr %t1 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) call void @fn_perr(ptr %t21) br label %ifend5 ifend5: %t22 = load ptr, ptr @g_g_ly_mod %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t25 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 2 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t27 = load i32, ptr %t24 %t28 = load i32, ptr %t25 %t29 = icmp sge i32 %t27, %t28 br i1 %t29, label %grow6, label %put7 grow6: %t30 = mul i32 %t28, 2 %t31 = icmp eq i32 %t28, 0 %t32 = select i1 %t31, i32 8, i32 %t30 %t33 = getelementptr ptr, ptr null, i32 1 %t34 = ptrtoint ptr %t33 to i64 %t35 = zext i32 %t32 to i64 %t36 = mul i64 %t35, %t34 %t37 = load ptr, ptr %t26 %t38 = call ptr @realloc(ptr %t37, i64 %t36) store ptr %t38, ptr %t26 store i32 %t32, ptr %t25 br label %put7 put7: %t39 = load ptr, ptr %t26 %t40 = getelementptr inbounds ptr, ptr %t39, i32 %t27 store ptr %t23, ptr %t40 %t41 = add i32 %t27, 1 store i32 %t41, ptr %t24 %t42 = load ptr, ptr @g_g_ly_name %t43 = load ptr, ptr %t1 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t45 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 2 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t47 = load i32, ptr %t44 %t48 = load i32, ptr %t45 %t49 = icmp sge i32 %t47, %t48 br i1 %t49, label %grow8, label %put9 grow8: %t50 = mul i32 %t48, 2 %t51 = icmp eq i32 %t48, 0 %t52 = select i1 %t51, i32 8, i32 %t50 %t53 = getelementptr ptr, ptr null, i32 1 %t54 = ptrtoint ptr %t53 to i64 %t55 = zext i32 %t52 to i64 %t56 = mul i64 %t55, %t54 %t57 = load ptr, ptr %t46 %t58 = call ptr @realloc(ptr %t57, i64 %t56) store ptr %t58, ptr %t46 store i32 %t52, ptr %t45 br label %put9 put9: %t59 = load ptr, ptr %t46 %t60 = getelementptr inbounds ptr, ptr %t59, i32 %t47 store ptr %t43, ptr %t60 %t61 = add i32 %t47, 1 store i32 %t61, ptr %t44 br label %ret ret: ret void } define void @fn_mod_parse_line() { entry: %t3 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 %t33 = alloca i32 %t58 = alloca i32 %t59 = alloca ptr %t82 = alloca i32 %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_eat_id() store ptr %t2, ptr %t3 %t4 = load ptr, ptr @g_g_parse_file %t5 = load ptr, ptr %t3 call void @fn_module_set(ptr %t4, ptr %t5) store i32 0, ptr %t6 %t8 = call i32 @fn_is_id(ptr @.str931) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t7 br i1 %t9, label %sc0, label %scend1 sc0: %t11 = load ptr, ptr @g_toks %t12 = load i32, ptr @g_pi %t13 = add i32 %t12, 1 %t14 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok2, label %ixbad3 ixbad3: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str932, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok2: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %Cmp_Tok, ptr %t21, i32 0, i32 1 %t23 = load ptr, ptr %t22 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str933) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t7 br label %scend1 scend1: %t27 = load i32, ptr %t7 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then4, label %ifend6 then4: %t29 = load i32, ptr @g_pi %t30 = add i32 %t29, 2 store i32 %t30, ptr @g_pi %t31 = load ptr, ptr %t3 %t32 = call ptr @fn_eat_id() call void @fn_mod_set_layer(ptr %t31, ptr %t32) store i32 1, ptr %t6 br label %ifend6 ifend6: %t34 = call i32 @fn_is_id(ptr @.str934) %t35 = icmp eq i32 %t34, 0 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t33 br i1 %t37, label %sc7, label %scend8 sc7: %t39 = load i32, ptr %t6 %t40 = icmp eq i32 %t39, 0 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t33 br label %scend8 scend8: %t44 = load i32, ptr %t33 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then9, label %ifend11 then9: br label %ret ifend11: %t46 = load ptr, ptr @g_toks %t47 = load i32, ptr @g_pi %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok12, label %ixbad13 ixbad13: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str935, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok12: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %Cmp_Tok, ptr %t55, i32 0, i32 3 %t57 = load i32, ptr %t56 store i32 %t57, ptr %t58 store ptr @.str936, ptr %t59 %t60 = call i32 @fn_is_id(ptr @.str937) %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %then14, label %ifend16 then14: %t62 = load i32, ptr @g_pi %t63 = add i32 %t62, 1 store i32 %t63, ptr @g_pi %t64 = load ptr, ptr @g_toks %t65 = load i32, ptr @g_pi %t66 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 1 %t69 = load i32, ptr %t68 %t70 = icmp ult i32 %t65, %t69 br i1 %t70, label %ixok17, label %ixbad18 ixbad18: %t71 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t71, ptr @.fmt_bounds, ptr @.str938, i32 %t65, i32 %t69) call void @exit(i32 1) unreachable ixok17: %t72 = getelementptr inbounds ptr, ptr %t67, i32 %t65 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %Cmp_Tok, ptr %t73, i32 0, i32 0 %t75 = load i32, ptr %t74 %t76 = icmp eq i32 %t75, 0 %t77 = zext i1 %t76 to i32 %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then19, label %ifend21 then19: %t79 = call ptr @fn_mod_parse_names() store ptr %t79, ptr %t59 br label %ifend21 ifend21: br label %ifend16 ifend16: %t80 = load ptr, ptr %t3 %t81 = call i32 @fn_mod_find_uses(ptr %t80) store i32 %t81, ptr %t82 %t83 = load i32, ptr %t82 %t84 = icmp sge i32 %t83, 0 %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then22, label %ifend24 then22: %t87 = load ptr, ptr @g_g_mu_list %t88 = load i32, ptr %t82 %t89 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t92 = load i32, ptr %t91 %t93 = icmp ult i32 %t88, %t92 br i1 %t93, label %ixok25, label %ixbad26 ixbad26: %t94 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t94, ptr @.fmt_bounds, ptr @.str939, i32 %t88, i32 %t92) call void @exit(i32 1) unreachable ixok25: %t95 = getelementptr inbounds ptr, ptr %t90, i32 %t88 %t96 = load ptr, ptr @g_g_mu_list %t97 = load i32, ptr %t82 %t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 %t97, %t101 br i1 %t102, label %ixok27, label %ixbad28 ixbad28: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str940, i32 %t97, i32 %t101) call void @exit(i32 1) unreachable ixok27: %t104 = getelementptr inbounds ptr, ptr %t99, i32 %t97 %t105 = load ptr, ptr %t104 %t106 = load ptr, ptr %t59 %t107 = call ptr @lp_str_concat(ptr %t105, ptr %t106) store ptr %t107, ptr %t95 br label %ret ifend24: %t108 = load ptr, ptr @g_g_mu_mod %t109 = load ptr, ptr %t3 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t111 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2 %t112 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t113 = load i32, ptr %t110 %t114 = load i32, ptr %t111 %t115 = icmp sge i32 %t113, %t114 br i1 %t115, label %grow29, label %put30 grow29: %t116 = mul i32 %t114, 2 %t117 = icmp eq i32 %t114, 0 %t118 = select i1 %t117, i32 8, i32 %t116 %t119 = getelementptr ptr, ptr null, i32 1 %t120 = ptrtoint ptr %t119 to i64 %t121 = zext i32 %t118 to i64 %t122 = mul i64 %t121, %t120 %t123 = load ptr, ptr %t112 %t124 = call ptr @realloc(ptr %t123, i64 %t122) store ptr %t124, ptr %t112 store i32 %t118, ptr %t111 br label %put30 put30: %t125 = load ptr, ptr %t112 %t126 = getelementptr inbounds ptr, ptr %t125, i32 %t113 store ptr %t109, ptr %t126 %t127 = add i32 %t113, 1 store i32 %t127, ptr %t110 %t128 = load ptr, ptr @g_g_mu_list %t129 = load ptr, ptr %t59 %t130 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 1 %t131 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 2 %t132 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 0 %t133 = load i32, ptr %t130 %t134 = load i32, ptr %t131 %t135 = icmp sge i32 %t133, %t134 br i1 %t135, label %grow31, label %put32 grow31: %t136 = mul i32 %t134, 2 %t137 = icmp eq i32 %t134, 0 %t138 = select i1 %t137, i32 8, i32 %t136 %t139 = getelementptr ptr, ptr null, i32 1 %t140 = ptrtoint ptr %t139 to i64 %t141 = zext i32 %t138 to i64 %t142 = mul i64 %t141, %t140 %t143 = load ptr, ptr %t132 %t144 = call ptr @realloc(ptr %t143, i64 %t142) store ptr %t144, ptr %t132 store i32 %t138, ptr %t131 br label %put32 put32: %t145 = load ptr, ptr %t132 %t146 = getelementptr inbounds ptr, ptr %t145, i32 %t133 store ptr %t129, ptr %t146 %t147 = add i32 %t133, 1 store i32 %t147, ptr %t130 %t148 = load ptr, ptr @g_g_mu_file %t149 = load ptr, ptr @g_g_parse_file %t150 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 1 %t151 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 2 %t152 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 0 %t153 = load i32, ptr %t150 %t154 = load i32, ptr %t151 %t155 = icmp sge i32 %t153, %t154 br i1 %t155, label %grow33, label %put34 grow33: %t156 = mul i32 %t154, 2 %t157 = icmp eq i32 %t154, 0 %t158 = select i1 %t157, i32 8, i32 %t156 %t159 = getelementptr ptr, ptr null, i32 1 %t160 = ptrtoint ptr %t159 to i64 %t161 = zext i32 %t158 to i64 %t162 = mul i64 %t161, %t160 %t163 = load ptr, ptr %t152 %t164 = call ptr @realloc(ptr %t163, i64 %t162) store ptr %t164, ptr %t152 store i32 %t158, ptr %t151 br label %put34 put34: %t165 = load ptr, ptr %t152 %t166 = getelementptr inbounds ptr, ptr %t165, i32 %t153 store ptr %t149, ptr %t166 %t167 = add i32 %t153, 1 store i32 %t167, ptr %t150 %t168 = load ptr, ptr @g_g_mu_line %t169 = load i32, ptr %t58 %t170 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 1 %t171 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 2 %t172 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 0 %t173 = load i32, ptr %t170 %t174 = load i32, ptr %t171 %t175 = icmp sge i32 %t173, %t174 br i1 %t175, label %grow35, label %put36 grow35: %t176 = mul i32 %t174, 2 %t177 = icmp eq i32 %t174, 0 %t178 = select i1 %t177, i32 8, i32 %t176 %t179 = getelementptr i32, ptr null, i32 1 %t180 = ptrtoint ptr %t179 to i64 %t181 = zext i32 %t178 to i64 %t182 = mul i64 %t181, %t180 %t183 = load ptr, ptr %t172 %t184 = call ptr @realloc(ptr %t183, i64 %t182) store ptr %t184, ptr %t172 store i32 %t178, ptr %t171 br label %put36 put36: %t185 = load ptr, ptr %t172 %t186 = getelementptr inbounds i32, ptr %t185, i32 %t173 store i32 %t169, ptr %t186 %t187 = add i32 %t173, 1 store i32 %t187, ptr %t170 br label %ret ret: ret void } define void @fn_mod_parse_friend() { entry: %t3 = alloca ptr %t6 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 2 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_eat_id() store ptr %t2, ptr %t3 %t4 = load ptr, ptr @g_g_parse_file %t5 = load ptr, ptr %t3 call void @fn_module_set(ptr %t4, ptr %t5) store ptr @.str941, ptr %t6 %t7 = call i32 @fn_is_id(ptr @.str942) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load i32, ptr @g_pi %t10 = add i32 %t9, 1 store i32 %t10, ptr @g_pi %t11 = call ptr @fn_mod_parse_names() store ptr %t11, ptr %t6 br label %ifend2 ifend2: %t12 = load ptr, ptr @g_g_mod_friends %t13 = load ptr, ptr %t3 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 2 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t17 = load i32, ptr %t14 %t18 = load i32, ptr %t15 %t19 = icmp sge i32 %t17, %t18 br i1 %t19, label %grow3, label %put4 grow3: %t20 = mul i32 %t18, 2 %t21 = icmp eq i32 %t18, 0 %t22 = select i1 %t21, i32 8, i32 %t20 %t23 = getelementptr ptr, ptr null, i32 1 %t24 = ptrtoint ptr %t23 to i64 %t25 = zext i32 %t22 to i64 %t26 = mul i64 %t25, %t24 %t27 = load ptr, ptr %t16 %t28 = call ptr @realloc(ptr %t27, i64 %t26) store ptr %t28, ptr %t16 store i32 %t22, ptr %t15 br label %put4 put4: %t29 = load ptr, ptr %t16 %t30 = getelementptr inbounds ptr, ptr %t29, i32 %t17 store ptr %t13, ptr %t30 %t31 = add i32 %t17, 1 store i32 %t31, ptr %t14 %t32 = load ptr, ptr @g_g_fr_scope %t33 = load ptr, ptr %t6 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t35 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 2 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t37 = load i32, ptr %t34 %t38 = load i32, ptr %t35 %t39 = icmp sge i32 %t37, %t38 br i1 %t39, label %grow5, label %put6 grow5: %t40 = mul i32 %t38, 2 %t41 = icmp eq i32 %t38, 0 %t42 = select i1 %t41, i32 8, i32 %t40 %t43 = getelementptr ptr, ptr null, i32 1 %t44 = ptrtoint ptr %t43 to i64 %t45 = zext i32 %t42 to i64 %t46 = mul i64 %t45, %t44 %t47 = load ptr, ptr %t36 %t48 = call ptr @realloc(ptr %t47, i64 %t46) store ptr %t48, ptr %t36 store i32 %t42, ptr %t35 br label %put6 put6: %t49 = load ptr, ptr %t36 %t50 = getelementptr inbounds ptr, ptr %t49, i32 %t37 store ptr %t33, ptr %t50 %t51 = add i32 %t37, 1 store i32 %t51, ptr %t34 br label %ret ret: ret void } define i32 @fn_module_friend_of(ptr %arg_from, ptr %arg_to) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t23 = alloca i32 store ptr %arg_from, ptr %t0 store ptr %arg_to, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_mod_friends %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_g_mod_friends %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str943, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t0 %t21 = call i32 @lp_str_eq(ptr %t19, ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_fr_scope %t25 = load i32, ptr %t2 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str944, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str945) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t23 br i1 %t35, label %scend11, label %sc10 sc10: %t37 = load ptr, ptr @g_g_fr_scope %t38 = load i32, ptr %t2 %t39 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp ult i32 %t38, %t42 br i1 %t43, label %ixok12, label %ixbad13 ixbad13: %t44 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t44, ptr @.fmt_bounds, ptr @.str946, i32 %t38, i32 %t42) call void @exit(i32 1) unreachable ixok12: %t45 = getelementptr inbounds ptr, ptr %t40, i32 %t38 %t46 = load ptr, ptr %t45 %t47 = load ptr, ptr %t1 %t48 = call i32 @fn_mod_list_has(ptr %t46, ptr %t47) %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t23 br label %scend11 scend11: %t51 = load i32, ptr %t23 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then14, label %ifend16 then14: store i32 1, ptr %retval br label %ret ifend16: br label %ifend7 ifend7: %t53 = load i32, ptr %t2 %t54 = add i32 %t53, 1 store i32 %t54, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t55 = load i32, ptr %retval ret i32 %t55 } define ptr @fn_pkg_name_of(ptr %arg_rel) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t27 = alloca ptr %t28 = alloca ptr %t29 = alloca i32 %t42 = alloca i32 %t43 = alloca i32 store ptr %arg_rel, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t3 = load i32, ptr %t1 %t4 = load ptr, ptr %t0 %t5 = call i64 @strlen(ptr %t4) %t6 = trunc i64 %t5 to i32 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br i1 %t9, label %sc3, label %scend4 sc3: %t11 = load ptr, ptr %t0 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds i8, ptr %t11, i32 %t12 %t14 = load i8, ptr %t13 %t15 = zext i8 %t14 to i32 %t16 = icmp ne i32 %t15, 47 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t2 br label %scend4 scend4: %t20 = load i32, ptr %t2 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %wbody1, label %wend2 wbody1: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: %t24 = load ptr, ptr %t0 %t25 = load i32, ptr %t1 %t26 = call ptr @lp_str_slice(ptr %t24, i32 0, i32 %t25) store ptr %t26, ptr %t27 store ptr @.str947, ptr %t28 store i32 0, ptr %t29 br label %wcond5 wcond5: %t30 = load i32, ptr %t29 %t31 = load ptr, ptr %t27 %t32 = call i64 @strlen(ptr %t31) %t33 = trunc i64 %t32 to i32 %t34 = icmp slt i32 %t30, %t33 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %wbody6, label %wend7 wbody6: %t37 = load ptr, ptr %t27 %t38 = load i32, ptr %t29 %t39 = getelementptr inbounds i8, ptr %t37, i32 %t38 %t40 = load i8, ptr %t39 %t41 = zext i8 %t40 to i32 store i32 %t41, ptr %t42 %t44 = load i32, ptr %t42 %t45 = icmp eq i32 %t44, 46 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t43 br i1 %t47, label %scend9, label %sc8 sc8: %t49 = load i32, ptr %t42 %t50 = icmp eq i32 %t49, 45 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t43 br label %scend9 scend9: %t54 = load i32, ptr %t43 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then10, label %else11 then10: %t56 = load ptr, ptr %t28 %t57 = call ptr @lp_str_concat(ptr %t56, ptr @.str948) store ptr %t57, ptr %t28 br label %ifend12 else11: %t58 = load ptr, ptr %t28 %t59 = load ptr, ptr %t27 %t60 = load i32, ptr %t29 %t61 = load i32, ptr %t29 %t62 = add i32 %t61, 1 %t63 = call ptr @lp_str_slice(ptr %t59, i32 %t60, i32 %t62) %t64 = call ptr @lp_str_concat(ptr %t58, ptr %t63) store ptr %t64, ptr %t28 br label %ifend12 ifend12: %t65 = load i32, ptr %t29 %t66 = add i32 %t65, 1 store i32 %t66, ptr %t29 br label %wcond5 wend7: %t67 = load ptr, ptr %t28 store ptr %t67, ptr %retval br label %ret ret: %t68 = load ptr, ptr %retval ret ptr %t68 } define void @fn_pkg_file_set(ptr %arg_f, ptr %arg_name) { entry: %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_f, ptr %t0 store ptr %arg_name, ptr %t1 %t2 = load ptr, ptr @g_g_pk_file %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 %t6 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 %t7 = load i32, ptr %t4 %t8 = load i32, ptr %t5 %t9 = icmp sge i32 %t7, %t8 br i1 %t9, label %grow0, label %put1 grow0: %t10 = mul i32 %t8, 2 %t11 = icmp eq i32 %t8, 0 %t12 = select i1 %t11, i32 8, i32 %t10 %t13 = getelementptr ptr, ptr null, i32 1 %t14 = ptrtoint ptr %t13 to i64 %t15 = zext i32 %t12 to i64 %t16 = mul i64 %t15, %t14 %t17 = load ptr, ptr %t6 %t18 = call ptr @realloc(ptr %t17, i64 %t16) store ptr %t18, ptr %t6 store i32 %t12, ptr %t5 br label %put1 put1: %t19 = load ptr, ptr %t6 %t20 = getelementptr inbounds ptr, ptr %t19, i32 %t7 store ptr %t3, ptr %t20 %t21 = add i32 %t7, 1 store i32 %t21, ptr %t4 %t22 = load ptr, ptr @g_g_pk_name %t23 = load ptr, ptr %t1 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t25 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 2 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t27 = load i32, ptr %t24 %t28 = load i32, ptr %t25 %t29 = icmp sge i32 %t27, %t28 br i1 %t29, label %grow2, label %put3 grow2: %t30 = mul i32 %t28, 2 %t31 = icmp eq i32 %t28, 0 %t32 = select i1 %t31, i32 8, i32 %t30 %t33 = getelementptr ptr, ptr null, i32 1 %t34 = ptrtoint ptr %t33 to i64 %t35 = zext i32 %t32 to i64 %t36 = mul i64 %t35, %t34 %t37 = load ptr, ptr %t26 %t38 = call ptr @realloc(ptr %t37, i64 %t36) store ptr %t38, ptr %t26 store i32 %t32, ptr %t25 br label %put3 put3: %t39 = load ptr, ptr %t26 %t40 = getelementptr inbounds ptr, ptr %t39, i32 %t27 store ptr %t23, ptr %t40 %t41 = add i32 %t27, 1 store i32 %t41, ptr %t24 br label %ret ret: ret void } define ptr @fn_pkg_of_file(ptr %arg_f) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca i32 store ptr %arg_f, ptr %t0 %t1 = load ptr, ptr @g_g_pk_file %t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t3 = load i32, ptr %t2 %t4 = sub i32 %t3, 1 store i32 %t4, ptr %t5 br label %wcond0 wcond0: %t6 = load i32, ptr %t5 %t7 = icmp sge i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_g_pk_file %t11 = load i32, ptr %t5 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str949, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t0 %t21 = call i32 @lp_str_eq(ptr %t19, ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load ptr, ptr @g_g_pk_name %t24 = load i32, ptr %t5 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str950, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 store ptr %t32, ptr %retval br label %ret ifend7: %t33 = load i32, ptr %t5 %t34 = sub i32 %t33, 1 store i32 %t34, ptr %t5 br label %wcond0 wend2: store ptr @.str951, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define ptr @fn_module_for_uses(ptr %arg_f) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr store ptr %arg_f, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_module_of(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str952) %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t3 store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 %t11 = call ptr @fn_pkg_of_file(ptr %t10) store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define i32 @fn_module_may_use(ptr %arg_from, ptr %arg_to) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t24 = alloca i32 %t29 = alloca i32 store ptr %arg_from, ptr %t0 store ptr %arg_to, ptr %t1 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str953) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t1 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str954) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = load ptr, ptr %t1 %t17 = call i32 @lp_str_eq(ptr %t15, ptr %t16) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t2 br label %scend3 scend3: %t20 = load i32, ptr %t2 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t22 = load ptr, ptr %t0 %t23 = call i32 @fn_mod_find_uses(ptr %t22) store i32 %t23, ptr %t24 %t25 = load i32, ptr %t24 %t26 = icmp slt i32 %t25, 0 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then7, label %ifend9 then7: store i32 1, ptr %retval br label %ret ifend9: %t30 = load ptr, ptr %t0 %t31 = call ptr @fn_mod_layer(ptr %t30) %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str955) %t33 = icmp eq i32 %t32, 0 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t29 br i1 %t35, label %sc10, label %scend11 sc10: %t37 = load ptr, ptr %t0 %t38 = call ptr @fn_mod_layer(ptr %t37) %t39 = load ptr, ptr %t1 %t40 = call ptr @fn_mod_layer(ptr %t39) %t41 = call i32 @lp_str_eq(ptr %t38, ptr %t40) %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t29 br label %scend11 scend11: %t44 = load i32, ptr %t29 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then12, label %ifend14 then12: store i32 1, ptr %retval br label %ret ifend14: %t46 = load ptr, ptr @g_g_mu_list %t47 = load i32, ptr %t24 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok15, label %ixbad16 ixbad16: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str956, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok15: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = load ptr, ptr %t1 %t57 = call i32 @fn_mod_list_has(ptr %t55, ptr %t56) store i32 %t57, ptr %retval br label %ret ret: %t58 = load i32, ptr %retval ret i32 %t58 } define ptr @fn_mod_names(ptr %arg_list) { entry: %retval = alloca ptr %t0 = alloca ptr %t7 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 store ptr %arg_list, ptr %t0 %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 store i32 1, ptr %t8 store i32 1, ptr %t9 br label %wcond0 wcond0: %t10 = load i32, ptr %t9 %t11 = load ptr, ptr %t0 %t12 = call i64 @strlen(ptr %t11) %t13 = trunc i64 %t12 to i32 %t14 = icmp slt i32 %t10, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody1, label %wend2 wbody1: %t17 = load ptr, ptr %t0 %t18 = load i32, ptr %t9 %t19 = getelementptr inbounds i8, ptr %t17, i32 %t18 %t20 = load i8, ptr %t19 %t21 = zext i8 %t20 to i32 %t22 = icmp eq i32 %t21, 44 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then3, label %ifend5 then3: %t25 = load i32, ptr %t9 %t26 = load i32, ptr %t8 %t27 = icmp sgt i32 %t25, %t26 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then6, label %ifend8 then6: %t30 = load ptr, ptr %t7 %t31 = load ptr, ptr %t0 %t32 = load i32, ptr %t8 %t33 = load i32, ptr %t9 %t34 = call ptr @lp_str_slice(ptr %t31, i32 %t32, i32 %t33) %t35 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t36 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 2 %t37 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t38 = load i32, ptr %t35 %t39 = load i32, ptr %t36 %t40 = icmp sge i32 %t38, %t39 br i1 %t40, label %grow9, label %put10 grow9: %t41 = mul i32 %t39, 2 %t42 = icmp eq i32 %t39, 0 %t43 = select i1 %t42, i32 8, i32 %t41 %t44 = getelementptr ptr, ptr null, i32 1 %t45 = ptrtoint ptr %t44 to i64 %t46 = zext i32 %t43 to i64 %t47 = mul i64 %t46, %t45 %t48 = load ptr, ptr %t37 %t49 = call ptr @realloc(ptr %t48, i64 %t47) store ptr %t49, ptr %t37 store i32 %t43, ptr %t36 br label %put10 put10: %t50 = load ptr, ptr %t37 %t51 = getelementptr inbounds ptr, ptr %t50, i32 %t38 store ptr %t34, ptr %t51 %t52 = add i32 %t38, 1 store i32 %t52, ptr %t35 br label %ifend8 ifend8: %t53 = load i32, ptr %t9 %t54 = add i32 %t53, 1 store i32 %t54, ptr %t8 br label %ifend5 ifend5: %t55 = load i32, ptr %t9 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t9 br label %wcond0 wend2: %t57 = load ptr, ptr %t7 store ptr %t57, ptr %retval br label %ret ret: %t58 = load ptr, ptr %retval ret ptr %t58 } define ptr @fn_mod_node(ptr %arg_m) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr store ptr %arg_m, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_mod_layer(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str957) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 store ptr %t7, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t3 %t9 = call ptr @lp_str_concat(ptr @.str958, ptr %t8) store ptr %t9, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_mod_node_edges(ptr %arg_nd) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t35 = alloca ptr %t36 = alloca i32 %t55 = alloca ptr %t56 = alloca i32 store ptr %arg_nd, ptr %t0 store ptr @.str959, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_mu_mod %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_g_mu_mod %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str960, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_mod_node(ptr %t19) %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_mu_list %t25 = load i32, ptr %t2 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str961, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = call ptr @fn_mod_names(ptr %t33) store ptr %t34, ptr %t35 store i32 0, ptr %t36 br label %wcond10 wcond10: %t37 = load i32, ptr %t36 %t38 = load ptr, ptr %t35 %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp slt i32 %t37, %t40 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %wbody11, label %wend12 wbody11: %t44 = load ptr, ptr %t35 %t45 = load i32, ptr %t36 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok13, label %ixbad14 ixbad14: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str962, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok13: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_mod_node(ptr %t53) store ptr %t54, ptr %t55 %t57 = load ptr, ptr %t55 %t58 = load ptr, ptr %t0 %t59 = call i32 @lp_str_eq(ptr %t57, ptr %t58) %t60 = icmp eq i32 %t59, 0 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t56 br i1 %t62, label %sc15, label %scend16 sc15: %t64 = load ptr, ptr %t1 %t65 = load ptr, ptr %t55 %t66 = call ptr @lp_str_concat(ptr @.str963, ptr %t65) %t67 = call ptr @lp_str_concat(ptr %t66, ptr @.str964) %t68 = call i32 @fn_has_sub(ptr %t64, ptr %t67) %t69 = icmp eq i32 %t68, 0 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t56 br label %scend16 scend16: %t73 = load i32, ptr %t56 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then17, label %ifend19 then17: %t75 = load ptr, ptr %t1 %t76 = load ptr, ptr %t55 %t77 = call ptr @lp_str_concat(ptr %t75, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str965) store ptr %t78, ptr %t1 br label %ifend19 ifend19: %t79 = load i32, ptr %t36 %t80 = add i32 %t79, 1 store i32 %t80, ptr %t36 br label %wcond10 wend12: br label %ifend7 ifend7: %t81 = load i32, ptr %t2 %t82 = add i32 %t81, 1 store i32 %t82, ptr %t2 br label %wcond0 wend2: %t83 = load ptr, ptr %t1 store ptr %t83, ptr %retval br label %ret ret: %t84 = load ptr, ptr %retval ret ptr %t84 } define void @fn_mod_walk(ptr %arg_m, ptr %arg_path, ptr %arg_first) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t12 = alloca i32 %t46 = alloca ptr %t52 = alloca ptr %t53 = alloca i32 store ptr %arg_m, ptr %t0 store ptr %arg_path, ptr %t1 store ptr %arg_first, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str966, ptr %t3) %t5 = load ptr, ptr %t0 %t6 = call ptr @lp_str_concat(ptr @.str967, ptr %t5) %t7 = call ptr @lp_str_concat(ptr %t6, ptr @.str968) %t8 = call i32 @fn_has_sub(ptr %t4, ptr %t7) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t2 %t11 = call i32 @fn_mod_find_uses(ptr %t10) store i32 %t11, ptr %t12 %t13 = load ptr, ptr @g_g_mu_file %t14 = load i32, ptr %t12 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str969, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 store ptr %t22, ptr @g_g_err_file %t23 = load ptr, ptr @g_g_mu_line %t24 = load i32, ptr %t12 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok5, label %ixbad6 ixbad6: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str970, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok5: %t31 = getelementptr inbounds i32, ptr %t26, i32 %t24 %t32 = load i32, ptr %t31 store i32 %t32, ptr @g_g_err_line %t33 = load ptr, ptr %t1 %t34 = call ptr @lp_str_concat(ptr @.str971, ptr %t33) %t35 = load ptr, ptr %t0 %t36 = call ptr @lp_str_concat(ptr %t34, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str972) call void @fn_perr(ptr %t37) br label %ifend2 ifend2: %t38 = load ptr, ptr @g_g_mu_done %t39 = load ptr, ptr %t0 %t40 = call ptr @lp_str_concat(ptr @.str973, ptr %t39) %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str974) %t42 = call i32 @fn_has_sub(ptr %t38, ptr %t41) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then7, label %ifend9 then7: br label %ret ifend9: %t44 = load ptr, ptr %t0 %t45 = call ptr @fn_mod_node_edges(ptr %t44) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t46 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str975) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then10, label %ifend12 then10: br label %ret ifend12: %t50 = load ptr, ptr %t46 %t51 = call ptr @fn_mod_names(ptr %t50) store ptr %t51, ptr %t52 store i32 0, ptr %t53 br label %wcond13 wcond13: %t54 = load i32, ptr %t53 %t55 = load ptr, ptr %t52 %t56 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 1 %t57 = load i32, ptr %t56 %t58 = icmp slt i32 %t54, %t57 %t59 = zext i1 %t58 to i32 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %wbody14, label %wend15 wbody14: %t61 = load ptr, ptr %t52 %t62 = load i32, ptr %t53 %t63 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t66 = load i32, ptr %t65 %t67 = icmp ult i32 %t62, %t66 br i1 %t67, label %ixok16, label %ixbad17 ixbad17: %t68 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t68, ptr @.fmt_bounds, ptr @.str976, i32 %t62, i32 %t66) call void @exit(i32 1) unreachable ixok16: %t69 = getelementptr inbounds ptr, ptr %t64, i32 %t62 %t70 = load ptr, ptr %t69 %t71 = load ptr, ptr %t1 %t72 = load ptr, ptr %t0 %t73 = call ptr @lp_str_concat(ptr %t71, ptr %t72) %t74 = call ptr @lp_str_concat(ptr %t73, ptr @.str977) %t75 = load ptr, ptr %t2 call void @fn_mod_walk(ptr %t70, ptr %t74, ptr %t75) %t76 = load i32, ptr %t53 %t77 = add i32 %t76, 1 store i32 %t77, ptr %t53 br label %wcond13 wend15: %t78 = load ptr, ptr @g_g_mu_done %t79 = load ptr, ptr %t0 %t80 = call ptr @lp_str_concat(ptr %t78, ptr %t79) %t81 = call ptr @lp_str_concat(ptr %t80, ptr @.str978) store ptr %t81, ptr @g_g_mu_done br label %ret ret: ret void } define void @fn_modules_finish() { entry: %t1 = alloca i32 %t2 = alloca i32 %t0 = load i32, ptr @g_g_parsing store i32 %t0, ptr %t1 store i32 0, ptr @g_g_parsing store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_mu_mod %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_g_mu_mod %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str979, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_mod_node(ptr %t19) %t21 = load ptr, ptr @g_g_mu_mod %t22 = load i32, ptr %t2 %t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t26 = load i32, ptr %t25 %t27 = icmp ult i32 %t22, %t26 br i1 %t27, label %ixok5, label %ixbad6 ixbad6: %t28 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t28, ptr @.fmt_bounds, ptr @.str981, i32 %t22, i32 %t26) call void @exit(i32 1) unreachable ixok5: %t29 = getelementptr inbounds ptr, ptr %t24, i32 %t22 %t30 = load ptr, ptr %t29 call void @fn_mod_walk(ptr %t20, ptr @.str980, ptr %t30) %t31 = load i32, ptr %t2 %t32 = add i32 %t31, 1 store i32 %t32, ptr %t2 br label %wcond0 wend2: %t33 = load i32, ptr %t1 store i32 %t33, ptr @g_g_parsing br label %ret ret: ret void } define void @fn_parse_port() { entry: %t1 = alloca ptr %t5 = alloca ptr %t31 = alloca ptr %t0 = call ptr @fn_parse_component() store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1 %t4 = load ptr, ptr %t3 store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t1 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t5 %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str982) store ptr %t9, ptr %t7 %t10 = load ptr, ptr @g_prog %t11 = load ptr, ptr %t1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 %t30 = call ptr @fn_node(i32 2) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t5 store ptr %t34, ptr %t33 %t35 = load ptr, ptr %t31 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 3 %t37 = load ptr, ptr %t1 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 store ptr %t39, ptr %t36 %t40 = load ptr, ptr %t31 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 8 %t42 = load ptr, ptr %t1 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 8 %t44 = load i32, ptr %t43 store i32 %t44, ptr %t41 %t45 = load ptr, ptr @g_prog %t46 = load ptr, ptr %t31 %t47 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 %t48 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 2 %t49 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 0 %t50 = load i32, ptr %t47 %t51 = load i32, ptr %t48 %t52 = icmp sge i32 %t50, %t51 br i1 %t52, label %grow2, label %put3 grow2: %t53 = mul i32 %t51, 2 %t54 = icmp eq i32 %t51, 0 %t55 = select i1 %t54, i32 8, i32 %t53 %t56 = getelementptr ptr, ptr null, i32 1 %t57 = ptrtoint ptr %t56 to i64 %t58 = zext i32 %t55 to i64 %t59 = mul i64 %t58, %t57 %t60 = load ptr, ptr %t49 %t61 = call ptr @realloc(ptr %t60, i64 %t59) store ptr %t61, ptr %t49 store i32 %t55, ptr %t48 br label %put3 put3: %t62 = load ptr, ptr %t49 %t63 = getelementptr inbounds ptr, ptr %t62, i32 %t50 store ptr %t46, ptr %t63 %t64 = add i32 %t50, 1 store i32 %t64, ptr %t47 %t65 = load ptr, ptr @g_g_pt_name %t66 = load ptr, ptr %t5 %t67 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t68 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 2 %t69 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 0 %t70 = load i32, ptr %t67 %t71 = load i32, ptr %t68 %t72 = icmp sge i32 %t70, %t71 br i1 %t72, label %grow4, label %put5 grow4: %t73 = mul i32 %t71, 2 %t74 = icmp eq i32 %t71, 0 %t75 = select i1 %t74, i32 8, i32 %t73 %t76 = getelementptr ptr, ptr null, i32 1 %t77 = ptrtoint ptr %t76 to i64 %t78 = zext i32 %t75 to i64 %t79 = mul i64 %t78, %t77 %t80 = load ptr, ptr %t69 %t81 = call ptr @realloc(ptr %t80, i64 %t79) store ptr %t81, ptr %t69 store i32 %t75, ptr %t68 br label %put5 put5: %t82 = load ptr, ptr %t69 %t83 = getelementptr inbounds ptr, ptr %t82, i32 %t70 store ptr %t66, ptr %t83 %t84 = add i32 %t70, 1 store i32 %t84, ptr %t67 %t85 = load ptr, ptr @g_g_pt_comp %t86 = load ptr, ptr %t1 %t87 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 1 %t88 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 2 %t89 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0 %t90 = load i32, ptr %t87 %t91 = load i32, ptr %t88 %t92 = icmp sge i32 %t90, %t91 br i1 %t92, label %grow6, label %put7 grow6: %t93 = mul i32 %t91, 2 %t94 = icmp eq i32 %t91, 0 %t95 = select i1 %t94, i32 8, i32 %t93 %t96 = getelementptr ptr, ptr null, i32 1 %t97 = ptrtoint ptr %t96 to i64 %t98 = zext i32 %t95 to i64 %t99 = mul i64 %t98, %t97 %t100 = load ptr, ptr %t89 %t101 = call ptr @realloc(ptr %t100, i64 %t99) store ptr %t101, ptr %t89 store i32 %t95, ptr %t88 br label %put7 put7: %t102 = load ptr, ptr %t89 %t103 = getelementptr inbounds ptr, ptr %t102, i32 %t90 store ptr %t86, ptr %t103 %t104 = add i32 %t90, 1 store i32 %t104, ptr %t87 %t105 = load ptr, ptr @g_g_pt_var %t106 = load ptr, ptr %t31 %t107 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 1 %t108 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 2 %t109 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 0 %t110 = load i32, ptr %t107 %t111 = load i32, ptr %t108 %t112 = icmp sge i32 %t110, %t111 br i1 %t112, label %grow8, label %put9 grow8: %t113 = mul i32 %t111, 2 %t114 = icmp eq i32 %t111, 0 %t115 = select i1 %t114, i32 8, i32 %t113 %t116 = getelementptr ptr, ptr null, i32 1 %t117 = ptrtoint ptr %t116 to i64 %t118 = zext i32 %t115 to i64 %t119 = mul i64 %t118, %t117 %t120 = load ptr, ptr %t109 %t121 = call ptr @realloc(ptr %t120, i64 %t119) store ptr %t121, ptr %t109 store i32 %t115, ptr %t108 br label %put9 put9: %t122 = load ptr, ptr %t109 %t123 = getelementptr inbounds ptr, ptr %t122, i32 %t110 store ptr %t106, ptr %t123 %t124 = add i32 %t110, 1 store i32 %t124, ptr %t107 %t125 = load ptr, ptr @g_g_pt_bind %t126 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 1 %t127 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 2 %t128 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 0 %t129 = load i32, ptr %t126 %t130 = load i32, ptr %t127 %t131 = icmp sge i32 %t129, %t130 br i1 %t131, label %grow10, label %put11 grow10: %t132 = mul i32 %t130, 2 %t133 = icmp eq i32 %t130, 0 %t134 = select i1 %t133, i32 8, i32 %t132 %t135 = getelementptr ptr, ptr null, i32 1 %t136 = ptrtoint ptr %t135 to i64 %t137 = zext i32 %t134 to i64 %t138 = mul i64 %t137, %t136 %t139 = load ptr, ptr %t128 %t140 = call ptr @realloc(ptr %t139, i64 %t138) store ptr %t140, ptr %t128 store i32 %t134, ptr %t127 br label %put11 put11: %t141 = load ptr, ptr %t128 %t142 = getelementptr inbounds ptr, ptr %t141, i32 %t129 store ptr null, ptr %t142 %t143 = add i32 %t129, 1 store i32 %t143, ptr %t126 br label %ret ret: ret void } define void @fn_parse_bind() { entry: %t3 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 2) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = call ptr @fn_record() store ptr %t9, ptr %t8 %t10 = load ptr, ptr @g_g_bd %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 br label %ret ret: ret void } define i32 @fn_port_find(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_pt_name %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_pt_name %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str983, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load i32, ptr %t1 store i32 %t22, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t1 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t1 br label %wcond0 wend2: %t25 = sub i32 0, 1 store i32 %t25, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define i32 @fn_is_port_var(ptr %arg_d) { entry: %retval = alloca i32 %t0 = alloca ptr %t11 = alloca i32 store ptr %arg_d, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp ne i32 %t3, 2 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 %t10 = call i32 @fn_port_find(ptr %t9) store i32 %t10, ptr %t11 %t12 = load i32, ptr %t11 %t13 = icmp slt i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: store i32 0, ptr %retval br label %ret ifend5: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr @g_g_pt_comp %t20 = load i32, ptr %t11 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok6, label %ixbad7 ixbad7: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str984, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok6: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = call i32 @lp_str_eq(ptr %t18, ptr %t30) store i32 %t31, ptr %retval br label %ret ret: %t32 = load i32, ptr %retval ret i32 %t32 } define void @fn_port_check_bound(ptr %arg_d) { entry: %t0 = alloca ptr store ptr %arg_d, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_is_port_var(ptr %t1) %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = load ptr, ptr @g_g_pt_bind %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 %t10 = call i32 @fn_port_find(ptr %t9) %t11 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str985, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = icmp ne ptr %t18, null %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: br label %ret ifend7: %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 %t25 = call ptr @lp_str_concat(ptr @.str986, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str987) %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 %t30 = call ptr @lp_str_concat(ptr %t26, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str988) call void @fn_perr(ptr %t31) br label %ret ret: ret void } define void @fn_port_err(ptr %arg_b, ptr %arg_msg) { entry: %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_b, ptr %t0 store ptr %arg_msg, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 9 %t4 = load ptr, ptr %t3 store ptr %t4, ptr @g_g_err_file %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 8 %t7 = load i32, ptr %t6 store i32 %t7, ptr @g_g_err_line %t8 = load ptr, ptr %t1 call void @fn_perr(ptr %t8) br label %ret ret: ret void } define void @fn_port_bind_one(ptr %arg_b) { entry: %t0 = alloca ptr %t5 = alloca i32 %t30 = alloca ptr %t72 = alloca ptr %t76 = alloca ptr %t77 = alloca i32 %t138 = alloca i32 %t219 = alloca ptr %t247 = alloca ptr %t248 = alloca i32 %t267 = alloca ptr %t279 = alloca ptr store ptr %arg_b, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call i32 @fn_port_find(ptr %t3) store i32 %t4, ptr %t5 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 1 %t13 = load ptr, ptr %t12 %t14 = call ptr @lp_str_concat(ptr @.str989, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str990) %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 %t19 = call ptr @lp_str_concat(ptr %t15, ptr %t18) call void @fn_port_err(ptr %t10, ptr %t19) br label %ifend2 ifend2: %t20 = load ptr, ptr @g_g_pt_bind %t21 = load i32, ptr %t5 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok3, label %ixbad4 ixbad4: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str991, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok3: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = icmp ne ptr %t31, null %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load ptr, ptr %t0 %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 %t39 = call ptr @lp_str_concat(ptr @.str992, ptr %t38) %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str993) %t41 = load ptr, ptr %t30 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 9 %t43 = load ptr, ptr %t42 %t44 = call ptr @lp_str_concat(ptr %t40, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str994) %t46 = load ptr, ptr %t30 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 8 %t48 = load i32, ptr %t47 %t49 = call ptr @fn_itoa(i32 %t48) %t50 = call ptr @lp_str_concat(ptr %t45, ptr %t49) %t51 = call ptr @lp_str_concat(ptr %t50, ptr @.str995) call void @fn_port_err(ptr %t35, ptr %t51) br label %ifend7 ifend7: %t52 = load ptr, ptr @g_g_pt_bind %t53 = load i32, ptr %t5 %t54 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t57 = load i32, ptr %t56 %t58 = icmp ult i32 %t53, %t57 br i1 %t58, label %ixok8, label %ixbad9 ixbad9: %t59 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t59, ptr @.fmt_bounds, ptr @.str996, i32 %t53, i32 %t57) call void @exit(i32 1) unreachable ixok8: %t60 = getelementptr inbounds ptr, ptr %t55, i32 %t53 %t61 = load ptr, ptr %t0 store ptr %t61, ptr %t60 %t62 = load ptr, ptr @g_g_pt_comp %t63 = load i32, ptr %t5 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t67 = load i32, ptr %t66 %t68 = icmp ult i32 %t63, %t67 br i1 %t68, label %ixok10, label %ixbad11 ixbad11: %t69 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t69, ptr @.fmt_bounds, ptr @.str997, i32 %t63, i32 %t67) call void @exit(i32 1) unreachable ixok10: %t70 = getelementptr inbounds ptr, ptr %t65, i32 %t63 %t71 = load ptr, ptr %t70 store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t0 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 4 %t75 = load ptr, ptr %t74 store ptr %t75, ptr %t76 store i32 0, ptr %t77 br label %wcond12 wcond12: %t78 = load i32, ptr %t77 %t79 = load ptr, ptr %t76 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 7 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 1 %t83 = load i32, ptr %t82 %t84 = icmp slt i32 %t78, %t83 %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %wbody13, label %wend14 wbody13: %t87 = load ptr, ptr %t72 %t88 = load ptr, ptr %t76 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 7 %t90 = load ptr, ptr %t89 %t91 = load i32, ptr %t77 %t92 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 0 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t95 = load i32, ptr %t94 %t96 = icmp ult i32 %t91, %t95 br i1 %t96, label %ixok15, label %ixbad16 ixbad16: %t97 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t97, ptr @.fmt_bounds, ptr @.str998, i32 %t91, i32 %t95) call void @exit(i32 1) unreachable ixok15: %t98 = getelementptr inbounds ptr, ptr %t93, i32 %t91 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 1 %t101 = load ptr, ptr %t100 %t102 = call i32 @fn_field_index(ptr %t87, ptr %t101) %t103 = icmp slt i32 %t102, 0 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then17, label %ifend19 then17: %t106 = load ptr, ptr %t0 %t107 = load ptr, ptr %t0 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 1 %t109 = load ptr, ptr %t108 %t110 = call ptr @lp_str_concat(ptr @.str999, ptr %t109) %t111 = call ptr @lp_str_concat(ptr %t110, ptr @.str1000) %t112 = load ptr, ptr %t76 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 7 %t114 = load ptr, ptr %t113 %t115 = load i32, ptr %t77 %t116 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 0 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 1 %t119 = load i32, ptr %t118 %t120 = icmp ult i32 %t115, %t119 br i1 %t120, label %ixok20, label %ixbad21 ixbad21: %t121 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t121, ptr @.fmt_bounds, ptr @.str1001, i32 %t115, i32 %t119) call void @exit(i32 1) unreachable ixok20: %t122 = getelementptr inbounds ptr, ptr %t117, i32 %t115 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t124 %t126 = call ptr @lp_str_concat(ptr %t111, ptr %t125) call void @fn_port_err(ptr %t106, ptr %t126) br label %ifend19 ifend19: %t127 = load i32, ptr %t77 %t128 = add i32 %t127, 1 store i32 %t128, ptr %t77 br label %wcond12 wend14: store i32 0, ptr %t77 br label %wcond22 wcond22: %t129 = load i32, ptr %t77 %t130 = load ptr, ptr %t72 %t131 = getelementptr inbounds %Cmp_Node, ptr %t130, i32 0, i32 7 %t132 = load ptr, ptr %t131 %t133 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 1 %t134 = load i32, ptr %t133 %t135 = icmp slt i32 %t129, %t134 %t136 = zext i1 %t135 to i32 %t137 = icmp ne i32 %t136, 0 br i1 %t137, label %wbody23, label %wend24 wbody23: %t139 = load ptr, ptr %t72 %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 7 %t141 = load ptr, ptr %t140 %t142 = load i32, ptr %t77 %t143 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t146 = load i32, ptr %t145 %t147 = icmp ult i32 %t142, %t146 br i1 %t147, label %ixok25, label %ixbad26 ixbad26: %t148 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t148, ptr @.fmt_bounds, ptr @.str1002, i32 %t142, i32 %t146) call void @exit(i32 1) unreachable ixok25: %t149 = getelementptr inbounds ptr, ptr %t144, i32 %t142 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 4 %t152 = load ptr, ptr %t151 %t153 = icmp eq ptr %t152, null %t154 = zext i1 %t153 to i32 %t155 = icmp ne i32 %t154, 0 %t156 = zext i1 %t155 to i32 store i32 %t156, ptr %t138 br i1 %t155, label %sc27, label %scend28 sc27: %t157 = load ptr, ptr %t76 %t158 = load ptr, ptr %t72 %t159 = getelementptr inbounds %Cmp_Node, ptr %t158, i32 0, i32 7 %t160 = load ptr, ptr %t159 %t161 = load i32, ptr %t77 %t162 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 0 %t163 = load ptr, ptr %t162 %t164 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 1 %t165 = load i32, ptr %t164 %t166 = icmp ult i32 %t161, %t165 br i1 %t166, label %ixok29, label %ixbad30 ixbad30: %t167 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t167, ptr @.fmt_bounds, ptr @.str1003, i32 %t161, i32 %t165) call void @exit(i32 1) unreachable ixok29: %t168 = getelementptr inbounds ptr, ptr %t163, i32 %t161 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 1 %t171 = load ptr, ptr %t170 %t172 = call i32 @fn_reg_rec_has(ptr %t157, ptr %t171) %t173 = icmp eq i32 %t172, 0 %t174 = zext i1 %t173 to i32 %t175 = icmp ne i32 %t174, 0 %t176 = zext i1 %t175 to i32 store i32 %t176, ptr %t138 br label %scend28 scend28: %t177 = load i32, ptr %t138 %t178 = icmp ne i32 %t177, 0 br i1 %t178, label %then31, label %ifend33 then31: %t179 = load ptr, ptr %t0 %t180 = load ptr, ptr %t0 %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 1 %t182 = load ptr, ptr %t181 %t183 = call ptr @lp_str_concat(ptr @.str1004, ptr %t182) %t184 = call ptr @lp_str_concat(ptr %t183, ptr @.str1005) %t185 = load ptr, ptr %t72 %t186 = getelementptr inbounds %Cmp_Node, ptr %t185, i32 0, i32 7 %t187 = load ptr, ptr %t186 %t188 = load i32, ptr %t77 %t189 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 0 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 1 %t192 = load i32, ptr %t191 %t193 = icmp ult i32 %t188, %t192 br i1 %t193, label %ixok34, label %ixbad35 ixbad35: %t194 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t194, ptr @.fmt_bounds, ptr @.str1006, i32 %t188, i32 %t192) call void @exit(i32 1) unreachable ixok34: %t195 = getelementptr inbounds ptr, ptr %t190, i32 %t188 %t196 = load ptr, ptr %t195 %t197 = getelementptr inbounds %Cmp_Node, ptr %t196, i32 0, i32 1 %t198 = load ptr, ptr %t197 %t199 = call ptr @lp_str_concat(ptr %t184, ptr %t198) %t200 = call ptr @lp_str_concat(ptr %t199, ptr @.str1007) call void @fn_port_err(ptr %t179, ptr %t200) br label %ifend33 ifend33: %t201 = load i32, ptr %t77 %t202 = add i32 %t201, 1 store i32 %t202, ptr %t77 br label %wcond22 wend24: %t203 = load ptr, ptr %t0 %t204 = getelementptr inbounds %Cmp_Node, ptr %t203, i32 0, i32 9 %t205 = load ptr, ptr %t204 store ptr %t205, ptr @g_g_err_file %t206 = load ptr, ptr %t0 %t207 = getelementptr inbounds %Cmp_Node, ptr %t206, i32 0, i32 8 %t208 = load i32, ptr %t207 store i32 %t208, ptr @g_g_err_line %t209 = load ptr, ptr @g_g_pt_var %t210 = load i32, ptr %t5 %t211 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 0 %t212 = load ptr, ptr %t211 %t213 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 1 %t214 = load i32, ptr %t213 %t215 = icmp ult i32 %t210, %t214 br i1 %t215, label %ixok36, label %ixbad37 ixbad37: %t216 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t216, ptr @.fmt_bounds, ptr @.str1008, i32 %t210, i32 %t214) call void @exit(i32 1) unreachable ixok36: %t217 = getelementptr inbounds ptr, ptr %t212, i32 %t210 %t218 = load ptr, ptr %t217 store ptr %t218, ptr %t219 %t220 = load ptr, ptr %t219 %t221 = load ptr, ptr %t0 %t222 = getelementptr inbounds %Cmp_Node, ptr %t221, i32 0, i32 1 %t223 = load ptr, ptr %t222 call void @fn_vis_check(ptr %t220, ptr %t223) store i32 0, ptr %t77 br label %wcond38 wcond38: %t224 = load i32, ptr %t77 %t225 = load ptr, ptr %t76 %t226 = getelementptr inbounds %Cmp_Node, ptr %t225, i32 0, i32 7 %t227 = load ptr, ptr %t226 %t228 = getelementptr inbounds %LSlice, ptr %t227, i32 0, i32 1 %t229 = load i32, ptr %t228 %t230 = icmp slt i32 %t224, %t229 %t231 = zext i1 %t230 to i32 %t232 = icmp ne i32 %t231, 0 br i1 %t232, label %wbody39, label %wend40 wbody39: %t233 = load ptr, ptr %t76 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 7 %t235 = load ptr, ptr %t234 %t236 = load i32, ptr %t77 %t237 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 0 %t238 = load ptr, ptr %t237 %t239 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 1 %t240 = load i32, ptr %t239 %t241 = icmp ult i32 %t236, %t240 br i1 %t241, label %ixok41, label %ixbad42 ixbad42: %t242 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t242, ptr @.fmt_bounds, ptr @.str1009, i32 %t236, i32 %t240) call void @exit(i32 1) unreachable ixok41: %t243 = getelementptr inbounds ptr, ptr %t238, i32 %t236 %t244 = load ptr, ptr %t243 %t245 = getelementptr inbounds %Cmp_Node, ptr %t244, i32 0, i32 4 %t246 = load ptr, ptr %t245 store ptr %t246, ptr %t247 %t249 = load ptr, ptr %t247 %t250 = icmp ne ptr %t249, null %t251 = zext i1 %t250 to i32 %t252 = icmp ne i32 %t251, 0 %t253 = zext i1 %t252 to i32 store i32 %t253, ptr %t248 br i1 %t252, label %sc43, label %scend44 sc43: %t254 = load ptr, ptr %t247 %t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 0 %t256 = load i32, ptr %t255 %t257 = icmp eq i32 %t256, 55 %t258 = zext i1 %t257 to i32 %t259 = icmp ne i32 %t258, 0 %t260 = zext i1 %t259 to i32 store i32 %t260, ptr %t248 br label %scend44 scend44: %t261 = load i32, ptr %t248 %t262 = icmp ne i32 %t261, 0 br i1 %t262, label %then45, label %ifend47 then45: %t263 = load ptr, ptr %t247 %t264 = getelementptr inbounds %Cmp_Node, ptr %t263, i32 0, i32 1 %t265 = load ptr, ptr %t264 %t266 = call ptr @fn_find_fn(ptr %t265) store ptr %t266, ptr %t267 %t268 = load ptr, ptr %t267 %t269 = icmp ne ptr %t268, null %t270 = zext i1 %t269 to i32 %t271 = icmp ne i32 %t270, 0 br i1 %t271, label %then48, label %ifend50 then48: %t272 = load ptr, ptr %t267 %t273 = load ptr, ptr %t247 %t274 = getelementptr inbounds %Cmp_Node, ptr %t273, i32 0, i32 1 %t275 = load ptr, ptr %t274 call void @fn_vis_check(ptr %t272, ptr %t275) br label %ifend50 ifend50: br label %ifend47 ifend47: %t276 = load i32, ptr %t77 %t277 = add i32 %t276, 1 store i32 %t277, ptr %t77 br label %wcond38 wend40: %t278 = call ptr @fn_node(i32 39) store ptr %t278, ptr %t279 %t280 = load ptr, ptr %t279 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 1 %t282 = load ptr, ptr %t72 %t283 = getelementptr inbounds %Cmp_Node, ptr %t282, i32 0, i32 1 %t284 = load ptr, ptr %t283 store ptr %t284, ptr %t281 %t285 = load ptr, ptr %t279 %t286 = getelementptr inbounds %Cmp_Node, ptr %t285, i32 0, i32 4 %t287 = load ptr, ptr %t76 store ptr %t287, ptr %t286 %t288 = load ptr, ptr %t279 %t289 = getelementptr inbounds %Cmp_Node, ptr %t288, i32 0, i32 9 %t290 = load ptr, ptr %t0 %t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 9 %t292 = load ptr, ptr %t291 store ptr %t292, ptr %t289 %t293 = load ptr, ptr %t279 %t294 = getelementptr inbounds %Cmp_Node, ptr %t293, i32 0, i32 8 %t295 = load ptr, ptr %t0 %t296 = getelementptr inbounds %Cmp_Node, ptr %t295, i32 0, i32 8 %t297 = load i32, ptr %t296 store i32 %t297, ptr %t294 %t298 = load ptr, ptr %t219 %t299 = getelementptr inbounds %Cmp_Node, ptr %t298, i32 0, i32 4 %t300 = load ptr, ptr %t279 store ptr %t300, ptr %t299 br label %ret ret: ret void } define void @fn_port_defaults_only(i32 %arg_k) { entry: %t0 = alloca i32 %t11 = alloca ptr %t12 = alloca i32 %t51 = alloca ptr %t53 = alloca ptr store i32 %arg_k, ptr %t0 %t1 = load ptr, ptr @g_g_pt_comp %t2 = load i32, ptr %t0 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str1010, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t11 store i32 0, ptr %t12 br label %wcond2 wcond2: %t13 = load i32, ptr %t12 %t14 = load ptr, ptr %t11 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 7 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp slt i32 %t13, %t18 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %wbody3, label %wend4 wbody3: %t22 = load ptr, ptr %t11 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 7 %t24 = load ptr, ptr %t23 %t25 = load i32, ptr %t12 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok5, label %ixbad6 ixbad6: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1011, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok5: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 %t36 = icmp eq ptr %t35, null %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then7, label %ifend9 then7: br label %ret ifend9: %t39 = load i32, ptr %t12 %t40 = add i32 %t39, 1 store i32 %t40, ptr %t12 br label %wcond2 wend4: %t41 = load ptr, ptr @g_g_pt_var %t42 = load i32, ptr %t0 %t43 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 1 %t46 = load i32, ptr %t45 %t47 = icmp ult i32 %t42, %t46 br i1 %t47, label %ixok10, label %ixbad11 ixbad11: %t48 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t48, ptr @.fmt_bounds, ptr @.str1012, i32 %t42, i32 %t46) call void @exit(i32 1) unreachable ixok10: %t49 = getelementptr inbounds ptr, ptr %t44, i32 %t42 %t50 = load ptr, ptr %t49 store ptr %t50, ptr %t51 %t52 = call ptr @fn_node(i32 39) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t11 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 store ptr %t58, ptr %t55 %t59 = load ptr, ptr %t53 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 9 %t61 = load ptr, ptr %t51 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 9 %t63 = load ptr, ptr %t62 store ptr %t63, ptr %t60 %t64 = load ptr, ptr %t53 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 8 %t66 = load ptr, ptr %t51 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 8 %t68 = load i32, ptr %t67 store i32 %t68, ptr %t65 %t69 = load ptr, ptr %t51 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 4 %t71 = load ptr, ptr %t53 store ptr %t71, ptr %t70 %t72 = load ptr, ptr @g_g_pt_bind %t73 = load i32, ptr %t0 %t74 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t77 = load i32, ptr %t76 %t78 = icmp ult i32 %t73, %t77 br i1 %t78, label %ixok12, label %ixbad13 ixbad13: %t79 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t79, ptr @.fmt_bounds, ptr @.str1013, i32 %t73, i32 %t77) call void @exit(i32 1) unreachable ixok12: %t80 = getelementptr inbounds ptr, ptr %t75, i32 %t73 %t81 = load ptr, ptr %t53 store ptr %t81, ptr %t80 br label %ret ret: ret void } define void @fn_ports_finish() { entry: %t1 = alloca i32 %t2 = alloca i32 %t0 = load i32, ptr @g_g_parsing store i32 %t0, ptr %t1 store i32 0, ptr @g_g_parsing store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_bd %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_g_bd %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str1014, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 call void @fn_port_bind_one(ptr %t19) %t20 = load i32, ptr %t2 %t21 = add i32 %t20, 1 store i32 %t21, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %t2 br label %wcond5 wcond5: %t22 = load i32, ptr %t2 %t23 = load ptr, ptr @g_g_pt_name %t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp slt i32 %t22, %t25 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %wbody6, label %wend7 wbody6: %t29 = load ptr, ptr @g_g_pt_bind %t30 = load i32, ptr %t2 %t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 %t30, %t34 br i1 %t35, label %ixok8, label %ixbad9 ixbad9: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str1015, i32 %t30, i32 %t34) call void @exit(i32 1) unreachable ixok8: %t37 = getelementptr inbounds ptr, ptr %t32, i32 %t30 %t38 = load ptr, ptr %t37 %t39 = icmp eq ptr %t38, null %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then10, label %ifend12 then10: %t42 = load i32, ptr %t2 call void @fn_port_defaults_only(i32 %t42) br label %ifend12 ifend12: %t43 = load i32, ptr %t2 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t2 br label %wcond5 wend7: %t45 = load i32, ptr %t1 store i32 %t45, ptr @g_g_parsing br label %ret ret: ret void } define i32 @fn_priv_group(i32 %arg_k) { entry: %retval = alloca i32 %t0 = alloca i32 %t5 = alloca i32 store i32 %arg_k, ptr %t0 %t1 = load i32, ptr %t0 %t2 = icmp eq i32 %t1, 4 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 2, ptr %retval br label %ret ifend2: %t6 = load i32, ptr %t0 %t7 = icmp eq i32 %t6, 2 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t5 br i1 %t9, label %scend4, label %sc3 sc3: %t11 = load i32, ptr %t0 %t12 = icmp eq i32 %t11, 3 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t5 br label %scend4 scend4: %t16 = load i32, ptr %t5 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: store i32 0, ptr %retval br label %ret ret: %t18 = load i32, ptr %retval ret i32 %t18 } define i32 @fn_priv_less(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1 %t4 = load ptr, ptr %t3 %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1 %t7 = load ptr, ptr %t6 %t8 = call i32 @fn_reg_str_less(ptr %t4, ptr %t7) store i32 %t8, ptr %retval br label %ret ret: %t9 = load i32, ptr %retval ret i32 %t9 } define void @fn_priv_sort(ptr %arg_xs, i32 %arg_lo, i32 %arg_hi, ptr %arg_tmp) { entry: %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca ptr %t14 = alloca i32 %t24 = alloca i32 %t26 = alloca i32 %t28 = alloca i32 %t34 = alloca i32 %t41 = alloca i32 store ptr %arg_xs, ptr %t0 store i32 %arg_lo, ptr %t1 store i32 %arg_hi, ptr %t2 store ptr %arg_tmp, ptr %t3 %t4 = load i32, ptr %t2 %t5 = load i32, ptr %t1 %t6 = sub i32 %t4, %t5 %t7 = icmp slt i32 %t6, 2 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: br label %ret ifend2: %t10 = load i32, ptr %t1 %t11 = load i32, ptr %t2 %t12 = add i32 %t10, %t11 %t13 = sdiv i32 %t12, 2 store i32 %t13, ptr %t14 %t15 = load ptr, ptr %t0 %t16 = load i32, ptr %t1 %t17 = load i32, ptr %t14 %t18 = load ptr, ptr %t3 call void @fn_priv_sort(ptr %t15, i32 %t16, i32 %t17, ptr %t18) %t19 = load ptr, ptr %t0 %t20 = load i32, ptr %t14 %t21 = load i32, ptr %t2 %t22 = load ptr, ptr %t3 call void @fn_priv_sort(ptr %t19, i32 %t20, i32 %t21, ptr %t22) %t23 = load i32, ptr %t1 store i32 %t23, ptr %t24 %t25 = load i32, ptr %t14 store i32 %t25, ptr %t26 %t27 = load i32, ptr %t1 store i32 %t27, ptr %t28 br label %wcond3 wcond3: %t29 = load i32, ptr %t28 %t30 = load i32, ptr %t2 %t31 = icmp slt i32 %t29, %t30 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %wbody4, label %wend5 wbody4: %t35 = load i32, ptr %t26 %t36 = load i32, ptr %t2 %t37 = icmp sge i32 %t35, %t36 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t34 br i1 %t39, label %scend7, label %sc6 sc6: %t42 = load i32, ptr %t24 %t43 = load i32, ptr %t14 %t44 = icmp slt i32 %t42, %t43 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t41 br i1 %t46, label %sc8, label %scend9 sc8: %t48 = load ptr, ptr @g_prog %t49 = load ptr, ptr %t0 %t50 = load i32, ptr %t26 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp ult i32 %t50, %t54 br i1 %t55, label %ixok10, label %ixbad11 ixbad11: %t56 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t56, ptr @.fmt_bounds, ptr @.str1016, i32 %t50, i32 %t54) call void @exit(i32 1) unreachable ixok10: %t57 = getelementptr inbounds i32, ptr %t52, i32 %t50 %t58 = load i32, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t62 = load i32, ptr %t61 %t63 = icmp ult i32 %t58, %t62 br i1 %t63, label %ixok12, label %ixbad13 ixbad13: %t64 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t64, ptr @.fmt_bounds, ptr @.str1017, i32 %t58, i32 %t62) call void @exit(i32 1) unreachable ixok12: %t65 = getelementptr inbounds ptr, ptr %t60, i32 %t58 %t66 = load ptr, ptr %t65 %t67 = load ptr, ptr @g_prog %t68 = load ptr, ptr %t0 %t69 = load i32, ptr %t24 %t70 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp ult i32 %t69, %t73 br i1 %t74, label %ixok14, label %ixbad15 ixbad15: %t75 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t75, ptr @.fmt_bounds, ptr @.str1018, i32 %t69, i32 %t73) call void @exit(i32 1) unreachable ixok14: %t76 = getelementptr inbounds i32, ptr %t71, i32 %t69 %t77 = load i32, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp ult i32 %t77, %t81 br i1 %t82, label %ixok16, label %ixbad17 ixbad17: %t83 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t83, ptr @.fmt_bounds, ptr @.str1019, i32 %t77, i32 %t81) call void @exit(i32 1) unreachable ixok16: %t84 = getelementptr inbounds ptr, ptr %t79, i32 %t77 %t85 = load ptr, ptr %t84 %t86 = call i32 @fn_priv_less(ptr %t66, ptr %t85) %t87 = icmp eq i32 %t86, 0 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t41 br label %scend9 scend9: %t91 = load i32, ptr %t41 %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t34 br label %scend7 scend7: %t94 = load i32, ptr %t34 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then18, label %else19 then18: %t96 = load ptr, ptr %t3 %t97 = load i32, ptr %t28 %t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 %t97, %t101 br i1 %t102, label %ixok21, label %ixbad22 ixbad22: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str1020, i32 %t97, i32 %t101) call void @exit(i32 1) unreachable ixok21: %t104 = getelementptr inbounds i32, ptr %t99, i32 %t97 %t105 = load ptr, ptr %t0 %t106 = load i32, ptr %t24 %t107 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 0 %t108 = load ptr, ptr %t107 %t109 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 1 %t110 = load i32, ptr %t109 %t111 = icmp ult i32 %t106, %t110 br i1 %t111, label %ixok23, label %ixbad24 ixbad24: %t112 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t112, ptr @.fmt_bounds, ptr @.str1021, i32 %t106, i32 %t110) call void @exit(i32 1) unreachable ixok23: %t113 = getelementptr inbounds i32, ptr %t108, i32 %t106 %t114 = load i32, ptr %t113 store i32 %t114, ptr %t104 %t115 = load i32, ptr %t24 %t116 = add i32 %t115, 1 store i32 %t116, ptr %t24 br label %ifend20 else19: %t117 = load ptr, ptr %t3 %t118 = load i32, ptr %t28 %t119 = getelementptr inbounds %LSlice, ptr %t117, i32 0, i32 0 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %LSlice, ptr %t117, i32 0, i32 1 %t122 = load i32, ptr %t121 %t123 = icmp ult i32 %t118, %t122 br i1 %t123, label %ixok25, label %ixbad26 ixbad26: %t124 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t124, ptr @.fmt_bounds, ptr @.str1022, i32 %t118, i32 %t122) call void @exit(i32 1) unreachable ixok25: %t125 = getelementptr inbounds i32, ptr %t120, i32 %t118 %t126 = load ptr, ptr %t0 %t127 = load i32, ptr %t26 %t128 = getelementptr inbounds %LSlice, ptr %t126, i32 0, i32 0 %t129 = load ptr, ptr %t128 %t130 = getelementptr inbounds %LSlice, ptr %t126, i32 0, i32 1 %t131 = load i32, ptr %t130 %t132 = icmp ult i32 %t127, %t131 br i1 %t132, label %ixok27, label %ixbad28 ixbad28: %t133 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t133, ptr @.fmt_bounds, ptr @.str1023, i32 %t127, i32 %t131) call void @exit(i32 1) unreachable ixok27: %t134 = getelementptr inbounds i32, ptr %t129, i32 %t127 %t135 = load i32, ptr %t134 store i32 %t135, ptr %t125 %t136 = load i32, ptr %t26 %t137 = add i32 %t136, 1 store i32 %t137, ptr %t26 br label %ifend20 ifend20: %t138 = load i32, ptr %t28 %t139 = add i32 %t138, 1 store i32 %t139, ptr %t28 br label %wcond3 wend5: %t140 = load i32, ptr %t1 store i32 %t140, ptr %t28 br label %wcond29 wcond29: %t141 = load i32, ptr %t28 %t142 = load i32, ptr %t2 %t143 = icmp slt i32 %t141, %t142 %t144 = zext i1 %t143 to i32 %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %wbody30, label %wend31 wbody30: %t146 = load ptr, ptr %t0 %t147 = load i32, ptr %t28 %t148 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 0 %t149 = load ptr, ptr %t148 %t150 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 1 %t151 = load i32, ptr %t150 %t152 = icmp ult i32 %t147, %t151 br i1 %t152, label %ixok32, label %ixbad33 ixbad33: %t153 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t153, ptr @.fmt_bounds, ptr @.str1024, i32 %t147, i32 %t151) call void @exit(i32 1) unreachable ixok32: %t154 = getelementptr inbounds i32, ptr %t149, i32 %t147 %t155 = load ptr, ptr %t3 %t156 = load i32, ptr %t28 %t157 = getelementptr inbounds %LSlice, ptr %t155, i32 0, i32 0 %t158 = load ptr, ptr %t157 %t159 = getelementptr inbounds %LSlice, ptr %t155, i32 0, i32 1 %t160 = load i32, ptr %t159 %t161 = icmp ult i32 %t156, %t160 br i1 %t161, label %ixok34, label %ixbad35 ixbad35: %t162 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t162, ptr @.fmt_bounds, ptr @.str1025, i32 %t156, i32 %t160) call void @exit(i32 1) unreachable ixok34: %t163 = getelementptr inbounds i32, ptr %t158, i32 %t156 %t164 = load i32, ptr %t163 store i32 %t164, ptr %t154 %t165 = load i32, ptr %t28 %t166 = add i32 %t165, 1 store i32 %t166, ptr %t28 br label %wcond29 wend31: br label %ret ret: ret void } define ptr @fn_priv_mod(i32 %arg_i) { entry: %retval = alloca ptr %t0 = alloca i32 store i32 %arg_i, ptr %t0 %t1 = load i32, ptr %t0 %t2 = load i32, ptr @g_g_prog_user_end %t3 = icmp sge i32 %t1, %t2 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store ptr @.str1026, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr @g_prog %t7 = load i32, ptr %t0 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 %t7, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str1027, i32 %t7, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 %t7 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 9 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_module_of(ptr %t17) store ptr %t18, ptr %retval br label %ret ret: %t19 = load ptr, ptr %retval ret ptr %t19 } define void @fn_priv_run(ptr %arg_xs, i32 %arg_a, i32 %arg_b) { entry: %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t4 = alloca i32 %t20 = alloca i32 %t31 = alloca ptr %t34 = alloca ptr %t35 = alloca i32 %t36 = alloca i32 %t61 = alloca i32 %t63 = alloca i32 %t69 = alloca i32 %t166 = alloca i32 store ptr %arg_xs, ptr %t0 store i32 %arg_a, ptr %t1 store i32 %arg_b, ptr %t2 %t3 = load i32, ptr %t1 store i32 %t3, ptr %t4 br label %wcond0 wcond0: %t5 = load i32, ptr %t4 %t6 = load i32, ptr %t2 %t7 = icmp slt i32 %t5, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t4 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str1028, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds i32, ptr %t13, i32 %t11 %t19 = load i32, ptr %t18 store i32 %t19, ptr %t20 %t21 = load ptr, ptr @g_prog %t22 = load i32, ptr %t20 %t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t26 = load i32, ptr %t25 %t27 = icmp ult i32 %t22, %t26 br i1 %t27, label %ixok5, label %ixbad6 ixbad6: %t28 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t28, ptr @.fmt_bounds, ptr @.str1029, i32 %t22, i32 %t26) call void @exit(i32 1) unreachable ixok5: %t29 = getelementptr inbounds ptr, ptr %t24, i32 %t22 %t30 = load ptr, ptr %t29 store ptr %t30, ptr %t31 %t32 = load i32, ptr %t20 %t33 = call ptr @fn_priv_mod(i32 %t32) store ptr %t33, ptr %t34 %t37 = load i32, ptr %t20 %t38 = load i32, ptr @g_g_prog_user_end %t39 = icmp slt i32 %t37, %t38 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t36 br i1 %t41, label %sc7, label %scend8 sc7: %t43 = load ptr, ptr %t31 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 10 %t45 = load i32, ptr %t44 %t46 = icmp ne i32 %t45, 1 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t36 br label %scend8 scend8: %t50 = load i32, ptr %t36 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t35 br i1 %t51, label %sc9, label %scend10 sc9: %t53 = load ptr, ptr %t34 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str1030) %t55 = icmp eq i32 %t54, 0 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t35 br label %scend10 scend10: %t59 = load i32, ptr %t35 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then11, label %ifend13 then11: store i32 0, ptr %t61 %t62 = load i32, ptr %t1 store i32 %t62, ptr %t63 br label %wcond14 wcond14: %t64 = load i32, ptr %t63 %t65 = load i32, ptr %t2 %t66 = icmp slt i32 %t64, %t65 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %wbody15, label %wend16 wbody15: %t70 = load i32, ptr %t63 %t71 = load i32, ptr %t4 %t72 = icmp ne i32 %t70, %t71 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t69 br i1 %t74, label %sc17, label %scend18 sc17: %t76 = load ptr, ptr %t0 %t77 = load i32, ptr %t63 %t78 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp ult i32 %t77, %t81 br i1 %t82, label %ixok19, label %ixbad20 ixbad20: %t83 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t83, ptr @.fmt_bounds, ptr @.str1031, i32 %t77, i32 %t81) call void @exit(i32 1) unreachable ixok19: %t84 = getelementptr inbounds i32, ptr %t79, i32 %t77 %t85 = load i32, ptr %t84 %t86 = call ptr @fn_priv_mod(i32 %t85) %t87 = load ptr, ptr %t34 %t88 = call i32 @lp_str_eq(ptr %t86, ptr %t87) %t89 = icmp eq i32 %t88, 0 %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t69 br label %scend18 scend18: %t93 = load i32, ptr %t69 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then21, label %ifend23 then21: store i32 1, ptr %t61 br label %ifend23 ifend23: %t95 = load i32, ptr %t63 %t96 = add i32 %t95, 1 store i32 %t96, ptr %t63 br label %wcond14 wend16: %t97 = load i32, ptr %t61 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then24, label %ifend26 then24: %t99 = load ptr, ptr @g_g_rn_mod %t100 = load ptr, ptr %t34 %t101 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t102 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 2 %t103 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 0 %t104 = load i32, ptr %t101 %t105 = load i32, ptr %t102 %t106 = icmp sge i32 %t104, %t105 br i1 %t106, label %grow27, label %put28 grow27: %t107 = mul i32 %t105, 2 %t108 = icmp eq i32 %t105, 0 %t109 = select i1 %t108, i32 8, i32 %t107 %t110 = getelementptr ptr, ptr null, i32 1 %t111 = ptrtoint ptr %t110 to i64 %t112 = zext i32 %t109 to i64 %t113 = mul i64 %t112, %t111 %t114 = load ptr, ptr %t103 %t115 = call ptr @realloc(ptr %t114, i64 %t113) store ptr %t115, ptr %t103 store i32 %t109, ptr %t102 br label %put28 put28: %t116 = load ptr, ptr %t103 %t117 = getelementptr inbounds ptr, ptr %t116, i32 %t104 store ptr %t100, ptr %t117 %t118 = add i32 %t104, 1 store i32 %t118, ptr %t101 %t119 = load ptr, ptr @g_g_rn_old %t120 = load ptr, ptr %t31 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 1 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t124 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 2 %t125 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t126 = load i32, ptr %t123 %t127 = load i32, ptr %t124 %t128 = icmp sge i32 %t126, %t127 br i1 %t128, label %grow29, label %put30 grow29: %t129 = mul i32 %t127, 2 %t130 = icmp eq i32 %t127, 0 %t131 = select i1 %t130, i32 8, i32 %t129 %t132 = getelementptr ptr, ptr null, i32 1 %t133 = ptrtoint ptr %t132 to i64 %t134 = zext i32 %t131 to i64 %t135 = mul i64 %t134, %t133 %t136 = load ptr, ptr %t125 %t137 = call ptr @realloc(ptr %t136, i64 %t135) store ptr %t137, ptr %t125 store i32 %t131, ptr %t124 br label %put30 put30: %t138 = load ptr, ptr %t125 %t139 = getelementptr inbounds ptr, ptr %t138, i32 %t126 store ptr %t122, ptr %t139 %t140 = add i32 %t126, 1 store i32 %t140, ptr %t123 %t141 = load ptr, ptr @g_g_rn_new %t142 = load ptr, ptr %t31 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 1 %t144 = load ptr, ptr %t143 %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str1032) %t146 = load ptr, ptr %t34 %t147 = call ptr @lp_str_concat(ptr %t145, ptr %t146) %t148 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t149 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 2 %t150 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 0 %t151 = load i32, ptr %t148 %t152 = load i32, ptr %t149 %t153 = icmp sge i32 %t151, %t152 br i1 %t153, label %grow31, label %put32 grow31: %t154 = mul i32 %t152, 2 %t155 = icmp eq i32 %t152, 0 %t156 = select i1 %t155, i32 8, i32 %t154 %t157 = getelementptr ptr, ptr null, i32 1 %t158 = ptrtoint ptr %t157 to i64 %t159 = zext i32 %t156 to i64 %t160 = mul i64 %t159, %t158 %t161 = load ptr, ptr %t150 %t162 = call ptr @realloc(ptr %t161, i64 %t160) store ptr %t162, ptr %t150 store i32 %t156, ptr %t149 br label %put32 put32: %t163 = load ptr, ptr %t150 %t164 = getelementptr inbounds ptr, ptr %t163, i32 %t151 store ptr %t147, ptr %t164 %t165 = add i32 %t151, 1 store i32 %t165, ptr %t148 store i32 0, ptr %t166 %t167 = load ptr, ptr %t31 %t168 = getelementptr inbounds %Cmp_Node, ptr %t167, i32 0, i32 0 %t169 = load i32, ptr %t168 %t170 = icmp eq i32 %t169, 4 %t171 = zext i1 %t170 to i32 %t172 = icmp ne i32 %t171, 0 br i1 %t172, label %then33, label %ifend35 then33: store i32 1, ptr %t166 br label %ifend35 ifend35: %t173 = load ptr, ptr @g_g_rn_fn %t174 = load i32, ptr %t166 %t175 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 1 %t176 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 2 %t177 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 0 %t178 = load i32, ptr %t175 %t179 = load i32, ptr %t176 %t180 = icmp sge i32 %t178, %t179 br i1 %t180, label %grow36, label %put37 grow36: %t181 = mul i32 %t179, 2 %t182 = icmp eq i32 %t179, 0 %t183 = select i1 %t182, i32 8, i32 %t181 %t184 = getelementptr i32, ptr null, i32 1 %t185 = ptrtoint ptr %t184 to i64 %t186 = zext i32 %t183 to i64 %t187 = mul i64 %t186, %t185 %t188 = load ptr, ptr %t177 %t189 = call ptr @realloc(ptr %t188, i64 %t187) store ptr %t189, ptr %t177 store i32 %t183, ptr %t176 br label %put37 put37: %t190 = load ptr, ptr %t177 %t191 = getelementptr inbounds i32, ptr %t190, i32 %t178 store i32 %t174, ptr %t191 %t192 = add i32 %t178, 1 store i32 %t192, ptr %t175 br label %ifend26 ifend26: br label %ifend13 ifend13: %t193 = load i32, ptr %t4 %t194 = add i32 %t193, 1 store i32 %t194, ptr %t4 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_privates_rename() { entry: %t6 = alloca ptr %t13 = alloca ptr %t14 = alloca i32 %t22 = alloca i32 %t104 = alloca i32 %t114 = alloca i32 %t134 = alloca ptr %t135 = alloca i32 %t181 = alloca i32 %t192 = alloca ptr %t194 = alloca i32 %t0 = getelementptr %LSlice, ptr null, i32 1 %t1 = ptrtoint ptr %t0 to i64 %t2 = call ptr @malloc(i64 %t1) %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 store ptr null, ptr %t3 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 store i32 0, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 store i32 0, ptr %t5 store ptr %t2, ptr %t6 %t7 = getelementptr %LSlice, ptr null, i32 1 %t8 = ptrtoint ptr %t7 to i64 %t9 = call ptr @malloc(i64 %t8) %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 store ptr null, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 store i32 0, ptr %t11 %t12 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 2 store i32 0, ptr %t12 store ptr %t9, ptr %t13 store i32 0, ptr %t14 br label %wcond0 wcond0: %t15 = load i32, ptr %t14 %t16 = load ptr, ptr @g_prog %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp slt i32 %t15, %t18 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %wbody1, label %wend2 wbody1: %t23 = load ptr, ptr @g_prog %t24 = load i32, ptr %t14 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok3, label %ixbad4 ixbad4: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str1033, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok3: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 0 %t34 = load i32, ptr %t33 %t35 = call i32 @fn_priv_group(i32 %t34) %t36 = icmp sgt i32 %t35, 0 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t22 br i1 %t38, label %sc5, label %scend6 sc5: %t40 = load ptr, ptr @g_prog %t41 = load i32, ptr %t14 %t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t45 = load i32, ptr %t44 %t46 = icmp ult i32 %t41, %t45 br i1 %t46, label %ixok7, label %ixbad8 ixbad8: %t47 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t47, ptr @.fmt_bounds, ptr @.str1034, i32 %t41, i32 %t45) call void @exit(i32 1) unreachable ixok7: %t48 = getelementptr inbounds ptr, ptr %t43, i32 %t41 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1 %t51 = load ptr, ptr %t50 %t52 = icmp ne ptr %t51, null %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t22 br label %scend6 scend6: %t56 = load i32, ptr %t22 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then9, label %ifend11 then9: %t58 = load ptr, ptr %t6 %t59 = load i32, ptr %t14 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t63 = load i32, ptr %t60 %t64 = load i32, ptr %t61 %t65 = icmp sge i32 %t63, %t64 br i1 %t65, label %grow12, label %put13 grow12: %t66 = mul i32 %t64, 2 %t67 = icmp eq i32 %t64, 0 %t68 = select i1 %t67, i32 8, i32 %t66 %t69 = getelementptr i32, ptr null, i32 1 %t70 = ptrtoint ptr %t69 to i64 %t71 = zext i32 %t68 to i64 %t72 = mul i64 %t71, %t70 %t73 = load ptr, ptr %t62 %t74 = call ptr @realloc(ptr %t73, i64 %t72) store ptr %t74, ptr %t62 store i32 %t68, ptr %t61 br label %put13 put13: %t75 = load ptr, ptr %t62 %t76 = getelementptr inbounds i32, ptr %t75, i32 %t63 store i32 %t59, ptr %t76 %t77 = add i32 %t63, 1 store i32 %t77, ptr %t60 %t78 = load ptr, ptr %t13 %t79 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t80 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 2 %t81 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t82 = load i32, ptr %t79 %t83 = load i32, ptr %t80 %t84 = icmp sge i32 %t82, %t83 br i1 %t84, label %grow14, label %put15 grow14: %t85 = mul i32 %t83, 2 %t86 = icmp eq i32 %t83, 0 %t87 = select i1 %t86, i32 8, i32 %t85 %t88 = getelementptr i32, ptr null, i32 1 %t89 = ptrtoint ptr %t88 to i64 %t90 = zext i32 %t87 to i64 %t91 = mul i64 %t90, %t89 %t92 = load ptr, ptr %t81 %t93 = call ptr @realloc(ptr %t92, i64 %t91) store ptr %t93, ptr %t81 store i32 %t87, ptr %t80 br label %put15 put15: %t94 = load ptr, ptr %t81 %t95 = getelementptr inbounds i32, ptr %t94, i32 %t82 store i32 0, ptr %t95 %t96 = add i32 %t82, 1 store i32 %t96, ptr %t79 br label %ifend11 ifend11: %t97 = load i32, ptr %t14 %t98 = add i32 %t97, 1 store i32 %t98, ptr %t14 br label %wcond0 wend2: %t99 = load ptr, ptr %t6 %t100 = load ptr, ptr %t6 %t101 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = load ptr, ptr %t13 call void @fn_priv_sort(ptr %t99, i32 0, i32 %t102, ptr %t103) store i32 0, ptr %t104 br label %wcond16 wcond16: %t105 = load i32, ptr %t104 %t106 = load ptr, ptr %t6 %t107 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 1 %t108 = load i32, ptr %t107 %t109 = icmp slt i32 %t105, %t108 %t110 = zext i1 %t109 to i32 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %wbody17, label %wend18 wbody17: %t112 = load i32, ptr %t104 %t113 = add i32 %t112, 1 store i32 %t113, ptr %t114 %t115 = load ptr, ptr @g_prog %t116 = load ptr, ptr %t6 %t117 = load i32, ptr %t104 %t118 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 0 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 1 %t121 = load i32, ptr %t120 %t122 = icmp ult i32 %t117, %t121 br i1 %t122, label %ixok19, label %ixbad20 ixbad20: %t123 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t123, ptr @.fmt_bounds, ptr @.str1035, i32 %t117, i32 %t121) call void @exit(i32 1) unreachable ixok19: %t124 = getelementptr inbounds i32, ptr %t119, i32 %t117 %t125 = load i32, ptr %t124 %t126 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 1 %t129 = load i32, ptr %t128 %t130 = icmp ult i32 %t125, %t129 br i1 %t130, label %ixok21, label %ixbad22 ixbad22: %t131 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t131, ptr @.fmt_bounds, ptr @.str1036, i32 %t125, i32 %t129) call void @exit(i32 1) unreachable ixok21: %t132 = getelementptr inbounds ptr, ptr %t127, i32 %t125 %t133 = load ptr, ptr %t132 store ptr %t133, ptr %t134 br label %wcond23 wcond23: %t136 = load i32, ptr %t114 %t137 = load ptr, ptr %t6 %t138 = getelementptr inbounds %LSlice, ptr %t137, i32 0, i32 1 %t139 = load i32, ptr %t138 %t140 = icmp slt i32 %t136, %t139 %t141 = zext i1 %t140 to i32 %t142 = icmp ne i32 %t141, 0 %t143 = zext i1 %t142 to i32 store i32 %t143, ptr %t135 br i1 %t142, label %sc26, label %scend27 sc26: %t144 = load ptr, ptr @g_prog %t145 = load ptr, ptr %t6 %t146 = load i32, ptr %t114 %t147 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 0 %t148 = load ptr, ptr %t147 %t149 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 1 %t150 = load i32, ptr %t149 %t151 = icmp ult i32 %t146, %t150 br i1 %t151, label %ixok28, label %ixbad29 ixbad29: %t152 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t152, ptr @.fmt_bounds, ptr @.str1037, i32 %t146, i32 %t150) call void @exit(i32 1) unreachable ixok28: %t153 = getelementptr inbounds i32, ptr %t148, i32 %t146 %t154 = load i32, ptr %t153 %t155 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 0 %t156 = load ptr, ptr %t155 %t157 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 1 %t158 = load i32, ptr %t157 %t159 = icmp ult i32 %t154, %t158 br i1 %t159, label %ixok30, label %ixbad31 ixbad31: %t160 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t160, ptr @.fmt_bounds, ptr @.str1038, i32 %t154, i32 %t158) call void @exit(i32 1) unreachable ixok30: %t161 = getelementptr inbounds ptr, ptr %t156, i32 %t154 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds %Cmp_Node, ptr %t162, i32 0, i32 1 %t164 = load ptr, ptr %t163 %t165 = load ptr, ptr %t134 %t166 = getelementptr inbounds %Cmp_Node, ptr %t165, i32 0, i32 1 %t167 = load ptr, ptr %t166 %t168 = call i32 @lp_str_eq(ptr %t164, ptr %t167) %t169 = icmp ne i32 %t168, 0 %t170 = zext i1 %t169 to i32 store i32 %t170, ptr %t135 br label %scend27 scend27: %t171 = load i32, ptr %t135 %t172 = icmp ne i32 %t171, 0 br i1 %t172, label %wbody24, label %wend25 wbody24: %t173 = load i32, ptr %t114 %t174 = add i32 %t173, 1 store i32 %t174, ptr %t114 br label %wcond23 wend25: %t175 = load i32, ptr %t114 %t176 = load i32, ptr %t104 %t177 = sub i32 %t175, %t176 %t178 = icmp sgt i32 %t177, 1 %t179 = zext i1 %t178 to i32 %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then32, label %ifend34 then32: store i32 1, ptr %t181 br label %wcond35 wcond35: %t182 = load i32, ptr %t181 %t183 = icmp sle i32 %t182, 2 %t184 = zext i1 %t183 to i32 %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %wbody36, label %wend37 wbody36: %t186 = getelementptr %LSlice, ptr null, i32 1 %t187 = ptrtoint ptr %t186 to i64 %t188 = call ptr @malloc(i64 %t187) %t189 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 0 store ptr null, ptr %t189 %t190 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 1 store i32 0, ptr %t190 %t191 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 2 store i32 0, ptr %t191 store ptr %t188, ptr %t192 %t193 = load i32, ptr %t104 store i32 %t193, ptr %t194 br label %wcond38 wcond38: %t195 = load i32, ptr %t194 %t196 = load i32, ptr %t114 %t197 = icmp slt i32 %t195, %t196 %t198 = zext i1 %t197 to i32 %t199 = icmp ne i32 %t198, 0 br i1 %t199, label %wbody39, label %wend40 wbody39: %t200 = load ptr, ptr @g_prog %t201 = load ptr, ptr %t6 %t202 = load i32, ptr %t194 %t203 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 0 %t204 = load ptr, ptr %t203 %t205 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 1 %t206 = load i32, ptr %t205 %t207 = icmp ult i32 %t202, %t206 br i1 %t207, label %ixok41, label %ixbad42 ixbad42: %t208 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t208, ptr @.fmt_bounds, ptr @.str1039, i32 %t202, i32 %t206) call void @exit(i32 1) unreachable ixok41: %t209 = getelementptr inbounds i32, ptr %t204, i32 %t202 %t210 = load i32, ptr %t209 %t211 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 0 %t212 = load ptr, ptr %t211 %t213 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 1 %t214 = load i32, ptr %t213 %t215 = icmp ult i32 %t210, %t214 br i1 %t215, label %ixok43, label %ixbad44 ixbad44: %t216 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t216, ptr @.fmt_bounds, ptr @.str1040, i32 %t210, i32 %t214) call void @exit(i32 1) unreachable ixok43: %t217 = getelementptr inbounds ptr, ptr %t212, i32 %t210 %t218 = load ptr, ptr %t217 %t219 = getelementptr inbounds %Cmp_Node, ptr %t218, i32 0, i32 0 %t220 = load i32, ptr %t219 %t221 = call i32 @fn_priv_group(i32 %t220) %t222 = load i32, ptr %t181 %t223 = icmp eq i32 %t221, %t222 %t224 = zext i1 %t223 to i32 %t225 = icmp ne i32 %t224, 0 br i1 %t225, label %then45, label %ifend47 then45: %t226 = load ptr, ptr %t192 %t227 = load ptr, ptr %t6 %t228 = load i32, ptr %t194 %t229 = getelementptr inbounds %LSlice, ptr %t227, i32 0, i32 0 %t230 = load ptr, ptr %t229 %t231 = getelementptr inbounds %LSlice, ptr %t227, i32 0, i32 1 %t232 = load i32, ptr %t231 %t233 = icmp ult i32 %t228, %t232 br i1 %t233, label %ixok48, label %ixbad49 ixbad49: %t234 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t234, ptr @.fmt_bounds, ptr @.str1041, i32 %t228, i32 %t232) call void @exit(i32 1) unreachable ixok48: %t235 = getelementptr inbounds i32, ptr %t230, i32 %t228 %t236 = load i32, ptr %t235 %t237 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 1 %t238 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 2 %t239 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 0 %t240 = load i32, ptr %t237 %t241 = load i32, ptr %t238 %t242 = icmp sge i32 %t240, %t241 br i1 %t242, label %grow50, label %put51 grow50: %t243 = mul i32 %t241, 2 %t244 = icmp eq i32 %t241, 0 %t245 = select i1 %t244, i32 8, i32 %t243 %t246 = getelementptr i32, ptr null, i32 1 %t247 = ptrtoint ptr %t246 to i64 %t248 = zext i32 %t245 to i64 %t249 = mul i64 %t248, %t247 %t250 = load ptr, ptr %t239 %t251 = call ptr @realloc(ptr %t250, i64 %t249) store ptr %t251, ptr %t239 store i32 %t245, ptr %t238 br label %put51 put51: %t252 = load ptr, ptr %t239 %t253 = getelementptr inbounds i32, ptr %t252, i32 %t240 store i32 %t236, ptr %t253 %t254 = add i32 %t240, 1 store i32 %t254, ptr %t237 br label %ifend47 ifend47: %t255 = load i32, ptr %t194 %t256 = add i32 %t255, 1 store i32 %t256, ptr %t194 br label %wcond38 wend40: %t257 = load ptr, ptr %t192 %t258 = getelementptr inbounds %LSlice, ptr %t257, i32 0, i32 1 %t259 = load i32, ptr %t258 %t260 = icmp sgt i32 %t259, 1 %t261 = zext i1 %t260 to i32 %t262 = icmp ne i32 %t261, 0 br i1 %t262, label %then52, label %ifend54 then52: %t263 = load ptr, ptr %t192 %t264 = load ptr, ptr %t192 %t265 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 1 %t266 = load i32, ptr %t265 call void @fn_priv_run(ptr %t263, i32 0, i32 %t266) br label %ifend54 ifend54: %t267 = load i32, ptr %t181 %t268 = add i32 %t267, 1 store i32 %t268, ptr %t181 br label %wcond35 wend37: br label %ifend34 ifend34: %t269 = load i32, ptr %t114 store i32 %t269, ptr %t104 br label %wcond16 wend18: %t270 = load ptr, ptr @g_g_rn_old %t271 = getelementptr inbounds %LSlice, ptr %t270, i32 0, i32 1 %t272 = load i32, ptr %t271 %t273 = icmp sgt i32 %t272, 0 %t274 = zext i1 %t273 to i32 %t275 = icmp ne i32 %t274, 0 br i1 %t275, label %then55, label %ifend57 then55: call void @fn_priv_apply() br label %ifend57 ifend57: call void @fn_privates_types() br label %ret ret: ret void } define ptr @fn_priv_find(ptr %arg_s, ptr %arg_f, i32 %arg_want_fn) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t11 = alloca i32 %t43 = alloca i32 store ptr %arg_s, ptr %t0 store ptr %arg_f, ptr %t1 store i32 %arg_want_fn, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = load ptr, ptr @g_g_rn_old %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t4, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr @g_g_rn_old %t13 = load i32, ptr %t3 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok3, label %ixbad4 ixbad4: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str1042, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok3: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t21, ptr %t22) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t11 br i1 %t24, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr @g_g_rn_fn %t27 = load i32, ptr %t3 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok7, label %ixbad8 ixbad8: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str1043, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok7: %t34 = getelementptr inbounds i32, ptr %t29, i32 %t27 %t35 = load i32, ptr %t34 %t36 = load i32, ptr %t2 %t37 = icmp eq i32 %t35, %t36 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t11 br label %scend6 scend6: %t41 = load i32, ptr %t11 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: %t44 = load ptr, ptr %t1 %t45 = icmp ne ptr %t44, null %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t43 br i1 %t47, label %sc12, label %scend13 sc12: %t49 = load ptr, ptr %t1 %t50 = call ptr @fn_module_of(ptr %t49) %t51 = load ptr, ptr @g_g_rn_mod %t52 = load i32, ptr %t3 %t53 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 0 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 1 %t56 = load i32, ptr %t55 %t57 = icmp ult i32 %t52, %t56 br i1 %t57, label %ixok14, label %ixbad15 ixbad15: %t58 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t58, ptr @.fmt_bounds, ptr @.str1044, i32 %t52, i32 %t56) call void @exit(i32 1) unreachable ixok14: %t59 = getelementptr inbounds ptr, ptr %t54, i32 %t52 %t60 = load ptr, ptr %t59 %t61 = call i32 @lp_str_eq(ptr %t50, ptr %t60) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t43 br label %scend13 scend13: %t64 = load i32, ptr %t43 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then16, label %ifend18 then16: %t66 = load ptr, ptr @g_g_rn_new %t67 = load i32, ptr %t3 %t68 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t71 = load i32, ptr %t70 %t72 = icmp ult i32 %t67, %t71 br i1 %t72, label %ixok19, label %ixbad20 ixbad20: %t73 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t73, ptr @.fmt_bounds, ptr @.str1045, i32 %t67, i32 %t71) call void @exit(i32 1) unreachable ixok19: %t74 = getelementptr inbounds ptr, ptr %t69, i32 %t67 %t75 = load ptr, ptr %t74 store ptr %t75, ptr %retval br label %ret ifend18: br label %ifend11 ifend11: %t76 = load i32, ptr %t3 %t77 = add i32 %t76, 1 store i32 %t77, ptr %t3 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t78 = load ptr, ptr %retval ret ptr %t78 } define i32 @fn_priv_known(ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_s, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_rn_old %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_rn_old %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1046, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define i32 @fn_priv_shadowed(ptr %arg_sc, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_sc, ptr %t0 store ptr %arg_s, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str1047, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str1048) %t6 = call i32 @fn_has_sub(ptr %t2, ptr %t5) store i32 %t6, ptr %retval br label %ret ret: %t7 = load i32, ptr %retval ret i32 %t7 } define void @fn_priv_ref(ptr %arg_n, ptr %arg_sc, i32 %arg_want_fn) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t21 = alloca i32 %t44 = alloca ptr store ptr %arg_n, ptr %t0 store ptr %arg_sc, ptr %t1 store i32 %arg_want_fn, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t5 %t7 = icmp eq ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t3 br i1 %t9, label %scend1, label %sc0 sc0: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 1 %t13 = load ptr, ptr %t12 %t14 = call i32 @fn_priv_known(ptr %t13) %t15 = icmp eq i32 %t14, 0 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t3 br label %scend1 scend1: %t19 = load i32, ptr %t3 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then2, label %ifend4 then2: br label %ret ifend4: %t22 = load i32, ptr %t2 %t23 = icmp eq i32 %t22, 0 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t21 br i1 %t25, label %sc5, label %scend6 sc5: %t27 = load ptr, ptr %t1 %t28 = load ptr, ptr %t0 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = call i32 @fn_priv_shadowed(ptr %t27, ptr %t30) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t21 br label %scend6 scend6: %t34 = load i32, ptr %t21 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then7, label %ifend9 then7: br label %ret ifend9: %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 %t39 = load ptr, ptr %t0 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 9 %t41 = load ptr, ptr %t40 %t42 = load i32, ptr %t2 %t43 = call ptr @fn_priv_find(ptr %t38, ptr %t41, i32 %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t44 %t46 = icmp ne ptr %t45, null %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then10, label %ifend12 then10: %t49 = load ptr, ptr %t0 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1 %t51 = load ptr, ptr %t44 store ptr %t51, ptr %t50 br label %ifend12 ifend12: br label %ret ret: ret void } define void @fn_priv_walk(ptr %arg_n, ptr %arg_sc) { entry: %t0 = alloca ptr %t1 = alloca ptr %t28 = alloca i32 %t64 = alloca ptr %t65 = alloca i32 %t158 = alloca ptr %t159 = alloca i32 store ptr %arg_n, ptr %t0 store ptr %arg_sc, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 0 %t8 = load i32, ptr %t7 %t9 = icmp eq i32 %t8, 55 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: %t12 = load ptr, ptr %t0 %t13 = load ptr, ptr %t1 call void @fn_priv_ref(ptr %t12, ptr %t13, i32 1) br label %ret ifend5: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0 %t16 = load i32, ptr %t15 %t17 = icmp eq i32 %t16, 33 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then6, label %ifend8 then6: %t20 = load ptr, ptr %t0 %t21 = load ptr, ptr %t1 call void @fn_priv_ref(ptr %t20, ptr %t21, i32 0) br label %ret ifend8: %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 0 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 34 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then9, label %ifend11 then9: %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 4 %t31 = load ptr, ptr %t30 %t32 = icmp ne ptr %t31, null %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t28 br i1 %t34, label %sc12, label %scend13 sc12: %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 4 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 0 %t40 = load i32, ptr %t39 %t41 = icmp eq i32 %t40, 33 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t28 br label %scend13 scend13: %t45 = load i32, ptr %t28 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then14, label %else15 then14: %t47 = load ptr, ptr %t0 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 4 %t49 = load ptr, ptr %t48 %t50 = load ptr, ptr %t1 call void @fn_priv_ref(ptr %t49, ptr %t50, i32 1) br label %ifend16 else15: %t51 = load ptr, ptr %t0 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 4 %t53 = load ptr, ptr %t52 %t54 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t53, ptr %t54) br label %ifend16 ifend16: %t55 = load ptr, ptr %t0 %t56 = load ptr, ptr %t1 call void @fn_priv_kids(ptr %t55, ptr %t56) br label %ret ifend11: %t57 = load ptr, ptr %t0 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 0 %t59 = load i32, ptr %t58 %t60 = icmp eq i32 %t59, 7 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then17, label %ifend19 then17: %t63 = load ptr, ptr %t1 store ptr %t63, ptr %t64 store i32 0, ptr %t65 br label %wcond20 wcond20: %t66 = load i32, ptr %t65 %t67 = load ptr, ptr %t0 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 7 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t71 = load i32, ptr %t70 %t72 = icmp slt i32 %t66, %t71 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %wbody21, label %wend22 wbody21: %t75 = load ptr, ptr %t0 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 7 %t77 = load ptr, ptr %t76 %t78 = load i32, ptr %t65 %t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp ult i32 %t78, %t82 br i1 %t83, label %ixok23, label %ixbad24 ixbad24: %t84 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t84, ptr @.fmt_bounds, ptr @.str1049, i32 %t78, i32 %t82) call void @exit(i32 1) unreachable ixok23: %t85 = getelementptr inbounds ptr, ptr %t80, i32 %t78 %t86 = load ptr, ptr %t85 %t87 = load ptr, ptr %t64 call void @fn_priv_walk(ptr %t86, ptr %t87) %t88 = load ptr, ptr %t0 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 7 %t90 = load ptr, ptr %t89 %t91 = load i32, ptr %t65 %t92 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 0 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t95 = load i32, ptr %t94 %t96 = icmp ult i32 %t91, %t95 br i1 %t96, label %ixok25, label %ixbad26 ixbad26: %t97 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t97, ptr @.fmt_bounds, ptr @.str1050, i32 %t91, i32 %t95) call void @exit(i32 1) unreachable ixok25: %t98 = getelementptr inbounds ptr, ptr %t93, i32 %t91 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 0 %t101 = load i32, ptr %t100 %t102 = icmp eq i32 %t101, 10 %t103 = zext i1 %t102 to i32 %t104 = icmp ne i32 %t103, 0 br i1 %t104, label %then27, label %ifend29 then27: %t105 = load ptr, ptr %t64 %t106 = load ptr, ptr %t0 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 7 %t108 = load ptr, ptr %t107 %t109 = load i32, ptr %t65 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t113 = load i32, ptr %t112 %t114 = icmp ult i32 %t109, %t113 br i1 %t114, label %ixok30, label %ixbad31 ixbad31: %t115 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t115, ptr @.fmt_bounds, ptr @.str1051, i32 %t109, i32 %t113) call void @exit(i32 1) unreachable ixok30: %t116 = getelementptr inbounds ptr, ptr %t111, i32 %t109 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 1 %t119 = load ptr, ptr %t118 %t120 = call ptr @lp_str_concat(ptr %t105, ptr %t119) %t121 = call ptr @lp_str_concat(ptr %t120, ptr @.str1052) store ptr %t121, ptr %t64 br label %ifend29 ifend29: %t122 = load i32, ptr %t65 %t123 = add i32 %t122, 1 store i32 %t123, ptr %t65 br label %wcond20 wend22: %t124 = load ptr, ptr %t0 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 4 %t126 = load ptr, ptr %t125 %t127 = load ptr, ptr %t64 call void @fn_priv_walk(ptr %t126, ptr %t127) br label %ret ifend19: %t128 = load ptr, ptr %t0 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 0 %t130 = load i32, ptr %t129 %t131 = icmp eq i32 %t130, 14 %t132 = zext i1 %t131 to i32 %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then32, label %ifend34 then32: %t134 = load ptr, ptr %t0 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 4 %t136 = load ptr, ptr %t135 %t137 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t136, ptr %t137) %t138 = load ptr, ptr %t0 %t139 = getelementptr inbounds %Cmp_Node, ptr %t138, i32 0, i32 5 %t140 = load ptr, ptr %t139 %t141 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t140, ptr %t141) %t142 = load ptr, ptr %t0 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 6 %t144 = load ptr, ptr %t143 %t145 = load ptr, ptr %t1 %t146 = load ptr, ptr %t0 %t147 = getelementptr inbounds %Cmp_Node, ptr %t146, i32 0, i32 1 %t148 = load ptr, ptr %t147 %t149 = call ptr @lp_str_concat(ptr %t145, ptr %t148) %t150 = call ptr @lp_str_concat(ptr %t149, ptr @.str1053) call void @fn_priv_walk(ptr %t144, ptr %t150) br label %ret ifend34: %t151 = load ptr, ptr %t0 %t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 0 %t153 = load i32, ptr %t152 %t154 = icmp eq i32 %t153, 4 %t155 = zext i1 %t154 to i32 %t156 = icmp ne i32 %t155, 0 br i1 %t156, label %then35, label %ifend37 then35: %t157 = load ptr, ptr %t1 store ptr %t157, ptr %t158 store i32 0, ptr %t159 br label %wcond38 wcond38: %t160 = load i32, ptr %t159 %t161 = load ptr, ptr %t0 %t162 = getelementptr inbounds %Cmp_Node, ptr %t161, i32 0, i32 7 %t163 = load ptr, ptr %t162 %t164 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 1 %t165 = load i32, ptr %t164 %t166 = icmp slt i32 %t160, %t165 %t167 = zext i1 %t166 to i32 %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %wbody39, label %wend40 wbody39: %t169 = load ptr, ptr %t0 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 7 %t171 = load ptr, ptr %t170 %t172 = load i32, ptr %t159 %t173 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 0 %t174 = load ptr, ptr %t173 %t175 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 1 %t176 = load i32, ptr %t175 %t177 = icmp ult i32 %t172, %t176 br i1 %t177, label %ixok41, label %ixbad42 ixbad42: %t178 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t178, ptr @.fmt_bounds, ptr @.str1054, i32 %t172, i32 %t176) call void @exit(i32 1) unreachable ixok41: %t179 = getelementptr inbounds ptr, ptr %t174, i32 %t172 %t180 = load ptr, ptr %t179 %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 4 %t182 = load ptr, ptr %t181 %t183 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t182, ptr %t183) %t184 = load ptr, ptr %t0 %t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 7 %t186 = load ptr, ptr %t185 %t187 = load i32, ptr %t159 %t188 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 0 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 1 %t191 = load i32, ptr %t190 %t192 = icmp ult i32 %t187, %t191 br i1 %t192, label %ixok43, label %ixbad44 ixbad44: %t193 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t193, ptr @.fmt_bounds, ptr @.str1055, i32 %t187, i32 %t191) call void @exit(i32 1) unreachable ixok43: %t194 = getelementptr inbounds ptr, ptr %t189, i32 %t187 %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %Cmp_Node, ptr %t195, i32 0, i32 0 %t197 = load i32, ptr %t196 %t198 = icmp eq i32 %t197, 5 %t199 = zext i1 %t198 to i32 %t200 = icmp ne i32 %t199, 0 br i1 %t200, label %then45, label %ifend47 then45: %t201 = load ptr, ptr %t158 %t202 = load ptr, ptr %t0 %t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 7 %t204 = load ptr, ptr %t203 %t205 = load i32, ptr %t159 %t206 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 0 %t207 = load ptr, ptr %t206 %t208 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 1 %t209 = load i32, ptr %t208 %t210 = icmp ult i32 %t205, %t209 br i1 %t210, label %ixok48, label %ixbad49 ixbad49: %t211 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t211, ptr @.fmt_bounds, ptr @.str1056, i32 %t205, i32 %t209) call void @exit(i32 1) unreachable ixok48: %t212 = getelementptr inbounds ptr, ptr %t207, i32 %t205 %t213 = load ptr, ptr %t212 %t214 = getelementptr inbounds %Cmp_Node, ptr %t213, i32 0, i32 1 %t215 = load ptr, ptr %t214 %t216 = call ptr @lp_str_concat(ptr %t201, ptr %t215) %t217 = call ptr @lp_str_concat(ptr %t216, ptr @.str1057) store ptr %t217, ptr %t158 br label %ifend47 ifend47: %t218 = load i32, ptr %t159 %t219 = add i32 %t218, 1 store i32 %t219, ptr %t159 br label %wcond38 wend40: %t220 = load ptr, ptr %t0 %t221 = getelementptr inbounds %Cmp_Node, ptr %t220, i32 0, i32 4 %t222 = load ptr, ptr %t221 %t223 = load ptr, ptr %t158 call void @fn_priv_walk(ptr %t222, ptr %t223) br label %ret ifend37: %t224 = load ptr, ptr %t0 %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 4 %t226 = load ptr, ptr %t225 %t227 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t226, ptr %t227) %t228 = load ptr, ptr %t0 %t229 = getelementptr inbounds %Cmp_Node, ptr %t228, i32 0, i32 5 %t230 = load ptr, ptr %t229 %t231 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t230, ptr %t231) %t232 = load ptr, ptr %t0 %t233 = getelementptr inbounds %Cmp_Node, ptr %t232, i32 0, i32 6 %t234 = load ptr, ptr %t233 %t235 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t234, ptr %t235) %t236 = load ptr, ptr %t0 %t237 = load ptr, ptr %t1 call void @fn_priv_kids(ptr %t236, ptr %t237) br label %ret ret: ret void } define void @fn_priv_kids(ptr %arg_n, ptr %arg_sc) { entry: %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca i32 store ptr %arg_n, ptr %t0 store ptr %arg_sc, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = icmp eq ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 0, ptr %t8 br label %wcond3 wcond3: %t9 = load i32, ptr %t8 %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t9, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody4, label %wend5 wbody4: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t8 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok6, label %ixbad7 ixbad7: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str1058, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok6: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t1 call void @fn_priv_walk(ptr %t29, ptr %t30) %t31 = load i32, ptr %t8 %t32 = add i32 %t31, 1 store i32 %t32, ptr %t8 br label %wcond3 wend5: br label %ret ret: ret void } define void @fn_priv_walk_all(ptr %arg_xs) { entry: %t0 = alloca ptr %t5 = alloca i32 store ptr %arg_xs, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 0, ptr %t5 br label %wcond3 wcond3: %t6 = load i32, ptr %t5 %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t6, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody4, label %wend5 wbody4: %t13 = load ptr, ptr %t0 %t14 = load i32, ptr %t5 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok6, label %ixbad7 ixbad7: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str1059, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok6: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 call void @fn_priv_walk(ptr %t22, ptr @.str1060) %t23 = load i32, ptr %t5 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t5 br label %wcond3 wend5: br label %ret ret: ret void } define void @fn_priv_apply() { entry: %t0 = alloca i32 %t1 = alloca i32 %t28 = alloca ptr %t33 = alloca i32 %t34 = alloca i32 %t35 = alloca i32 %t36 = alloca i32 %t70 = alloca i32 %t83 = alloca ptr %t93 = alloca i32 %t161 = alloca ptr store i32 0, ptr %t0 br label %wcond0 wcond0: %t2 = load i32, ptr %t0 %t3 = load i32, ptr @g_g_prog_user_end %t4 = icmp slt i32 %t2, %t3 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t1 br i1 %t6, label %sc3, label %scend4 sc3: %t8 = load i32, ptr %t0 %t9 = load ptr, ptr @g_prog %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t8, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t1 br label %scend4 scend4: %t16 = load i32, ptr %t1 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr @g_prog %t19 = load i32, ptr %t0 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok5, label %ixbad6 ixbad6: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str1061, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok5: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = call i32 @fn_priv_group(i32 %t31) store i32 %t32, ptr %t33 %t37 = load i32, ptr %t33 %t38 = icmp sgt i32 %t37, 0 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t36 br i1 %t40, label %sc7, label %scend8 sc7: %t42 = load ptr, ptr %t28 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 10 %t44 = load i32, ptr %t43 %t45 = icmp ne i32 %t44, 1 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t36 br label %scend8 scend8: %t49 = load i32, ptr %t36 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t35 br i1 %t50, label %sc9, label %scend10 sc9: %t52 = load ptr, ptr %t28 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 1 %t54 = load ptr, ptr %t53 %t55 = icmp ne ptr %t54, null %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t35 br label %scend10 scend10: %t59 = load i32, ptr %t35 %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t34 br i1 %t60, label %sc11, label %scend12 sc11: %t62 = load ptr, ptr %t28 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 %t65 = call i32 @fn_priv_known(ptr %t64) %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t34 br label %scend12 scend12: %t68 = load i32, ptr %t34 %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then13, label %ifend15 then13: store i32 0, ptr %t70 %t71 = load i32, ptr %t33 %t72 = icmp eq i32 %t71, 2 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then16, label %ifend18 then16: store i32 1, ptr %t70 br label %ifend18 ifend18: %t75 = load ptr, ptr %t28 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 1 %t77 = load ptr, ptr %t76 %t78 = load ptr, ptr %t28 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 9 %t80 = load ptr, ptr %t79 %t81 = load i32, ptr %t70 %t82 = call ptr @fn_priv_find(ptr %t77, ptr %t80, i32 %t81) store ptr %t82, ptr %t83 %t84 = load ptr, ptr %t83 %t85 = icmp ne ptr %t84, null %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then19, label %ifend21 then19: %t88 = load ptr, ptr %t28 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 %t90 = load ptr, ptr %t83 store ptr %t90, ptr %t89 br label %ifend21 ifend21: br label %ifend15 ifend15: %t91 = load i32, ptr %t0 %t92 = add i32 %t91, 1 store i32 %t92, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %t0 br label %wcond22 wcond22: %t94 = load i32, ptr %t0 %t95 = load i32, ptr @g_g_prog_user_end %t96 = icmp slt i32 %t94, %t95 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t93 br i1 %t98, label %sc25, label %scend26 sc25: %t100 = load i32, ptr %t0 %t101 = load ptr, ptr @g_prog %t102 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 1 %t103 = load i32, ptr %t102 %t104 = icmp slt i32 %t100, %t103 %t105 = zext i1 %t104 to i32 %t106 = icmp ne i32 %t105, 0 %t107 = zext i1 %t106 to i32 store i32 %t107, ptr %t93 br label %scend26 scend26: %t108 = load i32, ptr %t93 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %wbody23, label %wend24 wbody23: %t110 = load ptr, ptr @g_prog %t111 = load i32, ptr %t0 %t112 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 %t115 = load i32, ptr %t114 %t116 = icmp ult i32 %t111, %t115 br i1 %t116, label %ixok27, label %ixbad28 ixbad28: %t117 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t117, ptr @.fmt_bounds, ptr @.str1062, i32 %t111, i32 %t115) call void @exit(i32 1) unreachable ixok27: %t118 = getelementptr inbounds ptr, ptr %t113, i32 %t111 %t119 = load ptr, ptr %t118 call void @fn_priv_walk(ptr %t119, ptr @.str1063) %t120 = load i32, ptr %t0 %t121 = add i32 %t120, 1 store i32 %t121, ptr %t0 br label %wcond22 wend24: %t122 = load ptr, ptr @g_g_tests call void @fn_priv_walk_all(ptr %t122) %t123 = load ptr, ptr @g_g_onlisten call void @fn_priv_walk_all(ptr %t123) %t124 = load ptr, ptr @g_g_onspawn call void @fn_priv_walk_all(ptr %t124) %t125 = load ptr, ptr @g_g_ondespawn call void @fn_priv_walk_all(ptr %t125) %t126 = load ptr, ptr @g_g_onattach call void @fn_priv_walk_all(ptr %t126) %t127 = load ptr, ptr @g_g_ondetach call void @fn_priv_walk_all(ptr %t127) %t128 = load ptr, ptr @g_g_onenable call void @fn_priv_walk_all(ptr %t128) %t129 = load ptr, ptr @g_g_ondisable call void @fn_priv_walk_all(ptr %t129) %t130 = load ptr, ptr @g_g_computed call void @fn_priv_walk_all(ptr %t130) %t131 = load ptr, ptr @g_g_scenes call void @fn_priv_walk_all(ptr %t131) %t132 = load ptr, ptr @g_g_events call void @fn_priv_walk_all(ptr %t132) store i32 0, ptr %t0 br label %wcond29 wcond29: %t133 = load i32, ptr %t0 %t134 = load ptr, ptr @g_g_al_target %t135 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 1 %t136 = load i32, ptr %t135 %t137 = icmp slt i32 %t133, %t136 %t138 = zext i1 %t137 to i32 %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %wbody30, label %wend31 wbody30: %t140 = load ptr, ptr @g_g_al_target %t141 = load i32, ptr %t0 %t142 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 1 %t145 = load i32, ptr %t144 %t146 = icmp ult i32 %t141, %t145 br i1 %t146, label %ixok32, label %ixbad33 ixbad33: %t147 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t147, ptr @.fmt_bounds, ptr @.str1064, i32 %t141, i32 %t145) call void @exit(i32 1) unreachable ixok32: %t148 = getelementptr inbounds ptr, ptr %t143, i32 %t141 %t149 = load ptr, ptr %t148 %t150 = load ptr, ptr @g_g_al_file %t151 = load i32, ptr %t0 %t152 = getelementptr inbounds %LSlice, ptr %t150, i32 0, i32 0 %t153 = load ptr, ptr %t152 %t154 = getelementptr inbounds %LSlice, ptr %t150, i32 0, i32 1 %t155 = load i32, ptr %t154 %t156 = icmp ult i32 %t151, %t155 br i1 %t156, label %ixok34, label %ixbad35 ixbad35: %t157 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t157, ptr @.fmt_bounds, ptr @.str1065, i32 %t151, i32 %t155) call void @exit(i32 1) unreachable ixok34: %t158 = getelementptr inbounds ptr, ptr %t153, i32 %t151 %t159 = load ptr, ptr %t158 %t160 = call ptr @fn_priv_find(ptr %t149, ptr %t159, i32 1) store ptr %t160, ptr %t161 %t162 = load ptr, ptr %t161 %t163 = icmp ne ptr %t162, null %t164 = zext i1 %t163 to i32 %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then36, label %ifend38 then36: %t166 = load ptr, ptr @g_g_al_target %t167 = load i32, ptr %t0 %t168 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 0 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 1 %t171 = load i32, ptr %t170 %t172 = icmp ult i32 %t167, %t171 br i1 %t172, label %ixok39, label %ixbad40 ixbad40: %t173 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t173, ptr @.fmt_bounds, ptr @.str1066, i32 %t167, i32 %t171) call void @exit(i32 1) unreachable ixok39: %t174 = getelementptr inbounds ptr, ptr %t169, i32 %t167 %t175 = load ptr, ptr %t161 store ptr %t175, ptr %t174 br label %ifend38 ifend38: %t176 = load i32, ptr %t0 %t177 = add i32 %t176, 1 store i32 %t177, ptr %t0 br label %wcond29 wend31: br label %ret ret: ret void } define i32 @fn_pt_in(ptr %arg_xs, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca i32 store ptr %arg_xs, ptr %t0 store ptr %arg_s, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: store i32 0, ptr %t6 br label %wcond3 wcond3: %t7 = load i32, ptr %t6 %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp slt i32 %t7, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %wbody4, label %wend5 wbody4: %t14 = load ptr, ptr %t0 %t15 = load i32, ptr %t6 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok6, label %ixbad7 ixbad7: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1067, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok6: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = load ptr, ptr %t1 %t25 = call i32 @lp_str_eq(ptr %t23, ptr %t24) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t27 = load i32, ptr %t6 %t28 = add i32 %t27, 1 store i32 %t28, ptr %t6 br label %wcond3 wend5: store i32 0, ptr %retval br label %ret ret: %t29 = load i32, ptr %retval ret i32 %t29 } define i32 @fn_pt_pinned(ptr %arg_d) { entry: %retval = alloca i32 %t0 = alloca ptr %t7 = alloca i32 %t24 = alloca i32 %t32 = alloca i32 %t91 = alloca ptr %t98 = alloca i32 store ptr %arg_d, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 11 %t3 = load ptr, ptr %t2 %t4 = icmp ne ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store i32 1, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr @g_g_cm_name %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1 %t11 = load ptr, ptr %t10 %t12 = call i32 @fn_pt_in(ptr %t8, ptr %t11) %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t7 br i1 %t13, label %scend4, label %sc3 sc3: %t15 = load ptr, ptr @g_g_vw_name %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 %t19 = call i32 @fn_pt_in(ptr %t15, ptr %t18) %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t7 br label %scend4 scend4: %t22 = load i32, ptr %t7 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: store i32 0, ptr %t24 br label %wcond8 wcond8: %t25 = load i32, ptr %t24 %t26 = load ptr, ptr @g_g_gi_args %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp slt i32 %t25, %t28 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %wbody9, label %wend10 wbody9: %t33 = load ptr, ptr @g_g_gi_args %t34 = load i32, ptr %t24 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 %t34, %t38 br i1 %t39, label %ixok11, label %ixbad12 ixbad12: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str1069, i32 %t34, i32 %t38) call void @exit(i32 1) unreachable ixok11: %t41 = getelementptr inbounds ptr, ptr %t36, i32 %t34 %t42 = load ptr, ptr %t41 %t43 = call ptr @lp_str_concat(ptr @.str1068, ptr %t42) %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str1070) %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = call ptr @lp_str_concat(ptr @.str1071, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str1072) %t50 = call i32 @fn_has_sub(ptr %t44, ptr %t49) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t32 br i1 %t51, label %scend14, label %sc13 sc13: %t53 = load ptr, ptr @g_g_gi_args %t54 = load i32, ptr %t24 %t55 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t58 = load i32, ptr %t57 %t59 = icmp ult i32 %t54, %t58 br i1 %t59, label %ixok15, label %ixbad16 ixbad16: %t60 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t60, ptr @.fmt_bounds, ptr @.str1073, i32 %t54, i32 %t58) call void @exit(i32 1) unreachable ixok15: %t61 = getelementptr inbounds ptr, ptr %t56, i32 %t54 %t62 = load ptr, ptr %t61 %t63 = load ptr, ptr %t0 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 1 %t65 = load ptr, ptr %t64 %t66 = call ptr @lp_str_concat(ptr @.str1074, ptr %t65) %t67 = call i32 @fn_has_sub(ptr %t62, ptr %t66) %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t32 br label %scend14 scend14: %t70 = load i32, ptr %t32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then17, label %ifend19 then17: store i32 1, ptr %retval br label %ret ifend19: %t72 = load i32, ptr %t24 %t73 = add i32 %t72, 1 store i32 %t73, ptr %t24 br label %wcond8 wend10: store i32 0, ptr %t24 br label %wcond20 wcond20: %t74 = load i32, ptr %t24 %t75 = load ptr, ptr @g_prog %t76 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t77 = load i32, ptr %t76 %t78 = icmp slt i32 %t74, %t77 %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %wbody21, label %wend22 wbody21: %t81 = load ptr, ptr @g_prog %t82 = load i32, ptr %t24 %t83 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 0 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 1 %t86 = load i32, ptr %t85 %t87 = icmp ult i32 %t82, %t86 br i1 %t87, label %ixok23, label %ixbad24 ixbad24: %t88 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t88, ptr @.fmt_bounds, ptr @.str1075, i32 %t82, i32 %t86) call void @exit(i32 1) unreachable ixok23: %t89 = getelementptr inbounds ptr, ptr %t84, i32 %t82 %t90 = load ptr, ptr %t89 store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 0 %t94 = load i32, ptr %t93 %t95 = icmp eq i32 %t94, 10 %t96 = zext i1 %t95 to i32 %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then25, label %ifend27 then25: store i32 0, ptr %t98 br label %wcond28 wcond28: %t99 = load i32, ptr %t98 %t100 = load ptr, ptr %t91 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 7 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t104 = load i32, ptr %t103 %t105 = icmp slt i32 %t99, %t104 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %wbody29, label %wend30 wbody29: %t108 = load ptr, ptr %t91 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 7 %t110 = load ptr, ptr %t109 %t111 = load i32, ptr %t98 %t112 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 %t115 = load i32, ptr %t114 %t116 = icmp ult i32 %t111, %t115 br i1 %t116, label %ixok31, label %ixbad32 ixbad32: %t117 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t117, ptr @.fmt_bounds, ptr @.str1076, i32 %t111, i32 %t115) call void @exit(i32 1) unreachable ixok31: %t118 = getelementptr inbounds ptr, ptr %t113, i32 %t111 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %Cmp_Node, ptr %t119, i32 0, i32 1 %t121 = load ptr, ptr %t120 %t122 = load ptr, ptr %t0 %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 1 %t124 = load ptr, ptr %t123 %t125 = call i32 @lp_str_eq(ptr %t121, ptr %t124) %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then33, label %ifend35 then33: store i32 1, ptr %retval br label %ret ifend35: %t127 = load i32, ptr %t98 %t128 = add i32 %t127, 1 store i32 %t128, ptr %t98 br label %wcond28 wend30: br label %ifend27 ifend27: %t129 = load i32, ptr %t24 %t130 = add i32 %t129, 1 store i32 %t130, ptr %t24 br label %wcond20 wend22: store i32 0, ptr %retval br label %ret ret: %t131 = load i32, ptr %retval ret i32 %t131 } define i32 @fn_pt_is_record(i32 %arg_k) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 store i32 %arg_k, ptr %t0 %t2 = load i32, ptr %t0 %t3 = icmp eq i32 %t2, 8 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load i32, ptr %t0 %t8 = icmp eq i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t1 br label %scend1 scend1: %t12 = load i32, ptr %t1 store i32 %t12, ptr %retval br label %ret ret: %t13 = load i32, ptr %retval ret i32 %t13 } define void @fn_pt_records() { entry: %t0 = alloca i32 %t1 = alloca i32 %t28 = alloca ptr %t33 = alloca ptr %t34 = alloca i32 %t35 = alloca i32 %t36 = alloca i32 %t71 = alloca i32 %t72 = alloca i32 %t73 = alloca i32 %t99 = alloca ptr %t100 = alloca i32 %t101 = alloca i32 %t102 = alloca i32 %t142 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t2 = load i32, ptr %t0 %t3 = load i32, ptr @g_g_prog_user_end %t4 = icmp slt i32 %t2, %t3 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t1 br i1 %t6, label %sc3, label %scend4 sc3: %t8 = load i32, ptr %t0 %t9 = load ptr, ptr @g_prog %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t8, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t1 br label %scend4 scend4: %t16 = load i32, ptr %t1 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr @g_prog %t19 = load i32, ptr %t0 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok5, label %ixbad6 ixbad6: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str1077, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok5: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 9 %t31 = load ptr, ptr %t30 %t32 = call ptr @fn_module_of(ptr %t31) store ptr %t32, ptr %t33 %t37 = load ptr, ptr %t28 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 0 %t39 = load i32, ptr %t38 %t40 = call i32 @fn_pt_is_record(i32 %t39) %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t36 br i1 %t41, label %sc7, label %scend8 sc7: %t43 = load ptr, ptr %t28 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 10 %t45 = load i32, ptr %t44 %t46 = icmp ne i32 %t45, 1 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t36 br label %scend8 scend8: %t50 = load i32, ptr %t36 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t35 br i1 %t51, label %sc9, label %scend10 sc9: %t53 = load ptr, ptr %t33 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str1078) %t55 = icmp eq i32 %t54, 0 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t35 br label %scend10 scend10: %t59 = load i32, ptr %t35 %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t34 br i1 %t60, label %sc11, label %scend12 sc11: %t62 = load ptr, ptr %t28 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 %t65 = icmp ne ptr %t64, null %t66 = zext i1 %t65 to i32 %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t34 br label %scend12 scend12: %t69 = load i32, ptr %t34 %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then13, label %ifend15 then13: store i32 0, ptr %t71 store i32 0, ptr %t72 br label %wcond16 wcond16: %t74 = load i32, ptr %t72 %t75 = load ptr, ptr @g_prog %t76 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t77 = load i32, ptr %t76 %t78 = icmp slt i32 %t74, %t77 %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 %t81 = zext i1 %t80 to i32 store i32 %t81, ptr %t73 br i1 %t80, label %sc19, label %scend20 sc19: %t82 = load i32, ptr %t71 %t83 = icmp eq i32 %t82, 0 %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t73 br label %scend20 scend20: %t87 = load i32, ptr %t73 %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %wbody17, label %wend18 wbody17: %t89 = load ptr, ptr @g_prog %t90 = load i32, ptr %t72 %t91 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1 %t94 = load i32, ptr %t93 %t95 = icmp ult i32 %t90, %t94 br i1 %t95, label %ixok21, label %ixbad22 ixbad22: %t96 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t96, ptr @.fmt_bounds, ptr @.str1079, i32 %t90, i32 %t94) call void @exit(i32 1) unreachable ixok21: %t97 = getelementptr inbounds ptr, ptr %t92, i32 %t90 %t98 = load ptr, ptr %t97 store ptr %t98, ptr %t99 %t103 = load i32, ptr %t72 %t104 = load i32, ptr %t0 %t105 = icmp ne i32 %t103, %t104 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 %t108 = zext i1 %t107 to i32 store i32 %t108, ptr %t102 br i1 %t107, label %sc23, label %scend24 sc23: %t109 = load ptr, ptr %t99 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 0 %t111 = load i32, ptr %t110 %t112 = call i32 @fn_pt_is_record(i32 %t111) %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t102 br label %scend24 scend24: %t115 = load i32, ptr %t102 %t116 = icmp ne i32 %t115, 0 %t117 = zext i1 %t116 to i32 store i32 %t117, ptr %t101 br i1 %t116, label %sc25, label %scend26 sc25: %t118 = load ptr, ptr %t99 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 1 %t120 = load ptr, ptr %t119 %t121 = load ptr, ptr %t28 %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 1 %t123 = load ptr, ptr %t122 %t124 = call i32 @lp_str_eq(ptr %t120, ptr %t123) %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t101 br label %scend26 scend26: %t127 = load i32, ptr %t101 %t128 = icmp ne i32 %t127, 0 %t129 = zext i1 %t128 to i32 store i32 %t129, ptr %t100 br i1 %t128, label %sc27, label %scend28 sc27: %t130 = load i32, ptr %t72 %t131 = call ptr @fn_priv_mod(i32 %t130) %t132 = load ptr, ptr %t33 %t133 = call i32 @lp_str_eq(ptr %t131, ptr %t132) %t134 = icmp eq i32 %t133, 0 %t135 = zext i1 %t134 to i32 %t136 = icmp ne i32 %t135, 0 %t137 = zext i1 %t136 to i32 store i32 %t137, ptr %t100 br label %scend28 scend28: %t138 = load i32, ptr %t100 %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then29, label %ifend31 then29: store i32 1, ptr %t71 br label %ifend31 ifend31: %t140 = load i32, ptr %t72 %t141 = add i32 %t140, 1 store i32 %t141, ptr %t72 br label %wcond16 wend18: %t143 = load i32, ptr %t71 %t144 = icmp ne i32 %t143, 0 %t145 = zext i1 %t144 to i32 store i32 %t145, ptr %t142 br i1 %t144, label %sc32, label %scend33 sc32: %t146 = load ptr, ptr %t28 %t147 = call i32 @fn_pt_pinned(ptr %t146) %t148 = icmp eq i32 %t147, 0 %t149 = zext i1 %t148 to i32 %t150 = icmp ne i32 %t149, 0 %t151 = zext i1 %t150 to i32 store i32 %t151, ptr %t142 br label %scend33 scend33: %t152 = load i32, ptr %t142 %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then34, label %ifend36 then34: %t154 = load ptr, ptr @g_g_rt_mod %t155 = load ptr, ptr %t33 %t156 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 1 %t157 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 2 %t158 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 0 %t159 = load i32, ptr %t156 %t160 = load i32, ptr %t157 %t161 = icmp sge i32 %t159, %t160 br i1 %t161, label %grow37, label %put38 grow37: %t162 = mul i32 %t160, 2 %t163 = icmp eq i32 %t160, 0 %t164 = select i1 %t163, i32 8, i32 %t162 %t165 = getelementptr ptr, ptr null, i32 1 %t166 = ptrtoint ptr %t165 to i64 %t167 = zext i32 %t164 to i64 %t168 = mul i64 %t167, %t166 %t169 = load ptr, ptr %t158 %t170 = call ptr @realloc(ptr %t169, i64 %t168) store ptr %t170, ptr %t158 store i32 %t164, ptr %t157 br label %put38 put38: %t171 = load ptr, ptr %t158 %t172 = getelementptr inbounds ptr, ptr %t171, i32 %t159 store ptr %t155, ptr %t172 %t173 = add i32 %t159, 1 store i32 %t173, ptr %t156 %t174 = load ptr, ptr @g_g_rt_old %t175 = load ptr, ptr %t28 %t176 = getelementptr inbounds %Cmp_Node, ptr %t175, i32 0, i32 1 %t177 = load ptr, ptr %t176 %t178 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 1 %t179 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 2 %t180 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 0 %t181 = load i32, ptr %t178 %t182 = load i32, ptr %t179 %t183 = icmp sge i32 %t181, %t182 br i1 %t183, label %grow39, label %put40 grow39: %t184 = mul i32 %t182, 2 %t185 = icmp eq i32 %t182, 0 %t186 = select i1 %t185, i32 8, i32 %t184 %t187 = getelementptr ptr, ptr null, i32 1 %t188 = ptrtoint ptr %t187 to i64 %t189 = zext i32 %t186 to i64 %t190 = mul i64 %t189, %t188 %t191 = load ptr, ptr %t180 %t192 = call ptr @realloc(ptr %t191, i64 %t190) store ptr %t192, ptr %t180 store i32 %t186, ptr %t179 br label %put40 put40: %t193 = load ptr, ptr %t180 %t194 = getelementptr inbounds ptr, ptr %t193, i32 %t181 store ptr %t177, ptr %t194 %t195 = add i32 %t181, 1 store i32 %t195, ptr %t178 %t196 = load ptr, ptr @g_g_rt_new %t197 = load ptr, ptr %t28 %t198 = getelementptr inbounds %Cmp_Node, ptr %t197, i32 0, i32 1 %t199 = load ptr, ptr %t198 %t200 = call ptr @lp_str_concat(ptr %t199, ptr @.str1080) %t201 = load ptr, ptr %t33 %t202 = call ptr @lp_str_concat(ptr %t200, ptr %t201) %t203 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 1 %t204 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 2 %t205 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 0 %t206 = load i32, ptr %t203 %t207 = load i32, ptr %t204 %t208 = icmp sge i32 %t206, %t207 br i1 %t208, label %grow41, label %put42 grow41: %t209 = mul i32 %t207, 2 %t210 = icmp eq i32 %t207, 0 %t211 = select i1 %t210, i32 8, i32 %t209 %t212 = getelementptr ptr, ptr null, i32 1 %t213 = ptrtoint ptr %t212 to i64 %t214 = zext i32 %t211 to i64 %t215 = mul i64 %t214, %t213 %t216 = load ptr, ptr %t205 %t217 = call ptr @realloc(ptr %t216, i64 %t215) store ptr %t217, ptr %t205 store i32 %t211, ptr %t204 br label %put42 put42: %t218 = load ptr, ptr %t205 %t219 = getelementptr inbounds ptr, ptr %t218, i32 %t206 store ptr %t202, ptr %t219 %t220 = add i32 %t206, 1 store i32 %t220, ptr %t203 br label %ifend36 ifend36: br label %ifend15 ifend15: %t221 = load i32, ptr %t0 %t222 = add i32 %t221, 1 store i32 %t222, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_pt_events() { entry: %t0 = alloca i32 %t18 = alloca ptr %t19 = alloca ptr %t30 = alloca i32 %t46 = alloca i32 %t47 = alloca i32 %t65 = alloca ptr %t66 = alloca ptr %t77 = alloca i32 %t78 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_events %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_events %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str1081, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 store ptr @.str1082, ptr %t19 %t20 = load ptr, ptr %t18 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 9 %t22 = load ptr, ptr %t21 %t23 = icmp ne ptr %t22, null %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: %t26 = load ptr, ptr %t18 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 9 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_module_of(ptr %t28) store ptr %t29, ptr %t19 br label %ifend7 ifend7: %t31 = load ptr, ptr %t18 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 10 %t33 = load i32, ptr %t32 %t34 = icmp ne i32 %t33, 1 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t30 br i1 %t36, label %sc8, label %scend9 sc8: %t38 = load ptr, ptr %t19 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str1083) %t40 = icmp eq i32 %t39, 0 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t30 br label %scend9 scend9: %t44 = load i32, ptr %t30 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then10, label %ifend12 then10: store i32 0, ptr %t46 store i32 0, ptr %t47 br label %wcond13 wcond13: %t48 = load i32, ptr %t47 %t49 = load ptr, ptr @g_g_events %t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp slt i32 %t48, %t51 %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %wbody14, label %wend15 wbody14: %t55 = load ptr, ptr @g_g_events %t56 = load i32, ptr %t47 %t57 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 1 %t60 = load i32, ptr %t59 %t61 = icmp ult i32 %t56, %t60 br i1 %t61, label %ixok16, label %ixbad17 ixbad17: %t62 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t62, ptr @.fmt_bounds, ptr @.str1084, i32 %t56, i32 %t60) call void @exit(i32 1) unreachable ixok16: %t63 = getelementptr inbounds ptr, ptr %t58, i32 %t56 %t64 = load ptr, ptr %t63 store ptr %t64, ptr %t65 store ptr @.str1085, ptr %t66 %t67 = load ptr, ptr %t65 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 9 %t69 = load ptr, ptr %t68 %t70 = icmp ne ptr %t69, null %t71 = zext i1 %t70 to i32 %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then18, label %ifend20 then18: %t73 = load ptr, ptr %t65 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 9 %t75 = load ptr, ptr %t74 %t76 = call ptr @fn_module_of(ptr %t75) store ptr %t76, ptr %t66 br label %ifend20 ifend20: %t79 = load i32, ptr %t47 %t80 = load i32, ptr %t0 %t81 = icmp ne i32 %t79, %t80 %t82 = zext i1 %t81 to i32 %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t78 br i1 %t83, label %sc21, label %scend22 sc21: %t85 = load ptr, ptr %t65 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 1 %t87 = load ptr, ptr %t86 %t88 = load ptr, ptr %t18 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 %t90 = load ptr, ptr %t89 %t91 = call i32 @lp_str_eq(ptr %t87, ptr %t90) %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t78 br label %scend22 scend22: %t94 = load i32, ptr %t78 %t95 = icmp ne i32 %t94, 0 %t96 = zext i1 %t95 to i32 store i32 %t96, ptr %t77 br i1 %t95, label %sc23, label %scend24 sc23: %t97 = load ptr, ptr %t66 %t98 = load ptr, ptr %t19 %t99 = call i32 @lp_str_eq(ptr %t97, ptr %t98) %t100 = icmp eq i32 %t99, 0 %t101 = zext i1 %t100 to i32 %t102 = icmp ne i32 %t101, 0 %t103 = zext i1 %t102 to i32 store i32 %t103, ptr %t77 br label %scend24 scend24: %t104 = load i32, ptr %t77 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then25, label %ifend27 then25: store i32 1, ptr %t46 br label %ifend27 ifend27: %t106 = load i32, ptr %t47 %t107 = add i32 %t106, 1 store i32 %t107, ptr %t47 br label %wcond13 wend15: %t108 = load i32, ptr %t46 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then28, label %ifend30 then28: %t110 = load ptr, ptr @g_g_re_mod %t111 = load ptr, ptr %t19 %t112 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 %t113 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 2 %t114 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 %t115 = load i32, ptr %t112 %t116 = load i32, ptr %t113 %t117 = icmp sge i32 %t115, %t116 br i1 %t117, label %grow31, label %put32 grow31: %t118 = mul i32 %t116, 2 %t119 = icmp eq i32 %t116, 0 %t120 = select i1 %t119, i32 8, i32 %t118 %t121 = getelementptr ptr, ptr null, i32 1 %t122 = ptrtoint ptr %t121 to i64 %t123 = zext i32 %t120 to i64 %t124 = mul i64 %t123, %t122 %t125 = load ptr, ptr %t114 %t126 = call ptr @realloc(ptr %t125, i64 %t124) store ptr %t126, ptr %t114 store i32 %t120, ptr %t113 br label %put32 put32: %t127 = load ptr, ptr %t114 %t128 = getelementptr inbounds ptr, ptr %t127, i32 %t115 store ptr %t111, ptr %t128 %t129 = add i32 %t115, 1 store i32 %t129, ptr %t112 %t130 = load ptr, ptr @g_g_re_old %t131 = load ptr, ptr %t18 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 1 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t135 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 2 %t136 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t137 = load i32, ptr %t134 %t138 = load i32, ptr %t135 %t139 = icmp sge i32 %t137, %t138 br i1 %t139, label %grow33, label %put34 grow33: %t140 = mul i32 %t138, 2 %t141 = icmp eq i32 %t138, 0 %t142 = select i1 %t141, i32 8, i32 %t140 %t143 = getelementptr ptr, ptr null, i32 1 %t144 = ptrtoint ptr %t143 to i64 %t145 = zext i32 %t142 to i64 %t146 = mul i64 %t145, %t144 %t147 = load ptr, ptr %t136 %t148 = call ptr @realloc(ptr %t147, i64 %t146) store ptr %t148, ptr %t136 store i32 %t142, ptr %t135 br label %put34 put34: %t149 = load ptr, ptr %t136 %t150 = getelementptr inbounds ptr, ptr %t149, i32 %t137 store ptr %t133, ptr %t150 %t151 = add i32 %t137, 1 store i32 %t151, ptr %t134 %t152 = load ptr, ptr @g_g_re_new %t153 = load ptr, ptr %t18 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 1 %t155 = load ptr, ptr %t154 %t156 = call ptr @lp_str_concat(ptr %t155, ptr @.str1086) %t157 = load ptr, ptr %t19 %t158 = call ptr @lp_str_concat(ptr %t156, ptr %t157) %t159 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 1 %t160 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 2 %t161 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 0 %t162 = load i32, ptr %t159 %t163 = load i32, ptr %t160 %t164 = icmp sge i32 %t162, %t163 br i1 %t164, label %grow35, label %put36 grow35: %t165 = mul i32 %t163, 2 %t166 = icmp eq i32 %t163, 0 %t167 = select i1 %t166, i32 8, i32 %t165 %t168 = getelementptr ptr, ptr null, i32 1 %t169 = ptrtoint ptr %t168 to i64 %t170 = zext i32 %t167 to i64 %t171 = mul i64 %t170, %t169 %t172 = load ptr, ptr %t161 %t173 = call ptr @realloc(ptr %t172, i64 %t171) store ptr %t173, ptr %t161 store i32 %t167, ptr %t160 br label %put36 put36: %t174 = load ptr, ptr %t161 %t175 = getelementptr inbounds ptr, ptr %t174, i32 %t162 store ptr %t158, ptr %t175 %t176 = add i32 %t162, 1 store i32 %t176, ptr %t159 br label %ifend30 ifend30: br label %ifend12 ifend12: %t177 = load i32, ptr %t0 %t178 = add i32 %t177, 1 store i32 %t178, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define i32 @fn_pt_id_ch(i32 %arg_c) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t18 = alloca i32 %t35 = alloca i32 store i32 %arg_c, ptr %t0 %t5 = load i32, ptr %t0 %t6 = icmp sge i32 %t5, 97 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t4 br i1 %t8, label %sc0, label %scend1 sc0: %t10 = load i32, ptr %t0 %t11 = icmp sle i32 %t10, 122 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t4 br label %scend1 scend1: %t15 = load i32, ptr %t4 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t3 br i1 %t16, label %scend3, label %sc2 sc2: %t19 = load i32, ptr %t0 %t20 = icmp sge i32 %t19, 65 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t18 br i1 %t22, label %sc4, label %scend5 sc4: %t24 = load i32, ptr %t0 %t25 = icmp sle i32 %t24, 90 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t18 br label %scend5 scend5: %t29 = load i32, ptr %t18 %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t3 br label %scend3 scend3: %t32 = load i32, ptr %t3 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t2 br i1 %t33, label %scend7, label %sc6 sc6: %t36 = load i32, ptr %t0 %t37 = icmp sge i32 %t36, 48 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t35 br i1 %t39, label %sc8, label %scend9 sc8: %t41 = load i32, ptr %t0 %t42 = icmp sle i32 %t41, 57 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t35 br label %scend9 scend9: %t46 = load i32, ptr %t35 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t2 br label %scend7 scend7: %t49 = load i32, ptr %t2 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t1 br i1 %t50, label %scend11, label %sc10 sc10: %t52 = load i32, ptr %t0 %t53 = icmp eq i32 %t52, 95 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t1 br label %scend11 scend11: %t57 = load i32, ptr %t1 store i32 %t57, ptr %retval br label %ret ret: %t58 = load i32, ptr %retval ret i32 %t58 } define ptr @fn_pt_rewrite(ptr %arg_t, ptr %arg_old, ptr %arg_nw) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t10 = alloca ptr %t11 = alloca i32 %t12 = alloca i32 %t16 = alloca i32 %t22 = alloca i32 %t41 = alloca i32 store ptr %arg_t, ptr %t0 store ptr %arg_old, ptr %t1 store ptr %arg_nw, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = load ptr, ptr %t1 %t5 = call i32 @fn_has_sub(ptr %t3, ptr %t4) %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t0 store ptr %t9, ptr %retval br label %ret ifend2: store ptr @.str1087, ptr %t10 store i32 0, ptr %t11 store i32 0, ptr %t12 %t13 = load ptr, ptr %t0 %t14 = call i64 @strlen(ptr %t13) %t15 = trunc i64 %t14 to i32 store i32 %t15, ptr %t16 br label %wcond3 wcond3: %t17 = load i32, ptr %t12 %t18 = load i32, ptr %t16 %t19 = icmp sle i32 %t17, %t18 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %wbody4, label %wend5 wbody4: %t23 = load i32, ptr %t12 %t24 = load i32, ptr %t16 %t25 = icmp eq i32 %t23, %t24 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t22 br i1 %t27, label %scend7, label %sc6 sc6: %t29 = load ptr, ptr %t0 %t30 = load i32, ptr %t12 %t31 = getelementptr inbounds i8, ptr %t29, i32 %t30 %t32 = load i8, ptr %t31 %t33 = zext i8 %t32 to i32 %t34 = call i32 @fn_pt_id_ch(i32 %t33) %t35 = icmp eq i32 %t34, 0 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t22 br label %scend7 scend7: %t39 = load i32, ptr %t22 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then8, label %ifend10 then8: %t42 = load i32, ptr %t12 %t43 = load i32, ptr %t11 %t44 = icmp sgt i32 %t42, %t43 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t41 br i1 %t46, label %sc11, label %scend12 sc11: %t48 = load ptr, ptr %t0 %t49 = load i32, ptr %t11 %t50 = load i32, ptr %t12 %t51 = call ptr @lp_str_slice(ptr %t48, i32 %t49, i32 %t50) %t52 = load ptr, ptr %t1 %t53 = call i32 @lp_str_eq(ptr %t51, ptr %t52) %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t41 br label %scend12 scend12: %t56 = load i32, ptr %t41 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then13, label %else14 then13: %t58 = load ptr, ptr %t10 %t59 = load ptr, ptr %t2 %t60 = call ptr @lp_str_concat(ptr %t58, ptr %t59) store ptr %t60, ptr %t10 br label %ifend15 else14: %t61 = load ptr, ptr %t10 %t62 = load ptr, ptr %t0 %t63 = load i32, ptr %t11 %t64 = load i32, ptr %t12 %t65 = call ptr @lp_str_slice(ptr %t62, i32 %t63, i32 %t64) %t66 = call ptr @lp_str_concat(ptr %t61, ptr %t65) store ptr %t66, ptr %t10 br label %ifend15 ifend15: %t67 = load i32, ptr %t12 %t68 = load i32, ptr %t16 %t69 = icmp slt i32 %t67, %t68 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then16, label %ifend18 then16: %t72 = load ptr, ptr %t10 %t73 = load ptr, ptr %t0 %t74 = load i32, ptr %t12 %t75 = load i32, ptr %t12 %t76 = add i32 %t75, 1 %t77 = call ptr @lp_str_slice(ptr %t73, i32 %t74, i32 %t76) %t78 = call ptr @lp_str_concat(ptr %t72, ptr %t77) store ptr %t78, ptr %t10 br label %ifend18 ifend18: %t79 = load i32, ptr %t12 %t80 = add i32 %t79, 1 store i32 %t80, ptr %t11 br label %ifend10 ifend10: %t81 = load i32, ptr %t12 %t82 = add i32 %t81, 1 store i32 %t82, ptr %t12 br label %wcond3 wend5: %t83 = load ptr, ptr %t10 store ptr %t83, ptr %retval br label %ret ret: %t84 = load ptr, ptr %retval ret ptr %t84 } define ptr @fn_pt_ty(ptr %arg_t, ptr %arg_f) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t17 = alloca ptr %t18 = alloca ptr %t19 = alloca i32 store ptr %arg_t, ptr %t0 store ptr %arg_f, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t2 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t1 %t9 = icmp eq ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t2 br label %scend1 scend1: %t13 = load i32, ptr %t2 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then2, label %ifend4 then2: %t15 = load ptr, ptr %t0 store ptr %t15, ptr %retval br label %ret ifend4: %t16 = load ptr, ptr %t0 store ptr %t16, ptr %t17 store ptr null, ptr %t18 store i32 0, ptr %t19 br label %wcond5 wcond5: %t20 = load i32, ptr %t19 %t21 = load ptr, ptr @g_g_rt_old %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp slt i32 %t20, %t23 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %wbody6, label %wend7 wbody6: %t27 = load ptr, ptr %t17 %t28 = load ptr, ptr @g_g_rt_old %t29 = load i32, ptr %t19 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok8, label %ixbad9 ixbad9: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str1088, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok8: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 %t38 = call i32 @fn_has_sub(ptr %t27, ptr %t37) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then10, label %ifend12 then10: %t40 = load ptr, ptr %t18 %t41 = icmp eq ptr %t40, null %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then13, label %ifend15 then13: %t44 = load ptr, ptr %t1 %t45 = call ptr @fn_module_of(ptr %t44) store ptr %t45, ptr %t18 br label %ifend15 ifend15: %t46 = load ptr, ptr %t18 %t47 = load ptr, ptr @g_g_rt_mod %t48 = load i32, ptr %t19 %t49 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 %t48, %t52 br i1 %t53, label %ixok16, label %ixbad17 ixbad17: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str1089, i32 %t48, i32 %t52) call void @exit(i32 1) unreachable ixok16: %t55 = getelementptr inbounds ptr, ptr %t50, i32 %t48 %t56 = load ptr, ptr %t55 %t57 = call i32 @lp_str_eq(ptr %t46, ptr %t56) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then18, label %ifend20 then18: %t59 = load ptr, ptr %t17 %t60 = load ptr, ptr @g_g_rt_old %t61 = load i32, ptr %t19 %t62 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ult i32 %t61, %t65 br i1 %t66, label %ixok21, label %ixbad22 ixbad22: %t67 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t67, ptr @.fmt_bounds, ptr @.str1090, i32 %t61, i32 %t65) call void @exit(i32 1) unreachable ixok21: %t68 = getelementptr inbounds ptr, ptr %t63, i32 %t61 %t69 = load ptr, ptr %t68 %t70 = load ptr, ptr @g_g_rt_new %t71 = load i32, ptr %t19 %t72 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 0 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 1 %t75 = load i32, ptr %t74 %t76 = icmp ult i32 %t71, %t75 br i1 %t76, label %ixok23, label %ixbad24 ixbad24: %t77 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t77, ptr @.fmt_bounds, ptr @.str1091, i32 %t71, i32 %t75) call void @exit(i32 1) unreachable ixok23: %t78 = getelementptr inbounds ptr, ptr %t73, i32 %t71 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_pt_rewrite(ptr %t59, ptr %t69, ptr %t79) store ptr %t80, ptr %t17 br label %ifend20 ifend20: br label %ifend12 ifend12: %t81 = load i32, ptr %t19 %t82 = add i32 %t81, 1 store i32 %t82, ptr %t19 br label %wcond5 wend7: %t83 = load ptr, ptr %t17 store ptr %t83, ptr %retval br label %ret ret: %t84 = load ptr, ptr %retval ret ptr %t84 } define ptr @fn_pt_event(ptr %arg_s, ptr %arg_f) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t16 = alloca i32 %t24 = alloca i32 store ptr %arg_s, ptr %t0 store ptr %arg_f, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t2 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t1 %t9 = icmp eq ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t2 br label %scend1 scend1: %t13 = load i32, ptr %t2 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then2, label %ifend4 then2: %t15 = load ptr, ptr %t0 store ptr %t15, ptr %retval br label %ret ifend4: store i32 0, ptr %t16 br label %wcond5 wcond5: %t17 = load i32, ptr %t16 %t18 = load ptr, ptr @g_g_re_old %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp slt i32 %t17, %t20 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %wbody6, label %wend7 wbody6: %t25 = load ptr, ptr @g_g_re_old %t26 = load i32, ptr %t16 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok8, label %ixbad9 ixbad9: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str1092, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok8: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t34, ptr %t35) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t24 br i1 %t37, label %sc10, label %scend11 sc10: %t39 = load ptr, ptr %t1 %t40 = call ptr @fn_module_of(ptr %t39) %t41 = load ptr, ptr @g_g_re_mod %t42 = load i32, ptr %t16 %t43 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 1 %t46 = load i32, ptr %t45 %t47 = icmp ult i32 %t42, %t46 br i1 %t47, label %ixok12, label %ixbad13 ixbad13: %t48 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t48, ptr @.fmt_bounds, ptr @.str1093, i32 %t42, i32 %t46) call void @exit(i32 1) unreachable ixok12: %t49 = getelementptr inbounds ptr, ptr %t44, i32 %t42 %t50 = load ptr, ptr %t49 %t51 = call i32 @lp_str_eq(ptr %t40, ptr %t50) %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t24 br label %scend11 scend11: %t54 = load i32, ptr %t24 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then14, label %ifend16 then14: %t56 = load ptr, ptr @g_g_re_new %t57 = load i32, ptr %t16 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 %t57, %t61 br i1 %t62, label %ixok17, label %ixbad18 ixbad18: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str1094, i32 %t57, i32 %t61) call void @exit(i32 1) unreachable ixok17: %t64 = getelementptr inbounds ptr, ptr %t59, i32 %t57 %t65 = load ptr, ptr %t64 store ptr %t65, ptr %retval br label %ret ifend16: %t66 = load i32, ptr %t16 %t67 = add i32 %t66, 1 store i32 %t67, ptr %t16 br label %wcond5 wend7: %t68 = load ptr, ptr %t0 store ptr %t68, ptr %retval br label %ret ret: %t69 = load ptr, ptr %retval ret ptr %t69 } define void @fn_pt_walk(ptr %arg_n) { entry: %t0 = alloca ptr %t5 = alloca i32 %t31 = alloca i32 %t32 = alloca i32 %t68 = alloca i32 %t109 = alloca i32 store ptr %arg_n, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 3 %t8 = load ptr, ptr %t7 %t9 = icmp ne ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t5 br i1 %t11, label %sc3, label %scend4 sc3: %t13 = load ptr, ptr @g_g_rt_old %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp sgt i32 %t15, 0 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t5 br label %scend4 scend4: %t20 = load i32, ptr %t5 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 3 %t24 = load ptr, ptr %t0 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 3 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 9 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_pt_ty(ptr %t26, ptr %t29) store ptr %t30, ptr %t23 br label %ifend7 ifend7: %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 0 %t35 = load i32, ptr %t34 %t36 = icmp eq i32 %t35, 39 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t32 br i1 %t38, label %sc8, label %scend9 sc8: %t40 = load ptr, ptr %t0 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 %t43 = icmp ne ptr %t42, null %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t32 br label %scend9 scend9: %t47 = load i32, ptr %t32 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t31 br i1 %t48, label %sc10, label %scend11 sc10: %t50 = load ptr, ptr @g_g_rt_old %t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp sgt i32 %t52, 0 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t31 br label %scend11 scend11: %t57 = load i32, ptr %t31 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then12, label %ifend14 then12: %t59 = load ptr, ptr %t0 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 1 %t61 = load ptr, ptr %t0 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 1 %t63 = load ptr, ptr %t62 %t64 = load ptr, ptr %t0 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 9 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_pt_ty(ptr %t63, ptr %t66) store ptr %t67, ptr %t60 br label %ifend14 ifend14: %t69 = load ptr, ptr %t0 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 0 %t71 = load i32, ptr %t70 %t72 = icmp eq i32 %t71, 49 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t68 br i1 %t74, label %sc15, label %scend16 sc15: %t76 = load ptr, ptr @g_g_re_old %t77 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t78 = load i32, ptr %t77 %t79 = icmp sgt i32 %t78, 0 %t80 = zext i1 %t79 to i32 %t81 = icmp ne i32 %t80, 0 %t82 = zext i1 %t81 to i32 store i32 %t82, ptr %t68 br label %scend16 scend16: %t83 = load i32, ptr %t68 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then17, label %ifend19 then17: %t85 = load ptr, ptr %t0 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 1 %t87 = load ptr, ptr %t0 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 1 %t89 = load ptr, ptr %t88 %t90 = load ptr, ptr %t0 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 9 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_pt_event(ptr %t89, ptr %t92) store ptr %t93, ptr %t86 br label %ifend19 ifend19: %t94 = load ptr, ptr %t0 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 4 %t96 = load ptr, ptr %t95 call void @fn_pt_walk(ptr %t96) %t97 = load ptr, ptr %t0 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 5 %t99 = load ptr, ptr %t98 call void @fn_pt_walk(ptr %t99) %t100 = load ptr, ptr %t0 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 6 %t102 = load ptr, ptr %t101 call void @fn_pt_walk(ptr %t102) %t103 = load ptr, ptr %t0 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 7 %t105 = load ptr, ptr %t104 %t106 = icmp ne ptr %t105, null %t107 = zext i1 %t106 to i32 %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then20, label %ifend22 then20: store i32 0, ptr %t109 br label %wcond23 wcond23: %t110 = load i32, ptr %t109 %t111 = load ptr, ptr %t0 %t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 7 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %LSlice, ptr %t113, i32 0, i32 1 %t115 = load i32, ptr %t114 %t116 = icmp slt i32 %t110, %t115 %t117 = zext i1 %t116 to i32 %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %wbody24, label %wend25 wbody24: %t119 = load ptr, ptr %t0 %t120 = getelementptr inbounds %Cmp_Node, ptr %t119, i32 0, i32 7 %t121 = load ptr, ptr %t120 %t122 = load i32, ptr %t109 %t123 = getelementptr inbounds %LSlice, ptr %t121, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = getelementptr inbounds %LSlice, ptr %t121, i32 0, i32 1 %t126 = load i32, ptr %t125 %t127 = icmp ult i32 %t122, %t126 br i1 %t127, label %ixok26, label %ixbad27 ixbad27: %t128 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t128, ptr @.fmt_bounds, ptr @.str1095, i32 %t122, i32 %t126) call void @exit(i32 1) unreachable ixok26: %t129 = getelementptr inbounds ptr, ptr %t124, i32 %t122 %t130 = load ptr, ptr %t129 call void @fn_pt_walk(ptr %t130) %t131 = load i32, ptr %t109 %t132 = add i32 %t131, 1 store i32 %t132, ptr %t109 br label %wcond23 wend25: br label %ifend22 ifend22: br label %ret ret: ret void } define void @fn_pt_walk_all(ptr %arg_xs) { entry: %t0 = alloca ptr %t5 = alloca i32 store ptr %arg_xs, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 0, ptr %t5 br label %wcond3 wcond3: %t6 = load i32, ptr %t5 %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t6, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody4, label %wend5 wbody4: %t13 = load ptr, ptr %t0 %t14 = load i32, ptr %t5 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok6, label %ixbad7 ixbad7: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str1096, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok6: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 call void @fn_pt_walk(ptr %t22) %t23 = load i32, ptr %t5 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t5 br label %wcond3 wend5: br label %ret ret: ret void } define void @fn_pt_apply() { entry: %t0 = alloca i32 %t1 = alloca i32 %t28 = alloca ptr %t29 = alloca i32 %t30 = alloca i32 %t56 = alloca i32 %t64 = alloca i32 %t136 = alloca ptr %t154 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t2 = load i32, ptr %t0 %t3 = load i32, ptr @g_g_prog_user_end %t4 = icmp slt i32 %t2, %t3 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t1 br i1 %t6, label %sc3, label %scend4 sc3: %t8 = load i32, ptr %t0 %t9 = load ptr, ptr @g_prog %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t8, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t1 br label %scend4 scend4: %t16 = load i32, ptr %t1 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr @g_prog %t19 = load i32, ptr %t0 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok5, label %ixbad6 ixbad6: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str1097, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok5: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %t28 %t31 = load ptr, ptr %t28 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 0 %t33 = load i32, ptr %t32 %t34 = call i32 @fn_pt_is_record(i32 %t33) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t30 br i1 %t35, label %sc7, label %scend8 sc7: %t37 = load ptr, ptr %t28 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 10 %t39 = load i32, ptr %t38 %t40 = icmp ne i32 %t39, 1 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t30 br label %scend8 scend8: %t44 = load i32, ptr %t30 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t29 br i1 %t45, label %sc9, label %scend10 sc9: %t47 = load ptr, ptr %t28 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 1 %t49 = load ptr, ptr %t48 %t50 = icmp ne ptr %t49, null %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t29 br label %scend10 scend10: %t54 = load i32, ptr %t29 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then11, label %ifend13 then11: store i32 0, ptr %t56 br label %wcond14 wcond14: %t57 = load i32, ptr %t56 %t58 = load ptr, ptr @g_g_rt_old %t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t60 = load i32, ptr %t59 %t61 = icmp slt i32 %t57, %t60 %t62 = zext i1 %t61 to i32 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %wbody15, label %wend16 wbody15: %t65 = load ptr, ptr @g_g_rt_old %t66 = load i32, ptr %t56 %t67 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 0 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t70 = load i32, ptr %t69 %t71 = icmp ult i32 %t66, %t70 br i1 %t71, label %ixok17, label %ixbad18 ixbad18: %t72 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t72, ptr @.fmt_bounds, ptr @.str1098, i32 %t66, i32 %t70) call void @exit(i32 1) unreachable ixok17: %t73 = getelementptr inbounds ptr, ptr %t68, i32 %t66 %t74 = load ptr, ptr %t73 %t75 = load ptr, ptr %t28 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 1 %t77 = load ptr, ptr %t76 %t78 = call i32 @lp_str_eq(ptr %t74, ptr %t77) %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t64 br i1 %t79, label %sc19, label %scend20 sc19: %t81 = load ptr, ptr %t28 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 9 %t83 = load ptr, ptr %t82 %t84 = call ptr @fn_module_of(ptr %t83) %t85 = load ptr, ptr @g_g_rt_mod %t86 = load i32, ptr %t56 %t87 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0 %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 1 %t90 = load i32, ptr %t89 %t91 = icmp ult i32 %t86, %t90 br i1 %t91, label %ixok21, label %ixbad22 ixbad22: %t92 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t92, ptr @.fmt_bounds, ptr @.str1099, i32 %t86, i32 %t90) call void @exit(i32 1) unreachable ixok21: %t93 = getelementptr inbounds ptr, ptr %t88, i32 %t86 %t94 = load ptr, ptr %t93 %t95 = call i32 @lp_str_eq(ptr %t84, ptr %t94) %t96 = icmp ne i32 %t95, 0 %t97 = zext i1 %t96 to i32 store i32 %t97, ptr %t64 br label %scend20 scend20: %t98 = load i32, ptr %t64 %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then23, label %ifend25 then23: %t100 = load ptr, ptr %t28 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 1 %t102 = load ptr, ptr @g_g_rt_new %t103 = load i32, ptr %t56 %t104 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 0 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t107 = load i32, ptr %t106 %t108 = icmp ult i32 %t103, %t107 br i1 %t108, label %ixok26, label %ixbad27 ixbad27: %t109 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t109, ptr @.fmt_bounds, ptr @.str1100, i32 %t103, i32 %t107) call void @exit(i32 1) unreachable ixok26: %t110 = getelementptr inbounds ptr, ptr %t105, i32 %t103 %t111 = load ptr, ptr %t110 store ptr %t111, ptr %t101 %t112 = load ptr, ptr @g_g_rt_old %t113 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t114 = load i32, ptr %t113 store i32 %t114, ptr %t56 br label %ifend25 ifend25: %t115 = load i32, ptr %t56 %t116 = add i32 %t115, 1 store i32 %t116, ptr %t56 br label %wcond14 wend16: br label %ifend13 ifend13: %t117 = load i32, ptr %t0 %t118 = add i32 %t117, 1 store i32 %t118, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %t0 br label %wcond28 wcond28: %t119 = load i32, ptr %t0 %t120 = load ptr, ptr @g_g_events %t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 1 %t122 = load i32, ptr %t121 %t123 = icmp slt i32 %t119, %t122 %t124 = zext i1 %t123 to i32 %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %wbody29, label %wend30 wbody29: %t126 = load ptr, ptr @g_g_events %t127 = load i32, ptr %t0 %t128 = getelementptr inbounds %LSlice, ptr %t126, i32 0, i32 0 %t129 = load ptr, ptr %t128 %t130 = getelementptr inbounds %LSlice, ptr %t126, i32 0, i32 1 %t131 = load i32, ptr %t130 %t132 = icmp ult i32 %t127, %t131 br i1 %t132, label %ixok31, label %ixbad32 ixbad32: %t133 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t133, ptr @.fmt_bounds, ptr @.str1101, i32 %t127, i32 %t131) call void @exit(i32 1) unreachable ixok31: %t134 = getelementptr inbounds ptr, ptr %t129, i32 %t127 %t135 = load ptr, ptr %t134 store ptr %t135, ptr %t136 %t137 = load ptr, ptr %t136 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 10 %t139 = load i32, ptr %t138 %t140 = icmp ne i32 %t139, 1 %t141 = zext i1 %t140 to i32 %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then33, label %ifend35 then33: %t143 = load ptr, ptr %t136 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 1 %t145 = load ptr, ptr %t136 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 1 %t147 = load ptr, ptr %t146 %t148 = load ptr, ptr %t136 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 9 %t150 = load ptr, ptr %t149 %t151 = call ptr @fn_pt_event(ptr %t147, ptr %t150) store ptr %t151, ptr %t144 br label %ifend35 ifend35: %t152 = load i32, ptr %t0 %t153 = add i32 %t152, 1 store i32 %t153, ptr %t0 br label %wcond28 wend30: store i32 0, ptr %t0 br label %wcond36 wcond36: %t155 = load i32, ptr %t0 %t156 = load i32, ptr @g_g_prog_user_end %t157 = icmp slt i32 %t155, %t156 %t158 = zext i1 %t157 to i32 %t159 = icmp ne i32 %t158, 0 %t160 = zext i1 %t159 to i32 store i32 %t160, ptr %t154 br i1 %t159, label %sc39, label %scend40 sc39: %t161 = load i32, ptr %t0 %t162 = load ptr, ptr @g_prog %t163 = getelementptr inbounds %LSlice, ptr %t162, i32 0, i32 1 %t164 = load i32, ptr %t163 %t165 = icmp slt i32 %t161, %t164 %t166 = zext i1 %t165 to i32 %t167 = icmp ne i32 %t166, 0 %t168 = zext i1 %t167 to i32 store i32 %t168, ptr %t154 br label %scend40 scend40: %t169 = load i32, ptr %t154 %t170 = icmp ne i32 %t169, 0 br i1 %t170, label %wbody37, label %wend38 wbody37: %t171 = load ptr, ptr @g_prog %t172 = load i32, ptr %t0 %t173 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 0 %t174 = load ptr, ptr %t173 %t175 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 1 %t176 = load i32, ptr %t175 %t177 = icmp ult i32 %t172, %t176 br i1 %t177, label %ixok41, label %ixbad42 ixbad42: %t178 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t178, ptr @.fmt_bounds, ptr @.str1102, i32 %t172, i32 %t176) call void @exit(i32 1) unreachable ixok41: %t179 = getelementptr inbounds ptr, ptr %t174, i32 %t172 %t180 = load ptr, ptr %t179 call void @fn_pt_walk(ptr %t180) %t181 = load i32, ptr %t0 %t182 = add i32 %t181, 1 store i32 %t182, ptr %t0 br label %wcond36 wend38: %t183 = load ptr, ptr @g_g_tests call void @fn_pt_walk_all(ptr %t183) %t184 = load ptr, ptr @g_g_onlisten call void @fn_pt_walk_all(ptr %t184) %t185 = load ptr, ptr @g_g_onspawn call void @fn_pt_walk_all(ptr %t185) %t186 = load ptr, ptr @g_g_ondespawn call void @fn_pt_walk_all(ptr %t186) %t187 = load ptr, ptr @g_g_onattach call void @fn_pt_walk_all(ptr %t187) %t188 = load ptr, ptr @g_g_ondetach call void @fn_pt_walk_all(ptr %t188) %t189 = load ptr, ptr @g_g_onenable call void @fn_pt_walk_all(ptr %t189) %t190 = load ptr, ptr @g_g_ondisable call void @fn_pt_walk_all(ptr %t190) %t191 = load ptr, ptr @g_g_computed call void @fn_pt_walk_all(ptr %t191) %t192 = load ptr, ptr @g_g_scenes call void @fn_pt_walk_all(ptr %t192) %t193 = load ptr, ptr @g_g_events call void @fn_pt_walk_all(ptr %t193) store i32 0, ptr %t0 br label %wcond43 wcond43: %t194 = load i32, ptr %t0 %t195 = load ptr, ptr @g_g_onlisten %t196 = getelementptr inbounds %LSlice, ptr %t195, i32 0, i32 1 %t197 = load i32, ptr %t196 %t198 = icmp slt i32 %t194, %t197 %t199 = zext i1 %t198 to i32 %t200 = icmp ne i32 %t199, 0 br i1 %t200, label %wbody44, label %wend45 wbody44: %t201 = load ptr, ptr @g_g_onlisten %t202 = load i32, ptr %t0 %t203 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 0 %t204 = load ptr, ptr %t203 %t205 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 1 %t206 = load i32, ptr %t205 %t207 = icmp ult i32 %t202, %t206 br i1 %t207, label %ixok46, label %ixbad47 ixbad47: %t208 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t208, ptr @.fmt_bounds, ptr @.str1103, i32 %t202, i32 %t206) call void @exit(i32 1) unreachable ixok46: %t209 = getelementptr inbounds ptr, ptr %t204, i32 %t202 %t210 = load ptr, ptr %t209 %t211 = getelementptr inbounds %Cmp_Node, ptr %t210, i32 0, i32 1 %t212 = load ptr, ptr @g_g_onlisten %t213 = load i32, ptr %t0 %t214 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 0 %t215 = load ptr, ptr %t214 %t216 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 1 %t217 = load i32, ptr %t216 %t218 = icmp ult i32 %t213, %t217 br i1 %t218, label %ixok48, label %ixbad49 ixbad49: %t219 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t219, ptr @.fmt_bounds, ptr @.str1104, i32 %t213, i32 %t217) call void @exit(i32 1) unreachable ixok48: %t220 = getelementptr inbounds ptr, ptr %t215, i32 %t213 %t221 = load ptr, ptr %t220 %t222 = getelementptr inbounds %Cmp_Node, ptr %t221, i32 0, i32 1 %t223 = load ptr, ptr %t222 %t224 = load ptr, ptr @g_g_onlisten %t225 = load i32, ptr %t0 %t226 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 0 %t227 = load ptr, ptr %t226 %t228 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 1 %t229 = load i32, ptr %t228 %t230 = icmp ult i32 %t225, %t229 br i1 %t230, label %ixok50, label %ixbad51 ixbad51: %t231 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t231, ptr @.fmt_bounds, ptr @.str1105, i32 %t225, i32 %t229) call void @exit(i32 1) unreachable ixok50: %t232 = getelementptr inbounds ptr, ptr %t227, i32 %t225 %t233 = load ptr, ptr %t232 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 9 %t235 = load ptr, ptr %t234 %t236 = call ptr @fn_pt_event(ptr %t223, ptr %t235) store ptr %t236, ptr %t211 %t237 = load i32, ptr %t0 %t238 = add i32 %t237, 1 store i32 %t238, ptr %t0 br label %wcond43 wend45: br label %ret ret: ret void } define void @fn_pt_events_twice() { entry: %t0 = alloca i32 %t10 = alloca i32 %t18 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_events %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load i32, ptr %t0 %t9 = add i32 %t8, 1 store i32 %t9, ptr %t10 br label %wcond3 wcond3: %t11 = load i32, ptr %t10 %t12 = load ptr, ptr @g_g_events %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t11, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody4, label %wend5 wbody4: %t19 = load ptr, ptr @g_g_events %t20 = load i32, ptr %t10 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok6, label %ixbad7 ixbad7: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str1106, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok6: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr @g_g_events %t32 = load i32, ptr %t0 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ult i32 %t32, %t36 br i1 %t37, label %ixok8, label %ixbad9 ixbad9: %t38 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t38, ptr @.fmt_bounds, ptr @.str1107, i32 %t32, i32 %t36) call void @exit(i32 1) unreachable ixok8: %t39 = getelementptr inbounds ptr, ptr %t34, i32 %t32 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 %t43 = call i32 @lp_str_eq(ptr %t30, ptr %t42) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t18 br i1 %t44, label %sc10, label %scend11 sc10: %t46 = load ptr, ptr @g_g_events %t47 = load i32, ptr %t10 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok12, label %ixbad13 ixbad13: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str1108, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok12: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 9 %t57 = load ptr, ptr %t56 %t58 = icmp ne ptr %t57, null %t59 = zext i1 %t58 to i32 %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t18 br label %scend11 scend11: %t62 = load i32, ptr %t18 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then14, label %ifend16 then14: %t64 = load ptr, ptr @g_g_events %t65 = load i32, ptr %t10 %t66 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 1 %t69 = load i32, ptr %t68 %t70 = icmp ult i32 %t65, %t69 br i1 %t70, label %ixok17, label %ixbad18 ixbad18: %t71 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t71, ptr @.fmt_bounds, ptr @.str1109, i32 %t65, i32 %t69) call void @exit(i32 1) unreachable ixok17: %t72 = getelementptr inbounds ptr, ptr %t67, i32 %t65 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 9 %t75 = load ptr, ptr %t74 store ptr %t75, ptr @g_g_err_file %t76 = load ptr, ptr @g_g_events %t77 = load i32, ptr %t10 %t78 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp ult i32 %t77, %t81 br i1 %t82, label %ixok19, label %ixbad20 ixbad20: %t83 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t83, ptr @.fmt_bounds, ptr @.str1110, i32 %t77, i32 %t81) call void @exit(i32 1) unreachable ixok19: %t84 = getelementptr inbounds ptr, ptr %t79, i32 %t77 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 8 %t87 = load i32, ptr %t86 store i32 %t87, ptr @g_g_err_line %t88 = load ptr, ptr @g_g_events %t89 = load i32, ptr %t0 %t90 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp ult i32 %t89, %t93 br i1 %t94, label %ixok21, label %ixbad22 ixbad22: %t95 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t95, ptr @.fmt_bounds, ptr @.str1112, i32 %t89, i32 %t93) call void @exit(i32 1) unreachable ixok21: %t96 = getelementptr inbounds ptr, ptr %t91, i32 %t89 %t97 = load ptr, ptr %t96 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 1 %t99 = load ptr, ptr %t98 %t100 = call ptr @lp_str_concat(ptr @.str1111, ptr %t99) %t101 = call ptr @lp_str_concat(ptr %t100, ptr @.str1113) %t102 = load ptr, ptr @g_g_events %t103 = load i32, ptr %t0 %t104 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 0 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t107 = load i32, ptr %t106 %t108 = icmp ult i32 %t103, %t107 br i1 %t108, label %ixok23, label %ixbad24 ixbad24: %t109 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t109, ptr @.fmt_bounds, ptr @.str1114, i32 %t103, i32 %t107) call void @exit(i32 1) unreachable ixok23: %t110 = getelementptr inbounds ptr, ptr %t105, i32 %t103 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 9 %t113 = load ptr, ptr %t112 %t114 = call ptr @lp_str_concat(ptr %t101, ptr %t113) %t115 = call ptr @lp_str_concat(ptr %t114, ptr @.str1115) %t116 = load ptr, ptr @g_g_events %t117 = load i32, ptr %t0 %t118 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 0 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 1 %t121 = load i32, ptr %t120 %t122 = icmp ult i32 %t117, %t121 br i1 %t122, label %ixok25, label %ixbad26 ixbad26: %t123 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t123, ptr @.fmt_bounds, ptr @.str1116, i32 %t117, i32 %t121) call void @exit(i32 1) unreachable ixok25: %t124 = getelementptr inbounds ptr, ptr %t119, i32 %t117 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 8 %t127 = load i32, ptr %t126 %t128 = call ptr @fn_itoa(i32 %t127) %t129 = call ptr @lp_str_concat(ptr %t115, ptr %t128) %t130 = call ptr @lp_str_concat(ptr %t129, ptr @.str1117) call void @fn_perr(ptr %t130) br label %ifend16 ifend16: %t131 = load i32, ptr %t10 %t132 = add i32 %t131, 1 store i32 %t132, ptr %t10 br label %wcond3 wend5: %t133 = load i32, ptr %t0 %t134 = add i32 %t133, 1 store i32 %t134, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_privates_types() { entry: %t0 = alloca i32 call void @fn_pt_records() call void @fn_pt_events() %t1 = load ptr, ptr @g_g_rt_old %t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t3 = load i32, ptr %t2 %t4 = icmp sgt i32 %t3, 0 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t0 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr @g_g_re_old %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp sgt i32 %t10, 0 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t0 br label %scend1 scend1: %t15 = load i32, ptr %t0 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: call void @fn_pt_apply() br label %ifend4 ifend4: call void @fn_pt_events_twice() br label %ret ret: ret void } define ptr @fn_reg_upper(ptr %arg_s) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t9 = alloca ptr %t10 = alloca i32 %t21 = alloca i32 %t22 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = add i32 %t5, 1 %t7 = zext i32 %t6 to i64 %t8 = call ptr @malloc(i64 %t7) store ptr %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load i32, ptr %t4 %t13 = icmp slt i32 %t11, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody1, label %wend2 wbody1: %t16 = load ptr, ptr %t0 %t17 = load i32, ptr %t10 %t18 = getelementptr inbounds i8, ptr %t16, i32 %t17 %t19 = load i8, ptr %t18 %t20 = zext i8 %t19 to i32 store i32 %t20, ptr %t21 %t23 = load i32, ptr %t21 %t24 = icmp sge i32 %t23, 97 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t22 br i1 %t26, label %sc3, label %scend4 sc3: %t28 = load i32, ptr %t21 %t29 = icmp sle i32 %t28, 122 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t22 br label %scend4 scend4: %t33 = load i32, ptr %t22 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load i32, ptr %t21 %t36 = sub i32 %t35, 32 store i32 %t36, ptr %t21 br label %ifend7 ifend7: %t37 = load ptr, ptr %t9 %t38 = load i32, ptr %t10 %t39 = getelementptr inbounds i8, ptr %t37, i32 %t38 %t40 = load i32, ptr %t21 %t41 = trunc i32 %t40 to i8 store i8 %t41, ptr %t39 %t42 = load i32, ptr %t10 %t43 = add i32 %t42, 1 store i32 %t43, ptr %t10 br label %wcond0 wend2: %t44 = load ptr, ptr %t9 %t45 = load i32, ptr %t4 %t46 = getelementptr inbounds i8, ptr %t44, i32 %t45 %t47 = trunc i32 0 to i8 store i8 %t47, ptr %t46 %t48 = load ptr, ptr %t9 store ptr %t48, ptr %retval br label %ret ret: %t49 = load ptr, ptr %retval ret ptr %t49 } define ptr @fn_reg_lower(ptr %arg_s) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t9 = alloca ptr %t10 = alloca i32 %t21 = alloca i32 %t22 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = add i32 %t5, 1 %t7 = zext i32 %t6 to i64 %t8 = call ptr @malloc(i64 %t7) store ptr %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load i32, ptr %t4 %t13 = icmp slt i32 %t11, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody1, label %wend2 wbody1: %t16 = load ptr, ptr %t0 %t17 = load i32, ptr %t10 %t18 = getelementptr inbounds i8, ptr %t16, i32 %t17 %t19 = load i8, ptr %t18 %t20 = zext i8 %t19 to i32 store i32 %t20, ptr %t21 %t23 = load i32, ptr %t21 %t24 = icmp sge i32 %t23, 65 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t22 br i1 %t26, label %sc3, label %scend4 sc3: %t28 = load i32, ptr %t21 %t29 = icmp sle i32 %t28, 90 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t22 br label %scend4 scend4: %t33 = load i32, ptr %t22 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load i32, ptr %t21 %t36 = add i32 %t35, 32 store i32 %t36, ptr %t21 br label %ifend7 ifend7: %t37 = load ptr, ptr %t9 %t38 = load i32, ptr %t10 %t39 = getelementptr inbounds i8, ptr %t37, i32 %t38 %t40 = load i32, ptr %t21 %t41 = trunc i32 %t40 to i8 store i8 %t41, ptr %t39 %t42 = load i32, ptr %t10 %t43 = add i32 %t42, 1 store i32 %t43, ptr %t10 br label %wcond0 wend2: %t44 = load ptr, ptr %t9 %t45 = load i32, ptr %t4 %t46 = getelementptr inbounds i8, ptr %t44, i32 %t45 %t47 = trunc i32 0 to i8 store i8 %t47, ptr %t46 %t48 = load ptr, ptr %t9 store ptr %t48, ptr %retval br label %ret ret: %t49 = load ptr, ptr %retval ret ptr %t49 } define void @fn_parse_registry() { entry: %t3 = alloca ptr %t24 = alloca ptr %t29 = alloca ptr %t35 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_node(i32 2) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 %t7 = call i32 @fn_is_id(ptr @.str1118) %t8 = icmp eq i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 1 %t13 = load ptr, ptr %t12 %t14 = call ptr @lp_str_concat(ptr @.str1119, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str1120) %t16 = load ptr, ptr %t3 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 %t19 = call ptr @lp_str_concat(ptr %t15, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str1121) call void @fn_perr(ptr %t20) br label %ifend2 ifend2: %t21 = load i32, ptr @g_pi %t22 = add i32 %t21, 1 store i32 %t22, ptr @g_pi %t23 = call ptr @fn_ptype() store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t3 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 %t28 = call ptr @fn_reg_upper(ptr %t27) store ptr %t28, ptr %t29 %t30 = call i32 @fn_is_id(ptr @.str1122) %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then3, label %ifend5 then3: %t32 = load i32, ptr @g_pi %t33 = add i32 %t32, 1 store i32 %t33, ptr @g_pi %t34 = call ptr @fn_eat_id() store ptr %t34, ptr %t29 br label %ifend5 ifend5: store ptr null, ptr %t35 %t36 = call i32 @fn_is_id(ptr @.str1123) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then6, label %ifend8 then6: %t38 = load i32, ptr @g_pi %t39 = add i32 %t38, 1 store i32 %t39, ptr @g_pi %t40 = load ptr, ptr @g_toks %t41 = load i32, ptr @g_pi %t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t45 = load i32, ptr %t44 %t46 = icmp ult i32 %t41, %t45 br i1 %t46, label %ixok9, label %ixbad10 ixbad10: %t47 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t47, ptr @.fmt_bounds, ptr @.str1124, i32 %t41, i32 %t45) call void @exit(i32 1) unreachable ixok9: %t48 = getelementptr inbounds ptr, ptr %t43, i32 %t41 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %Cmp_Tok, ptr %t49, i32 0, i32 1 %t51 = load ptr, ptr %t50 store ptr %t51, ptr %t35 %t52 = load i32, ptr @g_pi %t53 = add i32 %t52, 1 store i32 %t53, ptr @g_pi br label %ifend8 ifend8: %t54 = load ptr, ptr %t3 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 3 %t56 = load ptr, ptr %t24 %t57 = call ptr @lp_str_concat(ptr @.str1125, ptr %t56) store ptr %t57, ptr %t55 %t58 = load ptr, ptr @g_prog %t59 = load ptr, ptr %t3 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t63 = load i32, ptr %t60 %t64 = load i32, ptr %t61 %t65 = icmp sge i32 %t63, %t64 br i1 %t65, label %grow11, label %put12 grow11: %t66 = mul i32 %t64, 2 %t67 = icmp eq i32 %t64, 0 %t68 = select i1 %t67, i32 8, i32 %t66 %t69 = getelementptr ptr, ptr null, i32 1 %t70 = ptrtoint ptr %t69 to i64 %t71 = zext i32 %t68 to i64 %t72 = mul i64 %t71, %t70 %t73 = load ptr, ptr %t62 %t74 = call ptr @realloc(ptr %t73, i64 %t72) store ptr %t74, ptr %t62 store i32 %t68, ptr %t61 br label %put12 put12: %t75 = load ptr, ptr %t62 %t76 = getelementptr inbounds ptr, ptr %t75, i32 %t63 store ptr %t59, ptr %t76 %t77 = add i32 %t63, 1 store i32 %t77, ptr %t60 %t78 = load ptr, ptr @g_g_rg_name %t79 = load ptr, ptr %t3 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 1 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t83 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 2 %t84 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t85 = load i32, ptr %t82 %t86 = load i32, ptr %t83 %t87 = icmp sge i32 %t85, %t86 br i1 %t87, label %grow13, label %put14 grow13: %t88 = mul i32 %t86, 2 %t89 = icmp eq i32 %t86, 0 %t90 = select i1 %t89, i32 8, i32 %t88 %t91 = getelementptr ptr, ptr null, i32 1 %t92 = ptrtoint ptr %t91 to i64 %t93 = zext i32 %t90 to i64 %t94 = mul i64 %t93, %t92 %t95 = load ptr, ptr %t84 %t96 = call ptr @realloc(ptr %t95, i64 %t94) store ptr %t96, ptr %t84 store i32 %t90, ptr %t83 br label %put14 put14: %t97 = load ptr, ptr %t84 %t98 = getelementptr inbounds ptr, ptr %t97, i32 %t85 store ptr %t81, ptr %t98 %t99 = add i32 %t85, 1 store i32 %t99, ptr %t82 %t100 = load ptr, ptr @g_g_rg_type %t101 = load ptr, ptr %t24 %t102 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1 %t103 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 2 %t104 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 0 %t105 = load i32, ptr %t102 %t106 = load i32, ptr %t103 %t107 = icmp sge i32 %t105, %t106 br i1 %t107, label %grow15, label %put16 grow15: %t108 = mul i32 %t106, 2 %t109 = icmp eq i32 %t106, 0 %t110 = select i1 %t109, i32 8, i32 %t108 %t111 = getelementptr ptr, ptr null, i32 1 %t112 = ptrtoint ptr %t111 to i64 %t113 = zext i32 %t110 to i64 %t114 = mul i64 %t113, %t112 %t115 = load ptr, ptr %t104 %t116 = call ptr @realloc(ptr %t115, i64 %t114) store ptr %t116, ptr %t104 store i32 %t110, ptr %t103 br label %put16 put16: %t117 = load ptr, ptr %t104 %t118 = getelementptr inbounds ptr, ptr %t117, i32 %t105 store ptr %t101, ptr %t118 %t119 = add i32 %t105, 1 store i32 %t119, ptr %t102 %t120 = load ptr, ptr @g_g_rg_prefix %t121 = load ptr, ptr %t29 %t122 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 1 %t123 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 2 %t124 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t125 = load i32, ptr %t122 %t126 = load i32, ptr %t123 %t127 = icmp sge i32 %t125, %t126 br i1 %t127, label %grow17, label %put18 grow17: %t128 = mul i32 %t126, 2 %t129 = icmp eq i32 %t126, 0 %t130 = select i1 %t129, i32 8, i32 %t128 %t131 = getelementptr ptr, ptr null, i32 1 %t132 = ptrtoint ptr %t131 to i64 %t133 = zext i32 %t130 to i64 %t134 = mul i64 %t133, %t132 %t135 = load ptr, ptr %t124 %t136 = call ptr @realloc(ptr %t135, i64 %t134) store ptr %t136, ptr %t124 store i32 %t130, ptr %t123 br label %put18 put18: %t137 = load ptr, ptr %t124 %t138 = getelementptr inbounds ptr, ptr %t137, i32 %t125 store ptr %t121, ptr %t138 %t139 = add i32 %t125, 1 store i32 %t139, ptr %t122 %t140 = load ptr, ptr @g_g_rg_var %t141 = load ptr, ptr %t3 %t142 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 1 %t143 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 2 %t144 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0 %t145 = load i32, ptr %t142 %t146 = load i32, ptr %t143 %t147 = icmp sge i32 %t145, %t146 br i1 %t147, label %grow19, label %put20 grow19: %t148 = mul i32 %t146, 2 %t149 = icmp eq i32 %t146, 0 %t150 = select i1 %t149, i32 8, i32 %t148 %t151 = getelementptr ptr, ptr null, i32 1 %t152 = ptrtoint ptr %t151 to i64 %t153 = zext i32 %t150 to i64 %t154 = mul i64 %t153, %t152 %t155 = load ptr, ptr %t144 %t156 = call ptr @realloc(ptr %t155, i64 %t154) store ptr %t156, ptr %t144 store i32 %t150, ptr %t143 br label %put20 put20: %t157 = load ptr, ptr %t144 %t158 = getelementptr inbounds ptr, ptr %t157, i32 %t145 store ptr %t141, ptr %t158 %t159 = add i32 %t145, 1 store i32 %t159, ptr %t142 %t160 = load ptr, ptr @g_g_rg_open %t161 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 1 %t162 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 2 %t163 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 0 %t164 = load i32, ptr %t161 %t165 = load i32, ptr %t162 %t166 = icmp sge i32 %t164, %t165 br i1 %t166, label %grow21, label %put22 grow21: %t167 = mul i32 %t165, 2 %t168 = icmp eq i32 %t165, 0 %t169 = select i1 %t168, i32 8, i32 %t167 %t170 = getelementptr i32, ptr null, i32 1 %t171 = ptrtoint ptr %t170 to i64 %t172 = zext i32 %t169 to i64 %t173 = mul i64 %t172, %t171 %t174 = load ptr, ptr %t163 %t175 = call ptr @realloc(ptr %t174, i64 %t173) store ptr %t175, ptr %t163 store i32 %t169, ptr %t162 br label %put22 put22: %t176 = load ptr, ptr %t163 %t177 = getelementptr inbounds i32, ptr %t176, i32 %t164 store i32 0, ptr %t177 %t178 = add i32 %t164, 1 store i32 %t178, ptr %t161 %t179 = load ptr, ptr %t35 %t180 = icmp ne ptr %t179, null %t181 = zext i1 %t180 to i32 %t182 = icmp ne i32 %t181, 0 br i1 %t182, label %then23, label %ifend25 then23: %t183 = load ptr, ptr %t3 %t184 = load ptr, ptr %t35 call void @fn_res_read(ptr %t183, ptr %t184) br label %ifend25 ifend25: br label %ret ret: ret void } define void @fn_parse_def() { entry: %t3 = alloca ptr %t4 = alloca i32 %t40 = alloca ptr %t49 = alloca ptr %t51 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_eat_id() store ptr %t2, ptr %t3 %t5 = call i32 @fn_is_id(ptr @.str1126) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t4 br i1 %t6, label %sc0, label %scend1 sc0: %t8 = load ptr, ptr @g_toks %t9 = load i32, ptr @g_pi %t10 = add i32 %t9, 1 %t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok2, label %ixbad3 ixbad3: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1127, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok2: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Tok, ptr %t18, i32 0, i32 0 %t20 = load i32, ptr %t19 %t21 = icmp eq i32 %t20, 2 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t4 br label %scend1 scend1: %t25 = load i32, ptr %t4 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then4, label %ifend6 then4: %t27 = load ptr, ptr @g_toks %t28 = load i32, ptr @g_pi %t29 = add i32 %t28, 1 %t30 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok7, label %ixbad8 ixbad8: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str1128, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok7: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %Cmp_Tok, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 store ptr %t39, ptr %t40 %t41 = load i32, ptr @g_pi %t42 = add i32 %t41, 2 store i32 %t42, ptr @g_pi %t43 = load ptr, ptr %t3 %t44 = load ptr, ptr %t40 %t45 = load ptr, ptr %t3 %t46 = call ptr @lp_str_concat(ptr @.str1129, ptr %t45) %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str1130) call void @fn_res_read_into(ptr %t43, ptr %t44, ptr %t47) br label %ret ifend6: %t48 = call ptr @fn_eat_id() store ptr %t48, ptr %t49 call void @fn_skipnl() %t50 = call ptr @fn_record() store ptr %t50, ptr %t51 %t52 = load ptr, ptr @g_g_df_reg %t53 = load ptr, ptr %t3 %t54 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t55 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 2 %t56 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 %t57 = load i32, ptr %t54 %t58 = load i32, ptr %t55 %t59 = icmp sge i32 %t57, %t58 br i1 %t59, label %grow9, label %put10 grow9: %t60 = mul i32 %t58, 2 %t61 = icmp eq i32 %t58, 0 %t62 = select i1 %t61, i32 8, i32 %t60 %t63 = getelementptr ptr, ptr null, i32 1 %t64 = ptrtoint ptr %t63 to i64 %t65 = zext i32 %t62 to i64 %t66 = mul i64 %t65, %t64 %t67 = load ptr, ptr %t56 %t68 = call ptr @realloc(ptr %t67, i64 %t66) store ptr %t68, ptr %t56 store i32 %t62, ptr %t55 br label %put10 put10: %t69 = load ptr, ptr %t56 %t70 = getelementptr inbounds ptr, ptr %t69, i32 %t57 store ptr %t53, ptr %t70 %t71 = add i32 %t57, 1 store i32 %t71, ptr %t54 %t72 = load ptr, ptr @g_g_df_key %t73 = load ptr, ptr %t49 %t74 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t75 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 2 %t76 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t77 = load i32, ptr %t74 %t78 = load i32, ptr %t75 %t79 = icmp sge i32 %t77, %t78 br i1 %t79, label %grow11, label %put12 grow11: %t80 = mul i32 %t78, 2 %t81 = icmp eq i32 %t78, 0 %t82 = select i1 %t81, i32 8, i32 %t80 %t83 = getelementptr ptr, ptr null, i32 1 %t84 = ptrtoint ptr %t83 to i64 %t85 = zext i32 %t82 to i64 %t86 = mul i64 %t85, %t84 %t87 = load ptr, ptr %t76 %t88 = call ptr @realloc(ptr %t87, i64 %t86) store ptr %t88, ptr %t76 store i32 %t82, ptr %t75 br label %put12 put12: %t89 = load ptr, ptr %t76 %t90 = getelementptr inbounds ptr, ptr %t89, i32 %t77 store ptr %t73, ptr %t90 %t91 = add i32 %t77, 1 store i32 %t91, ptr %t74 %t92 = load ptr, ptr @g_g_df_rec %t93 = load ptr, ptr %t51 %t94 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 %t95 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 2 %t96 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 0 %t97 = load i32, ptr %t94 %t98 = load i32, ptr %t95 %t99 = icmp sge i32 %t97, %t98 br i1 %t99, label %grow13, label %put14 grow13: %t100 = mul i32 %t98, 2 %t101 = icmp eq i32 %t98, 0 %t102 = select i1 %t101, i32 8, i32 %t100 %t103 = getelementptr ptr, ptr null, i32 1 %t104 = ptrtoint ptr %t103 to i64 %t105 = zext i32 %t102 to i64 %t106 = mul i64 %t105, %t104 %t107 = load ptr, ptr %t96 %t108 = call ptr @realloc(ptr %t107, i64 %t106) store ptr %t108, ptr %t96 store i32 %t102, ptr %t95 br label %put14 put14: %t109 = load ptr, ptr %t96 %t110 = getelementptr inbounds ptr, ptr %t109, i32 %t97 store ptr %t93, ptr %t110 %t111 = add i32 %t97, 1 store i32 %t111, ptr %t94 br label %ret ret: ret void } define i32 @fn_reg_find(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_rg_name %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_rg_name %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1131, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load i32, ptr %t1 store i32 %t22, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t1 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t1 br label %wcond0 wend2: %t25 = sub i32 0, 1 store i32 %t25, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define i32 @fn_reg_rec_has(ptr %arg_rec, ptr %arg_field) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_rec, ptr %t0 store ptr %arg_field, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1132, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = load ptr, ptr %t1 %t27 = call i32 @lp_str_eq(ptr %t25, ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t29 = load i32, ptr %t2 %t30 = add i32 %t29, 1 store i32 %t30, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t31 = load i32, ptr %retval ret i32 %t31 } define ptr @fn_reg_decl(i32 %arg_kind, ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t4 = alloca ptr store i32 %arg_kind, ptr %t0 store ptr %arg_v, ptr %t1 %t2 = load i32, ptr %t0 %t3 = call ptr @fn_node(i32 %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 9 %t7 = load ptr, ptr %t1 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 9 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %t6 %t10 = load ptr, ptr %t4 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 8 %t12 = load ptr, ptr %t1 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 8 %t14 = load i32, ptr %t13 store i32 %t14, ptr %t11 %t15 = load ptr, ptr %t4 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 10 %t17 = load ptr, ptr %t1 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 10 %t19 = load i32, ptr %t18 store i32 %t19, ptr %t16 %t20 = load ptr, ptr %t4 store ptr %t20, ptr %retval br label %ret ret: %t21 = load ptr, ptr %retval ret ptr %t21 } define void @fn_reg_const(ptr %arg_v, ptr %arg_name, i32 %arg_value) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t5 = alloca ptr %t12 = alloca ptr store ptr %arg_v, ptr %t0 store ptr %arg_name, ptr %t1 store i32 %arg_value, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_reg_decl(i32 3, ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t1 store ptr %t8, ptr %t7 %t9 = load ptr, ptr %t5 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 3 store ptr @.str1133, ptr %t10 %t11 = call ptr @fn_node(i32 30) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 2 %t15 = load i32, ptr %t2 store i32 %t15, ptr %t14 %t16 = load ptr, ptr %t12 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 9 %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 9 %t20 = load ptr, ptr %t19 store ptr %t20, ptr %t17 %t21 = load ptr, ptr %t5 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 4 %t23 = load ptr, ptr %t12 store ptr %t23, ptr %t22 %t24 = load ptr, ptr @g_prog %t25 = load ptr, ptr %t5 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t29 = load i32, ptr %t26 %t30 = load i32, ptr %t27 %t31 = icmp sge i32 %t29, %t30 br i1 %t31, label %grow0, label %put1 grow0: %t32 = mul i32 %t30, 2 %t33 = icmp eq i32 %t30, 0 %t34 = select i1 %t33, i32 8, i32 %t32 %t35 = getelementptr ptr, ptr null, i32 1 %t36 = ptrtoint ptr %t35 to i64 %t37 = zext i32 %t34 to i64 %t38 = mul i64 %t37, %t36 %t39 = load ptr, ptr %t28 %t40 = call ptr @realloc(ptr %t39, i64 %t38) store ptr %t40, ptr %t28 store i32 %t34, ptr %t27 br label %put1 put1: %t41 = load ptr, ptr %t28 %t42 = getelementptr inbounds ptr, ptr %t41, i32 %t29 store ptr %t25, ptr %t42 %t43 = add i32 %t29, 1 store i32 %t43, ptr %t26 br label %ret ret: ret void } define void @fn_registries_finish() { entry: %t0 = alloca i32 %t84 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_df_reg %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_df_reg %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str1134, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = call i32 @fn_reg_find(ptr %t17) %t19 = icmp slt i32 %t18, 0 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load ptr, ptr @g_g_df_rec %t23 = load i32, ptr %t0 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok8, label %ixbad9 ixbad9: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str1135, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok8: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 9 %t33 = load ptr, ptr %t32 store ptr %t33, ptr @g_g_err_file %t34 = load ptr, ptr @g_g_df_rec %t35 = load i32, ptr %t0 %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 %t35, %t39 br i1 %t40, label %ixok10, label %ixbad11 ixbad11: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str1136, i32 %t35, i32 %t39) call void @exit(i32 1) unreachable ixok10: %t42 = getelementptr inbounds ptr, ptr %t37, i32 %t35 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 8 %t45 = load i32, ptr %t44 store i32 %t45, ptr @g_g_err_line store i32 0, ptr @g_g_parsing %t46 = load ptr, ptr @g_g_df_reg %t47 = load i32, ptr %t0 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok12, label %ixbad13 ixbad13: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str1138, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok12: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = call ptr @lp_str_concat(ptr @.str1137, ptr %t55) %t57 = call ptr @lp_str_concat(ptr %t56, ptr @.str1139) %t58 = load ptr, ptr @g_g_df_key %t59 = load i32, ptr %t0 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 %t59, %t63 br i1 %t64, label %ixok14, label %ixbad15 ixbad15: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str1140, i32 %t59, i32 %t63) call void @exit(i32 1) unreachable ixok14: %t66 = getelementptr inbounds ptr, ptr %t61, i32 %t59 %t67 = load ptr, ptr %t66 %t68 = call ptr @lp_str_concat(ptr %t57, ptr %t67) %t69 = call ptr @lp_str_concat(ptr %t68, ptr @.str1141) %t70 = load ptr, ptr @g_g_df_reg %t71 = load i32, ptr %t0 %t72 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 0 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 1 %t75 = load i32, ptr %t74 %t76 = icmp ult i32 %t71, %t75 br i1 %t76, label %ixok16, label %ixbad17 ixbad17: %t77 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t77, ptr @.fmt_bounds, ptr @.str1142, i32 %t71, i32 %t75) call void @exit(i32 1) unreachable ixok16: %t78 = getelementptr inbounds ptr, ptr %t73, i32 %t71 %t79 = load ptr, ptr %t78 %t80 = call ptr @lp_str_concat(ptr %t69, ptr %t79) call void @fn_perr(ptr %t80) br label %ifend7 ifend7: %t81 = load i32, ptr %t0 call void @fn_reg_def_check(i32 %t81) %t82 = load i32, ptr %t0 %t83 = add i32 %t82, 1 store i32 %t83, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %t84 br label %wcond18 wcond18: %t85 = load i32, ptr %t84 %t86 = load ptr, ptr @g_g_rg_name %t87 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 %t88 = load i32, ptr %t87 %t89 = icmp slt i32 %t85, %t88 %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %wbody19, label %wend20 wbody19: %t92 = load i32, ptr %t84 call void @fn_reg_fill(i32 %t92) %t93 = load i32, ptr %t84 %t94 = add i32 %t93, 1 store i32 %t94, ptr %t84 br label %wcond18 wend20: br label %ret ret: ret void } define void @fn_reg_fill(i32 %arg_r) { entry: %t0 = alloca i32 %t11 = alloca ptr %t22 = alloca ptr %t25 = alloca ptr %t26 = alloca i32 %t39 = alloca i32 %t41 = alloca ptr %t58 = alloca ptr %t59 = alloca i32 %t62 = alloca ptr %t63 = alloca i32 %t81 = alloca i32 %t92 = alloca ptr %t103 = alloca ptr %t104 = alloca i32 %t168 = alloca i32 %t181 = alloca ptr %t185 = alloca ptr %t221 = alloca ptr %t298 = alloca ptr store i32 %arg_r, ptr %t0 %t1 = load ptr, ptr @g_g_rg_var %t2 = load i32, ptr %t0 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str1143, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t11 %t12 = load ptr, ptr @g_g_rg_type %t13 = load i32, ptr %t0 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok2, label %ixbad3 ixbad3: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str1144, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok2: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_find_comp(ptr %t23) store ptr %t24, ptr %t25 %t27 = load ptr, ptr %t25 %t28 = icmp ne ptr %t27, null %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t26 br i1 %t30, label %sc4, label %scend5 sc4: %t32 = load ptr, ptr %t25 %t33 = call i32 @fn_field_index(ptr %t32, ptr @.str1145) %t34 = icmp sge i32 %t33, 0 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t26 br label %scend5 scend5: %t38 = load i32, ptr %t26 store i32 %t38, ptr %t39 %t40 = call ptr @fn_node(i32 54) store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 9 %t44 = load ptr, ptr %t11 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 9 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t43 %t47 = load ptr, ptr %t41 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 8 %t49 = load ptr, ptr %t11 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 8 %t51 = load i32, ptr %t50 store i32 %t51, ptr %t48 %t52 = getelementptr %LSlice, ptr null, i32 1 %t53 = ptrtoint ptr %t52 to i64 %t54 = call ptr @malloc(i64 %t53) %t55 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 0 store ptr null, ptr %t55 %t56 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 1 store i32 0, ptr %t56 %t57 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 2 store i32 0, ptr %t57 store ptr %t54, ptr %t58 store i32 0, ptr %t59 %t60 = load i32, ptr %t0 %t61 = call ptr @fn_reg_order(i32 %t60) store ptr %t61, ptr %t62 store i32 0, ptr %t63 br label %wcond6 wcond6: %t64 = load i32, ptr %t63 %t65 = load ptr, ptr %t62 %t66 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t67 = load i32, ptr %t66 %t68 = icmp slt i32 %t64, %t67 %t69 = zext i1 %t68 to i32 %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %wbody7, label %wend8 wbody7: %t71 = load ptr, ptr %t62 %t72 = load i32, ptr %t63 %t73 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp ult i32 %t72, %t76 br i1 %t77, label %ixok9, label %ixbad10 ixbad10: %t78 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t78, ptr @.fmt_bounds, ptr @.str1146, i32 %t72, i32 %t76) call void @exit(i32 1) unreachable ixok9: %t79 = getelementptr inbounds i32, ptr %t74, i32 %t72 %t80 = load i32, ptr %t79 store i32 %t80, ptr %t81 %t82 = load ptr, ptr @g_g_df_key %t83 = load i32, ptr %t81 %t84 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 %t87 = load i32, ptr %t86 %t88 = icmp ult i32 %t83, %t87 br i1 %t88, label %ixok11, label %ixbad12 ixbad12: %t89 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t89, ptr @.fmt_bounds, ptr @.str1147, i32 %t83, i32 %t87) call void @exit(i32 1) unreachable ixok11: %t90 = getelementptr inbounds ptr, ptr %t85, i32 %t83 %t91 = load ptr, ptr %t90 store ptr %t91, ptr %t92 %t93 = load ptr, ptr @g_g_df_rec %t94 = load i32, ptr %t81 %t95 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp ult i32 %t94, %t98 br i1 %t99, label %ixok13, label %ixbad14 ixbad14: %t100 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t100, ptr @.fmt_bounds, ptr @.str1148, i32 %t94, i32 %t98) call void @exit(i32 1) unreachable ixok13: %t101 = getelementptr inbounds ptr, ptr %t96, i32 %t94 %t102 = load ptr, ptr %t101 store ptr %t102, ptr %t103 store i32 0, ptr %t104 br label %wcond15 wcond15: %t105 = load i32, ptr %t104 %t106 = load ptr, ptr %t58 %t107 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 1 %t108 = load i32, ptr %t107 %t109 = icmp slt i32 %t105, %t108 %t110 = zext i1 %t109 to i32 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %wbody16, label %wend17 wbody16: %t112 = load ptr, ptr %t58 %t113 = load i32, ptr %t104 %t114 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t117 = load i32, ptr %t116 %t118 = icmp ult i32 %t113, %t117 br i1 %t118, label %ixok18, label %ixbad19 ixbad19: %t119 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t119, ptr @.fmt_bounds, ptr @.str1149, i32 %t113, i32 %t117) call void @exit(i32 1) unreachable ixok18: %t120 = getelementptr inbounds ptr, ptr %t115, i32 %t113 %t121 = load ptr, ptr %t120 %t122 = load ptr, ptr %t92 %t123 = call i32 @lp_str_eq(ptr %t121, ptr %t122) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then20, label %ifend22 then20: %t125 = load ptr, ptr %t103 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 9 %t127 = load ptr, ptr %t126 store ptr %t127, ptr @g_g_err_file %t128 = load ptr, ptr %t103 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 8 %t130 = load i32, ptr %t129 store i32 %t130, ptr @g_g_err_line store i32 0, ptr @g_g_parsing %t131 = load ptr, ptr @g_g_rg_name %t132 = load i32, ptr %t0 %t133 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 0 %t134 = load ptr, ptr %t133 %t135 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 1 %t136 = load i32, ptr %t135 %t137 = icmp ult i32 %t132, %t136 br i1 %t137, label %ixok23, label %ixbad24 ixbad24: %t138 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t138, ptr @.fmt_bounds, ptr @.str1151, i32 %t132, i32 %t136) call void @exit(i32 1) unreachable ixok23: %t139 = getelementptr inbounds ptr, ptr %t134, i32 %t132 %t140 = load ptr, ptr %t139 %t141 = call ptr @lp_str_concat(ptr @.str1150, ptr %t140) %t142 = call ptr @lp_str_concat(ptr %t141, ptr @.str1152) %t143 = load ptr, ptr %t92 %t144 = call ptr @lp_str_concat(ptr %t142, ptr %t143) %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str1153) call void @fn_perr(ptr %t145) br label %ifend22 ifend22: %t146 = load i32, ptr %t104 %t147 = add i32 %t146, 1 store i32 %t147, ptr %t104 br label %wcond15 wend17: %t148 = load ptr, ptr %t58 %t149 = load ptr, ptr %t92 %t150 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 1 %t151 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 2 %t152 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 0 %t153 = load i32, ptr %t150 %t154 = load i32, ptr %t151 %t155 = icmp sge i32 %t153, %t154 br i1 %t155, label %grow25, label %put26 grow25: %t156 = mul i32 %t154, 2 %t157 = icmp eq i32 %t154, 0 %t158 = select i1 %t157, i32 8, i32 %t156 %t159 = getelementptr ptr, ptr null, i32 1 %t160 = ptrtoint ptr %t159 to i64 %t161 = zext i32 %t158 to i64 %t162 = mul i64 %t161, %t160 %t163 = load ptr, ptr %t152 %t164 = call ptr @realloc(ptr %t163, i64 %t162) store ptr %t164, ptr %t152 store i32 %t158, ptr %t151 br label %put26 put26: %t165 = load ptr, ptr %t152 %t166 = getelementptr inbounds ptr, ptr %t165, i32 %t153 store ptr %t149, ptr %t166 %t167 = add i32 %t153, 1 store i32 %t167, ptr %t150 %t169 = load i32, ptr %t39 %t170 = icmp ne i32 %t169, 0 %t171 = zext i1 %t170 to i32 store i32 %t171, ptr %t168 br i1 %t170, label %sc27, label %scend28 sc27: %t172 = load ptr, ptr %t103 %t173 = call i32 @fn_reg_rec_has(ptr %t172, ptr @.str1154) %t174 = icmp eq i32 %t173, 0 %t175 = zext i1 %t174 to i32 %t176 = icmp ne i32 %t175, 0 %t177 = zext i1 %t176 to i32 store i32 %t177, ptr %t168 br label %scend28 scend28: %t178 = load i32, ptr %t168 %t179 = icmp ne i32 %t178, 0 br i1 %t179, label %then29, label %ifend31 then29: %t180 = call ptr @fn_node(i32 42) store ptr %t180, ptr %t181 %t182 = load ptr, ptr %t181 %t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 1 store ptr @.str1155, ptr %t183 %t184 = call ptr @fn_node(i32 31) store ptr %t184, ptr %t185 %t186 = load ptr, ptr %t185 %t187 = getelementptr inbounds %Cmp_Node, ptr %t186, i32 0, i32 1 %t188 = load ptr, ptr %t92 store ptr %t188, ptr %t187 %t189 = load ptr, ptr %t181 %t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 4 %t191 = load ptr, ptr %t185 store ptr %t191, ptr %t190 %t192 = load ptr, ptr %t103 %t193 = getelementptr inbounds %Cmp_Node, ptr %t192, i32 0, i32 7 %t194 = load ptr, ptr %t193 %t195 = load ptr, ptr %t181 %t196 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 1 %t197 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 2 %t198 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 0 %t199 = load i32, ptr %t196 %t200 = load i32, ptr %t197 %t201 = icmp sge i32 %t199, %t200 br i1 %t201, label %grow32, label %put33 grow32: %t202 = mul i32 %t200, 2 %t203 = icmp eq i32 %t200, 0 %t204 = select i1 %t203, i32 8, i32 %t202 %t205 = getelementptr ptr, ptr null, i32 1 %t206 = ptrtoint ptr %t205 to i64 %t207 = zext i32 %t204 to i64 %t208 = mul i64 %t207, %t206 %t209 = load ptr, ptr %t198 %t210 = call ptr @realloc(ptr %t209, i64 %t208) store ptr %t210, ptr %t198 store i32 %t204, ptr %t197 br label %put33 put33: %t211 = load ptr, ptr %t198 %t212 = getelementptr inbounds ptr, ptr %t211, i32 %t199 store ptr %t195, ptr %t212 %t213 = add i32 %t199, 1 store i32 %t213, ptr %t196 br label %ifend31 ifend31: %t214 = load ptr, ptr %t25 %t215 = icmp ne ptr %t214, null %t216 = zext i1 %t215 to i32 %t217 = icmp ne i32 %t216, 0 br i1 %t217, label %then34, label %ifend36 then34: %t218 = load ptr, ptr %t103 %t219 = load ptr, ptr %t25 call void @fn_res_type_fields(ptr %t218, ptr %t219) br label %ifend36 ifend36: %t220 = call ptr @fn_node(i32 39) store ptr %t220, ptr %t221 %t222 = load ptr, ptr %t221 %t223 = getelementptr inbounds %Cmp_Node, ptr %t222, i32 0, i32 1 %t224 = load ptr, ptr %t22 store ptr %t224, ptr %t223 %t225 = load ptr, ptr %t221 %t226 = getelementptr inbounds %Cmp_Node, ptr %t225, i32 0, i32 4 %t227 = load ptr, ptr %t103 store ptr %t227, ptr %t226 %t228 = load ptr, ptr %t221 %t229 = getelementptr inbounds %Cmp_Node, ptr %t228, i32 0, i32 9 %t230 = load ptr, ptr %t103 %t231 = getelementptr inbounds %Cmp_Node, ptr %t230, i32 0, i32 9 %t232 = load ptr, ptr %t231 store ptr %t232, ptr %t229 %t233 = load ptr, ptr %t221 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 8 %t235 = load ptr, ptr %t103 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 8 %t237 = load i32, ptr %t236 store i32 %t237, ptr %t234 %t238 = load ptr, ptr %t41 %t239 = getelementptr inbounds %Cmp_Node, ptr %t238, i32 0, i32 7 %t240 = load ptr, ptr %t239 %t241 = load ptr, ptr %t221 %t242 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 1 %t243 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 2 %t244 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 0 %t245 = load i32, ptr %t242 %t246 = load i32, ptr %t243 %t247 = icmp sge i32 %t245, %t246 br i1 %t247, label %grow37, label %put38 grow37: %t248 = mul i32 %t246, 2 %t249 = icmp eq i32 %t246, 0 %t250 = select i1 %t249, i32 8, i32 %t248 %t251 = getelementptr ptr, ptr null, i32 1 %t252 = ptrtoint ptr %t251 to i64 %t253 = zext i32 %t250 to i64 %t254 = mul i64 %t253, %t252 %t255 = load ptr, ptr %t244 %t256 = call ptr @realloc(ptr %t255, i64 %t254) store ptr %t256, ptr %t244 store i32 %t250, ptr %t243 br label %put38 put38: %t257 = load ptr, ptr %t244 %t258 = getelementptr inbounds ptr, ptr %t257, i32 %t245 store ptr %t241, ptr %t258 %t259 = add i32 %t245, 1 store i32 %t259, ptr %t242 %t260 = load ptr, ptr %t11 %t261 = load ptr, ptr @g_g_rg_prefix %t262 = load i32, ptr %t0 %t263 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 0 %t264 = load ptr, ptr %t263 %t265 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 1 %t266 = load i32, ptr %t265 %t267 = icmp ult i32 %t262, %t266 br i1 %t267, label %ixok39, label %ixbad40 ixbad40: %t268 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t268, ptr @.fmt_bounds, ptr @.str1156, i32 %t262, i32 %t266) call void @exit(i32 1) unreachable ixok39: %t269 = getelementptr inbounds ptr, ptr %t264, i32 %t262 %t270 = load ptr, ptr %t269 %t271 = call ptr @lp_str_concat(ptr %t270, ptr @.str1157) %t272 = load ptr, ptr %t92 %t273 = call ptr @fn_reg_upper(ptr %t272) %t274 = call ptr @lp_str_concat(ptr %t271, ptr %t273) %t275 = load i32, ptr %t59 call void @fn_reg_const(ptr %t260, ptr %t274, i32 %t275) %t276 = load i32, ptr %t59 %t277 = add i32 %t276, 1 store i32 %t277, ptr %t59 %t278 = load i32, ptr %t63 %t279 = add i32 %t278, 1 store i32 %t279, ptr %t63 br label %wcond6 wend8: %t280 = load ptr, ptr %t11 %t281 = load ptr, ptr @g_g_rg_prefix %t282 = load i32, ptr %t0 %t283 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 0 %t284 = load ptr, ptr %t283 %t285 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 1 %t286 = load i32, ptr %t285 %t287 = icmp ult i32 %t282, %t286 br i1 %t287, label %ixok41, label %ixbad42 ixbad42: %t288 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t288, ptr @.fmt_bounds, ptr @.str1158, i32 %t282, i32 %t286) call void @exit(i32 1) unreachable ixok41: %t289 = getelementptr inbounds ptr, ptr %t284, i32 %t282 %t290 = load ptr, ptr %t289 %t291 = call ptr @lp_str_concat(ptr %t290, ptr @.str1159) %t292 = load i32, ptr %t59 call void @fn_reg_const(ptr %t280, ptr %t291, i32 %t292) %t293 = load i32, ptr %t59 %t294 = icmp eq i32 %t293, 0 %t295 = zext i1 %t294 to i32 %t296 = icmp ne i32 %t295, 0 br i1 %t296, label %then43, label %else44 then43: %t297 = call ptr @fn_node(i32 39) store ptr %t297, ptr %t298 %t299 = load ptr, ptr %t298 %t300 = getelementptr inbounds %Cmp_Node, ptr %t299, i32 0, i32 1 %t301 = load ptr, ptr %t11 %t302 = getelementptr inbounds %Cmp_Node, ptr %t301, i32 0, i32 3 %t303 = load ptr, ptr %t302 store ptr %t303, ptr %t300 %t304 = load ptr, ptr %t298 %t305 = getelementptr inbounds %Cmp_Node, ptr %t304, i32 0, i32 9 %t306 = load ptr, ptr %t11 %t307 = getelementptr inbounds %Cmp_Node, ptr %t306, i32 0, i32 9 %t308 = load ptr, ptr %t307 store ptr %t308, ptr %t305 %t309 = load ptr, ptr %t11 %t310 = getelementptr inbounds %Cmp_Node, ptr %t309, i32 0, i32 4 %t311 = load ptr, ptr %t298 store ptr %t311, ptr %t310 br label %ifend45 else44: %t312 = load ptr, ptr %t11 %t313 = getelementptr inbounds %Cmp_Node, ptr %t312, i32 0, i32 4 %t314 = load ptr, ptr %t41 store ptr %t314, ptr %t313 br label %ifend45 ifend45: %t315 = load i32, ptr %t39 %t316 = icmp ne i32 %t315, 0 br i1 %t316, label %then46, label %ifend48 then46: %t317 = load ptr, ptr %t11 call void @fn_reg_find_fn(ptr %t317) br label %ifend48 ifend48: br label %ret ret: ret void } define void @fn_reg_find_fn(ptr %arg_v) { entry: %t0 = alloca ptr %t6 = alloca ptr %t20 = alloca ptr %t22 = alloca ptr %t24 = alloca i32 %t26 = alloca ptr %t28 = alloca i32 %t39 = alloca i32 %t41 = alloca i32 store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_reg_lower(ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str1160) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @lp_str_concat(ptr @.str1161, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str1162) %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr %t11 %t13 = call ptr @lp_str_concat(ptr %t9, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str1163) %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = call ptr @lp_str_concat(ptr %t14, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str1164) store ptr %t19, ptr %t20 %t21 = load ptr, ptr @g_toks store ptr %t21, ptr %t22 %t23 = load i32, ptr @g_pi store i32 %t23, ptr %t24 %t25 = load ptr, ptr @g_g_parse_file store ptr %t25, ptr %t26 %t27 = load i32, ptr @g_g_parsing store i32 %t27, ptr %t28 %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 9 %t31 = load ptr, ptr %t30 store ptr %t31, ptr @g_g_parse_file store i32 1, ptr @g_g_parsing %t32 = load ptr, ptr %t20 %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 8 %t35 = load i32, ptr %t34 call void @fn_lex_at(ptr %t32, i32 %t35) store i32 0, ptr @g_pi %t36 = load ptr, ptr @g_prog %t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t38 = load i32, ptr %t37 store i32 %t38, ptr %t39 call void @fn_skipnl() call void @fn_parse_one_decl() %t40 = load i32, ptr %t39 store i32 %t40, ptr %t41 br label %wcond0 wcond0: %t42 = load i32, ptr %t41 %t43 = load ptr, ptr @g_prog %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t45 = load i32, ptr %t44 %t46 = icmp slt i32 %t42, %t45 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %wbody1, label %wend2 wbody1: %t49 = load ptr, ptr @g_prog %t50 = load i32, ptr %t41 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp ult i32 %t50, %t54 br i1 %t55, label %ixok3, label %ixbad4 ixbad4: %t56 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t56, ptr @.fmt_bounds, ptr @.str1165, i32 %t50, i32 %t54) call void @exit(i32 1) unreachable ixok3: %t57 = getelementptr inbounds ptr, ptr %t52, i32 %t50 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 10 %t60 = load ptr, ptr %t0 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 10 %t62 = load i32, ptr %t61 store i32 %t62, ptr %t59 %t63 = load i32, ptr %t41 %t64 = add i32 %t63, 1 store i32 %t64, ptr %t41 br label %wcond0 wend2: %t65 = load ptr, ptr %t22 store ptr %t65, ptr @g_toks %t66 = load i32, ptr %t24 store i32 %t66, ptr @g_pi %t67 = load ptr, ptr %t26 store ptr %t67, ptr @g_g_parse_file %t68 = load i32, ptr %t28 store i32 %t68, ptr @g_g_parsing br label %ret ret: ret void } define void @fn_reg_def_check(i32 %arg_d) { entry: %t0 = alloca i32 %t12 = alloca i32 %t23 = alloca ptr %t34 = alloca ptr %t39 = alloca ptr %t44 = alloca ptr %t45 = alloca i32 %t64 = alloca i32 store i32 %arg_d, ptr %t0 %t1 = load ptr, ptr @g_g_df_reg %t2 = load i32, ptr %t0 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str1166, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 %t11 = call i32 @fn_reg_find(ptr %t10) store i32 %t11, ptr %t12 %t13 = load ptr, ptr @g_g_rg_var %t14 = load i32, ptr %t12 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok2, label %ixbad3 ixbad3: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str1167, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok2: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 store ptr %t22, ptr %t23 %t24 = load ptr, ptr @g_g_df_rec %t25 = load i32, ptr %t0 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok4, label %ixbad5 ixbad5: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1168, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok4: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t23 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 9 %t37 = load ptr, ptr %t36 %t38 = call ptr @fn_module_of(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t34 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 9 %t42 = load ptr, ptr %t41 %t43 = call ptr @fn_module_of(ptr %t42) store ptr %t43, ptr %t44 %t46 = load ptr, ptr %t39 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str1169) %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t45 br i1 %t48, label %scend7, label %sc6 sc6: %t50 = load ptr, ptr %t44 %t51 = load ptr, ptr %t39 %t52 = call i32 @lp_str_eq(ptr %t50, ptr %t51) %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t45 br label %scend7 scend7: %t55 = load i32, ptr %t45 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then8, label %ifend10 then8: br label %ret ifend10: %t57 = load ptr, ptr %t34 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 9 %t59 = load ptr, ptr %t58 store ptr %t59, ptr @g_g_err_file %t60 = load ptr, ptr %t34 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 8 %t62 = load i32, ptr %t61 store i32 %t62, ptr @g_g_err_line %t63 = load i32, ptr @g_g_parsing store i32 %t63, ptr %t64 store i32 0, ptr @g_g_parsing %t65 = load ptr, ptr @g_g_rg_open %t66 = load i32, ptr %t12 %t67 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 0 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t70 = load i32, ptr %t69 %t71 = icmp ult i32 %t66, %t70 br i1 %t71, label %ixok11, label %ixbad12 ixbad12: %t72 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t72, ptr @.fmt_bounds, ptr @.str1170, i32 %t66, i32 %t70) call void @exit(i32 1) unreachable ixok11: %t73 = getelementptr inbounds i32, ptr %t68, i32 %t66 %t74 = load i32, ptr %t73 %t75 = icmp eq i32 %t74, 0 %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then13, label %ifend15 then13: %t78 = load ptr, ptr %t23 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 1 %t80 = load ptr, ptr %t79 %t81 = call ptr @lp_str_concat(ptr @.str1171, ptr %t80) %t82 = call ptr @lp_str_concat(ptr %t81, ptr @.str1172) %t83 = load ptr, ptr @g_g_df_key %t84 = load i32, ptr %t0 %t85 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 0 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t88 = load i32, ptr %t87 %t89 = icmp ult i32 %t84, %t88 br i1 %t89, label %ixok16, label %ixbad17 ixbad17: %t90 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t90, ptr @.fmt_bounds, ptr @.str1173, i32 %t84, i32 %t88) call void @exit(i32 1) unreachable ixok16: %t91 = getelementptr inbounds ptr, ptr %t86, i32 %t84 %t92 = load ptr, ptr %t91 %t93 = call ptr @lp_str_concat(ptr %t82, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str1174) %t95 = load ptr, ptr %t23 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 %t98 = call ptr @lp_str_concat(ptr %t94, ptr %t97) %t99 = call ptr @lp_str_concat(ptr %t98, ptr @.str1175) %t100 = load ptr, ptr %t23 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 1 %t102 = load ptr, ptr %t101 %t103 = call ptr @lp_str_concat(ptr %t99, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str1176) %t105 = load ptr, ptr %t39 %t106 = call ptr @lp_str_concat(ptr %t104, ptr %t105) %t107 = call ptr @lp_str_concat(ptr %t106, ptr @.str1177) call void @fn_perr(ptr %t107) br label %ifend15 ifend15: %t108 = load ptr, ptr %t23 %t109 = load ptr, ptr %t23 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 1 %t111 = load ptr, ptr %t110 call void @fn_vis_check(ptr %t108, ptr %t111) %t112 = load i32, ptr %t64 store i32 %t112, ptr @g_g_parsing br label %ret ret: ret void } define i32 @fn_reg_str_less(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t4 = load i32, ptr %t2 %t5 = load ptr, ptr %t0 %t6 = call i64 @strlen(ptr %t5) %t7 = trunc i64 %t6 to i32 %t8 = icmp slt i32 %t4, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br i1 %t10, label %sc3, label %scend4 sc3: %t12 = load i32, ptr %t2 %t13 = load ptr, ptr %t1 %t14 = call i64 @strlen(ptr %t13) %t15 = trunc i64 %t14 to i32 %t16 = icmp slt i32 %t12, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t3 br label %scend4 scend4: %t20 = load i32, ptr %t3 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %wbody1, label %wend2 wbody1: %t22 = load ptr, ptr %t0 %t23 = load i32, ptr %t2 %t24 = getelementptr inbounds i8, ptr %t22, i32 %t23 %t25 = load i8, ptr %t24 %t26 = zext i8 %t25 to i32 %t27 = load ptr, ptr %t1 %t28 = load i32, ptr %t2 %t29 = getelementptr inbounds i8, ptr %t27, i32 %t28 %t30 = load i8, ptr %t29 %t31 = zext i8 %t30 to i32 %t32 = icmp ne i32 %t26, %t31 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load ptr, ptr %t0 %t36 = load i32, ptr %t2 %t37 = getelementptr inbounds i8, ptr %t35, i32 %t36 %t38 = load i8, ptr %t37 %t39 = zext i8 %t38 to i32 %t40 = load ptr, ptr %t1 %t41 = load i32, ptr %t2 %t42 = getelementptr inbounds i8, ptr %t40, i32 %t41 %t43 = load i8, ptr %t42 %t44 = zext i8 %t43 to i32 %t45 = icmp slt i32 %t39, %t44 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %retval br label %ret ifend7: %t47 = load i32, ptr %t2 %t48 = add i32 %t47, 1 store i32 %t48, ptr %t2 br label %wcond0 wend2: %t49 = load ptr, ptr %t0 %t50 = call i64 @strlen(ptr %t49) %t51 = trunc i64 %t50 to i32 %t52 = load ptr, ptr %t1 %t53 = call i64 @strlen(ptr %t52) %t54 = trunc i64 %t53 to i32 %t55 = icmp slt i32 %t51, %t54 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %retval br label %ret ret: %t57 = load i32, ptr %retval ret i32 %t57 } define ptr @fn_reg_order(i32 %arg_r) { entry: %retval = alloca ptr %t0 = alloca i32 %t7 = alloca ptr %t21 = alloca ptr %t28 = alloca ptr %t29 = alloca i32 %t72 = alloca ptr %t97 = alloca i32 %t98 = alloca i32 %t147 = alloca i32 %t165 = alloca ptr %t168 = alloca i32 %t169 = alloca i32 %t240 = alloca i32 store i32 %arg_r, ptr %t0 %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 %t8 = load ptr, ptr @g_g_rg_var %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok0, label %ixbad1 ixbad1: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str1178, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok0: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 9 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_module_of(ptr %t19) store ptr %t20, ptr %t21 %t22 = getelementptr %LSlice, ptr null, i32 1 %t23 = ptrtoint ptr %t22 to i64 %t24 = call ptr @malloc(i64 %t23) %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 store ptr null, ptr %t25 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 store i32 0, ptr %t26 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 store i32 0, ptr %t27 store ptr %t24, ptr %t28 store i32 0, ptr %t29 br label %wcond2 wcond2: %t30 = load i32, ptr %t29 %t31 = load ptr, ptr @g_g_df_reg %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp slt i32 %t30, %t33 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %wbody3, label %wend4 wbody3: %t37 = load ptr, ptr @g_g_df_reg %t38 = load i32, ptr %t29 %t39 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp ult i32 %t38, %t42 br i1 %t43, label %ixok5, label %ixbad6 ixbad6: %t44 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t44, ptr @.fmt_bounds, ptr @.str1179, i32 %t38, i32 %t42) call void @exit(i32 1) unreachable ixok5: %t45 = getelementptr inbounds ptr, ptr %t40, i32 %t38 %t46 = load ptr, ptr %t45 %t47 = load ptr, ptr @g_g_rg_name %t48 = load i32, ptr %t0 %t49 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 %t48, %t52 br i1 %t53, label %ixok7, label %ixbad8 ixbad8: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str1180, i32 %t48, i32 %t52) call void @exit(i32 1) unreachable ixok7: %t55 = getelementptr inbounds ptr, ptr %t50, i32 %t48 %t56 = load ptr, ptr %t55 %t57 = call i32 @lp_str_eq(ptr %t46, ptr %t56) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then9, label %ifend11 then9: %t59 = load ptr, ptr @g_g_df_rec %t60 = load i32, ptr %t29 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 %t60, %t64 br i1 %t65, label %ixok12, label %ixbad13 ixbad13: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str1181, i32 %t60, i32 %t64) call void @exit(i32 1) unreachable ixok12: %t67 = getelementptr inbounds ptr, ptr %t62, i32 %t60 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 9 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_module_of(ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t72 %t74 = load ptr, ptr %t21 %t75 = call i32 @lp_str_eq(ptr %t73, ptr %t74) %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then14, label %else15 then14: %t77 = load ptr, ptr %t7 %t78 = load i32, ptr %t29 %t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 %t80 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 2 %t81 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 %t82 = load i32, ptr %t79 %t83 = load i32, ptr %t80 %t84 = icmp sge i32 %t82, %t83 br i1 %t84, label %grow17, label %put18 grow17: %t85 = mul i32 %t83, 2 %t86 = icmp eq i32 %t83, 0 %t87 = select i1 %t86, i32 8, i32 %t85 %t88 = getelementptr i32, ptr null, i32 1 %t89 = ptrtoint ptr %t88 to i64 %t90 = zext i32 %t87 to i64 %t91 = mul i64 %t90, %t89 %t92 = load ptr, ptr %t81 %t93 = call ptr @realloc(ptr %t92, i64 %t91) store ptr %t93, ptr %t81 store i32 %t87, ptr %t80 br label %put18 put18: %t94 = load ptr, ptr %t81 %t95 = getelementptr inbounds i32, ptr %t94, i32 %t82 store i32 %t78, ptr %t95 %t96 = add i32 %t82, 1 store i32 %t96, ptr %t79 br label %ifend16 else15: store i32 0, ptr %t97 store i32 0, ptr %t98 br label %wcond19 wcond19: %t99 = load i32, ptr %t98 %t100 = load ptr, ptr %t28 %t101 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp slt i32 %t99, %t102 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %wbody20, label %wend21 wbody20: %t106 = load ptr, ptr %t28 %t107 = load i32, ptr %t98 %t108 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 0 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 1 %t111 = load i32, ptr %t110 %t112 = icmp ult i32 %t107, %t111 br i1 %t112, label %ixok22, label %ixbad23 ixbad23: %t113 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t113, ptr @.fmt_bounds, ptr @.str1182, i32 %t107, i32 %t111) call void @exit(i32 1) unreachable ixok22: %t114 = getelementptr inbounds ptr, ptr %t109, i32 %t107 %t115 = load ptr, ptr %t114 %t116 = load ptr, ptr %t72 %t117 = call i32 @lp_str_eq(ptr %t115, ptr %t116) %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then24, label %ifend26 then24: store i32 1, ptr %t97 br label %ifend26 ifend26: %t119 = load i32, ptr %t98 %t120 = add i32 %t119, 1 store i32 %t120, ptr %t98 br label %wcond19 wend21: %t121 = load i32, ptr %t97 %t122 = icmp eq i32 %t121, 0 %t123 = zext i1 %t122 to i32 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then27, label %ifend29 then27: %t125 = load ptr, ptr %t28 %t126 = load ptr, ptr %t72 %t127 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 1 %t128 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 2 %t129 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 0 %t130 = load i32, ptr %t127 %t131 = load i32, ptr %t128 %t132 = icmp sge i32 %t130, %t131 br i1 %t132, label %grow30, label %put31 grow30: %t133 = mul i32 %t131, 2 %t134 = icmp eq i32 %t131, 0 %t135 = select i1 %t134, i32 8, i32 %t133 %t136 = getelementptr ptr, ptr null, i32 1 %t137 = ptrtoint ptr %t136 to i64 %t138 = zext i32 %t135 to i64 %t139 = mul i64 %t138, %t137 %t140 = load ptr, ptr %t129 %t141 = call ptr @realloc(ptr %t140, i64 %t139) store ptr %t141, ptr %t129 store i32 %t135, ptr %t128 br label %put31 put31: %t142 = load ptr, ptr %t129 %t143 = getelementptr inbounds ptr, ptr %t142, i32 %t130 store ptr %t126, ptr %t143 %t144 = add i32 %t130, 1 store i32 %t144, ptr %t127 br label %ifend29 ifend29: br label %ifend16 ifend16: br label %ifend11 ifend11: %t145 = load i32, ptr %t29 %t146 = add i32 %t145, 1 store i32 %t146, ptr %t29 br label %wcond2 wend4: store i32 1, ptr %t147 br label %wcond32 wcond32: %t148 = load i32, ptr %t147 %t149 = load ptr, ptr %t28 %t150 = getelementptr inbounds %LSlice, ptr %t149, i32 0, i32 1 %t151 = load i32, ptr %t150 %t152 = icmp slt i32 %t148, %t151 %t153 = zext i1 %t152 to i32 %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %wbody33, label %wend34 wbody33: %t155 = load ptr, ptr %t28 %t156 = load i32, ptr %t147 %t157 = getelementptr inbounds %LSlice, ptr %t155, i32 0, i32 0 %t158 = load ptr, ptr %t157 %t159 = getelementptr inbounds %LSlice, ptr %t155, i32 0, i32 1 %t160 = load i32, ptr %t159 %t161 = icmp ult i32 %t156, %t160 br i1 %t161, label %ixok35, label %ixbad36 ixbad36: %t162 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t162, ptr @.fmt_bounds, ptr @.str1183, i32 %t156, i32 %t160) call void @exit(i32 1) unreachable ixok35: %t163 = getelementptr inbounds ptr, ptr %t158, i32 %t156 %t164 = load ptr, ptr %t163 store ptr %t164, ptr %t165 %t166 = load i32, ptr %t147 %t167 = sub i32 %t166, 1 store i32 %t167, ptr %t168 br label %wcond37 wcond37: %t170 = load i32, ptr %t168 %t171 = icmp sge i32 %t170, 0 %t172 = zext i1 %t171 to i32 %t173 = icmp ne i32 %t172, 0 %t174 = zext i1 %t173 to i32 store i32 %t174, ptr %t169 br i1 %t173, label %sc40, label %scend41 sc40: %t175 = load ptr, ptr %t165 %t176 = load ptr, ptr %t28 %t177 = load i32, ptr %t168 %t178 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 0 %t179 = load ptr, ptr %t178 %t180 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 1 %t181 = load i32, ptr %t180 %t182 = icmp ult i32 %t177, %t181 br i1 %t182, label %ixok42, label %ixbad43 ixbad43: %t183 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t183, ptr @.fmt_bounds, ptr @.str1184, i32 %t177, i32 %t181) call void @exit(i32 1) unreachable ixok42: %t184 = getelementptr inbounds ptr, ptr %t179, i32 %t177 %t185 = load ptr, ptr %t184 %t186 = call i32 @fn_reg_str_less(ptr %t175, ptr %t185) %t187 = icmp ne i32 %t186, 0 %t188 = zext i1 %t187 to i32 store i32 %t188, ptr %t169 br label %scend41 scend41: %t189 = load i32, ptr %t169 %t190 = icmp ne i32 %t189, 0 br i1 %t190, label %wbody38, label %wend39 wbody38: %t191 = load ptr, ptr %t28 %t192 = load i32, ptr %t168 %t193 = add i32 %t192, 1 %t194 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 0 %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 1 %t197 = load i32, ptr %t196 %t198 = icmp ult i32 %t193, %t197 br i1 %t198, label %ixok44, label %ixbad45 ixbad45: %t199 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t199, ptr @.fmt_bounds, ptr @.str1185, i32 %t193, i32 %t197) call void @exit(i32 1) unreachable ixok44: %t200 = getelementptr inbounds ptr, ptr %t195, i32 %t193 %t201 = load ptr, ptr %t28 %t202 = load i32, ptr %t168 %t203 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 0 %t204 = load ptr, ptr %t203 %t205 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 1 %t206 = load i32, ptr %t205 %t207 = icmp ult i32 %t202, %t206 br i1 %t207, label %ixok46, label %ixbad47 ixbad47: %t208 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t208, ptr @.fmt_bounds, ptr @.str1186, i32 %t202, i32 %t206) call void @exit(i32 1) unreachable ixok46: %t209 = getelementptr inbounds ptr, ptr %t204, i32 %t202 %t210 = load ptr, ptr %t209 store ptr %t210, ptr %t200 %t211 = load i32, ptr %t168 %t212 = sub i32 %t211, 1 store i32 %t212, ptr %t168 br label %wcond37 wend39: %t213 = load ptr, ptr %t28 %t214 = load i32, ptr %t168 %t215 = add i32 %t214, 1 %t216 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 0 %t217 = load ptr, ptr %t216 %t218 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 1 %t219 = load i32, ptr %t218 %t220 = icmp ult i32 %t215, %t219 br i1 %t220, label %ixok48, label %ixbad49 ixbad49: %t221 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t221, ptr @.fmt_bounds, ptr @.str1187, i32 %t215, i32 %t219) call void @exit(i32 1) unreachable ixok48: %t222 = getelementptr inbounds ptr, ptr %t217, i32 %t215 %t223 = load ptr, ptr %t165 store ptr %t223, ptr %t222 %t224 = load i32, ptr %t147 %t225 = add i32 %t224, 1 store i32 %t225, ptr %t147 br label %wcond32 wend34: store i32 0, ptr %t147 br label %wcond50 wcond50: %t226 = load i32, ptr %t147 %t227 = load ptr, ptr %t28 %t228 = getelementptr inbounds %LSlice, ptr %t227, i32 0, i32 1 %t229 = load i32, ptr %t228 %t230 = icmp slt i32 %t226, %t229 %t231 = zext i1 %t230 to i32 %t232 = icmp ne i32 %t231, 0 br i1 %t232, label %wbody51, label %wend52 wbody51: store i32 0, ptr %t29 br label %wcond53 wcond53: %t233 = load i32, ptr %t29 %t234 = load ptr, ptr @g_g_df_reg %t235 = getelementptr inbounds %LSlice, ptr %t234, i32 0, i32 1 %t236 = load i32, ptr %t235 %t237 = icmp slt i32 %t233, %t236 %t238 = zext i1 %t237 to i32 %t239 = icmp ne i32 %t238, 0 br i1 %t239, label %wbody54, label %wend55 wbody54: %t241 = load ptr, ptr @g_g_df_reg %t242 = load i32, ptr %t29 %t243 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 0 %t244 = load ptr, ptr %t243 %t245 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 1 %t246 = load i32, ptr %t245 %t247 = icmp ult i32 %t242, %t246 br i1 %t247, label %ixok56, label %ixbad57 ixbad57: %t248 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t248, ptr @.fmt_bounds, ptr @.str1188, i32 %t242, i32 %t246) call void @exit(i32 1) unreachable ixok56: %t249 = getelementptr inbounds ptr, ptr %t244, i32 %t242 %t250 = load ptr, ptr %t249 %t251 = load ptr, ptr @g_g_rg_name %t252 = load i32, ptr %t0 %t253 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 0 %t254 = load ptr, ptr %t253 %t255 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 1 %t256 = load i32, ptr %t255 %t257 = icmp ult i32 %t252, %t256 br i1 %t257, label %ixok58, label %ixbad59 ixbad59: %t258 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t258, ptr @.fmt_bounds, ptr @.str1189, i32 %t252, i32 %t256) call void @exit(i32 1) unreachable ixok58: %t259 = getelementptr inbounds ptr, ptr %t254, i32 %t252 %t260 = load ptr, ptr %t259 %t261 = call i32 @lp_str_eq(ptr %t250, ptr %t260) %t262 = icmp ne i32 %t261, 0 %t263 = zext i1 %t262 to i32 store i32 %t263, ptr %t240 br i1 %t262, label %sc60, label %scend61 sc60: %t264 = load ptr, ptr @g_g_df_rec %t265 = load i32, ptr %t29 %t266 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 0 %t267 = load ptr, ptr %t266 %t268 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 1 %t269 = load i32, ptr %t268 %t270 = icmp ult i32 %t265, %t269 br i1 %t270, label %ixok62, label %ixbad63 ixbad63: %t271 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t271, ptr @.fmt_bounds, ptr @.str1190, i32 %t265, i32 %t269) call void @exit(i32 1) unreachable ixok62: %t272 = getelementptr inbounds ptr, ptr %t267, i32 %t265 %t273 = load ptr, ptr %t272 %t274 = getelementptr inbounds %Cmp_Node, ptr %t273, i32 0, i32 9 %t275 = load ptr, ptr %t274 %t276 = call ptr @fn_module_of(ptr %t275) %t277 = load ptr, ptr %t28 %t278 = load i32, ptr %t147 %t279 = getelementptr inbounds %LSlice, ptr %t277, i32 0, i32 0 %t280 = load ptr, ptr %t279 %t281 = getelementptr inbounds %LSlice, ptr %t277, i32 0, i32 1 %t282 = load i32, ptr %t281 %t283 = icmp ult i32 %t278, %t282 br i1 %t283, label %ixok64, label %ixbad65 ixbad65: %t284 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t284, ptr @.fmt_bounds, ptr @.str1191, i32 %t278, i32 %t282) call void @exit(i32 1) unreachable ixok64: %t285 = getelementptr inbounds ptr, ptr %t280, i32 %t278 %t286 = load ptr, ptr %t285 %t287 = call i32 @lp_str_eq(ptr %t276, ptr %t286) %t288 = icmp ne i32 %t287, 0 %t289 = zext i1 %t288 to i32 store i32 %t289, ptr %t240 br label %scend61 scend61: %t290 = load i32, ptr %t240 %t291 = icmp ne i32 %t290, 0 br i1 %t291, label %then66, label %ifend68 then66: %t292 = load ptr, ptr %t7 %t293 = load i32, ptr %t29 %t294 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 1 %t295 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 2 %t296 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 0 %t297 = load i32, ptr %t294 %t298 = load i32, ptr %t295 %t299 = icmp sge i32 %t297, %t298 br i1 %t299, label %grow69, label %put70 grow69: %t300 = mul i32 %t298, 2 %t301 = icmp eq i32 %t298, 0 %t302 = select i1 %t301, i32 8, i32 %t300 %t303 = getelementptr i32, ptr null, i32 1 %t304 = ptrtoint ptr %t303 to i64 %t305 = zext i32 %t302 to i64 %t306 = mul i64 %t305, %t304 %t307 = load ptr, ptr %t296 %t308 = call ptr @realloc(ptr %t307, i64 %t306) store ptr %t308, ptr %t296 store i32 %t302, ptr %t295 br label %put70 put70: %t309 = load ptr, ptr %t296 %t310 = getelementptr inbounds i32, ptr %t309, i32 %t297 store i32 %t293, ptr %t310 %t311 = add i32 %t297, 1 store i32 %t311, ptr %t294 br label %ifend68 ifend68: %t312 = load i32, ptr %t29 %t313 = add i32 %t312, 1 store i32 %t313, ptr %t29 br label %wcond53 wend55: %t314 = load i32, ptr %t147 %t315 = add i32 %t314, 1 store i32 %t315, ptr %t147 br label %wcond50 wend52: %t316 = load ptr, ptr %t7 store ptr %t316, ptr %retval br label %ret ret: %t317 = load ptr, ptr %retval ret ptr %t317 } define ptr @fn_res_path(ptr %arg_from, ptr %arg_declaring) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_from, ptr %t0 store ptr %arg_declaring, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_read_file(ptr %t2) %t4 = icmp ne ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 store ptr %t7, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t1 %t9 = call ptr @fn_dir_of(ptr %t8) %t10 = load ptr, ptr %t0 %t11 = call ptr @fn_join_path(ptr %t9, ptr %t10) store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define void @fn_res_read(ptr %arg_v, ptr %arg_from) { entry: %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_v, ptr %t0 store ptr %arg_from, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1 %t4 = load ptr, ptr %t3 %t5 = load ptr, ptr %t1 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr @.str1192, ptr %t8) call void @fn_res_read_into(ptr %t4, ptr %t5, ptr %t9) br label %ret ret: ret void } define void @fn_res_read_into(ptr %arg_reg, ptr %arg_from, ptr %arg_who) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t6 = alloca ptr %t9 = alloca ptr %t19 = alloca ptr %t21 = alloca i32 %t23 = alloca ptr %t25 = alloca i32 %t35 = alloca i32 %t87 = alloca ptr %t89 = alloca ptr store ptr %arg_reg, ptr %t0 store ptr %arg_from, ptr %t1 store ptr %arg_who, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = load ptr, ptr @g_g_parse_file %t5 = call ptr @fn_res_path(ptr %t3, ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_read_file(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = icmp eq ptr %t10, null %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t2 %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str1193) %t16 = load ptr, ptr %t1 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) call void @fn_perr(ptr %t17) br label %ifend2 ifend2: %t18 = load ptr, ptr @g_toks store ptr %t18, ptr %t19 %t20 = load i32, ptr @g_pi store i32 %t20, ptr %t21 %t22 = load ptr, ptr @g_g_parse_file store ptr %t22, ptr %t23 %t24 = load i32, ptr @g_g_parsing store i32 %t24, ptr %t25 %t26 = load ptr, ptr %t23 %t27 = call ptr @fn_module_of(ptr %t26) %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str1194) %t29 = icmp eq i32 %t28, 0 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then3, label %ifend5 then3: %t32 = load ptr, ptr %t6 %t33 = load ptr, ptr %t23 %t34 = call ptr @fn_module_of(ptr %t33) call void @fn_module_set(ptr %t32, ptr %t34) br label %ifend5 ifend5: %t36 = load ptr, ptr %t23 %t37 = call i32 @fn_is_float_file(ptr %t36) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t35 br i1 %t38, label %sc6, label %scend7 sc6: %t40 = load ptr, ptr %t6 %t41 = call i32 @fn_is_float_file(ptr %t40) %t42 = icmp eq i32 %t41, 0 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t35 br label %scend7 scend7: %t46 = load i32, ptr %t35 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then8, label %ifend10 then8: %t48 = load ptr, ptr @g_g_float_files %t49 = load ptr, ptr %t6 %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 2 %t52 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t53 = load i32, ptr %t50 %t54 = load i32, ptr %t51 %t55 = icmp sge i32 %t53, %t54 br i1 %t55, label %grow11, label %put12 grow11: %t56 = mul i32 %t54, 2 %t57 = icmp eq i32 %t54, 0 %t58 = select i1 %t57, i32 8, i32 %t56 %t59 = getelementptr ptr, ptr null, i32 1 %t60 = ptrtoint ptr %t59 to i64 %t61 = zext i32 %t58 to i64 %t62 = mul i64 %t61, %t60 %t63 = load ptr, ptr %t52 %t64 = call ptr @realloc(ptr %t63, i64 %t62) store ptr %t64, ptr %t52 store i32 %t58, ptr %t51 br label %put12 put12: %t65 = load ptr, ptr %t52 %t66 = getelementptr inbounds ptr, ptr %t65, i32 %t53 store ptr %t49, ptr %t66 %t67 = add i32 %t53, 1 store i32 %t67, ptr %t50 br label %ifend10 ifend10: %t68 = load ptr, ptr %t6 store ptr %t68, ptr @g_g_parse_file store i32 1, ptr @g_g_parsing store i32 1, ptr @g_g_res_mode %t69 = load ptr, ptr %t9 call void @fn_lex_at(ptr %t69, i32 1) store i32 0, ptr @g_pi br label %wcond13 wcond13: %t70 = icmp ne i32 1, 0 br i1 %t70, label %wbody14, label %wend15 wbody14: call void @fn_skipnl() %t71 = load ptr, ptr @g_toks %t72 = load i32, ptr @g_pi %t73 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp ult i32 %t72, %t76 br i1 %t77, label %ixok16, label %ixbad17 ixbad17: %t78 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t78, ptr @.fmt_bounds, ptr @.str1195, i32 %t72, i32 %t76) call void @exit(i32 1) unreachable ixok16: %t79 = getelementptr inbounds ptr, ptr %t74, i32 %t72 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Tok, ptr %t80, i32 0, i32 0 %t82 = load i32, ptr %t81 %t83 = icmp eq i32 %t82, 5 %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then18, label %ifend20 then18: br label %wend15 ifend20: %t86 = call ptr @fn_eat_id() store ptr %t86, ptr %t87 call void @fn_skipnl() %t88 = call ptr @fn_record() store ptr %t88, ptr %t89 %t90 = load ptr, ptr @g_g_df_reg %t91 = load ptr, ptr %t0 %t92 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t93 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 2 %t94 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 0 %t95 = load i32, ptr %t92 %t96 = load i32, ptr %t93 %t97 = icmp sge i32 %t95, %t96 br i1 %t97, label %grow21, label %put22 grow21: %t98 = mul i32 %t96, 2 %t99 = icmp eq i32 %t96, 0 %t100 = select i1 %t99, i32 8, i32 %t98 %t101 = getelementptr ptr, ptr null, i32 1 %t102 = ptrtoint ptr %t101 to i64 %t103 = zext i32 %t100 to i64 %t104 = mul i64 %t103, %t102 %t105 = load ptr, ptr %t94 %t106 = call ptr @realloc(ptr %t105, i64 %t104) store ptr %t106, ptr %t94 store i32 %t100, ptr %t93 br label %put22 put22: %t107 = load ptr, ptr %t94 %t108 = getelementptr inbounds ptr, ptr %t107, i32 %t95 store ptr %t91, ptr %t108 %t109 = add i32 %t95, 1 store i32 %t109, ptr %t92 %t110 = load ptr, ptr @g_g_df_key %t111 = load ptr, ptr %t87 %t112 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 %t113 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 2 %t114 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 %t115 = load i32, ptr %t112 %t116 = load i32, ptr %t113 %t117 = icmp sge i32 %t115, %t116 br i1 %t117, label %grow23, label %put24 grow23: %t118 = mul i32 %t116, 2 %t119 = icmp eq i32 %t116, 0 %t120 = select i1 %t119, i32 8, i32 %t118 %t121 = getelementptr ptr, ptr null, i32 1 %t122 = ptrtoint ptr %t121 to i64 %t123 = zext i32 %t120 to i64 %t124 = mul i64 %t123, %t122 %t125 = load ptr, ptr %t114 %t126 = call ptr @realloc(ptr %t125, i64 %t124) store ptr %t126, ptr %t114 store i32 %t120, ptr %t113 br label %put24 put24: %t127 = load ptr, ptr %t114 %t128 = getelementptr inbounds ptr, ptr %t127, i32 %t115 store ptr %t111, ptr %t128 %t129 = add i32 %t115, 1 store i32 %t129, ptr %t112 %t130 = load ptr, ptr @g_g_df_rec %t131 = load ptr, ptr %t89 %t132 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t133 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 2 %t134 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t135 = load i32, ptr %t132 %t136 = load i32, ptr %t133 %t137 = icmp sge i32 %t135, %t136 br i1 %t137, label %grow25, label %put26 grow25: %t138 = mul i32 %t136, 2 %t139 = icmp eq i32 %t136, 0 %t140 = select i1 %t139, i32 8, i32 %t138 %t141 = getelementptr ptr, ptr null, i32 1 %t142 = ptrtoint ptr %t141 to i64 %t143 = zext i32 %t140 to i64 %t144 = mul i64 %t143, %t142 %t145 = load ptr, ptr %t134 %t146 = call ptr @realloc(ptr %t145, i64 %t144) store ptr %t146, ptr %t134 store i32 %t140, ptr %t133 br label %put26 put26: %t147 = load ptr, ptr %t134 %t148 = getelementptr inbounds ptr, ptr %t147, i32 %t135 store ptr %t131, ptr %t148 %t149 = add i32 %t135, 1 store i32 %t149, ptr %t132 br label %wcond13 wend15: store i32 0, ptr @g_g_res_mode %t150 = load ptr, ptr %t19 store ptr %t150, ptr @g_toks %t151 = load i32, ptr %t21 store i32 %t151, ptr @g_pi %t152 = load ptr, ptr %t23 store ptr %t152, ptr @g_g_parse_file %t153 = load i32, ptr %t25 store i32 %t153, ptr @g_g_parsing br label %ret ret: ret void } define ptr @fn_res_type(ptr %arg_e, ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t24 = alloca ptr %t33 = alloca ptr %t51 = alloca i32 %t74 = alloca ptr %t89 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_ty, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t2 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t1 %t9 = icmp eq ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t2 br label %scend1 scend1: %t13 = load i32, ptr %t2 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then2, label %ifend4 then2: %t15 = load ptr, ptr %t0 store ptr %t15, ptr %retval br label %ret ifend4: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0 %t18 = load i32, ptr %t17 %t19 = icmp eq i32 %t18, 41 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load ptr, ptr %t1 %t23 = call ptr @fn_find_comp(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = icmp eq ptr %t25, null %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then8, label %ifend10 then8: %t29 = load ptr, ptr %t0 store ptr %t29, ptr %retval br label %ret ifend10: %t30 = load ptr, ptr %t0 %t31 = load ptr, ptr %t24 call void @fn_res_type_fields(ptr %t30, ptr %t31) %t32 = call ptr @fn_node(i32 39) store ptr %t32, ptr %t33 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t1 store ptr %t36, ptr %t35 %t37 = load ptr, ptr %t33 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 4 %t39 = load ptr, ptr %t0 store ptr %t39, ptr %t38 %t40 = load ptr, ptr %t33 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 9 %t42 = load ptr, ptr %t0 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 9 %t44 = load ptr, ptr %t43 store ptr %t44, ptr %t41 %t45 = load ptr, ptr %t33 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 8 %t47 = load ptr, ptr %t0 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 8 %t49 = load i32, ptr %t48 store i32 %t49, ptr %t46 %t50 = load ptr, ptr %t33 store ptr %t50, ptr %retval br label %ret ifend7: %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 0 %t54 = load i32, ptr %t53 %t55 = icmp eq i32 %t54, 54 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t51 br i1 %t57, label %sc11, label %scend12 sc11: %t59 = load ptr, ptr %t1 %t60 = call i32 @fn_is_slice_ty(ptr %t59) %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t51 br label %scend12 scend12: %t63 = load i32, ptr %t51 %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then13, label %ifend15 then13: %t65 = load ptr, ptr %t0 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 7 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 1 %t69 = load i32, ptr %t68 %t70 = icmp eq i32 %t69, 0 %t71 = zext i1 %t70 to i32 %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then16, label %ifend18 then16: %t73 = call ptr @fn_node(i32 39) store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 1 %t77 = load ptr, ptr %t1 store ptr %t77, ptr %t76 %t78 = load ptr, ptr %t74 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 9 %t80 = load ptr, ptr %t0 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 9 %t82 = load ptr, ptr %t81 store ptr %t82, ptr %t79 %t83 = load ptr, ptr %t74 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 8 %t85 = load ptr, ptr %t0 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 8 %t87 = load i32, ptr %t86 store i32 %t87, ptr %t84 %t88 = load ptr, ptr %t74 store ptr %t88, ptr %retval br label %ret ifend18: store i32 0, ptr %t89 br label %wcond19 wcond19: %t90 = load i32, ptr %t89 %t91 = load ptr, ptr %t0 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 7 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1 %t95 = load i32, ptr %t94 %t96 = icmp slt i32 %t90, %t95 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %wbody20, label %wend21 wbody20: %t99 = load ptr, ptr %t0 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 7 %t101 = load ptr, ptr %t100 %t102 = load i32, ptr %t89 %t103 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp ult i32 %t102, %t106 br i1 %t107, label %ixok22, label %ixbad23 ixbad23: %t108 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t108, ptr @.fmt_bounds, ptr @.str1196, i32 %t102, i32 %t106) call void @exit(i32 1) unreachable ixok22: %t109 = getelementptr inbounds ptr, ptr %t104, i32 %t102 %t110 = load ptr, ptr %t0 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 7 %t112 = load ptr, ptr %t111 %t113 = load i32, ptr %t89 %t114 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t117 = load i32, ptr %t116 %t118 = icmp ult i32 %t113, %t117 br i1 %t118, label %ixok24, label %ixbad25 ixbad25: %t119 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t119, ptr @.fmt_bounds, ptr @.str1197, i32 %t113, i32 %t117) call void @exit(i32 1) unreachable ixok24: %t120 = getelementptr inbounds ptr, ptr %t115, i32 %t113 %t121 = load ptr, ptr %t120 %t122 = load ptr, ptr %t1 %t123 = call ptr @fn_slice_elem(ptr %t122) %t124 = call ptr @fn_res_type(ptr %t121, ptr %t123) store ptr %t124, ptr %t109 %t125 = load i32, ptr %t89 %t126 = add i32 %t125, 1 store i32 %t126, ptr %t89 br label %wcond19 wend21: br label %ifend15 ifend15: %t127 = load ptr, ptr %t0 store ptr %t127, ptr %retval br label %ret ret: %t128 = load ptr, ptr %retval ret ptr %t128 } define void @fn_res_type_fields(ptr %arg_rec, ptr %arg_comp) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t24 = alloca ptr %t30 = alloca i32 store ptr %arg_rec, ptr %t0 store ptr %arg_comp, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1198, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t1 %t26 = load ptr, ptr %t24 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = call i32 @fn_field_index(ptr %t25, ptr %t28) store i32 %t29, ptr %t30 %t31 = load i32, ptr %t30 %t32 = icmp sge i32 %t31, 0 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load ptr, ptr %t24 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 4 %t37 = load ptr, ptr %t24 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 4 %t39 = load ptr, ptr %t38 %t40 = load ptr, ptr %t1 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 7 %t42 = load ptr, ptr %t41 %t43 = load i32, ptr %t30 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 %t43, %t47 br i1 %t48, label %ixok8, label %ixbad9 ixbad9: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str1199, i32 %t43, i32 %t47) call void @exit(i32 1) unreachable ixok8: %t50 = getelementptr inbounds ptr, ptr %t45, i32 %t43 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_res_type(ptr %t39, ptr %t53) store ptr %t54, ptr %t36 br label %ifend7 ifend7: %t55 = load i32, ptr %t2 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t2 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_call_mixed_to_named(ptr %arg_e, ptr %arg_labels) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca i32 %t4 = alloca i32 %t14 = alloca i32 %t41 = alloca i32 %t85 = alloca ptr %t86 = alloca i32 %t108 = alloca ptr %t109 = alloca i32 %t127 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_labels, ptr %t1 %t2 = sub i32 0, 1 store i32 %t2, ptr %t3 store i32 0, ptr %t4 br label %wcond0 wcond0: %t5 = load i32, ptr %t4 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp slt i32 %t5, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %wbody1, label %wend2 wbody1: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7 %t17 = load ptr, ptr %t16 %t18 = load i32, ptr %t4 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok3, label %ixbad4 ixbad4: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str1200, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok3: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 0 %t28 = load i32, ptr %t27 %t29 = icmp eq i32 %t28, 42 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t14 br i1 %t31, label %sc5, label %scend6 sc5: %t33 = load i32, ptr %t3 %t34 = icmp slt i32 %t33, 0 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t14 br label %scend6 scend6: %t38 = load i32, ptr %t14 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then7, label %ifend9 then7: %t40 = load i32, ptr %t4 store i32 %t40, ptr %t3 br label %ifend9 ifend9: %t42 = load ptr, ptr %t0 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 7 %t44 = load ptr, ptr %t43 %t45 = load i32, ptr %t4 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok10, label %ixbad11 ixbad11: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str1201, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok10: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 0 %t55 = load i32, ptr %t54 %t56 = icmp ne i32 %t55, 42 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t41 br i1 %t58, label %sc12, label %scend13 sc12: %t60 = load i32, ptr %t3 %t61 = icmp sge i32 %t60, 0 %t62 = zext i1 %t61 to i32 %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t41 br label %scend13 scend13: %t65 = load i32, ptr %t41 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then14, label %ifend16 then14: %t67 = load ptr, ptr %t0 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 9 %t69 = load ptr, ptr %t68 store ptr %t69, ptr @g_g_err_file %t70 = load ptr, ptr %t0 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 8 %t72 = load i32, ptr %t71 store i32 %t72, ptr @g_g_err_line call void @fn_perr(ptr @.str1202) br label %ifend16 ifend16: %t73 = load i32, ptr %t4 %t74 = add i32 %t73, 1 store i32 %t74, ptr %t4 br label %wcond0 wend2: %t75 = load i32, ptr %t3 %t76 = icmp sle i32 %t75, 0 %t77 = zext i1 %t76 to i32 %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then17, label %ifend19 then17: br label %ret ifend19: %t79 = getelementptr %LSlice, ptr null, i32 1 %t80 = ptrtoint ptr %t79 to i64 %t81 = call ptr @malloc(i64 %t80) %t82 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 0 store ptr null, ptr %t82 %t83 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 1 store i32 0, ptr %t83 %t84 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 2 store i32 0, ptr %t84 store ptr %t81, ptr %t85 store i32 0, ptr %t86 br label %wcond20 wcond20: %t87 = load i32, ptr %t86 %t88 = load ptr, ptr %t0 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 7 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t92 = load i32, ptr %t91 %t93 = icmp slt i32 %t87, %t92 %t94 = zext i1 %t93 to i32 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %wbody21, label %wend22 wbody21: %t96 = load ptr, ptr %t0 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 7 %t98 = load ptr, ptr %t97 %t99 = load i32, ptr %t86 %t100 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 %t101 = load ptr, ptr %t100 %t102 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1 %t103 = load i32, ptr %t102 %t104 = icmp ult i32 %t99, %t103 br i1 %t104, label %ixok23, label %ixbad24 ixbad24: %t105 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t105, ptr @.fmt_bounds, ptr @.str1203, i32 %t99, i32 %t103) call void @exit(i32 1) unreachable ixok23: %t106 = getelementptr inbounds ptr, ptr %t101, i32 %t99 %t107 = load ptr, ptr %t106 store ptr %t107, ptr %t108 %t110 = load i32, ptr %t86 %t111 = load i32, ptr %t3 %t112 = icmp slt i32 %t110, %t111 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t109 br i1 %t114, label %sc25, label %scend26 sc25: %t116 = load i32, ptr %t86 %t117 = load ptr, ptr %t1 %t118 = getelementptr inbounds %LSlice, ptr %t117, i32 0, i32 1 %t119 = load i32, ptr %t118 %t120 = icmp slt i32 %t116, %t119 %t121 = zext i1 %t120 to i32 %t122 = icmp ne i32 %t121, 0 %t123 = zext i1 %t122 to i32 store i32 %t123, ptr %t109 br label %scend26 scend26: %t124 = load i32, ptr %t109 %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then27, label %ifend29 then27: %t126 = call ptr @fn_node(i32 42) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1 %t130 = load ptr, ptr %t1 %t131 = load i32, ptr %t86 %t132 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t135 = load i32, ptr %t134 %t136 = icmp ult i32 %t131, %t135 br i1 %t136, label %ixok30, label %ixbad31 ixbad31: %t137 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t137, ptr @.fmt_bounds, ptr @.str1204, i32 %t131, i32 %t135) call void @exit(i32 1) unreachable ixok30: %t138 = getelementptr inbounds ptr, ptr %t133, i32 %t131 %t139 = load ptr, ptr %t138 store ptr %t139, ptr %t129 %t140 = load ptr, ptr %t127 %t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 4 %t142 = load ptr, ptr %t108 store ptr %t142, ptr %t141 %t143 = load ptr, ptr %t127 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 8 %t145 = load ptr, ptr %t108 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 8 %t147 = load i32, ptr %t146 store i32 %t147, ptr %t144 %t148 = load ptr, ptr %t127 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 9 %t150 = load ptr, ptr %t108 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 9 %t152 = load ptr, ptr %t151 store ptr %t152, ptr %t149 %t153 = load ptr, ptr %t127 store ptr %t153, ptr %t108 br label %ifend29 ifend29: %t154 = load ptr, ptr %t85 %t155 = load ptr, ptr %t108 %t156 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 1 %t157 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 2 %t158 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 0 %t159 = load i32, ptr %t156 %t160 = load i32, ptr %t157 %t161 = icmp sge i32 %t159, %t160 br i1 %t161, label %grow32, label %put33 grow32: %t162 = mul i32 %t160, 2 %t163 = icmp eq i32 %t160, 0 %t164 = select i1 %t163, i32 8, i32 %t162 %t165 = getelementptr ptr, ptr null, i32 1 %t166 = ptrtoint ptr %t165 to i64 %t167 = zext i32 %t164 to i64 %t168 = mul i64 %t167, %t166 %t169 = load ptr, ptr %t158 %t170 = call ptr @realloc(ptr %t169, i64 %t168) store ptr %t170, ptr %t158 store i32 %t164, ptr %t157 br label %put33 put33: %t171 = load ptr, ptr %t158 %t172 = getelementptr inbounds ptr, ptr %t171, i32 %t159 store ptr %t155, ptr %t172 %t173 = add i32 %t159, 1 store i32 %t173, ptr %t156 %t174 = load i32, ptr %t86 %t175 = add i32 %t174, 1 store i32 %t175, ptr %t86 br label %wcond20 wend22: %t176 = load ptr, ptr %t0 %t177 = getelementptr inbounds %Cmp_Node, ptr %t176, i32 0, i32 7 %t178 = load ptr, ptr %t85 store ptr %t178, ptr %t177 br label %ret ret: ret void } define void @fn_call_fill_defaults(ptr %arg_e, ptr %arg_f) { entry: %t0 = alloca ptr %t1 = alloca ptr %t12 = alloca ptr %t19 = alloca ptr %t20 = alloca i32 %t21 = alloca i32 %t43 = alloca ptr %t108 = alloca i32 %t143 = alloca ptr %t144 = alloca i32 %t152 = alloca ptr %t153 = alloca i32 %t203 = alloca i32 %t278 = alloca i32 %t343 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_f, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = getelementptr %LSlice, ptr null, i32 1 %t7 = ptrtoint ptr %t6 to i64 %t8 = call ptr @malloc(i64 %t7) %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 store ptr null, ptr %t9 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 store i32 0, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2 store i32 0, ptr %t11 store ptr %t8, ptr %t12 %t13 = getelementptr %LSlice, ptr null, i32 1 %t14 = ptrtoint ptr %t13 to i64 %t15 = call ptr @malloc(i64 %t14) %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 store ptr null, ptr %t16 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 store i32 0, ptr %t17 %t18 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 2 store i32 0, ptr %t18 store ptr %t15, ptr %t19 store i32 0, ptr %t20 store i32 0, ptr %t21 br label %wcond3 wcond3: %t22 = load i32, ptr %t21 %t23 = load ptr, ptr %t1 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 7 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp slt i32 %t22, %t27 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %wbody4, label %wend5 wbody4: %t31 = load ptr, ptr %t1 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = load i32, ptr %t21 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 %t34, %t38 br i1 %t39, label %ixok6, label %ixbad7 ixbad7: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str1205, i32 %t34, i32 %t38) call void @exit(i32 1) unreachable ixok6: %t41 = getelementptr inbounds ptr, ptr %t36, i32 %t34 %t42 = load ptr, ptr %t41 store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 0 %t46 = load i32, ptr %t45 %t47 = icmp eq i32 %t46, 5 %t48 = zext i1 %t47 to i32 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then8, label %ifend10 then8: %t50 = load ptr, ptr %t12 %t51 = load ptr, ptr %t43 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t55 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 2 %t56 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t57 = load i32, ptr %t54 %t58 = load i32, ptr %t55 %t59 = icmp sge i32 %t57, %t58 br i1 %t59, label %grow11, label %put12 grow11: %t60 = mul i32 %t58, 2 %t61 = icmp eq i32 %t58, 0 %t62 = select i1 %t61, i32 8, i32 %t60 %t63 = getelementptr ptr, ptr null, i32 1 %t64 = ptrtoint ptr %t63 to i64 %t65 = zext i32 %t62 to i64 %t66 = mul i64 %t65, %t64 %t67 = load ptr, ptr %t56 %t68 = call ptr @realloc(ptr %t67, i64 %t66) store ptr %t68, ptr %t56 store i32 %t62, ptr %t55 br label %put12 put12: %t69 = load ptr, ptr %t56 %t70 = getelementptr inbounds ptr, ptr %t69, i32 %t57 store ptr %t53, ptr %t70 %t71 = add i32 %t57, 1 store i32 %t71, ptr %t54 %t72 = load ptr, ptr %t19 %t73 = load ptr, ptr %t43 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 4 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t77 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 2 %t78 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t79 = load i32, ptr %t76 %t80 = load i32, ptr %t77 %t81 = icmp sge i32 %t79, %t80 br i1 %t81, label %grow13, label %put14 grow13: %t82 = mul i32 %t80, 2 %t83 = icmp eq i32 %t80, 0 %t84 = select i1 %t83, i32 8, i32 %t82 %t85 = getelementptr ptr, ptr null, i32 1 %t86 = ptrtoint ptr %t85 to i64 %t87 = zext i32 %t84 to i64 %t88 = mul i64 %t87, %t86 %t89 = load ptr, ptr %t78 %t90 = call ptr @realloc(ptr %t89, i64 %t88) store ptr %t90, ptr %t78 store i32 %t84, ptr %t77 br label %put14 put14: %t91 = load ptr, ptr %t78 %t92 = getelementptr inbounds ptr, ptr %t91, i32 %t79 store ptr %t75, ptr %t92 %t93 = add i32 %t79, 1 store i32 %t93, ptr %t76 %t94 = load ptr, ptr %t43 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 4 %t96 = load ptr, ptr %t95 %t97 = icmp ne ptr %t96, null %t98 = zext i1 %t97 to i32 %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then15, label %ifend17 then15: store i32 1, ptr %t20 br label %ifend17 ifend17: br label %ifend10 ifend10: %t100 = load i32, ptr %t21 %t101 = add i32 %t100, 1 store i32 %t101, ptr %t21 br label %wcond3 wend5: %t102 = load ptr, ptr %t0 %t103 = load ptr, ptr %t12 call void @fn_call_mixed_to_named(ptr %t102, ptr %t103) %t104 = load i32, ptr %t20 %t105 = icmp eq i32 %t104, 0 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then18, label %ifend20 then18: br label %ret ifend20: %t109 = load ptr, ptr %t0 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 7 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 %t113 = load i32, ptr %t112 %t114 = icmp sgt i32 %t113, 0 %t115 = zext i1 %t114 to i32 %t116 = icmp ne i32 %t115, 0 %t117 = zext i1 %t116 to i32 store i32 %t117, ptr %t108 br i1 %t116, label %sc21, label %scend22 sc21: %t118 = load ptr, ptr %t0 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 7 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 1 %t124 = load i32, ptr %t123 %t125 = icmp ult i32 0, %t124 br i1 %t125, label %ixok23, label %ixbad24 ixbad24: %t126 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t126, ptr @.fmt_bounds, ptr @.str1206, i32 0, i32 %t124) call void @exit(i32 1) unreachable ixok23: %t127 = getelementptr inbounds ptr, ptr %t122, i32 0 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 0 %t130 = load i32, ptr %t129 %t131 = icmp eq i32 %t130, 42 %t132 = zext i1 %t131 to i32 %t133 = icmp ne i32 %t132, 0 %t134 = zext i1 %t133 to i32 store i32 %t134, ptr %t108 br label %scend22 scend22: %t135 = load i32, ptr %t108 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then25, label %ifend27 then25: %t137 = getelementptr %LSlice, ptr null, i32 1 %t138 = ptrtoint ptr %t137 to i64 %t139 = call ptr @malloc(i64 %t138) %t140 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 0 store ptr null, ptr %t140 %t141 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 1 store i32 0, ptr %t141 %t142 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 2 store i32 0, ptr %t142 store ptr %t139, ptr %t143 store i32 0, ptr %t144 br label %wcond28 wcond28: %t145 = load i32, ptr %t144 %t146 = load ptr, ptr %t12 %t147 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 1 %t148 = load i32, ptr %t147 %t149 = icmp slt i32 %t145, %t148 %t150 = zext i1 %t149 to i32 %t151 = icmp ne i32 %t150, 0 br i1 %t151, label %wbody29, label %wend30 wbody29: store ptr null, ptr %t152 store i32 0, ptr %t153 br label %wcond31 wcond31: %t154 = load i32, ptr %t153 %t155 = load ptr, ptr %t0 %t156 = getelementptr inbounds %Cmp_Node, ptr %t155, i32 0, i32 7 %t157 = load ptr, ptr %t156 %t158 = getelementptr inbounds %LSlice, ptr %t157, i32 0, i32 1 %t159 = load i32, ptr %t158 %t160 = icmp slt i32 %t154, %t159 %t161 = zext i1 %t160 to i32 %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %wbody32, label %wend33 wbody32: %t163 = load ptr, ptr %t0 %t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 7 %t165 = load ptr, ptr %t164 %t166 = load i32, ptr %t153 %t167 = getelementptr inbounds %LSlice, ptr %t165, i32 0, i32 0 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds %LSlice, ptr %t165, i32 0, i32 1 %t170 = load i32, ptr %t169 %t171 = icmp ult i32 %t166, %t170 br i1 %t171, label %ixok34, label %ixbad35 ixbad35: %t172 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t172, ptr @.fmt_bounds, ptr @.str1207, i32 %t166, i32 %t170) call void @exit(i32 1) unreachable ixok34: %t173 = getelementptr inbounds ptr, ptr %t168, i32 %t166 %t174 = load ptr, ptr %t173 %t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 1 %t176 = load ptr, ptr %t175 %t177 = load ptr, ptr %t12 %t178 = load i32, ptr %t144 %t179 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 0 %t180 = load ptr, ptr %t179 %t181 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 1 %t182 = load i32, ptr %t181 %t183 = icmp ult i32 %t178, %t182 br i1 %t183, label %ixok36, label %ixbad37 ixbad37: %t184 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t184, ptr @.fmt_bounds, ptr @.str1208, i32 %t178, i32 %t182) call void @exit(i32 1) unreachable ixok36: %t185 = getelementptr inbounds ptr, ptr %t180, i32 %t178 %t186 = load ptr, ptr %t185 %t187 = call i32 @lp_str_eq(ptr %t176, ptr %t186) %t188 = icmp ne i32 %t187, 0 br i1 %t188, label %then38, label %ifend40 then38: %t189 = load ptr, ptr %t0 %t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 7 %t191 = load ptr, ptr %t190 %t192 = load i32, ptr %t153 %t193 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 0 %t194 = load ptr, ptr %t193 %t195 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 1 %t196 = load i32, ptr %t195 %t197 = icmp ult i32 %t192, %t196 br i1 %t197, label %ixok41, label %ixbad42 ixbad42: %t198 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t198, ptr @.fmt_bounds, ptr @.str1209, i32 %t192, i32 %t196) call void @exit(i32 1) unreachable ixok41: %t199 = getelementptr inbounds ptr, ptr %t194, i32 %t192 %t200 = load ptr, ptr %t199 store ptr %t200, ptr %t152 br label %ifend40 ifend40: %t201 = load i32, ptr %t153 %t202 = add i32 %t201, 1 store i32 %t202, ptr %t153 br label %wcond31 wend33: %t204 = load ptr, ptr %t152 %t205 = icmp eq ptr %t204, null %t206 = zext i1 %t205 to i32 %t207 = icmp ne i32 %t206, 0 %t208 = zext i1 %t207 to i32 store i32 %t208, ptr %t203 br i1 %t207, label %sc43, label %scend44 sc43: %t209 = load ptr, ptr %t19 %t210 = load i32, ptr %t144 %t211 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 0 %t212 = load ptr, ptr %t211 %t213 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 1 %t214 = load i32, ptr %t213 %t215 = icmp ult i32 %t210, %t214 br i1 %t215, label %ixok45, label %ixbad46 ixbad46: %t216 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t216, ptr @.fmt_bounds, ptr @.str1210, i32 %t210, i32 %t214) call void @exit(i32 1) unreachable ixok45: %t217 = getelementptr inbounds ptr, ptr %t212, i32 %t210 %t218 = load ptr, ptr %t217 %t219 = icmp ne ptr %t218, null %t220 = zext i1 %t219 to i32 %t221 = icmp ne i32 %t220, 0 %t222 = zext i1 %t221 to i32 store i32 %t222, ptr %t203 br label %scend44 scend44: %t223 = load i32, ptr %t203 %t224 = icmp ne i32 %t223, 0 br i1 %t224, label %then47, label %ifend49 then47: %t225 = call ptr @fn_node(i32 42) store ptr %t225, ptr %t152 %t226 = load ptr, ptr %t152 %t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 1 %t228 = load ptr, ptr %t12 %t229 = load i32, ptr %t144 %t230 = getelementptr inbounds %LSlice, ptr %t228, i32 0, i32 0 %t231 = load ptr, ptr %t230 %t232 = getelementptr inbounds %LSlice, ptr %t228, i32 0, i32 1 %t233 = load i32, ptr %t232 %t234 = icmp ult i32 %t229, %t233 br i1 %t234, label %ixok50, label %ixbad51 ixbad51: %t235 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t235, ptr @.fmt_bounds, ptr @.str1211, i32 %t229, i32 %t233) call void @exit(i32 1) unreachable ixok50: %t236 = getelementptr inbounds ptr, ptr %t231, i32 %t229 %t237 = load ptr, ptr %t236 store ptr %t237, ptr %t227 %t238 = load ptr, ptr %t152 %t239 = getelementptr inbounds %Cmp_Node, ptr %t238, i32 0, i32 4 %t240 = load ptr, ptr %t19 %t241 = load i32, ptr %t144 %t242 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 0 %t243 = load ptr, ptr %t242 %t244 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 1 %t245 = load i32, ptr %t244 %t246 = icmp ult i32 %t241, %t245 br i1 %t246, label %ixok52, label %ixbad53 ixbad53: %t247 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t247, ptr @.fmt_bounds, ptr @.str1212, i32 %t241, i32 %t245) call void @exit(i32 1) unreachable ixok52: %t248 = getelementptr inbounds ptr, ptr %t243, i32 %t241 %t249 = load ptr, ptr %t248 %t250 = load ptr, ptr %t0 %t251 = call ptr @fn_default_copy(ptr %t249, ptr %t250) store ptr %t251, ptr %t239 br label %ifend49 ifend49: %t252 = load ptr, ptr %t152 %t253 = icmp ne ptr %t252, null %t254 = zext i1 %t253 to i32 %t255 = icmp ne i32 %t254, 0 br i1 %t255, label %then54, label %ifend56 then54: %t256 = load ptr, ptr %t143 %t257 = load ptr, ptr %t152 %t258 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 1 %t259 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 2 %t260 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 0 %t261 = load i32, ptr %t258 %t262 = load i32, ptr %t259 %t263 = icmp sge i32 %t261, %t262 br i1 %t263, label %grow57, label %put58 grow57: %t264 = mul i32 %t262, 2 %t265 = icmp eq i32 %t262, 0 %t266 = select i1 %t265, i32 8, i32 %t264 %t267 = getelementptr ptr, ptr null, i32 1 %t268 = ptrtoint ptr %t267 to i64 %t269 = zext i32 %t266 to i64 %t270 = mul i64 %t269, %t268 %t271 = load ptr, ptr %t260 %t272 = call ptr @realloc(ptr %t271, i64 %t270) store ptr %t272, ptr %t260 store i32 %t266, ptr %t259 br label %put58 put58: %t273 = load ptr, ptr %t260 %t274 = getelementptr inbounds ptr, ptr %t273, i32 %t261 store ptr %t257, ptr %t274 %t275 = add i32 %t261, 1 store i32 %t275, ptr %t258 br label %ifend56 ifend56: %t276 = load i32, ptr %t144 %t277 = add i32 %t276, 1 store i32 %t277, ptr %t144 br label %wcond28 wend30: store i32 0, ptr %t278 br label %wcond59 wcond59: %t279 = load i32, ptr %t278 %t280 = load ptr, ptr %t0 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 7 %t282 = load ptr, ptr %t281 %t283 = getelementptr inbounds %LSlice, ptr %t282, i32 0, i32 1 %t284 = load i32, ptr %t283 %t285 = icmp slt i32 %t279, %t284 %t286 = zext i1 %t285 to i32 %t287 = icmp ne i32 %t286, 0 br i1 %t287, label %wbody60, label %wend61 wbody60: %t288 = load ptr, ptr %t12 %t289 = load ptr, ptr %t0 %t290 = getelementptr inbounds %Cmp_Node, ptr %t289, i32 0, i32 7 %t291 = load ptr, ptr %t290 %t292 = load i32, ptr %t278 %t293 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 0 %t294 = load ptr, ptr %t293 %t295 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 1 %t296 = load i32, ptr %t295 %t297 = icmp ult i32 %t292, %t296 br i1 %t297, label %ixok62, label %ixbad63 ixbad63: %t298 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t298, ptr @.fmt_bounds, ptr @.str1213, i32 %t292, i32 %t296) call void @exit(i32 1) unreachable ixok62: %t299 = getelementptr inbounds ptr, ptr %t294, i32 %t292 %t300 = load ptr, ptr %t299 %t301 = getelementptr inbounds %Cmp_Node, ptr %t300, i32 0, i32 1 %t302 = load ptr, ptr %t301 %t303 = call i32 @fn_default_label_in(ptr %t288, ptr %t302) %t304 = icmp eq i32 %t303, 0 %t305 = zext i1 %t304 to i32 %t306 = icmp ne i32 %t305, 0 br i1 %t306, label %then64, label %ifend66 then64: %t307 = load ptr, ptr %t143 %t308 = load ptr, ptr %t0 %t309 = getelementptr inbounds %Cmp_Node, ptr %t308, i32 0, i32 7 %t310 = load ptr, ptr %t309 %t311 = load i32, ptr %t278 %t312 = getelementptr inbounds %LSlice, ptr %t310, i32 0, i32 0 %t313 = load ptr, ptr %t312 %t314 = getelementptr inbounds %LSlice, ptr %t310, i32 0, i32 1 %t315 = load i32, ptr %t314 %t316 = icmp ult i32 %t311, %t315 br i1 %t316, label %ixok67, label %ixbad68 ixbad68: %t317 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t317, ptr @.fmt_bounds, ptr @.str1214, i32 %t311, i32 %t315) call void @exit(i32 1) unreachable ixok67: %t318 = getelementptr inbounds ptr, ptr %t313, i32 %t311 %t319 = load ptr, ptr %t318 %t320 = getelementptr inbounds %LSlice, ptr %t307, i32 0, i32 1 %t321 = getelementptr inbounds %LSlice, ptr %t307, i32 0, i32 2 %t322 = getelementptr inbounds %LSlice, ptr %t307, i32 0, i32 0 %t323 = load i32, ptr %t320 %t324 = load i32, ptr %t321 %t325 = icmp sge i32 %t323, %t324 br i1 %t325, label %grow69, label %put70 grow69: %t326 = mul i32 %t324, 2 %t327 = icmp eq i32 %t324, 0 %t328 = select i1 %t327, i32 8, i32 %t326 %t329 = getelementptr ptr, ptr null, i32 1 %t330 = ptrtoint ptr %t329 to i64 %t331 = zext i32 %t328 to i64 %t332 = mul i64 %t331, %t330 %t333 = load ptr, ptr %t322 %t334 = call ptr @realloc(ptr %t333, i64 %t332) store ptr %t334, ptr %t322 store i32 %t328, ptr %t321 br label %put70 put70: %t335 = load ptr, ptr %t322 %t336 = getelementptr inbounds ptr, ptr %t335, i32 %t323 store ptr %t319, ptr %t336 %t337 = add i32 %t323, 1 store i32 %t337, ptr %t320 br label %ifend66 ifend66: %t338 = load i32, ptr %t278 %t339 = add i32 %t338, 1 store i32 %t339, ptr %t278 br label %wcond59 wend61: %t340 = load ptr, ptr %t0 %t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 7 %t342 = load ptr, ptr %t143 store ptr %t342, ptr %t341 br label %ret ifend27: br label %wcond71 wcond71: %t344 = load ptr, ptr %t0 %t345 = getelementptr inbounds %Cmp_Node, ptr %t344, i32 0, i32 7 %t346 = load ptr, ptr %t345 %t347 = getelementptr inbounds %LSlice, ptr %t346, i32 0, i32 1 %t348 = load i32, ptr %t347 %t349 = load ptr, ptr %t12 %t350 = getelementptr inbounds %LSlice, ptr %t349, i32 0, i32 1 %t351 = load i32, ptr %t350 %t352 = icmp slt i32 %t348, %t351 %t353 = zext i1 %t352 to i32 %t354 = icmp ne i32 %t353, 0 %t355 = zext i1 %t354 to i32 store i32 %t355, ptr %t343 br i1 %t354, label %sc74, label %scend75 sc74: %t356 = load ptr, ptr %t19 %t357 = load ptr, ptr %t0 %t358 = getelementptr inbounds %Cmp_Node, ptr %t357, i32 0, i32 7 %t359 = load ptr, ptr %t358 %t360 = getelementptr inbounds %LSlice, ptr %t359, i32 0, i32 1 %t361 = load i32, ptr %t360 %t362 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 0 %t363 = load ptr, ptr %t362 %t364 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 1 %t365 = load i32, ptr %t364 %t366 = icmp ult i32 %t361, %t365 br i1 %t366, label %ixok76, label %ixbad77 ixbad77: %t367 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t367, ptr @.fmt_bounds, ptr @.str1215, i32 %t361, i32 %t365) call void @exit(i32 1) unreachable ixok76: %t368 = getelementptr inbounds ptr, ptr %t363, i32 %t361 %t369 = load ptr, ptr %t368 %t370 = icmp ne ptr %t369, null %t371 = zext i1 %t370 to i32 %t372 = icmp ne i32 %t371, 0 %t373 = zext i1 %t372 to i32 store i32 %t373, ptr %t343 br label %scend75 scend75: %t374 = load i32, ptr %t343 %t375 = icmp ne i32 %t374, 0 br i1 %t375, label %wbody72, label %wend73 wbody72: %t376 = load ptr, ptr %t0 %t377 = getelementptr inbounds %Cmp_Node, ptr %t376, i32 0, i32 7 %t378 = load ptr, ptr %t377 %t379 = load ptr, ptr %t19 %t380 = load ptr, ptr %t0 %t381 = getelementptr inbounds %Cmp_Node, ptr %t380, i32 0, i32 7 %t382 = load ptr, ptr %t381 %t383 = getelementptr inbounds %LSlice, ptr %t382, i32 0, i32 1 %t384 = load i32, ptr %t383 %t385 = getelementptr inbounds %LSlice, ptr %t379, i32 0, i32 0 %t386 = load ptr, ptr %t385 %t387 = getelementptr inbounds %LSlice, ptr %t379, i32 0, i32 1 %t388 = load i32, ptr %t387 %t389 = icmp ult i32 %t384, %t388 br i1 %t389, label %ixok78, label %ixbad79 ixbad79: %t390 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t390, ptr @.fmt_bounds, ptr @.str1216, i32 %t384, i32 %t388) call void @exit(i32 1) unreachable ixok78: %t391 = getelementptr inbounds ptr, ptr %t386, i32 %t384 %t392 = load ptr, ptr %t391 %t393 = load ptr, ptr %t0 %t394 = call ptr @fn_default_copy(ptr %t392, ptr %t393) %t395 = getelementptr inbounds %LSlice, ptr %t378, i32 0, i32 1 %t396 = getelementptr inbounds %LSlice, ptr %t378, i32 0, i32 2 %t397 = getelementptr inbounds %LSlice, ptr %t378, i32 0, i32 0 %t398 = load i32, ptr %t395 %t399 = load i32, ptr %t396 %t400 = icmp sge i32 %t398, %t399 br i1 %t400, label %grow80, label %put81 grow80: %t401 = mul i32 %t399, 2 %t402 = icmp eq i32 %t399, 0 %t403 = select i1 %t402, i32 8, i32 %t401 %t404 = getelementptr ptr, ptr null, i32 1 %t405 = ptrtoint ptr %t404 to i64 %t406 = zext i32 %t403 to i64 %t407 = mul i64 %t406, %t405 %t408 = load ptr, ptr %t397 %t409 = call ptr @realloc(ptr %t408, i64 %t407) store ptr %t409, ptr %t397 store i32 %t403, ptr %t396 br label %put81 put81: %t410 = load ptr, ptr %t397 %t411 = getelementptr inbounds ptr, ptr %t410, i32 %t398 store ptr %t394, ptr %t411 %t412 = add i32 %t398, 1 store i32 %t412, ptr %t395 br label %wcond71 wend73: br label %ret ret: ret void } define i32 @fn_default_label_in(ptr %arg_labels, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_labels, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str1217, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t1 %t21 = call i32 @lp_str_eq(ptr %t19, ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t2 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define ptr @fn_default_copy(ptr %arg_d, ptr %arg_at) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t16 = alloca ptr store ptr %arg_d, ptr %t0 store ptr %arg_at, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr %LSlice, ptr null, i32 1 %t4 = ptrtoint ptr %t3 to i64 %t5 = call ptr @malloc(i64 %t4) %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 store ptr null, ptr %t6 %t7 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 store i32 0, ptr %t7 %t8 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 2 store i32 0, ptr %t8 %t9 = getelementptr %LSlice, ptr null, i32 1 %t10 = ptrtoint ptr %t9 to i64 %t11 = call ptr @malloc(i64 %t10) %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 store ptr null, ptr %t12 %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 store i32 0, ptr %t13 %t14 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 2 store i32 0, ptr %t14 %t15 = call ptr @fn_gen_clone(ptr %t2, ptr %t5, ptr %t11) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 8 %t19 = load ptr, ptr %t1 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 8 %t21 = load i32, ptr %t20 store i32 %t21, ptr %t18 %t22 = load ptr, ptr %t16 store ptr %t22, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval ret ptr %t23 } define ptr @fn_vw_prefix(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_reg_lower(ptr %t1) %t3 = call ptr @lp_str_concat(ptr @.str1218, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str1219) store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define void @fn_parse_view() { entry: %t3 = alloca ptr %t6 = alloca ptr %t13 = alloca ptr %t20 = alloca ptr %t27 = alloca ptr %t34 = alloca ptr %t38 = alloca i32 %t48 = alloca i32 %t63 = alloca ptr %t200 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_eat_id() store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = call ptr @fn_vw_prefix(ptr %t4) store ptr %t5, ptr %t6 store i32 1, ptr @g_g_uses_value %t7 = getelementptr %LSlice, ptr null, i32 1 %t8 = ptrtoint ptr %t7 to i64 %t9 = call ptr @malloc(i64 %t8) %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 store ptr null, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 store i32 0, ptr %t11 %t12 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 2 store i32 0, ptr %t12 store ptr %t9, ptr %t13 %t14 = getelementptr %LSlice, ptr null, i32 1 %t15 = ptrtoint ptr %t14 to i64 %t16 = call ptr @malloc(i64 %t15) %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 store ptr null, ptr %t17 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 store i32 0, ptr %t18 %t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 2 store i32 0, ptr %t19 store ptr %t16, ptr %t20 %t21 = getelementptr %LSlice, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = call ptr @malloc(i64 %t22) %t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 store ptr null, ptr %t24 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 store i32 0, ptr %t25 %t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2 store i32 0, ptr %t26 store ptr %t23, ptr %t27 %t28 = getelementptr %LSlice, ptr null, i32 1 %t29 = ptrtoint ptr %t28 to i64 %t30 = call ptr @malloc(i64 %t29) %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 store ptr null, ptr %t31 %t32 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 store i32 0, ptr %t32 %t33 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 2 store i32 0, ptr %t33 store ptr %t30, ptr %t34 call void @fn_skipnl() call void @fn_eat_op(ptr @.str1220) br label %wcond0 wcond0: %t35 = icmp ne i32 1, 0 br i1 %t35, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t36 = call i32 @fn_is_op(ptr @.str1221) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t39 = call i32 @fn_is_id(ptr @.str1222) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t38 br i1 %t40, label %scend7, label %sc6 sc6: %t42 = call i32 @fn_is_id(ptr @.str1223) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t38 br label %scend7 scend7: %t45 = load i32, ptr %t38 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then8, label %ifend10 then8: %t47 = call i32 @fn_is_id(ptr @.str1224) store i32 %t47, ptr %t48 %t49 = load i32, ptr %t48 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then11, label %ifend13 then11: %t51 = load ptr, ptr @g_toks %t52 = load i32, ptr @g_pi %t53 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 0 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 1 %t56 = load i32, ptr %t55 %t57 = icmp ult i32 %t52, %t56 br i1 %t57, label %ixok14, label %ixbad15 ixbad15: %t58 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t58, ptr @.fmt_bounds, ptr @.str1225, i32 %t52, i32 %t56) call void @exit(i32 1) unreachable ixok14: %t59 = getelementptr inbounds ptr, ptr %t54, i32 %t52 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %Cmp_Tok, ptr %t60, i32 0, i32 1 store ptr @.str1226, ptr %t61 br label %ifend13 ifend13: %t62 = call ptr @fn_parse_fn() store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t34 %t65 = load ptr, ptr %t63 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 1 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 1 %t69 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 2 %t70 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 %t71 = load i32, ptr %t68 %t72 = load i32, ptr %t69 %t73 = icmp sge i32 %t71, %t72 br i1 %t73, label %grow16, label %put17 grow16: %t74 = mul i32 %t72, 2 %t75 = icmp eq i32 %t72, 0 %t76 = select i1 %t75, i32 8, i32 %t74 %t77 = getelementptr ptr, ptr null, i32 1 %t78 = ptrtoint ptr %t77 to i64 %t79 = zext i32 %t76 to i64 %t80 = mul i64 %t79, %t78 %t81 = load ptr, ptr %t70 %t82 = call ptr @realloc(ptr %t81, i64 %t80) store ptr %t82, ptr %t70 store i32 %t76, ptr %t69 br label %put17 put17: %t83 = load ptr, ptr %t70 %t84 = getelementptr inbounds ptr, ptr %t83, i32 %t71 store ptr %t67, ptr %t84 %t85 = add i32 %t71, 1 store i32 %t85, ptr %t68 %t86 = load i32, ptr %t48 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then18, label %else19 then18: %t88 = load ptr, ptr %t63 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 %t90 = load ptr, ptr %t6 %t91 = call ptr @lp_str_concat(ptr %t90, ptr @.str1227) %t92 = load ptr, ptr %t63 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 1 %t94 = load ptr, ptr %t93 %t95 = call ptr @lp_str_concat(ptr %t91, ptr %t94) store ptr %t95, ptr %t89 br label %ifend20 else19: %t96 = load ptr, ptr %t63 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 1 %t98 = load ptr, ptr %t6 %t99 = load ptr, ptr %t63 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 1 %t101 = load ptr, ptr %t100 %t102 = call ptr @lp_str_concat(ptr %t98, ptr %t101) store ptr %t102, ptr %t97 br label %ifend20 ifend20: %t103 = load ptr, ptr %t27 %t104 = load ptr, ptr %t63 %t105 = getelementptr inbounds %LSlice, ptr %t103, i32 0, i32 1 %t106 = getelementptr inbounds %LSlice, ptr %t103, i32 0, i32 2 %t107 = getelementptr inbounds %LSlice, ptr %t103, i32 0, i32 0 %t108 = load i32, ptr %t105 %t109 = load i32, ptr %t106 %t110 = icmp sge i32 %t108, %t109 br i1 %t110, label %grow21, label %put22 grow21: %t111 = mul i32 %t109, 2 %t112 = icmp eq i32 %t109, 0 %t113 = select i1 %t112, i32 8, i32 %t111 %t114 = getelementptr ptr, ptr null, i32 1 %t115 = ptrtoint ptr %t114 to i64 %t116 = zext i32 %t113 to i64 %t117 = mul i64 %t116, %t115 %t118 = load ptr, ptr %t107 %t119 = call ptr @realloc(ptr %t118, i64 %t117) store ptr %t119, ptr %t107 store i32 %t113, ptr %t106 br label %put22 put22: %t120 = load ptr, ptr %t107 %t121 = getelementptr inbounds ptr, ptr %t120, i32 %t108 store ptr %t104, ptr %t121 %t122 = add i32 %t108, 1 store i32 %t122, ptr %t105 %t123 = load ptr, ptr @g_prog %t124 = load ptr, ptr %t63 %t125 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 1 %t126 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 2 %t127 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 0 %t128 = load i32, ptr %t125 %t129 = load i32, ptr %t126 %t130 = icmp sge i32 %t128, %t129 br i1 %t130, label %grow23, label %put24 grow23: %t131 = mul i32 %t129, 2 %t132 = icmp eq i32 %t129, 0 %t133 = select i1 %t132, i32 8, i32 %t131 %t134 = getelementptr ptr, ptr null, i32 1 %t135 = ptrtoint ptr %t134 to i64 %t136 = zext i32 %t133 to i64 %t137 = mul i64 %t136, %t135 %t138 = load ptr, ptr %t127 %t139 = call ptr @realloc(ptr %t138, i64 %t137) store ptr %t139, ptr %t127 store i32 %t133, ptr %t126 br label %put24 put24: %t140 = load ptr, ptr %t127 %t141 = getelementptr inbounds ptr, ptr %t140, i32 %t128 store ptr %t124, ptr %t141 %t142 = add i32 %t128, 1 store i32 %t142, ptr %t125 br label %wcond0 ifend10: %t143 = load ptr, ptr %t20 %t144 = call ptr @fn_eat_id() %t145 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 1 %t146 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 2 %t147 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0 %t148 = load i32, ptr %t145 %t149 = load i32, ptr %t146 %t150 = icmp sge i32 %t148, %t149 br i1 %t150, label %grow25, label %put26 grow25: %t151 = mul i32 %t149, 2 %t152 = icmp eq i32 %t149, 0 %t153 = select i1 %t152, i32 8, i32 %t151 %t154 = getelementptr ptr, ptr null, i32 1 %t155 = ptrtoint ptr %t154 to i64 %t156 = zext i32 %t153 to i64 %t157 = mul i64 %t156, %t155 %t158 = load ptr, ptr %t147 %t159 = call ptr @realloc(ptr %t158, i64 %t157) store ptr %t159, ptr %t147 store i32 %t153, ptr %t146 br label %put26 put26: %t160 = load ptr, ptr %t147 %t161 = getelementptr inbounds ptr, ptr %t160, i32 %t148 store ptr %t144, ptr %t161 %t162 = add i32 %t148, 1 store i32 %t162, ptr %t145 %t163 = load ptr, ptr %t13 %t164 = load ptr, ptr %t6 %t165 = load ptr, ptr %t20 %t166 = load ptr, ptr %t20 %t167 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 1 %t168 = load i32, ptr %t167 %t169 = sub i32 %t168, 1 %t170 = getelementptr inbounds %LSlice, ptr %t165, i32 0, i32 0 %t171 = load ptr, ptr %t170 %t172 = getelementptr inbounds %LSlice, ptr %t165, i32 0, i32 1 %t173 = load i32, ptr %t172 %t174 = icmp ult i32 %t169, %t173 br i1 %t174, label %ixok27, label %ixbad28 ixbad28: %t175 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t175, ptr @.fmt_bounds, ptr @.str1228, i32 %t169, i32 %t173) call void @exit(i32 1) unreachable ixok27: %t176 = getelementptr inbounds ptr, ptr %t171, i32 %t169 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_vw_field(ptr %t164, ptr %t177) %t179 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 1 %t180 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 2 %t181 = getelementptr inbounds %LSlice, ptr %t163, i32 0, i32 0 %t182 = load i32, ptr %t179 %t183 = load i32, ptr %t180 %t184 = icmp sge i32 %t182, %t183 br i1 %t184, label %grow29, label %put30 grow29: %t185 = mul i32 %t183, 2 %t186 = icmp eq i32 %t183, 0 %t187 = select i1 %t186, i32 8, i32 %t185 %t188 = getelementptr ptr, ptr null, i32 1 %t189 = ptrtoint ptr %t188 to i64 %t190 = zext i32 %t187 to i64 %t191 = mul i64 %t190, %t189 %t192 = load ptr, ptr %t181 %t193 = call ptr @realloc(ptr %t192, i64 %t191) store ptr %t193, ptr %t181 store i32 %t187, ptr %t180 br label %put30 put30: %t194 = load ptr, ptr %t181 %t195 = getelementptr inbounds ptr, ptr %t194, i32 %t182 store ptr %t178, ptr %t195 %t196 = add i32 %t182, 1 store i32 %t196, ptr %t179 br label %wcond0 wend2: call void @fn_eat_op(ptr @.str1229) %t197 = load ptr, ptr %t3 %t198 = load ptr, ptr %t6 %t199 = call ptr @fn_vw_head(ptr %t197, ptr %t198) store ptr %t199, ptr %t200 %t201 = load ptr, ptr @g_g_vw_name %t202 = load ptr, ptr %t3 %t203 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 1 %t204 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 2 %t205 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 0 %t206 = load i32, ptr %t203 %t207 = load i32, ptr %t204 %t208 = icmp sge i32 %t206, %t207 br i1 %t208, label %grow31, label %put32 grow31: %t209 = mul i32 %t207, 2 %t210 = icmp eq i32 %t207, 0 %t211 = select i1 %t210, i32 8, i32 %t209 %t212 = getelementptr ptr, ptr null, i32 1 %t213 = ptrtoint ptr %t212 to i64 %t214 = zext i32 %t211 to i64 %t215 = mul i64 %t214, %t213 %t216 = load ptr, ptr %t205 %t217 = call ptr @realloc(ptr %t216, i64 %t215) store ptr %t217, ptr %t205 store i32 %t211, ptr %t204 br label %put32 put32: %t218 = load ptr, ptr %t205 %t219 = getelementptr inbounds ptr, ptr %t218, i32 %t206 store ptr %t202, ptr %t219 %t220 = add i32 %t206, 1 store i32 %t220, ptr %t203 %t221 = load ptr, ptr @g_g_vw_node %t222 = load ptr, ptr %t200 %t223 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 1 %t224 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 2 %t225 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 0 %t226 = load i32, ptr %t223 %t227 = load i32, ptr %t224 %t228 = icmp sge i32 %t226, %t227 br i1 %t228, label %grow33, label %put34 grow33: %t229 = mul i32 %t227, 2 %t230 = icmp eq i32 %t227, 0 %t231 = select i1 %t230, i32 8, i32 %t229 %t232 = getelementptr ptr, ptr null, i32 1 %t233 = ptrtoint ptr %t232 to i64 %t234 = zext i32 %t231 to i64 %t235 = mul i64 %t234, %t233 %t236 = load ptr, ptr %t225 %t237 = call ptr @realloc(ptr %t236, i64 %t235) store ptr %t237, ptr %t225 store i32 %t231, ptr %t224 br label %put34 put34: %t238 = load ptr, ptr %t225 %t239 = getelementptr inbounds ptr, ptr %t238, i32 %t226 store ptr %t222, ptr %t239 %t240 = add i32 %t226, 1 store i32 %t240, ptr %t223 %t241 = load ptr, ptr @g_g_vw_fields %t242 = load ptr, ptr %t13 %t243 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 1 %t244 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 2 %t245 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 0 %t246 = load i32, ptr %t243 %t247 = load i32, ptr %t244 %t248 = icmp sge i32 %t246, %t247 br i1 %t248, label %grow35, label %put36 grow35: %t249 = mul i32 %t247, 2 %t250 = icmp eq i32 %t247, 0 %t251 = select i1 %t250, i32 8, i32 %t249 %t252 = getelementptr ptr, ptr null, i32 1 %t253 = ptrtoint ptr %t252 to i64 %t254 = zext i32 %t251 to i64 %t255 = mul i64 %t254, %t253 %t256 = load ptr, ptr %t245 %t257 = call ptr @realloc(ptr %t256, i64 %t255) store ptr %t257, ptr %t245 store i32 %t251, ptr %t244 br label %put36 put36: %t258 = load ptr, ptr %t245 %t259 = getelementptr inbounds ptr, ptr %t258, i32 %t246 store ptr %t242, ptr %t259 %t260 = add i32 %t246, 1 store i32 %t260, ptr %t243 %t261 = load ptr, ptr @g_g_vw_fnames %t262 = load ptr, ptr %t20 %t263 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 1 %t264 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 2 %t265 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 0 %t266 = load i32, ptr %t263 %t267 = load i32, ptr %t264 %t268 = icmp sge i32 %t266, %t267 br i1 %t268, label %grow37, label %put38 grow37: %t269 = mul i32 %t267, 2 %t270 = icmp eq i32 %t267, 0 %t271 = select i1 %t270, i32 8, i32 %t269 %t272 = getelementptr ptr, ptr null, i32 1 %t273 = ptrtoint ptr %t272 to i64 %t274 = zext i32 %t271 to i64 %t275 = mul i64 %t274, %t273 %t276 = load ptr, ptr %t265 %t277 = call ptr @realloc(ptr %t276, i64 %t275) store ptr %t277, ptr %t265 store i32 %t271, ptr %t264 br label %put38 put38: %t278 = load ptr, ptr %t265 %t279 = getelementptr inbounds ptr, ptr %t278, i32 %t266 store ptr %t262, ptr %t279 %t280 = add i32 %t266, 1 store i32 %t280, ptr %t263 %t281 = load ptr, ptr @g_g_vw_calls %t282 = load ptr, ptr %t27 %t283 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 1 %t284 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 2 %t285 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 0 %t286 = load i32, ptr %t283 %t287 = load i32, ptr %t284 %t288 = icmp sge i32 %t286, %t287 br i1 %t288, label %grow39, label %put40 grow39: %t289 = mul i32 %t287, 2 %t290 = icmp eq i32 %t287, 0 %t291 = select i1 %t290, i32 8, i32 %t289 %t292 = getelementptr ptr, ptr null, i32 1 %t293 = ptrtoint ptr %t292 to i64 %t294 = zext i32 %t291 to i64 %t295 = mul i64 %t294, %t293 %t296 = load ptr, ptr %t285 %t297 = call ptr @realloc(ptr %t296, i64 %t295) store ptr %t297, ptr %t285 store i32 %t291, ptr %t284 br label %put40 put40: %t298 = load ptr, ptr %t285 %t299 = getelementptr inbounds ptr, ptr %t298, i32 %t286 store ptr %t282, ptr %t299 %t300 = add i32 %t286, 1 store i32 %t300, ptr %t283 %t301 = load ptr, ptr @g_g_vw_cnames %t302 = load ptr, ptr %t34 %t303 = getelementptr inbounds %LSlice, ptr %t301, i32 0, i32 1 %t304 = getelementptr inbounds %LSlice, ptr %t301, i32 0, i32 2 %t305 = getelementptr inbounds %LSlice, ptr %t301, i32 0, i32 0 %t306 = load i32, ptr %t303 %t307 = load i32, ptr %t304 %t308 = icmp sge i32 %t306, %t307 br i1 %t308, label %grow41, label %put42 grow41: %t309 = mul i32 %t307, 2 %t310 = icmp eq i32 %t307, 0 %t311 = select i1 %t310, i32 8, i32 %t309 %t312 = getelementptr ptr, ptr null, i32 1 %t313 = ptrtoint ptr %t312 to i64 %t314 = zext i32 %t311 to i64 %t315 = mul i64 %t314, %t313 %t316 = load ptr, ptr %t305 %t317 = call ptr @realloc(ptr %t316, i64 %t315) store ptr %t317, ptr %t305 store i32 %t311, ptr %t304 br label %put42 put42: %t318 = load ptr, ptr %t305 %t319 = getelementptr inbounds ptr, ptr %t318, i32 %t306 store ptr %t302, ptr %t319 %t320 = add i32 %t306, 1 store i32 %t320, ptr %t303 br label %ret ret: ret void } define ptr @fn_vw_field(ptr %arg_px, ptr %arg_fname) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr %t32 = alloca ptr %t37 = alloca ptr store ptr %arg_px, ptr %t0 store ptr %arg_fname, ptr %t1 %t2 = call ptr @fn_node(i32 4) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t6, ptr @.str1230) %t8 = load ptr, ptr %t1 %t9 = call ptr @lp_str_concat(ptr %t7, ptr %t8) store ptr %t9, ptr %t5 %t10 = load ptr, ptr %t3 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 3 store ptr null, ptr %t11 %t12 = call i32 @fn_is_op(ptr @.str1231) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load i32, ptr @g_pi %t15 = add i32 %t14, 1 store i32 %t15, ptr @g_pi %t16 = load ptr, ptr %t3 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 %t18 = call ptr @fn_ptype() store ptr %t18, ptr %t17 br label %ifend2 ifend2: %t19 = call i32 @fn_is_op(ptr @.str1232) %t20 = icmp eq i32 %t19, 0 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then3, label %ifend5 then3: %t23 = load ptr, ptr %t1 %t24 = call ptr @lp_str_concat(ptr @.str1233, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str1234) %t26 = load ptr, ptr %t1 %t27 = call ptr @lp_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str1235) call void @fn_perr(ptr %t28) br label %ifend5 ifend5: %t29 = load i32, ptr @g_pi %t30 = add i32 %t29, 1 store i32 %t30, ptr @g_pi %t31 = call ptr @fn_node(i32 15) store ptr %t31, ptr %t32 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = call ptr @fn_expr() store ptr %t35, ptr %t34 %t36 = call ptr @fn_node(i32 7) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7 %t40 = load ptr, ptr %t39 %t41 = load ptr, ptr %t32 %t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 2 %t44 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t45 = load i32, ptr %t42 %t46 = load i32, ptr %t43 %t47 = icmp sge i32 %t45, %t46 br i1 %t47, label %grow6, label %put7 grow6: %t48 = mul i32 %t46, 2 %t49 = icmp eq i32 %t46, 0 %t50 = select i1 %t49, i32 8, i32 %t48 %t51 = getelementptr ptr, ptr null, i32 1 %t52 = ptrtoint ptr %t51 to i64 %t53 = zext i32 %t50 to i64 %t54 = mul i64 %t53, %t52 %t55 = load ptr, ptr %t44 %t56 = call ptr @realloc(ptr %t55, i64 %t54) store ptr %t56, ptr %t44 store i32 %t50, ptr %t43 br label %put7 put7: %t57 = load ptr, ptr %t44 %t58 = getelementptr inbounds ptr, ptr %t57, i32 %t45 store ptr %t41, ptr %t58 %t59 = add i32 %t45, 1 store i32 %t59, ptr %t42 %t60 = load ptr, ptr %t3 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4 %t62 = load ptr, ptr %t37 store ptr %t62, ptr %t61 %t63 = load ptr, ptr @g_prog %t64 = load ptr, ptr %t3 %t65 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t66 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 2 %t67 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 0 %t68 = load i32, ptr %t65 %t69 = load i32, ptr %t66 %t70 = icmp sge i32 %t68, %t69 br i1 %t70, label %grow8, label %put9 grow8: %t71 = mul i32 %t69, 2 %t72 = icmp eq i32 %t69, 0 %t73 = select i1 %t72, i32 8, i32 %t71 %t74 = getelementptr ptr, ptr null, i32 1 %t75 = ptrtoint ptr %t74 to i64 %t76 = zext i32 %t73 to i64 %t77 = mul i64 %t76, %t75 %t78 = load ptr, ptr %t67 %t79 = call ptr @realloc(ptr %t78, i64 %t77) store ptr %t79, ptr %t67 store i32 %t73, ptr %t66 br label %put9 put9: %t80 = load ptr, ptr %t67 %t81 = getelementptr inbounds ptr, ptr %t80, i32 %t68 store ptr %t64, ptr %t81 %t82 = add i32 %t68, 1 store i32 %t82, ptr %t65 %t83 = load ptr, ptr %t3 store ptr %t83, ptr %retval br label %ret ret: %t84 = load ptr, ptr %retval ret ptr %t84 } define ptr @fn_vw_head(ptr %arg_name, ptr %arg_px) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t15 = alloca ptr %t19 = alloca i32 store ptr %arg_name, ptr %t0 store ptr %arg_px, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_reg_lower(ptr %t2) %t4 = call ptr @lp_str_concat(ptr @.str1236, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str1237) %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str1238) %t9 = load ptr, ptr %t1 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @lp_str_concat(ptr %t10, ptr @.str1239) %t12 = load ptr, ptr %t1 %t13 = call ptr @lp_str_concat(ptr %t11, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str1240) store ptr %t14, ptr %t15 %t16 = load ptr, ptr @g_prog %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t18 = load i32, ptr %t17 store i32 %t18, ptr %t19 %t20 = load ptr, ptr %t15 %t21 = load ptr, ptr @g_g_parse_file %t22 = load ptr, ptr @g_toks %t23 = load i32, ptr @g_pi %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok0, label %ixbad1 ixbad1: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str1241, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok0: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Tok, ptr %t31, i32 0, i32 3 %t33 = load i32, ptr %t32 call void @fn_vw_parse(ptr %t20, ptr %t21, i32 %t33, i32 0) %t34 = load ptr, ptr @g_prog %t35 = load i32, ptr %t19 %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 %t35, %t39 br i1 %t40, label %ixok2, label %ixbad3 ixbad3: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str1242, i32 %t35, i32 %t39) call void @exit(i32 1) unreachable ixok2: %t42 = getelementptr inbounds ptr, ptr %t37, i32 %t35 %t43 = load ptr, ptr %t42 store ptr %t43, ptr %retval br label %ret ret: %t44 = load ptr, ptr %retval ret ptr %t44 } define void @fn_vw_parse(ptr %arg_src, ptr %arg_file, i32 %arg_line, i32 %arg_vis) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t5 = alloca ptr %t7 = alloca i32 %t9 = alloca ptr %t11 = alloca i32 %t18 = alloca i32 %t36 = alloca i32 store ptr %arg_src, ptr %t0 store ptr %arg_file, ptr %t1 store i32 %arg_line, ptr %t2 store i32 %arg_vis, ptr %t3 %t4 = load ptr, ptr @g_toks store ptr %t4, ptr %t5 %t6 = load i32, ptr @g_pi store i32 %t6, ptr %t7 %t8 = load ptr, ptr @g_g_parse_file store ptr %t8, ptr %t9 %t10 = load i32, ptr @g_g_parsing store i32 %t10, ptr %t11 %t12 = load ptr, ptr %t1 store ptr %t12, ptr @g_g_parse_file store i32 1, ptr @g_g_parsing %t13 = load ptr, ptr %t0 %t14 = load i32, ptr %t2 call void @fn_lex_at(ptr %t13, i32 %t14) store i32 0, ptr @g_pi %t15 = load ptr, ptr @g_prog %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t17 = load i32, ptr %t16 store i32 %t17, ptr %t18 br label %wcond0 wcond0: %t19 = icmp ne i32 1, 0 br i1 %t19, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() %t20 = load ptr, ptr @g_toks %t21 = load i32, ptr @g_pi %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok3, label %ixbad4 ixbad4: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str1243, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok3: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Tok, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 5 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: br label %wend2 ifend7: call void @fn_parse_one_decl() br label %wcond0 wend2: %t35 = load i32, ptr %t18 store i32 %t35, ptr %t36 br label %wcond8 wcond8: %t37 = load i32, ptr %t36 %t38 = load ptr, ptr @g_prog %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp slt i32 %t37, %t40 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %wbody9, label %wend10 wbody9: %t44 = load ptr, ptr @g_prog %t45 = load i32, ptr %t36 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok11, label %ixbad12 ixbad12: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str1244, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok11: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 10 %t55 = load i32, ptr %t3 store i32 %t55, ptr %t54 %t56 = load i32, ptr %t36 %t57 = add i32 %t56, 1 store i32 %t57, ptr %t36 br label %wcond8 wend10: %t58 = load ptr, ptr %t5 store ptr %t58, ptr @g_toks %t59 = load i32, ptr %t7 store i32 %t59, ptr @g_pi %t60 = load ptr, ptr %t9 store ptr %t60, ptr @g_g_parse_file %t61 = load i32, ptr %t11 store i32 %t61, ptr @g_g_parsing br label %ret ret: ret void } define ptr @fn_vw_conv(i32 %arg_v, ptr %arg_ty, ptr %arg_x, ptr %arg_head) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t29 = alloca i32 %t30 = alloca i32 %t59 = alloca ptr %t68 = alloca ptr %t81 = alloca ptr %t128 = alloca ptr %t136 = alloca ptr %t171 = alloca ptr %t172 = alloca i32 %t194 = alloca ptr %t211 = alloca ptr store i32 %arg_v, ptr %t0 store ptr %arg_ty, ptr %t1 store ptr %arg_x, ptr %t2 store ptr %arg_head, ptr %t3 %t4 = load ptr, ptr %t1 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str1245) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t2 %t8 = call ptr @lp_str_concat(ptr @.str1246, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str1247) store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t1 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str1248) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: %t13 = load ptr, ptr %t2 %t14 = call ptr @lp_str_concat(ptr @.str1249, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str1250) store ptr %t15, ptr %retval br label %ret ifend5: %t16 = load ptr, ptr %t1 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str1251) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then6, label %ifend8 then6: %t19 = load ptr, ptr %t2 %t20 = call ptr @lp_str_concat(ptr @.str1252, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str1253) store ptr %t21, ptr %retval br label %ret ifend8: %t22 = load ptr, ptr %t1 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str1254) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then9, label %ifend11 then9: %t25 = load ptr, ptr %t3 call void @fn_vw_helper(ptr @.str1255, ptr @.str1256, ptr %t25) %t26 = load ptr, ptr %t2 %t27 = call ptr @lp_str_concat(ptr @.str1257, ptr %t26) %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str1258) store ptr %t28, ptr %retval br label %ret ifend11: %t31 = load ptr, ptr %t1 %t32 = call i64 @strlen(ptr %t31) %t33 = trunc i64 %t32 to i32 %t34 = icmp sgt i32 %t33, 2 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t30 br i1 %t36, label %sc12, label %scend13 sc12: %t38 = load ptr, ptr %t1 %t39 = getelementptr inbounds i8, ptr %t38, i32 0 %t40 = load i8, ptr %t39 %t41 = zext i8 %t40 to i32 %t42 = icmp eq i32 %t41, 91 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t30 br label %scend13 scend13: %t46 = load i32, ptr %t30 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t29 br i1 %t47, label %sc14, label %scend15 sc14: %t49 = load ptr, ptr %t1 %t50 = getelementptr inbounds i8, ptr %t49, i32 1 %t51 = load i8, ptr %t50 %t52 = zext i8 %t51 to i32 %t53 = icmp eq i32 %t52, 93 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t29 br label %scend15 scend15: %t57 = load i32, ptr %t29 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then16, label %ifend18 then16: %t60 = load ptr, ptr %t1 %t61 = load ptr, ptr %t1 %t62 = call i64 @strlen(ptr %t61) %t63 = trunc i64 %t62 to i32 %t64 = call ptr @lp_str_slice(ptr %t60, i32 2, i32 %t63) store ptr %t64, ptr %t59 %t65 = load ptr, ptr %t59 %t66 = call ptr @fn_vw_mangle(ptr %t65) %t67 = call ptr @lp_str_concat(ptr @.str1259, ptr %t66) store ptr %t67, ptr %t68 %t69 = load ptr, ptr %t68 %t70 = call i32 @fn_vw_have(ptr %t69) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then19, label %ifend21 then19: %t72 = load ptr, ptr %t68 %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str1260) %t74 = load ptr, ptr %t2 %t75 = call ptr @lp_str_concat(ptr %t73, ptr %t74) %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str1261) store ptr %t76, ptr %retval br label %ret ifend21: %t77 = load i32, ptr %t0 %t78 = load ptr, ptr %t59 %t79 = load ptr, ptr %t3 %t80 = call ptr @fn_vw_conv(i32 %t77, ptr %t78, ptr @.str1262, ptr %t79) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t81 %t83 = icmp eq ptr %t82, null %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then22, label %ifend24 then22: store ptr null, ptr %retval br label %ret ifend24: %t86 = load ptr, ptr @g_g_vw_helpers %t87 = load ptr, ptr %t68 %t88 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 %t89 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 2 %t90 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 0 %t91 = load i32, ptr %t88 %t92 = load i32, ptr %t89 %t93 = icmp sge i32 %t91, %t92 br i1 %t93, label %grow25, label %put26 grow25: %t94 = mul i32 %t92, 2 %t95 = icmp eq i32 %t92, 0 %t96 = select i1 %t95, i32 8, i32 %t94 %t97 = getelementptr ptr, ptr null, i32 1 %t98 = ptrtoint ptr %t97 to i64 %t99 = zext i32 %t96 to i64 %t100 = mul i64 %t99, %t98 %t101 = load ptr, ptr %t90 %t102 = call ptr @realloc(ptr %t101, i64 %t100) store ptr %t102, ptr %t90 store i32 %t96, ptr %t89 br label %put26 put26: %t103 = load ptr, ptr %t90 %t104 = getelementptr inbounds ptr, ptr %t103, i32 %t91 store ptr %t87, ptr %t104 %t105 = add i32 %t91, 1 store i32 %t105, ptr %t88 %t106 = load ptr, ptr %t68 %t107 = call ptr @lp_str_concat(ptr @.str1263, ptr %t106) %t108 = call ptr @lp_str_concat(ptr %t107, ptr @.str1264) %t109 = load ptr, ptr %t1 %t110 = call ptr @lp_str_concat(ptr %t108, ptr %t109) %t111 = call ptr @lp_str_concat(ptr %t110, ptr @.str1265) %t112 = load ptr, ptr %t81 %t113 = call ptr @lp_str_concat(ptr %t111, ptr %t112) %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str1266) %t115 = load ptr, ptr %t3 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 9 %t117 = load ptr, ptr %t116 %t118 = load ptr, ptr %t3 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 8 %t120 = load i32, ptr %t119 call void @fn_vw_parse(ptr %t114, ptr %t117, i32 %t120, i32 1) %t121 = load ptr, ptr %t68 %t122 = call ptr @lp_str_concat(ptr %t121, ptr @.str1267) %t123 = load ptr, ptr %t2 %t124 = call ptr @lp_str_concat(ptr %t122, ptr %t123) %t125 = call ptr @lp_str_concat(ptr %t124, ptr @.str1268) store ptr %t125, ptr %retval br label %ret ifend18: %t126 = load ptr, ptr %t1 %t127 = call ptr @fn_find_comp(ptr %t126) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t128 %t130 = icmp eq ptr %t129, null %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then27, label %ifend29 then27: store ptr null, ptr %retval br label %ret ifend29: %t133 = load ptr, ptr %t1 %t134 = call ptr @fn_vw_mangle(ptr %t133) %t135 = call ptr @lp_str_concat(ptr @.str1269, ptr %t134) store ptr %t135, ptr %t136 %t137 = load ptr, ptr %t136 %t138 = call i32 @fn_vw_have(ptr %t137) %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then30, label %ifend32 then30: %t140 = load ptr, ptr %t136 %t141 = call ptr @lp_str_concat(ptr %t140, ptr @.str1270) %t142 = load ptr, ptr %t2 %t143 = call ptr @lp_str_concat(ptr %t141, ptr %t142) %t144 = call ptr @lp_str_concat(ptr %t143, ptr @.str1271) store ptr %t144, ptr %retval br label %ret ifend32: %t145 = load ptr, ptr @g_g_vw_helpers %t146 = load ptr, ptr %t136 %t147 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 1 %t148 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 2 %t149 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 0 %t150 = load i32, ptr %t147 %t151 = load i32, ptr %t148 %t152 = icmp sge i32 %t150, %t151 br i1 %t152, label %grow33, label %put34 grow33: %t153 = mul i32 %t151, 2 %t154 = icmp eq i32 %t151, 0 %t155 = select i1 %t154, i32 8, i32 %t153 %t156 = getelementptr ptr, ptr null, i32 1 %t157 = ptrtoint ptr %t156 to i64 %t158 = zext i32 %t155 to i64 %t159 = mul i64 %t158, %t157 %t160 = load ptr, ptr %t149 %t161 = call ptr @realloc(ptr %t160, i64 %t159) store ptr %t161, ptr %t149 store i32 %t155, ptr %t148 br label %put34 put34: %t162 = load ptr, ptr %t149 %t163 = getelementptr inbounds ptr, ptr %t162, i32 %t150 store ptr %t146, ptr %t163 %t164 = add i32 %t150, 1 store i32 %t164, ptr %t147 %t165 = load ptr, ptr %t136 %t166 = call ptr @lp_str_concat(ptr @.str1272, ptr %t165) %t167 = call ptr @lp_str_concat(ptr %t166, ptr @.str1273) %t168 = load ptr, ptr %t1 %t169 = call ptr @lp_str_concat(ptr %t167, ptr %t168) %t170 = call ptr @lp_str_concat(ptr %t169, ptr @.str1274) store ptr %t170, ptr %t171 store i32 0, ptr %t172 br label %wcond35 wcond35: %t173 = load i32, ptr %t172 %t174 = load ptr, ptr %t128 %t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 7 %t176 = load ptr, ptr %t175 %t177 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 1 %t178 = load i32, ptr %t177 %t179 = icmp slt i32 %t173, %t178 %t180 = zext i1 %t179 to i32 %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %wbody36, label %wend37 wbody36: %t182 = load ptr, ptr %t128 %t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 7 %t184 = load ptr, ptr %t183 %t185 = load i32, ptr %t172 %t186 = getelementptr inbounds %LSlice, ptr %t184, i32 0, i32 0 %t187 = load ptr, ptr %t186 %t188 = getelementptr inbounds %LSlice, ptr %t184, i32 0, i32 1 %t189 = load i32, ptr %t188 %t190 = icmp ult i32 %t185, %t189 br i1 %t190, label %ixok38, label %ixbad39 ixbad39: %t191 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t191, ptr @.fmt_bounds, ptr @.str1275, i32 %t185, i32 %t189) call void @exit(i32 1) unreachable ixok38: %t192 = getelementptr inbounds ptr, ptr %t187, i32 %t185 %t193 = load ptr, ptr %t192 store ptr %t193, ptr %t194 %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %Cmp_Node, ptr %t195, i32 0, i32 3 %t197 = load ptr, ptr %t196 %t198 = icmp ne ptr %t197, null %t199 = zext i1 %t198 to i32 %t200 = icmp ne i32 %t199, 0 br i1 %t200, label %then40, label %ifend42 then40: %t201 = load i32, ptr %t0 %t202 = load ptr, ptr %t194 %t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 3 %t204 = load ptr, ptr %t203 %t205 = load ptr, ptr %t194 %t206 = getelementptr inbounds %Cmp_Node, ptr %t205, i32 0, i32 1 %t207 = load ptr, ptr %t206 %t208 = call ptr @lp_str_concat(ptr @.str1276, ptr %t207) %t209 = load ptr, ptr %t3 %t210 = call ptr @fn_vw_conv(i32 %t201, ptr %t204, ptr %t208, ptr %t209) store ptr %t210, ptr %t211 %t212 = load ptr, ptr %t211 %t213 = icmp ne ptr %t212, null %t214 = zext i1 %t213 to i32 %t215 = icmp ne i32 %t214, 0 br i1 %t215, label %then43, label %ifend45 then43: %t216 = load ptr, ptr %t171 %t217 = load ptr, ptr %t194 %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 1 %t219 = load ptr, ptr %t218 %t220 = call ptr @lp_str_concat(ptr @.str1277, ptr %t219) %t221 = call ptr @lp_str_concat(ptr %t220, ptr @.str1278) %t222 = load ptr, ptr %t211 %t223 = call ptr @lp_str_concat(ptr %t221, ptr %t222) %t224 = call ptr @lp_str_concat(ptr %t223, ptr @.str1279) %t225 = call ptr @lp_str_concat(ptr %t216, ptr %t224) store ptr %t225, ptr %t171 br label %ifend45 ifend45: br label %ifend42 ifend42: %t226 = load i32, ptr %t172 %t227 = add i32 %t226, 1 store i32 %t227, ptr %t172 br label %wcond35 wend37: %t228 = load ptr, ptr %t171 %t229 = call ptr @lp_str_concat(ptr %t228, ptr @.str1280) %t230 = load ptr, ptr %t3 %t231 = getelementptr inbounds %Cmp_Node, ptr %t230, i32 0, i32 9 %t232 = load ptr, ptr %t231 %t233 = load ptr, ptr %t3 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 8 %t235 = load i32, ptr %t234 call void @fn_vw_parse(ptr %t229, ptr %t232, i32 %t235, i32 1) %t236 = load ptr, ptr %t136 %t237 = call ptr @lp_str_concat(ptr %t236, ptr @.str1281) %t238 = load ptr, ptr %t2 %t239 = call ptr @lp_str_concat(ptr %t237, ptr %t238) %t240 = call ptr @lp_str_concat(ptr %t239, ptr @.str1282) store ptr %t240, ptr %retval br label %ret ret: %t241 = load ptr, ptr %retval ret ptr %t241 } define i32 @fn_vw_have(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_vw_helpers %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_vw_helpers %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1283, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define void @fn_vw_helper(ptr %arg_src, ptr %arg_name, ptr %arg_head) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr store ptr %arg_src, ptr %t0 store ptr %arg_name, ptr %t1 store ptr %arg_head, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call i32 @fn_vw_have(ptr %t3) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = load ptr, ptr @g_g_vw_helpers %t7 = load ptr, ptr %t1 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t9 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 2 %t10 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t11 = load i32, ptr %t8 %t12 = load i32, ptr %t9 %t13 = icmp sge i32 %t11, %t12 br i1 %t13, label %grow3, label %put4 grow3: %t14 = mul i32 %t12, 2 %t15 = icmp eq i32 %t12, 0 %t16 = select i1 %t15, i32 8, i32 %t14 %t17 = getelementptr ptr, ptr null, i32 1 %t18 = ptrtoint ptr %t17 to i64 %t19 = zext i32 %t16 to i64 %t20 = mul i64 %t19, %t18 %t21 = load ptr, ptr %t10 %t22 = call ptr @realloc(ptr %t21, i64 %t20) store ptr %t22, ptr %t10 store i32 %t16, ptr %t9 br label %put4 put4: %t23 = load ptr, ptr %t10 %t24 = getelementptr inbounds ptr, ptr %t23, i32 %t11 store ptr %t7, ptr %t24 %t25 = add i32 %t11, 1 store i32 %t25, ptr %t8 %t26 = load ptr, ptr %t0 %t27 = load ptr, ptr %t2 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 9 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t2 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 8 %t32 = load i32, ptr %t31 call void @fn_vw_parse(ptr %t26, ptr %t29, i32 %t32, i32 1) br label %ret ret: ret void } define ptr @fn_vw_mangle(ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t9 = alloca ptr %t10 = alloca i32 %t21 = alloca i32 %t22 = alloca i32 %t23 = alloca i32 %t24 = alloca i32 %t38 = alloca i32 %t55 = alloca i32 %t70 = alloca i32 store ptr %arg_ty, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = add i32 %t5, 1 %t7 = zext i32 %t6 to i64 %t8 = call ptr @malloc(i64 %t7) store ptr %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load i32, ptr %t4 %t13 = icmp slt i32 %t11, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody1, label %wend2 wbody1: %t16 = load ptr, ptr %t0 %t17 = load i32, ptr %t10 %t18 = getelementptr inbounds i8, ptr %t16, i32 %t17 %t19 = load i8, ptr %t18 %t20 = zext i8 %t19 to i32 store i32 %t20, ptr %t21 %t25 = load i32, ptr %t21 %t26 = icmp sge i32 %t25, 97 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t24 br i1 %t28, label %sc3, label %scend4 sc3: %t30 = load i32, ptr %t21 %t31 = icmp sle i32 %t30, 122 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t24 br label %scend4 scend4: %t35 = load i32, ptr %t24 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t23 br i1 %t36, label %scend6, label %sc5 sc5: %t39 = load i32, ptr %t21 %t40 = icmp sge i32 %t39, 65 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t38 br i1 %t42, label %sc7, label %scend8 sc7: %t44 = load i32, ptr %t21 %t45 = icmp sle i32 %t44, 90 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t38 br label %scend8 scend8: %t49 = load i32, ptr %t38 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t23 br label %scend6 scend6: %t52 = load i32, ptr %t23 %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t22 br i1 %t53, label %scend10, label %sc9 sc9: %t56 = load i32, ptr %t21 %t57 = icmp sge i32 %t56, 48 %t58 = zext i1 %t57 to i32 %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t55 br i1 %t59, label %sc11, label %scend12 sc11: %t61 = load i32, ptr %t21 %t62 = icmp sle i32 %t61, 57 %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 %t65 = zext i1 %t64 to i32 store i32 %t65, ptr %t55 br label %scend12 scend12: %t66 = load i32, ptr %t55 %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t22 br label %scend10 scend10: %t69 = load i32, ptr %t22 store i32 %t69, ptr %t70 %t71 = load i32, ptr %t70 %t72 = icmp eq i32 %t71, 0 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then13, label %ifend15 then13: store i32 95, ptr %t21 br label %ifend15 ifend15: %t75 = load ptr, ptr %t9 %t76 = load i32, ptr %t10 %t77 = getelementptr inbounds i8, ptr %t75, i32 %t76 %t78 = load i32, ptr %t21 %t79 = trunc i32 %t78 to i8 store i8 %t79, ptr %t77 %t80 = load i32, ptr %t10 %t81 = add i32 %t80, 1 store i32 %t81, ptr %t10 br label %wcond0 wend2: %t82 = load ptr, ptr %t9 %t83 = load i32, ptr %t4 %t84 = getelementptr inbounds i8, ptr %t82, i32 %t83 %t85 = trunc i32 0 to i8 store i8 %t85, ptr %t84 %t86 = load ptr, ptr %t9 store ptr %t86, ptr %retval br label %ret ret: %t87 = load ptr, ptr %retval ret ptr %t87 } define void @fn_views_finish() { entry: %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_vw_name %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load i32, ptr %t0 call void @fn_vw_finish(i32 %t8) %t9 = load i32, ptr %t0 %t10 = add i32 %t9, 1 store i32 %t10, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_vw_err(i32 %arg_v, ptr %arg_msg) { entry: %t0 = alloca i32 %t1 = alloca ptr store i32 %arg_v, ptr %t0 store ptr %arg_msg, ptr %t1 %t2 = load ptr, ptr @g_g_vw_node %t3 = load i32, ptr %t0 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp ult i32 %t3, %t7 br i1 %t8, label %ixok0, label %ixbad1 ixbad1: %t9 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t9, ptr @.fmt_bounds, ptr @.str1284, i32 %t3, i32 %t7) call void @exit(i32 1) unreachable ixok0: %t10 = getelementptr inbounds ptr, ptr %t5, i32 %t3 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 9 %t13 = load ptr, ptr %t12 store ptr %t13, ptr @g_g_err_file %t14 = load ptr, ptr @g_g_vw_node %t15 = load i32, ptr %t0 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok2, label %ixbad3 ixbad3: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1285, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok2: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 8 %t25 = load i32, ptr %t24 store i32 %t25, ptr @g_g_err_line store i32 0, ptr @g_g_parsing %t26 = load ptr, ptr @g_g_vw_name %t27 = load i32, ptr %t0 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok4, label %ixbad5 ixbad5: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str1287, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok4: %t34 = getelementptr inbounds ptr, ptr %t29, i32 %t27 %t35 = load ptr, ptr %t34 %t36 = call ptr @lp_str_concat(ptr @.str1286, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str1288) %t38 = load ptr, ptr %t1 %t39 = call ptr @lp_str_concat(ptr %t37, ptr %t38) call void @fn_perr(ptr %t39) br label %ret ret: ret void } define void @fn_vw_finish(i32 %arg_v) { entry: %t0 = alloca i32 %t11 = alloca ptr %t28 = alloca ptr %t32 = alloca ptr %t43 = alloca ptr %t44 = alloca i32 %t62 = alloca ptr %t82 = alloca ptr %t105 = alloca ptr store i32 %arg_v, ptr %t0 %t1 = load ptr, ptr @g_g_vw_node %t2 = load i32, ptr %t0 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str1289, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t11 %t12 = call ptr @fn_find_comp(ptr @.str1290) %t13 = icmp eq ptr %t12, null %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then2, label %ifend4 then2: %t16 = load i32, ptr %t0 call void @fn_vw_err(i32 %t16, ptr @.str1291) br label %ifend4 ifend4: %t17 = load ptr, ptr @g_g_vw_name %t18 = load i32, ptr %t0 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok5, label %ixbad6 ixbad6: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str1292, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok5: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 %t27 = call ptr @fn_vw_prefix(ptr %t26) store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = call ptr @lp_str_concat(ptr @.str1293, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str1294) store ptr %t31, ptr %t32 %t33 = load ptr, ptr @g_g_vw_fields %t34 = load i32, ptr %t0 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 %t34, %t38 br i1 %t39, label %ixok7, label %ixbad8 ixbad8: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str1295, i32 %t34, i32 %t38) call void @exit(i32 1) unreachable ixok7: %t41 = getelementptr inbounds ptr, ptr %t36, i32 %t34 %t42 = load ptr, ptr %t41 store ptr %t42, ptr %t43 store i32 0, ptr %t44 br label %wcond9 wcond9: %t45 = load i32, ptr %t44 %t46 = load ptr, ptr %t43 %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp slt i32 %t45, %t48 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %wbody10, label %wend11 wbody10: %t52 = load ptr, ptr %t43 %t53 = load i32, ptr %t44 %t54 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t57 = load i32, ptr %t56 %t58 = icmp ult i32 %t53, %t57 br i1 %t58, label %ixok12, label %ixbad13 ixbad13: %t59 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t59, ptr @.fmt_bounds, ptr @.str1296, i32 %t53, i32 %t57) call void @exit(i32 1) unreachable ixok12: %t60 = getelementptr inbounds ptr, ptr %t55, i32 %t53 %t61 = load ptr, ptr %t60 store ptr %t61, ptr %t62 %t63 = load ptr, ptr @g_g_vw_fnames %t64 = load i32, ptr %t0 %t65 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t68 = load i32, ptr %t67 %t69 = icmp ult i32 %t64, %t68 br i1 %t69, label %ixok14, label %ixbad15 ixbad15: %t70 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t70, ptr @.fmt_bounds, ptr @.str1297, i32 %t64, i32 %t68) call void @exit(i32 1) unreachable ixok14: %t71 = getelementptr inbounds ptr, ptr %t66, i32 %t64 %t72 = load ptr, ptr %t71 %t73 = load i32, ptr %t44 %t74 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t77 = load i32, ptr %t76 %t78 = icmp ult i32 %t73, %t77 br i1 %t78, label %ixok16, label %ixbad17 ixbad17: %t79 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t79, ptr @.fmt_bounds, ptr @.str1298, i32 %t73, i32 %t77) call void @exit(i32 1) unreachable ixok16: %t80 = getelementptr inbounds ptr, ptr %t75, i32 %t73 %t81 = load ptr, ptr %t80 store ptr %t81, ptr %t82 %t83 = load ptr, ptr %t62 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 3 %t85 = load ptr, ptr %t84 %t86 = icmp eq ptr %t85, null %t87 = zext i1 %t86 to i32 %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then18, label %ifend20 then18: %t89 = load ptr, ptr %t62 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 3 %t91 = load i32, ptr %t0 %t92 = load ptr, ptr %t62 %t93 = load ptr, ptr %t82 %t94 = call ptr @fn_vw_infer(i32 %t91, ptr %t92, ptr %t93) store ptr %t94, ptr %t90 br label %ifend20 ifend20: %t95 = load i32, ptr %t0 %t96 = load ptr, ptr %t62 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 3 %t98 = load ptr, ptr %t97 %t99 = load ptr, ptr %t62 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 1 %t101 = load ptr, ptr %t100 %t102 = call ptr @lp_str_concat(ptr %t101, ptr @.str1299) %t103 = load ptr, ptr %t11 %t104 = call ptr @fn_vw_conv(i32 %t95, ptr %t98, ptr %t102, ptr %t103) store ptr %t104, ptr %t105 %t106 = load ptr, ptr %t105 %t107 = icmp eq ptr %t106, null %t108 = zext i1 %t107 to i32 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then21, label %ifend23 then21: %t110 = load i32, ptr %t0 %t111 = load ptr, ptr %t82 %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str1300) %t113 = load ptr, ptr %t62 %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 3 %t115 = load ptr, ptr %t114 %t116 = call ptr @lp_str_concat(ptr %t112, ptr %t115) %t117 = call ptr @lp_str_concat(ptr %t116, ptr @.str1301) call void @fn_vw_err(i32 %t110, ptr %t117) br label %ifend23 ifend23: %t118 = load ptr, ptr %t32 %t119 = load ptr, ptr %t82 %t120 = call ptr @lp_str_concat(ptr @.str1302, ptr %t119) %t121 = call ptr @lp_str_concat(ptr %t120, ptr @.str1303) %t122 = load ptr, ptr %t105 %t123 = call ptr @lp_str_concat(ptr %t121, ptr %t122) %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str1304) %t125 = call ptr @lp_str_concat(ptr %t118, ptr %t124) store ptr %t125, ptr %t32 %t126 = load i32, ptr %t44 %t127 = add i32 %t126, 1 store i32 %t127, ptr %t44 br label %wcond9 wend11: %t128 = load ptr, ptr %t32 %t129 = call ptr @lp_str_concat(ptr %t128, ptr @.str1305) store ptr %t129, ptr %t32 %t130 = load ptr, ptr %t32 %t131 = load ptr, ptr %t11 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 9 %t133 = load ptr, ptr %t132 %t134 = load ptr, ptr %t11 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 8 %t136 = load i32, ptr %t135 %t137 = load ptr, ptr %t11 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 10 %t139 = load i32, ptr %t138 call void @fn_vw_parse(ptr %t130, ptr %t133, i32 %t136, i32 %t139) %t140 = load i32, ptr %t0 %t141 = load ptr, ptr %t28 %t142 = load ptr, ptr %t11 %t143 = call ptr @fn_vw_call_src(i32 %t140, ptr %t141, ptr %t142) %t144 = load ptr, ptr %t11 %t145 = getelementptr inbounds %Cmp_Node, ptr %t144, i32 0, i32 9 %t146 = load ptr, ptr %t145 %t147 = load ptr, ptr %t11 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 8 %t149 = load i32, ptr %t148 %t150 = load ptr, ptr %t11 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 10 %t152 = load i32, ptr %t151 call void @fn_vw_parse(ptr %t143, ptr %t146, i32 %t149, i32 %t152) br label %ret ret: ret void } define ptr @fn_vw_infer(i32 %arg_v, ptr %arg_g, ptr %arg_fname) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t18 = alloca ptr %t29 = alloca ptr %t30 = alloca i32 %t72 = alloca i32 %t73 = alloca i32 %t108 = alloca ptr %t109 = alloca i32 %t110 = alloca i32 store i32 %arg_v, ptr %t0 store ptr %arg_g, ptr %t1 store ptr %arg_fname, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok0, label %ixbad1 ixbad1: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str1306, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok0: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 33 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then2, label %ifend4 then2: %t25 = load ptr, ptr %t18 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 %t28 = call ptr @fn_find_global(ptr %t27) store ptr %t28, ptr %t29 %t31 = load ptr, ptr %t29 %t32 = icmp ne ptr %t31, null %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t30 br i1 %t34, label %sc5, label %scend6 sc5: %t36 = load ptr, ptr %t29 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 3 %t38 = load ptr, ptr %t37 %t39 = icmp ne ptr %t38, null %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t30 br label %scend6 scend6: %t43 = load i32, ptr %t30 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then7, label %ifend9 then7: %t45 = load ptr, ptr %t29 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 3 %t47 = load ptr, ptr %t46 store ptr %t47, ptr %retval br label %ret ifend9: br label %ifend4 ifend4: %t48 = load ptr, ptr %t18 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 0 %t50 = load i32, ptr %t49 %t51 = icmp eq i32 %t50, 30 %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then10, label %ifend12 then10: store ptr @.str1307, ptr %retval br label %ret ifend12: %t54 = load ptr, ptr %t18 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 0 %t56 = load i32, ptr %t55 %t57 = icmp eq i32 %t56, 40 %t58 = zext i1 %t57 to i32 %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %then13, label %ifend15 then13: store ptr @.str1308, ptr %retval br label %ret ifend15: %t60 = load ptr, ptr %t18 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 0 %t62 = load i32, ptr %t61 %t63 = icmp eq i32 %t62, 32 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then16, label %ifend18 then16: store ptr @.str1309, ptr %retval br label %ret ifend18: %t66 = load ptr, ptr %t18 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 0 %t68 = load i32, ptr %t67 %t69 = icmp eq i32 %t68, 31 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then19, label %ifend21 then19: store ptr @.str1310, ptr %retval br label %ret ifend21: %t74 = load ptr, ptr %t18 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 0 %t76 = load i32, ptr %t75 %t77 = icmp eq i32 %t76, 34 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t73 br i1 %t79, label %sc22, label %scend23 sc22: %t81 = load ptr, ptr %t18 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 4 %t83 = load ptr, ptr %t82 %t84 = icmp ne ptr %t83, null %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t73 br label %scend23 scend23: %t88 = load i32, ptr %t73 %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t72 br i1 %t89, label %sc24, label %scend25 sc24: %t91 = load ptr, ptr %t18 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 4 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 0 %t95 = load i32, ptr %t94 %t96 = icmp eq i32 %t95, 33 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t72 br label %scend25 scend25: %t100 = load i32, ptr %t72 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then26, label %ifend28 then26: %t102 = load ptr, ptr %t18 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 4 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 1 %t106 = load ptr, ptr %t105 %t107 = call ptr @fn_find_fn(ptr %t106) store ptr %t107, ptr %t108 %t111 = load ptr, ptr %t108 %t112 = icmp ne ptr %t111, null %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t110 br i1 %t114, label %sc29, label %scend30 sc29: %t116 = load ptr, ptr %t108 %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 3 %t118 = load ptr, ptr %t117 %t119 = icmp ne ptr %t118, null %t120 = zext i1 %t119 to i32 %t121 = icmp ne i32 %t120, 0 %t122 = zext i1 %t121 to i32 store i32 %t122, ptr %t110 br label %scend30 scend30: %t123 = load i32, ptr %t110 %t124 = icmp ne i32 %t123, 0 %t125 = zext i1 %t124 to i32 store i32 %t125, ptr %t109 br i1 %t124, label %sc31, label %scend32 sc31: %t126 = load ptr, ptr %t108 %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 3 %t128 = load ptr, ptr %t127 %t129 = call i32 @lp_str_eq(ptr %t128, ptr @.str1311) %t130 = icmp eq i32 %t129, 0 %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 %t133 = zext i1 %t132 to i32 store i32 %t133, ptr %t109 br label %scend32 scend32: %t134 = load i32, ptr %t109 %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then33, label %ifend35 then33: %t136 = load ptr, ptr %t108 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 3 %t138 = load ptr, ptr %t137 store ptr %t138, ptr %retval br label %ret ifend35: br label %ifend28 ifend28: %t139 = load ptr, ptr @g_g_vw_node %t140 = load i32, ptr %t0 %t141 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 0 %t142 = load ptr, ptr %t141 %t143 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 1 %t144 = load i32, ptr %t143 %t145 = icmp ult i32 %t140, %t144 br i1 %t145, label %ixok36, label %ixbad37 ixbad37: %t146 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t146, ptr @.fmt_bounds, ptr @.str1312, i32 %t140, i32 %t144) call void @exit(i32 1) unreachable ixok36: %t147 = getelementptr inbounds ptr, ptr %t142, i32 %t140 %t148 = load ptr, ptr %t147 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 8 %t150 = load ptr, ptr %t1 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 8 %t152 = load i32, ptr %t151 store i32 %t152, ptr %t149 %t153 = load i32, ptr %t0 %t154 = load ptr, ptr %t2 %t155 = call ptr @lp_str_concat(ptr @.str1313, ptr %t154) %t156 = call ptr @lp_str_concat(ptr %t155, ptr @.str1314) %t157 = load ptr, ptr %t2 %t158 = call ptr @lp_str_concat(ptr %t156, ptr %t157) %t159 = call ptr @lp_str_concat(ptr %t158, ptr @.str1315) call void @fn_vw_err(i32 %t153, ptr %t159) store ptr @.str1316, ptr %retval br label %ret ret: %t160 = load ptr, ptr %retval ret ptr %t160 } define ptr @fn_vw_call_src(i32 %arg_v, ptr %arg_px, ptr %arg_head) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t6 = alloca ptr %t17 = alloca ptr %t18 = alloca i32 %t36 = alloca ptr %t37 = alloca ptr %t38 = alloca i32 %t80 = alloca ptr %t121 = alloca ptr store i32 %arg_v, ptr %t0 store ptr %arg_px, ptr %t1 store ptr %arg_head, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str1317, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str1318) store ptr %t5, ptr %t6 %t7 = load ptr, ptr @g_g_vw_calls %t8 = load i32, ptr %t0 %t9 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t12 = load i32, ptr %t11 %t13 = icmp ult i32 %t8, %t12 br i1 %t13, label %ixok0, label %ixbad1 ixbad1: %t14 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t14, ptr @.fmt_bounds, ptr @.str1319, i32 %t8, i32 %t12) call void @exit(i32 1) unreachable ixok0: %t15 = getelementptr inbounds ptr, ptr %t10, i32 %t8 %t16 = load ptr, ptr %t15 store ptr %t16, ptr %t17 store i32 0, ptr %t18 br label %wcond2 wcond2: %t19 = load i32, ptr %t18 %t20 = load ptr, ptr %t17 %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp slt i32 %t19, %t22 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %wbody3, label %wend4 wbody3: %t26 = load ptr, ptr %t17 %t27 = load i32, ptr %t18 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok5, label %ixbad6 ixbad6: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str1320, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok5: %t34 = getelementptr inbounds ptr, ptr %t29, i32 %t27 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %t36 store ptr @.str1321, ptr %t37 store i32 0, ptr %t38 br label %wcond7 wcond7: %t39 = load i32, ptr %t38 %t40 = load ptr, ptr %t36 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 7 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp slt i32 %t39, %t44 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %wbody8, label %wend9 wbody8: %t48 = load i32, ptr %t38 %t49 = icmp sgt i32 %t48, 0 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then10, label %ifend12 then10: %t52 = load ptr, ptr %t37 %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str1322) store ptr %t53, ptr %t37 br label %ifend12 ifend12: %t54 = load ptr, ptr %t37 %t55 = load i32, ptr %t0 %t56 = load ptr, ptr %t36 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7 %t58 = load ptr, ptr %t57 %t59 = load i32, ptr %t38 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 %t59, %t63 br i1 %t64, label %ixok13, label %ixbad14 ixbad14: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str1323, i32 %t59, i32 %t63) call void @exit(i32 1) unreachable ixok13: %t66 = getelementptr inbounds ptr, ptr %t61, i32 %t59 %t67 = load ptr, ptr %t66 %t68 = load i32, ptr %t38 %t69 = call ptr @fn_vw_arg(i32 %t55, ptr %t67, i32 %t68) %t70 = call ptr @lp_str_concat(ptr %t54, ptr %t69) store ptr %t70, ptr %t37 %t71 = load i32, ptr %t38 %t72 = add i32 %t71, 1 store i32 %t72, ptr %t38 br label %wcond7 wend9: %t73 = load ptr, ptr %t36 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 1 %t75 = load ptr, ptr %t74 %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str1324) %t77 = load ptr, ptr %t37 %t78 = call ptr @lp_str_concat(ptr %t76, ptr %t77) %t79 = call ptr @lp_str_concat(ptr %t78, ptr @.str1325) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t6 %t82 = load ptr, ptr @g_g_vw_cnames %t83 = load i32, ptr %t0 %t84 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 %t87 = load i32, ptr %t86 %t88 = icmp ult i32 %t83, %t87 br i1 %t88, label %ixok15, label %ixbad16 ixbad16: %t89 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t89, ptr @.fmt_bounds, ptr @.str1327, i32 %t83, i32 %t87) call void @exit(i32 1) unreachable ixok15: %t90 = getelementptr inbounds ptr, ptr %t85, i32 %t83 %t91 = load ptr, ptr %t90 %t92 = load i32, ptr %t18 %t93 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t96 = load i32, ptr %t95 %t97 = icmp ult i32 %t92, %t96 br i1 %t97, label %ixok17, label %ixbad18 ixbad18: %t98 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t98, ptr @.fmt_bounds, ptr @.str1328, i32 %t92, i32 %t96) call void @exit(i32 1) unreachable ixok17: %t99 = getelementptr inbounds ptr, ptr %t94, i32 %t92 %t100 = load ptr, ptr %t99 %t101 = call ptr @lp_str_concat(ptr @.str1326, ptr %t100) %t102 = call ptr @lp_str_concat(ptr %t101, ptr @.str1329) %t103 = call ptr @lp_str_concat(ptr %t81, ptr %t102) store ptr %t103, ptr %t6 %t104 = load ptr, ptr %t36 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 3 %t106 = load ptr, ptr %t105 %t107 = call i32 @lp_str_eq(ptr %t106, ptr @.str1330) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then19, label %else20 then19: %t109 = load ptr, ptr %t6 %t110 = load ptr, ptr %t80 %t111 = call ptr @lp_str_concat(ptr @.str1331, ptr %t110) %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str1332) %t113 = call ptr @lp_str_concat(ptr %t109, ptr %t112) store ptr %t113, ptr %t6 br label %ifend21 else20: %t114 = load i32, ptr %t0 %t115 = load ptr, ptr %t36 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 3 %t117 = load ptr, ptr %t116 %t118 = load ptr, ptr %t80 %t119 = load ptr, ptr %t2 %t120 = call ptr @fn_vw_conv(i32 %t114, ptr %t117, ptr %t118, ptr %t119) store ptr %t120, ptr %t121 %t122 = load ptr, ptr %t121 %t123 = icmp eq ptr %t122, null %t124 = zext i1 %t123 to i32 %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then22, label %ifend24 then22: %t126 = load i32, ptr %t0 %t127 = load ptr, ptr @g_g_vw_cnames %t128 = load i32, ptr %t0 %t129 = getelementptr inbounds %LSlice, ptr %t127, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds %LSlice, ptr %t127, i32 0, i32 1 %t132 = load i32, ptr %t131 %t133 = icmp ult i32 %t128, %t132 br i1 %t133, label %ixok25, label %ixbad26 ixbad26: %t134 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t134, ptr @.fmt_bounds, ptr @.str1333, i32 %t128, i32 %t132) call void @exit(i32 1) unreachable ixok25: %t135 = getelementptr inbounds ptr, ptr %t130, i32 %t128 %t136 = load ptr, ptr %t135 %t137 = load i32, ptr %t18 %t138 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 0 %t139 = load ptr, ptr %t138 %t140 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 1 %t141 = load i32, ptr %t140 %t142 = icmp ult i32 %t137, %t141 br i1 %t142, label %ixok27, label %ixbad28 ixbad28: %t143 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t143, ptr @.fmt_bounds, ptr @.str1334, i32 %t137, i32 %t141) call void @exit(i32 1) unreachable ixok27: %t144 = getelementptr inbounds ptr, ptr %t139, i32 %t137 %t145 = load ptr, ptr %t144 %t146 = call ptr @lp_str_concat(ptr %t145, ptr @.str1335) %t147 = load ptr, ptr %t36 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 3 %t149 = load ptr, ptr %t148 %t150 = call ptr @lp_str_concat(ptr %t146, ptr %t149) %t151 = call ptr @lp_str_concat(ptr %t150, ptr @.str1336) call void @fn_vw_err(i32 %t126, ptr %t151) br label %ifend24 ifend24: %t152 = load ptr, ptr %t6 %t153 = load ptr, ptr %t121 %t154 = call ptr @lp_str_concat(ptr @.str1337, ptr %t153) %t155 = call ptr @lp_str_concat(ptr %t154, ptr @.str1338) %t156 = call ptr @lp_str_concat(ptr %t152, ptr %t155) store ptr %t156, ptr %t6 br label %ifend21 ifend21: %t157 = load ptr, ptr %t6 %t158 = call ptr @lp_str_concat(ptr %t157, ptr @.str1339) store ptr %t158, ptr %t6 %t159 = load i32, ptr %t18 %t160 = add i32 %t159, 1 store i32 %t160, ptr %t18 br label %wcond2 wend4: %t161 = load ptr, ptr %t6 %t162 = call ptr @lp_str_concat(ptr %t161, ptr @.str1340) store ptr %t162, ptr %retval br label %ret ret: %t163 = load ptr, ptr %retval ret ptr %t163 } define ptr @fn_vw_arg(i32 %arg_v, ptr %arg_p, i32 %arg_i) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 %t7 = alloca ptr store i32 %arg_v, ptr %t0 store ptr %arg_p, ptr %t1 store i32 %arg_i, ptr %t2 %t3 = load i32, ptr %t2 %t4 = call ptr @lp_int_str(i32 %t3) %t5 = call ptr @lp_str_concat(ptr @.str1341, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str1342) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t1 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 3 %t10 = load ptr, ptr %t9 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str1343) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: %t13 = load ptr, ptr %t7 %t14 = call ptr @lp_str_concat(ptr @.str1344, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str1345) store ptr %t15, ptr %retval br label %ret ifend2: %t16 = load ptr, ptr %t1 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 %t18 = load ptr, ptr %t17 %t19 = call i32 @lp_str_eq(ptr %t18, ptr @.str1346) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load ptr, ptr %t7 %t22 = call ptr @lp_str_concat(ptr @.str1347, ptr %t21) %t23 = call ptr @lp_str_concat(ptr %t22, ptr @.str1348) store ptr %t23, ptr %retval br label %ret ifend5: %t24 = load ptr, ptr %t1 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 3 %t26 = load ptr, ptr %t25 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str1349) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: %t29 = load ptr, ptr %t7 %t30 = call ptr @lp_str_concat(ptr @.str1350, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str1351) store ptr %t31, ptr %retval br label %ret ifend8: %t32 = load ptr, ptr %t1 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 3 %t34 = load ptr, ptr %t33 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str1352) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then9, label %ifend11 then9: %t37 = load ptr, ptr %t7 %t38 = call ptr @lp_str_concat(ptr @.str1353, ptr %t37) %t39 = call ptr @lp_str_concat(ptr %t38, ptr @.str1354) store ptr %t39, ptr %retval br label %ret ifend11: %t40 = load i32, ptr %t0 %t41 = load ptr, ptr %t1 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str1355) %t45 = load ptr, ptr %t1 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 3 %t47 = load ptr, ptr %t46 %t48 = call ptr @lp_str_concat(ptr %t44, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str1356) call void @fn_vw_err(i32 %t40, ptr %t49) store ptr @.str1357, ptr %retval br label %ret ret: %t50 = load ptr, ptr %retval ret ptr %t50 } define ptr @fn_cm_prefix(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_reg_lower(ptr %t1) %t3 = call ptr @lp_str_concat(ptr @.str1358, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str1359) store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define void @fn_parse_ui_component() { entry: %t3 = alloca ptr %t7 = alloca ptr %t11 = alloca i32 %t289 = alloca ptr %t0 = load i32, ptr @g_pi %t1 = add i32 %t0, 1 store i32 %t1, ptr @g_pi %t2 = call ptr @fn_eat_id() store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 call void @fn_cm_unique(ptr %t4) %t5 = load ptr, ptr %t3 %t6 = call ptr @fn_cm_prefix(ptr %t5) store ptr %t6, ptr %t7 store i32 1, ptr @g_g_uses_value %t8 = load ptr, ptr @g_g_cm_name %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 store i32 %t10, ptr %t11 %t12 = load ptr, ptr @g_g_cm_name %t13 = load ptr, ptr %t3 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 2 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t17 = load i32, ptr %t14 %t18 = load i32, ptr %t15 %t19 = icmp sge i32 %t17, %t18 br i1 %t19, label %grow0, label %put1 grow0: %t20 = mul i32 %t18, 2 %t21 = icmp eq i32 %t18, 0 %t22 = select i1 %t21, i32 8, i32 %t20 %t23 = getelementptr ptr, ptr null, i32 1 %t24 = ptrtoint ptr %t23 to i64 %t25 = zext i32 %t22 to i64 %t26 = mul i64 %t25, %t24 %t27 = load ptr, ptr %t16 %t28 = call ptr @realloc(ptr %t27, i64 %t26) store ptr %t28, ptr %t16 store i32 %t22, ptr %t15 br label %put1 put1: %t29 = load ptr, ptr %t16 %t30 = getelementptr inbounds ptr, ptr %t29, i32 %t17 store ptr %t13, ptr %t30 %t31 = add i32 %t17, 1 store i32 %t31, ptr %t14 %t32 = load ptr, ptr @g_g_cm_file %t33 = load ptr, ptr @g_g_parse_file %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t35 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 2 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t37 = load i32, ptr %t34 %t38 = load i32, ptr %t35 %t39 = icmp sge i32 %t37, %t38 br i1 %t39, label %grow2, label %put3 grow2: %t40 = mul i32 %t38, 2 %t41 = icmp eq i32 %t38, 0 %t42 = select i1 %t41, i32 8, i32 %t40 %t43 = getelementptr ptr, ptr null, i32 1 %t44 = ptrtoint ptr %t43 to i64 %t45 = zext i32 %t42 to i64 %t46 = mul i64 %t45, %t44 %t47 = load ptr, ptr %t36 %t48 = call ptr @realloc(ptr %t47, i64 %t46) store ptr %t48, ptr %t36 store i32 %t42, ptr %t35 br label %put3 put3: %t49 = load ptr, ptr %t36 %t50 = getelementptr inbounds ptr, ptr %t49, i32 %t37 store ptr %t33, ptr %t50 %t51 = add i32 %t37, 1 store i32 %t51, ptr %t34 %t52 = load ptr, ptr @g_g_cm_line %t53 = load ptr, ptr @g_toks %t54 = load i32, ptr @g_pi %t55 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t58 = load i32, ptr %t57 %t59 = icmp ult i32 %t54, %t58 br i1 %t59, label %ixok4, label %ixbad5 ixbad5: %t60 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t60, ptr @.fmt_bounds, ptr @.str1360, i32 %t54, i32 %t58) call void @exit(i32 1) unreachable ixok4: %t61 = getelementptr inbounds ptr, ptr %t56, i32 %t54 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %Cmp_Tok, ptr %t62, i32 0, i32 3 %t64 = load i32, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t66 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 2 %t67 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 %t68 = load i32, ptr %t65 %t69 = load i32, ptr %t66 %t70 = icmp sge i32 %t68, %t69 br i1 %t70, label %grow6, label %put7 grow6: %t71 = mul i32 %t69, 2 %t72 = icmp eq i32 %t69, 0 %t73 = select i1 %t72, i32 8, i32 %t71 %t74 = getelementptr i32, ptr null, i32 1 %t75 = ptrtoint ptr %t74 to i64 %t76 = zext i32 %t73 to i64 %t77 = mul i64 %t76, %t75 %t78 = load ptr, ptr %t67 %t79 = call ptr @realloc(ptr %t78, i64 %t77) store ptr %t79, ptr %t67 store i32 %t73, ptr %t66 br label %put7 put7: %t80 = load ptr, ptr %t67 %t81 = getelementptr inbounds i32, ptr %t80, i32 %t68 store i32 %t64, ptr %t81 %t82 = add i32 %t68, 1 store i32 %t82, ptr %t65 %t83 = load ptr, ptr @g_g_cm_keep %t84 = getelementptr %LSlice, ptr null, i32 1 %t85 = ptrtoint ptr %t84 to i64 %t86 = call ptr @malloc(i64 %t85) %t87 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 0 store ptr null, ptr %t87 %t88 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 store i32 0, ptr %t88 %t89 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 2 store i32 0, ptr %t89 %t90 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t91 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 2 %t92 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 0 %t93 = load i32, ptr %t90 %t94 = load i32, ptr %t91 %t95 = icmp sge i32 %t93, %t94 br i1 %t95, label %grow8, label %put9 grow8: %t96 = mul i32 %t94, 2 %t97 = icmp eq i32 %t94, 0 %t98 = select i1 %t97, i32 8, i32 %t96 %t99 = getelementptr ptr, ptr null, i32 1 %t100 = ptrtoint ptr %t99 to i64 %t101 = zext i32 %t98 to i64 %t102 = mul i64 %t101, %t100 %t103 = load ptr, ptr %t92 %t104 = call ptr @realloc(ptr %t103, i64 %t102) store ptr %t104, ptr %t92 store i32 %t98, ptr %t91 br label %put9 put9: %t105 = load ptr, ptr %t92 %t106 = getelementptr inbounds ptr, ptr %t105, i32 %t93 store ptr %t86, ptr %t106 %t107 = add i32 %t93, 1 store i32 %t107, ptr %t90 %t108 = load ptr, ptr @g_g_cm_keep_ty %t109 = getelementptr %LSlice, ptr null, i32 1 %t110 = ptrtoint ptr %t109 to i64 %t111 = call ptr @malloc(i64 %t110) %t112 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0 store ptr null, ptr %t112 %t113 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 store i32 0, ptr %t113 %t114 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 2 store i32 0, ptr %t114 %t115 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t116 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2 %t117 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t118 = load i32, ptr %t115 %t119 = load i32, ptr %t116 %t120 = icmp sge i32 %t118, %t119 br i1 %t120, label %grow10, label %put11 grow10: %t121 = mul i32 %t119, 2 %t122 = icmp eq i32 %t119, 0 %t123 = select i1 %t122, i32 8, i32 %t121 %t124 = getelementptr ptr, ptr null, i32 1 %t125 = ptrtoint ptr %t124 to i64 %t126 = zext i32 %t123 to i64 %t127 = mul i64 %t126, %t125 %t128 = load ptr, ptr %t117 %t129 = call ptr @realloc(ptr %t128, i64 %t127) store ptr %t129, ptr %t117 store i32 %t123, ptr %t116 br label %put11 put11: %t130 = load ptr, ptr %t117 %t131 = getelementptr inbounds ptr, ptr %t130, i32 %t118 store ptr %t111, ptr %t131 %t132 = add i32 %t118, 1 store i32 %t132, ptr %t115 %t133 = load ptr, ptr @g_g_cm_prop %t134 = getelementptr %LSlice, ptr null, i32 1 %t135 = ptrtoint ptr %t134 to i64 %t136 = call ptr @malloc(i64 %t135) %t137 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 0 store ptr null, ptr %t137 %t138 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 1 store i32 0, ptr %t138 %t139 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 2 store i32 0, ptr %t139 %t140 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 1 %t141 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 2 %t142 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0 %t143 = load i32, ptr %t140 %t144 = load i32, ptr %t141 %t145 = icmp sge i32 %t143, %t144 br i1 %t145, label %grow12, label %put13 grow12: %t146 = mul i32 %t144, 2 %t147 = icmp eq i32 %t144, 0 %t148 = select i1 %t147, i32 8, i32 %t146 %t149 = getelementptr ptr, ptr null, i32 1 %t150 = ptrtoint ptr %t149 to i64 %t151 = zext i32 %t148 to i64 %t152 = mul i64 %t151, %t150 %t153 = load ptr, ptr %t142 %t154 = call ptr @realloc(ptr %t153, i64 %t152) store ptr %t154, ptr %t142 store i32 %t148, ptr %t141 br label %put13 put13: %t155 = load ptr, ptr %t142 %t156 = getelementptr inbounds ptr, ptr %t155, i32 %t143 store ptr %t136, ptr %t156 %t157 = add i32 %t143, 1 store i32 %t157, ptr %t140 %t158 = load ptr, ptr @g_g_cm_defs %t159 = getelementptr %LSlice, ptr null, i32 1 %t160 = ptrtoint ptr %t159 to i64 %t161 = call ptr @malloc(i64 %t160) %t162 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 0 store ptr null, ptr %t162 %t163 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 1 store i32 0, ptr %t163 %t164 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 2 store i32 0, ptr %t164 %t165 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1 %t166 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 2 %t167 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 0 %t168 = load i32, ptr %t165 %t169 = load i32, ptr %t166 %t170 = icmp sge i32 %t168, %t169 br i1 %t170, label %grow14, label %put15 grow14: %t171 = mul i32 %t169, 2 %t172 = icmp eq i32 %t169, 0 %t173 = select i1 %t172, i32 8, i32 %t171 %t174 = getelementptr ptr, ptr null, i32 1 %t175 = ptrtoint ptr %t174 to i64 %t176 = zext i32 %t173 to i64 %t177 = mul i64 %t176, %t175 %t178 = load ptr, ptr %t167 %t179 = call ptr @realloc(ptr %t178, i64 %t177) store ptr %t179, ptr %t167 store i32 %t173, ptr %t166 br label %put15 put15: %t180 = load ptr, ptr %t167 %t181 = getelementptr inbounds ptr, ptr %t180, i32 %t168 store ptr %t161, ptr %t181 %t182 = add i32 %t168, 1 store i32 %t182, ptr %t165 %t183 = load ptr, ptr @g_g_cm_fields %t184 = getelementptr %LSlice, ptr null, i32 1 %t185 = ptrtoint ptr %t184 to i64 %t186 = call ptr @malloc(i64 %t185) %t187 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 0 store ptr null, ptr %t187 %t188 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 1 store i32 0, ptr %t188 %t189 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 2 store i32 0, ptr %t189 %t190 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 1 %t191 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 2 %t192 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 0 %t193 = load i32, ptr %t190 %t194 = load i32, ptr %t191 %t195 = icmp sge i32 %t193, %t194 br i1 %t195, label %grow16, label %put17 grow16: %t196 = mul i32 %t194, 2 %t197 = icmp eq i32 %t194, 0 %t198 = select i1 %t197, i32 8, i32 %t196 %t199 = getelementptr ptr, ptr null, i32 1 %t200 = ptrtoint ptr %t199 to i64 %t201 = zext i32 %t198 to i64 %t202 = mul i64 %t201, %t200 %t203 = load ptr, ptr %t192 %t204 = call ptr @realloc(ptr %t203, i64 %t202) store ptr %t204, ptr %t192 store i32 %t198, ptr %t191 br label %put17 put17: %t205 = load ptr, ptr %t192 %t206 = getelementptr inbounds ptr, ptr %t205, i32 %t193 store ptr %t186, ptr %t206 %t207 = add i32 %t193, 1 store i32 %t207, ptr %t190 %t208 = load ptr, ptr @g_g_cm_fnames %t209 = getelementptr %LSlice, ptr null, i32 1 %t210 = ptrtoint ptr %t209 to i64 %t211 = call ptr @malloc(i64 %t210) %t212 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 0 store ptr null, ptr %t212 %t213 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 1 store i32 0, ptr %t213 %t214 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 2 store i32 0, ptr %t214 %t215 = getelementptr inbounds %LSlice, ptr %t208, i32 0, i32 1 %t216 = getelementptr inbounds %LSlice, ptr %t208, i32 0, i32 2 %t217 = getelementptr inbounds %LSlice, ptr %t208, i32 0, i32 0 %t218 = load i32, ptr %t215 %t219 = load i32, ptr %t216 %t220 = icmp sge i32 %t218, %t219 br i1 %t220, label %grow18, label %put19 grow18: %t221 = mul i32 %t219, 2 %t222 = icmp eq i32 %t219, 0 %t223 = select i1 %t222, i32 8, i32 %t221 %t224 = getelementptr ptr, ptr null, i32 1 %t225 = ptrtoint ptr %t224 to i64 %t226 = zext i32 %t223 to i64 %t227 = mul i64 %t226, %t225 %t228 = load ptr, ptr %t217 %t229 = call ptr @realloc(ptr %t228, i64 %t227) store ptr %t229, ptr %t217 store i32 %t223, ptr %t216 br label %put19 put19: %t230 = load ptr, ptr %t217 %t231 = getelementptr inbounds ptr, ptr %t230, i32 %t218 store ptr %t211, ptr %t231 %t232 = add i32 %t218, 1 store i32 %t232, ptr %t215 %t233 = load ptr, ptr @g_g_cm_calls %t234 = getelementptr %LSlice, ptr null, i32 1 %t235 = ptrtoint ptr %t234 to i64 %t236 = call ptr @malloc(i64 %t235) %t237 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 0 store ptr null, ptr %t237 %t238 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 1 store i32 0, ptr %t238 %t239 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 2 store i32 0, ptr %t239 %t240 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 1 %t241 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 2 %t242 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 0 %t243 = load i32, ptr %t240 %t244 = load i32, ptr %t241 %t245 = icmp sge i32 %t243, %t244 br i1 %t245, label %grow20, label %put21 grow20: %t246 = mul i32 %t244, 2 %t247 = icmp eq i32 %t244, 0 %t248 = select i1 %t247, i32 8, i32 %t246 %t249 = getelementptr ptr, ptr null, i32 1 %t250 = ptrtoint ptr %t249 to i64 %t251 = zext i32 %t248 to i64 %t252 = mul i64 %t251, %t250 %t253 = load ptr, ptr %t242 %t254 = call ptr @realloc(ptr %t253, i64 %t252) store ptr %t254, ptr %t242 store i32 %t248, ptr %t241 br label %put21 put21: %t255 = load ptr, ptr %t242 %t256 = getelementptr inbounds ptr, ptr %t255, i32 %t243 store ptr %t236, ptr %t256 %t257 = add i32 %t243, 1 store i32 %t257, ptr %t240 %t258 = load ptr, ptr @g_g_cm_cnames %t259 = getelementptr %LSlice, ptr null, i32 1 %t260 = ptrtoint ptr %t259 to i64 %t261 = call ptr @malloc(i64 %t260) %t262 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 0 store ptr null, ptr %t262 %t263 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 1 store i32 0, ptr %t263 %t264 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 2 store i32 0, ptr %t264 %t265 = getelementptr inbounds %LSlice, ptr %t258, i32 0, i32 1 %t266 = getelementptr inbounds %LSlice, ptr %t258, i32 0, i32 2 %t267 = getelementptr inbounds %LSlice, ptr %t258, i32 0, i32 0 %t268 = load i32, ptr %t265 %t269 = load i32, ptr %t266 %t270 = icmp sge i32 %t268, %t269 br i1 %t270, label %grow22, label %put23 grow22: %t271 = mul i32 %t269, 2 %t272 = icmp eq i32 %t269, 0 %t273 = select i1 %t272, i32 8, i32 %t271 %t274 = getelementptr ptr, ptr null, i32 1 %t275 = ptrtoint ptr %t274 to i64 %t276 = zext i32 %t273 to i64 %t277 = mul i64 %t276, %t275 %t278 = load ptr, ptr %t267 %t279 = call ptr @realloc(ptr %t278, i64 %t277) store ptr %t279, ptr %t267 store i32 %t273, ptr %t266 br label %put23 put23: %t280 = load ptr, ptr %t267 %t281 = getelementptr inbounds ptr, ptr %t280, i32 %t268 store ptr %t261, ptr %t281 %t282 = add i32 %t268, 1 store i32 %t282, ptr %t265 call void @fn_skipnl() call void @fn_eat_op(ptr @.str1361) br label %wcond24 wcond24: %t283 = icmp ne i32 1, 0 br i1 %t283, label %wbody25, label %wend26 wbody25: call void @fn_skipnl() %t284 = call i32 @fn_is_op(ptr @.str1362) %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then27, label %ifend29 then27: br label %wend26 ifend29: %t286 = load i32, ptr %t11 %t287 = load ptr, ptr %t7 call void @fn_cm_member(i32 %t286, ptr %t287) br label %wcond24 wend26: call void @fn_eat_op(ptr @.str1363) %t288 = call ptr @fn_node(i32 2) store ptr %t288, ptr %t289 %t290 = load ptr, ptr %t289 %t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 1 %t292 = load ptr, ptr %t7 %t293 = call ptr @lp_str_concat(ptr %t292, ptr @.str1364) store ptr %t293, ptr %t291 %t294 = load ptr, ptr %t289 %t295 = getelementptr inbounds %Cmp_Node, ptr %t294, i32 0, i32 3 store ptr @.str1365, ptr %t295 %t296 = load ptr, ptr @g_g_cm_head %t297 = load ptr, ptr %t289 %t298 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 1 %t299 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 2 %t300 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 0 %t301 = load i32, ptr %t298 %t302 = load i32, ptr %t299 %t303 = icmp sge i32 %t301, %t302 br i1 %t303, label %grow30, label %put31 grow30: %t304 = mul i32 %t302, 2 %t305 = icmp eq i32 %t302, 0 %t306 = select i1 %t305, i32 8, i32 %t304 %t307 = getelementptr ptr, ptr null, i32 1 %t308 = ptrtoint ptr %t307 to i64 %t309 = zext i32 %t306 to i64 %t310 = mul i64 %t309, %t308 %t311 = load ptr, ptr %t300 %t312 = call ptr @realloc(ptr %t311, i64 %t310) store ptr %t312, ptr %t300 store i32 %t306, ptr %t299 br label %put31 put31: %t313 = load ptr, ptr %t300 %t314 = getelementptr inbounds ptr, ptr %t313, i32 %t301 store ptr %t297, ptr %t314 %t315 = add i32 %t301, 1 store i32 %t315, ptr %t298 %t316 = load ptr, ptr @g_prog %t317 = load ptr, ptr %t289 %t318 = getelementptr inbounds %LSlice, ptr %t316, i32 0, i32 1 %t319 = getelementptr inbounds %LSlice, ptr %t316, i32 0, i32 2 %t320 = getelementptr inbounds %LSlice, ptr %t316, i32 0, i32 0 %t321 = load i32, ptr %t318 %t322 = load i32, ptr %t319 %t323 = icmp sge i32 %t321, %t322 br i1 %t323, label %grow32, label %put33 grow32: %t324 = mul i32 %t322, 2 %t325 = icmp eq i32 %t322, 0 %t326 = select i1 %t325, i32 8, i32 %t324 %t327 = getelementptr ptr, ptr null, i32 1 %t328 = ptrtoint ptr %t327 to i64 %t329 = zext i32 %t326 to i64 %t330 = mul i64 %t329, %t328 %t331 = load ptr, ptr %t320 %t332 = call ptr @realloc(ptr %t331, i64 %t330) store ptr %t332, ptr %t320 store i32 %t326, ptr %t319 br label %put33 put33: %t333 = load ptr, ptr %t320 %t334 = getelementptr inbounds ptr, ptr %t333, i32 %t321 store ptr %t317, ptr %t334 %t335 = add i32 %t321, 1 store i32 %t335, ptr %t318 br label %ret ret: ret void } define void @fn_cm_member(i32 %arg_c, ptr %arg_px) { entry: %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 %t12 = alloca i32 %t16 = alloca ptr %t18 = alloca ptr %t106 = alloca ptr %t147 = alloca i32 %t157 = alloca i32 %t172 = alloca ptr %t271 = alloca ptr %t272 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_px, ptr %t1 %t3 = call i32 @fn_is_id(ptr @.str1366) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t2 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = call i32 @fn_is_id(ptr @.str1367) %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t2 br label %scend1 scend1: %t9 = load i32, ptr %t2 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then2, label %ifend4 then2: %t11 = call i32 @fn_is_id(ptr @.str1368) store i32 %t11, ptr %t12 %t13 = load i32, ptr @g_pi %t14 = add i32 %t13, 1 store i32 %t14, ptr @g_pi %t15 = call ptr @fn_eat_id() store ptr %t15, ptr %t16 call void @fn_eat_op(ptr @.str1369) %t17 = call ptr @fn_ptype() store ptr %t17, ptr %t18 %t19 = load ptr, ptr @g_g_cm_keep %t20 = load i32, ptr %t0 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str1370, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = load ptr, ptr %t16 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t31 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 2 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t33 = load i32, ptr %t30 %t34 = load i32, ptr %t31 %t35 = icmp sge i32 %t33, %t34 br i1 %t35, label %grow7, label %put8 grow7: %t36 = mul i32 %t34, 2 %t37 = icmp eq i32 %t34, 0 %t38 = select i1 %t37, i32 8, i32 %t36 %t39 = getelementptr ptr, ptr null, i32 1 %t40 = ptrtoint ptr %t39 to i64 %t41 = zext i32 %t38 to i64 %t42 = mul i64 %t41, %t40 %t43 = load ptr, ptr %t32 %t44 = call ptr @realloc(ptr %t43, i64 %t42) store ptr %t44, ptr %t32 store i32 %t38, ptr %t31 br label %put8 put8: %t45 = load ptr, ptr %t32 %t46 = getelementptr inbounds ptr, ptr %t45, i32 %t33 store ptr %t29, ptr %t46 %t47 = add i32 %t33, 1 store i32 %t47, ptr %t30 %t48 = load ptr, ptr @g_g_cm_keep_ty %t49 = load i32, ptr %t0 %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = icmp ult i32 %t49, %t53 br i1 %t54, label %ixok9, label %ixbad10 ixbad10: %t55 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t55, ptr @.fmt_bounds, ptr @.str1371, i32 %t49, i32 %t53) call void @exit(i32 1) unreachable ixok9: %t56 = getelementptr inbounds ptr, ptr %t51, i32 %t49 %t57 = load ptr, ptr %t56 %t58 = load ptr, ptr %t18 %t59 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1 %t60 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 2 %t61 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0 %t62 = load i32, ptr %t59 %t63 = load i32, ptr %t60 %t64 = icmp sge i32 %t62, %t63 br i1 %t64, label %grow11, label %put12 grow11: %t65 = mul i32 %t63, 2 %t66 = icmp eq i32 %t63, 0 %t67 = select i1 %t66, i32 8, i32 %t65 %t68 = getelementptr ptr, ptr null, i32 1 %t69 = ptrtoint ptr %t68 to i64 %t70 = zext i32 %t67 to i64 %t71 = mul i64 %t70, %t69 %t72 = load ptr, ptr %t61 %t73 = call ptr @realloc(ptr %t72, i64 %t71) store ptr %t73, ptr %t61 store i32 %t67, ptr %t60 br label %put12 put12: %t74 = load ptr, ptr %t61 %t75 = getelementptr inbounds ptr, ptr %t74, i32 %t62 store ptr %t58, ptr %t75 %t76 = add i32 %t62, 1 store i32 %t76, ptr %t59 %t77 = load ptr, ptr @g_g_cm_prop %t78 = load i32, ptr %t0 %t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp ult i32 %t78, %t82 br i1 %t83, label %ixok13, label %ixbad14 ixbad14: %t84 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t84, ptr @.fmt_bounds, ptr @.str1372, i32 %t78, i32 %t82) call void @exit(i32 1) unreachable ixok13: %t85 = getelementptr inbounds ptr, ptr %t80, i32 %t78 %t86 = load ptr, ptr %t85 %t87 = load i32, ptr %t12 %t88 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 %t89 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 2 %t90 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 0 %t91 = load i32, ptr %t88 %t92 = load i32, ptr %t89 %t93 = icmp sge i32 %t91, %t92 br i1 %t93, label %grow15, label %put16 grow15: %t94 = mul i32 %t92, 2 %t95 = icmp eq i32 %t92, 0 %t96 = select i1 %t95, i32 8, i32 %t94 %t97 = getelementptr i32, ptr null, i32 1 %t98 = ptrtoint ptr %t97 to i64 %t99 = zext i32 %t96 to i64 %t100 = mul i64 %t99, %t98 %t101 = load ptr, ptr %t90 %t102 = call ptr @realloc(ptr %t101, i64 %t100) store ptr %t102, ptr %t90 store i32 %t96, ptr %t89 br label %put16 put16: %t103 = load ptr, ptr %t90 %t104 = getelementptr inbounds i32, ptr %t103, i32 %t91 store i32 %t87, ptr %t104 %t105 = add i32 %t91, 1 store i32 %t105, ptr %t88 store ptr null, ptr %t106 %t107 = call i32 @fn_is_op(ptr @.str1373) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then17, label %ifend19 then17: %t109 = load i32, ptr @g_pi %t110 = add i32 %t109, 1 store i32 %t110, ptr @g_pi %t111 = load ptr, ptr %t1 %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str1374) %t113 = load ptr, ptr %t16 %t114 = call ptr @lp_str_concat(ptr %t112, ptr %t113) %t115 = load ptr, ptr %t18 %t116 = call ptr @fn_expr() %t117 = call ptr @fn_cm_getter(ptr %t114, ptr %t115, ptr %t116) store ptr %t117, ptr %t106 br label %ifend19 ifend19: %t118 = load ptr, ptr @g_g_cm_defs %t119 = load i32, ptr %t0 %t120 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 0 %t121 = load ptr, ptr %t120 %t122 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 1 %t123 = load i32, ptr %t122 %t124 = icmp ult i32 %t119, %t123 br i1 %t124, label %ixok20, label %ixbad21 ixbad21: %t125 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t125, ptr @.fmt_bounds, ptr @.str1375, i32 %t119, i32 %t123) call void @exit(i32 1) unreachable ixok20: %t126 = getelementptr inbounds ptr, ptr %t121, i32 %t119 %t127 = load ptr, ptr %t126 %t128 = load ptr, ptr %t106 %t129 = getelementptr inbounds %LSlice, ptr %t127, i32 0, i32 1 %t130 = getelementptr inbounds %LSlice, ptr %t127, i32 0, i32 2 %t131 = getelementptr inbounds %LSlice, ptr %t127, i32 0, i32 0 %t132 = load i32, ptr %t129 %t133 = load i32, ptr %t130 %t134 = icmp sge i32 %t132, %t133 br i1 %t134, label %grow22, label %put23 grow22: %t135 = mul i32 %t133, 2 %t136 = icmp eq i32 %t133, 0 %t137 = select i1 %t136, i32 8, i32 %t135 %t138 = getelementptr ptr, ptr null, i32 1 %t139 = ptrtoint ptr %t138 to i64 %t140 = zext i32 %t137 to i64 %t141 = mul i64 %t140, %t139 %t142 = load ptr, ptr %t131 %t143 = call ptr @realloc(ptr %t142, i64 %t141) store ptr %t143, ptr %t131 store i32 %t137, ptr %t130 br label %put23 put23: %t144 = load ptr, ptr %t131 %t145 = getelementptr inbounds ptr, ptr %t144, i32 %t132 store ptr %t128, ptr %t145 %t146 = add i32 %t132, 1 store i32 %t146, ptr %t129 br label %ret ifend4: %t148 = call i32 @fn_is_id(ptr @.str1376) %t149 = icmp ne i32 %t148, 0 %t150 = zext i1 %t149 to i32 store i32 %t150, ptr %t147 br i1 %t149, label %scend25, label %sc24 sc24: %t151 = call i32 @fn_is_id(ptr @.str1377) %t152 = icmp ne i32 %t151, 0 %t153 = zext i1 %t152 to i32 store i32 %t153, ptr %t147 br label %scend25 scend25: %t154 = load i32, ptr %t147 %t155 = icmp ne i32 %t154, 0 br i1 %t155, label %then26, label %ifend28 then26: %t156 = call i32 @fn_is_id(ptr @.str1378) store i32 %t156, ptr %t157 %t158 = load i32, ptr %t157 %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then29, label %ifend31 then29: %t160 = load ptr, ptr @g_toks %t161 = load i32, ptr @g_pi %t162 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 0 %t163 = load ptr, ptr %t162 %t164 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 1 %t165 = load i32, ptr %t164 %t166 = icmp ult i32 %t161, %t165 br i1 %t166, label %ixok32, label %ixbad33 ixbad33: %t167 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t167, ptr @.fmt_bounds, ptr @.str1379, i32 %t161, i32 %t165) call void @exit(i32 1) unreachable ixok32: %t168 = getelementptr inbounds ptr, ptr %t163, i32 %t161 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %Cmp_Tok, ptr %t169, i32 0, i32 1 store ptr @.str1380, ptr %t170 br label %ifend31 ifend31: %t171 = call ptr @fn_parse_fn() store ptr %t171, ptr %t172 %t173 = load ptr, ptr @g_g_cm_cnames %t174 = load i32, ptr %t0 %t175 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 0 %t176 = load ptr, ptr %t175 %t177 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 1 %t178 = load i32, ptr %t177 %t179 = icmp ult i32 %t174, %t178 br i1 %t179, label %ixok34, label %ixbad35 ixbad35: %t180 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t180, ptr @.fmt_bounds, ptr @.str1381, i32 %t174, i32 %t178) call void @exit(i32 1) unreachable ixok34: %t181 = getelementptr inbounds ptr, ptr %t176, i32 %t174 %t182 = load ptr, ptr %t181 %t183 = load ptr, ptr %t172 %t184 = getelementptr inbounds %Cmp_Node, ptr %t183, i32 0, i32 1 %t185 = load ptr, ptr %t184 %t186 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 1 %t187 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 2 %t188 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 0 %t189 = load i32, ptr %t186 %t190 = load i32, ptr %t187 %t191 = icmp sge i32 %t189, %t190 br i1 %t191, label %grow36, label %put37 grow36: %t192 = mul i32 %t190, 2 %t193 = icmp eq i32 %t190, 0 %t194 = select i1 %t193, i32 8, i32 %t192 %t195 = getelementptr ptr, ptr null, i32 1 %t196 = ptrtoint ptr %t195 to i64 %t197 = zext i32 %t194 to i64 %t198 = mul i64 %t197, %t196 %t199 = load ptr, ptr %t188 %t200 = call ptr @realloc(ptr %t199, i64 %t198) store ptr %t200, ptr %t188 store i32 %t194, ptr %t187 br label %put37 put37: %t201 = load ptr, ptr %t188 %t202 = getelementptr inbounds ptr, ptr %t201, i32 %t189 store ptr %t185, ptr %t202 %t203 = add i32 %t189, 1 store i32 %t203, ptr %t186 %t204 = load i32, ptr %t157 %t205 = icmp ne i32 %t204, 0 br i1 %t205, label %then38, label %else39 then38: %t206 = load ptr, ptr %t172 %t207 = getelementptr inbounds %Cmp_Node, ptr %t206, i32 0, i32 1 %t208 = load ptr, ptr %t1 %t209 = call ptr @lp_str_concat(ptr %t208, ptr @.str1382) %t210 = load ptr, ptr %t172 %t211 = getelementptr inbounds %Cmp_Node, ptr %t210, i32 0, i32 1 %t212 = load ptr, ptr %t211 %t213 = call ptr @lp_str_concat(ptr %t209, ptr %t212) store ptr %t213, ptr %t207 br label %ifend40 else39: %t214 = load ptr, ptr %t172 %t215 = getelementptr inbounds %Cmp_Node, ptr %t214, i32 0, i32 1 %t216 = load ptr, ptr %t1 %t217 = load ptr, ptr %t172 %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 1 %t219 = load ptr, ptr %t218 %t220 = call ptr @lp_str_concat(ptr %t216, ptr %t219) store ptr %t220, ptr %t215 br label %ifend40 ifend40: %t221 = load ptr, ptr @g_g_cm_calls %t222 = load i32, ptr %t0 %t223 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 0 %t224 = load ptr, ptr %t223 %t225 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 1 %t226 = load i32, ptr %t225 %t227 = icmp ult i32 %t222, %t226 br i1 %t227, label %ixok41, label %ixbad42 ixbad42: %t228 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t228, ptr @.fmt_bounds, ptr @.str1383, i32 %t222, i32 %t226) call void @exit(i32 1) unreachable ixok41: %t229 = getelementptr inbounds ptr, ptr %t224, i32 %t222 %t230 = load ptr, ptr %t229 %t231 = load ptr, ptr %t172 %t232 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 1 %t233 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 2 %t234 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 0 %t235 = load i32, ptr %t232 %t236 = load i32, ptr %t233 %t237 = icmp sge i32 %t235, %t236 br i1 %t237, label %grow43, label %put44 grow43: %t238 = mul i32 %t236, 2 %t239 = icmp eq i32 %t236, 0 %t240 = select i1 %t239, i32 8, i32 %t238 %t241 = getelementptr ptr, ptr null, i32 1 %t242 = ptrtoint ptr %t241 to i64 %t243 = zext i32 %t240 to i64 %t244 = mul i64 %t243, %t242 %t245 = load ptr, ptr %t234 %t246 = call ptr @realloc(ptr %t245, i64 %t244) store ptr %t246, ptr %t234 store i32 %t240, ptr %t233 br label %put44 put44: %t247 = load ptr, ptr %t234 %t248 = getelementptr inbounds ptr, ptr %t247, i32 %t235 store ptr %t231, ptr %t248 %t249 = add i32 %t235, 1 store i32 %t249, ptr %t232 %t250 = load ptr, ptr @g_prog %t251 = load ptr, ptr %t172 %t252 = getelementptr inbounds %LSlice, ptr %t250, i32 0, i32 1 %t253 = getelementptr inbounds %LSlice, ptr %t250, i32 0, i32 2 %t254 = getelementptr inbounds %LSlice, ptr %t250, i32 0, i32 0 %t255 = load i32, ptr %t252 %t256 = load i32, ptr %t253 %t257 = icmp sge i32 %t255, %t256 br i1 %t257, label %grow45, label %put46 grow45: %t258 = mul i32 %t256, 2 %t259 = icmp eq i32 %t256, 0 %t260 = select i1 %t259, i32 8, i32 %t258 %t261 = getelementptr ptr, ptr null, i32 1 %t262 = ptrtoint ptr %t261 to i64 %t263 = zext i32 %t260 to i64 %t264 = mul i64 %t263, %t262 %t265 = load ptr, ptr %t254 %t266 = call ptr @realloc(ptr %t265, i64 %t264) store ptr %t266, ptr %t254 store i32 %t260, ptr %t253 br label %put46 put46: %t267 = load ptr, ptr %t254 %t268 = getelementptr inbounds ptr, ptr %t267, i32 %t255 store ptr %t251, ptr %t268 %t269 = add i32 %t255, 1 store i32 %t269, ptr %t252 br label %ret ifend28: %t270 = call ptr @fn_eat_id() store ptr %t270, ptr %t271 store ptr null, ptr %t272 %t273 = call i32 @fn_is_op(ptr @.str1384) %t274 = icmp ne i32 %t273, 0 br i1 %t274, label %then47, label %ifend49 then47: %t275 = load i32, ptr @g_pi %t276 = add i32 %t275, 1 store i32 %t276, ptr @g_pi %t277 = call ptr @fn_ptype() store ptr %t277, ptr %t272 br label %ifend49 ifend49: %t278 = call i32 @fn_is_op(ptr @.str1385) %t279 = icmp eq i32 %t278, 0 %t280 = zext i1 %t279 to i32 %t281 = icmp ne i32 %t280, 0 br i1 %t281, label %then50, label %ifend52 then50: %t282 = load ptr, ptr %t271 %t283 = call ptr @lp_str_concat(ptr @.str1386, ptr %t282) %t284 = call ptr @lp_str_concat(ptr %t283, ptr @.str1387) %t285 = load ptr, ptr %t271 %t286 = call ptr @lp_str_concat(ptr %t284, ptr %t285) %t287 = call ptr @lp_str_concat(ptr %t286, ptr @.str1388) call void @fn_perr(ptr %t287) br label %ifend52 ifend52: %t288 = load i32, ptr @g_pi %t289 = add i32 %t288, 1 store i32 %t289, ptr @g_pi %t290 = load ptr, ptr @g_g_cm_fnames %t291 = load i32, ptr %t0 %t292 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 0 %t293 = load ptr, ptr %t292 %t294 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 1 %t295 = load i32, ptr %t294 %t296 = icmp ult i32 %t291, %t295 br i1 %t296, label %ixok53, label %ixbad54 ixbad54: %t297 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t297, ptr @.fmt_bounds, ptr @.str1389, i32 %t291, i32 %t295) call void @exit(i32 1) unreachable ixok53: %t298 = getelementptr inbounds ptr, ptr %t293, i32 %t291 %t299 = load ptr, ptr %t298 %t300 = load ptr, ptr %t271 %t301 = getelementptr inbounds %LSlice, ptr %t299, i32 0, i32 1 %t302 = getelementptr inbounds %LSlice, ptr %t299, i32 0, i32 2 %t303 = getelementptr inbounds %LSlice, ptr %t299, i32 0, i32 0 %t304 = load i32, ptr %t301 %t305 = load i32, ptr %t302 %t306 = icmp sge i32 %t304, %t305 br i1 %t306, label %grow55, label %put56 grow55: %t307 = mul i32 %t305, 2 %t308 = icmp eq i32 %t305, 0 %t309 = select i1 %t308, i32 8, i32 %t307 %t310 = getelementptr ptr, ptr null, i32 1 %t311 = ptrtoint ptr %t310 to i64 %t312 = zext i32 %t309 to i64 %t313 = mul i64 %t312, %t311 %t314 = load ptr, ptr %t303 %t315 = call ptr @realloc(ptr %t314, i64 %t313) store ptr %t315, ptr %t303 store i32 %t309, ptr %t302 br label %put56 put56: %t316 = load ptr, ptr %t303 %t317 = getelementptr inbounds ptr, ptr %t316, i32 %t304 store ptr %t300, ptr %t317 %t318 = add i32 %t304, 1 store i32 %t318, ptr %t301 %t319 = load ptr, ptr @g_g_cm_fields %t320 = load i32, ptr %t0 %t321 = getelementptr inbounds %LSlice, ptr %t319, i32 0, i32 0 %t322 = load ptr, ptr %t321 %t323 = getelementptr inbounds %LSlice, ptr %t319, i32 0, i32 1 %t324 = load i32, ptr %t323 %t325 = icmp ult i32 %t320, %t324 br i1 %t325, label %ixok57, label %ixbad58 ixbad58: %t326 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t326, ptr @.fmt_bounds, ptr @.str1390, i32 %t320, i32 %t324) call void @exit(i32 1) unreachable ixok57: %t327 = getelementptr inbounds ptr, ptr %t322, i32 %t320 %t328 = load ptr, ptr %t327 %t329 = load ptr, ptr %t1 %t330 = call ptr @lp_str_concat(ptr %t329, ptr @.str1391) %t331 = load ptr, ptr %t271 %t332 = call ptr @lp_str_concat(ptr %t330, ptr %t331) %t333 = load ptr, ptr %t272 %t334 = call ptr @fn_expr() %t335 = call ptr @fn_cm_getter(ptr %t332, ptr %t333, ptr %t334) %t336 = getelementptr inbounds %LSlice, ptr %t328, i32 0, i32 1 %t337 = getelementptr inbounds %LSlice, ptr %t328, i32 0, i32 2 %t338 = getelementptr inbounds %LSlice, ptr %t328, i32 0, i32 0 %t339 = load i32, ptr %t336 %t340 = load i32, ptr %t337 %t341 = icmp sge i32 %t339, %t340 br i1 %t341, label %grow59, label %put60 grow59: %t342 = mul i32 %t340, 2 %t343 = icmp eq i32 %t340, 0 %t344 = select i1 %t343, i32 8, i32 %t342 %t345 = getelementptr ptr, ptr null, i32 1 %t346 = ptrtoint ptr %t345 to i64 %t347 = zext i32 %t344 to i64 %t348 = mul i64 %t347, %t346 %t349 = load ptr, ptr %t338 %t350 = call ptr @realloc(ptr %t349, i64 %t348) store ptr %t350, ptr %t338 store i32 %t344, ptr %t337 br label %put60 put60: %t351 = load ptr, ptr %t338 %t352 = getelementptr inbounds ptr, ptr %t351, i32 %t339 store ptr %t335, ptr %t352 %t353 = add i32 %t339, 1 store i32 %t353, ptr %t336 br label %ret ret: ret void } define ptr @fn_cm_getter(ptr %arg_name, ptr %arg_ty, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t12 = alloca ptr %t17 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_ty, ptr %t1 store ptr %arg_e, ptr %t2 %t3 = call ptr @fn_node(i32 4) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1 %t7 = load ptr, ptr %t0 store ptr %t7, ptr %t6 %t8 = load ptr, ptr %t4 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 3 %t10 = load ptr, ptr %t1 store ptr %t10, ptr %t9 %t11 = call ptr @fn_node(i32 15) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 4 %t15 = load ptr, ptr %t2 store ptr %t15, ptr %t14 %t16 = call ptr @fn_node(i32 7) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t12 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t25 = load i32, ptr %t22 %t26 = load i32, ptr %t23 %t27 = icmp sge i32 %t25, %t26 br i1 %t27, label %grow0, label %put1 grow0: %t28 = mul i32 %t26, 2 %t29 = icmp eq i32 %t26, 0 %t30 = select i1 %t29, i32 8, i32 %t28 %t31 = getelementptr ptr, ptr null, i32 1 %t32 = ptrtoint ptr %t31 to i64 %t33 = zext i32 %t30 to i64 %t34 = mul i64 %t33, %t32 %t35 = load ptr, ptr %t24 %t36 = call ptr @realloc(ptr %t35, i64 %t34) store ptr %t36, ptr %t24 store i32 %t30, ptr %t23 br label %put1 put1: %t37 = load ptr, ptr %t24 %t38 = getelementptr inbounds ptr, ptr %t37, i32 %t25 store ptr %t21, ptr %t38 %t39 = add i32 %t25, 1 store i32 %t39, ptr %t22 %t40 = load ptr, ptr %t4 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 4 %t42 = load ptr, ptr %t17 store ptr %t42, ptr %t41 %t43 = load ptr, ptr @g_prog %t44 = load ptr, ptr %t4 %t45 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t46 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 2 %t47 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t48 = load i32, ptr %t45 %t49 = load i32, ptr %t46 %t50 = icmp sge i32 %t48, %t49 br i1 %t50, label %grow2, label %put3 grow2: %t51 = mul i32 %t49, 2 %t52 = icmp eq i32 %t49, 0 %t53 = select i1 %t52, i32 8, i32 %t51 %t54 = getelementptr ptr, ptr null, i32 1 %t55 = ptrtoint ptr %t54 to i64 %t56 = zext i32 %t53 to i64 %t57 = mul i64 %t56, %t55 %t58 = load ptr, ptr %t47 %t59 = call ptr @realloc(ptr %t58, i64 %t57) store ptr %t59, ptr %t47 store i32 %t53, ptr %t46 br label %put3 put3: %t60 = load ptr, ptr %t47 %t61 = getelementptr inbounds ptr, ptr %t60, i32 %t48 store ptr %t44, ptr %t61 %t62 = add i32 %t48, 1 store i32 %t62, ptr %t45 %t63 = load ptr, ptr %t4 store ptr %t63, ptr %retval br label %ret ret: %t64 = load ptr, ptr %retval ret ptr %t64 } define void @fn_cm_rewrite(i32 %arg_c, ptr %arg_f, ptr %arg_self_ty) { entry: %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t25 = alloca ptr %t26 = alloca i32 %t69 = alloca ptr %t81 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_f, ptr %t1 store ptr %arg_self_ty, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t4, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody1, label %wend2 wbody1: %t13 = load ptr, ptr %t1 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = load i32, ptr %t3 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 %t16, %t20 br i1 %t21, label %ixok3, label %ixbad4 ixbad4: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str1392, i32 %t16, i32 %t20) call void @exit(i32 1) unreachable ixok3: %t23 = getelementptr inbounds ptr, ptr %t18, i32 %t16 %t24 = load ptr, ptr %t23 store ptr %t24, ptr %t25 %t27 = load i32, ptr %t0 %t28 = load ptr, ptr %t25 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = call i32 @fn_cm_is_keep(i32 %t27, ptr %t30) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t26 br i1 %t32, label %scend6, label %sc5 sc5: %t34 = load i32, ptr %t0 %t35 = load ptr, ptr %t25 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 %t38 = call i32 @fn_cm_is_field(i32 %t34, ptr %t37) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t26 br label %scend6 scend6: %t41 = load i32, ptr %t26 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then7, label %ifend9 then7: %t43 = load ptr, ptr %t1 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 9 %t45 = load ptr, ptr %t44 store ptr %t45, ptr @g_g_err_file %t46 = load ptr, ptr %t1 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 8 %t48 = load i32, ptr %t47 store i32 %t48, ptr @g_g_err_line store i32 0, ptr @g_g_parsing %t49 = load ptr, ptr @g_g_cm_name %t50 = load i32, ptr %t0 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp ult i32 %t50, %t54 br i1 %t55, label %ixok10, label %ixbad11 ixbad11: %t56 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t56, ptr @.fmt_bounds, ptr @.str1394, i32 %t50, i32 %t54) call void @exit(i32 1) unreachable ixok10: %t57 = getelementptr inbounds ptr, ptr %t52, i32 %t50 %t58 = load ptr, ptr %t57 %t59 = call ptr @lp_str_concat(ptr @.str1393, ptr %t58) %t60 = call ptr @lp_str_concat(ptr %t59, ptr @.str1395) %t61 = load ptr, ptr %t25 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 1 %t63 = load ptr, ptr %t62 %t64 = call ptr @lp_str_concat(ptr %t60, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str1396) call void @fn_perr(ptr %t65) br label %ifend9 ifend9: %t66 = load i32, ptr %t3 %t67 = add i32 %t66, 1 store i32 %t67, ptr %t3 br label %wcond0 wend2: %t68 = call ptr @fn_node(i32 5) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 1 store ptr @.str1397, ptr %t71 %t72 = load ptr, ptr %t69 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 3 %t74 = load ptr, ptr %t2 store ptr %t74, ptr %t73 %t75 = getelementptr %LSlice, ptr null, i32 1 %t76 = ptrtoint ptr %t75 to i64 %t77 = call ptr @malloc(i64 %t76) %t78 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 store ptr null, ptr %t78 %t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 store i32 0, ptr %t79 %t80 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 2 store i32 0, ptr %t80 store ptr %t77, ptr %t81 %t82 = load ptr, ptr %t81 %t83 = load ptr, ptr %t69 %t84 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 %t85 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 2 %t86 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 %t87 = load i32, ptr %t84 %t88 = load i32, ptr %t85 %t89 = icmp sge i32 %t87, %t88 br i1 %t89, label %grow12, label %put13 grow12: %t90 = mul i32 %t88, 2 %t91 = icmp eq i32 %t88, 0 %t92 = select i1 %t91, i32 8, i32 %t90 %t93 = getelementptr ptr, ptr null, i32 1 %t94 = ptrtoint ptr %t93 to i64 %t95 = zext i32 %t92 to i64 %t96 = mul i64 %t95, %t94 %t97 = load ptr, ptr %t86 %t98 = call ptr @realloc(ptr %t97, i64 %t96) store ptr %t98, ptr %t86 store i32 %t92, ptr %t85 br label %put13 put13: %t99 = load ptr, ptr %t86 %t100 = getelementptr inbounds ptr, ptr %t99, i32 %t87 store ptr %t83, ptr %t100 %t101 = add i32 %t87, 1 store i32 %t101, ptr %t84 store i32 0, ptr %t3 br label %wcond14 wcond14: %t102 = load i32, ptr %t3 %t103 = load ptr, ptr %t1 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 7 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 1 %t107 = load i32, ptr %t106 %t108 = icmp slt i32 %t102, %t107 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %wbody15, label %wend16 wbody15: %t111 = load ptr, ptr %t81 %t112 = load ptr, ptr %t1 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 7 %t114 = load ptr, ptr %t113 %t115 = load i32, ptr %t3 %t116 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 0 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 1 %t119 = load i32, ptr %t118 %t120 = icmp ult i32 %t115, %t119 br i1 %t120, label %ixok17, label %ixbad18 ixbad18: %t121 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t121, ptr @.fmt_bounds, ptr @.str1398, i32 %t115, i32 %t119) call void @exit(i32 1) unreachable ixok17: %t122 = getelementptr inbounds ptr, ptr %t117, i32 %t115 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 %t125 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 2 %t126 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0 %t127 = load i32, ptr %t124 %t128 = load i32, ptr %t125 %t129 = icmp sge i32 %t127, %t128 br i1 %t129, label %grow19, label %put20 grow19: %t130 = mul i32 %t128, 2 %t131 = icmp eq i32 %t128, 0 %t132 = select i1 %t131, i32 8, i32 %t130 %t133 = getelementptr ptr, ptr null, i32 1 %t134 = ptrtoint ptr %t133 to i64 %t135 = zext i32 %t132 to i64 %t136 = mul i64 %t135, %t134 %t137 = load ptr, ptr %t126 %t138 = call ptr @realloc(ptr %t137, i64 %t136) store ptr %t138, ptr %t126 store i32 %t132, ptr %t125 br label %put20 put20: %t139 = load ptr, ptr %t126 %t140 = getelementptr inbounds ptr, ptr %t139, i32 %t127 store ptr %t123, ptr %t140 %t141 = add i32 %t127, 1 store i32 %t141, ptr %t124 %t142 = load i32, ptr %t3 %t143 = add i32 %t142, 1 store i32 %t143, ptr %t3 br label %wcond14 wend16: %t144 = load ptr, ptr %t1 %t145 = getelementptr inbounds %Cmp_Node, ptr %t144, i32 0, i32 7 %t146 = load ptr, ptr %t81 store ptr %t146, ptr %t145 %t147 = load i32, ptr %t0 %t148 = load ptr, ptr %t1 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 4 %t150 = load ptr, ptr %t149 call void @fn_cm_rw(i32 %t147, ptr %t150) br label %ret ret: ret void } define i32 @fn_cm_is_keep(i32 %arg_c, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_cm_keep %t5 = load i32, ptr %t0 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp ult i32 %t5, %t9 br i1 %t10, label %ixok3, label %ixbad4 ixbad4: %t11 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t11, ptr @.fmt_bounds, ptr @.str1399, i32 %t5, i32 %t9) call void @exit(i32 1) unreachable ixok3: %t12 = getelementptr inbounds ptr, ptr %t7, i32 %t5 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp slt i32 %t3, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody1, label %wend2 wbody1: %t19 = load ptr, ptr @g_g_cm_keep %t20 = load i32, ptr %t0 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str1400, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = load i32, ptr %t2 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok7, label %ixbad8 ixbad8: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str1401, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok7: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t1 %t39 = call i32 @lp_str_eq(ptr %t37, ptr %t38) %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t41 = load i32, ptr %t2 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t43 = load i32, ptr %retval ret i32 %t43 } define i32 @fn_cm_is_field(i32 %arg_c, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_cm_fnames %t5 = load i32, ptr %t0 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp ult i32 %t5, %t9 br i1 %t10, label %ixok3, label %ixbad4 ixbad4: %t11 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t11, ptr @.fmt_bounds, ptr @.str1402, i32 %t5, i32 %t9) call void @exit(i32 1) unreachable ixok3: %t12 = getelementptr inbounds ptr, ptr %t7, i32 %t5 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp slt i32 %t3, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody1, label %wend2 wbody1: %t19 = load ptr, ptr @g_g_cm_fnames %t20 = load i32, ptr %t0 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str1403, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = load i32, ptr %t2 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok7, label %ixbad8 ixbad8: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str1404, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok7: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t1 %t39 = call i32 @lp_str_eq(ptr %t37, ptr %t38) %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t41 = load i32, ptr %t2 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t43 = load i32, ptr %retval ret i32 %t43 } define i32 @fn_cm_is_call(i32 %arg_c, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_cm_cnames %t5 = load i32, ptr %t0 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp ult i32 %t5, %t9 br i1 %t10, label %ixok3, label %ixbad4 ixbad4: %t11 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t11, ptr @.fmt_bounds, ptr @.str1405, i32 %t5, i32 %t9) call void @exit(i32 1) unreachable ixok3: %t12 = getelementptr inbounds ptr, ptr %t7, i32 %t5 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp slt i32 %t3, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody1, label %wend2 wbody1: %t19 = load ptr, ptr @g_g_cm_cnames %t20 = load i32, ptr %t0 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str1406, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = load i32, ptr %t2 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok7, label %ixbad8 ixbad8: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str1407, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok7: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t1 %t39 = call i32 @lp_str_eq(ptr %t37, ptr %t38) %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t41 = load i32, ptr %t2 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t43 = load i32, ptr %retval ret i32 %t43 } define ptr @fn_cm_self() { entry: %retval = alloca ptr %t1 = alloca ptr %t0 = call ptr @fn_node(i32 33) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1 store ptr @.str1408, ptr %t3 %t4 = load ptr, ptr %t1 store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define void @fn_cm_rw(i32 %arg_c, ptr %arg_n) { entry: %t0 = alloca i32 %t1 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 %t8 = alloca i32 %t36 = alloca i32 %t79 = alloca i32 %t101 = alloca i32 %t121 = alloca ptr %t173 = alloca i32 %t174 = alloca i32 %t175 = alloca i32 %t176 = alloca i32 %t258 = alloca ptr %t279 = alloca i32 %t337 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_n, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t9 = load ptr, ptr %t1 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 0 %t11 = load i32, ptr %t10 %t12 = icmp eq i32 %t11, 10 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t8 br i1 %t14, label %scend4, label %sc3 sc3: %t16 = load ptr, ptr %t1 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0 %t18 = load i32, ptr %t17 %t19 = icmp eq i32 %t18, 14 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t8 br label %scend4 scend4: %t23 = load i32, ptr %t8 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t7 br i1 %t24, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr %t1 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = icmp ne ptr %t28, null %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t7 br label %scend6 scend6: %t33 = load i32, ptr %t7 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t6 br i1 %t34, label %sc7, label %scend8 sc7: %t37 = load i32, ptr %t0 %t38 = load ptr, ptr %t1 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 1 %t40 = load ptr, ptr %t39 %t41 = call i32 @fn_cm_is_keep(i32 %t37, ptr %t40) %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t36 br i1 %t42, label %scend10, label %sc9 sc9: %t44 = load i32, ptr %t0 %t45 = load ptr, ptr %t1 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = call i32 @fn_cm_is_field(i32 %t44, ptr %t47) %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t36 br label %scend10 scend10: %t51 = load i32, ptr %t36 %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t6 br label %scend8 scend8: %t54 = load i32, ptr %t6 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then11, label %ifend13 then11: %t56 = load ptr, ptr %t1 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 9 %t58 = load ptr, ptr %t57 store ptr %t58, ptr @g_g_err_file %t59 = load ptr, ptr %t1 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 8 %t61 = load i32, ptr %t60 store i32 %t61, ptr @g_g_err_line store i32 0, ptr @g_g_parsing %t62 = load ptr, ptr @g_g_cm_name %t63 = load i32, ptr %t0 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t67 = load i32, ptr %t66 %t68 = icmp ult i32 %t63, %t67 br i1 %t68, label %ixok14, label %ixbad15 ixbad15: %t69 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t69, ptr @.fmt_bounds, ptr @.str1410, i32 %t63, i32 %t67) call void @exit(i32 1) unreachable ixok14: %t70 = getelementptr inbounds ptr, ptr %t65, i32 %t63 %t71 = load ptr, ptr %t70 %t72 = call ptr @lp_str_concat(ptr @.str1409, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str1411) %t74 = load ptr, ptr %t1 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 1 %t76 = load ptr, ptr %t75 %t77 = call ptr @lp_str_concat(ptr %t73, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str1412) call void @fn_perr(ptr %t78) br label %ifend13 ifend13: %t80 = load ptr, ptr %t1 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 0 %t82 = load i32, ptr %t81 %t83 = icmp eq i32 %t82, 33 %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t79 br i1 %t85, label %sc16, label %scend17 sc16: %t87 = load i32, ptr %t0 %t88 = load ptr, ptr %t1 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 %t90 = load ptr, ptr %t89 %t91 = call i32 @fn_cm_is_keep(i32 %t87, ptr %t90) %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t79 br label %scend17 scend17: %t94 = load i32, ptr %t79 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then18, label %ifend20 then18: %t96 = load ptr, ptr %t1 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 0 store i32 35, ptr %t97 %t98 = load ptr, ptr %t1 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 4 %t100 = call ptr @fn_cm_self() store ptr %t100, ptr %t99 br label %ret ifend20: %t102 = load ptr, ptr %t1 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 0 %t104 = load i32, ptr %t103 %t105 = icmp eq i32 %t104, 33 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 %t108 = zext i1 %t107 to i32 store i32 %t108, ptr %t101 br i1 %t107, label %sc21, label %scend22 sc21: %t109 = load i32, ptr %t0 %t110 = load ptr, ptr %t1 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1 %t112 = load ptr, ptr %t111 %t113 = call i32 @fn_cm_is_field(i32 %t109, ptr %t112) %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t101 br label %scend22 scend22: %t116 = load i32, ptr %t101 %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then23, label %ifend25 then23: %t118 = load ptr, ptr %t1 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 0 store i32 34, ptr %t119 %t120 = call ptr @fn_node(i32 33) store ptr %t120, ptr %t121 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 1 %t124 = load ptr, ptr @g_g_cm_name %t125 = load i32, ptr %t0 %t126 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 1 %t129 = load i32, ptr %t128 %t130 = icmp ult i32 %t125, %t129 br i1 %t130, label %ixok26, label %ixbad27 ixbad27: %t131 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t131, ptr @.fmt_bounds, ptr @.str1413, i32 %t125, i32 %t129) call void @exit(i32 1) unreachable ixok26: %t132 = getelementptr inbounds ptr, ptr %t127, i32 %t125 %t133 = load ptr, ptr %t132 %t134 = call ptr @fn_cm_prefix(ptr %t133) %t135 = call ptr @lp_str_concat(ptr %t134, ptr @.str1414) %t136 = load ptr, ptr %t1 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 1 %t138 = load ptr, ptr %t137 %t139 = call ptr @lp_str_concat(ptr %t135, ptr %t138) store ptr %t139, ptr %t123 %t140 = load ptr, ptr %t1 %t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 4 %t142 = load ptr, ptr %t121 store ptr %t142, ptr %t141 %t143 = load ptr, ptr %t1 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 7 %t145 = getelementptr %LSlice, ptr null, i32 1 %t146 = ptrtoint ptr %t145 to i64 %t147 = call ptr @malloc(i64 %t146) %t148 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 0 store ptr null, ptr %t148 %t149 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 1 store i32 0, ptr %t149 %t150 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 2 store i32 0, ptr %t150 store ptr %t147, ptr %t144 %t151 = load ptr, ptr %t1 %t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 7 %t153 = load ptr, ptr %t152 %t154 = call ptr @fn_cm_self() %t155 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 1 %t156 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 2 %t157 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 0 %t158 = load i32, ptr %t155 %t159 = load i32, ptr %t156 %t160 = icmp sge i32 %t158, %t159 br i1 %t160, label %grow28, label %put29 grow28: %t161 = mul i32 %t159, 2 %t162 = icmp eq i32 %t159, 0 %t163 = select i1 %t162, i32 8, i32 %t161 %t164 = getelementptr ptr, ptr null, i32 1 %t165 = ptrtoint ptr %t164 to i64 %t166 = zext i32 %t163 to i64 %t167 = mul i64 %t166, %t165 %t168 = load ptr, ptr %t157 %t169 = call ptr @realloc(ptr %t168, i64 %t167) store ptr %t169, ptr %t157 store i32 %t163, ptr %t156 br label %put29 put29: %t170 = load ptr, ptr %t157 %t171 = getelementptr inbounds ptr, ptr %t170, i32 %t158 store ptr %t154, ptr %t171 %t172 = add i32 %t158, 1 store i32 %t172, ptr %t155 br label %ret ifend25: %t177 = load ptr, ptr %t1 %t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 0 %t179 = load i32, ptr %t178 %t180 = icmp eq i32 %t179, 34 %t181 = zext i1 %t180 to i32 %t182 = icmp ne i32 %t181, 0 %t183 = zext i1 %t182 to i32 store i32 %t183, ptr %t176 br i1 %t182, label %sc30, label %scend31 sc30: %t184 = load ptr, ptr %t1 %t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 4 %t186 = load ptr, ptr %t185 %t187 = icmp ne ptr %t186, null %t188 = zext i1 %t187 to i32 %t189 = icmp ne i32 %t188, 0 %t190 = zext i1 %t189 to i32 store i32 %t190, ptr %t176 br label %scend31 scend31: %t191 = load i32, ptr %t176 %t192 = icmp ne i32 %t191, 0 %t193 = zext i1 %t192 to i32 store i32 %t193, ptr %t175 br i1 %t192, label %sc32, label %scend33 sc32: %t194 = load ptr, ptr %t1 %t195 = getelementptr inbounds %Cmp_Node, ptr %t194, i32 0, i32 4 %t196 = load ptr, ptr %t195 %t197 = getelementptr inbounds %Cmp_Node, ptr %t196, i32 0, i32 0 %t198 = load i32, ptr %t197 %t199 = icmp eq i32 %t198, 33 %t200 = zext i1 %t199 to i32 %t201 = icmp ne i32 %t200, 0 %t202 = zext i1 %t201 to i32 store i32 %t202, ptr %t175 br label %scend33 scend33: %t203 = load i32, ptr %t175 %t204 = icmp ne i32 %t203, 0 %t205 = zext i1 %t204 to i32 store i32 %t205, ptr %t174 br i1 %t204, label %sc34, label %scend35 sc34: %t206 = load i32, ptr %t0 %t207 = load ptr, ptr %t1 %t208 = getelementptr inbounds %Cmp_Node, ptr %t207, i32 0, i32 4 %t209 = load ptr, ptr %t208 %t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 1 %t211 = load ptr, ptr %t210 %t212 = call i32 @fn_cm_is_call(i32 %t206, ptr %t211) %t213 = icmp ne i32 %t212, 0 %t214 = zext i1 %t213 to i32 store i32 %t214, ptr %t174 br label %scend35 scend35: %t215 = load i32, ptr %t174 %t216 = icmp ne i32 %t215, 0 %t217 = zext i1 %t216 to i32 store i32 %t217, ptr %t173 br i1 %t216, label %sc36, label %scend37 sc36: %t218 = load i32, ptr %t0 %t219 = load ptr, ptr %t1 %t220 = getelementptr inbounds %Cmp_Node, ptr %t219, i32 0, i32 4 %t221 = load ptr, ptr %t220 %t222 = getelementptr inbounds %Cmp_Node, ptr %t221, i32 0, i32 1 %t223 = load ptr, ptr %t222 %t224 = call i32 @fn_cm_is_keep(i32 %t218, ptr %t223) %t225 = icmp eq i32 %t224, 0 %t226 = zext i1 %t225 to i32 %t227 = icmp ne i32 %t226, 0 %t228 = zext i1 %t227 to i32 store i32 %t228, ptr %t173 br label %scend37 scend37: %t229 = load i32, ptr %t173 %t230 = icmp ne i32 %t229, 0 br i1 %t230, label %then38, label %ifend40 then38: %t231 = load ptr, ptr %t1 %t232 = getelementptr inbounds %Cmp_Node, ptr %t231, i32 0, i32 4 %t233 = load ptr, ptr %t232 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 1 %t235 = load ptr, ptr @g_g_cm_name %t236 = load i32, ptr %t0 %t237 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 0 %t238 = load ptr, ptr %t237 %t239 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 1 %t240 = load i32, ptr %t239 %t241 = icmp ult i32 %t236, %t240 br i1 %t241, label %ixok41, label %ixbad42 ixbad42: %t242 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t242, ptr @.fmt_bounds, ptr @.str1415, i32 %t236, i32 %t240) call void @exit(i32 1) unreachable ixok41: %t243 = getelementptr inbounds ptr, ptr %t238, i32 %t236 %t244 = load ptr, ptr %t243 %t245 = call ptr @fn_cm_prefix(ptr %t244) %t246 = load ptr, ptr %t1 %t247 = getelementptr inbounds %Cmp_Node, ptr %t246, i32 0, i32 4 %t248 = load ptr, ptr %t247 %t249 = getelementptr inbounds %Cmp_Node, ptr %t248, i32 0, i32 1 %t250 = load ptr, ptr %t249 %t251 = call ptr @lp_str_concat(ptr %t245, ptr %t250) store ptr %t251, ptr %t234 %t252 = getelementptr %LSlice, ptr null, i32 1 %t253 = ptrtoint ptr %t252 to i64 %t254 = call ptr @malloc(i64 %t253) %t255 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 0 store ptr null, ptr %t255 %t256 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 1 store i32 0, ptr %t256 %t257 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 2 store i32 0, ptr %t257 store ptr %t254, ptr %t258 %t259 = load ptr, ptr %t258 %t260 = call ptr @fn_cm_self() %t261 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 1 %t262 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 2 %t263 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 0 %t264 = load i32, ptr %t261 %t265 = load i32, ptr %t262 %t266 = icmp sge i32 %t264, %t265 br i1 %t266, label %grow43, label %put44 grow43: %t267 = mul i32 %t265, 2 %t268 = icmp eq i32 %t265, 0 %t269 = select i1 %t268, i32 8, i32 %t267 %t270 = getelementptr ptr, ptr null, i32 1 %t271 = ptrtoint ptr %t270 to i64 %t272 = zext i32 %t269 to i64 %t273 = mul i64 %t272, %t271 %t274 = load ptr, ptr %t263 %t275 = call ptr @realloc(ptr %t274, i64 %t273) store ptr %t275, ptr %t263 store i32 %t269, ptr %t262 br label %put44 put44: %t276 = load ptr, ptr %t263 %t277 = getelementptr inbounds ptr, ptr %t276, i32 %t264 store ptr %t260, ptr %t277 %t278 = add i32 %t264, 1 store i32 %t278, ptr %t261 store i32 0, ptr %t279 br label %wcond45 wcond45: %t280 = load i32, ptr %t279 %t281 = load ptr, ptr %t1 %t282 = getelementptr inbounds %Cmp_Node, ptr %t281, i32 0, i32 7 %t283 = load ptr, ptr %t282 %t284 = getelementptr inbounds %LSlice, ptr %t283, i32 0, i32 1 %t285 = load i32, ptr %t284 %t286 = icmp slt i32 %t280, %t285 %t287 = zext i1 %t286 to i32 %t288 = icmp ne i32 %t287, 0 br i1 %t288, label %wbody46, label %wend47 wbody46: %t289 = load ptr, ptr %t258 %t290 = load ptr, ptr %t1 %t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 7 %t292 = load ptr, ptr %t291 %t293 = load i32, ptr %t279 %t294 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 0 %t295 = load ptr, ptr %t294 %t296 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 1 %t297 = load i32, ptr %t296 %t298 = icmp ult i32 %t293, %t297 br i1 %t298, label %ixok48, label %ixbad49 ixbad49: %t299 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t299, ptr @.fmt_bounds, ptr @.str1416, i32 %t293, i32 %t297) call void @exit(i32 1) unreachable ixok48: %t300 = getelementptr inbounds ptr, ptr %t295, i32 %t293 %t301 = load ptr, ptr %t300 %t302 = getelementptr inbounds %LSlice, ptr %t289, i32 0, i32 1 %t303 = getelementptr inbounds %LSlice, ptr %t289, i32 0, i32 2 %t304 = getelementptr inbounds %LSlice, ptr %t289, i32 0, i32 0 %t305 = load i32, ptr %t302 %t306 = load i32, ptr %t303 %t307 = icmp sge i32 %t305, %t306 br i1 %t307, label %grow50, label %put51 grow50: %t308 = mul i32 %t306, 2 %t309 = icmp eq i32 %t306, 0 %t310 = select i1 %t309, i32 8, i32 %t308 %t311 = getelementptr ptr, ptr null, i32 1 %t312 = ptrtoint ptr %t311 to i64 %t313 = zext i32 %t310 to i64 %t314 = mul i64 %t313, %t312 %t315 = load ptr, ptr %t304 %t316 = call ptr @realloc(ptr %t315, i64 %t314) store ptr %t316, ptr %t304 store i32 %t310, ptr %t303 br label %put51 put51: %t317 = load ptr, ptr %t304 %t318 = getelementptr inbounds ptr, ptr %t317, i32 %t305 store ptr %t301, ptr %t318 %t319 = add i32 %t305, 1 store i32 %t319, ptr %t302 %t320 = load i32, ptr %t279 %t321 = add i32 %t320, 1 store i32 %t321, ptr %t279 br label %wcond45 wend47: %t322 = load ptr, ptr %t1 %t323 = getelementptr inbounds %Cmp_Node, ptr %t322, i32 0, i32 7 %t324 = load ptr, ptr %t258 store ptr %t324, ptr %t323 br label %ifend40 ifend40: %t325 = load i32, ptr %t0 %t326 = load ptr, ptr %t1 %t327 = getelementptr inbounds %Cmp_Node, ptr %t326, i32 0, i32 4 %t328 = load ptr, ptr %t327 call void @fn_cm_rw(i32 %t325, ptr %t328) %t329 = load i32, ptr %t0 %t330 = load ptr, ptr %t1 %t331 = getelementptr inbounds %Cmp_Node, ptr %t330, i32 0, i32 5 %t332 = load ptr, ptr %t331 call void @fn_cm_rw(i32 %t329, ptr %t332) %t333 = load i32, ptr %t0 %t334 = load ptr, ptr %t1 %t335 = getelementptr inbounds %Cmp_Node, ptr %t334, i32 0, i32 6 %t336 = load ptr, ptr %t335 call void @fn_cm_rw(i32 %t333, ptr %t336) store i32 0, ptr %t337 br label %wcond52 wcond52: %t338 = load i32, ptr %t337 %t339 = load ptr, ptr %t1 %t340 = getelementptr inbounds %Cmp_Node, ptr %t339, i32 0, i32 7 %t341 = load ptr, ptr %t340 %t342 = getelementptr inbounds %LSlice, ptr %t341, i32 0, i32 1 %t343 = load i32, ptr %t342 %t344 = icmp slt i32 %t338, %t343 %t345 = zext i1 %t344 to i32 %t346 = icmp ne i32 %t345, 0 br i1 %t346, label %wbody53, label %wend54 wbody53: %t347 = load i32, ptr %t0 %t348 = load ptr, ptr %t1 %t349 = getelementptr inbounds %Cmp_Node, ptr %t348, i32 0, i32 7 %t350 = load ptr, ptr %t349 %t351 = load i32, ptr %t337 %t352 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 0 %t353 = load ptr, ptr %t352 %t354 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 1 %t355 = load i32, ptr %t354 %t356 = icmp ult i32 %t351, %t355 br i1 %t356, label %ixok55, label %ixbad56 ixbad56: %t357 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t357, ptr @.fmt_bounds, ptr @.str1417, i32 %t351, i32 %t355) call void @exit(i32 1) unreachable ixok55: %t358 = getelementptr inbounds ptr, ptr %t353, i32 %t351 %t359 = load ptr, ptr %t358 call void @fn_cm_rw(i32 %t347, ptr %t359) %t360 = load i32, ptr %t337 %t361 = add i32 %t360, 1 store i32 %t361, ptr %t337 br label %wcond52 wend54: br label %ret ret: ret void } define void @fn_components_finish() { entry: %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_cm_name %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load i32, ptr %t0 call void @fn_cm_finish(i32 %t8) %t9 = load i32, ptr %t0 %t10 = add i32 %t9, 1 store i32 %t10, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_cm_err(i32 %arg_c, ptr %arg_msg) { entry: %t0 = alloca i32 %t1 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_msg, ptr %t1 %t2 = load ptr, ptr @g_g_cm_file %t3 = load i32, ptr %t0 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp ult i32 %t3, %t7 br i1 %t8, label %ixok0, label %ixbad1 ixbad1: %t9 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t9, ptr @.fmt_bounds, ptr @.str1418, i32 %t3, i32 %t7) call void @exit(i32 1) unreachable ixok0: %t10 = getelementptr inbounds ptr, ptr %t5, i32 %t3 %t11 = load ptr, ptr %t10 store ptr %t11, ptr @g_g_err_file %t12 = load ptr, ptr @g_g_cm_line %t13 = load i32, ptr %t0 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok2, label %ixbad3 ixbad3: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str1419, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok2: %t20 = getelementptr inbounds i32, ptr %t15, i32 %t13 %t21 = load i32, ptr %t20 store i32 %t21, ptr @g_g_err_line store i32 0, ptr @g_g_parsing %t22 = load ptr, ptr @g_g_cm_name %t23 = load i32, ptr %t0 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok4, label %ixbad5 ixbad5: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str1421, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok4: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 %t32 = call ptr @lp_str_concat(ptr @.str1420, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str1422) %t34 = load ptr, ptr %t1 %t35 = call ptr @lp_str_concat(ptr %t33, ptr %t34) call void @fn_perr(ptr %t35) br label %ret ret: ret void } define void @fn_cm_finish(i32 %arg_c) { entry: %t0 = alloca i32 %t16 = alloca ptr %t19 = alloca ptr %t22 = alloca ptr %t33 = alloca ptr %t44 = alloca ptr %t55 = alloca i32 %t59 = alloca ptr %t60 = alloca i32 store i32 %arg_c, ptr %t0 %t1 = call ptr @fn_find_comp(ptr @.str1423) %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load i32, ptr %t0 call void @fn_cm_err(i32 %t5, ptr @.str1424) br label %ifend2 ifend2: %t6 = load ptr, ptr @g_g_cm_name %t7 = load i32, ptr %t0 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 %t7, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str1425, i32 %t7, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 %t7 %t15 = load ptr, ptr %t14 store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_cm_prefix(ptr %t17) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t16 %t21 = call ptr @lp_str_concat(ptr @.str1426, ptr %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr @g_g_cm_head %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok5, label %ixbad6 ixbad6: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str1427, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok5: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 store ptr %t32, ptr %t33 %t34 = load ptr, ptr @g_g_cm_file %t35 = load i32, ptr %t0 %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 %t35, %t39 br i1 %t40, label %ixok7, label %ixbad8 ixbad8: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str1428, i32 %t35, i32 %t39) call void @exit(i32 1) unreachable ixok7: %t42 = getelementptr inbounds ptr, ptr %t37, i32 %t35 %t43 = load ptr, ptr %t42 store ptr %t43, ptr %t44 %t45 = load ptr, ptr @g_g_cm_line %t46 = load i32, ptr %t0 %t47 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 %t50 = load i32, ptr %t49 %t51 = icmp ult i32 %t46, %t50 br i1 %t51, label %ixok9, label %ixbad10 ixbad10: %t52 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t52, ptr @.fmt_bounds, ptr @.str1429, i32 %t46, i32 %t50) call void @exit(i32 1) unreachable ixok9: %t53 = getelementptr inbounds i32, ptr %t48, i32 %t46 %t54 = load i32, ptr %t53 store i32 %t54, ptr %t55 %t56 = load ptr, ptr %t22 %t57 = call ptr @lp_str_concat(ptr @.str1430, ptr %t56) %t58 = call ptr @lp_str_concat(ptr %t57, ptr @.str1431) store ptr %t58, ptr %t59 store i32 0, ptr %t60 br label %wcond11 wcond11: %t61 = load i32, ptr %t60 %t62 = load ptr, ptr @g_g_cm_keep %t63 = load i32, ptr %t0 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t67 = load i32, ptr %t66 %t68 = icmp ult i32 %t63, %t67 br i1 %t68, label %ixok14, label %ixbad15 ixbad15: %t69 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t69, ptr @.fmt_bounds, ptr @.str1432, i32 %t63, i32 %t67) call void @exit(i32 1) unreachable ixok14: %t70 = getelementptr inbounds ptr, ptr %t65, i32 %t63 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp slt i32 %t61, %t73 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %wbody12, label %wend13 wbody12: %t77 = load ptr, ptr %t59 %t78 = load ptr, ptr @g_g_cm_keep %t79 = load i32, ptr %t0 %t80 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t83 = load i32, ptr %t82 %t84 = icmp ult i32 %t79, %t83 br i1 %t84, label %ixok16, label %ixbad17 ixbad17: %t85 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t85, ptr @.fmt_bounds, ptr @.str1434, i32 %t79, i32 %t83) call void @exit(i32 1) unreachable ixok16: %t86 = getelementptr inbounds ptr, ptr %t81, i32 %t79 %t87 = load ptr, ptr %t86 %t88 = load i32, ptr %t60 %t89 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t92 = load i32, ptr %t91 %t93 = icmp ult i32 %t88, %t92 br i1 %t93, label %ixok18, label %ixbad19 ixbad19: %t94 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t94, ptr @.fmt_bounds, ptr @.str1435, i32 %t88, i32 %t92) call void @exit(i32 1) unreachable ixok18: %t95 = getelementptr inbounds ptr, ptr %t90, i32 %t88 %t96 = load ptr, ptr %t95 %t97 = call ptr @lp_str_concat(ptr @.str1433, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str1436) %t99 = load ptr, ptr @g_g_cm_keep_ty %t100 = load i32, ptr %t0 %t101 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 0 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t104 = load i32, ptr %t103 %t105 = icmp ult i32 %t100, %t104 br i1 %t105, label %ixok20, label %ixbad21 ixbad21: %t106 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t106, ptr @.fmt_bounds, ptr @.str1437, i32 %t100, i32 %t104) call void @exit(i32 1) unreachable ixok20: %t107 = getelementptr inbounds ptr, ptr %t102, i32 %t100 %t108 = load ptr, ptr %t107 %t109 = load i32, ptr %t60 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t113 = load i32, ptr %t112 %t114 = icmp ult i32 %t109, %t113 br i1 %t114, label %ixok22, label %ixbad23 ixbad23: %t115 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t115, ptr @.fmt_bounds, ptr @.str1438, i32 %t109, i32 %t113) call void @exit(i32 1) unreachable ixok22: %t116 = getelementptr inbounds ptr, ptr %t111, i32 %t109 %t117 = load ptr, ptr %t116 %t118 = call ptr @lp_str_concat(ptr %t98, ptr %t117) %t119 = call ptr @lp_str_concat(ptr %t118, ptr @.str1439) %t120 = call ptr @lp_str_concat(ptr %t77, ptr %t119) store ptr %t120, ptr %t59 %t121 = load i32, ptr %t60 %t122 = add i32 %t121, 1 store i32 %t122, ptr %t60 br label %wcond11 wend13: %t123 = load ptr, ptr %t59 %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str1440) %t125 = load ptr, ptr %t44 %t126 = load i32, ptr %t55 %t127 = load ptr, ptr %t33 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 10 %t129 = load i32, ptr %t128 call void @fn_vw_parse(ptr %t124, ptr %t125, i32 %t126, i32 %t129) %t130 = load i32, ptr %t0 %t131 = load ptr, ptr %t22 call void @fn_cm_bodies(i32 %t130, ptr %t131) %t132 = load i32, ptr %t0 %t133 = load ptr, ptr %t19 %t134 = load ptr, ptr %t22 %t135 = call ptr @fn_cm_new_src(i32 %t132, ptr %t133, ptr %t134) %t136 = load ptr, ptr %t44 %t137 = load i32, ptr %t55 %t138 = load ptr, ptr %t33 %t139 = getelementptr inbounds %Cmp_Node, ptr %t138, i32 0, i32 10 %t140 = load i32, ptr %t139 call void @fn_vw_parse(ptr %t135, ptr %t136, i32 %t137, i32 %t140) %t141 = load i32, ptr %t0 %t142 = load ptr, ptr %t19 %t143 = load ptr, ptr %t22 %t144 = call ptr @fn_cm_props_src(i32 %t141, ptr %t142, ptr %t143) %t145 = load ptr, ptr %t44 %t146 = load i32, ptr %t55 %t147 = load ptr, ptr %t33 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 10 %t149 = load i32, ptr %t148 call void @fn_vw_parse(ptr %t144, ptr %t145, i32 %t146, i32 %t149) %t150 = load i32, ptr %t0 %t151 = load ptr, ptr %t19 %t152 = load ptr, ptr %t22 %t153 = load ptr, ptr %t33 %t154 = call ptr @fn_cm_model_src(i32 %t150, ptr %t151, ptr %t152, ptr %t153) %t155 = load ptr, ptr %t44 %t156 = load i32, ptr %t55 %t157 = load ptr, ptr %t33 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 10 %t159 = load i32, ptr %t158 call void @fn_vw_parse(ptr %t154, ptr %t155, i32 %t156, i32 %t159) %t160 = load i32, ptr %t0 %t161 = load ptr, ptr %t19 %t162 = load ptr, ptr %t22 %t163 = load ptr, ptr %t33 %t164 = call ptr @fn_cm_call_src(i32 %t160, ptr %t161, ptr %t162, ptr %t163) %t165 = load ptr, ptr %t44 %t166 = load i32, ptr %t55 %t167 = load ptr, ptr %t33 %t168 = getelementptr inbounds %Cmp_Node, ptr %t167, i32 0, i32 10 %t169 = load i32, ptr %t168 call void @fn_vw_parse(ptr %t164, ptr %t165, i32 %t166, i32 %t169) %t170 = load i32, ptr %t0 %t171 = load ptr, ptr %t19 %t172 = load ptr, ptr %t33 call void @fn_cm_class(i32 %t170, ptr %t171, ptr %t172) br label %ret ret: ret void } define void @fn_cm_bodies(i32 %arg_c, ptr %arg_rec) { entry: %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 %t99 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_rec, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_g_cm_defs %t5 = load i32, ptr %t0 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp ult i32 %t5, %t9 br i1 %t10, label %ixok3, label %ixbad4 ixbad4: %t11 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t11, ptr @.fmt_bounds, ptr @.str1441, i32 %t5, i32 %t9) call void @exit(i32 1) unreachable ixok3: %t12 = getelementptr inbounds ptr, ptr %t7, i32 %t5 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp slt i32 %t3, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody1, label %wend2 wbody1: %t19 = load ptr, ptr @g_g_cm_defs %t20 = load i32, ptr %t0 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str1442, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = load i32, ptr %t2 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok7, label %ixbad8 ixbad8: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str1443, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok7: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 %t38 = icmp ne ptr %t37, null %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then9, label %ifend11 then9: %t41 = load i32, ptr %t0 %t42 = load ptr, ptr @g_g_cm_defs %t43 = load i32, ptr %t0 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 %t43, %t47 br i1 %t48, label %ixok12, label %ixbad13 ixbad13: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str1444, i32 %t43, i32 %t47) call void @exit(i32 1) unreachable ixok12: %t50 = getelementptr inbounds ptr, ptr %t45, i32 %t43 %t51 = load ptr, ptr %t50 %t52 = load i32, ptr %t2 %t53 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 0 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 1 %t56 = load i32, ptr %t55 %t57 = icmp ult i32 %t52, %t56 br i1 %t57, label %ixok14, label %ixbad15 ixbad15: %t58 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t58, ptr @.fmt_bounds, ptr @.str1445, i32 %t52, i32 %t56) call void @exit(i32 1) unreachable ixok14: %t59 = getelementptr inbounds ptr, ptr %t54, i32 %t52 %t60 = load ptr, ptr %t59 %t61 = load ptr, ptr %t1 call void @fn_cm_rewrite(i32 %t41, ptr %t60, ptr %t61) br label %ifend11 ifend11: %t62 = load i32, ptr %t2 %t63 = add i32 %t62, 1 store i32 %t63, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %t2 br label %wcond16 wcond16: %t64 = load i32, ptr %t2 %t65 = load ptr, ptr @g_g_cm_fields %t66 = load i32, ptr %t0 %t67 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 0 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t70 = load i32, ptr %t69 %t71 = icmp ult i32 %t66, %t70 br i1 %t71, label %ixok19, label %ixbad20 ixbad20: %t72 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t72, ptr @.fmt_bounds, ptr @.str1446, i32 %t66, i32 %t70) call void @exit(i32 1) unreachable ixok19: %t73 = getelementptr inbounds ptr, ptr %t68, i32 %t66 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp slt i32 %t64, %t76 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %wbody17, label %wend18 wbody17: %t80 = load ptr, ptr @g_g_cm_fields %t81 = load i32, ptr %t0 %t82 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 0 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 1 %t85 = load i32, ptr %t84 %t86 = icmp ult i32 %t81, %t85 br i1 %t86, label %ixok21, label %ixbad22 ixbad22: %t87 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t87, ptr @.fmt_bounds, ptr @.str1447, i32 %t81, i32 %t85) call void @exit(i32 1) unreachable ixok21: %t88 = getelementptr inbounds ptr, ptr %t83, i32 %t81 %t89 = load ptr, ptr %t88 %t90 = load i32, ptr %t2 %t91 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1 %t94 = load i32, ptr %t93 %t95 = icmp ult i32 %t90, %t94 br i1 %t95, label %ixok23, label %ixbad24 ixbad24: %t96 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t96, ptr @.fmt_bounds, ptr @.str1448, i32 %t90, i32 %t94) call void @exit(i32 1) unreachable ixok23: %t97 = getelementptr inbounds ptr, ptr %t92, i32 %t90 %t98 = load ptr, ptr %t97 store ptr %t98, ptr %t99 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 3 %t102 = load ptr, ptr %t101 %t103 = icmp eq ptr %t102, null %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then25, label %ifend27 then25: %t106 = load ptr, ptr %t99 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 3 %t108 = load i32, ptr %t0 %t109 = load ptr, ptr %t99 %t110 = load ptr, ptr @g_g_cm_fnames %t111 = load i32, ptr %t0 %t112 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 %t115 = load i32, ptr %t114 %t116 = icmp ult i32 %t111, %t115 br i1 %t116, label %ixok28, label %ixbad29 ixbad29: %t117 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t117, ptr @.fmt_bounds, ptr @.str1449, i32 %t111, i32 %t115) call void @exit(i32 1) unreachable ixok28: %t118 = getelementptr inbounds ptr, ptr %t113, i32 %t111 %t119 = load ptr, ptr %t118 %t120 = load i32, ptr %t2 %t121 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t124 = load i32, ptr %t123 %t125 = icmp ult i32 %t120, %t124 br i1 %t125, label %ixok30, label %ixbad31 ixbad31: %t126 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t126, ptr @.fmt_bounds, ptr @.str1450, i32 %t120, i32 %t124) call void @exit(i32 1) unreachable ixok30: %t127 = getelementptr inbounds ptr, ptr %t122, i32 %t120 %t128 = load ptr, ptr %t127 %t129 = call ptr @fn_cm_infer(i32 %t108, ptr %t109, ptr %t128) store ptr %t129, ptr %t107 br label %ifend27 ifend27: %t130 = load i32, ptr %t0 %t131 = load ptr, ptr %t99 %t132 = load ptr, ptr %t1 call void @fn_cm_rewrite(i32 %t130, ptr %t131, ptr %t132) %t133 = load i32, ptr %t2 %t134 = add i32 %t133, 1 store i32 %t134, ptr %t2 br label %wcond16 wend18: store i32 0, ptr %t2 br label %wcond32 wcond32: %t135 = load i32, ptr %t2 %t136 = load ptr, ptr @g_g_cm_calls %t137 = load i32, ptr %t0 %t138 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 0 %t139 = load ptr, ptr %t138 %t140 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 1 %t141 = load i32, ptr %t140 %t142 = icmp ult i32 %t137, %t141 br i1 %t142, label %ixok35, label %ixbad36 ixbad36: %t143 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t143, ptr @.fmt_bounds, ptr @.str1451, i32 %t137, i32 %t141) call void @exit(i32 1) unreachable ixok35: %t144 = getelementptr inbounds ptr, ptr %t139, i32 %t137 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 1 %t147 = load i32, ptr %t146 %t148 = icmp slt i32 %t135, %t147 %t149 = zext i1 %t148 to i32 %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %wbody33, label %wend34 wbody33: %t151 = load i32, ptr %t0 %t152 = load ptr, ptr @g_g_cm_calls %t153 = load i32, ptr %t0 %t154 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 0 %t155 = load ptr, ptr %t154 %t156 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 1 %t157 = load i32, ptr %t156 %t158 = icmp ult i32 %t153, %t157 br i1 %t158, label %ixok37, label %ixbad38 ixbad38: %t159 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t159, ptr @.fmt_bounds, ptr @.str1452, i32 %t153, i32 %t157) call void @exit(i32 1) unreachable ixok37: %t160 = getelementptr inbounds ptr, ptr %t155, i32 %t153 %t161 = load ptr, ptr %t160 %t162 = load i32, ptr %t2 %t163 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 0 %t164 = load ptr, ptr %t163 %t165 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 1 %t166 = load i32, ptr %t165 %t167 = icmp ult i32 %t162, %t166 br i1 %t167, label %ixok39, label %ixbad40 ixbad40: %t168 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t168, ptr @.fmt_bounds, ptr @.str1453, i32 %t162, i32 %t166) call void @exit(i32 1) unreachable ixok39: %t169 = getelementptr inbounds ptr, ptr %t164, i32 %t162 %t170 = load ptr, ptr %t169 %t171 = load ptr, ptr %t1 call void @fn_cm_rewrite(i32 %t151, ptr %t170, ptr %t171) %t172 = load i32, ptr %t2 %t173 = add i32 %t172, 1 store i32 %t173, ptr %t2 br label %wcond32 wend34: br label %ret ret: ret void } define ptr @fn_cm_infer(i32 %arg_c, ptr %arg_g, ptr %arg_fname) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t18 = alloca ptr %t19 = alloca i32 %t36 = alloca i32 %t108 = alloca ptr %t109 = alloca i32 %t151 = alloca i32 %t152 = alloca i32 %t187 = alloca ptr %t188 = alloca i32 %t189 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_g, ptr %t1 store ptr %arg_fname, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok0, label %ixbad1 ixbad1: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str1454, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok0: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t20 = load ptr, ptr %t18 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 0 %t22 = load i32, ptr %t21 %t23 = icmp eq i32 %t22, 33 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t19 br i1 %t25, label %sc2, label %scend3 sc2: %t27 = load i32, ptr %t0 %t28 = load ptr, ptr %t18 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = call i32 @fn_cm_is_keep(i32 %t27, ptr %t30) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t19 br label %scend3 scend3: %t34 = load i32, ptr %t19 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then4, label %ifend6 then4: store i32 0, ptr %t36 br label %wcond7 wcond7: %t37 = load i32, ptr %t36 %t38 = load ptr, ptr @g_g_cm_keep %t39 = load i32, ptr %t0 %t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t43 = load i32, ptr %t42 %t44 = icmp ult i32 %t39, %t43 br i1 %t44, label %ixok10, label %ixbad11 ixbad11: %t45 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t45, ptr @.fmt_bounds, ptr @.str1455, i32 %t39, i32 %t43) call void @exit(i32 1) unreachable ixok10: %t46 = getelementptr inbounds ptr, ptr %t41, i32 %t39 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp slt i32 %t37, %t49 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %wbody8, label %wend9 wbody8: %t53 = load ptr, ptr @g_g_cm_keep %t54 = load i32, ptr %t0 %t55 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t58 = load i32, ptr %t57 %t59 = icmp ult i32 %t54, %t58 br i1 %t59, label %ixok12, label %ixbad13 ixbad13: %t60 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t60, ptr @.fmt_bounds, ptr @.str1456, i32 %t54, i32 %t58) call void @exit(i32 1) unreachable ixok12: %t61 = getelementptr inbounds ptr, ptr %t56, i32 %t54 %t62 = load ptr, ptr %t61 %t63 = load i32, ptr %t36 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t67 = load i32, ptr %t66 %t68 = icmp ult i32 %t63, %t67 br i1 %t68, label %ixok14, label %ixbad15 ixbad15: %t69 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t69, ptr @.fmt_bounds, ptr @.str1457, i32 %t63, i32 %t67) call void @exit(i32 1) unreachable ixok14: %t70 = getelementptr inbounds ptr, ptr %t65, i32 %t63 %t71 = load ptr, ptr %t70 %t72 = load ptr, ptr %t18 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 %t74 = load ptr, ptr %t73 %t75 = call i32 @lp_str_eq(ptr %t71, ptr %t74) %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then16, label %ifend18 then16: %t77 = load ptr, ptr @g_g_cm_keep_ty %t78 = load i32, ptr %t0 %t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp ult i32 %t78, %t82 br i1 %t83, label %ixok19, label %ixbad20 ixbad20: %t84 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t84, ptr @.fmt_bounds, ptr @.str1458, i32 %t78, i32 %t82) call void @exit(i32 1) unreachable ixok19: %t85 = getelementptr inbounds ptr, ptr %t80, i32 %t78 %t86 = load ptr, ptr %t85 %t87 = load i32, ptr %t36 %t88 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 0 %t89 = load ptr, ptr %t88 %t90 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 %t91 = load i32, ptr %t90 %t92 = icmp ult i32 %t87, %t91 br i1 %t92, label %ixok21, label %ixbad22 ixbad22: %t93 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t93, ptr @.fmt_bounds, ptr @.str1459, i32 %t87, i32 %t91) call void @exit(i32 1) unreachable ixok21: %t94 = getelementptr inbounds ptr, ptr %t89, i32 %t87 %t95 = load ptr, ptr %t94 store ptr %t95, ptr %retval br label %ret ifend18: %t96 = load i32, ptr %t36 %t97 = add i32 %t96, 1 store i32 %t97, ptr %t36 br label %wcond7 wend9: br label %ifend6 ifend6: %t98 = load ptr, ptr %t18 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 0 %t100 = load i32, ptr %t99 %t101 = icmp eq i32 %t100, 33 %t102 = zext i1 %t101 to i32 %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then23, label %ifend25 then23: %t104 = load ptr, ptr %t18 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 1 %t106 = load ptr, ptr %t105 %t107 = call ptr @fn_find_global(ptr %t106) store ptr %t107, ptr %t108 %t110 = load ptr, ptr %t108 %t111 = icmp ne ptr %t110, null %t112 = zext i1 %t111 to i32 %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t109 br i1 %t113, label %sc26, label %scend27 sc26: %t115 = load ptr, ptr %t108 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 3 %t117 = load ptr, ptr %t116 %t118 = icmp ne ptr %t117, null %t119 = zext i1 %t118 to i32 %t120 = icmp ne i32 %t119, 0 %t121 = zext i1 %t120 to i32 store i32 %t121, ptr %t109 br label %scend27 scend27: %t122 = load i32, ptr %t109 %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then28, label %ifend30 then28: %t124 = load ptr, ptr %t108 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 3 %t126 = load ptr, ptr %t125 store ptr %t126, ptr %retval br label %ret ifend30: br label %ifend25 ifend25: %t127 = load ptr, ptr %t18 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 0 %t129 = load i32, ptr %t128 %t130 = icmp eq i32 %t129, 30 %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then31, label %ifend33 then31: store ptr @.str1460, ptr %retval br label %ret ifend33: %t133 = load ptr, ptr %t18 %t134 = getelementptr inbounds %Cmp_Node, ptr %t133, i32 0, i32 0 %t135 = load i32, ptr %t134 %t136 = icmp eq i32 %t135, 40 %t137 = zext i1 %t136 to i32 %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then34, label %ifend36 then34: store ptr @.str1461, ptr %retval br label %ret ifend36: %t139 = load ptr, ptr %t18 %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 0 %t141 = load i32, ptr %t140 %t142 = icmp eq i32 %t141, 32 %t143 = zext i1 %t142 to i32 %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %then37, label %ifend39 then37: store ptr @.str1462, ptr %retval br label %ret ifend39: %t145 = load ptr, ptr %t18 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 0 %t147 = load i32, ptr %t146 %t148 = icmp eq i32 %t147, 31 %t149 = zext i1 %t148 to i32 %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %then40, label %ifend42 then40: store ptr @.str1463, ptr %retval br label %ret ifend42: %t153 = load ptr, ptr %t18 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 0 %t155 = load i32, ptr %t154 %t156 = icmp eq i32 %t155, 34 %t157 = zext i1 %t156 to i32 %t158 = icmp ne i32 %t157, 0 %t159 = zext i1 %t158 to i32 store i32 %t159, ptr %t152 br i1 %t158, label %sc43, label %scend44 sc43: %t160 = load ptr, ptr %t18 %t161 = getelementptr inbounds %Cmp_Node, ptr %t160, i32 0, i32 4 %t162 = load ptr, ptr %t161 %t163 = icmp ne ptr %t162, null %t164 = zext i1 %t163 to i32 %t165 = icmp ne i32 %t164, 0 %t166 = zext i1 %t165 to i32 store i32 %t166, ptr %t152 br label %scend44 scend44: %t167 = load i32, ptr %t152 %t168 = icmp ne i32 %t167, 0 %t169 = zext i1 %t168 to i32 store i32 %t169, ptr %t151 br i1 %t168, label %sc45, label %scend46 sc45: %t170 = load ptr, ptr %t18 %t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 4 %t172 = load ptr, ptr %t171 %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 0 %t174 = load i32, ptr %t173 %t175 = icmp eq i32 %t174, 33 %t176 = zext i1 %t175 to i32 %t177 = icmp ne i32 %t176, 0 %t178 = zext i1 %t177 to i32 store i32 %t178, ptr %t151 br label %scend46 scend46: %t179 = load i32, ptr %t151 %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then47, label %ifend49 then47: %t181 = load ptr, ptr %t18 %t182 = getelementptr inbounds %Cmp_Node, ptr %t181, i32 0, i32 4 %t183 = load ptr, ptr %t182 %t184 = getelementptr inbounds %Cmp_Node, ptr %t183, i32 0, i32 1 %t185 = load ptr, ptr %t184 %t186 = call ptr @fn_find_fn(ptr %t185) store ptr %t186, ptr %t187 %t190 = load ptr, ptr %t187 %t191 = icmp ne ptr %t190, null %t192 = zext i1 %t191 to i32 %t193 = icmp ne i32 %t192, 0 %t194 = zext i1 %t193 to i32 store i32 %t194, ptr %t189 br i1 %t193, label %sc50, label %scend51 sc50: %t195 = load ptr, ptr %t187 %t196 = getelementptr inbounds %Cmp_Node, ptr %t195, i32 0, i32 3 %t197 = load ptr, ptr %t196 %t198 = icmp ne ptr %t197, null %t199 = zext i1 %t198 to i32 %t200 = icmp ne i32 %t199, 0 %t201 = zext i1 %t200 to i32 store i32 %t201, ptr %t189 br label %scend51 scend51: %t202 = load i32, ptr %t189 %t203 = icmp ne i32 %t202, 0 %t204 = zext i1 %t203 to i32 store i32 %t204, ptr %t188 br i1 %t203, label %sc52, label %scend53 sc52: %t205 = load ptr, ptr %t187 %t206 = getelementptr inbounds %Cmp_Node, ptr %t205, i32 0, i32 3 %t207 = load ptr, ptr %t206 %t208 = call i32 @lp_str_eq(ptr %t207, ptr @.str1464) %t209 = icmp eq i32 %t208, 0 %t210 = zext i1 %t209 to i32 %t211 = icmp ne i32 %t210, 0 %t212 = zext i1 %t211 to i32 store i32 %t212, ptr %t188 br label %scend53 scend53: %t213 = load i32, ptr %t188 %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %then54, label %ifend56 then54: %t215 = load ptr, ptr %t187 %t216 = getelementptr inbounds %Cmp_Node, ptr %t215, i32 0, i32 3 %t217 = load ptr, ptr %t216 store ptr %t217, ptr %retval br label %ret ifend56: br label %ifend49 ifend49: %t218 = load ptr, ptr @g_g_cm_line %t219 = load i32, ptr %t0 %t220 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 0 %t221 = load ptr, ptr %t220 %t222 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 1 %t223 = load i32, ptr %t222 %t224 = icmp ult i32 %t219, %t223 br i1 %t224, label %ixok57, label %ixbad58 ixbad58: %t225 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t225, ptr @.fmt_bounds, ptr @.str1465, i32 %t219, i32 %t223) call void @exit(i32 1) unreachable ixok57: %t226 = getelementptr inbounds i32, ptr %t221, i32 %t219 %t227 = load ptr, ptr %t1 %t228 = getelementptr inbounds %Cmp_Node, ptr %t227, i32 0, i32 8 %t229 = load i32, ptr %t228 store i32 %t229, ptr %t226 %t230 = load i32, ptr %t0 %t231 = load ptr, ptr %t2 %t232 = call ptr @lp_str_concat(ptr @.str1466, ptr %t231) %t233 = call ptr @lp_str_concat(ptr %t232, ptr @.str1467) %t234 = load ptr, ptr %t2 %t235 = call ptr @lp_str_concat(ptr %t233, ptr %t234) %t236 = call ptr @lp_str_concat(ptr %t235, ptr @.str1468) call void @fn_cm_err(i32 %t230, ptr %t236) store ptr @.str1469, ptr %retval br label %ret ret: %t237 = load ptr, ptr %retval ret ptr %t237 } define ptr @fn_cm_new_src(i32 %arg_c, ptr %arg_px, ptr %arg_rec) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca ptr %t10 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_px, ptr %t1 store ptr %arg_rec, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str1470, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str1471) %t6 = load ptr, ptr %t2 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str1472) store ptr %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load ptr, ptr @g_g_cm_keep %t13 = load i32, ptr %t0 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok3, label %ixbad4 ixbad4: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str1473, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok3: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp slt i32 %t11, %t23 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %wbody1, label %wend2 wbody1: %t27 = load ptr, ptr @g_g_cm_defs %t28 = load i32, ptr %t0 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok5, label %ixbad6 ixbad6: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str1474, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok5: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = load i32, ptr %t10 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok7, label %ixbad8 ixbad8: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str1475, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok7: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 %t46 = icmp ne ptr %t45, null %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then9, label %ifend11 then9: %t49 = load ptr, ptr %t9 %t50 = load ptr, ptr @g_g_cm_keep %t51 = load i32, ptr %t0 %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp ult i32 %t51, %t55 br i1 %t56, label %ixok12, label %ixbad13 ixbad13: %t57 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t57, ptr @.fmt_bounds, ptr @.str1477, i32 %t51, i32 %t55) call void @exit(i32 1) unreachable ixok12: %t58 = getelementptr inbounds ptr, ptr %t53, i32 %t51 %t59 = load ptr, ptr %t58 %t60 = load i32, ptr %t10 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 %t60, %t64 br i1 %t65, label %ixok14, label %ixbad15 ixbad15: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str1478, i32 %t60, i32 %t64) call void @exit(i32 1) unreachable ixok14: %t67 = getelementptr inbounds ptr, ptr %t62, i32 %t60 %t68 = load ptr, ptr %t67 %t69 = call ptr @lp_str_concat(ptr @.str1476, ptr %t68) %t70 = call ptr @lp_str_concat(ptr %t69, ptr @.str1479) %t71 = load ptr, ptr %t1 %t72 = call ptr @lp_str_concat(ptr %t70, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str1480) %t74 = load ptr, ptr @g_g_cm_keep %t75 = load i32, ptr %t0 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t79 = load i32, ptr %t78 %t80 = icmp ult i32 %t75, %t79 br i1 %t80, label %ixok16, label %ixbad17 ixbad17: %t81 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t81, ptr @.fmt_bounds, ptr @.str1481, i32 %t75, i32 %t79) call void @exit(i32 1) unreachable ixok16: %t82 = getelementptr inbounds ptr, ptr %t77, i32 %t75 %t83 = load ptr, ptr %t82 %t84 = load i32, ptr %t10 %t85 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 0 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t88 = load i32, ptr %t87 %t89 = icmp ult i32 %t84, %t88 br i1 %t89, label %ixok18, label %ixbad19 ixbad19: %t90 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t90, ptr @.fmt_bounds, ptr @.str1482, i32 %t84, i32 %t88) call void @exit(i32 1) unreachable ixok18: %t91 = getelementptr inbounds ptr, ptr %t86, i32 %t84 %t92 = load ptr, ptr %t91 %t93 = call ptr @lp_str_concat(ptr %t73, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str1483) %t95 = call ptr @lp_str_concat(ptr %t49, ptr %t94) store ptr %t95, ptr %t9 br label %ifend11 ifend11: %t96 = load i32, ptr %t10 %t97 = add i32 %t96, 1 store i32 %t97, ptr %t10 br label %wcond0 wend2: %t98 = load ptr, ptr %t9 %t99 = call ptr @lp_str_concat(ptr %t98, ptr @.str1484) store ptr %t99, ptr %retval br label %ret ret: %t100 = load ptr, ptr %retval ret ptr %t100 } define ptr @fn_cm_props_src(i32 %arg_c, ptr %arg_px, ptr %arg_rec) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca ptr %t10 = alloca i32 %t66 = alloca ptr %t91 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_px, ptr %t1 store ptr %arg_rec, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str1485, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str1486) %t6 = load ptr, ptr %t2 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str1487) store ptr %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load ptr, ptr @g_g_cm_keep %t13 = load i32, ptr %t0 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok3, label %ixbad4 ixbad4: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str1488, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok3: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp slt i32 %t11, %t23 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %wbody1, label %wend2 wbody1: %t27 = load ptr, ptr @g_g_cm_prop %t28 = load i32, ptr %t0 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok5, label %ixbad6 ixbad6: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str1489, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok5: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = load i32, ptr %t10 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok7, label %ixbad8 ixbad8: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str1490, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok7: %t44 = getelementptr inbounds i32, ptr %t39, i32 %t37 %t45 = load i32, ptr %t44 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then9, label %ifend11 then9: %t47 = load ptr, ptr @g_g_cm_keep %t48 = load i32, ptr %t0 %t49 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 %t48, %t52 br i1 %t53, label %ixok12, label %ixbad13 ixbad13: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str1491, i32 %t48, i32 %t52) call void @exit(i32 1) unreachable ixok12: %t55 = getelementptr inbounds ptr, ptr %t50, i32 %t48 %t56 = load ptr, ptr %t55 %t57 = load i32, ptr %t10 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 %t57, %t61 br i1 %t62, label %ixok14, label %ixbad15 ixbad15: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str1492, i32 %t57, i32 %t61) call void @exit(i32 1) unreachable ixok14: %t64 = getelementptr inbounds ptr, ptr %t59, i32 %t57 %t65 = load ptr, ptr %t64 store ptr %t65, ptr %t66 %t67 = load i32, ptr %t0 %t68 = load ptr, ptr @g_g_cm_keep_ty %t69 = load i32, ptr %t0 %t70 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp ult i32 %t69, %t73 br i1 %t74, label %ixok16, label %ixbad17 ixbad17: %t75 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t75, ptr @.fmt_bounds, ptr @.str1493, i32 %t69, i32 %t73) call void @exit(i32 1) unreachable ixok16: %t76 = getelementptr inbounds ptr, ptr %t71, i32 %t69 %t77 = load ptr, ptr %t76 %t78 = load i32, ptr %t10 %t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp ult i32 %t78, %t82 br i1 %t83, label %ixok18, label %ixbad19 ixbad19: %t84 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t84, ptr @.fmt_bounds, ptr @.str1494, i32 %t78, i32 %t82) call void @exit(i32 1) unreachable ixok18: %t85 = getelementptr inbounds ptr, ptr %t80, i32 %t78 %t86 = load ptr, ptr %t85 %t87 = load ptr, ptr %t66 %t88 = call ptr @lp_str_concat(ptr @.str1495, ptr %t87) %t89 = call ptr @lp_str_concat(ptr %t88, ptr @.str1496) %t90 = call ptr @fn_cm_from(i32 %t67, ptr %t86, ptr %t89) store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t9 %t93 = load ptr, ptr %t66 %t94 = call ptr @lp_str_concat(ptr @.str1497, ptr %t93) %t95 = call ptr @lp_str_concat(ptr %t94, ptr @.str1498) %t96 = load ptr, ptr %t66 %t97 = call ptr @lp_str_concat(ptr %t95, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str1499) %t99 = load ptr, ptr %t91 %t100 = call ptr @lp_str_concat(ptr %t98, ptr %t99) %t101 = call ptr @lp_str_concat(ptr %t100, ptr @.str1500) %t102 = call ptr @lp_str_concat(ptr %t92, ptr %t101) store ptr %t102, ptr %t9 br label %ifend11 ifend11: %t103 = load i32, ptr %t10 %t104 = add i32 %t103, 1 store i32 %t104, ptr %t10 br label %wcond0 wend2: %t105 = load ptr, ptr %t9 %t106 = call ptr @lp_str_concat(ptr %t105, ptr @.str1501) store ptr %t106, ptr %retval br label %ret ret: %t107 = load ptr, ptr %retval ret ptr %t107 } define ptr @fn_cm_from(i32 %arg_c, ptr %arg_ty, ptr %arg_x) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_ty, ptr %t1 store ptr %arg_x, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str1502) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t2 store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t1 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str1503) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: %t10 = load ptr, ptr %t2 %t11 = call ptr @lp_str_concat(ptr @.str1504, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str1505) store ptr %t12, ptr %retval br label %ret ifend5: %t13 = load ptr, ptr %t1 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str1506) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then6, label %ifend8 then6: %t16 = load ptr, ptr %t2 %t17 = call ptr @lp_str_concat(ptr @.str1507, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str1508) store ptr %t18, ptr %retval br label %ret ifend8: %t19 = load ptr, ptr %t1 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str1509) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then9, label %ifend11 then9: %t22 = load ptr, ptr %t2 %t23 = call ptr @lp_str_concat(ptr @.str1510, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str1511) store ptr %t24, ptr %retval br label %ret ifend11: %t25 = load ptr, ptr %t1 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str1512) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then12, label %ifend14 then12: %t28 = load ptr, ptr %t2 %t29 = call ptr @lp_str_concat(ptr @.str1513, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str1514) store ptr %t30, ptr %retval br label %ret ifend14: %t31 = load i32, ptr %t0 %t32 = load ptr, ptr %t1 %t33 = call ptr @lp_str_concat(ptr @.str1515, ptr %t32) call void @fn_cm_err(i32 %t31, ptr %t33) %t34 = load ptr, ptr %t2 store ptr %t34, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define ptr @fn_cm_model_src(i32 %arg_c, ptr %arg_px, ptr %arg_rec, ptr %arg_head) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t10 = alloca ptr %t11 = alloca i32 %t47 = alloca ptr %t72 = alloca ptr %t118 = alloca ptr %t129 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_px, ptr %t1 store ptr %arg_rec, ptr %t2 store ptr %arg_head, ptr %t3 %t4 = load ptr, ptr %t1 %t5 = call ptr @lp_str_concat(ptr @.str1516, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str1517) %t7 = load ptr, ptr %t2 %t8 = call ptr @lp_str_concat(ptr %t6, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str1518) store ptr %t9, ptr %t10 store i32 0, ptr %t11 br label %wcond0 wcond0: %t12 = load i32, ptr %t11 %t13 = load ptr, ptr @g_g_cm_keep %t14 = load i32, ptr %t0 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str1519, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp slt i32 %t12, %t24 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %wbody1, label %wend2 wbody1: %t28 = load ptr, ptr @g_g_cm_keep %t29 = load i32, ptr %t0 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok5, label %ixbad6 ixbad6: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str1520, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok5: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 %t38 = load i32, ptr %t11 %t39 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp ult i32 %t38, %t42 br i1 %t43, label %ixok7, label %ixbad8 ixbad8: %t44 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t44, ptr @.fmt_bounds, ptr @.str1521, i32 %t38, i32 %t42) call void @exit(i32 1) unreachable ixok7: %t45 = getelementptr inbounds ptr, ptr %t40, i32 %t38 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t47 %t48 = load i32, ptr %t0 %t49 = load ptr, ptr @g_g_cm_keep_ty %t50 = load i32, ptr %t0 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp ult i32 %t50, %t54 br i1 %t55, label %ixok9, label %ixbad10 ixbad10: %t56 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t56, ptr @.fmt_bounds, ptr @.str1522, i32 %t50, i32 %t54) call void @exit(i32 1) unreachable ixok9: %t57 = getelementptr inbounds ptr, ptr %t52, i32 %t50 %t58 = load ptr, ptr %t57 %t59 = load i32, ptr %t11 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 %t59, %t63 br i1 %t64, label %ixok11, label %ixbad12 ixbad12: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str1523, i32 %t59, i32 %t63) call void @exit(i32 1) unreachable ixok11: %t66 = getelementptr inbounds ptr, ptr %t61, i32 %t59 %t67 = load ptr, ptr %t66 %t68 = load ptr, ptr %t47 %t69 = call ptr @lp_str_concat(ptr @.str1524, ptr %t68) %t70 = load ptr, ptr %t3 %t71 = call ptr @fn_cm_to(i32 %t48, ptr %t67, ptr %t69, ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t10 %t74 = load ptr, ptr %t47 %t75 = call ptr @lp_str_concat(ptr @.str1525, ptr %t74) %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str1526) %t77 = load ptr, ptr %t72 %t78 = call ptr @lp_str_concat(ptr %t76, ptr %t77) %t79 = call ptr @lp_str_concat(ptr %t78, ptr @.str1527) %t80 = call ptr @lp_str_concat(ptr %t73, ptr %t79) store ptr %t80, ptr %t10 %t81 = load i32, ptr %t11 %t82 = add i32 %t81, 1 store i32 %t82, ptr %t11 br label %wcond0 wend2: store i32 0, ptr %t11 br label %wcond13 wcond13: %t83 = load i32, ptr %t11 %t84 = load ptr, ptr @g_g_cm_fields %t85 = load i32, ptr %t0 %t86 = getelementptr inbounds %LSlice, ptr %t84, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %LSlice, ptr %t84, i32 0, i32 1 %t89 = load i32, ptr %t88 %t90 = icmp ult i32 %t85, %t89 br i1 %t90, label %ixok16, label %ixbad17 ixbad17: %t91 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t91, ptr @.fmt_bounds, ptr @.str1528, i32 %t85, i32 %t89) call void @exit(i32 1) unreachable ixok16: %t92 = getelementptr inbounds ptr, ptr %t87, i32 %t85 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1 %t95 = load i32, ptr %t94 %t96 = icmp slt i32 %t83, %t95 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %wbody14, label %wend15 wbody14: %t99 = load ptr, ptr @g_g_cm_fields %t100 = load i32, ptr %t0 %t101 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 0 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t104 = load i32, ptr %t103 %t105 = icmp ult i32 %t100, %t104 br i1 %t105, label %ixok18, label %ixbad19 ixbad19: %t106 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t106, ptr @.fmt_bounds, ptr @.str1529, i32 %t100, i32 %t104) call void @exit(i32 1) unreachable ixok18: %t107 = getelementptr inbounds ptr, ptr %t102, i32 %t100 %t108 = load ptr, ptr %t107 %t109 = load i32, ptr %t11 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t113 = load i32, ptr %t112 %t114 = icmp ult i32 %t109, %t113 br i1 %t114, label %ixok20, label %ixbad21 ixbad21: %t115 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t115, ptr @.fmt_bounds, ptr @.str1530, i32 %t109, i32 %t113) call void @exit(i32 1) unreachable ixok20: %t116 = getelementptr inbounds ptr, ptr %t111, i32 %t109 %t117 = load ptr, ptr %t116 store ptr %t117, ptr %t118 %t119 = load i32, ptr %t0 %t120 = load ptr, ptr %t118 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 3 %t122 = load ptr, ptr %t121 %t123 = load ptr, ptr %t118 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t124 %t126 = call ptr @lp_str_concat(ptr %t125, ptr @.str1531) %t127 = load ptr, ptr %t3 %t128 = call ptr @fn_cm_to(i32 %t119, ptr %t122, ptr %t126, ptr %t127) store ptr %t128, ptr %t129 %t130 = load ptr, ptr %t10 %t131 = load ptr, ptr @g_g_cm_fnames %t132 = load i32, ptr %t0 %t133 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 0 %t134 = load ptr, ptr %t133 %t135 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 1 %t136 = load i32, ptr %t135 %t137 = icmp ult i32 %t132, %t136 br i1 %t137, label %ixok22, label %ixbad23 ixbad23: %t138 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t138, ptr @.fmt_bounds, ptr @.str1533, i32 %t132, i32 %t136) call void @exit(i32 1) unreachable ixok22: %t139 = getelementptr inbounds ptr, ptr %t134, i32 %t132 %t140 = load ptr, ptr %t139 %t141 = load i32, ptr %t11 %t142 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 1 %t145 = load i32, ptr %t144 %t146 = icmp ult i32 %t141, %t145 br i1 %t146, label %ixok24, label %ixbad25 ixbad25: %t147 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t147, ptr @.fmt_bounds, ptr @.str1534, i32 %t141, i32 %t145) call void @exit(i32 1) unreachable ixok24: %t148 = getelementptr inbounds ptr, ptr %t143, i32 %t141 %t149 = load ptr, ptr %t148 %t150 = call ptr @lp_str_concat(ptr @.str1532, ptr %t149) %t151 = call ptr @lp_str_concat(ptr %t150, ptr @.str1535) %t152 = load ptr, ptr %t129 %t153 = call ptr @lp_str_concat(ptr %t151, ptr %t152) %t154 = call ptr @lp_str_concat(ptr %t153, ptr @.str1536) %t155 = call ptr @lp_str_concat(ptr %t130, ptr %t154) store ptr %t155, ptr %t10 %t156 = load i32, ptr %t11 %t157 = add i32 %t156, 1 store i32 %t157, ptr %t11 br label %wcond13 wend15: %t158 = load ptr, ptr %t10 %t159 = call ptr @lp_str_concat(ptr %t158, ptr @.str1537) store ptr %t159, ptr %retval br label %ret ret: %t160 = load ptr, ptr %retval ret ptr %t160 } define ptr @fn_cm_to(i32 %arg_c, ptr %arg_ty, ptr %arg_x, ptr %arg_head) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t12 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_ty, ptr %t1 store ptr %arg_x, ptr %t2 store ptr %arg_head, ptr %t3 %t4 = load ptr, ptr %t1 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str1538) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t2 store ptr %t7, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t1 %t9 = load ptr, ptr %t2 %t10 = load ptr, ptr %t3 %t11 = call ptr @fn_vw_conv(i32 0, ptr %t8, ptr %t9, ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = icmp eq ptr %t13, null %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then3, label %ifend5 then3: %t17 = load i32, ptr %t0 %t18 = load ptr, ptr %t1 %t19 = call ptr @lp_str_concat(ptr @.str1539, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str1540) call void @fn_cm_err(i32 %t17, ptr %t20) br label %ifend5 ifend5: %t21 = load ptr, ptr %t12 store ptr %t21, ptr %retval br label %ret ret: %t22 = load ptr, ptr %retval ret ptr %t22 } define ptr @fn_cm_call_src(i32 %arg_c, ptr %arg_px, ptr %arg_rec, ptr %arg_head) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t10 = alloca ptr %t21 = alloca ptr %t22 = alloca i32 %t40 = alloca ptr %t41 = alloca ptr %t42 = alloca i32 %t103 = alloca ptr %t121 = alloca ptr %t188 = alloca ptr %t210 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_px, ptr %t1 store ptr %arg_rec, ptr %t2 store ptr %arg_head, ptr %t3 %t4 = load ptr, ptr %t1 %t5 = call ptr @lp_str_concat(ptr @.str1541, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str1542) %t7 = load ptr, ptr %t2 %t8 = call ptr @lp_str_concat(ptr %t6, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str1543) store ptr %t9, ptr %t10 %t11 = load ptr, ptr @g_g_cm_calls %t12 = load i32, ptr %t0 %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 %t12, %t16 br i1 %t17, label %ixok0, label %ixbad1 ixbad1: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str1544, i32 %t12, i32 %t16) call void @exit(i32 1) unreachable ixok0: %t19 = getelementptr inbounds ptr, ptr %t14, i32 %t12 %t20 = load ptr, ptr %t19 store ptr %t20, ptr %t21 store i32 0, ptr %t22 br label %wcond2 wcond2: %t23 = load i32, ptr %t22 %t24 = load ptr, ptr %t21 %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t26 = load i32, ptr %t25 %t27 = icmp slt i32 %t23, %t26 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %wbody3, label %wend4 wbody3: %t30 = load ptr, ptr %t21 %t31 = load i32, ptr %t22 %t32 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t35 = load i32, ptr %t34 %t36 = icmp ult i32 %t31, %t35 br i1 %t36, label %ixok5, label %ixbad6 ixbad6: %t37 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t37, ptr @.fmt_bounds, ptr @.str1545, i32 %t31, i32 %t35) call void @exit(i32 1) unreachable ixok5: %t38 = getelementptr inbounds ptr, ptr %t33, i32 %t31 %t39 = load ptr, ptr %t38 store ptr %t39, ptr %t40 store ptr @.str1546, ptr %t41 store i32 1, ptr %t42 br label %wcond7 wcond7: %t43 = load i32, ptr %t42 %t44 = load ptr, ptr %t40 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp slt i32 %t43, %t48 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %wbody8, label %wend9 wbody8: %t52 = load ptr, ptr %t41 %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str1547) %t54 = load i32, ptr %t0 %t55 = load ptr, ptr %t40 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 7 %t57 = load ptr, ptr %t56 %t58 = load i32, ptr %t42 %t59 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1 %t62 = load i32, ptr %t61 %t63 = icmp ult i32 %t58, %t62 br i1 %t63, label %ixok10, label %ixbad11 ixbad11: %t64 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t64, ptr @.fmt_bounds, ptr @.str1548, i32 %t58, i32 %t62) call void @exit(i32 1) unreachable ixok10: %t65 = getelementptr inbounds ptr, ptr %t60, i32 %t58 %t66 = load ptr, ptr %t65 %t67 = load i32, ptr %t42 %t68 = sub i32 %t67, 1 %t69 = call ptr @fn_cm_arg(i32 %t54, ptr %t66, i32 %t68) %t70 = call ptr @lp_str_concat(ptr %t53, ptr %t69) store ptr %t70, ptr %t41 %t71 = load i32, ptr %t42 %t72 = add i32 %t71, 1 store i32 %t72, ptr %t42 br label %wcond7 wend9: %t73 = load ptr, ptr %t10 %t74 = load ptr, ptr @g_g_cm_cnames %t75 = load i32, ptr %t0 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t79 = load i32, ptr %t78 %t80 = icmp ult i32 %t75, %t79 br i1 %t80, label %ixok12, label %ixbad13 ixbad13: %t81 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t81, ptr @.fmt_bounds, ptr @.str1550, i32 %t75, i32 %t79) call void @exit(i32 1) unreachable ixok12: %t82 = getelementptr inbounds ptr, ptr %t77, i32 %t75 %t83 = load ptr, ptr %t82 %t84 = load i32, ptr %t22 %t85 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 0 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t88 = load i32, ptr %t87 %t89 = icmp ult i32 %t84, %t88 br i1 %t89, label %ixok14, label %ixbad15 ixbad15: %t90 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t90, ptr @.fmt_bounds, ptr @.str1551, i32 %t84, i32 %t88) call void @exit(i32 1) unreachable ixok14: %t91 = getelementptr inbounds ptr, ptr %t86, i32 %t84 %t92 = load ptr, ptr %t91 %t93 = call ptr @lp_str_concat(ptr @.str1549, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str1552) %t95 = call ptr @lp_str_concat(ptr %t73, ptr %t94) store ptr %t95, ptr %t10 %t96 = load ptr, ptr %t40 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 1 %t98 = load ptr, ptr %t97 %t99 = call ptr @lp_str_concat(ptr %t98, ptr @.str1553) %t100 = load ptr, ptr %t41 %t101 = call ptr @lp_str_concat(ptr %t99, ptr %t100) %t102 = call ptr @lp_str_concat(ptr %t101, ptr @.str1554) store ptr %t102, ptr %t103 %t104 = load ptr, ptr %t40 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 3 %t106 = load ptr, ptr %t105 %t107 = call i32 @lp_str_eq(ptr %t106, ptr @.str1555) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then16, label %else17 then16: %t109 = load ptr, ptr %t10 %t110 = load ptr, ptr %t103 %t111 = call ptr @lp_str_concat(ptr @.str1556, ptr %t110) %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str1557) %t113 = call ptr @lp_str_concat(ptr %t109, ptr %t112) store ptr %t113, ptr %t10 br label %ifend18 else17: %t114 = load i32, ptr %t0 %t115 = load ptr, ptr %t40 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 3 %t117 = load ptr, ptr %t116 %t118 = load ptr, ptr %t103 %t119 = load ptr, ptr %t3 %t120 = call ptr @fn_cm_to(i32 %t114, ptr %t117, ptr %t118, ptr %t119) store ptr %t120, ptr %t121 %t122 = load ptr, ptr %t10 %t123 = load ptr, ptr %t121 %t124 = call ptr @lp_str_concat(ptr @.str1558, ptr %t123) %t125 = call ptr @lp_str_concat(ptr %t124, ptr @.str1559) %t126 = call ptr @lp_str_concat(ptr %t122, ptr %t125) store ptr %t126, ptr %t10 br label %ifend18 ifend18: %t127 = load ptr, ptr %t10 %t128 = call ptr @lp_str_concat(ptr %t127, ptr @.str1560) store ptr %t128, ptr %t10 %t129 = load i32, ptr %t22 %t130 = add i32 %t129, 1 store i32 %t130, ptr %t22 br label %wcond2 wend4: store i32 0, ptr %t22 br label %wcond19 wcond19: %t131 = load i32, ptr %t22 %t132 = load ptr, ptr @g_g_cm_keep %t133 = load i32, ptr %t0 %t134 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 0 %t135 = load ptr, ptr %t134 %t136 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 1 %t137 = load i32, ptr %t136 %t138 = icmp ult i32 %t133, %t137 br i1 %t138, label %ixok22, label %ixbad23 ixbad23: %t139 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t139, ptr @.fmt_bounds, ptr @.str1561, i32 %t133, i32 %t137) call void @exit(i32 1) unreachable ixok22: %t140 = getelementptr inbounds ptr, ptr %t135, i32 %t133 %t141 = load ptr, ptr %t140 %t142 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t143 = load i32, ptr %t142 %t144 = icmp slt i32 %t131, %t143 %t145 = zext i1 %t144 to i32 %t146 = icmp ne i32 %t145, 0 br i1 %t146, label %wbody20, label %wend21 wbody20: %t147 = load ptr, ptr @g_g_cm_prop %t148 = load i32, ptr %t0 %t149 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 0 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 1 %t152 = load i32, ptr %t151 %t153 = icmp ult i32 %t148, %t152 br i1 %t153, label %ixok24, label %ixbad25 ixbad25: %t154 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t154, ptr @.fmt_bounds, ptr @.str1562, i32 %t148, i32 %t152) call void @exit(i32 1) unreachable ixok24: %t155 = getelementptr inbounds ptr, ptr %t150, i32 %t148 %t156 = load ptr, ptr %t155 %t157 = load i32, ptr %t22 %t158 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 0 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 1 %t161 = load i32, ptr %t160 %t162 = icmp ult i32 %t157, %t161 br i1 %t162, label %ixok26, label %ixbad27 ixbad27: %t163 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t163, ptr @.fmt_bounds, ptr @.str1563, i32 %t157, i32 %t161) call void @exit(i32 1) unreachable ixok26: %t164 = getelementptr inbounds i32, ptr %t159, i32 %t157 %t165 = load i32, ptr %t164 %t166 = icmp eq i32 %t165, 0 %t167 = zext i1 %t166 to i32 %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then28, label %ifend30 then28: %t169 = load ptr, ptr @g_g_cm_keep %t170 = load i32, ptr %t0 %t171 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 1 %t174 = load i32, ptr %t173 %t175 = icmp ult i32 %t170, %t174 br i1 %t175, label %ixok31, label %ixbad32 ixbad32: %t176 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t176, ptr @.fmt_bounds, ptr @.str1564, i32 %t170, i32 %t174) call void @exit(i32 1) unreachable ixok31: %t177 = getelementptr inbounds ptr, ptr %t172, i32 %t170 %t178 = load ptr, ptr %t177 %t179 = load i32, ptr %t22 %t180 = getelementptr inbounds %LSlice, ptr %t178, i32 0, i32 0 %t181 = load ptr, ptr %t180 %t182 = getelementptr inbounds %LSlice, ptr %t178, i32 0, i32 1 %t183 = load i32, ptr %t182 %t184 = icmp ult i32 %t179, %t183 br i1 %t184, label %ixok33, label %ixbad34 ixbad34: %t185 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t185, ptr @.fmt_bounds, ptr @.str1565, i32 %t179, i32 %t183) call void @exit(i32 1) unreachable ixok33: %t186 = getelementptr inbounds ptr, ptr %t181, i32 %t179 %t187 = load ptr, ptr %t186 store ptr %t187, ptr %t188 %t189 = load i32, ptr %t0 %t190 = load ptr, ptr @g_g_cm_keep_ty %t191 = load i32, ptr %t0 %t192 = getelementptr inbounds %LSlice, ptr %t190, i32 0, i32 0 %t193 = load ptr, ptr %t192 %t194 = getelementptr inbounds %LSlice, ptr %t190, i32 0, i32 1 %t195 = load i32, ptr %t194 %t196 = icmp ult i32 %t191, %t195 br i1 %t196, label %ixok35, label %ixbad36 ixbad36: %t197 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t197, ptr @.fmt_bounds, ptr @.str1566, i32 %t191, i32 %t195) call void @exit(i32 1) unreachable ixok35: %t198 = getelementptr inbounds ptr, ptr %t193, i32 %t191 %t199 = load ptr, ptr %t198 %t200 = load i32, ptr %t22 %t201 = getelementptr inbounds %LSlice, ptr %t199, i32 0, i32 0 %t202 = load ptr, ptr %t201 %t203 = getelementptr inbounds %LSlice, ptr %t199, i32 0, i32 1 %t204 = load i32, ptr %t203 %t205 = icmp ult i32 %t200, %t204 br i1 %t205, label %ixok37, label %ixbad38 ixbad38: %t206 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t206, ptr @.fmt_bounds, ptr @.str1567, i32 %t200, i32 %t204) call void @exit(i32 1) unreachable ixok37: %t207 = getelementptr inbounds ptr, ptr %t202, i32 %t200 %t208 = load ptr, ptr %t207 %t209 = call ptr @fn_cm_from(i32 %t189, ptr %t208, ptr @.str1568) store ptr %t209, ptr %t210 %t211 = load ptr, ptr %t10 %t212 = load ptr, ptr %t188 %t213 = call ptr @lp_str_concat(ptr @.str1569, ptr %t212) %t214 = call ptr @lp_str_concat(ptr %t213, ptr @.str1570) %t215 = load ptr, ptr %t188 %t216 = call ptr @lp_str_concat(ptr %t214, ptr %t215) %t217 = call ptr @lp_str_concat(ptr %t216, ptr @.str1571) %t218 = load ptr, ptr %t210 %t219 = call ptr @lp_str_concat(ptr %t217, ptr %t218) %t220 = call ptr @lp_str_concat(ptr %t219, ptr @.str1572) %t221 = call ptr @lp_str_concat(ptr %t211, ptr %t220) store ptr %t221, ptr %t10 br label %ifend30 ifend30: %t222 = load i32, ptr %t22 %t223 = add i32 %t222, 1 store i32 %t223, ptr %t22 br label %wcond19 wend21: %t224 = load ptr, ptr %t10 %t225 = call ptr @lp_str_concat(ptr %t224, ptr @.str1573) store ptr %t225, ptr %retval br label %ret ret: %t226 = load ptr, ptr %retval ret ptr %t226 } define ptr @fn_cm_arg(i32 %arg_c, ptr %arg_p, i32 %arg_i) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca i32 %t7 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 %t10 = alloca i32 %t11 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_p, ptr %t1 store i32 %arg_i, ptr %t2 %t3 = load i32, ptr %t2 %t4 = call ptr @lp_int_str(i32 %t3) %t5 = call ptr @lp_str_concat(ptr @.str1574, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str1575) store ptr %t6, ptr %t7 %t12 = load ptr, ptr %t1 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 3 %t14 = load ptr, ptr %t13 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str1576) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t11 br i1 %t16, label %scend1, label %sc0 sc0: %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 3 %t20 = load ptr, ptr %t19 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str1577) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t11 br label %scend1 scend1: %t24 = load i32, ptr %t11 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t10 br i1 %t25, label %scend3, label %sc2 sc2: %t27 = load ptr, ptr %t1 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 3 %t29 = load ptr, ptr %t28 %t30 = call i32 @lp_str_eq(ptr %t29, ptr @.str1578) %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t10 br label %scend3 scend3: %t33 = load i32, ptr %t10 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t9 br i1 %t34, label %scend5, label %sc4 sc4: %t36 = load ptr, ptr %t1 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 3 %t38 = load ptr, ptr %t37 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str1579) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t9 br label %scend5 scend5: %t42 = load i32, ptr %t9 %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t8 br i1 %t43, label %scend7, label %sc6 sc6: %t45 = load ptr, ptr %t1 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 3 %t47 = load ptr, ptr %t46 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str1580) %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t8 br label %scend7 scend7: %t51 = load i32, ptr %t8 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then8, label %ifend10 then8: %t53 = load i32, ptr %t0 %t54 = load ptr, ptr %t1 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 3 %t56 = load ptr, ptr %t55 %t57 = load ptr, ptr %t7 %t58 = call ptr @fn_cm_from(i32 %t53, ptr %t56, ptr %t57) store ptr %t58, ptr %retval br label %ret ifend10: %t59 = load i32, ptr %t0 %t60 = load ptr, ptr %t1 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 1 %t62 = load ptr, ptr %t61 %t63 = call ptr @lp_str_concat(ptr %t62, ptr @.str1581) %t64 = load ptr, ptr %t1 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 3 %t66 = load ptr, ptr %t65 %t67 = call ptr @lp_str_concat(ptr %t63, ptr %t66) %t68 = call ptr @lp_str_concat(ptr %t67, ptr @.str1582) call void @fn_cm_err(i32 %t59, ptr %t68) store ptr @.str1583, ptr %retval br label %ret ret: %t69 = load ptr, ptr %retval ret ptr %t69 } define void @fn_cm_class(i32 %arg_c, ptr %arg_px, ptr %arg_head) { entry: %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t13 = alloca ptr %t25 = alloca ptr %t30 = alloca ptr %t35 = alloca ptr %t38 = alloca ptr %t49 = alloca ptr %t51 = alloca ptr %t66 = alloca ptr %t130 = alloca ptr %t132 = alloca ptr %t139 = alloca ptr %t141 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_px, ptr %t1 store ptr %arg_head, ptr %t2 %t3 = load ptr, ptr @g_g_cm_name %t4 = load i32, ptr %t0 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 %t4, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str1584, i32 %t4, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 %t4 %t12 = load ptr, ptr %t11 store ptr %t12, ptr %t13 %t14 = load ptr, ptr @g_g_cm_file %t15 = load i32, ptr %t0 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok2, label %ixbad3 ixbad3: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1585, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok2: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_dir_of(ptr %t23) store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t13 %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str1586) %t29 = call ptr @fn_join_path(ptr %t26, ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t25 %t32 = load ptr, ptr %t13 %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str1587) %t34 = call ptr @fn_join_path(ptr %t31, ptr %t33) store ptr %t34, ptr %t35 %t36 = load ptr, ptr %t30 %t37 = call ptr @fn_read_file(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = icmp eq ptr %t39, null %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then4, label %ifend6 then4: %t43 = load i32, ptr %t0 %t44 = load ptr, ptr %t13 %t45 = call ptr @lp_str_concat(ptr @.str1588, ptr %t44) %t46 = call ptr @lp_str_concat(ptr %t45, ptr @.str1589) call void @fn_cm_err(i32 %t43, ptr %t46) br label %ifend6 ifend6: %t47 = load ptr, ptr %t35 %t48 = call ptr @fn_read_file(ptr %t47) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t35 store ptr %t50, ptr %t51 %t52 = load ptr, ptr %t49 %t53 = icmp eq ptr %t52, null %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then7, label %else8 then7: store ptr @.str1590, ptr %t49 store ptr @.str1591, ptr %t51 br label %ifend9 else8: %t56 = load i32, ptr %t0 %t57 = load ptr, ptr %t49 %t58 = load ptr, ptr %t25 %t59 = call ptr @fn_cm_lss_inline(i32 %t56, ptr %t57, ptr %t58, i32 0) store ptr %t59, ptr %t49 br label %ifend9 ifend9: %t60 = load ptr, ptr %t1 %t61 = call ptr @lp_str_concat(ptr @.str1592, ptr %t60) %t62 = call ptr @lp_str_concat(ptr %t61, ptr @.str1593) %t63 = load ptr, ptr %t13 %t64 = call ptr @lp_str_concat(ptr %t62, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str1594) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t66 %t68 = load ptr, ptr %t30 %t69 = call ptr @lp_str_concat(ptr @.str1595, ptr %t68) %t70 = call ptr @lp_str_concat(ptr %t69, ptr @.str1596) %t71 = load ptr, ptr %t1 %t72 = call ptr @lp_str_concat(ptr %t70, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str1597) %t74 = load ptr, ptr %t51 %t75 = call ptr @lp_str_concat(ptr %t73, ptr %t74) %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str1598) %t77 = load ptr, ptr %t1 %t78 = call ptr @lp_str_concat(ptr %t76, ptr %t77) %t79 = call ptr @lp_str_concat(ptr %t78, ptr @.str1599) %t80 = call ptr @lp_str_concat(ptr %t67, ptr %t79) store ptr %t80, ptr %t66 %t81 = load ptr, ptr %t66 %t82 = load ptr, ptr %t1 %t83 = call ptr @lp_str_concat(ptr @.str1600, ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str1601) %t85 = load ptr, ptr %t1 %t86 = call ptr @lp_str_concat(ptr %t84, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str1602) %t88 = load ptr, ptr %t1 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @lp_str_concat(ptr %t89, ptr @.str1603) %t91 = load ptr, ptr %t1 %t92 = call ptr @lp_str_concat(ptr %t90, ptr %t91) %t93 = call ptr @lp_str_concat(ptr %t92, ptr @.str1604) %t94 = call ptr @lp_str_concat(ptr %t81, ptr %t93) store ptr %t94, ptr %t66 %t95 = load ptr, ptr %t66 %t96 = load ptr, ptr @g_g_cm_file %t97 = load i32, ptr %t0 %t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 %t97, %t101 br i1 %t102, label %ixok10, label %ixbad11 ixbad11: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str1605, i32 %t97, i32 %t101) call void @exit(i32 1) unreachable ixok10: %t104 = getelementptr inbounds ptr, ptr %t99, i32 %t97 %t105 = load ptr, ptr %t104 %t106 = load ptr, ptr @g_g_cm_line %t107 = load i32, ptr %t0 %t108 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 0 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 1 %t111 = load i32, ptr %t110 %t112 = icmp ult i32 %t107, %t111 br i1 %t112, label %ixok12, label %ixbad13 ixbad13: %t113 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t113, ptr @.fmt_bounds, ptr @.str1606, i32 %t107, i32 %t111) call void @exit(i32 1) unreachable ixok12: %t114 = getelementptr inbounds i32, ptr %t109, i32 %t107 %t115 = load i32, ptr %t114 %t116 = load ptr, ptr %t2 %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 10 %t118 = load i32, ptr %t117 call void @fn_vw_parse(ptr %t95, ptr %t105, i32 %t115, i32 %t118) %t119 = load i32, ptr %t0 %t120 = load ptr, ptr %t1 %t121 = call ptr @lp_str_concat(ptr %t120, ptr @.str1607) %t122 = load ptr, ptr %t38 %t123 = load ptr, ptr %t2 call void @fn_cm_text_fn(i32 %t119, ptr %t121, ptr %t122, ptr %t123) %t124 = load i32, ptr %t0 %t125 = load ptr, ptr %t1 %t126 = call ptr @lp_str_concat(ptr %t125, ptr @.str1608) %t127 = load ptr, ptr %t49 %t128 = load ptr, ptr %t2 call void @fn_cm_text_fn(i32 %t124, ptr %t126, ptr %t127, ptr %t128) %t129 = call ptr @fn_node(i32 34) store ptr %t129, ptr %t130 %t131 = call ptr @fn_node(i32 33) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %Cmp_Node, ptr %t133, i32 0, i32 1 store ptr @.str1609, ptr %t134 %t135 = load ptr, ptr %t130 %t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 4 %t137 = load ptr, ptr %t132 store ptr %t137, ptr %t136 %t138 = call ptr @fn_node(i32 34) store ptr %t138, ptr %t139 %t140 = call ptr @fn_node(i32 33) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t141 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 1 %t144 = load ptr, ptr %t1 %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str1610) store ptr %t145, ptr %t143 %t146 = load ptr, ptr %t139 %t147 = getelementptr inbounds %Cmp_Node, ptr %t146, i32 0, i32 4 %t148 = load ptr, ptr %t141 store ptr %t148, ptr %t147 %t149 = load ptr, ptr %t139 %t150 = getelementptr inbounds %Cmp_Node, ptr %t149, i32 0, i32 7 %t151 = getelementptr %LSlice, ptr null, i32 1 %t152 = ptrtoint ptr %t151 to i64 %t153 = call ptr @malloc(i64 %t152) %t154 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 0 store ptr null, ptr %t154 %t155 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 1 store i32 0, ptr %t155 %t156 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 2 store i32 0, ptr %t156 store ptr %t153, ptr %t150 %t157 = load ptr, ptr %t130 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 7 %t159 = getelementptr %LSlice, ptr null, i32 1 %t160 = ptrtoint ptr %t159 to i64 %t161 = call ptr @malloc(i64 %t160) %t162 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 0 store ptr null, ptr %t162 %t163 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 1 store i32 0, ptr %t163 %t164 = getelementptr inbounds %LSlice, ptr %t161, i32 0, i32 2 store i32 0, ptr %t164 store ptr %t161, ptr %t158 %t165 = load ptr, ptr %t130 %t166 = getelementptr inbounds %Cmp_Node, ptr %t165, i32 0, i32 7 %t167 = load ptr, ptr %t166 %t168 = load ptr, ptr %t139 %t169 = getelementptr inbounds %LSlice, ptr %t167, i32 0, i32 1 %t170 = getelementptr inbounds %LSlice, ptr %t167, i32 0, i32 2 %t171 = getelementptr inbounds %LSlice, ptr %t167, i32 0, i32 0 %t172 = load i32, ptr %t169 %t173 = load i32, ptr %t170 %t174 = icmp sge i32 %t172, %t173 br i1 %t174, label %grow14, label %put15 grow14: %t175 = mul i32 %t173, 2 %t176 = icmp eq i32 %t173, 0 %t177 = select i1 %t176, i32 8, i32 %t175 %t178 = getelementptr ptr, ptr null, i32 1 %t179 = ptrtoint ptr %t178 to i64 %t180 = zext i32 %t177 to i64 %t181 = mul i64 %t180, %t179 %t182 = load ptr, ptr %t171 %t183 = call ptr @realloc(ptr %t182, i64 %t181) store ptr %t183, ptr %t171 store i32 %t177, ptr %t170 br label %put15 put15: %t184 = load ptr, ptr %t171 %t185 = getelementptr inbounds ptr, ptr %t184, i32 %t172 store ptr %t168, ptr %t185 %t186 = add i32 %t172, 1 store i32 %t186, ptr %t169 %t187 = load ptr, ptr %t2 %t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 4 %t189 = load ptr, ptr %t130 store ptr %t189, ptr %t188 br label %ret ret: ret void } define void @fn_cm_text_fn(i32 %arg_c, ptr %arg_name, ptr %arg_text, ptr %arg_head) { entry: %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t7 = alloca i32 store i32 %arg_c, ptr %t0 store ptr %arg_name, ptr %t1 store ptr %arg_text, ptr %t2 store ptr %arg_head, ptr %t3 %t4 = load ptr, ptr @g_prog %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 store i32 %t6, ptr %t7 %t8 = load ptr, ptr %t1 %t9 = call ptr @lp_str_concat(ptr @.str1611, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str1612) %t11 = load ptr, ptr @g_g_cm_file %t12 = load i32, ptr %t0 %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 %t12, %t16 br i1 %t17, label %ixok0, label %ixbad1 ixbad1: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str1613, i32 %t12, i32 %t16) call void @exit(i32 1) unreachable ixok0: %t19 = getelementptr inbounds ptr, ptr %t14, i32 %t12 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr @g_g_cm_line %t22 = load i32, ptr %t0 %t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t26 = load i32, ptr %t25 %t27 = icmp ult i32 %t22, %t26 br i1 %t27, label %ixok2, label %ixbad3 ixbad3: %t28 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t28, ptr @.fmt_bounds, ptr @.str1614, i32 %t22, i32 %t26) call void @exit(i32 1) unreachable ixok2: %t29 = getelementptr inbounds i32, ptr %t24, i32 %t22 %t30 = load i32, ptr %t29 %t31 = load ptr, ptr %t3 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 10 %t33 = load i32, ptr %t32 call void @fn_vw_parse(ptr %t10, ptr %t20, i32 %t30, i32 %t33) %t34 = load ptr, ptr @g_prog %t35 = load i32, ptr %t7 %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 %t35, %t39 br i1 %t40, label %ixok4, label %ixbad5 ixbad5: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str1615, i32 %t35, i32 %t39) call void @exit(i32 1) unreachable ixok4: %t42 = getelementptr inbounds ptr, ptr %t37, i32 %t35 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 4 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 7 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 0, %t51 br i1 %t52, label %ixok6, label %ixbad7 ixbad7: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str1616, i32 0, i32 %t51) call void @exit(i32 1) unreachable ixok6: %t54 = getelementptr inbounds ptr, ptr %t49, i32 0 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 4 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 1 %t59 = load ptr, ptr %t2 store ptr %t59, ptr %t58 br label %ret ret: ret void } define ptr @fn_cm_lss_inline(i32 %arg_c, ptr %arg_text, ptr %arg_dir, i32 %arg_depth) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t9 = alloca ptr %t10 = alloca i32 %t14 = alloca i32 %t21 = alloca i32 %t22 = alloca i32 %t42 = alloca ptr %t49 = alloca ptr %t61 = alloca ptr %t76 = alloca ptr store i32 %arg_c, ptr %t0 store ptr %arg_text, ptr %t1 store ptr %arg_dir, ptr %t2 store i32 %arg_depth, ptr %t3 %t4 = load i32, ptr %t3 %t5 = icmp sgt i32 %t4, 8 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load i32, ptr %t0 call void @fn_cm_err(i32 %t8, ptr @.str1617) br label %ifend2 ifend2: store ptr @.str1618, ptr %t9 store i32 0, ptr %t10 %t11 = load ptr, ptr %t1 %t12 = call i64 @strlen(ptr %t11) %t13 = trunc i64 %t12 to i32 store i32 %t13, ptr %t14 br label %wcond3 wcond3: %t15 = load i32, ptr %t10 %t16 = load i32, ptr %t14 %t17 = icmp slt i32 %t15, %t16 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody4, label %wend5 wbody4: %t20 = load i32, ptr %t10 store i32 %t20, ptr %t21 br label %wcond6 wcond6: %t23 = load i32, ptr %t21 %t24 = load i32, ptr %t14 %t25 = icmp slt i32 %t23, %t24 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t22 br i1 %t27, label %sc9, label %scend10 sc9: %t29 = load ptr, ptr %t1 %t30 = load i32, ptr %t21 %t31 = getelementptr inbounds i8, ptr %t29, i32 %t30 %t32 = load i8, ptr %t31 %t33 = zext i8 %t32 to i32 %t34 = icmp ne i32 %t33, 10 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t22 br label %scend10 scend10: %t38 = load i32, ptr %t22 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %wbody7, label %wend8 wbody7: %t40 = load i32, ptr %t21 %t41 = add i32 %t40, 1 store i32 %t41, ptr %t21 br label %wcond6 wend8: %t43 = load ptr, ptr %t1 %t44 = load i32, ptr %t10 %t45 = load i32, ptr %t21 %t46 = call ptr @lp_str_slice(ptr %t43, i32 %t44, i32 %t45) store ptr %t46, ptr %t42 %t47 = load ptr, ptr %t42 %t48 = call ptr @fn_cm_import_of(ptr %t47) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 %t51 = icmp eq ptr %t50, null %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then11, label %else12 then11: %t54 = load ptr, ptr %t9 %t55 = load ptr, ptr %t42 %t56 = call ptr @lp_str_concat(ptr %t54, ptr %t55) %t57 = call ptr @lp_str_concat(ptr %t56, ptr @.str1619) store ptr %t57, ptr %t9 br label %ifend13 else12: %t58 = load ptr, ptr %t2 %t59 = load ptr, ptr %t49 %t60 = call ptr @fn_join_path(ptr %t58, ptr %t59) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t49 %t63 = getelementptr inbounds i8, ptr %t62, i32 0 %t64 = load i8, ptr %t63 %t65 = zext i8 %t64 to i32 %t66 = icmp eq i32 %t65, 47 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then14, label %ifend16 then14: %t69 = load ptr, ptr %t49 %t70 = load ptr, ptr %t49 %t71 = call i64 @strlen(ptr %t70) %t72 = trunc i64 %t71 to i32 %t73 = call ptr @lp_str_slice(ptr %t69, i32 1, i32 %t72) store ptr %t73, ptr %t61 br label %ifend16 ifend16: %t74 = load ptr, ptr %t61 %t75 = call ptr @fn_read_file(ptr %t74) store ptr %t75, ptr %t76 %t77 = load ptr, ptr %t76 %t78 = icmp eq ptr %t77, null %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then17, label %ifend19 then17: %t81 = load i32, ptr %t0 %t82 = load ptr, ptr %t49 %t83 = call ptr @lp_str_concat(ptr @.str1620, ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str1621) call void @fn_cm_err(i32 %t81, ptr %t84) br label %ifend19 ifend19: %t85 = load ptr, ptr %t9 %t86 = load i32, ptr %t0 %t87 = load ptr, ptr %t76 %t88 = load ptr, ptr %t61 %t89 = call ptr @fn_dir_of(ptr %t88) %t90 = load i32, ptr %t3 %t91 = add i32 %t90, 1 %t92 = call ptr @fn_cm_lss_inline(i32 %t86, ptr %t87, ptr %t89, i32 %t91) %t93 = call ptr @lp_str_concat(ptr %t85, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str1622) store ptr %t94, ptr %t9 br label %ifend13 ifend13: %t95 = load i32, ptr %t21 %t96 = add i32 %t95, 1 store i32 %t96, ptr %t10 br label %wcond3 wend5: %t97 = load ptr, ptr %t9 store ptr %t97, ptr %retval br label %ret ret: %t98 = load ptr, ptr %retval ret ptr %t98 } define ptr @fn_cm_import_of(ptr %arg_line) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t11 = alloca i32 %t56 = alloca i32 %t57 = alloca i32 %t58 = alloca i32 %t104 = alloca i32 %t107 = alloca i32 %t108 = alloca i32 store ptr %arg_line, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t3 = load i32, ptr %t1 %t4 = load ptr, ptr %t0 %t5 = call i64 @strlen(ptr %t4) %t6 = trunc i64 %t5 to i32 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br i1 %t9, label %sc3, label %scend4 sc3: %t12 = load ptr, ptr %t0 %t13 = load i32, ptr %t1 %t14 = getelementptr inbounds i8, ptr %t12, i32 %t13 %t15 = load i8, ptr %t14 %t16 = zext i8 %t15 to i32 %t17 = icmp eq i32 %t16, 32 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t11 br i1 %t19, label %scend6, label %sc5 sc5: %t21 = load ptr, ptr %t0 %t22 = load i32, ptr %t1 %t23 = getelementptr inbounds i8, ptr %t21, i32 %t22 %t24 = load i8, ptr %t23 %t25 = zext i8 %t24 to i32 %t26 = icmp eq i32 %t25, 9 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t11 br label %scend6 scend6: %t30 = load i32, ptr %t11 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t2 br label %scend4 scend4: %t33 = load i32, ptr %t2 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %wbody1, label %wend2 wbody1: %t35 = load i32, ptr %t1 %t36 = add i32 %t35, 1 store i32 %t36, ptr %t1 br label %wcond0 wend2: %t37 = load i32, ptr %t1 %t38 = add i32 %t37, 7 %t39 = load ptr, ptr %t0 %t40 = call i64 @strlen(ptr %t39) %t41 = trunc i64 %t40 to i32 %t42 = icmp sgt i32 %t38, %t41 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then7, label %ifend9 then7: store ptr null, ptr %retval br label %ret ifend9: %t45 = load ptr, ptr %t0 %t46 = load i32, ptr %t1 %t47 = load i32, ptr %t1 %t48 = add i32 %t47, 7 %t49 = call ptr @lp_str_slice(ptr %t45, i32 %t46, i32 %t48) %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str1623) %t51 = icmp eq i32 %t50, 0 %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then10, label %ifend12 then10: store ptr null, ptr %retval br label %ret ifend12: %t54 = load i32, ptr %t1 %t55 = add i32 %t54, 7 store i32 %t55, ptr %t56 br label %wcond13 wcond13: %t59 = load i32, ptr %t56 %t60 = load ptr, ptr %t0 %t61 = call i64 @strlen(ptr %t60) %t62 = trunc i64 %t61 to i32 %t63 = icmp slt i32 %t59, %t62 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t58 br i1 %t65, label %sc16, label %scend17 sc16: %t67 = load ptr, ptr %t0 %t68 = load i32, ptr %t56 %t69 = getelementptr inbounds i8, ptr %t67, i32 %t68 %t70 = load i8, ptr %t69 %t71 = zext i8 %t70 to i32 %t72 = icmp ne i32 %t71, 34 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t58 br label %scend17 scend17: %t76 = load i32, ptr %t58 %t77 = icmp ne i32 %t76, 0 %t78 = zext i1 %t77 to i32 store i32 %t78, ptr %t57 br i1 %t77, label %sc18, label %scend19 sc18: %t79 = load ptr, ptr %t0 %t80 = load i32, ptr %t56 %t81 = getelementptr inbounds i8, ptr %t79, i32 %t80 %t82 = load i8, ptr %t81 %t83 = zext i8 %t82 to i32 %t84 = icmp ne i32 %t83, 39 %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t57 br label %scend19 scend19: %t88 = load i32, ptr %t57 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %wbody14, label %wend15 wbody14: %t90 = load i32, ptr %t56 %t91 = add i32 %t90, 1 store i32 %t91, ptr %t56 br label %wcond13 wend15: %t92 = load i32, ptr %t56 %t93 = load ptr, ptr %t0 %t94 = call i64 @strlen(ptr %t93) %t95 = trunc i64 %t94 to i32 %t96 = icmp sge i32 %t92, %t95 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then20, label %ifend22 then20: store ptr null, ptr %retval br label %ret ifend22: %t99 = load ptr, ptr %t0 %t100 = load i32, ptr %t56 %t101 = getelementptr inbounds i8, ptr %t99, i32 %t100 %t102 = load i8, ptr %t101 %t103 = zext i8 %t102 to i32 store i32 %t103, ptr %t104 %t105 = load i32, ptr %t56 %t106 = add i32 %t105, 1 store i32 %t106, ptr %t107 br label %wcond23 wcond23: %t109 = load i32, ptr %t107 %t110 = load ptr, ptr %t0 %t111 = call i64 @strlen(ptr %t110) %t112 = trunc i64 %t111 to i32 %t113 = icmp slt i32 %t109, %t112 %t114 = zext i1 %t113 to i32 %t115 = icmp ne i32 %t114, 0 %t116 = zext i1 %t115 to i32 store i32 %t116, ptr %t108 br i1 %t115, label %sc26, label %scend27 sc26: %t117 = load ptr, ptr %t0 %t118 = load i32, ptr %t107 %t119 = getelementptr inbounds i8, ptr %t117, i32 %t118 %t120 = load i8, ptr %t119 %t121 = zext i8 %t120 to i32 %t122 = load i32, ptr %t104 %t123 = icmp ne i32 %t121, %t122 %t124 = zext i1 %t123 to i32 %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t108 br label %scend27 scend27: %t127 = load i32, ptr %t108 %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %wbody24, label %wend25 wbody24: %t129 = load i32, ptr %t107 %t130 = add i32 %t129, 1 store i32 %t130, ptr %t107 br label %wcond23 wend25: %t131 = load ptr, ptr %t0 %t132 = load i32, ptr %t56 %t133 = add i32 %t132, 1 %t134 = load i32, ptr %t107 %t135 = call ptr @lp_str_slice(ptr %t131, i32 %t133, i32 %t134) store ptr %t135, ptr %retval br label %ret ret: %t136 = load ptr, ptr %retval ret ptr %t136 } define void @fn_cm_unique(ptr %arg_name) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_cm_name %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_cm_name %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1624, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = call ptr @fn_cm_prefix(ptr %t18) %t20 = load ptr, ptr %t0 %t21 = call ptr @fn_cm_prefix(ptr %t20) %t22 = call i32 @lp_str_eq(ptr %t19, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr %t0 %t25 = call ptr @lp_str_concat(ptr @.str1625, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str1626) %t27 = load ptr, ptr @g_g_cm_file %t28 = load i32, ptr %t1 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok8, label %ixbad9 ixbad9: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str1627, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok8: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = call ptr @lp_str_concat(ptr %t26, ptr %t36) %t38 = call ptr @lp_str_concat(ptr %t37, ptr @.str1628) %t39 = load ptr, ptr @g_g_cm_line %t40 = load i32, ptr %t1 %t41 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 %t40, %t44 br i1 %t45, label %ixok10, label %ixbad11 ixbad11: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str1629, i32 %t40, i32 %t44) call void @exit(i32 1) unreachable ixok10: %t47 = getelementptr inbounds i32, ptr %t42, i32 %t40 %t48 = load i32, ptr %t47 %t49 = call ptr @lp_int_str(i32 %t48) %t50 = call ptr @lp_str_concat(ptr %t38, ptr %t49) %t51 = call ptr @lp_str_concat(ptr %t50, ptr @.str1630) call void @fn_perr(ptr %t51) br label %ifend7 ifend7: %t52 = load i32, ptr %t1 %t53 = add i32 %t52, 1 store i32 %t53, ptr %t1 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_val(ptr %arg_code, ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca ptr store ptr %arg_code, ptr %t0 store ptr %arg_ty, ptr %t1 %t2 = getelementptr %Cmp_Val, ptr null, i32 1 %t3 = ptrtoint ptr %t2 to i64 %t4 = call ptr @malloc(i64 %t3) %t5 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 0 store ptr null, ptr %t5 %t6 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 1 store ptr null, ptr %t6 %t7 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 2 store ptr null, ptr %t7 store ptr %t4, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Val, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t0 store ptr %t11, ptr %t10 %t12 = load ptr, ptr %t8 %t13 = getelementptr inbounds %Cmp_Val, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t1 store ptr %t14, ptr %t13 %t15 = load ptr, ptr %t8 %t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 2 store ptr null, ptr %t16 %t17 = load ptr, ptr %t8 store ptr %t17, ptr %retval br label %ret ret: %t18 = load ptr, ptr %retval ret ptr %t18 } define i32 @fn_cov_slot(i32 %arg_line) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 store i32 %arg_line, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_cov_lines %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_cov_lines %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1631, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds i32, ptr %t12, i32 %t10 %t18 = load i32, ptr %t17 %t19 = load i32, ptr %t0 %t20 = icmp eq i32 %t18, %t19 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load i32, ptr %t1 store i32 %t23, ptr %retval br label %ret ifend7: %t24 = load i32, ptr %t1 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t1 br label %wcond0 wend2: %t26 = load ptr, ptr @g_g_cov_lines %t27 = load i32, ptr %t0 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t31 = load i32, ptr %t28 %t32 = load i32, ptr %t29 %t33 = icmp sge i32 %t31, %t32 br i1 %t33, label %grow8, label %put9 grow8: %t34 = mul i32 %t32, 2 %t35 = icmp eq i32 %t32, 0 %t36 = select i1 %t35, i32 8, i32 %t34 %t37 = getelementptr i32, ptr null, i32 1 %t38 = ptrtoint ptr %t37 to i64 %t39 = zext i32 %t36 to i64 %t40 = mul i64 %t39, %t38 %t41 = load ptr, ptr %t30 %t42 = call ptr @realloc(ptr %t41, i64 %t40) store ptr %t42, ptr %t30 store i32 %t36, ptr %t29 br label %put9 put9: %t43 = load ptr, ptr %t30 %t44 = getelementptr inbounds i32, ptr %t43, i32 %t31 store i32 %t27, ptr %t44 %t45 = add i32 %t31, 1 store i32 %t45, ptr %t28 %t46 = load ptr, ptr @g_g_cov_lines %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = sub i32 %t48, 1 store i32 %t49, ptr %retval br label %ret ret: %t50 = load i32, ptr %retval ret i32 %t50 } define void @fn_emit_cov_hit(i32 %arg_line) { entry: %t0 = alloca i32 %t15 = alloca i32 %t17 = alloca ptr %t24 = alloca ptr %t29 = alloca ptr store i32 %arg_line, ptr %t0 %t1 = load i32, ptr @g_g_coverage %t2 = icmp eq i32 %t1, 0 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: %t5 = load i32, ptr @g_g_cov_active %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then3, label %ifend5 then3: br label %ret ifend5: %t9 = load i32, ptr %t0 %t10 = icmp sle i32 %t9, 0 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then6, label %ifend8 then6: br label %ret ifend8: %t13 = load i32, ptr %t0 %t14 = call i32 @fn_cov_slot(i32 %t13) store i32 %t14, ptr %t15 %t16 = call ptr @fn_nreg() store ptr %t16, ptr %t17 call void @fn_emit(ptr @.str1632) %t18 = load ptr, ptr %t17 call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str1633) %t19 = load i32, ptr %t15 %t20 = call ptr @fn_itoa(i32 %t19) call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str1634) %t21 = load ptr, ptr %t17 %t22 = call ptr @lp_str_concat(ptr @.str1635, ptr %t21) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str1636, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str1637) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 call void @fn_emit(ptr @.str1638) %t30 = load ptr, ptr %t29 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str1639) %t31 = load ptr, ptr %t17 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str1640) br label %ret ret: ret void } define ptr @fn_find_scene(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_scenes %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_scenes %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1641, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_scenes %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1642, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 store ptr %t33, ptr %retval br label %ret ifend7: %t34 = load i32, ptr %t1 %t35 = add i32 %t34, 1 store i32 %t35, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t36 = load ptr, ptr %retval ret ptr %t36 } define void @fn_emit(ptr %arg_s) { entry: %t0 = alloca ptr store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr @g_code %t2 = load ptr, ptr %t0 call void @fn_buf_puts(ptr %t1, ptr %t2) br label %ret ret: ret void } define void @fn_emith(ptr %arg_s) { entry: %t0 = alloca ptr store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr @g_head %t2 = load ptr, ptr %t0 call void @fn_buf_puts(ptr %t1, ptr %t2) br label %ret ret: ret void } define ptr @fn_emit_alloca(ptr %arg_llt) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr store ptr %arg_llt, ptr %t0 %t1 = load i32, ptr @g_ll_t %t2 = call ptr @fn_itoa(i32 %t1) %t3 = call ptr @lp_str_concat(ptr @.str1643, ptr %t2) store ptr %t3, ptr %t4 %t5 = load i32, ptr @g_ll_t %t6 = add i32 %t5, 1 store i32 %t6, ptr @g_ll_t %t7 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t7, ptr @.str1644) %t8 = load ptr, ptr @g_falloc %t9 = load ptr, ptr %t4 call void @fn_buf_puts(ptr %t8, ptr %t9) %t10 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t10, ptr @.str1645) %t11 = load ptr, ptr @g_falloc %t12 = load ptr, ptr %t0 call void @fn_buf_puts(ptr %t11, ptr %t12) %t13 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t13, ptr @.str1646) %t14 = load ptr, ptr %t4 store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } define ptr @fn_nreg() { entry: %retval = alloca ptr %t3 = alloca ptr %t0 = load i32, ptr @g_ll_t %t1 = call ptr @fn_itoa(i32 %t0) %t2 = call ptr @lp_str_concat(ptr @.str1647, ptr %t1) store ptr %t2, ptr %t3 %t4 = load i32, ptr @g_ll_t %t5 = add i32 %t4, 1 store i32 %t5, ptr @g_ll_t %t6 = load ptr, ptr %t3 store ptr %t6, ptr %retval br label %ret ret: %t7 = load ptr, ptr %retval ret ptr %t7 } define ptr @fn_lbl(ptr %arg_pfx) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_pfx, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = load i32, ptr @g_ll_lbl %t3 = call ptr @fn_itoa(i32 %t2) %t4 = call ptr @lp_str_concat(ptr %t1, ptr %t3) store ptr %t4, ptr %t5 %t6 = load i32, ptr @g_ll_lbl %t7 = add i32 %t6, 1 store i32 %t7, ptr @g_ll_lbl %t8 = load ptr, ptr %t5 store ptr %t8, ptr %retval br label %ret ret: %t9 = load ptr, ptr %retval ret ptr %t9 } define ptr @fn_llty(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t55 = alloca i32 %t56 = alloca i32 %t57 = alloca i32 %t58 = alloca i32 store ptr %arg_t, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str1648) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str1649) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str1650) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str1651) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store ptr @.str1652, ptr %retval br label %ret ifend8: %t28 = load ptr, ptr %t0 %t29 = call i32 @fn_is_bare_enum(ptr %t28) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store ptr @.str1653, ptr %retval br label %ret ifend11: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str1654) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then12, label %ifend14 then12: store ptr @.str1655, ptr %retval br label %ret ifend14: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str1656) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then15, label %ifend17 then15: store ptr @.str1657, ptr %retval br label %ret ifend17: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str1658) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then18, label %ifend20 then18: store ptr @.str1659, ptr %retval br label %ret ifend20: %t40 = load ptr, ptr %t0 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str1660) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then21, label %ifend23 then21: store ptr @.str1661, ptr %retval br label %ret ifend23: %t43 = load ptr, ptr %t0 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str1662) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then24, label %ifend26 then24: store ptr @.str1663, ptr %retval br label %ret ifend26: %t46 = load ptr, ptr %t0 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str1664) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then27, label %ifend29 then27: store ptr @.str1665, ptr %retval br label %ret ifend29: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str1666) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then30, label %ifend32 then30: store ptr @.str1667, ptr %retval br label %ret ifend32: %t52 = load ptr, ptr %t0 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str1668) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then33, label %ifend35 then33: store ptr @.str1669, ptr %retval br label %ret ifend35: %t59 = load ptr, ptr %t0 %t60 = call i32 @lp_str_eq(ptr %t59, ptr @.str1670) %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t58 br i1 %t61, label %scend37, label %sc36 sc36: %t63 = load ptr, ptr %t0 %t64 = call i32 @lp_str_eq(ptr %t63, ptr @.str1671) %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t58 br label %scend37 scend37: %t67 = load i32, ptr %t58 %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t57 br i1 %t68, label %scend39, label %sc38 sc38: %t70 = load ptr, ptr %t0 %t71 = call i32 @lp_str_eq(ptr %t70, ptr @.str1672) %t72 = icmp ne i32 %t71, 0 %t73 = zext i1 %t72 to i32 store i32 %t73, ptr %t57 br label %scend39 scend39: %t74 = load i32, ptr %t57 %t75 = icmp ne i32 %t74, 0 %t76 = zext i1 %t75 to i32 store i32 %t76, ptr %t56 br i1 %t75, label %scend41, label %sc40 sc40: %t77 = load ptr, ptr %t0 %t78 = call i32 @lp_str_eq(ptr %t77, ptr @.str1673) %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t56 br label %scend41 scend41: %t81 = load i32, ptr %t56 %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t55 br i1 %t82, label %scend43, label %sc42 sc42: %t84 = load ptr, ptr %t0 %t85 = call i32 @lp_str_eq(ptr %t84, ptr @.str1674) %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t55 br label %scend43 scend43: %t88 = load i32, ptr %t55 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then44, label %ifend46 then44: store ptr @.str1675, ptr %retval br label %ret ifend46: %t90 = load ptr, ptr %t0 %t91 = call i32 @lp_str_eq(ptr %t90, ptr @.str1676) %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then47, label %ifend49 then47: store ptr @.str1677, ptr %retval br label %ret ifend49: store ptr @.str1678, ptr %retval br label %ret ret: %t93 = load ptr, ptr %retval ret ptr %t93 } define i32 @fn_is_slice_ty(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_t, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds i8, ptr %t2, i32 0 %t4 = load i8, ptr %t3 %t5 = zext i8 %t4 to i32 %t6 = icmp eq i32 %t5, 91 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br i1 %t8, label %sc0, label %scend1 sc0: %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds i8, ptr %t10, i32 1 %t12 = load i8, ptr %t11 %t13 = zext i8 %t12 to i32 %t14 = icmp eq i32 %t13, 93 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend1 scend1: %t18 = load i32, ptr %t1 store i32 %t18, ptr %retval br label %ret ret: %t19 = load i32, ptr %retval ret i32 %t19 } define ptr @fn_slice_elem(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i64 @strlen(ptr %t2) %t4 = trunc i64 %t3 to i32 %t5 = call ptr @lp_str_slice(ptr %t1, i32 2, i32 %t4) store ptr %t5, ptr %retval br label %ret ret: %t6 = load ptr, ptr %retval ret ptr %t6 } define ptr @fn_find_arch(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1679, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 10 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t38 = load i32, ptr %t1 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_find_comp(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1680, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 8 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t38 = load i32, ptr %t1 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_layout_node(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_find_comp(ptr %t1) store ptr %t2, ptr %retval br label %ret ret: %t3 = load ptr, ptr %retval ret ptr %t3 } define ptr @fn_layout_ty(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str1681, ptr %t1) store ptr %t2, ptr %retval br label %ret ret: %t3 = load ptr, ptr %retval ret ptr %t3 } define i32 @fn_field_index(ptr %arg_s, ptr %arg_fname) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_s, ptr %t0 store ptr %arg_fname, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1682, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = load ptr, ptr %t1 %t27 = call i32 @lp_str_eq(ptr %t25, ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: %t29 = load i32, ptr %t2 store i32 %t29, ptr %retval br label %ret ifend7: %t30 = load i32, ptr %t2 %t31 = add i32 %t30, 1 store i32 %t31, ptr %t2 br label %wcond0 wend2: %t32 = sub i32 0, 1 store i32 %t32, ptr %retval br label %ret ret: %t33 = load i32, ptr %retval ret i32 %t33 } define ptr @fn_field_type(ptr %arg_s, ptr %arg_fname) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_s, ptr %t0 store ptr %arg_fname, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1683, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = load ptr, ptr %t1 %t27 = call i32 @lp_str_eq(ptr %t25, ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7 %t31 = load ptr, ptr %t30 %t32 = load i32, ptr %t2 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ult i32 %t32, %t36 br i1 %t37, label %ixok8, label %ixbad9 ixbad9: %t38 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t38, ptr @.fmt_bounds, ptr @.str1684, i32 %t32, i32 %t36) call void @exit(i32 1) unreachable ixok8: %t39 = getelementptr inbounds ptr, ptr %t34, i32 %t32 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 3 %t42 = load ptr, ptr %t41 store ptr %t42, ptr %retval br label %ret ifend7: %t43 = load i32, ptr %t2 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t2 br label %wcond0 wend2: store ptr @.str1685, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } define ptr @fn_find_global(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 %t38 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1686, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 2 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t39 = load ptr, ptr %t19 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 0 %t41 = load i32, ptr %t40 %t42 = icmp eq i32 %t41, 3 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t38 br i1 %t44, label %sc10, label %scend11 sc10: %t46 = load ptr, ptr %t19 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 1 %t48 = load ptr, ptr %t47 %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t48, ptr %t49) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t38 br label %scend11 scend11: %t53 = load i32, ptr %t38 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then12, label %ifend14 then12: %t55 = load ptr, ptr %t19 store ptr %t55, ptr %retval br label %ret ifend14: %t56 = load i32, ptr %t1 %t57 = add i32 %t56, 1 store i32 %t57, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t58 = load ptr, ptr %retval ret ptr %t58 } define i32 @fn_enum_ordinal(ptr %arg_ename, ptr %arg_vname) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t20 = alloca ptr %t21 = alloca i32 %t38 = alloca i32 store ptr %arg_ename, ptr %t0 store ptr %arg_vname, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_prog %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_prog %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str1687, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 store ptr %t19, ptr %t20 %t22 = load ptr, ptr %t20 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 0 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 27 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t21 br i1 %t27, label %sc5, label %scend6 sc5: %t29 = load ptr, ptr %t20 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr %t0 %t33 = call i32 @lp_str_eq(ptr %t31, ptr %t32) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t21 br label %scend6 scend6: %t36 = load i32, ptr %t21 %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then7, label %ifend9 then7: store i32 0, ptr %t38 br label %wcond10 wcond10: %t39 = load i32, ptr %t38 %t40 = load ptr, ptr %t20 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 7 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp slt i32 %t39, %t44 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %wbody11, label %wend12 wbody11: %t48 = load ptr, ptr %t20 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7 %t50 = load ptr, ptr %t49 %t51 = load i32, ptr %t38 %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp ult i32 %t51, %t55 br i1 %t56, label %ixok13, label %ixbad14 ixbad14: %t57 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t57, ptr @.fmt_bounds, ptr @.str1688, i32 %t51, i32 %t55) call void @exit(i32 1) unreachable ixok13: %t58 = getelementptr inbounds ptr, ptr %t53, i32 %t51 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 1 %t61 = load ptr, ptr %t60 %t62 = load ptr, ptr %t1 %t63 = call i32 @lp_str_eq(ptr %t61, ptr %t62) %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then15, label %ifend17 then15: %t65 = load i32, ptr %t38 store i32 %t65, ptr %retval br label %ret ifend17: %t66 = load i32, ptr %t38 %t67 = add i32 %t66, 1 store i32 %t67, ptr %t38 br label %wcond10 wend12: br label %ifend9 ifend9: %t68 = load i32, ptr %t2 %t69 = add i32 %t68, 1 store i32 %t69, ptr %t2 br label %wcond0 wend2: %t70 = load ptr, ptr %t0 %t71 = call i32 @lp_str_eq(ptr %t70, ptr @.str1689) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then18, label %ifend20 then18: %t73 = load ptr, ptr %t1 %t74 = call i32 @lp_str_eq(ptr %t73, ptr @.str1690) %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then21, label %ifend23 then21: store i32 0, ptr %retval br label %ret ifend23: %t76 = load ptr, ptr %t1 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str1691) %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then24, label %ifend26 then24: store i32 1, ptr %retval br label %ret ifend26: %t79 = load ptr, ptr %t1 %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str1692) %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then27, label %ifend29 then27: store i32 2, ptr %retval br label %ret ifend29: br label %ifend20 ifend20: %t82 = sub i32 0, 1 store i32 %t82, ptr %retval br label %ret ret: %t83 = load i32, ptr %retval ret i32 %t83 } define i32 @fn_is_bare_enum(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t3 = alloca ptr %t8 = alloca i32 store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_find_enum(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = icmp eq ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: store i32 0, ptr %t8 br label %wcond3 wcond3: %t9 = load i32, ptr %t8 %t10 = load ptr, ptr %t3 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t9, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody4, label %wend5 wbody4: %t18 = load ptr, ptr %t3 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t8 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok6, label %ixbad7 ixbad7: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str1693, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok6: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp sgt i32 %t33, 0 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then8, label %ifend10 then8: store i32 0, ptr %retval br label %ret ifend10: %t37 = load i32, ptr %t8 %t38 = add i32 %t37, 1 store i32 %t38, ptr %t8 br label %wcond3 wend5: store i32 1, ptr %retval br label %ret ret: %t39 = load i32, ptr %retval ret i32 %t39 } define ptr @fn_find_prefab(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1694, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 53 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t38 = load i32, ptr %t1 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define i32 @fn_has_prefabs() { entry: %retval = alloca i32 %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str1695, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 53 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t0 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define i32 @fn_has_countdowns() { entry: %retval = alloca i32 %t0 = alloca i32 %t18 = alloca ptr %t25 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str1696, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 8 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: store i32 0, ptr %t25 br label %wcond8 wcond8: %t26 = load i32, ptr %t25 %t27 = load ptr, ptr %t18 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 7 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp slt i32 %t26, %t31 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %wbody9, label %wend10 wbody9: %t35 = load ptr, ptr %t18 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 7 %t37 = load ptr, ptr %t36 %t38 = load i32, ptr %t25 %t39 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp ult i32 %t38, %t42 br i1 %t43, label %ixok11, label %ixbad12 ixbad12: %t44 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t44, ptr @.fmt_bounds, ptr @.str1697, i32 %t38, i32 %t42) call void @exit(i32 1) unreachable ixok11: %t45 = getelementptr inbounds ptr, ptr %t40, i32 %t38 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 3 %t48 = load ptr, ptr %t47 %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str1698) %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then13, label %ifend15 then13: store i32 1, ptr %retval br label %ret ifend15: %t51 = load i32, ptr %t25 %t52 = add i32 %t51, 1 store i32 %t52, ptr %t25 br label %wcond8 wend10: br label %ifend7 ifend7: %t53 = load i32, ptr %t0 %t54 = add i32 %t53, 1 store i32 %t54, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t55 = load i32, ptr %retval ret i32 %t55 } define ptr @fn_find_fn(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1699, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 4 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t38 = load i32, ptr %t1 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_find_enum(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1700, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 27 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t38 = load i32, ptr %t1 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define i32 @fn_enum_is_tagged(ptr %arg_en) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_en, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t2, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr %t1 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str1701, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 7 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t26 = load i32, ptr %t25 %t27 = icmp sgt i32 %t26, 0 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t30 = load i32, ptr %t1 %t31 = add i32 %t30, 1 store i32 %t31, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t32 = load i32, ptr %retval ret i32 %t32 } define ptr @fn_tagged_enum_of(ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr store ptr %arg_ty, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_find_enum(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = icmp eq ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t3 %t9 = call i32 @fn_enum_is_tagged(ptr %t8) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: %t11 = load ptr, ptr %t3 store ptr %t11, ptr %retval br label %ret ifend5: store ptr null, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define i32 @fn_variant_ordinal(ptr %arg_en, ptr %arg_vname) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_en, ptr %t0 store ptr %arg_vname, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1702, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = load ptr, ptr %t1 %t27 = call i32 @lp_str_eq(ptr %t25, ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: %t29 = load i32, ptr %t2 store i32 %t29, ptr %retval br label %ret ifend7: %t30 = load i32, ptr %t2 %t31 = add i32 %t30, 1 store i32 %t31, ptr %t2 br label %wcond0 wend2: %t32 = sub i32 0, 1 store i32 %t32, ptr %retval br label %ret ret: %t33 = load i32, ptr %retval ret i32 %t33 } define ptr @fn_variant_enum(ptr %arg_vname) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t32 = alloca i32 store ptr %arg_vname, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1703, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 0 %t22 = load i32, ptr %t21 %t23 = icmp eq i32 %t22, 27 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: %t26 = load ptr, ptr %t19 %t27 = call i32 @fn_enum_is_tagged(ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then8, label %ifend10 then8: %t29 = load ptr, ptr %t19 %t30 = load ptr, ptr %t0 %t31 = call i32 @fn_variant_ordinal(ptr %t29, ptr %t30) store i32 %t31, ptr %t32 %t33 = load i32, ptr %t32 %t34 = icmp sge i32 %t33, 0 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then11, label %ifend13 then11: %t37 = load i32, ptr %t32 store i32 %t37, ptr @g_g_var_ord %t38 = load ptr, ptr %t19 store ptr %t38, ptr %retval br label %ret ifend13: br label %ifend10 ifend10: br label %ifend7 ifend7: %t39 = load i32, ptr %t1 %t40 = add i32 %t39, 1 store i32 %t40, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t41 = load ptr, ptr %retval ret ptr %t41 } define i32 @fn_enum_max_arity(ptr %arg_en) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t28 = alloca i32 store ptr %arg_en, ptr %t0 store i32 0, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1704, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 7 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t27 = load i32, ptr %t26 store i32 %t27, ptr %t28 %t29 = load i32, ptr %t28 %t30 = load i32, ptr %t1 %t31 = icmp sgt i32 %t29, %t30 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then5, label %ifend7 then5: %t34 = load i32, ptr %t28 store i32 %t34, ptr %t1 br label %ifend7 ifend7: %t35 = load i32, ptr %t2 %t36 = add i32 %t35, 1 store i32 %t36, ptr %t2 br label %wcond0 wend2: %t37 = load i32, ptr %t1 store i32 %t37, ptr %retval br label %ret ret: %t38 = load i32, ptr %retval ret i32 %t38 } define i32 @fn_enum_box_size(ptr %arg_en) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_en, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_enum_max_arity(ptr %t1) %t3 = add i32 1, %t2 %t4 = mul i32 8, %t3 store i32 %t4, ptr %retval br label %ret ret: %t5 = load i32, ptr %retval ret i32 %t5 } define ptr @fn_find_extern(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1705, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 11 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t38 = load i32, ptr %t1 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define void @fn_register_computed(ptr %arg_prop, ptr %arg_field, ptr %arg_ty, ptr %arg_e) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t5 = alloca ptr store ptr %arg_prop, ptr %t0 store ptr %arg_field, ptr %t1 store ptr %arg_ty, ptr %t2 store ptr %arg_e, ptr %t3 %t4 = call ptr @fn_node(i32 1) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t0 %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str1706) %t10 = load ptr, ptr %t1 %t11 = call ptr @lp_str_concat(ptr %t9, ptr %t10) store ptr %t11, ptr %t7 %t12 = load ptr, ptr %t5 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 3 %t14 = load ptr, ptr %t2 store ptr %t14, ptr %t13 %t15 = load ptr, ptr %t5 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4 %t17 = load ptr, ptr %t3 store ptr %t17, ptr %t16 %t18 = load ptr, ptr @g_g_computed %t19 = load ptr, ptr %t5 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t21 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 2 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t23 = load i32, ptr %t20 %t24 = load i32, ptr %t21 %t25 = icmp sge i32 %t23, %t24 br i1 %t25, label %grow0, label %put1 grow0: %t26 = mul i32 %t24, 2 %t27 = icmp eq i32 %t24, 0 %t28 = select i1 %t27, i32 8, i32 %t26 %t29 = getelementptr ptr, ptr null, i32 1 %t30 = ptrtoint ptr %t29 to i64 %t31 = zext i32 %t28 to i64 %t32 = mul i64 %t31, %t30 %t33 = load ptr, ptr %t22 %t34 = call ptr @realloc(ptr %t33, i64 %t32) store ptr %t34, ptr %t22 store i32 %t28, ptr %t21 br label %put1 put1: %t35 = load ptr, ptr %t22 %t36 = getelementptr inbounds ptr, ptr %t35, i32 %t23 store ptr %t19, ptr %t36 %t37 = add i32 %t23, 1 store i32 %t37, ptr %t20 br label %ret ret: ret void } define ptr @fn_computed_expr(ptr %arg_prop, ptr %arg_field) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t10 = alloca ptr %t11 = alloca i32 store ptr %arg_prop, ptr %t0 store ptr %arg_field, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t6, ptr @.str1707) %t8 = load ptr, ptr %t1 %t9 = call ptr @lp_str_concat(ptr %t7, ptr %t8) store ptr %t9, ptr %t10 store i32 0, ptr %t11 br label %wcond3 wcond3: %t12 = load i32, ptr %t11 %t13 = load ptr, ptr @g_g_computed %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp slt i32 %t12, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody4, label %wend5 wbody4: %t19 = load ptr, ptr @g_g_computed %t20 = load i32, ptr %t11 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok6, label %ixbad7 ixbad7: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str1708, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok6: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t10 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then8, label %ifend10 then8: %t34 = load ptr, ptr @g_g_computed %t35 = load i32, ptr %t11 %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 %t35, %t39 br i1 %t40, label %ixok11, label %ixbad12 ixbad12: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str1709, i32 %t35, i32 %t39) call void @exit(i32 1) unreachable ixok11: %t42 = getelementptr inbounds ptr, ptr %t37, i32 %t35 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 4 %t45 = load ptr, ptr %t44 store ptr %t45, ptr %retval br label %ret ifend10: %t46 = load i32, ptr %t11 %t47 = add i32 %t46, 1 store i32 %t47, ptr %t11 br label %wcond3 wend5: store ptr null, ptr %retval br label %ret ret: %t48 = load ptr, ptr %retval ret ptr %t48 } define ptr @fn_static_type(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t11 = alloca i32 %t30 = alloca ptr %t58 = alloca ptr %t66 = alloca i32 %t89 = alloca i32 %t119 = alloca i32 %t130 = alloca i32 %t131 = alloca i32 %t132 = alloca i32 %t133 = alloca i32 %t134 = alloca i32 %t135 = alloca i32 %t212 = alloca i32 %t223 = alloca i32 %t224 = alloca i32 %t257 = alloca i32 %t278 = alloca i32 %t312 = alloca i32 %t328 = alloca ptr %t352 = alloca ptr %t370 = alloca ptr %t377 = alloca ptr %t397 = alloca ptr %t398 = alloca i32 %t421 = alloca i32 %t452 = alloca ptr %t459 = alloca i32 %t488 = alloca i32 store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 33 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 %t10 = call i32 @fn_loc_find(ptr %t9) store i32 %t10, ptr %t11 %t12 = load i32, ptr %t11 %t13 = icmp sge i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: %t16 = load ptr, ptr @g_loc_ty %t17 = load i32, ptr %t11 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp ult i32 %t17, %t21 br i1 %t22, label %ixok6, label %ixbad7 ixbad7: %t23 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t23, ptr @.fmt_bounds, ptr @.str1710, i32 %t17, i32 %t21) call void @exit(i32 1) unreachable ixok6: %t24 = getelementptr inbounds ptr, ptr %t19, i32 %t17 %t25 = load ptr, ptr %t24 store ptr %t25, ptr %retval br label %ret ifend5: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_find_global(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = icmp ne ptr %t31, null %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then8, label %ifend10 then8: %t35 = load ptr, ptr %t30 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 3 %t37 = load ptr, ptr %t36 store ptr %t37, ptr %retval br label %ret ifend10: br label %ifend2 ifend2: %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 0 %t40 = load i32, ptr %t39 %t41 = icmp eq i32 %t40, 34 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then11, label %ifend13 then11: %t44 = load ptr, ptr %t0 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 4 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 0 %t48 = load i32, ptr %t47 %t49 = icmp eq i32 %t48, 33 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then14, label %ifend16 then14: %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_find_fn(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = icmp ne ptr %t59, null %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then17, label %ifend19 then17: %t63 = load ptr, ptr %t58 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 3 %t65 = load ptr, ptr %t64 store ptr %t65, ptr %retval br label %ret ifend19: br label %ifend16 ifend16: %t67 = load ptr, ptr %t0 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 4 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 0 %t71 = load i32, ptr %t70 %t72 = icmp eq i32 %t71, 35 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t66 br i1 %t74, label %sc20, label %scend21 sc20: %t76 = load ptr, ptr %t0 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 4 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 4 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 0 %t82 = load i32, ptr %t81 %t83 = icmp eq i32 %t82, 33 %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t66 br label %scend21 scend21: %t87 = load i32, ptr %t66 %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then22, label %ifend24 then22: %t90 = load ptr, ptr %t0 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 4 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 4 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 1 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_find_comp(ptr %t96) %t98 = icmp ne ptr %t97, null %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 %t101 = zext i1 %t100 to i32 store i32 %t101, ptr %t89 br i1 %t100, label %sc25, label %scend26 sc25: %t102 = load ptr, ptr %t0 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 4 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 1 %t106 = load ptr, ptr %t105 %t107 = call i32 @lp_str_eq(ptr %t106, ptr @.str1711) %t108 = icmp ne i32 %t107, 0 %t109 = zext i1 %t108 to i32 store i32 %t109, ptr %t89 br label %scend26 scend26: %t110 = load i32, ptr %t89 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then27, label %ifend29 then27: %t112 = load ptr, ptr %t0 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 4 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 4 %t116 = load ptr, ptr %t115 %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 1 %t118 = load ptr, ptr %t117 store ptr %t118, ptr %retval br label %ret ifend29: %t120 = load ptr, ptr %t0 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 4 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 4 %t124 = load ptr, ptr %t123 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 1 %t126 = load ptr, ptr %t125 %t127 = call i32 @lp_str_eq(ptr %t126, ptr @.str1712) %t128 = icmp ne i32 %t127, 0 %t129 = zext i1 %t128 to i32 store i32 %t129, ptr %t119 br i1 %t128, label %sc30, label %scend31 sc30: %t136 = load ptr, ptr %t0 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 4 %t138 = load ptr, ptr %t137 %t139 = getelementptr inbounds %Cmp_Node, ptr %t138, i32 0, i32 1 %t140 = load ptr, ptr %t139 %t141 = call i32 @lp_str_eq(ptr %t140, ptr @.str1713) %t142 = icmp ne i32 %t141, 0 %t143 = zext i1 %t142 to i32 store i32 %t143, ptr %t135 br i1 %t142, label %scend33, label %sc32 sc32: %t144 = load ptr, ptr %t0 %t145 = getelementptr inbounds %Cmp_Node, ptr %t144, i32 0, i32 4 %t146 = load ptr, ptr %t145 %t147 = getelementptr inbounds %Cmp_Node, ptr %t146, i32 0, i32 1 %t148 = load ptr, ptr %t147 %t149 = call i32 @lp_str_eq(ptr %t148, ptr @.str1714) %t150 = icmp ne i32 %t149, 0 %t151 = zext i1 %t150 to i32 store i32 %t151, ptr %t135 br label %scend33 scend33: %t152 = load i32, ptr %t135 %t153 = icmp ne i32 %t152, 0 %t154 = zext i1 %t153 to i32 store i32 %t154, ptr %t134 br i1 %t153, label %scend35, label %sc34 sc34: %t155 = load ptr, ptr %t0 %t156 = getelementptr inbounds %Cmp_Node, ptr %t155, i32 0, i32 4 %t157 = load ptr, ptr %t156 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 1 %t159 = load ptr, ptr %t158 %t160 = call i32 @lp_str_eq(ptr %t159, ptr @.str1715) %t161 = icmp ne i32 %t160, 0 %t162 = zext i1 %t161 to i32 store i32 %t162, ptr %t134 br label %scend35 scend35: %t163 = load i32, ptr %t134 %t164 = icmp ne i32 %t163, 0 %t165 = zext i1 %t164 to i32 store i32 %t165, ptr %t133 br i1 %t164, label %scend37, label %sc36 sc36: %t166 = load ptr, ptr %t0 %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 4 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds %Cmp_Node, ptr %t168, i32 0, i32 1 %t170 = load ptr, ptr %t169 %t171 = call i32 @lp_str_eq(ptr %t170, ptr @.str1716) %t172 = icmp ne i32 %t171, 0 %t173 = zext i1 %t172 to i32 store i32 %t173, ptr %t133 br label %scend37 scend37: %t174 = load i32, ptr %t133 %t175 = icmp ne i32 %t174, 0 %t176 = zext i1 %t175 to i32 store i32 %t176, ptr %t132 br i1 %t175, label %scend39, label %sc38 sc38: %t177 = load ptr, ptr %t0 %t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 4 %t179 = load ptr, ptr %t178 %t180 = getelementptr inbounds %Cmp_Node, ptr %t179, i32 0, i32 1 %t181 = load ptr, ptr %t180 %t182 = call i32 @lp_str_eq(ptr %t181, ptr @.str1717) %t183 = icmp ne i32 %t182, 0 %t184 = zext i1 %t183 to i32 store i32 %t184, ptr %t132 br label %scend39 scend39: %t185 = load i32, ptr %t132 %t186 = icmp ne i32 %t185, 0 %t187 = zext i1 %t186 to i32 store i32 %t187, ptr %t131 br i1 %t186, label %scend41, label %sc40 sc40: %t188 = load ptr, ptr %t0 %t189 = getelementptr inbounds %Cmp_Node, ptr %t188, i32 0, i32 4 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %Cmp_Node, ptr %t190, i32 0, i32 1 %t192 = load ptr, ptr %t191 %t193 = call i32 @lp_str_eq(ptr %t192, ptr @.str1718) %t194 = icmp ne i32 %t193, 0 %t195 = zext i1 %t194 to i32 store i32 %t195, ptr %t131 br label %scend41 scend41: %t196 = load i32, ptr %t131 %t197 = icmp ne i32 %t196, 0 %t198 = zext i1 %t197 to i32 store i32 %t198, ptr %t130 br i1 %t197, label %scend43, label %sc42 sc42: %t199 = load ptr, ptr %t0 %t200 = getelementptr inbounds %Cmp_Node, ptr %t199, i32 0, i32 4 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %Cmp_Node, ptr %t201, i32 0, i32 1 %t203 = load ptr, ptr %t202 %t204 = call i32 @lp_str_eq(ptr %t203, ptr @.str1719) %t205 = icmp ne i32 %t204, 0 %t206 = zext i1 %t205 to i32 store i32 %t206, ptr %t130 br label %scend43 scend43: %t207 = load i32, ptr %t130 %t208 = icmp ne i32 %t207, 0 %t209 = zext i1 %t208 to i32 store i32 %t209, ptr %t119 br label %scend31 scend31: %t210 = load i32, ptr %t119 %t211 = icmp ne i32 %t210, 0 br i1 %t211, label %then44, label %ifend46 then44: store ptr @.str1720, ptr %retval br label %ret ifend46: %t213 = load ptr, ptr %t0 %t214 = getelementptr inbounds %Cmp_Node, ptr %t213, i32 0, i32 4 %t215 = load ptr, ptr %t214 %t216 = getelementptr inbounds %Cmp_Node, ptr %t215, i32 0, i32 4 %t217 = load ptr, ptr %t216 %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 1 %t219 = load ptr, ptr %t218 %t220 = call i32 @lp_str_eq(ptr %t219, ptr @.str1721) %t221 = icmp ne i32 %t220, 0 %t222 = zext i1 %t221 to i32 store i32 %t222, ptr %t212 br i1 %t221, label %sc47, label %scend48 sc47: %t225 = load ptr, ptr %t0 %t226 = getelementptr inbounds %Cmp_Node, ptr %t225, i32 0, i32 4 %t227 = load ptr, ptr %t226 %t228 = getelementptr inbounds %Cmp_Node, ptr %t227, i32 0, i32 1 %t229 = load ptr, ptr %t228 %t230 = call i32 @lp_str_eq(ptr %t229, ptr @.str1722) %t231 = icmp ne i32 %t230, 0 %t232 = zext i1 %t231 to i32 store i32 %t232, ptr %t224 br i1 %t231, label %scend50, label %sc49 sc49: %t233 = load ptr, ptr %t0 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 4 %t235 = load ptr, ptr %t234 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 1 %t237 = load ptr, ptr %t236 %t238 = call i32 @lp_str_eq(ptr %t237, ptr @.str1723) %t239 = icmp ne i32 %t238, 0 %t240 = zext i1 %t239 to i32 store i32 %t240, ptr %t224 br label %scend50 scend50: %t241 = load i32, ptr %t224 %t242 = icmp ne i32 %t241, 0 %t243 = zext i1 %t242 to i32 store i32 %t243, ptr %t223 br i1 %t242, label %scend52, label %sc51 sc51: %t244 = load ptr, ptr %t0 %t245 = getelementptr inbounds %Cmp_Node, ptr %t244, i32 0, i32 4 %t246 = load ptr, ptr %t245 %t247 = getelementptr inbounds %Cmp_Node, ptr %t246, i32 0, i32 1 %t248 = load ptr, ptr %t247 %t249 = call i32 @lp_str_eq(ptr %t248, ptr @.str1724) %t250 = icmp ne i32 %t249, 0 %t251 = zext i1 %t250 to i32 store i32 %t251, ptr %t223 br label %scend52 scend52: %t252 = load i32, ptr %t223 %t253 = icmp ne i32 %t252, 0 %t254 = zext i1 %t253 to i32 store i32 %t254, ptr %t212 br label %scend48 scend48: %t255 = load i32, ptr %t212 %t256 = icmp ne i32 %t255, 0 br i1 %t256, label %then53, label %ifend55 then53: store ptr @.str1725, ptr %retval br label %ret ifend55: %t258 = load ptr, ptr %t0 %t259 = getelementptr inbounds %Cmp_Node, ptr %t258, i32 0, i32 4 %t260 = load ptr, ptr %t259 %t261 = getelementptr inbounds %Cmp_Node, ptr %t260, i32 0, i32 4 %t262 = load ptr, ptr %t261 %t263 = getelementptr inbounds %Cmp_Node, ptr %t262, i32 0, i32 1 %t264 = load ptr, ptr %t263 %t265 = call i32 @lp_str_eq(ptr %t264, ptr @.str1726) %t266 = icmp ne i32 %t265, 0 %t267 = zext i1 %t266 to i32 store i32 %t267, ptr %t257 br i1 %t266, label %sc56, label %scend57 sc56: %t268 = load ptr, ptr %t0 %t269 = getelementptr inbounds %Cmp_Node, ptr %t268, i32 0, i32 4 %t270 = load ptr, ptr %t269 %t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 1 %t272 = load ptr, ptr %t271 %t273 = call i32 @lp_str_eq(ptr %t272, ptr @.str1727) %t274 = icmp ne i32 %t273, 0 %t275 = zext i1 %t274 to i32 store i32 %t275, ptr %t257 br label %scend57 scend57: %t276 = load i32, ptr %t257 %t277 = icmp ne i32 %t276, 0 br i1 %t277, label %then58, label %ifend60 then58: store ptr @.str1728, ptr %retval br label %ret ifend60: %t279 = load ptr, ptr %t0 %t280 = getelementptr inbounds %Cmp_Node, ptr %t279, i32 0, i32 4 %t281 = load ptr, ptr %t280 %t282 = getelementptr inbounds %Cmp_Node, ptr %t281, i32 0, i32 4 %t283 = load ptr, ptr %t282 %t284 = getelementptr inbounds %Cmp_Node, ptr %t283, i32 0, i32 1 %t285 = load ptr, ptr %t284 %t286 = call i32 @lp_str_eq(ptr %t285, ptr @.str1729) %t287 = icmp ne i32 %t286, 0 %t288 = zext i1 %t287 to i32 store i32 %t288, ptr %t278 br i1 %t287, label %sc61, label %scend62 sc61: %t289 = load ptr, ptr %t0 %t290 = getelementptr inbounds %Cmp_Node, ptr %t289, i32 0, i32 4 %t291 = load ptr, ptr %t290 %t292 = getelementptr inbounds %Cmp_Node, ptr %t291, i32 0, i32 1 %t293 = load ptr, ptr %t292 %t294 = call i32 @lp_str_eq(ptr %t293, ptr @.str1730) %t295 = icmp ne i32 %t294, 0 %t296 = zext i1 %t295 to i32 store i32 %t296, ptr %t278 br label %scend62 scend62: %t297 = load i32, ptr %t278 %t298 = icmp ne i32 %t297, 0 br i1 %t298, label %then63, label %ifend65 then63: store ptr @.str1731, ptr %retval br label %ret ifend65: %t299 = load ptr, ptr %t0 %t300 = getelementptr inbounds %Cmp_Node, ptr %t299, i32 0, i32 4 %t301 = load ptr, ptr %t300 %t302 = getelementptr inbounds %Cmp_Node, ptr %t301, i32 0, i32 4 %t303 = load ptr, ptr %t302 %t304 = getelementptr inbounds %Cmp_Node, ptr %t303, i32 0, i32 1 %t305 = load ptr, ptr %t304 %t306 = load ptr, ptr %t0 %t307 = getelementptr inbounds %Cmp_Node, ptr %t306, i32 0, i32 4 %t308 = load ptr, ptr %t307 %t309 = getelementptr inbounds %Cmp_Node, ptr %t308, i32 0, i32 1 %t310 = load ptr, ptr %t309 %t311 = call i32 @fn_ns_alias_find(ptr %t305, ptr %t310) store i32 %t311, ptr %t312 %t313 = load i32, ptr %t312 %t314 = icmp sge i32 %t313, 0 %t315 = zext i1 %t314 to i32 %t316 = icmp ne i32 %t315, 0 br i1 %t316, label %then66, label %ifend68 then66: %t317 = load ptr, ptr @g_g_al_target %t318 = load i32, ptr %t312 %t319 = getelementptr inbounds %LSlice, ptr %t317, i32 0, i32 0 %t320 = load ptr, ptr %t319 %t321 = getelementptr inbounds %LSlice, ptr %t317, i32 0, i32 1 %t322 = load i32, ptr %t321 %t323 = icmp ult i32 %t318, %t322 br i1 %t323, label %ixok69, label %ixbad70 ixbad70: %t324 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t324, ptr @.fmt_bounds, ptr @.str1732, i32 %t318, i32 %t322) call void @exit(i32 1) unreachable ixok69: %t325 = getelementptr inbounds ptr, ptr %t320, i32 %t318 %t326 = load ptr, ptr %t325 %t327 = call ptr @fn_find_fn(ptr %t326) store ptr %t327, ptr %t328 %t329 = load ptr, ptr %t328 %t330 = icmp ne ptr %t329, null %t331 = zext i1 %t330 to i32 %t332 = icmp ne i32 %t331, 0 br i1 %t332, label %then71, label %ifend73 then71: %t333 = load ptr, ptr %t328 %t334 = getelementptr inbounds %Cmp_Node, ptr %t333, i32 0, i32 3 %t335 = load ptr, ptr %t334 store ptr %t335, ptr %retval br label %ret ifend73: br label %ifend68 ifend68: %t336 = load ptr, ptr %t0 %t337 = getelementptr inbounds %Cmp_Node, ptr %t336, i32 0, i32 4 %t338 = load ptr, ptr %t337 %t339 = getelementptr inbounds %Cmp_Node, ptr %t338, i32 0, i32 4 %t340 = load ptr, ptr %t339 %t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 1 %t342 = load ptr, ptr %t341 %t343 = call ptr @fn_ns_lower(ptr %t342) %t344 = call ptr @lp_str_concat(ptr %t343, ptr @.str1733) %t345 = load ptr, ptr %t0 %t346 = getelementptr inbounds %Cmp_Node, ptr %t345, i32 0, i32 4 %t347 = load ptr, ptr %t346 %t348 = getelementptr inbounds %Cmp_Node, ptr %t347, i32 0, i32 1 %t349 = load ptr, ptr %t348 %t350 = call ptr @lp_str_concat(ptr %t344, ptr %t349) %t351 = call ptr @fn_find_fn(ptr %t350) store ptr %t351, ptr %t352 %t353 = load ptr, ptr %t352 %t354 = icmp ne ptr %t353, null %t355 = zext i1 %t354 to i32 %t356 = icmp ne i32 %t355, 0 br i1 %t356, label %then74, label %ifend76 then74: %t357 = load ptr, ptr %t352 %t358 = getelementptr inbounds %Cmp_Node, ptr %t357, i32 0, i32 3 %t359 = load ptr, ptr %t358 store ptr %t359, ptr %retval br label %ret ifend76: br label %ifend24 ifend24: br label %ifend13 ifend13: %t360 = load ptr, ptr %t0 %t361 = getelementptr inbounds %Cmp_Node, ptr %t360, i32 0, i32 0 %t362 = load i32, ptr %t361 %t363 = icmp eq i32 %t362, 35 %t364 = zext i1 %t363 to i32 %t365 = icmp ne i32 %t364, 0 br i1 %t365, label %then77, label %ifend79 then77: %t366 = load ptr, ptr %t0 %t367 = getelementptr inbounds %Cmp_Node, ptr %t366, i32 0, i32 4 %t368 = load ptr, ptr %t367 %t369 = call ptr @fn_static_type(ptr %t368) store ptr %t369, ptr %t370 %t371 = load ptr, ptr %t370 %t372 = icmp ne ptr %t371, null %t373 = zext i1 %t372 to i32 %t374 = icmp ne i32 %t373, 0 br i1 %t374, label %then80, label %ifend82 then80: %t375 = load ptr, ptr %t370 %t376 = call ptr @fn_layout_node(ptr %t375) store ptr %t376, ptr %t377 %t378 = load ptr, ptr %t377 %t379 = icmp ne ptr %t378, null %t380 = zext i1 %t379 to i32 %t381 = icmp ne i32 %t380, 0 br i1 %t381, label %then83, label %ifend85 then83: %t382 = load ptr, ptr %t377 %t383 = load ptr, ptr %t0 %t384 = getelementptr inbounds %Cmp_Node, ptr %t383, i32 0, i32 1 %t385 = load ptr, ptr %t384 %t386 = call ptr @fn_field_type(ptr %t382, ptr %t385) store ptr %t386, ptr %retval br label %ret ifend85: br label %ifend82 ifend82: br label %ifend79 ifend79: %t387 = load ptr, ptr %t0 %t388 = getelementptr inbounds %Cmp_Node, ptr %t387, i32 0, i32 0 %t389 = load i32, ptr %t388 %t390 = icmp eq i32 %t389, 36 %t391 = zext i1 %t390 to i32 %t392 = icmp ne i32 %t391, 0 br i1 %t392, label %then86, label %ifend88 then86: %t393 = load ptr, ptr %t0 %t394 = getelementptr inbounds %Cmp_Node, ptr %t393, i32 0, i32 4 %t395 = load ptr, ptr %t394 %t396 = call ptr @fn_static_type(ptr %t395) store ptr %t396, ptr %t397 %t399 = load ptr, ptr %t397 %t400 = icmp ne ptr %t399, null %t401 = zext i1 %t400 to i32 %t402 = icmp ne i32 %t401, 0 %t403 = zext i1 %t402 to i32 store i32 %t403, ptr %t398 br i1 %t402, label %sc89, label %scend90 sc89: %t404 = load ptr, ptr %t397 %t405 = call i32 @fn_is_slice_ty(ptr %t404) %t406 = icmp ne i32 %t405, 0 %t407 = zext i1 %t406 to i32 store i32 %t407, ptr %t398 br label %scend90 scend90: %t408 = load i32, ptr %t398 %t409 = icmp ne i32 %t408, 0 br i1 %t409, label %then91, label %ifend93 then91: %t410 = load ptr, ptr %t397 %t411 = call ptr @fn_slice_elem(ptr %t410) store ptr %t411, ptr %retval br label %ret ifend93: br label %ifend88 ifend88: %t412 = load ptr, ptr %t0 %t413 = getelementptr inbounds %Cmp_Node, ptr %t412, i32 0, i32 0 %t414 = load i32, ptr %t413 %t415 = icmp eq i32 %t414, 39 %t416 = zext i1 %t415 to i32 %t417 = icmp ne i32 %t416, 0 br i1 %t417, label %then94, label %ifend96 then94: %t418 = load ptr, ptr %t0 %t419 = getelementptr inbounds %Cmp_Node, ptr %t418, i32 0, i32 1 %t420 = load ptr, ptr %t419 store ptr %t420, ptr %retval br label %ret ifend96: %t422 = load ptr, ptr %t0 %t423 = getelementptr inbounds %Cmp_Node, ptr %t422, i32 0, i32 0 %t424 = load i32, ptr %t423 %t425 = icmp eq i32 %t424, 54 %t426 = zext i1 %t425 to i32 %t427 = icmp ne i32 %t426, 0 %t428 = zext i1 %t427 to i32 store i32 %t428, ptr %t421 br i1 %t427, label %sc97, label %scend98 sc97: %t429 = load ptr, ptr %t0 %t430 = getelementptr inbounds %Cmp_Node, ptr %t429, i32 0, i32 7 %t431 = load ptr, ptr %t430 %t432 = getelementptr inbounds %LSlice, ptr %t431, i32 0, i32 1 %t433 = load i32, ptr %t432 %t434 = icmp sgt i32 %t433, 0 %t435 = zext i1 %t434 to i32 %t436 = icmp ne i32 %t435, 0 %t437 = zext i1 %t436 to i32 store i32 %t437, ptr %t421 br label %scend98 scend98: %t438 = load i32, ptr %t421 %t439 = icmp ne i32 %t438, 0 br i1 %t439, label %then99, label %ifend101 then99: %t440 = load ptr, ptr %t0 %t441 = getelementptr inbounds %Cmp_Node, ptr %t440, i32 0, i32 7 %t442 = load ptr, ptr %t441 %t443 = getelementptr inbounds %LSlice, ptr %t442, i32 0, i32 0 %t444 = load ptr, ptr %t443 %t445 = getelementptr inbounds %LSlice, ptr %t442, i32 0, i32 1 %t446 = load i32, ptr %t445 %t447 = icmp ult i32 0, %t446 br i1 %t447, label %ixok102, label %ixbad103 ixbad103: %t448 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t448, ptr @.fmt_bounds, ptr @.str1734, i32 0, i32 %t446) call void @exit(i32 1) unreachable ixok102: %t449 = getelementptr inbounds ptr, ptr %t444, i32 0 %t450 = load ptr, ptr %t449 %t451 = call ptr @fn_static_type(ptr %t450) store ptr %t451, ptr %t452 %t453 = load ptr, ptr %t452 %t454 = icmp ne ptr %t453, null %t455 = zext i1 %t454 to i32 %t456 = icmp ne i32 %t455, 0 br i1 %t456, label %then104, label %ifend106 then104: %t457 = load ptr, ptr %t452 %t458 = call ptr @lp_str_concat(ptr @.str1735, ptr %t457) store ptr %t458, ptr %retval br label %ret ifend106: br label %ifend101 ifend101: %t460 = load ptr, ptr %t0 %t461 = getelementptr inbounds %Cmp_Node, ptr %t460, i32 0, i32 0 %t462 = load i32, ptr %t461 %t463 = icmp eq i32 %t462, 31 %t464 = zext i1 %t463 to i32 %t465 = icmp ne i32 %t464, 0 %t466 = zext i1 %t465 to i32 store i32 %t466, ptr %t459 br i1 %t465, label %scend108, label %sc107 sc107: %t467 = load ptr, ptr %t0 %t468 = getelementptr inbounds %Cmp_Node, ptr %t467, i32 0, i32 0 %t469 = load i32, ptr %t468 %t470 = icmp eq i32 %t469, 44 %t471 = zext i1 %t470 to i32 %t472 = icmp ne i32 %t471, 0 %t473 = zext i1 %t472 to i32 store i32 %t473, ptr %t459 br label %scend108 scend108: %t474 = load i32, ptr %t459 %t475 = icmp ne i32 %t474, 0 br i1 %t475, label %then109, label %ifend111 then109: store ptr @.str1736, ptr %retval br label %ret ifend111: %t476 = load ptr, ptr %t0 %t477 = getelementptr inbounds %Cmp_Node, ptr %t476, i32 0, i32 0 %t478 = load i32, ptr %t477 %t479 = icmp eq i32 %t478, 30 %t480 = zext i1 %t479 to i32 %t481 = icmp ne i32 %t480, 0 br i1 %t481, label %then112, label %ifend114 then112: %t482 = load ptr, ptr %t0 %t483 = getelementptr inbounds %Cmp_Node, ptr %t482, i32 0, i32 1 %t484 = load ptr, ptr %t483 %t485 = icmp ne ptr %t484, null %t486 = zext i1 %t485 to i32 %t487 = icmp ne i32 %t486, 0 br i1 %t487, label %then115, label %ifend117 then115: store ptr @.str1737, ptr %retval br label %ret ifend117: store ptr @.str1738, ptr %retval br label %ret ifend114: %t489 = load ptr, ptr %t0 %t490 = getelementptr inbounds %Cmp_Node, ptr %t489, i32 0, i32 0 %t491 = load i32, ptr %t490 %t492 = icmp eq i32 %t491, 40 %t493 = zext i1 %t492 to i32 %t494 = icmp ne i32 %t493, 0 %t495 = zext i1 %t494 to i32 store i32 %t495, ptr %t488 br i1 %t494, label %sc118, label %scend119 sc118: %t496 = load ptr, ptr %t0 %t497 = getelementptr inbounds %Cmp_Node, ptr %t496, i32 0, i32 9 %t498 = load ptr, ptr %t497 %t499 = call i32 @fn_is_float_file(ptr %t498) %t500 = icmp ne i32 %t499, 0 %t501 = zext i1 %t500 to i32 store i32 %t501, ptr %t488 br label %scend119 scend119: %t502 = load i32, ptr %t488 %t503 = icmp ne i32 %t502, 0 br i1 %t503, label %then120, label %ifend122 then120: store ptr @.str1739, ptr %retval br label %ret ifend122: %t504 = load ptr, ptr %t0 %t505 = getelementptr inbounds %Cmp_Node, ptr %t504, i32 0, i32 0 %t506 = load i32, ptr %t505 %t507 = icmp eq i32 %t506, 40 %t508 = zext i1 %t507 to i32 %t509 = icmp ne i32 %t508, 0 br i1 %t509, label %then123, label %ifend125 then123: store ptr @.str1740, ptr %retval br label %ret ifend125: %t510 = load ptr, ptr %t0 %t511 = getelementptr inbounds %Cmp_Node, ptr %t510, i32 0, i32 0 %t512 = load i32, ptr %t511 %t513 = icmp eq i32 %t512, 32 %t514 = zext i1 %t513 to i32 %t515 = icmp ne i32 %t514, 0 br i1 %t515, label %then126, label %ifend128 then126: store ptr @.str1741, ptr %retval br label %ret ifend128: store ptr null, ptr %retval br label %ret ret: %t516 = load ptr, ptr %retval ret ptr %t516 } define void @fn_register_onspawn(ptr %arg_model, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_model, ptr %t0 store ptr %arg_body, ptr %t1 %t2 = call ptr @fn_node(i32 7) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = load ptr, ptr %t1 store ptr %t9, ptr %t8 %t10 = load ptr, ptr @g_g_onspawn %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 br label %ret ret: ret void } define ptr @fn_onspawn_body(ptr %arg_model) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_model, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_onspawn %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_onspawn %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1742, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_onspawn %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1743, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %retval br label %ret ifend7: %t36 = load i32, ptr %t1 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t38 = load ptr, ptr %retval ret ptr %t38 } define void @fn_register_ondespawn(ptr %arg_model, ptr %arg_body, ptr %arg_reason) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr store ptr %arg_model, ptr %t0 store ptr %arg_body, ptr %t1 store ptr %arg_reason, ptr %t2 %t3 = call ptr @fn_node(i32 7) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1 %t7 = load ptr, ptr %t0 store ptr %t7, ptr %t6 %t8 = load ptr, ptr %t4 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = load ptr, ptr %t1 store ptr %t10, ptr %t9 %t11 = load ptr, ptr %t4 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 3 %t13 = load ptr, ptr %t2 store ptr %t13, ptr %t12 %t14 = load ptr, ptr @g_g_ondespawn %t15 = load ptr, ptr %t4 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t19 = load i32, ptr %t16 %t20 = load i32, ptr %t17 %t21 = icmp sge i32 %t19, %t20 br i1 %t21, label %grow0, label %put1 grow0: %t22 = mul i32 %t20, 2 %t23 = icmp eq i32 %t20, 0 %t24 = select i1 %t23, i32 8, i32 %t22 %t25 = getelementptr ptr, ptr null, i32 1 %t26 = ptrtoint ptr %t25 to i64 %t27 = zext i32 %t24 to i64 %t28 = mul i64 %t27, %t26 %t29 = load ptr, ptr %t18 %t30 = call ptr @realloc(ptr %t29, i64 %t28) store ptr %t30, ptr %t18 store i32 %t24, ptr %t17 br label %put1 put1: %t31 = load ptr, ptr %t18 %t32 = getelementptr inbounds ptr, ptr %t31, i32 %t19 store ptr %t15, ptr %t32 %t33 = add i32 %t19, 1 store i32 %t33, ptr %t16 br label %ret ret: ret void } define ptr @fn_ondespawn_body(ptr %arg_model) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_model, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_ondespawn %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_ondespawn %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1744, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_ondespawn %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1745, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %retval br label %ret ifend7: %t36 = load i32, ptr %t1 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t38 = load ptr, ptr %retval ret ptr %t38 } define void @fn_register_onattach(ptr %arg_prop, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_prop, ptr %t0 store ptr %arg_body, ptr %t1 %t2 = call ptr @fn_node(i32 7) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = load ptr, ptr %t1 store ptr %t9, ptr %t8 %t10 = load ptr, ptr @g_g_onattach %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 br label %ret ret: ret void } define ptr @fn_onattach_body(ptr %arg_prop) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_prop, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_onattach %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_onattach %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1746, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_onattach %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1747, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %retval br label %ret ifend7: %t36 = load i32, ptr %t1 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t38 = load ptr, ptr %retval ret ptr %t38 } define void @fn_register_ondetach(ptr %arg_prop, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_prop, ptr %t0 store ptr %arg_body, ptr %t1 %t2 = call ptr @fn_node(i32 7) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = load ptr, ptr %t1 store ptr %t9, ptr %t8 %t10 = load ptr, ptr @g_g_ondetach %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 br label %ret ret: ret void } define ptr @fn_ondetach_body(ptr %arg_prop) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_prop, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_ondetach %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_ondetach %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1748, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_ondetach %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1749, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %retval br label %ret ifend7: %t36 = load i32, ptr %t1 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t38 = load ptr, ptr %retval ret ptr %t38 } define void @fn_register_onenable(ptr %arg_prop, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_prop, ptr %t0 store ptr %arg_body, ptr %t1 %t2 = call ptr @fn_node(i32 7) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = load ptr, ptr %t1 store ptr %t9, ptr %t8 %t10 = load ptr, ptr @g_g_onenable %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 br label %ret ret: ret void } define void @fn_register_ondisable(ptr %arg_prop, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_prop, ptr %t0 store ptr %arg_body, ptr %t1 %t2 = call ptr @fn_node(i32 7) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = load ptr, ptr %t1 store ptr %t9, ptr %t8 %t10 = load ptr, ptr @g_g_ondisable %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 br label %ret ret: ret void } define ptr @fn_onenable_body(ptr %arg_prop) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_prop, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_onenable %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_onenable %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1750, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_onenable %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1751, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %retval br label %ret ifend7: %t36 = load i32, ptr %t1 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t38 = load ptr, ptr %retval ret ptr %t38 } define ptr @fn_ondisable_body(ptr %arg_prop) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_prop, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_ondisable %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_ondisable %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1752, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_ondisable %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1753, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %retval br label %ret ifend7: %t36 = load i32, ptr %t1 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t38 = load ptr, ptr %retval ret ptr %t38 } define void @fn_register_event(ptr %arg_n) { entry: %t0 = alloca ptr store ptr %arg_n, ptr %t0 %t1 = load ptr, ptr @g_g_events %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t4 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 2 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t6 = load i32, ptr %t3 %t7 = load i32, ptr %t4 %t8 = icmp sge i32 %t6, %t7 br i1 %t8, label %grow0, label %put1 grow0: %t9 = mul i32 %t7, 2 %t10 = icmp eq i32 %t7, 0 %t11 = select i1 %t10, i32 8, i32 %t9 %t12 = getelementptr ptr, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = zext i32 %t11 to i64 %t15 = mul i64 %t14, %t13 %t16 = load ptr, ptr %t5 %t17 = call ptr @realloc(ptr %t16, i64 %t15) store ptr %t17, ptr %t5 store i32 %t11, ptr %t4 br label %put1 put1: %t18 = load ptr, ptr %t5 %t19 = getelementptr inbounds ptr, ptr %t18, i32 %t6 store ptr %t2, ptr %t19 %t20 = add i32 %t6, 1 store i32 %t20, ptr %t3 br label %ret ret: ret void } define ptr @fn_find_event(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_events %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_events %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1754, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load ptr, ptr @g_g_events %t25 = load i32, ptr %t1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok8, label %ixbad9 ixbad9: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str1755, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok8: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 store ptr %t33, ptr %retval br label %ret ifend7: %t34 = load i32, ptr %t1 %t35 = add i32 %t34, 1 store i32 %t35, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t36 = load ptr, ptr %retval ret ptr %t36 } define void @fn_register_onlisten(ptr %arg_evt, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_evt, ptr %t0 store ptr %arg_body, ptr %t1 %t2 = call ptr @fn_node(i32 7) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t0 store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4 %t9 = load ptr, ptr %t1 store ptr %t9, ptr %t8 %t10 = load ptr, ptr @g_g_onlisten %t11 = load ptr, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t15 = load i32, ptr %t12 %t16 = load i32, ptr %t13 %t17 = icmp sge i32 %t15, %t16 br i1 %t17, label %grow0, label %put1 grow0: %t18 = mul i32 %t16, 2 %t19 = icmp eq i32 %t16, 0 %t20 = select i1 %t19, i32 8, i32 %t18 %t21 = getelementptr ptr, ptr null, i32 1 %t22 = ptrtoint ptr %t21 to i64 %t23 = zext i32 %t20 to i64 %t24 = mul i64 %t23, %t22 %t25 = load ptr, ptr %t14 %t26 = call ptr @realloc(ptr %t25, i64 %t24) store ptr %t26, ptr %t14 store i32 %t20, ptr %t13 br label %put1 put1: %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t15 store ptr %t11, ptr %t28 %t29 = add i32 %t15, 1 store i32 %t29, ptr %t12 br label %ret ret: ret void } define void @fn_ensure_event(ptr %arg_name, i32 %arg_with_reason) { entry: %t0 = alloca ptr %t1 = alloca i32 %t8 = alloca ptr %t13 = alloca ptr %t43 = alloca ptr store ptr %arg_name, ptr %t0 store i32 %arg_with_reason, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_find_event(ptr %t2) %t4 = icmp ne ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: br label %ret ifend2: %t7 = call ptr @fn_node(i32 48) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1 %t11 = load ptr, ptr %t0 store ptr %t11, ptr %t10 %t12 = call ptr @fn_node(i32 1) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 store ptr @.str1756, ptr %t15 %t16 = load ptr, ptr %t13 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 store ptr @.str1757, ptr %t17 %t18 = load ptr, ptr %t8 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t13 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t25 = load i32, ptr %t22 %t26 = load i32, ptr %t23 %t27 = icmp sge i32 %t25, %t26 br i1 %t27, label %grow3, label %put4 grow3: %t28 = mul i32 %t26, 2 %t29 = icmp eq i32 %t26, 0 %t30 = select i1 %t29, i32 8, i32 %t28 %t31 = getelementptr ptr, ptr null, i32 1 %t32 = ptrtoint ptr %t31 to i64 %t33 = zext i32 %t30 to i64 %t34 = mul i64 %t33, %t32 %t35 = load ptr, ptr %t24 %t36 = call ptr @realloc(ptr %t35, i64 %t34) store ptr %t36, ptr %t24 store i32 %t30, ptr %t23 br label %put4 put4: %t37 = load ptr, ptr %t24 %t38 = getelementptr inbounds ptr, ptr %t37, i32 %t25 store ptr %t21, ptr %t38 %t39 = add i32 %t25, 1 store i32 %t39, ptr %t22 %t40 = load i32, ptr %t1 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then5, label %ifend7 then5: %t42 = call ptr @fn_node(i32 1) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1 store ptr @.str1758, ptr %t45 %t46 = load ptr, ptr %t43 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 3 store ptr @.str1759, ptr %t47 %t48 = load ptr, ptr %t8 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7 %t50 = load ptr, ptr %t49 %t51 = load ptr, ptr %t43 %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t53 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 2 %t54 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t55 = load i32, ptr %t52 %t56 = load i32, ptr %t53 %t57 = icmp sge i32 %t55, %t56 br i1 %t57, label %grow8, label %put9 grow8: %t58 = mul i32 %t56, 2 %t59 = icmp eq i32 %t56, 0 %t60 = select i1 %t59, i32 8, i32 %t58 %t61 = getelementptr ptr, ptr null, i32 1 %t62 = ptrtoint ptr %t61 to i64 %t63 = zext i32 %t60 to i64 %t64 = mul i64 %t63, %t62 %t65 = load ptr, ptr %t54 %t66 = call ptr @realloc(ptr %t65, i64 %t64) store ptr %t66, ptr %t54 store i32 %t60, ptr %t53 br label %put9 put9: %t67 = load ptr, ptr %t54 %t68 = getelementptr inbounds ptr, ptr %t67, i32 %t55 store ptr %t51, ptr %t68 %t69 = add i32 %t55, 1 store i32 %t69, ptr %t52 br label %ifend7 ifend7: %t70 = load ptr, ptr %t8 call void @fn_register_event(ptr %t70) br label %ret ret: ret void } define void @fn_ensure_event_empty(ptr %arg_name) { entry: %t0 = alloca ptr %t7 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_find_event(ptr %t1) %t3 = icmp ne ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = call ptr @fn_node(i32 48) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1 %t10 = load ptr, ptr %t0 store ptr %t10, ptr %t9 %t11 = load ptr, ptr %t7 call void @fn_register_event(ptr %t11) br label %ret ret: ret void } define void @fn_note_toggled_layer(ptr %arg_name) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_toggled_layers %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_toggled_layers %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1760, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: %t24 = load ptr, ptr @g_g_toggled_layers %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t29 = load i32, ptr %t26 %t30 = load i32, ptr %t27 %t31 = icmp sge i32 %t29, %t30 br i1 %t31, label %grow8, label %put9 grow8: %t32 = mul i32 %t30, 2 %t33 = icmp eq i32 %t30, 0 %t34 = select i1 %t33, i32 8, i32 %t32 %t35 = getelementptr ptr, ptr null, i32 1 %t36 = ptrtoint ptr %t35 to i64 %t37 = zext i32 %t34 to i64 %t38 = mul i64 %t37, %t36 %t39 = load ptr, ptr %t28 %t40 = call ptr @realloc(ptr %t39, i64 %t38) store ptr %t40, ptr %t28 store i32 %t34, ptr %t27 br label %put9 put9: %t41 = load ptr, ptr %t28 %t42 = getelementptr inbounds ptr, ptr %t41, i32 %t29 store ptr %t25, ptr %t42 %t43 = add i32 %t29, 1 store i32 %t43, ptr %t26 br label %ret ret: ret void } define i32 @fn_is_toggled_layer(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_toggled_layers %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_toggled_layers %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str1761, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define i32 @fn_is_model(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_find_arch_id(ptr %t1) %t3 = icmp sgt i32 %t2, 0 %t4 = zext i1 %t3 to i32 store i32 %t4, ptr %retval br label %ret ret: %t5 = load i32, ptr %retval ret i32 %t5 } define void @fn_loc_reset() { entry: store i32 0, ptr @g_nloc br label %ret ret: ret void } define void @fn_loc_push(ptr %arg_name, ptr %arg_r, ptr %arg_ty) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_r, ptr %t1 store ptr %arg_ty, ptr %t2 %t3 = load ptr, ptr @g_loc_blk %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = getelementptr %LSlice, ptr null, i32 1 %t8 = ptrtoint ptr %t7 to i64 %t9 = call ptr @malloc(i64 %t8) %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 store ptr null, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 store i32 0, ptr %t11 %t12 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 2 store i32 0, ptr %t12 store ptr %t9, ptr @g_loc_blk br label %ifend2 ifend2: %t13 = load i32, ptr @g_nloc %t14 = load ptr, ptr @g_loc_name %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp slt i32 %t13, %t16 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %else4 then3: %t20 = load ptr, ptr @g_loc_name %t21 = load i32, ptr @g_nloc %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok6, label %ixbad7 ixbad7: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str1762, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok6: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t0 store ptr %t29, ptr %t28 %t30 = load ptr, ptr @g_loc_reg %t31 = load i32, ptr @g_nloc %t32 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t35 = load i32, ptr %t34 %t36 = icmp ult i32 %t31, %t35 br i1 %t36, label %ixok8, label %ixbad9 ixbad9: %t37 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t37, ptr @.fmt_bounds, ptr @.str1763, i32 %t31, i32 %t35) call void @exit(i32 1) unreachable ixok8: %t38 = getelementptr inbounds ptr, ptr %t33, i32 %t31 %t39 = load ptr, ptr %t1 store ptr %t39, ptr %t38 %t40 = load ptr, ptr @g_loc_ty %t41 = load i32, ptr @g_nloc %t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t45 = load i32, ptr %t44 %t46 = icmp ult i32 %t41, %t45 br i1 %t46, label %ixok10, label %ixbad11 ixbad11: %t47 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t47, ptr @.fmt_bounds, ptr @.str1764, i32 %t41, i32 %t45) call void @exit(i32 1) unreachable ixok10: %t48 = getelementptr inbounds ptr, ptr %t43, i32 %t41 %t49 = load ptr, ptr %t2 store ptr %t49, ptr %t48 %t50 = load ptr, ptr @g_loc_mut %t51 = load i32, ptr @g_nloc %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp ult i32 %t51, %t55 br i1 %t56, label %ixok12, label %ixbad13 ixbad13: %t57 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t57, ptr @.fmt_bounds, ptr @.str1765, i32 %t51, i32 %t55) call void @exit(i32 1) unreachable ixok12: %t58 = getelementptr inbounds i32, ptr %t53, i32 %t51 store i32 1, ptr %t58 br label %ifend5 else4: %t59 = load ptr, ptr @g_loc_name %t60 = load ptr, ptr %t0 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t62 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 2 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t64 = load i32, ptr %t61 %t65 = load i32, ptr %t62 %t66 = icmp sge i32 %t64, %t65 br i1 %t66, label %grow14, label %put15 grow14: %t67 = mul i32 %t65, 2 %t68 = icmp eq i32 %t65, 0 %t69 = select i1 %t68, i32 8, i32 %t67 %t70 = getelementptr ptr, ptr null, i32 1 %t71 = ptrtoint ptr %t70 to i64 %t72 = zext i32 %t69 to i64 %t73 = mul i64 %t72, %t71 %t74 = load ptr, ptr %t63 %t75 = call ptr @realloc(ptr %t74, i64 %t73) store ptr %t75, ptr %t63 store i32 %t69, ptr %t62 br label %put15 put15: %t76 = load ptr, ptr %t63 %t77 = getelementptr inbounds ptr, ptr %t76, i32 %t64 store ptr %t60, ptr %t77 %t78 = add i32 %t64, 1 store i32 %t78, ptr %t61 %t79 = load ptr, ptr @g_loc_reg %t80 = load ptr, ptr %t1 %t81 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 1 %t82 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 2 %t83 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0 %t84 = load i32, ptr %t81 %t85 = load i32, ptr %t82 %t86 = icmp sge i32 %t84, %t85 br i1 %t86, label %grow16, label %put17 grow16: %t87 = mul i32 %t85, 2 %t88 = icmp eq i32 %t85, 0 %t89 = select i1 %t88, i32 8, i32 %t87 %t90 = getelementptr ptr, ptr null, i32 1 %t91 = ptrtoint ptr %t90 to i64 %t92 = zext i32 %t89 to i64 %t93 = mul i64 %t92, %t91 %t94 = load ptr, ptr %t83 %t95 = call ptr @realloc(ptr %t94, i64 %t93) store ptr %t95, ptr %t83 store i32 %t89, ptr %t82 br label %put17 put17: %t96 = load ptr, ptr %t83 %t97 = getelementptr inbounds ptr, ptr %t96, i32 %t84 store ptr %t80, ptr %t97 %t98 = add i32 %t84, 1 store i32 %t98, ptr %t81 %t99 = load ptr, ptr @g_loc_ty %t100 = load ptr, ptr %t2 %t101 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t102 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 2 %t103 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 0 %t104 = load i32, ptr %t101 %t105 = load i32, ptr %t102 %t106 = icmp sge i32 %t104, %t105 br i1 %t106, label %grow18, label %put19 grow18: %t107 = mul i32 %t105, 2 %t108 = icmp eq i32 %t105, 0 %t109 = select i1 %t108, i32 8, i32 %t107 %t110 = getelementptr ptr, ptr null, i32 1 %t111 = ptrtoint ptr %t110 to i64 %t112 = zext i32 %t109 to i64 %t113 = mul i64 %t112, %t111 %t114 = load ptr, ptr %t103 %t115 = call ptr @realloc(ptr %t114, i64 %t113) store ptr %t115, ptr %t103 store i32 %t109, ptr %t102 br label %put19 put19: %t116 = load ptr, ptr %t103 %t117 = getelementptr inbounds ptr, ptr %t116, i32 %t104 store ptr %t100, ptr %t117 %t118 = add i32 %t104, 1 store i32 %t118, ptr %t101 %t119 = load ptr, ptr @g_loc_mut %t120 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t121 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 2 %t122 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t123 = load i32, ptr %t120 %t124 = load i32, ptr %t121 %t125 = icmp sge i32 %t123, %t124 br i1 %t125, label %grow20, label %put21 grow20: %t126 = mul i32 %t124, 2 %t127 = icmp eq i32 %t124, 0 %t128 = select i1 %t127, i32 8, i32 %t126 %t129 = getelementptr i32, ptr null, i32 1 %t130 = ptrtoint ptr %t129 to i64 %t131 = zext i32 %t128 to i64 %t132 = mul i64 %t131, %t130 %t133 = load ptr, ptr %t122 %t134 = call ptr @realloc(ptr %t133, i64 %t132) store ptr %t134, ptr %t122 store i32 %t128, ptr %t121 br label %put21 put21: %t135 = load ptr, ptr %t122 %t136 = getelementptr inbounds i32, ptr %t135, i32 %t123 store i32 1, ptr %t136 %t137 = add i32 %t123, 1 store i32 %t137, ptr %t120 br label %ifend5 ifend5: br label %wcond22 wcond22: %t138 = load ptr, ptr @g_loc_blk %t139 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 1 %t140 = load i32, ptr %t139 %t141 = load i32, ptr @g_nloc %t142 = icmp sle i32 %t140, %t141 %t143 = zext i1 %t142 to i32 %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %wbody23, label %wend24 wbody23: %t145 = load ptr, ptr @g_loc_blk %t146 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 1 %t147 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 2 %t148 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 0 %t149 = load i32, ptr %t146 %t150 = load i32, ptr %t147 %t151 = icmp sge i32 %t149, %t150 br i1 %t151, label %grow25, label %put26 grow25: %t152 = mul i32 %t150, 2 %t153 = icmp eq i32 %t150, 0 %t154 = select i1 %t153, i32 8, i32 %t152 %t155 = getelementptr i32, ptr null, i32 1 %t156 = ptrtoint ptr %t155 to i64 %t157 = zext i32 %t154 to i64 %t158 = mul i64 %t157, %t156 %t159 = load ptr, ptr %t148 %t160 = call ptr @realloc(ptr %t159, i64 %t158) store ptr %t160, ptr %t148 store i32 %t154, ptr %t147 br label %put26 put26: %t161 = load ptr, ptr %t148 %t162 = getelementptr inbounds i32, ptr %t161, i32 %t149 store i32 0, ptr %t162 %t163 = add i32 %t149, 1 store i32 %t163, ptr %t146 br label %wcond22 wend24: %t164 = load ptr, ptr @g_loc_blk %t165 = load i32, ptr @g_nloc %t166 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 0 %t167 = load ptr, ptr %t166 %t168 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 1 %t169 = load i32, ptr %t168 %t170 = icmp ult i32 %t165, %t169 br i1 %t170, label %ixok27, label %ixbad28 ixbad28: %t171 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t171, ptr @.fmt_bounds, ptr @.str1766, i32 %t165, i32 %t169) call void @exit(i32 1) unreachable ixok27: %t172 = getelementptr inbounds i32, ptr %t167, i32 %t165 %t173 = sub i32 0, 1 store i32 %t173, ptr %t172 %t174 = load i32, ptr @g_nloc %t175 = add i32 %t174, 1 store i32 %t175, ptr @g_nloc br label %ret ret: ret void } define void @fn_loc_mark_declared() { entry: %t0 = load i32, ptr @g_nloc %t1 = icmp sgt i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: %t4 = load ptr, ptr @g_loc_blk %t5 = load i32, ptr @g_nloc %t6 = sub i32 %t5, 1 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp ult i32 %t6, %t10 br i1 %t11, label %ixok3, label %ixbad4 ixbad4: %t12 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t12, ptr @.fmt_bounds, ptr @.str1767, i32 %t6, i32 %t10) call void @exit(i32 1) unreachable ixok3: %t13 = getelementptr inbounds i32, ptr %t8, i32 %t6 %t14 = load i32, ptr @g_g_blk_cur store i32 %t14, ptr %t13 br label %ifend2 ifend2: br label %ret ret: ret void } define void @fn_loc_check_redeclared(ptr %arg_name) { entry: %t0 = alloca ptr %t5 = alloca i32 %t11 = alloca i32 store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr @g_loc_blk %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 0, ptr %t5 br label %wcond3 wcond3: %t6 = load i32, ptr %t5 %t7 = load i32, ptr @g_nloc %t8 = icmp slt i32 %t6, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody4, label %wend5 wbody4: %t12 = load ptr, ptr @g_loc_name %t13 = load i32, ptr %t5 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok6, label %ixbad7 ixbad7: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str1768, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok6: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t21, ptr %t22) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t11 br i1 %t24, label %sc8, label %scend9 sc8: %t26 = load ptr, ptr @g_loc_blk %t27 = load i32, ptr %t5 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok10, label %ixbad11 ixbad11: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str1769, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok10: %t34 = getelementptr inbounds i32, ptr %t29, i32 %t27 %t35 = load i32, ptr %t34 %t36 = load i32, ptr @g_g_blk_cur %t37 = icmp eq i32 %t35, %t36 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t11 br label %scend9 scend9: %t41 = load i32, ptr %t11 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then12, label %ifend14 then12: %t43 = load ptr, ptr %t0 %t44 = call ptr @lp_str_concat(ptr @.str1770, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str1771) call void @fn_perr(ptr %t45) br label %ifend14 ifend14: %t46 = load i32, ptr %t5 %t47 = add i32 %t46, 1 store i32 %t47, ptr %t5 br label %wcond3 wend5: br label %ret ret: ret void } define void @fn_loc_set_mut(i32 %arg_m) { entry: %t0 = alloca i32 store i32 %arg_m, ptr %t0 %t1 = load i32, ptr @g_nloc %t2 = icmp sgt i32 %t1, 0 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr @g_loc_mut %t6 = load i32, ptr @g_nloc %t7 = sub i32 %t6, 1 %t8 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 %t7, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str1772, i32 %t7, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds i32, ptr %t9, i32 %t7 %t15 = load i32, ptr %t0 store i32 %t15, ptr %t14 br label %ifend2 ifend2: br label %ret ret: ret void } define i32 @fn_loc_find(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t3 = alloca i32 store ptr %arg_name, ptr %t0 %t1 = load i32, ptr @g_nloc %t2 = sub i32 %t1, 1 store i32 %t2, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = icmp sge i32 %t4, 0 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_loc_name %t9 = load i32, ptr %t3 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str1773, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = load ptr, ptr %t0 %t19 = call i32 @lp_str_eq(ptr %t17, ptr %t18) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then5, label %ifend7 then5: %t21 = load i32, ptr %t3 store i32 %t21, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t3 %t23 = sub i32 %t22, 1 store i32 %t23, ptr %t3 br label %wcond0 wend2: %t24 = sub i32 0, 1 store i32 %t24, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define i32 @fn_hexdig(i32 %arg_n) { entry: %retval = alloca i32 %t0 = alloca i32 store i32 %arg_n, ptr %t0 %t1 = load i32, ptr %t0 %t2 = icmp slt i32 %t1, 10 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load i32, ptr %t0 %t6 = add i32 48, %t5 store i32 %t6, ptr %retval br label %ret ifend2: %t7 = load i32, ptr %t0 %t8 = add i32 55, %t7 store i32 %t8, ptr %retval br label %ret ret: %t9 = load i32, ptr %retval ret i32 %t9 } define ptr @fn_emit_str_const(ptr %arg_s) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr %t10 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load i32, ptr @g_ll_str %t2 = call ptr @fn_itoa(i32 %t1) %t3 = call ptr @lp_str_concat(ptr @.str1774, ptr %t2) store ptr %t3, ptr %t4 %t5 = load i32, ptr @g_ll_str %t6 = add i32 %t5, 1 store i32 %t6, ptr @g_ll_str %t7 = load ptr, ptr %t0 %t8 = call i64 @strlen(ptr %t7) %t9 = trunc i64 %t8 to i32 store i32 %t9, ptr %t10 %t11 = load ptr, ptr %t4 call void @fn_emith(ptr %t11) call void @fn_emith(ptr @.str1775) %t12 = load i32, ptr %t10 %t13 = add i32 %t12, 1 %t14 = call ptr @fn_itoa(i32 %t13) call void @fn_emith(ptr %t14) call void @fn_emith(ptr @.str1776) %t15 = load ptr, ptr %t0 call void @fn_emit_escaped(ptr %t15) call void @fn_emith(ptr @.str1777) %t16 = load ptr, ptr %t4 store ptr %t16, ptr %retval br label %ret ret: %t17 = load ptr, ptr %retval ret ptr %t17 } define void @fn_emit_escaped(ptr %arg_s) { entry: %t0 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 %t16 = alloca i32 %t17 = alloca i32 %t18 = alloca i32 %t19 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 store i32 0, ptr %t5 br label %wcond0 wcond0: %t6 = load i32, ptr %t5 %t7 = load i32, ptr %t4 %t8 = icmp slt i32 %t6, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = load i32, ptr %t5 %t13 = getelementptr inbounds i8, ptr %t11, i32 %t12 %t14 = load i8, ptr %t13 %t15 = zext i8 %t14 to i32 store i32 %t15, ptr %t16 %t20 = load i32, ptr %t16 %t21 = icmp eq i32 %t20, 34 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t19 br i1 %t23, label %scend4, label %sc3 sc3: %t25 = load i32, ptr %t16 %t26 = icmp eq i32 %t25, 92 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t19 br label %scend4 scend4: %t30 = load i32, ptr %t19 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t18 br i1 %t31, label %scend6, label %sc5 sc5: %t33 = load i32, ptr %t16 %t34 = icmp slt i32 %t33, 32 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t18 br label %scend6 scend6: %t38 = load i32, ptr %t18 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t17 br i1 %t39, label %scend8, label %sc7 sc7: %t41 = load i32, ptr %t16 %t42 = icmp sgt i32 %t41, 126 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t17 br label %scend8 scend8: %t46 = load i32, ptr %t17 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then9, label %else10 then9: %t48 = load ptr, ptr @g_head call void @fn_buf_putc(ptr %t48, i32 92) %t49 = load ptr, ptr @g_head %t50 = load i32, ptr %t16 %t51 = sdiv i32 %t50, 16 %t52 = call i32 @fn_hexdig(i32 %t51) call void @fn_buf_putc(ptr %t49, i32 %t52) %t53 = load ptr, ptr @g_head %t54 = load i32, ptr %t16 %t55 = srem i32 %t54, 16 %t56 = call i32 @fn_hexdig(i32 %t55) call void @fn_buf_putc(ptr %t53, i32 %t56) br label %ifend11 else10: %t57 = load ptr, ptr @g_head %t58 = load i32, ptr %t16 call void @fn_buf_putc(ptr %t57, i32 %t58) br label %ifend11 ifend11: %t59 = load i32, ptr %t5 %t60 = add i32 %t59, 1 store i32 %t60, ptr %t5 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_int_lit_code(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = icmp ne ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 2 %t12 = load i32, ptr %t11 %t13 = call ptr @fn_itoa(i32 %t12) store ptr %t13, ptr %retval br label %ret ret: %t14 = load ptr, ptr %retval ret ptr %t14 } define ptr @fn_global_init(ptr %arg_d) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t25 = alloca ptr %t34 = alloca i32 %t55 = alloca i32 %t56 = alloca i32 %t89 = alloca i32 %t117 = alloca i32 store ptr %arg_d, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 4 %t4 = load ptr, ptr %t3 %t5 = icmp eq ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t1 br i1 %t7, label %scend1, label %sc0 sc0: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 3 %t11 = load ptr, ptr %t10 %t12 = call i32 @fn_is_fp(ptr %t11) %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t1 br label %scend1 scend1: %t15 = load i32, ptr %t1 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 3 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_llty(ptr %t19) %t21 = call ptr @fn_zero_of(ptr %t20) store ptr %t21, ptr %retval br label %ret ifend4: %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 4 %t24 = load ptr, ptr %t23 store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 0 %t28 = load i32, ptr %t27 %t29 = icmp eq i32 %t28, 30 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then5, label %ifend7 then5: %t32 = load ptr, ptr %t25 %t33 = call ptr @fn_int_lit_code(ptr %t32) store ptr %t33, ptr %retval br label %ret ifend7: %t35 = load ptr, ptr %t25 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 0 %t37 = load i32, ptr %t36 %t38 = icmp eq i32 %t37, 40 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t34 br i1 %t40, label %scend9, label %sc8 sc8: %t42 = load ptr, ptr %t25 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 0 %t44 = load i32, ptr %t43 %t45 = icmp eq i32 %t44, 32 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t34 br label %scend9 scend9: %t49 = load i32, ptr %t34 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then10, label %ifend12 then10: %t51 = load ptr, ptr %t25 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 2 %t53 = load i32, ptr %t52 %t54 = call ptr @fn_itoa(i32 %t53) store ptr %t54, ptr %retval br label %ret ifend12: %t57 = load ptr, ptr %t25 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 0 %t59 = load i32, ptr %t58 %t60 = icmp eq i32 %t59, 38 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t56 br i1 %t62, label %sc13, label %scend14 sc13: %t64 = load ptr, ptr %t25 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 1 %t66 = load ptr, ptr %t65 %t67 = call i32 @lp_str_eq(ptr %t66, ptr @.str1778) %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t56 br label %scend14 scend14: %t70 = load i32, ptr %t56 %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t55 br i1 %t71, label %sc15, label %scend16 sc15: %t73 = load ptr, ptr %t25 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 4 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 0 %t77 = load i32, ptr %t76 %t78 = icmp eq i32 %t77, 30 %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 %t81 = zext i1 %t80 to i32 store i32 %t81, ptr %t55 br label %scend16 scend16: %t82 = load i32, ptr %t55 %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then17, label %ifend19 then17: %t84 = load ptr, ptr %t25 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 4 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_int_lit_code(ptr %t86) %t88 = call ptr @lp_str_concat(ptr @.str1779, ptr %t87) store ptr %t88, ptr %retval br label %ret ifend19: %t90 = load ptr, ptr %t25 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 0 %t92 = load i32, ptr %t91 %t93 = icmp eq i32 %t92, 35 %t94 = zext i1 %t93 to i32 %t95 = icmp ne i32 %t94, 0 %t96 = zext i1 %t95 to i32 store i32 %t96, ptr %t89 br i1 %t95, label %sc20, label %scend21 sc20: %t97 = load ptr, ptr %t25 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 4 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 0 %t101 = load i32, ptr %t100 %t102 = icmp eq i32 %t101, 33 %t103 = zext i1 %t102 to i32 %t104 = icmp ne i32 %t103, 0 %t105 = zext i1 %t104 to i32 store i32 %t105, ptr %t89 br label %scend21 scend21: %t106 = load i32, ptr %t89 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then22, label %ifend24 then22: %t108 = load ptr, ptr %t25 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 4 %t110 = load ptr, ptr %t109 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1 %t112 = load ptr, ptr %t111 %t113 = load ptr, ptr %t25 %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 1 %t115 = load ptr, ptr %t114 %t116 = call i32 @fn_enum_ordinal(ptr %t112, ptr %t115) store i32 %t116, ptr %t117 %t118 = load i32, ptr %t117 %t119 = icmp sge i32 %t118, 0 %t120 = zext i1 %t119 to i32 %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then25, label %ifend27 then25: %t122 = load i32, ptr %t117 %t123 = call ptr @fn_itoa(i32 %t122) store ptr %t123, ptr %retval br label %ret ifend27: br label %ifend24 ifend24: %t124 = load ptr, ptr %t0 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 3 %t126 = load ptr, ptr %t125 %t127 = call ptr @fn_llty(ptr %t126) %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str1780) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then28, label %ifend30 then28: store ptr @.str1781, ptr %retval br label %ret ifend30: store ptr @.str1782, ptr %retval br label %ret ret: %t130 = load ptr, ptr %retval ret ptr %t130 } define i32 @fn_global_needs_init_code(ptr %arg_d) { entry: %retval = alloca i32 %t0 = alloca ptr %t15 = alloca ptr %t16 = alloca i32 %t17 = alloca i32 %t18 = alloca i32 %t55 = alloca i32 %t56 = alloca i32 %t84 = alloca i32 store ptr %arg_d, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3 %t9 = load ptr, ptr %t8 %t10 = call i32 @fn_is_fp(ptr %t9) %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 4 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t19 = load ptr, ptr %t15 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 30 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t18 br i1 %t24, label %scend7, label %sc6 sc6: %t26 = load ptr, ptr %t15 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 0 %t28 = load i32, ptr %t27 %t29 = icmp eq i32 %t28, 40 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t18 br label %scend7 scend7: %t33 = load i32, ptr %t18 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t17 br i1 %t34, label %scend9, label %sc8 sc8: %t36 = load ptr, ptr %t15 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 0 %t38 = load i32, ptr %t37 %t39 = icmp eq i32 %t38, 32 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t17 br label %scend9 scend9: %t43 = load i32, ptr %t17 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t16 br i1 %t44, label %scend11, label %sc10 sc10: %t46 = load ptr, ptr %t15 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 0 %t48 = load i32, ptr %t47 %t49 = icmp eq i32 %t48, 43 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t16 br label %scend11 scend11: %t53 = load i32, ptr %t16 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then12, label %ifend14 then12: store i32 0, ptr %retval br label %ret ifend14: %t57 = load ptr, ptr %t15 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 0 %t59 = load i32, ptr %t58 %t60 = icmp eq i32 %t59, 38 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t56 br i1 %t62, label %sc15, label %scend16 sc15: %t64 = load ptr, ptr %t15 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 1 %t66 = load ptr, ptr %t65 %t67 = call i32 @lp_str_eq(ptr %t66, ptr @.str1783) %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t56 br label %scend16 scend16: %t70 = load i32, ptr %t56 %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t55 br i1 %t71, label %sc17, label %scend18 sc17: %t73 = load ptr, ptr %t15 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 4 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 0 %t77 = load i32, ptr %t76 %t78 = icmp eq i32 %t77, 30 %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 %t81 = zext i1 %t80 to i32 store i32 %t81, ptr %t55 br label %scend18 scend18: %t82 = load i32, ptr %t55 %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then19, label %ifend21 then19: store i32 0, ptr %retval br label %ret ifend21: %t85 = load ptr, ptr %t15 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 0 %t87 = load i32, ptr %t86 %t88 = icmp eq i32 %t87, 35 %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 store i32 %t91, ptr %t84 br i1 %t90, label %sc22, label %scend23 sc22: %t92 = load ptr, ptr %t15 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 4 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 0 %t96 = load i32, ptr %t95 %t97 = icmp eq i32 %t96, 33 %t98 = zext i1 %t97 to i32 %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t84 br label %scend23 scend23: %t101 = load i32, ptr %t84 %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then24, label %ifend26 then24: %t103 = load ptr, ptr %t15 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 4 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 1 %t107 = load ptr, ptr %t106 %t108 = load ptr, ptr %t15 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 1 %t110 = load ptr, ptr %t109 %t111 = call i32 @fn_enum_ordinal(ptr %t107, ptr %t110) %t112 = icmp sge i32 %t111, 0 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then27, label %ifend29 then27: store i32 0, ptr %retval br label %ret ifend29: br label %ifend26 ifend26: store i32 1, ptr %retval br label %ret ret: %t115 = load i32, ptr %retval ret i32 %t115 } define void @fn_emit_global_init_fn() { entry: %t1 = alloca ptr %t4 = alloca ptr %t6 = alloca i32 %t24 = alloca ptr %t25 = alloca i32 %t62 = alloca ptr %t68 = alloca ptr store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself store ptr @.str1784, ptr @g_ret_ty %t0 = call ptr @fn_buf_new() store ptr %t0, ptr %t1 %t2 = call ptr @fn_buf_new() store ptr %t2, ptr @g_falloc %t3 = load ptr, ptr @g_code store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t1 store ptr %t5, ptr @g_code store i32 0, ptr %t6 br label %wcond0 wcond0: %t7 = load i32, ptr %t6 %t8 = load ptr, ptr @g_prog %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp slt i32 %t7, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %wbody1, label %wend2 wbody1: %t14 = load ptr, ptr @g_prog %t15 = load i32, ptr %t6 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str1785, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %t24 %t26 = load ptr, ptr %t24 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 0 %t28 = load i32, ptr %t27 %t29 = icmp eq i32 %t28, 2 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t25 br i1 %t31, label %sc5, label %scend6 sc5: %t33 = load ptr, ptr %t24 %t34 = call i32 @fn_global_needs_init_code(ptr %t33) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t25 br label %scend6 scend6: %t37 = load i32, ptr %t25 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then7, label %ifend9 then7: %t39 = load ptr, ptr %t24 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 9 %t41 = load ptr, ptr %t40 store ptr %t41, ptr @g_g_err_file %t42 = load ptr, ptr %t24 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 8 %t44 = load i32, ptr %t43 store i32 %t44, ptr @g_g_err_line %t45 = load ptr, ptr %t24 %t46 = call i32 @fn_is_port_var(ptr %t45) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then10, label %ifend12 then10: %t48 = load ptr, ptr %t24 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 4 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 9 %t52 = load ptr, ptr %t51 store ptr %t52, ptr @g_g_err_file %t53 = load ptr, ptr %t24 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 4 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 8 %t57 = load i32, ptr %t56 store i32 %t57, ptr @g_g_err_line store i32 1, ptr @g_g_vis_off br label %ifend12 ifend12: %t58 = load ptr, ptr %t24 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 4 %t60 = load ptr, ptr %t59 %t61 = call ptr @fn_emit_expr(ptr %t60) store ptr %t61, ptr %t62 store i32 0, ptr @g_g_vis_off %t63 = load ptr, ptr %t62 %t64 = load ptr, ptr %t24 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 3 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_coerce_code(ptr %t63, ptr %t66) store ptr %t67, ptr %t68 call void @fn_emit(ptr @.str1786) %t69 = load ptr, ptr %t24 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 3 %t71 = load ptr, ptr %t70 %t72 = call ptr @fn_llty(ptr %t71) call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str1787) %t73 = load ptr, ptr %t68 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str1788) %t74 = load ptr, ptr %t24 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 1 %t76 = load ptr, ptr %t75 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str1789) br label %ifend9 ifend9: %t77 = load i32, ptr %t6 %t78 = add i32 %t77, 1 store i32 %t78, ptr %t6 br label %wcond0 wend2: call void @fn_emit(ptr @.str1790) %t79 = load ptr, ptr %t4 store ptr %t79, ptr @g_code call void @fn_emit(ptr @.str1791) %t80 = load ptr, ptr @g_falloc %t81 = call ptr @fn_buf_str(ptr %t80) call void @fn_emit(ptr %t81) %t82 = load ptr, ptr %t1 %t83 = call ptr @fn_buf_str(ptr %t82) call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str1792) br label %ret ret: ret void } define void @fn_emit_header() { entry: %t12 = alloca i32 %t30 = alloca ptr %t37 = alloca i32 %t43 = alloca i32 %t80 = alloca i32 %t119 = alloca i32 %t169 = alloca ptr %t176 = alloca i32 %t182 = alloca i32 %t219 = alloca i32 call void @fn_emith(ptr @.str1793) call void @fn_emith(ptr @.str1794) call void @fn_emith(ptr @.str1795) call void @fn_emith(ptr @.str1796) call void @fn_emith(ptr @.str1797) call void @fn_emith(ptr @.str1798) call void @fn_emith(ptr @.str1799) call void @fn_emith(ptr @.str1800) call void @fn_emith(ptr @.str1801) %t0 = load i32, ptr @g_g_target_win %t1 = icmp eq i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: call void @fn_emith(ptr @.str1802) call void @fn_emith(ptr @.str1803) call void @fn_emith(ptr @.str1804) call void @fn_emith(ptr @.str1805) br label %ifend2 ifend2: call void @fn_emith(ptr @.str1806) call void @fn_emith(ptr @.str1807) call void @fn_emith(ptr @.str1808) call void @fn_emith(ptr @.str1809) call void @fn_emith(ptr @.str1810) call void @fn_emith(ptr @.str1811) call void @fn_emith(ptr @.str1812) call void @fn_emith(ptr @.str1813) call void @fn_emith(ptr @.str1814) call void @fn_emith(ptr @.str1815) call void @fn_emith(ptr @.str1816) call void @fn_emith(ptr @.str1817) call void @fn_emith(ptr @.str1818) call void @fn_emith(ptr @.str1819) call void @fn_emith(ptr @.str1820) call void @fn_emith(ptr @.str1821) call void @fn_emith(ptr @.str1822) call void @fn_emith(ptr @.str1823) call void @fn_emith(ptr @.str1824) call void @fn_emith(ptr @.str1825) call void @fn_emith(ptr @.str1826) call void @fn_emith(ptr @.str1827) call void @fn_emith(ptr @.str1828) call void @fn_emith(ptr @.str1829) call void @fn_emith(ptr @.str1830) call void @fn_emith(ptr @.str1831) call void @fn_emith(ptr @.str1832) call void @fn_emith(ptr @.str1833) call void @fn_emith(ptr @.str1834) call void @fn_emith(ptr @.str1835) call void @fn_emith(ptr @.str1836) call void @fn_emith(ptr @.str1837) call void @fn_emith(ptr @.str1838) call void @fn_emith(ptr @.str1839) call void @fn_emith(ptr @.str1840) call void @fn_emith(ptr @.str1841) call void @fn_emith(ptr @.str1842) call void @fn_emith(ptr @.str1843) call void @fn_emith(ptr @.str1844) call void @fn_emith(ptr @.str1845) call void @fn_emith(ptr @.str1846) %t4 = load i32, ptr @g_g_target_win %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then3, label %else4 then3: call void @fn_emit_win_prelude() br label %ifend5 else4: call void @fn_emith(ptr @.str1847) call void @fn_emith(ptr @.str1848) br label %ifend5 ifend5: call void @fn_emith(ptr @.str1849) call void @fn_emith(ptr @.str1850) call void @fn_emith(ptr @.str1851) call void @fn_emith(ptr @.str1852) call void @fn_emith(ptr @.str1853) call void @fn_emith(ptr @.str1854) call void @fn_emith(ptr @.str1855) %t6 = load ptr, ptr @g_g_game_name %t7 = call i64 @strlen(ptr %t6) %t8 = trunc i64 %t7 to i32 %t9 = add i32 %t8, 1 %t10 = call ptr @fn_itoa(i32 %t9) call void @fn_emith(ptr %t10) call void @fn_emith(ptr @.str1856) %t11 = load ptr, ptr @g_g_game_name call void @fn_emit_escaped(ptr %t11) call void @fn_emith(ptr @.str1857) call void @fn_emith(ptr @.str1858) store i32 0, ptr %t12 br label %wcond6 wcond6: %t13 = load i32, ptr %t12 %t14 = load ptr, ptr @g_prog %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp slt i32 %t13, %t16 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody7, label %wend8 wbody7: %t20 = load ptr, ptr @g_prog %t21 = load i32, ptr %t12 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok9, label %ixbad10 ixbad10: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str1859, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok9: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 0 %t33 = load i32, ptr %t32 %t34 = icmp eq i32 %t33, 8 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then11, label %ifend13 then11: store i32 0, ptr %t37 br label %wcond14 wcond14: %t38 = load i32, ptr %t37 %t39 = load i32, ptr %t12 %t40 = icmp slt i32 %t38, %t39 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %wbody15, label %wend16 wbody15: %t44 = load ptr, ptr @g_prog %t45 = load i32, ptr %t37 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok17, label %ixbad18 ixbad18: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str1860, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok17: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 0 %t55 = load i32, ptr %t54 %t56 = icmp eq i32 %t55, 8 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t43 br i1 %t58, label %sc19, label %scend20 sc19: %t60 = load ptr, ptr @g_prog %t61 = load i32, ptr %t37 %t62 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ult i32 %t61, %t65 br i1 %t66, label %ixok21, label %ixbad22 ixbad22: %t67 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t67, ptr @.fmt_bounds, ptr @.str1861, i32 %t61, i32 %t65) call void @exit(i32 1) unreachable ixok21: %t68 = getelementptr inbounds ptr, ptr %t63, i32 %t61 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 %t72 = load ptr, ptr %t30 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 %t74 = load ptr, ptr %t73 %t75 = call i32 @lp_str_eq(ptr %t71, ptr %t74) %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t43 br label %scend20 scend20: %t78 = load i32, ptr %t43 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then23, label %ifend25 then23: %t81 = load i32, ptr %t37 %t82 = load i32, ptr @g_g_prog_user_end %t83 = icmp slt i32 %t81, %t82 %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t80 br i1 %t85, label %sc26, label %scend27 sc26: %t87 = load i32, ptr %t12 %t88 = load i32, ptr @g_g_prog_user_end %t89 = icmp sge i32 %t87, %t88 %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t80 br label %scend27 scend27: %t93 = load i32, ptr %t80 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then28, label %ifend30 then28: %t95 = load ptr, ptr %t30 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 %t98 = call ptr @lp_str_concat(ptr @.str1862, ptr %t97) %t99 = call ptr @lp_str_concat(ptr %t98, ptr @.str1863) call void @fn_perr(ptr %t99) br label %ifend30 ifend30: %t100 = load ptr, ptr %t30 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 1 %t102 = load ptr, ptr %t101 %t103 = call ptr @lp_str_concat(ptr @.str1864, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str1865) call void @fn_perr(ptr %t104) br label %ifend25 ifend25: %t105 = load i32, ptr %t37 %t106 = add i32 %t105, 1 store i32 %t106, ptr %t37 br label %wcond14 wend16: %t107 = load ptr, ptr %t30 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 1 %t109 = load ptr, ptr %t108 %t110 = call ptr @fn_layout_ty(ptr %t109) call void @fn_emith(ptr %t110) call void @fn_emith(ptr @.str1866) %t111 = load ptr, ptr %t30 %t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 7 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %LSlice, ptr %t113, i32 0, i32 1 %t115 = load i32, ptr %t114 %t116 = icmp eq i32 %t115, 0 %t117 = zext i1 %t116 to i32 %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then31, label %ifend33 then31: call void @fn_emith(ptr @.str1867) br label %ifend33 ifend33: store i32 0, ptr %t119 br label %wcond34 wcond34: %t120 = load i32, ptr %t119 %t121 = load ptr, ptr %t30 %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 7 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 1 %t125 = load i32, ptr %t124 %t126 = icmp slt i32 %t120, %t125 %t127 = zext i1 %t126 to i32 %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %wbody35, label %wend36 wbody35: %t129 = load i32, ptr %t119 %t130 = icmp sgt i32 %t129, 0 %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then37, label %ifend39 then37: call void @fn_emith(ptr @.str1868) br label %ifend39 ifend39: %t133 = load ptr, ptr %t30 %t134 = getelementptr inbounds %Cmp_Node, ptr %t133, i32 0, i32 7 %t135 = load ptr, ptr %t134 %t136 = load i32, ptr %t119 %t137 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 0 %t138 = load ptr, ptr %t137 %t139 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 1 %t140 = load i32, ptr %t139 %t141 = icmp ult i32 %t136, %t140 br i1 %t141, label %ixok40, label %ixbad41 ixbad41: %t142 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t142, ptr @.fmt_bounds, ptr @.str1869, i32 %t136, i32 %t140) call void @exit(i32 1) unreachable ixok40: %t143 = getelementptr inbounds ptr, ptr %t138, i32 %t136 %t144 = load ptr, ptr %t143 %t145 = getelementptr inbounds %Cmp_Node, ptr %t144, i32 0, i32 3 %t146 = load ptr, ptr %t145 %t147 = call ptr @fn_llty(ptr %t146) call void @fn_emith(ptr %t147) %t148 = load i32, ptr %t119 %t149 = add i32 %t148, 1 store i32 %t149, ptr %t119 br label %wcond34 wend36: call void @fn_emith(ptr @.str1870) br label %ifend13 ifend13: %t150 = load i32, ptr %t12 %t151 = add i32 %t150, 1 store i32 %t151, ptr %t12 br label %wcond6 wend8: store i32 0, ptr %t12 br label %wcond42 wcond42: %t152 = load i32, ptr %t12 %t153 = load ptr, ptr @g_prog %t154 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 1 %t155 = load i32, ptr %t154 %t156 = icmp slt i32 %t152, %t155 %t157 = zext i1 %t156 to i32 %t158 = icmp ne i32 %t157, 0 br i1 %t158, label %wbody43, label %wend44 wbody43: %t159 = load ptr, ptr @g_prog %t160 = load i32, ptr %t12 %t161 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 1 %t164 = load i32, ptr %t163 %t165 = icmp ult i32 %t160, %t164 br i1 %t165, label %ixok45, label %ixbad46 ixbad46: %t166 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t166, ptr @.fmt_bounds, ptr @.str1871, i32 %t160, i32 %t164) call void @exit(i32 1) unreachable ixok45: %t167 = getelementptr inbounds ptr, ptr %t162, i32 %t160 %t168 = load ptr, ptr %t167 store ptr %t168, ptr %t169 %t170 = load ptr, ptr %t169 %t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 0 %t172 = load i32, ptr %t171 %t173 = icmp eq i32 %t172, 2 %t174 = zext i1 %t173 to i32 %t175 = icmp ne i32 %t174, 0 br i1 %t175, label %then47, label %ifend49 then47: store i32 0, ptr %t176 br label %wcond50 wcond50: %t177 = load i32, ptr %t176 %t178 = load i32, ptr %t12 %t179 = icmp slt i32 %t177, %t178 %t180 = zext i1 %t179 to i32 %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %wbody51, label %wend52 wbody51: %t183 = load ptr, ptr @g_prog %t184 = load i32, ptr %t176 %t185 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 0 %t186 = load ptr, ptr %t185 %t187 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 1 %t188 = load i32, ptr %t187 %t189 = icmp ult i32 %t184, %t188 br i1 %t189, label %ixok53, label %ixbad54 ixbad54: %t190 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t190, ptr @.fmt_bounds, ptr @.str1872, i32 %t184, i32 %t188) call void @exit(i32 1) unreachable ixok53: %t191 = getelementptr inbounds ptr, ptr %t186, i32 %t184 %t192 = load ptr, ptr %t191 %t193 = getelementptr inbounds %Cmp_Node, ptr %t192, i32 0, i32 0 %t194 = load i32, ptr %t193 %t195 = icmp eq i32 %t194, 2 %t196 = zext i1 %t195 to i32 %t197 = icmp ne i32 %t196, 0 %t198 = zext i1 %t197 to i32 store i32 %t198, ptr %t182 br i1 %t197, label %sc55, label %scend56 sc55: %t199 = load ptr, ptr @g_prog %t200 = load i32, ptr %t176 %t201 = getelementptr inbounds %LSlice, ptr %t199, i32 0, i32 0 %t202 = load ptr, ptr %t201 %t203 = getelementptr inbounds %LSlice, ptr %t199, i32 0, i32 1 %t204 = load i32, ptr %t203 %t205 = icmp ult i32 %t200, %t204 br i1 %t205, label %ixok57, label %ixbad58 ixbad58: %t206 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t206, ptr @.fmt_bounds, ptr @.str1873, i32 %t200, i32 %t204) call void @exit(i32 1) unreachable ixok57: %t207 = getelementptr inbounds ptr, ptr %t202, i32 %t200 %t208 = load ptr, ptr %t207 %t209 = getelementptr inbounds %Cmp_Node, ptr %t208, i32 0, i32 1 %t210 = load ptr, ptr %t209 %t211 = load ptr, ptr %t169 %t212 = getelementptr inbounds %Cmp_Node, ptr %t211, i32 0, i32 1 %t213 = load ptr, ptr %t212 %t214 = call i32 @lp_str_eq(ptr %t210, ptr %t213) %t215 = icmp ne i32 %t214, 0 %t216 = zext i1 %t215 to i32 store i32 %t216, ptr %t182 br label %scend56 scend56: %t217 = load i32, ptr %t182 %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %then59, label %ifend61 then59: %t220 = load i32, ptr %t176 %t221 = load i32, ptr @g_g_prog_user_end %t222 = icmp slt i32 %t220, %t221 %t223 = zext i1 %t222 to i32 %t224 = icmp ne i32 %t223, 0 %t225 = zext i1 %t224 to i32 store i32 %t225, ptr %t219 br i1 %t224, label %sc62, label %scend63 sc62: %t226 = load i32, ptr %t12 %t227 = load i32, ptr @g_g_prog_user_end %t228 = icmp sge i32 %t226, %t227 %t229 = zext i1 %t228 to i32 %t230 = icmp ne i32 %t229, 0 %t231 = zext i1 %t230 to i32 store i32 %t231, ptr %t219 br label %scend63 scend63: %t232 = load i32, ptr %t219 %t233 = icmp ne i32 %t232, 0 br i1 %t233, label %then64, label %ifend66 then64: %t234 = load ptr, ptr %t169 %t235 = getelementptr inbounds %Cmp_Node, ptr %t234, i32 0, i32 1 %t236 = load ptr, ptr %t235 %t237 = call ptr @lp_str_concat(ptr @.str1874, ptr %t236) %t238 = call ptr @lp_str_concat(ptr %t237, ptr @.str1875) call void @fn_perr(ptr %t238) br label %ifend66 ifend66: %t239 = load ptr, ptr %t169 %t240 = getelementptr inbounds %Cmp_Node, ptr %t239, i32 0, i32 1 %t241 = load ptr, ptr %t240 %t242 = call ptr @lp_str_concat(ptr @.str1876, ptr %t241) %t243 = call ptr @lp_str_concat(ptr %t242, ptr @.str1877) call void @fn_perr(ptr %t243) br label %ifend61 ifend61: %t244 = load i32, ptr %t176 %t245 = add i32 %t244, 1 store i32 %t245, ptr %t176 br label %wcond50 wend52: call void @fn_emith(ptr @.str1878) %t246 = load ptr, ptr %t169 %t247 = getelementptr inbounds %Cmp_Node, ptr %t246, i32 0, i32 1 %t248 = load ptr, ptr %t247 call void @fn_emith(ptr %t248) call void @fn_emith(ptr @.str1879) %t249 = load ptr, ptr %t169 %t250 = getelementptr inbounds %Cmp_Node, ptr %t249, i32 0, i32 3 %t251 = load ptr, ptr %t250 %t252 = call ptr @fn_llty(ptr %t251) call void @fn_emith(ptr %t252) call void @fn_emith(ptr @.str1880) %t253 = load ptr, ptr %t169 %t254 = call ptr @fn_global_init(ptr %t253) call void @fn_emith(ptr %t254) call void @fn_emith(ptr @.str1881) br label %ifend49 ifend49: %t255 = load i32, ptr %t12 %t256 = add i32 %t255, 1 store i32 %t256, ptr %t12 br label %wcond42 wend44: br label %ret ret: ret void } define void @fn_emit_extern_decls() { entry: %t0 = alloca i32 %t18 = alloca ptr %t34 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str1882, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 11 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: call void @fn_emith(ptr @.str1883) %t25 = load ptr, ptr %t18 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 3 %t27 = load ptr, ptr %t26 %t28 = call ptr @fn_llty(ptr %t27) call void @fn_emith(ptr %t28) call void @fn_emith(ptr @.str1884) %t29 = load ptr, ptr %t18 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 4 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 call void @fn_emith(ptr %t33) call void @fn_emith(ptr @.str1885) store i32 0, ptr %t34 br label %wcond8 wcond8: %t35 = load i32, ptr %t34 %t36 = load ptr, ptr %t18 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp slt i32 %t35, %t40 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %wbody9, label %wend10 wbody9: %t44 = load i32, ptr %t34 %t45 = icmp sgt i32 %t44, 0 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then11, label %ifend13 then11: call void @fn_emith(ptr @.str1886) br label %ifend13 ifend13: %t48 = load ptr, ptr %t18 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7 %t50 = load ptr, ptr %t49 %t51 = load i32, ptr %t34 %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp ult i32 %t51, %t55 br i1 %t56, label %ixok14, label %ixbad15 ixbad15: %t57 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t57, ptr @.fmt_bounds, ptr @.str1887, i32 %t51, i32 %t55) call void @exit(i32 1) unreachable ixok14: %t58 = getelementptr inbounds ptr, ptr %t53, i32 %t51 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 3 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_llty(ptr %t61) call void @fn_emith(ptr %t62) %t63 = load i32, ptr %t34 %t64 = add i32 %t63, 1 store i32 %t64, ptr %t34 br label %wcond8 wend10: call void @fn_emith(ptr @.str1888) br label %ifend7 ifend7: %t65 = load i32, ptr %t0 %t66 = add i32 %t65, 1 store i32 %t66, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_emit_str_prelude() { entry: call void @fn_emith(ptr @.str1889) call void @fn_emith(ptr @.str1890) call void @fn_emith(ptr @.str1891) call void @fn_emith(ptr @.str1892) call void @fn_emith(ptr @.str1893) call void @fn_emith(ptr @.str1894) call void @fn_emith(ptr @.str1895) call void @fn_emith(ptr @.str1896) call void @fn_emith(ptr @.str1897) call void @fn_emith(ptr @.str1898) call void @fn_emith(ptr @.str1899) call void @fn_emith(ptr @.str1900) call void @fn_emith(ptr @.str1901) call void @fn_emith(ptr @.str1902) call void @fn_emith(ptr @.str1903) call void @fn_emith(ptr @.str1904) call void @fn_emith(ptr @.str1905) call void @fn_emith(ptr @.str1906) call void @fn_emith(ptr @.str1907) call void @fn_emith(ptr @.str1908) call void @fn_emith(ptr @.str1909) call void @fn_emith(ptr @.str1910) call void @fn_emith(ptr @.str1911) call void @fn_emith(ptr @.str1912) call void @fn_emith(ptr @.str1913) call void @fn_emith(ptr @.str1914) call void @fn_emith(ptr @.str1915) call void @fn_emith(ptr @.str1916) call void @fn_emith(ptr @.str1917) call void @fn_emith(ptr @.str1918) call void @fn_emith(ptr @.str1919) call void @fn_emith(ptr @.str1920) call void @fn_emith(ptr @.str1921) call void @fn_emith(ptr @.str1922) call void @fn_emith(ptr @.str1923) br label %ret ret: ret void } define void @fn_emit_int_str() { entry: call void @fn_emith(ptr @.str1924) call void @fn_emith(ptr @.str1925) call void @fn_emith(ptr @.str1926) call void @fn_emith(ptr @.str1927) call void @fn_emith(ptr @.str1928) call void @fn_emith(ptr @.str1929) call void @fn_emith(ptr @.str1930) call void @fn_emith(ptr @.str1931) call void @fn_emith(ptr @.str1932) call void @fn_emith(ptr @.str1933) call void @fn_emith(ptr @.str1934) call void @fn_emith(ptr @.str1935) call void @fn_emith(ptr @.str1936) call void @fn_emith(ptr @.str1937) call void @fn_emith(ptr @.str1938) call void @fn_emith(ptr @.str1939) call void @fn_emith(ptr @.str1940) br label %ret ret: ret void } define void @fn_emit_long_str() { entry: call void @fn_emith(ptr @.str1941) call void @fn_emith(ptr @.str1942) call void @fn_emith(ptr @.str1943) call void @fn_emith(ptr @.str1944) call void @fn_emith(ptr @.str1945) call void @fn_emith(ptr @.str1946) call void @fn_emith(ptr @.str1947) call void @fn_emith(ptr @.str1948) call void @fn_emith(ptr @.str1949) call void @fn_emith(ptr @.str1950) call void @fn_emith(ptr @.str1951) call void @fn_emith(ptr @.str1952) call void @fn_emith(ptr @.str1953) call void @fn_emith(ptr @.str1954) call void @fn_emith(ptr @.str1955) call void @fn_emith(ptr @.str1956) call void @fn_emith(ptr @.str1957) br label %ret ret: ret void } define void @fn_emit_str_slice() { entry: call void @fn_emith(ptr @.str1958) call void @fn_emith(ptr @.str1959) call void @fn_emith(ptr @.str1960) call void @fn_emith(ptr @.str1961) call void @fn_emith(ptr @.str1962) call void @fn_emith(ptr @.str1963) call void @fn_emith(ptr @.str1964) call void @fn_emith(ptr @.str1965) br label %ret ret: ret void } define i32 @fn_deps_on() { entry: %retval = alloca i32 %t0 = load i32, ptr @g_g_dp_on %t1 = icmp slt i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 0, ptr @g_g_dp_on %t4 = call ptr @getenv(ptr @.str1966) %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then3, label %ifend5 then3: store i32 1, ptr @g_g_dp_on br label %ifend5 ifend5: br label %ifend2 ifend2: %t8 = load i32, ptr @g_g_dp_on %t9 = icmp eq i32 %t8, 1 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define void @fn_deps_edge(ptr %arg_d, ptr %arg_what) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca ptr %t33 = alloca ptr %t34 = alloca i32 %t35 = alloca i32 %t58 = alloca ptr %t59 = alloca i32 store ptr %arg_d, ptr %t0 store ptr %arg_what, ptr %t1 %t4 = call i32 @fn_deps_on() %t5 = icmp eq i32 %t4, 0 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t3 br i1 %t7, label %scend1, label %sc0 sc0: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 9 %t11 = load ptr, ptr %t10 %t12 = icmp eq ptr %t11, null %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t3 br label %scend1 scend1: %t16 = load i32, ptr %t3 %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br i1 %t17, label %scend3, label %sc2 sc2: %t19 = load ptr, ptr @g_g_err_file %t20 = icmp eq ptr %t19, null %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t2 br label %scend3 scend3: %t24 = load i32, ptr %t2 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then4, label %ifend6 then4: br label %ret ifend6: %t26 = load ptr, ptr @g_g_err_file %t27 = call ptr @fn_module_of(ptr %t26) store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 9 %t31 = load ptr, ptr %t30 %t32 = call ptr @fn_module_for_uses(ptr %t31) store ptr %t32, ptr %t33 %t36 = load ptr, ptr %t28 %t37 = call i32 @lp_str_eq(ptr %t36, ptr @.str1967) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t35 br i1 %t38, label %scend8, label %sc7 sc7: %t40 = load ptr, ptr %t33 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str1968) %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t35 br label %scend8 scend8: %t44 = load i32, ptr %t35 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t34 br i1 %t45, label %scend10, label %sc9 sc9: %t47 = load ptr, ptr %t28 %t48 = load ptr, ptr %t33 %t49 = call i32 @lp_str_eq(ptr %t47, ptr %t48) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t34 br label %scend10 scend10: %t52 = load i32, ptr %t34 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then11, label %ifend13 then11: br label %ret ifend13: %t54 = load ptr, ptr %t28 %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str1969) %t56 = load ptr, ptr %t33 %t57 = call ptr @lp_str_concat(ptr %t55, ptr %t56) store ptr %t57, ptr %t58 store i32 0, ptr %t59 br label %wcond14 wcond14: %t60 = load i32, ptr %t59 %t61 = load ptr, ptr @g_g_dp_key %t62 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp slt i32 %t60, %t63 %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %wbody15, label %wend16 wbody15: %t67 = load ptr, ptr @g_g_dp_key %t68 = load i32, ptr %t59 %t69 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 0 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 1 %t72 = load i32, ptr %t71 %t73 = icmp ult i32 %t68, %t72 br i1 %t73, label %ixok17, label %ixbad18 ixbad18: %t74 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t74, ptr @.fmt_bounds, ptr @.str1970, i32 %t68, i32 %t72) call void @exit(i32 1) unreachable ixok17: %t75 = getelementptr inbounds ptr, ptr %t70, i32 %t68 %t76 = load ptr, ptr %t75 %t77 = load ptr, ptr %t58 %t78 = call i32 @lp_str_eq(ptr %t76, ptr %t77) %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then19, label %ifend21 then19: %t80 = load ptr, ptr @g_g_dp_cnt %t81 = load i32, ptr %t59 %t82 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 0 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 1 %t85 = load i32, ptr %t84 %t86 = icmp ult i32 %t81, %t85 br i1 %t86, label %ixok22, label %ixbad23 ixbad23: %t87 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t87, ptr @.fmt_bounds, ptr @.str1971, i32 %t81, i32 %t85) call void @exit(i32 1) unreachable ixok22: %t88 = getelementptr inbounds i32, ptr %t83, i32 %t81 %t89 = load ptr, ptr @g_g_dp_cnt %t90 = load i32, ptr %t59 %t91 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1 %t94 = load i32, ptr %t93 %t95 = icmp ult i32 %t90, %t94 br i1 %t95, label %ixok24, label %ixbad25 ixbad25: %t96 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t96, ptr @.fmt_bounds, ptr @.str1972, i32 %t90, i32 %t94) call void @exit(i32 1) unreachable ixok24: %t97 = getelementptr inbounds i32, ptr %t92, i32 %t90 %t98 = load i32, ptr %t97 %t99 = add i32 %t98, 1 store i32 %t99, ptr %t88 br label %ret ifend21: %t100 = load i32, ptr %t59 %t101 = add i32 %t100, 1 store i32 %t101, ptr %t59 br label %wcond14 wend16: %t102 = load ptr, ptr @g_g_dp_key %t103 = load ptr, ptr %t58 %t104 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t105 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 2 %t106 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 0 %t107 = load i32, ptr %t104 %t108 = load i32, ptr %t105 %t109 = icmp sge i32 %t107, %t108 br i1 %t109, label %grow26, label %put27 grow26: %t110 = mul i32 %t108, 2 %t111 = icmp eq i32 %t108, 0 %t112 = select i1 %t111, i32 8, i32 %t110 %t113 = getelementptr ptr, ptr null, i32 1 %t114 = ptrtoint ptr %t113 to i64 %t115 = zext i32 %t112 to i64 %t116 = mul i64 %t115, %t114 %t117 = load ptr, ptr %t106 %t118 = call ptr @realloc(ptr %t117, i64 %t116) store ptr %t118, ptr %t106 store i32 %t112, ptr %t105 br label %put27 put27: %t119 = load ptr, ptr %t106 %t120 = getelementptr inbounds ptr, ptr %t119, i32 %t107 store ptr %t103, ptr %t120 %t121 = add i32 %t107, 1 store i32 %t121, ptr %t104 %t122 = load ptr, ptr @g_g_dp_cnt %t123 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 %t124 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 2 %t125 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 %t126 = load i32, ptr %t123 %t127 = load i32, ptr %t124 %t128 = icmp sge i32 %t126, %t127 br i1 %t128, label %grow28, label %put29 grow28: %t129 = mul i32 %t127, 2 %t130 = icmp eq i32 %t127, 0 %t131 = select i1 %t130, i32 8, i32 %t129 %t132 = getelementptr i32, ptr null, i32 1 %t133 = ptrtoint ptr %t132 to i64 %t134 = zext i32 %t131 to i64 %t135 = mul i64 %t134, %t133 %t136 = load ptr, ptr %t125 %t137 = call ptr @realloc(ptr %t136, i64 %t135) store ptr %t137, ptr %t125 store i32 %t131, ptr %t124 br label %put29 put29: %t138 = load ptr, ptr %t125 %t139 = getelementptr inbounds i32, ptr %t138, i32 %t126 store i32 1, ptr %t139 %t140 = add i32 %t126, 1 store i32 %t140, ptr %t123 %t141 = load ptr, ptr @g_g_dp_name %t142 = load ptr, ptr %t1 %t143 = call ptr @fn_vis_plain(ptr %t142) %t144 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t145 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 2 %t146 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 0 %t147 = load i32, ptr %t144 %t148 = load i32, ptr %t145 %t149 = icmp sge i32 %t147, %t148 br i1 %t149, label %grow30, label %put31 grow30: %t150 = mul i32 %t148, 2 %t151 = icmp eq i32 %t148, 0 %t152 = select i1 %t151, i32 8, i32 %t150 %t153 = getelementptr ptr, ptr null, i32 1 %t154 = ptrtoint ptr %t153 to i64 %t155 = zext i32 %t152 to i64 %t156 = mul i64 %t155, %t154 %t157 = load ptr, ptr %t146 %t158 = call ptr @realloc(ptr %t157, i64 %t156) store ptr %t158, ptr %t146 store i32 %t152, ptr %t145 br label %put31 put31: %t159 = load ptr, ptr %t146 %t160 = getelementptr inbounds ptr, ptr %t159, i32 %t147 store ptr %t143, ptr %t160 %t161 = add i32 %t147, 1 store i32 %t161, ptr %t144 br label %ret ret: ret void } define void @fn_deps_write(ptr %arg_g, ptr %arg_name) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t37 = alloca ptr %t42 = alloca ptr %t43 = alloca i32 %t44 = alloca i32 store ptr %arg_g, ptr %t0 store ptr %arg_name, ptr %t1 %t5 = call i32 @fn_deps_on() %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t4 br i1 %t8, label %scend1, label %sc0 sc0: %t10 = load ptr, ptr %t0 %t11 = icmp eq ptr %t10, null %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t4 br label %scend1 scend1: %t15 = load i32, ptr %t4 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t3 br i1 %t16, label %scend3, label %sc2 sc2: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 9 %t20 = load ptr, ptr %t19 %t21 = icmp eq ptr %t20, null %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t3 br label %scend3 scend3: %t25 = load i32, ptr %t3 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t2 br i1 %t26, label %scend5, label %sc4 sc4: %t28 = load ptr, ptr @g_g_err_file %t29 = icmp eq ptr %t28, null %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t2 br label %scend5 scend5: %t33 = load i32, ptr %t2 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then6, label %ifend8 then6: br label %ret ifend8: %t35 = load ptr, ptr @g_g_err_file %t36 = call ptr @fn_module_of(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 9 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_module_for_uses(ptr %t40) store ptr %t41, ptr %t42 %t45 = load ptr, ptr %t37 %t46 = call i32 @lp_str_eq(ptr %t45, ptr @.str1973) %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t44 br i1 %t47, label %scend10, label %sc9 sc9: %t49 = load ptr, ptr %t42 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str1974) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t44 br label %scend10 scend10: %t53 = load i32, ptr %t44 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t43 br i1 %t54, label %scend12, label %sc11 sc11: %t56 = load ptr, ptr %t37 %t57 = load ptr, ptr %t42 %t58 = call i32 @lp_str_eq(ptr %t56, ptr %t57) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t43 br label %scend12 scend12: %t61 = load i32, ptr %t43 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then13, label %ifend15 then13: br label %ret ifend15: %t63 = load ptr, ptr @g_g_dp_writes %t64 = load ptr, ptr %t42 %t65 = call ptr @lp_str_concat(ptr @.str1975, ptr %t64) %t66 = call ptr @lp_str_concat(ptr %t65, ptr @.str1976) %t67 = load ptr, ptr %t1 %t68 = call ptr @lp_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @lp_str_concat(ptr %t68, ptr @.str1977) %t70 = load ptr, ptr %t37 %t71 = call ptr @lp_str_concat(ptr %t69, ptr %t70) %t72 = call ptr @lp_str_concat(ptr %t71, ptr @.str1978) %t73 = load ptr, ptr @g_g_err_file %t74 = call ptr @lp_str_concat(ptr %t72, ptr %t73) %t75 = call ptr @lp_str_concat(ptr %t74, ptr @.str1979) %t76 = load i32, ptr @g_g_err_line %t77 = call ptr @fn_itoa(i32 %t76) %t78 = call ptr @lp_str_concat(ptr %t75, ptr %t77) %t79 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t80 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 2 %t81 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 0 %t82 = load i32, ptr %t79 %t83 = load i32, ptr %t80 %t84 = icmp sge i32 %t82, %t83 br i1 %t84, label %grow16, label %put17 grow16: %t85 = mul i32 %t83, 2 %t86 = icmp eq i32 %t83, 0 %t87 = select i1 %t86, i32 8, i32 %t85 %t88 = getelementptr ptr, ptr null, i32 1 %t89 = ptrtoint ptr %t88 to i64 %t90 = zext i32 %t87 to i64 %t91 = mul i64 %t90, %t89 %t92 = load ptr, ptr %t81 %t93 = call ptr @realloc(ptr %t92, i64 %t91) store ptr %t93, ptr %t81 store i32 %t87, ptr %t80 br label %put17 put17: %t94 = load ptr, ptr %t81 %t95 = getelementptr inbounds ptr, ptr %t94, i32 %t82 store ptr %t78, ptr %t95 %t96 = add i32 %t82, 1 store i32 %t96, ptr %t79 br label %ret ret: ret void } define ptr @fn_deps_target_root(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t9 = alloca i32 %t32 = alloca i32 store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 store ptr %t1, ptr %t2 br label %wcond0 wcond0: %t4 = load ptr, ptr %t2 %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t3 br i1 %t7, label %sc3, label %scend4 sc3: %t10 = load ptr, ptr %t2 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 0 %t12 = load i32, ptr %t11 %t13 = icmp eq i32 %t12, 36 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t9 br i1 %t15, label %scend6, label %sc5 sc5: %t17 = load ptr, ptr %t2 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 35 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t9 br label %scend6 scend6: %t24 = load i32, ptr %t9 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t3 br label %scend4 scend4: %t27 = load i32, ptr %t3 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %wbody1, label %wend2 wbody1: %t29 = load ptr, ptr %t2 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 4 %t31 = load ptr, ptr %t30 store ptr %t31, ptr %t2 br label %wcond0 wend2: %t33 = load ptr, ptr %t2 %t34 = icmp eq ptr %t33, null %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t32 br i1 %t36, label %scend8, label %sc7 sc7: %t38 = load ptr, ptr %t2 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 0 %t40 = load i32, ptr %t39 %t41 = icmp ne i32 %t40, 33 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t32 br label %scend8 scend8: %t45 = load i32, ptr %t32 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then9, label %ifend11 then9: store ptr null, ptr %retval br label %ret ifend11: %t47 = load ptr, ptr %t2 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 1 %t49 = load ptr, ptr %t48 %t50 = call i32 @fn_loc_find(ptr %t49) %t51 = icmp sge i32 %t50, 0 %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then12, label %ifend14 then12: store ptr null, ptr %retval br label %ret ifend14: %t54 = load ptr, ptr %t2 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_find_global(ptr %t56) store ptr %t57, ptr %retval br label %ret ret: %t58 = load ptr, ptr %retval ret ptr %t58 } define void @fn_deps_line(ptr %arg_f, ptr %arg_s) { entry: %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_f, ptr %t0 store ptr %arg_s, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = load ptr, ptr %t1 %t4 = load ptr, ptr %t1 %t5 = call i64 @strlen(ptr %t4) %t6 = trunc i64 %t5 to i32 %t7 = zext i32 %t6 to i64 %t8 = call i64 @fwrite(ptr %t3, i64 1, i64 %t7, ptr %t2) %t9 = trunc i64 %t8 to i32 %t10 = load ptr, ptr %t0 %t11 = zext i32 1 to i64 %t12 = call i64 @fwrite(ptr @.str1980, i64 1, i64 %t11, ptr %t10) %t13 = trunc i64 %t12 to i32 br label %ret ret: ret void } define void @fn_deps_flush() { entry: %t6 = alloca ptr %t17 = alloca ptr %t18 = alloca i32 %t36 = alloca ptr %t37 = alloca i32 %t38 = alloca i32 %t61 = alloca i32 %t95 = alloca i32 %t111 = alloca ptr %t114 = alloca i32 %t131 = alloca ptr %t167 = alloca ptr %t168 = alloca i32 %t169 = alloca i32 %t192 = alloca i32 %t0 = call i32 @fn_deps_on() %t1 = icmp eq i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: br label %ret ifend2: %t4 = call ptr @getenv(ptr @.str1981) %t5 = call ptr @lp_pak_open(ptr %t4, ptr @.str1982) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = icmp eq ptr %t7, null %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: br label %ret ifend5: %t11 = getelementptr %LSlice, ptr null, i32 1 %t12 = ptrtoint ptr %t11 to i64 %t13 = call ptr @malloc(i64 %t12) %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 store ptr null, ptr %t14 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 store i32 0, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 2 store i32 0, ptr %t16 store ptr %t13, ptr %t17 store i32 0, ptr %t18 br label %wcond6 wcond6: %t19 = load i32, ptr %t18 %t20 = load ptr, ptr @g_g_mod_name %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp slt i32 %t19, %t22 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %wbody7, label %wend8 wbody7: %t26 = load ptr, ptr @g_g_mod_name %t27 = load i32, ptr %t18 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok9, label %ixbad10 ixbad10: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str1983, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok9: %t34 = getelementptr inbounds ptr, ptr %t29, i32 %t27 %t35 = load ptr, ptr %t34 store ptr %t35, ptr %t36 store i32 0, ptr %t37 store i32 0, ptr %t38 br label %wcond11 wcond11: %t39 = load i32, ptr %t38 %t40 = load ptr, ptr %t17 %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp slt i32 %t39, %t42 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %wbody12, label %wend13 wbody12: %t46 = load ptr, ptr %t17 %t47 = load i32, ptr %t38 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok14, label %ixbad15 ixbad15: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str1984, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok14: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = load ptr, ptr %t36 %t57 = call i32 @lp_str_eq(ptr %t55, ptr %t56) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then16, label %ifend18 then16: store i32 1, ptr %t37 br label %ifend18 ifend18: %t59 = load i32, ptr %t38 %t60 = add i32 %t59, 1 store i32 %t60, ptr %t38 br label %wcond11 wend13: %t62 = load i32, ptr %t37 %t63 = icmp eq i32 %t62, 0 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t61 br i1 %t65, label %sc19, label %scend20 sc19: %t67 = load ptr, ptr %t36 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str1985) %t69 = icmp eq i32 %t68, 0 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t61 br label %scend20 scend20: %t73 = load i32, ptr %t61 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then21, label %ifend23 then21: %t75 = load ptr, ptr %t17 %t76 = load ptr, ptr %t36 %t77 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t78 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 2 %t79 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0 %t80 = load i32, ptr %t77 %t81 = load i32, ptr %t78 %t82 = icmp sge i32 %t80, %t81 br i1 %t82, label %grow24, label %put25 grow24: %t83 = mul i32 %t81, 2 %t84 = icmp eq i32 %t81, 0 %t85 = select i1 %t84, i32 8, i32 %t83 %t86 = getelementptr ptr, ptr null, i32 1 %t87 = ptrtoint ptr %t86 to i64 %t88 = zext i32 %t85 to i64 %t89 = mul i64 %t88, %t87 %t90 = load ptr, ptr %t79 %t91 = call ptr @realloc(ptr %t90, i64 %t89) store ptr %t91, ptr %t79 store i32 %t85, ptr %t78 br label %put25 put25: %t92 = load ptr, ptr %t79 %t93 = getelementptr inbounds ptr, ptr %t92, i32 %t80 store ptr %t76, ptr %t93 %t94 = add i32 %t80, 1 store i32 %t94, ptr %t77 store i32 0, ptr %t95 %t96 = load ptr, ptr @g_g_mod_file %t97 = load i32, ptr %t18 %t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 %t97, %t101 br i1 %t102, label %ixok26, label %ixbad27 ixbad27: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str1986, i32 %t97, i32 %t101) call void @exit(i32 1) unreachable ixok26: %t104 = getelementptr inbounds ptr, ptr %t99, i32 %t97 %t105 = load ptr, ptr %t104 %t106 = call ptr @fn_pkg_of_file(ptr %t105) %t107 = call i32 @lp_str_eq(ptr %t106, ptr @.str1987) %t108 = icmp eq i32 %t107, 0 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then28, label %ifend30 then28: store i32 1, ptr %t95 br label %ifend30 ifend30: store ptr @.str1988, ptr %t111 %t112 = load ptr, ptr %t36 %t113 = call i32 @fn_mod_find_uses(ptr %t112) store i32 %t113, ptr %t114 %t115 = load i32, ptr %t114 %t116 = icmp sge i32 %t115, 0 %t117 = zext i1 %t116 to i32 %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then31, label %ifend33 then31: %t119 = load ptr, ptr @g_g_mu_list %t120 = load i32, ptr %t114 %t121 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t124 = load i32, ptr %t123 %t125 = icmp ult i32 %t120, %t124 br i1 %t125, label %ixok34, label %ixbad35 ixbad35: %t126 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t126, ptr @.fmt_bounds, ptr @.str1989, i32 %t120, i32 %t124) call void @exit(i32 1) unreachable ixok34: %t127 = getelementptr inbounds ptr, ptr %t122, i32 %t120 %t128 = load ptr, ptr %t127 store ptr %t128, ptr %t111 br label %ifend33 ifend33: %t129 = load ptr, ptr %t36 %t130 = call ptr @fn_mod_layer(ptr %t129) store ptr %t130, ptr %t131 %t132 = load ptr, ptr %t131 %t133 = call i32 @lp_str_eq(ptr %t132, ptr @.str1990) %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then36, label %ifend38 then36: store ptr @.str1991, ptr %t131 br label %ifend38 ifend38: %t135 = load ptr, ptr %t6 %t136 = load ptr, ptr %t36 %t137 = call ptr @lp_str_concat(ptr @.str1992, ptr %t136) %t138 = call ptr @lp_str_concat(ptr %t137, ptr @.str1993) %t139 = load i32, ptr %t95 %t140 = call ptr @fn_itoa(i32 %t139) %t141 = call ptr @lp_str_concat(ptr %t138, ptr %t140) %t142 = call ptr @lp_str_concat(ptr %t141, ptr @.str1994) %t143 = load ptr, ptr %t111 %t144 = call ptr @lp_str_concat(ptr %t142, ptr %t143) %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str1995) %t146 = load ptr, ptr %t131 %t147 = call ptr @lp_str_concat(ptr %t145, ptr %t146) call void @fn_deps_line(ptr %t135, ptr %t147) br label %ifend23 ifend23: %t148 = load i32, ptr %t18 %t149 = add i32 %t148, 1 store i32 %t149, ptr %t18 br label %wcond6 wend8: store i32 0, ptr %t18 br label %wcond39 wcond39: %t150 = load i32, ptr %t18 %t151 = load ptr, ptr @g_g_pk_name %t152 = getelementptr inbounds %LSlice, ptr %t151, i32 0, i32 1 %t153 = load i32, ptr %t152 %t154 = icmp slt i32 %t150, %t153 %t155 = zext i1 %t154 to i32 %t156 = icmp ne i32 %t155, 0 br i1 %t156, label %wbody40, label %wend41 wbody40: %t157 = load ptr, ptr @g_g_pk_name %t158 = load i32, ptr %t18 %t159 = getelementptr inbounds %LSlice, ptr %t157, i32 0, i32 0 %t160 = load ptr, ptr %t159 %t161 = getelementptr inbounds %LSlice, ptr %t157, i32 0, i32 1 %t162 = load i32, ptr %t161 %t163 = icmp ult i32 %t158, %t162 br i1 %t163, label %ixok42, label %ixbad43 ixbad43: %t164 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t164, ptr @.fmt_bounds, ptr @.str1996, i32 %t158, i32 %t162) call void @exit(i32 1) unreachable ixok42: %t165 = getelementptr inbounds ptr, ptr %t160, i32 %t158 %t166 = load ptr, ptr %t165 store ptr %t166, ptr %t167 store i32 0, ptr %t168 store i32 0, ptr %t169 br label %wcond44 wcond44: %t170 = load i32, ptr %t169 %t171 = load ptr, ptr %t17 %t172 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 1 %t173 = load i32, ptr %t172 %t174 = icmp slt i32 %t170, %t173 %t175 = zext i1 %t174 to i32 %t176 = icmp ne i32 %t175, 0 br i1 %t176, label %wbody45, label %wend46 wbody45: %t177 = load ptr, ptr %t17 %t178 = load i32, ptr %t169 %t179 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 0 %t180 = load ptr, ptr %t179 %t181 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 1 %t182 = load i32, ptr %t181 %t183 = icmp ult i32 %t178, %t182 br i1 %t183, label %ixok47, label %ixbad48 ixbad48: %t184 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t184, ptr @.fmt_bounds, ptr @.str1997, i32 %t178, i32 %t182) call void @exit(i32 1) unreachable ixok47: %t185 = getelementptr inbounds ptr, ptr %t180, i32 %t178 %t186 = load ptr, ptr %t185 %t187 = load ptr, ptr %t167 %t188 = call i32 @lp_str_eq(ptr %t186, ptr %t187) %t189 = icmp ne i32 %t188, 0 br i1 %t189, label %then49, label %ifend51 then49: store i32 1, ptr %t168 br label %ifend51 ifend51: %t190 = load i32, ptr %t169 %t191 = add i32 %t190, 1 store i32 %t191, ptr %t169 br label %wcond44 wend46: %t193 = load i32, ptr %t168 %t194 = icmp eq i32 %t193, 0 %t195 = zext i1 %t194 to i32 %t196 = icmp ne i32 %t195, 0 %t197 = zext i1 %t196 to i32 store i32 %t197, ptr %t192 br i1 %t196, label %sc52, label %scend53 sc52: %t198 = load ptr, ptr %t167 %t199 = call i32 @lp_str_eq(ptr %t198, ptr @.str1998) %t200 = icmp eq i32 %t199, 0 %t201 = zext i1 %t200 to i32 %t202 = icmp ne i32 %t201, 0 %t203 = zext i1 %t202 to i32 store i32 %t203, ptr %t192 br label %scend53 scend53: %t204 = load i32, ptr %t192 %t205 = icmp ne i32 %t204, 0 br i1 %t205, label %then54, label %ifend56 then54: %t206 = load ptr, ptr %t17 %t207 = load ptr, ptr %t167 %t208 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 1 %t209 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 2 %t210 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 0 %t211 = load i32, ptr %t208 %t212 = load i32, ptr %t209 %t213 = icmp sge i32 %t211, %t212 br i1 %t213, label %grow57, label %put58 grow57: %t214 = mul i32 %t212, 2 %t215 = icmp eq i32 %t212, 0 %t216 = select i1 %t215, i32 8, i32 %t214 %t217 = getelementptr ptr, ptr null, i32 1 %t218 = ptrtoint ptr %t217 to i64 %t219 = zext i32 %t216 to i64 %t220 = mul i64 %t219, %t218 %t221 = load ptr, ptr %t210 %t222 = call ptr @realloc(ptr %t221, i64 %t220) store ptr %t222, ptr %t210 store i32 %t216, ptr %t209 br label %put58 put58: %t223 = load ptr, ptr %t210 %t224 = getelementptr inbounds ptr, ptr %t223, i32 %t211 store ptr %t207, ptr %t224 %t225 = add i32 %t211, 1 store i32 %t225, ptr %t208 %t226 = load ptr, ptr %t6 %t227 = load ptr, ptr %t167 %t228 = call ptr @lp_str_concat(ptr @.str1999, ptr %t227) %t229 = call ptr @lp_str_concat(ptr %t228, ptr @.str2000) call void @fn_deps_line(ptr %t226, ptr %t229) br label %ifend56 ifend56: %t230 = load i32, ptr %t18 %t231 = add i32 %t230, 1 store i32 %t231, ptr %t18 br label %wcond39 wend41: store i32 0, ptr %t18 br label %wcond59 wcond59: %t232 = load i32, ptr %t18 %t233 = load ptr, ptr @g_g_dp_key %t234 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 1 %t235 = load i32, ptr %t234 %t236 = icmp slt i32 %t232, %t235 %t237 = zext i1 %t236 to i32 %t238 = icmp ne i32 %t237, 0 br i1 %t238, label %wbody60, label %wend61 wbody60: %t239 = load ptr, ptr %t6 %t240 = load ptr, ptr @g_g_dp_key %t241 = load i32, ptr %t18 %t242 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 0 %t243 = load ptr, ptr %t242 %t244 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 1 %t245 = load i32, ptr %t244 %t246 = icmp ult i32 %t241, %t245 br i1 %t246, label %ixok62, label %ixbad63 ixbad63: %t247 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t247, ptr @.fmt_bounds, ptr @.str2002, i32 %t241, i32 %t245) call void @exit(i32 1) unreachable ixok62: %t248 = getelementptr inbounds ptr, ptr %t243, i32 %t241 %t249 = load ptr, ptr %t248 %t250 = call ptr @lp_str_concat(ptr @.str2001, ptr %t249) %t251 = call ptr @lp_str_concat(ptr %t250, ptr @.str2003) %t252 = load ptr, ptr @g_g_dp_cnt %t253 = load i32, ptr %t18 %t254 = getelementptr inbounds %LSlice, ptr %t252, i32 0, i32 0 %t255 = load ptr, ptr %t254 %t256 = getelementptr inbounds %LSlice, ptr %t252, i32 0, i32 1 %t257 = load i32, ptr %t256 %t258 = icmp ult i32 %t253, %t257 br i1 %t258, label %ixok64, label %ixbad65 ixbad65: %t259 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t259, ptr @.fmt_bounds, ptr @.str2004, i32 %t253, i32 %t257) call void @exit(i32 1) unreachable ixok64: %t260 = getelementptr inbounds i32, ptr %t255, i32 %t253 %t261 = load i32, ptr %t260 %t262 = call ptr @fn_itoa(i32 %t261) %t263 = call ptr @lp_str_concat(ptr %t251, ptr %t262) %t264 = call ptr @lp_str_concat(ptr %t263, ptr @.str2005) %t265 = load ptr, ptr @g_g_dp_name %t266 = load i32, ptr %t18 %t267 = getelementptr inbounds %LSlice, ptr %t265, i32 0, i32 0 %t268 = load ptr, ptr %t267 %t269 = getelementptr inbounds %LSlice, ptr %t265, i32 0, i32 1 %t270 = load i32, ptr %t269 %t271 = icmp ult i32 %t266, %t270 br i1 %t271, label %ixok66, label %ixbad67 ixbad67: %t272 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t272, ptr @.fmt_bounds, ptr @.str2006, i32 %t266, i32 %t270) call void @exit(i32 1) unreachable ixok66: %t273 = getelementptr inbounds ptr, ptr %t268, i32 %t266 %t274 = load ptr, ptr %t273 %t275 = call ptr @lp_str_concat(ptr %t264, ptr %t274) call void @fn_deps_line(ptr %t239, ptr %t275) %t276 = load i32, ptr %t18 %t277 = add i32 %t276, 1 store i32 %t277, ptr %t18 br label %wcond59 wend61: store i32 0, ptr %t18 br label %wcond68 wcond68: %t278 = load i32, ptr %t18 %t279 = load ptr, ptr @g_g_dp_writes %t280 = getelementptr inbounds %LSlice, ptr %t279, i32 0, i32 1 %t281 = load i32, ptr %t280 %t282 = icmp slt i32 %t278, %t281 %t283 = zext i1 %t282 to i32 %t284 = icmp ne i32 %t283, 0 br i1 %t284, label %wbody69, label %wend70 wbody69: %t285 = load ptr, ptr %t6 %t286 = load ptr, ptr @g_g_dp_writes %t287 = load i32, ptr %t18 %t288 = getelementptr inbounds %LSlice, ptr %t286, i32 0, i32 0 %t289 = load ptr, ptr %t288 %t290 = getelementptr inbounds %LSlice, ptr %t286, i32 0, i32 1 %t291 = load i32, ptr %t290 %t292 = icmp ult i32 %t287, %t291 br i1 %t292, label %ixok71, label %ixbad72 ixbad72: %t293 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t293, ptr @.fmt_bounds, ptr @.str2007, i32 %t287, i32 %t291) call void @exit(i32 1) unreachable ixok71: %t294 = getelementptr inbounds ptr, ptr %t289, i32 %t287 %t295 = load ptr, ptr %t294 call void @fn_deps_line(ptr %t285, ptr %t295) %t296 = load i32, ptr %t18 %t297 = add i32 %t296, 1 store i32 %t297, ptr %t18 br label %wcond68 wend70: %t298 = load ptr, ptr %t6 call i32 @fclose(ptr %t298) br label %ret ret: ret void } define ptr @fn_emit_member_addr(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t10 = alloca ptr %t24 = alloca i32 %t39 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_layout_node(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = icmp eq ptr %t11, null %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then0, label %ifend2 then0: %t15 = load ptr, ptr %t5 %t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = call ptr @lp_str_concat(ptr @.str2008, ptr %t17) call void @fn_perr(ptr %t18) br label %ifend2 ifend2: %t19 = load ptr, ptr %t10 %t20 = load ptr, ptr %t0 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 %t23 = call i32 @fn_field_index(ptr %t19, ptr %t22) store i32 %t23, ptr %t24 %t25 = load i32, ptr %t24 %t26 = icmp slt i32 %t25, 0 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then3, label %ifend5 then3: %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = call ptr @lp_str_concat(ptr @.str2009, ptr %t31) call void @fn_perr(ptr %t32) br label %ifend5 ifend5: %t33 = load ptr, ptr %t10 %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_field_type(ptr %t33, ptr %t36) store ptr %t37, ptr @g_g_addr_ty %t38 = call ptr @fn_nreg() store ptr %t38, ptr %t39 call void @fn_emit(ptr @.str2010) %t40 = load ptr, ptr %t39 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str2011) %t41 = load ptr, ptr %t5 %t42 = getelementptr inbounds %Cmp_Val, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_layout_ty(ptr %t43) call void @fn_emit(ptr %t44) call void @fn_emit(ptr @.str2012) %t45 = load ptr, ptr %t5 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 call void @fn_emit(ptr %t47) call void @fn_emit(ptr @.str2013) %t48 = load i32, ptr %t24 %t49 = call ptr @fn_itoa(i32 %t48) call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str2014) %t50 = load ptr, ptr %t39 store ptr %t50, ptr %retval br label %ret ret: %t51 = load ptr, ptr %retval ret ptr %t51 } define ptr @fn_emit_index_addr(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t17 = alloca ptr %t33 = alloca ptr %t50 = alloca ptr %t52 = alloca i32 %t67 = alloca ptr %t86 = alloca ptr %t104 = alloca ptr %t116 = alloca ptr %t122 = alloca ptr %t127 = alloca ptr %t129 = alloca ptr %t135 = alloca ptr %t141 = alloca ptr %t149 = alloca ptr %t158 = alloca ptr %t160 = alloca ptr %t162 = alloca ptr %t184 = alloca ptr %t187 = alloca ptr %t205 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call i32 @fn_is_slice_ty(ptr %t8) %t10 = icmp eq i32 %t9, 0 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 5 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t5 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str2015) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then3, label %ifend5 then3: %t23 = load ptr, ptr %t5 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str2016, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str2017) %t28 = load ptr, ptr %t17 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr %t27, ptr %t30) %t32 = call ptr @fn_emit_bind(ptr %t31) store ptr %t32, ptr %t33 store ptr @.str2018, ptr @g_g_addr_ty %t34 = load ptr, ptr %t33 store ptr %t34, ptr %retval br label %ret ifend5: %t35 = load ptr, ptr %t5 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str2019) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then6, label %ifend8 then6: %t40 = load ptr, ptr %t5 %t41 = getelementptr inbounds %Cmp_Val, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = call ptr @lp_str_concat(ptr @.str2020, ptr %t42) %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str2021) %t45 = load ptr, ptr %t17 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = call ptr @lp_str_concat(ptr %t44, ptr %t47) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 store ptr @.str2022, ptr @g_g_addr_ty %t51 = load ptr, ptr %t50 store ptr %t51, ptr %retval br label %ret ifend8: %t53 = load ptr, ptr %t5 %t54 = getelementptr inbounds %Cmp_Val, ptr %t53, i32 0, i32 1 %t55 = load ptr, ptr %t54 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str2023) %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t52 br i1 %t57, label %scend10, label %sc9 sc9: %t59 = load ptr, ptr %t5 %t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 1 %t61 = load ptr, ptr %t60 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str2024) %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t52 br label %scend10 scend10: %t65 = load i32, ptr %t52 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then11, label %ifend13 then11: store ptr @.str2025, ptr %t67 %t68 = load ptr, ptr %t5 %t69 = getelementptr inbounds %Cmp_Val, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 %t71 = call i32 @lp_str_eq(ptr %t70, ptr @.str2026) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then14, label %ifend16 then14: store ptr @.str2027, ptr %t67 br label %ifend16 ifend16: %t73 = load ptr, ptr %t67 %t74 = call ptr @lp_str_concat(ptr @.str2028, ptr %t73) %t75 = call ptr @lp_str_concat(ptr %t74, ptr @.str2029) %t76 = load ptr, ptr %t5 %t77 = getelementptr inbounds %Cmp_Val, ptr %t76, i32 0, i32 0 %t78 = load ptr, ptr %t77 %t79 = call ptr @lp_str_concat(ptr %t75, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str2030) %t81 = load ptr, ptr %t17 %t82 = getelementptr inbounds %Cmp_Val, ptr %t81, i32 0, i32 0 %t83 = load ptr, ptr %t82 %t84 = call ptr @lp_str_concat(ptr %t80, ptr %t83) %t85 = call ptr @fn_emit_bind(ptr %t84) store ptr %t85, ptr %t86 %t87 = load ptr, ptr %t67 store ptr %t87, ptr @g_g_addr_ty %t88 = load ptr, ptr %t86 store ptr %t88, ptr %retval br label %ret ifend13: %t89 = load ptr, ptr %t5 %t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 1 %t91 = load ptr, ptr %t90 %t92 = call i32 @lp_str_eq(ptr %t91, ptr @.str2031) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then17, label %ifend19 then17: %t94 = load ptr, ptr %t5 %t95 = getelementptr inbounds %Cmp_Val, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = call ptr @lp_str_concat(ptr @.str2032, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str2033) %t99 = load ptr, ptr %t17 %t100 = getelementptr inbounds %Cmp_Val, ptr %t99, i32 0, i32 0 %t101 = load ptr, ptr %t100 %t102 = call ptr @lp_str_concat(ptr %t98, ptr %t101) %t103 = call ptr @fn_emit_bind(ptr %t102) store ptr %t103, ptr %t104 store ptr @.str2034, ptr @g_g_addr_ty %t105 = load ptr, ptr %t104 store ptr %t105, ptr %retval br label %ret ifend19: %t106 = load ptr, ptr %t5 %t107 = getelementptr inbounds %Cmp_Val, ptr %t106, i32 0, i32 0 %t108 = load ptr, ptr %t107 %t109 = call ptr @lp_str_concat(ptr @.str2035, ptr %t108) %t110 = call ptr @lp_str_concat(ptr %t109, ptr @.str2036) %t111 = load ptr, ptr %t17 %t112 = getelementptr inbounds %Cmp_Val, ptr %t111, i32 0, i32 0 %t113 = load ptr, ptr %t112 %t114 = call ptr @lp_str_concat(ptr %t110, ptr %t113) %t115 = call ptr @fn_emit_bind(ptr %t114) store ptr %t115, ptr %t116 store ptr @.str2037, ptr @g_g_addr_ty %t117 = load ptr, ptr %t116 store ptr %t117, ptr %retval br label %ret ifend2: %t118 = load ptr, ptr %t5 %t119 = getelementptr inbounds %Cmp_Val, ptr %t118, i32 0, i32 1 %t120 = load ptr, ptr %t119 %t121 = call ptr @fn_slice_elem(ptr %t120) store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t0 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 5 %t125 = load ptr, ptr %t124 %t126 = call ptr @fn_emit_expr(ptr %t125) store ptr %t126, ptr %t127 %t128 = call ptr @fn_nreg() store ptr %t128, ptr %t129 call void @fn_emit(ptr @.str2038) %t130 = load ptr, ptr %t129 call void @fn_emit(ptr %t130) call void @fn_emit(ptr @.str2039) %t131 = load ptr, ptr %t5 %t132 = getelementptr inbounds %Cmp_Val, ptr %t131, i32 0, i32 0 %t133 = load ptr, ptr %t132 call void @fn_emit(ptr %t133) call void @fn_emit(ptr @.str2040) %t134 = call ptr @fn_nreg() store ptr %t134, ptr %t135 call void @fn_emit(ptr @.str2041) %t136 = load ptr, ptr %t135 call void @fn_emit(ptr %t136) call void @fn_emit(ptr @.str2042) %t137 = load ptr, ptr %t129 call void @fn_emit(ptr %t137) call void @fn_emit(ptr @.str2043) %t138 = load i32, ptr @g_g_bounds %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then20, label %ifend22 then20: store i32 1, ptr @g_g_uses_bounds %t140 = call ptr @fn_nreg() store ptr %t140, ptr %t141 call void @fn_emit(ptr @.str2044) %t142 = load ptr, ptr %t141 call void @fn_emit(ptr %t142) call void @fn_emit(ptr @.str2045) %t143 = load ptr, ptr %t5 %t144 = getelementptr inbounds %Cmp_Val, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 call void @fn_emit(ptr %t145) call void @fn_emit(ptr @.str2046) %t146 = load ptr, ptr %t141 %t147 = call ptr @lp_str_concat(ptr @.str2047, ptr %t146) %t148 = call ptr @fn_emit_bind(ptr %t147) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t127 %t151 = getelementptr inbounds %Cmp_Val, ptr %t150, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = call ptr @lp_str_concat(ptr @.str2048, ptr %t152) %t154 = call ptr @lp_str_concat(ptr %t153, ptr @.str2049) %t155 = load ptr, ptr %t149 %t156 = call ptr @lp_str_concat(ptr %t154, ptr %t155) %t157 = call ptr @fn_emit_bind(ptr %t156) store ptr %t157, ptr %t158 %t159 = call ptr @fn_lbl(ptr @.str2050) store ptr %t159, ptr %t160 %t161 = call ptr @fn_lbl(ptr @.str2051) store ptr %t161, ptr %t162 %t163 = load ptr, ptr %t158 %t164 = call ptr @lp_str_concat(ptr @.str2052, ptr %t163) %t165 = call ptr @lp_str_concat(ptr %t164, ptr @.str2053) %t166 = load ptr, ptr %t160 %t167 = call ptr @lp_str_concat(ptr %t165, ptr %t166) %t168 = call ptr @lp_str_concat(ptr %t167, ptr @.str2054) %t169 = load ptr, ptr %t162 %t170 = call ptr @lp_str_concat(ptr %t168, ptr %t169) %t171 = call ptr @lp_str_concat(ptr %t170, ptr @.str2055) call void @fn_emit(ptr %t171) %t172 = load ptr, ptr %t162 %t173 = call ptr @lp_str_concat(ptr %t172, ptr @.str2056) call void @fn_emit(ptr %t173) %t174 = load ptr, ptr %t0 %t175 = call ptr @fn_src_name_of(ptr %t174) %t176 = call ptr @lp_str_concat(ptr %t175, ptr @.str2057) %t177 = load ptr, ptr %t0 %t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 8 %t179 = load i32, ptr %t178 %t180 = call ptr @fn_itoa(i32 %t179) %t181 = call ptr @lp_str_concat(ptr %t176, ptr %t180) %t182 = call ptr @lp_str_concat(ptr %t181, ptr @.str2058) %t183 = call ptr @fn_emit_str_const(ptr %t182) store ptr %t183, ptr %t184 %t185 = call ptr @fn_stdstream_rhs(i32 2) %t186 = call ptr @fn_emit_bind(ptr %t185) store ptr %t186, ptr %t187 %t188 = load ptr, ptr %t187 %t189 = call ptr @lp_str_concat(ptr @.str2059, ptr %t188) %t190 = call ptr @lp_str_concat(ptr %t189, ptr @.str2060) %t191 = load ptr, ptr %t184 %t192 = call ptr @lp_str_concat(ptr %t190, ptr %t191) %t193 = call ptr @lp_str_concat(ptr %t192, ptr @.str2061) %t194 = load ptr, ptr %t127 %t195 = getelementptr inbounds %Cmp_Val, ptr %t194, i32 0, i32 0 %t196 = load ptr, ptr %t195 %t197 = call ptr @lp_str_concat(ptr %t193, ptr %t196) %t198 = call ptr @lp_str_concat(ptr %t197, ptr @.str2062) %t199 = load ptr, ptr %t149 %t200 = call ptr @lp_str_concat(ptr %t198, ptr %t199) %t201 = call ptr @lp_str_concat(ptr %t200, ptr @.str2063) call void @fn_emit(ptr %t201) call void @fn_emit(ptr @.str2064) %t202 = load ptr, ptr %t160 %t203 = call ptr @lp_str_concat(ptr %t202, ptr @.str2065) call void @fn_emit(ptr %t203) br label %ifend22 ifend22: %t204 = call ptr @fn_nreg() store ptr %t204, ptr %t205 call void @fn_emit(ptr @.str2066) %t206 = load ptr, ptr %t205 call void @fn_emit(ptr %t206) call void @fn_emit(ptr @.str2067) %t207 = load ptr, ptr %t122 %t208 = call ptr @fn_llty(ptr %t207) call void @fn_emit(ptr %t208) call void @fn_emit(ptr @.str2068) %t209 = load ptr, ptr %t135 call void @fn_emit(ptr %t209) call void @fn_emit(ptr @.str2069) %t210 = load ptr, ptr %t127 %t211 = getelementptr inbounds %Cmp_Val, ptr %t210, i32 0, i32 0 %t212 = load ptr, ptr %t211 call void @fn_emit(ptr %t212) call void @fn_emit(ptr @.str2070) %t213 = load ptr, ptr %t122 store ptr %t213, ptr @g_g_addr_ty %t214 = load ptr, ptr %t205 store ptr %t214, ptr %retval br label %ret ret: %t215 = load ptr, ptr %retval ret ptr %t215 } define i32 @fn_is_intrinsic(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 %t23 = alloca i32 %t24 = alloca i32 %t42 = alloca i32 %t43 = alloca i32 %t61 = alloca i32 %t72 = alloca i32 store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str2071) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 1, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str2072) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t5 br i1 %t8, label %scend4, label %sc3 sc3: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str2073) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t5 br label %scend4 scend4: %t14 = load i32, ptr %t5 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t4 br i1 %t15, label %scend6, label %sc5 sc5: %t17 = load ptr, ptr %t0 %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str2074) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t4 br label %scend6 scend6: %t21 = load i32, ptr %t4 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then7, label %ifend9 then7: store i32 1, ptr %retval br label %ret ifend9: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str2075) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t24 br i1 %t27, label %scend11, label %sc10 sc10: %t29 = load ptr, ptr %t0 %t30 = call i32 @lp_str_eq(ptr %t29, ptr @.str2076) %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t24 br label %scend11 scend11: %t33 = load i32, ptr %t24 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t23 br i1 %t34, label %scend13, label %sc12 sc12: %t36 = load ptr, ptr %t0 %t37 = call i32 @lp_str_eq(ptr %t36, ptr @.str2077) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t23 br label %scend13 scend13: %t40 = load i32, ptr %t23 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then14, label %ifend16 then14: store i32 1, ptr %retval br label %ret ifend16: %t44 = load ptr, ptr %t0 %t45 = call i32 @lp_str_eq(ptr %t44, ptr @.str2078) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t43 br i1 %t46, label %scend18, label %sc17 sc17: %t48 = load ptr, ptr %t0 %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str2079) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t43 br label %scend18 scend18: %t52 = load i32, ptr %t43 %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t42 br i1 %t53, label %scend20, label %sc19 sc19: %t55 = load ptr, ptr %t0 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str2080) %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t42 br label %scend20 scend20: %t59 = load i32, ptr %t42 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then21, label %ifend23 then21: store i32 1, ptr %retval br label %ret ifend23: %t62 = load ptr, ptr %t0 %t63 = call i32 @lp_str_eq(ptr %t62, ptr @.str2081) %t64 = icmp ne i32 %t63, 0 %t65 = zext i1 %t64 to i32 store i32 %t65, ptr %t61 br i1 %t64, label %scend25, label %sc24 sc24: %t66 = load ptr, ptr %t0 %t67 = call i32 @lp_str_eq(ptr %t66, ptr @.str2082) %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t61 br label %scend25 scend25: %t70 = load i32, ptr %t61 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then26, label %ifend28 then26: store i32 1, ptr %retval br label %ret ifend28: %t73 = load ptr, ptr %t0 %t74 = call i32 @lp_str_eq(ptr %t73, ptr @.str2083) %t75 = icmp ne i32 %t74, 0 %t76 = zext i1 %t75 to i32 store i32 %t76, ptr %t72 br i1 %t75, label %scend30, label %sc29 sc29: %t77 = load ptr, ptr %t0 %t78 = call i32 @lp_str_eq(ptr %t77, ptr @.str2084) %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t72 br label %scend30 scend30: %t81 = load i32, ptr %t72 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then31, label %ifend33 then31: store i32 1, ptr %retval br label %ret ifend33: %t83 = load ptr, ptr %t0 %t84 = call i32 @lp_str_eq(ptr %t83, ptr @.str2085) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then34, label %ifend36 then34: store i32 1, ptr %retval br label %ret ifend36: store i32 0, ptr %retval br label %ret ret: %t86 = load i32, ptr %retval ret i32 %t86 } define ptr @fn_emit_bind(ptr %arg_rest) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr store ptr %arg_rest, ptr %t0 %t1 = call ptr @fn_nreg() store ptr %t1, ptr %t2 call void @fn_emit(ptr @.str2086) %t3 = load ptr, ptr %t2 call void @fn_emit(ptr %t3) call void @fn_emit(ptr @.str2087) %t4 = load ptr, ptr %t0 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str2088) %t5 = load ptr, ptr %t2 store ptr %t5, ptr %retval br label %ret ret: %t6 = load ptr, ptr %retval ret ptr %t6 } define ptr @fn_arg_code(ptr %arg_e, i32 %arg_i) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t15 = alloca ptr store ptr %arg_e, ptr %t0 store i32 %arg_i, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = load i32, ptr %t1 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp ult i32 %t5, %t9 br i1 %t10, label %ixok0, label %ixbad1 ixbad1: %t11 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t11, ptr @.fmt_bounds, ptr @.str2089, i32 %t5, i32 %t9) call void @exit(i32 1) unreachable ixok0: %t12 = getelementptr inbounds ptr, ptr %t7, i32 %t5 %t13 = load ptr, ptr %t12 %t14 = call ptr @fn_emit_expr(ptr %t13) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Val, ptr %t16, i32 0, i32 0 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %retval br label %ret ret: %t19 = load ptr, ptr %retval ret ptr %t19 } define ptr @fn_emit_intrinsic(ptr %arg_name, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t7 = alloca ptr %t10 = alloca ptr %t15 = alloca ptr %t29 = alloca ptr %t32 = alloca ptr %t41 = alloca i32 %t54 = alloca ptr %t69 = alloca ptr %t72 = alloca ptr %t77 = alloca ptr %t78 = alloca ptr %t95 = alloca ptr %t106 = alloca ptr %t109 = alloca ptr %t112 = alloca ptr %t117 = alloca ptr %t134 = alloca ptr %t139 = alloca ptr %t150 = alloca ptr %t158 = alloca ptr %t171 = alloca ptr %t173 = alloca ptr %t180 = alloca ptr %t190 = alloca ptr %t210 = alloca ptr %t221 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_intrin_ok %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str2090) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = call ptr @fn_arg_code(ptr %t5, i32 0) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t1 %t9 = call ptr @fn_arg_code(ptr %t8, i32 1) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = call ptr @lp_str_concat(ptr @.str2091, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str2092) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t7 %t17 = call ptr @lp_str_concat(ptr @.str2093, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str2094) %t19 = load ptr, ptr %t15 %t20 = call ptr @lp_str_concat(ptr %t18, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str2095) %t22 = call ptr @fn_emit_bind(ptr %t21) %t23 = call ptr @fn_val(ptr %t22, ptr @.str2096) store ptr %t23, ptr %retval br label %ret ifend2: %t24 = load ptr, ptr %t0 %t25 = call i32 @lp_str_eq(ptr %t24, ptr @.str2097) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then3, label %ifend5 then3: call void @fn_use_pak() %t27 = load ptr, ptr %t1 %t28 = call ptr @fn_arg_code(ptr %t27, i32 0) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t1 %t31 = call ptr @fn_arg_code(ptr %t30, i32 1) store ptr %t31, ptr %t32 %t33 = load ptr, ptr %t29 %t34 = call ptr @lp_str_concat(ptr @.str2098, ptr %t33) %t35 = call ptr @lp_str_concat(ptr %t34, ptr @.str2099) %t36 = load ptr, ptr %t32 %t37 = call ptr @lp_str_concat(ptr %t35, ptr %t36) %t38 = call ptr @lp_str_concat(ptr %t37, ptr @.str2100) %t39 = call ptr @fn_emit_bind(ptr %t38) %t40 = call ptr @fn_val(ptr %t39, ptr @.str2101) store ptr %t40, ptr %retval br label %ret ifend5: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str2102) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t41 br i1 %t44, label %scend7, label %sc6 sc6: %t46 = load ptr, ptr %t0 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str2103) %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t41 br label %scend7 scend7: %t50 = load i32, ptr %t41 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then8, label %ifend10 then8: %t52 = load ptr, ptr %t1 %t53 = call ptr @fn_arg_code(ptr %t52, i32 0) store ptr %t53, ptr %t54 %t55 = load ptr, ptr %t1 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 7 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 1, %t61 br i1 %t62, label %ixok11, label %ixbad12 ixbad12: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str2104, i32 1, i32 %t61) call void @exit(i32 1) unreachable ixok11: %t64 = getelementptr inbounds ptr, ptr %t59, i32 1 %t65 = load ptr, ptr %t64 %t66 = call ptr @fn_raw_expr(ptr %t65) %t67 = getelementptr inbounds %Cmp_Val, ptr %t66, i32 0, i32 0 %t68 = load ptr, ptr %t67 store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t1 %t71 = call ptr @fn_arg_code(ptr %t70, i32 2) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t72 %t74 = call ptr @lp_str_concat(ptr @.str2105, ptr %t73) %t75 = call ptr @lp_str_concat(ptr %t74, ptr @.str2106) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 store ptr @.str2107, ptr %t78 %t79 = load ptr, ptr %t0 %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str2108) %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then13, label %ifend15 then13: store ptr @.str2109, ptr %t78 br label %ifend15 ifend15: %t82 = load ptr, ptr %t78 %t83 = call ptr @lp_str_concat(ptr @.str2110, ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str2111) %t85 = load ptr, ptr %t69 %t86 = call ptr @lp_str_concat(ptr %t84, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str2112) %t88 = load ptr, ptr %t77 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @lp_str_concat(ptr %t89, ptr @.str2113) %t91 = load ptr, ptr %t54 %t92 = call ptr @lp_str_concat(ptr %t90, ptr %t91) %t93 = call ptr @lp_str_concat(ptr %t92, ptr @.str2114) %t94 = call ptr @fn_emit_bind(ptr %t93) store ptr %t94, ptr %t95 %t96 = load ptr, ptr %t95 %t97 = call ptr @lp_str_concat(ptr @.str2115, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str2116) %t99 = call ptr @fn_emit_bind(ptr %t98) %t100 = call ptr @fn_val(ptr %t99, ptr @.str2117) store ptr %t100, ptr %retval br label %ret ifend10: %t101 = load ptr, ptr %t0 %t102 = call i32 @lp_str_eq(ptr %t101, ptr @.str2118) %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then16, label %ifend18 then16: %t104 = load ptr, ptr %t1 %t105 = call ptr @fn_arg_code(ptr %t104, i32 0) store ptr %t105, ptr %t106 %t107 = load ptr, ptr %t1 %t108 = call ptr @fn_arg_code(ptr %t107, i32 1) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t1 %t111 = call ptr @fn_arg_code(ptr %t110, i32 2) store ptr %t111, ptr %t112 %t113 = load ptr, ptr %t109 %t114 = call ptr @lp_str_concat(ptr @.str2119, ptr %t113) %t115 = call ptr @lp_str_concat(ptr %t114, ptr @.str2120) %t116 = call ptr @fn_emit_bind(ptr %t115) store ptr %t116, ptr %t117 %t118 = load ptr, ptr %t106 %t119 = call ptr @lp_str_concat(ptr @.str2121, ptr %t118) %t120 = call ptr @lp_str_concat(ptr %t119, ptr @.str2122) %t121 = load ptr, ptr %t117 %t122 = call ptr @lp_str_concat(ptr %t120, ptr %t121) %t123 = call ptr @lp_str_concat(ptr %t122, ptr @.str2123) %t124 = load ptr, ptr %t112 %t125 = call ptr @lp_str_concat(ptr %t123, ptr %t124) %t126 = call ptr @lp_str_concat(ptr %t125, ptr @.str2124) %t127 = call ptr @fn_emit_bind(ptr %t126) %t128 = call ptr @fn_val(ptr %t127, ptr @.str2125) store ptr %t128, ptr %retval br label %ret ifend18: %t129 = load ptr, ptr %t0 %t130 = call i32 @lp_str_eq(ptr %t129, ptr @.str2126) %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %then19, label %ifend21 then19: %t132 = load ptr, ptr %t1 %t133 = call ptr @fn_arg_code(ptr %t132, i32 0) store ptr %t133, ptr %t134 %t135 = load ptr, ptr %t134 %t136 = call ptr @lp_str_concat(ptr @.str2127, ptr %t135) %t137 = call ptr @lp_str_concat(ptr %t136, ptr @.str2128) %t138 = call ptr @fn_emit_bind(ptr %t137) store ptr %t138, ptr %t139 %t140 = load ptr, ptr %t139 %t141 = call ptr @lp_str_concat(ptr @.str2129, ptr %t140) %t142 = call ptr @lp_str_concat(ptr %t141, ptr @.str2130) %t143 = call ptr @fn_emit_bind(ptr %t142) %t144 = call ptr @fn_val(ptr %t143, ptr @.str2131) store ptr %t144, ptr %retval br label %ret ifend21: %t145 = load ptr, ptr %t0 %t146 = call i32 @lp_str_eq(ptr %t145, ptr @.str2132) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then22, label %ifend24 then22: %t148 = load ptr, ptr %t1 %t149 = call ptr @fn_arg_code(ptr %t148, i32 0) store ptr %t149, ptr %t150 call void @fn_emit(ptr @.str2133) %t151 = load ptr, ptr %t150 call void @fn_emit(ptr %t151) call void @fn_emit(ptr @.str2134) %t152 = call ptr @fn_val(ptr @.str2135, ptr @.str2136) store ptr %t152, ptr %retval br label %ret ifend24: %t153 = load ptr, ptr %t0 %t154 = call i32 @lp_str_eq(ptr %t153, ptr @.str2137) %t155 = icmp ne i32 %t154, 0 br i1 %t155, label %then25, label %ifend27 then25: store i32 1, ptr @g_g_uses_world_despawn %t156 = load ptr, ptr %t1 %t157 = call ptr @fn_arg_code(ptr %t156, i32 0) store ptr %t157, ptr %t158 call void @fn_emit(ptr @.str2138) %t159 = load ptr, ptr %t158 call void @fn_emit(ptr %t159) call void @fn_emit(ptr @.str2139) %t160 = call ptr @fn_val(ptr @.str2140, ptr @.str2141) store ptr %t160, ptr %retval br label %ret ifend27: %t161 = load ptr, ptr %t0 %t162 = call i32 @lp_str_eq(ptr %t161, ptr @.str2142) %t163 = icmp ne i32 %t162, 0 br i1 %t163, label %then28, label %ifend30 then28: %t164 = call ptr @fn_emit_bind(ptr @.str2143) %t165 = call ptr @fn_val(ptr %t164, ptr @.str2144) store ptr %t165, ptr %retval br label %ret ifend30: %t166 = load ptr, ptr %t0 %t167 = call i32 @lp_str_eq(ptr %t166, ptr @.str2145) %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then31, label %ifend33 then31: %t169 = load ptr, ptr %t1 %t170 = call ptr @fn_arg_code(ptr %t169, i32 0) store ptr %t170, ptr %t171 %t172 = call ptr @fn_emit_bind(ptr @.str2146) store ptr %t172, ptr %t173 %t174 = load ptr, ptr %t173 %t175 = call ptr @lp_str_concat(ptr @.str2147, ptr %t174) %t176 = call ptr @lp_str_concat(ptr %t175, ptr @.str2148) %t177 = load ptr, ptr %t171 %t178 = call ptr @lp_str_concat(ptr %t176, ptr %t177) %t179 = call ptr @fn_emit_bind(ptr %t178) store ptr %t179, ptr %t180 %t181 = load ptr, ptr %t180 %t182 = call ptr @lp_str_concat(ptr @.str2149, ptr %t181) %t183 = call ptr @fn_emit_bind(ptr %t182) %t184 = call ptr @fn_val(ptr %t183, ptr @.str2150) store ptr %t184, ptr %retval br label %ret ifend33: %t185 = load ptr, ptr %t0 %t186 = call i32 @lp_str_eq(ptr %t185, ptr @.str2151) %t187 = icmp ne i32 %t186, 0 br i1 %t187, label %then34, label %ifend36 then34: %t188 = load ptr, ptr %t1 %t189 = call ptr @fn_arg_code(ptr %t188, i32 0) store ptr %t189, ptr %t190 call void @fn_emit(ptr @.str2152) %t191 = load ptr, ptr %t190 call void @fn_emit(ptr %t191) call void @fn_emit(ptr @.str2153) call void @fn_emit(ptr @.str2154) store i32 1, ptr @g_g_term %t192 = call ptr @fn_val(ptr @.str2155, ptr @.str2156) store ptr %t192, ptr %retval br label %ret ifend36: %t193 = load ptr, ptr %t0 %t194 = call i32 @lp_str_eq(ptr %t193, ptr @.str2157) %t195 = icmp ne i32 %t194, 0 br i1 %t195, label %then37, label %ifend39 then37: %t196 = call ptr @fn_stdstream_rhs(i32 2) %t197 = call ptr @fn_emit_bind(ptr %t196) %t198 = call ptr @fn_val(ptr %t197, ptr @.str2158) store ptr %t198, ptr %retval br label %ret ifend39: %t199 = load ptr, ptr %t0 %t200 = call i32 @lp_str_eq(ptr %t199, ptr @.str2159) %t201 = icmp ne i32 %t200, 0 br i1 %t201, label %then40, label %ifend42 then40: %t202 = call ptr @fn_stdstream_rhs(i32 1) %t203 = call ptr @fn_emit_bind(ptr %t202) %t204 = call ptr @fn_val(ptr %t203, ptr @.str2160) store ptr %t204, ptr %retval br label %ret ifend42: %t205 = load ptr, ptr %t0 %t206 = call i32 @lp_str_eq(ptr %t205, ptr @.str2161) %t207 = icmp ne i32 %t206, 0 br i1 %t207, label %then43, label %ifend45 then43: %t208 = load ptr, ptr %t1 %t209 = call ptr @fn_arg_code(ptr %t208, i32 0) store ptr %t209, ptr %t210 %t211 = load ptr, ptr %t210 %t212 = call ptr @lp_str_concat(ptr @.str2162, ptr %t211) %t213 = call ptr @lp_str_concat(ptr %t212, ptr @.str2163) %t214 = call ptr @fn_emit_bind(ptr %t213) %t215 = call ptr @fn_val(ptr %t214, ptr @.str2164) store ptr %t215, ptr %retval br label %ret ifend45: %t216 = load ptr, ptr %t0 %t217 = call i32 @lp_str_eq(ptr %t216, ptr @.str2165) %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %then46, label %ifend48 then46: %t219 = load ptr, ptr %t1 %t220 = call ptr @fn_arg_code(ptr %t219, i32 0) store ptr %t220, ptr %t221 %t222 = load ptr, ptr %t221 %t223 = call ptr @lp_str_concat(ptr @.str2166, ptr %t222) %t224 = call ptr @lp_str_concat(ptr %t223, ptr @.str2167) %t225 = call ptr @fn_emit_bind(ptr %t224) %t226 = call ptr @fn_val(ptr %t225, ptr @.str2168) store ptr %t226, ptr %retval br label %ret ifend48: store i32 0, ptr @g_g_intrin_ok %t227 = call ptr @fn_val(ptr @.str2169, ptr @.str2170) store ptr %t227, ptr %retval br label %ret ret: %t228 = load ptr, ptr %retval ret ptr %t228 } define ptr @fn_stdstream_rhs(i32 %arg_fd) { entry: %retval = alloca ptr %t0 = alloca i32 store i32 %arg_fd, ptr %t0 %t1 = load i32, ptr @g_g_target_win %t2 = icmp ne i32 %t1, 0 br i1 %t2, label %then0, label %ifend2 then0: %t3 = load i32, ptr %t0 %t4 = call ptr @fn_itoa(i32 %t3) %t5 = call ptr @lp_str_concat(ptr @.str2171, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str2172) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load i32, ptr %t0 %t8 = icmp eq i32 %t7, 2 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: store ptr @.str2173, ptr %retval br label %ret ifend5: store ptr @.str2174, ptr %retval br label %ret ret: %t11 = load ptr, ptr %retval ret ptr %t11 } define i32 @fn_is_intrinsic2(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t12 = alloca i32 %t23 = alloca i32 %t34 = alloca i32 %t45 = alloca i32 %t46 = alloca i32 %t64 = alloca i32 %t75 = alloca i32 %t92 = alloca i32 %t106 = alloca i32 %t107 = alloca i32 %t125 = alloca i32 %t126 = alloca i32 %t127 = alloca i32 %t152 = alloca i32 %t153 = alloca i32 %t171 = alloca i32 %t172 = alloca i32 %t173 = alloca i32 %t198 = alloca i32 %t199 = alloca i32 store ptr %arg_name, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str2175) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str2176) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then2, label %ifend4 then2: store i32 1, ptr %retval br label %ret ifend4: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str2177) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t12 br i1 %t15, label %scend6, label %sc5 sc5: %t17 = load ptr, ptr %t0 %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str2178) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t12 br label %scend6 scend6: %t21 = load i32, ptr %t12 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then7, label %ifend9 then7: store i32 1, ptr %retval br label %ret ifend9: %t24 = load ptr, ptr %t0 %t25 = call i32 @lp_str_eq(ptr %t24, ptr @.str2179) %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t23 br i1 %t26, label %scend11, label %sc10 sc10: %t28 = load ptr, ptr %t0 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str2180) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t23 br label %scend11 scend11: %t32 = load i32, ptr %t23 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then12, label %ifend14 then12: store i32 1, ptr %retval br label %ret ifend14: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str2181) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t34 br i1 %t37, label %scend16, label %sc15 sc15: %t39 = load ptr, ptr %t0 %t40 = call i32 @lp_str_eq(ptr %t39, ptr @.str2182) %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t34 br label %scend16 scend16: %t43 = load i32, ptr %t34 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then17, label %ifend19 then17: store i32 1, ptr %retval br label %ret ifend19: %t47 = load ptr, ptr %t0 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str2183) %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t46 br i1 %t49, label %scend21, label %sc20 sc20: %t51 = load ptr, ptr %t0 %t52 = call i32 @lp_str_eq(ptr %t51, ptr @.str2184) %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t46 br label %scend21 scend21: %t55 = load i32, ptr %t46 %t56 = icmp ne i32 %t55, 0 %t57 = zext i1 %t56 to i32 store i32 %t57, ptr %t45 br i1 %t56, label %scend23, label %sc22 sc22: %t58 = load ptr, ptr %t0 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str2185) %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t45 br label %scend23 scend23: %t62 = load i32, ptr %t45 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then24, label %ifend26 then24: store i32 1, ptr %retval br label %ret ifend26: %t65 = load ptr, ptr %t0 %t66 = call i32 @lp_str_eq(ptr %t65, ptr @.str2186) %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t64 br i1 %t67, label %scend28, label %sc27 sc27: %t69 = load ptr, ptr %t0 %t70 = call i32 @lp_str_eq(ptr %t69, ptr @.str2187) %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t64 br label %scend28 scend28: %t73 = load i32, ptr %t64 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then29, label %ifend31 then29: store i32 1, ptr %retval br label %ret ifend31: %t76 = load ptr, ptr %t0 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str2188) %t78 = icmp ne i32 %t77, 0 %t79 = zext i1 %t78 to i32 store i32 %t79, ptr %t75 br i1 %t78, label %scend33, label %sc32 sc32: %t80 = load ptr, ptr %t0 %t81 = call i32 @lp_str_eq(ptr %t80, ptr @.str2189) %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t75 br label %scend33 scend33: %t84 = load i32, ptr %t75 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then34, label %ifend36 then34: store i32 1, ptr %retval br label %ret ifend36: %t86 = load ptr, ptr %t0 %t87 = call i32 @lp_str_eq(ptr %t86, ptr @.str2190) %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then37, label %ifend39 then37: store i32 1, ptr %retval br label %ret ifend39: %t89 = load ptr, ptr %t0 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str2191) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then40, label %ifend42 then40: store i32 1, ptr %retval br label %ret ifend42: %t93 = load ptr, ptr %t0 %t94 = call i32 @lp_str_eq(ptr %t93, ptr @.str2192) %t95 = icmp ne i32 %t94, 0 %t96 = zext i1 %t95 to i32 store i32 %t96, ptr %t92 br i1 %t95, label %scend44, label %sc43 sc43: %t97 = load ptr, ptr %t0 %t98 = call i32 @lp_str_eq(ptr %t97, ptr @.str2193) %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t92 br label %scend44 scend44: %t101 = load i32, ptr %t92 %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then45, label %ifend47 then45: store i32 1, ptr %retval br label %ret ifend47: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str2194) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then48, label %ifend50 then48: store i32 1, ptr %retval br label %ret ifend50: %t108 = load ptr, ptr %t0 %t109 = call i32 @lp_str_eq(ptr %t108, ptr @.str2195) %t110 = icmp ne i32 %t109, 0 %t111 = zext i1 %t110 to i32 store i32 %t111, ptr %t107 br i1 %t110, label %scend52, label %sc51 sc51: %t112 = load ptr, ptr %t0 %t113 = call i32 @lp_str_eq(ptr %t112, ptr @.str2196) %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t107 br label %scend52 scend52: %t116 = load i32, ptr %t107 %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t106 br i1 %t117, label %scend54, label %sc53 sc53: %t119 = load ptr, ptr %t0 %t120 = call i32 @lp_str_eq(ptr %t119, ptr @.str2197) %t121 = icmp ne i32 %t120, 0 %t122 = zext i1 %t121 to i32 store i32 %t122, ptr %t106 br label %scend54 scend54: %t123 = load i32, ptr %t106 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then55, label %ifend57 then55: store i32 1, ptr %retval br label %ret ifend57: %t128 = load ptr, ptr %t0 %t129 = call i32 @lp_str_eq(ptr %t128, ptr @.str2198) %t130 = icmp ne i32 %t129, 0 %t131 = zext i1 %t130 to i32 store i32 %t131, ptr %t127 br i1 %t130, label %scend59, label %sc58 sc58: %t132 = load ptr, ptr %t0 %t133 = call i32 @lp_str_eq(ptr %t132, ptr @.str2199) %t134 = icmp ne i32 %t133, 0 %t135 = zext i1 %t134 to i32 store i32 %t135, ptr %t127 br label %scend59 scend59: %t136 = load i32, ptr %t127 %t137 = icmp ne i32 %t136, 0 %t138 = zext i1 %t137 to i32 store i32 %t138, ptr %t126 br i1 %t137, label %scend61, label %sc60 sc60: %t139 = load ptr, ptr %t0 %t140 = call i32 @lp_str_eq(ptr %t139, ptr @.str2200) %t141 = icmp ne i32 %t140, 0 %t142 = zext i1 %t141 to i32 store i32 %t142, ptr %t126 br label %scend61 scend61: %t143 = load i32, ptr %t126 %t144 = icmp ne i32 %t143, 0 %t145 = zext i1 %t144 to i32 store i32 %t145, ptr %t125 br i1 %t144, label %scend63, label %sc62 sc62: %t146 = load ptr, ptr %t0 %t147 = call i32 @lp_str_eq(ptr %t146, ptr @.str2201) %t148 = icmp ne i32 %t147, 0 %t149 = zext i1 %t148 to i32 store i32 %t149, ptr %t125 br label %scend63 scend63: %t150 = load i32, ptr %t125 %t151 = icmp ne i32 %t150, 0 br i1 %t151, label %then64, label %ifend66 then64: store i32 1, ptr %retval br label %ret ifend66: %t154 = load ptr, ptr %t0 %t155 = call i32 @lp_str_eq(ptr %t154, ptr @.str2202) %t156 = icmp ne i32 %t155, 0 %t157 = zext i1 %t156 to i32 store i32 %t157, ptr %t153 br i1 %t156, label %scend68, label %sc67 sc67: %t158 = load ptr, ptr %t0 %t159 = call i32 @lp_str_eq(ptr %t158, ptr @.str2203) %t160 = icmp ne i32 %t159, 0 %t161 = zext i1 %t160 to i32 store i32 %t161, ptr %t153 br label %scend68 scend68: %t162 = load i32, ptr %t153 %t163 = icmp ne i32 %t162, 0 %t164 = zext i1 %t163 to i32 store i32 %t164, ptr %t152 br i1 %t163, label %scend70, label %sc69 sc69: %t165 = load ptr, ptr %t0 %t166 = call i32 @lp_str_eq(ptr %t165, ptr @.str2204) %t167 = icmp ne i32 %t166, 0 %t168 = zext i1 %t167 to i32 store i32 %t168, ptr %t152 br label %scend70 scend70: %t169 = load i32, ptr %t152 %t170 = icmp ne i32 %t169, 0 br i1 %t170, label %then71, label %ifend73 then71: store i32 1, ptr %retval br label %ret ifend73: %t174 = load ptr, ptr %t0 %t175 = call i32 @lp_str_eq(ptr %t174, ptr @.str2205) %t176 = icmp ne i32 %t175, 0 %t177 = zext i1 %t176 to i32 store i32 %t177, ptr %t173 br i1 %t176, label %scend75, label %sc74 sc74: %t178 = load ptr, ptr %t0 %t179 = call i32 @lp_str_eq(ptr %t178, ptr @.str2206) %t180 = icmp ne i32 %t179, 0 %t181 = zext i1 %t180 to i32 store i32 %t181, ptr %t173 br label %scend75 scend75: %t182 = load i32, ptr %t173 %t183 = icmp ne i32 %t182, 0 %t184 = zext i1 %t183 to i32 store i32 %t184, ptr %t172 br i1 %t183, label %scend77, label %sc76 sc76: %t185 = load ptr, ptr %t0 %t186 = call i32 @lp_str_eq(ptr %t185, ptr @.str2207) %t187 = icmp ne i32 %t186, 0 %t188 = zext i1 %t187 to i32 store i32 %t188, ptr %t172 br label %scend77 scend77: %t189 = load i32, ptr %t172 %t190 = icmp ne i32 %t189, 0 %t191 = zext i1 %t190 to i32 store i32 %t191, ptr %t171 br i1 %t190, label %scend79, label %sc78 sc78: %t192 = load ptr, ptr %t0 %t193 = call i32 @lp_str_eq(ptr %t192, ptr @.str2208) %t194 = icmp ne i32 %t193, 0 %t195 = zext i1 %t194 to i32 store i32 %t195, ptr %t171 br label %scend79 scend79: %t196 = load i32, ptr %t171 %t197 = icmp ne i32 %t196, 0 br i1 %t197, label %then80, label %ifend82 then80: store i32 1, ptr %retval br label %ret ifend82: %t200 = load ptr, ptr %t0 %t201 = call i32 @lp_str_eq(ptr %t200, ptr @.str2209) %t202 = icmp ne i32 %t201, 0 %t203 = zext i1 %t202 to i32 store i32 %t203, ptr %t199 br i1 %t202, label %scend84, label %sc83 sc83: %t204 = load ptr, ptr %t0 %t205 = call i32 @lp_str_eq(ptr %t204, ptr @.str2210) %t206 = icmp ne i32 %t205, 0 %t207 = zext i1 %t206 to i32 store i32 %t207, ptr %t199 br label %scend84 scend84: %t208 = load i32, ptr %t199 %t209 = icmp ne i32 %t208, 0 %t210 = zext i1 %t209 to i32 store i32 %t210, ptr %t198 br i1 %t209, label %scend86, label %sc85 sc85: %t211 = load ptr, ptr %t0 %t212 = call i32 @lp_str_eq(ptr %t211, ptr @.str2211) %t213 = icmp ne i32 %t212, 0 %t214 = zext i1 %t213 to i32 store i32 %t214, ptr %t198 br label %scend86 scend86: %t215 = load i32, ptr %t198 %t216 = icmp ne i32 %t215, 0 br i1 %t216, label %then87, label %ifend89 then87: store i32 1, ptr %retval br label %ret ifend89: store i32 0, ptr %retval br label %ret ret: %t217 = load i32, ptr %retval ret i32 %t217 } define ptr @fn_emit_intrinsic2(ptr %arg_name, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t29 = alloca ptr %t56 = alloca ptr %t59 = alloca ptr %t62 = alloca ptr %t67 = alloca ptr %t89 = alloca ptr %t92 = alloca ptr %t94 = alloca ptr %t120 = alloca ptr %t140 = alloca ptr %t171 = alloca ptr %t174 = alloca ptr %t177 = alloca ptr %t180 = alloca ptr %t191 = alloca ptr %t194 = alloca ptr %t197 = alloca ptr %t211 = alloca ptr %t219 = alloca ptr %t227 = alloca ptr %t238 = alloca ptr %t241 = alloca ptr %t255 = alloca ptr %t263 = alloca ptr %t271 = alloca ptr %t279 = alloca ptr %t290 = alloca ptr %t293 = alloca ptr %t296 = alloca ptr %t299 = alloca ptr %t310 = alloca ptr %t318 = alloca ptr %t329 = alloca ptr %t332 = alloca ptr %t341 = alloca ptr %t344 = alloca ptr %t353 = alloca ptr %t356 = alloca ptr %t365 = alloca ptr %t368 = alloca ptr %t382 = alloca ptr %t385 = alloca ptr %t388 = alloca ptr %t398 = alloca ptr %t401 = alloca ptr %t404 = alloca ptr %t414 = alloca ptr %t417 = alloca ptr %t426 = alloca ptr %t437 = alloca ptr %t448 = alloca ptr %t459 = alloca ptr %t470 = alloca ptr %t473 = alloca ptr %t487 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str2212) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str2213, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = call i32 @fn_is_slice_ty(ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load ptr, ptr %t17 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @fn_slice_field(ptr %t25, i32 0) %t27 = call ptr @lp_str_concat(ptr @.str2214, ptr %t26) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr @.str2215, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str2216) call void @fn_emit(ptr %t32) br label %ifend7 ifend7: %t33 = load ptr, ptr %t17 %t34 = getelementptr inbounds %Cmp_Val, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @lp_str_concat(ptr @.str2217, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str2218) call void @fn_emit(ptr %t37) %t38 = call ptr @fn_val(ptr @.str2219, ptr @.str2220) store ptr %t38, ptr %retval br label %ret ifend2: %t39 = load ptr, ptr %t0 %t40 = call i32 @lp_str_eq(ptr %t39, ptr @.str2221) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then8, label %ifend10 then8: %t42 = load ptr, ptr %t1 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 7 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp ult i32 0, %t48 br i1 %t49, label %ixok11, label %ixbad12 ixbad12: %t50 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t50, ptr @.fmt_bounds, ptr @.str2222, i32 0, i32 %t48) call void @exit(i32 1) unreachable ixok11: %t51 = getelementptr inbounds ptr, ptr %t46, i32 0 %t52 = load ptr, ptr %t51 %t53 = call ptr @fn_raw_expr(ptr %t52) %t54 = getelementptr inbounds %Cmp_Val, ptr %t53, i32 0, i32 0 %t55 = load ptr, ptr %t54 store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t1 %t58 = call ptr @fn_arg_code(ptr %t57, i32 1) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t1 %t61 = call ptr @fn_arg_code(ptr %t60, i32 2) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = call ptr @lp_str_concat(ptr @.str2223, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str2224) %t66 = call ptr @fn_emit_bind(ptr %t65) store ptr %t66, ptr %t67 call void @fn_emit(ptr @.str2225) %t68 = load ptr, ptr %t56 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str2226) %t69 = load ptr, ptr %t59 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str2227) %t70 = load ptr, ptr %t67 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str2228) %t71 = call ptr @fn_val(ptr @.str2229, ptr @.str2230) store ptr %t71, ptr %retval br label %ret ifend10: %t72 = load ptr, ptr %t0 %t73 = call i32 @lp_str_eq(ptr %t72, ptr @.str2231) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then13, label %ifend15 then13: %t75 = load ptr, ptr %t1 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 7 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp ult i32 0, %t81 br i1 %t82, label %ixok16, label %ixbad17 ixbad17: %t83 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t83, ptr @.fmt_bounds, ptr @.str2232, i32 0, i32 %t81) call void @exit(i32 1) unreachable ixok16: %t84 = getelementptr inbounds ptr, ptr %t79, i32 0 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_raw_expr(ptr %t85) %t87 = getelementptr inbounds %Cmp_Val, ptr %t86, i32 0, i32 0 %t88 = load ptr, ptr %t87 store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t1 %t91 = call ptr @fn_arg_code(ptr %t90, i32 1) store ptr %t91, ptr %t92 %t93 = call ptr @fn_nreg() store ptr %t93, ptr %t94 call void @fn_emit(ptr @.str2233) %t95 = load ptr, ptr %t94 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str2234) %t96 = load ptr, ptr %t89 call void @fn_emit(ptr %t96) call void @fn_emit(ptr @.str2235) %t97 = load ptr, ptr %t92 call void @fn_emit(ptr %t97) call void @fn_emit(ptr @.str2236) %t98 = load ptr, ptr %t94 %t99 = call ptr @fn_val(ptr %t98, ptr @.str2237) store ptr %t99, ptr %retval br label %ret ifend15: %t100 = load ptr, ptr %t0 %t101 = call i32 @lp_str_eq(ptr %t100, ptr @.str2238) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then18, label %ifend20 then18: %t103 = call ptr @fn_emit_bind(ptr @.str2239) %t104 = call ptr @fn_val(ptr %t103, ptr @.str2240) store ptr %t104, ptr %retval br label %ret ifend20: %t105 = load ptr, ptr %t0 %t106 = call i32 @lp_str_eq(ptr %t105, ptr @.str2241) %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then21, label %ifend23 then21: %t108 = load ptr, ptr %t1 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 7 %t110 = load ptr, ptr %t109 %t111 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 %t114 = load i32, ptr %t113 %t115 = icmp ult i32 0, %t114 br i1 %t115, label %ixok24, label %ixbad25 ixbad25: %t116 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t116, ptr @.fmt_bounds, ptr @.str2242, i32 0, i32 %t114) call void @exit(i32 1) unreachable ixok24: %t117 = getelementptr inbounds ptr, ptr %t112, i32 0 %t118 = load ptr, ptr %t117 %t119 = call ptr @fn_emit_expr(ptr %t118) store ptr %t119, ptr %t120 %t121 = load ptr, ptr %t120 %t122 = getelementptr inbounds %Cmp_Val, ptr %t121, i32 0, i32 0 %t123 = load ptr, ptr %t122 %t124 = call ptr @fn_val(ptr %t123, ptr @.str2243) store ptr %t124, ptr %retval br label %ret ifend23: %t125 = load ptr, ptr %t0 %t126 = call i32 @lp_str_eq(ptr %t125, ptr @.str2244) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then26, label %ifend28 then26: %t128 = load ptr, ptr %t1 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 7 %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 %t133 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t134 = load i32, ptr %t133 %t135 = icmp ult i32 0, %t134 br i1 %t135, label %ixok29, label %ixbad30 ixbad30: %t136 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t136, ptr @.fmt_bounds, ptr @.str2245, i32 0, i32 %t134) call void @exit(i32 1) unreachable ixok29: %t137 = getelementptr inbounds ptr, ptr %t132, i32 0 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_emit_expr(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t140 %t142 = getelementptr inbounds %Cmp_Val, ptr %t141, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = call ptr @fn_val(ptr %t143, ptr @.str2246) store ptr %t144, ptr %retval br label %ret ifend28: %t145 = load ptr, ptr %t0 %t146 = call i32 @lp_str_eq(ptr %t145, ptr @.str2247) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then31, label %ifend33 then31: %t148 = load i32, ptr @g_g_windowed %t149 = icmp ne i32 %t148, 0 br i1 %t149, label %then34, label %ifend36 then34: %t150 = call ptr @fn_val(ptr @.str2248, ptr @.str2249) store ptr %t150, ptr %retval br label %ret ifend36: %t151 = call ptr @fn_val(ptr @.str2250, ptr @.str2251) store ptr %t151, ptr %retval br label %ret ifend33: %t152 = load ptr, ptr %t0 %t153 = call i32 @lp_str_eq(ptr %t152, ptr @.str2252) %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then37, label %ifend39 then37: %t155 = call ptr @fn_val(ptr @.str2253, ptr @.str2254) store ptr %t155, ptr %retval br label %ret ifend39: %t156 = load ptr, ptr %t0 %t157 = call i32 @lp_str_eq(ptr %t156, ptr @.str2255) %t158 = icmp ne i32 %t157, 0 br i1 %t158, label %then40, label %ifend42 then40: %t159 = call ptr @fn_emit_bind(ptr @.str2256) %t160 = call ptr @fn_val(ptr %t159, ptr @.str2257) store ptr %t160, ptr %retval br label %ret ifend42: %t161 = load ptr, ptr %t0 %t162 = call i32 @lp_str_eq(ptr %t161, ptr @.str2258) %t163 = icmp ne i32 %t162, 0 br i1 %t163, label %then43, label %ifend45 then43: %t164 = call ptr @fn_emit_bind(ptr @.str2259) %t165 = call ptr @fn_val(ptr %t164, ptr @.str2260) store ptr %t165, ptr %retval br label %ret ifend45: %t166 = load ptr, ptr %t0 %t167 = call i32 @lp_str_eq(ptr %t166, ptr @.str2261) %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then46, label %ifend48 then46: %t169 = load ptr, ptr %t1 %t170 = call ptr @fn_arg_code(ptr %t169, i32 0) store ptr %t170, ptr %t171 %t172 = load ptr, ptr %t1 %t173 = call ptr @fn_arg_code(ptr %t172, i32 1) store ptr %t173, ptr %t174 %t175 = load ptr, ptr %t1 %t176 = call ptr @fn_arg_code(ptr %t175, i32 2) store ptr %t176, ptr %t177 %t178 = load ptr, ptr %t1 %t179 = call ptr @fn_arg_code(ptr %t178, i32 3) store ptr %t179, ptr %t180 call void @fn_emit(ptr @.str2262) %t181 = load ptr, ptr %t171 call void @fn_emit(ptr %t181) call void @fn_emit(ptr @.str2263) %t182 = load ptr, ptr %t174 call void @fn_emit(ptr %t182) call void @fn_emit(ptr @.str2264) %t183 = load ptr, ptr %t177 call void @fn_emit(ptr %t183) call void @fn_emit(ptr @.str2265) %t184 = load ptr, ptr %t180 call void @fn_emit(ptr %t184) call void @fn_emit(ptr @.str2266) %t185 = call ptr @fn_val(ptr @.str2267, ptr @.str2268) store ptr %t185, ptr %retval br label %ret ifend48: %t186 = load ptr, ptr %t0 %t187 = call i32 @lp_str_eq(ptr %t186, ptr @.str2269) %t188 = icmp ne i32 %t187, 0 br i1 %t188, label %then49, label %ifend51 then49: %t189 = load ptr, ptr %t1 %t190 = call ptr @fn_arg_code(ptr %t189, i32 0) store ptr %t190, ptr %t191 %t192 = load ptr, ptr %t1 %t193 = call ptr @fn_arg_code(ptr %t192, i32 1) store ptr %t193, ptr %t194 %t195 = load ptr, ptr %t1 %t196 = call ptr @fn_arg_code(ptr %t195, i32 2) store ptr %t196, ptr %t197 call void @fn_emit(ptr @.str2270) %t198 = load ptr, ptr %t191 call void @fn_emit(ptr %t198) call void @fn_emit(ptr @.str2271) %t199 = load ptr, ptr %t194 call void @fn_emit(ptr %t199) call void @fn_emit(ptr @.str2272) %t200 = load ptr, ptr %t197 call void @fn_emit(ptr %t200) call void @fn_emit(ptr @.str2273) %t201 = call ptr @fn_val(ptr @.str2274, ptr @.str2275) store ptr %t201, ptr %retval br label %ret ifend51: %t202 = load ptr, ptr %t0 %t203 = call i32 @lp_str_eq(ptr %t202, ptr @.str2276) %t204 = icmp ne i32 %t203, 0 br i1 %t204, label %then52, label %ifend54 then52: call void @fn_emit(ptr @.str2277) %t205 = call ptr @fn_val(ptr @.str2278, ptr @.str2279) store ptr %t205, ptr %retval br label %ret ifend54: %t206 = load ptr, ptr %t0 %t207 = call i32 @lp_str_eq(ptr %t206, ptr @.str2280) %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %then55, label %ifend57 then55: %t209 = load ptr, ptr %t1 %t210 = call ptr @fn_arg_code(ptr %t209, i32 0) store ptr %t210, ptr %t211 call void @fn_emit(ptr @.str2281) %t212 = load ptr, ptr %t211 call void @fn_emit(ptr %t212) call void @fn_emit(ptr @.str2282) %t213 = call ptr @fn_val(ptr @.str2283, ptr @.str2284) store ptr %t213, ptr %retval br label %ret ifend57: %t214 = load ptr, ptr %t0 %t215 = call i32 @lp_str_eq(ptr %t214, ptr @.str2285) %t216 = icmp ne i32 %t215, 0 br i1 %t216, label %then58, label %ifend60 then58: %t217 = load ptr, ptr %t1 %t218 = call ptr @fn_arg_code(ptr %t217, i32 0) store ptr %t218, ptr %t219 call void @fn_emit(ptr @.str2286) %t220 = load ptr, ptr %t219 call void @fn_emit(ptr %t220) call void @fn_emit(ptr @.str2287) %t221 = call ptr @fn_val(ptr @.str2288, ptr @.str2289) store ptr %t221, ptr %retval br label %ret ifend60: %t222 = load ptr, ptr %t0 %t223 = call i32 @lp_str_eq(ptr %t222, ptr @.str2290) %t224 = icmp ne i32 %t223, 0 br i1 %t224, label %then61, label %ifend63 then61: %t225 = load ptr, ptr %t1 %t226 = call ptr @fn_arg_code(ptr %t225, i32 0) store ptr %t226, ptr %t227 %t228 = load ptr, ptr %t227 %t229 = call ptr @lp_str_concat(ptr @.str2291, ptr %t228) %t230 = call ptr @lp_str_concat(ptr %t229, ptr @.str2292) %t231 = call ptr @fn_emit_bind(ptr %t230) %t232 = call ptr @fn_val(ptr %t231, ptr @.str2293) store ptr %t232, ptr %retval br label %ret ifend63: %t233 = load ptr, ptr %t0 %t234 = call i32 @lp_str_eq(ptr %t233, ptr @.str2294) %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %then64, label %ifend66 then64: %t236 = load ptr, ptr %t1 %t237 = call ptr @fn_arg_code(ptr %t236, i32 0) store ptr %t237, ptr %t238 %t239 = load ptr, ptr %t1 %t240 = call ptr @fn_arg_code(ptr %t239, i32 1) store ptr %t240, ptr %t241 %t242 = load ptr, ptr %t238 %t243 = call ptr @lp_str_concat(ptr @.str2295, ptr %t242) %t244 = call ptr @lp_str_concat(ptr %t243, ptr @.str2296) %t245 = load ptr, ptr %t241 %t246 = call ptr @lp_str_concat(ptr %t244, ptr %t245) %t247 = call ptr @lp_str_concat(ptr %t246, ptr @.str2297) %t248 = call ptr @fn_emit_bind(ptr %t247) %t249 = call ptr @fn_val(ptr %t248, ptr @.str2298) store ptr %t249, ptr %retval br label %ret ifend66: %t250 = load ptr, ptr %t0 %t251 = call i32 @lp_str_eq(ptr %t250, ptr @.str2299) %t252 = icmp ne i32 %t251, 0 br i1 %t252, label %then67, label %ifend69 then67: %t253 = load ptr, ptr %t1 %t254 = call ptr @fn_arg_code(ptr %t253, i32 0) store ptr %t254, ptr %t255 call void @fn_emit(ptr @.str2300) %t256 = load ptr, ptr %t255 call void @fn_emit(ptr %t256) call void @fn_emit(ptr @.str2301) %t257 = call ptr @fn_val(ptr @.str2302, ptr @.str2303) store ptr %t257, ptr %retval br label %ret ifend69: %t258 = load ptr, ptr %t0 %t259 = call i32 @lp_str_eq(ptr %t258, ptr @.str2304) %t260 = icmp ne i32 %t259, 0 br i1 %t260, label %then70, label %ifend72 then70: %t261 = load ptr, ptr %t1 %t262 = call ptr @fn_arg_code(ptr %t261, i32 0) store ptr %t262, ptr %t263 call void @fn_emit(ptr @.str2305) %t264 = load ptr, ptr %t263 call void @fn_emit(ptr %t264) call void @fn_emit(ptr @.str2306) %t265 = call ptr @fn_val(ptr @.str2307, ptr @.str2308) store ptr %t265, ptr %retval br label %ret ifend72: %t266 = load ptr, ptr %t0 %t267 = call i32 @lp_str_eq(ptr %t266, ptr @.str2309) %t268 = icmp ne i32 %t267, 0 br i1 %t268, label %then73, label %ifend75 then73: %t269 = load ptr, ptr %t1 %t270 = call ptr @fn_arg_code(ptr %t269, i32 0) store ptr %t270, ptr %t271 call void @fn_emit(ptr @.str2310) %t272 = load ptr, ptr %t271 call void @fn_emit(ptr %t272) call void @fn_emit(ptr @.str2311) %t273 = call ptr @fn_val(ptr @.str2312, ptr @.str2313) store ptr %t273, ptr %retval br label %ret ifend75: %t274 = load ptr, ptr %t0 %t275 = call i32 @lp_str_eq(ptr %t274, ptr @.str2314) %t276 = icmp ne i32 %t275, 0 br i1 %t276, label %then76, label %ifend78 then76: %t277 = load ptr, ptr %t1 %t278 = call ptr @fn_arg_code(ptr %t277, i32 0) store ptr %t278, ptr %t279 %t280 = load ptr, ptr %t279 %t281 = call ptr @lp_str_concat(ptr @.str2315, ptr %t280) %t282 = call ptr @lp_str_concat(ptr %t281, ptr @.str2316) %t283 = call ptr @fn_emit_bind(ptr %t282) %t284 = call ptr @fn_val(ptr %t283, ptr @.str2317) store ptr %t284, ptr %retval br label %ret ifend78: %t285 = load ptr, ptr %t0 %t286 = call i32 @lp_str_eq(ptr %t285, ptr @.str2318) %t287 = icmp ne i32 %t286, 0 br i1 %t287, label %then79, label %ifend81 then79: %t288 = load ptr, ptr %t1 %t289 = call ptr @fn_arg_code(ptr %t288, i32 0) store ptr %t289, ptr %t290 %t291 = load ptr, ptr %t1 %t292 = call ptr @fn_arg_code(ptr %t291, i32 1) store ptr %t292, ptr %t293 %t294 = load ptr, ptr %t1 %t295 = call ptr @fn_arg_code(ptr %t294, i32 2) store ptr %t295, ptr %t296 %t297 = load ptr, ptr %t1 %t298 = call ptr @fn_arg_code(ptr %t297, i32 3) store ptr %t298, ptr %t299 call void @fn_emit(ptr @.str2319) %t300 = load ptr, ptr %t290 call void @fn_emit(ptr %t300) call void @fn_emit(ptr @.str2320) %t301 = load ptr, ptr %t293 call void @fn_emit(ptr %t301) call void @fn_emit(ptr @.str2321) %t302 = load ptr, ptr %t296 call void @fn_emit(ptr %t302) call void @fn_emit(ptr @.str2322) %t303 = load ptr, ptr %t299 call void @fn_emit(ptr %t303) call void @fn_emit(ptr @.str2323) %t304 = call ptr @fn_val(ptr @.str2324, ptr @.str2325) store ptr %t304, ptr %retval br label %ret ifend81: %t305 = load ptr, ptr %t0 %t306 = call i32 @lp_str_eq(ptr %t305, ptr @.str2326) %t307 = icmp ne i32 %t306, 0 br i1 %t307, label %then82, label %ifend84 then82: %t308 = load ptr, ptr %t1 %t309 = call ptr @fn_arg_code(ptr %t308, i32 0) store ptr %t309, ptr %t310 call void @fn_emit(ptr @.str2327) %t311 = load ptr, ptr %t310 call void @fn_emit(ptr %t311) call void @fn_emit(ptr @.str2328) %t312 = call ptr @fn_val(ptr @.str2329, ptr @.str2330) store ptr %t312, ptr %retval br label %ret ifend84: %t313 = load ptr, ptr %t0 %t314 = call i32 @lp_str_eq(ptr %t313, ptr @.str2331) %t315 = icmp ne i32 %t314, 0 br i1 %t315, label %then85, label %ifend87 then85: %t316 = load ptr, ptr %t1 %t317 = call ptr @fn_arg_code(ptr %t316, i32 0) store ptr %t317, ptr %t318 %t319 = load ptr, ptr %t318 %t320 = call ptr @lp_str_concat(ptr @.str2332, ptr %t319) %t321 = call ptr @lp_str_concat(ptr %t320, ptr @.str2333) %t322 = call ptr @fn_emit_bind(ptr %t321) %t323 = call ptr @fn_val(ptr %t322, ptr @.str2334) store ptr %t323, ptr %retval br label %ret ifend87: %t324 = load ptr, ptr %t0 %t325 = call i32 @lp_str_eq(ptr %t324, ptr @.str2335) %t326 = icmp ne i32 %t325, 0 br i1 %t326, label %then88, label %ifend90 then88: %t327 = load ptr, ptr %t1 %t328 = call ptr @fn_arg_code(ptr %t327, i32 0) store ptr %t328, ptr %t329 %t330 = load ptr, ptr %t1 %t331 = call ptr @fn_arg_code(ptr %t330, i32 1) store ptr %t331, ptr %t332 call void @fn_emit(ptr @.str2336) %t333 = load ptr, ptr %t329 call void @fn_emit(ptr %t333) call void @fn_emit(ptr @.str2337) %t334 = load ptr, ptr %t332 call void @fn_emit(ptr %t334) call void @fn_emit(ptr @.str2338) %t335 = call ptr @fn_val(ptr @.str2339, ptr @.str2340) store ptr %t335, ptr %retval br label %ret ifend90: %t336 = load ptr, ptr %t0 %t337 = call i32 @lp_str_eq(ptr %t336, ptr @.str2341) %t338 = icmp ne i32 %t337, 0 br i1 %t338, label %then91, label %ifend93 then91: %t339 = load ptr, ptr %t1 %t340 = call ptr @fn_arg_code(ptr %t339, i32 0) store ptr %t340, ptr %t341 %t342 = load ptr, ptr %t1 %t343 = call ptr @fn_arg_code(ptr %t342, i32 1) store ptr %t343, ptr %t344 call void @fn_emit(ptr @.str2342) %t345 = load ptr, ptr %t341 call void @fn_emit(ptr %t345) call void @fn_emit(ptr @.str2343) %t346 = load ptr, ptr %t344 call void @fn_emit(ptr %t346) call void @fn_emit(ptr @.str2344) %t347 = call ptr @fn_val(ptr @.str2345, ptr @.str2346) store ptr %t347, ptr %retval br label %ret ifend93: %t348 = load ptr, ptr %t0 %t349 = call i32 @lp_str_eq(ptr %t348, ptr @.str2347) %t350 = icmp ne i32 %t349, 0 br i1 %t350, label %then94, label %ifend96 then94: %t351 = load ptr, ptr %t1 %t352 = call ptr @fn_arg_code(ptr %t351, i32 0) store ptr %t352, ptr %t353 %t354 = load ptr, ptr %t1 %t355 = call ptr @fn_arg_code(ptr %t354, i32 1) store ptr %t355, ptr %t356 call void @fn_emit(ptr @.str2348) %t357 = load ptr, ptr %t353 call void @fn_emit(ptr %t357) call void @fn_emit(ptr @.str2349) %t358 = load ptr, ptr %t356 call void @fn_emit(ptr %t358) call void @fn_emit(ptr @.str2350) %t359 = call ptr @fn_val(ptr @.str2351, ptr @.str2352) store ptr %t359, ptr %retval br label %ret ifend96: %t360 = load ptr, ptr %t0 %t361 = call i32 @lp_str_eq(ptr %t360, ptr @.str2353) %t362 = icmp ne i32 %t361, 0 br i1 %t362, label %then97, label %ifend99 then97: %t363 = load ptr, ptr %t1 %t364 = call ptr @fn_arg_code(ptr %t363, i32 0) store ptr %t364, ptr %t365 %t366 = load ptr, ptr %t1 %t367 = call ptr @fn_arg_code(ptr %t366, i32 1) store ptr %t367, ptr %t368 %t369 = load ptr, ptr %t365 %t370 = call ptr @lp_str_concat(ptr @.str2354, ptr %t369) %t371 = call ptr @lp_str_concat(ptr %t370, ptr @.str2355) %t372 = load ptr, ptr %t368 %t373 = call ptr @lp_str_concat(ptr %t371, ptr %t372) %t374 = call ptr @lp_str_concat(ptr %t373, ptr @.str2356) %t375 = call ptr @fn_emit_bind(ptr %t374) %t376 = call ptr @fn_val(ptr %t375, ptr @.str2357) store ptr %t376, ptr %retval br label %ret ifend99: %t377 = load ptr, ptr %t0 %t378 = call i32 @lp_str_eq(ptr %t377, ptr @.str2358) %t379 = icmp ne i32 %t378, 0 br i1 %t379, label %then100, label %ifend102 then100: %t380 = load ptr, ptr %t1 %t381 = call ptr @fn_arg_code(ptr %t380, i32 0) store ptr %t381, ptr %t382 %t383 = load ptr, ptr %t1 %t384 = call ptr @fn_arg_code(ptr %t383, i32 1) store ptr %t384, ptr %t385 %t386 = load ptr, ptr %t1 %t387 = call ptr @fn_arg_code(ptr %t386, i32 2) store ptr %t387, ptr %t388 call void @fn_emit(ptr @.str2359) %t389 = load ptr, ptr %t382 call void @fn_emit(ptr %t389) call void @fn_emit(ptr @.str2360) %t390 = load ptr, ptr %t385 call void @fn_emit(ptr %t390) call void @fn_emit(ptr @.str2361) %t391 = load ptr, ptr %t388 call void @fn_emit(ptr %t391) call void @fn_emit(ptr @.str2362) %t392 = call ptr @fn_val(ptr @.str2363, ptr @.str2364) store ptr %t392, ptr %retval br label %ret ifend102: %t393 = load ptr, ptr %t0 %t394 = call i32 @lp_str_eq(ptr %t393, ptr @.str2365) %t395 = icmp ne i32 %t394, 0 br i1 %t395, label %then103, label %ifend105 then103: %t396 = load ptr, ptr %t1 %t397 = call ptr @fn_arg_code(ptr %t396, i32 0) store ptr %t397, ptr %t398 %t399 = load ptr, ptr %t1 %t400 = call ptr @fn_arg_code(ptr %t399, i32 1) store ptr %t400, ptr %t401 %t402 = load ptr, ptr %t1 %t403 = call ptr @fn_arg_code(ptr %t402, i32 2) store ptr %t403, ptr %t404 call void @fn_emit(ptr @.str2366) %t405 = load ptr, ptr %t398 call void @fn_emit(ptr %t405) call void @fn_emit(ptr @.str2367) %t406 = load ptr, ptr %t401 call void @fn_emit(ptr %t406) call void @fn_emit(ptr @.str2368) %t407 = load ptr, ptr %t404 call void @fn_emit(ptr %t407) call void @fn_emit(ptr @.str2369) %t408 = call ptr @fn_val(ptr @.str2370, ptr @.str2371) store ptr %t408, ptr %retval br label %ret ifend105: %t409 = load ptr, ptr %t0 %t410 = call i32 @lp_str_eq(ptr %t409, ptr @.str2372) %t411 = icmp ne i32 %t410, 0 br i1 %t411, label %then106, label %ifend108 then106: %t412 = load ptr, ptr %t1 %t413 = call ptr @fn_arg_code(ptr %t412, i32 0) store ptr %t413, ptr %t414 %t415 = load ptr, ptr %t1 %t416 = call ptr @fn_arg_code(ptr %t415, i32 1) store ptr %t416, ptr %t417 call void @fn_emit(ptr @.str2373) %t418 = load ptr, ptr %t414 call void @fn_emit(ptr %t418) call void @fn_emit(ptr @.str2374) %t419 = load ptr, ptr %t417 call void @fn_emit(ptr %t419) call void @fn_emit(ptr @.str2375) %t420 = call ptr @fn_val(ptr @.str2376, ptr @.str2377) store ptr %t420, ptr %retval br label %ret ifend108: %t421 = load ptr, ptr %t0 %t422 = call i32 @lp_str_eq(ptr %t421, ptr @.str2378) %t423 = icmp ne i32 %t422, 0 br i1 %t423, label %then109, label %ifend111 then109: %t424 = load ptr, ptr %t1 %t425 = call ptr @fn_arg_code(ptr %t424, i32 0) store ptr %t425, ptr %t426 %t427 = load ptr, ptr %t426 %t428 = call ptr @lp_str_concat(ptr @.str2379, ptr %t427) %t429 = call ptr @lp_str_concat(ptr %t428, ptr @.str2380) %t430 = call ptr @fn_emit_bind(ptr %t429) %t431 = call ptr @fn_val(ptr %t430, ptr @.str2381) store ptr %t431, ptr %retval br label %ret ifend111: %t432 = load ptr, ptr %t0 %t433 = call i32 @lp_str_eq(ptr %t432, ptr @.str2382) %t434 = icmp ne i32 %t433, 0 br i1 %t434, label %then112, label %ifend114 then112: %t435 = load ptr, ptr %t1 %t436 = call ptr @fn_arg_code(ptr %t435, i32 0) store ptr %t436, ptr %t437 %t438 = load ptr, ptr %t437 %t439 = call ptr @lp_str_concat(ptr @.str2383, ptr %t438) %t440 = call ptr @lp_str_concat(ptr %t439, ptr @.str2384) %t441 = call ptr @fn_emit_bind(ptr %t440) %t442 = call ptr @fn_val(ptr %t441, ptr @.str2385) store ptr %t442, ptr %retval br label %ret ifend114: %t443 = load ptr, ptr %t0 %t444 = call i32 @lp_str_eq(ptr %t443, ptr @.str2386) %t445 = icmp ne i32 %t444, 0 br i1 %t445, label %then115, label %ifend117 then115: %t446 = load ptr, ptr %t1 %t447 = call ptr @fn_arg_code(ptr %t446, i32 0) store ptr %t447, ptr %t448 %t449 = load ptr, ptr %t448 %t450 = call ptr @lp_str_concat(ptr @.str2387, ptr %t449) %t451 = call ptr @lp_str_concat(ptr %t450, ptr @.str2388) %t452 = call ptr @fn_emit_bind(ptr %t451) %t453 = call ptr @fn_val(ptr %t452, ptr @.str2389) store ptr %t453, ptr %retval br label %ret ifend117: %t454 = load ptr, ptr %t0 %t455 = call i32 @lp_str_eq(ptr %t454, ptr @.str2390) %t456 = icmp ne i32 %t455, 0 br i1 %t456, label %then118, label %ifend120 then118: %t457 = load ptr, ptr %t1 %t458 = call ptr @fn_arg_code(ptr %t457, i32 0) store ptr %t458, ptr %t459 %t460 = load ptr, ptr %t459 %t461 = call ptr @lp_str_concat(ptr @.str2391, ptr %t460) %t462 = call ptr @lp_str_concat(ptr %t461, ptr @.str2392) %t463 = call ptr @fn_emit_bind(ptr %t462) %t464 = call ptr @fn_val(ptr %t463, ptr @.str2393) store ptr %t464, ptr %retval br label %ret ifend120: %t465 = load ptr, ptr %t0 %t466 = call i32 @lp_str_eq(ptr %t465, ptr @.str2394) %t467 = icmp ne i32 %t466, 0 br i1 %t467, label %then121, label %ifend123 then121: %t468 = load ptr, ptr %t1 %t469 = call ptr @fn_arg_code(ptr %t468, i32 0) store ptr %t469, ptr %t470 %t471 = load ptr, ptr %t1 %t472 = call ptr @fn_arg_code(ptr %t471, i32 1) store ptr %t472, ptr %t473 %t474 = load ptr, ptr %t470 %t475 = call ptr @lp_str_concat(ptr @.str2395, ptr %t474) %t476 = call ptr @lp_str_concat(ptr %t475, ptr @.str2396) %t477 = load ptr, ptr %t473 %t478 = call ptr @lp_str_concat(ptr %t476, ptr %t477) %t479 = call ptr @lp_str_concat(ptr %t478, ptr @.str2397) %t480 = call ptr @fn_emit_bind(ptr %t479) %t481 = call ptr @fn_val(ptr %t480, ptr @.str2398) store ptr %t481, ptr %retval br label %ret ifend123: %t482 = load ptr, ptr %t0 %t483 = call i32 @lp_str_eq(ptr %t482, ptr @.str2399) %t484 = icmp ne i32 %t483, 0 br i1 %t484, label %then124, label %ifend126 then124: %t485 = load ptr, ptr %t1 %t486 = call ptr @fn_arg_code(ptr %t485, i32 0) store ptr %t486, ptr %t487 call void @fn_emit(ptr @.str2400) %t488 = load ptr, ptr %t487 call void @fn_emit(ptr %t488) call void @fn_emit(ptr @.str2401) %t489 = call ptr @fn_val(ptr @.str2402, ptr @.str2403) store ptr %t489, ptr %retval br label %ret ifend126: %t490 = call ptr @fn_val(ptr @.str2404, ptr @.str2405) store ptr %t490, ptr %retval br label %ret ret: %t491 = load ptr, ptr %retval ret ptr %t491 } define i32 @fn_is_fp(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_t, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str2406) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str2407) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define void @fn_det_enter(ptr %arg_name) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store ptr @.str2408, ptr @g_g_det_ctx store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_det_names %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_det_names %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str2409, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load ptr, ptr %t0 store ptr %t22, ptr @g_g_det_ctx br label %ifend7 ifend7: %t23 = load i32, ptr %t1 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t1 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_fp_guard(ptr %arg_t) { entry: %t0 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr @g_g_det_ctx %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str2410) %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr @g_g_det_ctx %t7 = call ptr @lp_str_concat(ptr @.str2411, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str2412) %t9 = load ptr, ptr %t0 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @lp_str_concat(ptr %t10, ptr @.str2413) call void @fn_perr(ptr %t11) br label %ifend2 ifend2: br label %ret ret: ret void } define ptr @fn_fp_result(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str2414) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t1 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str2415) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then2, label %ifend4 then2: store ptr @.str2416, ptr %retval br label %ret ifend4: store ptr @.str2417, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_fp_const(ptr %arg_e, ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t34 = alloca ptr %t52 = alloca ptr %t58 = alloca ptr %t59 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_t, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 0 %t4 = load i32, ptr %t3 %t5 = icmp eq i32 %t4, 40 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1 %t10 = load ptr, ptr %t9 %t11 = load ptr, ptr %t1 %t12 = call ptr @fn_fp_lit_code(ptr %t10, ptr %t11) store ptr %t12, ptr %retval br label %ret ifend2: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0 %t15 = load i32, ptr %t14 %t16 = icmp eq i32 %t15, 30 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load ptr, ptr %t0 %t20 = call ptr @fn_int_lit_code(ptr %t19) %t21 = load ptr, ptr %t1 %t22 = call ptr @fn_fp_lit_code(ptr %t20, ptr %t21) store ptr %t22, ptr %retval br label %ret ifend5: %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 38 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 4 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr %t1 %t33 = call ptr @fn_fp_const(ptr %t31, ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t1 %t36 = call ptr @lp_str_concat(ptr @.str2418, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str2419) %t38 = load ptr, ptr %t34 %t39 = call ptr @lp_str_concat(ptr %t37, ptr %t38) %t40 = call ptr @fn_emit_bind(ptr %t39) store ptr %t40, ptr %retval br label %ret ifend8: %t41 = load ptr, ptr %t0 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 0 %t43 = load i32, ptr %t42 %t44 = icmp eq i32 %t43, 37 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then9, label %ifend11 then9: %t47 = load ptr, ptr %t0 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 4 %t49 = load ptr, ptr %t48 %t50 = load ptr, ptr %t1 %t51 = call ptr @fn_fp_const(ptr %t49, ptr %t50) store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t0 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 5 %t55 = load ptr, ptr %t54 %t56 = load ptr, ptr %t1 %t57 = call ptr @fn_fp_const(ptr %t55, ptr %t56) store ptr %t57, ptr %t58 store ptr @.str2420, ptr %t59 %t60 = load ptr, ptr %t0 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 1 %t62 = load ptr, ptr %t61 %t63 = call i32 @lp_str_eq(ptr %t62, ptr @.str2421) %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then12, label %ifend14 then12: store ptr @.str2422, ptr %t59 br label %ifend14 ifend14: %t65 = load ptr, ptr %t0 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 1 %t67 = load ptr, ptr %t66 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str2423) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then15, label %ifend17 then15: store ptr @.str2424, ptr %t59 br label %ifend17 ifend17: %t70 = load ptr, ptr %t0 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 %t73 = call i32 @lp_str_eq(ptr %t72, ptr @.str2425) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then18, label %ifend20 then18: store ptr @.str2426, ptr %t59 br label %ifend20 ifend20: %t75 = load ptr, ptr %t0 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 1 %t77 = load ptr, ptr %t76 %t78 = call i32 @lp_str_eq(ptr %t77, ptr @.str2427) %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then21, label %ifend23 then21: store ptr @.str2428, ptr %t59 br label %ifend23 ifend23: %t80 = load ptr, ptr %t59 %t81 = call ptr @lp_str_concat(ptr %t80, ptr @.str2429) %t82 = load ptr, ptr %t1 %t83 = call ptr @lp_str_concat(ptr %t81, ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str2430) %t85 = load ptr, ptr %t52 %t86 = call ptr @lp_str_concat(ptr %t84, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str2431) %t88 = load ptr, ptr %t58 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @fn_emit_bind(ptr %t89) store ptr %t90, ptr %retval br label %ret ifend11: call void @fn_perr(ptr @.str2432) store ptr @.str2433, ptr %retval br label %ret ret: %t91 = load ptr, ptr %retval ret ptr %t91 } define ptr @fn_zero_of(ptr %arg_lt) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 store ptr %arg_lt, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str2434) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str2435, ptr %retval br label %ret ifend2: %t5 = load ptr, ptr %t0 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str2436) %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t4 br i1 %t7, label %scend4, label %sc3 sc3: %t9 = load ptr, ptr %t0 %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str2437) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t4 br label %scend4 scend4: %t13 = load i32, ptr %t4 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then5, label %ifend7 then5: store ptr @.str2438, ptr %retval br label %ret ifend7: store ptr @.str2439, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } define ptr @fn_fp_lit_code(ptr %arg_text, ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_text, ptr %t0 store ptr %arg_t, ptr %t1 %t2 = load ptr, ptr %t0 store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = call i32 @fn_str_has(ptr %t4, i32 46) %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t3 %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str2440) store ptr %t10, ptr %t3 br label %ifend2 ifend2: %t11 = load ptr, ptr %t1 %t12 = call i32 @lp_str_eq(ptr %t11, ptr @.str2441) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: %t14 = load ptr, ptr %t3 store ptr %t14, ptr %retval br label %ret ifend5: %t15 = load ptr, ptr %t3 %t16 = call ptr @lp_str_concat(ptr @.str2442, ptr %t15) %t17 = call ptr @lp_str_concat(ptr %t16, ptr @.str2443) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %retval br label %ret ret: %t19 = load ptr, ptr %retval ret ptr %t19 } define i32 @fn_str_has(ptr %arg_s, i32 %arg_ch) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 store ptr %arg_s, ptr %t0 store i32 %arg_ch, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = call i64 @strlen(ptr %t4) %t6 = trunc i64 %t5 to i32 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds i8, ptr %t10, i32 %t11 %t13 = load i8, ptr %t12 %t14 = zext i8 %t13 to i32 %t15 = load i32, ptr %t1 %t16 = icmp eq i32 %t14, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t19 = load i32, ptr %t2 %t20 = add i32 %t19, 1 store i32 %t20, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t21 = load i32, ptr %retval ret i32 %t21 } define i32 @fn_is_int_const(ptr %arg_code) { entry: %retval = alloca i32 %t0 = alloca ptr %t4 = alloca i32 %t9 = alloca i32 %t27 = alloca i32 store ptr %arg_code, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: store i32 0, ptr %t9 %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds i8, ptr %t10, i32 0 %t12 = load i8, ptr %t11 %t13 = zext i8 %t12 to i32 %t14 = icmp eq i32 %t13, 45 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then3, label %ifend5 then3: store i32 1, ptr %t9 br label %ifend5 ifend5: %t17 = load i32, ptr %t9 %t18 = load i32, ptr %t4 %t19 = icmp sge i32 %t17, %t18 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then6, label %ifend8 then6: store i32 0, ptr %retval br label %ret ifend8: br label %wcond9 wcond9: %t22 = load i32, ptr %t9 %t23 = load i32, ptr %t4 %t24 = icmp slt i32 %t22, %t23 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %wbody10, label %wend11 wbody10: %t28 = load ptr, ptr %t0 %t29 = load i32, ptr %t9 %t30 = getelementptr inbounds i8, ptr %t28, i32 %t29 %t31 = load i8, ptr %t30 %t32 = zext i8 %t31 to i32 %t33 = icmp slt i32 %t32, 48 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t27 br i1 %t35, label %scend13, label %sc12 sc12: %t37 = load ptr, ptr %t0 %t38 = load i32, ptr %t9 %t39 = getelementptr inbounds i8, ptr %t37, i32 %t38 %t40 = load i8, ptr %t39 %t41 = zext i8 %t40 to i32 %t42 = icmp sgt i32 %t41, 57 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t27 br label %scend13 scend13: %t46 = load i32, ptr %t27 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then14, label %ifend16 then14: store i32 0, ptr %retval br label %ret ifend16: %t48 = load i32, ptr %t9 %t49 = add i32 %t48, 1 store i32 %t49, ptr %t9 br label %wcond9 wend11: store i32 1, ptr %retval br label %ret ret: %t50 = load i32, ptr %retval ret i32 %t50 } define ptr @fn_to_fp(ptr %arg_v, ptr %arg_t, ptr %arg_what) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t13 = alloca i32 %t32 = alloca i32 %t75 = alloca ptr %t76 = alloca i32 %t77 = alloca i32 %t78 = alloca i32 store ptr %arg_v, ptr %t0 store ptr %arg_t, ptr %t1 store ptr %arg_what, ptr %t2 %t3 = load ptr, ptr %t1 call void @fn_fp_guard(ptr %t3) %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t5 %t7 = load ptr, ptr %t1 %t8 = call i32 @lp_str_eq(ptr %t6, ptr %t7) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 store ptr %t12, ptr %retval br label %ret ifend2: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str2444) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t13 br i1 %t18, label %sc3, label %scend4 sc3: %t20 = load ptr, ptr %t1 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str2445) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t13 br label %scend4 scend4: %t24 = load i32, ptr %t13 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Val, ptr %t26, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = call ptr @lp_str_concat(ptr @.str2446, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str2447) %t31 = call ptr @fn_emit_bind(ptr %t30) store ptr %t31, ptr %retval br label %ret ifend7: %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Val, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str2448) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t32 br i1 %t37, label %sc8, label %scend9 sc8: %t39 = load ptr, ptr %t1 %t40 = call i32 @lp_str_eq(ptr %t39, ptr @.str2449) %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t32 br label %scend9 scend9: %t43 = load i32, ptr %t32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then10, label %ifend12 then10: %t45 = load ptr, ptr %t2 %t46 = call ptr @lp_str_concat(ptr %t45, ptr @.str2450) call void @fn_perr(ptr %t46) br label %ifend12 ifend12: %t47 = load ptr, ptr %t0 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 2 %t49 = load ptr, ptr %t48 %t50 = icmp ne ptr %t49, null %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then13, label %ifend15 then13: %t53 = load ptr, ptr %t0 %t54 = getelementptr inbounds %Cmp_Val, ptr %t53, i32 0, i32 2 %t55 = load ptr, ptr %t54 %t56 = load ptr, ptr %t1 %t57 = call ptr @fn_fp_const(ptr %t55, ptr %t56) store ptr %t57, ptr %retval br label %ret ifend15: %t58 = load ptr, ptr %t0 %t59 = getelementptr inbounds %Cmp_Val, ptr %t58, i32 0, i32 1 %t60 = load ptr, ptr %t59 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str2451) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then16, label %ifend18 then16: %t63 = load ptr, ptr %t2 %t64 = call ptr @lp_str_concat(ptr %t63, ptr @.str2452) %t65 = load ptr, ptr %t1 %t66 = call ptr @lp_str_concat(ptr %t64, ptr %t65) %t67 = call ptr @lp_str_concat(ptr %t66, ptr @.str2453) %t68 = load ptr, ptr %t1 %t69 = call ptr @lp_str_concat(ptr %t67, ptr %t68) %t70 = call ptr @lp_str_concat(ptr %t69, ptr @.str2454) call void @fn_perr(ptr %t70) br label %ifend18 ifend18: %t71 = load ptr, ptr %t0 %t72 = getelementptr inbounds %Cmp_Val, ptr %t71, i32 0, i32 1 %t73 = load ptr, ptr %t72 %t74 = call ptr @fn_llty(ptr %t73) store ptr %t74, ptr %t75 %t79 = load ptr, ptr %t75 %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str2455) %t81 = icmp ne i32 %t80, 0 %t82 = zext i1 %t81 to i32 store i32 %t82, ptr %t78 br i1 %t81, label %scend20, label %sc19 sc19: %t83 = load ptr, ptr %t75 %t84 = call i32 @lp_str_eq(ptr %t83, ptr @.str2456) %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t78 br label %scend20 scend20: %t87 = load i32, ptr %t78 %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t77 br i1 %t88, label %sc21, label %scend22 sc21: %t90 = load ptr, ptr %t0 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = call i32 @fn_is_int_const(ptr %t92) %t94 = icmp eq i32 %t93, 0 %t95 = zext i1 %t94 to i32 %t96 = icmp ne i32 %t95, 0 %t97 = zext i1 %t96 to i32 store i32 %t97, ptr %t77 br label %scend22 scend22: %t98 = load i32, ptr %t77 %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t76 br i1 %t99, label %sc23, label %scend24 sc23: %t101 = call i32 @fn_strict_numbers() %t102 = icmp ne i32 %t101, 0 %t103 = zext i1 %t102 to i32 store i32 %t103, ptr %t76 br label %scend24 scend24: %t104 = load i32, ptr %t76 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then25, label %ifend27 then25: %t106 = load ptr, ptr %t2 %t107 = call ptr @lp_str_concat(ptr %t106, ptr @.str2457) %t108 = load ptr, ptr %t0 %t109 = getelementptr inbounds %Cmp_Val, ptr %t108, i32 0, i32 1 %t110 = load ptr, ptr %t109 %t111 = call ptr @lp_str_concat(ptr %t107, ptr %t110) %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str2458) %t113 = load ptr, ptr %t1 %t114 = call ptr @lp_str_concat(ptr %t112, ptr %t113) %t115 = call ptr @lp_str_concat(ptr %t114, ptr @.str2459) %t116 = load ptr, ptr %t1 %t117 = call ptr @lp_str_concat(ptr %t115, ptr %t116) %t118 = call ptr @lp_str_concat(ptr %t117, ptr @.str2460) call void @fn_perr(ptr %t118) br label %ifend27 ifend27: %t119 = load ptr, ptr %t75 %t120 = call i32 @lp_str_eq(ptr %t119, ptr @.str2461) %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then28, label %ifend30 then28: %t122 = load ptr, ptr %t0 %t123 = getelementptr inbounds %Cmp_Val, ptr %t122, i32 0, i32 1 %t124 = load ptr, ptr %t123 %t125 = load ptr, ptr %t1 call void @fn_fp_promote_note(ptr %t124, ptr %t125) %t126 = load ptr, ptr %t0 %t127 = getelementptr inbounds %Cmp_Val, ptr %t126, i32 0, i32 0 %t128 = load ptr, ptr %t127 %t129 = call ptr @lp_str_concat(ptr @.str2462, ptr %t128) %t130 = call ptr @lp_str_concat(ptr %t129, ptr @.str2463) %t131 = load ptr, ptr %t1 %t132 = call ptr @lp_str_concat(ptr %t130, ptr %t131) %t133 = call ptr @fn_emit_bind(ptr %t132) store ptr %t133, ptr %retval br label %ret ifend30: %t134 = load ptr, ptr %t75 %t135 = call i32 @lp_str_eq(ptr %t134, ptr @.str2464) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then31, label %ifend33 then31: %t137 = load ptr, ptr %t0 %t138 = getelementptr inbounds %Cmp_Val, ptr %t137, i32 0, i32 0 %t139 = load ptr, ptr %t138 %t140 = call i32 @fn_is_int_const(ptr %t139) %t141 = icmp ne i32 %t140, 0 br i1 %t141, label %then34, label %ifend36 then34: %t142 = load ptr, ptr %t0 %t143 = getelementptr inbounds %Cmp_Val, ptr %t142, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = load ptr, ptr %t1 %t146 = call ptr @fn_fp_lit_code(ptr %t144, ptr %t145) store ptr %t146, ptr %retval br label %ret ifend36: %t147 = load ptr, ptr %t0 %t148 = getelementptr inbounds %Cmp_Val, ptr %t147, i32 0, i32 1 %t149 = load ptr, ptr %t148 %t150 = load ptr, ptr %t1 call void @fn_fp_promote_note(ptr %t149, ptr %t150) %t151 = load ptr, ptr %t0 %t152 = getelementptr inbounds %Cmp_Val, ptr %t151, i32 0, i32 0 %t153 = load ptr, ptr %t152 %t154 = call ptr @lp_str_concat(ptr @.str2465, ptr %t153) %t155 = call ptr @lp_str_concat(ptr %t154, ptr @.str2466) %t156 = load ptr, ptr %t1 %t157 = call ptr @lp_str_concat(ptr %t155, ptr %t156) %t158 = call ptr @fn_emit_bind(ptr %t157) store ptr %t158, ptr %retval br label %ret ifend33: %t159 = load ptr, ptr %t2 %t160 = call ptr @lp_str_concat(ptr %t159, ptr @.str2467) %t161 = load ptr, ptr %t0 %t162 = getelementptr inbounds %Cmp_Val, ptr %t161, i32 0, i32 1 %t163 = load ptr, ptr %t162 %t164 = call ptr @lp_str_concat(ptr %t160, ptr %t163) %t165 = call ptr @lp_str_concat(ptr %t164, ptr @.str2468) call void @fn_perr(ptr %t165) %t166 = load ptr, ptr %t0 %t167 = getelementptr inbounds %Cmp_Val, ptr %t166, i32 0, i32 0 %t168 = load ptr, ptr %t167 store ptr %t168, ptr %retval br label %ret ret: %t169 = load ptr, ptr %retval ret ptr %t169 } define i32 @fn_strict_numbers() { entry: %retval = alloca i32 %t0 = load ptr, ptr @g_g_err_file %t1 = icmp eq ptr %t0, null %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr @g_g_err_file %t5 = call i32 @fn_is_float_file(ptr %t4) store i32 %t5, ptr %retval br label %ret ret: %t6 = load i32, ptr %retval ret i32 %t6 } define void @fn_fp_promote_note(ptr %arg_from, ptr %arg_t) { entry: %t0 = alloca ptr %t1 = alloca ptr %t15 = alloca ptr %t32 = alloca ptr store ptr %arg_from, ptr %t0 store ptr %arg_t, ptr %t1 %t2 = load i32, ptr @g_g_warn_promote %t3 = icmp slt i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store i32 0, ptr @g_g_warn_promote %t6 = call ptr @getenv(ptr @.str2469) %t7 = icmp ne ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: store i32 1, ptr @g_g_warn_promote br label %ifend5 ifend5: br label %ifend2 ifend2: %t10 = load i32, ptr @g_g_warn_promote %t11 = icmp eq i32 %t10, 0 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: br label %ret ifend8: %t14 = load ptr, ptr @g_g_err_file store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = icmp eq ptr %t16, null %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then9, label %ifend11 then9: store ptr @.str2470, ptr %t15 br label %ifend11 ifend11: %t20 = load ptr, ptr %t15 %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str2471) %t22 = load i32, ptr @g_g_err_line %t23 = call ptr @fn_itoa(i32 %t22) %t24 = call ptr @lp_str_concat(ptr %t21, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str2472) %t26 = load ptr, ptr %t0 %t27 = call ptr @lp_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str2473) %t29 = load ptr, ptr %t1 %t30 = call ptr @lp_str_concat(ptr %t28, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str2474) store ptr %t31, ptr %t32 %t33 = load ptr, ptr @__stderrp %t34 = load ptr, ptr %t32 %t35 = load ptr, ptr %t32 %t36 = call i64 @strlen(ptr %t35) %t37 = trunc i64 %t36 to i32 %t38 = zext i32 %t37 to i64 %t39 = call i64 @fwrite(ptr %t34, i64 1, i64 %t38, ptr %t33) %t40 = trunc i64 %t39 to i32 br label %ret ret: ret void } define ptr @fn_fcmp_code(ptr %arg_op) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_op, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str2475) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str2476, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str2477) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str2478, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str2479) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str2480, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str2481) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store ptr @.str2482, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str2483) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store ptr @.str2484, ptr %retval br label %ret ifend14: store ptr @.str2485, ptr %retval br label %ret ret: %t16 = load ptr, ptr %retval ret ptr %t16 } define ptr @fn_fixed_lit_code(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t33 = alloca i32 %t34 = alloca i32 store ptr %arg_v, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Val, ptr %t2, i32 0, i32 2 %t4 = load ptr, ptr %t3 %t5 = icmp eq ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t1 br i1 %t7, label %scend1, label %sc0 sc0: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Val, ptr %t9, i32 0, i32 1 %t11 = load ptr, ptr %t10 %t12 = call i32 @fn_is_fp(ptr %t11) %t13 = icmp eq i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t1 br label %scend1 scend1: %t17 = load i32, ptr %t1 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then2, label %ifend4 then2: store ptr @.str2486, ptr %retval br label %ret ifend4: %t19 = load ptr, ptr %t0 %t20 = getelementptr inbounds %Cmp_Val, ptr %t19, i32 0, i32 2 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 40 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then5, label %ifend7 then5: %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Val, ptr %t27, i32 0, i32 2 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 2 %t31 = load i32, ptr %t30 %t32 = call ptr @fn_itoa(i32 %t31) store ptr %t32, ptr %retval br label %ret ifend7: %t35 = load ptr, ptr %t0 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 2 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 0 %t39 = load i32, ptr %t38 %t40 = icmp eq i32 %t39, 38 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t34 br i1 %t42, label %sc8, label %scend9 sc8: %t44 = load ptr, ptr %t0 %t45 = getelementptr inbounds %Cmp_Val, ptr %t44, i32 0, i32 2 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 4 %t48 = load ptr, ptr %t47 %t49 = icmp ne ptr %t48, null %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t34 br label %scend9 scend9: %t53 = load i32, ptr %t34 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t33 br i1 %t54, label %sc10, label %scend11 sc10: %t56 = load ptr, ptr %t0 %t57 = getelementptr inbounds %Cmp_Val, ptr %t56, i32 0, i32 2 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 4 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 0 %t62 = load i32, ptr %t61 %t63 = icmp eq i32 %t62, 40 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t33 br label %scend11 scend11: %t67 = load i32, ptr %t33 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then12, label %ifend14 then12: %t69 = load ptr, ptr %t0 %t70 = getelementptr inbounds %Cmp_Val, ptr %t69, i32 0, i32 2 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 2 %t75 = load i32, ptr %t74 %t76 = sub i32 0, %t75 %t77 = call ptr @fn_itoa(i32 %t76) store ptr %t77, ptr %retval br label %ret ifend14: store ptr @.str2487, ptr %retval br label %ret ret: %t78 = load ptr, ptr %retval ret ptr %t78 } define ptr @fn_lit_as_fixed(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr %t10 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_fixed_lit_code(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str2488) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 store ptr %t7, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t3 %t9 = call ptr @fn_val(ptr %t8, ptr @.str2489) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define ptr @fn_emit_fp_bin(ptr %arg_op, ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t24 = alloca i32 %t45 = alloca ptr %t46 = alloca i32 %t84 = alloca ptr %t90 = alloca ptr %t107 = alloca ptr %t113 = alloca ptr store ptr %arg_op, ptr %t0 store ptr %arg_a, ptr %t1 store ptr %arg_b, ptr %t2 %t4 = load ptr, ptr %t1 %t5 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t5 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str2490) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t3 br i1 %t8, label %sc0, label %scend1 sc0: %t10 = load ptr, ptr %t2 %t11 = call ptr @fn_fixed_lit_code(ptr %t10) %t12 = call i32 @lp_str_eq(ptr %t11, ptr @.str2491) %t13 = icmp eq i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t3 br label %scend1 scend1: %t17 = load i32, ptr %t3 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then2, label %ifend4 then2: %t19 = load ptr, ptr %t0 %t20 = load ptr, ptr %t1 %t21 = load ptr, ptr %t2 %t22 = call ptr @fn_lit_as_fixed(ptr %t21) %t23 = call ptr @fn_emit_bin_vals(ptr %t19, ptr %t20, ptr %t22, i32 0) store ptr %t23, ptr %retval br label %ret ifend4: %t25 = load ptr, ptr %t2 %t26 = getelementptr inbounds %Cmp_Val, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str2492) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t24 br i1 %t29, label %sc5, label %scend6 sc5: %t31 = load ptr, ptr %t1 %t32 = call ptr @fn_fixed_lit_code(ptr %t31) %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str2493) %t34 = icmp eq i32 %t33, 0 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t24 br label %scend6 scend6: %t38 = load i32, ptr %t24 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then7, label %ifend9 then7: %t40 = load ptr, ptr %t0 %t41 = load ptr, ptr %t1 %t42 = call ptr @fn_lit_as_fixed(ptr %t41) %t43 = load ptr, ptr %t2 %t44 = call ptr @fn_emit_bin_vals(ptr %t40, ptr %t42, ptr %t43, i32 0) store ptr %t44, ptr %retval br label %ret ifend9: store ptr @.str2494, ptr %t45 %t47 = load ptr, ptr %t1 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 1 %t49 = load ptr, ptr %t48 %t50 = call i32 @fn_is_fp(ptr %t49) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t46 br i1 %t51, label %sc10, label %scend11 sc10: %t53 = load ptr, ptr %t2 %t54 = getelementptr inbounds %Cmp_Val, ptr %t53, i32 0, i32 1 %t55 = load ptr, ptr %t54 %t56 = call i32 @fn_is_fp(ptr %t55) %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t46 br label %scend11 scend11: %t59 = load i32, ptr %t46 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then12, label %else13 then12: %t61 = load ptr, ptr %t1 %t62 = getelementptr inbounds %Cmp_Val, ptr %t61, i32 0, i32 1 %t63 = load ptr, ptr %t62 %t64 = load ptr, ptr %t2 %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 1 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_fp_result(ptr %t63, ptr %t66) store ptr %t67, ptr %t45 br label %ifend14 else13: %t68 = load ptr, ptr %t1 %t69 = getelementptr inbounds %Cmp_Val, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 %t71 = call i32 @fn_is_fp(ptr %t70) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then15, label %else16 then15: %t73 = load ptr, ptr %t1 %t74 = getelementptr inbounds %Cmp_Val, ptr %t73, i32 0, i32 1 %t75 = load ptr, ptr %t74 store ptr %t75, ptr %t45 br label %ifend17 else16: %t76 = load ptr, ptr %t2 %t77 = getelementptr inbounds %Cmp_Val, ptr %t76, i32 0, i32 1 %t78 = load ptr, ptr %t77 store ptr %t78, ptr %t45 br label %ifend17 ifend17: br label %ifend14 ifend14: %t79 = load ptr, ptr %t1 %t80 = load ptr, ptr %t45 %t81 = load ptr, ptr %t0 %t82 = call ptr @lp_str_concat(ptr @.str2495, ptr %t81) %t83 = call ptr @fn_to_fp(ptr %t79, ptr %t80, ptr %t82) store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t2 %t86 = load ptr, ptr %t45 %t87 = load ptr, ptr %t0 %t88 = call ptr @lp_str_concat(ptr @.str2496, ptr %t87) %t89 = call ptr @fn_to_fp(ptr %t85, ptr %t86, ptr %t88) store ptr %t89, ptr %t90 %t91 = load ptr, ptr %t0 %t92 = call i32 @fn_is_cmp(ptr %t91) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then18, label %ifend20 then18: %t94 = load ptr, ptr %t0 %t95 = call ptr @fn_fcmp_code(ptr %t94) %t96 = call ptr @lp_str_concat(ptr @.str2497, ptr %t95) %t97 = call ptr @lp_str_concat(ptr %t96, ptr @.str2498) %t98 = load ptr, ptr %t45 %t99 = call ptr @lp_str_concat(ptr %t97, ptr %t98) %t100 = call ptr @lp_str_concat(ptr %t99, ptr @.str2499) %t101 = load ptr, ptr %t84 %t102 = call ptr @lp_str_concat(ptr %t100, ptr %t101) %t103 = call ptr @lp_str_concat(ptr %t102, ptr @.str2500) %t104 = load ptr, ptr %t90 %t105 = call ptr @lp_str_concat(ptr %t103, ptr %t104) %t106 = call ptr @fn_emit_bind(ptr %t105) store ptr %t106, ptr %t107 %t108 = load ptr, ptr %t107 %t109 = call ptr @lp_str_concat(ptr @.str2501, ptr %t108) %t110 = call ptr @lp_str_concat(ptr %t109, ptr @.str2502) %t111 = call ptr @fn_emit_bind(ptr %t110) %t112 = call ptr @fn_val(ptr %t111, ptr @.str2503) store ptr %t112, ptr %retval br label %ret ifend20: store ptr @.str2504, ptr %t113 %t114 = load ptr, ptr %t0 %t115 = call i32 @lp_str_eq(ptr %t114, ptr @.str2505) %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then21, label %ifend23 then21: store ptr @.str2506, ptr %t113 br label %ifend23 ifend23: %t117 = load ptr, ptr %t0 %t118 = call i32 @lp_str_eq(ptr %t117, ptr @.str2507) %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then24, label %ifend26 then24: store ptr @.str2508, ptr %t113 br label %ifend26 ifend26: %t120 = load ptr, ptr %t0 %t121 = call i32 @lp_str_eq(ptr %t120, ptr @.str2509) %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %then27, label %ifend29 then27: store ptr @.str2510, ptr %t113 br label %ifend29 ifend29: %t123 = load ptr, ptr %t0 %t124 = call i32 @lp_str_eq(ptr %t123, ptr @.str2511) %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then30, label %ifend32 then30: store ptr @.str2512, ptr %t113 br label %ifend32 ifend32: %t126 = load ptr, ptr %t0 %t127 = call i32 @lp_str_eq(ptr %t126, ptr @.str2513) %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %then33, label %ifend35 then33: store ptr @.str2514, ptr %t113 br label %ifend35 ifend35: %t129 = load ptr, ptr %t113 %t130 = call i32 @lp_str_eq(ptr %t129, ptr @.str2515) %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %then36, label %ifend38 then36: %t132 = load ptr, ptr %t0 %t133 = call ptr @lp_str_concat(ptr @.str2516, ptr %t132) %t134 = call ptr @lp_str_concat(ptr %t133, ptr @.str2517) %t135 = load ptr, ptr %t45 %t136 = call ptr @lp_str_concat(ptr %t134, ptr %t135) call void @fn_perr(ptr %t136) br label %ifend38 ifend38: %t137 = load ptr, ptr %t113 %t138 = call ptr @lp_str_concat(ptr %t137, ptr @.str2518) %t139 = load ptr, ptr %t45 %t140 = call ptr @lp_str_concat(ptr %t138, ptr %t139) %t141 = call ptr @lp_str_concat(ptr %t140, ptr @.str2519) %t142 = load ptr, ptr %t84 %t143 = call ptr @lp_str_concat(ptr %t141, ptr %t142) %t144 = call ptr @lp_str_concat(ptr %t143, ptr @.str2520) %t145 = load ptr, ptr %t90 %t146 = call ptr @lp_str_concat(ptr %t144, ptr %t145) %t147 = call ptr @fn_emit_bind(ptr %t146) %t148 = load ptr, ptr %t45 %t149 = call ptr @fn_val(ptr %t147, ptr %t148) store ptr %t149, ptr %retval br label %ret ret: %t150 = load ptr, ptr %retval ret ptr %t150 } define ptr @fn_emit_fp_convert(ptr %arg_t, ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t60 = alloca ptr %t74 = alloca ptr %t75 = alloca i32 store ptr %arg_t, ptr %t0 store ptr %arg_v, ptr %t1 %t2 = load ptr, ptr %t0 call void @fn_fp_guard(ptr %t2) %t3 = load ptr, ptr %t1 %t4 = getelementptr inbounds %Cmp_Val, ptr %t3, i32 0, i32 2 %t5 = load ptr, ptr %t4 %t6 = icmp ne ptr %t5, null %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t1 %t10 = getelementptr inbounds %Cmp_Val, ptr %t9, i32 0, i32 2 %t11 = load ptr, ptr %t10 %t12 = load ptr, ptr %t0 %t13 = call ptr @fn_fp_const(ptr %t11, ptr %t12) %t14 = load ptr, ptr %t0 %t15 = call ptr @fn_val(ptr %t13, ptr %t14) store ptr %t15, ptr %retval br label %ret ifend2: %t16 = load ptr, ptr %t1 %t17 = getelementptr inbounds %Cmp_Val, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 %t19 = call i32 @fn_is_fp(ptr %t18) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load ptr, ptr %t1 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 1 %t23 = load ptr, ptr %t22 %t24 = load ptr, ptr %t0 %t25 = call i32 @lp_str_eq(ptr %t23, ptr %t24) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %ifend8 then6: %t27 = load ptr, ptr %t1 store ptr %t27, ptr %retval br label %ret ifend8: %t28 = load ptr, ptr %t0 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str2521) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: %t31 = load ptr, ptr %t1 %t32 = getelementptr inbounds %Cmp_Val, ptr %t31, i32 0, i32 0 %t33 = load ptr, ptr %t32 %t34 = call ptr @lp_str_concat(ptr @.str2522, ptr %t33) %t35 = call ptr @lp_str_concat(ptr %t34, ptr @.str2523) %t36 = call ptr @fn_emit_bind(ptr %t35) %t37 = load ptr, ptr %t0 %t38 = call ptr @fn_val(ptr %t36, ptr %t37) store ptr %t38, ptr %retval br label %ret ifend11: %t39 = load ptr, ptr %t1 %t40 = getelementptr inbounds %Cmp_Val, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = call ptr @lp_str_concat(ptr @.str2524, ptr %t41) %t43 = call ptr @lp_str_concat(ptr %t42, ptr @.str2525) %t44 = call ptr @fn_emit_bind(ptr %t43) %t45 = load ptr, ptr %t0 %t46 = call ptr @fn_val(ptr %t44, ptr %t45) store ptr %t46, ptr %retval br label %ret ifend5: %t47 = load ptr, ptr %t1 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 1 %t49 = load ptr, ptr %t48 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str2526) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then12, label %ifend14 then12: %t52 = load ptr, ptr %t1 %t53 = getelementptr inbounds %Cmp_Val, ptr %t52, i32 0, i32 0 %t54 = load ptr, ptr %t53 %t55 = call ptr @lp_str_concat(ptr @.str2527, ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str2528) %t57 = load ptr, ptr %t0 %t58 = call ptr @lp_str_concat(ptr %t56, ptr %t57) %t59 = call ptr @fn_emit_bind(ptr %t58) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t0 %t62 = call ptr @lp_str_concat(ptr @.str2529, ptr %t61) %t63 = call ptr @lp_str_concat(ptr %t62, ptr @.str2530) %t64 = load ptr, ptr %t60 %t65 = call ptr @lp_str_concat(ptr %t63, ptr %t64) %t66 = call ptr @lp_str_concat(ptr %t65, ptr @.str2531) %t67 = call ptr @fn_emit_bind(ptr %t66) %t68 = load ptr, ptr %t0 %t69 = call ptr @fn_val(ptr %t67, ptr %t68) store ptr %t69, ptr %retval br label %ret ifend14: %t70 = load ptr, ptr %t1 %t71 = getelementptr inbounds %Cmp_Val, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 %t73 = call ptr @fn_llty(ptr %t72) store ptr %t73, ptr %t74 %t76 = load ptr, ptr %t74 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str2532) %t78 = icmp ne i32 %t77, 0 %t79 = zext i1 %t78 to i32 store i32 %t79, ptr %t75 br i1 %t78, label %scend16, label %sc15 sc15: %t80 = load ptr, ptr %t74 %t81 = call i32 @lp_str_eq(ptr %t80, ptr @.str2533) %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t75 br label %scend16 scend16: %t84 = load i32, ptr %t75 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then17, label %ifend19 then17: %t86 = load ptr, ptr %t74 %t87 = call ptr @lp_str_concat(ptr @.str2534, ptr %t86) %t88 = call ptr @lp_str_concat(ptr %t87, ptr @.str2535) %t89 = load ptr, ptr %t1 %t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = call ptr @lp_str_concat(ptr %t88, ptr %t91) %t93 = call ptr @lp_str_concat(ptr %t92, ptr @.str2536) %t94 = load ptr, ptr %t0 %t95 = call ptr @lp_str_concat(ptr %t93, ptr %t94) %t96 = call ptr @fn_emit_bind(ptr %t95) %t97 = load ptr, ptr %t0 %t98 = call ptr @fn_val(ptr %t96, ptr %t97) store ptr %t98, ptr %retval br label %ret ifend19: %t99 = load ptr, ptr %t1 %t100 = load ptr, ptr %t0 %t101 = load ptr, ptr %t0 %t102 = call ptr @lp_str_concat(ptr %t101, ptr @.str2537) %t103 = call ptr @fn_to_fp(ptr %t99, ptr %t100, ptr %t102) %t104 = load ptr, ptr %t0 %t105 = call ptr @fn_val(ptr %t103, ptr %t104) store ptr %t105, ptr %retval br label %ret ret: %t106 = load ptr, ptr %retval ret ptr %t106 } define ptr @fn_emit_fp_to_int(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @lp_str_concat(ptr @.str2538, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str2539) %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr %t5, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str2540) %t11 = call ptr @fn_emit_bind(ptr %t10) %t12 = call ptr @fn_val(ptr %t11, ptr @.str2541) store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_emit_fp_to_long(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @lp_str_concat(ptr @.str2542, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str2543) %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr %t5, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str2544) %t11 = call ptr @fn_emit_bind(ptr %t10) %t12 = call ptr @fn_val(ptr %t11, ptr @.str2545) store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_emit_fp_to_fixed(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t12 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @lp_str_concat(ptr @.str2546, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str2547) %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr %t5, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str2548) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Val, ptr %t13, i32 0, i32 1 %t15 = load ptr, ptr %t14 %t16 = call ptr @lp_str_concat(ptr @.str2549, ptr %t15) %t17 = call ptr @lp_str_concat(ptr %t16, ptr @.str2550) %t18 = load ptr, ptr %t12 %t19 = call ptr @lp_str_concat(ptr %t17, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str2551) %t21 = call ptr @fn_emit_bind(ptr %t20) %t22 = call ptr @fn_val(ptr %t21, ptr @.str2552) store ptr %t22, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval ret ptr %t23 } define ptr @fn_emit_float_bits(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_to_fp(ptr %t1, ptr @.str2553, ptr @.str2554) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = call ptr @lp_str_concat(ptr @.str2555, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str2556) %t7 = call ptr @fn_emit_bind(ptr %t6) %t8 = call ptr @fn_val(ptr %t7, ptr @.str2557) store ptr %t8, ptr %retval br label %ret ret: %t9 = load ptr, ptr %retval ret ptr %t9 } define ptr @fn_emit_float_from_bits(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = call ptr @lp_str_concat(ptr @.str2558, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str2559) %t6 = call ptr @fn_emit_bind(ptr %t5) %t7 = call ptr @fn_val(ptr %t6, ptr @.str2560) store ptr %t7, ptr %retval br label %ret ret: %t8 = load ptr, ptr %retval ret ptr %t8 } define ptr @fn_emit_double_bits(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_to_fp(ptr %t1, ptr @.str2561, ptr @.str2562) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = call ptr @lp_str_concat(ptr @.str2563, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str2564) %t7 = call ptr @fn_emit_bind(ptr %t6) %t8 = call ptr @fn_val(ptr %t7, ptr @.str2565) store ptr %t8, ptr %retval br label %ret ret: %t9 = load ptr, ptr %retval ret ptr %t9 } define ptr @fn_emit_double_from_bits(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_to_long(ptr %t1) %t3 = call ptr @lp_str_concat(ptr @.str2566, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str2567) %t5 = call ptr @fn_emit_bind(ptr %t4) %t6 = call ptr @fn_val(ptr %t5, ptr @.str2568) store ptr %t6, ptr %retval br label %ret ret: %t7 = load ptr, ptr %retval ret ptr %t7 } define ptr @fn_emit_fp_str(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr store ptr %arg_v, ptr %t0 store i32 1, ptr @g_g_uses_fpstr %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 0 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 store ptr @.str2569, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str2570) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = call ptr @lp_str_concat(ptr @.str2571, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str2572) %t16 = call ptr @fn_emit_bind(ptr %t15) store ptr %t16, ptr %t4 store ptr @.str2573, ptr %t5 br label %ifend2 ifend2: %t17 = load ptr, ptr %t4 %t18 = call ptr @lp_str_concat(ptr @.str2574, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str2575) %t20 = load ptr, ptr %t5 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str2576) %t23 = call ptr @fn_emit_bind(ptr %t22) %t24 = call ptr @fn_val(ptr %t23, ptr @.str2577) store ptr %t24, ptr %retval br label %ret ret: %t25 = load ptr, ptr %retval ret ptr %t25 } define void @fn_emit_fp_str_fn() { entry: call void @fn_fp_declare(ptr @.str2578) call void @fn_fp_declare(ptr @.str2579) call void @fn_fp_declare(ptr @.str2580) call void @fn_emith(ptr @.str2581) call void @fn_emith(ptr @.str2582) call void @fn_emith(ptr @.str2583) call void @fn_emith(ptr @.str2584) call void @fn_emith(ptr @.str2585) call void @fn_emith(ptr @.str2586) call void @fn_emith(ptr @.str2587) call void @fn_emith(ptr @.str2588) call void @fn_emith(ptr @.str2589) call void @fn_emith(ptr @.str2590) call void @fn_emith(ptr @.str2591) call void @fn_emith(ptr @.str2592) call void @fn_emith(ptr @.str2593) call void @fn_emith(ptr @.str2594) call void @fn_emith(ptr @.str2595) call void @fn_emith(ptr @.str2596) call void @fn_emith(ptr @.str2597) call void @fn_emith(ptr @.str2598) call void @fn_emith(ptr @.str2599) call void @fn_emith(ptr @.str2600) br label %ret ret: ret void } define ptr @fn_emit_fp_buffer(ptr %arg_t, ptr %arg_n) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t15 = alloca ptr %t20 = alloca ptr store ptr %arg_t, ptr %t0 store ptr %arg_n, ptr %t1 store ptr @.str2601, ptr %t2 store ptr @.str2602, ptr %t3 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str2603) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store ptr @.str2604, ptr %t2 store ptr @.str2605, ptr %t3 br label %ifend2 ifend2: %t7 = load ptr, ptr %t1 %t8 = getelementptr inbounds %Cmp_Val, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = call ptr @lp_str_concat(ptr @.str2606, ptr %t9) %t11 = call ptr @lp_str_concat(ptr %t10, ptr @.str2607) %t12 = load ptr, ptr %t2 %t13 = call ptr @lp_str_concat(ptr %t11, ptr %t12) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = call ptr @lp_str_concat(ptr @.str2608, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str2609) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = call ptr @lp_str_concat(ptr @.str2610, ptr %t21) %t23 = call ptr @lp_str_concat(ptr %t22, ptr @.str2611) %t24 = call ptr @fn_emit_bind(ptr %t23) %t25 = load ptr, ptr %t3 %t26 = call ptr @fn_val(ptr %t24, ptr %t25) store ptr %t26, ptr %retval br label %ret ret: %t27 = load ptr, ptr %retval ret ptr %t27 } define void @fn_fp_declare(ptr %arg_line) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_line, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_fp_decls %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_fp_decls %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str2612, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: br label %ret ifend7: %t22 = load i32, ptr %t1 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t1 br label %wcond0 wend2: %t24 = load ptr, ptr @g_g_fp_decls %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t29 = load i32, ptr %t26 %t30 = load i32, ptr %t27 %t31 = icmp sge i32 %t29, %t30 br i1 %t31, label %grow8, label %put9 grow8: %t32 = mul i32 %t30, 2 %t33 = icmp eq i32 %t30, 0 %t34 = select i1 %t33, i32 8, i32 %t32 %t35 = getelementptr ptr, ptr null, i32 1 %t36 = ptrtoint ptr %t35 to i64 %t37 = zext i32 %t34 to i64 %t38 = mul i64 %t37, %t36 %t39 = load ptr, ptr %t28 %t40 = call ptr @realloc(ptr %t39, i64 %t38) store ptr %t40, ptr %t28 store i32 %t34, ptr %t27 br label %put9 put9: %t41 = load ptr, ptr %t28 %t42 = getelementptr inbounds ptr, ptr %t41, i32 %t29 store ptr %t25, ptr %t42 %t43 = add i32 %t29, 1 store i32 %t43, ptr %t26 %t44 = load ptr, ptr %t0 call void @fn_emith(ptr %t44) br label %ret ret: ret void } define ptr @fn_fp_call1(ptr %arg_base, ptr %arg_t, ptr %arg_x) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr store ptr %arg_base, ptr %t0 store ptr %arg_t, ptr %t1 store ptr %arg_x, ptr %t2 %t3 = load ptr, ptr %t0 store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t1 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str2613) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load ptr, ptr %t0 %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str2614) store ptr %t9, ptr %t4 br label %ifend2 ifend2: %t10 = load ptr, ptr %t1 %t11 = call ptr @lp_str_concat(ptr @.str2615, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str2616) %t13 = load ptr, ptr %t4 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str2617) %t16 = load ptr, ptr %t1 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str2618) call void @fn_fp_declare(ptr %t18) %t19 = load ptr, ptr %t1 %t20 = call ptr @lp_str_concat(ptr @.str2619, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str2620) %t22 = load ptr, ptr %t4 %t23 = call ptr @lp_str_concat(ptr %t21, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str2621) %t25 = load ptr, ptr %t1 %t26 = call ptr @lp_str_concat(ptr %t24, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str2622) %t28 = load ptr, ptr %t2 %t29 = call ptr @lp_str_concat(ptr %t27, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str2623) %t31 = call ptr @fn_emit_bind(ptr %t30) store ptr %t31, ptr %retval br label %ret ret: %t32 = load ptr, ptr %retval ret ptr %t32 } define ptr @fn_fp_call2(ptr %arg_base, ptr %arg_t, ptr %arg_x, ptr %arg_y) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t5 = alloca ptr store ptr %arg_base, ptr %t0 store ptr %arg_t, ptr %t1 store ptr %arg_x, ptr %t2 store ptr %arg_y, ptr %t3 %t4 = load ptr, ptr %t0 store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t1 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str2624) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t0 %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str2625) store ptr %t10, ptr %t5 br label %ifend2 ifend2: %t11 = load ptr, ptr %t1 %t12 = call ptr @lp_str_concat(ptr @.str2626, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str2627) %t14 = load ptr, ptr %t5 %t15 = call ptr @lp_str_concat(ptr %t13, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str2628) %t17 = load ptr, ptr %t1 %t18 = call ptr @lp_str_concat(ptr %t16, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str2629) %t20 = load ptr, ptr %t1 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str2630) call void @fn_fp_declare(ptr %t22) %t23 = load ptr, ptr %t1 %t24 = call ptr @lp_str_concat(ptr @.str2631, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str2632) %t26 = load ptr, ptr %t5 %t27 = call ptr @lp_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str2633) %t29 = load ptr, ptr %t1 %t30 = call ptr @lp_str_concat(ptr %t28, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str2634) %t32 = load ptr, ptr %t2 %t33 = call ptr @lp_str_concat(ptr %t31, ptr %t32) %t34 = call ptr @lp_str_concat(ptr %t33, ptr @.str2635) %t35 = load ptr, ptr %t1 %t36 = call ptr @lp_str_concat(ptr %t34, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str2636) %t38 = load ptr, ptr %t3 %t39 = call ptr @lp_str_concat(ptr %t37, ptr %t38) %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str2637) %t41 = call ptr @fn_emit_bind(ptr %t40) store ptr %t41, ptr %retval br label %ret ret: %t42 = load ptr, ptr %retval ret ptr %t42 } define ptr @fn_fp_intrinsic1(ptr %arg_name, ptr %arg_t, ptr %arg_x) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_t, ptr %t1 store ptr %arg_x, ptr %t2 store ptr @.str2638, ptr %t3 %t4 = load ptr, ptr %t1 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str2639) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store ptr @.str2640, ptr %t3 br label %ifend2 ifend2: %t7 = load ptr, ptr %t1 %t8 = call ptr @lp_str_concat(ptr @.str2641, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str2642) %t10 = load ptr, ptr %t0 %t11 = call ptr @lp_str_concat(ptr %t9, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str2643) %t13 = load ptr, ptr %t3 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str2644) %t16 = load ptr, ptr %t1 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str2645) call void @fn_fp_declare(ptr %t18) %t19 = load ptr, ptr %t1 %t20 = call ptr @lp_str_concat(ptr @.str2646, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str2647) %t22 = load ptr, ptr %t0 %t23 = call ptr @lp_str_concat(ptr %t21, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str2648) %t25 = load ptr, ptr %t3 %t26 = call ptr @lp_str_concat(ptr %t24, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str2649) %t28 = load ptr, ptr %t1 %t29 = call ptr @lp_str_concat(ptr %t27, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str2650) %t31 = load ptr, ptr %t2 %t32 = call ptr @lp_str_concat(ptr %t30, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str2651) %t34 = call ptr @fn_emit_bind(ptr %t33) store ptr %t34, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define ptr @fn_fp_intrinsic2(ptr %arg_name, ptr %arg_t, ptr %arg_x, ptr %arg_y) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_t, ptr %t1 store ptr %arg_x, ptr %t2 store ptr %arg_y, ptr %t3 store ptr @.str2652, ptr %t4 %t5 = load ptr, ptr %t1 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str2653) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: store ptr @.str2654, ptr %t4 br label %ifend2 ifend2: %t8 = load ptr, ptr %t1 %t9 = call ptr @lp_str_concat(ptr @.str2655, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str2656) %t11 = load ptr, ptr %t0 %t12 = call ptr @lp_str_concat(ptr %t10, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str2657) %t14 = load ptr, ptr %t4 %t15 = call ptr @lp_str_concat(ptr %t13, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str2658) %t17 = load ptr, ptr %t1 %t18 = call ptr @lp_str_concat(ptr %t16, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str2659) %t20 = load ptr, ptr %t1 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str2660) call void @fn_fp_declare(ptr %t22) %t23 = load ptr, ptr %t1 %t24 = call ptr @lp_str_concat(ptr @.str2661, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str2662) %t26 = load ptr, ptr %t0 %t27 = call ptr @lp_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str2663) %t29 = load ptr, ptr %t4 %t30 = call ptr @lp_str_concat(ptr %t28, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str2664) %t32 = load ptr, ptr %t1 %t33 = call ptr @lp_str_concat(ptr %t31, ptr %t32) %t34 = call ptr @lp_str_concat(ptr %t33, ptr @.str2665) %t35 = load ptr, ptr %t2 %t36 = call ptr @lp_str_concat(ptr %t34, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str2666) %t38 = load ptr, ptr %t1 %t39 = call ptr @lp_str_concat(ptr %t37, ptr %t38) %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str2667) %t41 = load ptr, ptr %t3 %t42 = call ptr @lp_str_concat(ptr %t40, ptr %t41) %t43 = call ptr @lp_str_concat(ptr %t42, ptr @.str2668) %t44 = call ptr @fn_emit_bind(ptr %t43) store ptr %t44, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } define ptr @fn_fp_pick(ptr %arg_meth, ptr %arg_t, ptr %arg_x, ptr %arg_y) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t20 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_t, ptr %t1 store ptr %arg_x, ptr %t2 store ptr %arg_y, ptr %t3 store ptr @.str2669, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str2670) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: store ptr @.str2671, ptr %t4 br label %ifend2 ifend2: %t8 = load ptr, ptr %t4 %t9 = call ptr @lp_str_concat(ptr @.str2672, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str2673) %t11 = load ptr, ptr %t1 %t12 = call ptr @lp_str_concat(ptr %t10, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str2674) %t14 = load ptr, ptr %t2 %t15 = call ptr @lp_str_concat(ptr %t13, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str2675) %t17 = load ptr, ptr %t3 %t18 = call ptr @lp_str_concat(ptr %t16, ptr %t17) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = call ptr @lp_str_concat(ptr @.str2676, ptr %t21) %t23 = call ptr @lp_str_concat(ptr %t22, ptr @.str2677) %t24 = load ptr, ptr %t1 %t25 = call ptr @lp_str_concat(ptr %t23, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str2678) %t27 = load ptr, ptr %t2 %t28 = call ptr @lp_str_concat(ptr %t26, ptr %t27) %t29 = call ptr @lp_str_concat(ptr %t28, ptr @.str2679) %t30 = load ptr, ptr %t1 %t31 = call ptr @lp_str_concat(ptr %t29, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str2680) %t33 = load ptr, ptr %t3 %t34 = call ptr @lp_str_concat(ptr %t32, ptr %t33) %t35 = call ptr @fn_emit_bind(ptr %t34) store ptr %t35, ptr %retval br label %ret ret: %t36 = load ptr, ptr %retval ret ptr %t36 } define ptr @fn_fp_math_type(ptr %arg_first, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t11 = alloca i32 %t34 = alloca ptr %t35 = alloca i32 store ptr %arg_first, ptr %t0 store ptr %arg_e, ptr %t1 store ptr @.str2681, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Val, ptr %t3, i32 0, i32 1 %t5 = load ptr, ptr %t4 %t6 = call i32 @fn_is_fp(ptr %t5) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Val, ptr %t8, i32 0, i32 1 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t2 br label %ifend2 ifend2: store i32 1, ptr %t11 br label %wcond3 wcond3: %t12 = load i32, ptr %t11 %t13 = load ptr, ptr %t1 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp slt i32 %t12, %t17 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %wbody4, label %wend5 wbody4: %t21 = load ptr, ptr %t1 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 7 %t23 = load ptr, ptr %t22 %t24 = load i32, ptr %t11 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok6, label %ixbad7 ixbad7: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str2682, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok6: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_static_type(ptr %t32) store ptr %t33, ptr %t34 %t36 = load ptr, ptr %t34 %t37 = icmp ne ptr %t36, null %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t35 br i1 %t39, label %sc8, label %scend9 sc8: %t41 = load ptr, ptr %t34 %t42 = call i32 @fn_is_fp(ptr %t41) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t35 br label %scend9 scend9: %t45 = load i32, ptr %t35 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then10, label %ifend12 then10: %t47 = load ptr, ptr %t2 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str2683) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then13, label %else14 then13: %t50 = load ptr, ptr %t34 store ptr %t50, ptr %t2 br label %ifend15 else14: %t51 = load ptr, ptr %t2 %t52 = load ptr, ptr %t34 %t53 = call ptr @fn_fp_result(ptr %t51, ptr %t52) store ptr %t53, ptr %t2 br label %ifend15 ifend15: br label %ifend12 ifend12: %t54 = load i32, ptr %t11 %t55 = add i32 %t54, 1 store i32 %t55, ptr %t11 br label %wcond3 wend5: %t56 = load ptr, ptr %t2 store ptr %t56, ptr %retval br label %ret ret: %t57 = load ptr, ptr %retval ret ptr %t57 } define ptr @fn_fp_arg(ptr %arg_e, i32 %arg_i, ptr %arg_t, ptr %arg_meth) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca ptr %t3 = alloca ptr %t17 = alloca ptr store ptr %arg_e, ptr %t0 store i32 %arg_i, ptr %t1 store ptr %arg_t, ptr %t2 store ptr %arg_meth, ptr %t3 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = load i32, ptr %t1 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 %t7, %t11 br i1 %t12, label %ixok0, label %ixbad1 ixbad1: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str2684, i32 %t7, i32 %t11) call void @exit(i32 1) unreachable ixok0: %t14 = getelementptr inbounds ptr, ptr %t9, i32 %t7 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t2 %t20 = load ptr, ptr %t3 %t21 = call ptr @lp_str_concat(ptr @.str2685, ptr %t20) %t22 = call ptr @fn_to_fp(ptr %t18, ptr %t19, ptr %t21) store ptr %t22, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval ret ptr %t23 } define ptr @fn_emit_fp_math(ptr %arg_meth, ptr %arg_t, ptr %arg_first, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t9 = alloca ptr %t132 = alloca ptr %t140 = alloca ptr %t145 = alloca ptr %t164 = alloca ptr %t186 = alloca ptr %t198 = alloca i32 %t213 = alloca ptr %t257 = alloca i32 %t272 = alloca ptr %t282 = alloca ptr %t292 = alloca ptr %t311 = alloca ptr %t316 = alloca ptr %t321 = alloca ptr %t335 = alloca ptr %t340 = alloca ptr %t350 = alloca ptr %t360 = alloca ptr %t379 = alloca ptr %t384 = alloca ptr %t394 = alloca ptr %t404 = alloca ptr %t423 = alloca ptr %t428 = alloca ptr %t433 = alloca ptr %t438 = alloca ptr %t448 = alloca ptr %t458 = alloca ptr %t468 = alloca ptr %t478 = alloca ptr %t488 = alloca ptr %t507 = alloca ptr %t512 = alloca ptr %t522 = alloca ptr %t532 = alloca ptr %t542 = alloca ptr %t546 = alloca ptr %t550 = alloca ptr %t560 = alloca ptr %t568 = alloca ptr %t575 = alloca ptr %t594 = alloca ptr %t599 = alloca ptr %t609 = alloca ptr %t613 = alloca ptr %t623 = alloca ptr %t631 = alloca ptr %t638 = alloca ptr %t654 = alloca ptr %t664 = alloca ptr %t682 = alloca i32 %t697 = alloca ptr %t702 = alloca ptr %t707 = alloca ptr %t717 = alloca ptr %t727 = alloca ptr %t737 = alloca ptr %t747 = alloca ptr %t757 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_t, ptr %t1 store ptr %arg_first, ptr %t2 store ptr %arg_e, ptr %t3 %t4 = load ptr, ptr %t2 %t5 = load ptr, ptr %t1 %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr @.str2686, ptr %t6) %t8 = call ptr @fn_to_fp(ptr %t4, ptr %t5, ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str2687) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: %t13 = load ptr, ptr %t1 %t14 = load ptr, ptr %t9 %t15 = call ptr @fn_fp_intrinsic1(ptr @.str2688, ptr %t13, ptr %t14) %t16 = load ptr, ptr %t1 %t17 = call ptr @fn_val(ptr %t15, ptr %t16) store ptr %t17, ptr %retval br label %ret ifend2: %t18 = load ptr, ptr %t0 %t19 = call i32 @lp_str_eq(ptr %t18, ptr @.str2689) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load ptr, ptr %t1 %t22 = load ptr, ptr %t9 %t23 = call ptr @fn_fp_intrinsic1(ptr @.str2690, ptr %t21, ptr %t22) %t24 = load ptr, ptr %t1 %t25 = call ptr @fn_val(ptr %t23, ptr %t24) store ptr %t25, ptr %retval br label %ret ifend5: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str2691) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: %t29 = load ptr, ptr %t1 %t30 = load ptr, ptr %t9 %t31 = call ptr @fn_fp_call1(ptr @.str2692, ptr %t29, ptr %t30) %t32 = load ptr, ptr %t1 %t33 = call ptr @fn_val(ptr %t31, ptr %t32) store ptr %t33, ptr %retval br label %ret ifend8: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str2693) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then9, label %ifend11 then9: %t37 = load ptr, ptr %t1 %t38 = load ptr, ptr %t9 %t39 = call ptr @fn_fp_call1(ptr @.str2694, ptr %t37, ptr %t38) %t40 = load ptr, ptr %t1 %t41 = call ptr @fn_val(ptr %t39, ptr %t40) store ptr %t41, ptr %retval br label %ret ifend11: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str2695) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then12, label %ifend14 then12: %t45 = load ptr, ptr %t1 %t46 = load ptr, ptr %t9 %t47 = call ptr @fn_fp_call1(ptr @.str2696, ptr %t45, ptr %t46) %t48 = load ptr, ptr %t1 %t49 = call ptr @fn_val(ptr %t47, ptr %t48) store ptr %t49, ptr %retval br label %ret ifend14: %t50 = load ptr, ptr %t0 %t51 = call i32 @lp_str_eq(ptr %t50, ptr @.str2697) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then15, label %ifend17 then15: %t53 = load ptr, ptr %t1 %t54 = load ptr, ptr %t9 %t55 = call ptr @fn_fp_call1(ptr @.str2698, ptr %t53, ptr %t54) %t56 = load ptr, ptr %t1 %t57 = call ptr @fn_val(ptr %t55, ptr %t56) store ptr %t57, ptr %retval br label %ret ifend17: %t58 = load ptr, ptr %t0 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str2699) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then18, label %ifend20 then18: %t61 = load ptr, ptr %t1 %t62 = load ptr, ptr %t9 %t63 = call ptr @fn_fp_call1(ptr @.str2700, ptr %t61, ptr %t62) %t64 = load ptr, ptr %t1 %t65 = call ptr @fn_val(ptr %t63, ptr %t64) store ptr %t65, ptr %retval br label %ret ifend20: %t66 = load ptr, ptr %t0 %t67 = call i32 @lp_str_eq(ptr %t66, ptr @.str2701) %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then21, label %ifend23 then21: %t69 = load ptr, ptr %t1 %t70 = load ptr, ptr %t9 %t71 = call ptr @fn_fp_call1(ptr @.str2702, ptr %t69, ptr %t70) %t72 = load ptr, ptr %t1 %t73 = call ptr @fn_val(ptr %t71, ptr %t72) store ptr %t73, ptr %retval br label %ret ifend23: %t74 = load ptr, ptr %t0 %t75 = call i32 @lp_str_eq(ptr %t74, ptr @.str2703) %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then24, label %ifend26 then24: %t77 = load ptr, ptr %t1 %t78 = load ptr, ptr %t9 %t79 = call ptr @fn_fp_call1(ptr @.str2704, ptr %t77, ptr %t78) %t80 = load ptr, ptr %t1 %t81 = call ptr @fn_val(ptr %t79, ptr %t80) store ptr %t81, ptr %retval br label %ret ifend26: %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t82, ptr @.str2705) %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then27, label %ifend29 then27: %t85 = load ptr, ptr %t1 %t86 = load ptr, ptr %t9 %t87 = call ptr @fn_fp_call1(ptr @.str2706, ptr %t85, ptr %t86) %t88 = load ptr, ptr %t1 %t89 = call ptr @fn_val(ptr %t87, ptr %t88) store ptr %t89, ptr %retval br label %ret ifend29: %t90 = load ptr, ptr %t0 %t91 = call i32 @lp_str_eq(ptr %t90, ptr @.str2707) %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then30, label %ifend32 then30: %t93 = load ptr, ptr %t1 %t94 = load ptr, ptr %t9 %t95 = call ptr @fn_fp_call1(ptr @.str2708, ptr %t93, ptr %t94) %t96 = load ptr, ptr %t1 %t97 = call ptr @fn_val(ptr %t95, ptr %t96) store ptr %t97, ptr %retval br label %ret ifend32: %t98 = load ptr, ptr %t0 %t99 = call i32 @lp_str_eq(ptr %t98, ptr @.str2709) %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then33, label %ifend35 then33: %t101 = load ptr, ptr %t1 %t102 = load ptr, ptr %t9 %t103 = call ptr @fn_fp_call1(ptr @.str2710, ptr %t101, ptr %t102) %t104 = load ptr, ptr %t1 %t105 = call ptr @fn_val(ptr %t103, ptr %t104) store ptr %t105, ptr %retval br label %ret ifend35: %t106 = load ptr, ptr %t0 %t107 = call i32 @lp_str_eq(ptr %t106, ptr @.str2711) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then36, label %ifend38 then36: %t109 = load ptr, ptr %t1 %t110 = load ptr, ptr %t9 %t111 = call ptr @fn_fp_call1(ptr @.str2712, ptr %t109, ptr %t110) %t112 = load ptr, ptr %t1 %t113 = call ptr @fn_val(ptr %t111, ptr %t112) store ptr %t113, ptr %retval br label %ret ifend38: %t114 = load ptr, ptr %t0 %t115 = call i32 @lp_str_eq(ptr %t114, ptr @.str2713) %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then39, label %ifend41 then39: %t117 = load ptr, ptr %t1 %t118 = load ptr, ptr %t9 %t119 = call ptr @fn_fp_intrinsic1(ptr @.str2714, ptr %t117, ptr %t118) %t120 = load ptr, ptr %t1 %t121 = call ptr @fn_val(ptr %t119, ptr %t120) store ptr %t121, ptr %retval br label %ret ifend41: %t122 = load ptr, ptr %t0 %t123 = call i32 @lp_str_eq(ptr %t122, ptr @.str2715) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then42, label %ifend44 then42: %t125 = load ptr, ptr %t1 %t126 = call ptr @lp_str_concat(ptr @.str2716, ptr %t125) %t127 = call ptr @lp_str_concat(ptr %t126, ptr @.str2717) %t128 = load ptr, ptr %t9 %t129 = call ptr @lp_str_concat(ptr %t127, ptr %t128) %t130 = call ptr @lp_str_concat(ptr %t129, ptr @.str2718) %t131 = call ptr @fn_emit_bind(ptr %t130) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t1 %t134 = call ptr @lp_str_concat(ptr @.str2719, ptr %t133) %t135 = call ptr @lp_str_concat(ptr %t134, ptr @.str2720) %t136 = load ptr, ptr %t9 %t137 = call ptr @lp_str_concat(ptr %t135, ptr %t136) %t138 = call ptr @lp_str_concat(ptr %t137, ptr @.str2721) %t139 = call ptr @fn_emit_bind(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t140 %t142 = call ptr @lp_str_concat(ptr @.str2722, ptr %t141) %t143 = call ptr @lp_str_concat(ptr %t142, ptr @.str2723) %t144 = call ptr @fn_emit_bind(ptr %t143) store ptr %t144, ptr %t145 %t146 = load ptr, ptr %t132 %t147 = call ptr @lp_str_concat(ptr @.str2724, ptr %t146) %t148 = call ptr @lp_str_concat(ptr %t147, ptr @.str2725) %t149 = load ptr, ptr %t145 %t150 = call ptr @lp_str_concat(ptr %t148, ptr %t149) %t151 = call ptr @fn_emit_bind(ptr %t150) %t152 = call ptr @fn_val(ptr %t151, ptr @.str2726) store ptr %t152, ptr %retval br label %ret ifend44: %t153 = load ptr, ptr %t0 %t154 = call i32 @lp_str_eq(ptr %t153, ptr @.str2727) %t155 = icmp ne i32 %t154, 0 br i1 %t155, label %then45, label %ifend47 then45: %t156 = load ptr, ptr %t1 %t157 = call ptr @lp_str_concat(ptr @.str2728, ptr %t156) %t158 = call ptr @lp_str_concat(ptr %t157, ptr @.str2729) %t159 = load ptr, ptr %t1 %t160 = call ptr @fn_fp_lit_code(ptr @.str2730, ptr %t159) %t161 = call ptr @lp_str_concat(ptr %t158, ptr %t160) %t162 = call ptr @lp_str_concat(ptr %t161, ptr @.str2731) %t163 = call ptr @fn_emit_bind(ptr %t162) store ptr %t163, ptr %t164 %t165 = load ptr, ptr %t1 %t166 = call ptr @lp_str_concat(ptr @.str2732, ptr %t165) %t167 = call ptr @lp_str_concat(ptr %t166, ptr @.str2733) %t168 = load ptr, ptr %t9 %t169 = call ptr @lp_str_concat(ptr %t167, ptr %t168) %t170 = call ptr @lp_str_concat(ptr %t169, ptr @.str2734) %t171 = load ptr, ptr %t164 %t172 = call ptr @lp_str_concat(ptr %t170, ptr %t171) %t173 = call ptr @fn_emit_bind(ptr %t172) %t174 = load ptr, ptr %t1 %t175 = call ptr @fn_val(ptr %t173, ptr %t174) store ptr %t175, ptr %retval br label %ret ifend47: %t176 = load ptr, ptr %t0 %t177 = call i32 @lp_str_eq(ptr %t176, ptr @.str2735) %t178 = icmp ne i32 %t177, 0 br i1 %t178, label %then48, label %ifend50 then48: %t179 = load ptr, ptr %t1 %t180 = call ptr @lp_str_concat(ptr @.str2736, ptr %t179) %t181 = call ptr @lp_str_concat(ptr %t180, ptr @.str2737) %t182 = load ptr, ptr %t1 %t183 = call ptr @fn_fp_lit_code(ptr @.str2738, ptr %t182) %t184 = call ptr @lp_str_concat(ptr %t181, ptr %t183) %t185 = call ptr @fn_emit_bind(ptr %t184) store ptr %t185, ptr %t186 %t187 = load ptr, ptr %t1 %t188 = call ptr @lp_str_concat(ptr @.str2739, ptr %t187) %t189 = call ptr @lp_str_concat(ptr %t188, ptr @.str2740) %t190 = load ptr, ptr %t9 %t191 = call ptr @lp_str_concat(ptr %t189, ptr %t190) %t192 = call ptr @lp_str_concat(ptr %t191, ptr @.str2741) %t193 = load ptr, ptr %t186 %t194 = call ptr @lp_str_concat(ptr %t192, ptr %t193) %t195 = call ptr @fn_emit_bind(ptr %t194) %t196 = load ptr, ptr %t1 %t197 = call ptr @fn_val(ptr %t195, ptr %t196) store ptr %t197, ptr %retval br label %ret ifend50: %t199 = load ptr, ptr %t0 %t200 = call i32 @lp_str_eq(ptr %t199, ptr @.str2742) %t201 = icmp ne i32 %t200, 0 %t202 = zext i1 %t201 to i32 store i32 %t202, ptr %t198 br i1 %t201, label %scend52, label %sc51 sc51: %t203 = load ptr, ptr %t0 %t204 = call i32 @lp_str_eq(ptr %t203, ptr @.str2743) %t205 = icmp ne i32 %t204, 0 %t206 = zext i1 %t205 to i32 store i32 %t206, ptr %t198 br label %scend52 scend52: %t207 = load i32, ptr %t198 %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %then53, label %ifend55 then53: %t209 = load ptr, ptr %t3 %t210 = load ptr, ptr %t1 %t211 = load ptr, ptr %t0 %t212 = call ptr @fn_fp_arg(ptr %t209, i32 1, ptr %t210, ptr %t211) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t0 %t215 = load ptr, ptr %t1 %t216 = load ptr, ptr %t9 %t217 = load ptr, ptr %t213 %t218 = call ptr @fn_fp_pick(ptr %t214, ptr %t215, ptr %t216, ptr %t217) %t219 = load ptr, ptr %t1 %t220 = call ptr @fn_val(ptr %t218, ptr %t219) store ptr %t220, ptr %retval br label %ret ifend55: %t221 = load ptr, ptr %t0 %t222 = call i32 @lp_str_eq(ptr %t221, ptr @.str2744) %t223 = icmp ne i32 %t222, 0 br i1 %t223, label %then56, label %ifend58 then56: %t224 = load ptr, ptr %t1 %t225 = load ptr, ptr %t9 %t226 = load ptr, ptr %t3 %t227 = load ptr, ptr %t1 %t228 = load ptr, ptr %t0 %t229 = call ptr @fn_fp_arg(ptr %t226, i32 1, ptr %t227, ptr %t228) %t230 = call ptr @fn_fp_intrinsic2(ptr @.str2745, ptr %t224, ptr %t225, ptr %t229) %t231 = load ptr, ptr %t1 %t232 = call ptr @fn_val(ptr %t230, ptr %t231) store ptr %t232, ptr %retval br label %ret ifend58: %t233 = load ptr, ptr %t0 %t234 = call i32 @lp_str_eq(ptr %t233, ptr @.str2746) %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %then59, label %ifend61 then59: %t236 = load ptr, ptr %t1 %t237 = load ptr, ptr %t9 %t238 = load ptr, ptr %t3 %t239 = load ptr, ptr %t1 %t240 = load ptr, ptr %t0 %t241 = call ptr @fn_fp_arg(ptr %t238, i32 1, ptr %t239, ptr %t240) %t242 = call ptr @fn_fp_call2(ptr @.str2747, ptr %t236, ptr %t237, ptr %t241) %t243 = load ptr, ptr %t1 %t244 = call ptr @fn_val(ptr %t242, ptr %t243) store ptr %t244, ptr %retval br label %ret ifend61: %t245 = load ptr, ptr %t0 %t246 = call i32 @lp_str_eq(ptr %t245, ptr @.str2748) %t247 = icmp ne i32 %t246, 0 br i1 %t247, label %then62, label %ifend64 then62: %t248 = load ptr, ptr %t1 %t249 = load ptr, ptr %t9 %t250 = load ptr, ptr %t3 %t251 = load ptr, ptr %t1 %t252 = load ptr, ptr %t0 %t253 = call ptr @fn_fp_arg(ptr %t250, i32 1, ptr %t251, ptr %t252) %t254 = call ptr @fn_fp_call2(ptr @.str2749, ptr %t248, ptr %t249, ptr %t253) %t255 = load ptr, ptr %t1 %t256 = call ptr @fn_val(ptr %t254, ptr %t255) store ptr %t256, ptr %retval br label %ret ifend64: %t258 = load ptr, ptr %t0 %t259 = call i32 @lp_str_eq(ptr %t258, ptr @.str2750) %t260 = icmp ne i32 %t259, 0 %t261 = zext i1 %t260 to i32 store i32 %t261, ptr %t257 br i1 %t260, label %scend66, label %sc65 sc65: %t262 = load ptr, ptr %t0 %t263 = call i32 @lp_str_eq(ptr %t262, ptr @.str2751) %t264 = icmp ne i32 %t263, 0 %t265 = zext i1 %t264 to i32 store i32 %t265, ptr %t257 br label %scend66 scend66: %t266 = load i32, ptr %t257 %t267 = icmp ne i32 %t266, 0 br i1 %t267, label %then67, label %ifend69 then67: %t268 = load ptr, ptr %t3 %t269 = load ptr, ptr %t1 %t270 = load ptr, ptr %t0 %t271 = call ptr @fn_fp_arg(ptr %t268, i32 1, ptr %t269, ptr %t270) store ptr %t271, ptr %t272 %t273 = load ptr, ptr %t1 %t274 = call ptr @lp_str_concat(ptr @.str2752, ptr %t273) %t275 = call ptr @lp_str_concat(ptr %t274, ptr @.str2753) %t276 = load ptr, ptr %t9 %t277 = call ptr @lp_str_concat(ptr %t275, ptr %t276) %t278 = call ptr @lp_str_concat(ptr %t277, ptr @.str2754) %t279 = load ptr, ptr %t272 %t280 = call ptr @lp_str_concat(ptr %t278, ptr %t279) %t281 = call ptr @fn_emit_bind(ptr %t280) store ptr %t281, ptr %t282 %t283 = load ptr, ptr %t1 %t284 = call ptr @lp_str_concat(ptr @.str2755, ptr %t283) %t285 = call ptr @lp_str_concat(ptr %t284, ptr @.str2756) %t286 = load ptr, ptr %t282 %t287 = call ptr @lp_str_concat(ptr %t285, ptr %t286) %t288 = call ptr @lp_str_concat(ptr %t287, ptr @.str2757) %t289 = load ptr, ptr %t272 %t290 = call ptr @lp_str_concat(ptr %t288, ptr %t289) %t291 = call ptr @fn_emit_bind(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t1 %t294 = call ptr @lp_str_concat(ptr @.str2758, ptr %t293) %t295 = call ptr @lp_str_concat(ptr %t294, ptr @.str2759) %t296 = load ptr, ptr %t292 %t297 = call ptr @lp_str_concat(ptr %t295, ptr %t296) %t298 = call ptr @lp_str_concat(ptr %t297, ptr @.str2760) %t299 = load ptr, ptr %t272 %t300 = call ptr @lp_str_concat(ptr %t298, ptr %t299) %t301 = call ptr @fn_emit_bind(ptr %t300) %t302 = load ptr, ptr %t1 %t303 = call ptr @fn_val(ptr %t301, ptr %t302) store ptr %t303, ptr %retval br label %ret ifend69: %t304 = load ptr, ptr %t0 %t305 = call i32 @lp_str_eq(ptr %t304, ptr @.str2761) %t306 = icmp ne i32 %t305, 0 br i1 %t306, label %then70, label %ifend72 then70: %t307 = load ptr, ptr %t3 %t308 = load ptr, ptr %t1 %t309 = load ptr, ptr %t0 %t310 = call ptr @fn_fp_arg(ptr %t307, i32 1, ptr %t308, ptr %t309) store ptr %t310, ptr %t311 %t312 = load ptr, ptr %t3 %t313 = load ptr, ptr %t1 %t314 = load ptr, ptr %t0 %t315 = call ptr @fn_fp_arg(ptr %t312, i32 2, ptr %t313, ptr %t314) store ptr %t315, ptr %t316 %t317 = load ptr, ptr %t1 %t318 = load ptr, ptr %t9 %t319 = load ptr, ptr %t311 %t320 = call ptr @fn_fp_pick(ptr @.str2762, ptr %t317, ptr %t318, ptr %t319) store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t1 %t323 = load ptr, ptr %t321 %t324 = load ptr, ptr %t316 %t325 = call ptr @fn_fp_pick(ptr @.str2763, ptr %t322, ptr %t323, ptr %t324) %t326 = load ptr, ptr %t1 %t327 = call ptr @fn_val(ptr %t325, ptr %t326) store ptr %t327, ptr %retval br label %ret ifend72: %t328 = load ptr, ptr %t0 %t329 = call i32 @lp_str_eq(ptr %t328, ptr @.str2764) %t330 = icmp ne i32 %t329, 0 br i1 %t330, label %then73, label %ifend75 then73: %t331 = load ptr, ptr %t3 %t332 = load ptr, ptr %t1 %t333 = load ptr, ptr %t0 %t334 = call ptr @fn_fp_arg(ptr %t331, i32 1, ptr %t332, ptr %t333) store ptr %t334, ptr %t335 %t336 = load ptr, ptr %t3 %t337 = load ptr, ptr %t1 %t338 = load ptr, ptr %t0 %t339 = call ptr @fn_fp_arg(ptr %t336, i32 2, ptr %t337, ptr %t338) store ptr %t339, ptr %t340 %t341 = load ptr, ptr %t1 %t342 = call ptr @lp_str_concat(ptr @.str2765, ptr %t341) %t343 = call ptr @lp_str_concat(ptr %t342, ptr @.str2766) %t344 = load ptr, ptr %t335 %t345 = call ptr @lp_str_concat(ptr %t343, ptr %t344) %t346 = call ptr @lp_str_concat(ptr %t345, ptr @.str2767) %t347 = load ptr, ptr %t9 %t348 = call ptr @lp_str_concat(ptr %t346, ptr %t347) %t349 = call ptr @fn_emit_bind(ptr %t348) store ptr %t349, ptr %t350 %t351 = load ptr, ptr %t1 %t352 = call ptr @lp_str_concat(ptr @.str2768, ptr %t351) %t353 = call ptr @lp_str_concat(ptr %t352, ptr @.str2769) %t354 = load ptr, ptr %t350 %t355 = call ptr @lp_str_concat(ptr %t353, ptr %t354) %t356 = call ptr @lp_str_concat(ptr %t355, ptr @.str2770) %t357 = load ptr, ptr %t340 %t358 = call ptr @lp_str_concat(ptr %t356, ptr %t357) %t359 = call ptr @fn_emit_bind(ptr %t358) store ptr %t359, ptr %t360 %t361 = load ptr, ptr %t1 %t362 = call ptr @lp_str_concat(ptr @.str2771, ptr %t361) %t363 = call ptr @lp_str_concat(ptr %t362, ptr @.str2772) %t364 = load ptr, ptr %t9 %t365 = call ptr @lp_str_concat(ptr %t363, ptr %t364) %t366 = call ptr @lp_str_concat(ptr %t365, ptr @.str2773) %t367 = load ptr, ptr %t360 %t368 = call ptr @lp_str_concat(ptr %t366, ptr %t367) %t369 = call ptr @fn_emit_bind(ptr %t368) %t370 = load ptr, ptr %t1 %t371 = call ptr @fn_val(ptr %t369, ptr %t370) store ptr %t371, ptr %retval br label %ret ifend75: %t372 = load ptr, ptr %t0 %t373 = call i32 @lp_str_eq(ptr %t372, ptr @.str2774) %t374 = icmp ne i32 %t373, 0 br i1 %t374, label %then76, label %ifend78 then76: %t375 = load ptr, ptr %t3 %t376 = load ptr, ptr %t1 %t377 = load ptr, ptr %t0 %t378 = call ptr @fn_fp_arg(ptr %t375, i32 1, ptr %t376, ptr %t377) store ptr %t378, ptr %t379 %t380 = load ptr, ptr %t3 %t381 = load ptr, ptr %t1 %t382 = load ptr, ptr %t0 %t383 = call ptr @fn_fp_arg(ptr %t380, i32 2, ptr %t381, ptr %t382) store ptr %t383, ptr %t384 %t385 = load ptr, ptr %t1 %t386 = call ptr @lp_str_concat(ptr @.str2775, ptr %t385) %t387 = call ptr @lp_str_concat(ptr %t386, ptr @.str2776) %t388 = load ptr, ptr %t384 %t389 = call ptr @lp_str_concat(ptr %t387, ptr %t388) %t390 = call ptr @lp_str_concat(ptr %t389, ptr @.str2777) %t391 = load ptr, ptr %t9 %t392 = call ptr @lp_str_concat(ptr %t390, ptr %t391) %t393 = call ptr @fn_emit_bind(ptr %t392) store ptr %t393, ptr %t394 %t395 = load ptr, ptr %t1 %t396 = call ptr @lp_str_concat(ptr @.str2778, ptr %t395) %t397 = call ptr @lp_str_concat(ptr %t396, ptr @.str2779) %t398 = load ptr, ptr %t379 %t399 = call ptr @lp_str_concat(ptr %t397, ptr %t398) %t400 = call ptr @lp_str_concat(ptr %t399, ptr @.str2780) %t401 = load ptr, ptr %t9 %t402 = call ptr @lp_str_concat(ptr %t400, ptr %t401) %t403 = call ptr @fn_emit_bind(ptr %t402) store ptr %t403, ptr %t404 %t405 = load ptr, ptr %t1 %t406 = call ptr @lp_str_concat(ptr @.str2781, ptr %t405) %t407 = call ptr @lp_str_concat(ptr %t406, ptr @.str2782) %t408 = load ptr, ptr %t394 %t409 = call ptr @lp_str_concat(ptr %t407, ptr %t408) %t410 = call ptr @lp_str_concat(ptr %t409, ptr @.str2783) %t411 = load ptr, ptr %t404 %t412 = call ptr @lp_str_concat(ptr %t410, ptr %t411) %t413 = call ptr @fn_emit_bind(ptr %t412) %t414 = load ptr, ptr %t1 %t415 = call ptr @fn_val(ptr %t413, ptr %t414) store ptr %t415, ptr %retval br label %ret ifend78: %t416 = load ptr, ptr %t0 %t417 = call i32 @lp_str_eq(ptr %t416, ptr @.str2784) %t418 = icmp ne i32 %t417, 0 br i1 %t418, label %then79, label %ifend81 then79: %t419 = load ptr, ptr %t3 %t420 = load ptr, ptr %t1 %t421 = load ptr, ptr %t0 %t422 = call ptr @fn_fp_arg(ptr %t419, i32 1, ptr %t420, ptr %t421) store ptr %t422, ptr %t423 %t424 = load ptr, ptr %t3 %t425 = load ptr, ptr %t1 %t426 = load ptr, ptr %t0 %t427 = call ptr @fn_fp_arg(ptr %t424, i32 2, ptr %t425, ptr %t426) store ptr %t427, ptr %t428 %t429 = load ptr, ptr %t3 %t430 = load ptr, ptr %t1 %t431 = load ptr, ptr %t0 %t432 = call ptr @fn_fp_arg(ptr %t429, i32 3, ptr %t430, ptr %t431) store ptr %t432, ptr %t433 %t434 = load ptr, ptr %t3 %t435 = load ptr, ptr %t1 %t436 = load ptr, ptr %t0 %t437 = call ptr @fn_fp_arg(ptr %t434, i32 4, ptr %t435, ptr %t436) store ptr %t437, ptr %t438 %t439 = load ptr, ptr %t1 %t440 = call ptr @lp_str_concat(ptr @.str2785, ptr %t439) %t441 = call ptr @lp_str_concat(ptr %t440, ptr @.str2786) %t442 = load ptr, ptr %t9 %t443 = call ptr @lp_str_concat(ptr %t441, ptr %t442) %t444 = call ptr @lp_str_concat(ptr %t443, ptr @.str2787) %t445 = load ptr, ptr %t423 %t446 = call ptr @lp_str_concat(ptr %t444, ptr %t445) %t447 = call ptr @fn_emit_bind(ptr %t446) store ptr %t447, ptr %t448 %t449 = load ptr, ptr %t1 %t450 = call ptr @lp_str_concat(ptr @.str2788, ptr %t449) %t451 = call ptr @lp_str_concat(ptr %t450, ptr @.str2789) %t452 = load ptr, ptr %t428 %t453 = call ptr @lp_str_concat(ptr %t451, ptr %t452) %t454 = call ptr @lp_str_concat(ptr %t453, ptr @.str2790) %t455 = load ptr, ptr %t423 %t456 = call ptr @lp_str_concat(ptr %t454, ptr %t455) %t457 = call ptr @fn_emit_bind(ptr %t456) store ptr %t457, ptr %t458 %t459 = load ptr, ptr %t1 %t460 = call ptr @lp_str_concat(ptr @.str2791, ptr %t459) %t461 = call ptr @lp_str_concat(ptr %t460, ptr @.str2792) %t462 = load ptr, ptr %t448 %t463 = call ptr @lp_str_concat(ptr %t461, ptr %t462) %t464 = call ptr @lp_str_concat(ptr %t463, ptr @.str2793) %t465 = load ptr, ptr %t458 %t466 = call ptr @lp_str_concat(ptr %t464, ptr %t465) %t467 = call ptr @fn_emit_bind(ptr %t466) store ptr %t467, ptr %t468 %t469 = load ptr, ptr %t1 %t470 = call ptr @lp_str_concat(ptr @.str2794, ptr %t469) %t471 = call ptr @lp_str_concat(ptr %t470, ptr @.str2795) %t472 = load ptr, ptr %t438 %t473 = call ptr @lp_str_concat(ptr %t471, ptr %t472) %t474 = call ptr @lp_str_concat(ptr %t473, ptr @.str2796) %t475 = load ptr, ptr %t433 %t476 = call ptr @lp_str_concat(ptr %t474, ptr %t475) %t477 = call ptr @fn_emit_bind(ptr %t476) store ptr %t477, ptr %t478 %t479 = load ptr, ptr %t1 %t480 = call ptr @lp_str_concat(ptr @.str2797, ptr %t479) %t481 = call ptr @lp_str_concat(ptr %t480, ptr @.str2798) %t482 = load ptr, ptr %t478 %t483 = call ptr @lp_str_concat(ptr %t481, ptr %t482) %t484 = call ptr @lp_str_concat(ptr %t483, ptr @.str2799) %t485 = load ptr, ptr %t468 %t486 = call ptr @lp_str_concat(ptr %t484, ptr %t485) %t487 = call ptr @fn_emit_bind(ptr %t486) store ptr %t487, ptr %t488 %t489 = load ptr, ptr %t1 %t490 = call ptr @lp_str_concat(ptr @.str2800, ptr %t489) %t491 = call ptr @lp_str_concat(ptr %t490, ptr @.str2801) %t492 = load ptr, ptr %t433 %t493 = call ptr @lp_str_concat(ptr %t491, ptr %t492) %t494 = call ptr @lp_str_concat(ptr %t493, ptr @.str2802) %t495 = load ptr, ptr %t488 %t496 = call ptr @lp_str_concat(ptr %t494, ptr %t495) %t497 = call ptr @fn_emit_bind(ptr %t496) %t498 = load ptr, ptr %t1 %t499 = call ptr @fn_val(ptr %t497, ptr %t498) store ptr %t499, ptr %retval br label %ret ifend81: %t500 = load ptr, ptr %t0 %t501 = call i32 @lp_str_eq(ptr %t500, ptr @.str2803) %t502 = icmp ne i32 %t501, 0 br i1 %t502, label %then82, label %ifend84 then82: %t503 = load ptr, ptr %t3 %t504 = load ptr, ptr %t1 %t505 = load ptr, ptr %t0 %t506 = call ptr @fn_fp_arg(ptr %t503, i32 1, ptr %t504, ptr %t505) store ptr %t506, ptr %t507 %t508 = load ptr, ptr %t3 %t509 = load ptr, ptr %t1 %t510 = load ptr, ptr %t0 %t511 = call ptr @fn_fp_arg(ptr %t508, i32 2, ptr %t509, ptr %t510) store ptr %t511, ptr %t512 %t513 = load ptr, ptr %t1 %t514 = call ptr @lp_str_concat(ptr @.str2804, ptr %t513) %t515 = call ptr @lp_str_concat(ptr %t514, ptr @.str2805) %t516 = load ptr, ptr %t512 %t517 = call ptr @lp_str_concat(ptr %t515, ptr %t516) %t518 = call ptr @lp_str_concat(ptr %t517, ptr @.str2806) %t519 = load ptr, ptr %t9 %t520 = call ptr @lp_str_concat(ptr %t518, ptr %t519) %t521 = call ptr @fn_emit_bind(ptr %t520) store ptr %t521, ptr %t522 %t523 = load ptr, ptr %t1 %t524 = call ptr @lp_str_concat(ptr @.str2807, ptr %t523) %t525 = call ptr @lp_str_concat(ptr %t524, ptr @.str2808) %t526 = load ptr, ptr %t507 %t527 = call ptr @lp_str_concat(ptr %t525, ptr %t526) %t528 = call ptr @lp_str_concat(ptr %t527, ptr @.str2809) %t529 = load ptr, ptr %t9 %t530 = call ptr @lp_str_concat(ptr %t528, ptr %t529) %t531 = call ptr @fn_emit_bind(ptr %t530) store ptr %t531, ptr %t532 %t533 = load ptr, ptr %t1 %t534 = call ptr @lp_str_concat(ptr @.str2810, ptr %t533) %t535 = call ptr @lp_str_concat(ptr %t534, ptr @.str2811) %t536 = load ptr, ptr %t522 %t537 = call ptr @lp_str_concat(ptr %t535, ptr %t536) %t538 = call ptr @lp_str_concat(ptr %t537, ptr @.str2812) %t539 = load ptr, ptr %t532 %t540 = call ptr @lp_str_concat(ptr %t538, ptr %t539) %t541 = call ptr @fn_emit_bind(ptr %t540) store ptr %t541, ptr %t542 %t543 = load ptr, ptr %t1 %t544 = load ptr, ptr %t542 %t545 = call ptr @fn_fp_pick(ptr @.str2813, ptr %t543, ptr %t544, ptr @.str2814) store ptr %t545, ptr %t546 %t547 = load ptr, ptr %t1 %t548 = load ptr, ptr %t546 %t549 = call ptr @fn_fp_pick(ptr @.str2815, ptr %t547, ptr %t548, ptr @.str2816) store ptr %t549, ptr %t550 %t551 = load ptr, ptr %t1 %t552 = call ptr @lp_str_concat(ptr @.str2817, ptr %t551) %t553 = call ptr @lp_str_concat(ptr %t552, ptr @.str2818) %t554 = load ptr, ptr %t550 %t555 = call ptr @lp_str_concat(ptr %t553, ptr %t554) %t556 = call ptr @lp_str_concat(ptr %t555, ptr @.str2819) %t557 = load ptr, ptr %t550 %t558 = call ptr @lp_str_concat(ptr %t556, ptr %t557) %t559 = call ptr @fn_emit_bind(ptr %t558) store ptr %t559, ptr %t560 %t561 = load ptr, ptr %t1 %t562 = call ptr @lp_str_concat(ptr @.str2820, ptr %t561) %t563 = call ptr @lp_str_concat(ptr %t562, ptr @.str2821) %t564 = load ptr, ptr %t550 %t565 = call ptr @lp_str_concat(ptr %t563, ptr %t564) %t566 = call ptr @lp_str_concat(ptr %t565, ptr @.str2822) %t567 = call ptr @fn_emit_bind(ptr %t566) store ptr %t567, ptr %t568 %t569 = load ptr, ptr %t1 %t570 = call ptr @lp_str_concat(ptr @.str2823, ptr %t569) %t571 = call ptr @lp_str_concat(ptr %t570, ptr @.str2824) %t572 = load ptr, ptr %t568 %t573 = call ptr @lp_str_concat(ptr %t571, ptr %t572) %t574 = call ptr @fn_emit_bind(ptr %t573) store ptr %t574, ptr %t575 %t576 = load ptr, ptr %t1 %t577 = call ptr @lp_str_concat(ptr @.str2825, ptr %t576) %t578 = call ptr @lp_str_concat(ptr %t577, ptr @.str2826) %t579 = load ptr, ptr %t560 %t580 = call ptr @lp_str_concat(ptr %t578, ptr %t579) %t581 = call ptr @lp_str_concat(ptr %t580, ptr @.str2827) %t582 = load ptr, ptr %t575 %t583 = call ptr @lp_str_concat(ptr %t581, ptr %t582) %t584 = call ptr @fn_emit_bind(ptr %t583) %t585 = load ptr, ptr %t1 %t586 = call ptr @fn_val(ptr %t584, ptr %t585) store ptr %t586, ptr %retval br label %ret ifend84: %t587 = load ptr, ptr %t0 %t588 = call i32 @lp_str_eq(ptr %t587, ptr @.str2828) %t589 = icmp ne i32 %t588, 0 br i1 %t589, label %then85, label %ifend87 then85: %t590 = load ptr, ptr %t3 %t591 = load ptr, ptr %t1 %t592 = load ptr, ptr %t0 %t593 = call ptr @fn_fp_arg(ptr %t590, i32 1, ptr %t591, ptr %t592) store ptr %t593, ptr %t594 %t595 = load ptr, ptr %t3 %t596 = load ptr, ptr %t1 %t597 = load ptr, ptr %t0 %t598 = call ptr @fn_fp_arg(ptr %t595, i32 2, ptr %t596, ptr %t597) store ptr %t598, ptr %t599 %t600 = load ptr, ptr %t1 %t601 = call ptr @lp_str_concat(ptr @.str2829, ptr %t600) %t602 = call ptr @lp_str_concat(ptr %t601, ptr @.str2830) %t603 = load ptr, ptr %t594 %t604 = call ptr @lp_str_concat(ptr %t602, ptr %t603) %t605 = call ptr @lp_str_concat(ptr %t604, ptr @.str2831) %t606 = load ptr, ptr %t9 %t607 = call ptr @lp_str_concat(ptr %t605, ptr %t606) %t608 = call ptr @fn_emit_bind(ptr %t607) store ptr %t608, ptr %t609 %t610 = load ptr, ptr %t1 %t611 = load ptr, ptr %t609 %t612 = call ptr @fn_fp_intrinsic1(ptr @.str2832, ptr %t610, ptr %t611) store ptr %t612, ptr %t613 %t614 = load ptr, ptr %t1 %t615 = call ptr @lp_str_concat(ptr @.str2833, ptr %t614) %t616 = call ptr @lp_str_concat(ptr %t615, ptr @.str2834) %t617 = load ptr, ptr %t613 %t618 = call ptr @lp_str_concat(ptr %t616, ptr %t617) %t619 = call ptr @lp_str_concat(ptr %t618, ptr @.str2835) %t620 = load ptr, ptr %t599 %t621 = call ptr @lp_str_concat(ptr %t619, ptr %t620) %t622 = call ptr @fn_emit_bind(ptr %t621) store ptr %t622, ptr %t623 %t624 = load ptr, ptr %t1 %t625 = call ptr @lp_str_concat(ptr @.str2836, ptr %t624) %t626 = call ptr @lp_str_concat(ptr %t625, ptr @.str2837) %t627 = load ptr, ptr %t609 %t628 = call ptr @lp_str_concat(ptr %t626, ptr %t627) %t629 = call ptr @lp_str_concat(ptr %t628, ptr @.str2838) %t630 = call ptr @fn_emit_bind(ptr %t629) store ptr %t630, ptr %t631 %t632 = load ptr, ptr %t1 %t633 = call ptr @lp_str_concat(ptr @.str2839, ptr %t632) %t634 = call ptr @lp_str_concat(ptr %t633, ptr @.str2840) %t635 = load ptr, ptr %t599 %t636 = call ptr @lp_str_concat(ptr %t634, ptr %t635) %t637 = call ptr @fn_emit_bind(ptr %t636) store ptr %t637, ptr %t638 %t639 = load ptr, ptr %t631 %t640 = call ptr @lp_str_concat(ptr @.str2841, ptr %t639) %t641 = call ptr @lp_str_concat(ptr %t640, ptr @.str2842) %t642 = load ptr, ptr %t1 %t643 = call ptr @lp_str_concat(ptr %t641, ptr %t642) %t644 = call ptr @lp_str_concat(ptr %t643, ptr @.str2843) %t645 = load ptr, ptr %t638 %t646 = call ptr @lp_str_concat(ptr %t644, ptr %t645) %t647 = call ptr @lp_str_concat(ptr %t646, ptr @.str2844) %t648 = load ptr, ptr %t1 %t649 = call ptr @lp_str_concat(ptr %t647, ptr %t648) %t650 = call ptr @lp_str_concat(ptr %t649, ptr @.str2845) %t651 = load ptr, ptr %t599 %t652 = call ptr @lp_str_concat(ptr %t650, ptr %t651) %t653 = call ptr @fn_emit_bind(ptr %t652) store ptr %t653, ptr %t654 %t655 = load ptr, ptr %t1 %t656 = call ptr @lp_str_concat(ptr @.str2846, ptr %t655) %t657 = call ptr @lp_str_concat(ptr %t656, ptr @.str2847) %t658 = load ptr, ptr %t9 %t659 = call ptr @lp_str_concat(ptr %t657, ptr %t658) %t660 = call ptr @lp_str_concat(ptr %t659, ptr @.str2848) %t661 = load ptr, ptr %t654 %t662 = call ptr @lp_str_concat(ptr %t660, ptr %t661) %t663 = call ptr @fn_emit_bind(ptr %t662) store ptr %t663, ptr %t664 %t665 = load ptr, ptr %t623 %t666 = call ptr @lp_str_concat(ptr @.str2849, ptr %t665) %t667 = call ptr @lp_str_concat(ptr %t666, ptr @.str2850) %t668 = load ptr, ptr %t1 %t669 = call ptr @lp_str_concat(ptr %t667, ptr %t668) %t670 = call ptr @lp_str_concat(ptr %t669, ptr @.str2851) %t671 = load ptr, ptr %t594 %t672 = call ptr @lp_str_concat(ptr %t670, ptr %t671) %t673 = call ptr @lp_str_concat(ptr %t672, ptr @.str2852) %t674 = load ptr, ptr %t1 %t675 = call ptr @lp_str_concat(ptr %t673, ptr %t674) %t676 = call ptr @lp_str_concat(ptr %t675, ptr @.str2853) %t677 = load ptr, ptr %t664 %t678 = call ptr @lp_str_concat(ptr %t676, ptr %t677) %t679 = call ptr @fn_emit_bind(ptr %t678) %t680 = load ptr, ptr %t1 %t681 = call ptr @fn_val(ptr %t679, ptr %t680) store ptr %t681, ptr %retval br label %ret ifend87: %t683 = load ptr, ptr %t0 %t684 = call i32 @lp_str_eq(ptr %t683, ptr @.str2854) %t685 = icmp ne i32 %t684, 0 %t686 = zext i1 %t685 to i32 store i32 %t686, ptr %t682 br i1 %t685, label %scend89, label %sc88 sc88: %t687 = load ptr, ptr %t0 %t688 = call i32 @lp_str_eq(ptr %t687, ptr @.str2855) %t689 = icmp ne i32 %t688, 0 %t690 = zext i1 %t689 to i32 store i32 %t690, ptr %t682 br label %scend89 scend89: %t691 = load i32, ptr %t682 %t692 = icmp ne i32 %t691, 0 br i1 %t692, label %then90, label %ifend92 then90: %t693 = load ptr, ptr %t3 %t694 = load ptr, ptr %t1 %t695 = load ptr, ptr %t0 %t696 = call ptr @fn_fp_arg(ptr %t693, i32 1, ptr %t694, ptr %t695) store ptr %t696, ptr %t697 %t698 = load ptr, ptr %t3 %t699 = load ptr, ptr %t1 %t700 = load ptr, ptr %t0 %t701 = call ptr @fn_fp_arg(ptr %t698, i32 2, ptr %t699, ptr %t700) store ptr %t701, ptr %t702 %t703 = load ptr, ptr %t3 %t704 = load ptr, ptr %t1 %t705 = load ptr, ptr %t0 %t706 = call ptr @fn_fp_arg(ptr %t703, i32 3, ptr %t704, ptr %t705) store ptr %t706, ptr %t707 %t708 = load ptr, ptr %t1 %t709 = call ptr @lp_str_concat(ptr @.str2856, ptr %t708) %t710 = call ptr @lp_str_concat(ptr %t709, ptr @.str2857) %t711 = load ptr, ptr %t702 %t712 = call ptr @lp_str_concat(ptr %t710, ptr %t711) %t713 = call ptr @lp_str_concat(ptr %t712, ptr @.str2858) %t714 = load ptr, ptr %t9 %t715 = call ptr @lp_str_concat(ptr %t713, ptr %t714) %t716 = call ptr @fn_emit_bind(ptr %t715) store ptr %t716, ptr %t717 %t718 = load ptr, ptr %t1 %t719 = call ptr @lp_str_concat(ptr @.str2859, ptr %t718) %t720 = call ptr @lp_str_concat(ptr %t719, ptr @.str2860) %t721 = load ptr, ptr %t707 %t722 = call ptr @lp_str_concat(ptr %t720, ptr %t721) %t723 = call ptr @lp_str_concat(ptr %t722, ptr @.str2861) %t724 = load ptr, ptr %t697 %t725 = call ptr @lp_str_concat(ptr %t723, ptr %t724) %t726 = call ptr @fn_emit_bind(ptr %t725) store ptr %t726, ptr %t727 %t728 = load ptr, ptr %t1 %t729 = call ptr @lp_str_concat(ptr @.str2862, ptr %t728) %t730 = call ptr @lp_str_concat(ptr %t729, ptr @.str2863) %t731 = load ptr, ptr %t717 %t732 = call ptr @lp_str_concat(ptr %t730, ptr %t731) %t733 = call ptr @lp_str_concat(ptr %t732, ptr @.str2864) %t734 = load ptr, ptr %t717 %t735 = call ptr @lp_str_concat(ptr %t733, ptr %t734) %t736 = call ptr @fn_emit_bind(ptr %t735) store ptr %t736, ptr %t737 %t738 = load ptr, ptr %t1 %t739 = call ptr @lp_str_concat(ptr @.str2865, ptr %t738) %t740 = call ptr @lp_str_concat(ptr %t739, ptr @.str2866) %t741 = load ptr, ptr %t727 %t742 = call ptr @lp_str_concat(ptr %t740, ptr %t741) %t743 = call ptr @lp_str_concat(ptr %t742, ptr @.str2867) %t744 = load ptr, ptr %t727 %t745 = call ptr @lp_str_concat(ptr %t743, ptr %t744) %t746 = call ptr @fn_emit_bind(ptr %t745) store ptr %t746, ptr %t747 %t748 = load ptr, ptr %t1 %t749 = call ptr @lp_str_concat(ptr @.str2868, ptr %t748) %t750 = call ptr @lp_str_concat(ptr %t749, ptr @.str2869) %t751 = load ptr, ptr %t737 %t752 = call ptr @lp_str_concat(ptr %t750, ptr %t751) %t753 = call ptr @lp_str_concat(ptr %t752, ptr @.str2870) %t754 = load ptr, ptr %t747 %t755 = call ptr @lp_str_concat(ptr %t753, ptr %t754) %t756 = call ptr @fn_emit_bind(ptr %t755) store ptr %t756, ptr %t757 %t758 = load ptr, ptr %t0 %t759 = call i32 @lp_str_eq(ptr %t758, ptr @.str2871) %t760 = icmp ne i32 %t759, 0 br i1 %t760, label %then93, label %ifend95 then93: %t761 = load ptr, ptr %t757 %t762 = load ptr, ptr %t1 %t763 = call ptr @fn_val(ptr %t761, ptr %t762) store ptr %t763, ptr %retval br label %ret ifend95: %t764 = load ptr, ptr %t1 %t765 = load ptr, ptr %t757 %t766 = call ptr @fn_fp_intrinsic1(ptr @.str2872, ptr %t764, ptr %t765) %t767 = load ptr, ptr %t1 %t768 = call ptr @fn_val(ptr %t766, ptr %t767) store ptr %t768, ptr %retval br label %ret ifend92: %t769 = load ptr, ptr %t0 %t770 = call ptr @lp_str_concat(ptr @.str2873, ptr %t769) %t771 = call ptr @lp_str_concat(ptr %t770, ptr @.str2874) %t772 = load ptr, ptr %t1 %t773 = call ptr @lp_str_concat(ptr %t771, ptr %t772) %t774 = call ptr @lp_str_concat(ptr %t773, ptr @.str2875) call void @fn_perr(ptr %t774) %t775 = load ptr, ptr %t9 %t776 = load ptr, ptr %t1 %t777 = call ptr @fn_val(ptr %t775, ptr %t776) store ptr %t777, ptr %retval br label %ret ret: %t778 = load ptr, ptr %retval ret ptr %t778 } define ptr @fn_preval_node(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t22 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr @g_g_prevals %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t4 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 2 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t6 = load i32, ptr %t3 %t7 = load i32, ptr %t4 %t8 = icmp sge i32 %t6, %t7 br i1 %t8, label %grow0, label %put1 grow0: %t9 = mul i32 %t7, 2 %t10 = icmp eq i32 %t7, 0 %t11 = select i1 %t10, i32 8, i32 %t9 %t12 = getelementptr ptr, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = zext i32 %t11 to i64 %t15 = mul i64 %t14, %t13 %t16 = load ptr, ptr %t5 %t17 = call ptr @realloc(ptr %t16, i64 %t15) store ptr %t17, ptr %t5 store i32 %t11, ptr %t4 br label %put1 put1: %t18 = load ptr, ptr %t5 %t19 = getelementptr inbounds ptr, ptr %t18, i32 %t6 store ptr %t2, ptr %t19 %t20 = add i32 %t6, 1 store i32 %t20, ptr %t3 %t21 = call ptr @fn_node(i32 190) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 2 %t25 = load ptr, ptr @g_g_prevals %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = sub i32 %t27, 1 store i32 %t28, ptr %t24 %t29 = load ptr, ptr %t22 store ptr %t29, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } define i32 @fn_is_math_builtin(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_name, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str2876) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str2877) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str2878) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str2879) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 store i32 %t26, ptr %retval br label %ret ret: %t27 = load i32, ptr %retval ret i32 %t27 } define ptr @fn_emit_math_builtin(ptr %arg_name, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t24 = alloca ptr %t28 = alloca ptr %t37 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp eq i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = load ptr, ptr %t1 %t12 = call ptr @fn_emit_math_builtin_fixed(ptr %t10, ptr %t11) store ptr %t12, ptr %retval br label %ret ifend2: %t13 = load ptr, ptr %t1 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 0, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str2880, i32 0, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 0 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t0 %t26 = load ptr, ptr %t1 %t27 = call ptr @fn_math_fp_route(ptr %t25, ptr %t26) store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = icmp ne ptr %t29, null %t31 = zext i1 %t30 to i32 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t28 store ptr %t33, ptr %retval br label %ret ifend7: %t34 = load ptr, ptr %t0 %t35 = load ptr, ptr %t1 %t36 = call ptr @fn_emit_math_builtin_fixed(ptr %t34, ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t1 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 0, %t44 br i1 %t45, label %ixok8, label %ixbad9 ixbad9: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str2881, i32 0, i32 %t44) call void @exit(i32 1) unreachable ixok8: %t47 = getelementptr inbounds ptr, ptr %t42, i32 0 %t48 = load ptr, ptr %t24 store ptr %t48, ptr %t47 %t49 = load ptr, ptr %t37 store ptr %t49, ptr %retval br label %ret ret: %t50 = load ptr, ptr %retval ret ptr %t50 } define ptr @fn_emit_math_builtin_fixed(ptr %arg_name, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t24 = alloca ptr %t30 = alloca ptr %t46 = alloca i32 %t69 = alloca ptr %t82 = alloca ptr %t83 = alloca ptr %t100 = alloca ptr %t130 = alloca ptr %t143 = alloca ptr %t156 = alloca ptr %t167 = alloca ptr %t181 = alloca ptr %t190 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str2882) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str2883, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str2884, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str2885) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t17 %t26 = getelementptr inbounds %Cmp_Val, ptr %t25, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = call ptr @lp_str_concat(ptr @.str2886, ptr %t27) %t29 = call ptr @fn_emit_bind(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t24 %t32 = call ptr @lp_str_concat(ptr @.str2887, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str2888) %t34 = load ptr, ptr %t30 %t35 = call ptr @lp_str_concat(ptr %t33, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str2889) %t37 = load ptr, ptr %t17 %t38 = getelementptr inbounds %Cmp_Val, ptr %t37, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = call ptr @lp_str_concat(ptr %t36, ptr %t39) %t41 = call ptr @fn_emit_bind(ptr %t40) %t42 = load ptr, ptr %t17 %t43 = getelementptr inbounds %Cmp_Val, ptr %t42, i32 0, i32 1 %t44 = load ptr, ptr %t43 %t45 = call ptr @fn_val(ptr %t41, ptr %t44) store ptr %t45, ptr %retval br label %ret ifend2: %t47 = load ptr, ptr %t0 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str2890) %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t46 br i1 %t49, label %scend6, label %sc5 sc5: %t51 = load ptr, ptr %t0 %t52 = call i32 @lp_str_eq(ptr %t51, ptr @.str2891) %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t46 br label %scend6 scend6: %t55 = load i32, ptr %t46 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then7, label %ifend9 then7: %t57 = load ptr, ptr %t1 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 7 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 0, %t63 br i1 %t64, label %ixok10, label %ixbad11 ixbad11: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str2892, i32 0, i32 %t63) call void @exit(i32 1) unreachable ixok10: %t66 = getelementptr inbounds ptr, ptr %t61, i32 0 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_emit_expr(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t1 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 7 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp ult i32 1, %t76 br i1 %t77, label %ixok12, label %ixbad13 ixbad13: %t78 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t78, ptr @.fmt_bounds, ptr @.str2893, i32 1, i32 %t76) call void @exit(i32 1) unreachable ixok12: %t79 = getelementptr inbounds ptr, ptr %t74, i32 1 %t80 = load ptr, ptr %t79 %t81 = call ptr @fn_emit_expr(ptr %t80) store ptr %t81, ptr %t82 store ptr @.str2894, ptr %t83 %t84 = load ptr, ptr %t0 %t85 = call i32 @lp_str_eq(ptr %t84, ptr @.str2895) %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then14, label %ifend16 then14: store ptr @.str2896, ptr %t83 br label %ifend16 ifend16: %t87 = load ptr, ptr %t83 %t88 = call ptr @lp_str_concat(ptr @.str2897, ptr %t87) %t89 = call ptr @lp_str_concat(ptr %t88, ptr @.str2898) %t90 = load ptr, ptr %t69 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = call ptr @lp_str_concat(ptr %t89, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str2899) %t95 = load ptr, ptr %t82 %t96 = getelementptr inbounds %Cmp_Val, ptr %t95, i32 0, i32 0 %t97 = load ptr, ptr %t96 %t98 = call ptr @lp_str_concat(ptr %t94, ptr %t97) %t99 = call ptr @fn_emit_bind(ptr %t98) store ptr %t99, ptr %t100 %t101 = load ptr, ptr %t100 %t102 = call ptr @lp_str_concat(ptr @.str2900, ptr %t101) %t103 = call ptr @lp_str_concat(ptr %t102, ptr @.str2901) %t104 = load ptr, ptr %t69 %t105 = getelementptr inbounds %Cmp_Val, ptr %t104, i32 0, i32 0 %t106 = load ptr, ptr %t105 %t107 = call ptr @lp_str_concat(ptr %t103, ptr %t106) %t108 = call ptr @lp_str_concat(ptr %t107, ptr @.str2902) %t109 = load ptr, ptr %t82 %t110 = getelementptr inbounds %Cmp_Val, ptr %t109, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = call ptr @lp_str_concat(ptr %t108, ptr %t111) %t113 = call ptr @fn_emit_bind(ptr %t112) %t114 = load ptr, ptr %t69 %t115 = getelementptr inbounds %Cmp_Val, ptr %t114, i32 0, i32 1 %t116 = load ptr, ptr %t115 %t117 = call ptr @fn_val(ptr %t113, ptr %t116) store ptr %t117, ptr %retval br label %ret ifend9: %t118 = load ptr, ptr %t1 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 7 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 1 %t124 = load i32, ptr %t123 %t125 = icmp ult i32 0, %t124 br i1 %t125, label %ixok17, label %ixbad18 ixbad18: %t126 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t126, ptr @.fmt_bounds, ptr @.str2903, i32 0, i32 %t124) call void @exit(i32 1) unreachable ixok17: %t127 = getelementptr inbounds ptr, ptr %t122, i32 0 %t128 = load ptr, ptr %t127 %t129 = call ptr @fn_emit_expr(ptr %t128) store ptr %t129, ptr %t130 %t131 = load ptr, ptr %t1 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 7 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 %t136 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 1 %t137 = load i32, ptr %t136 %t138 = icmp ult i32 1, %t137 br i1 %t138, label %ixok19, label %ixbad20 ixbad20: %t139 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t139, ptr @.fmt_bounds, ptr @.str2904, i32 1, i32 %t137) call void @exit(i32 1) unreachable ixok19: %t140 = getelementptr inbounds ptr, ptr %t135, i32 1 %t141 = load ptr, ptr %t140 %t142 = call ptr @fn_emit_expr(ptr %t141) store ptr %t142, ptr %t143 %t144 = load ptr, ptr %t1 %t145 = getelementptr inbounds %Cmp_Node, ptr %t144, i32 0, i32 7 %t146 = load ptr, ptr %t145 %t147 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 0 %t148 = load ptr, ptr %t147 %t149 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 1 %t150 = load i32, ptr %t149 %t151 = icmp ult i32 2, %t150 br i1 %t151, label %ixok21, label %ixbad22 ixbad22: %t152 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t152, ptr @.fmt_bounds, ptr @.str2905, i32 2, i32 %t150) call void @exit(i32 1) unreachable ixok21: %t153 = getelementptr inbounds ptr, ptr %t148, i32 2 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_emit_expr(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t130 %t158 = getelementptr inbounds %Cmp_Val, ptr %t157, i32 0, i32 0 %t159 = load ptr, ptr %t158 %t160 = call ptr @lp_str_concat(ptr @.str2906, ptr %t159) %t161 = call ptr @lp_str_concat(ptr %t160, ptr @.str2907) %t162 = load ptr, ptr %t156 %t163 = getelementptr inbounds %Cmp_Val, ptr %t162, i32 0, i32 0 %t164 = load ptr, ptr %t163 %t165 = call ptr @lp_str_concat(ptr %t161, ptr %t164) %t166 = call ptr @fn_emit_bind(ptr %t165) store ptr %t166, ptr %t167 %t168 = load ptr, ptr %t167 %t169 = call ptr @lp_str_concat(ptr @.str2908, ptr %t168) %t170 = call ptr @lp_str_concat(ptr %t169, ptr @.str2909) %t171 = load ptr, ptr %t130 %t172 = getelementptr inbounds %Cmp_Val, ptr %t171, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = call ptr @lp_str_concat(ptr %t170, ptr %t173) %t175 = call ptr @lp_str_concat(ptr %t174, ptr @.str2910) %t176 = load ptr, ptr %t156 %t177 = getelementptr inbounds %Cmp_Val, ptr %t176, i32 0, i32 0 %t178 = load ptr, ptr %t177 %t179 = call ptr @lp_str_concat(ptr %t175, ptr %t178) %t180 = call ptr @fn_emit_bind(ptr %t179) store ptr %t180, ptr %t181 %t182 = load ptr, ptr %t143 %t183 = getelementptr inbounds %Cmp_Val, ptr %t182, i32 0, i32 0 %t184 = load ptr, ptr %t183 %t185 = call ptr @lp_str_concat(ptr @.str2911, ptr %t184) %t186 = call ptr @lp_str_concat(ptr %t185, ptr @.str2912) %t187 = load ptr, ptr %t181 %t188 = call ptr @lp_str_concat(ptr %t186, ptr %t187) %t189 = call ptr @fn_emit_bind(ptr %t188) store ptr %t189, ptr %t190 %t191 = load ptr, ptr %t190 %t192 = call ptr @lp_str_concat(ptr @.str2913, ptr %t191) %t193 = call ptr @lp_str_concat(ptr %t192, ptr @.str2914) %t194 = load ptr, ptr %t143 %t195 = getelementptr inbounds %Cmp_Val, ptr %t194, i32 0, i32 0 %t196 = load ptr, ptr %t195 %t197 = call ptr @lp_str_concat(ptr %t193, ptr %t196) %t198 = call ptr @lp_str_concat(ptr %t197, ptr @.str2915) %t199 = load ptr, ptr %t181 %t200 = call ptr @lp_str_concat(ptr %t198, ptr %t199) %t201 = call ptr @fn_emit_bind(ptr %t200) %t202 = load ptr, ptr %t130 %t203 = getelementptr inbounds %Cmp_Val, ptr %t202, i32 0, i32 1 %t204 = load ptr, ptr %t203 %t205 = call ptr @fn_val(ptr %t201, ptr %t204) store ptr %t205, ptr %retval br label %ret ret: %t206 = load ptr, ptr %retval ret ptr %t206 } define ptr @fn_fx_mul_code(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca ptr %t11 = alloca ptr %t18 = alloca ptr %t23 = alloca ptr store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str2916, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str2917) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t1 %t8 = call ptr @lp_str_concat(ptr @.str2918, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str2919) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t6 %t13 = call ptr @lp_str_concat(ptr @.str2920, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str2921) %t15 = load ptr, ptr %t11 %t16 = call ptr @lp_str_concat(ptr %t14, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = call ptr @lp_str_concat(ptr @.str2922, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str2923) %t22 = call ptr @fn_emit_bind(ptr %t21) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = call ptr @lp_str_concat(ptr @.str2924, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str2925) %t27 = call ptr @fn_emit_bind(ptr %t26) store ptr %t27, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } define ptr @fn_fx_div_code(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca ptr %t11 = alloca ptr %t16 = alloca ptr %t23 = alloca ptr store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str2926, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str2927) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @lp_str_concat(ptr @.str2928, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str2929) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t1 %t13 = call ptr @lp_str_concat(ptr @.str2930, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str2931) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t11 %t18 = call ptr @lp_str_concat(ptr @.str2932, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str2933) %t20 = load ptr, ptr %t16 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) %t22 = call ptr @fn_emit_bind(ptr %t21) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = call ptr @lp_str_concat(ptr @.str2934, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str2935) %t27 = call ptr @fn_emit_bind(ptr %t26) store ptr %t27, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } define ptr @fn_fx_lerp_code(ptr %arg_a, ptr %arg_b, ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca ptr %t13 = alloca ptr store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 store ptr %arg_t, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str2936, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str2937) %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = load ptr, ptr %t2 %t12 = call ptr @fn_fx_mul_code(ptr %t10, ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t0 %t15 = call ptr @lp_str_concat(ptr @.str2938, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str2939) %t17 = load ptr, ptr %t13 %t18 = call ptr @lp_str_concat(ptr %t16, ptr %t17) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %retval br label %ret ret: %t20 = load ptr, ptr %retval ret ptr %t20 } define ptr @fn_fx_inv_lerp_code(ptr %arg_a, ptr %arg_b, ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca ptr %t16 = alloca ptr store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 store ptr %arg_v, ptr %t2 %t3 = load ptr, ptr %t2 %t4 = call ptr @lp_str_concat(ptr @.str2940, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str2941) %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t1 %t11 = call ptr @lp_str_concat(ptr @.str2942, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str2943) %t13 = load ptr, ptr %t0 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t9 %t18 = load ptr, ptr %t16 %t19 = call ptr @fn_fx_div_code(ptr %t17, ptr %t18) store ptr %t19, ptr %retval br label %ret ret: %t20 = load ptr, ptr %retval ret ptr %t20 } define i32 @fn_is_math_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t30 = alloca i32 %t55 = alloca i32 %t56 = alloca i32 %t74 = alloca i32 %t75 = alloca i32 %t76 = alloca i32 %t77 = alloca i32 %t109 = alloca i32 %t110 = alloca i32 %t128 = alloca i32 %t129 = alloca i32 %t130 = alloca i32 %t155 = alloca i32 %t156 = alloca i32 %t157 = alloca i32 %t182 = alloca i32 %t193 = alloca i32 %t194 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str2944) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str2945) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str2946) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str2947) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str2948) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t30 br i1 %t33, label %scend10, label %sc9 sc9: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str2949) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t30 br label %scend10 scend10: %t39 = load i32, ptr %t30 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t29 br i1 %t40, label %scend12, label %sc11 sc11: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str2950) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t29 br label %scend12 scend12: %t46 = load i32, ptr %t29 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t28 br i1 %t47, label %scend14, label %sc13 sc13: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str2951) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t28 br label %scend14 scend14: %t53 = load i32, ptr %t28 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: %t57 = load ptr, ptr %t0 %t58 = call i32 @lp_str_eq(ptr %t57, ptr @.str2952) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t56 br i1 %t59, label %scend19, label %sc18 sc18: %t61 = load ptr, ptr %t0 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str2953) %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t56 br label %scend19 scend19: %t65 = load i32, ptr %t56 %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t55 br i1 %t66, label %scend21, label %sc20 sc20: %t68 = load ptr, ptr %t0 %t69 = call i32 @lp_str_eq(ptr %t68, ptr @.str2954) %t70 = icmp ne i32 %t69, 0 %t71 = zext i1 %t70 to i32 store i32 %t71, ptr %t55 br label %scend21 scend21: %t72 = load i32, ptr %t55 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then22, label %ifend24 then22: store i32 1, ptr %retval br label %ret ifend24: %t78 = load ptr, ptr %t0 %t79 = call i32 @lp_str_eq(ptr %t78, ptr @.str2955) %t80 = icmp ne i32 %t79, 0 %t81 = zext i1 %t80 to i32 store i32 %t81, ptr %t77 br i1 %t80, label %scend26, label %sc25 sc25: %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t82, ptr @.str2956) %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t77 br label %scend26 scend26: %t86 = load i32, ptr %t77 %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t76 br i1 %t87, label %scend28, label %sc27 sc27: %t89 = load ptr, ptr %t0 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str2957) %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t76 br label %scend28 scend28: %t93 = load i32, ptr %t76 %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t75 br i1 %t94, label %scend30, label %sc29 sc29: %t96 = load ptr, ptr %t0 %t97 = call i32 @lp_str_eq(ptr %t96, ptr @.str2958) %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t75 br label %scend30 scend30: %t100 = load i32, ptr %t75 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t74 br i1 %t101, label %scend32, label %sc31 sc31: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str2959) %t105 = icmp ne i32 %t104, 0 %t106 = zext i1 %t105 to i32 store i32 %t106, ptr %t74 br label %scend32 scend32: %t107 = load i32, ptr %t74 %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then33, label %ifend35 then33: store i32 1, ptr %retval br label %ret ifend35: %t111 = load ptr, ptr %t0 %t112 = call i32 @lp_str_eq(ptr %t111, ptr @.str2960) %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t110 br i1 %t113, label %scend37, label %sc36 sc36: %t115 = load ptr, ptr %t0 %t116 = call i32 @lp_str_eq(ptr %t115, ptr @.str2961) %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t110 br label %scend37 scend37: %t119 = load i32, ptr %t110 %t120 = icmp ne i32 %t119, 0 %t121 = zext i1 %t120 to i32 store i32 %t121, ptr %t109 br i1 %t120, label %scend39, label %sc38 sc38: %t122 = load ptr, ptr %t0 %t123 = call i32 @lp_str_eq(ptr %t122, ptr @.str2962) %t124 = icmp ne i32 %t123, 0 %t125 = zext i1 %t124 to i32 store i32 %t125, ptr %t109 br label %scend39 scend39: %t126 = load i32, ptr %t109 %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then40, label %ifend42 then40: store i32 1, ptr %retval br label %ret ifend42: %t131 = load ptr, ptr %t0 %t132 = call i32 @lp_str_eq(ptr %t131, ptr @.str2963) %t133 = icmp ne i32 %t132, 0 %t134 = zext i1 %t133 to i32 store i32 %t134, ptr %t130 br i1 %t133, label %scend44, label %sc43 sc43: %t135 = load ptr, ptr %t0 %t136 = call i32 @lp_str_eq(ptr %t135, ptr @.str2964) %t137 = icmp ne i32 %t136, 0 %t138 = zext i1 %t137 to i32 store i32 %t138, ptr %t130 br label %scend44 scend44: %t139 = load i32, ptr %t130 %t140 = icmp ne i32 %t139, 0 %t141 = zext i1 %t140 to i32 store i32 %t141, ptr %t129 br i1 %t140, label %scend46, label %sc45 sc45: %t142 = load ptr, ptr %t0 %t143 = call i32 @lp_str_eq(ptr %t142, ptr @.str2965) %t144 = icmp ne i32 %t143, 0 %t145 = zext i1 %t144 to i32 store i32 %t145, ptr %t129 br label %scend46 scend46: %t146 = load i32, ptr %t129 %t147 = icmp ne i32 %t146, 0 %t148 = zext i1 %t147 to i32 store i32 %t148, ptr %t128 br i1 %t147, label %scend48, label %sc47 sc47: %t149 = load ptr, ptr %t0 %t150 = call i32 @lp_str_eq(ptr %t149, ptr @.str2966) %t151 = icmp ne i32 %t150, 0 %t152 = zext i1 %t151 to i32 store i32 %t152, ptr %t128 br label %scend48 scend48: %t153 = load i32, ptr %t128 %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then49, label %ifend51 then49: store i32 1, ptr %retval br label %ret ifend51: %t158 = load ptr, ptr %t0 %t159 = call i32 @lp_str_eq(ptr %t158, ptr @.str2967) %t160 = icmp ne i32 %t159, 0 %t161 = zext i1 %t160 to i32 store i32 %t161, ptr %t157 br i1 %t160, label %scend53, label %sc52 sc52: %t162 = load ptr, ptr %t0 %t163 = call i32 @lp_str_eq(ptr %t162, ptr @.str2968) %t164 = icmp ne i32 %t163, 0 %t165 = zext i1 %t164 to i32 store i32 %t165, ptr %t157 br label %scend53 scend53: %t166 = load i32, ptr %t157 %t167 = icmp ne i32 %t166, 0 %t168 = zext i1 %t167 to i32 store i32 %t168, ptr %t156 br i1 %t167, label %scend55, label %sc54 sc54: %t169 = load ptr, ptr %t0 %t170 = call i32 @lp_str_eq(ptr %t169, ptr @.str2969) %t171 = icmp ne i32 %t170, 0 %t172 = zext i1 %t171 to i32 store i32 %t172, ptr %t156 br label %scend55 scend55: %t173 = load i32, ptr %t156 %t174 = icmp ne i32 %t173, 0 %t175 = zext i1 %t174 to i32 store i32 %t175, ptr %t155 br i1 %t174, label %scend57, label %sc56 sc56: %t176 = load ptr, ptr %t0 %t177 = call i32 @lp_str_eq(ptr %t176, ptr @.str2970) %t178 = icmp ne i32 %t177, 0 %t179 = zext i1 %t178 to i32 store i32 %t179, ptr %t155 br label %scend57 scend57: %t180 = load i32, ptr %t155 %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %then58, label %ifend60 then58: store i32 1, ptr %retval br label %ret ifend60: %t183 = load ptr, ptr %t0 %t184 = call i32 @lp_str_eq(ptr %t183, ptr @.str2971) %t185 = icmp ne i32 %t184, 0 %t186 = zext i1 %t185 to i32 store i32 %t186, ptr %t182 br i1 %t185, label %scend62, label %sc61 sc61: %t187 = load ptr, ptr %t0 %t188 = call i32 @lp_str_eq(ptr %t187, ptr @.str2972) %t189 = icmp ne i32 %t188, 0 %t190 = zext i1 %t189 to i32 store i32 %t190, ptr %t182 br label %scend62 scend62: %t191 = load i32, ptr %t182 %t192 = icmp ne i32 %t191, 0 br i1 %t192, label %then63, label %ifend65 then63: store i32 1, ptr %retval br label %ret ifend65: %t195 = load ptr, ptr %t0 %t196 = call i32 @lp_str_eq(ptr %t195, ptr @.str2973) %t197 = icmp ne i32 %t196, 0 %t198 = zext i1 %t197 to i32 store i32 %t198, ptr %t194 br i1 %t197, label %scend67, label %sc66 sc66: %t199 = load ptr, ptr %t0 %t200 = call i32 @lp_str_eq(ptr %t199, ptr @.str2974) %t201 = icmp ne i32 %t200, 0 %t202 = zext i1 %t201 to i32 store i32 %t202, ptr %t194 br label %scend67 scend67: %t203 = load i32, ptr %t194 %t204 = icmp ne i32 %t203, 0 %t205 = zext i1 %t204 to i32 store i32 %t205, ptr %t193 br i1 %t204, label %scend69, label %sc68 sc68: %t206 = load ptr, ptr %t0 %t207 = call i32 @lp_str_eq(ptr %t206, ptr @.str2975) %t208 = icmp ne i32 %t207, 0 %t209 = zext i1 %t208 to i32 store i32 %t209, ptr %t193 br label %scend69 scend69: %t210 = load i32, ptr %t193 %t211 = icmp ne i32 %t210, 0 br i1 %t211, label %then70, label %ifend72 then70: store i32 1, ptr %retval br label %ret ifend72: store i32 0, ptr %retval br label %ret ret: %t212 = load i32, ptr %retval ret i32 %t212 } define ptr @fn_math_fp_route(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t38 = alloca ptr %t42 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp eq i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t1 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 0, %t16 br i1 %t17, label %ixok3, label %ixbad4 ixbad4: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str2976, i32 0, i32 %t16) call void @exit(i32 1) unreachable ixok3: %t19 = getelementptr inbounds ptr, ptr %t14, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 0 %t22 = load i32, ptr %t21 %t23 = icmp eq i32 %t22, 190 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: store ptr null, ptr %retval br label %ret ifend7: %t26 = load ptr, ptr %t1 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 0, %t32 br i1 %t33, label %ixok8, label %ixbad9 ixbad9: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str2977, i32 0, i32 %t32) call void @exit(i32 1) unreachable ixok8: %t35 = getelementptr inbounds ptr, ptr %t30, i32 0 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_emit_expr(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = load ptr, ptr %t1 %t41 = call ptr @fn_fp_math_type(ptr %t39, ptr %t40) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t42 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str2978) %t45 = icmp eq i32 %t44, 0 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then10, label %ifend12 then10: %t48 = load ptr, ptr %t0 %t49 = load ptr, ptr %t42 %t50 = load ptr, ptr %t38 %t51 = load ptr, ptr %t1 %t52 = call ptr @fn_emit_fp_math(ptr %t48, ptr %t49, ptr %t50, ptr %t51) store ptr %t52, ptr %retval br label %ret ifend12: %t53 = load ptr, ptr %t1 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 7 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 1 %t59 = load i32, ptr %t58 %t60 = icmp ult i32 0, %t59 br i1 %t60, label %ixok13, label %ixbad14 ixbad14: %t61 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t61, ptr @.fmt_bounds, ptr @.str2979, i32 0, i32 %t59) call void @exit(i32 1) unreachable ixok13: %t62 = getelementptr inbounds ptr, ptr %t57, i32 0 %t63 = load ptr, ptr %t38 %t64 = call ptr @fn_preval_node(ptr %t63) store ptr %t64, ptr %t62 store ptr null, ptr %retval br label %ret ret: %t65 = load ptr, ptr %retval ret ptr %t65 } define ptr @fn_emit_math_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t24 = alloca ptr %t28 = alloca ptr %t37 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp eq i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = load ptr, ptr %t1 %t12 = call ptr @fn_emit_math_ns_fixed(ptr %t10, ptr %t11) store ptr %t12, ptr %retval br label %ret ifend2: %t13 = load ptr, ptr %t1 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 0, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str2980, i32 0, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 0 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t0 %t26 = load ptr, ptr %t1 %t27 = call ptr @fn_math_fp_route(ptr %t25, ptr %t26) store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = icmp ne ptr %t29, null %t31 = zext i1 %t30 to i32 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t28 store ptr %t33, ptr %retval br label %ret ifend7: %t34 = load ptr, ptr %t0 %t35 = load ptr, ptr %t1 %t36 = call ptr @fn_emit_math_ns_fixed(ptr %t34, ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t1 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 0, %t44 br i1 %t45, label %ixok8, label %ixbad9 ixbad9: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str2981, i32 0, i32 %t44) call void @exit(i32 1) unreachable ixok8: %t47 = getelementptr inbounds ptr, ptr %t42, i32 0 %t48 = load ptr, ptr %t24 store ptr %t48, ptr %t47 %t49 = load ptr, ptr %t37 store ptr %t49, ptr %retval br label %ret ret: %t50 = load ptr, ptr %retval ret ptr %t50 } define ptr @fn_emit_math_ns_fixed(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t47 = alloca ptr %t54 = alloca ptr %t61 = alloca ptr %t66 = alloca ptr %t89 = alloca ptr %t112 = alloca ptr %t119 = alloca ptr %t140 = alloca ptr %t147 = alloca ptr %t168 = alloca ptr %t181 = alloca ptr %t194 = alloca ptr %t221 = alloca ptr %t234 = alloca ptr %t247 = alloca ptr %t274 = alloca ptr %t297 = alloca ptr %t320 = alloca ptr %t327 = alloca ptr %t348 = alloca ptr %t355 = alloca ptr %t362 = alloca ptr %t367 = alloca ptr %t387 = alloca ptr %t400 = alloca ptr %t428 = alloca ptr %t436 = alloca ptr %t440 = alloca ptr %t445 = alloca ptr %t471 = alloca ptr %t479 = alloca ptr %t483 = alloca ptr %t488 = alloca ptr %t514 = alloca ptr %t527 = alloca ptr %t535 = alloca ptr %t543 = alloca ptr %t550 = alloca ptr %t571 = alloca ptr %t584 = alloca ptr %t597 = alloca ptr %t610 = alloca ptr %t621 = alloca ptr %t632 = alloca ptr %t636 = alloca ptr %t640 = alloca ptr %t663 = alloca ptr %t676 = alloca ptr %t689 = alloca ptr %t702 = alloca ptr %t713 = alloca ptr %t724 = alloca ptr %t728 = alloca ptr %t732 = alloca ptr %t739 = alloca ptr %t760 = alloca ptr %t765 = alloca ptr %t786 = alloca ptr %t793 = alloca ptr %t812 = alloca ptr %t825 = alloca ptr %t832 = alloca ptr %t838 = alloca ptr %t859 = alloca ptr %t880 = alloca ptr %t901 = alloca ptr %t914 = alloca ptr %t925 = alloca ptr %t934 = alloca ptr %t959 = alloca ptr %t972 = alloca ptr %t985 = alloca ptr %t996 = alloca ptr %t1007 = alloca ptr %t1014 = alloca ptr %t1021 = alloca ptr %t1028 = alloca ptr %t1053 = alloca ptr %t1066 = alloca ptr %t1073 = alloca ptr %t1082 = alloca ptr %t1089 = alloca ptr %t1096 = alloca ptr %t1105 = alloca ptr %t1109 = alloca ptr %t1114 = alloca ptr %t1124 = alloca ptr %t1149 = alloca ptr %t1162 = alloca ptr %t1170 = alloca ptr %t1175 = alloca ptr %t1180 = alloca ptr %t1205 = alloca ptr %t1218 = alloca ptr %t1231 = alloca ptr %t1242 = alloca ptr %t1246 = alloca ptr %t1251 = alloca ptr %t1261 = alloca ptr %t1266 = alloca ptr %t1271 = alloca ptr %t1276 = alloca ptr %t1283 = alloca ptr %t1292 = alloca ptr %t1301 = alloca ptr %t1310 = alloca ptr %t1338 = alloca ptr %t1351 = alloca ptr %t1364 = alloca ptr %t1375 = alloca ptr %t1380 = alloca ptr %t1387 = alloca ptr %t1392 = alloca ptr %t1399 = alloca ptr %t1404 = alloca ptr %t1408 = alloca ptr %t1412 = alloca ptr %t1429 = alloca ptr %t1442 = alloca ptr %t1455 = alloca ptr %t1468 = alloca ptr %t1481 = alloca ptr %t1492 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t5 = load ptr, ptr %t0 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str2982) %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t4 br i1 %t7, label %scend1, label %sc0 sc0: %t9 = load ptr, ptr %t0 %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str2983) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t4 br label %scend1 scend1: %t13 = load i32, ptr %t4 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t3 br i1 %t14, label %scend3, label %sc2 sc2: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str2984) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t3 br label %scend3 scend3: %t20 = load i32, ptr %t3 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t2 br i1 %t21, label %scend5, label %sc4 sc4: %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str2985) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t2 br label %scend5 scend5: %t27 = load i32, ptr %t2 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: %t29 = load ptr, ptr %t0 %t30 = load ptr, ptr %t1 %t31 = call ptr @fn_emit_math_builtin_fixed(ptr %t29, ptr %t30) store ptr %t31, ptr %retval br label %ret ifend8: %t32 = load ptr, ptr %t0 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str2986) %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then9, label %ifend11 then9: %t35 = load ptr, ptr %t1 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 7 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 0, %t41 br i1 %t42, label %ixok12, label %ixbad13 ixbad13: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str2987, i32 0, i32 %t41) call void @exit(i32 1) unreachable ixok12: %t44 = getelementptr inbounds ptr, ptr %t39, i32 0 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_emit_expr(ptr %t45) store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %Cmp_Val, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = call ptr @lp_str_concat(ptr @.str2988, ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t51, ptr @.str2989) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 %t55 = load ptr, ptr %t47 %t56 = getelementptr inbounds %Cmp_Val, ptr %t55, i32 0, i32 0 %t57 = load ptr, ptr %t56 %t58 = call ptr @lp_str_concat(ptr @.str2990, ptr %t57) %t59 = call ptr @lp_str_concat(ptr %t58, ptr @.str2991) %t60 = call ptr @fn_emit_bind(ptr %t59) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t61 %t63 = call ptr @lp_str_concat(ptr @.str2992, ptr %t62) %t64 = call ptr @lp_str_concat(ptr %t63, ptr @.str2993) %t65 = call ptr @fn_emit_bind(ptr %t64) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t54 %t68 = call ptr @lp_str_concat(ptr @.str2994, ptr %t67) %t69 = call ptr @lp_str_concat(ptr %t68, ptr @.str2995) %t70 = load ptr, ptr %t66 %t71 = call ptr @lp_str_concat(ptr %t69, ptr %t70) %t72 = call ptr @fn_emit_bind(ptr %t71) %t73 = call ptr @fn_val(ptr %t72, ptr @.str2996) store ptr %t73, ptr %retval br label %ret ifend11: %t74 = load ptr, ptr %t0 %t75 = call i32 @lp_str_eq(ptr %t74, ptr @.str2997) %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then14, label %ifend16 then14: %t77 = load ptr, ptr %t1 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 7 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 1 %t83 = load i32, ptr %t82 %t84 = icmp ult i32 0, %t83 br i1 %t84, label %ixok17, label %ixbad18 ixbad18: %t85 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t85, ptr @.fmt_bounds, ptr @.str2998, i32 0, i32 %t83) call void @exit(i32 1) unreachable ixok17: %t86 = getelementptr inbounds ptr, ptr %t81, i32 0 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_emit_expr(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = call ptr @lp_str_concat(ptr @.str2999, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str3000) %t95 = call ptr @fn_emit_bind(ptr %t94) %t96 = call ptr @fn_val(ptr %t95, ptr @.str3001) store ptr %t96, ptr %retval br label %ret ifend16: %t97 = load ptr, ptr %t0 %t98 = call i32 @lp_str_eq(ptr %t97, ptr @.str3002) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then19, label %ifend21 then19: %t100 = load ptr, ptr %t1 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 7 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp ult i32 0, %t106 br i1 %t107, label %ixok22, label %ixbad23 ixbad23: %t108 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t108, ptr @.fmt_bounds, ptr @.str3003, i32 0, i32 %t106) call void @exit(i32 1) unreachable ixok22: %t109 = getelementptr inbounds ptr, ptr %t104, i32 0 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_emit_expr(ptr %t110) store ptr %t111, ptr %t112 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = call ptr @lp_str_concat(ptr @.str3004, ptr %t115) %t117 = call ptr @lp_str_concat(ptr %t116, ptr @.str3005) %t118 = call ptr @fn_emit_bind(ptr %t117) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t119 %t121 = call ptr @lp_str_concat(ptr @.str3006, ptr %t120) %t122 = call ptr @lp_str_concat(ptr %t121, ptr @.str3007) %t123 = call ptr @fn_emit_bind(ptr %t122) %t124 = call ptr @fn_val(ptr %t123, ptr @.str3008) store ptr %t124, ptr %retval br label %ret ifend21: %t125 = load ptr, ptr %t0 %t126 = call i32 @lp_str_eq(ptr %t125, ptr @.str3009) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then24, label %ifend26 then24: %t128 = load ptr, ptr %t1 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 7 %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 %t133 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t134 = load i32, ptr %t133 %t135 = icmp ult i32 0, %t134 br i1 %t135, label %ixok27, label %ixbad28 ixbad28: %t136 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t136, ptr @.fmt_bounds, ptr @.str3010, i32 0, i32 %t134) call void @exit(i32 1) unreachable ixok27: %t137 = getelementptr inbounds ptr, ptr %t132, i32 0 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_emit_expr(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t140 %t142 = getelementptr inbounds %Cmp_Val, ptr %t141, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = call ptr @lp_str_concat(ptr @.str3011, ptr %t143) %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str3012) %t146 = call ptr @fn_emit_bind(ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t147 %t149 = call ptr @lp_str_concat(ptr @.str3013, ptr %t148) %t150 = call ptr @lp_str_concat(ptr %t149, ptr @.str3014) %t151 = call ptr @fn_emit_bind(ptr %t150) %t152 = call ptr @fn_val(ptr %t151, ptr @.str3015) store ptr %t152, ptr %retval br label %ret ifend26: %t153 = load ptr, ptr %t0 %t154 = call i32 @lp_str_eq(ptr %t153, ptr @.str3016) %t155 = icmp ne i32 %t154, 0 br i1 %t155, label %then29, label %ifend31 then29: %t156 = load ptr, ptr %t1 %t157 = getelementptr inbounds %Cmp_Node, ptr %t156, i32 0, i32 7 %t158 = load ptr, ptr %t157 %t159 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 0 %t160 = load ptr, ptr %t159 %t161 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1 %t162 = load i32, ptr %t161 %t163 = icmp ult i32 0, %t162 br i1 %t163, label %ixok32, label %ixbad33 ixbad33: %t164 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t164, ptr @.fmt_bounds, ptr @.str3017, i32 0, i32 %t162) call void @exit(i32 1) unreachable ixok32: %t165 = getelementptr inbounds ptr, ptr %t160, i32 0 %t166 = load ptr, ptr %t165 %t167 = call ptr @fn_emit_expr(ptr %t166) store ptr %t167, ptr %t168 %t169 = load ptr, ptr %t1 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 7 %t171 = load ptr, ptr %t170 %t172 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 1 %t175 = load i32, ptr %t174 %t176 = icmp ult i32 1, %t175 br i1 %t176, label %ixok34, label %ixbad35 ixbad35: %t177 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t177, ptr @.fmt_bounds, ptr @.str3018, i32 1, i32 %t175) call void @exit(i32 1) unreachable ixok34: %t178 = getelementptr inbounds ptr, ptr %t173, i32 1 %t179 = load ptr, ptr %t178 %t180 = call ptr @fn_emit_expr(ptr %t179) store ptr %t180, ptr %t181 %t182 = load ptr, ptr %t1 %t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 7 %t184 = load ptr, ptr %t183 %t185 = getelementptr inbounds %LSlice, ptr %t184, i32 0, i32 0 %t186 = load ptr, ptr %t185 %t187 = getelementptr inbounds %LSlice, ptr %t184, i32 0, i32 1 %t188 = load i32, ptr %t187 %t189 = icmp ult i32 2, %t188 br i1 %t189, label %ixok36, label %ixbad37 ixbad37: %t190 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t190, ptr @.fmt_bounds, ptr @.str3019, i32 2, i32 %t188) call void @exit(i32 1) unreachable ixok36: %t191 = getelementptr inbounds ptr, ptr %t186, i32 2 %t192 = load ptr, ptr %t191 %t193 = call ptr @fn_emit_expr(ptr %t192) store ptr %t193, ptr %t194 %t195 = load ptr, ptr %t168 %t196 = getelementptr inbounds %Cmp_Val, ptr %t195, i32 0, i32 0 %t197 = load ptr, ptr %t196 %t198 = load ptr, ptr %t181 %t199 = getelementptr inbounds %Cmp_Val, ptr %t198, i32 0, i32 0 %t200 = load ptr, ptr %t199 %t201 = load ptr, ptr %t194 %t202 = getelementptr inbounds %Cmp_Val, ptr %t201, i32 0, i32 0 %t203 = load ptr, ptr %t202 %t204 = call ptr @fn_fx_lerp_code(ptr %t197, ptr %t200, ptr %t203) %t205 = call ptr @fn_val(ptr %t204, ptr @.str3020) store ptr %t205, ptr %retval br label %ret ifend31: %t206 = load ptr, ptr %t0 %t207 = call i32 @lp_str_eq(ptr %t206, ptr @.str3021) %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %then38, label %ifend40 then38: %t209 = load ptr, ptr %t1 %t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 7 %t211 = load ptr, ptr %t210 %t212 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 0 %t213 = load ptr, ptr %t212 %t214 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 1 %t215 = load i32, ptr %t214 %t216 = icmp ult i32 0, %t215 br i1 %t216, label %ixok41, label %ixbad42 ixbad42: %t217 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t217, ptr @.fmt_bounds, ptr @.str3022, i32 0, i32 %t215) call void @exit(i32 1) unreachable ixok41: %t218 = getelementptr inbounds ptr, ptr %t213, i32 0 %t219 = load ptr, ptr %t218 %t220 = call ptr @fn_emit_expr(ptr %t219) store ptr %t220, ptr %t221 %t222 = load ptr, ptr %t1 %t223 = getelementptr inbounds %Cmp_Node, ptr %t222, i32 0, i32 7 %t224 = load ptr, ptr %t223 %t225 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 0 %t226 = load ptr, ptr %t225 %t227 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 1 %t228 = load i32, ptr %t227 %t229 = icmp ult i32 1, %t228 br i1 %t229, label %ixok43, label %ixbad44 ixbad44: %t230 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t230, ptr @.fmt_bounds, ptr @.str3023, i32 1, i32 %t228) call void @exit(i32 1) unreachable ixok43: %t231 = getelementptr inbounds ptr, ptr %t226, i32 1 %t232 = load ptr, ptr %t231 %t233 = call ptr @fn_emit_expr(ptr %t232) store ptr %t233, ptr %t234 %t235 = load ptr, ptr %t1 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 7 %t237 = load ptr, ptr %t236 %t238 = getelementptr inbounds %LSlice, ptr %t237, i32 0, i32 0 %t239 = load ptr, ptr %t238 %t240 = getelementptr inbounds %LSlice, ptr %t237, i32 0, i32 1 %t241 = load i32, ptr %t240 %t242 = icmp ult i32 2, %t241 br i1 %t242, label %ixok45, label %ixbad46 ixbad46: %t243 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t243, ptr @.fmt_bounds, ptr @.str3024, i32 2, i32 %t241) call void @exit(i32 1) unreachable ixok45: %t244 = getelementptr inbounds ptr, ptr %t239, i32 2 %t245 = load ptr, ptr %t244 %t246 = call ptr @fn_emit_expr(ptr %t245) store ptr %t246, ptr %t247 %t248 = load ptr, ptr %t221 %t249 = getelementptr inbounds %Cmp_Val, ptr %t248, i32 0, i32 0 %t250 = load ptr, ptr %t249 %t251 = load ptr, ptr %t234 %t252 = getelementptr inbounds %Cmp_Val, ptr %t251, i32 0, i32 0 %t253 = load ptr, ptr %t252 %t254 = load ptr, ptr %t247 %t255 = getelementptr inbounds %Cmp_Val, ptr %t254, i32 0, i32 0 %t256 = load ptr, ptr %t255 %t257 = call ptr @fn_fx_inv_lerp_code(ptr %t250, ptr %t253, ptr %t256) %t258 = call ptr @fn_val(ptr %t257, ptr @.str3025) store ptr %t258, ptr %retval br label %ret ifend40: %t259 = load ptr, ptr %t0 %t260 = call i32 @lp_str_eq(ptr %t259, ptr @.str3026) %t261 = icmp ne i32 %t260, 0 br i1 %t261, label %then47, label %ifend49 then47: store i32 1, ptr @g_g_uses_mathrt %t262 = load ptr, ptr %t1 %t263 = getelementptr inbounds %Cmp_Node, ptr %t262, i32 0, i32 7 %t264 = load ptr, ptr %t263 %t265 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 0 %t266 = load ptr, ptr %t265 %t267 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 1 %t268 = load i32, ptr %t267 %t269 = icmp ult i32 0, %t268 br i1 %t269, label %ixok50, label %ixbad51 ixbad51: %t270 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t270, ptr @.fmt_bounds, ptr @.str3027, i32 0, i32 %t268) call void @exit(i32 1) unreachable ixok50: %t271 = getelementptr inbounds ptr, ptr %t266, i32 0 %t272 = load ptr, ptr %t271 %t273 = call ptr @fn_emit_expr(ptr %t272) store ptr %t273, ptr %t274 %t275 = load ptr, ptr %t274 %t276 = getelementptr inbounds %Cmp_Val, ptr %t275, i32 0, i32 0 %t277 = load ptr, ptr %t276 %t278 = call ptr @lp_str_concat(ptr @.str3028, ptr %t277) %t279 = call ptr @lp_str_concat(ptr %t278, ptr @.str3029) %t280 = call ptr @fn_emit_bind(ptr %t279) %t281 = call ptr @fn_val(ptr %t280, ptr @.str3030) store ptr %t281, ptr %retval br label %ret ifend49: %t282 = load ptr, ptr %t0 %t283 = call i32 @lp_str_eq(ptr %t282, ptr @.str3031) %t284 = icmp ne i32 %t283, 0 br i1 %t284, label %then52, label %ifend54 then52: store i32 1, ptr @g_g_uses_mathrt %t285 = load ptr, ptr %t1 %t286 = getelementptr inbounds %Cmp_Node, ptr %t285, i32 0, i32 7 %t287 = load ptr, ptr %t286 %t288 = getelementptr inbounds %LSlice, ptr %t287, i32 0, i32 0 %t289 = load ptr, ptr %t288 %t290 = getelementptr inbounds %LSlice, ptr %t287, i32 0, i32 1 %t291 = load i32, ptr %t290 %t292 = icmp ult i32 0, %t291 br i1 %t292, label %ixok55, label %ixbad56 ixbad56: %t293 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t293, ptr @.fmt_bounds, ptr @.str3032, i32 0, i32 %t291) call void @exit(i32 1) unreachable ixok55: %t294 = getelementptr inbounds ptr, ptr %t289, i32 0 %t295 = load ptr, ptr %t294 %t296 = call ptr @fn_emit_expr(ptr %t295) store ptr %t296, ptr %t297 %t298 = load ptr, ptr %t297 %t299 = getelementptr inbounds %Cmp_Val, ptr %t298, i32 0, i32 0 %t300 = load ptr, ptr %t299 %t301 = call ptr @lp_str_concat(ptr @.str3033, ptr %t300) %t302 = call ptr @lp_str_concat(ptr %t301, ptr @.str3034) %t303 = call ptr @fn_emit_bind(ptr %t302) %t304 = call ptr @fn_val(ptr %t303, ptr @.str3035) store ptr %t304, ptr %retval br label %ret ifend54: %t305 = load ptr, ptr %t0 %t306 = call i32 @lp_str_eq(ptr %t305, ptr @.str3036) %t307 = icmp ne i32 %t306, 0 br i1 %t307, label %then57, label %ifend59 then57: store i32 1, ptr @g_g_uses_mathrt %t308 = load ptr, ptr %t1 %t309 = getelementptr inbounds %Cmp_Node, ptr %t308, i32 0, i32 7 %t310 = load ptr, ptr %t309 %t311 = getelementptr inbounds %LSlice, ptr %t310, i32 0, i32 0 %t312 = load ptr, ptr %t311 %t313 = getelementptr inbounds %LSlice, ptr %t310, i32 0, i32 1 %t314 = load i32, ptr %t313 %t315 = icmp ult i32 0, %t314 br i1 %t315, label %ixok60, label %ixbad61 ixbad61: %t316 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t316, ptr @.fmt_bounds, ptr @.str3037, i32 0, i32 %t314) call void @exit(i32 1) unreachable ixok60: %t317 = getelementptr inbounds ptr, ptr %t312, i32 0 %t318 = load ptr, ptr %t317 %t319 = call ptr @fn_emit_expr(ptr %t318) store ptr %t319, ptr %t320 %t321 = load ptr, ptr %t320 %t322 = getelementptr inbounds %Cmp_Val, ptr %t321, i32 0, i32 0 %t323 = load ptr, ptr %t322 %t324 = call ptr @lp_str_concat(ptr @.str3038, ptr %t323) %t325 = call ptr @lp_str_concat(ptr %t324, ptr @.str3039) %t326 = call ptr @fn_emit_bind(ptr %t325) store ptr %t326, ptr %t327 %t328 = load ptr, ptr %t327 %t329 = call ptr @lp_str_concat(ptr @.str3040, ptr %t328) %t330 = call ptr @lp_str_concat(ptr %t329, ptr @.str3041) %t331 = call ptr @fn_emit_bind(ptr %t330) %t332 = call ptr @fn_val(ptr %t331, ptr @.str3042) store ptr %t332, ptr %retval br label %ret ifend59: %t333 = load ptr, ptr %t0 %t334 = call i32 @lp_str_eq(ptr %t333, ptr @.str3043) %t335 = icmp ne i32 %t334, 0 br i1 %t335, label %then62, label %ifend64 then62: store i32 1, ptr @g_g_uses_mathrt %t336 = load ptr, ptr %t1 %t337 = getelementptr inbounds %Cmp_Node, ptr %t336, i32 0, i32 7 %t338 = load ptr, ptr %t337 %t339 = getelementptr inbounds %LSlice, ptr %t338, i32 0, i32 0 %t340 = load ptr, ptr %t339 %t341 = getelementptr inbounds %LSlice, ptr %t338, i32 0, i32 1 %t342 = load i32, ptr %t341 %t343 = icmp ult i32 0, %t342 br i1 %t343, label %ixok65, label %ixbad66 ixbad66: %t344 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t344, ptr @.fmt_bounds, ptr @.str3044, i32 0, i32 %t342) call void @exit(i32 1) unreachable ixok65: %t345 = getelementptr inbounds ptr, ptr %t340, i32 0 %t346 = load ptr, ptr %t345 %t347 = call ptr @fn_emit_expr(ptr %t346) store ptr %t347, ptr %t348 %t349 = load ptr, ptr %t348 %t350 = getelementptr inbounds %Cmp_Val, ptr %t349, i32 0, i32 0 %t351 = load ptr, ptr %t350 %t352 = call ptr @lp_str_concat(ptr @.str3045, ptr %t351) %t353 = call ptr @lp_str_concat(ptr %t352, ptr @.str3046) %t354 = call ptr @fn_emit_bind(ptr %t353) store ptr %t354, ptr %t355 %t356 = load ptr, ptr %t348 %t357 = getelementptr inbounds %Cmp_Val, ptr %t356, i32 0, i32 0 %t358 = load ptr, ptr %t357 %t359 = call ptr @lp_str_concat(ptr @.str3047, ptr %t358) %t360 = call ptr @lp_str_concat(ptr %t359, ptr @.str3048) %t361 = call ptr @fn_emit_bind(ptr %t360) store ptr %t361, ptr %t362 %t363 = load ptr, ptr %t362 %t364 = call ptr @lp_str_concat(ptr @.str3049, ptr %t363) %t365 = call ptr @lp_str_concat(ptr %t364, ptr @.str3050) %t366 = call ptr @fn_emit_bind(ptr %t365) store ptr %t366, ptr %t367 %t368 = load ptr, ptr %t355 %t369 = load ptr, ptr %t367 %t370 = call ptr @fn_fx_div_code(ptr %t368, ptr %t369) %t371 = call ptr @fn_val(ptr %t370, ptr @.str3051) store ptr %t371, ptr %retval br label %ret ifend64: %t372 = load ptr, ptr %t0 %t373 = call i32 @lp_str_eq(ptr %t372, ptr @.str3052) %t374 = icmp ne i32 %t373, 0 br i1 %t374, label %then67, label %ifend69 then67: store i32 1, ptr @g_g_uses_mathrt %t375 = load ptr, ptr %t1 %t376 = getelementptr inbounds %Cmp_Node, ptr %t375, i32 0, i32 7 %t377 = load ptr, ptr %t376 %t378 = getelementptr inbounds %LSlice, ptr %t377, i32 0, i32 0 %t379 = load ptr, ptr %t378 %t380 = getelementptr inbounds %LSlice, ptr %t377, i32 0, i32 1 %t381 = load i32, ptr %t380 %t382 = icmp ult i32 0, %t381 br i1 %t382, label %ixok70, label %ixbad71 ixbad71: %t383 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t383, ptr @.fmt_bounds, ptr @.str3053, i32 0, i32 %t381) call void @exit(i32 1) unreachable ixok70: %t384 = getelementptr inbounds ptr, ptr %t379, i32 0 %t385 = load ptr, ptr %t384 %t386 = call ptr @fn_emit_expr(ptr %t385) store ptr %t386, ptr %t387 %t388 = load ptr, ptr %t1 %t389 = getelementptr inbounds %Cmp_Node, ptr %t388, i32 0, i32 7 %t390 = load ptr, ptr %t389 %t391 = getelementptr inbounds %LSlice, ptr %t390, i32 0, i32 0 %t392 = load ptr, ptr %t391 %t393 = getelementptr inbounds %LSlice, ptr %t390, i32 0, i32 1 %t394 = load i32, ptr %t393 %t395 = icmp ult i32 1, %t394 br i1 %t395, label %ixok72, label %ixbad73 ixbad73: %t396 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t396, ptr @.fmt_bounds, ptr @.str3054, i32 1, i32 %t394) call void @exit(i32 1) unreachable ixok72: %t397 = getelementptr inbounds ptr, ptr %t392, i32 1 %t398 = load ptr, ptr %t397 %t399 = call ptr @fn_emit_expr(ptr %t398) store ptr %t399, ptr %t400 %t401 = load ptr, ptr %t387 %t402 = getelementptr inbounds %Cmp_Val, ptr %t401, i32 0, i32 0 %t403 = load ptr, ptr %t402 %t404 = call ptr @lp_str_concat(ptr @.str3055, ptr %t403) %t405 = call ptr @lp_str_concat(ptr %t404, ptr @.str3056) %t406 = load ptr, ptr %t400 %t407 = getelementptr inbounds %Cmp_Val, ptr %t406, i32 0, i32 0 %t408 = load ptr, ptr %t407 %t409 = call ptr @lp_str_concat(ptr %t405, ptr %t408) %t410 = call ptr @lp_str_concat(ptr %t409, ptr @.str3057) %t411 = call ptr @fn_emit_bind(ptr %t410) %t412 = call ptr @fn_val(ptr %t411, ptr @.str3058) store ptr %t412, ptr %retval br label %ret ifend69: %t413 = load ptr, ptr %t0 %t414 = call i32 @lp_str_eq(ptr %t413, ptr @.str3059) %t415 = icmp ne i32 %t414, 0 br i1 %t415, label %then74, label %ifend76 then74: store i32 1, ptr @g_g_uses_mathrt %t416 = load ptr, ptr %t1 %t417 = getelementptr inbounds %Cmp_Node, ptr %t416, i32 0, i32 7 %t418 = load ptr, ptr %t417 %t419 = getelementptr inbounds %LSlice, ptr %t418, i32 0, i32 0 %t420 = load ptr, ptr %t419 %t421 = getelementptr inbounds %LSlice, ptr %t418, i32 0, i32 1 %t422 = load i32, ptr %t421 %t423 = icmp ult i32 0, %t422 br i1 %t423, label %ixok77, label %ixbad78 ixbad78: %t424 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t424, ptr @.fmt_bounds, ptr @.str3060, i32 0, i32 %t422) call void @exit(i32 1) unreachable ixok77: %t425 = getelementptr inbounds ptr, ptr %t420, i32 0 %t426 = load ptr, ptr %t425 %t427 = call ptr @fn_emit_expr(ptr %t426) store ptr %t427, ptr %t428 %t429 = load ptr, ptr %t428 %t430 = getelementptr inbounds %Cmp_Val, ptr %t429, i32 0, i32 0 %t431 = load ptr, ptr %t430 %t432 = load ptr, ptr %t428 %t433 = getelementptr inbounds %Cmp_Val, ptr %t432, i32 0, i32 0 %t434 = load ptr, ptr %t433 %t435 = call ptr @fn_fx_mul_code(ptr %t431, ptr %t434) store ptr %t435, ptr %t436 %t437 = load ptr, ptr %t436 %t438 = call ptr @lp_str_concat(ptr @.str3061, ptr %t437) %t439 = call ptr @fn_emit_bind(ptr %t438) store ptr %t439, ptr %t440 %t441 = load ptr, ptr %t440 %t442 = call ptr @lp_str_concat(ptr @.str3062, ptr %t441) %t443 = call ptr @lp_str_concat(ptr %t442, ptr @.str3063) %t444 = call ptr @fn_emit_bind(ptr %t443) store ptr %t444, ptr %t445 %t446 = load ptr, ptr %t428 %t447 = getelementptr inbounds %Cmp_Val, ptr %t446, i32 0, i32 0 %t448 = load ptr, ptr %t447 %t449 = call ptr @lp_str_concat(ptr @.str3064, ptr %t448) %t450 = call ptr @lp_str_concat(ptr %t449, ptr @.str3065) %t451 = load ptr, ptr %t445 %t452 = call ptr @lp_str_concat(ptr %t450, ptr %t451) %t453 = call ptr @lp_str_concat(ptr %t452, ptr @.str3066) %t454 = call ptr @fn_emit_bind(ptr %t453) %t455 = call ptr @fn_val(ptr %t454, ptr @.str3067) store ptr %t455, ptr %retval br label %ret ifend76: %t456 = load ptr, ptr %t0 %t457 = call i32 @lp_str_eq(ptr %t456, ptr @.str3068) %t458 = icmp ne i32 %t457, 0 br i1 %t458, label %then79, label %ifend81 then79: store i32 1, ptr @g_g_uses_mathrt %t459 = load ptr, ptr %t1 %t460 = getelementptr inbounds %Cmp_Node, ptr %t459, i32 0, i32 7 %t461 = load ptr, ptr %t460 %t462 = getelementptr inbounds %LSlice, ptr %t461, i32 0, i32 0 %t463 = load ptr, ptr %t462 %t464 = getelementptr inbounds %LSlice, ptr %t461, i32 0, i32 1 %t465 = load i32, ptr %t464 %t466 = icmp ult i32 0, %t465 br i1 %t466, label %ixok82, label %ixbad83 ixbad83: %t467 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t467, ptr @.fmt_bounds, ptr @.str3069, i32 0, i32 %t465) call void @exit(i32 1) unreachable ixok82: %t468 = getelementptr inbounds ptr, ptr %t463, i32 0 %t469 = load ptr, ptr %t468 %t470 = call ptr @fn_emit_expr(ptr %t469) store ptr %t470, ptr %t471 %t472 = load ptr, ptr %t471 %t473 = getelementptr inbounds %Cmp_Val, ptr %t472, i32 0, i32 0 %t474 = load ptr, ptr %t473 %t475 = load ptr, ptr %t471 %t476 = getelementptr inbounds %Cmp_Val, ptr %t475, i32 0, i32 0 %t477 = load ptr, ptr %t476 %t478 = call ptr @fn_fx_mul_code(ptr %t474, ptr %t477) store ptr %t478, ptr %t479 %t480 = load ptr, ptr %t479 %t481 = call ptr @lp_str_concat(ptr @.str3070, ptr %t480) %t482 = call ptr @fn_emit_bind(ptr %t481) store ptr %t482, ptr %t483 %t484 = load ptr, ptr %t483 %t485 = call ptr @lp_str_concat(ptr @.str3071, ptr %t484) %t486 = call ptr @lp_str_concat(ptr %t485, ptr @.str3072) %t487 = call ptr @fn_emit_bind(ptr %t486) store ptr %t487, ptr %t488 %t489 = load ptr, ptr %t488 %t490 = call ptr @lp_str_concat(ptr @.str3073, ptr %t489) %t491 = call ptr @lp_str_concat(ptr %t490, ptr @.str3074) %t492 = load ptr, ptr %t471 %t493 = getelementptr inbounds %Cmp_Val, ptr %t492, i32 0, i32 0 %t494 = load ptr, ptr %t493 %t495 = call ptr @lp_str_concat(ptr %t491, ptr %t494) %t496 = call ptr @lp_str_concat(ptr %t495, ptr @.str3075) %t497 = call ptr @fn_emit_bind(ptr %t496) %t498 = call ptr @fn_val(ptr %t497, ptr @.str3076) store ptr %t498, ptr %retval br label %ret ifend81: %t499 = load ptr, ptr %t0 %t500 = call i32 @lp_str_eq(ptr %t499, ptr @.str3077) %t501 = icmp ne i32 %t500, 0 br i1 %t501, label %then84, label %ifend86 then84: store i32 1, ptr @g_g_uses_mathrt %t502 = load ptr, ptr %t1 %t503 = getelementptr inbounds %Cmp_Node, ptr %t502, i32 0, i32 7 %t504 = load ptr, ptr %t503 %t505 = getelementptr inbounds %LSlice, ptr %t504, i32 0, i32 0 %t506 = load ptr, ptr %t505 %t507 = getelementptr inbounds %LSlice, ptr %t504, i32 0, i32 1 %t508 = load i32, ptr %t507 %t509 = icmp ult i32 0, %t508 br i1 %t509, label %ixok87, label %ixbad88 ixbad88: %t510 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t510, ptr @.fmt_bounds, ptr @.str3078, i32 0, i32 %t508) call void @exit(i32 1) unreachable ixok87: %t511 = getelementptr inbounds ptr, ptr %t506, i32 0 %t512 = load ptr, ptr %t511 %t513 = call ptr @fn_emit_expr(ptr %t512) store ptr %t513, ptr %t514 %t515 = load ptr, ptr %t1 %t516 = getelementptr inbounds %Cmp_Node, ptr %t515, i32 0, i32 7 %t517 = load ptr, ptr %t516 %t518 = getelementptr inbounds %LSlice, ptr %t517, i32 0, i32 0 %t519 = load ptr, ptr %t518 %t520 = getelementptr inbounds %LSlice, ptr %t517, i32 0, i32 1 %t521 = load i32, ptr %t520 %t522 = icmp ult i32 1, %t521 br i1 %t522, label %ixok89, label %ixbad90 ixbad90: %t523 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t523, ptr @.fmt_bounds, ptr @.str3079, i32 1, i32 %t521) call void @exit(i32 1) unreachable ixok89: %t524 = getelementptr inbounds ptr, ptr %t519, i32 1 %t525 = load ptr, ptr %t524 %t526 = call ptr @fn_emit_expr(ptr %t525) store ptr %t526, ptr %t527 %t528 = load ptr, ptr %t514 %t529 = getelementptr inbounds %Cmp_Val, ptr %t528, i32 0, i32 0 %t530 = load ptr, ptr %t529 %t531 = load ptr, ptr %t514 %t532 = getelementptr inbounds %Cmp_Val, ptr %t531, i32 0, i32 0 %t533 = load ptr, ptr %t532 %t534 = call ptr @fn_fx_mul_code(ptr %t530, ptr %t533) store ptr %t534, ptr %t535 %t536 = load ptr, ptr %t527 %t537 = getelementptr inbounds %Cmp_Val, ptr %t536, i32 0, i32 0 %t538 = load ptr, ptr %t537 %t539 = load ptr, ptr %t527 %t540 = getelementptr inbounds %Cmp_Val, ptr %t539, i32 0, i32 0 %t541 = load ptr, ptr %t540 %t542 = call ptr @fn_fx_mul_code(ptr %t538, ptr %t541) store ptr %t542, ptr %t543 %t544 = load ptr, ptr %t535 %t545 = call ptr @lp_str_concat(ptr @.str3080, ptr %t544) %t546 = call ptr @lp_str_concat(ptr %t545, ptr @.str3081) %t547 = load ptr, ptr %t543 %t548 = call ptr @lp_str_concat(ptr %t546, ptr %t547) %t549 = call ptr @fn_emit_bind(ptr %t548) store ptr %t549, ptr %t550 %t551 = load ptr, ptr %t550 %t552 = call ptr @lp_str_concat(ptr @.str3082, ptr %t551) %t553 = call ptr @lp_str_concat(ptr %t552, ptr @.str3083) %t554 = call ptr @fn_emit_bind(ptr %t553) %t555 = call ptr @fn_val(ptr %t554, ptr @.str3084) store ptr %t555, ptr %retval br label %ret ifend86: %t556 = load ptr, ptr %t0 %t557 = call i32 @lp_str_eq(ptr %t556, ptr @.str3085) %t558 = icmp ne i32 %t557, 0 br i1 %t558, label %then91, label %ifend93 then91: %t559 = load ptr, ptr %t1 %t560 = getelementptr inbounds %Cmp_Node, ptr %t559, i32 0, i32 7 %t561 = load ptr, ptr %t560 %t562 = getelementptr inbounds %LSlice, ptr %t561, i32 0, i32 0 %t563 = load ptr, ptr %t562 %t564 = getelementptr inbounds %LSlice, ptr %t561, i32 0, i32 1 %t565 = load i32, ptr %t564 %t566 = icmp ult i32 0, %t565 br i1 %t566, label %ixok94, label %ixbad95 ixbad95: %t567 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t567, ptr @.fmt_bounds, ptr @.str3086, i32 0, i32 %t565) call void @exit(i32 1) unreachable ixok94: %t568 = getelementptr inbounds ptr, ptr %t563, i32 0 %t569 = load ptr, ptr %t568 %t570 = call ptr @fn_emit_expr(ptr %t569) store ptr %t570, ptr %t571 %t572 = load ptr, ptr %t1 %t573 = getelementptr inbounds %Cmp_Node, ptr %t572, i32 0, i32 7 %t574 = load ptr, ptr %t573 %t575 = getelementptr inbounds %LSlice, ptr %t574, i32 0, i32 0 %t576 = load ptr, ptr %t575 %t577 = getelementptr inbounds %LSlice, ptr %t574, i32 0, i32 1 %t578 = load i32, ptr %t577 %t579 = icmp ult i32 1, %t578 br i1 %t579, label %ixok96, label %ixbad97 ixbad97: %t580 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t580, ptr @.fmt_bounds, ptr @.str3087, i32 1, i32 %t578) call void @exit(i32 1) unreachable ixok96: %t581 = getelementptr inbounds ptr, ptr %t576, i32 1 %t582 = load ptr, ptr %t581 %t583 = call ptr @fn_emit_expr(ptr %t582) store ptr %t583, ptr %t584 %t585 = load ptr, ptr %t1 %t586 = getelementptr inbounds %Cmp_Node, ptr %t585, i32 0, i32 7 %t587 = load ptr, ptr %t586 %t588 = getelementptr inbounds %LSlice, ptr %t587, i32 0, i32 0 %t589 = load ptr, ptr %t588 %t590 = getelementptr inbounds %LSlice, ptr %t587, i32 0, i32 1 %t591 = load i32, ptr %t590 %t592 = icmp ult i32 2, %t591 br i1 %t592, label %ixok98, label %ixbad99 ixbad99: %t593 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t593, ptr @.fmt_bounds, ptr @.str3088, i32 2, i32 %t591) call void @exit(i32 1) unreachable ixok98: %t594 = getelementptr inbounds ptr, ptr %t589, i32 2 %t595 = load ptr, ptr %t594 %t596 = call ptr @fn_emit_expr(ptr %t595) store ptr %t596, ptr %t597 %t598 = load ptr, ptr %t1 %t599 = getelementptr inbounds %Cmp_Node, ptr %t598, i32 0, i32 7 %t600 = load ptr, ptr %t599 %t601 = getelementptr inbounds %LSlice, ptr %t600, i32 0, i32 0 %t602 = load ptr, ptr %t601 %t603 = getelementptr inbounds %LSlice, ptr %t600, i32 0, i32 1 %t604 = load i32, ptr %t603 %t605 = icmp ult i32 3, %t604 br i1 %t605, label %ixok100, label %ixbad101 ixbad101: %t606 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t606, ptr @.fmt_bounds, ptr @.str3089, i32 3, i32 %t604) call void @exit(i32 1) unreachable ixok100: %t607 = getelementptr inbounds ptr, ptr %t602, i32 3 %t608 = load ptr, ptr %t607 %t609 = call ptr @fn_emit_expr(ptr %t608) store ptr %t609, ptr %t610 %t611 = load ptr, ptr %t597 %t612 = getelementptr inbounds %Cmp_Val, ptr %t611, i32 0, i32 0 %t613 = load ptr, ptr %t612 %t614 = call ptr @lp_str_concat(ptr @.str3090, ptr %t613) %t615 = call ptr @lp_str_concat(ptr %t614, ptr @.str3091) %t616 = load ptr, ptr %t571 %t617 = getelementptr inbounds %Cmp_Val, ptr %t616, i32 0, i32 0 %t618 = load ptr, ptr %t617 %t619 = call ptr @lp_str_concat(ptr %t615, ptr %t618) %t620 = call ptr @fn_emit_bind(ptr %t619) store ptr %t620, ptr %t621 %t622 = load ptr, ptr %t610 %t623 = getelementptr inbounds %Cmp_Val, ptr %t622, i32 0, i32 0 %t624 = load ptr, ptr %t623 %t625 = call ptr @lp_str_concat(ptr @.str3092, ptr %t624) %t626 = call ptr @lp_str_concat(ptr %t625, ptr @.str3093) %t627 = load ptr, ptr %t584 %t628 = getelementptr inbounds %Cmp_Val, ptr %t627, i32 0, i32 0 %t629 = load ptr, ptr %t628 %t630 = call ptr @lp_str_concat(ptr %t626, ptr %t629) %t631 = call ptr @fn_emit_bind(ptr %t630) store ptr %t631, ptr %t632 %t633 = load ptr, ptr %t621 %t634 = load ptr, ptr %t621 %t635 = call ptr @fn_fx_mul_code(ptr %t633, ptr %t634) store ptr %t635, ptr %t636 %t637 = load ptr, ptr %t632 %t638 = load ptr, ptr %t632 %t639 = call ptr @fn_fx_mul_code(ptr %t637, ptr %t638) store ptr %t639, ptr %t640 %t641 = load ptr, ptr %t636 %t642 = call ptr @lp_str_concat(ptr @.str3094, ptr %t641) %t643 = call ptr @lp_str_concat(ptr %t642, ptr @.str3095) %t644 = load ptr, ptr %t640 %t645 = call ptr @lp_str_concat(ptr %t643, ptr %t644) %t646 = call ptr @fn_emit_bind(ptr %t645) %t647 = call ptr @fn_val(ptr %t646, ptr @.str3096) store ptr %t647, ptr %retval br label %ret ifend93: %t648 = load ptr, ptr %t0 %t649 = call i32 @lp_str_eq(ptr %t648, ptr @.str3097) %t650 = icmp ne i32 %t649, 0 br i1 %t650, label %then102, label %ifend104 then102: store i32 1, ptr @g_g_uses_mathrt %t651 = load ptr, ptr %t1 %t652 = getelementptr inbounds %Cmp_Node, ptr %t651, i32 0, i32 7 %t653 = load ptr, ptr %t652 %t654 = getelementptr inbounds %LSlice, ptr %t653, i32 0, i32 0 %t655 = load ptr, ptr %t654 %t656 = getelementptr inbounds %LSlice, ptr %t653, i32 0, i32 1 %t657 = load i32, ptr %t656 %t658 = icmp ult i32 0, %t657 br i1 %t658, label %ixok105, label %ixbad106 ixbad106: %t659 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t659, ptr @.fmt_bounds, ptr @.str3098, i32 0, i32 %t657) call void @exit(i32 1) unreachable ixok105: %t660 = getelementptr inbounds ptr, ptr %t655, i32 0 %t661 = load ptr, ptr %t660 %t662 = call ptr @fn_emit_expr(ptr %t661) store ptr %t662, ptr %t663 %t664 = load ptr, ptr %t1 %t665 = getelementptr inbounds %Cmp_Node, ptr %t664, i32 0, i32 7 %t666 = load ptr, ptr %t665 %t667 = getelementptr inbounds %LSlice, ptr %t666, i32 0, i32 0 %t668 = load ptr, ptr %t667 %t669 = getelementptr inbounds %LSlice, ptr %t666, i32 0, i32 1 %t670 = load i32, ptr %t669 %t671 = icmp ult i32 1, %t670 br i1 %t671, label %ixok107, label %ixbad108 ixbad108: %t672 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t672, ptr @.fmt_bounds, ptr @.str3099, i32 1, i32 %t670) call void @exit(i32 1) unreachable ixok107: %t673 = getelementptr inbounds ptr, ptr %t668, i32 1 %t674 = load ptr, ptr %t673 %t675 = call ptr @fn_emit_expr(ptr %t674) store ptr %t675, ptr %t676 %t677 = load ptr, ptr %t1 %t678 = getelementptr inbounds %Cmp_Node, ptr %t677, i32 0, i32 7 %t679 = load ptr, ptr %t678 %t680 = getelementptr inbounds %LSlice, ptr %t679, i32 0, i32 0 %t681 = load ptr, ptr %t680 %t682 = getelementptr inbounds %LSlice, ptr %t679, i32 0, i32 1 %t683 = load i32, ptr %t682 %t684 = icmp ult i32 2, %t683 br i1 %t684, label %ixok109, label %ixbad110 ixbad110: %t685 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t685, ptr @.fmt_bounds, ptr @.str3100, i32 2, i32 %t683) call void @exit(i32 1) unreachable ixok109: %t686 = getelementptr inbounds ptr, ptr %t681, i32 2 %t687 = load ptr, ptr %t686 %t688 = call ptr @fn_emit_expr(ptr %t687) store ptr %t688, ptr %t689 %t690 = load ptr, ptr %t1 %t691 = getelementptr inbounds %Cmp_Node, ptr %t690, i32 0, i32 7 %t692 = load ptr, ptr %t691 %t693 = getelementptr inbounds %LSlice, ptr %t692, i32 0, i32 0 %t694 = load ptr, ptr %t693 %t695 = getelementptr inbounds %LSlice, ptr %t692, i32 0, i32 1 %t696 = load i32, ptr %t695 %t697 = icmp ult i32 3, %t696 br i1 %t697, label %ixok111, label %ixbad112 ixbad112: %t698 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t698, ptr @.fmt_bounds, ptr @.str3101, i32 3, i32 %t696) call void @exit(i32 1) unreachable ixok111: %t699 = getelementptr inbounds ptr, ptr %t694, i32 3 %t700 = load ptr, ptr %t699 %t701 = call ptr @fn_emit_expr(ptr %t700) store ptr %t701, ptr %t702 %t703 = load ptr, ptr %t689 %t704 = getelementptr inbounds %Cmp_Val, ptr %t703, i32 0, i32 0 %t705 = load ptr, ptr %t704 %t706 = call ptr @lp_str_concat(ptr @.str3102, ptr %t705) %t707 = call ptr @lp_str_concat(ptr %t706, ptr @.str3103) %t708 = load ptr, ptr %t663 %t709 = getelementptr inbounds %Cmp_Val, ptr %t708, i32 0, i32 0 %t710 = load ptr, ptr %t709 %t711 = call ptr @lp_str_concat(ptr %t707, ptr %t710) %t712 = call ptr @fn_emit_bind(ptr %t711) store ptr %t712, ptr %t713 %t714 = load ptr, ptr %t702 %t715 = getelementptr inbounds %Cmp_Val, ptr %t714, i32 0, i32 0 %t716 = load ptr, ptr %t715 %t717 = call ptr @lp_str_concat(ptr @.str3104, ptr %t716) %t718 = call ptr @lp_str_concat(ptr %t717, ptr @.str3105) %t719 = load ptr, ptr %t676 %t720 = getelementptr inbounds %Cmp_Val, ptr %t719, i32 0, i32 0 %t721 = load ptr, ptr %t720 %t722 = call ptr @lp_str_concat(ptr %t718, ptr %t721) %t723 = call ptr @fn_emit_bind(ptr %t722) store ptr %t723, ptr %t724 %t725 = load ptr, ptr %t713 %t726 = load ptr, ptr %t713 %t727 = call ptr @fn_fx_mul_code(ptr %t725, ptr %t726) store ptr %t727, ptr %t728 %t729 = load ptr, ptr %t724 %t730 = load ptr, ptr %t724 %t731 = call ptr @fn_fx_mul_code(ptr %t729, ptr %t730) store ptr %t731, ptr %t732 %t733 = load ptr, ptr %t728 %t734 = call ptr @lp_str_concat(ptr @.str3106, ptr %t733) %t735 = call ptr @lp_str_concat(ptr %t734, ptr @.str3107) %t736 = load ptr, ptr %t732 %t737 = call ptr @lp_str_concat(ptr %t735, ptr %t736) %t738 = call ptr @fn_emit_bind(ptr %t737) store ptr %t738, ptr %t739 %t740 = load ptr, ptr %t739 %t741 = call ptr @lp_str_concat(ptr @.str3108, ptr %t740) %t742 = call ptr @lp_str_concat(ptr %t741, ptr @.str3109) %t743 = call ptr @fn_emit_bind(ptr %t742) %t744 = call ptr @fn_val(ptr %t743, ptr @.str3110) store ptr %t744, ptr %retval br label %ret ifend104: %t745 = load ptr, ptr %t0 %t746 = call i32 @lp_str_eq(ptr %t745, ptr @.str3111) %t747 = icmp ne i32 %t746, 0 br i1 %t747, label %then113, label %ifend115 then113: store i32 1, ptr @g_g_uses_mathrt %t748 = load ptr, ptr %t1 %t749 = getelementptr inbounds %Cmp_Node, ptr %t748, i32 0, i32 7 %t750 = load ptr, ptr %t749 %t751 = getelementptr inbounds %LSlice, ptr %t750, i32 0, i32 0 %t752 = load ptr, ptr %t751 %t753 = getelementptr inbounds %LSlice, ptr %t750, i32 0, i32 1 %t754 = load i32, ptr %t753 %t755 = icmp ult i32 0, %t754 br i1 %t755, label %ixok116, label %ixbad117 ixbad117: %t756 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t756, ptr @.fmt_bounds, ptr @.str3112, i32 0, i32 %t754) call void @exit(i32 1) unreachable ixok116: %t757 = getelementptr inbounds ptr, ptr %t752, i32 0 %t758 = load ptr, ptr %t757 %t759 = call ptr @fn_emit_expr(ptr %t758) store ptr %t759, ptr %t760 %t761 = load ptr, ptr %t760 %t762 = getelementptr inbounds %Cmp_Val, ptr %t761, i32 0, i32 0 %t763 = load ptr, ptr %t762 %t764 = call ptr @fn_fx_mul_code(ptr %t763, ptr @.str3113) store ptr %t764, ptr %t765 %t766 = load ptr, ptr %t765 %t767 = call ptr @lp_str_concat(ptr @.str3114, ptr %t766) %t768 = call ptr @lp_str_concat(ptr %t767, ptr @.str3115) %t769 = call ptr @fn_emit_bind(ptr %t768) %t770 = call ptr @fn_val(ptr %t769, ptr @.str3116) store ptr %t770, ptr %retval br label %ret ifend115: %t771 = load ptr, ptr %t0 %t772 = call i32 @lp_str_eq(ptr %t771, ptr @.str3117) %t773 = icmp ne i32 %t772, 0 br i1 %t773, label %then118, label %ifend120 then118: store i32 1, ptr @g_g_uses_mathrt %t774 = load ptr, ptr %t1 %t775 = getelementptr inbounds %Cmp_Node, ptr %t774, i32 0, i32 7 %t776 = load ptr, ptr %t775 %t777 = getelementptr inbounds %LSlice, ptr %t776, i32 0, i32 0 %t778 = load ptr, ptr %t777 %t779 = getelementptr inbounds %LSlice, ptr %t776, i32 0, i32 1 %t780 = load i32, ptr %t779 %t781 = icmp ult i32 0, %t780 br i1 %t781, label %ixok121, label %ixbad122 ixbad122: %t782 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t782, ptr @.fmt_bounds, ptr @.str3118, i32 0, i32 %t780) call void @exit(i32 1) unreachable ixok121: %t783 = getelementptr inbounds ptr, ptr %t778, i32 0 %t784 = load ptr, ptr %t783 %t785 = call ptr @fn_emit_expr(ptr %t784) store ptr %t785, ptr %t786 %t787 = load ptr, ptr %t786 %t788 = getelementptr inbounds %Cmp_Val, ptr %t787, i32 0, i32 0 %t789 = load ptr, ptr %t788 %t790 = call ptr @lp_str_concat(ptr @.str3119, ptr %t789) %t791 = call ptr @lp_str_concat(ptr %t790, ptr @.str3120) %t792 = call ptr @fn_emit_bind(ptr %t791) store ptr %t792, ptr %t793 %t794 = load ptr, ptr %t793 %t795 = call ptr @fn_fx_mul_code(ptr %t794, ptr @.str3121) %t796 = call ptr @fn_val(ptr %t795, ptr @.str3122) store ptr %t796, ptr %retval br label %ret ifend120: %t797 = load ptr, ptr %t0 %t798 = call i32 @lp_str_eq(ptr %t797, ptr @.str3123) %t799 = icmp ne i32 %t798, 0 br i1 %t799, label %then123, label %ifend125 then123: store i32 1, ptr @g_g_uses_mathrt %t800 = load ptr, ptr %t1 %t801 = getelementptr inbounds %Cmp_Node, ptr %t800, i32 0, i32 7 %t802 = load ptr, ptr %t801 %t803 = getelementptr inbounds %LSlice, ptr %t802, i32 0, i32 0 %t804 = load ptr, ptr %t803 %t805 = getelementptr inbounds %LSlice, ptr %t802, i32 0, i32 1 %t806 = load i32, ptr %t805 %t807 = icmp ult i32 0, %t806 br i1 %t807, label %ixok126, label %ixbad127 ixbad127: %t808 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t808, ptr @.fmt_bounds, ptr @.str3124, i32 0, i32 %t806) call void @exit(i32 1) unreachable ixok126: %t809 = getelementptr inbounds ptr, ptr %t804, i32 0 %t810 = load ptr, ptr %t809 %t811 = call ptr @fn_emit_expr(ptr %t810) store ptr %t811, ptr %t812 %t813 = load ptr, ptr %t1 %t814 = getelementptr inbounds %Cmp_Node, ptr %t813, i32 0, i32 7 %t815 = load ptr, ptr %t814 %t816 = getelementptr inbounds %LSlice, ptr %t815, i32 0, i32 0 %t817 = load ptr, ptr %t816 %t818 = getelementptr inbounds %LSlice, ptr %t815, i32 0, i32 1 %t819 = load i32, ptr %t818 %t820 = icmp ult i32 1, %t819 br i1 %t820, label %ixok128, label %ixbad129 ixbad129: %t821 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t821, ptr @.fmt_bounds, ptr @.str3125, i32 1, i32 %t819) call void @exit(i32 1) unreachable ixok128: %t822 = getelementptr inbounds ptr, ptr %t817, i32 1 %t823 = load ptr, ptr %t822 %t824 = call ptr @fn_emit_expr(ptr %t823) store ptr %t824, ptr %t825 %t826 = load ptr, ptr %t812 %t827 = getelementptr inbounds %Cmp_Val, ptr %t826, i32 0, i32 0 %t828 = load ptr, ptr %t827 %t829 = call ptr @lp_str_concat(ptr @.str3126, ptr %t828) %t830 = call ptr @lp_str_concat(ptr %t829, ptr @.str3127) %t831 = call ptr @fn_emit_bind(ptr %t830) store ptr %t831, ptr %t832 %t833 = load ptr, ptr %t825 %t834 = getelementptr inbounds %Cmp_Val, ptr %t833, i32 0, i32 0 %t835 = load ptr, ptr %t834 %t836 = load ptr, ptr %t832 %t837 = call ptr @fn_fx_mul_code(ptr %t835, ptr %t836) store ptr %t837, ptr %t838 %t839 = load ptr, ptr %t838 %t840 = call ptr @lp_str_concat(ptr @.str3128, ptr %t839) %t841 = call ptr @lp_str_concat(ptr %t840, ptr @.str3129) %t842 = call ptr @fn_emit_bind(ptr %t841) %t843 = call ptr @fn_val(ptr %t842, ptr @.str3130) store ptr %t843, ptr %retval br label %ret ifend125: %t844 = load ptr, ptr %t0 %t845 = call i32 @lp_str_eq(ptr %t844, ptr @.str3131) %t846 = icmp ne i32 %t845, 0 br i1 %t846, label %then130, label %ifend132 then130: %t847 = load ptr, ptr %t1 %t848 = getelementptr inbounds %Cmp_Node, ptr %t847, i32 0, i32 7 %t849 = load ptr, ptr %t848 %t850 = getelementptr inbounds %LSlice, ptr %t849, i32 0, i32 0 %t851 = load ptr, ptr %t850 %t852 = getelementptr inbounds %LSlice, ptr %t849, i32 0, i32 1 %t853 = load i32, ptr %t852 %t854 = icmp ult i32 0, %t853 br i1 %t854, label %ixok133, label %ixbad134 ixbad134: %t855 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t855, ptr @.fmt_bounds, ptr @.str3132, i32 0, i32 %t853) call void @exit(i32 1) unreachable ixok133: %t856 = getelementptr inbounds ptr, ptr %t851, i32 0 %t857 = load ptr, ptr %t856 %t858 = call ptr @fn_emit_expr(ptr %t857) store ptr %t858, ptr %t859 %t860 = load ptr, ptr %t859 %t861 = getelementptr inbounds %Cmp_Val, ptr %t860, i32 0, i32 0 %t862 = load ptr, ptr %t861 %t863 = call ptr @fn_fx_mul_code(ptr %t862, ptr @.str3133) %t864 = call ptr @fn_val(ptr %t863, ptr @.str3134) store ptr %t864, ptr %retval br label %ret ifend132: %t865 = load ptr, ptr %t0 %t866 = call i32 @lp_str_eq(ptr %t865, ptr @.str3135) %t867 = icmp ne i32 %t866, 0 br i1 %t867, label %then135, label %ifend137 then135: %t868 = load ptr, ptr %t1 %t869 = getelementptr inbounds %Cmp_Node, ptr %t868, i32 0, i32 7 %t870 = load ptr, ptr %t869 %t871 = getelementptr inbounds %LSlice, ptr %t870, i32 0, i32 0 %t872 = load ptr, ptr %t871 %t873 = getelementptr inbounds %LSlice, ptr %t870, i32 0, i32 1 %t874 = load i32, ptr %t873 %t875 = icmp ult i32 0, %t874 br i1 %t875, label %ixok138, label %ixbad139 ixbad139: %t876 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t876, ptr @.fmt_bounds, ptr @.str3136, i32 0, i32 %t874) call void @exit(i32 1) unreachable ixok138: %t877 = getelementptr inbounds ptr, ptr %t872, i32 0 %t878 = load ptr, ptr %t877 %t879 = call ptr @fn_emit_expr(ptr %t878) store ptr %t879, ptr %t880 %t881 = load ptr, ptr %t880 %t882 = getelementptr inbounds %Cmp_Val, ptr %t881, i32 0, i32 0 %t883 = load ptr, ptr %t882 %t884 = call ptr @fn_fx_mul_code(ptr %t883, ptr @.str3137) %t885 = call ptr @fn_val(ptr %t884, ptr @.str3138) store ptr %t885, ptr %retval br label %ret ifend137: %t886 = load ptr, ptr %t0 %t887 = call i32 @lp_str_eq(ptr %t886, ptr @.str3139) %t888 = icmp ne i32 %t887, 0 br i1 %t888, label %then140, label %ifend142 then140: %t889 = load ptr, ptr %t1 %t890 = getelementptr inbounds %Cmp_Node, ptr %t889, i32 0, i32 7 %t891 = load ptr, ptr %t890 %t892 = getelementptr inbounds %LSlice, ptr %t891, i32 0, i32 0 %t893 = load ptr, ptr %t892 %t894 = getelementptr inbounds %LSlice, ptr %t891, i32 0, i32 1 %t895 = load i32, ptr %t894 %t896 = icmp ult i32 0, %t895 br i1 %t896, label %ixok143, label %ixbad144 ixbad144: %t897 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t897, ptr @.fmt_bounds, ptr @.str3140, i32 0, i32 %t895) call void @exit(i32 1) unreachable ixok143: %t898 = getelementptr inbounds ptr, ptr %t893, i32 0 %t899 = load ptr, ptr %t898 %t900 = call ptr @fn_emit_expr(ptr %t899) store ptr %t900, ptr %t901 %t902 = load ptr, ptr %t1 %t903 = getelementptr inbounds %Cmp_Node, ptr %t902, i32 0, i32 7 %t904 = load ptr, ptr %t903 %t905 = getelementptr inbounds %LSlice, ptr %t904, i32 0, i32 0 %t906 = load ptr, ptr %t905 %t907 = getelementptr inbounds %LSlice, ptr %t904, i32 0, i32 1 %t908 = load i32, ptr %t907 %t909 = icmp ult i32 1, %t908 br i1 %t909, label %ixok145, label %ixbad146 ixbad146: %t910 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t910, ptr @.fmt_bounds, ptr @.str3141, i32 1, i32 %t908) call void @exit(i32 1) unreachable ixok145: %t911 = getelementptr inbounds ptr, ptr %t906, i32 1 %t912 = load ptr, ptr %t911 %t913 = call ptr @fn_emit_expr(ptr %t912) store ptr %t913, ptr %t914 %t915 = load ptr, ptr %t901 %t916 = getelementptr inbounds %Cmp_Val, ptr %t915, i32 0, i32 0 %t917 = load ptr, ptr %t916 %t918 = call ptr @lp_str_concat(ptr @.str3142, ptr %t917) %t919 = call ptr @lp_str_concat(ptr %t918, ptr @.str3143) %t920 = load ptr, ptr %t914 %t921 = getelementptr inbounds %Cmp_Val, ptr %t920, i32 0, i32 0 %t922 = load ptr, ptr %t921 %t923 = call ptr @lp_str_concat(ptr %t919, ptr %t922) %t924 = call ptr @fn_emit_bind(ptr %t923) store ptr %t924, ptr %t925 %t926 = load ptr, ptr %t925 %t927 = call ptr @lp_str_concat(ptr @.str3144, ptr %t926) %t928 = call ptr @lp_str_concat(ptr %t927, ptr @.str3145) %t929 = load ptr, ptr %t914 %t930 = getelementptr inbounds %Cmp_Val, ptr %t929, i32 0, i32 0 %t931 = load ptr, ptr %t930 %t932 = call ptr @lp_str_concat(ptr %t928, ptr %t931) %t933 = call ptr @fn_emit_bind(ptr %t932) store ptr %t933, ptr %t934 %t935 = load ptr, ptr %t934 %t936 = call ptr @lp_str_concat(ptr @.str3146, ptr %t935) %t937 = call ptr @lp_str_concat(ptr %t936, ptr @.str3147) %t938 = load ptr, ptr %t914 %t939 = getelementptr inbounds %Cmp_Val, ptr %t938, i32 0, i32 0 %t940 = load ptr, ptr %t939 %t941 = call ptr @lp_str_concat(ptr %t937, ptr %t940) %t942 = call ptr @fn_emit_bind(ptr %t941) %t943 = call ptr @fn_val(ptr %t942, ptr @.str3148) store ptr %t943, ptr %retval br label %ret ifend142: %t944 = load ptr, ptr %t0 %t945 = call i32 @lp_str_eq(ptr %t944, ptr @.str3149) %t946 = icmp ne i32 %t945, 0 br i1 %t946, label %then147, label %ifend149 then147: %t947 = load ptr, ptr %t1 %t948 = getelementptr inbounds %Cmp_Node, ptr %t947, i32 0, i32 7 %t949 = load ptr, ptr %t948 %t950 = getelementptr inbounds %LSlice, ptr %t949, i32 0, i32 0 %t951 = load ptr, ptr %t950 %t952 = getelementptr inbounds %LSlice, ptr %t949, i32 0, i32 1 %t953 = load i32, ptr %t952 %t954 = icmp ult i32 0, %t953 br i1 %t954, label %ixok150, label %ixbad151 ixbad151: %t955 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t955, ptr @.fmt_bounds, ptr @.str3150, i32 0, i32 %t953) call void @exit(i32 1) unreachable ixok150: %t956 = getelementptr inbounds ptr, ptr %t951, i32 0 %t957 = load ptr, ptr %t956 %t958 = call ptr @fn_emit_expr(ptr %t957) store ptr %t958, ptr %t959 %t960 = load ptr, ptr %t1 %t961 = getelementptr inbounds %Cmp_Node, ptr %t960, i32 0, i32 7 %t962 = load ptr, ptr %t961 %t963 = getelementptr inbounds %LSlice, ptr %t962, i32 0, i32 0 %t964 = load ptr, ptr %t963 %t965 = getelementptr inbounds %LSlice, ptr %t962, i32 0, i32 1 %t966 = load i32, ptr %t965 %t967 = icmp ult i32 1, %t966 br i1 %t967, label %ixok152, label %ixbad153 ixbad153: %t968 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t968, ptr @.fmt_bounds, ptr @.str3151, i32 1, i32 %t966) call void @exit(i32 1) unreachable ixok152: %t969 = getelementptr inbounds ptr, ptr %t964, i32 1 %t970 = load ptr, ptr %t969 %t971 = call ptr @fn_emit_expr(ptr %t970) store ptr %t971, ptr %t972 %t973 = load ptr, ptr %t1 %t974 = getelementptr inbounds %Cmp_Node, ptr %t973, i32 0, i32 7 %t975 = load ptr, ptr %t974 %t976 = getelementptr inbounds %LSlice, ptr %t975, i32 0, i32 0 %t977 = load ptr, ptr %t976 %t978 = getelementptr inbounds %LSlice, ptr %t975, i32 0, i32 1 %t979 = load i32, ptr %t978 %t980 = icmp ult i32 2, %t979 br i1 %t980, label %ixok154, label %ixbad155 ixbad155: %t981 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t981, ptr @.fmt_bounds, ptr @.str3152, i32 2, i32 %t979) call void @exit(i32 1) unreachable ixok154: %t982 = getelementptr inbounds ptr, ptr %t977, i32 2 %t983 = load ptr, ptr %t982 %t984 = call ptr @fn_emit_expr(ptr %t983) store ptr %t984, ptr %t985 %t986 = load ptr, ptr %t985 %t987 = getelementptr inbounds %Cmp_Val, ptr %t986, i32 0, i32 0 %t988 = load ptr, ptr %t987 %t989 = call ptr @lp_str_concat(ptr @.str3153, ptr %t988) %t990 = call ptr @lp_str_concat(ptr %t989, ptr @.str3154) %t991 = load ptr, ptr %t972 %t992 = getelementptr inbounds %Cmp_Val, ptr %t991, i32 0, i32 0 %t993 = load ptr, ptr %t992 %t994 = call ptr @lp_str_concat(ptr %t990, ptr %t993) %t995 = call ptr @fn_emit_bind(ptr %t994) store ptr %t995, ptr %t996 %t997 = load ptr, ptr %t959 %t998 = getelementptr inbounds %Cmp_Val, ptr %t997, i32 0, i32 0 %t999 = load ptr, ptr %t998 %t1000 = call ptr @lp_str_concat(ptr @.str3155, ptr %t999) %t1001 = call ptr @lp_str_concat(ptr %t1000, ptr @.str3156) %t1002 = load ptr, ptr %t972 %t1003 = getelementptr inbounds %Cmp_Val, ptr %t1002, i32 0, i32 0 %t1004 = load ptr, ptr %t1003 %t1005 = call ptr @lp_str_concat(ptr %t1001, ptr %t1004) %t1006 = call ptr @fn_emit_bind(ptr %t1005) store ptr %t1006, ptr %t1007 %t1008 = load ptr, ptr %t1007 %t1009 = call ptr @lp_str_concat(ptr @.str3157, ptr %t1008) %t1010 = call ptr @lp_str_concat(ptr %t1009, ptr @.str3158) %t1011 = load ptr, ptr %t996 %t1012 = call ptr @lp_str_concat(ptr %t1010, ptr %t1011) %t1013 = call ptr @fn_emit_bind(ptr %t1012) store ptr %t1013, ptr %t1014 %t1015 = load ptr, ptr %t1014 %t1016 = call ptr @lp_str_concat(ptr @.str3159, ptr %t1015) %t1017 = call ptr @lp_str_concat(ptr %t1016, ptr @.str3160) %t1018 = load ptr, ptr %t996 %t1019 = call ptr @lp_str_concat(ptr %t1017, ptr %t1018) %t1020 = call ptr @fn_emit_bind(ptr %t1019) store ptr %t1020, ptr %t1021 %t1022 = load ptr, ptr %t1021 %t1023 = call ptr @lp_str_concat(ptr @.str3161, ptr %t1022) %t1024 = call ptr @lp_str_concat(ptr %t1023, ptr @.str3162) %t1025 = load ptr, ptr %t996 %t1026 = call ptr @lp_str_concat(ptr %t1024, ptr %t1025) %t1027 = call ptr @fn_emit_bind(ptr %t1026) store ptr %t1027, ptr %t1028 %t1029 = load ptr, ptr %t972 %t1030 = getelementptr inbounds %Cmp_Val, ptr %t1029, i32 0, i32 0 %t1031 = load ptr, ptr %t1030 %t1032 = call ptr @lp_str_concat(ptr @.str3163, ptr %t1031) %t1033 = call ptr @lp_str_concat(ptr %t1032, ptr @.str3164) %t1034 = load ptr, ptr %t1028 %t1035 = call ptr @lp_str_concat(ptr %t1033, ptr %t1034) %t1036 = call ptr @fn_emit_bind(ptr %t1035) %t1037 = call ptr @fn_val(ptr %t1036, ptr @.str3165) store ptr %t1037, ptr %retval br label %ret ifend149: %t1038 = load ptr, ptr %t0 %t1039 = call i32 @lp_str_eq(ptr %t1038, ptr @.str3166) %t1040 = icmp ne i32 %t1039, 0 br i1 %t1040, label %then156, label %ifend158 then156: %t1041 = load ptr, ptr %t1 %t1042 = getelementptr inbounds %Cmp_Node, ptr %t1041, i32 0, i32 7 %t1043 = load ptr, ptr %t1042 %t1044 = getelementptr inbounds %LSlice, ptr %t1043, i32 0, i32 0 %t1045 = load ptr, ptr %t1044 %t1046 = getelementptr inbounds %LSlice, ptr %t1043, i32 0, i32 1 %t1047 = load i32, ptr %t1046 %t1048 = icmp ult i32 0, %t1047 br i1 %t1048, label %ixok159, label %ixbad160 ixbad160: %t1049 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1049, ptr @.fmt_bounds, ptr @.str3167, i32 0, i32 %t1047) call void @exit(i32 1) unreachable ixok159: %t1050 = getelementptr inbounds ptr, ptr %t1045, i32 0 %t1051 = load ptr, ptr %t1050 %t1052 = call ptr @fn_emit_expr(ptr %t1051) store ptr %t1052, ptr %t1053 %t1054 = load ptr, ptr %t1 %t1055 = getelementptr inbounds %Cmp_Node, ptr %t1054, i32 0, i32 7 %t1056 = load ptr, ptr %t1055 %t1057 = getelementptr inbounds %LSlice, ptr %t1056, i32 0, i32 0 %t1058 = load ptr, ptr %t1057 %t1059 = getelementptr inbounds %LSlice, ptr %t1056, i32 0, i32 1 %t1060 = load i32, ptr %t1059 %t1061 = icmp ult i32 1, %t1060 br i1 %t1061, label %ixok161, label %ixbad162 ixbad162: %t1062 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1062, ptr @.fmt_bounds, ptr @.str3168, i32 1, i32 %t1060) call void @exit(i32 1) unreachable ixok161: %t1063 = getelementptr inbounds ptr, ptr %t1058, i32 1 %t1064 = load ptr, ptr %t1063 %t1065 = call ptr @fn_emit_expr(ptr %t1064) store ptr %t1065, ptr %t1066 %t1067 = load ptr, ptr %t1066 %t1068 = getelementptr inbounds %Cmp_Val, ptr %t1067, i32 0, i32 0 %t1069 = load ptr, ptr %t1068 %t1070 = call ptr @lp_str_concat(ptr @.str3169, ptr %t1069) %t1071 = call ptr @lp_str_concat(ptr %t1070, ptr @.str3170) %t1072 = call ptr @fn_emit_bind(ptr %t1071) store ptr %t1072, ptr %t1073 %t1074 = load ptr, ptr %t1053 %t1075 = getelementptr inbounds %Cmp_Val, ptr %t1074, i32 0, i32 0 %t1076 = load ptr, ptr %t1075 %t1077 = call ptr @lp_str_concat(ptr @.str3171, ptr %t1076) %t1078 = call ptr @lp_str_concat(ptr %t1077, ptr @.str3172) %t1079 = load ptr, ptr %t1073 %t1080 = call ptr @lp_str_concat(ptr %t1078, ptr %t1079) %t1081 = call ptr @fn_emit_bind(ptr %t1080) store ptr %t1081, ptr %t1082 %t1083 = load ptr, ptr %t1082 %t1084 = call ptr @lp_str_concat(ptr @.str3173, ptr %t1083) %t1085 = call ptr @lp_str_concat(ptr %t1084, ptr @.str3174) %t1086 = load ptr, ptr %t1073 %t1087 = call ptr @lp_str_concat(ptr %t1085, ptr %t1086) %t1088 = call ptr @fn_emit_bind(ptr %t1087) store ptr %t1088, ptr %t1089 %t1090 = load ptr, ptr %t1089 %t1091 = call ptr @lp_str_concat(ptr @.str3175, ptr %t1090) %t1092 = call ptr @lp_str_concat(ptr %t1091, ptr @.str3176) %t1093 = load ptr, ptr %t1073 %t1094 = call ptr @lp_str_concat(ptr %t1092, ptr %t1093) %t1095 = call ptr @fn_emit_bind(ptr %t1094) store ptr %t1095, ptr %t1096 %t1097 = load ptr, ptr %t1096 %t1098 = call ptr @lp_str_concat(ptr @.str3177, ptr %t1097) %t1099 = call ptr @lp_str_concat(ptr %t1098, ptr @.str3178) %t1100 = load ptr, ptr %t1066 %t1101 = getelementptr inbounds %Cmp_Val, ptr %t1100, i32 0, i32 0 %t1102 = load ptr, ptr %t1101 %t1103 = call ptr @lp_str_concat(ptr %t1099, ptr %t1102) %t1104 = call ptr @fn_emit_bind(ptr %t1103) store ptr %t1104, ptr %t1105 %t1106 = load ptr, ptr %t1105 %t1107 = call ptr @lp_str_concat(ptr @.str3179, ptr %t1106) %t1108 = call ptr @fn_emit_bind(ptr %t1107) store ptr %t1108, ptr %t1109 %t1110 = load ptr, ptr %t1105 %t1111 = call ptr @lp_str_concat(ptr @.str3180, ptr %t1110) %t1112 = call ptr @lp_str_concat(ptr %t1111, ptr @.str3181) %t1113 = call ptr @fn_emit_bind(ptr %t1112) store ptr %t1113, ptr %t1114 %t1115 = load ptr, ptr %t1114 %t1116 = call ptr @lp_str_concat(ptr @.str3182, ptr %t1115) %t1117 = call ptr @lp_str_concat(ptr %t1116, ptr @.str3183) %t1118 = load ptr, ptr %t1109 %t1119 = call ptr @lp_str_concat(ptr %t1117, ptr %t1118) %t1120 = call ptr @lp_str_concat(ptr %t1119, ptr @.str3184) %t1121 = load ptr, ptr %t1105 %t1122 = call ptr @lp_str_concat(ptr %t1120, ptr %t1121) %t1123 = call ptr @fn_emit_bind(ptr %t1122) store ptr %t1123, ptr %t1124 %t1125 = load ptr, ptr %t1066 %t1126 = getelementptr inbounds %Cmp_Val, ptr %t1125, i32 0, i32 0 %t1127 = load ptr, ptr %t1126 %t1128 = call ptr @lp_str_concat(ptr @.str3185, ptr %t1127) %t1129 = call ptr @lp_str_concat(ptr %t1128, ptr @.str3186) %t1130 = load ptr, ptr %t1124 %t1131 = call ptr @lp_str_concat(ptr %t1129, ptr %t1130) %t1132 = call ptr @fn_emit_bind(ptr %t1131) %t1133 = call ptr @fn_val(ptr %t1132, ptr @.str3187) store ptr %t1133, ptr %retval br label %ret ifend158: %t1134 = load ptr, ptr %t0 %t1135 = call i32 @lp_str_eq(ptr %t1134, ptr @.str3188) %t1136 = icmp ne i32 %t1135, 0 br i1 %t1136, label %then163, label %ifend165 then163: %t1137 = load ptr, ptr %t1 %t1138 = getelementptr inbounds %Cmp_Node, ptr %t1137, i32 0, i32 7 %t1139 = load ptr, ptr %t1138 %t1140 = getelementptr inbounds %LSlice, ptr %t1139, i32 0, i32 0 %t1141 = load ptr, ptr %t1140 %t1142 = getelementptr inbounds %LSlice, ptr %t1139, i32 0, i32 1 %t1143 = load i32, ptr %t1142 %t1144 = icmp ult i32 0, %t1143 br i1 %t1144, label %ixok166, label %ixbad167 ixbad167: %t1145 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1145, ptr @.fmt_bounds, ptr @.str3189, i32 0, i32 %t1143) call void @exit(i32 1) unreachable ixok166: %t1146 = getelementptr inbounds ptr, ptr %t1141, i32 0 %t1147 = load ptr, ptr %t1146 %t1148 = call ptr @fn_emit_expr(ptr %t1147) store ptr %t1148, ptr %t1149 %t1150 = load ptr, ptr %t1 %t1151 = getelementptr inbounds %Cmp_Node, ptr %t1150, i32 0, i32 7 %t1152 = load ptr, ptr %t1151 %t1153 = getelementptr inbounds %LSlice, ptr %t1152, i32 0, i32 0 %t1154 = load ptr, ptr %t1153 %t1155 = getelementptr inbounds %LSlice, ptr %t1152, i32 0, i32 1 %t1156 = load i32, ptr %t1155 %t1157 = icmp ult i32 1, %t1156 br i1 %t1157, label %ixok168, label %ixbad169 ixbad169: %t1158 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1158, ptr @.fmt_bounds, ptr @.str3190, i32 1, i32 %t1156) call void @exit(i32 1) unreachable ixok168: %t1159 = getelementptr inbounds ptr, ptr %t1154, i32 1 %t1160 = load ptr, ptr %t1159 %t1161 = call ptr @fn_emit_expr(ptr %t1160) store ptr %t1161, ptr %t1162 %t1163 = load ptr, ptr %t1149 %t1164 = getelementptr inbounds %Cmp_Val, ptr %t1163, i32 0, i32 0 %t1165 = load ptr, ptr %t1164 %t1166 = load ptr, ptr %t1162 %t1167 = getelementptr inbounds %Cmp_Val, ptr %t1166, i32 0, i32 0 %t1168 = load ptr, ptr %t1167 %t1169 = call ptr @fn_fx_div_code(ptr %t1165, ptr %t1168) store ptr %t1169, ptr %t1170 %t1171 = load ptr, ptr %t1170 %t1172 = call ptr @lp_str_concat(ptr @.str3191, ptr %t1171) %t1173 = call ptr @lp_str_concat(ptr %t1172, ptr @.str3192) %t1174 = call ptr @fn_emit_bind(ptr %t1173) store ptr %t1174, ptr %t1175 %t1176 = load ptr, ptr %t1175 %t1177 = call ptr @lp_str_concat(ptr @.str3193, ptr %t1176) %t1178 = call ptr @lp_str_concat(ptr %t1177, ptr @.str3194) %t1179 = call ptr @fn_emit_bind(ptr %t1178) store ptr %t1179, ptr %t1180 %t1181 = load ptr, ptr %t1180 %t1182 = call ptr @lp_str_concat(ptr @.str3195, ptr %t1181) %t1183 = call ptr @lp_str_concat(ptr %t1182, ptr @.str3196) %t1184 = load ptr, ptr %t1162 %t1185 = getelementptr inbounds %Cmp_Val, ptr %t1184, i32 0, i32 0 %t1186 = load ptr, ptr %t1185 %t1187 = call ptr @lp_str_concat(ptr %t1183, ptr %t1186) %t1188 = call ptr @fn_emit_bind(ptr %t1187) %t1189 = call ptr @fn_val(ptr %t1188, ptr @.str3197) store ptr %t1189, ptr %retval br label %ret ifend165: %t1190 = load ptr, ptr %t0 %t1191 = call i32 @lp_str_eq(ptr %t1190, ptr @.str3198) %t1192 = icmp ne i32 %t1191, 0 br i1 %t1192, label %then170, label %ifend172 then170: %t1193 = load ptr, ptr %t1 %t1194 = getelementptr inbounds %Cmp_Node, ptr %t1193, i32 0, i32 7 %t1195 = load ptr, ptr %t1194 %t1196 = getelementptr inbounds %LSlice, ptr %t1195, i32 0, i32 0 %t1197 = load ptr, ptr %t1196 %t1198 = getelementptr inbounds %LSlice, ptr %t1195, i32 0, i32 1 %t1199 = load i32, ptr %t1198 %t1200 = icmp ult i32 0, %t1199 br i1 %t1200, label %ixok173, label %ixbad174 ixbad174: %t1201 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1201, ptr @.fmt_bounds, ptr @.str3199, i32 0, i32 %t1199) call void @exit(i32 1) unreachable ixok173: %t1202 = getelementptr inbounds ptr, ptr %t1197, i32 0 %t1203 = load ptr, ptr %t1202 %t1204 = call ptr @fn_emit_expr(ptr %t1203) store ptr %t1204, ptr %t1205 %t1206 = load ptr, ptr %t1 %t1207 = getelementptr inbounds %Cmp_Node, ptr %t1206, i32 0, i32 7 %t1208 = load ptr, ptr %t1207 %t1209 = getelementptr inbounds %LSlice, ptr %t1208, i32 0, i32 0 %t1210 = load ptr, ptr %t1209 %t1211 = getelementptr inbounds %LSlice, ptr %t1208, i32 0, i32 1 %t1212 = load i32, ptr %t1211 %t1213 = icmp ult i32 1, %t1212 br i1 %t1213, label %ixok175, label %ixbad176 ixbad176: %t1214 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1214, ptr @.fmt_bounds, ptr @.str3200, i32 1, i32 %t1212) call void @exit(i32 1) unreachable ixok175: %t1215 = getelementptr inbounds ptr, ptr %t1210, i32 1 %t1216 = load ptr, ptr %t1215 %t1217 = call ptr @fn_emit_expr(ptr %t1216) store ptr %t1217, ptr %t1218 %t1219 = load ptr, ptr %t1 %t1220 = getelementptr inbounds %Cmp_Node, ptr %t1219, i32 0, i32 7 %t1221 = load ptr, ptr %t1220 %t1222 = getelementptr inbounds %LSlice, ptr %t1221, i32 0, i32 0 %t1223 = load ptr, ptr %t1222 %t1224 = getelementptr inbounds %LSlice, ptr %t1221, i32 0, i32 1 %t1225 = load i32, ptr %t1224 %t1226 = icmp ult i32 2, %t1225 br i1 %t1226, label %ixok177, label %ixbad178 ixbad178: %t1227 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1227, ptr @.fmt_bounds, ptr @.str3201, i32 2, i32 %t1225) call void @exit(i32 1) unreachable ixok177: %t1228 = getelementptr inbounds ptr, ptr %t1223, i32 2 %t1229 = load ptr, ptr %t1228 %t1230 = call ptr @fn_emit_expr(ptr %t1229) store ptr %t1230, ptr %t1231 %t1232 = load ptr, ptr %t1218 %t1233 = getelementptr inbounds %Cmp_Val, ptr %t1232, i32 0, i32 0 %t1234 = load ptr, ptr %t1233 %t1235 = call ptr @lp_str_concat(ptr @.str3202, ptr %t1234) %t1236 = call ptr @lp_str_concat(ptr %t1235, ptr @.str3203) %t1237 = load ptr, ptr %t1205 %t1238 = getelementptr inbounds %Cmp_Val, ptr %t1237, i32 0, i32 0 %t1239 = load ptr, ptr %t1238 %t1240 = call ptr @lp_str_concat(ptr %t1236, ptr %t1239) %t1241 = call ptr @fn_emit_bind(ptr %t1240) store ptr %t1241, ptr %t1242 %t1243 = load ptr, ptr %t1242 %t1244 = call ptr @lp_str_concat(ptr @.str3204, ptr %t1243) %t1245 = call ptr @fn_emit_bind(ptr %t1244) store ptr %t1245, ptr %t1246 %t1247 = load ptr, ptr %t1242 %t1248 = call ptr @lp_str_concat(ptr @.str3205, ptr %t1247) %t1249 = call ptr @lp_str_concat(ptr %t1248, ptr @.str3206) %t1250 = call ptr @fn_emit_bind(ptr %t1249) store ptr %t1250, ptr %t1251 %t1252 = load ptr, ptr %t1251 %t1253 = call ptr @lp_str_concat(ptr @.str3207, ptr %t1252) %t1254 = call ptr @lp_str_concat(ptr %t1253, ptr @.str3208) %t1255 = load ptr, ptr %t1246 %t1256 = call ptr @lp_str_concat(ptr %t1254, ptr %t1255) %t1257 = call ptr @lp_str_concat(ptr %t1256, ptr @.str3209) %t1258 = load ptr, ptr %t1242 %t1259 = call ptr @lp_str_concat(ptr %t1257, ptr %t1258) %t1260 = call ptr @fn_emit_bind(ptr %t1259) store ptr %t1260, ptr %t1261 %t1262 = load ptr, ptr %t1242 %t1263 = call ptr @lp_str_concat(ptr @.str3210, ptr %t1262) %t1264 = call ptr @lp_str_concat(ptr %t1263, ptr @.str3211) %t1265 = call ptr @fn_emit_bind(ptr %t1264) store ptr %t1265, ptr %t1266 %t1267 = load ptr, ptr %t1242 %t1268 = call ptr @lp_str_concat(ptr @.str3212, ptr %t1267) %t1269 = call ptr @lp_str_concat(ptr %t1268, ptr @.str3213) %t1270 = call ptr @fn_emit_bind(ptr %t1269) store ptr %t1270, ptr %t1271 %t1272 = load ptr, ptr %t1271 %t1273 = call ptr @lp_str_concat(ptr @.str3214, ptr %t1272) %t1274 = call ptr @lp_str_concat(ptr %t1273, ptr @.str3215) %t1275 = call ptr @fn_emit_bind(ptr %t1274) store ptr %t1275, ptr %t1276 %t1277 = load ptr, ptr %t1266 %t1278 = call ptr @lp_str_concat(ptr @.str3216, ptr %t1277) %t1279 = call ptr @lp_str_concat(ptr %t1278, ptr @.str3217) %t1280 = load ptr, ptr %t1276 %t1281 = call ptr @lp_str_concat(ptr %t1279, ptr %t1280) %t1282 = call ptr @fn_emit_bind(ptr %t1281) store ptr %t1282, ptr %t1283 %t1284 = load ptr, ptr %t1283 %t1285 = call ptr @lp_str_concat(ptr @.str3218, ptr %t1284) %t1286 = call ptr @lp_str_concat(ptr %t1285, ptr @.str3219) %t1287 = load ptr, ptr %t1231 %t1288 = getelementptr inbounds %Cmp_Val, ptr %t1287, i32 0, i32 0 %t1289 = load ptr, ptr %t1288 %t1290 = call ptr @lp_str_concat(ptr %t1286, ptr %t1289) %t1291 = call ptr @fn_emit_bind(ptr %t1290) store ptr %t1291, ptr %t1292 %t1293 = load ptr, ptr %t1205 %t1294 = getelementptr inbounds %Cmp_Val, ptr %t1293, i32 0, i32 0 %t1295 = load ptr, ptr %t1294 %t1296 = call ptr @lp_str_concat(ptr @.str3220, ptr %t1295) %t1297 = call ptr @lp_str_concat(ptr %t1296, ptr @.str3221) %t1298 = load ptr, ptr %t1292 %t1299 = call ptr @lp_str_concat(ptr %t1297, ptr %t1298) %t1300 = call ptr @fn_emit_bind(ptr %t1299) store ptr %t1300, ptr %t1301 %t1302 = load ptr, ptr %t1261 %t1303 = call ptr @lp_str_concat(ptr @.str3222, ptr %t1302) %t1304 = call ptr @lp_str_concat(ptr %t1303, ptr @.str3223) %t1305 = load ptr, ptr %t1231 %t1306 = getelementptr inbounds %Cmp_Val, ptr %t1305, i32 0, i32 0 %t1307 = load ptr, ptr %t1306 %t1308 = call ptr @lp_str_concat(ptr %t1304, ptr %t1307) %t1309 = call ptr @fn_emit_bind(ptr %t1308) store ptr %t1309, ptr %t1310 %t1311 = load ptr, ptr %t1310 %t1312 = call ptr @lp_str_concat(ptr @.str3224, ptr %t1311) %t1313 = call ptr @lp_str_concat(ptr %t1312, ptr @.str3225) %t1314 = load ptr, ptr %t1218 %t1315 = getelementptr inbounds %Cmp_Val, ptr %t1314, i32 0, i32 0 %t1316 = load ptr, ptr %t1315 %t1317 = call ptr @lp_str_concat(ptr %t1313, ptr %t1316) %t1318 = call ptr @lp_str_concat(ptr %t1317, ptr @.str3226) %t1319 = load ptr, ptr %t1301 %t1320 = call ptr @lp_str_concat(ptr %t1318, ptr %t1319) %t1321 = call ptr @fn_emit_bind(ptr %t1320) %t1322 = call ptr @fn_val(ptr %t1321, ptr @.str3227) store ptr %t1322, ptr %retval br label %ret ifend172: %t1323 = load ptr, ptr %t0 %t1324 = call i32 @lp_str_eq(ptr %t1323, ptr @.str3228) %t1325 = icmp ne i32 %t1324, 0 br i1 %t1325, label %then179, label %ifend181 then179: %t1326 = load ptr, ptr %t1 %t1327 = getelementptr inbounds %Cmp_Node, ptr %t1326, i32 0, i32 7 %t1328 = load ptr, ptr %t1327 %t1329 = getelementptr inbounds %LSlice, ptr %t1328, i32 0, i32 0 %t1330 = load ptr, ptr %t1329 %t1331 = getelementptr inbounds %LSlice, ptr %t1328, i32 0, i32 1 %t1332 = load i32, ptr %t1331 %t1333 = icmp ult i32 0, %t1332 br i1 %t1333, label %ixok182, label %ixbad183 ixbad183: %t1334 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1334, ptr @.fmt_bounds, ptr @.str3229, i32 0, i32 %t1332) call void @exit(i32 1) unreachable ixok182: %t1335 = getelementptr inbounds ptr, ptr %t1330, i32 0 %t1336 = load ptr, ptr %t1335 %t1337 = call ptr @fn_emit_expr(ptr %t1336) store ptr %t1337, ptr %t1338 %t1339 = load ptr, ptr %t1 %t1340 = getelementptr inbounds %Cmp_Node, ptr %t1339, i32 0, i32 7 %t1341 = load ptr, ptr %t1340 %t1342 = getelementptr inbounds %LSlice, ptr %t1341, i32 0, i32 0 %t1343 = load ptr, ptr %t1342 %t1344 = getelementptr inbounds %LSlice, ptr %t1341, i32 0, i32 1 %t1345 = load i32, ptr %t1344 %t1346 = icmp ult i32 1, %t1345 br i1 %t1346, label %ixok184, label %ixbad185 ixbad185: %t1347 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1347, ptr @.fmt_bounds, ptr @.str3230, i32 1, i32 %t1345) call void @exit(i32 1) unreachable ixok184: %t1348 = getelementptr inbounds ptr, ptr %t1343, i32 1 %t1349 = load ptr, ptr %t1348 %t1350 = call ptr @fn_emit_expr(ptr %t1349) store ptr %t1350, ptr %t1351 %t1352 = load ptr, ptr %t1 %t1353 = getelementptr inbounds %Cmp_Node, ptr %t1352, i32 0, i32 7 %t1354 = load ptr, ptr %t1353 %t1355 = getelementptr inbounds %LSlice, ptr %t1354, i32 0, i32 0 %t1356 = load ptr, ptr %t1355 %t1357 = getelementptr inbounds %LSlice, ptr %t1354, i32 0, i32 1 %t1358 = load i32, ptr %t1357 %t1359 = icmp ult i32 2, %t1358 br i1 %t1359, label %ixok186, label %ixbad187 ixbad187: %t1360 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1360, ptr @.fmt_bounds, ptr @.str3231, i32 2, i32 %t1358) call void @exit(i32 1) unreachable ixok186: %t1361 = getelementptr inbounds ptr, ptr %t1356, i32 2 %t1362 = load ptr, ptr %t1361 %t1363 = call ptr @fn_emit_expr(ptr %t1362) store ptr %t1363, ptr %t1364 %t1365 = load ptr, ptr %t1338 %t1366 = getelementptr inbounds %Cmp_Val, ptr %t1365, i32 0, i32 0 %t1367 = load ptr, ptr %t1366 %t1368 = load ptr, ptr %t1351 %t1369 = getelementptr inbounds %Cmp_Val, ptr %t1368, i32 0, i32 0 %t1370 = load ptr, ptr %t1369 %t1371 = load ptr, ptr %t1364 %t1372 = getelementptr inbounds %Cmp_Val, ptr %t1371, i32 0, i32 0 %t1373 = load ptr, ptr %t1372 %t1374 = call ptr @fn_fx_inv_lerp_code(ptr %t1367, ptr %t1370, ptr %t1373) store ptr %t1374, ptr %t1375 %t1376 = load ptr, ptr %t1375 %t1377 = call ptr @lp_str_concat(ptr @.str3232, ptr %t1376) %t1378 = call ptr @lp_str_concat(ptr %t1377, ptr @.str3233) %t1379 = call ptr @fn_emit_bind(ptr %t1378) store ptr %t1379, ptr %t1380 %t1381 = load ptr, ptr %t1380 %t1382 = call ptr @lp_str_concat(ptr @.str3234, ptr %t1381) %t1383 = call ptr @lp_str_concat(ptr %t1382, ptr @.str3235) %t1384 = load ptr, ptr %t1375 %t1385 = call ptr @lp_str_concat(ptr %t1383, ptr %t1384) %t1386 = call ptr @fn_emit_bind(ptr %t1385) store ptr %t1386, ptr %t1387 %t1388 = load ptr, ptr %t1387 %t1389 = call ptr @lp_str_concat(ptr @.str3236, ptr %t1388) %t1390 = call ptr @lp_str_concat(ptr %t1389, ptr @.str3237) %t1391 = call ptr @fn_emit_bind(ptr %t1390) store ptr %t1391, ptr %t1392 %t1393 = load ptr, ptr %t1392 %t1394 = call ptr @lp_str_concat(ptr @.str3238, ptr %t1393) %t1395 = call ptr @lp_str_concat(ptr %t1394, ptr @.str3239) %t1396 = load ptr, ptr %t1387 %t1397 = call ptr @lp_str_concat(ptr %t1395, ptr %t1396) %t1398 = call ptr @fn_emit_bind(ptr %t1397) store ptr %t1398, ptr %t1399 %t1400 = load ptr, ptr %t1399 %t1401 = call ptr @lp_str_concat(ptr @.str3240, ptr %t1400) %t1402 = call ptr @lp_str_concat(ptr %t1401, ptr @.str3241) %t1403 = call ptr @fn_emit_bind(ptr %t1402) store ptr %t1403, ptr %t1404 %t1405 = load ptr, ptr %t1404 %t1406 = call ptr @lp_str_concat(ptr @.str3242, ptr %t1405) %t1407 = call ptr @fn_emit_bind(ptr %t1406) store ptr %t1407, ptr %t1408 %t1409 = load ptr, ptr %t1399 %t1410 = load ptr, ptr %t1399 %t1411 = call ptr @fn_fx_mul_code(ptr %t1409, ptr %t1410) store ptr %t1411, ptr %t1412 %t1413 = load ptr, ptr %t1412 %t1414 = load ptr, ptr %t1408 %t1415 = call ptr @fn_fx_mul_code(ptr %t1413, ptr %t1414) %t1416 = call ptr @fn_val(ptr %t1415, ptr @.str3243) store ptr %t1416, ptr %retval br label %ret ifend181: %t1417 = load ptr, ptr %t1 %t1418 = getelementptr inbounds %Cmp_Node, ptr %t1417, i32 0, i32 7 %t1419 = load ptr, ptr %t1418 %t1420 = getelementptr inbounds %LSlice, ptr %t1419, i32 0, i32 0 %t1421 = load ptr, ptr %t1420 %t1422 = getelementptr inbounds %LSlice, ptr %t1419, i32 0, i32 1 %t1423 = load i32, ptr %t1422 %t1424 = icmp ult i32 0, %t1423 br i1 %t1424, label %ixok188, label %ixbad189 ixbad189: %t1425 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1425, ptr @.fmt_bounds, ptr @.str3244, i32 0, i32 %t1423) call void @exit(i32 1) unreachable ixok188: %t1426 = getelementptr inbounds ptr, ptr %t1421, i32 0 %t1427 = load ptr, ptr %t1426 %t1428 = call ptr @fn_emit_expr(ptr %t1427) store ptr %t1428, ptr %t1429 %t1430 = load ptr, ptr %t1 %t1431 = getelementptr inbounds %Cmp_Node, ptr %t1430, i32 0, i32 7 %t1432 = load ptr, ptr %t1431 %t1433 = getelementptr inbounds %LSlice, ptr %t1432, i32 0, i32 0 %t1434 = load ptr, ptr %t1433 %t1435 = getelementptr inbounds %LSlice, ptr %t1432, i32 0, i32 1 %t1436 = load i32, ptr %t1435 %t1437 = icmp ult i32 1, %t1436 br i1 %t1437, label %ixok190, label %ixbad191 ixbad191: %t1438 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1438, ptr @.fmt_bounds, ptr @.str3245, i32 1, i32 %t1436) call void @exit(i32 1) unreachable ixok190: %t1439 = getelementptr inbounds ptr, ptr %t1434, i32 1 %t1440 = load ptr, ptr %t1439 %t1441 = call ptr @fn_emit_expr(ptr %t1440) store ptr %t1441, ptr %t1442 %t1443 = load ptr, ptr %t1 %t1444 = getelementptr inbounds %Cmp_Node, ptr %t1443, i32 0, i32 7 %t1445 = load ptr, ptr %t1444 %t1446 = getelementptr inbounds %LSlice, ptr %t1445, i32 0, i32 0 %t1447 = load ptr, ptr %t1446 %t1448 = getelementptr inbounds %LSlice, ptr %t1445, i32 0, i32 1 %t1449 = load i32, ptr %t1448 %t1450 = icmp ult i32 2, %t1449 br i1 %t1450, label %ixok192, label %ixbad193 ixbad193: %t1451 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1451, ptr @.fmt_bounds, ptr @.str3246, i32 2, i32 %t1449) call void @exit(i32 1) unreachable ixok192: %t1452 = getelementptr inbounds ptr, ptr %t1447, i32 2 %t1453 = load ptr, ptr %t1452 %t1454 = call ptr @fn_emit_expr(ptr %t1453) store ptr %t1454, ptr %t1455 %t1456 = load ptr, ptr %t1 %t1457 = getelementptr inbounds %Cmp_Node, ptr %t1456, i32 0, i32 7 %t1458 = load ptr, ptr %t1457 %t1459 = getelementptr inbounds %LSlice, ptr %t1458, i32 0, i32 0 %t1460 = load ptr, ptr %t1459 %t1461 = getelementptr inbounds %LSlice, ptr %t1458, i32 0, i32 1 %t1462 = load i32, ptr %t1461 %t1463 = icmp ult i32 3, %t1462 br i1 %t1463, label %ixok194, label %ixbad195 ixbad195: %t1464 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1464, ptr @.fmt_bounds, ptr @.str3247, i32 3, i32 %t1462) call void @exit(i32 1) unreachable ixok194: %t1465 = getelementptr inbounds ptr, ptr %t1460, i32 3 %t1466 = load ptr, ptr %t1465 %t1467 = call ptr @fn_emit_expr(ptr %t1466) store ptr %t1467, ptr %t1468 %t1469 = load ptr, ptr %t1 %t1470 = getelementptr inbounds %Cmp_Node, ptr %t1469, i32 0, i32 7 %t1471 = load ptr, ptr %t1470 %t1472 = getelementptr inbounds %LSlice, ptr %t1471, i32 0, i32 0 %t1473 = load ptr, ptr %t1472 %t1474 = getelementptr inbounds %LSlice, ptr %t1471, i32 0, i32 1 %t1475 = load i32, ptr %t1474 %t1476 = icmp ult i32 4, %t1475 br i1 %t1476, label %ixok196, label %ixbad197 ixbad197: %t1477 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1477, ptr @.fmt_bounds, ptr @.str3248, i32 4, i32 %t1475) call void @exit(i32 1) unreachable ixok196: %t1478 = getelementptr inbounds ptr, ptr %t1473, i32 4 %t1479 = load ptr, ptr %t1478 %t1480 = call ptr @fn_emit_expr(ptr %t1479) store ptr %t1480, ptr %t1481 %t1482 = load ptr, ptr %t1442 %t1483 = getelementptr inbounds %Cmp_Val, ptr %t1482, i32 0, i32 0 %t1484 = load ptr, ptr %t1483 %t1485 = load ptr, ptr %t1455 %t1486 = getelementptr inbounds %Cmp_Val, ptr %t1485, i32 0, i32 0 %t1487 = load ptr, ptr %t1486 %t1488 = load ptr, ptr %t1429 %t1489 = getelementptr inbounds %Cmp_Val, ptr %t1488, i32 0, i32 0 %t1490 = load ptr, ptr %t1489 %t1491 = call ptr @fn_fx_inv_lerp_code(ptr %t1484, ptr %t1487, ptr %t1490) store ptr %t1491, ptr %t1492 %t1493 = load ptr, ptr %t1468 %t1494 = getelementptr inbounds %Cmp_Val, ptr %t1493, i32 0, i32 0 %t1495 = load ptr, ptr %t1494 %t1496 = load ptr, ptr %t1481 %t1497 = getelementptr inbounds %Cmp_Val, ptr %t1496, i32 0, i32 0 %t1498 = load ptr, ptr %t1497 %t1499 = load ptr, ptr %t1492 %t1500 = call ptr @fn_fx_lerp_code(ptr %t1495, ptr %t1498, ptr %t1499) %t1501 = call ptr @fn_val(ptr %t1500, ptr @.str3249) store ptr %t1501, ptr %retval br label %ret ret: %t1502 = load ptr, ptr %retval ret ptr %t1502 } define void @fn_emit_math_prelude() { entry: call void @fn_emith(ptr @.str3250) call void @fn_emith(ptr @.str3251) call void @fn_emith(ptr @.str3252) call void @fn_emith(ptr @.str3253) call void @fn_emith(ptr @.str3254) call void @fn_emith(ptr @.str3255) call void @fn_emith(ptr @.str3256) call void @fn_emith(ptr @.str3257) call void @fn_emith(ptr @.str3258) call void @fn_emith(ptr @.str3259) call void @fn_emith(ptr @.str3260) call void @fn_emith(ptr @.str3261) call void @fn_emith(ptr @.str3262) call void @fn_emith(ptr @.str3263) call void @fn_emith(ptr @.str3264) call void @fn_emith(ptr @.str3265) call void @fn_emith(ptr @.str3266) call void @fn_emith(ptr @.str3267) call void @fn_emith(ptr @.str3268) call void @fn_emith(ptr @.str3269) call void @fn_emith(ptr @.str3270) call void @fn_emith(ptr @.str3271) call void @fn_emith(ptr @.str3272) call void @fn_emith(ptr @.str3273) call void @fn_emith(ptr @.str3274) call void @fn_emith(ptr @.str3275) call void @fn_emith(ptr @.str3276) call void @fn_emith(ptr @.str3277) call void @fn_emith(ptr @.str3278) call void @fn_emith(ptr @.str3279) call void @fn_emith(ptr @.str3280) call void @fn_emith(ptr @.str3281) call void @fn_emith(ptr @.str3282) call void @fn_emith(ptr @.str3283) call void @fn_emith(ptr @.str3284) call void @fn_emith(ptr @.str3285) call void @fn_emith(ptr @.str3286) call void @fn_emith(ptr @.str3287) call void @fn_emith(ptr @.str3288) call void @fn_emith(ptr @.str3289) call void @fn_emith(ptr @.str3290) call void @fn_emith(ptr @.str3291) call void @fn_emith(ptr @.str3292) call void @fn_emith(ptr @.str3293) call void @fn_emith(ptr @.str3294) call void @fn_emith(ptr @.str3295) call void @fn_emith(ptr @.str3296) call void @fn_emith(ptr @.str3297) call void @fn_emith(ptr @.str3298) call void @fn_emith(ptr @.str3299) call void @fn_emith(ptr @.str3300) call void @fn_emith(ptr @.str3301) call void @fn_emith(ptr @.str3302) call void @fn_emith(ptr @.str3303) call void @fn_emith(ptr @.str3304) call void @fn_emith(ptr @.str3305) call void @fn_emith(ptr @.str3306) call void @fn_emith(ptr @.str3307) call void @fn_emith(ptr @.str3308) call void @fn_emith(ptr @.str3309) call void @fn_emith(ptr @.str3310) call void @fn_emith(ptr @.str3311) call void @fn_emith(ptr @.str3312) call void @fn_emith(ptr @.str3313) call void @fn_emith(ptr @.str3314) call void @fn_emith(ptr @.str3315) call void @fn_emith(ptr @.str3316) call void @fn_emith(ptr @.str3317) call void @fn_emith(ptr @.str3318) call void @fn_emith(ptr @.str3319) call void @fn_emith(ptr @.str3320) call void @fn_emith(ptr @.str3321) call void @fn_emith(ptr @.str3322) call void @fn_emith(ptr @.str3323) call void @fn_emith(ptr @.str3324) call void @fn_emith(ptr @.str3325) call void @fn_emith(ptr @.str3326) call void @fn_emith(ptr @.str3327) call void @fn_emith(ptr @.str3328) call void @fn_emith(ptr @.str3329) call void @fn_emith(ptr @.str3330) call void @fn_emith(ptr @.str3331) call void @fn_emith(ptr @.str3332) call void @fn_emith(ptr @.str3333) call void @fn_emith(ptr @.str3334) call void @fn_emith(ptr @.str3335) call void @fn_emith(ptr @.str3336) call void @fn_emith(ptr @.str3337) call void @fn_emith(ptr @.str3338) call void @fn_emith(ptr @.str3339) call void @fn_emith(ptr @.str3340) call void @fn_emith(ptr @.str3341) call void @fn_emith(ptr @.str3342) call void @fn_emith(ptr @.str3343) call void @fn_emith(ptr @.str3344) call void @fn_emith(ptr @.str3345) call void @fn_emith(ptr @.str3346) call void @fn_emith(ptr @.str3347) call void @fn_emith(ptr @.str3348) call void @fn_emith(ptr @.str3349) call void @fn_emith(ptr @.str3350) call void @fn_emith(ptr @.str3351) call void @fn_emith(ptr @.str3352) call void @fn_emith(ptr @.str3353) call void @fn_emith(ptr @.str3354) call void @fn_emith(ptr @.str3355) call void @fn_emith(ptr @.str3356) call void @fn_emith(ptr @.str3357) call void @fn_emith(ptr @.str3358) br label %ret ret: ret void } define ptr @fn_vec_pack(ptr %arg_x, ptr %arg_y) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca ptr %t11 = alloca ptr %t16 = alloca ptr store ptr %arg_x, ptr %t0 store ptr %arg_y, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str3359, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str3360) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @lp_str_concat(ptr @.str3361, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str3362) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t1 %t13 = call ptr @lp_str_concat(ptr @.str3363, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str3364) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t11 %t18 = call ptr @lp_str_concat(ptr @.str3365, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str3366) %t20 = load ptr, ptr %t16 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) %t22 = call ptr @fn_emit_bind(ptr %t21) store ptr %t22, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval ret ptr %t23 } define ptr @fn_vec_x(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str3367, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str3368) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @lp_str_concat(ptr @.str3369, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str3370) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_vec_y(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str3371, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str3372) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define i32 @fn_is_vector_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t30 = alloca i32 %t55 = alloca i32 %t56 = alloca i32 %t57 = alloca i32 %t82 = alloca i32 %t83 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str3373) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str3374) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str3375) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str3376) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str3377) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t30 br i1 %t33, label %scend10, label %sc9 sc9: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str3378) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t30 br label %scend10 scend10: %t39 = load i32, ptr %t30 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t29 br i1 %t40, label %scend12, label %sc11 sc11: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str3379) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t29 br label %scend12 scend12: %t46 = load i32, ptr %t29 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t28 br i1 %t47, label %scend14, label %sc13 sc13: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str3380) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t28 br label %scend14 scend14: %t53 = load i32, ptr %t28 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: %t58 = load ptr, ptr %t0 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str3381) %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t57 br i1 %t60, label %scend19, label %sc18 sc18: %t62 = load ptr, ptr %t0 %t63 = call i32 @lp_str_eq(ptr %t62, ptr @.str3382) %t64 = icmp ne i32 %t63, 0 %t65 = zext i1 %t64 to i32 store i32 %t65, ptr %t57 br label %scend19 scend19: %t66 = load i32, ptr %t57 %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t56 br i1 %t67, label %scend21, label %sc20 sc20: %t69 = load ptr, ptr %t0 %t70 = call i32 @lp_str_eq(ptr %t69, ptr @.str3383) %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t56 br label %scend21 scend21: %t73 = load i32, ptr %t56 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t55 br i1 %t74, label %scend23, label %sc22 sc22: %t76 = load ptr, ptr %t0 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str3384) %t78 = icmp ne i32 %t77, 0 %t79 = zext i1 %t78 to i32 store i32 %t79, ptr %t55 br label %scend23 scend23: %t80 = load i32, ptr %t55 %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then24, label %ifend26 then24: store i32 1, ptr %retval br label %ret ifend26: %t84 = load ptr, ptr %t0 %t85 = call i32 @lp_str_eq(ptr %t84, ptr @.str3385) %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t83 br i1 %t86, label %scend28, label %sc27 sc27: %t88 = load ptr, ptr %t0 %t89 = call i32 @lp_str_eq(ptr %t88, ptr @.str3386) %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 store i32 %t91, ptr %t83 br label %scend28 scend28: %t92 = load i32, ptr %t83 %t93 = icmp ne i32 %t92, 0 %t94 = zext i1 %t93 to i32 store i32 %t94, ptr %t82 br i1 %t93, label %scend30, label %sc29 sc29: %t95 = load ptr, ptr %t0 %t96 = call i32 @lp_str_eq(ptr %t95, ptr @.str3387) %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t82 br label %scend30 scend30: %t99 = load i32, ptr %t82 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then31, label %ifend33 then31: store i32 1, ptr %retval br label %ret ifend33: store i32 0, ptr %retval br label %ret ret: %t101 = load i32, ptr %retval ret i32 %t101 } define ptr @fn_emit_vector_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t21 = alloca ptr %t34 = alloca ptr %t58 = alloca ptr %t79 = alloca ptr %t100 = alloca ptr %t113 = alloca ptr %t118 = alloca ptr %t123 = alloca ptr %t128 = alloca ptr %t133 = alloca ptr %t140 = alloca ptr %t147 = alloca ptr %t167 = alloca ptr %t180 = alloca ptr %t185 = alloca ptr %t190 = alloca ptr %t195 = alloca ptr %t200 = alloca ptr %t207 = alloca ptr %t214 = alloca ptr %t234 = alloca ptr %t247 = alloca ptr %t252 = alloca ptr %t257 = alloca ptr %t263 = alloca ptr %t269 = alloca ptr %t289 = alloca ptr %t302 = alloca ptr %t307 = alloca ptr %t312 = alloca ptr %t317 = alloca ptr %t322 = alloca ptr %t326 = alloca ptr %t330 = alloca ptr %t353 = alloca ptr %t358 = alloca ptr %t363 = alloca ptr %t367 = alloca ptr %t371 = alloca ptr %t378 = alloca ptr %t399 = alloca ptr %t412 = alloca ptr %t417 = alloca ptr %t422 = alloca ptr %t427 = alloca ptr %t432 = alloca ptr %t439 = alloca ptr %t446 = alloca ptr %t450 = alloca ptr %t454 = alloca ptr %t461 = alloca ptr %t482 = alloca ptr %t487 = alloca ptr %t492 = alloca ptr %t496 = alloca ptr %t500 = alloca ptr %t507 = alloca ptr %t512 = alloca ptr %t517 = alloca ptr %t524 = alloca ptr %t527 = alloca ptr %t531 = alloca ptr %t535 = alloca ptr %t555 = alloca ptr %t568 = alloca ptr %t575 = alloca ptr %t582 = alloca ptr %t587 = alloca ptr %t592 = alloca ptr %t597 = alloca ptr %t601 = alloca ptr %t605 = alloca ptr %t609 = alloca ptr %t613 = alloca ptr %t620 = alloca ptr %t627 = alloca ptr %t647 = alloca ptr %t652 = alloca ptr %t657 = alloca ptr %t681 = alloca ptr %t688 = alloca ptr %t695 = alloca ptr %t700 = alloca ptr %t717 = alloca ptr %t730 = alloca ptr %t743 = alloca ptr %t748 = alloca ptr %t753 = alloca ptr %t758 = alloca ptr %t763 = alloca ptr %t770 = alloca ptr %t777 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str3388) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_val(ptr @.str3389, ptr @.str3390) store ptr %t5, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str3391) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then3, label %ifend5 then3: %t9 = load ptr, ptr %t1 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 0, %t15 br i1 %t16, label %ixok6, label %ixbad7 ixbad7: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str3392, i32 0, i32 %t15) call void @exit(i32 1) unreachable ixok6: %t18 = getelementptr inbounds ptr, ptr %t13, i32 0 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_emit_expr(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t1 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 7 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 1, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str3393, i32 1, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 1 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_emit_expr(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t21 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t34 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_vec_pack(ptr %t37, ptr %t40) %t42 = call ptr @fn_val(ptr %t41, ptr @.str3394) store ptr %t42, ptr %retval br label %ret ifend5: %t43 = load ptr, ptr %t0 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str3395) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then10, label %ifend12 then10: %t46 = load ptr, ptr %t1 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 7 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 0, %t52 br i1 %t53, label %ixok13, label %ixbad14 ixbad14: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str3396, i32 0, i32 %t52) call void @exit(i32 1) unreachable ixok13: %t55 = getelementptr inbounds ptr, ptr %t50, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_emit_expr(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_vec_x(ptr %t61) %t63 = call ptr @fn_val(ptr %t62, ptr @.str3397) store ptr %t63, ptr %retval br label %ret ifend12: %t64 = load ptr, ptr %t0 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str3398) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then15, label %ifend17 then15: %t67 = load ptr, ptr %t1 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 7 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp ult i32 0, %t73 br i1 %t74, label %ixok18, label %ixbad19 ixbad19: %t75 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t75, ptr @.fmt_bounds, ptr @.str3399, i32 0, i32 %t73) call void @exit(i32 1) unreachable ixok18: %t76 = getelementptr inbounds ptr, ptr %t71, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_emit_expr(ptr %t77) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 0 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_vec_y(ptr %t82) %t84 = call ptr @fn_val(ptr %t83, ptr @.str3400) store ptr %t84, ptr %retval br label %ret ifend17: %t85 = load ptr, ptr %t0 %t86 = call i32 @lp_str_eq(ptr %t85, ptr @.str3401) %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then20, label %ifend22 then20: %t88 = load ptr, ptr %t1 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 7 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t94 = load i32, ptr %t93 %t95 = icmp ult i32 0, %t94 br i1 %t95, label %ixok23, label %ixbad24 ixbad24: %t96 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t96, ptr @.fmt_bounds, ptr @.str3402, i32 0, i32 %t94) call void @exit(i32 1) unreachable ixok23: %t97 = getelementptr inbounds ptr, ptr %t92, i32 0 %t98 = load ptr, ptr %t97 %t99 = call ptr @fn_emit_expr(ptr %t98) store ptr %t99, ptr %t100 %t101 = load ptr, ptr %t1 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 7 %t103 = load ptr, ptr %t102 %t104 = getelementptr inbounds %LSlice, ptr %t103, i32 0, i32 0 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %LSlice, ptr %t103, i32 0, i32 1 %t107 = load i32, ptr %t106 %t108 = icmp ult i32 1, %t107 br i1 %t108, label %ixok25, label %ixbad26 ixbad26: %t109 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t109, ptr @.fmt_bounds, ptr @.str3403, i32 1, i32 %t107) call void @exit(i32 1) unreachable ixok25: %t110 = getelementptr inbounds ptr, ptr %t105, i32 1 %t111 = load ptr, ptr %t110 %t112 = call ptr @fn_emit_expr(ptr %t111) store ptr %t112, ptr %t113 %t114 = load ptr, ptr %t100 %t115 = getelementptr inbounds %Cmp_Val, ptr %t114, i32 0, i32 0 %t116 = load ptr, ptr %t115 %t117 = call ptr @fn_vec_x(ptr %t116) store ptr %t117, ptr %t118 %t119 = load ptr, ptr %t100 %t120 = getelementptr inbounds %Cmp_Val, ptr %t119, i32 0, i32 0 %t121 = load ptr, ptr %t120 %t122 = call ptr @fn_vec_y(ptr %t121) store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t113 %t125 = getelementptr inbounds %Cmp_Val, ptr %t124, i32 0, i32 0 %t126 = load ptr, ptr %t125 %t127 = call ptr @fn_vec_x(ptr %t126) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t113 %t130 = getelementptr inbounds %Cmp_Val, ptr %t129, i32 0, i32 0 %t131 = load ptr, ptr %t130 %t132 = call ptr @fn_vec_y(ptr %t131) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t118 %t135 = call ptr @lp_str_concat(ptr @.str3404, ptr %t134) %t136 = call ptr @lp_str_concat(ptr %t135, ptr @.str3405) %t137 = load ptr, ptr %t128 %t138 = call ptr @lp_str_concat(ptr %t136, ptr %t137) %t139 = call ptr @fn_emit_bind(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t123 %t142 = call ptr @lp_str_concat(ptr @.str3406, ptr %t141) %t143 = call ptr @lp_str_concat(ptr %t142, ptr @.str3407) %t144 = load ptr, ptr %t133 %t145 = call ptr @lp_str_concat(ptr %t143, ptr %t144) %t146 = call ptr @fn_emit_bind(ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t140 %t149 = load ptr, ptr %t147 %t150 = call ptr @fn_vec_pack(ptr %t148, ptr %t149) %t151 = call ptr @fn_val(ptr %t150, ptr @.str3408) store ptr %t151, ptr %retval br label %ret ifend22: %t152 = load ptr, ptr %t0 %t153 = call i32 @lp_str_eq(ptr %t152, ptr @.str3409) %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then27, label %ifend29 then27: %t155 = load ptr, ptr %t1 %t156 = getelementptr inbounds %Cmp_Node, ptr %t155, i32 0, i32 7 %t157 = load ptr, ptr %t156 %t158 = getelementptr inbounds %LSlice, ptr %t157, i32 0, i32 0 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %LSlice, ptr %t157, i32 0, i32 1 %t161 = load i32, ptr %t160 %t162 = icmp ult i32 0, %t161 br i1 %t162, label %ixok30, label %ixbad31 ixbad31: %t163 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t163, ptr @.fmt_bounds, ptr @.str3410, i32 0, i32 %t161) call void @exit(i32 1) unreachable ixok30: %t164 = getelementptr inbounds ptr, ptr %t159, i32 0 %t165 = load ptr, ptr %t164 %t166 = call ptr @fn_emit_expr(ptr %t165) store ptr %t166, ptr %t167 %t168 = load ptr, ptr %t1 %t169 = getelementptr inbounds %Cmp_Node, ptr %t168, i32 0, i32 7 %t170 = load ptr, ptr %t169 %t171 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 1 %t174 = load i32, ptr %t173 %t175 = icmp ult i32 1, %t174 br i1 %t175, label %ixok32, label %ixbad33 ixbad33: %t176 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t176, ptr @.fmt_bounds, ptr @.str3411, i32 1, i32 %t174) call void @exit(i32 1) unreachable ixok32: %t177 = getelementptr inbounds ptr, ptr %t172, i32 1 %t178 = load ptr, ptr %t177 %t179 = call ptr @fn_emit_expr(ptr %t178) store ptr %t179, ptr %t180 %t181 = load ptr, ptr %t167 %t182 = getelementptr inbounds %Cmp_Val, ptr %t181, i32 0, i32 0 %t183 = load ptr, ptr %t182 %t184 = call ptr @fn_vec_x(ptr %t183) store ptr %t184, ptr %t185 %t186 = load ptr, ptr %t167 %t187 = getelementptr inbounds %Cmp_Val, ptr %t186, i32 0, i32 0 %t188 = load ptr, ptr %t187 %t189 = call ptr @fn_vec_y(ptr %t188) store ptr %t189, ptr %t190 %t191 = load ptr, ptr %t180 %t192 = getelementptr inbounds %Cmp_Val, ptr %t191, i32 0, i32 0 %t193 = load ptr, ptr %t192 %t194 = call ptr @fn_vec_x(ptr %t193) store ptr %t194, ptr %t195 %t196 = load ptr, ptr %t180 %t197 = getelementptr inbounds %Cmp_Val, ptr %t196, i32 0, i32 0 %t198 = load ptr, ptr %t197 %t199 = call ptr @fn_vec_y(ptr %t198) store ptr %t199, ptr %t200 %t201 = load ptr, ptr %t185 %t202 = call ptr @lp_str_concat(ptr @.str3412, ptr %t201) %t203 = call ptr @lp_str_concat(ptr %t202, ptr @.str3413) %t204 = load ptr, ptr %t195 %t205 = call ptr @lp_str_concat(ptr %t203, ptr %t204) %t206 = call ptr @fn_emit_bind(ptr %t205) store ptr %t206, ptr %t207 %t208 = load ptr, ptr %t190 %t209 = call ptr @lp_str_concat(ptr @.str3414, ptr %t208) %t210 = call ptr @lp_str_concat(ptr %t209, ptr @.str3415) %t211 = load ptr, ptr %t200 %t212 = call ptr @lp_str_concat(ptr %t210, ptr %t211) %t213 = call ptr @fn_emit_bind(ptr %t212) store ptr %t213, ptr %t214 %t215 = load ptr, ptr %t207 %t216 = load ptr, ptr %t214 %t217 = call ptr @fn_vec_pack(ptr %t215, ptr %t216) %t218 = call ptr @fn_val(ptr %t217, ptr @.str3416) store ptr %t218, ptr %retval br label %ret ifend29: %t219 = load ptr, ptr %t0 %t220 = call i32 @lp_str_eq(ptr %t219, ptr @.str3417) %t221 = icmp ne i32 %t220, 0 br i1 %t221, label %then34, label %ifend36 then34: %t222 = load ptr, ptr %t1 %t223 = getelementptr inbounds %Cmp_Node, ptr %t222, i32 0, i32 7 %t224 = load ptr, ptr %t223 %t225 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 0 %t226 = load ptr, ptr %t225 %t227 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 1 %t228 = load i32, ptr %t227 %t229 = icmp ult i32 0, %t228 br i1 %t229, label %ixok37, label %ixbad38 ixbad38: %t230 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t230, ptr @.fmt_bounds, ptr @.str3418, i32 0, i32 %t228) call void @exit(i32 1) unreachable ixok37: %t231 = getelementptr inbounds ptr, ptr %t226, i32 0 %t232 = load ptr, ptr %t231 %t233 = call ptr @fn_emit_expr(ptr %t232) store ptr %t233, ptr %t234 %t235 = load ptr, ptr %t1 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 7 %t237 = load ptr, ptr %t236 %t238 = getelementptr inbounds %LSlice, ptr %t237, i32 0, i32 0 %t239 = load ptr, ptr %t238 %t240 = getelementptr inbounds %LSlice, ptr %t237, i32 0, i32 1 %t241 = load i32, ptr %t240 %t242 = icmp ult i32 1, %t241 br i1 %t242, label %ixok39, label %ixbad40 ixbad40: %t243 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t243, ptr @.fmt_bounds, ptr @.str3419, i32 1, i32 %t241) call void @exit(i32 1) unreachable ixok39: %t244 = getelementptr inbounds ptr, ptr %t239, i32 1 %t245 = load ptr, ptr %t244 %t246 = call ptr @fn_emit_expr(ptr %t245) store ptr %t246, ptr %t247 %t248 = load ptr, ptr %t234 %t249 = getelementptr inbounds %Cmp_Val, ptr %t248, i32 0, i32 0 %t250 = load ptr, ptr %t249 %t251 = call ptr @fn_vec_x(ptr %t250) store ptr %t251, ptr %t252 %t253 = load ptr, ptr %t234 %t254 = getelementptr inbounds %Cmp_Val, ptr %t253, i32 0, i32 0 %t255 = load ptr, ptr %t254 %t256 = call ptr @fn_vec_y(ptr %t255) store ptr %t256, ptr %t257 %t258 = load ptr, ptr %t252 %t259 = load ptr, ptr %t247 %t260 = getelementptr inbounds %Cmp_Val, ptr %t259, i32 0, i32 0 %t261 = load ptr, ptr %t260 %t262 = call ptr @fn_fx_mul_code(ptr %t258, ptr %t261) store ptr %t262, ptr %t263 %t264 = load ptr, ptr %t257 %t265 = load ptr, ptr %t247 %t266 = getelementptr inbounds %Cmp_Val, ptr %t265, i32 0, i32 0 %t267 = load ptr, ptr %t266 %t268 = call ptr @fn_fx_mul_code(ptr %t264, ptr %t267) store ptr %t268, ptr %t269 %t270 = load ptr, ptr %t263 %t271 = load ptr, ptr %t269 %t272 = call ptr @fn_vec_pack(ptr %t270, ptr %t271) %t273 = call ptr @fn_val(ptr %t272, ptr @.str3420) store ptr %t273, ptr %retval br label %ret ifend36: %t274 = load ptr, ptr %t0 %t275 = call i32 @lp_str_eq(ptr %t274, ptr @.str3421) %t276 = icmp ne i32 %t275, 0 br i1 %t276, label %then41, label %ifend43 then41: %t277 = load ptr, ptr %t1 %t278 = getelementptr inbounds %Cmp_Node, ptr %t277, i32 0, i32 7 %t279 = load ptr, ptr %t278 %t280 = getelementptr inbounds %LSlice, ptr %t279, i32 0, i32 0 %t281 = load ptr, ptr %t280 %t282 = getelementptr inbounds %LSlice, ptr %t279, i32 0, i32 1 %t283 = load i32, ptr %t282 %t284 = icmp ult i32 0, %t283 br i1 %t284, label %ixok44, label %ixbad45 ixbad45: %t285 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t285, ptr @.fmt_bounds, ptr @.str3422, i32 0, i32 %t283) call void @exit(i32 1) unreachable ixok44: %t286 = getelementptr inbounds ptr, ptr %t281, i32 0 %t287 = load ptr, ptr %t286 %t288 = call ptr @fn_emit_expr(ptr %t287) store ptr %t288, ptr %t289 %t290 = load ptr, ptr %t1 %t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 7 %t292 = load ptr, ptr %t291 %t293 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 0 %t294 = load ptr, ptr %t293 %t295 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 1 %t296 = load i32, ptr %t295 %t297 = icmp ult i32 1, %t296 br i1 %t297, label %ixok46, label %ixbad47 ixbad47: %t298 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t298, ptr @.fmt_bounds, ptr @.str3423, i32 1, i32 %t296) call void @exit(i32 1) unreachable ixok46: %t299 = getelementptr inbounds ptr, ptr %t294, i32 1 %t300 = load ptr, ptr %t299 %t301 = call ptr @fn_emit_expr(ptr %t300) store ptr %t301, ptr %t302 %t303 = load ptr, ptr %t289 %t304 = getelementptr inbounds %Cmp_Val, ptr %t303, i32 0, i32 0 %t305 = load ptr, ptr %t304 %t306 = call ptr @fn_vec_x(ptr %t305) store ptr %t306, ptr %t307 %t308 = load ptr, ptr %t289 %t309 = getelementptr inbounds %Cmp_Val, ptr %t308, i32 0, i32 0 %t310 = load ptr, ptr %t309 %t311 = call ptr @fn_vec_y(ptr %t310) store ptr %t311, ptr %t312 %t313 = load ptr, ptr %t302 %t314 = getelementptr inbounds %Cmp_Val, ptr %t313, i32 0, i32 0 %t315 = load ptr, ptr %t314 %t316 = call ptr @fn_vec_x(ptr %t315) store ptr %t316, ptr %t317 %t318 = load ptr, ptr %t302 %t319 = getelementptr inbounds %Cmp_Val, ptr %t318, i32 0, i32 0 %t320 = load ptr, ptr %t319 %t321 = call ptr @fn_vec_y(ptr %t320) store ptr %t321, ptr %t322 %t323 = load ptr, ptr %t307 %t324 = load ptr, ptr %t317 %t325 = call ptr @fn_fx_mul_code(ptr %t323, ptr %t324) store ptr %t325, ptr %t326 %t327 = load ptr, ptr %t312 %t328 = load ptr, ptr %t322 %t329 = call ptr @fn_fx_mul_code(ptr %t327, ptr %t328) store ptr %t329, ptr %t330 %t331 = load ptr, ptr %t326 %t332 = call ptr @lp_str_concat(ptr @.str3424, ptr %t331) %t333 = call ptr @lp_str_concat(ptr %t332, ptr @.str3425) %t334 = load ptr, ptr %t330 %t335 = call ptr @lp_str_concat(ptr %t333, ptr %t334) %t336 = call ptr @fn_emit_bind(ptr %t335) %t337 = call ptr @fn_val(ptr %t336, ptr @.str3426) store ptr %t337, ptr %retval br label %ret ifend43: %t338 = load ptr, ptr %t0 %t339 = call i32 @lp_str_eq(ptr %t338, ptr @.str3427) %t340 = icmp ne i32 %t339, 0 br i1 %t340, label %then48, label %ifend50 then48: store i32 1, ptr @g_g_uses_mathrt %t341 = load ptr, ptr %t1 %t342 = getelementptr inbounds %Cmp_Node, ptr %t341, i32 0, i32 7 %t343 = load ptr, ptr %t342 %t344 = getelementptr inbounds %LSlice, ptr %t343, i32 0, i32 0 %t345 = load ptr, ptr %t344 %t346 = getelementptr inbounds %LSlice, ptr %t343, i32 0, i32 1 %t347 = load i32, ptr %t346 %t348 = icmp ult i32 0, %t347 br i1 %t348, label %ixok51, label %ixbad52 ixbad52: %t349 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t349, ptr @.fmt_bounds, ptr @.str3428, i32 0, i32 %t347) call void @exit(i32 1) unreachable ixok51: %t350 = getelementptr inbounds ptr, ptr %t345, i32 0 %t351 = load ptr, ptr %t350 %t352 = call ptr @fn_emit_expr(ptr %t351) store ptr %t352, ptr %t353 %t354 = load ptr, ptr %t353 %t355 = getelementptr inbounds %Cmp_Val, ptr %t354, i32 0, i32 0 %t356 = load ptr, ptr %t355 %t357 = call ptr @fn_vec_x(ptr %t356) store ptr %t357, ptr %t358 %t359 = load ptr, ptr %t353 %t360 = getelementptr inbounds %Cmp_Val, ptr %t359, i32 0, i32 0 %t361 = load ptr, ptr %t360 %t362 = call ptr @fn_vec_y(ptr %t361) store ptr %t362, ptr %t363 %t364 = load ptr, ptr %t358 %t365 = load ptr, ptr %t358 %t366 = call ptr @fn_fx_mul_code(ptr %t364, ptr %t365) store ptr %t366, ptr %t367 %t368 = load ptr, ptr %t363 %t369 = load ptr, ptr %t363 %t370 = call ptr @fn_fx_mul_code(ptr %t368, ptr %t369) store ptr %t370, ptr %t371 %t372 = load ptr, ptr %t367 %t373 = call ptr @lp_str_concat(ptr @.str3429, ptr %t372) %t374 = call ptr @lp_str_concat(ptr %t373, ptr @.str3430) %t375 = load ptr, ptr %t371 %t376 = call ptr @lp_str_concat(ptr %t374, ptr %t375) %t377 = call ptr @fn_emit_bind(ptr %t376) store ptr %t377, ptr %t378 %t379 = load ptr, ptr %t378 %t380 = call ptr @lp_str_concat(ptr @.str3431, ptr %t379) %t381 = call ptr @lp_str_concat(ptr %t380, ptr @.str3432) %t382 = call ptr @fn_emit_bind(ptr %t381) %t383 = call ptr @fn_val(ptr %t382, ptr @.str3433) store ptr %t383, ptr %retval br label %ret ifend50: %t384 = load ptr, ptr %t0 %t385 = call i32 @lp_str_eq(ptr %t384, ptr @.str3434) %t386 = icmp ne i32 %t385, 0 br i1 %t386, label %then53, label %ifend55 then53: store i32 1, ptr @g_g_uses_mathrt %t387 = load ptr, ptr %t1 %t388 = getelementptr inbounds %Cmp_Node, ptr %t387, i32 0, i32 7 %t389 = load ptr, ptr %t388 %t390 = getelementptr inbounds %LSlice, ptr %t389, i32 0, i32 0 %t391 = load ptr, ptr %t390 %t392 = getelementptr inbounds %LSlice, ptr %t389, i32 0, i32 1 %t393 = load i32, ptr %t392 %t394 = icmp ult i32 0, %t393 br i1 %t394, label %ixok56, label %ixbad57 ixbad57: %t395 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t395, ptr @.fmt_bounds, ptr @.str3435, i32 0, i32 %t393) call void @exit(i32 1) unreachable ixok56: %t396 = getelementptr inbounds ptr, ptr %t391, i32 0 %t397 = load ptr, ptr %t396 %t398 = call ptr @fn_emit_expr(ptr %t397) store ptr %t398, ptr %t399 %t400 = load ptr, ptr %t1 %t401 = getelementptr inbounds %Cmp_Node, ptr %t400, i32 0, i32 7 %t402 = load ptr, ptr %t401 %t403 = getelementptr inbounds %LSlice, ptr %t402, i32 0, i32 0 %t404 = load ptr, ptr %t403 %t405 = getelementptr inbounds %LSlice, ptr %t402, i32 0, i32 1 %t406 = load i32, ptr %t405 %t407 = icmp ult i32 1, %t406 br i1 %t407, label %ixok58, label %ixbad59 ixbad59: %t408 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t408, ptr @.fmt_bounds, ptr @.str3436, i32 1, i32 %t406) call void @exit(i32 1) unreachable ixok58: %t409 = getelementptr inbounds ptr, ptr %t404, i32 1 %t410 = load ptr, ptr %t409 %t411 = call ptr @fn_emit_expr(ptr %t410) store ptr %t411, ptr %t412 %t413 = load ptr, ptr %t399 %t414 = getelementptr inbounds %Cmp_Val, ptr %t413, i32 0, i32 0 %t415 = load ptr, ptr %t414 %t416 = call ptr @fn_vec_x(ptr %t415) store ptr %t416, ptr %t417 %t418 = load ptr, ptr %t399 %t419 = getelementptr inbounds %Cmp_Val, ptr %t418, i32 0, i32 0 %t420 = load ptr, ptr %t419 %t421 = call ptr @fn_vec_y(ptr %t420) store ptr %t421, ptr %t422 %t423 = load ptr, ptr %t412 %t424 = getelementptr inbounds %Cmp_Val, ptr %t423, i32 0, i32 0 %t425 = load ptr, ptr %t424 %t426 = call ptr @fn_vec_x(ptr %t425) store ptr %t426, ptr %t427 %t428 = load ptr, ptr %t412 %t429 = getelementptr inbounds %Cmp_Val, ptr %t428, i32 0, i32 0 %t430 = load ptr, ptr %t429 %t431 = call ptr @fn_vec_y(ptr %t430) store ptr %t431, ptr %t432 %t433 = load ptr, ptr %t417 %t434 = call ptr @lp_str_concat(ptr @.str3437, ptr %t433) %t435 = call ptr @lp_str_concat(ptr %t434, ptr @.str3438) %t436 = load ptr, ptr %t427 %t437 = call ptr @lp_str_concat(ptr %t435, ptr %t436) %t438 = call ptr @fn_emit_bind(ptr %t437) store ptr %t438, ptr %t439 %t440 = load ptr, ptr %t422 %t441 = call ptr @lp_str_concat(ptr @.str3439, ptr %t440) %t442 = call ptr @lp_str_concat(ptr %t441, ptr @.str3440) %t443 = load ptr, ptr %t432 %t444 = call ptr @lp_str_concat(ptr %t442, ptr %t443) %t445 = call ptr @fn_emit_bind(ptr %t444) store ptr %t445, ptr %t446 %t447 = load ptr, ptr %t439 %t448 = load ptr, ptr %t439 %t449 = call ptr @fn_fx_mul_code(ptr %t447, ptr %t448) store ptr %t449, ptr %t450 %t451 = load ptr, ptr %t446 %t452 = load ptr, ptr %t446 %t453 = call ptr @fn_fx_mul_code(ptr %t451, ptr %t452) store ptr %t453, ptr %t454 %t455 = load ptr, ptr %t450 %t456 = call ptr @lp_str_concat(ptr @.str3441, ptr %t455) %t457 = call ptr @lp_str_concat(ptr %t456, ptr @.str3442) %t458 = load ptr, ptr %t454 %t459 = call ptr @lp_str_concat(ptr %t457, ptr %t458) %t460 = call ptr @fn_emit_bind(ptr %t459) store ptr %t460, ptr %t461 %t462 = load ptr, ptr %t461 %t463 = call ptr @lp_str_concat(ptr @.str3443, ptr %t462) %t464 = call ptr @lp_str_concat(ptr %t463, ptr @.str3444) %t465 = call ptr @fn_emit_bind(ptr %t464) %t466 = call ptr @fn_val(ptr %t465, ptr @.str3445) store ptr %t466, ptr %retval br label %ret ifend55: %t467 = load ptr, ptr %t0 %t468 = call i32 @lp_str_eq(ptr %t467, ptr @.str3446) %t469 = icmp ne i32 %t468, 0 br i1 %t469, label %then60, label %ifend62 then60: store i32 1, ptr @g_g_uses_mathrt %t470 = load ptr, ptr %t1 %t471 = getelementptr inbounds %Cmp_Node, ptr %t470, i32 0, i32 7 %t472 = load ptr, ptr %t471 %t473 = getelementptr inbounds %LSlice, ptr %t472, i32 0, i32 0 %t474 = load ptr, ptr %t473 %t475 = getelementptr inbounds %LSlice, ptr %t472, i32 0, i32 1 %t476 = load i32, ptr %t475 %t477 = icmp ult i32 0, %t476 br i1 %t477, label %ixok63, label %ixbad64 ixbad64: %t478 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t478, ptr @.fmt_bounds, ptr @.str3447, i32 0, i32 %t476) call void @exit(i32 1) unreachable ixok63: %t479 = getelementptr inbounds ptr, ptr %t474, i32 0 %t480 = load ptr, ptr %t479 %t481 = call ptr @fn_emit_expr(ptr %t480) store ptr %t481, ptr %t482 %t483 = load ptr, ptr %t482 %t484 = getelementptr inbounds %Cmp_Val, ptr %t483, i32 0, i32 0 %t485 = load ptr, ptr %t484 %t486 = call ptr @fn_vec_x(ptr %t485) store ptr %t486, ptr %t487 %t488 = load ptr, ptr %t482 %t489 = getelementptr inbounds %Cmp_Val, ptr %t488, i32 0, i32 0 %t490 = load ptr, ptr %t489 %t491 = call ptr @fn_vec_y(ptr %t490) store ptr %t491, ptr %t492 %t493 = load ptr, ptr %t487 %t494 = load ptr, ptr %t487 %t495 = call ptr @fn_fx_mul_code(ptr %t493, ptr %t494) store ptr %t495, ptr %t496 %t497 = load ptr, ptr %t492 %t498 = load ptr, ptr %t492 %t499 = call ptr @fn_fx_mul_code(ptr %t497, ptr %t498) store ptr %t499, ptr %t500 %t501 = load ptr, ptr %t496 %t502 = call ptr @lp_str_concat(ptr @.str3448, ptr %t501) %t503 = call ptr @lp_str_concat(ptr %t502, ptr @.str3449) %t504 = load ptr, ptr %t500 %t505 = call ptr @lp_str_concat(ptr %t503, ptr %t504) %t506 = call ptr @fn_emit_bind(ptr %t505) store ptr %t506, ptr %t507 %t508 = load ptr, ptr %t507 %t509 = call ptr @lp_str_concat(ptr @.str3450, ptr %t508) %t510 = call ptr @lp_str_concat(ptr %t509, ptr @.str3451) %t511 = call ptr @fn_emit_bind(ptr %t510) store ptr %t511, ptr %t512 %t513 = load ptr, ptr %t512 %t514 = call ptr @lp_str_concat(ptr @.str3452, ptr %t513) %t515 = call ptr @lp_str_concat(ptr %t514, ptr @.str3453) %t516 = call ptr @fn_emit_bind(ptr %t515) store ptr %t516, ptr %t517 %t518 = load ptr, ptr %t517 %t519 = call ptr @lp_str_concat(ptr @.str3454, ptr %t518) %t520 = call ptr @lp_str_concat(ptr %t519, ptr @.str3455) %t521 = load ptr, ptr %t512 %t522 = call ptr @lp_str_concat(ptr %t520, ptr %t521) %t523 = call ptr @fn_emit_bind(ptr %t522) store ptr %t523, ptr %t524 %t525 = load ptr, ptr %t524 %t526 = call ptr @fn_fx_div_code(ptr @.str3456, ptr %t525) store ptr %t526, ptr %t527 %t528 = load ptr, ptr %t487 %t529 = load ptr, ptr %t527 %t530 = call ptr @fn_fx_mul_code(ptr %t528, ptr %t529) store ptr %t530, ptr %t531 %t532 = load ptr, ptr %t492 %t533 = load ptr, ptr %t527 %t534 = call ptr @fn_fx_mul_code(ptr %t532, ptr %t533) store ptr %t534, ptr %t535 %t536 = load ptr, ptr %t531 %t537 = load ptr, ptr %t535 %t538 = call ptr @fn_vec_pack(ptr %t536, ptr %t537) %t539 = call ptr @fn_val(ptr %t538, ptr @.str3457) store ptr %t539, ptr %retval br label %ret ifend62: %t540 = load ptr, ptr %t0 %t541 = call i32 @lp_str_eq(ptr %t540, ptr @.str3458) %t542 = icmp ne i32 %t541, 0 br i1 %t542, label %then65, label %ifend67 then65: store i32 1, ptr @g_g_uses_mathrt %t543 = load ptr, ptr %t1 %t544 = getelementptr inbounds %Cmp_Node, ptr %t543, i32 0, i32 7 %t545 = load ptr, ptr %t544 %t546 = getelementptr inbounds %LSlice, ptr %t545, i32 0, i32 0 %t547 = load ptr, ptr %t546 %t548 = getelementptr inbounds %LSlice, ptr %t545, i32 0, i32 1 %t549 = load i32, ptr %t548 %t550 = icmp ult i32 0, %t549 br i1 %t550, label %ixok68, label %ixbad69 ixbad69: %t551 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t551, ptr @.fmt_bounds, ptr @.str3459, i32 0, i32 %t549) call void @exit(i32 1) unreachable ixok68: %t552 = getelementptr inbounds ptr, ptr %t547, i32 0 %t553 = load ptr, ptr %t552 %t554 = call ptr @fn_emit_expr(ptr %t553) store ptr %t554, ptr %t555 %t556 = load ptr, ptr %t1 %t557 = getelementptr inbounds %Cmp_Node, ptr %t556, i32 0, i32 7 %t558 = load ptr, ptr %t557 %t559 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 0 %t560 = load ptr, ptr %t559 %t561 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 1 %t562 = load i32, ptr %t561 %t563 = icmp ult i32 1, %t562 br i1 %t563, label %ixok70, label %ixbad71 ixbad71: %t564 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t564, ptr @.fmt_bounds, ptr @.str3460, i32 1, i32 %t562) call void @exit(i32 1) unreachable ixok70: %t565 = getelementptr inbounds ptr, ptr %t560, i32 1 %t566 = load ptr, ptr %t565 %t567 = call ptr @fn_emit_expr(ptr %t566) store ptr %t567, ptr %t568 %t569 = load ptr, ptr %t568 %t570 = getelementptr inbounds %Cmp_Val, ptr %t569, i32 0, i32 0 %t571 = load ptr, ptr %t570 %t572 = call ptr @lp_str_concat(ptr @.str3461, ptr %t571) %t573 = call ptr @lp_str_concat(ptr %t572, ptr @.str3462) %t574 = call ptr @fn_emit_bind(ptr %t573) store ptr %t574, ptr %t575 %t576 = load ptr, ptr %t568 %t577 = getelementptr inbounds %Cmp_Val, ptr %t576, i32 0, i32 0 %t578 = load ptr, ptr %t577 %t579 = call ptr @lp_str_concat(ptr @.str3463, ptr %t578) %t580 = call ptr @lp_str_concat(ptr %t579, ptr @.str3464) %t581 = call ptr @fn_emit_bind(ptr %t580) store ptr %t581, ptr %t582 %t583 = load ptr, ptr %t582 %t584 = call ptr @lp_str_concat(ptr @.str3465, ptr %t583) %t585 = call ptr @lp_str_concat(ptr %t584, ptr @.str3466) %t586 = call ptr @fn_emit_bind(ptr %t585) store ptr %t586, ptr %t587 %t588 = load ptr, ptr %t555 %t589 = getelementptr inbounds %Cmp_Val, ptr %t588, i32 0, i32 0 %t590 = load ptr, ptr %t589 %t591 = call ptr @fn_vec_x(ptr %t590) store ptr %t591, ptr %t592 %t593 = load ptr, ptr %t555 %t594 = getelementptr inbounds %Cmp_Val, ptr %t593, i32 0, i32 0 %t595 = load ptr, ptr %t594 %t596 = call ptr @fn_vec_y(ptr %t595) store ptr %t596, ptr %t597 %t598 = load ptr, ptr %t592 %t599 = load ptr, ptr %t587 %t600 = call ptr @fn_fx_mul_code(ptr %t598, ptr %t599) store ptr %t600, ptr %t601 %t602 = load ptr, ptr %t597 %t603 = load ptr, ptr %t575 %t604 = call ptr @fn_fx_mul_code(ptr %t602, ptr %t603) store ptr %t604, ptr %t605 %t606 = load ptr, ptr %t592 %t607 = load ptr, ptr %t575 %t608 = call ptr @fn_fx_mul_code(ptr %t606, ptr %t607) store ptr %t608, ptr %t609 %t610 = load ptr, ptr %t597 %t611 = load ptr, ptr %t587 %t612 = call ptr @fn_fx_mul_code(ptr %t610, ptr %t611) store ptr %t612, ptr %t613 %t614 = load ptr, ptr %t601 %t615 = call ptr @lp_str_concat(ptr @.str3467, ptr %t614) %t616 = call ptr @lp_str_concat(ptr %t615, ptr @.str3468) %t617 = load ptr, ptr %t605 %t618 = call ptr @lp_str_concat(ptr %t616, ptr %t617) %t619 = call ptr @fn_emit_bind(ptr %t618) store ptr %t619, ptr %t620 %t621 = load ptr, ptr %t609 %t622 = call ptr @lp_str_concat(ptr @.str3469, ptr %t621) %t623 = call ptr @lp_str_concat(ptr %t622, ptr @.str3470) %t624 = load ptr, ptr %t613 %t625 = call ptr @lp_str_concat(ptr %t623, ptr %t624) %t626 = call ptr @fn_emit_bind(ptr %t625) store ptr %t626, ptr %t627 %t628 = load ptr, ptr %t620 %t629 = load ptr, ptr %t627 %t630 = call ptr @fn_vec_pack(ptr %t628, ptr %t629) %t631 = call ptr @fn_val(ptr %t630, ptr @.str3471) store ptr %t631, ptr %retval br label %ret ifend67: %t632 = load ptr, ptr %t0 %t633 = call i32 @lp_str_eq(ptr %t632, ptr @.str3472) %t634 = icmp ne i32 %t633, 0 br i1 %t634, label %then72, label %ifend74 then72: store i32 1, ptr @g_g_uses_mathrt %t635 = load ptr, ptr %t1 %t636 = getelementptr inbounds %Cmp_Node, ptr %t635, i32 0, i32 7 %t637 = load ptr, ptr %t636 %t638 = getelementptr inbounds %LSlice, ptr %t637, i32 0, i32 0 %t639 = load ptr, ptr %t638 %t640 = getelementptr inbounds %LSlice, ptr %t637, i32 0, i32 1 %t641 = load i32, ptr %t640 %t642 = icmp ult i32 0, %t641 br i1 %t642, label %ixok75, label %ixbad76 ixbad76: %t643 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t643, ptr @.fmt_bounds, ptr @.str3473, i32 0, i32 %t641) call void @exit(i32 1) unreachable ixok75: %t644 = getelementptr inbounds ptr, ptr %t639, i32 0 %t645 = load ptr, ptr %t644 %t646 = call ptr @fn_emit_expr(ptr %t645) store ptr %t646, ptr %t647 %t648 = load ptr, ptr %t647 %t649 = getelementptr inbounds %Cmp_Val, ptr %t648, i32 0, i32 0 %t650 = load ptr, ptr %t649 %t651 = call ptr @fn_vec_x(ptr %t650) store ptr %t651, ptr %t652 %t653 = load ptr, ptr %t647 %t654 = getelementptr inbounds %Cmp_Val, ptr %t653, i32 0, i32 0 %t655 = load ptr, ptr %t654 %t656 = call ptr @fn_vec_y(ptr %t655) store ptr %t656, ptr %t657 %t658 = load ptr, ptr %t657 %t659 = call ptr @lp_str_concat(ptr @.str3474, ptr %t658) %t660 = call ptr @lp_str_concat(ptr %t659, ptr @.str3475) %t661 = load ptr, ptr %t652 %t662 = call ptr @lp_str_concat(ptr %t660, ptr %t661) %t663 = call ptr @lp_str_concat(ptr %t662, ptr @.str3476) %t664 = call ptr @fn_emit_bind(ptr %t663) %t665 = call ptr @fn_val(ptr %t664, ptr @.str3477) store ptr %t665, ptr %retval br label %ret ifend74: %t666 = load ptr, ptr %t0 %t667 = call i32 @lp_str_eq(ptr %t666, ptr @.str3478) %t668 = icmp ne i32 %t667, 0 br i1 %t668, label %then77, label %ifend79 then77: store i32 1, ptr @g_g_uses_mathrt %t669 = load ptr, ptr %t1 %t670 = getelementptr inbounds %Cmp_Node, ptr %t669, i32 0, i32 7 %t671 = load ptr, ptr %t670 %t672 = getelementptr inbounds %LSlice, ptr %t671, i32 0, i32 0 %t673 = load ptr, ptr %t672 %t674 = getelementptr inbounds %LSlice, ptr %t671, i32 0, i32 1 %t675 = load i32, ptr %t674 %t676 = icmp ult i32 0, %t675 br i1 %t676, label %ixok80, label %ixbad81 ixbad81: %t677 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t677, ptr @.fmt_bounds, ptr @.str3479, i32 0, i32 %t675) call void @exit(i32 1) unreachable ixok80: %t678 = getelementptr inbounds ptr, ptr %t673, i32 0 %t679 = load ptr, ptr %t678 %t680 = call ptr @fn_emit_expr(ptr %t679) store ptr %t680, ptr %t681 %t682 = load ptr, ptr %t681 %t683 = getelementptr inbounds %Cmp_Val, ptr %t682, i32 0, i32 0 %t684 = load ptr, ptr %t683 %t685 = call ptr @lp_str_concat(ptr @.str3480, ptr %t684) %t686 = call ptr @lp_str_concat(ptr %t685, ptr @.str3481) %t687 = call ptr @fn_emit_bind(ptr %t686) store ptr %t687, ptr %t688 %t689 = load ptr, ptr %t681 %t690 = getelementptr inbounds %Cmp_Val, ptr %t689, i32 0, i32 0 %t691 = load ptr, ptr %t690 %t692 = call ptr @lp_str_concat(ptr @.str3482, ptr %t691) %t693 = call ptr @lp_str_concat(ptr %t692, ptr @.str3483) %t694 = call ptr @fn_emit_bind(ptr %t693) store ptr %t694, ptr %t695 %t696 = load ptr, ptr %t695 %t697 = call ptr @lp_str_concat(ptr @.str3484, ptr %t696) %t698 = call ptr @lp_str_concat(ptr %t697, ptr @.str3485) %t699 = call ptr @fn_emit_bind(ptr %t698) store ptr %t699, ptr %t700 %t701 = load ptr, ptr %t700 %t702 = load ptr, ptr %t688 %t703 = call ptr @fn_vec_pack(ptr %t701, ptr %t702) %t704 = call ptr @fn_val(ptr %t703, ptr @.str3486) store ptr %t704, ptr %retval br label %ret ifend79: %t705 = load ptr, ptr %t1 %t706 = getelementptr inbounds %Cmp_Node, ptr %t705, i32 0, i32 7 %t707 = load ptr, ptr %t706 %t708 = getelementptr inbounds %LSlice, ptr %t707, i32 0, i32 0 %t709 = load ptr, ptr %t708 %t710 = getelementptr inbounds %LSlice, ptr %t707, i32 0, i32 1 %t711 = load i32, ptr %t710 %t712 = icmp ult i32 0, %t711 br i1 %t712, label %ixok82, label %ixbad83 ixbad83: %t713 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t713, ptr @.fmt_bounds, ptr @.str3487, i32 0, i32 %t711) call void @exit(i32 1) unreachable ixok82: %t714 = getelementptr inbounds ptr, ptr %t709, i32 0 %t715 = load ptr, ptr %t714 %t716 = call ptr @fn_emit_expr(ptr %t715) store ptr %t716, ptr %t717 %t718 = load ptr, ptr %t1 %t719 = getelementptr inbounds %Cmp_Node, ptr %t718, i32 0, i32 7 %t720 = load ptr, ptr %t719 %t721 = getelementptr inbounds %LSlice, ptr %t720, i32 0, i32 0 %t722 = load ptr, ptr %t721 %t723 = getelementptr inbounds %LSlice, ptr %t720, i32 0, i32 1 %t724 = load i32, ptr %t723 %t725 = icmp ult i32 1, %t724 br i1 %t725, label %ixok84, label %ixbad85 ixbad85: %t726 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t726, ptr @.fmt_bounds, ptr @.str3488, i32 1, i32 %t724) call void @exit(i32 1) unreachable ixok84: %t727 = getelementptr inbounds ptr, ptr %t722, i32 1 %t728 = load ptr, ptr %t727 %t729 = call ptr @fn_emit_expr(ptr %t728) store ptr %t729, ptr %t730 %t731 = load ptr, ptr %t1 %t732 = getelementptr inbounds %Cmp_Node, ptr %t731, i32 0, i32 7 %t733 = load ptr, ptr %t732 %t734 = getelementptr inbounds %LSlice, ptr %t733, i32 0, i32 0 %t735 = load ptr, ptr %t734 %t736 = getelementptr inbounds %LSlice, ptr %t733, i32 0, i32 1 %t737 = load i32, ptr %t736 %t738 = icmp ult i32 2, %t737 br i1 %t738, label %ixok86, label %ixbad87 ixbad87: %t739 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t739, ptr @.fmt_bounds, ptr @.str3489, i32 2, i32 %t737) call void @exit(i32 1) unreachable ixok86: %t740 = getelementptr inbounds ptr, ptr %t735, i32 2 %t741 = load ptr, ptr %t740 %t742 = call ptr @fn_emit_expr(ptr %t741) store ptr %t742, ptr %t743 %t744 = load ptr, ptr %t717 %t745 = getelementptr inbounds %Cmp_Val, ptr %t744, i32 0, i32 0 %t746 = load ptr, ptr %t745 %t747 = call ptr @fn_vec_x(ptr %t746) store ptr %t747, ptr %t748 %t749 = load ptr, ptr %t717 %t750 = getelementptr inbounds %Cmp_Val, ptr %t749, i32 0, i32 0 %t751 = load ptr, ptr %t750 %t752 = call ptr @fn_vec_y(ptr %t751) store ptr %t752, ptr %t753 %t754 = load ptr, ptr %t730 %t755 = getelementptr inbounds %Cmp_Val, ptr %t754, i32 0, i32 0 %t756 = load ptr, ptr %t755 %t757 = call ptr @fn_vec_x(ptr %t756) store ptr %t757, ptr %t758 %t759 = load ptr, ptr %t730 %t760 = getelementptr inbounds %Cmp_Val, ptr %t759, i32 0, i32 0 %t761 = load ptr, ptr %t760 %t762 = call ptr @fn_vec_y(ptr %t761) store ptr %t762, ptr %t763 %t764 = load ptr, ptr %t748 %t765 = load ptr, ptr %t758 %t766 = load ptr, ptr %t743 %t767 = getelementptr inbounds %Cmp_Val, ptr %t766, i32 0, i32 0 %t768 = load ptr, ptr %t767 %t769 = call ptr @fn_fx_lerp_code(ptr %t764, ptr %t765, ptr %t768) store ptr %t769, ptr %t770 %t771 = load ptr, ptr %t753 %t772 = load ptr, ptr %t763 %t773 = load ptr, ptr %t743 %t774 = getelementptr inbounds %Cmp_Val, ptr %t773, i32 0, i32 0 %t775 = load ptr, ptr %t774 %t776 = call ptr @fn_fx_lerp_code(ptr %t771, ptr %t772, ptr %t775) store ptr %t776, ptr %t777 %t778 = load ptr, ptr %t770 %t779 = load ptr, ptr %t777 %t780 = call ptr @fn_vec_pack(ptr %t778, ptr %t779) %t781 = call ptr @fn_val(ptr %t780, ptr @.str3490) store ptr %t781, ptr %retval br label %ret ret: %t782 = load ptr, ptr %retval ret ptr %t782 } define ptr @fn_ivec_abs(ptr %arg_d) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr %t9 = alloca ptr store ptr %arg_d, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str3491, ptr %t1) %t3 = call ptr @fn_emit_bind(ptr %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = call ptr @lp_str_concat(ptr @.str3492, ptr %t5) %t7 = call ptr @lp_str_concat(ptr %t6, ptr @.str3493) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = call ptr @lp_str_concat(ptr @.str3494, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str3495) %t13 = load ptr, ptr %t4 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str3496) %t16 = load ptr, ptr %t0 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %retval br label %ret ret: %t19 = load ptr, ptr %retval ret ptr %t19 } define i32 @fn_is_ivec_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t30 = alloca i32 %t55 = alloca i32 %t56 = alloca i32 %t74 = alloca i32 %t75 = alloca i32 %t76 = alloca i32 %t77 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str3497) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str3498) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str3499) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str3500) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str3501) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t30 br i1 %t33, label %scend10, label %sc9 sc9: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str3502) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t30 br label %scend10 scend10: %t39 = load i32, ptr %t30 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t29 br i1 %t40, label %scend12, label %sc11 sc11: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str3503) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t29 br label %scend12 scend12: %t46 = load i32, ptr %t29 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t28 br i1 %t47, label %scend14, label %sc13 sc13: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str3504) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t28 br label %scend14 scend14: %t53 = load i32, ptr %t28 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: %t57 = load ptr, ptr %t0 %t58 = call i32 @lp_str_eq(ptr %t57, ptr @.str3505) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t56 br i1 %t59, label %scend19, label %sc18 sc18: %t61 = load ptr, ptr %t0 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str3506) %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t56 br label %scend19 scend19: %t65 = load i32, ptr %t56 %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t55 br i1 %t66, label %scend21, label %sc20 sc20: %t68 = load ptr, ptr %t0 %t69 = call i32 @lp_str_eq(ptr %t68, ptr @.str3507) %t70 = icmp ne i32 %t69, 0 %t71 = zext i1 %t70 to i32 store i32 %t71, ptr %t55 br label %scend21 scend21: %t72 = load i32, ptr %t55 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then22, label %ifend24 then22: store i32 1, ptr %retval br label %ret ifend24: %t78 = load ptr, ptr %t0 %t79 = call i32 @lp_str_eq(ptr %t78, ptr @.str3508) %t80 = icmp ne i32 %t79, 0 %t81 = zext i1 %t80 to i32 store i32 %t81, ptr %t77 br i1 %t80, label %scend26, label %sc25 sc25: %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t82, ptr @.str3509) %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t77 br label %scend26 scend26: %t86 = load i32, ptr %t77 %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t76 br i1 %t87, label %scend28, label %sc27 sc27: %t89 = load ptr, ptr %t0 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str3510) %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t76 br label %scend28 scend28: %t93 = load i32, ptr %t76 %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t75 br i1 %t94, label %scend30, label %sc29 sc29: %t96 = load ptr, ptr %t0 %t97 = call i32 @lp_str_eq(ptr %t96, ptr @.str3511) %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t75 br label %scend30 scend30: %t100 = load i32, ptr %t75 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t74 br i1 %t101, label %scend32, label %sc31 sc31: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str3512) %t105 = icmp ne i32 %t104, 0 %t106 = zext i1 %t105 to i32 store i32 %t106, ptr %t74 br label %scend32 scend32: %t107 = load i32, ptr %t74 %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then33, label %ifend35 then33: store i32 1, ptr %retval br label %ret ifend35: store i32 0, ptr %retval br label %ret ret: %t109 = load i32, ptr %retval ret i32 %t109 } define ptr @fn_emit_ivec_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t21 = alloca ptr %t34 = alloca ptr %t58 = alloca ptr %t79 = alloca ptr %t85 = alloca i32 %t108 = alloca ptr %t121 = alloca ptr %t134 = alloca ptr %t147 = alloca ptr %t154 = alloca ptr %t161 = alloca ptr %t168 = alloca ptr %t186 = alloca ptr %t197 = alloca ptr %t204 = alloca ptr %t229 = alloca ptr %t242 = alloca ptr %t274 = alloca ptr %t287 = alloca ptr %t300 = alloca ptr %t337 = alloca ptr %t360 = alloca ptr %t373 = alloca ptr %t378 = alloca ptr %t383 = alloca ptr %t388 = alloca ptr %t393 = alloca ptr %t400 = alloca ptr %t407 = alloca ptr %t427 = alloca ptr %t440 = alloca ptr %t445 = alloca ptr %t450 = alloca ptr %t455 = alloca ptr %t460 = alloca ptr %t467 = alloca ptr %t474 = alloca ptr %t494 = alloca ptr %t507 = alloca ptr %t512 = alloca ptr %t517 = alloca ptr %t526 = alloca ptr %t535 = alloca ptr %t555 = alloca ptr %t568 = alloca ptr %t573 = alloca ptr %t578 = alloca ptr %t583 = alloca ptr %t588 = alloca ptr %t595 = alloca ptr %t602 = alloca ptr %t625 = alloca ptr %t638 = alloca ptr %t649 = alloca ptr %t670 = alloca ptr %t683 = alloca ptr %t688 = alloca ptr %t693 = alloca ptr %t698 = alloca ptr %t703 = alloca ptr %t710 = alloca ptr %t717 = alloca ptr %t720 = alloca ptr %t723 = alloca ptr %t743 = alloca ptr %t748 = alloca ptr %t753 = alloca ptr %t758 = alloca ptr %t763 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str3513) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_val(ptr @.str3514, ptr @.str3515) store ptr %t5, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str3516) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then3, label %ifend5 then3: %t9 = load ptr, ptr %t1 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 0, %t15 br i1 %t16, label %ixok6, label %ixbad7 ixbad7: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str3517, i32 0, i32 %t15) call void @exit(i32 1) unreachable ixok6: %t18 = getelementptr inbounds ptr, ptr %t13, i32 0 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_emit_expr(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t1 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 7 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 1, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str3518, i32 1, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 1 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_emit_expr(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t21 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t34 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_vec_pack(ptr %t37, ptr %t40) %t42 = call ptr @fn_val(ptr %t41, ptr @.str3519) store ptr %t42, ptr %retval br label %ret ifend5: %t43 = load ptr, ptr %t0 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str3520) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then10, label %ifend12 then10: %t46 = load ptr, ptr %t1 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 7 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 0, %t52 br i1 %t53, label %ixok13, label %ixbad14 ixbad14: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str3521, i32 0, i32 %t52) call void @exit(i32 1) unreachable ixok13: %t55 = getelementptr inbounds ptr, ptr %t50, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_emit_expr(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_vec_x(ptr %t61) %t63 = call ptr @fn_val(ptr %t62, ptr @.str3522) store ptr %t63, ptr %retval br label %ret ifend12: %t64 = load ptr, ptr %t0 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str3523) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then15, label %ifend17 then15: %t67 = load ptr, ptr %t1 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 7 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp ult i32 0, %t73 br i1 %t74, label %ixok18, label %ixbad19 ixbad19: %t75 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t75, ptr @.fmt_bounds, ptr @.str3524, i32 0, i32 %t73) call void @exit(i32 1) unreachable ixok18: %t76 = getelementptr inbounds ptr, ptr %t71, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_emit_expr(ptr %t77) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 0 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_vec_y(ptr %t82) %t84 = call ptr @fn_val(ptr %t83, ptr @.str3525) store ptr %t84, ptr %retval br label %ret ifend17: %t86 = load ptr, ptr %t0 %t87 = call i32 @lp_str_eq(ptr %t86, ptr @.str3526) %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t85 br i1 %t88, label %scend21, label %sc20 sc20: %t90 = load ptr, ptr %t0 %t91 = call i32 @lp_str_eq(ptr %t90, ptr @.str3527) %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t85 br label %scend21 scend21: %t94 = load i32, ptr %t85 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then22, label %ifend24 then22: %t96 = load ptr, ptr %t1 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 7 %t98 = load ptr, ptr %t97 %t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp ult i32 0, %t102 br i1 %t103, label %ixok25, label %ixbad26 ixbad26: %t104 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t104, ptr @.fmt_bounds, ptr @.str3528, i32 0, i32 %t102) call void @exit(i32 1) unreachable ixok25: %t105 = getelementptr inbounds ptr, ptr %t100, i32 0 %t106 = load ptr, ptr %t105 %t107 = call ptr @fn_emit_expr(ptr %t106) store ptr %t107, ptr %t108 %t109 = load ptr, ptr %t1 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 7 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0 %t113 = load ptr, ptr %t112 %t114 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 %t115 = load i32, ptr %t114 %t116 = icmp ult i32 1, %t115 br i1 %t116, label %ixok27, label %ixbad28 ixbad28: %t117 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t117, ptr @.fmt_bounds, ptr @.str3529, i32 1, i32 %t115) call void @exit(i32 1) unreachable ixok27: %t118 = getelementptr inbounds ptr, ptr %t113, i32 1 %t119 = load ptr, ptr %t118 %t120 = call ptr @fn_emit_expr(ptr %t119) store ptr %t120, ptr %t121 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %Cmp_Val, ptr %t122, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_vec_x(ptr %t124) %t126 = call ptr @lp_str_concat(ptr @.str3530, ptr %t125) %t127 = call ptr @lp_str_concat(ptr %t126, ptr @.str3531) %t128 = load ptr, ptr %t108 %t129 = getelementptr inbounds %Cmp_Val, ptr %t128, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_vec_x(ptr %t130) %t132 = call ptr @lp_str_concat(ptr %t127, ptr %t131) %t133 = call ptr @fn_emit_bind(ptr %t132) store ptr %t133, ptr %t134 %t135 = load ptr, ptr %t121 %t136 = getelementptr inbounds %Cmp_Val, ptr %t135, i32 0, i32 0 %t137 = load ptr, ptr %t136 %t138 = call ptr @fn_vec_y(ptr %t137) %t139 = call ptr @lp_str_concat(ptr @.str3532, ptr %t138) %t140 = call ptr @lp_str_concat(ptr %t139, ptr @.str3533) %t141 = load ptr, ptr %t108 %t142 = getelementptr inbounds %Cmp_Val, ptr %t141, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = call ptr @fn_vec_y(ptr %t143) %t145 = call ptr @lp_str_concat(ptr %t140, ptr %t144) %t146 = call ptr @fn_emit_bind(ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t134 %t149 = call ptr @lp_str_concat(ptr @.str3534, ptr %t148) %t150 = call ptr @lp_str_concat(ptr %t149, ptr @.str3535) %t151 = load ptr, ptr %t134 %t152 = call ptr @lp_str_concat(ptr %t150, ptr %t151) %t153 = call ptr @fn_emit_bind(ptr %t152) store ptr %t153, ptr %t154 %t155 = load ptr, ptr %t147 %t156 = call ptr @lp_str_concat(ptr @.str3536, ptr %t155) %t157 = call ptr @lp_str_concat(ptr %t156, ptr @.str3537) %t158 = load ptr, ptr %t147 %t159 = call ptr @lp_str_concat(ptr %t157, ptr %t158) %t160 = call ptr @fn_emit_bind(ptr %t159) store ptr %t160, ptr %t161 %t162 = load ptr, ptr %t154 %t163 = call ptr @lp_str_concat(ptr @.str3538, ptr %t162) %t164 = call ptr @lp_str_concat(ptr %t163, ptr @.str3539) %t165 = load ptr, ptr %t161 %t166 = call ptr @lp_str_concat(ptr %t164, ptr %t165) %t167 = call ptr @fn_emit_bind(ptr %t166) store ptr %t167, ptr %t168 %t169 = load ptr, ptr %t0 %t170 = call i32 @lp_str_eq(ptr %t169, ptr @.str3540) %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then29, label %ifend31 then29: %t172 = load ptr, ptr %t168 %t173 = call ptr @fn_val(ptr %t172, ptr @.str3541) store ptr %t173, ptr %retval br label %ret ifend31: %t174 = load ptr, ptr %t1 %t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 7 %t176 = load ptr, ptr %t175 %t177 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 0 %t178 = load ptr, ptr %t177 %t179 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 1 %t180 = load i32, ptr %t179 %t181 = icmp ult i32 2, %t180 br i1 %t181, label %ixok32, label %ixbad33 ixbad33: %t182 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t182, ptr @.fmt_bounds, ptr @.str3542, i32 2, i32 %t180) call void @exit(i32 1) unreachable ixok32: %t183 = getelementptr inbounds ptr, ptr %t178, i32 2 %t184 = load ptr, ptr %t183 %t185 = call ptr @fn_emit_expr(ptr %t184) store ptr %t185, ptr %t186 %t187 = load ptr, ptr %t186 %t188 = getelementptr inbounds %Cmp_Val, ptr %t187, i32 0, i32 0 %t189 = load ptr, ptr %t188 %t190 = call ptr @lp_str_concat(ptr @.str3543, ptr %t189) %t191 = call ptr @lp_str_concat(ptr %t190, ptr @.str3544) %t192 = load ptr, ptr %t186 %t193 = getelementptr inbounds %Cmp_Val, ptr %t192, i32 0, i32 0 %t194 = load ptr, ptr %t193 %t195 = call ptr @lp_str_concat(ptr %t191, ptr %t194) %t196 = call ptr @fn_emit_bind(ptr %t195) store ptr %t196, ptr %t197 %t198 = load ptr, ptr %t168 %t199 = call ptr @lp_str_concat(ptr @.str3545, ptr %t198) %t200 = call ptr @lp_str_concat(ptr %t199, ptr @.str3546) %t201 = load ptr, ptr %t197 %t202 = call ptr @lp_str_concat(ptr %t200, ptr %t201) %t203 = call ptr @fn_emit_bind(ptr %t202) store ptr %t203, ptr %t204 %t205 = load ptr, ptr %t204 %t206 = call ptr @lp_str_concat(ptr @.str3547, ptr %t205) %t207 = call ptr @lp_str_concat(ptr %t206, ptr @.str3548) %t208 = call ptr @fn_emit_bind(ptr %t207) %t209 = call ptr @fn_val(ptr %t208, ptr @.str3549) store ptr %t209, ptr %retval br label %ret ifend24: %t210 = load ptr, ptr %t0 %t211 = call i32 @lp_str_eq(ptr %t210, ptr @.str3550) %t212 = icmp ne i32 %t211, 0 br i1 %t212, label %then34, label %ifend36 then34: %t213 = call ptr @fn_find_fn(ptr @.str3551) %t214 = icmp eq ptr %t213, null %t215 = zext i1 %t214 to i32 %t216 = icmp ne i32 %t215, 0 br i1 %t216, label %then37, label %ifend39 then37: call void @fn_perr(ptr @.str3552) br label %ifend39 ifend39: %t217 = load ptr, ptr %t1 %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 7 %t219 = load ptr, ptr %t218 %t220 = getelementptr inbounds %LSlice, ptr %t219, i32 0, i32 0 %t221 = load ptr, ptr %t220 %t222 = getelementptr inbounds %LSlice, ptr %t219, i32 0, i32 1 %t223 = load i32, ptr %t222 %t224 = icmp ult i32 0, %t223 br i1 %t224, label %ixok40, label %ixbad41 ixbad41: %t225 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t225, ptr @.fmt_bounds, ptr @.str3553, i32 0, i32 %t223) call void @exit(i32 1) unreachable ixok40: %t226 = getelementptr inbounds ptr, ptr %t221, i32 0 %t227 = load ptr, ptr %t226 %t228 = call ptr @fn_emit_expr(ptr %t227) store ptr %t228, ptr %t229 %t230 = load ptr, ptr %t1 %t231 = getelementptr inbounds %Cmp_Node, ptr %t230, i32 0, i32 7 %t232 = load ptr, ptr %t231 %t233 = getelementptr inbounds %LSlice, ptr %t232, i32 0, i32 0 %t234 = load ptr, ptr %t233 %t235 = getelementptr inbounds %LSlice, ptr %t232, i32 0, i32 1 %t236 = load i32, ptr %t235 %t237 = icmp ult i32 1, %t236 br i1 %t237, label %ixok42, label %ixbad43 ixbad43: %t238 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t238, ptr @.fmt_bounds, ptr @.str3554, i32 1, i32 %t236) call void @exit(i32 1) unreachable ixok42: %t239 = getelementptr inbounds ptr, ptr %t234, i32 1 %t240 = load ptr, ptr %t239 %t241 = call ptr @fn_emit_expr(ptr %t240) store ptr %t241, ptr %t242 %t243 = load ptr, ptr %t229 %t244 = getelementptr inbounds %Cmp_Val, ptr %t243, i32 0, i32 0 %t245 = load ptr, ptr %t244 %t246 = call ptr @lp_str_concat(ptr @.str3555, ptr %t245) %t247 = call ptr @lp_str_concat(ptr %t246, ptr @.str3556) %t248 = load ptr, ptr %t242 %t249 = getelementptr inbounds %Cmp_Val, ptr %t248, i32 0, i32 0 %t250 = load ptr, ptr %t249 %t251 = call ptr @lp_str_concat(ptr %t247, ptr %t250) %t252 = call ptr @lp_str_concat(ptr %t251, ptr @.str3557) %t253 = call ptr @fn_emit_bind(ptr %t252) %t254 = call ptr @fn_val(ptr %t253, ptr @.str3558) store ptr %t254, ptr %retval br label %ret ifend36: %t255 = load ptr, ptr %t0 %t256 = call i32 @lp_str_eq(ptr %t255, ptr @.str3559) %t257 = icmp ne i32 %t256, 0 br i1 %t257, label %then44, label %ifend46 then44: %t258 = call ptr @fn_find_fn(ptr @.str3560) %t259 = icmp eq ptr %t258, null %t260 = zext i1 %t259 to i32 %t261 = icmp ne i32 %t260, 0 br i1 %t261, label %then47, label %ifend49 then47: call void @fn_perr(ptr @.str3561) br label %ifend49 ifend49: %t262 = load ptr, ptr %t1 %t263 = getelementptr inbounds %Cmp_Node, ptr %t262, i32 0, i32 7 %t264 = load ptr, ptr %t263 %t265 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 0 %t266 = load ptr, ptr %t265 %t267 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 1 %t268 = load i32, ptr %t267 %t269 = icmp ult i32 0, %t268 br i1 %t269, label %ixok50, label %ixbad51 ixbad51: %t270 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t270, ptr @.fmt_bounds, ptr @.str3562, i32 0, i32 %t268) call void @exit(i32 1) unreachable ixok50: %t271 = getelementptr inbounds ptr, ptr %t266, i32 0 %t272 = load ptr, ptr %t271 %t273 = call ptr @fn_emit_expr(ptr %t272) store ptr %t273, ptr %t274 %t275 = load ptr, ptr %t1 %t276 = getelementptr inbounds %Cmp_Node, ptr %t275, i32 0, i32 7 %t277 = load ptr, ptr %t276 %t278 = getelementptr inbounds %LSlice, ptr %t277, i32 0, i32 0 %t279 = load ptr, ptr %t278 %t280 = getelementptr inbounds %LSlice, ptr %t277, i32 0, i32 1 %t281 = load i32, ptr %t280 %t282 = icmp ult i32 1, %t281 br i1 %t282, label %ixok52, label %ixbad53 ixbad53: %t283 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t283, ptr @.fmt_bounds, ptr @.str3563, i32 1, i32 %t281) call void @exit(i32 1) unreachable ixok52: %t284 = getelementptr inbounds ptr, ptr %t279, i32 1 %t285 = load ptr, ptr %t284 %t286 = call ptr @fn_emit_expr(ptr %t285) store ptr %t286, ptr %t287 %t288 = load ptr, ptr %t1 %t289 = getelementptr inbounds %Cmp_Node, ptr %t288, i32 0, i32 7 %t290 = load ptr, ptr %t289 %t291 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 0 %t292 = load ptr, ptr %t291 %t293 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 1 %t294 = load i32, ptr %t293 %t295 = icmp ult i32 2, %t294 br i1 %t295, label %ixok54, label %ixbad55 ixbad55: %t296 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t296, ptr @.fmt_bounds, ptr @.str3564, i32 2, i32 %t294) call void @exit(i32 1) unreachable ixok54: %t297 = getelementptr inbounds ptr, ptr %t292, i32 2 %t298 = load ptr, ptr %t297 %t299 = call ptr @fn_emit_expr(ptr %t298) store ptr %t299, ptr %t300 %t301 = load ptr, ptr %t274 %t302 = getelementptr inbounds %Cmp_Val, ptr %t301, i32 0, i32 0 %t303 = load ptr, ptr %t302 %t304 = call ptr @lp_str_concat(ptr @.str3565, ptr %t303) %t305 = call ptr @lp_str_concat(ptr %t304, ptr @.str3566) %t306 = load ptr, ptr %t287 %t307 = getelementptr inbounds %Cmp_Val, ptr %t306, i32 0, i32 0 %t308 = load ptr, ptr %t307 %t309 = call ptr @lp_str_concat(ptr %t305, ptr %t308) %t310 = call ptr @lp_str_concat(ptr %t309, ptr @.str3567) %t311 = load ptr, ptr %t300 %t312 = getelementptr inbounds %Cmp_Val, ptr %t311, i32 0, i32 0 %t313 = load ptr, ptr %t312 %t314 = call ptr @lp_str_concat(ptr %t310, ptr %t313) %t315 = call ptr @lp_str_concat(ptr %t314, ptr @.str3568) %t316 = call ptr @fn_emit_bind(ptr %t315) %t317 = call ptr @fn_val(ptr %t316, ptr @.str3569) store ptr %t317, ptr %retval br label %ret ifend46: %t318 = load ptr, ptr %t0 %t319 = call i32 @lp_str_eq(ptr %t318, ptr @.str3570) %t320 = icmp ne i32 %t319, 0 br i1 %t320, label %then56, label %ifend58 then56: %t321 = call ptr @fn_find_fn(ptr @.str3571) %t322 = icmp eq ptr %t321, null %t323 = zext i1 %t322 to i32 %t324 = icmp ne i32 %t323, 0 br i1 %t324, label %then59, label %ifend61 then59: call void @fn_perr(ptr @.str3572) br label %ifend61 ifend61: %t325 = load ptr, ptr %t1 %t326 = getelementptr inbounds %Cmp_Node, ptr %t325, i32 0, i32 7 %t327 = load ptr, ptr %t326 %t328 = getelementptr inbounds %LSlice, ptr %t327, i32 0, i32 0 %t329 = load ptr, ptr %t328 %t330 = getelementptr inbounds %LSlice, ptr %t327, i32 0, i32 1 %t331 = load i32, ptr %t330 %t332 = icmp ult i32 0, %t331 br i1 %t332, label %ixok62, label %ixbad63 ixbad63: %t333 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t333, ptr @.fmt_bounds, ptr @.str3573, i32 0, i32 %t331) call void @exit(i32 1) unreachable ixok62: %t334 = getelementptr inbounds ptr, ptr %t329, i32 0 %t335 = load ptr, ptr %t334 %t336 = call ptr @fn_emit_expr(ptr %t335) store ptr %t336, ptr %t337 %t338 = load ptr, ptr %t337 %t339 = getelementptr inbounds %Cmp_Val, ptr %t338, i32 0, i32 0 %t340 = load ptr, ptr %t339 %t341 = call ptr @lp_str_concat(ptr @.str3574, ptr %t340) %t342 = call ptr @lp_str_concat(ptr %t341, ptr @.str3575) %t343 = call ptr @fn_emit_bind(ptr %t342) %t344 = call ptr @fn_val(ptr %t343, ptr @.str3576) store ptr %t344, ptr %retval br label %ret ifend58: %t345 = load ptr, ptr %t0 %t346 = call i32 @lp_str_eq(ptr %t345, ptr @.str3577) %t347 = icmp ne i32 %t346, 0 br i1 %t347, label %then64, label %ifend66 then64: %t348 = load ptr, ptr %t1 %t349 = getelementptr inbounds %Cmp_Node, ptr %t348, i32 0, i32 7 %t350 = load ptr, ptr %t349 %t351 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 0 %t352 = load ptr, ptr %t351 %t353 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 1 %t354 = load i32, ptr %t353 %t355 = icmp ult i32 0, %t354 br i1 %t355, label %ixok67, label %ixbad68 ixbad68: %t356 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t356, ptr @.fmt_bounds, ptr @.str3578, i32 0, i32 %t354) call void @exit(i32 1) unreachable ixok67: %t357 = getelementptr inbounds ptr, ptr %t352, i32 0 %t358 = load ptr, ptr %t357 %t359 = call ptr @fn_emit_expr(ptr %t358) store ptr %t359, ptr %t360 %t361 = load ptr, ptr %t1 %t362 = getelementptr inbounds %Cmp_Node, ptr %t361, i32 0, i32 7 %t363 = load ptr, ptr %t362 %t364 = getelementptr inbounds %LSlice, ptr %t363, i32 0, i32 0 %t365 = load ptr, ptr %t364 %t366 = getelementptr inbounds %LSlice, ptr %t363, i32 0, i32 1 %t367 = load i32, ptr %t366 %t368 = icmp ult i32 1, %t367 br i1 %t368, label %ixok69, label %ixbad70 ixbad70: %t369 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t369, ptr @.fmt_bounds, ptr @.str3579, i32 1, i32 %t367) call void @exit(i32 1) unreachable ixok69: %t370 = getelementptr inbounds ptr, ptr %t365, i32 1 %t371 = load ptr, ptr %t370 %t372 = call ptr @fn_emit_expr(ptr %t371) store ptr %t372, ptr %t373 %t374 = load ptr, ptr %t360 %t375 = getelementptr inbounds %Cmp_Val, ptr %t374, i32 0, i32 0 %t376 = load ptr, ptr %t375 %t377 = call ptr @fn_vec_x(ptr %t376) store ptr %t377, ptr %t378 %t379 = load ptr, ptr %t360 %t380 = getelementptr inbounds %Cmp_Val, ptr %t379, i32 0, i32 0 %t381 = load ptr, ptr %t380 %t382 = call ptr @fn_vec_y(ptr %t381) store ptr %t382, ptr %t383 %t384 = load ptr, ptr %t373 %t385 = getelementptr inbounds %Cmp_Val, ptr %t384, i32 0, i32 0 %t386 = load ptr, ptr %t385 %t387 = call ptr @fn_vec_x(ptr %t386) store ptr %t387, ptr %t388 %t389 = load ptr, ptr %t373 %t390 = getelementptr inbounds %Cmp_Val, ptr %t389, i32 0, i32 0 %t391 = load ptr, ptr %t390 %t392 = call ptr @fn_vec_y(ptr %t391) store ptr %t392, ptr %t393 %t394 = load ptr, ptr %t378 %t395 = call ptr @lp_str_concat(ptr @.str3580, ptr %t394) %t396 = call ptr @lp_str_concat(ptr %t395, ptr @.str3581) %t397 = load ptr, ptr %t388 %t398 = call ptr @lp_str_concat(ptr %t396, ptr %t397) %t399 = call ptr @fn_emit_bind(ptr %t398) store ptr %t399, ptr %t400 %t401 = load ptr, ptr %t383 %t402 = call ptr @lp_str_concat(ptr @.str3582, ptr %t401) %t403 = call ptr @lp_str_concat(ptr %t402, ptr @.str3583) %t404 = load ptr, ptr %t393 %t405 = call ptr @lp_str_concat(ptr %t403, ptr %t404) %t406 = call ptr @fn_emit_bind(ptr %t405) store ptr %t406, ptr %t407 %t408 = load ptr, ptr %t400 %t409 = load ptr, ptr %t407 %t410 = call ptr @fn_vec_pack(ptr %t408, ptr %t409) %t411 = call ptr @fn_val(ptr %t410, ptr @.str3584) store ptr %t411, ptr %retval br label %ret ifend66: %t412 = load ptr, ptr %t0 %t413 = call i32 @lp_str_eq(ptr %t412, ptr @.str3585) %t414 = icmp ne i32 %t413, 0 br i1 %t414, label %then71, label %ifend73 then71: %t415 = load ptr, ptr %t1 %t416 = getelementptr inbounds %Cmp_Node, ptr %t415, i32 0, i32 7 %t417 = load ptr, ptr %t416 %t418 = getelementptr inbounds %LSlice, ptr %t417, i32 0, i32 0 %t419 = load ptr, ptr %t418 %t420 = getelementptr inbounds %LSlice, ptr %t417, i32 0, i32 1 %t421 = load i32, ptr %t420 %t422 = icmp ult i32 0, %t421 br i1 %t422, label %ixok74, label %ixbad75 ixbad75: %t423 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t423, ptr @.fmt_bounds, ptr @.str3586, i32 0, i32 %t421) call void @exit(i32 1) unreachable ixok74: %t424 = getelementptr inbounds ptr, ptr %t419, i32 0 %t425 = load ptr, ptr %t424 %t426 = call ptr @fn_emit_expr(ptr %t425) store ptr %t426, ptr %t427 %t428 = load ptr, ptr %t1 %t429 = getelementptr inbounds %Cmp_Node, ptr %t428, i32 0, i32 7 %t430 = load ptr, ptr %t429 %t431 = getelementptr inbounds %LSlice, ptr %t430, i32 0, i32 0 %t432 = load ptr, ptr %t431 %t433 = getelementptr inbounds %LSlice, ptr %t430, i32 0, i32 1 %t434 = load i32, ptr %t433 %t435 = icmp ult i32 1, %t434 br i1 %t435, label %ixok76, label %ixbad77 ixbad77: %t436 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t436, ptr @.fmt_bounds, ptr @.str3587, i32 1, i32 %t434) call void @exit(i32 1) unreachable ixok76: %t437 = getelementptr inbounds ptr, ptr %t432, i32 1 %t438 = load ptr, ptr %t437 %t439 = call ptr @fn_emit_expr(ptr %t438) store ptr %t439, ptr %t440 %t441 = load ptr, ptr %t427 %t442 = getelementptr inbounds %Cmp_Val, ptr %t441, i32 0, i32 0 %t443 = load ptr, ptr %t442 %t444 = call ptr @fn_vec_x(ptr %t443) store ptr %t444, ptr %t445 %t446 = load ptr, ptr %t427 %t447 = getelementptr inbounds %Cmp_Val, ptr %t446, i32 0, i32 0 %t448 = load ptr, ptr %t447 %t449 = call ptr @fn_vec_y(ptr %t448) store ptr %t449, ptr %t450 %t451 = load ptr, ptr %t440 %t452 = getelementptr inbounds %Cmp_Val, ptr %t451, i32 0, i32 0 %t453 = load ptr, ptr %t452 %t454 = call ptr @fn_vec_x(ptr %t453) store ptr %t454, ptr %t455 %t456 = load ptr, ptr %t440 %t457 = getelementptr inbounds %Cmp_Val, ptr %t456, i32 0, i32 0 %t458 = load ptr, ptr %t457 %t459 = call ptr @fn_vec_y(ptr %t458) store ptr %t459, ptr %t460 %t461 = load ptr, ptr %t445 %t462 = call ptr @lp_str_concat(ptr @.str3588, ptr %t461) %t463 = call ptr @lp_str_concat(ptr %t462, ptr @.str3589) %t464 = load ptr, ptr %t455 %t465 = call ptr @lp_str_concat(ptr %t463, ptr %t464) %t466 = call ptr @fn_emit_bind(ptr %t465) store ptr %t466, ptr %t467 %t468 = load ptr, ptr %t450 %t469 = call ptr @lp_str_concat(ptr @.str3590, ptr %t468) %t470 = call ptr @lp_str_concat(ptr %t469, ptr @.str3591) %t471 = load ptr, ptr %t460 %t472 = call ptr @lp_str_concat(ptr %t470, ptr %t471) %t473 = call ptr @fn_emit_bind(ptr %t472) store ptr %t473, ptr %t474 %t475 = load ptr, ptr %t467 %t476 = load ptr, ptr %t474 %t477 = call ptr @fn_vec_pack(ptr %t475, ptr %t476) %t478 = call ptr @fn_val(ptr %t477, ptr @.str3592) store ptr %t478, ptr %retval br label %ret ifend73: %t479 = load ptr, ptr %t0 %t480 = call i32 @lp_str_eq(ptr %t479, ptr @.str3593) %t481 = icmp ne i32 %t480, 0 br i1 %t481, label %then78, label %ifend80 then78: %t482 = load ptr, ptr %t1 %t483 = getelementptr inbounds %Cmp_Node, ptr %t482, i32 0, i32 7 %t484 = load ptr, ptr %t483 %t485 = getelementptr inbounds %LSlice, ptr %t484, i32 0, i32 0 %t486 = load ptr, ptr %t485 %t487 = getelementptr inbounds %LSlice, ptr %t484, i32 0, i32 1 %t488 = load i32, ptr %t487 %t489 = icmp ult i32 0, %t488 br i1 %t489, label %ixok81, label %ixbad82 ixbad82: %t490 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t490, ptr @.fmt_bounds, ptr @.str3594, i32 0, i32 %t488) call void @exit(i32 1) unreachable ixok81: %t491 = getelementptr inbounds ptr, ptr %t486, i32 0 %t492 = load ptr, ptr %t491 %t493 = call ptr @fn_emit_expr(ptr %t492) store ptr %t493, ptr %t494 %t495 = load ptr, ptr %t1 %t496 = getelementptr inbounds %Cmp_Node, ptr %t495, i32 0, i32 7 %t497 = load ptr, ptr %t496 %t498 = getelementptr inbounds %LSlice, ptr %t497, i32 0, i32 0 %t499 = load ptr, ptr %t498 %t500 = getelementptr inbounds %LSlice, ptr %t497, i32 0, i32 1 %t501 = load i32, ptr %t500 %t502 = icmp ult i32 1, %t501 br i1 %t502, label %ixok83, label %ixbad84 ixbad84: %t503 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t503, ptr @.fmt_bounds, ptr @.str3595, i32 1, i32 %t501) call void @exit(i32 1) unreachable ixok83: %t504 = getelementptr inbounds ptr, ptr %t499, i32 1 %t505 = load ptr, ptr %t504 %t506 = call ptr @fn_emit_expr(ptr %t505) store ptr %t506, ptr %t507 %t508 = load ptr, ptr %t494 %t509 = getelementptr inbounds %Cmp_Val, ptr %t508, i32 0, i32 0 %t510 = load ptr, ptr %t509 %t511 = call ptr @fn_vec_x(ptr %t510) store ptr %t511, ptr %t512 %t513 = load ptr, ptr %t494 %t514 = getelementptr inbounds %Cmp_Val, ptr %t513, i32 0, i32 0 %t515 = load ptr, ptr %t514 %t516 = call ptr @fn_vec_y(ptr %t515) store ptr %t516, ptr %t517 %t518 = load ptr, ptr %t512 %t519 = call ptr @lp_str_concat(ptr @.str3596, ptr %t518) %t520 = call ptr @lp_str_concat(ptr %t519, ptr @.str3597) %t521 = load ptr, ptr %t507 %t522 = getelementptr inbounds %Cmp_Val, ptr %t521, i32 0, i32 0 %t523 = load ptr, ptr %t522 %t524 = call ptr @lp_str_concat(ptr %t520, ptr %t523) %t525 = call ptr @fn_emit_bind(ptr %t524) store ptr %t525, ptr %t526 %t527 = load ptr, ptr %t517 %t528 = call ptr @lp_str_concat(ptr @.str3598, ptr %t527) %t529 = call ptr @lp_str_concat(ptr %t528, ptr @.str3599) %t530 = load ptr, ptr %t507 %t531 = getelementptr inbounds %Cmp_Val, ptr %t530, i32 0, i32 0 %t532 = load ptr, ptr %t531 %t533 = call ptr @lp_str_concat(ptr %t529, ptr %t532) %t534 = call ptr @fn_emit_bind(ptr %t533) store ptr %t534, ptr %t535 %t536 = load ptr, ptr %t526 %t537 = load ptr, ptr %t535 %t538 = call ptr @fn_vec_pack(ptr %t536, ptr %t537) %t539 = call ptr @fn_val(ptr %t538, ptr @.str3600) store ptr %t539, ptr %retval br label %ret ifend80: %t540 = load ptr, ptr %t0 %t541 = call i32 @lp_str_eq(ptr %t540, ptr @.str3601) %t542 = icmp ne i32 %t541, 0 br i1 %t542, label %then85, label %ifend87 then85: %t543 = load ptr, ptr %t1 %t544 = getelementptr inbounds %Cmp_Node, ptr %t543, i32 0, i32 7 %t545 = load ptr, ptr %t544 %t546 = getelementptr inbounds %LSlice, ptr %t545, i32 0, i32 0 %t547 = load ptr, ptr %t546 %t548 = getelementptr inbounds %LSlice, ptr %t545, i32 0, i32 1 %t549 = load i32, ptr %t548 %t550 = icmp ult i32 0, %t549 br i1 %t550, label %ixok88, label %ixbad89 ixbad89: %t551 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t551, ptr @.fmt_bounds, ptr @.str3602, i32 0, i32 %t549) call void @exit(i32 1) unreachable ixok88: %t552 = getelementptr inbounds ptr, ptr %t547, i32 0 %t553 = load ptr, ptr %t552 %t554 = call ptr @fn_emit_expr(ptr %t553) store ptr %t554, ptr %t555 %t556 = load ptr, ptr %t1 %t557 = getelementptr inbounds %Cmp_Node, ptr %t556, i32 0, i32 7 %t558 = load ptr, ptr %t557 %t559 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 0 %t560 = load ptr, ptr %t559 %t561 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 1 %t562 = load i32, ptr %t561 %t563 = icmp ult i32 1, %t562 br i1 %t563, label %ixok90, label %ixbad91 ixbad91: %t564 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t564, ptr @.fmt_bounds, ptr @.str3603, i32 1, i32 %t562) call void @exit(i32 1) unreachable ixok90: %t565 = getelementptr inbounds ptr, ptr %t560, i32 1 %t566 = load ptr, ptr %t565 %t567 = call ptr @fn_emit_expr(ptr %t566) store ptr %t567, ptr %t568 %t569 = load ptr, ptr %t555 %t570 = getelementptr inbounds %Cmp_Val, ptr %t569, i32 0, i32 0 %t571 = load ptr, ptr %t570 %t572 = call ptr @fn_vec_x(ptr %t571) store ptr %t572, ptr %t573 %t574 = load ptr, ptr %t555 %t575 = getelementptr inbounds %Cmp_Val, ptr %t574, i32 0, i32 0 %t576 = load ptr, ptr %t575 %t577 = call ptr @fn_vec_y(ptr %t576) store ptr %t577, ptr %t578 %t579 = load ptr, ptr %t568 %t580 = getelementptr inbounds %Cmp_Val, ptr %t579, i32 0, i32 0 %t581 = load ptr, ptr %t580 %t582 = call ptr @fn_vec_x(ptr %t581) store ptr %t582, ptr %t583 %t584 = load ptr, ptr %t568 %t585 = getelementptr inbounds %Cmp_Val, ptr %t584, i32 0, i32 0 %t586 = load ptr, ptr %t585 %t587 = call ptr @fn_vec_y(ptr %t586) store ptr %t587, ptr %t588 %t589 = load ptr, ptr %t573 %t590 = call ptr @lp_str_concat(ptr @.str3604, ptr %t589) %t591 = call ptr @lp_str_concat(ptr %t590, ptr @.str3605) %t592 = load ptr, ptr %t583 %t593 = call ptr @lp_str_concat(ptr %t591, ptr %t592) %t594 = call ptr @fn_emit_bind(ptr %t593) store ptr %t594, ptr %t595 %t596 = load ptr, ptr %t578 %t597 = call ptr @lp_str_concat(ptr @.str3606, ptr %t596) %t598 = call ptr @lp_str_concat(ptr %t597, ptr @.str3607) %t599 = load ptr, ptr %t588 %t600 = call ptr @lp_str_concat(ptr %t598, ptr %t599) %t601 = call ptr @fn_emit_bind(ptr %t600) store ptr %t601, ptr %t602 %t603 = load ptr, ptr %t595 %t604 = call ptr @lp_str_concat(ptr @.str3608, ptr %t603) %t605 = call ptr @lp_str_concat(ptr %t604, ptr @.str3609) %t606 = load ptr, ptr %t602 %t607 = call ptr @lp_str_concat(ptr %t605, ptr %t606) %t608 = call ptr @fn_emit_bind(ptr %t607) %t609 = call ptr @fn_val(ptr %t608, ptr @.str3610) store ptr %t609, ptr %retval br label %ret ifend87: %t610 = load ptr, ptr %t0 %t611 = call i32 @lp_str_eq(ptr %t610, ptr @.str3611) %t612 = icmp ne i32 %t611, 0 br i1 %t612, label %then92, label %ifend94 then92: %t613 = load ptr, ptr %t1 %t614 = getelementptr inbounds %Cmp_Node, ptr %t613, i32 0, i32 7 %t615 = load ptr, ptr %t614 %t616 = getelementptr inbounds %LSlice, ptr %t615, i32 0, i32 0 %t617 = load ptr, ptr %t616 %t618 = getelementptr inbounds %LSlice, ptr %t615, i32 0, i32 1 %t619 = load i32, ptr %t618 %t620 = icmp ult i32 0, %t619 br i1 %t620, label %ixok95, label %ixbad96 ixbad96: %t621 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t621, ptr @.fmt_bounds, ptr @.str3612, i32 0, i32 %t619) call void @exit(i32 1) unreachable ixok95: %t622 = getelementptr inbounds ptr, ptr %t617, i32 0 %t623 = load ptr, ptr %t622 %t624 = call ptr @fn_emit_expr(ptr %t623) store ptr %t624, ptr %t625 %t626 = load ptr, ptr %t1 %t627 = getelementptr inbounds %Cmp_Node, ptr %t626, i32 0, i32 7 %t628 = load ptr, ptr %t627 %t629 = getelementptr inbounds %LSlice, ptr %t628, i32 0, i32 0 %t630 = load ptr, ptr %t629 %t631 = getelementptr inbounds %LSlice, ptr %t628, i32 0, i32 1 %t632 = load i32, ptr %t631 %t633 = icmp ult i32 1, %t632 br i1 %t633, label %ixok97, label %ixbad98 ixbad98: %t634 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t634, ptr @.fmt_bounds, ptr @.str3613, i32 1, i32 %t632) call void @exit(i32 1) unreachable ixok97: %t635 = getelementptr inbounds ptr, ptr %t630, i32 1 %t636 = load ptr, ptr %t635 %t637 = call ptr @fn_emit_expr(ptr %t636) store ptr %t637, ptr %t638 %t639 = load ptr, ptr %t625 %t640 = getelementptr inbounds %Cmp_Val, ptr %t639, i32 0, i32 0 %t641 = load ptr, ptr %t640 %t642 = call ptr @lp_str_concat(ptr @.str3614, ptr %t641) %t643 = call ptr @lp_str_concat(ptr %t642, ptr @.str3615) %t644 = load ptr, ptr %t638 %t645 = getelementptr inbounds %Cmp_Val, ptr %t644, i32 0, i32 0 %t646 = load ptr, ptr %t645 %t647 = call ptr @lp_str_concat(ptr %t643, ptr %t646) %t648 = call ptr @fn_emit_bind(ptr %t647) store ptr %t648, ptr %t649 %t650 = load ptr, ptr %t649 %t651 = call ptr @lp_str_concat(ptr @.str3616, ptr %t650) %t652 = call ptr @lp_str_concat(ptr %t651, ptr @.str3617) %t653 = call ptr @fn_emit_bind(ptr %t652) %t654 = call ptr @fn_val(ptr %t653, ptr @.str3618) store ptr %t654, ptr %retval br label %ret ifend94: %t655 = load ptr, ptr %t0 %t656 = call i32 @lp_str_eq(ptr %t655, ptr @.str3619) %t657 = icmp ne i32 %t656, 0 br i1 %t657, label %then99, label %ifend101 then99: %t658 = load ptr, ptr %t1 %t659 = getelementptr inbounds %Cmp_Node, ptr %t658, i32 0, i32 7 %t660 = load ptr, ptr %t659 %t661 = getelementptr inbounds %LSlice, ptr %t660, i32 0, i32 0 %t662 = load ptr, ptr %t661 %t663 = getelementptr inbounds %LSlice, ptr %t660, i32 0, i32 1 %t664 = load i32, ptr %t663 %t665 = icmp ult i32 0, %t664 br i1 %t665, label %ixok102, label %ixbad103 ixbad103: %t666 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t666, ptr @.fmt_bounds, ptr @.str3620, i32 0, i32 %t664) call void @exit(i32 1) unreachable ixok102: %t667 = getelementptr inbounds ptr, ptr %t662, i32 0 %t668 = load ptr, ptr %t667 %t669 = call ptr @fn_emit_expr(ptr %t668) store ptr %t669, ptr %t670 %t671 = load ptr, ptr %t1 %t672 = getelementptr inbounds %Cmp_Node, ptr %t671, i32 0, i32 7 %t673 = load ptr, ptr %t672 %t674 = getelementptr inbounds %LSlice, ptr %t673, i32 0, i32 0 %t675 = load ptr, ptr %t674 %t676 = getelementptr inbounds %LSlice, ptr %t673, i32 0, i32 1 %t677 = load i32, ptr %t676 %t678 = icmp ult i32 1, %t677 br i1 %t678, label %ixok104, label %ixbad105 ixbad105: %t679 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t679, ptr @.fmt_bounds, ptr @.str3621, i32 1, i32 %t677) call void @exit(i32 1) unreachable ixok104: %t680 = getelementptr inbounds ptr, ptr %t675, i32 1 %t681 = load ptr, ptr %t680 %t682 = call ptr @fn_emit_expr(ptr %t681) store ptr %t682, ptr %t683 %t684 = load ptr, ptr %t670 %t685 = getelementptr inbounds %Cmp_Val, ptr %t684, i32 0, i32 0 %t686 = load ptr, ptr %t685 %t687 = call ptr @fn_vec_x(ptr %t686) store ptr %t687, ptr %t688 %t689 = load ptr, ptr %t670 %t690 = getelementptr inbounds %Cmp_Val, ptr %t689, i32 0, i32 0 %t691 = load ptr, ptr %t690 %t692 = call ptr @fn_vec_y(ptr %t691) store ptr %t692, ptr %t693 %t694 = load ptr, ptr %t683 %t695 = getelementptr inbounds %Cmp_Val, ptr %t694, i32 0, i32 0 %t696 = load ptr, ptr %t695 %t697 = call ptr @fn_vec_x(ptr %t696) store ptr %t697, ptr %t698 %t699 = load ptr, ptr %t683 %t700 = getelementptr inbounds %Cmp_Val, ptr %t699, i32 0, i32 0 %t701 = load ptr, ptr %t700 %t702 = call ptr @fn_vec_y(ptr %t701) store ptr %t702, ptr %t703 %t704 = load ptr, ptr %t688 %t705 = call ptr @lp_str_concat(ptr @.str3622, ptr %t704) %t706 = call ptr @lp_str_concat(ptr %t705, ptr @.str3623) %t707 = load ptr, ptr %t698 %t708 = call ptr @lp_str_concat(ptr %t706, ptr %t707) %t709 = call ptr @fn_emit_bind(ptr %t708) store ptr %t709, ptr %t710 %t711 = load ptr, ptr %t693 %t712 = call ptr @lp_str_concat(ptr @.str3624, ptr %t711) %t713 = call ptr @lp_str_concat(ptr %t712, ptr @.str3625) %t714 = load ptr, ptr %t703 %t715 = call ptr @lp_str_concat(ptr %t713, ptr %t714) %t716 = call ptr @fn_emit_bind(ptr %t715) store ptr %t716, ptr %t717 %t718 = load ptr, ptr %t710 %t719 = call ptr @fn_ivec_abs(ptr %t718) store ptr %t719, ptr %t720 %t721 = load ptr, ptr %t717 %t722 = call ptr @fn_ivec_abs(ptr %t721) store ptr %t722, ptr %t723 %t724 = load ptr, ptr %t720 %t725 = call ptr @lp_str_concat(ptr @.str3626, ptr %t724) %t726 = call ptr @lp_str_concat(ptr %t725, ptr @.str3627) %t727 = load ptr, ptr %t723 %t728 = call ptr @lp_str_concat(ptr %t726, ptr %t727) %t729 = call ptr @fn_emit_bind(ptr %t728) %t730 = call ptr @fn_val(ptr %t729, ptr @.str3628) store ptr %t730, ptr %retval br label %ret ifend101: %t731 = load ptr, ptr %t1 %t732 = getelementptr inbounds %Cmp_Node, ptr %t731, i32 0, i32 7 %t733 = load ptr, ptr %t732 %t734 = getelementptr inbounds %LSlice, ptr %t733, i32 0, i32 0 %t735 = load ptr, ptr %t734 %t736 = getelementptr inbounds %LSlice, ptr %t733, i32 0, i32 1 %t737 = load i32, ptr %t736 %t738 = icmp ult i32 0, %t737 br i1 %t738, label %ixok106, label %ixbad107 ixbad107: %t739 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t739, ptr @.fmt_bounds, ptr @.str3629, i32 0, i32 %t737) call void @exit(i32 1) unreachable ixok106: %t740 = getelementptr inbounds ptr, ptr %t735, i32 0 %t741 = load ptr, ptr %t740 %t742 = call ptr @fn_emit_expr(ptr %t741) store ptr %t742, ptr %t743 %t744 = load ptr, ptr %t743 %t745 = getelementptr inbounds %Cmp_Val, ptr %t744, i32 0, i32 0 %t746 = load ptr, ptr %t745 %t747 = call ptr @fn_vec_x(ptr %t746) store ptr %t747, ptr %t748 %t749 = load ptr, ptr %t743 %t750 = getelementptr inbounds %Cmp_Val, ptr %t749, i32 0, i32 0 %t751 = load ptr, ptr %t750 %t752 = call ptr @fn_vec_y(ptr %t751) store ptr %t752, ptr %t753 %t754 = load ptr, ptr %t748 %t755 = call ptr @lp_str_concat(ptr @.str3630, ptr %t754) %t756 = call ptr @lp_str_concat(ptr %t755, ptr @.str3631) %t757 = call ptr @fn_emit_bind(ptr %t756) store ptr %t757, ptr %t758 %t759 = load ptr, ptr %t753 %t760 = call ptr @lp_str_concat(ptr @.str3632, ptr %t759) %t761 = call ptr @lp_str_concat(ptr %t760, ptr @.str3633) %t762 = call ptr @fn_emit_bind(ptr %t761) store ptr %t762, ptr %t763 %t764 = load ptr, ptr %t758 %t765 = load ptr, ptr %t763 %t766 = call ptr @fn_vec_pack(ptr %t764, ptr %t765) %t767 = call ptr @fn_val(ptr %t766, ptr @.str3634) store ptr %t767, ptr %retval br label %ret ret: %t768 = load ptr, ptr %retval ret ptr %t768 } define ptr @fn_rect_pack(ptr %arg_x, ptr %arg_y, ptr %arg_w, ptr %arg_h) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t8 = alloca ptr %t13 = alloca ptr %t18 = alloca ptr %t23 = alloca ptr %t28 = alloca ptr %t33 = alloca ptr %t38 = alloca ptr %t45 = alloca ptr %t52 = alloca ptr store ptr %arg_x, ptr %t0 store ptr %arg_y, ptr %t1 store ptr %arg_w, ptr %t2 store ptr %arg_h, ptr %t3 %t4 = load ptr, ptr %t0 %t5 = call ptr @lp_str_concat(ptr @.str3635, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str3636) %t7 = call ptr @fn_emit_bind(ptr %t6) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = call ptr @lp_str_concat(ptr @.str3637, ptr %t9) %t11 = call ptr @lp_str_concat(ptr %t10, ptr @.str3638) %t12 = call ptr @fn_emit_bind(ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t1 %t15 = call ptr @lp_str_concat(ptr @.str3639, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str3640) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = call ptr @lp_str_concat(ptr @.str3641, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str3642) %t22 = call ptr @fn_emit_bind(ptr %t21) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t2 %t25 = call ptr @lp_str_concat(ptr @.str3643, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str3644) %t27 = call ptr @fn_emit_bind(ptr %t26) store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = call ptr @lp_str_concat(ptr @.str3645, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str3646) %t32 = call ptr @fn_emit_bind(ptr %t31) store ptr %t32, ptr %t33 %t34 = load ptr, ptr %t3 %t35 = call ptr @lp_str_concat(ptr @.str3647, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str3648) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t13 %t40 = call ptr @lp_str_concat(ptr @.str3649, ptr %t39) %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str3650) %t42 = load ptr, ptr %t23 %t43 = call ptr @lp_str_concat(ptr %t41, ptr %t42) %t44 = call ptr @fn_emit_bind(ptr %t43) store ptr %t44, ptr %t45 %t46 = load ptr, ptr %t45 %t47 = call ptr @lp_str_concat(ptr @.str3651, ptr %t46) %t48 = call ptr @lp_str_concat(ptr %t47, ptr @.str3652) %t49 = load ptr, ptr %t33 %t50 = call ptr @lp_str_concat(ptr %t48, ptr %t49) %t51 = call ptr @fn_emit_bind(ptr %t50) store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t52 %t54 = call ptr @lp_str_concat(ptr @.str3653, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str3654) %t56 = load ptr, ptr %t38 %t57 = call ptr @lp_str_concat(ptr %t55, ptr %t56) %t58 = call ptr @fn_emit_bind(ptr %t57) store ptr %t58, ptr %retval br label %ret ret: %t59 = load ptr, ptr %retval ret ptr %t59 } define ptr @fn_rect_field(ptr %arg_r, i32 %arg_sh) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t17 = alloca ptr store ptr %arg_r, ptr %t0 store i32 %arg_sh, ptr %t1 %t2 = load i32, ptr %t1 %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr @.str3655, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str3656) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 %t11 = call ptr @lp_str_concat(ptr @.str3657, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str3658) %t13 = load i32, ptr %t1 %t14 = call ptr @fn_itoa(i32 %t13) %t15 = call ptr @lp_str_concat(ptr %t12, ptr %t14) %t16 = call ptr @fn_emit_bind(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = call ptr @lp_str_concat(ptr @.str3659, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str3660) %t21 = call ptr @fn_emit_bind(ptr %t20) store ptr %t21, ptr %retval br label %ret ret: %t22 = load ptr, ptr %retval ret ptr %t22 } define ptr @fn_rect_cmp(ptr %arg_cmp, ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t12 = alloca ptr store ptr %arg_cmp, ptr %t0 store ptr %arg_a, ptr %t1 store ptr %arg_b, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call ptr @lp_str_concat(ptr @.str3661, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str3662) %t6 = load ptr, ptr %t1 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str3663) %t9 = load ptr, ptr %t2 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = call ptr @lp_str_concat(ptr @.str3664, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str3665) %t16 = call ptr @fn_emit_bind(ptr %t15) store ptr %t16, ptr %retval br label %ret ret: %t17 = load ptr, ptr %retval ret ptr %t17 } define i32 @fn_is_rect_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t36 = alloca i32 %t37 = alloca i32 %t55 = alloca i32 store ptr %arg_meth, ptr %t0 %t5 = load ptr, ptr %t0 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str3666) %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t4 br i1 %t7, label %scend1, label %sc0 sc0: %t9 = load ptr, ptr %t0 %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str3667) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t4 br label %scend1 scend1: %t13 = load i32, ptr %t4 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t3 br i1 %t14, label %scend3, label %sc2 sc2: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str3668) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t3 br label %scend3 scend3: %t20 = load i32, ptr %t3 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t2 br i1 %t21, label %scend5, label %sc4 sc4: %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str3669) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t2 br label %scend5 scend5: %t27 = load i32, ptr %t2 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t1 br i1 %t28, label %scend7, label %sc6 sc6: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str3670) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t1 br label %scend7 scend7: %t34 = load i32, ptr %t1 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t38 = load ptr, ptr %t0 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str3671) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t37 br i1 %t40, label %scend12, label %sc11 sc11: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str3672) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t37 br label %scend12 scend12: %t46 = load i32, ptr %t37 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t36 br i1 %t47, label %scend14, label %sc13 sc13: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str3673) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t36 br label %scend14 scend14: %t53 = load i32, ptr %t36 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: %t56 = load ptr, ptr %t0 %t57 = call i32 @lp_str_eq(ptr %t56, ptr @.str3674) %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t55 br i1 %t58, label %scend19, label %sc18 sc18: %t60 = load ptr, ptr %t0 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str3675) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t55 br label %scend19 scend19: %t64 = load i32, ptr %t55 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then20, label %ifend22 then20: store i32 1, ptr %retval br label %ret ifend22: store i32 0, ptr %retval br label %ret ret: %t66 = load i32, ptr %retval ret i32 %t66 } define ptr @fn_emit_rect_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t30 = alloca ptr %t43 = alloca ptr %t56 = alloca ptr %t86 = alloca ptr %t107 = alloca ptr %t128 = alloca ptr %t149 = alloca ptr %t170 = alloca ptr %t175 = alloca ptr %t180 = alloca ptr %t203 = alloca ptr %t208 = alloca ptr %t213 = alloca ptr %t236 = alloca ptr %t241 = alloca ptr %t246 = alloca ptr %t251 = alloca ptr %t256 = alloca ptr %t261 = alloca ptr %t266 = alloca ptr %t273 = alloca ptr %t280 = alloca ptr %t300 = alloca ptr %t313 = alloca ptr %t326 = alloca ptr %t331 = alloca ptr %t336 = alloca ptr %t341 = alloca ptr %t346 = alloca ptr %t353 = alloca ptr %t360 = alloca ptr %t366 = alloca ptr %t372 = alloca ptr %t378 = alloca ptr %t384 = alloca ptr %t391 = alloca ptr %t398 = alloca ptr %t418 = alloca ptr %t431 = alloca ptr %t436 = alloca ptr %t441 = alloca ptr %t446 = alloca ptr %t451 = alloca ptr %t456 = alloca ptr %t461 = alloca ptr %t466 = alloca ptr %t471 = alloca ptr %t478 = alloca ptr %t485 = alloca ptr %t492 = alloca ptr %t499 = alloca ptr %t503 = alloca ptr %t507 = alloca ptr %t511 = alloca ptr %t515 = alloca ptr %t522 = alloca ptr %t529 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str3676) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str3677, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 1, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str3678, i32 1, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 1 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_emit_expr(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t1 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 2, %t37 br i1 %t38, label %ixok7, label %ixbad8 ixbad8: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str3679, i32 2, i32 %t37) call void @exit(i32 1) unreachable ixok7: %t40 = getelementptr inbounds ptr, ptr %t35, i32 2 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_emit_expr(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t1 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t50 = load i32, ptr %t49 %t51 = icmp ult i32 3, %t50 br i1 %t51, label %ixok9, label %ixbad10 ixbad10: %t52 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t52, ptr @.fmt_bounds, ptr @.str3680, i32 3, i32 %t50) call void @exit(i32 1) unreachable ixok9: %t53 = getelementptr inbounds ptr, ptr %t48, i32 3 %t54 = load ptr, ptr %t53 %t55 = call ptr @fn_emit_expr(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t17 %t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = load ptr, ptr %t30 %t61 = getelementptr inbounds %Cmp_Val, ptr %t60, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = load ptr, ptr %t43 %t64 = getelementptr inbounds %Cmp_Val, ptr %t63, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = load ptr, ptr %t56 %t67 = getelementptr inbounds %Cmp_Val, ptr %t66, i32 0, i32 0 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_rect_pack(ptr %t59, ptr %t62, ptr %t65, ptr %t68) %t70 = call ptr @fn_val(ptr %t69, ptr @.str3681) store ptr %t70, ptr %retval br label %ret ifend2: %t71 = load ptr, ptr %t0 %t72 = call i32 @lp_str_eq(ptr %t71, ptr @.str3682) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then11, label %ifend13 then11: %t74 = load ptr, ptr %t1 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 7 %t76 = load ptr, ptr %t75 %t77 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 0 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t80 = load i32, ptr %t79 %t81 = icmp ult i32 0, %t80 br i1 %t81, label %ixok14, label %ixbad15 ixbad15: %t82 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t82, ptr @.fmt_bounds, ptr @.str3683, i32 0, i32 %t80) call void @exit(i32 1) unreachable ixok14: %t83 = getelementptr inbounds ptr, ptr %t78, i32 0 %t84 = load ptr, ptr %t83 %t85 = call ptr @fn_emit_expr(ptr %t84) store ptr %t85, ptr %t86 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %Cmp_Val, ptr %t87, i32 0, i32 0 %t89 = load ptr, ptr %t88 %t90 = call ptr @fn_rect_field(ptr %t89, i32 96) %t91 = call ptr @fn_val(ptr %t90, ptr @.str3684) store ptr %t91, ptr %retval br label %ret ifend13: %t92 = load ptr, ptr %t0 %t93 = call i32 @lp_str_eq(ptr %t92, ptr @.str3685) %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then16, label %ifend18 then16: %t95 = load ptr, ptr %t1 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 7 %t97 = load ptr, ptr %t96 %t98 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 0, %t101 br i1 %t102, label %ixok19, label %ixbad20 ixbad20: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str3686, i32 0, i32 %t101) call void @exit(i32 1) unreachable ixok19: %t104 = getelementptr inbounds ptr, ptr %t99, i32 0 %t105 = load ptr, ptr %t104 %t106 = call ptr @fn_emit_expr(ptr %t105) store ptr %t106, ptr %t107 %t108 = load ptr, ptr %t107 %t109 = getelementptr inbounds %Cmp_Val, ptr %t108, i32 0, i32 0 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_rect_field(ptr %t110, i32 64) %t112 = call ptr @fn_val(ptr %t111, ptr @.str3687) store ptr %t112, ptr %retval br label %ret ifend18: %t113 = load ptr, ptr %t0 %t114 = call i32 @lp_str_eq(ptr %t113, ptr @.str3688) %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then21, label %ifend23 then21: %t116 = load ptr, ptr %t1 %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 7 %t118 = load ptr, ptr %t117 %t119 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 0 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 1 %t122 = load i32, ptr %t121 %t123 = icmp ult i32 0, %t122 br i1 %t123, label %ixok24, label %ixbad25 ixbad25: %t124 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t124, ptr @.fmt_bounds, ptr @.str3689, i32 0, i32 %t122) call void @exit(i32 1) unreachable ixok24: %t125 = getelementptr inbounds ptr, ptr %t120, i32 0 %t126 = load ptr, ptr %t125 %t127 = call ptr @fn_emit_expr(ptr %t126) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t128 %t130 = getelementptr inbounds %Cmp_Val, ptr %t129, i32 0, i32 0 %t131 = load ptr, ptr %t130 %t132 = call ptr @fn_rect_field(ptr %t131, i32 32) %t133 = call ptr @fn_val(ptr %t132, ptr @.str3690) store ptr %t133, ptr %retval br label %ret ifend23: %t134 = load ptr, ptr %t0 %t135 = call i32 @lp_str_eq(ptr %t134, ptr @.str3691) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then26, label %ifend28 then26: %t137 = load ptr, ptr %t1 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 7 %t139 = load ptr, ptr %t138 %t140 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 0 %t141 = load ptr, ptr %t140 %t142 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 1 %t143 = load i32, ptr %t142 %t144 = icmp ult i32 0, %t143 br i1 %t144, label %ixok29, label %ixbad30 ixbad30: %t145 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t145, ptr @.fmt_bounds, ptr @.str3692, i32 0, i32 %t143) call void @exit(i32 1) unreachable ixok29: %t146 = getelementptr inbounds ptr, ptr %t141, i32 0 %t147 = load ptr, ptr %t146 %t148 = call ptr @fn_emit_expr(ptr %t147) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %Cmp_Val, ptr %t150, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = call ptr @fn_rect_field(ptr %t152, i32 0) %t154 = call ptr @fn_val(ptr %t153, ptr @.str3693) store ptr %t154, ptr %retval br label %ret ifend28: %t155 = load ptr, ptr %t0 %t156 = call i32 @lp_str_eq(ptr %t155, ptr @.str3694) %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then31, label %ifend33 then31: %t158 = load ptr, ptr %t1 %t159 = getelementptr inbounds %Cmp_Node, ptr %t158, i32 0, i32 7 %t160 = load ptr, ptr %t159 %t161 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 1 %t164 = load i32, ptr %t163 %t165 = icmp ult i32 0, %t164 br i1 %t165, label %ixok34, label %ixbad35 ixbad35: %t166 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t166, ptr @.fmt_bounds, ptr @.str3695, i32 0, i32 %t164) call void @exit(i32 1) unreachable ixok34: %t167 = getelementptr inbounds ptr, ptr %t162, i32 0 %t168 = load ptr, ptr %t167 %t169 = call ptr @fn_emit_expr(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t170 %t172 = getelementptr inbounds %Cmp_Val, ptr %t171, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = call ptr @fn_rect_field(ptr %t173, i32 96) store ptr %t174, ptr %t175 %t176 = load ptr, ptr %t170 %t177 = getelementptr inbounds %Cmp_Val, ptr %t176, i32 0, i32 0 %t178 = load ptr, ptr %t177 %t179 = call ptr @fn_rect_field(ptr %t178, i32 32) store ptr %t179, ptr %t180 %t181 = load ptr, ptr %t175 %t182 = call ptr @lp_str_concat(ptr @.str3696, ptr %t181) %t183 = call ptr @lp_str_concat(ptr %t182, ptr @.str3697) %t184 = load ptr, ptr %t180 %t185 = call ptr @lp_str_concat(ptr %t183, ptr %t184) %t186 = call ptr @fn_emit_bind(ptr %t185) %t187 = call ptr @fn_val(ptr %t186, ptr @.str3698) store ptr %t187, ptr %retval br label %ret ifend33: %t188 = load ptr, ptr %t0 %t189 = call i32 @lp_str_eq(ptr %t188, ptr @.str3699) %t190 = icmp ne i32 %t189, 0 br i1 %t190, label %then36, label %ifend38 then36: %t191 = load ptr, ptr %t1 %t192 = getelementptr inbounds %Cmp_Node, ptr %t191, i32 0, i32 7 %t193 = load ptr, ptr %t192 %t194 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 0 %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 1 %t197 = load i32, ptr %t196 %t198 = icmp ult i32 0, %t197 br i1 %t198, label %ixok39, label %ixbad40 ixbad40: %t199 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t199, ptr @.fmt_bounds, ptr @.str3700, i32 0, i32 %t197) call void @exit(i32 1) unreachable ixok39: %t200 = getelementptr inbounds ptr, ptr %t195, i32 0 %t201 = load ptr, ptr %t200 %t202 = call ptr @fn_emit_expr(ptr %t201) store ptr %t202, ptr %t203 %t204 = load ptr, ptr %t203 %t205 = getelementptr inbounds %Cmp_Val, ptr %t204, i32 0, i32 0 %t206 = load ptr, ptr %t205 %t207 = call ptr @fn_rect_field(ptr %t206, i32 64) store ptr %t207, ptr %t208 %t209 = load ptr, ptr %t203 %t210 = getelementptr inbounds %Cmp_Val, ptr %t209, i32 0, i32 0 %t211 = load ptr, ptr %t210 %t212 = call ptr @fn_rect_field(ptr %t211, i32 0) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t208 %t215 = call ptr @lp_str_concat(ptr @.str3701, ptr %t214) %t216 = call ptr @lp_str_concat(ptr %t215, ptr @.str3702) %t217 = load ptr, ptr %t213 %t218 = call ptr @lp_str_concat(ptr %t216, ptr %t217) %t219 = call ptr @fn_emit_bind(ptr %t218) %t220 = call ptr @fn_val(ptr %t219, ptr @.str3703) store ptr %t220, ptr %retval br label %ret ifend38: %t221 = load ptr, ptr %t0 %t222 = call i32 @lp_str_eq(ptr %t221, ptr @.str3704) %t223 = icmp ne i32 %t222, 0 br i1 %t223, label %then41, label %ifend43 then41: %t224 = load ptr, ptr %t1 %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 7 %t226 = load ptr, ptr %t225 %t227 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 0 %t228 = load ptr, ptr %t227 %t229 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 1 %t230 = load i32, ptr %t229 %t231 = icmp ult i32 0, %t230 br i1 %t231, label %ixok44, label %ixbad45 ixbad45: %t232 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t232, ptr @.fmt_bounds, ptr @.str3705, i32 0, i32 %t230) call void @exit(i32 1) unreachable ixok44: %t233 = getelementptr inbounds ptr, ptr %t228, i32 0 %t234 = load ptr, ptr %t233 %t235 = call ptr @fn_emit_expr(ptr %t234) store ptr %t235, ptr %t236 %t237 = load ptr, ptr %t236 %t238 = getelementptr inbounds %Cmp_Val, ptr %t237, i32 0, i32 0 %t239 = load ptr, ptr %t238 %t240 = call ptr @fn_rect_field(ptr %t239, i32 96) store ptr %t240, ptr %t241 %t242 = load ptr, ptr %t236 %t243 = getelementptr inbounds %Cmp_Val, ptr %t242, i32 0, i32 0 %t244 = load ptr, ptr %t243 %t245 = call ptr @fn_rect_field(ptr %t244, i32 64) store ptr %t245, ptr %t246 %t247 = load ptr, ptr %t236 %t248 = getelementptr inbounds %Cmp_Val, ptr %t247, i32 0, i32 0 %t249 = load ptr, ptr %t248 %t250 = call ptr @fn_rect_field(ptr %t249, i32 32) store ptr %t250, ptr %t251 %t252 = load ptr, ptr %t236 %t253 = getelementptr inbounds %Cmp_Val, ptr %t252, i32 0, i32 0 %t254 = load ptr, ptr %t253 %t255 = call ptr @fn_rect_field(ptr %t254, i32 0) store ptr %t255, ptr %t256 %t257 = load ptr, ptr %t251 %t258 = call ptr @lp_str_concat(ptr @.str3706, ptr %t257) %t259 = call ptr @lp_str_concat(ptr %t258, ptr @.str3707) %t260 = call ptr @fn_emit_bind(ptr %t259) store ptr %t260, ptr %t261 %t262 = load ptr, ptr %t256 %t263 = call ptr @lp_str_concat(ptr @.str3708, ptr %t262) %t264 = call ptr @lp_str_concat(ptr %t263, ptr @.str3709) %t265 = call ptr @fn_emit_bind(ptr %t264) store ptr %t265, ptr %t266 %t267 = load ptr, ptr %t241 %t268 = call ptr @lp_str_concat(ptr @.str3710, ptr %t267) %t269 = call ptr @lp_str_concat(ptr %t268, ptr @.str3711) %t270 = load ptr, ptr %t261 %t271 = call ptr @lp_str_concat(ptr %t269, ptr %t270) %t272 = call ptr @fn_emit_bind(ptr %t271) store ptr %t272, ptr %t273 %t274 = load ptr, ptr %t246 %t275 = call ptr @lp_str_concat(ptr @.str3712, ptr %t274) %t276 = call ptr @lp_str_concat(ptr %t275, ptr @.str3713) %t277 = load ptr, ptr %t266 %t278 = call ptr @lp_str_concat(ptr %t276, ptr %t277) %t279 = call ptr @fn_emit_bind(ptr %t278) store ptr %t279, ptr %t280 %t281 = load ptr, ptr %t273 %t282 = load ptr, ptr %t280 %t283 = call ptr @fn_vec_pack(ptr %t281, ptr %t282) %t284 = call ptr @fn_val(ptr %t283, ptr @.str3714) store ptr %t284, ptr %retval br label %ret ifend43: %t285 = load ptr, ptr %t0 %t286 = call i32 @lp_str_eq(ptr %t285, ptr @.str3715) %t287 = icmp ne i32 %t286, 0 br i1 %t287, label %then46, label %ifend48 then46: %t288 = load ptr, ptr %t1 %t289 = getelementptr inbounds %Cmp_Node, ptr %t288, i32 0, i32 7 %t290 = load ptr, ptr %t289 %t291 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 0 %t292 = load ptr, ptr %t291 %t293 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 1 %t294 = load i32, ptr %t293 %t295 = icmp ult i32 0, %t294 br i1 %t295, label %ixok49, label %ixbad50 ixbad50: %t296 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t296, ptr @.fmt_bounds, ptr @.str3716, i32 0, i32 %t294) call void @exit(i32 1) unreachable ixok49: %t297 = getelementptr inbounds ptr, ptr %t292, i32 0 %t298 = load ptr, ptr %t297 %t299 = call ptr @fn_emit_expr(ptr %t298) store ptr %t299, ptr %t300 %t301 = load ptr, ptr %t1 %t302 = getelementptr inbounds %Cmp_Node, ptr %t301, i32 0, i32 7 %t303 = load ptr, ptr %t302 %t304 = getelementptr inbounds %LSlice, ptr %t303, i32 0, i32 0 %t305 = load ptr, ptr %t304 %t306 = getelementptr inbounds %LSlice, ptr %t303, i32 0, i32 1 %t307 = load i32, ptr %t306 %t308 = icmp ult i32 1, %t307 br i1 %t308, label %ixok51, label %ixbad52 ixbad52: %t309 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t309, ptr @.fmt_bounds, ptr @.str3717, i32 1, i32 %t307) call void @exit(i32 1) unreachable ixok51: %t310 = getelementptr inbounds ptr, ptr %t305, i32 1 %t311 = load ptr, ptr %t310 %t312 = call ptr @fn_emit_expr(ptr %t311) store ptr %t312, ptr %t313 %t314 = load ptr, ptr %t1 %t315 = getelementptr inbounds %Cmp_Node, ptr %t314, i32 0, i32 7 %t316 = load ptr, ptr %t315 %t317 = getelementptr inbounds %LSlice, ptr %t316, i32 0, i32 0 %t318 = load ptr, ptr %t317 %t319 = getelementptr inbounds %LSlice, ptr %t316, i32 0, i32 1 %t320 = load i32, ptr %t319 %t321 = icmp ult i32 2, %t320 br i1 %t321, label %ixok53, label %ixbad54 ixbad54: %t322 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t322, ptr @.fmt_bounds, ptr @.str3718, i32 2, i32 %t320) call void @exit(i32 1) unreachable ixok53: %t323 = getelementptr inbounds ptr, ptr %t318, i32 2 %t324 = load ptr, ptr %t323 %t325 = call ptr @fn_emit_expr(ptr %t324) store ptr %t325, ptr %t326 %t327 = load ptr, ptr %t300 %t328 = getelementptr inbounds %Cmp_Val, ptr %t327, i32 0, i32 0 %t329 = load ptr, ptr %t328 %t330 = call ptr @fn_rect_field(ptr %t329, i32 96) store ptr %t330, ptr %t331 %t332 = load ptr, ptr %t300 %t333 = getelementptr inbounds %Cmp_Val, ptr %t332, i32 0, i32 0 %t334 = load ptr, ptr %t333 %t335 = call ptr @fn_rect_field(ptr %t334, i32 64) store ptr %t335, ptr %t336 %t337 = load ptr, ptr %t300 %t338 = getelementptr inbounds %Cmp_Val, ptr %t337, i32 0, i32 0 %t339 = load ptr, ptr %t338 %t340 = call ptr @fn_rect_field(ptr %t339, i32 32) store ptr %t340, ptr %t341 %t342 = load ptr, ptr %t300 %t343 = getelementptr inbounds %Cmp_Val, ptr %t342, i32 0, i32 0 %t344 = load ptr, ptr %t343 %t345 = call ptr @fn_rect_field(ptr %t344, i32 0) store ptr %t345, ptr %t346 %t347 = load ptr, ptr %t331 %t348 = call ptr @lp_str_concat(ptr @.str3719, ptr %t347) %t349 = call ptr @lp_str_concat(ptr %t348, ptr @.str3720) %t350 = load ptr, ptr %t341 %t351 = call ptr @lp_str_concat(ptr %t349, ptr %t350) %t352 = call ptr @fn_emit_bind(ptr %t351) store ptr %t352, ptr %t353 %t354 = load ptr, ptr %t336 %t355 = call ptr @lp_str_concat(ptr @.str3721, ptr %t354) %t356 = call ptr @lp_str_concat(ptr %t355, ptr @.str3722) %t357 = load ptr, ptr %t346 %t358 = call ptr @lp_str_concat(ptr %t356, ptr %t357) %t359 = call ptr @fn_emit_bind(ptr %t358) store ptr %t359, ptr %t360 %t361 = load ptr, ptr %t313 %t362 = getelementptr inbounds %Cmp_Val, ptr %t361, i32 0, i32 0 %t363 = load ptr, ptr %t362 %t364 = load ptr, ptr %t331 %t365 = call ptr @fn_rect_cmp(ptr @.str3723, ptr %t363, ptr %t364) store ptr %t365, ptr %t366 %t367 = load ptr, ptr %t313 %t368 = getelementptr inbounds %Cmp_Val, ptr %t367, i32 0, i32 0 %t369 = load ptr, ptr %t368 %t370 = load ptr, ptr %t353 %t371 = call ptr @fn_rect_cmp(ptr @.str3724, ptr %t369, ptr %t370) store ptr %t371, ptr %t372 %t373 = load ptr, ptr %t326 %t374 = getelementptr inbounds %Cmp_Val, ptr %t373, i32 0, i32 0 %t375 = load ptr, ptr %t374 %t376 = load ptr, ptr %t336 %t377 = call ptr @fn_rect_cmp(ptr @.str3725, ptr %t375, ptr %t376) store ptr %t377, ptr %t378 %t379 = load ptr, ptr %t326 %t380 = getelementptr inbounds %Cmp_Val, ptr %t379, i32 0, i32 0 %t381 = load ptr, ptr %t380 %t382 = load ptr, ptr %t360 %t383 = call ptr @fn_rect_cmp(ptr @.str3726, ptr %t381, ptr %t382) store ptr %t383, ptr %t384 %t385 = load ptr, ptr %t366 %t386 = call ptr @lp_str_concat(ptr @.str3727, ptr %t385) %t387 = call ptr @lp_str_concat(ptr %t386, ptr @.str3728) %t388 = load ptr, ptr %t372 %t389 = call ptr @lp_str_concat(ptr %t387, ptr %t388) %t390 = call ptr @fn_emit_bind(ptr %t389) store ptr %t390, ptr %t391 %t392 = load ptr, ptr %t378 %t393 = call ptr @lp_str_concat(ptr @.str3729, ptr %t392) %t394 = call ptr @lp_str_concat(ptr %t393, ptr @.str3730) %t395 = load ptr, ptr %t384 %t396 = call ptr @lp_str_concat(ptr %t394, ptr %t395) %t397 = call ptr @fn_emit_bind(ptr %t396) store ptr %t397, ptr %t398 %t399 = load ptr, ptr %t391 %t400 = call ptr @lp_str_concat(ptr @.str3731, ptr %t399) %t401 = call ptr @lp_str_concat(ptr %t400, ptr @.str3732) %t402 = load ptr, ptr %t398 %t403 = call ptr @lp_str_concat(ptr %t401, ptr %t402) %t404 = call ptr @fn_emit_bind(ptr %t403) %t405 = call ptr @fn_val(ptr %t404, ptr @.str3733) store ptr %t405, ptr %retval br label %ret ifend48: %t406 = load ptr, ptr %t1 %t407 = getelementptr inbounds %Cmp_Node, ptr %t406, i32 0, i32 7 %t408 = load ptr, ptr %t407 %t409 = getelementptr inbounds %LSlice, ptr %t408, i32 0, i32 0 %t410 = load ptr, ptr %t409 %t411 = getelementptr inbounds %LSlice, ptr %t408, i32 0, i32 1 %t412 = load i32, ptr %t411 %t413 = icmp ult i32 0, %t412 br i1 %t413, label %ixok55, label %ixbad56 ixbad56: %t414 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t414, ptr @.fmt_bounds, ptr @.str3734, i32 0, i32 %t412) call void @exit(i32 1) unreachable ixok55: %t415 = getelementptr inbounds ptr, ptr %t410, i32 0 %t416 = load ptr, ptr %t415 %t417 = call ptr @fn_emit_expr(ptr %t416) store ptr %t417, ptr %t418 %t419 = load ptr, ptr %t1 %t420 = getelementptr inbounds %Cmp_Node, ptr %t419, i32 0, i32 7 %t421 = load ptr, ptr %t420 %t422 = getelementptr inbounds %LSlice, ptr %t421, i32 0, i32 0 %t423 = load ptr, ptr %t422 %t424 = getelementptr inbounds %LSlice, ptr %t421, i32 0, i32 1 %t425 = load i32, ptr %t424 %t426 = icmp ult i32 1, %t425 br i1 %t426, label %ixok57, label %ixbad58 ixbad58: %t427 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t427, ptr @.fmt_bounds, ptr @.str3735, i32 1, i32 %t425) call void @exit(i32 1) unreachable ixok57: %t428 = getelementptr inbounds ptr, ptr %t423, i32 1 %t429 = load ptr, ptr %t428 %t430 = call ptr @fn_emit_expr(ptr %t429) store ptr %t430, ptr %t431 %t432 = load ptr, ptr %t418 %t433 = getelementptr inbounds %Cmp_Val, ptr %t432, i32 0, i32 0 %t434 = load ptr, ptr %t433 %t435 = call ptr @fn_rect_field(ptr %t434, i32 96) store ptr %t435, ptr %t436 %t437 = load ptr, ptr %t418 %t438 = getelementptr inbounds %Cmp_Val, ptr %t437, i32 0, i32 0 %t439 = load ptr, ptr %t438 %t440 = call ptr @fn_rect_field(ptr %t439, i32 64) store ptr %t440, ptr %t441 %t442 = load ptr, ptr %t418 %t443 = getelementptr inbounds %Cmp_Val, ptr %t442, i32 0, i32 0 %t444 = load ptr, ptr %t443 %t445 = call ptr @fn_rect_field(ptr %t444, i32 32) store ptr %t445, ptr %t446 %t447 = load ptr, ptr %t418 %t448 = getelementptr inbounds %Cmp_Val, ptr %t447, i32 0, i32 0 %t449 = load ptr, ptr %t448 %t450 = call ptr @fn_rect_field(ptr %t449, i32 0) store ptr %t450, ptr %t451 %t452 = load ptr, ptr %t431 %t453 = getelementptr inbounds %Cmp_Val, ptr %t452, i32 0, i32 0 %t454 = load ptr, ptr %t453 %t455 = call ptr @fn_rect_field(ptr %t454, i32 96) store ptr %t455, ptr %t456 %t457 = load ptr, ptr %t431 %t458 = getelementptr inbounds %Cmp_Val, ptr %t457, i32 0, i32 0 %t459 = load ptr, ptr %t458 %t460 = call ptr @fn_rect_field(ptr %t459, i32 64) store ptr %t460, ptr %t461 %t462 = load ptr, ptr %t431 %t463 = getelementptr inbounds %Cmp_Val, ptr %t462, i32 0, i32 0 %t464 = load ptr, ptr %t463 %t465 = call ptr @fn_rect_field(ptr %t464, i32 32) store ptr %t465, ptr %t466 %t467 = load ptr, ptr %t431 %t468 = getelementptr inbounds %Cmp_Val, ptr %t467, i32 0, i32 0 %t469 = load ptr, ptr %t468 %t470 = call ptr @fn_rect_field(ptr %t469, i32 0) store ptr %t470, ptr %t471 %t472 = load ptr, ptr %t436 %t473 = call ptr @lp_str_concat(ptr @.str3736, ptr %t472) %t474 = call ptr @lp_str_concat(ptr %t473, ptr @.str3737) %t475 = load ptr, ptr %t446 %t476 = call ptr @lp_str_concat(ptr %t474, ptr %t475) %t477 = call ptr @fn_emit_bind(ptr %t476) store ptr %t477, ptr %t478 %t479 = load ptr, ptr %t441 %t480 = call ptr @lp_str_concat(ptr @.str3738, ptr %t479) %t481 = call ptr @lp_str_concat(ptr %t480, ptr @.str3739) %t482 = load ptr, ptr %t451 %t483 = call ptr @lp_str_concat(ptr %t481, ptr %t482) %t484 = call ptr @fn_emit_bind(ptr %t483) store ptr %t484, ptr %t485 %t486 = load ptr, ptr %t456 %t487 = call ptr @lp_str_concat(ptr @.str3740, ptr %t486) %t488 = call ptr @lp_str_concat(ptr %t487, ptr @.str3741) %t489 = load ptr, ptr %t466 %t490 = call ptr @lp_str_concat(ptr %t488, ptr %t489) %t491 = call ptr @fn_emit_bind(ptr %t490) store ptr %t491, ptr %t492 %t493 = load ptr, ptr %t461 %t494 = call ptr @lp_str_concat(ptr @.str3742, ptr %t493) %t495 = call ptr @lp_str_concat(ptr %t494, ptr @.str3743) %t496 = load ptr, ptr %t471 %t497 = call ptr @lp_str_concat(ptr %t495, ptr %t496) %t498 = call ptr @fn_emit_bind(ptr %t497) store ptr %t498, ptr %t499 %t500 = load ptr, ptr %t436 %t501 = load ptr, ptr %t492 %t502 = call ptr @fn_rect_cmp(ptr @.str3744, ptr %t500, ptr %t501) store ptr %t502, ptr %t503 %t504 = load ptr, ptr %t456 %t505 = load ptr, ptr %t478 %t506 = call ptr @fn_rect_cmp(ptr @.str3745, ptr %t504, ptr %t505) store ptr %t506, ptr %t507 %t508 = load ptr, ptr %t441 %t509 = load ptr, ptr %t499 %t510 = call ptr @fn_rect_cmp(ptr @.str3746, ptr %t508, ptr %t509) store ptr %t510, ptr %t511 %t512 = load ptr, ptr %t461 %t513 = load ptr, ptr %t485 %t514 = call ptr @fn_rect_cmp(ptr @.str3747, ptr %t512, ptr %t513) store ptr %t514, ptr %t515 %t516 = load ptr, ptr %t503 %t517 = call ptr @lp_str_concat(ptr @.str3748, ptr %t516) %t518 = call ptr @lp_str_concat(ptr %t517, ptr @.str3749) %t519 = load ptr, ptr %t507 %t520 = call ptr @lp_str_concat(ptr %t518, ptr %t519) %t521 = call ptr @fn_emit_bind(ptr %t520) store ptr %t521, ptr %t522 %t523 = load ptr, ptr %t511 %t524 = call ptr @lp_str_concat(ptr @.str3750, ptr %t523) %t525 = call ptr @lp_str_concat(ptr %t524, ptr @.str3751) %t526 = load ptr, ptr %t515 %t527 = call ptr @lp_str_concat(ptr %t525, ptr %t526) %t528 = call ptr @fn_emit_bind(ptr %t527) store ptr %t528, ptr %t529 %t530 = load ptr, ptr %t522 %t531 = call ptr @lp_str_concat(ptr @.str3752, ptr %t530) %t532 = call ptr @lp_str_concat(ptr %t531, ptr @.str3753) %t533 = load ptr, ptr %t529 %t534 = call ptr @lp_str_concat(ptr %t532, ptr %t533) %t535 = call ptr @fn_emit_bind(ptr %t534) %t536 = call ptr @fn_val(ptr %t535, ptr @.str3754) store ptr %t536, ptr %retval br label %ret ret: %t537 = load ptr, ptr %retval ret ptr %t537 } define i32 @fn_is_text_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 %t22 = alloca i32 %t50 = alloca i32 %t61 = alloca i32 %t72 = alloca i32 %t73 = alloca i32 %t74 = alloca i32 %t99 = alloca i32 %t110 = alloca i32 %t111 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str3755) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str3756) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str3757) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str3758) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t22 br i1 %t25, label %scend8, label %sc7 sc7: %t27 = load ptr, ptr %t0 %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str3759) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t22 br label %scend8 scend8: %t31 = load i32, ptr %t22 %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t21 br i1 %t32, label %scend10, label %sc9 sc9: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str3760) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t21 br label %scend10 scend10: %t38 = load i32, ptr %t21 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t20 br i1 %t39, label %scend12, label %sc11 sc11: %t41 = load ptr, ptr %t0 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str3761) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t20 br label %scend12 scend12: %t45 = load i32, ptr %t20 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then13, label %ifend15 then13: store i32 1, ptr %retval br label %ret ifend15: %t47 = load ptr, ptr %t0 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str3762) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then16, label %ifend18 then16: store i32 1, ptr %retval br label %ret ifend18: %t51 = load ptr, ptr %t0 %t52 = call i32 @lp_str_eq(ptr %t51, ptr @.str3763) %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t50 br i1 %t53, label %scend20, label %sc19 sc19: %t55 = load ptr, ptr %t0 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str3764) %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t50 br label %scend20 scend20: %t59 = load i32, ptr %t50 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then21, label %ifend23 then21: store i32 1, ptr %retval br label %ret ifend23: %t62 = load ptr, ptr %t0 %t63 = call i32 @lp_str_eq(ptr %t62, ptr @.str3765) %t64 = icmp ne i32 %t63, 0 %t65 = zext i1 %t64 to i32 store i32 %t65, ptr %t61 br i1 %t64, label %scend25, label %sc24 sc24: %t66 = load ptr, ptr %t0 %t67 = call i32 @lp_str_eq(ptr %t66, ptr @.str3766) %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t61 br label %scend25 scend25: %t70 = load i32, ptr %t61 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then26, label %ifend28 then26: store i32 1, ptr %retval br label %ret ifend28: %t75 = load ptr, ptr %t0 %t76 = call i32 @lp_str_eq(ptr %t75, ptr @.str3767) %t77 = icmp ne i32 %t76, 0 %t78 = zext i1 %t77 to i32 store i32 %t78, ptr %t74 br i1 %t77, label %scend30, label %sc29 sc29: %t79 = load ptr, ptr %t0 %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str3768) %t81 = icmp ne i32 %t80, 0 %t82 = zext i1 %t81 to i32 store i32 %t82, ptr %t74 br label %scend30 scend30: %t83 = load i32, ptr %t74 %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t73 br i1 %t84, label %scend32, label %sc31 sc31: %t86 = load ptr, ptr %t0 %t87 = call i32 @lp_str_eq(ptr %t86, ptr @.str3769) %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t73 br label %scend32 scend32: %t90 = load i32, ptr %t73 %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t72 br i1 %t91, label %scend34, label %sc33 sc33: %t93 = load ptr, ptr %t0 %t94 = call i32 @lp_str_eq(ptr %t93, ptr @.str3770) %t95 = icmp ne i32 %t94, 0 %t96 = zext i1 %t95 to i32 store i32 %t96, ptr %t72 br label %scend34 scend34: %t97 = load i32, ptr %t72 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then35, label %ifend37 then35: store i32 1, ptr %retval br label %ret ifend37: %t100 = load ptr, ptr %t0 %t101 = call i32 @lp_str_eq(ptr %t100, ptr @.str3771) %t102 = icmp ne i32 %t101, 0 %t103 = zext i1 %t102 to i32 store i32 %t103, ptr %t99 br i1 %t102, label %scend39, label %sc38 sc38: %t104 = load ptr, ptr %t0 %t105 = call i32 @lp_str_eq(ptr %t104, ptr @.str3772) %t106 = icmp ne i32 %t105, 0 %t107 = zext i1 %t106 to i32 store i32 %t107, ptr %t99 br label %scend39 scend39: %t108 = load i32, ptr %t99 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then40, label %ifend42 then40: store i32 1, ptr %retval br label %ret ifend42: %t112 = load ptr, ptr %t0 %t113 = call i32 @lp_str_eq(ptr %t112, ptr @.str3773) %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t111 br i1 %t114, label %scend44, label %sc43 sc43: %t116 = load ptr, ptr %t0 %t117 = call i32 @lp_str_eq(ptr %t116, ptr @.str3774) %t118 = icmp ne i32 %t117, 0 %t119 = zext i1 %t118 to i32 store i32 %t119, ptr %t111 br label %scend44 scend44: %t120 = load i32, ptr %t111 %t121 = icmp ne i32 %t120, 0 %t122 = zext i1 %t121 to i32 store i32 %t122, ptr %t110 br i1 %t121, label %scend46, label %sc45 sc45: %t123 = load ptr, ptr %t0 %t124 = call i32 @lp_str_eq(ptr %t123, ptr @.str3775) %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t110 br label %scend46 scend46: %t127 = load i32, ptr %t110 %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %then47, label %ifend49 then47: store i32 1, ptr %retval br label %ret ifend49: store i32 0, ptr %retval br label %ret ret: %t129 = load i32, ptr %retval ret i32 %t129 } define ptr @fn_emit_text_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t40 = alloca ptr %t53 = alloca ptr %t66 = alloca ptr %t99 = alloca ptr %t112 = alloca ptr %t140 = alloca ptr %t153 = alloca ptr %t178 = alloca ptr %t188 = alloca ptr %t209 = alloca ptr %t220 = alloca ptr %t224 = alloca ptr %t239 = alloca ptr %t300 = alloca ptr %t328 = alloca ptr %t356 = alloca ptr %t384 = alloca ptr %t397 = alloca ptr %t430 = alloca ptr %t458 = alloca ptr %t471 = alloca i32 %t494 = alloca ptr %t506 = alloca ptr %t514 = alloca ptr %t524 = alloca ptr %t529 = alloca ptr %t536 = alloca ptr %t543 = alloca ptr %t548 = alloca ptr %t568 = alloca ptr %t575 = alloca ptr %t593 = alloca ptr %t598 = alloca ptr %t610 = alloca ptr %t617 = alloca ptr %t619 = alloca ptr %t625 = alloca ptr %t627 = alloca ptr %t629 = alloca ptr %t642 = alloca ptr %t655 = alloca ptr %t660 = alloca ptr %t665 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str3776) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str3777, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 store i32 1, ptr @g_g_uses_intstr %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str3778, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str3779) %t23 = call ptr @fn_emit_bind(ptr %t22) %t24 = call ptr @fn_val(ptr %t23, ptr @.str3780) store ptr %t24, ptr %retval br label %ret ifend2: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str3781) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = load ptr, ptr %t1 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 0, %t34 br i1 %t35, label %ixok8, label %ixbad9 ixbad9: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str3782, i32 0, i32 %t34) call void @exit(i32 1) unreachable ixok8: %t37 = getelementptr inbounds ptr, ptr %t32, i32 0 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_emit_expr(ptr %t38) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t1 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 7 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 1, %t47 br i1 %t48, label %ixok10, label %ixbad11 ixbad11: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str3783, i32 1, i32 %t47) call void @exit(i32 1) unreachable ixok10: %t50 = getelementptr inbounds ptr, ptr %t45, i32 1 %t51 = load ptr, ptr %t50 %t52 = call ptr @fn_emit_expr(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t1 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 7 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t60 = load i32, ptr %t59 %t61 = icmp ult i32 2, %t60 br i1 %t61, label %ixok12, label %ixbad13 ixbad13: %t62 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t62, ptr @.fmt_bounds, ptr @.str3784, i32 2, i32 %t60) call void @exit(i32 1) unreachable ixok12: %t63 = getelementptr inbounds ptr, ptr %t58, i32 2 %t64 = load ptr, ptr %t63 %t65 = call ptr @fn_emit_expr(ptr %t64) store ptr %t65, ptr %t66 store i32 1, ptr @g_g_uses_strslice %t67 = load ptr, ptr %t40 %t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0 %t69 = load ptr, ptr %t68 %t70 = call ptr @lp_str_concat(ptr @.str3785, ptr %t69) %t71 = call ptr @lp_str_concat(ptr %t70, ptr @.str3786) %t72 = load ptr, ptr %t53 %t73 = getelementptr inbounds %Cmp_Val, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = call ptr @lp_str_concat(ptr %t71, ptr %t74) %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str3787) %t77 = load ptr, ptr %t66 %t78 = getelementptr inbounds %Cmp_Val, ptr %t77, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = call ptr @lp_str_concat(ptr %t76, ptr %t79) %t81 = call ptr @lp_str_concat(ptr %t80, ptr @.str3788) %t82 = call ptr @fn_emit_bind(ptr %t81) %t83 = call ptr @fn_val(ptr %t82, ptr @.str3789) store ptr %t83, ptr %retval br label %ret ifend7: %t84 = load ptr, ptr %t0 %t85 = call i32 @lp_str_eq(ptr %t84, ptr @.str3790) %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then14, label %ifend16 then14: %t87 = load ptr, ptr %t1 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 7 %t89 = load ptr, ptr %t88 %t90 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp ult i32 0, %t93 br i1 %t94, label %ixok17, label %ixbad18 ixbad18: %t95 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t95, ptr @.fmt_bounds, ptr @.str3791, i32 0, i32 %t93) call void @exit(i32 1) unreachable ixok17: %t96 = getelementptr inbounds ptr, ptr %t91, i32 0 %t97 = load ptr, ptr %t96 %t98 = call ptr @fn_emit_expr(ptr %t97) store ptr %t98, ptr %t99 %t100 = load ptr, ptr %t1 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 7 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp ult i32 1, %t106 br i1 %t107, label %ixok19, label %ixbad20 ixbad20: %t108 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t108, ptr @.fmt_bounds, ptr @.str3792, i32 1, i32 %t106) call void @exit(i32 1) unreachable ixok19: %t109 = getelementptr inbounds ptr, ptr %t104, i32 1 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_emit_expr(ptr %t110) store ptr %t111, ptr %t112 store i32 1, ptr @g_g_uses_str %t113 = load ptr, ptr %t99 %t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = call ptr @lp_str_concat(ptr @.str3793, ptr %t115) %t117 = call ptr @lp_str_concat(ptr %t116, ptr @.str3794) %t118 = load ptr, ptr %t112 %t119 = getelementptr inbounds %Cmp_Val, ptr %t118, i32 0, i32 0 %t120 = load ptr, ptr %t119 %t121 = call ptr @lp_str_concat(ptr %t117, ptr %t120) %t122 = call ptr @lp_str_concat(ptr %t121, ptr @.str3795) %t123 = call ptr @fn_emit_bind(ptr %t122) %t124 = call ptr @fn_val(ptr %t123, ptr @.str3796) store ptr %t124, ptr %retval br label %ret ifend16: %t125 = load ptr, ptr %t0 %t126 = call i32 @lp_str_eq(ptr %t125, ptr @.str3797) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then21, label %ifend23 then21: %t128 = load ptr, ptr %t1 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 7 %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 %t133 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t134 = load i32, ptr %t133 %t135 = icmp ult i32 0, %t134 br i1 %t135, label %ixok24, label %ixbad25 ixbad25: %t136 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t136, ptr @.fmt_bounds, ptr @.str3798, i32 0, i32 %t134) call void @exit(i32 1) unreachable ixok24: %t137 = getelementptr inbounds ptr, ptr %t132, i32 0 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_emit_expr(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t1 %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 7 %t143 = load ptr, ptr %t142 %t144 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 1 %t147 = load i32, ptr %t146 %t148 = icmp ult i32 1, %t147 br i1 %t148, label %ixok26, label %ixbad27 ixbad27: %t149 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t149, ptr @.fmt_bounds, ptr @.str3799, i32 1, i32 %t147) call void @exit(i32 1) unreachable ixok26: %t150 = getelementptr inbounds ptr, ptr %t145, i32 1 %t151 = load ptr, ptr %t150 %t152 = call ptr @fn_emit_expr(ptr %t151) store ptr %t152, ptr %t153 store i32 1, ptr @g_g_uses_str %t154 = load ptr, ptr %t140 %t155 = getelementptr inbounds %Cmp_Val, ptr %t154, i32 0, i32 0 %t156 = load ptr, ptr %t155 %t157 = call ptr @lp_str_concat(ptr @.str3800, ptr %t156) %t158 = call ptr @lp_str_concat(ptr %t157, ptr @.str3801) %t159 = load ptr, ptr %t153 %t160 = getelementptr inbounds %Cmp_Val, ptr %t159, i32 0, i32 0 %t161 = load ptr, ptr %t160 %t162 = call ptr @lp_str_concat(ptr %t158, ptr %t161) %t163 = call ptr @lp_str_concat(ptr %t162, ptr @.str3802) %t164 = call ptr @fn_emit_bind(ptr %t163) %t165 = call ptr @fn_val(ptr %t164, ptr @.str3803) store ptr %t165, ptr %retval br label %ret ifend23: %t166 = load ptr, ptr %t1 %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 7 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 0 %t170 = load ptr, ptr %t169 %t171 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 1 %t172 = load i32, ptr %t171 %t173 = icmp ult i32 0, %t172 br i1 %t173, label %ixok28, label %ixbad29 ixbad29: %t174 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t174, ptr @.fmt_bounds, ptr @.str3804, i32 0, i32 %t172) call void @exit(i32 1) unreachable ixok28: %t175 = getelementptr inbounds ptr, ptr %t170, i32 0 %t176 = load ptr, ptr %t175 %t177 = call ptr @fn_emit_expr(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t0 %t180 = call i32 @lp_str_eq(ptr %t179, ptr @.str3805) %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %then30, label %ifend32 then30: %t182 = load ptr, ptr %t178 %t183 = getelementptr inbounds %Cmp_Val, ptr %t182, i32 0, i32 0 %t184 = load ptr, ptr %t183 %t185 = call ptr @lp_str_concat(ptr @.str3806, ptr %t184) %t186 = call ptr @lp_str_concat(ptr %t185, ptr @.str3807) %t187 = call ptr @fn_emit_bind(ptr %t186) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t188 %t190 = call ptr @lp_str_concat(ptr @.str3808, ptr %t189) %t191 = call ptr @lp_str_concat(ptr %t190, ptr @.str3809) %t192 = call ptr @fn_emit_bind(ptr %t191) %t193 = call ptr @fn_val(ptr %t192, ptr @.str3810) store ptr %t193, ptr %retval br label %ret ifend32: %t194 = load ptr, ptr %t0 %t195 = call i32 @lp_str_eq(ptr %t194, ptr @.str3811) %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %then33, label %ifend35 then33: %t197 = load ptr, ptr %t1 %t198 = getelementptr inbounds %Cmp_Node, ptr %t197, i32 0, i32 7 %t199 = load ptr, ptr %t198 %t200 = getelementptr inbounds %LSlice, ptr %t199, i32 0, i32 0 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %LSlice, ptr %t199, i32 0, i32 1 %t203 = load i32, ptr %t202 %t204 = icmp ult i32 1, %t203 br i1 %t204, label %ixok36, label %ixbad37 ixbad37: %t205 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t205, ptr @.fmt_bounds, ptr @.str3812, i32 1, i32 %t203) call void @exit(i32 1) unreachable ixok36: %t206 = getelementptr inbounds ptr, ptr %t201, i32 1 %t207 = load ptr, ptr %t206 %t208 = call ptr @fn_emit_expr(ptr %t207) store ptr %t208, ptr %t209 %t210 = load ptr, ptr %t178 %t211 = getelementptr inbounds %Cmp_Val, ptr %t210, i32 0, i32 0 %t212 = load ptr, ptr %t211 %t213 = call ptr @lp_str_concat(ptr @.str3813, ptr %t212) %t214 = call ptr @lp_str_concat(ptr %t213, ptr @.str3814) %t215 = load ptr, ptr %t209 %t216 = getelementptr inbounds %Cmp_Val, ptr %t215, i32 0, i32 0 %t217 = load ptr, ptr %t216 %t218 = call ptr @lp_str_concat(ptr %t214, ptr %t217) %t219 = call ptr @fn_emit_bind(ptr %t218) store ptr %t219, ptr %t220 %t221 = load ptr, ptr %t220 %t222 = call ptr @lp_str_concat(ptr @.str3815, ptr %t221) %t223 = call ptr @fn_emit_bind(ptr %t222) store ptr %t223, ptr %t224 %t225 = load ptr, ptr %t224 %t226 = call ptr @lp_str_concat(ptr @.str3816, ptr %t225) %t227 = call ptr @lp_str_concat(ptr %t226, ptr @.str3817) %t228 = call ptr @fn_emit_bind(ptr %t227) %t229 = call ptr @fn_val(ptr %t228, ptr @.str3818) store ptr %t229, ptr %retval br label %ret ifend35: %t230 = load ptr, ptr %t0 %t231 = call i32 @lp_str_eq(ptr %t230, ptr @.str3819) %t232 = icmp ne i32 %t231, 0 br i1 %t232, label %then38, label %ifend40 then38: call void @fn_fp_declare(ptr @.str3820) %t233 = load ptr, ptr %t178 %t234 = getelementptr inbounds %Cmp_Val, ptr %t233, i32 0, i32 0 %t235 = load ptr, ptr %t234 %t236 = call ptr @lp_str_concat(ptr @.str3821, ptr %t235) %t237 = call ptr @lp_str_concat(ptr %t236, ptr @.str3822) %t238 = call ptr @fn_emit_bind(ptr %t237) store ptr %t238, ptr %t239 %t240 = load ptr, ptr %t239 %t241 = call ptr @lp_str_concat(ptr @.str3823, ptr %t240) %t242 = call ptr @lp_str_concat(ptr %t241, ptr @.str3824) %t243 = call ptr @fn_emit_bind(ptr %t242) %t244 = call ptr @fn_val(ptr %t243, ptr @.str3825) store ptr %t244, ptr %retval br label %ret ifend40: %t245 = load ptr, ptr %t0 %t246 = call i32 @lp_str_eq(ptr %t245, ptr @.str3826) %t247 = icmp ne i32 %t246, 0 br i1 %t247, label %then41, label %ifend43 then41: %t248 = load ptr, ptr %t178 %t249 = getelementptr inbounds %Cmp_Val, ptr %t248, i32 0, i32 0 %t250 = load ptr, ptr %t249 %t251 = call ptr @lp_str_concat(ptr @.str3827, ptr %t250) %t252 = call ptr @lp_str_concat(ptr %t251, ptr @.str3828) %t253 = call ptr @fn_emit_bind(ptr %t252) %t254 = call ptr @fn_val(ptr %t253, ptr @.str3829) store ptr %t254, ptr %retval br label %ret ifend43: %t255 = load ptr, ptr %t0 %t256 = call i32 @lp_str_eq(ptr %t255, ptr @.str3830) %t257 = icmp ne i32 %t256, 0 br i1 %t257, label %then44, label %ifend46 then44: store i32 1, ptr @g_g_uses_textrt %t258 = load ptr, ptr %t178 %t259 = getelementptr inbounds %Cmp_Val, ptr %t258, i32 0, i32 0 %t260 = load ptr, ptr %t259 %t261 = call ptr @lp_str_concat(ptr @.str3831, ptr %t260) %t262 = call ptr @lp_str_concat(ptr %t261, ptr @.str3832) %t263 = call ptr @fn_emit_bind(ptr %t262) %t264 = call ptr @fn_val(ptr %t263, ptr @.str3833) store ptr %t264, ptr %retval br label %ret ifend46: %t265 = load ptr, ptr %t0 %t266 = call i32 @lp_str_eq(ptr %t265, ptr @.str3834) %t267 = icmp ne i32 %t266, 0 br i1 %t267, label %then47, label %ifend49 then47: store i32 1, ptr @g_g_uses_textrt %t268 = load ptr, ptr %t178 %t269 = getelementptr inbounds %Cmp_Val, ptr %t268, i32 0, i32 0 %t270 = load ptr, ptr %t269 %t271 = call ptr @lp_str_concat(ptr @.str3835, ptr %t270) %t272 = call ptr @lp_str_concat(ptr %t271, ptr @.str3836) %t273 = call ptr @fn_emit_bind(ptr %t272) %t274 = call ptr @fn_val(ptr %t273, ptr @.str3837) store ptr %t274, ptr %retval br label %ret ifend49: %t275 = load ptr, ptr %t0 %t276 = call i32 @lp_str_eq(ptr %t275, ptr @.str3838) %t277 = icmp ne i32 %t276, 0 br i1 %t277, label %then50, label %ifend52 then50: store i32 1, ptr @g_g_uses_textrt %t278 = load ptr, ptr %t178 %t279 = getelementptr inbounds %Cmp_Val, ptr %t278, i32 0, i32 0 %t280 = load ptr, ptr %t279 %t281 = call ptr @lp_str_concat(ptr @.str3839, ptr %t280) %t282 = call ptr @lp_str_concat(ptr %t281, ptr @.str3840) %t283 = call ptr @fn_emit_bind(ptr %t282) %t284 = call ptr @fn_val(ptr %t283, ptr @.str3841) store ptr %t284, ptr %retval br label %ret ifend52: %t285 = load ptr, ptr %t0 %t286 = call i32 @lp_str_eq(ptr %t285, ptr @.str3842) %t287 = icmp ne i32 %t286, 0 br i1 %t287, label %then53, label %ifend55 then53: store i32 1, ptr @g_g_uses_textrt %t288 = load ptr, ptr %t1 %t289 = getelementptr inbounds %Cmp_Node, ptr %t288, i32 0, i32 7 %t290 = load ptr, ptr %t289 %t291 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 0 %t292 = load ptr, ptr %t291 %t293 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 1 %t294 = load i32, ptr %t293 %t295 = icmp ult i32 1, %t294 br i1 %t295, label %ixok56, label %ixbad57 ixbad57: %t296 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t296, ptr @.fmt_bounds, ptr @.str3843, i32 1, i32 %t294) call void @exit(i32 1) unreachable ixok56: %t297 = getelementptr inbounds ptr, ptr %t292, i32 1 %t298 = load ptr, ptr %t297 %t299 = call ptr @fn_emit_expr(ptr %t298) store ptr %t299, ptr %t300 %t301 = load ptr, ptr %t178 %t302 = getelementptr inbounds %Cmp_Val, ptr %t301, i32 0, i32 0 %t303 = load ptr, ptr %t302 %t304 = call ptr @lp_str_concat(ptr @.str3844, ptr %t303) %t305 = call ptr @lp_str_concat(ptr %t304, ptr @.str3845) %t306 = load ptr, ptr %t300 %t307 = getelementptr inbounds %Cmp_Val, ptr %t306, i32 0, i32 0 %t308 = load ptr, ptr %t307 %t309 = call ptr @lp_str_concat(ptr %t305, ptr %t308) %t310 = call ptr @lp_str_concat(ptr %t309, ptr @.str3846) %t311 = call ptr @fn_emit_bind(ptr %t310) %t312 = call ptr @fn_val(ptr %t311, ptr @.str3847) store ptr %t312, ptr %retval br label %ret ifend55: %t313 = load ptr, ptr %t0 %t314 = call i32 @lp_str_eq(ptr %t313, ptr @.str3848) %t315 = icmp ne i32 %t314, 0 br i1 %t315, label %then58, label %ifend60 then58: store i32 1, ptr @g_g_uses_textrt %t316 = load ptr, ptr %t1 %t317 = getelementptr inbounds %Cmp_Node, ptr %t316, i32 0, i32 7 %t318 = load ptr, ptr %t317 %t319 = getelementptr inbounds %LSlice, ptr %t318, i32 0, i32 0 %t320 = load ptr, ptr %t319 %t321 = getelementptr inbounds %LSlice, ptr %t318, i32 0, i32 1 %t322 = load i32, ptr %t321 %t323 = icmp ult i32 1, %t322 br i1 %t323, label %ixok61, label %ixbad62 ixbad62: %t324 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t324, ptr @.fmt_bounds, ptr @.str3849, i32 1, i32 %t322) call void @exit(i32 1) unreachable ixok61: %t325 = getelementptr inbounds ptr, ptr %t320, i32 1 %t326 = load ptr, ptr %t325 %t327 = call ptr @fn_emit_expr(ptr %t326) store ptr %t327, ptr %t328 %t329 = load ptr, ptr %t178 %t330 = getelementptr inbounds %Cmp_Val, ptr %t329, i32 0, i32 0 %t331 = load ptr, ptr %t330 %t332 = call ptr @lp_str_concat(ptr @.str3850, ptr %t331) %t333 = call ptr @lp_str_concat(ptr %t332, ptr @.str3851) %t334 = load ptr, ptr %t328 %t335 = getelementptr inbounds %Cmp_Val, ptr %t334, i32 0, i32 0 %t336 = load ptr, ptr %t335 %t337 = call ptr @lp_str_concat(ptr %t333, ptr %t336) %t338 = call ptr @lp_str_concat(ptr %t337, ptr @.str3852) %t339 = call ptr @fn_emit_bind(ptr %t338) %t340 = call ptr @fn_val(ptr %t339, ptr @.str3853) store ptr %t340, ptr %retval br label %ret ifend60: %t341 = load ptr, ptr %t0 %t342 = call i32 @lp_str_eq(ptr %t341, ptr @.str3854) %t343 = icmp ne i32 %t342, 0 br i1 %t343, label %then63, label %ifend65 then63: store i32 1, ptr @g_g_uses_textrt %t344 = load ptr, ptr %t1 %t345 = getelementptr inbounds %Cmp_Node, ptr %t344, i32 0, i32 7 %t346 = load ptr, ptr %t345 %t347 = getelementptr inbounds %LSlice, ptr %t346, i32 0, i32 0 %t348 = load ptr, ptr %t347 %t349 = getelementptr inbounds %LSlice, ptr %t346, i32 0, i32 1 %t350 = load i32, ptr %t349 %t351 = icmp ult i32 1, %t350 br i1 %t351, label %ixok66, label %ixbad67 ixbad67: %t352 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t352, ptr @.fmt_bounds, ptr @.str3855, i32 1, i32 %t350) call void @exit(i32 1) unreachable ixok66: %t353 = getelementptr inbounds ptr, ptr %t348, i32 1 %t354 = load ptr, ptr %t353 %t355 = call ptr @fn_emit_expr(ptr %t354) store ptr %t355, ptr %t356 %t357 = load ptr, ptr %t178 %t358 = getelementptr inbounds %Cmp_Val, ptr %t357, i32 0, i32 0 %t359 = load ptr, ptr %t358 %t360 = call ptr @lp_str_concat(ptr @.str3856, ptr %t359) %t361 = call ptr @lp_str_concat(ptr %t360, ptr @.str3857) %t362 = load ptr, ptr %t356 %t363 = getelementptr inbounds %Cmp_Val, ptr %t362, i32 0, i32 0 %t364 = load ptr, ptr %t363 %t365 = call ptr @lp_str_concat(ptr %t361, ptr %t364) %t366 = call ptr @lp_str_concat(ptr %t365, ptr @.str3858) %t367 = call ptr @fn_emit_bind(ptr %t366) %t368 = call ptr @fn_val(ptr %t367, ptr @.str3859) store ptr %t368, ptr %retval br label %ret ifend65: %t369 = load ptr, ptr %t0 %t370 = call i32 @lp_str_eq(ptr %t369, ptr @.str3860) %t371 = icmp ne i32 %t370, 0 br i1 %t371, label %then68, label %ifend70 then68: store i32 1, ptr @g_g_uses_textrt2 %t372 = load ptr, ptr %t1 %t373 = getelementptr inbounds %Cmp_Node, ptr %t372, i32 0, i32 7 %t374 = load ptr, ptr %t373 %t375 = getelementptr inbounds %LSlice, ptr %t374, i32 0, i32 0 %t376 = load ptr, ptr %t375 %t377 = getelementptr inbounds %LSlice, ptr %t374, i32 0, i32 1 %t378 = load i32, ptr %t377 %t379 = icmp ult i32 1, %t378 br i1 %t379, label %ixok71, label %ixbad72 ixbad72: %t380 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t380, ptr @.fmt_bounds, ptr @.str3861, i32 1, i32 %t378) call void @exit(i32 1) unreachable ixok71: %t381 = getelementptr inbounds ptr, ptr %t376, i32 1 %t382 = load ptr, ptr %t381 %t383 = call ptr @fn_emit_expr(ptr %t382) store ptr %t383, ptr %t384 %t385 = load ptr, ptr %t1 %t386 = getelementptr inbounds %Cmp_Node, ptr %t385, i32 0, i32 7 %t387 = load ptr, ptr %t386 %t388 = getelementptr inbounds %LSlice, ptr %t387, i32 0, i32 0 %t389 = load ptr, ptr %t388 %t390 = getelementptr inbounds %LSlice, ptr %t387, i32 0, i32 1 %t391 = load i32, ptr %t390 %t392 = icmp ult i32 2, %t391 br i1 %t392, label %ixok73, label %ixbad74 ixbad74: %t393 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t393, ptr @.fmt_bounds, ptr @.str3862, i32 2, i32 %t391) call void @exit(i32 1) unreachable ixok73: %t394 = getelementptr inbounds ptr, ptr %t389, i32 2 %t395 = load ptr, ptr %t394 %t396 = call ptr @fn_emit_expr(ptr %t395) store ptr %t396, ptr %t397 %t398 = load ptr, ptr %t178 %t399 = getelementptr inbounds %Cmp_Val, ptr %t398, i32 0, i32 0 %t400 = load ptr, ptr %t399 %t401 = call ptr @lp_str_concat(ptr @.str3863, ptr %t400) %t402 = call ptr @lp_str_concat(ptr %t401, ptr @.str3864) %t403 = load ptr, ptr %t384 %t404 = getelementptr inbounds %Cmp_Val, ptr %t403, i32 0, i32 0 %t405 = load ptr, ptr %t404 %t406 = call ptr @lp_str_concat(ptr %t402, ptr %t405) %t407 = call ptr @lp_str_concat(ptr %t406, ptr @.str3865) %t408 = load ptr, ptr %t397 %t409 = getelementptr inbounds %Cmp_Val, ptr %t408, i32 0, i32 0 %t410 = load ptr, ptr %t409 %t411 = call ptr @lp_str_concat(ptr %t407, ptr %t410) %t412 = call ptr @lp_str_concat(ptr %t411, ptr @.str3866) %t413 = call ptr @fn_emit_bind(ptr %t412) %t414 = call ptr @fn_val(ptr %t413, ptr @.str3867) store ptr %t414, ptr %retval br label %ret ifend70: %t415 = load ptr, ptr %t0 %t416 = call i32 @lp_str_eq(ptr %t415, ptr @.str3868) %t417 = icmp ne i32 %t416, 0 br i1 %t417, label %then75, label %ifend77 then75: store i32 1, ptr @g_g_uses_textrt2 %t418 = load ptr, ptr %t1 %t419 = getelementptr inbounds %Cmp_Node, ptr %t418, i32 0, i32 7 %t420 = load ptr, ptr %t419 %t421 = getelementptr inbounds %LSlice, ptr %t420, i32 0, i32 0 %t422 = load ptr, ptr %t421 %t423 = getelementptr inbounds %LSlice, ptr %t420, i32 0, i32 1 %t424 = load i32, ptr %t423 %t425 = icmp ult i32 1, %t424 br i1 %t425, label %ixok78, label %ixbad79 ixbad79: %t426 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t426, ptr @.fmt_bounds, ptr @.str3869, i32 1, i32 %t424) call void @exit(i32 1) unreachable ixok78: %t427 = getelementptr inbounds ptr, ptr %t422, i32 1 %t428 = load ptr, ptr %t427 %t429 = call ptr @fn_emit_expr(ptr %t428) store ptr %t429, ptr %t430 %t431 = load ptr, ptr %t178 %t432 = getelementptr inbounds %Cmp_Val, ptr %t431, i32 0, i32 0 %t433 = load ptr, ptr %t432 %t434 = call ptr @lp_str_concat(ptr @.str3870, ptr %t433) %t435 = call ptr @lp_str_concat(ptr %t434, ptr @.str3871) %t436 = load ptr, ptr %t430 %t437 = getelementptr inbounds %Cmp_Val, ptr %t436, i32 0, i32 0 %t438 = load ptr, ptr %t437 %t439 = call ptr @lp_str_concat(ptr %t435, ptr %t438) %t440 = call ptr @lp_str_concat(ptr %t439, ptr @.str3872) %t441 = call ptr @fn_emit_bind(ptr %t440) %t442 = call ptr @fn_val(ptr %t441, ptr @.str3873) store ptr %t442, ptr %retval br label %ret ifend77: %t443 = load ptr, ptr %t0 %t444 = call i32 @lp_str_eq(ptr %t443, ptr @.str3874) %t445 = icmp ne i32 %t444, 0 br i1 %t445, label %then80, label %ifend82 then80: store i32 1, ptr @g_g_uses_textrt2 %t446 = load ptr, ptr %t1 %t447 = getelementptr inbounds %Cmp_Node, ptr %t446, i32 0, i32 7 %t448 = load ptr, ptr %t447 %t449 = getelementptr inbounds %LSlice, ptr %t448, i32 0, i32 0 %t450 = load ptr, ptr %t449 %t451 = getelementptr inbounds %LSlice, ptr %t448, i32 0, i32 1 %t452 = load i32, ptr %t451 %t453 = icmp ult i32 1, %t452 br i1 %t453, label %ixok83, label %ixbad84 ixbad84: %t454 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t454, ptr @.fmt_bounds, ptr @.str3875, i32 1, i32 %t452) call void @exit(i32 1) unreachable ixok83: %t455 = getelementptr inbounds ptr, ptr %t450, i32 1 %t456 = load ptr, ptr %t455 %t457 = call ptr @fn_emit_expr(ptr %t456) store ptr %t457, ptr %t458 %t459 = load ptr, ptr %t178 %t460 = getelementptr inbounds %Cmp_Val, ptr %t459, i32 0, i32 0 %t461 = load ptr, ptr %t460 %t462 = call ptr @lp_str_concat(ptr @.str3876, ptr %t461) %t463 = call ptr @lp_str_concat(ptr %t462, ptr @.str3877) %t464 = load ptr, ptr %t458 %t465 = getelementptr inbounds %Cmp_Val, ptr %t464, i32 0, i32 0 %t466 = load ptr, ptr %t465 %t467 = call ptr @lp_str_concat(ptr %t463, ptr %t466) %t468 = call ptr @lp_str_concat(ptr %t467, ptr @.str3878) %t469 = call ptr @fn_emit_bind(ptr %t468) %t470 = call ptr @fn_val(ptr %t469, ptr @.str3879) store ptr %t470, ptr %retval br label %ret ifend82: %t472 = load ptr, ptr %t0 %t473 = call i32 @lp_str_eq(ptr %t472, ptr @.str3880) %t474 = icmp ne i32 %t473, 0 %t475 = zext i1 %t474 to i32 store i32 %t475, ptr %t471 br i1 %t474, label %scend86, label %sc85 sc85: %t476 = load ptr, ptr %t0 %t477 = call i32 @lp_str_eq(ptr %t476, ptr @.str3881) %t478 = icmp ne i32 %t477, 0 %t479 = zext i1 %t478 to i32 store i32 %t479, ptr %t471 br label %scend86 scend86: %t480 = load i32, ptr %t471 %t481 = icmp ne i32 %t480, 0 br i1 %t481, label %then87, label %ifend89 then87: %t482 = load ptr, ptr %t1 %t483 = getelementptr inbounds %Cmp_Node, ptr %t482, i32 0, i32 7 %t484 = load ptr, ptr %t483 %t485 = getelementptr inbounds %LSlice, ptr %t484, i32 0, i32 0 %t486 = load ptr, ptr %t485 %t487 = getelementptr inbounds %LSlice, ptr %t484, i32 0, i32 1 %t488 = load i32, ptr %t487 %t489 = icmp ult i32 1, %t488 br i1 %t489, label %ixok90, label %ixbad91 ixbad91: %t490 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t490, ptr @.fmt_bounds, ptr @.str3882, i32 1, i32 %t488) call void @exit(i32 1) unreachable ixok90: %t491 = getelementptr inbounds ptr, ptr %t486, i32 1 %t492 = load ptr, ptr %t491 %t493 = call ptr @fn_emit_expr(ptr %t492) store ptr %t493, ptr %t494 %t495 = load ptr, ptr %t178 %t496 = getelementptr inbounds %Cmp_Val, ptr %t495, i32 0, i32 0 %t497 = load ptr, ptr %t496 %t498 = call ptr @lp_str_concat(ptr @.str3883, ptr %t497) %t499 = call ptr @lp_str_concat(ptr %t498, ptr @.str3884) %t500 = load ptr, ptr %t494 %t501 = getelementptr inbounds %Cmp_Val, ptr %t500, i32 0, i32 0 %t502 = load ptr, ptr %t501 %t503 = call ptr @lp_str_concat(ptr %t499, ptr %t502) %t504 = call ptr @lp_str_concat(ptr %t503, ptr @.str3885) %t505 = call ptr @fn_emit_bind(ptr %t504) store ptr %t505, ptr %t506 %t507 = load ptr, ptr %t0 %t508 = call i32 @lp_str_eq(ptr %t507, ptr @.str3886) %t509 = icmp ne i32 %t508, 0 br i1 %t509, label %then92, label %ifend94 then92: %t510 = load ptr, ptr %t506 %t511 = call ptr @lp_str_concat(ptr @.str3887, ptr %t510) %t512 = call ptr @lp_str_concat(ptr %t511, ptr @.str3888) %t513 = call ptr @fn_emit_bind(ptr %t512) store ptr %t513, ptr %t514 %t515 = load ptr, ptr %t514 %t516 = call ptr @lp_str_concat(ptr @.str3889, ptr %t515) %t517 = call ptr @lp_str_concat(ptr %t516, ptr @.str3890) %t518 = call ptr @fn_emit_bind(ptr %t517) %t519 = call ptr @fn_val(ptr %t518, ptr @.str3891) store ptr %t519, ptr %retval br label %ret ifend94: %t520 = load ptr, ptr %t506 %t521 = call ptr @lp_str_concat(ptr @.str3892, ptr %t520) %t522 = call ptr @lp_str_concat(ptr %t521, ptr @.str3893) %t523 = call ptr @fn_emit_bind(ptr %t522) store ptr %t523, ptr %t524 %t525 = load ptr, ptr %t506 %t526 = call ptr @lp_str_concat(ptr @.str3894, ptr %t525) %t527 = call ptr @lp_str_concat(ptr %t526, ptr @.str3895) %t528 = call ptr @fn_emit_bind(ptr %t527) store ptr %t528, ptr %t529 %t530 = load ptr, ptr %t178 %t531 = getelementptr inbounds %Cmp_Val, ptr %t530, i32 0, i32 0 %t532 = load ptr, ptr %t531 %t533 = call ptr @lp_str_concat(ptr @.str3896, ptr %t532) %t534 = call ptr @lp_str_concat(ptr %t533, ptr @.str3897) %t535 = call ptr @fn_emit_bind(ptr %t534) store ptr %t535, ptr %t536 %t537 = load ptr, ptr %t529 %t538 = call ptr @lp_str_concat(ptr @.str3898, ptr %t537) %t539 = call ptr @lp_str_concat(ptr %t538, ptr @.str3899) %t540 = load ptr, ptr %t536 %t541 = call ptr @lp_str_concat(ptr %t539, ptr %t540) %t542 = call ptr @fn_emit_bind(ptr %t541) store ptr %t542, ptr %t543 %t544 = load ptr, ptr %t543 %t545 = call ptr @lp_str_concat(ptr @.str3900, ptr %t544) %t546 = call ptr @lp_str_concat(ptr %t545, ptr @.str3901) %t547 = call ptr @fn_emit_bind(ptr %t546) store ptr %t547, ptr %t548 %t549 = load ptr, ptr %t524 %t550 = call ptr @lp_str_concat(ptr @.str3902, ptr %t549) %t551 = call ptr @lp_str_concat(ptr %t550, ptr @.str3903) %t552 = load ptr, ptr %t548 %t553 = call ptr @lp_str_concat(ptr %t551, ptr %t552) %t554 = call ptr @fn_emit_bind(ptr %t553) %t555 = call ptr @fn_val(ptr %t554, ptr @.str3904) store ptr %t555, ptr %retval br label %ret ifend89: %t556 = load ptr, ptr %t1 %t557 = getelementptr inbounds %Cmp_Node, ptr %t556, i32 0, i32 7 %t558 = load ptr, ptr %t557 %t559 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 0 %t560 = load ptr, ptr %t559 %t561 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 1 %t562 = load i32, ptr %t561 %t563 = icmp ult i32 1, %t562 br i1 %t563, label %ixok95, label %ixbad96 ixbad96: %t564 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t564, ptr @.fmt_bounds, ptr @.str3905, i32 1, i32 %t562) call void @exit(i32 1) unreachable ixok95: %t565 = getelementptr inbounds ptr, ptr %t560, i32 1 %t566 = load ptr, ptr %t565 %t567 = call ptr @fn_emit_expr(ptr %t566) store ptr %t567, ptr %t568 %t569 = load ptr, ptr %t568 %t570 = getelementptr inbounds %Cmp_Val, ptr %t569, i32 0, i32 0 %t571 = load ptr, ptr %t570 %t572 = call ptr @lp_str_concat(ptr @.str3906, ptr %t571) %t573 = call ptr @lp_str_concat(ptr %t572, ptr @.str3907) %t574 = call ptr @fn_emit_bind(ptr %t573) store ptr %t574, ptr %t575 %t576 = load ptr, ptr %t0 %t577 = call i32 @lp_str_eq(ptr %t576, ptr @.str3908) %t578 = icmp ne i32 %t577, 0 br i1 %t578, label %then97, label %ifend99 then97: %t579 = load ptr, ptr %t178 %t580 = getelementptr inbounds %Cmp_Val, ptr %t579, i32 0, i32 0 %t581 = load ptr, ptr %t580 %t582 = call ptr @lp_str_concat(ptr @.str3909, ptr %t581) %t583 = call ptr @lp_str_concat(ptr %t582, ptr @.str3910) %t584 = load ptr, ptr %t568 %t585 = getelementptr inbounds %Cmp_Val, ptr %t584, i32 0, i32 0 %t586 = load ptr, ptr %t585 %t587 = call ptr @lp_str_concat(ptr %t583, ptr %t586) %t588 = call ptr @lp_str_concat(ptr %t587, ptr @.str3911) %t589 = load ptr, ptr %t575 %t590 = call ptr @lp_str_concat(ptr %t588, ptr %t589) %t591 = call ptr @lp_str_concat(ptr %t590, ptr @.str3912) %t592 = call ptr @fn_emit_bind(ptr %t591) store ptr %t592, ptr %t593 %t594 = load ptr, ptr %t593 %t595 = call ptr @lp_str_concat(ptr @.str3913, ptr %t594) %t596 = call ptr @lp_str_concat(ptr %t595, ptr @.str3914) %t597 = call ptr @fn_emit_bind(ptr %t596) store ptr %t597, ptr %t598 %t599 = load ptr, ptr %t598 %t600 = call ptr @lp_str_concat(ptr @.str3915, ptr %t599) %t601 = call ptr @lp_str_concat(ptr %t600, ptr @.str3916) %t602 = call ptr @fn_emit_bind(ptr %t601) %t603 = call ptr @fn_val(ptr %t602, ptr @.str3917) store ptr %t603, ptr %retval br label %ret ifend99: %t604 = load ptr, ptr %t178 %t605 = getelementptr inbounds %Cmp_Val, ptr %t604, i32 0, i32 0 %t606 = load ptr, ptr %t605 %t607 = call ptr @lp_str_concat(ptr @.str3918, ptr %t606) %t608 = call ptr @lp_str_concat(ptr %t607, ptr @.str3919) %t609 = call ptr @fn_emit_bind(ptr %t608) store ptr %t609, ptr %t610 %t611 = load ptr, ptr %t610 %t612 = call ptr @lp_str_concat(ptr @.str3920, ptr %t611) %t613 = call ptr @lp_str_concat(ptr %t612, ptr @.str3921) %t614 = load ptr, ptr %t575 %t615 = call ptr @lp_str_concat(ptr %t613, ptr %t614) %t616 = call ptr @fn_emit_bind(ptr %t615) store ptr %t616, ptr %t617 %t618 = call ptr @fn_emit_alloca(ptr @.str3922) store ptr %t618, ptr %t619 %t620 = load ptr, ptr %t619 call void @fn_store_at(ptr @.str3923, ptr @.str3924, ptr %t620) %t621 = load ptr, ptr %t617 %t622 = call ptr @lp_str_concat(ptr @.str3925, ptr %t621) %t623 = call ptr @lp_str_concat(ptr %t622, ptr @.str3926) %t624 = call ptr @fn_emit_bind(ptr %t623) store ptr %t624, ptr %t625 %t626 = call ptr @fn_lbl(ptr @.str3927) store ptr %t626, ptr %t627 %t628 = call ptr @fn_lbl(ptr @.str3928) store ptr %t628, ptr %t629 call void @fn_emit(ptr @.str3929) %t630 = load ptr, ptr %t625 call void @fn_emit(ptr %t630) call void @fn_emit(ptr @.str3930) %t631 = load ptr, ptr %t629 call void @fn_emit(ptr %t631) call void @fn_emit(ptr @.str3931) %t632 = load ptr, ptr %t627 call void @fn_emit(ptr %t632) call void @fn_emit(ptr @.str3932) %t633 = load ptr, ptr %t627 call void @fn_emit(ptr %t633) call void @fn_emit(ptr @.str3933) %t634 = load ptr, ptr %t178 %t635 = getelementptr inbounds %Cmp_Val, ptr %t634, i32 0, i32 0 %t636 = load ptr, ptr %t635 %t637 = call ptr @lp_str_concat(ptr @.str3934, ptr %t636) %t638 = call ptr @lp_str_concat(ptr %t637, ptr @.str3935) %t639 = load ptr, ptr %t617 %t640 = call ptr @lp_str_concat(ptr %t638, ptr %t639) %t641 = call ptr @fn_emit_bind(ptr %t640) store ptr %t641, ptr %t642 %t643 = load ptr, ptr %t642 %t644 = call ptr @lp_str_concat(ptr @.str3936, ptr %t643) %t645 = call ptr @lp_str_concat(ptr %t644, ptr @.str3937) %t646 = load ptr, ptr %t568 %t647 = getelementptr inbounds %Cmp_Val, ptr %t646, i32 0, i32 0 %t648 = load ptr, ptr %t647 %t649 = call ptr @lp_str_concat(ptr %t645, ptr %t648) %t650 = call ptr @lp_str_concat(ptr %t649, ptr @.str3938) %t651 = load ptr, ptr %t575 %t652 = call ptr @lp_str_concat(ptr %t650, ptr %t651) %t653 = call ptr @lp_str_concat(ptr %t652, ptr @.str3939) %t654 = call ptr @fn_emit_bind(ptr %t653) store ptr %t654, ptr %t655 %t656 = load ptr, ptr %t655 %t657 = call ptr @lp_str_concat(ptr @.str3940, ptr %t656) %t658 = call ptr @lp_str_concat(ptr %t657, ptr @.str3941) %t659 = call ptr @fn_emit_bind(ptr %t658) store ptr %t659, ptr %t660 %t661 = load ptr, ptr %t660 %t662 = call ptr @lp_str_concat(ptr @.str3942, ptr %t661) %t663 = call ptr @lp_str_concat(ptr %t662, ptr @.str3943) %t664 = call ptr @fn_emit_bind(ptr %t663) store ptr %t664, ptr %t665 %t666 = load ptr, ptr %t665 %t667 = load ptr, ptr %t619 call void @fn_store_at(ptr @.str3944, ptr %t666, ptr %t667) call void @fn_emit(ptr @.str3945) %t668 = load ptr, ptr %t629 call void @fn_emit(ptr %t668) call void @fn_emit(ptr @.str3946) %t669 = load ptr, ptr %t629 call void @fn_emit(ptr %t669) call void @fn_emit(ptr @.str3947) %t670 = load ptr, ptr %t619 %t671 = call ptr @lp_str_concat(ptr @.str3948, ptr %t670) %t672 = call ptr @fn_emit_bind(ptr %t671) %t673 = call ptr @fn_val(ptr %t672, ptr @.str3949) store ptr %t673, ptr %retval br label %ret ret: %t674 = load ptr, ptr %retval ret ptr %t674 } define void @fn_emit_text_prelude() { entry: call void @fn_emith(ptr @.str3950) call void @fn_emith(ptr @.str3951) call void @fn_emith(ptr @.str3952) call void @fn_emith(ptr @.str3953) call void @fn_emith(ptr @.str3954) call void @fn_emith(ptr @.str3955) call void @fn_emith(ptr @.str3956) call void @fn_emith(ptr @.str3957) call void @fn_emith(ptr @.str3958) call void @fn_emith(ptr @.str3959) call void @fn_emith(ptr @.str3960) call void @fn_emith(ptr @.str3961) call void @fn_emith(ptr @.str3962) call void @fn_emith(ptr @.str3963) call void @fn_emith(ptr @.str3964) call void @fn_emith(ptr @.str3965) call void @fn_emith(ptr @.str3966) call void @fn_emith(ptr @.str3967) call void @fn_emith(ptr @.str3968) call void @fn_emith(ptr @.str3969) call void @fn_emith(ptr @.str3970) call void @fn_emith(ptr @.str3971) call void @fn_emith(ptr @.str3972) call void @fn_emith(ptr @.str3973) call void @fn_emith(ptr @.str3974) call void @fn_emith(ptr @.str3975) call void @fn_emith(ptr @.str3976) call void @fn_emith(ptr @.str3977) call void @fn_emith(ptr @.str3978) call void @fn_emith(ptr @.str3979) call void @fn_emith(ptr @.str3980) call void @fn_emith(ptr @.str3981) call void @fn_emith(ptr @.str3982) call void @fn_emith(ptr @.str3983) call void @fn_emith(ptr @.str3984) call void @fn_emith(ptr @.str3985) call void @fn_emith(ptr @.str3986) call void @fn_emith(ptr @.str3987) call void @fn_emith(ptr @.str3988) call void @fn_emith(ptr @.str3989) call void @fn_emith(ptr @.str3990) call void @fn_emith(ptr @.str3991) call void @fn_emith(ptr @.str3992) call void @fn_emith(ptr @.str3993) call void @fn_emith(ptr @.str3994) call void @fn_emith(ptr @.str3995) call void @fn_emith(ptr @.str3996) call void @fn_emith(ptr @.str3997) call void @fn_emith(ptr @.str3998) call void @fn_emith(ptr @.str3999) call void @fn_emith(ptr @.str4000) call void @fn_emith(ptr @.str4001) call void @fn_emith(ptr @.str4002) call void @fn_emith(ptr @.str4003) call void @fn_emith(ptr @.str4004) call void @fn_emith(ptr @.str4005) call void @fn_emith(ptr @.str4006) call void @fn_emith(ptr @.str4007) call void @fn_emith(ptr @.str4008) call void @fn_emith(ptr @.str4009) call void @fn_emith(ptr @.str4010) call void @fn_emith(ptr @.str4011) call void @fn_emith(ptr @.str4012) call void @fn_emith(ptr @.str4013) call void @fn_emith(ptr @.str4014) call void @fn_emith(ptr @.str4015) call void @fn_emith(ptr @.str4016) call void @fn_emith(ptr @.str4017) call void @fn_emith(ptr @.str4018) call void @fn_emith(ptr @.str4019) call void @fn_emith(ptr @.str4020) call void @fn_emith(ptr @.str4021) call void @fn_emith(ptr @.str4022) call void @fn_emith(ptr @.str4023) call void @fn_emith(ptr @.str4024) call void @fn_emith(ptr @.str4025) call void @fn_emith(ptr @.str4026) call void @fn_emith(ptr @.str4027) call void @fn_emith(ptr @.str4028) call void @fn_emith(ptr @.str4029) call void @fn_emith(ptr @.str4030) call void @fn_emith(ptr @.str4031) call void @fn_emith(ptr @.str4032) call void @fn_emith(ptr @.str4033) call void @fn_emith(ptr @.str4034) call void @fn_emith(ptr @.str4035) call void @fn_emith(ptr @.str4036) call void @fn_emith(ptr @.str4037) call void @fn_emith(ptr @.str4038) call void @fn_emith(ptr @.str4039) call void @fn_emith(ptr @.str4040) call void @fn_emith(ptr @.str4041) call void @fn_emith(ptr @.str4042) call void @fn_emith(ptr @.str4043) call void @fn_emith(ptr @.str4044) call void @fn_emith(ptr @.str4045) call void @fn_emith(ptr @.str4046) call void @fn_emith(ptr @.str4047) call void @fn_emith(ptr @.str4048) call void @fn_emith(ptr @.str4049) call void @fn_emith(ptr @.str4050) call void @fn_emith(ptr @.str4051) call void @fn_emith(ptr @.str4052) call void @fn_emith(ptr @.str4053) call void @fn_emith(ptr @.str4054) call void @fn_emith(ptr @.str4055) call void @fn_emith(ptr @.str4056) call void @fn_emith(ptr @.str4057) call void @fn_emith(ptr @.str4058) call void @fn_emith(ptr @.str4059) call void @fn_emith(ptr @.str4060) call void @fn_emith(ptr @.str4061) call void @fn_emith(ptr @.str4062) call void @fn_emith(ptr @.str4063) call void @fn_emith(ptr @.str4064) call void @fn_emith(ptr @.str4065) call void @fn_emith(ptr @.str4066) call void @fn_emith(ptr @.str4067) call void @fn_emith(ptr @.str4068) call void @fn_emith(ptr @.str4069) call void @fn_emith(ptr @.str4070) call void @fn_emith(ptr @.str4071) call void @fn_emith(ptr @.str4072) call void @fn_emith(ptr @.str4073) call void @fn_emith(ptr @.str4074) call void @fn_emith(ptr @.str4075) call void @fn_emith(ptr @.str4076) call void @fn_emith(ptr @.str4077) call void @fn_emith(ptr @.str4078) call void @fn_emith(ptr @.str4079) call void @fn_emith(ptr @.str4080) call void @fn_emith(ptr @.str4081) call void @fn_emith(ptr @.str4082) call void @fn_emith(ptr @.str4083) call void @fn_emith(ptr @.str4084) call void @fn_emith(ptr @.str4085) call void @fn_emith(ptr @.str4086) call void @fn_emith(ptr @.str4087) call void @fn_emith(ptr @.str4088) call void @fn_emith(ptr @.str4089) call void @fn_emith(ptr @.str4090) call void @fn_emith(ptr @.str4091) call void @fn_emith(ptr @.str4092) call void @fn_emith(ptr @.str4093) call void @fn_emith(ptr @.str4094) call void @fn_emith(ptr @.str4095) call void @fn_emith(ptr @.str4096) call void @fn_emith(ptr @.str4097) call void @fn_emith(ptr @.str4098) call void @fn_emith(ptr @.str4099) call void @fn_emith(ptr @.str4100) call void @fn_emith(ptr @.str4101) call void @fn_emith(ptr @.str4102) call void @fn_emith(ptr @.str4103) call void @fn_emith(ptr @.str4104) call void @fn_emith(ptr @.str4105) call void @fn_emith(ptr @.str4106) call void @fn_emith(ptr @.str4107) call void @fn_emith(ptr @.str4108) call void @fn_emith(ptr @.str4109) call void @fn_emith(ptr @.str4110) call void @fn_emith(ptr @.str4111) call void @fn_emith(ptr @.str4112) call void @fn_emith(ptr @.str4113) call void @fn_emith(ptr @.str4114) call void @fn_emith(ptr @.str4115) call void @fn_emith(ptr @.str4116) call void @fn_emith(ptr @.str4117) call void @fn_emith(ptr @.str4118) call void @fn_emith(ptr @.str4119) call void @fn_emith(ptr @.str4120) call void @fn_emith(ptr @.str4121) call void @fn_emith(ptr @.str4122) call void @fn_emith(ptr @.str4123) call void @fn_emith(ptr @.str4124) call void @fn_emith(ptr @.str4125) call void @fn_emith(ptr @.str4126) call void @fn_emith(ptr @.str4127) call void @fn_emith(ptr @.str4128) call void @fn_emith(ptr @.str4129) call void @fn_emith(ptr @.str4130) call void @fn_emith(ptr @.str4131) call void @fn_emith(ptr @.str4132) call void @fn_emith(ptr @.str4133) call void @fn_emith(ptr @.str4134) call void @fn_emith(ptr @.str4135) call void @fn_emith(ptr @.str4136) call void @fn_emith(ptr @.str4137) call void @fn_emith(ptr @.str4138) call void @fn_emith(ptr @.str4139) call void @fn_emith(ptr @.str4140) call void @fn_emith(ptr @.str4141) call void @fn_emith(ptr @.str4142) call void @fn_emith(ptr @.str4143) call void @fn_emith(ptr @.str4144) call void @fn_emith(ptr @.str4145) call void @fn_emith(ptr @.str4146) call void @fn_emith(ptr @.str4147) br label %ret ret: ret void } define void @fn_emit_text2_prelude() { entry: call void @fn_emith(ptr @.str4148) call void @fn_emith(ptr @.str4149) call void @fn_emith(ptr @.str4150) call void @fn_emith(ptr @.str4151) call void @fn_emith(ptr @.str4152) call void @fn_emith(ptr @.str4153) call void @fn_emith(ptr @.str4154) call void @fn_emith(ptr @.str4155) call void @fn_emith(ptr @.str4156) call void @fn_emith(ptr @.str4157) call void @fn_emith(ptr @.str4158) call void @fn_emith(ptr @.str4159) call void @fn_emith(ptr @.str4160) call void @fn_emith(ptr @.str4161) call void @fn_emith(ptr @.str4162) call void @fn_emith(ptr @.str4163) call void @fn_emith(ptr @.str4164) call void @fn_emith(ptr @.str4165) call void @fn_emith(ptr @.str4166) call void @fn_emith(ptr @.str4167) call void @fn_emith(ptr @.str4168) call void @fn_emith(ptr @.str4169) call void @fn_emith(ptr @.str4170) call void @fn_emith(ptr @.str4171) call void @fn_emith(ptr @.str4172) call void @fn_emith(ptr @.str4173) call void @fn_emith(ptr @.str4174) call void @fn_emith(ptr @.str4175) call void @fn_emith(ptr @.str4176) call void @fn_emith(ptr @.str4177) call void @fn_emith(ptr @.str4178) call void @fn_emith(ptr @.str4179) call void @fn_emith(ptr @.str4180) call void @fn_emith(ptr @.str4181) call void @fn_emith(ptr @.str4182) call void @fn_emith(ptr @.str4183) call void @fn_emith(ptr @.str4184) call void @fn_emith(ptr @.str4185) call void @fn_emith(ptr @.str4186) call void @fn_emith(ptr @.str4187) call void @fn_emith(ptr @.str4188) call void @fn_emith(ptr @.str4189) call void @fn_emith(ptr @.str4190) call void @fn_emith(ptr @.str4191) call void @fn_emith(ptr @.str4192) call void @fn_emith(ptr @.str4193) call void @fn_emith(ptr @.str4194) call void @fn_emith(ptr @.str4195) call void @fn_emith(ptr @.str4196) call void @fn_emith(ptr @.str4197) call void @fn_emith(ptr @.str4198) call void @fn_emith(ptr @.str4199) call void @fn_emith(ptr @.str4200) call void @fn_emith(ptr @.str4201) call void @fn_emith(ptr @.str4202) call void @fn_emith(ptr @.str4203) call void @fn_emith(ptr @.str4204) call void @fn_emith(ptr @.str4205) call void @fn_emith(ptr @.str4206) call void @fn_emith(ptr @.str4207) call void @fn_emith(ptr @.str4208) call void @fn_emith(ptr @.str4209) call void @fn_emith(ptr @.str4210) call void @fn_emith(ptr @.str4211) call void @fn_emith(ptr @.str4212) call void @fn_emith(ptr @.str4213) call void @fn_emith(ptr @.str4214) call void @fn_emith(ptr @.str4215) call void @fn_emith(ptr @.str4216) call void @fn_emith(ptr @.str4217) call void @fn_emith(ptr @.str4218) call void @fn_emith(ptr @.str4219) call void @fn_emith(ptr @.str4220) call void @fn_emith(ptr @.str4221) call void @fn_emith(ptr @.str4222) call void @fn_emith(ptr @.str4223) call void @fn_emith(ptr @.str4224) call void @fn_emith(ptr @.str4225) call void @fn_emith(ptr @.str4226) call void @fn_emith(ptr @.str4227) call void @fn_emith(ptr @.str4228) call void @fn_emith(ptr @.str4229) call void @fn_emith(ptr @.str4230) call void @fn_emith(ptr @.str4231) call void @fn_emith(ptr @.str4232) call void @fn_emith(ptr @.str4233) call void @fn_emith(ptr @.str4234) call void @fn_emith(ptr @.str4235) call void @fn_emith(ptr @.str4236) call void @fn_emith(ptr @.str4237) call void @fn_emith(ptr @.str4238) call void @fn_emith(ptr @.str4239) call void @fn_emith(ptr @.str4240) call void @fn_emith(ptr @.str4241) call void @fn_emith(ptr @.str4242) call void @fn_emith(ptr @.str4243) call void @fn_emith(ptr @.str4244) call void @fn_emith(ptr @.str4245) call void @fn_emith(ptr @.str4246) call void @fn_emith(ptr @.str4247) call void @fn_emith(ptr @.str4248) call void @fn_emith(ptr @.str4249) call void @fn_emith(ptr @.str4250) call void @fn_emith(ptr @.str4251) call void @fn_emith(ptr @.str4252) call void @fn_emith(ptr @.str4253) call void @fn_emith(ptr @.str4254) call void @fn_emith(ptr @.str4255) call void @fn_emith(ptr @.str4256) call void @fn_emith(ptr @.str4257) call void @fn_emith(ptr @.str4258) call void @fn_emith(ptr @.str4259) call void @fn_emith(ptr @.str4260) call void @fn_emith(ptr @.str4261) call void @fn_emith(ptr @.str4262) call void @fn_emith(ptr @.str4263) call void @fn_emith(ptr @.str4264) call void @fn_emith(ptr @.str4265) call void @fn_emith(ptr @.str4266) call void @fn_emith(ptr @.str4267) call void @fn_emith(ptr @.str4268) call void @fn_emith(ptr @.str4269) call void @fn_emith(ptr @.str4270) call void @fn_emith(ptr @.str4271) call void @fn_emith(ptr @.str4272) call void @fn_emith(ptr @.str4273) call void @fn_emith(ptr @.str4274) call void @fn_emith(ptr @.str4275) call void @fn_emith(ptr @.str4276) call void @fn_emith(ptr @.str4277) call void @fn_emith(ptr @.str4278) call void @fn_emith(ptr @.str4279) call void @fn_emith(ptr @.str4280) call void @fn_emith(ptr @.str4281) call void @fn_emith(ptr @.str4282) call void @fn_emith(ptr @.str4283) call void @fn_emith(ptr @.str4284) call void @fn_emith(ptr @.str4285) call void @fn_emith(ptr @.str4286) call void @fn_emith(ptr @.str4287) call void @fn_emith(ptr @.str4288) call void @fn_emith(ptr @.str4289) call void @fn_emith(ptr @.str4290) call void @fn_emith(ptr @.str4291) call void @fn_emith(ptr @.str4292) call void @fn_emith(ptr @.str4293) call void @fn_emith(ptr @.str4294) call void @fn_emith(ptr @.str4295) call void @fn_emith(ptr @.str4296) call void @fn_emith(ptr @.str4297) call void @fn_emith(ptr @.str4298) call void @fn_emith(ptr @.str4299) call void @fn_emith(ptr @.str4300) call void @fn_emith(ptr @.str4301) call void @fn_emith(ptr @.str4302) call void @fn_emith(ptr @.str4303) call void @fn_emith(ptr @.str4304) call void @fn_emith(ptr @.str4305) call void @fn_emith(ptr @.str4306) call void @fn_emith(ptr @.str4307) call void @fn_emith(ptr @.str4308) call void @fn_emith(ptr @.str4309) call void @fn_emith(ptr @.str4310) call void @fn_emith(ptr @.str4311) call void @fn_emith(ptr @.str4312) call void @fn_emith(ptr @.str4313) call void @fn_emith(ptr @.str4314) call void @fn_emith(ptr @.str4315) call void @fn_emith(ptr @.str4316) call void @fn_emith(ptr @.str4317) call void @fn_emith(ptr @.str4318) call void @fn_emith(ptr @.str4319) call void @fn_emith(ptr @.str4320) call void @fn_emith(ptr @.str4321) call void @fn_emith(ptr @.str4322) call void @fn_emith(ptr @.str4323) call void @fn_emith(ptr @.str4324) call void @fn_emith(ptr @.str4325) call void @fn_emith(ptr @.str4326) call void @fn_emith(ptr @.str4327) call void @fn_emith(ptr @.str4328) call void @fn_emith(ptr @.str4329) call void @fn_emith(ptr @.str4330) call void @fn_emith(ptr @.str4331) call void @fn_emith(ptr @.str4332) call void @fn_emith(ptr @.str4333) call void @fn_emith(ptr @.str4334) call void @fn_emith(ptr @.str4335) call void @fn_emith(ptr @.str4336) call void @fn_emith(ptr @.str4337) call void @fn_emith(ptr @.str4338) call void @fn_emith(ptr @.str4339) call void @fn_emith(ptr @.str4340) call void @fn_emith(ptr @.str4341) call void @fn_emith(ptr @.str4342) call void @fn_emith(ptr @.str4343) call void @fn_emith(ptr @.str4344) call void @fn_emith(ptr @.str4345) call void @fn_emith(ptr @.str4346) call void @fn_emith(ptr @.str4347) call void @fn_emith(ptr @.str4348) call void @fn_emith(ptr @.str4349) call void @fn_emith(ptr @.str4350) call void @fn_emith(ptr @.str4351) call void @fn_emith(ptr @.str4352) call void @fn_emith(ptr @.str4353) call void @fn_emith(ptr @.str4354) call void @fn_emith(ptr @.str4355) call void @fn_emith(ptr @.str4356) call void @fn_emith(ptr @.str4357) call void @fn_emith(ptr @.str4358) br label %ret ret: ret void } define i32 @fn_is_hash_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t31 = alloca i32 %t32 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str4359) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str4360) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str4361) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t21, ptr @.str4362) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t20 br i1 %t23, label %scend8, label %sc7 sc7: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str4363) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t20 br label %scend8 scend8: %t29 = load i32, ptr %t20 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str4364) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t32 br i1 %t35, label %scend13, label %sc12 sc12: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str4365) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t32 br label %scend13 scend13: %t41 = load i32, ptr %t32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t31 br i1 %t42, label %scend15, label %sc14 sc14: %t44 = load ptr, ptr %t0 %t45 = call i32 @lp_str_eq(ptr %t44, ptr @.str4366) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t31 br label %scend15 scend15: %t48 = load i32, ptr %t31 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then16, label %ifend18 then16: store i32 1, ptr %retval br label %ret ifend18: store i32 0, ptr %retval br label %ret ret: %t50 = load i32, ptr %retval ret i32 %t50 } define ptr @fn_hash_mix_code(ptr %arg_x) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t12 = alloca ptr %t17 = alloca ptr %t22 = alloca ptr %t29 = alloca ptr %t34 = alloca ptr %t39 = alloca ptr store ptr %arg_x, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str4367, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str4368) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr @.str4369, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str4370) %t9 = load ptr, ptr %t5 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = call ptr @lp_str_concat(ptr @.str4371, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str4372) %t16 = call ptr @fn_emit_bind(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = call ptr @lp_str_concat(ptr @.str4373, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str4374) %t21 = call ptr @fn_emit_bind(ptr %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t17 %t24 = call ptr @lp_str_concat(ptr @.str4375, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str4376) %t26 = load ptr, ptr %t22 %t27 = call ptr @lp_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr @.str4377, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str4378) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @lp_str_concat(ptr @.str4379, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str4380) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t34 %t41 = call ptr @lp_str_concat(ptr @.str4381, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str4382) %t43 = load ptr, ptr %t39 %t44 = call ptr @lp_str_concat(ptr %t42, ptr %t43) %t45 = call ptr @fn_emit_bind(ptr %t44) store ptr %t45, ptr %retval br label %ret ret: %t46 = load ptr, ptr %retval ret ptr %t46 } define ptr @fn_hash_mix64_code(ptr %arg_x) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t12 = alloca ptr %t17 = alloca ptr %t22 = alloca ptr %t29 = alloca ptr %t34 = alloca ptr %t39 = alloca ptr store ptr %arg_x, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str4383, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str4384) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr @.str4385, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str4386) %t9 = load ptr, ptr %t5 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = call ptr @lp_str_concat(ptr @.str4387, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str4388) %t16 = call ptr @fn_emit_bind(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = call ptr @lp_str_concat(ptr @.str4389, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str4390) %t21 = call ptr @fn_emit_bind(ptr %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t17 %t24 = call ptr @lp_str_concat(ptr @.str4391, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str4392) %t26 = load ptr, ptr %t22 %t27 = call ptr @lp_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr @.str4393, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str4394) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @lp_str_concat(ptr @.str4395, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str4396) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t34 %t41 = call ptr @lp_str_concat(ptr @.str4397, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str4398) %t43 = load ptr, ptr %t39 %t44 = call ptr @lp_str_concat(ptr %t42, ptr %t43) %t45 = call ptr @fn_emit_bind(ptr %t44) store ptr %t45, ptr %retval br label %ret ret: %t46 = load ptr, ptr %retval ret ptr %t46 } define ptr @fn_emit_hash_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t25 = alloca ptr %t33 = alloca i32 %t56 = alloca ptr %t79 = alloca ptr %t99 = alloca ptr %t122 = alloca ptr %t128 = alloca ptr %t129 = alloca i32 %t152 = alloca ptr %t159 = alloca ptr %t164 = alloca ptr %t169 = alloca ptr %t176 = alloca ptr %t183 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str4399) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str4400) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then2, label %ifend4 then2: store i32 1, ptr @g_g_uses_hashrt %t13 = load ptr, ptr %t1 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 0, %t19 br i1 %t20, label %ixok5, label %ixbad6 ixbad6: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str4401, i32 0, i32 %t19) call void @exit(i32 1) unreachable ixok5: %t22 = getelementptr inbounds ptr, ptr %t17, i32 0 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_emit_expr(ptr %t23) store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Val, ptr %t26, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = call ptr @lp_str_concat(ptr @.str4402, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str4403) %t31 = call ptr @fn_emit_bind(ptr %t30) %t32 = call ptr @fn_val(ptr %t31, ptr @.str4404) store ptr %t32, ptr %retval br label %ret ifend4: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str4405) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t33 br i1 %t36, label %scend8, label %sc7 sc7: %t38 = load ptr, ptr %t0 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str4406) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t33 br label %scend8 scend8: %t42 = load i32, ptr %t33 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then9, label %ifend11 then9: store i32 1, ptr @g_g_uses_hashrt %t44 = load ptr, ptr %t1 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t50 = load i32, ptr %t49 %t51 = icmp ult i32 0, %t50 br i1 %t51, label %ixok12, label %ixbad13 ixbad13: %t52 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t52, ptr @.fmt_bounds, ptr @.str4407, i32 0, i32 %t50) call void @exit(i32 1) unreachable ixok12: %t53 = getelementptr inbounds ptr, ptr %t48, i32 0 %t54 = load ptr, ptr %t53 %t55 = call ptr @fn_emit_expr(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = call ptr @lp_str_concat(ptr @.str4408, ptr %t59) %t61 = call ptr @lp_str_concat(ptr %t60, ptr @.str4409) %t62 = call ptr @fn_emit_bind(ptr %t61) %t63 = call ptr @fn_val(ptr %t62, ptr @.str4410) store ptr %t63, ptr %retval br label %ret ifend11: %t64 = load ptr, ptr %t0 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str4411) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then14, label %ifend16 then14: %t67 = load ptr, ptr %t1 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 7 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp ult i32 0, %t73 br i1 %t74, label %ixok17, label %ixbad18 ixbad18: %t75 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t75, ptr @.fmt_bounds, ptr @.str4412, i32 0, i32 %t73) call void @exit(i32 1) unreachable ixok17: %t76 = getelementptr inbounds ptr, ptr %t71, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_emit_expr(ptr %t77) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t79 %t81 = call ptr @fn_to_long(ptr %t80) %t82 = call ptr @fn_hash_mix64_code(ptr %t81) %t83 = call ptr @fn_val(ptr %t82, ptr @.str4413) store ptr %t83, ptr %retval br label %ret ifend16: %t84 = load ptr, ptr %t0 %t85 = call i32 @lp_str_eq(ptr %t84, ptr @.str4414) %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then19, label %ifend21 then19: store i32 1, ptr @g_g_uses_hashrt %t87 = load ptr, ptr %t1 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 7 %t89 = load ptr, ptr %t88 %t90 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp ult i32 0, %t93 br i1 %t94, label %ixok22, label %ixbad23 ixbad23: %t95 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t95, ptr @.fmt_bounds, ptr @.str4415, i32 0, i32 %t93) call void @exit(i32 1) unreachable ixok22: %t96 = getelementptr inbounds ptr, ptr %t91, i32 0 %t97 = load ptr, ptr %t96 %t98 = call ptr @fn_emit_expr(ptr %t97) store ptr %t98, ptr %t99 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %Cmp_Val, ptr %t100, i32 0, i32 0 %t102 = load ptr, ptr %t101 %t103 = call ptr @lp_str_concat(ptr @.str4416, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str4417) %t105 = call ptr @fn_emit_bind(ptr %t104) %t106 = call ptr @fn_val(ptr %t105, ptr @.str4418) store ptr %t106, ptr %retval br label %ret ifend21: %t107 = load ptr, ptr %t0 %t108 = call i32 @lp_str_eq(ptr %t107, ptr @.str4419) %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then24, label %ifend26 then24: %t110 = load ptr, ptr %t1 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 7 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t116 = load i32, ptr %t115 %t117 = icmp ult i32 0, %t116 br i1 %t117, label %ixok27, label %ixbad28 ixbad28: %t118 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t118, ptr @.fmt_bounds, ptr @.str4420, i32 0, i32 %t116) call void @exit(i32 1) unreachable ixok27: %t119 = getelementptr inbounds ptr, ptr %t114, i32 0 %t120 = load ptr, ptr %t119 %t121 = call ptr @fn_emit_expr(ptr %t120) store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %Cmp_Val, ptr %t123, i32 0, i32 0 %t125 = load ptr, ptr %t124 %t126 = call ptr @fn_hash_mix_code(ptr %t125) %t127 = call ptr @fn_val(ptr %t126, ptr @.str4421) store ptr %t127, ptr %retval br label %ret ifend26: store ptr @.str4422, ptr %t128 store i32 0, ptr %t129 br label %wcond29 wcond29: %t130 = load i32, ptr %t129 %t131 = load ptr, ptr %t1 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 7 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 1 %t135 = load i32, ptr %t134 %t136 = icmp slt i32 %t130, %t135 %t137 = zext i1 %t136 to i32 %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %wbody30, label %wend31 wbody30: %t139 = load ptr, ptr %t1 %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 7 %t141 = load ptr, ptr %t140 %t142 = load i32, ptr %t129 %t143 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t146 = load i32, ptr %t145 %t147 = icmp ult i32 %t142, %t146 br i1 %t147, label %ixok32, label %ixbad33 ixbad33: %t148 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t148, ptr @.fmt_bounds, ptr @.str4423, i32 %t142, i32 %t146) call void @exit(i32 1) unreachable ixok32: %t149 = getelementptr inbounds ptr, ptr %t144, i32 %t142 %t150 = load ptr, ptr %t149 %t151 = call ptr @fn_emit_expr(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t152 %t154 = getelementptr inbounds %Cmp_Val, ptr %t153, i32 0, i32 0 %t155 = load ptr, ptr %t154 %t156 = call ptr @lp_str_concat(ptr @.str4424, ptr %t155) %t157 = call ptr @lp_str_concat(ptr %t156, ptr @.str4425) %t158 = call ptr @fn_emit_bind(ptr %t157) store ptr %t158, ptr %t159 %t160 = load ptr, ptr %t128 %t161 = call ptr @lp_str_concat(ptr @.str4426, ptr %t160) %t162 = call ptr @lp_str_concat(ptr %t161, ptr @.str4427) %t163 = call ptr @fn_emit_bind(ptr %t162) store ptr %t163, ptr %t164 %t165 = load ptr, ptr %t128 %t166 = call ptr @lp_str_concat(ptr @.str4428, ptr %t165) %t167 = call ptr @lp_str_concat(ptr %t166, ptr @.str4429) %t168 = call ptr @fn_emit_bind(ptr %t167) store ptr %t168, ptr %t169 %t170 = load ptr, ptr %t159 %t171 = call ptr @lp_str_concat(ptr @.str4430, ptr %t170) %t172 = call ptr @lp_str_concat(ptr %t171, ptr @.str4431) %t173 = load ptr, ptr %t164 %t174 = call ptr @lp_str_concat(ptr %t172, ptr %t173) %t175 = call ptr @fn_emit_bind(ptr %t174) store ptr %t175, ptr %t176 %t177 = load ptr, ptr %t176 %t178 = call ptr @lp_str_concat(ptr @.str4432, ptr %t177) %t179 = call ptr @lp_str_concat(ptr %t178, ptr @.str4433) %t180 = load ptr, ptr %t169 %t181 = call ptr @lp_str_concat(ptr %t179, ptr %t180) %t182 = call ptr @fn_emit_bind(ptr %t181) store ptr %t182, ptr %t183 %t184 = load ptr, ptr %t128 %t185 = call ptr @lp_str_concat(ptr @.str4434, ptr %t184) %t186 = call ptr @lp_str_concat(ptr %t185, ptr @.str4435) %t187 = load ptr, ptr %t183 %t188 = call ptr @lp_str_concat(ptr %t186, ptr %t187) %t189 = call ptr @fn_emit_bind(ptr %t188) store ptr %t189, ptr %t128 %t190 = load i32, ptr %t129 %t191 = add i32 %t190, 1 store i32 %t191, ptr %t129 br label %wcond29 wend31: %t192 = load ptr, ptr %t128 %t193 = call ptr @fn_val(ptr %t192, ptr @.str4436) store ptr %t193, ptr %retval br label %ret ret: %t194 = load ptr, ptr %retval ret ptr %t194 } define void @fn_emit_hash_prelude() { entry: call void @fn_emith(ptr @.str4437) call void @fn_emith(ptr @.str4438) call void @fn_emith(ptr @.str4439) call void @fn_emith(ptr @.str4440) call void @fn_emith(ptr @.str4441) call void @fn_emith(ptr @.str4442) call void @fn_emith(ptr @.str4443) call void @fn_emith(ptr @.str4444) call void @fn_emith(ptr @.str4445) call void @fn_emith(ptr @.str4446) call void @fn_emith(ptr @.str4447) call void @fn_emith(ptr @.str4448) call void @fn_emith(ptr @.str4449) call void @fn_emith(ptr @.str4450) call void @fn_emith(ptr @.str4451) call void @fn_emith(ptr @.str4452) call void @fn_emith(ptr @.str4453) call void @fn_emith(ptr @.str4454) call void @fn_emith(ptr @.str4455) call void @fn_emith(ptr @.str4456) call void @fn_emith(ptr @.str4457) call void @fn_emith(ptr @.str4458) call void @fn_emith(ptr @.str4459) call void @fn_emith(ptr @.str4460) call void @fn_emith(ptr @.str4461) call void @fn_emith(ptr @.str4462) call void @fn_emith(ptr @.str4463) call void @fn_emith(ptr @.str4464) call void @fn_emith(ptr @.str4465) call void @fn_emith(ptr @.str4466) call void @fn_emith(ptr @.str4467) call void @fn_emith(ptr @.str4468) call void @fn_emith(ptr @.str4469) call void @fn_emith(ptr @.str4470) call void @fn_emith(ptr @.str4471) call void @fn_emith(ptr @.str4472) call void @fn_emith(ptr @.str4473) call void @fn_emith(ptr @.str4474) call void @fn_emith(ptr @.str4475) call void @fn_emith(ptr @.str4476) call void @fn_emith(ptr @.str4477) call void @fn_emith(ptr @.str4478) call void @fn_emith(ptr @.str4479) call void @fn_emith(ptr @.str4480) call void @fn_emith(ptr @.str4481) call void @fn_emith(ptr @.str4482) call void @fn_emith(ptr @.str4483) call void @fn_emith(ptr @.str4484) call void @fn_emith(ptr @.str4485) call void @fn_emith(ptr @.str4486) call void @fn_emith(ptr @.str4487) call void @fn_emith(ptr @.str4488) call void @fn_emith(ptr @.str4489) call void @fn_emith(ptr @.str4490) call void @fn_emith(ptr @.str4491) call void @fn_emith(ptr @.str4492) call void @fn_emith(ptr @.str4493) call void @fn_emith(ptr @.str4494) call void @fn_emith(ptr @.str4495) call void @fn_emith(ptr @.str4496) call void @fn_emith(ptr @.str4497) call void @fn_emith(ptr @.str4498) call void @fn_emith(ptr @.str4499) call void @fn_emith(ptr @.str4500) call void @fn_emith(ptr @.str4501) call void @fn_emith(ptr @.str4502) call void @fn_emith(ptr @.str4503) call void @fn_emith(ptr @.str4504) call void @fn_emith(ptr @.str4505) call void @fn_emith(ptr @.str4506) call void @fn_emith(ptr @.str4507) call void @fn_emith(ptr @.str4508) call void @fn_emith(ptr @.str4509) call void @fn_emith(ptr @.str4510) call void @fn_emith(ptr @.str4511) call void @fn_emith(ptr @.str4512) call void @fn_emith(ptr @.str4513) call void @fn_emith(ptr @.str4514) call void @fn_emith(ptr @.str4515) call void @fn_emith(ptr @.str4516) call void @fn_emith(ptr @.str4517) call void @fn_emith(ptr @.str4518) call void @fn_emith(ptr @.str4519) call void @fn_emith(ptr @.str4520) call void @fn_emith(ptr @.str4521) call void @fn_emith(ptr @.str4522) call void @fn_emith(ptr @.str4523) call void @fn_emith(ptr @.str4524) call void @fn_emith(ptr @.str4525) call void @fn_emith(ptr @.str4526) call void @fn_emith(ptr @.str4527) call void @fn_emith(ptr @.str4528) call void @fn_emith(ptr @.str4529) call void @fn_emith(ptr @.str4530) call void @fn_emith(ptr @.str4531) call void @fn_emith(ptr @.str4532) call void @fn_emith(ptr @.str4533) br label %ret ret: ret void } define i32 @fn_is_crypto_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t31 = alloca i32 %t32 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str4534) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str4535) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str4536) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t21, ptr @.str4537) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t20 br i1 %t23, label %scend8, label %sc7 sc7: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str4538) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t20 br label %scend8 scend8: %t29 = load i32, ptr %t20 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str4539) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t32 br i1 %t35, label %scend13, label %sc12 sc12: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str4540) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t32 br label %scend13 scend13: %t41 = load i32, ptr %t32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t31 br i1 %t42, label %scend15, label %sc14 sc14: %t44 = load ptr, ptr %t0 %t45 = call i32 @lp_str_eq(ptr %t44, ptr @.str4541) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t31 br label %scend15 scend15: %t48 = load i32, ptr %t31 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then16, label %ifend18 then16: store i32 1, ptr %retval br label %ret ifend18: %t50 = load ptr, ptr %t0 %t51 = call i32 @lp_str_eq(ptr %t50, ptr @.str4542) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then19, label %ifend21 then19: store i32 1, ptr %retval br label %ret ifend21: store i32 0, ptr %retval br label %ret ret: %t53 = load i32, ptr %retval ret i32 %t53 } define ptr @fn_emit_crypto_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t40 = alloca ptr %t53 = alloca ptr %t81 = alloca ptr %t104 = alloca ptr %t117 = alloca ptr %t130 = alloca i32 %t153 = alloca ptr %t160 = alloca ptr %t186 = alloca ptr %t206 = alloca ptr %t219 = alloca ptr %t232 = alloca ptr %t244 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_uses_cryptort %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str4543) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str4544, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str4545, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str4546) %t23 = call ptr @fn_emit_bind(ptr %t22) %t24 = call ptr @fn_val(ptr %t23, ptr @.str4547) store ptr %t24, ptr %retval br label %ret ifend2: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str4548) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = load ptr, ptr %t1 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 0, %t34 br i1 %t35, label %ixok8, label %ixbad9 ixbad9: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str4549, i32 0, i32 %t34) call void @exit(i32 1) unreachable ixok8: %t37 = getelementptr inbounds ptr, ptr %t32, i32 0 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_emit_expr(ptr %t38) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t1 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 7 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 1, %t47 br i1 %t48, label %ixok10, label %ixbad11 ixbad11: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str4550, i32 1, i32 %t47) call void @exit(i32 1) unreachable ixok10: %t50 = getelementptr inbounds ptr, ptr %t45, i32 1 %t51 = load ptr, ptr %t50 %t52 = call ptr @fn_emit_expr(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t40 %t55 = getelementptr inbounds %Cmp_Val, ptr %t54, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @lp_str_concat(ptr @.str4551, ptr %t56) %t58 = call ptr @lp_str_concat(ptr %t57, ptr @.str4552) %t59 = load ptr, ptr %t53 %t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @lp_str_concat(ptr %t58, ptr %t61) %t63 = call ptr @lp_str_concat(ptr %t62, ptr @.str4553) %t64 = call ptr @fn_emit_bind(ptr %t63) %t65 = call ptr @fn_val(ptr %t64, ptr @.str4554) store ptr %t65, ptr %retval br label %ret ifend7: %t66 = load ptr, ptr %t0 %t67 = call i32 @lp_str_eq(ptr %t66, ptr @.str4555) %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then12, label %ifend14 then12: %t69 = load ptr, ptr %t1 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 7 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t75 = load i32, ptr %t74 %t76 = icmp ult i32 0, %t75 br i1 %t76, label %ixok15, label %ixbad16 ixbad16: %t77 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t77, ptr @.fmt_bounds, ptr @.str4556, i32 0, i32 %t75) call void @exit(i32 1) unreachable ixok15: %t78 = getelementptr inbounds ptr, ptr %t73, i32 0 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_emit_expr(ptr %t79) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t81 %t83 = getelementptr inbounds %Cmp_Val, ptr %t82, i32 0, i32 0 %t84 = load ptr, ptr %t83 %t85 = call ptr @lp_str_concat(ptr @.str4557, ptr %t84) %t86 = call ptr @lp_str_concat(ptr %t85, ptr @.str4558) %t87 = call ptr @fn_emit_bind(ptr %t86) %t88 = call ptr @fn_val(ptr %t87, ptr @.str4559) store ptr %t88, ptr %retval br label %ret ifend14: %t89 = load ptr, ptr %t0 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str4560) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then17, label %ifend19 then17: %t92 = load ptr, ptr %t1 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 7 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp ult i32 0, %t98 br i1 %t99, label %ixok20, label %ixbad21 ixbad21: %t100 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t100, ptr @.fmt_bounds, ptr @.str4561, i32 0, i32 %t98) call void @exit(i32 1) unreachable ixok20: %t101 = getelementptr inbounds ptr, ptr %t96, i32 0 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_emit_expr(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t1 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 7 %t107 = load ptr, ptr %t106 %t108 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 0 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 1 %t111 = load i32, ptr %t110 %t112 = icmp ult i32 1, %t111 br i1 %t112, label %ixok22, label %ixbad23 ixbad23: %t113 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t113, ptr @.fmt_bounds, ptr @.str4562, i32 1, i32 %t111) call void @exit(i32 1) unreachable ixok22: %t114 = getelementptr inbounds ptr, ptr %t109, i32 1 %t115 = load ptr, ptr %t114 %t116 = call ptr @fn_emit_expr(ptr %t115) store ptr %t116, ptr %t117 %t118 = load ptr, ptr %t104 %t119 = getelementptr inbounds %Cmp_Val, ptr %t118, i32 0, i32 0 %t120 = load ptr, ptr %t119 %t121 = call ptr @lp_str_concat(ptr @.str4563, ptr %t120) %t122 = call ptr @lp_str_concat(ptr %t121, ptr @.str4564) %t123 = load ptr, ptr %t117 %t124 = getelementptr inbounds %Cmp_Val, ptr %t123, i32 0, i32 0 %t125 = load ptr, ptr %t124 %t126 = call ptr @lp_str_concat(ptr %t122, ptr %t125) %t127 = call ptr @lp_str_concat(ptr %t126, ptr @.str4565) %t128 = call ptr @fn_emit_bind(ptr %t127) %t129 = call ptr @fn_val(ptr %t128, ptr @.str4566) store ptr %t129, ptr %retval br label %ret ifend19: %t131 = load ptr, ptr %t0 %t132 = call i32 @lp_str_eq(ptr %t131, ptr @.str4567) %t133 = icmp ne i32 %t132, 0 %t134 = zext i1 %t133 to i32 store i32 %t134, ptr %t130 br i1 %t133, label %scend25, label %sc24 sc24: %t135 = load ptr, ptr %t0 %t136 = call i32 @lp_str_eq(ptr %t135, ptr @.str4568) %t137 = icmp ne i32 %t136, 0 %t138 = zext i1 %t137 to i32 store i32 %t138, ptr %t130 br label %scend25 scend25: %t139 = load i32, ptr %t130 %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %then26, label %ifend28 then26: %t141 = load ptr, ptr %t1 %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 7 %t143 = load ptr, ptr %t142 %t144 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 1 %t147 = load i32, ptr %t146 %t148 = icmp ult i32 0, %t147 br i1 %t148, label %ixok29, label %ixbad30 ixbad30: %t149 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t149, ptr @.fmt_bounds, ptr @.str4569, i32 0, i32 %t147) call void @exit(i32 1) unreachable ixok29: %t150 = getelementptr inbounds ptr, ptr %t145, i32 0 %t151 = load ptr, ptr %t150 %t152 = call ptr @fn_emit_expr(ptr %t151) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t153 %t155 = getelementptr inbounds %Cmp_Val, ptr %t154, i32 0, i32 0 %t156 = load ptr, ptr %t155 %t157 = call ptr @lp_str_concat(ptr @.str4570, ptr %t156) %t158 = call ptr @lp_str_concat(ptr %t157, ptr @.str4571) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t160 %t162 = call ptr @lp_str_concat(ptr @.str4572, ptr %t161) %t163 = call ptr @lp_str_concat(ptr %t162, ptr @.str4573) %t164 = call ptr @fn_emit_bind(ptr %t163) %t165 = call ptr @fn_val(ptr %t164, ptr @.str4574) store ptr %t165, ptr %retval br label %ret ifend28: %t166 = load ptr, ptr %t0 %t167 = call i32 @lp_str_eq(ptr %t166, ptr @.str4575) %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then31, label %ifend33 then31: %t169 = call ptr @fn_emit_bind(ptr @.str4576) %t170 = call ptr @fn_val(ptr %t169, ptr @.str4577) store ptr %t170, ptr %retval br label %ret ifend33: %t171 = load ptr, ptr %t0 %t172 = call i32 @lp_str_eq(ptr %t171, ptr @.str4578) %t173 = icmp ne i32 %t172, 0 br i1 %t173, label %then34, label %ifend36 then34: %t174 = load ptr, ptr %t1 %t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 7 %t176 = load ptr, ptr %t175 %t177 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 0 %t178 = load ptr, ptr %t177 %t179 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 1 %t180 = load i32, ptr %t179 %t181 = icmp ult i32 0, %t180 br i1 %t181, label %ixok37, label %ixbad38 ixbad38: %t182 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t182, ptr @.fmt_bounds, ptr @.str4579, i32 0, i32 %t180) call void @exit(i32 1) unreachable ixok37: %t183 = getelementptr inbounds ptr, ptr %t178, i32 0 %t184 = load ptr, ptr %t183 %t185 = call ptr @fn_emit_expr(ptr %t184) store ptr %t185, ptr %t186 %t187 = load ptr, ptr %t186 %t188 = getelementptr inbounds %Cmp_Val, ptr %t187, i32 0, i32 0 %t189 = load ptr, ptr %t188 %t190 = call ptr @lp_str_concat(ptr @.str4580, ptr %t189) %t191 = call ptr @lp_str_concat(ptr %t190, ptr @.str4581) %t192 = call ptr @fn_emit_bind(ptr %t191) %t193 = call ptr @fn_val(ptr %t192, ptr @.str4582) store ptr %t193, ptr %retval br label %ret ifend36: %t194 = load ptr, ptr %t1 %t195 = getelementptr inbounds %Cmp_Node, ptr %t194, i32 0, i32 7 %t196 = load ptr, ptr %t195 %t197 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 0 %t198 = load ptr, ptr %t197 %t199 = getelementptr inbounds %LSlice, ptr %t196, i32 0, i32 1 %t200 = load i32, ptr %t199 %t201 = icmp ult i32 0, %t200 br i1 %t201, label %ixok39, label %ixbad40 ixbad40: %t202 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t202, ptr @.fmt_bounds, ptr @.str4583, i32 0, i32 %t200) call void @exit(i32 1) unreachable ixok39: %t203 = getelementptr inbounds ptr, ptr %t198, i32 0 %t204 = load ptr, ptr %t203 %t205 = call ptr @fn_emit_expr(ptr %t204) store ptr %t205, ptr %t206 %t207 = load ptr, ptr %t1 %t208 = getelementptr inbounds %Cmp_Node, ptr %t207, i32 0, i32 7 %t209 = load ptr, ptr %t208 %t210 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 0 %t211 = load ptr, ptr %t210 %t212 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 1 %t213 = load i32, ptr %t212 %t214 = icmp ult i32 1, %t213 br i1 %t214, label %ixok41, label %ixbad42 ixbad42: %t215 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t215, ptr @.fmt_bounds, ptr @.str4584, i32 1, i32 %t213) call void @exit(i32 1) unreachable ixok41: %t216 = getelementptr inbounds ptr, ptr %t211, i32 1 %t217 = load ptr, ptr %t216 %t218 = call ptr @fn_emit_expr(ptr %t217) store ptr %t218, ptr %t219 %t220 = load ptr, ptr %t1 %t221 = getelementptr inbounds %Cmp_Node, ptr %t220, i32 0, i32 7 %t222 = load ptr, ptr %t221 %t223 = getelementptr inbounds %LSlice, ptr %t222, i32 0, i32 0 %t224 = load ptr, ptr %t223 %t225 = getelementptr inbounds %LSlice, ptr %t222, i32 0, i32 1 %t226 = load i32, ptr %t225 %t227 = icmp ult i32 2, %t226 br i1 %t227, label %ixok43, label %ixbad44 ixbad44: %t228 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t228, ptr @.fmt_bounds, ptr @.str4585, i32 2, i32 %t226) call void @exit(i32 1) unreachable ixok43: %t229 = getelementptr inbounds ptr, ptr %t224, i32 2 %t230 = load ptr, ptr %t229 %t231 = call ptr @fn_emit_expr(ptr %t230) store ptr %t231, ptr %t232 %t233 = load ptr, ptr %t206 %t234 = getelementptr inbounds %Cmp_Val, ptr %t233, i32 0, i32 0 %t235 = load ptr, ptr %t234 %t236 = call ptr @lp_str_concat(ptr @.str4586, ptr %t235) %t237 = call ptr @lp_str_concat(ptr %t236, ptr @.str4587) %t238 = load ptr, ptr %t219 %t239 = getelementptr inbounds %Cmp_Val, ptr %t238, i32 0, i32 0 %t240 = load ptr, ptr %t239 %t241 = call ptr @lp_str_concat(ptr %t237, ptr %t240) %t242 = call ptr @lp_str_concat(ptr %t241, ptr @.str4588) %t243 = call ptr @fn_emit_bind(ptr %t242) store ptr %t243, ptr %t244 %t245 = load ptr, ptr %t244 %t246 = call ptr @lp_str_concat(ptr @.str4589, ptr %t245) %t247 = call ptr @lp_str_concat(ptr %t246, ptr @.str4590) %t248 = load ptr, ptr %t232 %t249 = getelementptr inbounds %Cmp_Val, ptr %t248, i32 0, i32 0 %t250 = load ptr, ptr %t249 %t251 = call ptr @lp_str_concat(ptr %t247, ptr %t250) %t252 = call ptr @lp_str_concat(ptr %t251, ptr @.str4591) %t253 = call ptr @fn_emit_bind(ptr %t252) %t254 = call ptr @fn_val(ptr %t253, ptr @.str4592) store ptr %t254, ptr %retval br label %ret ret: %t255 = load ptr, ptr %retval ret ptr %t255 } define void @fn_emit_crypto_prelude() { entry: call void @fn_emith(ptr @.str4593) call void @fn_emith(ptr @.str4594) call void @fn_emith(ptr @.str4595) call void @fn_emith(ptr @.str4596) call void @fn_emith(ptr @.str4597) call void @fn_emith(ptr @.str4598) call void @fn_emith(ptr @.str4599) call void @fn_emith(ptr @.str4600) call void @fn_emith(ptr @.str4601) call void @fn_emith(ptr @.str4602) call void @fn_emith(ptr @.str4603) call void @fn_emith(ptr @.str4604) call void @fn_emith(ptr @.str4605) call void @fn_emith(ptr @.str4606) call void @fn_emith(ptr @.str4607) call void @fn_emith(ptr @.str4608) call void @fn_emith(ptr @.str4609) call void @fn_emith(ptr @.str4610) call void @fn_emith(ptr @.str4611) call void @fn_emith(ptr @.str4612) call void @fn_emith(ptr @.str4613) call void @fn_emith(ptr @.str4614) call void @fn_emith(ptr @.str4615) call void @fn_emith(ptr @.str4616) call void @fn_emith(ptr @.str4617) call void @fn_emith(ptr @.str4618) call void @fn_emith(ptr @.str4619) call void @fn_emith(ptr @.str4620) call void @fn_emith(ptr @.str4621) call void @fn_emith(ptr @.str4622) call void @fn_emith(ptr @.str4623) call void @fn_emith(ptr @.str4624) call void @fn_emith(ptr @.str4625) call void @fn_emith(ptr @.str4626) call void @fn_emith(ptr @.str4627) call void @fn_emith(ptr @.str4628) call void @fn_emith(ptr @.str4629) call void @fn_emith(ptr @.str4630) call void @fn_emith(ptr @.str4631) call void @fn_emith(ptr @.str4632) call void @fn_emith(ptr @.str4633) call void @fn_emith(ptr @.str4634) call void @fn_emith(ptr @.str4635) call void @fn_emith(ptr @.str4636) call void @fn_emith(ptr @.str4637) call void @fn_emith(ptr @.str4638) call void @fn_emith(ptr @.str4639) call void @fn_emith(ptr @.str4640) call void @fn_emith(ptr @.str4641) call void @fn_emith(ptr @.str4642) call void @fn_emith(ptr @.str4643) call void @fn_emith(ptr @.str4644) call void @fn_emith(ptr @.str4645) call void @fn_emith(ptr @.str4646) call void @fn_emith(ptr @.str4647) call void @fn_emith(ptr @.str4648) call void @fn_emith(ptr @.str4649) call void @fn_emith(ptr @.str4650) call void @fn_emith(ptr @.str4651) call void @fn_emith(ptr @.str4652) call void @fn_emith(ptr @.str4653) call void @fn_emith(ptr @.str4654) call void @fn_emith(ptr @.str4655) call void @fn_emith(ptr @.str4656) call void @fn_emith(ptr @.str4657) call void @fn_emith(ptr @.str4658) call void @fn_emith(ptr @.str4659) call void @fn_emith(ptr @.str4660) call void @fn_emith(ptr @.str4661) call void @fn_emith(ptr @.str4662) call void @fn_emith(ptr @.str4663) call void @fn_emith(ptr @.str4664) call void @fn_emith(ptr @.str4665) call void @fn_emith(ptr @.str4666) call void @fn_emith(ptr @.str4667) call void @fn_emith(ptr @.str4668) call void @fn_emith(ptr @.str4669) call void @fn_emith(ptr @.str4670) call void @fn_emith(ptr @.str4671) call void @fn_emith(ptr @.str4672) call void @fn_emith(ptr @.str4673) call void @fn_emith(ptr @.str4674) call void @fn_emith(ptr @.str4675) call void @fn_emith(ptr @.str4676) call void @fn_emith(ptr @.str4677) call void @fn_emith(ptr @.str4678) call void @fn_emith(ptr @.str4679) call void @fn_emith(ptr @.str4680) call void @fn_emith(ptr @.str4681) call void @fn_emith(ptr @.str4682) call void @fn_emith(ptr @.str4683) call void @fn_emith(ptr @.str4684) call void @fn_emith(ptr @.str4685) call void @fn_emith(ptr @.str4686) call void @fn_emith(ptr @.str4687) call void @fn_emith(ptr @.str4688) call void @fn_emith(ptr @.str4689) call void @fn_emith(ptr @.str4690) call void @fn_emith(ptr @.str4691) call void @fn_emith(ptr @.str4692) call void @fn_emith(ptr @.str4693) call void @fn_emith(ptr @.str4694) call void @fn_emith(ptr @.str4695) call void @fn_emith(ptr @.str4696) call void @fn_emith(ptr @.str4697) call void @fn_emith(ptr @.str4698) call void @fn_emith(ptr @.str4699) call void @fn_emith(ptr @.str4700) call void @fn_emith(ptr @.str4701) call void @fn_emith(ptr @.str4702) call void @fn_emith(ptr @.str4703) call void @fn_emith(ptr @.str4704) call void @fn_emith(ptr @.str4705) call void @fn_emith(ptr @.str4706) call void @fn_emith(ptr @.str4707) call void @fn_emith(ptr @.str4708) call void @fn_emith(ptr @.str4709) call void @fn_emith(ptr @.str4710) call void @fn_emith(ptr @.str4711) call void @fn_emith(ptr @.str4712) call void @fn_emith(ptr @.str4713) call void @fn_emith(ptr @.str4714) call void @fn_emith(ptr @.str4715) call void @fn_emith(ptr @.str4716) call void @fn_emith(ptr @.str4717) call void @fn_emith(ptr @.str4718) call void @fn_emith(ptr @.str4719) call void @fn_emith(ptr @.str4720) call void @fn_emith(ptr @.str4721) call void @fn_emith(ptr @.str4722) call void @fn_emith(ptr @.str4723) call void @fn_emith(ptr @.str4724) call void @fn_emith(ptr @.str4725) call void @fn_emith(ptr @.str4726) call void @fn_emith(ptr @.str4727) call void @fn_emith(ptr @.str4728) call void @fn_emith(ptr @.str4729) call void @fn_emith(ptr @.str4730) call void @fn_emith(ptr @.str4731) call void @fn_emith(ptr @.str4732) call void @fn_emith(ptr @.str4733) call void @fn_emith(ptr @.str4734) call void @fn_emith(ptr @.str4735) call void @fn_emith(ptr @.str4736) call void @fn_emith(ptr @.str4737) call void @fn_emith(ptr @.str4738) call void @fn_emith(ptr @.str4739) call void @fn_emith(ptr @.str4740) call void @fn_emith(ptr @.str4741) call void @fn_emith(ptr @.str4742) call void @fn_emith(ptr @.str4743) call void @fn_emith(ptr @.str4744) call void @fn_emit_secure_rand_prelude() br label %ret ret: ret void } define void @fn_emit_secure_rand_prelude() { entry: call void @fn_emith(ptr @.str4745) call void @fn_emith(ptr @.str4746) call void @fn_emith(ptr @.str4747) %t0 = load i32, ptr @g_g_target_win %t1 = icmp ne i32 %t0, 0 br i1 %t1, label %then0, label %else1 then0: call void @fn_emith(ptr @.str4748) call void @fn_emith(ptr @.str4749) call void @fn_emith(ptr @.str4750) call void @fn_emith(ptr @.str4751) call void @fn_emith(ptr @.str4752) call void @fn_emith(ptr @.str4753) call void @fn_emith(ptr @.str4754) call void @fn_emith(ptr @.str4755) br label %ifend2 else1: call void @fn_emith(ptr @.str4756) call void @fn_emith(ptr @.str4757) call void @fn_emith(ptr @.str4758) call void @fn_emith(ptr @.str4759) call void @fn_emith(ptr @.str4760) call void @fn_emith(ptr @.str4761) br label %ifend2 ifend2: call void @fn_emith(ptr @.str4762) call void @fn_emith(ptr @.str4763) call void @fn_emith(ptr @.str4764) call void @fn_emith(ptr @.str4765) call void @fn_emith(ptr @.str4766) call void @fn_emith(ptr @.str4767) call void @fn_emith(ptr @.str4768) call void @fn_emith(ptr @.str4769) call void @fn_emith(ptr @.str4770) call void @fn_emith(ptr @.str4771) call void @fn_emith(ptr @.str4772) call void @fn_emith(ptr @.str4773) call void @fn_emith(ptr @.str4774) call void @fn_emith(ptr @.str4775) call void @fn_emith(ptr @.str4776) call void @fn_emith(ptr @.str4777) call void @fn_emith(ptr @.str4778) call void @fn_emith(ptr @.str4779) call void @fn_emith(ptr @.str4780) call void @fn_emith(ptr @.str4781) call void @fn_emith(ptr @.str4782) call void @fn_emith(ptr @.str4783) call void @fn_emith(ptr @.str4784) call void @fn_emith(ptr @.str4785) call void @fn_emith(ptr @.str4786) call void @fn_emith(ptr @.str4787) call void @fn_emith(ptr @.str4788) call void @fn_emith(ptr @.str4789) call void @fn_emith(ptr @.str4790) call void @fn_emith(ptr @.str4791) call void @fn_emith(ptr @.str4792) call void @fn_emith(ptr @.str4793) call void @fn_emith(ptr @.str4794) call void @fn_emith(ptr @.str4795) call void @fn_emith(ptr @.str4796) call void @fn_emith(ptr @.str4797) call void @fn_emith(ptr @.str4798) call void @fn_emith(ptr @.str4799) call void @fn_emith(ptr @.str4800) br label %ret ret: ret void } define i32 @fn_is_uuid_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t47 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str4801) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str4802) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str4803) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str4804) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str4805) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t29 br i1 %t32, label %scend10, label %sc9 sc9: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str4806) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t29 br label %scend10 scend10: %t38 = load i32, ptr %t29 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t28 br i1 %t39, label %scend12, label %sc11 sc11: %t41 = load ptr, ptr %t0 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str4807) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t28 br label %scend12 scend12: %t45 = load i32, ptr %t28 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then13, label %ifend15 then13: store i32 1, ptr %retval br label %ret ifend15: %t48 = load ptr, ptr %t0 %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str4808) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t47 br i1 %t50, label %scend17, label %sc16 sc16: %t52 = load ptr, ptr %t0 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str4809) %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t47 br label %scend17 scend17: %t56 = load i32, ptr %t47 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then18, label %ifend20 then18: store i32 1, ptr %retval br label %ret ifend20: store i32 0, ptr %retval br label %ret ret: %t58 = load i32, ptr %retval ret i32 %t58 } define ptr @fn_emit_uuid_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t15 = alloca i32 %t48 = alloca ptr %t71 = alloca ptr %t91 = alloca ptr %t104 = alloca ptr %t129 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_uses_cryptort store i32 1, ptr @g_g_uses_uuidrt %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str4810) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str4811) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then2, label %ifend4 then2: %t13 = call ptr @fn_emit_bind(ptr @.str4812) %t14 = call ptr @fn_val(ptr %t13, ptr @.str4813) store ptr %t14, ptr %retval br label %ret ifend4: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str4814) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t15 br i1 %t18, label %scend6, label %sc5 sc5: %t20 = load ptr, ptr %t0 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str4815) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t15 br label %scend6 scend6: %t24 = load i32, ptr %t15 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then7, label %ifend9 then7: %t26 = call ptr @fn_emit_bind(ptr @.str4816) %t27 = call ptr @fn_val(ptr %t26, ptr @.str4817) store ptr %t27, ptr %retval br label %ret ifend9: %t28 = load ptr, ptr %t0 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str4818) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then10, label %ifend12 then10: %t31 = call ptr @fn_emit_bind(ptr @.str4819) %t32 = call ptr @fn_val(ptr %t31, ptr @.str4820) store ptr %t32, ptr %retval br label %ret ifend12: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str4821) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then13, label %ifend15 then13: %t36 = load ptr, ptr %t1 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp ult i32 0, %t42 br i1 %t43, label %ixok16, label %ixbad17 ixbad17: %t44 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t44, ptr @.fmt_bounds, ptr @.str4822, i32 0, i32 %t42) call void @exit(i32 1) unreachable ixok16: %t45 = getelementptr inbounds ptr, ptr %t40, i32 0 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_emit_expr(ptr %t46) store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %Cmp_Val, ptr %t49, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = call ptr @lp_str_concat(ptr @.str4823, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str4824) %t54 = call ptr @fn_emit_bind(ptr %t53) %t55 = call ptr @fn_val(ptr %t54, ptr @.str4825) store ptr %t55, ptr %retval br label %ret ifend15: %t56 = load ptr, ptr %t0 %t57 = call i32 @lp_str_eq(ptr %t56, ptr @.str4826) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then18, label %ifend20 then18: %t59 = load ptr, ptr %t1 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 7 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ult i32 0, %t65 br i1 %t66, label %ixok21, label %ixbad22 ixbad22: %t67 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t67, ptr @.fmt_bounds, ptr @.str4827, i32 0, i32 %t65) call void @exit(i32 1) unreachable ixok21: %t68 = getelementptr inbounds ptr, ptr %t63, i32 0 %t69 = load ptr, ptr %t68 %t70 = call ptr @fn_emit_expr(ptr %t69) store ptr %t70, ptr %t71 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %Cmp_Val, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_val(ptr %t74, ptr @.str4828) store ptr %t75, ptr %retval br label %ret ifend20: %t76 = load ptr, ptr %t0 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str4829) %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then23, label %ifend25 then23: %t79 = load ptr, ptr %t1 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 7 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 0 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 1 %t85 = load i32, ptr %t84 %t86 = icmp ult i32 0, %t85 br i1 %t86, label %ixok26, label %ixbad27 ixbad27: %t87 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t87, ptr @.fmt_bounds, ptr @.str4830, i32 0, i32 %t85) call void @exit(i32 1) unreachable ixok26: %t88 = getelementptr inbounds ptr, ptr %t83, i32 0 %t89 = load ptr, ptr %t88 %t90 = call ptr @fn_emit_expr(ptr %t89) store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t1 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 7 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp ult i32 1, %t98 br i1 %t99, label %ixok28, label %ixbad29 ixbad29: %t100 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t100, ptr @.fmt_bounds, ptr @.str4831, i32 1, i32 %t98) call void @exit(i32 1) unreachable ixok28: %t101 = getelementptr inbounds ptr, ptr %t96, i32 1 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_emit_expr(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t91 %t106 = getelementptr inbounds %Cmp_Val, ptr %t105, i32 0, i32 0 %t107 = load ptr, ptr %t106 %t108 = call ptr @lp_str_concat(ptr @.str4832, ptr %t107) %t109 = call ptr @lp_str_concat(ptr %t108, ptr @.str4833) %t110 = load ptr, ptr %t104 %t111 = getelementptr inbounds %Cmp_Val, ptr %t110, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = call ptr @lp_str_concat(ptr %t109, ptr %t112) %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str4834) %t115 = call ptr @fn_emit_bind(ptr %t114) %t116 = call ptr @fn_val(ptr %t115, ptr @.str4835) store ptr %t116, ptr %retval br label %ret ifend25: %t117 = load ptr, ptr %t1 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 7 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t121 = load ptr, ptr %t120 %t122 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t123 = load i32, ptr %t122 %t124 = icmp ult i32 0, %t123 br i1 %t124, label %ixok30, label %ixbad31 ixbad31: %t125 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t125, ptr @.fmt_bounds, ptr @.str4836, i32 0, i32 %t123) call void @exit(i32 1) unreachable ixok30: %t126 = getelementptr inbounds ptr, ptr %t121, i32 0 %t127 = load ptr, ptr %t126 %t128 = call ptr @fn_emit_expr(ptr %t127) store ptr %t128, ptr %t129 %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds %Cmp_Val, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 %t133 = call ptr @lp_str_concat(ptr @.str4837, ptr %t132) %t134 = call ptr @lp_str_concat(ptr %t133, ptr @.str4838) %t135 = call ptr @fn_emit_bind(ptr %t134) %t136 = call ptr @fn_val(ptr %t135, ptr @.str4839) store ptr %t136, ptr %retval br label %ret ret: %t137 = load ptr, ptr %retval ret ptr %t137 } define void @fn_emit_uuid_prelude() { entry: call void @fn_emith(ptr @.str4840) call void @fn_emith(ptr @.str4841) call void @fn_emith(ptr @.str4842) call void @fn_emith(ptr @.str4843) call void @fn_emith(ptr @.str4844) call void @fn_emith(ptr @.str4845) call void @fn_emith(ptr @.str4846) call void @fn_emith(ptr @.str4847) call void @fn_emith(ptr @.str4848) call void @fn_emith(ptr @.str4849) call void @fn_emith(ptr @.str4850) call void @fn_emith(ptr @.str4851) call void @fn_emith(ptr @.str4852) call void @fn_emith(ptr @.str4853) call void @fn_emith(ptr @.str4854) call void @fn_emith(ptr @.str4855) call void @fn_emith(ptr @.str4856) call void @fn_emith(ptr @.str4857) call void @fn_emith(ptr @.str4858) call void @fn_emith(ptr @.str4859) call void @fn_emith(ptr @.str4860) call void @fn_emith(ptr @.str4861) call void @fn_emith(ptr @.str4862) call void @fn_emith(ptr @.str4863) call void @fn_emith(ptr @.str4864) call void @fn_emith(ptr @.str4865) call void @fn_emith(ptr @.str4866) call void @fn_emith(ptr @.str4867) call void @fn_emith(ptr @.str4868) call void @fn_emith(ptr @.str4869) call void @fn_emith(ptr @.str4870) call void @fn_emith(ptr @.str4871) call void @fn_emith(ptr @.str4872) call void @fn_emith(ptr @.str4873) call void @fn_emith(ptr @.str4874) call void @fn_emith(ptr @.str4875) call void @fn_emith(ptr @.str4876) call void @fn_emith(ptr @.str4877) call void @fn_emith(ptr @.str4878) call void @fn_emith(ptr @.str4879) call void @fn_emith(ptr @.str4880) call void @fn_emith(ptr @.str4881) call void @fn_emith(ptr @.str4882) call void @fn_emith(ptr @.str4883) call void @fn_emith(ptr @.str4884) call void @fn_emith(ptr @.str4885) call void @fn_emith(ptr @.str4886) call void @fn_emith(ptr @.str4887) call void @fn_emith(ptr @.str4888) call void @fn_emith(ptr @.str4889) call void @fn_emith(ptr @.str4890) call void @fn_emith(ptr @.str4891) call void @fn_emith(ptr @.str4892) call void @fn_emith(ptr @.str4893) call void @fn_emith(ptr @.str4894) call void @fn_emith(ptr @.str4895) call void @fn_emith(ptr @.str4896) call void @fn_emith(ptr @.str4897) call void @fn_emith(ptr @.str4898) call void @fn_emith(ptr @.str4899) call void @fn_emith(ptr @.str4900) call void @fn_emith(ptr @.str4901) call void @fn_emith(ptr @.str4902) call void @fn_emith(ptr @.str4903) call void @fn_emith(ptr @.str4904) call void @fn_emith(ptr @.str4905) call void @fn_emith(ptr @.str4906) call void @fn_emith(ptr @.str4907) call void @fn_emith(ptr @.str4908) call void @fn_emith(ptr @.str4909) call void @fn_emith(ptr @.str4910) call void @fn_emith(ptr @.str4911) call void @fn_emith(ptr @.str4912) call void @fn_emith(ptr @.str4913) br label %ret ret: ret void } define i32 @fn_is_noise_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str4914) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str4915) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str4916) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str4917) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t21 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str4918) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 br label %scend8 scend8: %t30 = load i32, ptr %t21 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t20 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str4919) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 br label %scend10 scend10: %t37 = load i32, ptr %t20 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: %t39 = load ptr, ptr %t0 %t40 = call i32 @lp_str_eq(ptr %t39, ptr @.str4920) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then14, label %ifend16 then14: store i32 1, ptr %retval br label %ret ifend16: store i32 0, ptr %retval br label %ret ret: %t42 = load i32, ptr %retval ret i32 %t42 } define ptr @fn_emit_noise_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t24 = alloca ptr %t46 = alloca ptr %t59 = alloca ptr %t72 = alloca ptr %t106 = alloca ptr %t119 = alloca ptr %t132 = alloca ptr %t166 = alloca ptr %t179 = alloca ptr %t192 = alloca ptr %t226 = alloca ptr %t239 = alloca ptr %t252 = alloca ptr %t265 = alloca ptr %t304 = alloca ptr %t317 = alloca ptr %t330 = alloca ptr %t360 = alloca ptr %t373 = alloca ptr %t386 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str4921) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str4922, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str4923, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str4924) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str4925, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str4926) %t28 = call ptr @fn_emit_bind(ptr %t27) %t29 = call ptr @fn_val(ptr %t28, ptr @.str4927) store ptr %t29, ptr %retval br label %ret ifend2: store i32 1, ptr @g_g_uses_noisert %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str4928) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t1 call void @fn_noise_arity(ptr %t33, ptr @.str4929, i32 3) %t34 = load ptr, ptr %t1 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 7 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp ult i32 0, %t40 br i1 %t41, label %ixok8, label %ixbad9 ixbad9: %t42 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t42, ptr @.fmt_bounds, ptr @.str4930, i32 0, i32 %t40) call void @exit(i32 1) unreachable ixok8: %t43 = getelementptr inbounds ptr, ptr %t38, i32 0 %t44 = load ptr, ptr %t43 %t45 = call ptr @fn_emit_expr(ptr %t44) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t1 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 7 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = icmp ult i32 1, %t53 br i1 %t54, label %ixok10, label %ixbad11 ixbad11: %t55 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t55, ptr @.fmt_bounds, ptr @.str4931, i32 1, i32 %t53) call void @exit(i32 1) unreachable ixok10: %t56 = getelementptr inbounds ptr, ptr %t51, i32 1 %t57 = load ptr, ptr %t56 %t58 = call ptr @fn_emit_expr(ptr %t57) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t1 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 7 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t66 = load i32, ptr %t65 %t67 = icmp ult i32 2, %t66 br i1 %t67, label %ixok12, label %ixbad13 ixbad13: %t68 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t68, ptr @.fmt_bounds, ptr @.str4932, i32 2, i32 %t66) call void @exit(i32 1) unreachable ixok12: %t69 = getelementptr inbounds ptr, ptr %t64, i32 2 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_emit_expr(ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t46 %t74 = getelementptr inbounds %Cmp_Val, ptr %t73, i32 0, i32 0 %t75 = load ptr, ptr %t74 %t76 = call ptr @lp_str_concat(ptr @.str4933, ptr %t75) %t77 = call ptr @lp_str_concat(ptr %t76, ptr @.str4934) %t78 = load ptr, ptr %t59 %t79 = getelementptr inbounds %Cmp_Val, ptr %t78, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = call ptr @lp_str_concat(ptr %t77, ptr %t80) %t82 = call ptr @lp_str_concat(ptr %t81, ptr @.str4935) %t83 = load ptr, ptr %t72 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = call ptr @lp_str_concat(ptr %t82, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str4936) %t88 = call ptr @fn_emit_bind(ptr %t87) %t89 = call ptr @fn_val(ptr %t88, ptr @.str4937) store ptr %t89, ptr %retval br label %ret ifend7: %t90 = load ptr, ptr %t0 %t91 = call i32 @lp_str_eq(ptr %t90, ptr @.str4938) %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then14, label %ifend16 then14: %t93 = load ptr, ptr %t1 call void @fn_noise_arity(ptr %t93, ptr @.str4939, i32 3) %t94 = load ptr, ptr %t1 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 7 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t98 = load ptr, ptr %t97 %t99 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t100 = load i32, ptr %t99 %t101 = icmp ult i32 0, %t100 br i1 %t101, label %ixok17, label %ixbad18 ixbad18: %t102 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t102, ptr @.fmt_bounds, ptr @.str4940, i32 0, i32 %t100) call void @exit(i32 1) unreachable ixok17: %t103 = getelementptr inbounds ptr, ptr %t98, i32 0 %t104 = load ptr, ptr %t103 %t105 = call ptr @fn_emit_expr(ptr %t104) store ptr %t105, ptr %t106 %t107 = load ptr, ptr %t1 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 7 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 1 %t113 = load i32, ptr %t112 %t114 = icmp ult i32 1, %t113 br i1 %t114, label %ixok19, label %ixbad20 ixbad20: %t115 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t115, ptr @.fmt_bounds, ptr @.str4941, i32 1, i32 %t113) call void @exit(i32 1) unreachable ixok19: %t116 = getelementptr inbounds ptr, ptr %t111, i32 1 %t117 = load ptr, ptr %t116 %t118 = call ptr @fn_emit_expr(ptr %t117) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t1 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 7 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 %t126 = load i32, ptr %t125 %t127 = icmp ult i32 2, %t126 br i1 %t127, label %ixok21, label %ixbad22 ixbad22: %t128 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t128, ptr @.fmt_bounds, ptr @.str4942, i32 2, i32 %t126) call void @exit(i32 1) unreachable ixok21: %t129 = getelementptr inbounds ptr, ptr %t124, i32 2 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_emit_expr(ptr %t130) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t106 %t134 = getelementptr inbounds %Cmp_Val, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 %t136 = call ptr @lp_str_concat(ptr @.str4943, ptr %t135) %t137 = call ptr @lp_str_concat(ptr %t136, ptr @.str4944) %t138 = load ptr, ptr %t119 %t139 = getelementptr inbounds %Cmp_Val, ptr %t138, i32 0, i32 0 %t140 = load ptr, ptr %t139 %t141 = call ptr @lp_str_concat(ptr %t137, ptr %t140) %t142 = call ptr @lp_str_concat(ptr %t141, ptr @.str4945) %t143 = load ptr, ptr %t132 %t144 = getelementptr inbounds %Cmp_Val, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = call ptr @lp_str_concat(ptr %t142, ptr %t145) %t147 = call ptr @lp_str_concat(ptr %t146, ptr @.str4946) %t148 = call ptr @fn_emit_bind(ptr %t147) %t149 = call ptr @fn_val(ptr %t148, ptr @.str4947) store ptr %t149, ptr %retval br label %ret ifend16: %t150 = load ptr, ptr %t0 %t151 = call i32 @lp_str_eq(ptr %t150, ptr @.str4948) %t152 = icmp ne i32 %t151, 0 br i1 %t152, label %then23, label %ifend25 then23: %t153 = load ptr, ptr %t1 call void @fn_noise_arity(ptr %t153, ptr @.str4949, i32 3) %t154 = load ptr, ptr %t1 %t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 7 %t156 = load ptr, ptr %t155 %t157 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 0 %t158 = load ptr, ptr %t157 %t159 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 1 %t160 = load i32, ptr %t159 %t161 = icmp ult i32 0, %t160 br i1 %t161, label %ixok26, label %ixbad27 ixbad27: %t162 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t162, ptr @.fmt_bounds, ptr @.str4950, i32 0, i32 %t160) call void @exit(i32 1) unreachable ixok26: %t163 = getelementptr inbounds ptr, ptr %t158, i32 0 %t164 = load ptr, ptr %t163 %t165 = call ptr @fn_emit_expr(ptr %t164) store ptr %t165, ptr %t166 %t167 = load ptr, ptr %t1 %t168 = getelementptr inbounds %Cmp_Node, ptr %t167, i32 0, i32 7 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 0 %t171 = load ptr, ptr %t170 %t172 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 1 %t173 = load i32, ptr %t172 %t174 = icmp ult i32 1, %t173 br i1 %t174, label %ixok28, label %ixbad29 ixbad29: %t175 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t175, ptr @.fmt_bounds, ptr @.str4951, i32 1, i32 %t173) call void @exit(i32 1) unreachable ixok28: %t176 = getelementptr inbounds ptr, ptr %t171, i32 1 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_emit_expr(ptr %t177) store ptr %t178, ptr %t179 %t180 = load ptr, ptr %t1 %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 7 %t182 = load ptr, ptr %t181 %t183 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 0 %t184 = load ptr, ptr %t183 %t185 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 1 %t186 = load i32, ptr %t185 %t187 = icmp ult i32 2, %t186 br i1 %t187, label %ixok30, label %ixbad31 ixbad31: %t188 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t188, ptr @.fmt_bounds, ptr @.str4952, i32 2, i32 %t186) call void @exit(i32 1) unreachable ixok30: %t189 = getelementptr inbounds ptr, ptr %t184, i32 2 %t190 = load ptr, ptr %t189 %t191 = call ptr @fn_emit_expr(ptr %t190) store ptr %t191, ptr %t192 %t193 = load ptr, ptr %t166 %t194 = getelementptr inbounds %Cmp_Val, ptr %t193, i32 0, i32 0 %t195 = load ptr, ptr %t194 %t196 = call ptr @lp_str_concat(ptr @.str4953, ptr %t195) %t197 = call ptr @lp_str_concat(ptr %t196, ptr @.str4954) %t198 = load ptr, ptr %t179 %t199 = getelementptr inbounds %Cmp_Val, ptr %t198, i32 0, i32 0 %t200 = load ptr, ptr %t199 %t201 = call ptr @lp_str_concat(ptr %t197, ptr %t200) %t202 = call ptr @lp_str_concat(ptr %t201, ptr @.str4955) %t203 = load ptr, ptr %t192 %t204 = getelementptr inbounds %Cmp_Val, ptr %t203, i32 0, i32 0 %t205 = load ptr, ptr %t204 %t206 = call ptr @lp_str_concat(ptr %t202, ptr %t205) %t207 = call ptr @lp_str_concat(ptr %t206, ptr @.str4956) %t208 = call ptr @fn_emit_bind(ptr %t207) %t209 = call ptr @fn_val(ptr %t208, ptr @.str4957) store ptr %t209, ptr %retval br label %ret ifend25: %t210 = load ptr, ptr %t0 %t211 = call i32 @lp_str_eq(ptr %t210, ptr @.str4958) %t212 = icmp ne i32 %t211, 0 br i1 %t212, label %then32, label %ifend34 then32: %t213 = load ptr, ptr %t1 call void @fn_noise_arity(ptr %t213, ptr @.str4959, i32 4) store i32 1, ptr @g_g_uses_mathrt %t214 = load ptr, ptr %t1 %t215 = getelementptr inbounds %Cmp_Node, ptr %t214, i32 0, i32 7 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 0 %t218 = load ptr, ptr %t217 %t219 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 1 %t220 = load i32, ptr %t219 %t221 = icmp ult i32 0, %t220 br i1 %t221, label %ixok35, label %ixbad36 ixbad36: %t222 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t222, ptr @.fmt_bounds, ptr @.str4960, i32 0, i32 %t220) call void @exit(i32 1) unreachable ixok35: %t223 = getelementptr inbounds ptr, ptr %t218, i32 0 %t224 = load ptr, ptr %t223 %t225 = call ptr @fn_emit_expr(ptr %t224) store ptr %t225, ptr %t226 %t227 = load ptr, ptr %t1 %t228 = getelementptr inbounds %Cmp_Node, ptr %t227, i32 0, i32 7 %t229 = load ptr, ptr %t228 %t230 = getelementptr inbounds %LSlice, ptr %t229, i32 0, i32 0 %t231 = load ptr, ptr %t230 %t232 = getelementptr inbounds %LSlice, ptr %t229, i32 0, i32 1 %t233 = load i32, ptr %t232 %t234 = icmp ult i32 1, %t233 br i1 %t234, label %ixok37, label %ixbad38 ixbad38: %t235 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t235, ptr @.fmt_bounds, ptr @.str4961, i32 1, i32 %t233) call void @exit(i32 1) unreachable ixok37: %t236 = getelementptr inbounds ptr, ptr %t231, i32 1 %t237 = load ptr, ptr %t236 %t238 = call ptr @fn_emit_expr(ptr %t237) store ptr %t238, ptr %t239 %t240 = load ptr, ptr %t1 %t241 = getelementptr inbounds %Cmp_Node, ptr %t240, i32 0, i32 7 %t242 = load ptr, ptr %t241 %t243 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 0 %t244 = load ptr, ptr %t243 %t245 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 1 %t246 = load i32, ptr %t245 %t247 = icmp ult i32 2, %t246 br i1 %t247, label %ixok39, label %ixbad40 ixbad40: %t248 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t248, ptr @.fmt_bounds, ptr @.str4962, i32 2, i32 %t246) call void @exit(i32 1) unreachable ixok39: %t249 = getelementptr inbounds ptr, ptr %t244, i32 2 %t250 = load ptr, ptr %t249 %t251 = call ptr @fn_emit_expr(ptr %t250) store ptr %t251, ptr %t252 %t253 = load ptr, ptr %t1 %t254 = getelementptr inbounds %Cmp_Node, ptr %t253, i32 0, i32 7 %t255 = load ptr, ptr %t254 %t256 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 0 %t257 = load ptr, ptr %t256 %t258 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 1 %t259 = load i32, ptr %t258 %t260 = icmp ult i32 3, %t259 br i1 %t260, label %ixok41, label %ixbad42 ixbad42: %t261 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t261, ptr @.fmt_bounds, ptr @.str4963, i32 3, i32 %t259) call void @exit(i32 1) unreachable ixok41: %t262 = getelementptr inbounds ptr, ptr %t257, i32 3 %t263 = load ptr, ptr %t262 %t264 = call ptr @fn_emit_expr(ptr %t263) store ptr %t264, ptr %t265 %t266 = load ptr, ptr %t226 %t267 = getelementptr inbounds %Cmp_Val, ptr %t266, i32 0, i32 0 %t268 = load ptr, ptr %t267 %t269 = call ptr @lp_str_concat(ptr @.str4964, ptr %t268) %t270 = call ptr @lp_str_concat(ptr %t269, ptr @.str4965) %t271 = load ptr, ptr %t239 %t272 = getelementptr inbounds %Cmp_Val, ptr %t271, i32 0, i32 0 %t273 = load ptr, ptr %t272 %t274 = call ptr @lp_str_concat(ptr %t270, ptr %t273) %t275 = call ptr @lp_str_concat(ptr %t274, ptr @.str4966) %t276 = load ptr, ptr %t252 %t277 = getelementptr inbounds %Cmp_Val, ptr %t276, i32 0, i32 0 %t278 = load ptr, ptr %t277 %t279 = call ptr @lp_str_concat(ptr %t275, ptr %t278) %t280 = call ptr @lp_str_concat(ptr %t279, ptr @.str4967) %t281 = load ptr, ptr %t265 %t282 = getelementptr inbounds %Cmp_Val, ptr %t281, i32 0, i32 0 %t283 = load ptr, ptr %t282 %t284 = call ptr @lp_str_concat(ptr %t280, ptr %t283) %t285 = call ptr @lp_str_concat(ptr %t284, ptr @.str4968) %t286 = call ptr @fn_emit_bind(ptr %t285) %t287 = call ptr @fn_val(ptr %t286, ptr @.str4969) store ptr %t287, ptr %retval br label %ret ifend34: %t288 = load ptr, ptr %t0 %t289 = call i32 @lp_str_eq(ptr %t288, ptr @.str4970) %t290 = icmp ne i32 %t289, 0 br i1 %t290, label %then43, label %ifend45 then43: %t291 = load ptr, ptr %t1 call void @fn_noise_arity(ptr %t291, ptr @.str4971, i32 3) store i32 1, ptr @g_g_uses_mathrt %t292 = load ptr, ptr %t1 %t293 = getelementptr inbounds %Cmp_Node, ptr %t292, i32 0, i32 7 %t294 = load ptr, ptr %t293 %t295 = getelementptr inbounds %LSlice, ptr %t294, i32 0, i32 0 %t296 = load ptr, ptr %t295 %t297 = getelementptr inbounds %LSlice, ptr %t294, i32 0, i32 1 %t298 = load i32, ptr %t297 %t299 = icmp ult i32 0, %t298 br i1 %t299, label %ixok46, label %ixbad47 ixbad47: %t300 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t300, ptr @.fmt_bounds, ptr @.str4972, i32 0, i32 %t298) call void @exit(i32 1) unreachable ixok46: %t301 = getelementptr inbounds ptr, ptr %t296, i32 0 %t302 = load ptr, ptr %t301 %t303 = call ptr @fn_emit_expr(ptr %t302) store ptr %t303, ptr %t304 %t305 = load ptr, ptr %t1 %t306 = getelementptr inbounds %Cmp_Node, ptr %t305, i32 0, i32 7 %t307 = load ptr, ptr %t306 %t308 = getelementptr inbounds %LSlice, ptr %t307, i32 0, i32 0 %t309 = load ptr, ptr %t308 %t310 = getelementptr inbounds %LSlice, ptr %t307, i32 0, i32 1 %t311 = load i32, ptr %t310 %t312 = icmp ult i32 1, %t311 br i1 %t312, label %ixok48, label %ixbad49 ixbad49: %t313 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t313, ptr @.fmt_bounds, ptr @.str4973, i32 1, i32 %t311) call void @exit(i32 1) unreachable ixok48: %t314 = getelementptr inbounds ptr, ptr %t309, i32 1 %t315 = load ptr, ptr %t314 %t316 = call ptr @fn_emit_expr(ptr %t315) store ptr %t316, ptr %t317 %t318 = load ptr, ptr %t1 %t319 = getelementptr inbounds %Cmp_Node, ptr %t318, i32 0, i32 7 %t320 = load ptr, ptr %t319 %t321 = getelementptr inbounds %LSlice, ptr %t320, i32 0, i32 0 %t322 = load ptr, ptr %t321 %t323 = getelementptr inbounds %LSlice, ptr %t320, i32 0, i32 1 %t324 = load i32, ptr %t323 %t325 = icmp ult i32 2, %t324 br i1 %t325, label %ixok50, label %ixbad51 ixbad51: %t326 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t326, ptr @.fmt_bounds, ptr @.str4974, i32 2, i32 %t324) call void @exit(i32 1) unreachable ixok50: %t327 = getelementptr inbounds ptr, ptr %t322, i32 2 %t328 = load ptr, ptr %t327 %t329 = call ptr @fn_emit_expr(ptr %t328) store ptr %t329, ptr %t330 %t331 = load ptr, ptr %t304 %t332 = getelementptr inbounds %Cmp_Val, ptr %t331, i32 0, i32 0 %t333 = load ptr, ptr %t332 %t334 = call ptr @lp_str_concat(ptr @.str4975, ptr %t333) %t335 = call ptr @lp_str_concat(ptr %t334, ptr @.str4976) %t336 = load ptr, ptr %t317 %t337 = getelementptr inbounds %Cmp_Val, ptr %t336, i32 0, i32 0 %t338 = load ptr, ptr %t337 %t339 = call ptr @lp_str_concat(ptr %t335, ptr %t338) %t340 = call ptr @lp_str_concat(ptr %t339, ptr @.str4977) %t341 = load ptr, ptr %t330 %t342 = getelementptr inbounds %Cmp_Val, ptr %t341, i32 0, i32 0 %t343 = load ptr, ptr %t342 %t344 = call ptr @lp_str_concat(ptr %t340, ptr %t343) %t345 = call ptr @lp_str_concat(ptr %t344, ptr @.str4978) %t346 = call ptr @fn_emit_bind(ptr %t345) %t347 = call ptr @fn_val(ptr %t346, ptr @.str4979) store ptr %t347, ptr %retval br label %ret ifend45: %t348 = load ptr, ptr %t1 %t349 = getelementptr inbounds %Cmp_Node, ptr %t348, i32 0, i32 7 %t350 = load ptr, ptr %t349 %t351 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 0 %t352 = load ptr, ptr %t351 %t353 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 1 %t354 = load i32, ptr %t353 %t355 = icmp ult i32 0, %t354 br i1 %t355, label %ixok52, label %ixbad53 ixbad53: %t356 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t356, ptr @.fmt_bounds, ptr @.str4980, i32 0, i32 %t354) call void @exit(i32 1) unreachable ixok52: %t357 = getelementptr inbounds ptr, ptr %t352, i32 0 %t358 = load ptr, ptr %t357 %t359 = call ptr @fn_emit_expr(ptr %t358) store ptr %t359, ptr %t360 %t361 = load ptr, ptr %t1 %t362 = getelementptr inbounds %Cmp_Node, ptr %t361, i32 0, i32 7 %t363 = load ptr, ptr %t362 %t364 = getelementptr inbounds %LSlice, ptr %t363, i32 0, i32 0 %t365 = load ptr, ptr %t364 %t366 = getelementptr inbounds %LSlice, ptr %t363, i32 0, i32 1 %t367 = load i32, ptr %t366 %t368 = icmp ult i32 1, %t367 br i1 %t368, label %ixok54, label %ixbad55 ixbad55: %t369 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t369, ptr @.fmt_bounds, ptr @.str4981, i32 1, i32 %t367) call void @exit(i32 1) unreachable ixok54: %t370 = getelementptr inbounds ptr, ptr %t365, i32 1 %t371 = load ptr, ptr %t370 %t372 = call ptr @fn_emit_expr(ptr %t371) store ptr %t372, ptr %t373 %t374 = load ptr, ptr %t1 %t375 = getelementptr inbounds %Cmp_Node, ptr %t374, i32 0, i32 7 %t376 = load ptr, ptr %t375 %t377 = getelementptr inbounds %LSlice, ptr %t376, i32 0, i32 0 %t378 = load ptr, ptr %t377 %t379 = getelementptr inbounds %LSlice, ptr %t376, i32 0, i32 1 %t380 = load i32, ptr %t379 %t381 = icmp ult i32 2, %t380 br i1 %t381, label %ixok56, label %ixbad57 ixbad57: %t382 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t382, ptr @.fmt_bounds, ptr @.str4982, i32 2, i32 %t380) call void @exit(i32 1) unreachable ixok56: %t383 = getelementptr inbounds ptr, ptr %t378, i32 2 %t384 = load ptr, ptr %t383 %t385 = call ptr @fn_emit_expr(ptr %t384) store ptr %t385, ptr %t386 %t387 = load ptr, ptr %t360 %t388 = getelementptr inbounds %Cmp_Val, ptr %t387, i32 0, i32 0 %t389 = load ptr, ptr %t388 %t390 = call ptr @lp_str_concat(ptr @.str4983, ptr %t389) %t391 = call ptr @lp_str_concat(ptr %t390, ptr @.str4984) %t392 = load ptr, ptr %t373 %t393 = getelementptr inbounds %Cmp_Val, ptr %t392, i32 0, i32 0 %t394 = load ptr, ptr %t393 %t395 = call ptr @lp_str_concat(ptr %t391, ptr %t394) %t396 = call ptr @lp_str_concat(ptr %t395, ptr @.str4985) %t397 = load ptr, ptr %t386 %t398 = getelementptr inbounds %Cmp_Val, ptr %t397, i32 0, i32 0 %t399 = load ptr, ptr %t398 %t400 = call ptr @lp_str_concat(ptr %t396, ptr %t399) %t401 = call ptr @lp_str_concat(ptr %t400, ptr @.str4986) %t402 = call ptr @fn_emit_bind(ptr %t401) %t403 = call ptr @fn_val(ptr %t402, ptr @.str4987) store ptr %t403, ptr %retval br label %ret ret: %t404 = load ptr, ptr %retval ret ptr %t404 } define void @fn_emit_noise_prelude() { entry: call void @fn_emith(ptr @.str4988) call void @fn_emith(ptr @.str4989) call void @fn_emith(ptr @.str4990) call void @fn_emith(ptr @.str4991) call void @fn_emith(ptr @.str4992) call void @fn_emith(ptr @.str4993) call void @fn_emith(ptr @.str4994) call void @fn_emith(ptr @.str4995) call void @fn_emith(ptr @.str4996) call void @fn_emith(ptr @.str4997) call void @fn_emith(ptr @.str4998) call void @fn_emith(ptr @.str4999) call void @fn_emith(ptr @.str5000) call void @fn_emith(ptr @.str5001) call void @fn_emith(ptr @.str5002) call void @fn_emith(ptr @.str5003) call void @fn_emith(ptr @.str5004) call void @fn_emith(ptr @.str5005) call void @fn_emith(ptr @.str5006) call void @fn_emith(ptr @.str5007) call void @fn_emith(ptr @.str5008) call void @fn_emith(ptr @.str5009) call void @fn_emith(ptr @.str5010) call void @fn_emith(ptr @.str5011) call void @fn_emith(ptr @.str5012) call void @fn_emith(ptr @.str5013) call void @fn_emith(ptr @.str5014) call void @fn_emith(ptr @.str5015) call void @fn_emith(ptr @.str5016) call void @fn_emith(ptr @.str5017) call void @fn_emith(ptr @.str5018) call void @fn_emith(ptr @.str5019) call void @fn_emith(ptr @.str5020) call void @fn_emith(ptr @.str5021) call void @fn_emith(ptr @.str5022) call void @fn_emith(ptr @.str5023) call void @fn_emith(ptr @.str5024) call void @fn_emith(ptr @.str5025) call void @fn_emith(ptr @.str5026) call void @fn_emith(ptr @.str5027) call void @fn_emith(ptr @.str5028) call void @fn_emith(ptr @.str5029) call void @fn_emith(ptr @.str5030) call void @fn_emith(ptr @.str5031) call void @fn_emith(ptr @.str5032) call void @fn_emith(ptr @.str5033) call void @fn_emith(ptr @.str5034) call void @fn_emith(ptr @.str5035) call void @fn_emith(ptr @.str5036) call void @fn_emith(ptr @.str5037) call void @fn_emith(ptr @.str5038) call void @fn_emith(ptr @.str5039) call void @fn_emith(ptr @.str5040) call void @fn_emith(ptr @.str5041) call void @fn_emith(ptr @.str5042) call void @fn_emith(ptr @.str5043) call void @fn_emith(ptr @.str5044) call void @fn_emith(ptr @.str5045) call void @fn_emith(ptr @.str5046) call void @fn_emith(ptr @.str5047) call void @fn_emith(ptr @.str5048) call void @fn_emith(ptr @.str5049) call void @fn_emith(ptr @.str5050) call void @fn_emith(ptr @.str5051) call void @fn_emith(ptr @.str5052) call void @fn_emith(ptr @.str5053) call void @fn_emith(ptr @.str5054) call void @fn_emith(ptr @.str5055) call void @fn_emith(ptr @.str5056) call void @fn_emith(ptr @.str5057) call void @fn_emith(ptr @.str5058) call void @fn_emith(ptr @.str5059) call void @fn_emith(ptr @.str5060) call void @fn_emith(ptr @.str5061) call void @fn_emith(ptr @.str5062) call void @fn_emith(ptr @.str5063) call void @fn_emith(ptr @.str5064) call void @fn_emith(ptr @.str5065) call void @fn_emith(ptr @.str5066) call void @fn_emith(ptr @.str5067) call void @fn_emith(ptr @.str5068) call void @fn_emith(ptr @.str5069) call void @fn_emith(ptr @.str5070) call void @fn_emith(ptr @.str5071) call void @fn_emit_noise_cellular() br label %ret ret: ret void } define void @fn_emit_noise_cellular() { entry: call void @fn_emith(ptr @.str5072) call void @fn_emith(ptr @.str5073) call void @fn_emith(ptr @.str5074) call void @fn_emith(ptr @.str5075) call void @fn_emith(ptr @.str5076) call void @fn_emith(ptr @.str5077) call void @fn_emith(ptr @.str5078) call void @fn_emith(ptr @.str5079) call void @fn_emith(ptr @.str5080) call void @fn_emith(ptr @.str5081) call void @fn_emith(ptr @.str5082) call void @fn_emith(ptr @.str5083) call void @fn_emith(ptr @.str5084) call void @fn_emith(ptr @.str5085) call void @fn_emith(ptr @.str5086) call void @fn_emith(ptr @.str5087) call void @fn_emith(ptr @.str5088) call void @fn_emith(ptr @.str5089) call void @fn_emith(ptr @.str5090) call void @fn_emith(ptr @.str5091) call void @fn_emith(ptr @.str5092) call void @fn_emith(ptr @.str5093) call void @fn_emith(ptr @.str5094) call void @fn_emith(ptr @.str5095) br label %ret ret: ret void } define void @fn_noise_arity(ptr %arg_e, ptr %arg_meth, i32 %arg_n) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_meth, ptr %t1 store i32 %arg_n, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = load i32, ptr %t2 %t9 = icmp ne i32 %t7, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: %t12 = load ptr, ptr %t1 %t13 = call ptr @lp_str_concat(ptr @.str5096, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str5097) %t15 = load i32, ptr %t2 %t16 = call ptr @fn_itoa(i32 %t15) %t17 = call ptr @lp_str_concat(ptr %t14, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str5098) %t19 = load i32, ptr %t2 %t20 = call ptr @fn_noise_arity_more(i32 %t19) %t21 = call ptr @lp_str_concat(ptr %t18, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str5099) %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 7 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = call ptr @fn_itoa(i32 %t27) %t29 = call ptr @lp_str_concat(ptr %t22, ptr %t28) call void @fn_perr(ptr %t29) br label %ifend2 ifend2: br label %ret ret: ret void } define ptr @fn_noise_arity_more(i32 %arg_n) { entry: %retval = alloca ptr %t0 = alloca i32 store i32 %arg_n, ptr %t0 %t1 = load i32, ptr %t0 %t2 = icmp eq i32 %t1, 4 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store ptr @.str5100, ptr %retval br label %ret ifend2: store ptr @.str5101, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define i32 @fn_is_log_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t31 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str5102) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str5103) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str5104) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t21, ptr @.str5105) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t20 br i1 %t23, label %scend8, label %sc7 sc7: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str5106) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t20 br label %scend8 scend8: %t29 = load i32, ptr %t20 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t32 = load ptr, ptr %t0 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str5107) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t31 br i1 %t34, label %scend13, label %sc12 sc12: %t36 = load ptr, ptr %t0 %t37 = call i32 @lp_str_eq(ptr %t36, ptr @.str5108) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t31 br label %scend13 scend13: %t40 = load i32, ptr %t31 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then14, label %ifend16 then14: store i32 1, ptr %retval br label %ret ifend16: store i32 0, ptr %retval br label %ret ret: %t42 = load i32, ptr %retval ret i32 %t42 } define ptr @fn_log_stringify(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_llty(ptr %t3) %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str5109) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Val, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_llty(ptr %t12) %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str5110) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: store i32 1, ptr @g_g_uses_longstr %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Val, ptr %t16, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = call ptr @lp_str_concat(ptr @.str5111, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str5112) %t21 = call ptr @fn_emit_bind(ptr %t20) store ptr %t21, ptr %retval br label %ret ifend5: store i32 1, ptr @g_g_uses_intstr %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Val, ptr %t22, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = call ptr @lp_str_concat(ptr @.str5113, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str5114) %t27 = call ptr @fn_emit_bind(ptr %t26) store ptr %t27, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } define ptr @fn_emit_log_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t29 = alloca ptr %t30 = alloca ptr %t46 = alloca ptr %t59 = alloca ptr %t65 = alloca i32 %t89 = alloca ptr %t104 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_uses_logrt %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str5115) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str5116, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str5117, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str5118) call void @fn_emit(ptr %t22) %t23 = call ptr @fn_val(ptr @.str5119, ptr @.str5120) store ptr %t23, ptr %retval br label %ret ifend2: %t24 = load ptr, ptr %t0 %t25 = call i32 @lp_str_eq(ptr %t24, ptr @.str5121) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then5, label %ifend7 then5: %t27 = call ptr @fn_emit_bind(ptr @.str5122) %t28 = call ptr @fn_val(ptr %t27, ptr @.str5123) store ptr %t28, ptr %retval br label %ret ifend7: store ptr @.str5124, ptr %t29 store ptr @.str5125, ptr %t30 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str5126) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then8, label %ifend10 then8: store ptr @.str5127, ptr %t29 store ptr @.str5128, ptr %t30 br label %ifend10 ifend10: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str5129) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then11, label %ifend13 then11: store ptr @.str5130, ptr %t29 store ptr @.str5131, ptr %t30 br label %ifend13 ifend13: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str5132) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then14, label %ifend16 then14: store ptr @.str5133, ptr %t29 store ptr @.str5134, ptr %t30 br label %ifend16 ifend16: %t40 = load ptr, ptr %t0 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str5135) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then17, label %ifend19 then17: store ptr @.str5136, ptr %t29 store ptr @.str5137, ptr %t30 br label %ifend19 ifend19: store i32 1, ptr @g_g_uses_str %t43 = load ptr, ptr %t30 %t44 = call ptr @fn_emit_str_const(ptr %t43) %t45 = call ptr @fn_val(ptr %t44, ptr @.str5138) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t1 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 7 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = icmp ult i32 0, %t53 br i1 %t54, label %ixok20, label %ixbad21 ixbad21: %t55 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t55, ptr @.fmt_bounds, ptr @.str5139, i32 0, i32 %t53) call void @exit(i32 1) unreachable ixok20: %t56 = getelementptr inbounds ptr, ptr %t51, i32 0 %t57 = load ptr, ptr %t56 %t58 = call ptr @fn_emit_expr(ptr %t57) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t46 %t61 = load ptr, ptr %t59 %t62 = call ptr @fn_log_stringify(ptr %t61) %t63 = call ptr @fn_val(ptr %t62, ptr @.str5141) %t64 = call ptr @fn_emit_str_op(ptr @.str5140, ptr %t60, ptr %t63) store ptr %t64, ptr %t46 store i32 1, ptr %t65 br label %wcond22 wcond22: %t66 = load i32, ptr %t65 %t67 = add i32 %t66, 1 %t68 = load ptr, ptr %t1 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 7 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 1 %t72 = load i32, ptr %t71 %t73 = icmp slt i32 %t67, %t72 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %wbody23, label %wend24 wbody23: %t76 = load ptr, ptr %t1 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 7 %t78 = load ptr, ptr %t77 %t79 = load i32, ptr %t65 %t80 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t83 = load i32, ptr %t82 %t84 = icmp ult i32 %t79, %t83 br i1 %t84, label %ixok25, label %ixbad26 ixbad26: %t85 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t85, ptr @.fmt_bounds, ptr @.str5142, i32 %t79, i32 %t83) call void @exit(i32 1) unreachable ixok25: %t86 = getelementptr inbounds ptr, ptr %t81, i32 %t79 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_emit_expr(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t1 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 7 %t92 = load ptr, ptr %t91 %t93 = load i32, ptr %t65 %t94 = add i32 %t93, 1 %t95 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp ult i32 %t94, %t98 br i1 %t99, label %ixok27, label %ixbad28 ixbad28: %t100 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t100, ptr @.fmt_bounds, ptr @.str5143, i32 %t94, i32 %t98) call void @exit(i32 1) unreachable ixok27: %t101 = getelementptr inbounds ptr, ptr %t96, i32 %t94 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_emit_expr(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t46 %t106 = call ptr @fn_emit_str_const(ptr @.str5145) %t107 = call ptr @fn_val(ptr %t106, ptr @.str5146) %t108 = call ptr @fn_emit_str_op(ptr @.str5144, ptr %t105, ptr %t107) store ptr %t108, ptr %t46 %t109 = load ptr, ptr %t46 %t110 = load ptr, ptr %t89 %t111 = call ptr @fn_log_stringify(ptr %t110) %t112 = call ptr @fn_val(ptr %t111, ptr @.str5148) %t113 = call ptr @fn_emit_str_op(ptr @.str5147, ptr %t109, ptr %t112) store ptr %t113, ptr %t46 %t114 = load ptr, ptr %t46 %t115 = call ptr @fn_emit_str_const(ptr @.str5150) %t116 = call ptr @fn_val(ptr %t115, ptr @.str5151) %t117 = call ptr @fn_emit_str_op(ptr @.str5149, ptr %t114, ptr %t116) store ptr %t117, ptr %t46 %t118 = load ptr, ptr %t46 %t119 = load ptr, ptr %t104 %t120 = call ptr @fn_log_stringify(ptr %t119) %t121 = call ptr @fn_val(ptr %t120, ptr @.str5153) %t122 = call ptr @fn_emit_str_op(ptr @.str5152, ptr %t118, ptr %t121) store ptr %t122, ptr %t46 %t123 = load i32, ptr %t65 %t124 = add i32 %t123, 2 store i32 %t124, ptr %t65 br label %wcond22 wend24: %t125 = load ptr, ptr %t29 %t126 = call ptr @lp_str_concat(ptr @.str5154, ptr %t125) %t127 = call ptr @lp_str_concat(ptr %t126, ptr @.str5155) %t128 = load ptr, ptr %t46 %t129 = getelementptr inbounds %Cmp_Val, ptr %t128, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @lp_str_concat(ptr %t127, ptr %t130) %t132 = call ptr @lp_str_concat(ptr %t131, ptr @.str5156) call void @fn_emit(ptr %t132) %t133 = call ptr @fn_val(ptr @.str5157, ptr @.str5158) store ptr %t133, ptr %retval br label %ret ret: %t134 = load ptr, ptr %retval ret ptr %t134 } define void @fn_emit_log_prelude() { entry: call void @fn_emith(ptr @.str5159) call void @fn_emith(ptr @.str5160) call void @fn_emith(ptr @.str5161) call void @fn_emith(ptr @.str5162) %t0 = call ptr @fn_stdstream_rhs(i32 2) %t1 = call ptr @lp_str_concat(ptr @.str5163, ptr %t0) %t2 = call ptr @lp_str_concat(ptr %t1, ptr @.str5164) call void @fn_emith(ptr %t2) call void @fn_emith(ptr @.str5165) call void @fn_emith(ptr @.str5166) br label %ret ret: ret void } define i32 @fn_is_os_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 %t39 = alloca i32 %t50 = alloca i32 %t51 = alloca i32 %t52 = alloca i32 %t77 = alloca i32 %t88 = alloca i32 %t89 = alloca i32 %t90 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str5167) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str5168) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str5169) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str5170) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t21 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str5171) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 br label %scend8 scend8: %t30 = load i32, ptr %t21 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t20 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str5172) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 br label %scend10 scend10: %t37 = load i32, ptr %t20 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: %t40 = load ptr, ptr %t0 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str5173) %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t39 br i1 %t42, label %scend15, label %sc14 sc14: %t44 = load ptr, ptr %t0 %t45 = call i32 @lp_str_eq(ptr %t44, ptr @.str5174) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t39 br label %scend15 scend15: %t48 = load i32, ptr %t39 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then16, label %ifend18 then16: store i32 1, ptr %retval br label %ret ifend18: %t53 = load ptr, ptr %t0 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str5175) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t52 br i1 %t55, label %scend20, label %sc19 sc19: %t57 = load ptr, ptr %t0 %t58 = call i32 @lp_str_eq(ptr %t57, ptr @.str5176) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t52 br label %scend20 scend20: %t61 = load i32, ptr %t52 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t51 br i1 %t62, label %scend22, label %sc21 sc21: %t64 = load ptr, ptr %t0 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str5177) %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t51 br label %scend22 scend22: %t68 = load i32, ptr %t51 %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t50 br i1 %t69, label %scend24, label %sc23 sc23: %t71 = load ptr, ptr %t0 %t72 = call i32 @lp_str_eq(ptr %t71, ptr @.str5178) %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t50 br label %scend24 scend24: %t75 = load i32, ptr %t50 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then25, label %ifend27 then25: store i32 1, ptr %retval br label %ret ifend27: %t78 = load ptr, ptr %t0 %t79 = call i32 @lp_str_eq(ptr %t78, ptr @.str5179) %t80 = icmp ne i32 %t79, 0 %t81 = zext i1 %t80 to i32 store i32 %t81, ptr %t77 br i1 %t80, label %scend29, label %sc28 sc28: %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t82, ptr @.str5180) %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t77 br label %scend29 scend29: %t86 = load i32, ptr %t77 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then30, label %ifend32 then30: store i32 1, ptr %retval br label %ret ifend32: %t91 = load ptr, ptr %t0 %t92 = call i32 @lp_str_eq(ptr %t91, ptr @.str5181) %t93 = icmp ne i32 %t92, 0 %t94 = zext i1 %t93 to i32 store i32 %t94, ptr %t90 br i1 %t93, label %scend34, label %sc33 sc33: %t95 = load ptr, ptr %t0 %t96 = call i32 @lp_str_eq(ptr %t95, ptr @.str5182) %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t90 br label %scend34 scend34: %t99 = load i32, ptr %t90 %t100 = icmp ne i32 %t99, 0 %t101 = zext i1 %t100 to i32 store i32 %t101, ptr %t89 br i1 %t100, label %scend36, label %sc35 sc35: %t102 = load ptr, ptr %t0 %t103 = call i32 @lp_str_eq(ptr %t102, ptr @.str5183) %t104 = icmp ne i32 %t103, 0 %t105 = zext i1 %t104 to i32 store i32 %t105, ptr %t89 br label %scend36 scend36: %t106 = load i32, ptr %t89 %t107 = icmp ne i32 %t106, 0 %t108 = zext i1 %t107 to i32 store i32 %t108, ptr %t88 br i1 %t107, label %scend38, label %sc37 sc37: %t109 = load ptr, ptr %t0 %t110 = call i32 @lp_str_eq(ptr %t109, ptr @.str5184) %t111 = icmp ne i32 %t110, 0 %t112 = zext i1 %t111 to i32 store i32 %t112, ptr %t88 br label %scend38 scend38: %t113 = load i32, ptr %t88 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then39, label %ifend41 then39: store i32 1, ptr %retval br label %ret ifend41: store i32 0, ptr %retval br label %ret ret: %t115 = load i32, ptr %retval ret i32 %t115 } define ptr @fn_emit_os_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t22 = alloca ptr %t24 = alloca ptr %t33 = alloca ptr %t58 = alloca ptr %t80 = alloca ptr %t103 = alloca ptr %t110 = alloca ptr %t115 = alloca ptr %t121 = alloca i32 %t132 = alloca i32 %t148 = alloca ptr %t152 = alloca ptr %t159 = alloca ptr %t192 = alloca ptr %t205 = alloca ptr %t233 = alloca ptr %t246 = alloca ptr %t258 = alloca ptr %t263 = alloca ptr %t284 = alloca ptr %t291 = alloca ptr %t296 = alloca ptr %t327 = alloca ptr %t350 = alloca ptr %t373 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str5185) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_emit_bind(ptr @.str5186) %t6 = call ptr @fn_val(ptr %t5, ptr @.str5187) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str5188) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: %t10 = load ptr, ptr %t1 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 0, %t16 br i1 %t17, label %ixok6, label %ixbad7 ixbad7: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str5189, i32 0, i32 %t16) call void @exit(i32 1) unreachable ixok6: %t19 = getelementptr inbounds ptr, ptr %t14, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_emit_expr(ptr %t20) store ptr %t21, ptr %t22 %t23 = call ptr @fn_emit_bind(ptr @.str5190) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str5191, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str5192) %t28 = load ptr, ptr %t22 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr %t27, ptr %t30) %t32 = call ptr @fn_emit_bind(ptr %t31) store ptr %t32, ptr %t33 %t34 = load ptr, ptr %t33 %t35 = call ptr @lp_str_concat(ptr @.str5193, ptr %t34) %t36 = call ptr @fn_emit_bind(ptr %t35) %t37 = call ptr @fn_val(ptr %t36, ptr @.str5194) store ptr %t37, ptr %retval br label %ret ifend5: %t38 = load ptr, ptr %t0 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str5195) %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then8, label %ifend10 then8: store i32 1, ptr @g_g_uses_pid %t41 = call ptr @fn_emit_bind(ptr @.str5196) %t42 = call ptr @fn_val(ptr %t41, ptr @.str5197) store ptr %t42, ptr %retval br label %ret ifend10: %t43 = load ptr, ptr %t0 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str5198) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then11, label %ifend13 then11: %t46 = load ptr, ptr %t1 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 7 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp ult i32 0, %t52 br i1 %t53, label %ixok14, label %ixbad15 ixbad15: %t54 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t54, ptr @.fmt_bounds, ptr @.str5199, i32 0, i32 %t52) call void @exit(i32 1) unreachable ixok14: %t55 = getelementptr inbounds ptr, ptr %t50, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_emit_expr(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @lp_str_concat(ptr @.str5200, ptr %t61) %t63 = call ptr @lp_str_concat(ptr %t62, ptr @.str5201) call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str5202) store i32 1, ptr @g_g_term %t64 = call ptr @fn_val(ptr @.str5203, ptr @.str5204) store ptr %t64, ptr %retval br label %ret ifend13: %t65 = load ptr, ptr %t0 %t66 = call i32 @lp_str_eq(ptr %t65, ptr @.str5205) %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then16, label %ifend18 then16: %t68 = load ptr, ptr %t1 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 7 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 0 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 1 %t74 = load i32, ptr %t73 %t75 = icmp ult i32 0, %t74 br i1 %t75, label %ixok19, label %ixbad20 ixbad20: %t76 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t76, ptr @.fmt_bounds, ptr @.str5206, i32 0, i32 %t74) call void @exit(i32 1) unreachable ixok19: %t77 = getelementptr inbounds ptr, ptr %t72, i32 0 %t78 = load ptr, ptr %t77 %t79 = call ptr @fn_emit_expr(ptr %t78) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %Cmp_Val, ptr %t81, i32 0, i32 0 %t83 = load ptr, ptr %t82 %t84 = call ptr @lp_str_concat(ptr @.str5207, ptr %t83) %t85 = call ptr @lp_str_concat(ptr %t84, ptr @.str5208) %t86 = call ptr @fn_emit_bind(ptr %t85) %t87 = call ptr @fn_val(ptr %t86, ptr @.str5209) store ptr %t87, ptr %retval br label %ret ifend18: %t88 = load ptr, ptr %t0 %t89 = call i32 @lp_str_eq(ptr %t88, ptr @.str5210) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then21, label %ifend23 then21: %t91 = load ptr, ptr %t1 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 7 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1 %t97 = load i32, ptr %t96 %t98 = icmp ult i32 0, %t97 br i1 %t98, label %ixok24, label %ixbad25 ixbad25: %t99 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t99, ptr @.fmt_bounds, ptr @.str5211, i32 0, i32 %t97) call void @exit(i32 1) unreachable ixok24: %t100 = getelementptr inbounds ptr, ptr %t95, i32 0 %t101 = load ptr, ptr %t100 %t102 = call ptr @fn_emit_expr(ptr %t101) store ptr %t102, ptr %t103 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %Cmp_Val, ptr %t104, i32 0, i32 0 %t106 = load ptr, ptr %t105 %t107 = call ptr @lp_str_concat(ptr @.str5212, ptr %t106) %t108 = call ptr @lp_str_concat(ptr %t107, ptr @.str5213) %t109 = call ptr @fn_emit_bind(ptr %t108) store ptr %t109, ptr %t110 %t111 = load ptr, ptr %t110 %t112 = call ptr @lp_str_concat(ptr @.str5214, ptr %t111) %t113 = call ptr @lp_str_concat(ptr %t112, ptr @.str5215) %t114 = call ptr @fn_emit_bind(ptr %t113) store ptr %t114, ptr %t115 %t116 = load ptr, ptr %t115 %t117 = call ptr @lp_str_concat(ptr @.str5216, ptr %t116) %t118 = call ptr @lp_str_concat(ptr %t117, ptr @.str5217) %t119 = call ptr @fn_emit_bind(ptr %t118) %t120 = call ptr @fn_val(ptr %t119, ptr @.str5218) store ptr %t120, ptr %retval br label %ret ifend23: %t122 = load ptr, ptr %t0 %t123 = call i32 @lp_str_eq(ptr %t122, ptr @.str5219) %t124 = icmp ne i32 %t123, 0 %t125 = zext i1 %t124 to i32 store i32 %t125, ptr %t121 br i1 %t124, label %scend27, label %sc26 sc26: %t126 = load ptr, ptr %t0 %t127 = call i32 @lp_str_eq(ptr %t126, ptr @.str5220) %t128 = icmp ne i32 %t127, 0 %t129 = zext i1 %t128 to i32 store i32 %t129, ptr %t121 br label %scend27 scend27: %t130 = load i32, ptr %t121 %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %then28, label %ifend30 then28: store i32 1, ptr %t132 %t133 = load ptr, ptr %t0 %t134 = call i32 @lp_str_eq(ptr %t133, ptr @.str5221) %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then31, label %ifend33 then31: store i32 2, ptr %t132 br label %ifend33 ifend33: %t136 = load ptr, ptr %t1 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 7 %t138 = load ptr, ptr %t137 %t139 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 0 %t140 = load ptr, ptr %t139 %t141 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 1 %t142 = load i32, ptr %t141 %t143 = icmp ult i32 0, %t142 br i1 %t143, label %ixok34, label %ixbad35 ixbad35: %t144 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t144, ptr @.fmt_bounds, ptr @.str5222, i32 0, i32 %t142) call void @exit(i32 1) unreachable ixok34: %t145 = getelementptr inbounds ptr, ptr %t140, i32 0 %t146 = load ptr, ptr %t145 %t147 = call ptr @fn_emit_expr(ptr %t146) store ptr %t147, ptr %t148 %t149 = load i32, ptr %t132 %t150 = call ptr @fn_stdstream_rhs(i32 %t149) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t148 %t154 = getelementptr inbounds %Cmp_Val, ptr %t153, i32 0, i32 0 %t155 = load ptr, ptr %t154 %t156 = call ptr @lp_str_concat(ptr @.str5223, ptr %t155) %t157 = call ptr @lp_str_concat(ptr %t156, ptr @.str5224) %t158 = call ptr @fn_emit_bind(ptr %t157) store ptr %t158, ptr %t159 %t160 = load ptr, ptr %t148 %t161 = getelementptr inbounds %Cmp_Val, ptr %t160, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = call ptr @lp_str_concat(ptr @.str5225, ptr %t162) %t164 = call ptr @lp_str_concat(ptr %t163, ptr @.str5226) %t165 = load ptr, ptr %t159 %t166 = call ptr @lp_str_concat(ptr %t164, ptr %t165) %t167 = call ptr @lp_str_concat(ptr %t166, ptr @.str5227) %t168 = load ptr, ptr %t152 %t169 = call ptr @lp_str_concat(ptr %t167, ptr %t168) %t170 = call ptr @lp_str_concat(ptr %t169, ptr @.str5228) call void @fn_emit(ptr %t170) %t171 = call ptr @fn_val(ptr @.str5229, ptr @.str5230) store ptr %t171, ptr %retval br label %ret ifend30: store i32 1, ptr @g_g_uses_osrt %t172 = load ptr, ptr %t0 %t173 = call i32 @lp_str_eq(ptr %t172, ptr @.str5231) %t174 = icmp ne i32 %t173, 0 br i1 %t174, label %then36, label %ifend38 then36: %t175 = call ptr @fn_emit_bind(ptr @.str5232) %t176 = call ptr @fn_val(ptr %t175, ptr @.str5233) store ptr %t176, ptr %retval br label %ret ifend38: %t177 = load ptr, ptr %t0 %t178 = call i32 @lp_str_eq(ptr %t177, ptr @.str5234) %t179 = icmp ne i32 %t178, 0 br i1 %t179, label %then39, label %ifend41 then39: %t180 = load ptr, ptr %t1 %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 7 %t182 = load ptr, ptr %t181 %t183 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 0 %t184 = load ptr, ptr %t183 %t185 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 1 %t186 = load i32, ptr %t185 %t187 = icmp ult i32 0, %t186 br i1 %t187, label %ixok42, label %ixbad43 ixbad43: %t188 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t188, ptr @.fmt_bounds, ptr @.str5235, i32 0, i32 %t186) call void @exit(i32 1) unreachable ixok42: %t189 = getelementptr inbounds ptr, ptr %t184, i32 0 %t190 = load ptr, ptr %t189 %t191 = call ptr @fn_emit_expr(ptr %t190) store ptr %t191, ptr %t192 %t193 = load ptr, ptr %t1 %t194 = getelementptr inbounds %Cmp_Node, ptr %t193, i32 0, i32 7 %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %LSlice, ptr %t195, i32 0, i32 0 %t197 = load ptr, ptr %t196 %t198 = getelementptr inbounds %LSlice, ptr %t195, i32 0, i32 1 %t199 = load i32, ptr %t198 %t200 = icmp ult i32 1, %t199 br i1 %t200, label %ixok44, label %ixbad45 ixbad45: %t201 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t201, ptr @.fmt_bounds, ptr @.str5236, i32 1, i32 %t199) call void @exit(i32 1) unreachable ixok44: %t202 = getelementptr inbounds ptr, ptr %t197, i32 1 %t203 = load ptr, ptr %t202 %t204 = call ptr @fn_emit_expr(ptr %t203) store ptr %t204, ptr %t205 %t206 = load ptr, ptr %t192 %t207 = getelementptr inbounds %Cmp_Val, ptr %t206, i32 0, i32 0 %t208 = load ptr, ptr %t207 %t209 = call ptr @lp_str_concat(ptr @.str5237, ptr %t208) %t210 = call ptr @lp_str_concat(ptr %t209, ptr @.str5238) %t211 = load ptr, ptr %t205 %t212 = getelementptr inbounds %Cmp_Val, ptr %t211, i32 0, i32 0 %t213 = load ptr, ptr %t212 %t214 = call ptr @lp_str_concat(ptr %t210, ptr %t213) %t215 = call ptr @lp_str_concat(ptr %t214, ptr @.str5239) %t216 = call ptr @fn_emit_bind(ptr %t215) %t217 = call ptr @fn_val(ptr %t216, ptr @.str5240) store ptr %t217, ptr %retval br label %ret ifend41: %t218 = load ptr, ptr %t0 %t219 = call i32 @lp_str_eq(ptr %t218, ptr @.str5241) %t220 = icmp ne i32 %t219, 0 br i1 %t220, label %then46, label %ifend48 then46: %t221 = load ptr, ptr %t1 %t222 = getelementptr inbounds %Cmp_Node, ptr %t221, i32 0, i32 7 %t223 = load ptr, ptr %t222 %t224 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 0 %t225 = load ptr, ptr %t224 %t226 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 1 %t227 = load i32, ptr %t226 %t228 = icmp ult i32 0, %t227 br i1 %t228, label %ixok49, label %ixbad50 ixbad50: %t229 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t229, ptr @.fmt_bounds, ptr @.str5242, i32 0, i32 %t227) call void @exit(i32 1) unreachable ixok49: %t230 = getelementptr inbounds ptr, ptr %t225, i32 0 %t231 = load ptr, ptr %t230 %t232 = call ptr @fn_emit_expr(ptr %t231) store ptr %t232, ptr %t233 %t234 = load ptr, ptr %t1 %t235 = getelementptr inbounds %Cmp_Node, ptr %t234, i32 0, i32 7 %t236 = load ptr, ptr %t235 %t237 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 0 %t238 = load ptr, ptr %t237 %t239 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 1 %t240 = load i32, ptr %t239 %t241 = icmp ult i32 1, %t240 br i1 %t241, label %ixok51, label %ixbad52 ixbad52: %t242 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t242, ptr @.fmt_bounds, ptr @.str5243, i32 1, i32 %t240) call void @exit(i32 1) unreachable ixok51: %t243 = getelementptr inbounds ptr, ptr %t238, i32 1 %t244 = load ptr, ptr %t243 %t245 = call ptr @fn_emit_expr(ptr %t244) store ptr %t245, ptr %t246 %t247 = load ptr, ptr %t233 %t248 = getelementptr inbounds %Cmp_Val, ptr %t247, i32 0, i32 0 %t249 = load ptr, ptr %t248 %t250 = call ptr @lp_str_concat(ptr @.str5244, ptr %t249) %t251 = call ptr @lp_str_concat(ptr %t250, ptr @.str5245) %t252 = load ptr, ptr %t246 %t253 = getelementptr inbounds %Cmp_Val, ptr %t252, i32 0, i32 0 %t254 = load ptr, ptr %t253 %t255 = call ptr @lp_str_concat(ptr %t251, ptr %t254) %t256 = call ptr @lp_str_concat(ptr %t255, ptr @.str5246) %t257 = call ptr @fn_emit_bind(ptr %t256) store ptr %t257, ptr %t258 %t259 = load ptr, ptr %t258 %t260 = call ptr @lp_str_concat(ptr @.str5247, ptr %t259) %t261 = call ptr @lp_str_concat(ptr %t260, ptr @.str5248) %t262 = call ptr @fn_emit_bind(ptr %t261) store ptr %t262, ptr %t263 %t264 = load ptr, ptr %t263 %t265 = call ptr @lp_str_concat(ptr @.str5249, ptr %t264) %t266 = call ptr @lp_str_concat(ptr %t265, ptr @.str5250) %t267 = call ptr @fn_emit_bind(ptr %t266) %t268 = call ptr @fn_val(ptr %t267, ptr @.str5251) store ptr %t268, ptr %retval br label %ret ifend48: %t269 = load ptr, ptr %t0 %t270 = call i32 @lp_str_eq(ptr %t269, ptr @.str5252) %t271 = icmp ne i32 %t270, 0 br i1 %t271, label %then53, label %ifend55 then53: %t272 = load ptr, ptr %t1 %t273 = getelementptr inbounds %Cmp_Node, ptr %t272, i32 0, i32 7 %t274 = load ptr, ptr %t273 %t275 = getelementptr inbounds %LSlice, ptr %t274, i32 0, i32 0 %t276 = load ptr, ptr %t275 %t277 = getelementptr inbounds %LSlice, ptr %t274, i32 0, i32 1 %t278 = load i32, ptr %t277 %t279 = icmp ult i32 0, %t278 br i1 %t279, label %ixok56, label %ixbad57 ixbad57: %t280 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t280, ptr @.fmt_bounds, ptr @.str5253, i32 0, i32 %t278) call void @exit(i32 1) unreachable ixok56: %t281 = getelementptr inbounds ptr, ptr %t276, i32 0 %t282 = load ptr, ptr %t281 %t283 = call ptr @fn_emit_expr(ptr %t282) store ptr %t283, ptr %t284 %t285 = load ptr, ptr %t284 %t286 = getelementptr inbounds %Cmp_Val, ptr %t285, i32 0, i32 0 %t287 = load ptr, ptr %t286 %t288 = call ptr @lp_str_concat(ptr @.str5254, ptr %t287) %t289 = call ptr @lp_str_concat(ptr %t288, ptr @.str5255) %t290 = call ptr @fn_emit_bind(ptr %t289) store ptr %t290, ptr %t291 %t292 = load ptr, ptr %t291 %t293 = call ptr @lp_str_concat(ptr @.str5256, ptr %t292) %t294 = call ptr @lp_str_concat(ptr %t293, ptr @.str5257) %t295 = call ptr @fn_emit_bind(ptr %t294) store ptr %t295, ptr %t296 %t297 = load ptr, ptr %t296 %t298 = call ptr @lp_str_concat(ptr @.str5258, ptr %t297) %t299 = call ptr @lp_str_concat(ptr %t298, ptr @.str5259) %t300 = call ptr @fn_emit_bind(ptr %t299) %t301 = call ptr @fn_val(ptr %t300, ptr @.str5260) store ptr %t301, ptr %retval br label %ret ifend55: %t302 = load ptr, ptr %t0 %t303 = call i32 @lp_str_eq(ptr %t302, ptr @.str5261) %t304 = icmp ne i32 %t303, 0 br i1 %t304, label %then58, label %ifend60 then58: %t305 = call ptr @fn_emit_bind(ptr @.str5262) %t306 = call ptr @fn_val(ptr %t305, ptr @.str5263) store ptr %t306, ptr %retval br label %ret ifend60: %t307 = load ptr, ptr %t0 %t308 = call i32 @lp_str_eq(ptr %t307, ptr @.str5264) %t309 = icmp ne i32 %t308, 0 br i1 %t309, label %then61, label %ifend63 then61: %t310 = call ptr @fn_emit_bind(ptr @.str5265) %t311 = call ptr @fn_val(ptr %t310, ptr @.str5266) store ptr %t311, ptr %retval br label %ret ifend63: %t312 = load ptr, ptr %t0 %t313 = call i32 @lp_str_eq(ptr %t312, ptr @.str5267) %t314 = icmp ne i32 %t313, 0 br i1 %t314, label %then64, label %ifend66 then64: %t315 = load ptr, ptr %t1 %t316 = getelementptr inbounds %Cmp_Node, ptr %t315, i32 0, i32 7 %t317 = load ptr, ptr %t316 %t318 = getelementptr inbounds %LSlice, ptr %t317, i32 0, i32 0 %t319 = load ptr, ptr %t318 %t320 = getelementptr inbounds %LSlice, ptr %t317, i32 0, i32 1 %t321 = load i32, ptr %t320 %t322 = icmp ult i32 0, %t321 br i1 %t322, label %ixok67, label %ixbad68 ixbad68: %t323 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t323, ptr @.fmt_bounds, ptr @.str5268, i32 0, i32 %t321) call void @exit(i32 1) unreachable ixok67: %t324 = getelementptr inbounds ptr, ptr %t319, i32 0 %t325 = load ptr, ptr %t324 %t326 = call ptr @fn_emit_expr(ptr %t325) store ptr %t326, ptr %t327 %t328 = load ptr, ptr %t327 %t329 = getelementptr inbounds %Cmp_Val, ptr %t328, i32 0, i32 0 %t330 = load ptr, ptr %t329 %t331 = call ptr @lp_str_concat(ptr @.str5269, ptr %t330) %t332 = call ptr @lp_str_concat(ptr %t331, ptr @.str5270) %t333 = call ptr @fn_emit_bind(ptr %t332) %t334 = call ptr @fn_val(ptr %t333, ptr @.str5271) store ptr %t334, ptr %retval br label %ret ifend66: %t335 = load ptr, ptr %t0 %t336 = call i32 @lp_str_eq(ptr %t335, ptr @.str5272) %t337 = icmp ne i32 %t336, 0 br i1 %t337, label %then69, label %ifend71 then69: %t338 = load ptr, ptr %t1 %t339 = getelementptr inbounds %Cmp_Node, ptr %t338, i32 0, i32 7 %t340 = load ptr, ptr %t339 %t341 = getelementptr inbounds %LSlice, ptr %t340, i32 0, i32 0 %t342 = load ptr, ptr %t341 %t343 = getelementptr inbounds %LSlice, ptr %t340, i32 0, i32 1 %t344 = load i32, ptr %t343 %t345 = icmp ult i32 0, %t344 br i1 %t345, label %ixok72, label %ixbad73 ixbad73: %t346 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t346, ptr @.fmt_bounds, ptr @.str5273, i32 0, i32 %t344) call void @exit(i32 1) unreachable ixok72: %t347 = getelementptr inbounds ptr, ptr %t342, i32 0 %t348 = load ptr, ptr %t347 %t349 = call ptr @fn_emit_expr(ptr %t348) store ptr %t349, ptr %t350 %t351 = load ptr, ptr %t350 %t352 = getelementptr inbounds %Cmp_Val, ptr %t351, i32 0, i32 0 %t353 = load ptr, ptr %t352 %t354 = call ptr @lp_str_concat(ptr @.str5274, ptr %t353) %t355 = call ptr @lp_str_concat(ptr %t354, ptr @.str5275) %t356 = call ptr @fn_emit_bind(ptr %t355) %t357 = call ptr @fn_val(ptr %t356, ptr @.str5276) store ptr %t357, ptr %retval br label %ret ifend71: %t358 = load ptr, ptr %t0 %t359 = call i32 @lp_str_eq(ptr %t358, ptr @.str5277) %t360 = icmp ne i32 %t359, 0 br i1 %t360, label %then74, label %ifend76 then74: %t361 = load ptr, ptr %t1 %t362 = getelementptr inbounds %Cmp_Node, ptr %t361, i32 0, i32 7 %t363 = load ptr, ptr %t362 %t364 = getelementptr inbounds %LSlice, ptr %t363, i32 0, i32 0 %t365 = load ptr, ptr %t364 %t366 = getelementptr inbounds %LSlice, ptr %t363, i32 0, i32 1 %t367 = load i32, ptr %t366 %t368 = icmp ult i32 0, %t367 br i1 %t368, label %ixok77, label %ixbad78 ixbad78: %t369 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t369, ptr @.fmt_bounds, ptr @.str5278, i32 0, i32 %t367) call void @exit(i32 1) unreachable ixok77: %t370 = getelementptr inbounds ptr, ptr %t365, i32 0 %t371 = load ptr, ptr %t370 %t372 = call ptr @fn_emit_expr(ptr %t371) store ptr %t372, ptr %t373 %t374 = load ptr, ptr %t373 %t375 = getelementptr inbounds %Cmp_Val, ptr %t374, i32 0, i32 0 %t376 = load ptr, ptr %t375 %t377 = call ptr @lp_str_concat(ptr @.str5279, ptr %t376) %t378 = call ptr @lp_str_concat(ptr %t377, ptr @.str5280) %t379 = call ptr @fn_emit_bind(ptr %t378) %t380 = call ptr @fn_val(ptr %t379, ptr @.str5281) store ptr %t380, ptr %retval br label %ret ifend76: %t381 = call ptr @fn_emit_bind(ptr @.str5282) %t382 = call ptr @fn_val(ptr %t381, ptr @.str5283) store ptr %t382, ptr %retval br label %ret ret: %t383 = load ptr, ptr %retval ret ptr %t383 } define void @fn_emit_os_prelude() { entry: %t5 = alloca ptr %t7 = alloca ptr %t9 = alloca ptr %t11 = alloca ptr %t13 = alloca ptr %t15 = alloca ptr %t17 = alloca ptr %t19 = alloca ptr %t21 = alloca ptr %t23 = alloca ptr %t25 = alloca ptr %t27 = alloca ptr %t29 = alloca ptr %t31 = alloca ptr %t33 = alloca ptr %t35 = alloca ptr %t37 = alloca ptr %t0 = load i32, ptr @g_g_target_win %t1 = icmp eq i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: call void @fn_emith(ptr @.str5284) call void @fn_emith(ptr @.str5285) call void @fn_emith(ptr @.str5286) br label %ifend2 ifend2: %t4 = call ptr @fn_emit_str_const(ptr @.str5287) store ptr %t4, ptr %t5 %t6 = call ptr @fn_emit_str_const(ptr @.str5288) store ptr %t6, ptr %t7 %t8 = call ptr @fn_emit_str_const(ptr @.str5289) store ptr %t8, ptr %t9 %t10 = call ptr @fn_emit_str_const(ptr @.str5290) store ptr %t10, ptr %t11 %t12 = call ptr @fn_emit_str_const(ptr @.str5291) store ptr %t12, ptr %t13 %t14 = call ptr @fn_emit_str_const(ptr @.str5292) store ptr %t14, ptr %t15 %t16 = call ptr @fn_emit_str_const(ptr @.str5293) store ptr %t16, ptr %t17 %t18 = call ptr @fn_emit_str_const(ptr @.str5294) store ptr %t18, ptr %t19 %t20 = call ptr @fn_emit_str_const(ptr @.str5295) store ptr %t20, ptr %t21 %t22 = call ptr @fn_emit_str_const(ptr @.str5296) store ptr %t22, ptr %t23 %t24 = call ptr @fn_emit_str_const(ptr @.str5297) store ptr %t24, ptr %t25 %t26 = call ptr @fn_emit_str_const(ptr @.str5298) store ptr %t26, ptr %t27 %t28 = call ptr @fn_emit_str_const(ptr @.str5299) store ptr %t28, ptr %t29 %t30 = call ptr @fn_emit_str_const(ptr @.str5300) store ptr %t30, ptr %t31 %t32 = call ptr @fn_emit_str_const(ptr @.str5301) store ptr %t32, ptr %t33 %t34 = call ptr @fn_emit_str_const(ptr @.str5302) store ptr %t34, ptr %t35 %t36 = call ptr @fn_emit_str_const(ptr @.str5303) store ptr %t36, ptr %t37 call void @fn_emith(ptr @.str5304) call void @fn_emith(ptr @.str5305) call void @fn_emith(ptr @.str5306) call void @fn_emith(ptr @.str5307) call void @fn_emith(ptr @.str5308) call void @fn_emith(ptr @.str5309) call void @fn_emith(ptr @.str5310) call void @fn_emith(ptr @.str5311) call void @fn_emith(ptr @.str5312) call void @fn_emith(ptr @.str5313) call void @fn_emith(ptr @.str5314) call void @fn_emith(ptr @.str5315) %t38 = load i32, ptr @g_g_target_win %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then3, label %ifend5 then3: %t40 = load ptr, ptr %t7 %t41 = load ptr, ptr %t31 call void @fn_emit_os_win_known(ptr %t40, ptr %t41) br label %ret ifend5: %t42 = load ptr, ptr %t5 %t43 = call ptr @lp_str_concat(ptr @.str5316, ptr %t42) %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str5317) %t45 = load ptr, ptr %t7 %t46 = call ptr @lp_str_concat(ptr %t44, ptr %t45) %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str5318) call void @fn_emith(ptr %t47) call void @fn_emith(ptr @.str5319) call void @fn_emith(ptr @.str5320) call void @fn_emith(ptr @.str5321) call void @fn_emith(ptr @.str5322) call void @fn_emith(ptr @.str5323) %t48 = load ptr, ptr %t17 %t49 = call ptr @lp_str_concat(ptr @.str5324, ptr %t48) %t50 = call ptr @lp_str_concat(ptr %t49, ptr @.str5325) call void @fn_emith(ptr %t50) call void @fn_emith(ptr @.str5326) call void @fn_emith(ptr @.str5327) call void @fn_emith(ptr @.str5328) call void @fn_emith(ptr @.str5329) %t51 = load ptr, ptr %t31 %t52 = call ptr @lp_str_concat(ptr @.str5330, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str5331) call void @fn_emith(ptr %t53) call void @fn_emith(ptr @.str5332) call void @fn_emith(ptr @.str5333) call void @fn_emith(ptr @.str5334) call void @fn_emith(ptr @.str5335) call void @fn_emith(ptr @.str5336) %t54 = load ptr, ptr %t9 %t55 = call ptr @lp_str_concat(ptr @.str5337, ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str5338) %t57 = load ptr, ptr %t19 %t58 = call ptr @lp_str_concat(ptr %t56, ptr %t57) %t59 = call ptr @lp_str_concat(ptr %t58, ptr @.str5339) %t60 = load ptr, ptr %t25 %t61 = call ptr @lp_str_concat(ptr %t59, ptr %t60) %t62 = call ptr @lp_str_concat(ptr %t61, ptr @.str5340) call void @fn_emith(ptr %t62) %t63 = load ptr, ptr %t9 %t64 = call ptr @lp_str_concat(ptr @.str5341, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str5342) %t66 = load ptr, ptr %t21 %t67 = call ptr @lp_str_concat(ptr %t65, ptr %t66) %t68 = call ptr @lp_str_concat(ptr %t67, ptr @.str5343) %t69 = load ptr, ptr %t27 %t70 = call ptr @lp_str_concat(ptr %t68, ptr %t69) %t71 = call ptr @lp_str_concat(ptr %t70, ptr @.str5344) call void @fn_emith(ptr %t71) %t72 = load ptr, ptr %t11 %t73 = call ptr @lp_str_concat(ptr @.str5345, ptr %t72) %t74 = call ptr @lp_str_concat(ptr %t73, ptr @.str5346) %t75 = load ptr, ptr %t23 %t76 = call ptr @lp_str_concat(ptr %t74, ptr %t75) %t77 = call ptr @lp_str_concat(ptr %t76, ptr @.str5347) %t78 = load ptr, ptr %t29 %t79 = call ptr @lp_str_concat(ptr %t77, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str5348) call void @fn_emith(ptr %t80) %t81 = load ptr, ptr %t13 %t82 = call ptr @lp_str_concat(ptr @.str5349, ptr %t81) %t83 = call ptr @lp_str_concat(ptr %t82, ptr @.str5350) %t84 = load ptr, ptr %t15 %t85 = call ptr @lp_str_concat(ptr %t83, ptr %t84) %t86 = call ptr @lp_str_concat(ptr %t85, ptr @.str5351) call void @fn_emith(ptr %t86) call void @fn_emith(ptr @.str5352) call void @fn_emith(ptr @.str5353) call void @fn_emith(ptr @.str5354) call void @fn_emith(ptr @.str5355) call void @fn_emith(ptr @.str5356) call void @fn_emith(ptr @.str5357) call void @fn_emith(ptr @.str5358) call void @fn_emith(ptr @.str5359) call void @fn_emith(ptr @.str5360) %t87 = load ptr, ptr %t17 %t88 = call ptr @lp_str_concat(ptr @.str5361, ptr %t87) %t89 = call ptr @lp_str_concat(ptr %t88, ptr @.str5362) call void @fn_emith(ptr %t89) %t90 = load ptr, ptr %t33 %t91 = call ptr @lp_str_concat(ptr @.str5363, ptr %t90) %t92 = call ptr @lp_str_concat(ptr %t91, ptr @.str5364) call void @fn_emith(ptr %t92) %t93 = load ptr, ptr %t35 %t94 = call ptr @lp_str_concat(ptr @.str5365, ptr %t93) %t95 = call ptr @lp_str_concat(ptr %t94, ptr @.str5366) call void @fn_emith(ptr %t95) %t96 = load ptr, ptr %t37 %t97 = call ptr @lp_str_concat(ptr @.str5367, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str5368) call void @fn_emith(ptr %t98) call void @fn_emith(ptr @.str5369) call void @fn_emith(ptr @.str5370) call void @fn_emith(ptr @.str5371) call void @fn_emith(ptr @.str5372) br label %ret ret: ret void } define i32 @fn_is_unicode_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t31 = alloca i32 %t32 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str5373) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str5374) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str5375) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t21, ptr @.str5376) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t20 br i1 %t23, label %scend8, label %sc7 sc7: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str5377) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t20 br label %scend8 scend8: %t29 = load i32, ptr %t20 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str5378) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t32 br i1 %t35, label %scend13, label %sc12 sc12: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str5379) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t32 br label %scend13 scend13: %t41 = load i32, ptr %t32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t31 br i1 %t42, label %scend15, label %sc14 sc14: %t44 = load ptr, ptr %t0 %t45 = call i32 @lp_str_eq(ptr %t44, ptr @.str5380) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t31 br label %scend15 scend15: %t48 = load i32, ptr %t31 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then16, label %ifend18 then16: store i32 1, ptr %retval br label %ret ifend18: %t50 = load ptr, ptr %t0 %t51 = call i32 @lp_str_eq(ptr %t50, ptr @.str5381) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then19, label %ifend21 then19: store i32 1, ptr %retval br label %ret ifend21: store i32 0, ptr %retval br label %ret ret: %t53 = load i32, ptr %retval ret i32 %t53 } define ptr @fn_emit_unicode_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t24 = alloca ptr %t45 = alloca ptr %t68 = alloca ptr %t91 = alloca ptr %t104 = alloca ptr %t132 = alloca ptr %t155 = alloca ptr %t178 = alloca ptr %t201 = alloca ptr %t214 = alloca ptr %t239 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_uses_unicodert %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str5382) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str5383, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str5384, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str5385) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str5386, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str5387) %t28 = call ptr @fn_emit_bind(ptr %t27) %t29 = call ptr @fn_val(ptr %t28, ptr @.str5388) store ptr %t29, ptr %retval br label %ret ifend2: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str5389) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t1 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 7 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 0, %t39 br i1 %t40, label %ixok8, label %ixbad9 ixbad9: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str5390, i32 0, i32 %t39) call void @exit(i32 1) unreachable ixok8: %t42 = getelementptr inbounds ptr, ptr %t37, i32 0 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_emit_expr(ptr %t43) store ptr %t44, ptr %t45 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %Cmp_Val, ptr %t46, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = call ptr @lp_str_concat(ptr @.str5391, ptr %t48) %t50 = call ptr @lp_str_concat(ptr %t49, ptr @.str5392) %t51 = call ptr @fn_emit_bind(ptr %t50) %t52 = call ptr @fn_val(ptr %t51, ptr @.str5393) store ptr %t52, ptr %retval br label %ret ifend7: %t53 = load ptr, ptr %t0 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str5394) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then10, label %ifend12 then10: %t56 = load ptr, ptr %t1 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t62 = load i32, ptr %t61 %t63 = icmp ult i32 0, %t62 br i1 %t63, label %ixok13, label %ixbad14 ixbad14: %t64 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t64, ptr @.fmt_bounds, ptr @.str5395, i32 0, i32 %t62) call void @exit(i32 1) unreachable ixok13: %t65 = getelementptr inbounds ptr, ptr %t60, i32 0 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_emit_expr(ptr %t66) store ptr %t67, ptr %t68 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %Cmp_Val, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = call ptr @lp_str_concat(ptr @.str5396, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str5397) %t74 = call ptr @fn_emit_bind(ptr %t73) %t75 = call ptr @fn_val(ptr %t74, ptr @.str5398) store ptr %t75, ptr %retval br label %ret ifend12: %t76 = load ptr, ptr %t0 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str5399) %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then15, label %ifend17 then15: %t79 = load ptr, ptr %t1 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 7 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 0 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 1 %t85 = load i32, ptr %t84 %t86 = icmp ult i32 0, %t85 br i1 %t86, label %ixok18, label %ixbad19 ixbad19: %t87 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t87, ptr @.fmt_bounds, ptr @.str5400, i32 0, i32 %t85) call void @exit(i32 1) unreachable ixok18: %t88 = getelementptr inbounds ptr, ptr %t83, i32 0 %t89 = load ptr, ptr %t88 %t90 = call ptr @fn_emit_expr(ptr %t89) store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t1 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 7 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp ult i32 1, %t98 br i1 %t99, label %ixok20, label %ixbad21 ixbad21: %t100 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t100, ptr @.fmt_bounds, ptr @.str5401, i32 1, i32 %t98) call void @exit(i32 1) unreachable ixok20: %t101 = getelementptr inbounds ptr, ptr %t96, i32 1 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_emit_expr(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t91 %t106 = getelementptr inbounds %Cmp_Val, ptr %t105, i32 0, i32 0 %t107 = load ptr, ptr %t106 %t108 = call ptr @lp_str_concat(ptr @.str5402, ptr %t107) %t109 = call ptr @lp_str_concat(ptr %t108, ptr @.str5403) %t110 = load ptr, ptr %t104 %t111 = getelementptr inbounds %Cmp_Val, ptr %t110, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = call ptr @lp_str_concat(ptr %t109, ptr %t112) %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str5404) %t115 = call ptr @fn_emit_bind(ptr %t114) %t116 = call ptr @fn_val(ptr %t115, ptr @.str5405) store ptr %t116, ptr %retval br label %ret ifend17: %t117 = load ptr, ptr %t0 %t118 = call i32 @lp_str_eq(ptr %t117, ptr @.str5406) %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then22, label %ifend24 then22: %t120 = load ptr, ptr %t1 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 7 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 %t126 = load i32, ptr %t125 %t127 = icmp ult i32 0, %t126 br i1 %t127, label %ixok25, label %ixbad26 ixbad26: %t128 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t128, ptr @.fmt_bounds, ptr @.str5407, i32 0, i32 %t126) call void @exit(i32 1) unreachable ixok25: %t129 = getelementptr inbounds ptr, ptr %t124, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_emit_expr(ptr %t130) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %Cmp_Val, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 %t136 = call ptr @lp_str_concat(ptr @.str5408, ptr %t135) %t137 = call ptr @lp_str_concat(ptr %t136, ptr @.str5409) %t138 = call ptr @fn_emit_bind(ptr %t137) %t139 = call ptr @fn_val(ptr %t138, ptr @.str5410) store ptr %t139, ptr %retval br label %ret ifend24: %t140 = load ptr, ptr %t0 %t141 = call i32 @lp_str_eq(ptr %t140, ptr @.str5411) %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then27, label %ifend29 then27: %t143 = load ptr, ptr %t1 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 7 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 0 %t147 = load ptr, ptr %t146 %t148 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 1 %t149 = load i32, ptr %t148 %t150 = icmp ult i32 0, %t149 br i1 %t150, label %ixok30, label %ixbad31 ixbad31: %t151 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t151, ptr @.fmt_bounds, ptr @.str5412, i32 0, i32 %t149) call void @exit(i32 1) unreachable ixok30: %t152 = getelementptr inbounds ptr, ptr %t147, i32 0 %t153 = load ptr, ptr %t152 %t154 = call ptr @fn_emit_expr(ptr %t153) store ptr %t154, ptr %t155 %t156 = load ptr, ptr %t155 %t157 = getelementptr inbounds %Cmp_Val, ptr %t156, i32 0, i32 0 %t158 = load ptr, ptr %t157 %t159 = call ptr @lp_str_concat(ptr @.str5413, ptr %t158) %t160 = call ptr @lp_str_concat(ptr %t159, ptr @.str5414) %t161 = call ptr @fn_emit_bind(ptr %t160) %t162 = call ptr @fn_val(ptr %t161, ptr @.str5415) store ptr %t162, ptr %retval br label %ret ifend29: %t163 = load ptr, ptr %t0 %t164 = call i32 @lp_str_eq(ptr %t163, ptr @.str5416) %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then32, label %ifend34 then32: %t166 = load ptr, ptr %t1 %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 7 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 0 %t170 = load ptr, ptr %t169 %t171 = getelementptr inbounds %LSlice, ptr %t168, i32 0, i32 1 %t172 = load i32, ptr %t171 %t173 = icmp ult i32 0, %t172 br i1 %t173, label %ixok35, label %ixbad36 ixbad36: %t174 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t174, ptr @.fmt_bounds, ptr @.str5417, i32 0, i32 %t172) call void @exit(i32 1) unreachable ixok35: %t175 = getelementptr inbounds ptr, ptr %t170, i32 0 %t176 = load ptr, ptr %t175 %t177 = call ptr @fn_emit_expr(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t178 %t180 = getelementptr inbounds %Cmp_Val, ptr %t179, i32 0, i32 0 %t181 = load ptr, ptr %t180 %t182 = call ptr @lp_str_concat(ptr @.str5418, ptr %t181) %t183 = call ptr @lp_str_concat(ptr %t182, ptr @.str5419) %t184 = call ptr @fn_emit_bind(ptr %t183) %t185 = call ptr @fn_val(ptr %t184, ptr @.str5420) store ptr %t185, ptr %retval br label %ret ifend34: %t186 = load ptr, ptr %t0 %t187 = call i32 @lp_str_eq(ptr %t186, ptr @.str5421) %t188 = icmp ne i32 %t187, 0 br i1 %t188, label %then37, label %ifend39 then37: %t189 = load ptr, ptr %t1 %t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 7 %t191 = load ptr, ptr %t190 %t192 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 0 %t193 = load ptr, ptr %t192 %t194 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 1 %t195 = load i32, ptr %t194 %t196 = icmp ult i32 0, %t195 br i1 %t196, label %ixok40, label %ixbad41 ixbad41: %t197 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t197, ptr @.fmt_bounds, ptr @.str5422, i32 0, i32 %t195) call void @exit(i32 1) unreachable ixok40: %t198 = getelementptr inbounds ptr, ptr %t193, i32 0 %t199 = load ptr, ptr %t198 %t200 = call ptr @fn_emit_expr(ptr %t199) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t1 %t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 7 %t204 = load ptr, ptr %t203 %t205 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 0 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 1 %t208 = load i32, ptr %t207 %t209 = icmp ult i32 1, %t208 br i1 %t209, label %ixok42, label %ixbad43 ixbad43: %t210 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t210, ptr @.fmt_bounds, ptr @.str5423, i32 1, i32 %t208) call void @exit(i32 1) unreachable ixok42: %t211 = getelementptr inbounds ptr, ptr %t206, i32 1 %t212 = load ptr, ptr %t211 %t213 = call ptr @fn_emit_expr(ptr %t212) store ptr %t213, ptr %t214 %t215 = load ptr, ptr %t201 %t216 = getelementptr inbounds %Cmp_Val, ptr %t215, i32 0, i32 0 %t217 = load ptr, ptr %t216 %t218 = call ptr @lp_str_concat(ptr @.str5424, ptr %t217) %t219 = call ptr @lp_str_concat(ptr %t218, ptr @.str5425) %t220 = load ptr, ptr %t214 %t221 = getelementptr inbounds %Cmp_Val, ptr %t220, i32 0, i32 0 %t222 = load ptr, ptr %t221 %t223 = call ptr @lp_str_concat(ptr %t219, ptr %t222) %t224 = call ptr @lp_str_concat(ptr %t223, ptr @.str5426) %t225 = call ptr @fn_emit_bind(ptr %t224) %t226 = call ptr @fn_val(ptr %t225, ptr @.str5427) store ptr %t226, ptr %retval br label %ret ifend39: %t227 = load ptr, ptr %t1 %t228 = getelementptr inbounds %Cmp_Node, ptr %t227, i32 0, i32 7 %t229 = load ptr, ptr %t228 %t230 = getelementptr inbounds %LSlice, ptr %t229, i32 0, i32 0 %t231 = load ptr, ptr %t230 %t232 = getelementptr inbounds %LSlice, ptr %t229, i32 0, i32 1 %t233 = load i32, ptr %t232 %t234 = icmp ult i32 0, %t233 br i1 %t234, label %ixok44, label %ixbad45 ixbad45: %t235 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t235, ptr @.fmt_bounds, ptr @.str5428, i32 0, i32 %t233) call void @exit(i32 1) unreachable ixok44: %t236 = getelementptr inbounds ptr, ptr %t231, i32 0 %t237 = load ptr, ptr %t236 %t238 = call ptr @fn_emit_expr(ptr %t237) store ptr %t238, ptr %t239 %t240 = load ptr, ptr %t239 %t241 = getelementptr inbounds %Cmp_Val, ptr %t240, i32 0, i32 0 %t242 = load ptr, ptr %t241 %t243 = call ptr @lp_str_concat(ptr @.str5429, ptr %t242) %t244 = call ptr @lp_str_concat(ptr %t243, ptr @.str5430) %t245 = call ptr @fn_emit_bind(ptr %t244) %t246 = call ptr @fn_val(ptr %t245, ptr @.str5431) store ptr %t246, ptr %retval br label %ret ret: %t247 = load ptr, ptr %retval ret ptr %t247 } define void @fn_emit_unicode_prelude() { entry: call void @fn_emit_uni_core() call void @fn_emit_uni_case_fns() call void @fn_emit_uni_str_fns() br label %ret ret: ret void } define void @fn_emit_uni_core() { entry: call void @fn_emith(ptr @.str5432) call void @fn_emith(ptr @.str5433) call void @fn_emith(ptr @.str5434) call void @fn_emith(ptr @.str5435) call void @fn_emith(ptr @.str5436) call void @fn_emith(ptr @.str5437) call void @fn_emith(ptr @.str5438) call void @fn_emith(ptr @.str5439) call void @fn_emith(ptr @.str5440) call void @fn_emith(ptr @.str5441) call void @fn_emith(ptr @.str5442) call void @fn_emith(ptr @.str5443) call void @fn_emith(ptr @.str5444) call void @fn_emith(ptr @.str5445) call void @fn_emith(ptr @.str5446) call void @fn_emith(ptr @.str5447) call void @fn_emith(ptr @.str5448) call void @fn_emith(ptr @.str5449) call void @fn_emith(ptr @.str5450) call void @fn_emith(ptr @.str5451) call void @fn_emith(ptr @.str5452) call void @fn_emith(ptr @.str5453) call void @fn_emith(ptr @.str5454) call void @fn_emith(ptr @.str5455) call void @fn_emith(ptr @.str5456) call void @fn_emith(ptr @.str5457) call void @fn_emith(ptr @.str5458) call void @fn_emith(ptr @.str5459) call void @fn_emith(ptr @.str5460) call void @fn_emith(ptr @.str5461) call void @fn_emith(ptr @.str5462) call void @fn_emith(ptr @.str5463) call void @fn_emith(ptr @.str5464) call void @fn_emith(ptr @.str5465) call void @fn_emith(ptr @.str5466) call void @fn_emith(ptr @.str5467) call void @fn_emith(ptr @.str5468) call void @fn_emith(ptr @.str5469) call void @fn_emith(ptr @.str5470) call void @fn_emith(ptr @.str5471) call void @fn_emith(ptr @.str5472) call void @fn_emith(ptr @.str5473) call void @fn_emith(ptr @.str5474) call void @fn_emith(ptr @.str5475) call void @fn_emith(ptr @.str5476) call void @fn_emith(ptr @.str5477) call void @fn_emith(ptr @.str5478) call void @fn_emith(ptr @.str5479) call void @fn_emith(ptr @.str5480) call void @fn_emith(ptr @.str5481) call void @fn_emith(ptr @.str5482) call void @fn_emith(ptr @.str5483) call void @fn_emith(ptr @.str5484) call void @fn_emith(ptr @.str5485) call void @fn_emith(ptr @.str5486) call void @fn_emith(ptr @.str5487) call void @fn_emith(ptr @.str5488) call void @fn_emith(ptr @.str5489) call void @fn_emith(ptr @.str5490) call void @fn_emith(ptr @.str5491) call void @fn_emith(ptr @.str5492) call void @fn_emith(ptr @.str5493) call void @fn_emith(ptr @.str5494) call void @fn_emith(ptr @.str5495) call void @fn_emith(ptr @.str5496) call void @fn_emith(ptr @.str5497) call void @fn_emith(ptr @.str5498) call void @fn_emith(ptr @.str5499) call void @fn_emith(ptr @.str5500) call void @fn_emith(ptr @.str5501) call void @fn_emith(ptr @.str5502) call void @fn_emith(ptr @.str5503) call void @fn_emith(ptr @.str5504) br label %ret ret: ret void } define void @fn_emit_uni_case_fns() { entry: call void @fn_emith(ptr @.str5505) call void @fn_emith(ptr @.str5506) call void @fn_emith(ptr @.str5507) call void @fn_emith(ptr @.str5508) call void @fn_emith(ptr @.str5509) call void @fn_emith(ptr @.str5510) call void @fn_emith(ptr @.str5511) call void @fn_emith(ptr @.str5512) call void @fn_emith(ptr @.str5513) call void @fn_emith(ptr @.str5514) call void @fn_emith(ptr @.str5515) call void @fn_emith(ptr @.str5516) call void @fn_emith(ptr @.str5517) call void @fn_emith(ptr @.str5518) call void @fn_emith(ptr @.str5519) call void @fn_emith(ptr @.str5520) call void @fn_emith(ptr @.str5521) call void @fn_emith(ptr @.str5522) call void @fn_emith(ptr @.str5523) call void @fn_emith(ptr @.str5524) call void @fn_emith(ptr @.str5525) call void @fn_emith(ptr @.str5526) call void @fn_emith(ptr @.str5527) call void @fn_emith(ptr @.str5528) call void @fn_emith(ptr @.str5529) call void @fn_emith(ptr @.str5530) call void @fn_emith(ptr @.str5531) call void @fn_emith(ptr @.str5532) call void @fn_emith(ptr @.str5533) call void @fn_emith(ptr @.str5534) call void @fn_emith(ptr @.str5535) call void @fn_emith(ptr @.str5536) call void @fn_emith(ptr @.str5537) call void @fn_emith(ptr @.str5538) call void @fn_emith(ptr @.str5539) call void @fn_emith(ptr @.str5540) call void @fn_emith(ptr @.str5541) call void @fn_emith(ptr @.str5542) call void @fn_emith(ptr @.str5543) call void @fn_emith(ptr @.str5544) br label %ret ret: ret void } define void @fn_emit_uni_str_fns() { entry: call void @fn_emith(ptr @.str5545) call void @fn_emith(ptr @.str5546) call void @fn_emith(ptr @.str5547) call void @fn_emith(ptr @.str5548) call void @fn_emith(ptr @.str5549) call void @fn_emith(ptr @.str5550) call void @fn_emith(ptr @.str5551) call void @fn_emith(ptr @.str5552) call void @fn_emith(ptr @.str5553) call void @fn_emith(ptr @.str5554) call void @fn_emith(ptr @.str5555) call void @fn_emith(ptr @.str5556) call void @fn_emith(ptr @.str5557) call void @fn_emith(ptr @.str5558) call void @fn_emith(ptr @.str5559) call void @fn_emith(ptr @.str5560) call void @fn_emith(ptr @.str5561) call void @fn_emith(ptr @.str5562) call void @fn_emith(ptr @.str5563) call void @fn_emith(ptr @.str5564) call void @fn_emith(ptr @.str5565) call void @fn_emith(ptr @.str5566) call void @fn_emith(ptr @.str5567) call void @fn_emith(ptr @.str5568) call void @fn_emith(ptr @.str5569) call void @fn_emith(ptr @.str5570) call void @fn_emith(ptr @.str5571) call void @fn_emith(ptr @.str5572) call void @fn_emith(ptr @.str5573) call void @fn_emith(ptr @.str5574) call void @fn_emith(ptr @.str5575) call void @fn_emith(ptr @.str5576) call void @fn_emith(ptr @.str5577) call void @fn_emith(ptr @.str5578) call void @fn_emith(ptr @.str5579) call void @fn_emith(ptr @.str5580) call void @fn_emith(ptr @.str5581) call void @fn_emit_uni_grapheme() br label %ret ret: ret void } define void @fn_emit_uni_grapheme() { entry: call void @fn_emith(ptr @.str5582) call void @fn_emith(ptr @.str5583) call void @fn_emith(ptr @.str5584) call void @fn_emith(ptr @.str5585) call void @fn_emith(ptr @.str5586) call void @fn_emith(ptr @.str5587) call void @fn_emith(ptr @.str5588) call void @fn_emith(ptr @.str5589) call void @fn_emith(ptr @.str5590) call void @fn_emith(ptr @.str5591) call void @fn_emith(ptr @.str5592) call void @fn_emith(ptr @.str5593) call void @fn_emith(ptr @.str5594) call void @fn_emith(ptr @.str5595) call void @fn_emith(ptr @.str5596) call void @fn_emith(ptr @.str5597) call void @fn_emith(ptr @.str5598) call void @fn_emith(ptr @.str5599) call void @fn_emith(ptr @.str5600) br label %ret ret: ret void } define i32 @fn_is_fs_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 %t39 = alloca i32 %t40 = alloca i32 %t41 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str5601) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str5602) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str5603) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str5604) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t21 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str5605) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 br label %scend8 scend8: %t30 = load i32, ptr %t21 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t20 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str5606) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 br label %scend10 scend10: %t37 = load i32, ptr %t20 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str5607) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t41 br i1 %t44, label %scend15, label %sc14 sc14: %t46 = load ptr, ptr %t0 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str5608) %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t41 br label %scend15 scend15: %t50 = load i32, ptr %t41 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t40 br i1 %t51, label %scend17, label %sc16 sc16: %t53 = load ptr, ptr %t0 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str5609) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t40 br label %scend17 scend17: %t57 = load i32, ptr %t40 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t39 br i1 %t58, label %scend19, label %sc18 sc18: %t60 = load ptr, ptr %t0 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str5610) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t39 br label %scend19 scend19: %t64 = load i32, ptr %t39 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then20, label %ifend22 then20: store i32 1, ptr %retval br label %ret ifend22: store i32 0, ptr %retval br label %ret ret: %t66 = load i32, ptr %retval ret i32 %t66 } define i32 @fn_is_path_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str5611) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str5612) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str5613) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str5614) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t21 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str5615) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 br label %scend8 scend8: %t30 = load i32, ptr %t21 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t20 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str5616) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 br label %scend10 scend10: %t37 = load i32, ptr %t20 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: store i32 0, ptr %retval br label %ret ret: %t39 = load i32, ptr %retval ret i32 %t39 } define i32 @fn_is_mime_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_meth, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str5617) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str5618) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then2, label %ifend4 then2: store i32 1, ptr %retval br label %ret ifend4: store i32 0, ptr %retval br label %ret ret: %t12 = load i32, ptr %retval ret i32 %t12 } define ptr @fn_emit_fs_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t14 = alloca ptr %t97 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 call void @fn_use_pak() %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 0, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str5619, i32 0, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 0 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_emit_expr(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str5620) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then2, label %ifend4 then2: %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str5621, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str5622) %t23 = call ptr @fn_emit_bind(ptr %t22) %t24 = call ptr @fn_val(ptr %t23, ptr @.str5623) store ptr %t24, ptr %retval br label %ret ifend4: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str5624) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = load ptr, ptr %t14 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr @.str5625, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str5626) %t33 = call ptr @fn_emit_bind(ptr %t32) %t34 = call ptr @fn_val(ptr %t33, ptr @.str5627) store ptr %t34, ptr %retval br label %ret ifend7: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str5628) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then8, label %ifend10 then8: %t38 = load ptr, ptr %t14 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @lp_str_concat(ptr @.str5629, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str5630) %t43 = call ptr @fn_emit_bind(ptr %t42) %t44 = call ptr @fn_val(ptr %t43, ptr @.str5631) store ptr %t44, ptr %retval br label %ret ifend10: %t45 = load ptr, ptr %t0 %t46 = call i32 @lp_str_eq(ptr %t45, ptr @.str5632) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then11, label %ifend13 then11: %t48 = load ptr, ptr %t14 %t49 = getelementptr inbounds %Cmp_Val, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = call ptr @lp_str_concat(ptr @.str5633, ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t51, ptr @.str5634) %t53 = call ptr @fn_emit_bind(ptr %t52) %t54 = call ptr @fn_val(ptr %t53, ptr @.str5635) store ptr %t54, ptr %retval br label %ret ifend13: %t55 = load ptr, ptr %t0 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str5636) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then14, label %ifend16 then14: %t58 = load ptr, ptr %t14 %t59 = getelementptr inbounds %Cmp_Val, ptr %t58, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = call ptr @lp_str_concat(ptr @.str5637, ptr %t60) %t62 = call ptr @lp_str_concat(ptr %t61, ptr @.str5638) %t63 = call ptr @fn_emit_bind(ptr %t62) %t64 = call ptr @fn_val(ptr %t63, ptr @.str5639) store ptr %t64, ptr %retval br label %ret ifend16: %t65 = load ptr, ptr %t0 %t66 = call i32 @lp_str_eq(ptr %t65, ptr @.str5640) %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then17, label %ifend19 then17: %t68 = load ptr, ptr %t14 %t69 = getelementptr inbounds %Cmp_Val, ptr %t68, i32 0, i32 0 %t70 = load ptr, ptr %t69 %t71 = call ptr @lp_str_concat(ptr @.str5641, ptr %t70) %t72 = call ptr @lp_str_concat(ptr %t71, ptr @.str5642) %t73 = call ptr @fn_emit_bind(ptr %t72) %t74 = call ptr @fn_val(ptr %t73, ptr @.str5643) store ptr %t74, ptr %retval br label %ret ifend19: %t75 = load ptr, ptr %t0 %t76 = call i32 @lp_str_eq(ptr %t75, ptr @.str5644) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then20, label %ifend22 then20: %t78 = load ptr, ptr %t14 %t79 = getelementptr inbounds %Cmp_Val, ptr %t78, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = call ptr @lp_str_concat(ptr @.str5645, ptr %t80) %t82 = call ptr @lp_str_concat(ptr %t81, ptr @.str5646) %t83 = call ptr @fn_emit_bind(ptr %t82) %t84 = call ptr @fn_val(ptr %t83, ptr @.str5647) store ptr %t84, ptr %retval br label %ret ifend22: %t85 = load ptr, ptr %t1 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 7 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 0 %t89 = load ptr, ptr %t88 %t90 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t91 = load i32, ptr %t90 %t92 = icmp ult i32 1, %t91 br i1 %t92, label %ixok23, label %ixbad24 ixbad24: %t93 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t93, ptr @.fmt_bounds, ptr @.str5648, i32 1, i32 %t91) call void @exit(i32 1) unreachable ixok23: %t94 = getelementptr inbounds ptr, ptr %t89, i32 1 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_emit_expr(ptr %t95) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t0 %t99 = call i32 @lp_str_eq(ptr %t98, ptr @.str5649) %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then25, label %ifend27 then25: %t101 = load ptr, ptr %t14 %t102 = getelementptr inbounds %Cmp_Val, ptr %t101, i32 0, i32 0 %t103 = load ptr, ptr %t102 %t104 = call ptr @lp_str_concat(ptr @.str5650, ptr %t103) %t105 = call ptr @lp_str_concat(ptr %t104, ptr @.str5651) %t106 = load ptr, ptr %t97 %t107 = getelementptr inbounds %Cmp_Val, ptr %t106, i32 0, i32 0 %t108 = load ptr, ptr %t107 %t109 = call ptr @lp_str_concat(ptr %t105, ptr %t108) %t110 = call ptr @lp_str_concat(ptr %t109, ptr @.str5652) %t111 = call ptr @fn_emit_bind(ptr %t110) %t112 = call ptr @fn_val(ptr %t111, ptr @.str5653) store ptr %t112, ptr %retval br label %ret ifend27: %t113 = load ptr, ptr %t0 %t114 = call i32 @lp_str_eq(ptr %t113, ptr @.str5654) %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then28, label %ifend30 then28: %t116 = load ptr, ptr %t14 %t117 = getelementptr inbounds %Cmp_Val, ptr %t116, i32 0, i32 0 %t118 = load ptr, ptr %t117 %t119 = call ptr @lp_str_concat(ptr @.str5655, ptr %t118) %t120 = call ptr @lp_str_concat(ptr %t119, ptr @.str5656) %t121 = load ptr, ptr %t97 %t122 = getelementptr inbounds %Cmp_Val, ptr %t121, i32 0, i32 0 %t123 = load ptr, ptr %t122 %t124 = call ptr @lp_str_concat(ptr %t120, ptr %t123) %t125 = call ptr @lp_str_concat(ptr %t124, ptr @.str5657) %t126 = call ptr @fn_emit_bind(ptr %t125) %t127 = call ptr @fn_val(ptr %t126, ptr @.str5658) store ptr %t127, ptr %retval br label %ret ifend30: %t128 = load ptr, ptr %t14 %t129 = getelementptr inbounds %Cmp_Val, ptr %t128, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @lp_str_concat(ptr @.str5659, ptr %t130) %t132 = call ptr @lp_str_concat(ptr %t131, ptr @.str5660) %t133 = load ptr, ptr %t97 %t134 = getelementptr inbounds %Cmp_Val, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 %t136 = call ptr @lp_str_concat(ptr %t132, ptr %t135) %t137 = call ptr @lp_str_concat(ptr %t136, ptr @.str5661) %t138 = call ptr @fn_emit_bind(ptr %t137) %t139 = call ptr @fn_val(ptr %t138, ptr @.str5662) store ptr %t139, ptr %retval br label %ret ret: %t140 = load ptr, ptr %retval ret ptr %t140 } define ptr @fn_emit_path_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t14 = alloca ptr %t77 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 call void @fn_use_pak() %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 0, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str5663, i32 0, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 0 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_emit_expr(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str5664) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then2, label %ifend4 then2: %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str5665, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str5666) %t23 = call ptr @fn_emit_bind(ptr %t22) %t24 = call ptr @fn_val(ptr %t23, ptr @.str5667) store ptr %t24, ptr %retval br label %ret ifend4: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str5668) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = load ptr, ptr %t14 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr @.str5669, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str5670) %t33 = call ptr @fn_emit_bind(ptr %t32) %t34 = call ptr @fn_val(ptr %t33, ptr @.str5671) store ptr %t34, ptr %retval br label %ret ifend7: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str5672) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then8, label %ifend10 then8: %t38 = load ptr, ptr %t14 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @lp_str_concat(ptr @.str5673, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str5674) %t43 = call ptr @fn_emit_bind(ptr %t42) %t44 = call ptr @fn_val(ptr %t43, ptr @.str5675) store ptr %t44, ptr %retval br label %ret ifend10: %t45 = load ptr, ptr %t0 %t46 = call i32 @lp_str_eq(ptr %t45, ptr @.str5676) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then11, label %ifend13 then11: %t48 = load ptr, ptr %t14 %t49 = getelementptr inbounds %Cmp_Val, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = call ptr @lp_str_concat(ptr @.str5677, ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t51, ptr @.str5678) %t53 = call ptr @fn_emit_bind(ptr %t52) %t54 = call ptr @fn_val(ptr %t53, ptr @.str5679) store ptr %t54, ptr %retval br label %ret ifend13: %t55 = load ptr, ptr %t0 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str5680) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then14, label %ifend16 then14: %t58 = load ptr, ptr %t14 %t59 = getelementptr inbounds %Cmp_Val, ptr %t58, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = call ptr @lp_str_concat(ptr @.str5681, ptr %t60) %t62 = call ptr @lp_str_concat(ptr %t61, ptr @.str5682) %t63 = call ptr @fn_emit_bind(ptr %t62) %t64 = call ptr @fn_val(ptr %t63, ptr @.str5683) store ptr %t64, ptr %retval br label %ret ifend16: %t65 = load ptr, ptr %t1 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 7 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 0 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 1 %t71 = load i32, ptr %t70 %t72 = icmp ult i32 1, %t71 br i1 %t72, label %ixok17, label %ixbad18 ixbad18: %t73 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t73, ptr @.fmt_bounds, ptr @.str5684, i32 1, i32 %t71) call void @exit(i32 1) unreachable ixok17: %t74 = getelementptr inbounds ptr, ptr %t69, i32 1 %t75 = load ptr, ptr %t74 %t76 = call ptr @fn_emit_expr(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t14 %t79 = getelementptr inbounds %Cmp_Val, ptr %t78, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = call ptr @lp_str_concat(ptr @.str5685, ptr %t80) %t82 = call ptr @lp_str_concat(ptr %t81, ptr @.str5686) %t83 = load ptr, ptr %t77 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = call ptr @lp_str_concat(ptr %t82, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str5687) %t88 = call ptr @fn_emit_bind(ptr %t87) %t89 = call ptr @fn_val(ptr %t88, ptr @.str5688) store ptr %t89, ptr %retval br label %ret ret: %t90 = load ptr, ptr %retval ret ptr %t90 } define ptr @fn_emit_mime_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t14 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 call void @fn_use_pak() %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 0, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str5689, i32 0, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 0 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_emit_expr(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str5690) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then2, label %ifend4 then2: %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str5691, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str5692) %t23 = call ptr @fn_emit_bind(ptr %t22) %t24 = call ptr @fn_val(ptr %t23, ptr @.str5693) store ptr %t24, ptr %retval br label %ret ifend4: %t25 = load ptr, ptr %t14 %t26 = getelementptr inbounds %Cmp_Val, ptr %t25, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = call ptr @lp_str_concat(ptr @.str5694, ptr %t27) %t29 = call ptr @lp_str_concat(ptr %t28, ptr @.str5695) %t30 = call ptr @fn_emit_bind(ptr %t29) %t31 = call ptr @fn_val(ptr %t30, ptr @.str5696) store ptr %t31, ptr %retval br label %ret ret: %t32 = load ptr, ptr %retval ret ptr %t32 } define void @fn_emit_fs_prelude() { entry: %t0 = load i32, ptr @g_g_target_win %t1 = icmp eq i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: call void @fn_emith(ptr @.str5697) call void @fn_emith(ptr @.str5698) call void @fn_emith(ptr @.str5699) call void @fn_emith(ptr @.str5700) call void @fn_emith(ptr @.str5701) call void @fn_emith(ptr @.str5702) call void @fn_emith(ptr @.str5703) br label %ifend2 ifend2: call void @fn_emit_fs_common() call void @fn_emit_fs_path() call void @fn_emit_fs_io() call void @fn_emit_fs_dir() call void @fn_emit_fs_mime() br label %ret ret: ret void } define void @fn_emit_fs_common() { entry: call void @fn_emith(ptr @.str5704) call void @fn_emith(ptr @.str5705) call void @fn_emith(ptr @.str5706) call void @fn_emith(ptr @.str5707) call void @fn_emith(ptr @.str5708) call void @fn_emith(ptr @.str5709) call void @fn_emith(ptr @.str5710) call void @fn_emith(ptr @.str5711) call void @fn_emith(ptr @.str5712) call void @fn_emith(ptr @.str5713) call void @fn_emith(ptr @.str5714) call void @fn_emith(ptr @.str5715) call void @fn_emith(ptr @.str5716) br label %ret ret: ret void } define void @fn_emit_fs_path() { entry: call void @fn_emith(ptr @.str5717) call void @fn_emith(ptr @.str5718) call void @fn_emith(ptr @.str5719) call void @fn_emith(ptr @.str5720) call void @fn_emith(ptr @.str5721) call void @fn_emith(ptr @.str5722) call void @fn_emith(ptr @.str5723) call void @fn_emith(ptr @.str5724) call void @fn_emith(ptr @.str5725) call void @fn_emith(ptr @.str5726) call void @fn_emith(ptr @.str5727) call void @fn_emith(ptr @.str5728) call void @fn_emith(ptr @.str5729) call void @fn_emith(ptr @.str5730) call void @fn_emith(ptr @.str5731) call void @fn_emith(ptr @.str5732) call void @fn_emith(ptr @.str5733) call void @fn_emith(ptr @.str5734) call void @fn_emith(ptr @.str5735) call void @fn_emith(ptr @.str5736) call void @fn_emith(ptr @.str5737) call void @fn_emith(ptr @.str5738) call void @fn_emith(ptr @.str5739) call void @fn_emith(ptr @.str5740) call void @fn_emith(ptr @.str5741) call void @fn_emith(ptr @.str5742) call void @fn_emith(ptr @.str5743) call void @fn_emith(ptr @.str5744) call void @fn_emith(ptr @.str5745) call void @fn_emith(ptr @.str5746) call void @fn_emith(ptr @.str5747) call void @fn_emith(ptr @.str5748) call void @fn_emith(ptr @.str5749) call void @fn_emith(ptr @.str5750) call void @fn_emith(ptr @.str5751) call void @fn_emith(ptr @.str5752) call void @fn_emith(ptr @.str5753) call void @fn_emith(ptr @.str5754) call void @fn_emith(ptr @.str5755) call void @fn_emith(ptr @.str5756) call void @fn_emith(ptr @.str5757) call void @fn_emith(ptr @.str5758) call void @fn_emit_fs_normalize() br label %ret ret: ret void } define void @fn_emit_fs_normalize() { entry: call void @fn_emith(ptr @.str5759) call void @fn_emith(ptr @.str5760) call void @fn_emith(ptr @.str5761) call void @fn_emith(ptr @.str5762) call void @fn_emith(ptr @.str5763) call void @fn_emith(ptr @.str5764) call void @fn_emith(ptr @.str5765) call void @fn_emith(ptr @.str5766) call void @fn_emith(ptr @.str5767) call void @fn_emith(ptr @.str5768) call void @fn_emith(ptr @.str5769) call void @fn_emith(ptr @.str5770) call void @fn_emith(ptr @.str5771) call void @fn_emith(ptr @.str5772) call void @fn_emith(ptr @.str5773) call void @fn_emith(ptr @.str5774) call void @fn_emith(ptr @.str5775) call void @fn_emith(ptr @.str5776) call void @fn_emith(ptr @.str5777) call void @fn_emith(ptr @.str5778) call void @fn_emith(ptr @.str5779) call void @fn_emith(ptr @.str5780) call void @fn_emith(ptr @.str5781) call void @fn_emith(ptr @.str5782) call void @fn_emith(ptr @.str5783) call void @fn_emith(ptr @.str5784) call void @fn_emith(ptr @.str5785) call void @fn_emith(ptr @.str5786) call void @fn_emith(ptr @.str5787) call void @fn_emith(ptr @.str5788) call void @fn_emith(ptr @.str5789) call void @fn_emith(ptr @.str5790) call void @fn_emith(ptr @.str5791) call void @fn_emith(ptr @.str5792) call void @fn_emith(ptr @.str5793) call void @fn_emith(ptr @.str5794) call void @fn_emith(ptr @.str5795) br label %ret ret: ret void } define void @fn_emit_fs_io() { entry: call void @fn_emith(ptr @.str5796) call void @fn_emith(ptr @.str5797) call void @fn_emith(ptr @.str5798) call void @fn_emith(ptr @.str5799) call void @fn_emith(ptr @.str5800) call void @fn_emith(ptr @.str5801) call void @fn_emith(ptr @.str5802) call void @fn_emith(ptr @.str5803) call void @fn_emith(ptr @.str5804) call void @fn_emith(ptr @.str5805) call void @fn_emith(ptr @.str5806) call void @fn_emith(ptr @.str5807) call void @fn_emith(ptr @.str5808) call void @fn_emith(ptr @.str5809) call void @fn_emith(ptr @.str5810) call void @fn_emith(ptr @.str5811) call void @fn_emith(ptr @.str5812) call void @fn_emith(ptr @.str5813) call void @fn_emith(ptr @.str5814) call void @fn_emith(ptr @.str5815) call void @fn_emith(ptr @.str5816) call void @fn_emith(ptr @.str5817) call void @fn_emith(ptr @.str5818) call void @fn_emith(ptr @.str5819) call void @fn_emith(ptr @.str5820) call void @fn_emith(ptr @.str5821) call void @fn_emith(ptr @.str5822) call void @fn_emith(ptr @.str5823) call void @fn_emith(ptr @.str5824) call void @fn_emith(ptr @.str5825) call void @fn_emith(ptr @.str5826) call void @fn_emith(ptr @.str5827) call void @fn_emith(ptr @.str5828) call void @fn_emith(ptr @.str5829) call void @fn_emith(ptr @.str5830) call void @fn_emith(ptr @.str5831) call void @fn_emith(ptr @.str5832) call void @fn_emith(ptr @.str5833) call void @fn_emith(ptr @.str5834) call void @fn_emith(ptr @.str5835) call void @fn_emith(ptr @.str5836) call void @fn_emith(ptr @.str5837) call void @fn_emith(ptr @.str5838) call void @fn_emith(ptr @.str5839) call void @fn_emith(ptr @.str5840) call void @fn_emith(ptr @.str5841) call void @fn_emith(ptr @.str5842) call void @fn_emith(ptr @.str5843) br label %ret ret: ret void } define void @fn_emit_fs_dir() { entry: call void @fn_emith(ptr @.str5844) call void @fn_emith(ptr @.str5845) call void @fn_emith(ptr @.str5846) call void @fn_emith(ptr @.str5847) call void @fn_emith(ptr @.str5848) call void @fn_emith(ptr @.str5849) call void @fn_emith(ptr @.str5850) call void @fn_emith(ptr @.str5851) call void @fn_emith(ptr @.str5852) call void @fn_emith(ptr @.str5853) call void @fn_emith(ptr @.str5854) call void @fn_emith(ptr @.str5855) call void @fn_emith(ptr @.str5856) call void @fn_emith(ptr @.str5857) call void @fn_emith(ptr @.str5858) call void @fn_emith(ptr @.str5859) call void @fn_emith(ptr @.str5860) call void @fn_emith(ptr @.str5861) call void @fn_emith(ptr @.str5862) call void @fn_emith(ptr @.str5863) call void @fn_emith(ptr @.str5864) call void @fn_emith(ptr @.str5865) call void @fn_emith(ptr @.str5866) call void @fn_emith(ptr @.str5867) br label %ret ret: ret void } define void @fn_emit_fs_mime() { entry: %t6 = alloca ptr %t13 = alloca ptr %t932 = alloca ptr %t939 = alloca ptr %t940 = alloca i32 %t1011 = alloca ptr %t1015 = alloca i32 %t0 = getelementptr %LSlice, ptr null, i32 1 %t1 = ptrtoint ptr %t0 to i64 %t2 = call ptr @malloc(i64 %t1) %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 store ptr null, ptr %t3 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 store i32 0, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 store i32 0, ptr %t5 store ptr %t2, ptr %t6 %t7 = getelementptr %LSlice, ptr null, i32 1 %t8 = ptrtoint ptr %t7 to i64 %t9 = call ptr @malloc(i64 %t8) %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 store ptr null, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 store i32 0, ptr %t11 %t12 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 2 store i32 0, ptr %t12 store ptr %t9, ptr %t13 %t14 = load ptr, ptr %t6 %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t18 = load i32, ptr %t15 %t19 = load i32, ptr %t16 %t20 = icmp sge i32 %t18, %t19 br i1 %t20, label %grow0, label %put1 grow0: %t21 = mul i32 %t19, 2 %t22 = icmp eq i32 %t19, 0 %t23 = select i1 %t22, i32 8, i32 %t21 %t24 = getelementptr ptr, ptr null, i32 1 %t25 = ptrtoint ptr %t24 to i64 %t26 = zext i32 %t23 to i64 %t27 = mul i64 %t26, %t25 %t28 = load ptr, ptr %t17 %t29 = call ptr @realloc(ptr %t28, i64 %t27) store ptr %t29, ptr %t17 store i32 %t23, ptr %t16 br label %put1 put1: %t30 = load ptr, ptr %t17 %t31 = getelementptr inbounds ptr, ptr %t30, i32 %t18 store ptr @.str5868, ptr %t31 %t32 = add i32 %t18, 1 store i32 %t32, ptr %t15 %t33 = load ptr, ptr %t13 %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 2 %t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t37 = load i32, ptr %t34 %t38 = load i32, ptr %t35 %t39 = icmp sge i32 %t37, %t38 br i1 %t39, label %grow2, label %put3 grow2: %t40 = mul i32 %t38, 2 %t41 = icmp eq i32 %t38, 0 %t42 = select i1 %t41, i32 8, i32 %t40 %t43 = getelementptr ptr, ptr null, i32 1 %t44 = ptrtoint ptr %t43 to i64 %t45 = zext i32 %t42 to i64 %t46 = mul i64 %t45, %t44 %t47 = load ptr, ptr %t36 %t48 = call ptr @realloc(ptr %t47, i64 %t46) store ptr %t48, ptr %t36 store i32 %t42, ptr %t35 br label %put3 put3: %t49 = load ptr, ptr %t36 %t50 = getelementptr inbounds ptr, ptr %t49, i32 %t37 store ptr @.str5869, ptr %t50 %t51 = add i32 %t37, 1 store i32 %t51, ptr %t34 %t52 = load ptr, ptr %t6 %t53 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t54 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 2 %t55 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 %t56 = load i32, ptr %t53 %t57 = load i32, ptr %t54 %t58 = icmp sge i32 %t56, %t57 br i1 %t58, label %grow4, label %put5 grow4: %t59 = mul i32 %t57, 2 %t60 = icmp eq i32 %t57, 0 %t61 = select i1 %t60, i32 8, i32 %t59 %t62 = getelementptr ptr, ptr null, i32 1 %t63 = ptrtoint ptr %t62 to i64 %t64 = zext i32 %t61 to i64 %t65 = mul i64 %t64, %t63 %t66 = load ptr, ptr %t55 %t67 = call ptr @realloc(ptr %t66, i64 %t65) store ptr %t67, ptr %t55 store i32 %t61, ptr %t54 br label %put5 put5: %t68 = load ptr, ptr %t55 %t69 = getelementptr inbounds ptr, ptr %t68, i32 %t56 store ptr @.str5870, ptr %t69 %t70 = add i32 %t56, 1 store i32 %t70, ptr %t53 %t71 = load ptr, ptr %t13 %t72 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t73 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 2 %t74 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t75 = load i32, ptr %t72 %t76 = load i32, ptr %t73 %t77 = icmp sge i32 %t75, %t76 br i1 %t77, label %grow6, label %put7 grow6: %t78 = mul i32 %t76, 2 %t79 = icmp eq i32 %t76, 0 %t80 = select i1 %t79, i32 8, i32 %t78 %t81 = getelementptr ptr, ptr null, i32 1 %t82 = ptrtoint ptr %t81 to i64 %t83 = zext i32 %t80 to i64 %t84 = mul i64 %t83, %t82 %t85 = load ptr, ptr %t74 %t86 = call ptr @realloc(ptr %t85, i64 %t84) store ptr %t86, ptr %t74 store i32 %t80, ptr %t73 br label %put7 put7: %t87 = load ptr, ptr %t74 %t88 = getelementptr inbounds ptr, ptr %t87, i32 %t75 store ptr @.str5871, ptr %t88 %t89 = add i32 %t75, 1 store i32 %t89, ptr %t72 %t90 = load ptr, ptr %t6 %t91 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t92 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 2 %t93 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 0 %t94 = load i32, ptr %t91 %t95 = load i32, ptr %t92 %t96 = icmp sge i32 %t94, %t95 br i1 %t96, label %grow8, label %put9 grow8: %t97 = mul i32 %t95, 2 %t98 = icmp eq i32 %t95, 0 %t99 = select i1 %t98, i32 8, i32 %t97 %t100 = getelementptr ptr, ptr null, i32 1 %t101 = ptrtoint ptr %t100 to i64 %t102 = zext i32 %t99 to i64 %t103 = mul i64 %t102, %t101 %t104 = load ptr, ptr %t93 %t105 = call ptr @realloc(ptr %t104, i64 %t103) store ptr %t105, ptr %t93 store i32 %t99, ptr %t92 br label %put9 put9: %t106 = load ptr, ptr %t93 %t107 = getelementptr inbounds ptr, ptr %t106, i32 %t94 store ptr @.str5872, ptr %t107 %t108 = add i32 %t94, 1 store i32 %t108, ptr %t91 %t109 = load ptr, ptr %t13 %t110 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 1 %t111 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 2 %t112 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 0 %t113 = load i32, ptr %t110 %t114 = load i32, ptr %t111 %t115 = icmp sge i32 %t113, %t114 br i1 %t115, label %grow10, label %put11 grow10: %t116 = mul i32 %t114, 2 %t117 = icmp eq i32 %t114, 0 %t118 = select i1 %t117, i32 8, i32 %t116 %t119 = getelementptr ptr, ptr null, i32 1 %t120 = ptrtoint ptr %t119 to i64 %t121 = zext i32 %t118 to i64 %t122 = mul i64 %t121, %t120 %t123 = load ptr, ptr %t112 %t124 = call ptr @realloc(ptr %t123, i64 %t122) store ptr %t124, ptr %t112 store i32 %t118, ptr %t111 br label %put11 put11: %t125 = load ptr, ptr %t112 %t126 = getelementptr inbounds ptr, ptr %t125, i32 %t113 store ptr @.str5873, ptr %t126 %t127 = add i32 %t113, 1 store i32 %t127, ptr %t110 %t128 = load ptr, ptr %t6 %t129 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 1 %t130 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 2 %t131 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 0 %t132 = load i32, ptr %t129 %t133 = load i32, ptr %t130 %t134 = icmp sge i32 %t132, %t133 br i1 %t134, label %grow12, label %put13 grow12: %t135 = mul i32 %t133, 2 %t136 = icmp eq i32 %t133, 0 %t137 = select i1 %t136, i32 8, i32 %t135 %t138 = getelementptr ptr, ptr null, i32 1 %t139 = ptrtoint ptr %t138 to i64 %t140 = zext i32 %t137 to i64 %t141 = mul i64 %t140, %t139 %t142 = load ptr, ptr %t131 %t143 = call ptr @realloc(ptr %t142, i64 %t141) store ptr %t143, ptr %t131 store i32 %t137, ptr %t130 br label %put13 put13: %t144 = load ptr, ptr %t131 %t145 = getelementptr inbounds ptr, ptr %t144, i32 %t132 store ptr @.str5874, ptr %t145 %t146 = add i32 %t132, 1 store i32 %t146, ptr %t129 %t147 = load ptr, ptr %t13 %t148 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 1 %t149 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 2 %t150 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 0 %t151 = load i32, ptr %t148 %t152 = load i32, ptr %t149 %t153 = icmp sge i32 %t151, %t152 br i1 %t153, label %grow14, label %put15 grow14: %t154 = mul i32 %t152, 2 %t155 = icmp eq i32 %t152, 0 %t156 = select i1 %t155, i32 8, i32 %t154 %t157 = getelementptr ptr, ptr null, i32 1 %t158 = ptrtoint ptr %t157 to i64 %t159 = zext i32 %t156 to i64 %t160 = mul i64 %t159, %t158 %t161 = load ptr, ptr %t150 %t162 = call ptr @realloc(ptr %t161, i64 %t160) store ptr %t162, ptr %t150 store i32 %t156, ptr %t149 br label %put15 put15: %t163 = load ptr, ptr %t150 %t164 = getelementptr inbounds ptr, ptr %t163, i32 %t151 store ptr @.str5875, ptr %t164 %t165 = add i32 %t151, 1 store i32 %t165, ptr %t148 %t166 = load ptr, ptr %t6 %t167 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 1 %t168 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 2 %t169 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 0 %t170 = load i32, ptr %t167 %t171 = load i32, ptr %t168 %t172 = icmp sge i32 %t170, %t171 br i1 %t172, label %grow16, label %put17 grow16: %t173 = mul i32 %t171, 2 %t174 = icmp eq i32 %t171, 0 %t175 = select i1 %t174, i32 8, i32 %t173 %t176 = getelementptr ptr, ptr null, i32 1 %t177 = ptrtoint ptr %t176 to i64 %t178 = zext i32 %t175 to i64 %t179 = mul i64 %t178, %t177 %t180 = load ptr, ptr %t169 %t181 = call ptr @realloc(ptr %t180, i64 %t179) store ptr %t181, ptr %t169 store i32 %t175, ptr %t168 br label %put17 put17: %t182 = load ptr, ptr %t169 %t183 = getelementptr inbounds ptr, ptr %t182, i32 %t170 store ptr @.str5876, ptr %t183 %t184 = add i32 %t170, 1 store i32 %t184, ptr %t167 %t185 = load ptr, ptr %t13 %t186 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 1 %t187 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 2 %t188 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 0 %t189 = load i32, ptr %t186 %t190 = load i32, ptr %t187 %t191 = icmp sge i32 %t189, %t190 br i1 %t191, label %grow18, label %put19 grow18: %t192 = mul i32 %t190, 2 %t193 = icmp eq i32 %t190, 0 %t194 = select i1 %t193, i32 8, i32 %t192 %t195 = getelementptr ptr, ptr null, i32 1 %t196 = ptrtoint ptr %t195 to i64 %t197 = zext i32 %t194 to i64 %t198 = mul i64 %t197, %t196 %t199 = load ptr, ptr %t188 %t200 = call ptr @realloc(ptr %t199, i64 %t198) store ptr %t200, ptr %t188 store i32 %t194, ptr %t187 br label %put19 put19: %t201 = load ptr, ptr %t188 %t202 = getelementptr inbounds ptr, ptr %t201, i32 %t189 store ptr @.str5877, ptr %t202 %t203 = add i32 %t189, 1 store i32 %t203, ptr %t186 %t204 = load ptr, ptr %t6 %t205 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 1 %t206 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 2 %t207 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 0 %t208 = load i32, ptr %t205 %t209 = load i32, ptr %t206 %t210 = icmp sge i32 %t208, %t209 br i1 %t210, label %grow20, label %put21 grow20: %t211 = mul i32 %t209, 2 %t212 = icmp eq i32 %t209, 0 %t213 = select i1 %t212, i32 8, i32 %t211 %t214 = getelementptr ptr, ptr null, i32 1 %t215 = ptrtoint ptr %t214 to i64 %t216 = zext i32 %t213 to i64 %t217 = mul i64 %t216, %t215 %t218 = load ptr, ptr %t207 %t219 = call ptr @realloc(ptr %t218, i64 %t217) store ptr %t219, ptr %t207 store i32 %t213, ptr %t206 br label %put21 put21: %t220 = load ptr, ptr %t207 %t221 = getelementptr inbounds ptr, ptr %t220, i32 %t208 store ptr @.str5878, ptr %t221 %t222 = add i32 %t208, 1 store i32 %t222, ptr %t205 %t223 = load ptr, ptr %t13 %t224 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 1 %t225 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 2 %t226 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 0 %t227 = load i32, ptr %t224 %t228 = load i32, ptr %t225 %t229 = icmp sge i32 %t227, %t228 br i1 %t229, label %grow22, label %put23 grow22: %t230 = mul i32 %t228, 2 %t231 = icmp eq i32 %t228, 0 %t232 = select i1 %t231, i32 8, i32 %t230 %t233 = getelementptr ptr, ptr null, i32 1 %t234 = ptrtoint ptr %t233 to i64 %t235 = zext i32 %t232 to i64 %t236 = mul i64 %t235, %t234 %t237 = load ptr, ptr %t226 %t238 = call ptr @realloc(ptr %t237, i64 %t236) store ptr %t238, ptr %t226 store i32 %t232, ptr %t225 br label %put23 put23: %t239 = load ptr, ptr %t226 %t240 = getelementptr inbounds ptr, ptr %t239, i32 %t227 store ptr @.str5879, ptr %t240 %t241 = add i32 %t227, 1 store i32 %t241, ptr %t224 %t242 = load ptr, ptr %t6 %t243 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 1 %t244 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 2 %t245 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 0 %t246 = load i32, ptr %t243 %t247 = load i32, ptr %t244 %t248 = icmp sge i32 %t246, %t247 br i1 %t248, label %grow24, label %put25 grow24: %t249 = mul i32 %t247, 2 %t250 = icmp eq i32 %t247, 0 %t251 = select i1 %t250, i32 8, i32 %t249 %t252 = getelementptr ptr, ptr null, i32 1 %t253 = ptrtoint ptr %t252 to i64 %t254 = zext i32 %t251 to i64 %t255 = mul i64 %t254, %t253 %t256 = load ptr, ptr %t245 %t257 = call ptr @realloc(ptr %t256, i64 %t255) store ptr %t257, ptr %t245 store i32 %t251, ptr %t244 br label %put25 put25: %t258 = load ptr, ptr %t245 %t259 = getelementptr inbounds ptr, ptr %t258, i32 %t246 store ptr @.str5880, ptr %t259 %t260 = add i32 %t246, 1 store i32 %t260, ptr %t243 %t261 = load ptr, ptr %t13 %t262 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 1 %t263 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 2 %t264 = getelementptr inbounds %LSlice, ptr %t261, i32 0, i32 0 %t265 = load i32, ptr %t262 %t266 = load i32, ptr %t263 %t267 = icmp sge i32 %t265, %t266 br i1 %t267, label %grow26, label %put27 grow26: %t268 = mul i32 %t266, 2 %t269 = icmp eq i32 %t266, 0 %t270 = select i1 %t269, i32 8, i32 %t268 %t271 = getelementptr ptr, ptr null, i32 1 %t272 = ptrtoint ptr %t271 to i64 %t273 = zext i32 %t270 to i64 %t274 = mul i64 %t273, %t272 %t275 = load ptr, ptr %t264 %t276 = call ptr @realloc(ptr %t275, i64 %t274) store ptr %t276, ptr %t264 store i32 %t270, ptr %t263 br label %put27 put27: %t277 = load ptr, ptr %t264 %t278 = getelementptr inbounds ptr, ptr %t277, i32 %t265 store ptr @.str5881, ptr %t278 %t279 = add i32 %t265, 1 store i32 %t279, ptr %t262 %t280 = load ptr, ptr %t6 %t281 = getelementptr inbounds %LSlice, ptr %t280, i32 0, i32 1 %t282 = getelementptr inbounds %LSlice, ptr %t280, i32 0, i32 2 %t283 = getelementptr inbounds %LSlice, ptr %t280, i32 0, i32 0 %t284 = load i32, ptr %t281 %t285 = load i32, ptr %t282 %t286 = icmp sge i32 %t284, %t285 br i1 %t286, label %grow28, label %put29 grow28: %t287 = mul i32 %t285, 2 %t288 = icmp eq i32 %t285, 0 %t289 = select i1 %t288, i32 8, i32 %t287 %t290 = getelementptr ptr, ptr null, i32 1 %t291 = ptrtoint ptr %t290 to i64 %t292 = zext i32 %t289 to i64 %t293 = mul i64 %t292, %t291 %t294 = load ptr, ptr %t283 %t295 = call ptr @realloc(ptr %t294, i64 %t293) store ptr %t295, ptr %t283 store i32 %t289, ptr %t282 br label %put29 put29: %t296 = load ptr, ptr %t283 %t297 = getelementptr inbounds ptr, ptr %t296, i32 %t284 store ptr @.str5882, ptr %t297 %t298 = add i32 %t284, 1 store i32 %t298, ptr %t281 %t299 = load ptr, ptr %t13 %t300 = getelementptr inbounds %LSlice, ptr %t299, i32 0, i32 1 %t301 = getelementptr inbounds %LSlice, ptr %t299, i32 0, i32 2 %t302 = getelementptr inbounds %LSlice, ptr %t299, i32 0, i32 0 %t303 = load i32, ptr %t300 %t304 = load i32, ptr %t301 %t305 = icmp sge i32 %t303, %t304 br i1 %t305, label %grow30, label %put31 grow30: %t306 = mul i32 %t304, 2 %t307 = icmp eq i32 %t304, 0 %t308 = select i1 %t307, i32 8, i32 %t306 %t309 = getelementptr ptr, ptr null, i32 1 %t310 = ptrtoint ptr %t309 to i64 %t311 = zext i32 %t308 to i64 %t312 = mul i64 %t311, %t310 %t313 = load ptr, ptr %t302 %t314 = call ptr @realloc(ptr %t313, i64 %t312) store ptr %t314, ptr %t302 store i32 %t308, ptr %t301 br label %put31 put31: %t315 = load ptr, ptr %t302 %t316 = getelementptr inbounds ptr, ptr %t315, i32 %t303 store ptr @.str5883, ptr %t316 %t317 = add i32 %t303, 1 store i32 %t317, ptr %t300 %t318 = load ptr, ptr %t6 %t319 = getelementptr inbounds %LSlice, ptr %t318, i32 0, i32 1 %t320 = getelementptr inbounds %LSlice, ptr %t318, i32 0, i32 2 %t321 = getelementptr inbounds %LSlice, ptr %t318, i32 0, i32 0 %t322 = load i32, ptr %t319 %t323 = load i32, ptr %t320 %t324 = icmp sge i32 %t322, %t323 br i1 %t324, label %grow32, label %put33 grow32: %t325 = mul i32 %t323, 2 %t326 = icmp eq i32 %t323, 0 %t327 = select i1 %t326, i32 8, i32 %t325 %t328 = getelementptr ptr, ptr null, i32 1 %t329 = ptrtoint ptr %t328 to i64 %t330 = zext i32 %t327 to i64 %t331 = mul i64 %t330, %t329 %t332 = load ptr, ptr %t321 %t333 = call ptr @realloc(ptr %t332, i64 %t331) store ptr %t333, ptr %t321 store i32 %t327, ptr %t320 br label %put33 put33: %t334 = load ptr, ptr %t321 %t335 = getelementptr inbounds ptr, ptr %t334, i32 %t322 store ptr @.str5884, ptr %t335 %t336 = add i32 %t322, 1 store i32 %t336, ptr %t319 %t337 = load ptr, ptr %t13 %t338 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 1 %t339 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 2 %t340 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 0 %t341 = load i32, ptr %t338 %t342 = load i32, ptr %t339 %t343 = icmp sge i32 %t341, %t342 br i1 %t343, label %grow34, label %put35 grow34: %t344 = mul i32 %t342, 2 %t345 = icmp eq i32 %t342, 0 %t346 = select i1 %t345, i32 8, i32 %t344 %t347 = getelementptr ptr, ptr null, i32 1 %t348 = ptrtoint ptr %t347 to i64 %t349 = zext i32 %t346 to i64 %t350 = mul i64 %t349, %t348 %t351 = load ptr, ptr %t340 %t352 = call ptr @realloc(ptr %t351, i64 %t350) store ptr %t352, ptr %t340 store i32 %t346, ptr %t339 br label %put35 put35: %t353 = load ptr, ptr %t340 %t354 = getelementptr inbounds ptr, ptr %t353, i32 %t341 store ptr @.str5885, ptr %t354 %t355 = add i32 %t341, 1 store i32 %t355, ptr %t338 %t356 = load ptr, ptr %t6 %t357 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 1 %t358 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 2 %t359 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 0 %t360 = load i32, ptr %t357 %t361 = load i32, ptr %t358 %t362 = icmp sge i32 %t360, %t361 br i1 %t362, label %grow36, label %put37 grow36: %t363 = mul i32 %t361, 2 %t364 = icmp eq i32 %t361, 0 %t365 = select i1 %t364, i32 8, i32 %t363 %t366 = getelementptr ptr, ptr null, i32 1 %t367 = ptrtoint ptr %t366 to i64 %t368 = zext i32 %t365 to i64 %t369 = mul i64 %t368, %t367 %t370 = load ptr, ptr %t359 %t371 = call ptr @realloc(ptr %t370, i64 %t369) store ptr %t371, ptr %t359 store i32 %t365, ptr %t358 br label %put37 put37: %t372 = load ptr, ptr %t359 %t373 = getelementptr inbounds ptr, ptr %t372, i32 %t360 store ptr @.str5886, ptr %t373 %t374 = add i32 %t360, 1 store i32 %t374, ptr %t357 %t375 = load ptr, ptr %t13 %t376 = getelementptr inbounds %LSlice, ptr %t375, i32 0, i32 1 %t377 = getelementptr inbounds %LSlice, ptr %t375, i32 0, i32 2 %t378 = getelementptr inbounds %LSlice, ptr %t375, i32 0, i32 0 %t379 = load i32, ptr %t376 %t380 = load i32, ptr %t377 %t381 = icmp sge i32 %t379, %t380 br i1 %t381, label %grow38, label %put39 grow38: %t382 = mul i32 %t380, 2 %t383 = icmp eq i32 %t380, 0 %t384 = select i1 %t383, i32 8, i32 %t382 %t385 = getelementptr ptr, ptr null, i32 1 %t386 = ptrtoint ptr %t385 to i64 %t387 = zext i32 %t384 to i64 %t388 = mul i64 %t387, %t386 %t389 = load ptr, ptr %t378 %t390 = call ptr @realloc(ptr %t389, i64 %t388) store ptr %t390, ptr %t378 store i32 %t384, ptr %t377 br label %put39 put39: %t391 = load ptr, ptr %t378 %t392 = getelementptr inbounds ptr, ptr %t391, i32 %t379 store ptr @.str5887, ptr %t392 %t393 = add i32 %t379, 1 store i32 %t393, ptr %t376 %t394 = load ptr, ptr %t6 %t395 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 1 %t396 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 2 %t397 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 0 %t398 = load i32, ptr %t395 %t399 = load i32, ptr %t396 %t400 = icmp sge i32 %t398, %t399 br i1 %t400, label %grow40, label %put41 grow40: %t401 = mul i32 %t399, 2 %t402 = icmp eq i32 %t399, 0 %t403 = select i1 %t402, i32 8, i32 %t401 %t404 = getelementptr ptr, ptr null, i32 1 %t405 = ptrtoint ptr %t404 to i64 %t406 = zext i32 %t403 to i64 %t407 = mul i64 %t406, %t405 %t408 = load ptr, ptr %t397 %t409 = call ptr @realloc(ptr %t408, i64 %t407) store ptr %t409, ptr %t397 store i32 %t403, ptr %t396 br label %put41 put41: %t410 = load ptr, ptr %t397 %t411 = getelementptr inbounds ptr, ptr %t410, i32 %t398 store ptr @.str5888, ptr %t411 %t412 = add i32 %t398, 1 store i32 %t412, ptr %t395 %t413 = load ptr, ptr %t13 %t414 = getelementptr inbounds %LSlice, ptr %t413, i32 0, i32 1 %t415 = getelementptr inbounds %LSlice, ptr %t413, i32 0, i32 2 %t416 = getelementptr inbounds %LSlice, ptr %t413, i32 0, i32 0 %t417 = load i32, ptr %t414 %t418 = load i32, ptr %t415 %t419 = icmp sge i32 %t417, %t418 br i1 %t419, label %grow42, label %put43 grow42: %t420 = mul i32 %t418, 2 %t421 = icmp eq i32 %t418, 0 %t422 = select i1 %t421, i32 8, i32 %t420 %t423 = getelementptr ptr, ptr null, i32 1 %t424 = ptrtoint ptr %t423 to i64 %t425 = zext i32 %t422 to i64 %t426 = mul i64 %t425, %t424 %t427 = load ptr, ptr %t416 %t428 = call ptr @realloc(ptr %t427, i64 %t426) store ptr %t428, ptr %t416 store i32 %t422, ptr %t415 br label %put43 put43: %t429 = load ptr, ptr %t416 %t430 = getelementptr inbounds ptr, ptr %t429, i32 %t417 store ptr @.str5889, ptr %t430 %t431 = add i32 %t417, 1 store i32 %t431, ptr %t414 %t432 = load ptr, ptr %t6 %t433 = getelementptr inbounds %LSlice, ptr %t432, i32 0, i32 1 %t434 = getelementptr inbounds %LSlice, ptr %t432, i32 0, i32 2 %t435 = getelementptr inbounds %LSlice, ptr %t432, i32 0, i32 0 %t436 = load i32, ptr %t433 %t437 = load i32, ptr %t434 %t438 = icmp sge i32 %t436, %t437 br i1 %t438, label %grow44, label %put45 grow44: %t439 = mul i32 %t437, 2 %t440 = icmp eq i32 %t437, 0 %t441 = select i1 %t440, i32 8, i32 %t439 %t442 = getelementptr ptr, ptr null, i32 1 %t443 = ptrtoint ptr %t442 to i64 %t444 = zext i32 %t441 to i64 %t445 = mul i64 %t444, %t443 %t446 = load ptr, ptr %t435 %t447 = call ptr @realloc(ptr %t446, i64 %t445) store ptr %t447, ptr %t435 store i32 %t441, ptr %t434 br label %put45 put45: %t448 = load ptr, ptr %t435 %t449 = getelementptr inbounds ptr, ptr %t448, i32 %t436 store ptr @.str5890, ptr %t449 %t450 = add i32 %t436, 1 store i32 %t450, ptr %t433 %t451 = load ptr, ptr %t13 %t452 = getelementptr inbounds %LSlice, ptr %t451, i32 0, i32 1 %t453 = getelementptr inbounds %LSlice, ptr %t451, i32 0, i32 2 %t454 = getelementptr inbounds %LSlice, ptr %t451, i32 0, i32 0 %t455 = load i32, ptr %t452 %t456 = load i32, ptr %t453 %t457 = icmp sge i32 %t455, %t456 br i1 %t457, label %grow46, label %put47 grow46: %t458 = mul i32 %t456, 2 %t459 = icmp eq i32 %t456, 0 %t460 = select i1 %t459, i32 8, i32 %t458 %t461 = getelementptr ptr, ptr null, i32 1 %t462 = ptrtoint ptr %t461 to i64 %t463 = zext i32 %t460 to i64 %t464 = mul i64 %t463, %t462 %t465 = load ptr, ptr %t454 %t466 = call ptr @realloc(ptr %t465, i64 %t464) store ptr %t466, ptr %t454 store i32 %t460, ptr %t453 br label %put47 put47: %t467 = load ptr, ptr %t454 %t468 = getelementptr inbounds ptr, ptr %t467, i32 %t455 store ptr @.str5891, ptr %t468 %t469 = add i32 %t455, 1 store i32 %t469, ptr %t452 %t470 = load ptr, ptr %t6 %t471 = getelementptr inbounds %LSlice, ptr %t470, i32 0, i32 1 %t472 = getelementptr inbounds %LSlice, ptr %t470, i32 0, i32 2 %t473 = getelementptr inbounds %LSlice, ptr %t470, i32 0, i32 0 %t474 = load i32, ptr %t471 %t475 = load i32, ptr %t472 %t476 = icmp sge i32 %t474, %t475 br i1 %t476, label %grow48, label %put49 grow48: %t477 = mul i32 %t475, 2 %t478 = icmp eq i32 %t475, 0 %t479 = select i1 %t478, i32 8, i32 %t477 %t480 = getelementptr ptr, ptr null, i32 1 %t481 = ptrtoint ptr %t480 to i64 %t482 = zext i32 %t479 to i64 %t483 = mul i64 %t482, %t481 %t484 = load ptr, ptr %t473 %t485 = call ptr @realloc(ptr %t484, i64 %t483) store ptr %t485, ptr %t473 store i32 %t479, ptr %t472 br label %put49 put49: %t486 = load ptr, ptr %t473 %t487 = getelementptr inbounds ptr, ptr %t486, i32 %t474 store ptr @.str5892, ptr %t487 %t488 = add i32 %t474, 1 store i32 %t488, ptr %t471 %t489 = load ptr, ptr %t13 %t490 = getelementptr inbounds %LSlice, ptr %t489, i32 0, i32 1 %t491 = getelementptr inbounds %LSlice, ptr %t489, i32 0, i32 2 %t492 = getelementptr inbounds %LSlice, ptr %t489, i32 0, i32 0 %t493 = load i32, ptr %t490 %t494 = load i32, ptr %t491 %t495 = icmp sge i32 %t493, %t494 br i1 %t495, label %grow50, label %put51 grow50: %t496 = mul i32 %t494, 2 %t497 = icmp eq i32 %t494, 0 %t498 = select i1 %t497, i32 8, i32 %t496 %t499 = getelementptr ptr, ptr null, i32 1 %t500 = ptrtoint ptr %t499 to i64 %t501 = zext i32 %t498 to i64 %t502 = mul i64 %t501, %t500 %t503 = load ptr, ptr %t492 %t504 = call ptr @realloc(ptr %t503, i64 %t502) store ptr %t504, ptr %t492 store i32 %t498, ptr %t491 br label %put51 put51: %t505 = load ptr, ptr %t492 %t506 = getelementptr inbounds ptr, ptr %t505, i32 %t493 store ptr @.str5893, ptr %t506 %t507 = add i32 %t493, 1 store i32 %t507, ptr %t490 %t508 = load ptr, ptr %t6 %t509 = getelementptr inbounds %LSlice, ptr %t508, i32 0, i32 1 %t510 = getelementptr inbounds %LSlice, ptr %t508, i32 0, i32 2 %t511 = getelementptr inbounds %LSlice, ptr %t508, i32 0, i32 0 %t512 = load i32, ptr %t509 %t513 = load i32, ptr %t510 %t514 = icmp sge i32 %t512, %t513 br i1 %t514, label %grow52, label %put53 grow52: %t515 = mul i32 %t513, 2 %t516 = icmp eq i32 %t513, 0 %t517 = select i1 %t516, i32 8, i32 %t515 %t518 = getelementptr ptr, ptr null, i32 1 %t519 = ptrtoint ptr %t518 to i64 %t520 = zext i32 %t517 to i64 %t521 = mul i64 %t520, %t519 %t522 = load ptr, ptr %t511 %t523 = call ptr @realloc(ptr %t522, i64 %t521) store ptr %t523, ptr %t511 store i32 %t517, ptr %t510 br label %put53 put53: %t524 = load ptr, ptr %t511 %t525 = getelementptr inbounds ptr, ptr %t524, i32 %t512 store ptr @.str5894, ptr %t525 %t526 = add i32 %t512, 1 store i32 %t526, ptr %t509 %t527 = load ptr, ptr %t13 %t528 = getelementptr inbounds %LSlice, ptr %t527, i32 0, i32 1 %t529 = getelementptr inbounds %LSlice, ptr %t527, i32 0, i32 2 %t530 = getelementptr inbounds %LSlice, ptr %t527, i32 0, i32 0 %t531 = load i32, ptr %t528 %t532 = load i32, ptr %t529 %t533 = icmp sge i32 %t531, %t532 br i1 %t533, label %grow54, label %put55 grow54: %t534 = mul i32 %t532, 2 %t535 = icmp eq i32 %t532, 0 %t536 = select i1 %t535, i32 8, i32 %t534 %t537 = getelementptr ptr, ptr null, i32 1 %t538 = ptrtoint ptr %t537 to i64 %t539 = zext i32 %t536 to i64 %t540 = mul i64 %t539, %t538 %t541 = load ptr, ptr %t530 %t542 = call ptr @realloc(ptr %t541, i64 %t540) store ptr %t542, ptr %t530 store i32 %t536, ptr %t529 br label %put55 put55: %t543 = load ptr, ptr %t530 %t544 = getelementptr inbounds ptr, ptr %t543, i32 %t531 store ptr @.str5895, ptr %t544 %t545 = add i32 %t531, 1 store i32 %t545, ptr %t528 %t546 = load ptr, ptr %t6 %t547 = getelementptr inbounds %LSlice, ptr %t546, i32 0, i32 1 %t548 = getelementptr inbounds %LSlice, ptr %t546, i32 0, i32 2 %t549 = getelementptr inbounds %LSlice, ptr %t546, i32 0, i32 0 %t550 = load i32, ptr %t547 %t551 = load i32, ptr %t548 %t552 = icmp sge i32 %t550, %t551 br i1 %t552, label %grow56, label %put57 grow56: %t553 = mul i32 %t551, 2 %t554 = icmp eq i32 %t551, 0 %t555 = select i1 %t554, i32 8, i32 %t553 %t556 = getelementptr ptr, ptr null, i32 1 %t557 = ptrtoint ptr %t556 to i64 %t558 = zext i32 %t555 to i64 %t559 = mul i64 %t558, %t557 %t560 = load ptr, ptr %t549 %t561 = call ptr @realloc(ptr %t560, i64 %t559) store ptr %t561, ptr %t549 store i32 %t555, ptr %t548 br label %put57 put57: %t562 = load ptr, ptr %t549 %t563 = getelementptr inbounds ptr, ptr %t562, i32 %t550 store ptr @.str5896, ptr %t563 %t564 = add i32 %t550, 1 store i32 %t564, ptr %t547 %t565 = load ptr, ptr %t13 %t566 = getelementptr inbounds %LSlice, ptr %t565, i32 0, i32 1 %t567 = getelementptr inbounds %LSlice, ptr %t565, i32 0, i32 2 %t568 = getelementptr inbounds %LSlice, ptr %t565, i32 0, i32 0 %t569 = load i32, ptr %t566 %t570 = load i32, ptr %t567 %t571 = icmp sge i32 %t569, %t570 br i1 %t571, label %grow58, label %put59 grow58: %t572 = mul i32 %t570, 2 %t573 = icmp eq i32 %t570, 0 %t574 = select i1 %t573, i32 8, i32 %t572 %t575 = getelementptr ptr, ptr null, i32 1 %t576 = ptrtoint ptr %t575 to i64 %t577 = zext i32 %t574 to i64 %t578 = mul i64 %t577, %t576 %t579 = load ptr, ptr %t568 %t580 = call ptr @realloc(ptr %t579, i64 %t578) store ptr %t580, ptr %t568 store i32 %t574, ptr %t567 br label %put59 put59: %t581 = load ptr, ptr %t568 %t582 = getelementptr inbounds ptr, ptr %t581, i32 %t569 store ptr @.str5897, ptr %t582 %t583 = add i32 %t569, 1 store i32 %t583, ptr %t566 %t584 = load ptr, ptr %t6 %t585 = getelementptr inbounds %LSlice, ptr %t584, i32 0, i32 1 %t586 = getelementptr inbounds %LSlice, ptr %t584, i32 0, i32 2 %t587 = getelementptr inbounds %LSlice, ptr %t584, i32 0, i32 0 %t588 = load i32, ptr %t585 %t589 = load i32, ptr %t586 %t590 = icmp sge i32 %t588, %t589 br i1 %t590, label %grow60, label %put61 grow60: %t591 = mul i32 %t589, 2 %t592 = icmp eq i32 %t589, 0 %t593 = select i1 %t592, i32 8, i32 %t591 %t594 = getelementptr ptr, ptr null, i32 1 %t595 = ptrtoint ptr %t594 to i64 %t596 = zext i32 %t593 to i64 %t597 = mul i64 %t596, %t595 %t598 = load ptr, ptr %t587 %t599 = call ptr @realloc(ptr %t598, i64 %t597) store ptr %t599, ptr %t587 store i32 %t593, ptr %t586 br label %put61 put61: %t600 = load ptr, ptr %t587 %t601 = getelementptr inbounds ptr, ptr %t600, i32 %t588 store ptr @.str5898, ptr %t601 %t602 = add i32 %t588, 1 store i32 %t602, ptr %t585 %t603 = load ptr, ptr %t13 %t604 = getelementptr inbounds %LSlice, ptr %t603, i32 0, i32 1 %t605 = getelementptr inbounds %LSlice, ptr %t603, i32 0, i32 2 %t606 = getelementptr inbounds %LSlice, ptr %t603, i32 0, i32 0 %t607 = load i32, ptr %t604 %t608 = load i32, ptr %t605 %t609 = icmp sge i32 %t607, %t608 br i1 %t609, label %grow62, label %put63 grow62: %t610 = mul i32 %t608, 2 %t611 = icmp eq i32 %t608, 0 %t612 = select i1 %t611, i32 8, i32 %t610 %t613 = getelementptr ptr, ptr null, i32 1 %t614 = ptrtoint ptr %t613 to i64 %t615 = zext i32 %t612 to i64 %t616 = mul i64 %t615, %t614 %t617 = load ptr, ptr %t606 %t618 = call ptr @realloc(ptr %t617, i64 %t616) store ptr %t618, ptr %t606 store i32 %t612, ptr %t605 br label %put63 put63: %t619 = load ptr, ptr %t606 %t620 = getelementptr inbounds ptr, ptr %t619, i32 %t607 store ptr @.str5899, ptr %t620 %t621 = add i32 %t607, 1 store i32 %t621, ptr %t604 %t622 = load ptr, ptr %t6 %t623 = getelementptr inbounds %LSlice, ptr %t622, i32 0, i32 1 %t624 = getelementptr inbounds %LSlice, ptr %t622, i32 0, i32 2 %t625 = getelementptr inbounds %LSlice, ptr %t622, i32 0, i32 0 %t626 = load i32, ptr %t623 %t627 = load i32, ptr %t624 %t628 = icmp sge i32 %t626, %t627 br i1 %t628, label %grow64, label %put65 grow64: %t629 = mul i32 %t627, 2 %t630 = icmp eq i32 %t627, 0 %t631 = select i1 %t630, i32 8, i32 %t629 %t632 = getelementptr ptr, ptr null, i32 1 %t633 = ptrtoint ptr %t632 to i64 %t634 = zext i32 %t631 to i64 %t635 = mul i64 %t634, %t633 %t636 = load ptr, ptr %t625 %t637 = call ptr @realloc(ptr %t636, i64 %t635) store ptr %t637, ptr %t625 store i32 %t631, ptr %t624 br label %put65 put65: %t638 = load ptr, ptr %t625 %t639 = getelementptr inbounds ptr, ptr %t638, i32 %t626 store ptr @.str5900, ptr %t639 %t640 = add i32 %t626, 1 store i32 %t640, ptr %t623 %t641 = load ptr, ptr %t13 %t642 = getelementptr inbounds %LSlice, ptr %t641, i32 0, i32 1 %t643 = getelementptr inbounds %LSlice, ptr %t641, i32 0, i32 2 %t644 = getelementptr inbounds %LSlice, ptr %t641, i32 0, i32 0 %t645 = load i32, ptr %t642 %t646 = load i32, ptr %t643 %t647 = icmp sge i32 %t645, %t646 br i1 %t647, label %grow66, label %put67 grow66: %t648 = mul i32 %t646, 2 %t649 = icmp eq i32 %t646, 0 %t650 = select i1 %t649, i32 8, i32 %t648 %t651 = getelementptr ptr, ptr null, i32 1 %t652 = ptrtoint ptr %t651 to i64 %t653 = zext i32 %t650 to i64 %t654 = mul i64 %t653, %t652 %t655 = load ptr, ptr %t644 %t656 = call ptr @realloc(ptr %t655, i64 %t654) store ptr %t656, ptr %t644 store i32 %t650, ptr %t643 br label %put67 put67: %t657 = load ptr, ptr %t644 %t658 = getelementptr inbounds ptr, ptr %t657, i32 %t645 store ptr @.str5901, ptr %t658 %t659 = add i32 %t645, 1 store i32 %t659, ptr %t642 %t660 = load ptr, ptr %t6 %t661 = getelementptr inbounds %LSlice, ptr %t660, i32 0, i32 1 %t662 = getelementptr inbounds %LSlice, ptr %t660, i32 0, i32 2 %t663 = getelementptr inbounds %LSlice, ptr %t660, i32 0, i32 0 %t664 = load i32, ptr %t661 %t665 = load i32, ptr %t662 %t666 = icmp sge i32 %t664, %t665 br i1 %t666, label %grow68, label %put69 grow68: %t667 = mul i32 %t665, 2 %t668 = icmp eq i32 %t665, 0 %t669 = select i1 %t668, i32 8, i32 %t667 %t670 = getelementptr ptr, ptr null, i32 1 %t671 = ptrtoint ptr %t670 to i64 %t672 = zext i32 %t669 to i64 %t673 = mul i64 %t672, %t671 %t674 = load ptr, ptr %t663 %t675 = call ptr @realloc(ptr %t674, i64 %t673) store ptr %t675, ptr %t663 store i32 %t669, ptr %t662 br label %put69 put69: %t676 = load ptr, ptr %t663 %t677 = getelementptr inbounds ptr, ptr %t676, i32 %t664 store ptr @.str5902, ptr %t677 %t678 = add i32 %t664, 1 store i32 %t678, ptr %t661 %t679 = load ptr, ptr %t13 %t680 = getelementptr inbounds %LSlice, ptr %t679, i32 0, i32 1 %t681 = getelementptr inbounds %LSlice, ptr %t679, i32 0, i32 2 %t682 = getelementptr inbounds %LSlice, ptr %t679, i32 0, i32 0 %t683 = load i32, ptr %t680 %t684 = load i32, ptr %t681 %t685 = icmp sge i32 %t683, %t684 br i1 %t685, label %grow70, label %put71 grow70: %t686 = mul i32 %t684, 2 %t687 = icmp eq i32 %t684, 0 %t688 = select i1 %t687, i32 8, i32 %t686 %t689 = getelementptr ptr, ptr null, i32 1 %t690 = ptrtoint ptr %t689 to i64 %t691 = zext i32 %t688 to i64 %t692 = mul i64 %t691, %t690 %t693 = load ptr, ptr %t682 %t694 = call ptr @realloc(ptr %t693, i64 %t692) store ptr %t694, ptr %t682 store i32 %t688, ptr %t681 br label %put71 put71: %t695 = load ptr, ptr %t682 %t696 = getelementptr inbounds ptr, ptr %t695, i32 %t683 store ptr @.str5903, ptr %t696 %t697 = add i32 %t683, 1 store i32 %t697, ptr %t680 %t698 = load ptr, ptr %t6 %t699 = getelementptr inbounds %LSlice, ptr %t698, i32 0, i32 1 %t700 = getelementptr inbounds %LSlice, ptr %t698, i32 0, i32 2 %t701 = getelementptr inbounds %LSlice, ptr %t698, i32 0, i32 0 %t702 = load i32, ptr %t699 %t703 = load i32, ptr %t700 %t704 = icmp sge i32 %t702, %t703 br i1 %t704, label %grow72, label %put73 grow72: %t705 = mul i32 %t703, 2 %t706 = icmp eq i32 %t703, 0 %t707 = select i1 %t706, i32 8, i32 %t705 %t708 = getelementptr ptr, ptr null, i32 1 %t709 = ptrtoint ptr %t708 to i64 %t710 = zext i32 %t707 to i64 %t711 = mul i64 %t710, %t709 %t712 = load ptr, ptr %t701 %t713 = call ptr @realloc(ptr %t712, i64 %t711) store ptr %t713, ptr %t701 store i32 %t707, ptr %t700 br label %put73 put73: %t714 = load ptr, ptr %t701 %t715 = getelementptr inbounds ptr, ptr %t714, i32 %t702 store ptr @.str5904, ptr %t715 %t716 = add i32 %t702, 1 store i32 %t716, ptr %t699 %t717 = load ptr, ptr %t13 %t718 = getelementptr inbounds %LSlice, ptr %t717, i32 0, i32 1 %t719 = getelementptr inbounds %LSlice, ptr %t717, i32 0, i32 2 %t720 = getelementptr inbounds %LSlice, ptr %t717, i32 0, i32 0 %t721 = load i32, ptr %t718 %t722 = load i32, ptr %t719 %t723 = icmp sge i32 %t721, %t722 br i1 %t723, label %grow74, label %put75 grow74: %t724 = mul i32 %t722, 2 %t725 = icmp eq i32 %t722, 0 %t726 = select i1 %t725, i32 8, i32 %t724 %t727 = getelementptr ptr, ptr null, i32 1 %t728 = ptrtoint ptr %t727 to i64 %t729 = zext i32 %t726 to i64 %t730 = mul i64 %t729, %t728 %t731 = load ptr, ptr %t720 %t732 = call ptr @realloc(ptr %t731, i64 %t730) store ptr %t732, ptr %t720 store i32 %t726, ptr %t719 br label %put75 put75: %t733 = load ptr, ptr %t720 %t734 = getelementptr inbounds ptr, ptr %t733, i32 %t721 store ptr @.str5905, ptr %t734 %t735 = add i32 %t721, 1 store i32 %t735, ptr %t718 %t736 = load ptr, ptr %t6 %t737 = getelementptr inbounds %LSlice, ptr %t736, i32 0, i32 1 %t738 = getelementptr inbounds %LSlice, ptr %t736, i32 0, i32 2 %t739 = getelementptr inbounds %LSlice, ptr %t736, i32 0, i32 0 %t740 = load i32, ptr %t737 %t741 = load i32, ptr %t738 %t742 = icmp sge i32 %t740, %t741 br i1 %t742, label %grow76, label %put77 grow76: %t743 = mul i32 %t741, 2 %t744 = icmp eq i32 %t741, 0 %t745 = select i1 %t744, i32 8, i32 %t743 %t746 = getelementptr ptr, ptr null, i32 1 %t747 = ptrtoint ptr %t746 to i64 %t748 = zext i32 %t745 to i64 %t749 = mul i64 %t748, %t747 %t750 = load ptr, ptr %t739 %t751 = call ptr @realloc(ptr %t750, i64 %t749) store ptr %t751, ptr %t739 store i32 %t745, ptr %t738 br label %put77 put77: %t752 = load ptr, ptr %t739 %t753 = getelementptr inbounds ptr, ptr %t752, i32 %t740 store ptr @.str5906, ptr %t753 %t754 = add i32 %t740, 1 store i32 %t754, ptr %t737 %t755 = load ptr, ptr %t13 %t756 = getelementptr inbounds %LSlice, ptr %t755, i32 0, i32 1 %t757 = getelementptr inbounds %LSlice, ptr %t755, i32 0, i32 2 %t758 = getelementptr inbounds %LSlice, ptr %t755, i32 0, i32 0 %t759 = load i32, ptr %t756 %t760 = load i32, ptr %t757 %t761 = icmp sge i32 %t759, %t760 br i1 %t761, label %grow78, label %put79 grow78: %t762 = mul i32 %t760, 2 %t763 = icmp eq i32 %t760, 0 %t764 = select i1 %t763, i32 8, i32 %t762 %t765 = getelementptr ptr, ptr null, i32 1 %t766 = ptrtoint ptr %t765 to i64 %t767 = zext i32 %t764 to i64 %t768 = mul i64 %t767, %t766 %t769 = load ptr, ptr %t758 %t770 = call ptr @realloc(ptr %t769, i64 %t768) store ptr %t770, ptr %t758 store i32 %t764, ptr %t757 br label %put79 put79: %t771 = load ptr, ptr %t758 %t772 = getelementptr inbounds ptr, ptr %t771, i32 %t759 store ptr @.str5907, ptr %t772 %t773 = add i32 %t759, 1 store i32 %t773, ptr %t756 %t774 = load ptr, ptr %t6 %t775 = getelementptr inbounds %LSlice, ptr %t774, i32 0, i32 1 %t776 = getelementptr inbounds %LSlice, ptr %t774, i32 0, i32 2 %t777 = getelementptr inbounds %LSlice, ptr %t774, i32 0, i32 0 %t778 = load i32, ptr %t775 %t779 = load i32, ptr %t776 %t780 = icmp sge i32 %t778, %t779 br i1 %t780, label %grow80, label %put81 grow80: %t781 = mul i32 %t779, 2 %t782 = icmp eq i32 %t779, 0 %t783 = select i1 %t782, i32 8, i32 %t781 %t784 = getelementptr ptr, ptr null, i32 1 %t785 = ptrtoint ptr %t784 to i64 %t786 = zext i32 %t783 to i64 %t787 = mul i64 %t786, %t785 %t788 = load ptr, ptr %t777 %t789 = call ptr @realloc(ptr %t788, i64 %t787) store ptr %t789, ptr %t777 store i32 %t783, ptr %t776 br label %put81 put81: %t790 = load ptr, ptr %t777 %t791 = getelementptr inbounds ptr, ptr %t790, i32 %t778 store ptr @.str5908, ptr %t791 %t792 = add i32 %t778, 1 store i32 %t792, ptr %t775 %t793 = load ptr, ptr %t13 %t794 = getelementptr inbounds %LSlice, ptr %t793, i32 0, i32 1 %t795 = getelementptr inbounds %LSlice, ptr %t793, i32 0, i32 2 %t796 = getelementptr inbounds %LSlice, ptr %t793, i32 0, i32 0 %t797 = load i32, ptr %t794 %t798 = load i32, ptr %t795 %t799 = icmp sge i32 %t797, %t798 br i1 %t799, label %grow82, label %put83 grow82: %t800 = mul i32 %t798, 2 %t801 = icmp eq i32 %t798, 0 %t802 = select i1 %t801, i32 8, i32 %t800 %t803 = getelementptr ptr, ptr null, i32 1 %t804 = ptrtoint ptr %t803 to i64 %t805 = zext i32 %t802 to i64 %t806 = mul i64 %t805, %t804 %t807 = load ptr, ptr %t796 %t808 = call ptr @realloc(ptr %t807, i64 %t806) store ptr %t808, ptr %t796 store i32 %t802, ptr %t795 br label %put83 put83: %t809 = load ptr, ptr %t796 %t810 = getelementptr inbounds ptr, ptr %t809, i32 %t797 store ptr @.str5909, ptr %t810 %t811 = add i32 %t797, 1 store i32 %t811, ptr %t794 %t812 = load ptr, ptr %t6 %t813 = getelementptr inbounds %LSlice, ptr %t812, i32 0, i32 1 %t814 = getelementptr inbounds %LSlice, ptr %t812, i32 0, i32 2 %t815 = getelementptr inbounds %LSlice, ptr %t812, i32 0, i32 0 %t816 = load i32, ptr %t813 %t817 = load i32, ptr %t814 %t818 = icmp sge i32 %t816, %t817 br i1 %t818, label %grow84, label %put85 grow84: %t819 = mul i32 %t817, 2 %t820 = icmp eq i32 %t817, 0 %t821 = select i1 %t820, i32 8, i32 %t819 %t822 = getelementptr ptr, ptr null, i32 1 %t823 = ptrtoint ptr %t822 to i64 %t824 = zext i32 %t821 to i64 %t825 = mul i64 %t824, %t823 %t826 = load ptr, ptr %t815 %t827 = call ptr @realloc(ptr %t826, i64 %t825) store ptr %t827, ptr %t815 store i32 %t821, ptr %t814 br label %put85 put85: %t828 = load ptr, ptr %t815 %t829 = getelementptr inbounds ptr, ptr %t828, i32 %t816 store ptr @.str5910, ptr %t829 %t830 = add i32 %t816, 1 store i32 %t830, ptr %t813 %t831 = load ptr, ptr %t13 %t832 = getelementptr inbounds %LSlice, ptr %t831, i32 0, i32 1 %t833 = getelementptr inbounds %LSlice, ptr %t831, i32 0, i32 2 %t834 = getelementptr inbounds %LSlice, ptr %t831, i32 0, i32 0 %t835 = load i32, ptr %t832 %t836 = load i32, ptr %t833 %t837 = icmp sge i32 %t835, %t836 br i1 %t837, label %grow86, label %put87 grow86: %t838 = mul i32 %t836, 2 %t839 = icmp eq i32 %t836, 0 %t840 = select i1 %t839, i32 8, i32 %t838 %t841 = getelementptr ptr, ptr null, i32 1 %t842 = ptrtoint ptr %t841 to i64 %t843 = zext i32 %t840 to i64 %t844 = mul i64 %t843, %t842 %t845 = load ptr, ptr %t834 %t846 = call ptr @realloc(ptr %t845, i64 %t844) store ptr %t846, ptr %t834 store i32 %t840, ptr %t833 br label %put87 put87: %t847 = load ptr, ptr %t834 %t848 = getelementptr inbounds ptr, ptr %t847, i32 %t835 store ptr @.str5911, ptr %t848 %t849 = add i32 %t835, 1 store i32 %t849, ptr %t832 %t850 = load ptr, ptr %t6 %t851 = getelementptr inbounds %LSlice, ptr %t850, i32 0, i32 1 %t852 = getelementptr inbounds %LSlice, ptr %t850, i32 0, i32 2 %t853 = getelementptr inbounds %LSlice, ptr %t850, i32 0, i32 0 %t854 = load i32, ptr %t851 %t855 = load i32, ptr %t852 %t856 = icmp sge i32 %t854, %t855 br i1 %t856, label %grow88, label %put89 grow88: %t857 = mul i32 %t855, 2 %t858 = icmp eq i32 %t855, 0 %t859 = select i1 %t858, i32 8, i32 %t857 %t860 = getelementptr ptr, ptr null, i32 1 %t861 = ptrtoint ptr %t860 to i64 %t862 = zext i32 %t859 to i64 %t863 = mul i64 %t862, %t861 %t864 = load ptr, ptr %t853 %t865 = call ptr @realloc(ptr %t864, i64 %t863) store ptr %t865, ptr %t853 store i32 %t859, ptr %t852 br label %put89 put89: %t866 = load ptr, ptr %t853 %t867 = getelementptr inbounds ptr, ptr %t866, i32 %t854 store ptr @.str5912, ptr %t867 %t868 = add i32 %t854, 1 store i32 %t868, ptr %t851 %t869 = load ptr, ptr %t13 %t870 = getelementptr inbounds %LSlice, ptr %t869, i32 0, i32 1 %t871 = getelementptr inbounds %LSlice, ptr %t869, i32 0, i32 2 %t872 = getelementptr inbounds %LSlice, ptr %t869, i32 0, i32 0 %t873 = load i32, ptr %t870 %t874 = load i32, ptr %t871 %t875 = icmp sge i32 %t873, %t874 br i1 %t875, label %grow90, label %put91 grow90: %t876 = mul i32 %t874, 2 %t877 = icmp eq i32 %t874, 0 %t878 = select i1 %t877, i32 8, i32 %t876 %t879 = getelementptr ptr, ptr null, i32 1 %t880 = ptrtoint ptr %t879 to i64 %t881 = zext i32 %t878 to i64 %t882 = mul i64 %t881, %t880 %t883 = load ptr, ptr %t872 %t884 = call ptr @realloc(ptr %t883, i64 %t882) store ptr %t884, ptr %t872 store i32 %t878, ptr %t871 br label %put91 put91: %t885 = load ptr, ptr %t872 %t886 = getelementptr inbounds ptr, ptr %t885, i32 %t873 store ptr @.str5913, ptr %t886 %t887 = add i32 %t873, 1 store i32 %t887, ptr %t870 %t888 = load ptr, ptr %t6 %t889 = getelementptr inbounds %LSlice, ptr %t888, i32 0, i32 1 %t890 = getelementptr inbounds %LSlice, ptr %t888, i32 0, i32 2 %t891 = getelementptr inbounds %LSlice, ptr %t888, i32 0, i32 0 %t892 = load i32, ptr %t889 %t893 = load i32, ptr %t890 %t894 = icmp sge i32 %t892, %t893 br i1 %t894, label %grow92, label %put93 grow92: %t895 = mul i32 %t893, 2 %t896 = icmp eq i32 %t893, 0 %t897 = select i1 %t896, i32 8, i32 %t895 %t898 = getelementptr ptr, ptr null, i32 1 %t899 = ptrtoint ptr %t898 to i64 %t900 = zext i32 %t897 to i64 %t901 = mul i64 %t900, %t899 %t902 = load ptr, ptr %t891 %t903 = call ptr @realloc(ptr %t902, i64 %t901) store ptr %t903, ptr %t891 store i32 %t897, ptr %t890 br label %put93 put93: %t904 = load ptr, ptr %t891 %t905 = getelementptr inbounds ptr, ptr %t904, i32 %t892 store ptr @.str5914, ptr %t905 %t906 = add i32 %t892, 1 store i32 %t906, ptr %t889 %t907 = load ptr, ptr %t13 %t908 = getelementptr inbounds %LSlice, ptr %t907, i32 0, i32 1 %t909 = getelementptr inbounds %LSlice, ptr %t907, i32 0, i32 2 %t910 = getelementptr inbounds %LSlice, ptr %t907, i32 0, i32 0 %t911 = load i32, ptr %t908 %t912 = load i32, ptr %t909 %t913 = icmp sge i32 %t911, %t912 br i1 %t913, label %grow94, label %put95 grow94: %t914 = mul i32 %t912, 2 %t915 = icmp eq i32 %t912, 0 %t916 = select i1 %t915, i32 8, i32 %t914 %t917 = getelementptr ptr, ptr null, i32 1 %t918 = ptrtoint ptr %t917 to i64 %t919 = zext i32 %t916 to i64 %t920 = mul i64 %t919, %t918 %t921 = load ptr, ptr %t910 %t922 = call ptr @realloc(ptr %t921, i64 %t920) store ptr %t922, ptr %t910 store i32 %t916, ptr %t909 br label %put95 put95: %t923 = load ptr, ptr %t910 %t924 = getelementptr inbounds ptr, ptr %t923, i32 %t911 store ptr @.str5915, ptr %t924 %t925 = add i32 %t911, 1 store i32 %t925, ptr %t908 %t926 = getelementptr %LSlice, ptr null, i32 1 %t927 = ptrtoint ptr %t926 to i64 %t928 = call ptr @malloc(i64 %t927) %t929 = getelementptr inbounds %LSlice, ptr %t928, i32 0, i32 0 store ptr null, ptr %t929 %t930 = getelementptr inbounds %LSlice, ptr %t928, i32 0, i32 1 store i32 0, ptr %t930 %t931 = getelementptr inbounds %LSlice, ptr %t928, i32 0, i32 2 store i32 0, ptr %t931 store ptr %t928, ptr %t932 %t933 = getelementptr %LSlice, ptr null, i32 1 %t934 = ptrtoint ptr %t933 to i64 %t935 = call ptr @malloc(i64 %t934) %t936 = getelementptr inbounds %LSlice, ptr %t935, i32 0, i32 0 store ptr null, ptr %t936 %t937 = getelementptr inbounds %LSlice, ptr %t935, i32 0, i32 1 store i32 0, ptr %t937 %t938 = getelementptr inbounds %LSlice, ptr %t935, i32 0, i32 2 store i32 0, ptr %t938 store ptr %t935, ptr %t939 store i32 0, ptr %t940 br label %wcond96 wcond96: %t941 = load i32, ptr %t940 %t942 = load ptr, ptr %t6 %t943 = getelementptr inbounds %LSlice, ptr %t942, i32 0, i32 1 %t944 = load i32, ptr %t943 %t945 = icmp slt i32 %t941, %t944 %t946 = zext i1 %t945 to i32 %t947 = icmp ne i32 %t946, 0 br i1 %t947, label %wbody97, label %wend98 wbody97: %t948 = load ptr, ptr %t932 %t949 = load ptr, ptr %t6 %t950 = load i32, ptr %t940 %t951 = getelementptr inbounds %LSlice, ptr %t949, i32 0, i32 0 %t952 = load ptr, ptr %t951 %t953 = getelementptr inbounds %LSlice, ptr %t949, i32 0, i32 1 %t954 = load i32, ptr %t953 %t955 = icmp ult i32 %t950, %t954 br i1 %t955, label %ixok99, label %ixbad100 ixbad100: %t956 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t956, ptr @.fmt_bounds, ptr @.str5916, i32 %t950, i32 %t954) call void @exit(i32 1) unreachable ixok99: %t957 = getelementptr inbounds ptr, ptr %t952, i32 %t950 %t958 = load ptr, ptr %t957 %t959 = call ptr @fn_emit_str_const(ptr %t958) %t960 = getelementptr inbounds %LSlice, ptr %t948, i32 0, i32 1 %t961 = getelementptr inbounds %LSlice, ptr %t948, i32 0, i32 2 %t962 = getelementptr inbounds %LSlice, ptr %t948, i32 0, i32 0 %t963 = load i32, ptr %t960 %t964 = load i32, ptr %t961 %t965 = icmp sge i32 %t963, %t964 br i1 %t965, label %grow101, label %put102 grow101: %t966 = mul i32 %t964, 2 %t967 = icmp eq i32 %t964, 0 %t968 = select i1 %t967, i32 8, i32 %t966 %t969 = getelementptr ptr, ptr null, i32 1 %t970 = ptrtoint ptr %t969 to i64 %t971 = zext i32 %t968 to i64 %t972 = mul i64 %t971, %t970 %t973 = load ptr, ptr %t962 %t974 = call ptr @realloc(ptr %t973, i64 %t972) store ptr %t974, ptr %t962 store i32 %t968, ptr %t961 br label %put102 put102: %t975 = load ptr, ptr %t962 %t976 = getelementptr inbounds ptr, ptr %t975, i32 %t963 store ptr %t959, ptr %t976 %t977 = add i32 %t963, 1 store i32 %t977, ptr %t960 %t978 = load ptr, ptr %t939 %t979 = load ptr, ptr %t13 %t980 = load i32, ptr %t940 %t981 = getelementptr inbounds %LSlice, ptr %t979, i32 0, i32 0 %t982 = load ptr, ptr %t981 %t983 = getelementptr inbounds %LSlice, ptr %t979, i32 0, i32 1 %t984 = load i32, ptr %t983 %t985 = icmp ult i32 %t980, %t984 br i1 %t985, label %ixok103, label %ixbad104 ixbad104: %t986 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t986, ptr @.fmt_bounds, ptr @.str5917, i32 %t980, i32 %t984) call void @exit(i32 1) unreachable ixok103: %t987 = getelementptr inbounds ptr, ptr %t982, i32 %t980 %t988 = load ptr, ptr %t987 %t989 = call ptr @fn_emit_str_const(ptr %t988) %t990 = getelementptr inbounds %LSlice, ptr %t978, i32 0, i32 1 %t991 = getelementptr inbounds %LSlice, ptr %t978, i32 0, i32 2 %t992 = getelementptr inbounds %LSlice, ptr %t978, i32 0, i32 0 %t993 = load i32, ptr %t990 %t994 = load i32, ptr %t991 %t995 = icmp sge i32 %t993, %t994 br i1 %t995, label %grow105, label %put106 grow105: %t996 = mul i32 %t994, 2 %t997 = icmp eq i32 %t994, 0 %t998 = select i1 %t997, i32 8, i32 %t996 %t999 = getelementptr ptr, ptr null, i32 1 %t1000 = ptrtoint ptr %t999 to i64 %t1001 = zext i32 %t998 to i64 %t1002 = mul i64 %t1001, %t1000 %t1003 = load ptr, ptr %t992 %t1004 = call ptr @realloc(ptr %t1003, i64 %t1002) store ptr %t1004, ptr %t992 store i32 %t998, ptr %t991 br label %put106 put106: %t1005 = load ptr, ptr %t992 %t1006 = getelementptr inbounds ptr, ptr %t1005, i32 %t993 store ptr %t989, ptr %t1006 %t1007 = add i32 %t993, 1 store i32 %t1007, ptr %t990 %t1008 = load i32, ptr %t940 %t1009 = add i32 %t1008, 1 store i32 %t1009, ptr %t940 br label %wcond96 wend98: %t1010 = call ptr @fn_emit_str_const(ptr @.str5918) store ptr %t1010, ptr %t1011 %t1012 = load ptr, ptr %t6 %t1013 = getelementptr inbounds %LSlice, ptr %t1012, i32 0, i32 1 %t1014 = load i32, ptr %t1013 store i32 %t1014, ptr %t1015 %t1016 = load i32, ptr %t1015 %t1017 = call ptr @fn_itoa(i32 %t1016) %t1018 = call ptr @lp_str_concat(ptr @.str5919, ptr %t1017) %t1019 = call ptr @lp_str_concat(ptr %t1018, ptr @.str5920) call void @fn_emith(ptr %t1019) store i32 0, ptr %t940 br label %wcond107 wcond107: %t1020 = load i32, ptr %t940 %t1021 = load ptr, ptr %t6 %t1022 = getelementptr inbounds %LSlice, ptr %t1021, i32 0, i32 1 %t1023 = load i32, ptr %t1022 %t1024 = icmp slt i32 %t1020, %t1023 %t1025 = zext i1 %t1024 to i32 %t1026 = icmp ne i32 %t1025, 0 br i1 %t1026, label %wbody108, label %wend109 wbody108: %t1027 = load i32, ptr %t940 %t1028 = icmp sgt i32 %t1027, 0 %t1029 = zext i1 %t1028 to i32 %t1030 = icmp ne i32 %t1029, 0 br i1 %t1030, label %then110, label %ifend112 then110: call void @fn_emith(ptr @.str5921) br label %ifend112 ifend112: %t1031 = load ptr, ptr %t932 %t1032 = load i32, ptr %t940 %t1033 = getelementptr inbounds %LSlice, ptr %t1031, i32 0, i32 0 %t1034 = load ptr, ptr %t1033 %t1035 = getelementptr inbounds %LSlice, ptr %t1031, i32 0, i32 1 %t1036 = load i32, ptr %t1035 %t1037 = icmp ult i32 %t1032, %t1036 br i1 %t1037, label %ixok113, label %ixbad114 ixbad114: %t1038 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1038, ptr @.fmt_bounds, ptr @.str5923, i32 %t1032, i32 %t1036) call void @exit(i32 1) unreachable ixok113: %t1039 = getelementptr inbounds ptr, ptr %t1034, i32 %t1032 %t1040 = load ptr, ptr %t1039 %t1041 = call ptr @lp_str_concat(ptr @.str5922, ptr %t1040) %t1042 = call ptr @lp_str_concat(ptr %t1041, ptr @.str5924) %t1043 = load ptr, ptr %t939 %t1044 = load i32, ptr %t940 %t1045 = getelementptr inbounds %LSlice, ptr %t1043, i32 0, i32 0 %t1046 = load ptr, ptr %t1045 %t1047 = getelementptr inbounds %LSlice, ptr %t1043, i32 0, i32 1 %t1048 = load i32, ptr %t1047 %t1049 = icmp ult i32 %t1044, %t1048 br i1 %t1049, label %ixok115, label %ixbad116 ixbad116: %t1050 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1050, ptr @.fmt_bounds, ptr @.str5925, i32 %t1044, i32 %t1048) call void @exit(i32 1) unreachable ixok115: %t1051 = getelementptr inbounds ptr, ptr %t1046, i32 %t1044 %t1052 = load ptr, ptr %t1051 %t1053 = call ptr @lp_str_concat(ptr %t1042, ptr %t1052) %t1054 = call ptr @lp_str_concat(ptr %t1053, ptr @.str5926) call void @fn_emith(ptr %t1054) %t1055 = load i32, ptr %t940 %t1056 = add i32 %t1055, 1 store i32 %t1056, ptr %t940 br label %wcond107 wend109: call void @fn_emith(ptr @.str5927) call void @fn_emith(ptr @.str5928) call void @fn_emith(ptr @.str5929) %t1057 = load i32, ptr %t1015 %t1058 = call ptr @fn_itoa(i32 %t1057) %t1059 = call ptr @lp_str_concat(ptr @.str5930, ptr %t1058) %t1060 = call ptr @lp_str_concat(ptr %t1059, ptr @.str5931) call void @fn_emith(ptr %t1060) %t1061 = load i32, ptr %t1015 %t1062 = call ptr @fn_itoa(i32 %t1061) %t1063 = call ptr @lp_str_concat(ptr @.str5932, ptr %t1062) %t1064 = call ptr @lp_str_concat(ptr %t1063, ptr @.str5933) call void @fn_emith(ptr %t1064) %t1065 = load i32, ptr %t1015 %t1066 = call ptr @fn_itoa(i32 %t1065) %t1067 = call ptr @lp_str_concat(ptr @.str5934, ptr %t1066) %t1068 = call ptr @lp_str_concat(ptr %t1067, ptr @.str5935) call void @fn_emith(ptr %t1068) call void @fn_emith(ptr @.str5936) %t1069 = load ptr, ptr %t1011 %t1070 = call ptr @lp_str_concat(ptr @.str5937, ptr %t1069) %t1071 = call ptr @lp_str_concat(ptr %t1070, ptr @.str5938) call void @fn_emith(ptr %t1071) call void @fn_emith(ptr @.str5939) call void @fn_emith(ptr @.str5940) call void @fn_emith(ptr @.str5941) call void @fn_emith(ptr @.str5942) call void @fn_emith(ptr @.str5943) call void @fn_emith(ptr @.str5944) call void @fn_emith(ptr @.str5945) call void @fn_emit_fs_sniff() br label %ret ret: ret void } define void @fn_emit_fs_sniff() { entry: call void @fn_emith(ptr @.str5946) call void @fn_emith(ptr @.str5947) call void @fn_emith(ptr @.str5948) call void @fn_emith(ptr @.str5949) call void @fn_emith(ptr @.str5950) call void @fn_emith(ptr @.str5951) call void @fn_emith(ptr @.str5952) call void @fn_emith(ptr @.str5953) call void @fn_emith(ptr @.str5954) call void @fn_emith(ptr @.str5955) call void @fn_emith(ptr @.str5956) call void @fn_emith(ptr @.str5957) call void @fn_emith(ptr @.str5958) call void @fn_emith(ptr @.str5959) call void @fn_emith(ptr @.str5960) call void @fn_emith(ptr @.str5961) call void @fn_emith(ptr @.str5962) call void @fn_emith(ptr @.str5963) call void @fn_emith(ptr @.str5964) call void @fn_emith(ptr @.str5965) call void @fn_emith(ptr @.str5966) call void @fn_emith(ptr @.str5967) call void @fn_emith(ptr @.str5968) call void @fn_emith(ptr @.str5969) br label %ret ret: ret void } define void @fn_use_pak() { entry: store i32 1, ptr @g_g_uses_pak store i32 1, ptr @g_g_uses_fsrt br label %ret ret: ret void } define void @fn_emit_pak_prelude() { entry: %t0 = load i32, ptr @g_g_target_win %t1 = icmp eq i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: call void @fn_emith(ptr @.str5970) call void @fn_emith(ptr @.str5971) call void @fn_emith(ptr @.str5972) call void @fn_emith(ptr @.str5973) call void @fn_emith(ptr @.str5974) call void @fn_emith(ptr @.str5975) call void @fn_emith(ptr @.str5976) br label %ifend2 ifend2: call void @fn_emith(ptr @.str5977) call void @fn_emith(ptr @.str5978) call void @fn_emith(ptr @.str5979) call void @fn_emith(ptr @.str5980) call void @fn_emith(ptr @.str5981) call void @fn_emith(ptr @.str5982) call void @fn_emith(ptr @.str5983) call void @fn_emith(ptr @.str5984) call void @fn_emith(ptr @.str5985) %t4 = load i32, ptr @g_g_windowed %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then3, label %ifend5 then3: call void @fn_emith(ptr @.str5986) call void @fn_emith(ptr @.str5987) call void @fn_emith(ptr @.str5988) call void @fn_emith(ptr @.str5989) call void @fn_emith(ptr @.str5990) call void @fn_emith(ptr @.str5991) call void @fn_emith(ptr @.str5992) call void @fn_emith(ptr @.str5993) br label %ifend5 ifend5: call void @fn_emit_pak_mount() call void @fn_emit_pak_lookup() call void @fn_emit_pak_open() call void @fn_emit_pak_boot() call void @fn_emith(ptr @.str5994) call void @fn_emith(ptr @.str5995) br label %ret ret: ret void } define void @fn_emit_pak_mount() { entry: call void @fn_emith(ptr @.str5996) call void @fn_emith(ptr @.str5997) call void @fn_emith(ptr @.str5998) call void @fn_emith(ptr @.str5999) call void @fn_emith(ptr @.str6000) call void @fn_emith(ptr @.str6001) call void @fn_emith(ptr @.str6002) call void @fn_emith(ptr @.str6003) call void @fn_emith(ptr @.str6004) call void @fn_emith(ptr @.str6005) call void @fn_emith(ptr @.str6006) br label %ret ret: ret void } define void @fn_emit_pak_lookup() { entry: call void @fn_emith(ptr @.str6007) call void @fn_emith(ptr @.str6008) call void @fn_emith(ptr @.str6009) call void @fn_emith(ptr @.str6010) call void @fn_emith(ptr @.str6011) call void @fn_emith(ptr @.str6012) call void @fn_emith(ptr @.str6013) call void @fn_emith(ptr @.str6014) call void @fn_emith(ptr @.str6015) call void @fn_emith(ptr @.str6016) call void @fn_emith(ptr @.str6017) call void @fn_emith(ptr @.str6018) call void @fn_emith(ptr @.str6019) call void @fn_emith(ptr @.str6020) call void @fn_emith(ptr @.str6021) call void @fn_emith(ptr @.str6022) call void @fn_emith(ptr @.str6023) call void @fn_emith(ptr @.str6024) call void @fn_emith(ptr @.str6025) call void @fn_emith(ptr @.str6026) call void @fn_emith(ptr @.str6027) call void @fn_emith(ptr @.str6028) call void @fn_emith(ptr @.str6029) call void @fn_emith(ptr @.str6030) call void @fn_emith(ptr @.str6031) call void @fn_emith(ptr @.str6032) call void @fn_emith(ptr @.str6033) call void @fn_emith(ptr @.str6034) call void @fn_emith(ptr @.str6035) call void @fn_emith(ptr @.str6036) call void @fn_emith(ptr @.str6037) call void @fn_emith(ptr @.str6038) call void @fn_emith(ptr @.str6039) call void @fn_emith(ptr @.str6040) call void @fn_emith(ptr @.str6041) br label %ret ret: ret void } define void @fn_emit_pak_open() { entry: call void @fn_emith(ptr @.str6042) call void @fn_emith(ptr @.str6043) call void @fn_emith(ptr @.str6044) call void @fn_emith(ptr @.str6045) call void @fn_emith(ptr @.str6046) call void @fn_emith(ptr @.str6047) br label %ret ret: ret void } define void @fn_emit_pak_boot() { entry: call void @fn_emith(ptr @.str6048) call void @fn_emith(ptr @.str6049) call void @fn_emith(ptr @.str6050) call void @fn_emith(ptr @.str6051) call void @fn_emith(ptr @.str6052) call void @fn_emith(ptr @.str6053) call void @fn_emith(ptr @.str6054) call void @fn_emith(ptr @.str6055) call void @fn_emith(ptr @.str6056) call void @fn_emith(ptr @.str6057) call void @fn_emith(ptr @.str6058) call void @fn_emith(ptr @.str6059) call void @fn_emith(ptr @.str6060) call void @fn_emith(ptr @.str6061) call void @fn_emith(ptr @.str6062) call void @fn_emith(ptr @.str6063) call void @fn_emith(ptr @.str6064) call void @fn_emith(ptr @.str6065) call void @fn_emith(ptr @.str6066) call void @fn_emith(ptr @.str6067) call void @fn_emith(ptr @.str6068) call void @fn_emith(ptr @.str6069) call void @fn_emith(ptr @.str6070) call void @fn_emith(ptr @.str6071) call void @fn_emith(ptr @.str6072) call void @fn_emith(ptr @.str6073) call void @fn_emith(ptr @.str6074) call void @fn_emith(ptr @.str6075) call void @fn_emith(ptr @.str6076) call void @fn_emith(ptr @.str6077) call void @fn_emith(ptr @.str6078) call void @fn_emith(ptr @.str6079) call void @fn_emith(ptr @.str6080) %t0 = load i32, ptr @g_g_target_win %t1 = icmp ne i32 %t0, 0 br i1 %t1, label %then0, label %else1 then0: call void @fn_emith(ptr @.str6081) call void @fn_emith(ptr @.str6082) br label %ifend2 else1: call void @fn_emith(ptr @.str6083) call void @fn_emith(ptr @.str6084) br label %ifend2 ifend2: call void @fn_emith(ptr @.str6085) call void @fn_emith(ptr @.str6086) call void @fn_emith(ptr @.str6087) call void @fn_emith(ptr @.str6088) call void @fn_emith(ptr @.str6089) call void @fn_emith(ptr @.str6090) call void @fn_emith(ptr @.str6091) call void @fn_emith(ptr @.str6092) call void @fn_emith(ptr @.str6093) call void @fn_emith(ptr @.str6094) %t2 = load i32, ptr @g_g_windowed %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then3, label %ifend5 then3: call void @fn_emith(ptr @.str6095) br label %ifend5 ifend5: call void @fn_emith(ptr @.str6096) call void @fn_emith(ptr @.str6097) %t4 = load i32, ptr @g_g_windowed %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then6, label %ifend8 then6: call void @fn_emith(ptr @.str6098) call void @fn_emith(ptr @.str6099) call void @fn_emith(ptr @.str6100) call void @fn_emith(ptr @.str6101) call void @fn_emith(ptr @.str6102) call void @fn_emith(ptr @.str6103) call void @fn_emith(ptr @.str6104) call void @fn_emith(ptr @.str6105) call void @fn_emith(ptr @.str6106) call void @fn_emith(ptr @.str6107) call void @fn_emith(ptr @.str6108) call void @fn_emith(ptr @.str6109) call void @fn_emith(ptr @.str6110) call void @fn_emith(ptr @.str6111) call void @fn_emith(ptr @.str6112) call void @fn_emith(ptr @.str6113) br label %ifend8 ifend8: br label %ret ret: ret void } define void @fn_emit_win_prelude() { entry: call void @fn_emith(ptr @.str6114) call void @fn_emith(ptr @.str6115) call void @fn_emith(ptr @.str6116) call void @fn_emith(ptr @.str6117) call void @fn_emith(ptr @.str6118) call void @fn_emith(ptr @.str6119) call void @fn_emith(ptr @.str6120) call void @fn_emith(ptr @.str6121) call void @fn_emith(ptr @.str6122) call void @fn_emith(ptr @.str6123) call void @fn_emith(ptr @.str6124) call void @fn_emith(ptr @.str6125) call void @fn_emith(ptr @.str6126) call void @fn_emith(ptr @.str6127) call void @fn_emith(ptr @.str6128) call void @fn_emith(ptr @.str6129) call void @fn_emith(ptr @.str6130) call void @fn_emith(ptr @.str6131) call void @fn_emith(ptr @.str6132) call void @fn_emith(ptr @.str6133) call void @fn_emith(ptr @.str6134) call void @fn_emith(ptr @.str6135) call void @fn_emith(ptr @.str6136) call void @fn_emith(ptr @.str6137) call void @fn_emith(ptr @.str6138) call void @fn_emith(ptr @.str6139) call void @fn_emith(ptr @.str6140) call void @fn_emith(ptr @.str6141) call void @fn_emith(ptr @.str6142) call void @fn_emith(ptr @.str6143) call void @fn_emith(ptr @.str6144) call void @fn_emith(ptr @.str6145) call void @fn_emith(ptr @.str6146) call void @fn_emith(ptr @.str6147) call void @fn_emith(ptr @.str6148) call void @fn_emith(ptr @.str6149) call void @fn_emith(ptr @.str6150) call void @fn_emit_win_stdio() call void @fn_emit_win_files() call void @fn_emit_win_dirs() call void @fn_emit_win_maps() call void @fn_emit_win_process() br label %ret ret: ret void } define void @fn_emit_win_stdio() { entry: call void @fn_emith(ptr @.str6151) call void @fn_emith(ptr @.str6152) call void @fn_emith(ptr @.str6153) call void @fn_emith(ptr @.str6154) call void @fn_emith(ptr @.str6155) call void @fn_emith(ptr @.str6156) call void @fn_emith(ptr @.str6157) call void @fn_emith(ptr @.str6158) call void @fn_emith(ptr @.str6159) call void @fn_emith(ptr @.str6160) call void @fn_emith(ptr @.str6161) call void @fn_emith(ptr @.str6162) br label %ret ret: ret void } define void @fn_emit_win_files() { entry: call void @fn_emith(ptr @.str6163) call void @fn_emith(ptr @.str6164) call void @fn_emith(ptr @.str6165) call void @fn_emith(ptr @.str6166) call void @fn_emith(ptr @.str6167) call void @fn_emith(ptr @.str6168) call void @fn_emith(ptr @.str6169) call void @fn_emith(ptr @.str6170) call void @fn_emith(ptr @.str6171) call void @fn_emith(ptr @.str6172) call void @fn_emith(ptr @.str6173) call void @fn_emith(ptr @.str6174) call void @fn_emith(ptr @.str6175) call void @fn_emith(ptr @.str6176) call void @fn_emith(ptr @.str6177) call void @fn_emith(ptr @.str6178) call void @fn_emith(ptr @.str6179) call void @fn_emith(ptr @.str6180) call void @fn_emith(ptr @.str6181) call void @fn_emith(ptr @.str6182) br label %ret ret: ret void } define void @fn_emit_win_dirs() { entry: call void @fn_emith(ptr @.str6183) call void @fn_emith(ptr @.str6184) call void @fn_emith(ptr @.str6185) call void @fn_emith(ptr @.str6186) call void @fn_emith(ptr @.str6187) call void @fn_emith(ptr @.str6188) call void @fn_emith(ptr @.str6189) call void @fn_emith(ptr @.str6190) call void @fn_emith(ptr @.str6191) call void @fn_emith(ptr @.str6192) call void @fn_emith(ptr @.str6193) call void @fn_emith(ptr @.str6194) call void @fn_emith(ptr @.str6195) call void @fn_emith(ptr @.str6196) br label %ret ret: ret void } define void @fn_emit_win_maps() { entry: call void @fn_emith(ptr @.str6197) call void @fn_emith(ptr @.str6198) call void @fn_emith(ptr @.str6199) call void @fn_emith(ptr @.str6200) call void @fn_emith(ptr @.str6201) call void @fn_emith(ptr @.str6202) call void @fn_emith(ptr @.str6203) call void @fn_emith(ptr @.str6204) call void @fn_emith(ptr @.str6205) call void @fn_emith(ptr @.str6206) call void @fn_emith(ptr @.str6207) call void @fn_emith(ptr @.str6208) call void @fn_emith(ptr @.str6209) call void @fn_emith(ptr @.str6210) call void @fn_emith(ptr @.str6211) br label %ret ret: ret void } define void @fn_emit_win_process() { entry: call void @fn_emith(ptr @.str6212) call void @fn_emith(ptr @.str6213) call void @fn_emith(ptr @.str6214) call void @fn_emith(ptr @.str6215) call void @fn_emith(ptr @.str6216) call void @fn_emith(ptr @.str6217) call void @fn_emith(ptr @.str6218) call void @fn_emith(ptr @.str6219) call void @fn_emith(ptr @.str6220) call void @fn_emith(ptr @.str6221) call void @fn_emith(ptr @.str6222) br label %ret ret: ret void } define void @fn_emit_os_win_known(ptr %arg_k_dot, ptr %arg_k_slash) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr %t5 = alloca ptr %t7 = alloca ptr %t9 = alloca ptr %t11 = alloca ptr %t13 = alloca ptr %t15 = alloca ptr store ptr %arg_k_dot, ptr %t0 store ptr %arg_k_slash, ptr %t1 %t2 = call ptr @fn_emit_str_const(ptr @.str6223) store ptr %t2, ptr %t3 %t4 = call ptr @fn_emit_str_const(ptr @.str6224) store ptr %t4, ptr %t5 %t6 = call ptr @fn_emit_str_const(ptr @.str6225) store ptr %t6, ptr %t7 %t8 = call ptr @fn_emit_str_const(ptr @.str6226) store ptr %t8, ptr %t9 %t10 = call ptr @fn_emit_str_const(ptr @.str6227) store ptr %t10, ptr %t11 %t12 = call ptr @fn_emit_str_const(ptr @.str6228) store ptr %t12, ptr %t13 %t14 = call ptr @fn_emit_str_const(ptr @.str6229) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t3 %t17 = call ptr @lp_str_concat(ptr @.str6230, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str6231) %t19 = load ptr, ptr %t0 %t20 = call ptr @lp_str_concat(ptr %t18, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str6232) call void @fn_emith(ptr %t21) call void @fn_emith(ptr @.str6233) call void @fn_emith(ptr @.str6234) call void @fn_emith(ptr @.str6235) call void @fn_emith(ptr @.str6236) %t22 = load ptr, ptr %t1 %t23 = call ptr @lp_str_concat(ptr @.str6237, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str6238) call void @fn_emith(ptr %t24) %t25 = load ptr, ptr %t5 %t26 = call ptr @lp_str_concat(ptr @.str6239, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str6240) call void @fn_emith(ptr %t27) %t28 = load ptr, ptr %t5 %t29 = call ptr @lp_str_concat(ptr @.str6241, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str6242) call void @fn_emith(ptr %t30) %t31 = load ptr, ptr %t7 %t32 = call ptr @lp_str_concat(ptr @.str6243, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str6244) call void @fn_emith(ptr %t33) %t34 = load ptr, ptr %t9 %t35 = call ptr @lp_str_concat(ptr @.str6245, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str6246) %t37 = load ptr, ptr %t0 %t38 = call ptr @lp_str_concat(ptr %t36, ptr %t37) %t39 = call ptr @lp_str_concat(ptr %t38, ptr @.str6247) %t40 = load ptr, ptr %t11 %t41 = call ptr @lp_str_concat(ptr %t39, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str6248) call void @fn_emith(ptr %t42) %t43 = load ptr, ptr %t13 %t44 = call ptr @lp_str_concat(ptr @.str6249, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str6250) call void @fn_emith(ptr %t45) %t46 = load ptr, ptr %t15 %t47 = call ptr @lp_str_concat(ptr @.str6251, ptr %t46) %t48 = call ptr @lp_str_concat(ptr %t47, ptr @.str6252) call void @fn_emith(ptr %t48) call void @fn_emith(ptr @.str6253) call void @fn_emith(ptr @.str6254) call void @fn_emith(ptr @.str6255) call void @fn_emith(ptr @.str6256) call void @fn_emith(ptr @.str6257) call void @fn_emith(ptr @.str6258) call void @fn_emith(ptr @.str6259) br label %ret ret: ret void } define ptr @fn_list_elem_addr(ptr %arg_h, ptr %arg_elt, ptr %arg_idx) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t5 = alloca ptr %t9 = alloca ptr store ptr %arg_h, ptr %t0 store ptr %arg_elt, ptr %t1 store ptr %arg_idx, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_slice_field(ptr %t3, i32 0) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @lp_str_concat(ptr @.str6260, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t1 %t11 = call ptr @lp_str_concat(ptr @.str6261, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str6262) %t13 = load ptr, ptr %t9 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str6263) %t16 = load ptr, ptr %t2 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %retval br label %ret ret: %t19 = load ptr, ptr %retval ret ptr %t19 } define i32 @fn_is_list_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t30 = alloca i32 %t55 = alloca i32 %t56 = alloca i32 %t74 = alloca i32 %t75 = alloca i32 %t76 = alloca i32 %t101 = alloca i32 %t102 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str6264) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str6265) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str6266) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str6267) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str6268) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t30 br i1 %t33, label %scend10, label %sc9 sc9: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str6269) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t30 br label %scend10 scend10: %t39 = load i32, ptr %t30 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t29 br i1 %t40, label %scend12, label %sc11 sc11: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str6270) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t29 br label %scend12 scend12: %t46 = load i32, ptr %t29 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t28 br i1 %t47, label %scend14, label %sc13 sc13: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str6271) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t28 br label %scend14 scend14: %t53 = load i32, ptr %t28 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: %t57 = load ptr, ptr %t0 %t58 = call i32 @lp_str_eq(ptr %t57, ptr @.str6272) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t56 br i1 %t59, label %scend19, label %sc18 sc18: %t61 = load ptr, ptr %t0 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str6273) %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t56 br label %scend19 scend19: %t65 = load i32, ptr %t56 %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t55 br i1 %t66, label %scend21, label %sc20 sc20: %t68 = load ptr, ptr %t0 %t69 = call i32 @lp_str_eq(ptr %t68, ptr @.str6274) %t70 = icmp ne i32 %t69, 0 %t71 = zext i1 %t70 to i32 store i32 %t71, ptr %t55 br label %scend21 scend21: %t72 = load i32, ptr %t55 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then22, label %ifend24 then22: store i32 1, ptr %retval br label %ret ifend24: %t77 = load ptr, ptr %t0 %t78 = call i32 @lp_str_eq(ptr %t77, ptr @.str6275) %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t76 br i1 %t79, label %scend26, label %sc25 sc25: %t81 = load ptr, ptr %t0 %t82 = call i32 @lp_str_eq(ptr %t81, ptr @.str6276) %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t76 br label %scend26 scend26: %t85 = load i32, ptr %t76 %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t75 br i1 %t86, label %scend28, label %sc27 sc27: %t88 = load ptr, ptr %t0 %t89 = call i32 @lp_str_eq(ptr %t88, ptr @.str6277) %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 store i32 %t91, ptr %t75 br label %scend28 scend28: %t92 = load i32, ptr %t75 %t93 = icmp ne i32 %t92, 0 %t94 = zext i1 %t93 to i32 store i32 %t94, ptr %t74 br i1 %t93, label %scend30, label %sc29 sc29: %t95 = load ptr, ptr %t0 %t96 = call i32 @lp_str_eq(ptr %t95, ptr @.str6278) %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t74 br label %scend30 scend30: %t99 = load i32, ptr %t74 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then31, label %ifend33 then31: store i32 1, ptr %retval br label %ret ifend33: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str6279) %t105 = icmp ne i32 %t104, 0 %t106 = zext i1 %t105 to i32 store i32 %t106, ptr %t102 br i1 %t105, label %scend35, label %sc34 sc34: %t107 = load ptr, ptr %t0 %t108 = call i32 @lp_str_eq(ptr %t107, ptr @.str6280) %t109 = icmp ne i32 %t108, 0 %t110 = zext i1 %t109 to i32 store i32 %t110, ptr %t102 br label %scend35 scend35: %t111 = load i32, ptr %t102 %t112 = icmp ne i32 %t111, 0 %t113 = zext i1 %t112 to i32 store i32 %t113, ptr %t101 br i1 %t112, label %scend37, label %sc36 sc36: %t114 = load ptr, ptr %t0 %t115 = call i32 @lp_str_eq(ptr %t114, ptr @.str6281) %t116 = icmp ne i32 %t115, 0 %t117 = zext i1 %t116 to i32 store i32 %t117, ptr %t101 br label %scend37 scend37: %t118 = load i32, ptr %t101 %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then38, label %ifend40 then38: store i32 1, ptr %retval br label %ret ifend40: store i32 0, ptr %retval br label %ret ret: %t120 = load i32, ptr %retval ret i32 %t120 } define void @fn_list_grow_if_full(ptr %arg_h, ptr %arg_elt) { entry: %t0 = alloca ptr %t1 = alloca ptr %t4 = alloca ptr %t7 = alloca ptr %t10 = alloca ptr %t14 = alloca ptr %t18 = alloca ptr %t25 = alloca ptr %t27 = alloca ptr %t29 = alloca ptr %t38 = alloca ptr %t43 = alloca ptr %t50 = alloca ptr %t53 = alloca ptr %t58 = alloca ptr %t65 = alloca ptr %t69 = alloca ptr %t77 = alloca ptr store ptr %arg_h, ptr %t0 store ptr %arg_elt, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_slice_field(ptr %t2, i32 1) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = call ptr @fn_slice_field(ptr %t5, i32 2) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t0 %t9 = call ptr @fn_slice_field(ptr %t8, i32 0) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t4 %t12 = call ptr @lp_str_concat(ptr @.str6282, ptr %t11) %t13 = call ptr @fn_emit_bind(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t7 %t16 = call ptr @lp_str_concat(ptr @.str6283, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t14 %t20 = call ptr @lp_str_concat(ptr @.str6284, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str6285) %t22 = load ptr, ptr %t18 %t23 = call ptr @lp_str_concat(ptr %t21, ptr %t22) %t24 = call ptr @fn_emit_bind(ptr %t23) store ptr %t24, ptr %t25 %t26 = call ptr @fn_lbl(ptr @.str6286) store ptr %t26, ptr %t27 %t28 = call ptr @fn_lbl(ptr @.str6287) store ptr %t28, ptr %t29 call void @fn_emit(ptr @.str6288) %t30 = load ptr, ptr %t25 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str6289) %t31 = load ptr, ptr %t27 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str6290) %t32 = load ptr, ptr %t29 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str6291) %t33 = load ptr, ptr %t27 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str6292) %t34 = load ptr, ptr %t18 %t35 = call ptr @lp_str_concat(ptr @.str6293, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str6294) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t18 %t40 = call ptr @lp_str_concat(ptr @.str6295, ptr %t39) %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str6296) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = call ptr @lp_str_concat(ptr @.str6297, ptr %t44) %t46 = call ptr @lp_str_concat(ptr %t45, ptr @.str6298) %t47 = load ptr, ptr %t38 %t48 = call ptr @lp_str_concat(ptr %t46, ptr %t47) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t1 %t52 = call ptr @fn_emit_sizeof(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t50 %t55 = call ptr @lp_str_concat(ptr @.str6299, ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str6300) %t57 = call ptr @fn_emit_bind(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = call ptr @lp_str_concat(ptr @.str6301, ptr %t59) %t61 = call ptr @lp_str_concat(ptr %t60, ptr @.str6302) %t62 = load ptr, ptr %t53 %t63 = call ptr @lp_str_concat(ptr %t61, ptr %t62) %t64 = call ptr @fn_emit_bind(ptr %t63) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t10 %t67 = call ptr @lp_str_concat(ptr @.str6303, ptr %t66) %t68 = call ptr @fn_emit_bind(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t69 %t71 = call ptr @lp_str_concat(ptr @.str6304, ptr %t70) %t72 = call ptr @lp_str_concat(ptr %t71, ptr @.str6305) %t73 = load ptr, ptr %t65 %t74 = call ptr @lp_str_concat(ptr %t72, ptr %t73) %t75 = call ptr @lp_str_concat(ptr %t74, ptr @.str6306) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 call void @fn_emit(ptr @.str6307) %t78 = load ptr, ptr %t77 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str6308) %t79 = load ptr, ptr %t10 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str6309) call void @fn_emit(ptr @.str6310) %t80 = load ptr, ptr %t50 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str6311) %t81 = load ptr, ptr %t7 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str6312) call void @fn_emit(ptr @.str6313) %t82 = load ptr, ptr %t29 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str6314) %t83 = load ptr, ptr %t29 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str6315) br label %ret ret: ret void } define ptr @fn_gep_at(ptr %arg_base, ptr %arg_elt, ptr %arg_idx) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr store ptr %arg_base, ptr %t0 store ptr %arg_elt, ptr %t1 store ptr %arg_idx, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str6316, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str6317) %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str6318) %t9 = load ptr, ptr %t2 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define ptr @fn_emit_takeright(ptr %arg_elt, i32 %arg_mode, ptr %arg_fnsym, ptr %arg_keyll, ptr %arg_av, ptr %arg_bv) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t39 = alloca ptr %t57 = alloca ptr %t71 = alloca ptr store ptr %arg_elt, ptr %t0 store i32 %arg_mode, ptr %t1 store ptr %arg_fnsym, ptr %t2 store ptr %arg_keyll, ptr %t3 store ptr %arg_av, ptr %t4 store ptr %arg_bv, ptr %t5 %t6 = load i32, ptr %t1 %t7 = icmp eq i32 %t6, 3 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = call ptr @lp_str_concat(ptr @.str6319, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str6320) %t13 = load ptr, ptr %t5 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str6321) %t16 = load ptr, ptr %t4 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %retval br label %ret ifend2: %t19 = load i32, ptr %t1 %t20 = icmp eq i32 %t19, 0 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then3, label %ifend5 then3: %t23 = load ptr, ptr %t2 %t24 = call ptr @lp_str_concat(ptr @.str6322, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str6323) %t26 = load ptr, ptr %t0 %t27 = call ptr @lp_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str6324) %t29 = load ptr, ptr %t4 %t30 = call ptr @lp_str_concat(ptr %t28, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str6325) %t32 = load ptr, ptr %t0 %t33 = call ptr @lp_str_concat(ptr %t31, ptr %t32) %t34 = call ptr @lp_str_concat(ptr %t33, ptr @.str6326) %t35 = load ptr, ptr %t5 %t36 = call ptr @lp_str_concat(ptr %t34, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str6327) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t39 %t41 = call ptr @lp_str_concat(ptr @.str6328, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str6329) %t43 = call ptr @fn_emit_bind(ptr %t42) store ptr %t43, ptr %retval br label %ret ifend5: %t44 = load ptr, ptr %t3 %t45 = call ptr @lp_str_concat(ptr @.str6330, ptr %t44) %t46 = call ptr @lp_str_concat(ptr %t45, ptr @.str6331) %t47 = load ptr, ptr %t2 %t48 = call ptr @lp_str_concat(ptr %t46, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str6332) %t50 = load ptr, ptr %t0 %t51 = call ptr @lp_str_concat(ptr %t49, ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t51, ptr @.str6333) %t53 = load ptr, ptr %t4 %t54 = call ptr @lp_str_concat(ptr %t52, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str6334) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t3 %t59 = call ptr @lp_str_concat(ptr @.str6335, ptr %t58) %t60 = call ptr @lp_str_concat(ptr %t59, ptr @.str6336) %t61 = load ptr, ptr %t2 %t62 = call ptr @lp_str_concat(ptr %t60, ptr %t61) %t63 = call ptr @lp_str_concat(ptr %t62, ptr @.str6337) %t64 = load ptr, ptr %t0 %t65 = call ptr @lp_str_concat(ptr %t63, ptr %t64) %t66 = call ptr @lp_str_concat(ptr %t65, ptr @.str6338) %t67 = load ptr, ptr %t5 %t68 = call ptr @lp_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @lp_str_concat(ptr %t68, ptr @.str6339) %t70 = call ptr @fn_emit_bind(ptr %t69) store ptr %t70, ptr %t71 %t72 = load i32, ptr %t1 %t73 = icmp eq i32 %t72, 2 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then6, label %ifend8 then6: %t76 = load ptr, ptr %t3 %t77 = call ptr @lp_str_concat(ptr @.str6340, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str6341) %t79 = load ptr, ptr %t57 %t80 = call ptr @lp_str_concat(ptr %t78, ptr %t79) %t81 = call ptr @lp_str_concat(ptr %t80, ptr @.str6342) %t82 = load ptr, ptr %t71 %t83 = call ptr @lp_str_concat(ptr %t81, ptr %t82) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %retval br label %ret ifend8: %t85 = load ptr, ptr %t3 %t86 = call ptr @lp_str_concat(ptr @.str6343, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str6344) %t88 = load ptr, ptr %t57 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @lp_str_concat(ptr %t89, ptr @.str6345) %t91 = load ptr, ptr %t71 %t92 = call ptr @lp_str_concat(ptr %t90, ptr %t91) %t93 = call ptr @fn_emit_bind(ptr %t92) store ptr %t93, ptr %retval br label %ret ret: %t94 = load ptr, ptr %retval ret ptr %t94 } define void @fn_emit_merge_sort(ptr %arg_h, ptr %arg_elt, i32 %arg_mode, ptr %arg_fnsym, ptr %arg_keyll) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca ptr %t4 = alloca ptr %t7 = alloca ptr %t11 = alloca ptr %t14 = alloca ptr %t18 = alloca ptr %t21 = alloca ptr %t26 = alloca ptr %t33 = alloca ptr %t38 = alloca ptr %t40 = alloca ptr %t43 = alloca ptr %t45 = alloca ptr %t47 = alloca ptr %t53 = alloca ptr %t60 = alloca ptr %t69 = alloca ptr %t71 = alloca ptr %t74 = alloca ptr %t76 = alloca ptr %t78 = alloca ptr %t84 = alloca ptr %t91 = alloca ptr %t102 = alloca ptr %t109 = alloca ptr %t119 = alloca ptr %t126 = alloca ptr %t133 = alloca ptr %t143 = alloca ptr %t145 = alloca ptr %t149 = alloca ptr %t153 = alloca ptr %t157 = alloca ptr %t159 = alloca ptr %t161 = alloca ptr %t167 = alloca ptr %t171 = alloca ptr %t178 = alloca ptr %t185 = alloca ptr %t192 = alloca ptr %t201 = alloca ptr %t208 = alloca ptr %t213 = alloca ptr %t220 = alloca ptr %t228 = alloca ptr %t232 = alloca ptr %t237 = alloca ptr %t239 = alloca ptr %t241 = alloca ptr %t243 = alloca ptr %t255 = alloca ptr %t267 = alloca ptr %t276 = alloca ptr %t282 = alloca ptr %t284 = alloca ptr %t286 = alloca ptr %t292 = alloca ptr %t299 = alloca ptr %t308 = alloca ptr %t315 = alloca ptr %t319 = alloca ptr %t324 = alloca ptr %t332 = alloca ptr %t339 = alloca ptr %t345 = alloca ptr %t347 = alloca ptr %t349 = alloca ptr %t355 = alloca ptr %t362 = alloca ptr %t371 = alloca ptr %t378 = alloca ptr %t382 = alloca ptr %t387 = alloca ptr %t395 = alloca ptr %t402 = alloca ptr %t408 = alloca ptr %t412 = alloca ptr %t414 = alloca ptr %t416 = alloca ptr %t422 = alloca ptr %t429 = alloca ptr %t438 = alloca ptr %t445 = alloca ptr %t450 = alloca ptr %t458 = alloca ptr %t469 = alloca ptr store ptr %arg_h, ptr %t0 store ptr %arg_elt, ptr %t1 store i32 %arg_mode, ptr %t2 store ptr %arg_fnsym, ptr %t3 store ptr %arg_keyll, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = call ptr @fn_slice_field(ptr %t5, i32 0) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr @.str6346, ptr %t8) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t0 %t13 = call ptr @fn_slice_field(ptr %t12, i32 1) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = call ptr @lp_str_concat(ptr @.str6347, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t1 %t20 = call ptr @fn_emit_sizeof(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t18 %t23 = call ptr @lp_str_concat(ptr @.str6348, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str6349) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t26 %t28 = call ptr @lp_str_concat(ptr @.str6350, ptr %t27) %t29 = call ptr @lp_str_concat(ptr %t28, ptr @.str6351) %t30 = load ptr, ptr %t21 %t31 = call ptr @lp_str_concat(ptr %t29, ptr %t30) %t32 = call ptr @fn_emit_bind(ptr %t31) store ptr %t32, ptr %t33 %t34 = load ptr, ptr %t33 %t35 = call ptr @lp_str_concat(ptr @.str6352, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str6353) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = call ptr @fn_emit_alloca(ptr @.str6354) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 call void @fn_store_at(ptr @.str6355, ptr @.str6356, ptr %t41) %t42 = call ptr @fn_lbl(ptr @.str6357) store ptr %t42, ptr %t43 %t44 = call ptr @fn_lbl(ptr @.str6358) store ptr %t44, ptr %t45 %t46 = call ptr @fn_lbl(ptr @.str6359) store ptr %t46, ptr %t47 call void @fn_emit(ptr @.str6360) %t48 = load ptr, ptr %t43 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str6361) %t49 = load ptr, ptr %t43 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str6362) %t50 = load ptr, ptr %t40 %t51 = call ptr @lp_str_concat(ptr @.str6363, ptr %t50) %t52 = call ptr @fn_emit_bind(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = call ptr @lp_str_concat(ptr @.str6364, ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str6365) %t57 = load ptr, ptr %t18 %t58 = call ptr @lp_str_concat(ptr %t56, ptr %t57) %t59 = call ptr @fn_emit_bind(ptr %t58) store ptr %t59, ptr %t60 call void @fn_emit(ptr @.str6366) %t61 = load ptr, ptr %t60 call void @fn_emit(ptr %t61) call void @fn_emit(ptr @.str6367) %t62 = load ptr, ptr %t45 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str6368) %t63 = load ptr, ptr %t47 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str6369) %t64 = load ptr, ptr %t45 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str6370) %t65 = load ptr, ptr %t53 %t66 = call ptr @lp_str_concat(ptr @.str6371, ptr %t65) %t67 = call ptr @lp_str_concat(ptr %t66, ptr @.str6372) %t68 = call ptr @fn_emit_bind(ptr %t67) store ptr %t68, ptr %t69 %t70 = call ptr @fn_emit_alloca(ptr @.str6373) store ptr %t70, ptr %t71 %t72 = load ptr, ptr %t71 call void @fn_store_at(ptr @.str6374, ptr @.str6375, ptr %t72) %t73 = call ptr @fn_lbl(ptr @.str6376) store ptr %t73, ptr %t74 %t75 = call ptr @fn_lbl(ptr @.str6377) store ptr %t75, ptr %t76 %t77 = call ptr @fn_lbl(ptr @.str6378) store ptr %t77, ptr %t78 call void @fn_emit(ptr @.str6379) %t79 = load ptr, ptr %t74 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str6380) %t80 = load ptr, ptr %t74 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str6381) %t81 = load ptr, ptr %t71 %t82 = call ptr @lp_str_concat(ptr @.str6382, ptr %t81) %t83 = call ptr @fn_emit_bind(ptr %t82) store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t84 %t86 = call ptr @lp_str_concat(ptr @.str6383, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str6384) %t88 = load ptr, ptr %t18 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @fn_emit_bind(ptr %t89) store ptr %t90, ptr %t91 call void @fn_emit(ptr @.str6385) %t92 = load ptr, ptr %t91 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str6386) %t93 = load ptr, ptr %t76 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str6387) %t94 = load ptr, ptr %t78 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str6388) %t95 = load ptr, ptr %t76 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str6389) %t96 = load ptr, ptr %t84 %t97 = call ptr @lp_str_concat(ptr @.str6390, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str6391) %t99 = load ptr, ptr %t53 %t100 = call ptr @lp_str_concat(ptr %t98, ptr %t99) %t101 = call ptr @fn_emit_bind(ptr %t100) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t102 %t104 = call ptr @lp_str_concat(ptr @.str6392, ptr %t103) %t105 = call ptr @lp_str_concat(ptr %t104, ptr @.str6393) %t106 = load ptr, ptr %t18 %t107 = call ptr @lp_str_concat(ptr %t105, ptr %t106) %t108 = call ptr @fn_emit_bind(ptr %t107) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t109 %t111 = call ptr @lp_str_concat(ptr @.str6394, ptr %t110) %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str6395) %t113 = load ptr, ptr %t102 %t114 = call ptr @lp_str_concat(ptr %t112, ptr %t113) %t115 = call ptr @lp_str_concat(ptr %t114, ptr @.str6396) %t116 = load ptr, ptr %t18 %t117 = call ptr @lp_str_concat(ptr %t115, ptr %t116) %t118 = call ptr @fn_emit_bind(ptr %t117) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t84 %t121 = call ptr @lp_str_concat(ptr @.str6397, ptr %t120) %t122 = call ptr @lp_str_concat(ptr %t121, ptr @.str6398) %t123 = load ptr, ptr %t69 %t124 = call ptr @lp_str_concat(ptr %t122, ptr %t123) %t125 = call ptr @fn_emit_bind(ptr %t124) store ptr %t125, ptr %t126 %t127 = load ptr, ptr %t126 %t128 = call ptr @lp_str_concat(ptr @.str6399, ptr %t127) %t129 = call ptr @lp_str_concat(ptr %t128, ptr @.str6400) %t130 = load ptr, ptr %t18 %t131 = call ptr @lp_str_concat(ptr %t129, ptr %t130) %t132 = call ptr @fn_emit_bind(ptr %t131) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t133 %t135 = call ptr @lp_str_concat(ptr @.str6401, ptr %t134) %t136 = call ptr @lp_str_concat(ptr %t135, ptr @.str6402) %t137 = load ptr, ptr %t126 %t138 = call ptr @lp_str_concat(ptr %t136, ptr %t137) %t139 = call ptr @lp_str_concat(ptr %t138, ptr @.str6403) %t140 = load ptr, ptr %t18 %t141 = call ptr @lp_str_concat(ptr %t139, ptr %t140) %t142 = call ptr @fn_emit_bind(ptr %t141) store ptr %t142, ptr %t143 %t144 = call ptr @fn_emit_alloca(ptr @.str6404) store ptr %t144, ptr %t145 %t146 = load ptr, ptr %t84 %t147 = load ptr, ptr %t145 call void @fn_store_at(ptr @.str6405, ptr %t146, ptr %t147) %t148 = call ptr @fn_emit_alloca(ptr @.str6406) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t119 %t151 = load ptr, ptr %t149 call void @fn_store_at(ptr @.str6407, ptr %t150, ptr %t151) %t152 = call ptr @fn_emit_alloca(ptr @.str6408) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t84 %t155 = load ptr, ptr %t153 call void @fn_store_at(ptr @.str6409, ptr %t154, ptr %t155) %t156 = call ptr @fn_lbl(ptr @.str6410) store ptr %t156, ptr %t157 %t158 = call ptr @fn_lbl(ptr @.str6411) store ptr %t158, ptr %t159 %t160 = call ptr @fn_lbl(ptr @.str6412) store ptr %t160, ptr %t161 call void @fn_emit(ptr @.str6413) %t162 = load ptr, ptr %t157 call void @fn_emit(ptr %t162) call void @fn_emit(ptr @.str6414) %t163 = load ptr, ptr %t157 call void @fn_emit(ptr %t163) call void @fn_emit(ptr @.str6415) %t164 = load ptr, ptr %t145 %t165 = call ptr @lp_str_concat(ptr @.str6416, ptr %t164) %t166 = call ptr @fn_emit_bind(ptr %t165) store ptr %t166, ptr %t167 %t168 = load ptr, ptr %t149 %t169 = call ptr @lp_str_concat(ptr @.str6417, ptr %t168) %t170 = call ptr @fn_emit_bind(ptr %t169) store ptr %t170, ptr %t171 %t172 = load ptr, ptr %t167 %t173 = call ptr @lp_str_concat(ptr @.str6418, ptr %t172) %t174 = call ptr @lp_str_concat(ptr %t173, ptr @.str6419) %t175 = load ptr, ptr %t119 %t176 = call ptr @lp_str_concat(ptr %t174, ptr %t175) %t177 = call ptr @fn_emit_bind(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t171 %t180 = call ptr @lp_str_concat(ptr @.str6420, ptr %t179) %t181 = call ptr @lp_str_concat(ptr %t180, ptr @.str6421) %t182 = load ptr, ptr %t143 %t183 = call ptr @lp_str_concat(ptr %t181, ptr %t182) %t184 = call ptr @fn_emit_bind(ptr %t183) store ptr %t184, ptr %t185 %t186 = load ptr, ptr %t178 %t187 = call ptr @lp_str_concat(ptr @.str6422, ptr %t186) %t188 = call ptr @lp_str_concat(ptr %t187, ptr @.str6423) %t189 = load ptr, ptr %t185 %t190 = call ptr @lp_str_concat(ptr %t188, ptr %t189) %t191 = call ptr @fn_emit_bind(ptr %t190) store ptr %t191, ptr %t192 call void @fn_emit(ptr @.str6424) %t193 = load ptr, ptr %t192 call void @fn_emit(ptr %t193) call void @fn_emit(ptr @.str6425) %t194 = load ptr, ptr %t159 call void @fn_emit(ptr %t194) call void @fn_emit(ptr @.str6426) %t195 = load ptr, ptr %t161 call void @fn_emit(ptr %t195) call void @fn_emit(ptr @.str6427) %t196 = load ptr, ptr %t159 call void @fn_emit(ptr %t196) call void @fn_emit(ptr @.str6428) %t197 = load ptr, ptr %t11 %t198 = load ptr, ptr %t1 %t199 = load ptr, ptr %t167 %t200 = call ptr @fn_gep_at(ptr %t197, ptr %t198, ptr %t199) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t1 %t203 = call ptr @lp_str_concat(ptr @.str6429, ptr %t202) %t204 = call ptr @lp_str_concat(ptr %t203, ptr @.str6430) %t205 = load ptr, ptr %t201 %t206 = call ptr @lp_str_concat(ptr %t204, ptr %t205) %t207 = call ptr @fn_emit_bind(ptr %t206) store ptr %t207, ptr %t208 %t209 = load ptr, ptr %t11 %t210 = load ptr, ptr %t1 %t211 = load ptr, ptr %t171 %t212 = call ptr @fn_gep_at(ptr %t209, ptr %t210, ptr %t211) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t1 %t215 = call ptr @lp_str_concat(ptr @.str6431, ptr %t214) %t216 = call ptr @lp_str_concat(ptr %t215, ptr @.str6432) %t217 = load ptr, ptr %t213 %t218 = call ptr @lp_str_concat(ptr %t216, ptr %t217) %t219 = call ptr @fn_emit_bind(ptr %t218) store ptr %t219, ptr %t220 %t221 = load ptr, ptr %t1 %t222 = load i32, ptr %t2 %t223 = load ptr, ptr %t3 %t224 = load ptr, ptr %t4 %t225 = load ptr, ptr %t208 %t226 = load ptr, ptr %t220 %t227 = call ptr @fn_emit_takeright(ptr %t221, i32 %t222, ptr %t223, ptr %t224, ptr %t225, ptr %t226) store ptr %t227, ptr %t228 %t229 = load ptr, ptr %t153 %t230 = call ptr @lp_str_concat(ptr @.str6433, ptr %t229) %t231 = call ptr @fn_emit_bind(ptr %t230) store ptr %t231, ptr %t232 %t233 = load ptr, ptr %t38 %t234 = load ptr, ptr %t1 %t235 = load ptr, ptr %t232 %t236 = call ptr @fn_gep_at(ptr %t233, ptr %t234, ptr %t235) store ptr %t236, ptr %t237 %t238 = call ptr @fn_lbl(ptr @.str6434) store ptr %t238, ptr %t239 %t240 = call ptr @fn_lbl(ptr @.str6435) store ptr %t240, ptr %t241 %t242 = call ptr @fn_lbl(ptr @.str6436) store ptr %t242, ptr %t243 call void @fn_emit(ptr @.str6437) %t244 = load ptr, ptr %t228 call void @fn_emit(ptr %t244) call void @fn_emit(ptr @.str6438) %t245 = load ptr, ptr %t239 call void @fn_emit(ptr %t245) call void @fn_emit(ptr @.str6439) %t246 = load ptr, ptr %t241 call void @fn_emit(ptr %t246) call void @fn_emit(ptr @.str6440) %t247 = load ptr, ptr %t239 call void @fn_emit(ptr %t247) call void @fn_emit(ptr @.str6441) call void @fn_emit(ptr @.str6442) %t248 = load ptr, ptr %t1 call void @fn_emit(ptr %t248) call void @fn_emit(ptr @.str6443) %t249 = load ptr, ptr %t220 call void @fn_emit(ptr %t249) call void @fn_emit(ptr @.str6444) %t250 = load ptr, ptr %t237 call void @fn_emit(ptr %t250) call void @fn_emit(ptr @.str6445) %t251 = load ptr, ptr %t171 %t252 = call ptr @lp_str_concat(ptr @.str6446, ptr %t251) %t253 = call ptr @lp_str_concat(ptr %t252, ptr @.str6447) %t254 = call ptr @fn_emit_bind(ptr %t253) store ptr %t254, ptr %t255 %t256 = load ptr, ptr %t255 %t257 = load ptr, ptr %t149 call void @fn_store_at(ptr @.str6448, ptr %t256, ptr %t257) call void @fn_emit(ptr @.str6449) %t258 = load ptr, ptr %t243 call void @fn_emit(ptr %t258) call void @fn_emit(ptr @.str6450) %t259 = load ptr, ptr %t241 call void @fn_emit(ptr %t259) call void @fn_emit(ptr @.str6451) call void @fn_emit(ptr @.str6452) %t260 = load ptr, ptr %t1 call void @fn_emit(ptr %t260) call void @fn_emit(ptr @.str6453) %t261 = load ptr, ptr %t208 call void @fn_emit(ptr %t261) call void @fn_emit(ptr @.str6454) %t262 = load ptr, ptr %t237 call void @fn_emit(ptr %t262) call void @fn_emit(ptr @.str6455) %t263 = load ptr, ptr %t167 %t264 = call ptr @lp_str_concat(ptr @.str6456, ptr %t263) %t265 = call ptr @lp_str_concat(ptr %t264, ptr @.str6457) %t266 = call ptr @fn_emit_bind(ptr %t265) store ptr %t266, ptr %t267 %t268 = load ptr, ptr %t267 %t269 = load ptr, ptr %t145 call void @fn_store_at(ptr @.str6458, ptr %t268, ptr %t269) call void @fn_emit(ptr @.str6459) %t270 = load ptr, ptr %t243 call void @fn_emit(ptr %t270) call void @fn_emit(ptr @.str6460) %t271 = load ptr, ptr %t243 call void @fn_emit(ptr %t271) call void @fn_emit(ptr @.str6461) %t272 = load ptr, ptr %t232 %t273 = call ptr @lp_str_concat(ptr @.str6462, ptr %t272) %t274 = call ptr @lp_str_concat(ptr %t273, ptr @.str6463) %t275 = call ptr @fn_emit_bind(ptr %t274) store ptr %t275, ptr %t276 %t277 = load ptr, ptr %t276 %t278 = load ptr, ptr %t153 call void @fn_store_at(ptr @.str6464, ptr %t277, ptr %t278) call void @fn_emit(ptr @.str6465) %t279 = load ptr, ptr %t157 call void @fn_emit(ptr %t279) call void @fn_emit(ptr @.str6466) %t280 = load ptr, ptr %t161 call void @fn_emit(ptr %t280) call void @fn_emit(ptr @.str6467) %t281 = call ptr @fn_lbl(ptr @.str6468) store ptr %t281, ptr %t282 %t283 = call ptr @fn_lbl(ptr @.str6469) store ptr %t283, ptr %t284 %t285 = call ptr @fn_lbl(ptr @.str6470) store ptr %t285, ptr %t286 call void @fn_emit(ptr @.str6471) %t287 = load ptr, ptr %t282 call void @fn_emit(ptr %t287) call void @fn_emit(ptr @.str6472) %t288 = load ptr, ptr %t282 call void @fn_emit(ptr %t288) call void @fn_emit(ptr @.str6473) %t289 = load ptr, ptr %t145 %t290 = call ptr @lp_str_concat(ptr @.str6474, ptr %t289) %t291 = call ptr @fn_emit_bind(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t292 %t294 = call ptr @lp_str_concat(ptr @.str6475, ptr %t293) %t295 = call ptr @lp_str_concat(ptr %t294, ptr @.str6476) %t296 = load ptr, ptr %t119 %t297 = call ptr @lp_str_concat(ptr %t295, ptr %t296) %t298 = call ptr @fn_emit_bind(ptr %t297) store ptr %t298, ptr %t299 call void @fn_emit(ptr @.str6477) %t300 = load ptr, ptr %t299 call void @fn_emit(ptr %t300) call void @fn_emit(ptr @.str6478) %t301 = load ptr, ptr %t284 call void @fn_emit(ptr %t301) call void @fn_emit(ptr @.str6479) %t302 = load ptr, ptr %t286 call void @fn_emit(ptr %t302) call void @fn_emit(ptr @.str6480) %t303 = load ptr, ptr %t284 call void @fn_emit(ptr %t303) call void @fn_emit(ptr @.str6481) %t304 = load ptr, ptr %t11 %t305 = load ptr, ptr %t1 %t306 = load ptr, ptr %t292 %t307 = call ptr @fn_gep_at(ptr %t304, ptr %t305, ptr %t306) store ptr %t307, ptr %t308 %t309 = load ptr, ptr %t1 %t310 = call ptr @lp_str_concat(ptr @.str6482, ptr %t309) %t311 = call ptr @lp_str_concat(ptr %t310, ptr @.str6483) %t312 = load ptr, ptr %t308 %t313 = call ptr @lp_str_concat(ptr %t311, ptr %t312) %t314 = call ptr @fn_emit_bind(ptr %t313) store ptr %t314, ptr %t315 %t316 = load ptr, ptr %t153 %t317 = call ptr @lp_str_concat(ptr @.str6484, ptr %t316) %t318 = call ptr @fn_emit_bind(ptr %t317) store ptr %t318, ptr %t319 %t320 = load ptr, ptr %t38 %t321 = load ptr, ptr %t1 %t322 = load ptr, ptr %t319 %t323 = call ptr @fn_gep_at(ptr %t320, ptr %t321, ptr %t322) store ptr %t323, ptr %t324 call void @fn_emit(ptr @.str6485) %t325 = load ptr, ptr %t1 call void @fn_emit(ptr %t325) call void @fn_emit(ptr @.str6486) %t326 = load ptr, ptr %t315 call void @fn_emit(ptr %t326) call void @fn_emit(ptr @.str6487) %t327 = load ptr, ptr %t324 call void @fn_emit(ptr %t327) call void @fn_emit(ptr @.str6488) %t328 = load ptr, ptr %t292 %t329 = call ptr @lp_str_concat(ptr @.str6489, ptr %t328) %t330 = call ptr @lp_str_concat(ptr %t329, ptr @.str6490) %t331 = call ptr @fn_emit_bind(ptr %t330) store ptr %t331, ptr %t332 %t333 = load ptr, ptr %t332 %t334 = load ptr, ptr %t145 call void @fn_store_at(ptr @.str6491, ptr %t333, ptr %t334) %t335 = load ptr, ptr %t319 %t336 = call ptr @lp_str_concat(ptr @.str6492, ptr %t335) %t337 = call ptr @lp_str_concat(ptr %t336, ptr @.str6493) %t338 = call ptr @fn_emit_bind(ptr %t337) store ptr %t338, ptr %t339 %t340 = load ptr, ptr %t339 %t341 = load ptr, ptr %t153 call void @fn_store_at(ptr @.str6494, ptr %t340, ptr %t341) call void @fn_emit(ptr @.str6495) %t342 = load ptr, ptr %t282 call void @fn_emit(ptr %t342) call void @fn_emit(ptr @.str6496) %t343 = load ptr, ptr %t286 call void @fn_emit(ptr %t343) call void @fn_emit(ptr @.str6497) %t344 = call ptr @fn_lbl(ptr @.str6498) store ptr %t344, ptr %t345 %t346 = call ptr @fn_lbl(ptr @.str6499) store ptr %t346, ptr %t347 %t348 = call ptr @fn_lbl(ptr @.str6500) store ptr %t348, ptr %t349 call void @fn_emit(ptr @.str6501) %t350 = load ptr, ptr %t345 call void @fn_emit(ptr %t350) call void @fn_emit(ptr @.str6502) %t351 = load ptr, ptr %t345 call void @fn_emit(ptr %t351) call void @fn_emit(ptr @.str6503) %t352 = load ptr, ptr %t149 %t353 = call ptr @lp_str_concat(ptr @.str6504, ptr %t352) %t354 = call ptr @fn_emit_bind(ptr %t353) store ptr %t354, ptr %t355 %t356 = load ptr, ptr %t355 %t357 = call ptr @lp_str_concat(ptr @.str6505, ptr %t356) %t358 = call ptr @lp_str_concat(ptr %t357, ptr @.str6506) %t359 = load ptr, ptr %t143 %t360 = call ptr @lp_str_concat(ptr %t358, ptr %t359) %t361 = call ptr @fn_emit_bind(ptr %t360) store ptr %t361, ptr %t362 call void @fn_emit(ptr @.str6507) %t363 = load ptr, ptr %t362 call void @fn_emit(ptr %t363) call void @fn_emit(ptr @.str6508) %t364 = load ptr, ptr %t347 call void @fn_emit(ptr %t364) call void @fn_emit(ptr @.str6509) %t365 = load ptr, ptr %t349 call void @fn_emit(ptr %t365) call void @fn_emit(ptr @.str6510) %t366 = load ptr, ptr %t347 call void @fn_emit(ptr %t366) call void @fn_emit(ptr @.str6511) %t367 = load ptr, ptr %t11 %t368 = load ptr, ptr %t1 %t369 = load ptr, ptr %t355 %t370 = call ptr @fn_gep_at(ptr %t367, ptr %t368, ptr %t369) store ptr %t370, ptr %t371 %t372 = load ptr, ptr %t1 %t373 = call ptr @lp_str_concat(ptr @.str6512, ptr %t372) %t374 = call ptr @lp_str_concat(ptr %t373, ptr @.str6513) %t375 = load ptr, ptr %t371 %t376 = call ptr @lp_str_concat(ptr %t374, ptr %t375) %t377 = call ptr @fn_emit_bind(ptr %t376) store ptr %t377, ptr %t378 %t379 = load ptr, ptr %t153 %t380 = call ptr @lp_str_concat(ptr @.str6514, ptr %t379) %t381 = call ptr @fn_emit_bind(ptr %t380) store ptr %t381, ptr %t382 %t383 = load ptr, ptr %t38 %t384 = load ptr, ptr %t1 %t385 = load ptr, ptr %t382 %t386 = call ptr @fn_gep_at(ptr %t383, ptr %t384, ptr %t385) store ptr %t386, ptr %t387 call void @fn_emit(ptr @.str6515) %t388 = load ptr, ptr %t1 call void @fn_emit(ptr %t388) call void @fn_emit(ptr @.str6516) %t389 = load ptr, ptr %t378 call void @fn_emit(ptr %t389) call void @fn_emit(ptr @.str6517) %t390 = load ptr, ptr %t387 call void @fn_emit(ptr %t390) call void @fn_emit(ptr @.str6518) %t391 = load ptr, ptr %t355 %t392 = call ptr @lp_str_concat(ptr @.str6519, ptr %t391) %t393 = call ptr @lp_str_concat(ptr %t392, ptr @.str6520) %t394 = call ptr @fn_emit_bind(ptr %t393) store ptr %t394, ptr %t395 %t396 = load ptr, ptr %t395 %t397 = load ptr, ptr %t149 call void @fn_store_at(ptr @.str6521, ptr %t396, ptr %t397) %t398 = load ptr, ptr %t382 %t399 = call ptr @lp_str_concat(ptr @.str6522, ptr %t398) %t400 = call ptr @lp_str_concat(ptr %t399, ptr @.str6523) %t401 = call ptr @fn_emit_bind(ptr %t400) store ptr %t401, ptr %t402 %t403 = load ptr, ptr %t402 %t404 = load ptr, ptr %t153 call void @fn_store_at(ptr @.str6524, ptr %t403, ptr %t404) call void @fn_emit(ptr @.str6525) %t405 = load ptr, ptr %t345 call void @fn_emit(ptr %t405) call void @fn_emit(ptr @.str6526) %t406 = load ptr, ptr %t349 call void @fn_emit(ptr %t406) call void @fn_emit(ptr @.str6527) %t407 = call ptr @fn_emit_alloca(ptr @.str6528) store ptr %t407, ptr %t408 %t409 = load ptr, ptr %t84 %t410 = load ptr, ptr %t408 call void @fn_store_at(ptr @.str6529, ptr %t409, ptr %t410) %t411 = call ptr @fn_lbl(ptr @.str6530) store ptr %t411, ptr %t412 %t413 = call ptr @fn_lbl(ptr @.str6531) store ptr %t413, ptr %t414 %t415 = call ptr @fn_lbl(ptr @.str6532) store ptr %t415, ptr %t416 call void @fn_emit(ptr @.str6533) %t417 = load ptr, ptr %t412 call void @fn_emit(ptr %t417) call void @fn_emit(ptr @.str6534) %t418 = load ptr, ptr %t412 call void @fn_emit(ptr %t418) call void @fn_emit(ptr @.str6535) %t419 = load ptr, ptr %t408 %t420 = call ptr @lp_str_concat(ptr @.str6536, ptr %t419) %t421 = call ptr @fn_emit_bind(ptr %t420) store ptr %t421, ptr %t422 %t423 = load ptr, ptr %t422 %t424 = call ptr @lp_str_concat(ptr @.str6537, ptr %t423) %t425 = call ptr @lp_str_concat(ptr %t424, ptr @.str6538) %t426 = load ptr, ptr %t143 %t427 = call ptr @lp_str_concat(ptr %t425, ptr %t426) %t428 = call ptr @fn_emit_bind(ptr %t427) store ptr %t428, ptr %t429 call void @fn_emit(ptr @.str6539) %t430 = load ptr, ptr %t429 call void @fn_emit(ptr %t430) call void @fn_emit(ptr @.str6540) %t431 = load ptr, ptr %t414 call void @fn_emit(ptr %t431) call void @fn_emit(ptr @.str6541) %t432 = load ptr, ptr %t416 call void @fn_emit(ptr %t432) call void @fn_emit(ptr @.str6542) %t433 = load ptr, ptr %t414 call void @fn_emit(ptr %t433) call void @fn_emit(ptr @.str6543) %t434 = load ptr, ptr %t38 %t435 = load ptr, ptr %t1 %t436 = load ptr, ptr %t422 %t437 = call ptr @fn_gep_at(ptr %t434, ptr %t435, ptr %t436) store ptr %t437, ptr %t438 %t439 = load ptr, ptr %t1 %t440 = call ptr @lp_str_concat(ptr @.str6544, ptr %t439) %t441 = call ptr @lp_str_concat(ptr %t440, ptr @.str6545) %t442 = load ptr, ptr %t438 %t443 = call ptr @lp_str_concat(ptr %t441, ptr %t442) %t444 = call ptr @fn_emit_bind(ptr %t443) store ptr %t444, ptr %t445 %t446 = load ptr, ptr %t11 %t447 = load ptr, ptr %t1 %t448 = load ptr, ptr %t422 %t449 = call ptr @fn_gep_at(ptr %t446, ptr %t447, ptr %t448) store ptr %t449, ptr %t450 call void @fn_emit(ptr @.str6546) %t451 = load ptr, ptr %t1 call void @fn_emit(ptr %t451) call void @fn_emit(ptr @.str6547) %t452 = load ptr, ptr %t445 call void @fn_emit(ptr %t452) call void @fn_emit(ptr @.str6548) %t453 = load ptr, ptr %t450 call void @fn_emit(ptr %t453) call void @fn_emit(ptr @.str6549) %t454 = load ptr, ptr %t422 %t455 = call ptr @lp_str_concat(ptr @.str6550, ptr %t454) %t456 = call ptr @lp_str_concat(ptr %t455, ptr @.str6551) %t457 = call ptr @fn_emit_bind(ptr %t456) store ptr %t457, ptr %t458 %t459 = load ptr, ptr %t458 %t460 = load ptr, ptr %t408 call void @fn_store_at(ptr @.str6552, ptr %t459, ptr %t460) call void @fn_emit(ptr @.str6553) %t461 = load ptr, ptr %t412 call void @fn_emit(ptr %t461) call void @fn_emit(ptr @.str6554) %t462 = load ptr, ptr %t416 call void @fn_emit(ptr %t462) call void @fn_emit(ptr @.str6555) %t463 = load ptr, ptr %t84 %t464 = call ptr @lp_str_concat(ptr @.str6556, ptr %t463) %t465 = call ptr @lp_str_concat(ptr %t464, ptr @.str6557) %t466 = load ptr, ptr %t69 %t467 = call ptr @lp_str_concat(ptr %t465, ptr %t466) %t468 = call ptr @fn_emit_bind(ptr %t467) store ptr %t468, ptr %t469 %t470 = load ptr, ptr %t469 %t471 = load ptr, ptr %t71 call void @fn_store_at(ptr @.str6558, ptr %t470, ptr %t471) call void @fn_emit(ptr @.str6559) %t472 = load ptr, ptr %t74 call void @fn_emit(ptr %t472) call void @fn_emit(ptr @.str6560) %t473 = load ptr, ptr %t78 call void @fn_emit(ptr %t473) call void @fn_emit(ptr @.str6561) %t474 = load ptr, ptr %t69 %t475 = load ptr, ptr %t40 call void @fn_store_at(ptr @.str6562, ptr %t474, ptr %t475) call void @fn_emit(ptr @.str6563) %t476 = load ptr, ptr %t43 call void @fn_emit(ptr %t476) call void @fn_emit(ptr @.str6564) %t477 = load ptr, ptr %t47 call void @fn_emit(ptr %t477) call void @fn_emit(ptr @.str6565) call void @fn_emit(ptr @.str6566) %t478 = load ptr, ptr %t38 call void @fn_emit(ptr %t478) call void @fn_emit(ptr @.str6567) br label %ret ret: ret void } define ptr @fn_sort_fn_arg(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t45 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t6, 2 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = call ptr @lp_str_concat(ptr @.str6568, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str6569) call void @fn_perr(ptr %t12) br label %ifend2 ifend2: %t13 = load ptr, ptr %t1 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 1, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str6570, i32 1, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 1 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp ne i32 %t25, 33 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: %t29 = load ptr, ptr %t0 %t30 = call ptr @lp_str_concat(ptr @.str6571, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str6572) call void @fn_perr(ptr %t31) br label %ifend7 ifend7: %t32 = load ptr, ptr %t1 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 7 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 1, %t38 br i1 %t39, label %ixok8, label %ixbad9 ixbad9: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str6573, i32 1, i32 %t38) call void @exit(i32 1) unreachable ixok8: %t41 = getelementptr inbounds ptr, ptr %t36, i32 1 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 1 %t44 = load ptr, ptr %t43 store ptr %t44, ptr %t45 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_find_fn(ptr %t46) %t48 = icmp eq ptr %t47, null %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then10, label %ifend12 then10: %t51 = load ptr, ptr %t0 %t52 = call ptr @lp_str_concat(ptr @.str6574, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str6575) %t54 = load ptr, ptr %t45 %t55 = call ptr @lp_str_concat(ptr %t53, ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str6576) call void @fn_perr(ptr %t56) br label %ifend12 ifend12: %t57 = load ptr, ptr %t45 store ptr %t57, ptr %retval br label %ret ret: %t58 = load ptr, ptr %retval ret ptr %t58 } define ptr @fn_emit_list_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t27 = alloca ptr %t40 = alloca ptr %t69 = alloca ptr %t84 = alloca ptr %t87 = alloca ptr %t91 = alloca ptr %t94 = alloca ptr %t106 = alloca ptr %t121 = alloca ptr %t126 = alloca ptr %t131 = alloca ptr %t146 = alloca ptr %t151 = alloca ptr %t156 = alloca ptr %t163 = alloca ptr %t184 = alloca ptr %t197 = alloca ptr %t204 = alloca ptr %t211 = alloca ptr %t218 = alloca ptr %t225 = alloca ptr %t233 = alloca i32 %t256 = alloca ptr %t260 = alloca ptr %t262 = alloca ptr %t265 = alloca ptr %t268 = alloca ptr %t270 = alloca ptr %t272 = alloca ptr %t274 = alloca ptr %t276 = alloca ptr %t282 = alloca ptr %t289 = alloca ptr %t298 = alloca ptr %t305 = alloca ptr %t317 = alloca ptr %t330 = alloca ptr %t338 = alloca ptr %t348 = alloca ptr %t369 = alloca ptr %t382 = alloca ptr %t388 = alloca ptr %t390 = alloca ptr %t394 = alloca ptr %t396 = alloca ptr %t398 = alloca ptr %t404 = alloca ptr %t413 = alloca ptr %t422 = alloca ptr %t427 = alloca ptr %t434 = alloca ptr %t439 = alloca ptr %t453 = alloca ptr %t463 = alloca ptr %t482 = alloca ptr %t486 = alloca ptr %t491 = alloca ptr %t493 = alloca ptr %t499 = alloca ptr %t501 = alloca ptr %t503 = alloca ptr %t509 = alloca ptr %t516 = alloca ptr %t525 = alloca ptr %t530 = alloca ptr %t537 = alloca ptr %t542 = alloca ptr %t568 = alloca ptr %t572 = alloca ptr %t574 = alloca ptr %t577 = alloca ptr %t580 = alloca ptr %t582 = alloca ptr %t584 = alloca ptr %t586 = alloca ptr %t588 = alloca ptr %t594 = alloca ptr %t601 = alloca ptr %t605 = alloca ptr %t610 = alloca ptr %t617 = alloca ptr %t626 = alloca ptr %t633 = alloca ptr %t645 = alloca ptr %t658 = alloca ptr %t666 = alloca ptr %t671 = alloca ptr %t673 = alloca ptr %t675 = alloca ptr %t684 = alloca ptr %t686 = alloca ptr %t690 = alloca ptr %t692 = alloca ptr %t694 = alloca ptr %t700 = alloca ptr %t707 = alloca ptr %t716 = alloca ptr %t721 = alloca ptr %t728 = alloca ptr %t733 = alloca ptr %t752 = alloca ptr %t757 = alloca ptr %t759 = alloca ptr %t761 = alloca ptr %t763 = alloca ptr %t771 = alloca ptr %t773 = alloca ptr %t776 = alloca ptr %t778 = alloca ptr %t780 = alloca ptr %t786 = alloca ptr %t793 = alloca ptr %t802 = alloca ptr %t809 = alloca ptr %t811 = alloca ptr %t816 = alloca ptr %t820 = alloca ptr %t822 = alloca ptr %t824 = alloca ptr %t830 = alloca ptr %t835 = alloca ptr %t840 = alloca ptr %t847 = alloca ptr %t857 = alloca ptr %t864 = alloca ptr %t873 = alloca ptr %t878 = alloca ptr %t886 = alloca ptr %t894 = alloca ptr %t899 = alloca ptr %t904 = alloca ptr %t912 = alloca ptr %t930 = alloca ptr %t946 = alloca i32 %t960 = alloca ptr %t963 = alloca ptr %t981 = alloca ptr %t982 = alloca i32 %t999 = alloca i32 %t1012 = alloca ptr %t1014 = alloca ptr %t1017 = alloca ptr %t1022 = alloca ptr %t1026 = alloca ptr %t1028 = alloca ptr %t1030 = alloca ptr %t1036 = alloca ptr %t1040 = alloca ptr %t1047 = alloca ptr %t1056 = alloca ptr %t1061 = alloca ptr %t1068 = alloca ptr %t1075 = alloca ptr %t1086 = alloca ptr %t1093 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str6577) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = call ptr @fn_emit_len(ptr %t5) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str6578) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: %t10 = load ptr, ptr %t1 %t11 = call ptr @fn_emit_push(ptr %t10) store ptr %t11, ptr %retval br label %ret ifend5: %t12 = load ptr, ptr %t0 %t13 = call i32 @lp_str_eq(ptr %t12, ptr @.str6579) %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then6, label %ifend8 then6: %t15 = load ptr, ptr %t1 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp ult i32 0, %t21 br i1 %t22, label %ixok9, label %ixbad10 ixbad10: %t23 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t23, ptr @.fmt_bounds, ptr @.str6580, i32 0, i32 %t21) call void @exit(i32 1) unreachable ixok9: %t24 = getelementptr inbounds ptr, ptr %t19, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @fn_emit_expr(ptr %t25) store ptr %t26, ptr %t27 %t28 = load ptr, ptr %t1 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 1, %t34 br i1 %t35, label %ixok11, label %ixbad12 ixbad12: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str6581, i32 1, i32 %t34) call void @exit(i32 1) unreachable ixok11: %t37 = getelementptr inbounds ptr, ptr %t32, i32 1 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_emit_expr(ptr %t38) store ptr %t39, ptr %t40 %t41 = call ptr @fn_find_fn(ptr @.str6582) %t42 = icmp eq ptr %t41, null %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then13, label %ifend15 then13: call void @fn_perr(ptr @.str6583) br label %ifend15 ifend15: %t45 = load ptr, ptr %t27 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = call ptr @lp_str_concat(ptr @.str6584, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str6585) %t50 = load ptr, ptr %t40 %t51 = getelementptr inbounds %Cmp_Val, ptr %t50, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = call ptr @lp_str_concat(ptr %t49, ptr %t52) %t54 = call ptr @lp_str_concat(ptr %t53, ptr @.str6586) %t55 = call ptr @fn_emit_bind(ptr %t54) %t56 = call ptr @fn_val(ptr %t55, ptr @.str6587) store ptr %t56, ptr %retval br label %ret ifend8: %t57 = load ptr, ptr %t1 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 7 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 0, %t63 br i1 %t64, label %ixok16, label %ixbad17 ixbad17: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str6588, i32 0, i32 %t63) call void @exit(i32 1) unreachable ixok16: %t66 = getelementptr inbounds ptr, ptr %t61, i32 0 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_emit_expr(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %Cmp_Val, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 %t73 = call i32 @fn_is_slice_ty(ptr %t72) %t74 = icmp eq i32 %t73, 0 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then18, label %ifend20 then18: %t77 = load ptr, ptr %t0 %t78 = call ptr @lp_str_concat(ptr @.str6589, ptr %t77) %t79 = call ptr @lp_str_concat(ptr %t78, ptr @.str6590) call void @fn_perr(ptr %t79) br label %ifend20 ifend20: %t80 = load ptr, ptr %t69 %t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 1 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_slice_elem(ptr %t82) store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_llty(ptr %t85) store ptr %t86, ptr %t87 %t88 = load ptr, ptr %t69 %t89 = getelementptr inbounds %Cmp_Val, ptr %t88, i32 0, i32 0 %t90 = load ptr, ptr %t89 store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_slice_field(ptr %t92, i32 1) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t0 %t96 = call i32 @lp_str_eq(ptr %t95, ptr @.str6591) %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then21, label %ifend23 then21: call void @fn_emit(ptr @.str6592) %t98 = load ptr, ptr %t94 call void @fn_emit(ptr %t98) call void @fn_emit(ptr @.str6593) %t99 = call ptr @fn_val(ptr @.str6594, ptr @.str6595) store ptr %t99, ptr %retval br label %ret ifend23: %t100 = load ptr, ptr %t0 %t101 = call i32 @lp_str_eq(ptr %t100, ptr @.str6596) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then24, label %ifend26 then24: %t103 = load ptr, ptr %t91 %t104 = load ptr, ptr %t87 %t105 = call ptr @fn_list_elem_addr(ptr %t103, ptr %t104, ptr @.str6597) store ptr %t105, ptr %t106 %t107 = load ptr, ptr %t87 %t108 = call ptr @lp_str_concat(ptr @.str6598, ptr %t107) %t109 = call ptr @lp_str_concat(ptr %t108, ptr @.str6599) %t110 = load ptr, ptr %t106 %t111 = call ptr @lp_str_concat(ptr %t109, ptr %t110) %t112 = call ptr @fn_emit_bind(ptr %t111) %t113 = load ptr, ptr %t84 %t114 = call ptr @fn_val(ptr %t112, ptr %t113) store ptr %t114, ptr %retval br label %ret ifend26: %t115 = load ptr, ptr %t0 %t116 = call i32 @lp_str_eq(ptr %t115, ptr @.str6600) %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then27, label %ifend29 then27: %t118 = load ptr, ptr %t94 %t119 = call ptr @lp_str_concat(ptr @.str6601, ptr %t118) %t120 = call ptr @fn_emit_bind(ptr %t119) store ptr %t120, ptr %t121 %t122 = load ptr, ptr %t121 %t123 = call ptr @lp_str_concat(ptr @.str6602, ptr %t122) %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str6603) %t125 = call ptr @fn_emit_bind(ptr %t124) store ptr %t125, ptr %t126 %t127 = load ptr, ptr %t91 %t128 = load ptr, ptr %t87 %t129 = load ptr, ptr %t126 %t130 = call ptr @fn_list_elem_addr(ptr %t127, ptr %t128, ptr %t129) store ptr %t130, ptr %t131 %t132 = load ptr, ptr %t87 %t133 = call ptr @lp_str_concat(ptr @.str6604, ptr %t132) %t134 = call ptr @lp_str_concat(ptr %t133, ptr @.str6605) %t135 = load ptr, ptr %t131 %t136 = call ptr @lp_str_concat(ptr %t134, ptr %t135) %t137 = call ptr @fn_emit_bind(ptr %t136) %t138 = load ptr, ptr %t84 %t139 = call ptr @fn_val(ptr %t137, ptr %t138) store ptr %t139, ptr %retval br label %ret ifend29: %t140 = load ptr, ptr %t0 %t141 = call i32 @lp_str_eq(ptr %t140, ptr @.str6606) %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then30, label %ifend32 then30: %t143 = load ptr, ptr %t94 %t144 = call ptr @lp_str_concat(ptr @.str6607, ptr %t143) %t145 = call ptr @fn_emit_bind(ptr %t144) store ptr %t145, ptr %t146 %t147 = load ptr, ptr %t146 %t148 = call ptr @lp_str_concat(ptr @.str6608, ptr %t147) %t149 = call ptr @lp_str_concat(ptr %t148, ptr @.str6609) %t150 = call ptr @fn_emit_bind(ptr %t149) store ptr %t150, ptr %t151 %t152 = load ptr, ptr %t91 %t153 = load ptr, ptr %t87 %t154 = load ptr, ptr %t151 %t155 = call ptr @fn_list_elem_addr(ptr %t152, ptr %t153, ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t87 %t158 = call ptr @lp_str_concat(ptr @.str6610, ptr %t157) %t159 = call ptr @lp_str_concat(ptr %t158, ptr @.str6611) %t160 = load ptr, ptr %t156 %t161 = call ptr @lp_str_concat(ptr %t159, ptr %t160) %t162 = call ptr @fn_emit_bind(ptr %t161) store ptr %t162, ptr %t163 call void @fn_emit(ptr @.str6612) %t164 = load ptr, ptr %t151 call void @fn_emit(ptr %t164) call void @fn_emit(ptr @.str6613) %t165 = load ptr, ptr %t94 call void @fn_emit(ptr %t165) call void @fn_emit(ptr @.str6614) %t166 = load ptr, ptr %t163 %t167 = load ptr, ptr %t84 %t168 = call ptr @fn_val(ptr %t166, ptr %t167) store ptr %t168, ptr %retval br label %ret ifend32: %t169 = load ptr, ptr %t0 %t170 = call i32 @lp_str_eq(ptr %t169, ptr @.str6615) %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then33, label %ifend35 then33: %t172 = load ptr, ptr %t1 %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 7 %t174 = load ptr, ptr %t173 %t175 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 0 %t176 = load ptr, ptr %t175 %t177 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 1 %t178 = load i32, ptr %t177 %t179 = icmp ult i32 1, %t178 br i1 %t179, label %ixok36, label %ixbad37 ixbad37: %t180 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t180, ptr @.fmt_bounds, ptr @.str6616, i32 1, i32 %t178) call void @exit(i32 1) unreachable ixok36: %t181 = getelementptr inbounds ptr, ptr %t176, i32 1 %t182 = load ptr, ptr %t181 %t183 = call ptr @fn_emit_expr(ptr %t182) store ptr %t183, ptr %t184 %t185 = load ptr, ptr %t1 %t186 = getelementptr inbounds %Cmp_Node, ptr %t185, i32 0, i32 7 %t187 = load ptr, ptr %t186 %t188 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 0 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 1 %t191 = load i32, ptr %t190 %t192 = icmp ult i32 2, %t191 br i1 %t192, label %ixok38, label %ixbad39 ixbad39: %t193 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t193, ptr @.fmt_bounds, ptr @.str6617, i32 2, i32 %t191) call void @exit(i32 1) unreachable ixok38: %t194 = getelementptr inbounds ptr, ptr %t189, i32 2 %t195 = load ptr, ptr %t194 %t196 = call ptr @fn_emit_expr(ptr %t195) store ptr %t196, ptr %t197 %t198 = load ptr, ptr %t91 %t199 = load ptr, ptr %t87 %t200 = load ptr, ptr %t184 %t201 = getelementptr inbounds %Cmp_Val, ptr %t200, i32 0, i32 0 %t202 = load ptr, ptr %t201 %t203 = call ptr @fn_list_elem_addr(ptr %t198, ptr %t199, ptr %t202) store ptr %t203, ptr %t204 %t205 = load ptr, ptr %t91 %t206 = load ptr, ptr %t87 %t207 = load ptr, ptr %t197 %t208 = getelementptr inbounds %Cmp_Val, ptr %t207, i32 0, i32 0 %t209 = load ptr, ptr %t208 %t210 = call ptr @fn_list_elem_addr(ptr %t205, ptr %t206, ptr %t209) store ptr %t210, ptr %t211 %t212 = load ptr, ptr %t87 %t213 = call ptr @lp_str_concat(ptr @.str6618, ptr %t212) %t214 = call ptr @lp_str_concat(ptr %t213, ptr @.str6619) %t215 = load ptr, ptr %t204 %t216 = call ptr @lp_str_concat(ptr %t214, ptr %t215) %t217 = call ptr @fn_emit_bind(ptr %t216) store ptr %t217, ptr %t218 %t219 = load ptr, ptr %t87 %t220 = call ptr @lp_str_concat(ptr @.str6620, ptr %t219) %t221 = call ptr @lp_str_concat(ptr %t220, ptr @.str6621) %t222 = load ptr, ptr %t211 %t223 = call ptr @lp_str_concat(ptr %t221, ptr %t222) %t224 = call ptr @fn_emit_bind(ptr %t223) store ptr %t224, ptr %t225 call void @fn_emit(ptr @.str6622) %t226 = load ptr, ptr %t87 call void @fn_emit(ptr %t226) call void @fn_emit(ptr @.str6623) %t227 = load ptr, ptr %t225 call void @fn_emit(ptr %t227) call void @fn_emit(ptr @.str6624) %t228 = load ptr, ptr %t204 call void @fn_emit(ptr %t228) call void @fn_emit(ptr @.str6625) call void @fn_emit(ptr @.str6626) %t229 = load ptr, ptr %t87 call void @fn_emit(ptr %t229) call void @fn_emit(ptr @.str6627) %t230 = load ptr, ptr %t218 call void @fn_emit(ptr %t230) call void @fn_emit(ptr @.str6628) %t231 = load ptr, ptr %t211 call void @fn_emit(ptr %t231) call void @fn_emit(ptr @.str6629) %t232 = call ptr @fn_val(ptr @.str6630, ptr @.str6631) store ptr %t232, ptr %retval br label %ret ifend35: %t234 = load ptr, ptr %t0 %t235 = call i32 @lp_str_eq(ptr %t234, ptr @.str6632) %t236 = icmp ne i32 %t235, 0 %t237 = zext i1 %t236 to i32 store i32 %t237, ptr %t233 br i1 %t236, label %scend41, label %sc40 sc40: %t238 = load ptr, ptr %t0 %t239 = call i32 @lp_str_eq(ptr %t238, ptr @.str6633) %t240 = icmp ne i32 %t239, 0 %t241 = zext i1 %t240 to i32 store i32 %t241, ptr %t233 br label %scend41 scend41: %t242 = load i32, ptr %t233 %t243 = icmp ne i32 %t242, 0 br i1 %t243, label %then42, label %ifend44 then42: %t244 = load ptr, ptr %t1 %t245 = getelementptr inbounds %Cmp_Node, ptr %t244, i32 0, i32 7 %t246 = load ptr, ptr %t245 %t247 = getelementptr inbounds %LSlice, ptr %t246, i32 0, i32 0 %t248 = load ptr, ptr %t247 %t249 = getelementptr inbounds %LSlice, ptr %t246, i32 0, i32 1 %t250 = load i32, ptr %t249 %t251 = icmp ult i32 1, %t250 br i1 %t251, label %ixok45, label %ixbad46 ixbad46: %t252 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t252, ptr @.fmt_bounds, ptr @.str6634, i32 1, i32 %t250) call void @exit(i32 1) unreachable ixok45: %t253 = getelementptr inbounds ptr, ptr %t248, i32 1 %t254 = load ptr, ptr %t253 %t255 = call ptr @fn_emit_expr(ptr %t254) store ptr %t255, ptr %t256 %t257 = load ptr, ptr %t94 %t258 = call ptr @lp_str_concat(ptr @.str6635, ptr %t257) %t259 = call ptr @fn_emit_bind(ptr %t258) store ptr %t259, ptr %t260 %t261 = call ptr @fn_emit_alloca(ptr @.str6636) store ptr %t261, ptr %t262 %t263 = load ptr, ptr %t262 call void @fn_store_at(ptr @.str6637, ptr @.str6638, ptr %t263) %t264 = call ptr @fn_emit_alloca(ptr @.str6639) store ptr %t264, ptr %t265 %t266 = load ptr, ptr %t265 call void @fn_store_at(ptr @.str6640, ptr @.str6641, ptr %t266) %t267 = call ptr @fn_lbl(ptr @.str6642) store ptr %t267, ptr %t268 %t269 = call ptr @fn_lbl(ptr @.str6643) store ptr %t269, ptr %t270 %t271 = call ptr @fn_lbl(ptr @.str6644) store ptr %t271, ptr %t272 %t273 = call ptr @fn_lbl(ptr @.str6645) store ptr %t273, ptr %t274 %t275 = call ptr @fn_lbl(ptr @.str6646) store ptr %t275, ptr %t276 call void @fn_emit(ptr @.str6647) %t277 = load ptr, ptr %t268 call void @fn_emit(ptr %t277) call void @fn_emit(ptr @.str6648) %t278 = load ptr, ptr %t268 call void @fn_emit(ptr %t278) call void @fn_emit(ptr @.str6649) %t279 = load ptr, ptr %t265 %t280 = call ptr @lp_str_concat(ptr @.str6650, ptr %t279) %t281 = call ptr @fn_emit_bind(ptr %t280) store ptr %t281, ptr %t282 %t283 = load ptr, ptr %t282 %t284 = call ptr @lp_str_concat(ptr @.str6651, ptr %t283) %t285 = call ptr @lp_str_concat(ptr %t284, ptr @.str6652) %t286 = load ptr, ptr %t260 %t287 = call ptr @lp_str_concat(ptr %t285, ptr %t286) %t288 = call ptr @fn_emit_bind(ptr %t287) store ptr %t288, ptr %t289 call void @fn_emit(ptr @.str6653) %t290 = load ptr, ptr %t289 call void @fn_emit(ptr %t290) call void @fn_emit(ptr @.str6654) %t291 = load ptr, ptr %t270 call void @fn_emit(ptr %t291) call void @fn_emit(ptr @.str6655) %t292 = load ptr, ptr %t276 call void @fn_emit(ptr %t292) call void @fn_emit(ptr @.str6656) %t293 = load ptr, ptr %t270 call void @fn_emit(ptr %t293) call void @fn_emit(ptr @.str6657) %t294 = load ptr, ptr %t91 %t295 = load ptr, ptr %t87 %t296 = load ptr, ptr %t282 %t297 = call ptr @fn_list_elem_addr(ptr %t294, ptr %t295, ptr %t296) store ptr %t297, ptr %t298 %t299 = load ptr, ptr %t87 %t300 = call ptr @lp_str_concat(ptr @.str6658, ptr %t299) %t301 = call ptr @lp_str_concat(ptr %t300, ptr @.str6659) %t302 = load ptr, ptr %t298 %t303 = call ptr @lp_str_concat(ptr %t301, ptr %t302) %t304 = call ptr @fn_emit_bind(ptr %t303) store ptr %t304, ptr %t305 %t306 = load ptr, ptr %t87 %t307 = call ptr @lp_str_concat(ptr @.str6660, ptr %t306) %t308 = call ptr @lp_str_concat(ptr %t307, ptr @.str6661) %t309 = load ptr, ptr %t305 %t310 = call ptr @lp_str_concat(ptr %t308, ptr %t309) %t311 = call ptr @lp_str_concat(ptr %t310, ptr @.str6662) %t312 = load ptr, ptr %t256 %t313 = getelementptr inbounds %Cmp_Val, ptr %t312, i32 0, i32 0 %t314 = load ptr, ptr %t313 %t315 = call ptr @lp_str_concat(ptr %t311, ptr %t314) %t316 = call ptr @fn_emit_bind(ptr %t315) store ptr %t316, ptr %t317 call void @fn_emit(ptr @.str6663) %t318 = load ptr, ptr %t317 call void @fn_emit(ptr %t318) call void @fn_emit(ptr @.str6664) %t319 = load ptr, ptr %t272 call void @fn_emit(ptr %t319) call void @fn_emit(ptr @.str6665) %t320 = load ptr, ptr %t274 call void @fn_emit(ptr %t320) call void @fn_emit(ptr @.str6666) %t321 = load ptr, ptr %t272 call void @fn_emit(ptr %t321) call void @fn_emit(ptr @.str6667) %t322 = load ptr, ptr %t282 %t323 = load ptr, ptr %t262 call void @fn_store_at(ptr @.str6668, ptr %t322, ptr %t323) call void @fn_emit(ptr @.str6669) %t324 = load ptr, ptr %t276 call void @fn_emit(ptr %t324) call void @fn_emit(ptr @.str6670) %t325 = load ptr, ptr %t274 call void @fn_emit(ptr %t325) call void @fn_emit(ptr @.str6671) %t326 = load ptr, ptr %t282 %t327 = call ptr @lp_str_concat(ptr @.str6672, ptr %t326) %t328 = call ptr @lp_str_concat(ptr %t327, ptr @.str6673) %t329 = call ptr @fn_emit_bind(ptr %t328) store ptr %t329, ptr %t330 %t331 = load ptr, ptr %t330 %t332 = load ptr, ptr %t265 call void @fn_store_at(ptr @.str6674, ptr %t331, ptr %t332) call void @fn_emit(ptr @.str6675) %t333 = load ptr, ptr %t268 call void @fn_emit(ptr %t333) call void @fn_emit(ptr @.str6676) %t334 = load ptr, ptr %t276 call void @fn_emit(ptr %t334) call void @fn_emit(ptr @.str6677) %t335 = load ptr, ptr %t262 %t336 = call ptr @lp_str_concat(ptr @.str6678, ptr %t335) %t337 = call ptr @fn_emit_bind(ptr %t336) store ptr %t337, ptr %t338 %t339 = load ptr, ptr %t0 %t340 = call i32 @lp_str_eq(ptr %t339, ptr @.str6679) %t341 = icmp ne i32 %t340, 0 br i1 %t341, label %then47, label %ifend49 then47: %t342 = load ptr, ptr %t338 %t343 = call ptr @fn_val(ptr %t342, ptr @.str6680) store ptr %t343, ptr %retval br label %ret ifend49: %t344 = load ptr, ptr %t338 %t345 = call ptr @lp_str_concat(ptr @.str6681, ptr %t344) %t346 = call ptr @lp_str_concat(ptr %t345, ptr @.str6682) %t347 = call ptr @fn_emit_bind(ptr %t346) store ptr %t347, ptr %t348 %t349 = load ptr, ptr %t348 %t350 = call ptr @lp_str_concat(ptr @.str6683, ptr %t349) %t351 = call ptr @lp_str_concat(ptr %t350, ptr @.str6684) %t352 = call ptr @fn_emit_bind(ptr %t351) %t353 = call ptr @fn_val(ptr %t352, ptr @.str6685) store ptr %t353, ptr %retval br label %ret ifend44: %t354 = load ptr, ptr %t0 %t355 = call i32 @lp_str_eq(ptr %t354, ptr @.str6686) %t356 = icmp ne i32 %t355, 0 br i1 %t356, label %then50, label %ifend52 then50: %t357 = load ptr, ptr %t1 %t358 = getelementptr inbounds %Cmp_Node, ptr %t357, i32 0, i32 7 %t359 = load ptr, ptr %t358 %t360 = getelementptr inbounds %LSlice, ptr %t359, i32 0, i32 0 %t361 = load ptr, ptr %t360 %t362 = getelementptr inbounds %LSlice, ptr %t359, i32 0, i32 1 %t363 = load i32, ptr %t362 %t364 = icmp ult i32 1, %t363 br i1 %t364, label %ixok53, label %ixbad54 ixbad54: %t365 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t365, ptr @.fmt_bounds, ptr @.str6687, i32 1, i32 %t363) call void @exit(i32 1) unreachable ixok53: %t366 = getelementptr inbounds ptr, ptr %t361, i32 1 %t367 = load ptr, ptr %t366 %t368 = call ptr @fn_emit_expr(ptr %t367) store ptr %t368, ptr %t369 %t370 = load ptr, ptr %t1 %t371 = getelementptr inbounds %Cmp_Node, ptr %t370, i32 0, i32 7 %t372 = load ptr, ptr %t371 %t373 = getelementptr inbounds %LSlice, ptr %t372, i32 0, i32 0 %t374 = load ptr, ptr %t373 %t375 = getelementptr inbounds %LSlice, ptr %t372, i32 0, i32 1 %t376 = load i32, ptr %t375 %t377 = icmp ult i32 2, %t376 br i1 %t377, label %ixok55, label %ixbad56 ixbad56: %t378 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t378, ptr @.fmt_bounds, ptr @.str6688, i32 2, i32 %t376) call void @exit(i32 1) unreachable ixok55: %t379 = getelementptr inbounds ptr, ptr %t374, i32 2 %t380 = load ptr, ptr %t379 %t381 = call ptr @fn_emit_expr(ptr %t380) store ptr %t381, ptr %t382 %t383 = load ptr, ptr %t91 %t384 = load ptr, ptr %t87 call void @fn_list_grow_if_full(ptr %t383, ptr %t384) %t385 = load ptr, ptr %t94 %t386 = call ptr @lp_str_concat(ptr @.str6689, ptr %t385) %t387 = call ptr @fn_emit_bind(ptr %t386) store ptr %t387, ptr %t388 %t389 = call ptr @fn_emit_alloca(ptr @.str6690) store ptr %t389, ptr %t390 %t391 = load ptr, ptr %t388 %t392 = load ptr, ptr %t390 call void @fn_store_at(ptr @.str6691, ptr %t391, ptr %t392) %t393 = call ptr @fn_lbl(ptr @.str6692) store ptr %t393, ptr %t394 %t395 = call ptr @fn_lbl(ptr @.str6693) store ptr %t395, ptr %t396 %t397 = call ptr @fn_lbl(ptr @.str6694) store ptr %t397, ptr %t398 call void @fn_emit(ptr @.str6695) %t399 = load ptr, ptr %t394 call void @fn_emit(ptr %t399) call void @fn_emit(ptr @.str6696) %t400 = load ptr, ptr %t394 call void @fn_emit(ptr %t400) call void @fn_emit(ptr @.str6697) %t401 = load ptr, ptr %t390 %t402 = call ptr @lp_str_concat(ptr @.str6698, ptr %t401) %t403 = call ptr @fn_emit_bind(ptr %t402) store ptr %t403, ptr %t404 %t405 = load ptr, ptr %t404 %t406 = call ptr @lp_str_concat(ptr @.str6699, ptr %t405) %t407 = call ptr @lp_str_concat(ptr %t406, ptr @.str6700) %t408 = load ptr, ptr %t369 %t409 = getelementptr inbounds %Cmp_Val, ptr %t408, i32 0, i32 0 %t410 = load ptr, ptr %t409 %t411 = call ptr @lp_str_concat(ptr %t407, ptr %t410) %t412 = call ptr @fn_emit_bind(ptr %t411) store ptr %t412, ptr %t413 call void @fn_emit(ptr @.str6701) %t414 = load ptr, ptr %t413 call void @fn_emit(ptr %t414) call void @fn_emit(ptr @.str6702) %t415 = load ptr, ptr %t396 call void @fn_emit(ptr %t415) call void @fn_emit(ptr @.str6703) %t416 = load ptr, ptr %t398 call void @fn_emit(ptr %t416) call void @fn_emit(ptr @.str6704) %t417 = load ptr, ptr %t396 call void @fn_emit(ptr %t417) call void @fn_emit(ptr @.str6705) %t418 = load ptr, ptr %t404 %t419 = call ptr @lp_str_concat(ptr @.str6706, ptr %t418) %t420 = call ptr @lp_str_concat(ptr %t419, ptr @.str6707) %t421 = call ptr @fn_emit_bind(ptr %t420) store ptr %t421, ptr %t422 %t423 = load ptr, ptr %t91 %t424 = load ptr, ptr %t87 %t425 = load ptr, ptr %t422 %t426 = call ptr @fn_list_elem_addr(ptr %t423, ptr %t424, ptr %t425) store ptr %t426, ptr %t427 %t428 = load ptr, ptr %t87 %t429 = call ptr @lp_str_concat(ptr @.str6708, ptr %t428) %t430 = call ptr @lp_str_concat(ptr %t429, ptr @.str6709) %t431 = load ptr, ptr %t427 %t432 = call ptr @lp_str_concat(ptr %t430, ptr %t431) %t433 = call ptr @fn_emit_bind(ptr %t432) store ptr %t433, ptr %t434 %t435 = load ptr, ptr %t91 %t436 = load ptr, ptr %t87 %t437 = load ptr, ptr %t404 %t438 = call ptr @fn_list_elem_addr(ptr %t435, ptr %t436, ptr %t437) store ptr %t438, ptr %t439 call void @fn_emit(ptr @.str6710) %t440 = load ptr, ptr %t87 call void @fn_emit(ptr %t440) call void @fn_emit(ptr @.str6711) %t441 = load ptr, ptr %t434 call void @fn_emit(ptr %t441) call void @fn_emit(ptr @.str6712) %t442 = load ptr, ptr %t439 call void @fn_emit(ptr %t442) call void @fn_emit(ptr @.str6713) %t443 = load ptr, ptr %t422 %t444 = load ptr, ptr %t390 call void @fn_store_at(ptr @.str6714, ptr %t443, ptr %t444) call void @fn_emit(ptr @.str6715) %t445 = load ptr, ptr %t394 call void @fn_emit(ptr %t445) call void @fn_emit(ptr @.str6716) %t446 = load ptr, ptr %t398 call void @fn_emit(ptr %t446) call void @fn_emit(ptr @.str6717) %t447 = load ptr, ptr %t91 %t448 = load ptr, ptr %t87 %t449 = load ptr, ptr %t369 %t450 = getelementptr inbounds %Cmp_Val, ptr %t449, i32 0, i32 0 %t451 = load ptr, ptr %t450 %t452 = call ptr @fn_list_elem_addr(ptr %t447, ptr %t448, ptr %t451) store ptr %t452, ptr %t453 call void @fn_emit(ptr @.str6718) %t454 = load ptr, ptr %t87 call void @fn_emit(ptr %t454) call void @fn_emit(ptr @.str6719) %t455 = load ptr, ptr %t382 %t456 = getelementptr inbounds %Cmp_Val, ptr %t455, i32 0, i32 0 %t457 = load ptr, ptr %t456 call void @fn_emit(ptr %t457) call void @fn_emit(ptr @.str6720) %t458 = load ptr, ptr %t453 call void @fn_emit(ptr %t458) call void @fn_emit(ptr @.str6721) %t459 = load ptr, ptr %t388 %t460 = call ptr @lp_str_concat(ptr @.str6722, ptr %t459) %t461 = call ptr @lp_str_concat(ptr %t460, ptr @.str6723) %t462 = call ptr @fn_emit_bind(ptr %t461) store ptr %t462, ptr %t463 call void @fn_emit(ptr @.str6724) %t464 = load ptr, ptr %t463 call void @fn_emit(ptr %t464) call void @fn_emit(ptr @.str6725) %t465 = load ptr, ptr %t94 call void @fn_emit(ptr %t465) call void @fn_emit(ptr @.str6726) %t466 = call ptr @fn_val(ptr @.str6727, ptr @.str6728) store ptr %t466, ptr %retval br label %ret ifend52: %t467 = load ptr, ptr %t0 %t468 = call i32 @lp_str_eq(ptr %t467, ptr @.str6729) %t469 = icmp ne i32 %t468, 0 br i1 %t469, label %then57, label %ifend59 then57: %t470 = load ptr, ptr %t1 %t471 = getelementptr inbounds %Cmp_Node, ptr %t470, i32 0, i32 7 %t472 = load ptr, ptr %t471 %t473 = getelementptr inbounds %LSlice, ptr %t472, i32 0, i32 0 %t474 = load ptr, ptr %t473 %t475 = getelementptr inbounds %LSlice, ptr %t472, i32 0, i32 1 %t476 = load i32, ptr %t475 %t477 = icmp ult i32 1, %t476 br i1 %t477, label %ixok60, label %ixbad61 ixbad61: %t478 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t478, ptr @.fmt_bounds, ptr @.str6730, i32 1, i32 %t476) call void @exit(i32 1) unreachable ixok60: %t479 = getelementptr inbounds ptr, ptr %t474, i32 1 %t480 = load ptr, ptr %t479 %t481 = call ptr @fn_emit_expr(ptr %t480) store ptr %t481, ptr %t482 %t483 = load ptr, ptr %t94 %t484 = call ptr @lp_str_concat(ptr @.str6731, ptr %t483) %t485 = call ptr @fn_emit_bind(ptr %t484) store ptr %t485, ptr %t486 %t487 = load ptr, ptr %t486 %t488 = call ptr @lp_str_concat(ptr @.str6732, ptr %t487) %t489 = call ptr @lp_str_concat(ptr %t488, ptr @.str6733) %t490 = call ptr @fn_emit_bind(ptr %t489) store ptr %t490, ptr %t491 %t492 = call ptr @fn_emit_alloca(ptr @.str6734) store ptr %t492, ptr %t493 %t494 = load ptr, ptr %t482 %t495 = getelementptr inbounds %Cmp_Val, ptr %t494, i32 0, i32 0 %t496 = load ptr, ptr %t495 %t497 = load ptr, ptr %t493 call void @fn_store_at(ptr @.str6735, ptr %t496, ptr %t497) %t498 = call ptr @fn_lbl(ptr @.str6736) store ptr %t498, ptr %t499 %t500 = call ptr @fn_lbl(ptr @.str6737) store ptr %t500, ptr %t501 %t502 = call ptr @fn_lbl(ptr @.str6738) store ptr %t502, ptr %t503 call void @fn_emit(ptr @.str6739) %t504 = load ptr, ptr %t499 call void @fn_emit(ptr %t504) call void @fn_emit(ptr @.str6740) %t505 = load ptr, ptr %t499 call void @fn_emit(ptr %t505) call void @fn_emit(ptr @.str6741) %t506 = load ptr, ptr %t493 %t507 = call ptr @lp_str_concat(ptr @.str6742, ptr %t506) %t508 = call ptr @fn_emit_bind(ptr %t507) store ptr %t508, ptr %t509 %t510 = load ptr, ptr %t509 %t511 = call ptr @lp_str_concat(ptr @.str6743, ptr %t510) %t512 = call ptr @lp_str_concat(ptr %t511, ptr @.str6744) %t513 = load ptr, ptr %t491 %t514 = call ptr @lp_str_concat(ptr %t512, ptr %t513) %t515 = call ptr @fn_emit_bind(ptr %t514) store ptr %t515, ptr %t516 call void @fn_emit(ptr @.str6745) %t517 = load ptr, ptr %t516 call void @fn_emit(ptr %t517) call void @fn_emit(ptr @.str6746) %t518 = load ptr, ptr %t501 call void @fn_emit(ptr %t518) call void @fn_emit(ptr @.str6747) %t519 = load ptr, ptr %t503 call void @fn_emit(ptr %t519) call void @fn_emit(ptr @.str6748) %t520 = load ptr, ptr %t501 call void @fn_emit(ptr %t520) call void @fn_emit(ptr @.str6749) %t521 = load ptr, ptr %t509 %t522 = call ptr @lp_str_concat(ptr @.str6750, ptr %t521) %t523 = call ptr @lp_str_concat(ptr %t522, ptr @.str6751) %t524 = call ptr @fn_emit_bind(ptr %t523) store ptr %t524, ptr %t525 %t526 = load ptr, ptr %t91 %t527 = load ptr, ptr %t87 %t528 = load ptr, ptr %t525 %t529 = call ptr @fn_list_elem_addr(ptr %t526, ptr %t527, ptr %t528) store ptr %t529, ptr %t530 %t531 = load ptr, ptr %t87 %t532 = call ptr @lp_str_concat(ptr @.str6752, ptr %t531) %t533 = call ptr @lp_str_concat(ptr %t532, ptr @.str6753) %t534 = load ptr, ptr %t530 %t535 = call ptr @lp_str_concat(ptr %t533, ptr %t534) %t536 = call ptr @fn_emit_bind(ptr %t535) store ptr %t536, ptr %t537 %t538 = load ptr, ptr %t91 %t539 = load ptr, ptr %t87 %t540 = load ptr, ptr %t509 %t541 = call ptr @fn_list_elem_addr(ptr %t538, ptr %t539, ptr %t540) store ptr %t541, ptr %t542 call void @fn_emit(ptr @.str6754) %t543 = load ptr, ptr %t87 call void @fn_emit(ptr %t543) call void @fn_emit(ptr @.str6755) %t544 = load ptr, ptr %t537 call void @fn_emit(ptr %t544) call void @fn_emit(ptr @.str6756) %t545 = load ptr, ptr %t542 call void @fn_emit(ptr %t545) call void @fn_emit(ptr @.str6757) %t546 = load ptr, ptr %t525 %t547 = load ptr, ptr %t493 call void @fn_store_at(ptr @.str6758, ptr %t546, ptr %t547) call void @fn_emit(ptr @.str6759) %t548 = load ptr, ptr %t499 call void @fn_emit(ptr %t548) call void @fn_emit(ptr @.str6760) %t549 = load ptr, ptr %t503 call void @fn_emit(ptr %t549) call void @fn_emit(ptr @.str6761) call void @fn_emit(ptr @.str6762) %t550 = load ptr, ptr %t491 call void @fn_emit(ptr %t550) call void @fn_emit(ptr @.str6763) %t551 = load ptr, ptr %t94 call void @fn_emit(ptr %t551) call void @fn_emit(ptr @.str6764) %t552 = call ptr @fn_val(ptr @.str6765, ptr @.str6766) store ptr %t552, ptr %retval br label %ret ifend59: %t553 = load ptr, ptr %t0 %t554 = call i32 @lp_str_eq(ptr %t553, ptr @.str6767) %t555 = icmp ne i32 %t554, 0 br i1 %t555, label %then62, label %ifend64 then62: %t556 = load ptr, ptr %t1 %t557 = getelementptr inbounds %Cmp_Node, ptr %t556, i32 0, i32 7 %t558 = load ptr, ptr %t557 %t559 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 0 %t560 = load ptr, ptr %t559 %t561 = getelementptr inbounds %LSlice, ptr %t558, i32 0, i32 1 %t562 = load i32, ptr %t561 %t563 = icmp ult i32 1, %t562 br i1 %t563, label %ixok65, label %ixbad66 ixbad66: %t564 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t564, ptr @.fmt_bounds, ptr @.str6768, i32 1, i32 %t562) call void @exit(i32 1) unreachable ixok65: %t565 = getelementptr inbounds ptr, ptr %t560, i32 1 %t566 = load ptr, ptr %t565 %t567 = call ptr @fn_emit_expr(ptr %t566) store ptr %t567, ptr %t568 %t569 = load ptr, ptr %t94 %t570 = call ptr @lp_str_concat(ptr @.str6769, ptr %t569) %t571 = call ptr @fn_emit_bind(ptr %t570) store ptr %t571, ptr %t572 %t573 = call ptr @fn_emit_alloca(ptr @.str6770) store ptr %t573, ptr %t574 %t575 = load ptr, ptr %t574 call void @fn_store_at(ptr @.str6771, ptr @.str6772, ptr %t575) %t576 = call ptr @fn_emit_alloca(ptr @.str6773) store ptr %t576, ptr %t577 %t578 = load ptr, ptr %t577 call void @fn_store_at(ptr @.str6774, ptr @.str6775, ptr %t578) %t579 = call ptr @fn_lbl(ptr @.str6776) store ptr %t579, ptr %t580 %t581 = call ptr @fn_lbl(ptr @.str6777) store ptr %t581, ptr %t582 %t583 = call ptr @fn_lbl(ptr @.str6778) store ptr %t583, ptr %t584 %t585 = call ptr @fn_lbl(ptr @.str6779) store ptr %t585, ptr %t586 %t587 = call ptr @fn_lbl(ptr @.str6780) store ptr %t587, ptr %t588 call void @fn_emit(ptr @.str6781) %t589 = load ptr, ptr %t580 call void @fn_emit(ptr %t589) call void @fn_emit(ptr @.str6782) %t590 = load ptr, ptr %t580 call void @fn_emit(ptr %t590) call void @fn_emit(ptr @.str6783) %t591 = load ptr, ptr %t577 %t592 = call ptr @lp_str_concat(ptr @.str6784, ptr %t591) %t593 = call ptr @fn_emit_bind(ptr %t592) store ptr %t593, ptr %t594 %t595 = load ptr, ptr %t594 %t596 = call ptr @lp_str_concat(ptr @.str6785, ptr %t595) %t597 = call ptr @lp_str_concat(ptr %t596, ptr @.str6786) %t598 = load ptr, ptr %t572 %t599 = call ptr @lp_str_concat(ptr %t597, ptr %t598) %t600 = call ptr @fn_emit_bind(ptr %t599) store ptr %t600, ptr %t601 %t602 = load ptr, ptr %t574 %t603 = call ptr @lp_str_concat(ptr @.str6787, ptr %t602) %t604 = call ptr @fn_emit_bind(ptr %t603) store ptr %t604, ptr %t605 %t606 = load ptr, ptr %t605 %t607 = call ptr @lp_str_concat(ptr @.str6788, ptr %t606) %t608 = call ptr @lp_str_concat(ptr %t607, ptr @.str6789) %t609 = call ptr @fn_emit_bind(ptr %t608) store ptr %t609, ptr %t610 %t611 = load ptr, ptr %t601 %t612 = call ptr @lp_str_concat(ptr @.str6790, ptr %t611) %t613 = call ptr @lp_str_concat(ptr %t612, ptr @.str6791) %t614 = load ptr, ptr %t610 %t615 = call ptr @lp_str_concat(ptr %t613, ptr %t614) %t616 = call ptr @fn_emit_bind(ptr %t615) store ptr %t616, ptr %t617 call void @fn_emit(ptr @.str6792) %t618 = load ptr, ptr %t617 call void @fn_emit(ptr %t618) call void @fn_emit(ptr @.str6793) %t619 = load ptr, ptr %t582 call void @fn_emit(ptr %t619) call void @fn_emit(ptr @.str6794) %t620 = load ptr, ptr %t588 call void @fn_emit(ptr %t620) call void @fn_emit(ptr @.str6795) %t621 = load ptr, ptr %t582 call void @fn_emit(ptr %t621) call void @fn_emit(ptr @.str6796) %t622 = load ptr, ptr %t91 %t623 = load ptr, ptr %t87 %t624 = load ptr, ptr %t594 %t625 = call ptr @fn_list_elem_addr(ptr %t622, ptr %t623, ptr %t624) store ptr %t625, ptr %t626 %t627 = load ptr, ptr %t87 %t628 = call ptr @lp_str_concat(ptr @.str6797, ptr %t627) %t629 = call ptr @lp_str_concat(ptr %t628, ptr @.str6798) %t630 = load ptr, ptr %t626 %t631 = call ptr @lp_str_concat(ptr %t629, ptr %t630) %t632 = call ptr @fn_emit_bind(ptr %t631) store ptr %t632, ptr %t633 %t634 = load ptr, ptr %t87 %t635 = call ptr @lp_str_concat(ptr @.str6799, ptr %t634) %t636 = call ptr @lp_str_concat(ptr %t635, ptr @.str6800) %t637 = load ptr, ptr %t633 %t638 = call ptr @lp_str_concat(ptr %t636, ptr %t637) %t639 = call ptr @lp_str_concat(ptr %t638, ptr @.str6801) %t640 = load ptr, ptr %t568 %t641 = getelementptr inbounds %Cmp_Val, ptr %t640, i32 0, i32 0 %t642 = load ptr, ptr %t641 %t643 = call ptr @lp_str_concat(ptr %t639, ptr %t642) %t644 = call ptr @fn_emit_bind(ptr %t643) store ptr %t644, ptr %t645 call void @fn_emit(ptr @.str6802) %t646 = load ptr, ptr %t645 call void @fn_emit(ptr %t646) call void @fn_emit(ptr @.str6803) %t647 = load ptr, ptr %t584 call void @fn_emit(ptr %t647) call void @fn_emit(ptr @.str6804) %t648 = load ptr, ptr %t586 call void @fn_emit(ptr %t648) call void @fn_emit(ptr @.str6805) %t649 = load ptr, ptr %t584 call void @fn_emit(ptr %t649) call void @fn_emit(ptr @.str6806) %t650 = load ptr, ptr %t594 %t651 = load ptr, ptr %t574 call void @fn_store_at(ptr @.str6807, ptr %t650, ptr %t651) call void @fn_emit(ptr @.str6808) %t652 = load ptr, ptr %t580 call void @fn_emit(ptr %t652) call void @fn_emit(ptr @.str6809) %t653 = load ptr, ptr %t586 call void @fn_emit(ptr %t653) call void @fn_emit(ptr @.str6810) %t654 = load ptr, ptr %t594 %t655 = call ptr @lp_str_concat(ptr @.str6811, ptr %t654) %t656 = call ptr @lp_str_concat(ptr %t655, ptr @.str6812) %t657 = call ptr @fn_emit_bind(ptr %t656) store ptr %t657, ptr %t658 %t659 = load ptr, ptr %t658 %t660 = load ptr, ptr %t577 call void @fn_store_at(ptr @.str6813, ptr %t659, ptr %t660) call void @fn_emit(ptr @.str6814) %t661 = load ptr, ptr %t580 call void @fn_emit(ptr %t661) call void @fn_emit(ptr @.str6815) %t662 = load ptr, ptr %t588 call void @fn_emit(ptr %t662) call void @fn_emit(ptr @.str6816) %t663 = load ptr, ptr %t574 %t664 = call ptr @lp_str_concat(ptr @.str6817, ptr %t663) %t665 = call ptr @fn_emit_bind(ptr %t664) store ptr %t665, ptr %t666 %t667 = load ptr, ptr %t666 %t668 = call ptr @lp_str_concat(ptr @.str6818, ptr %t667) %t669 = call ptr @lp_str_concat(ptr %t668, ptr @.str6819) %t670 = call ptr @fn_emit_bind(ptr %t669) store ptr %t670, ptr %t671 %t672 = call ptr @fn_lbl(ptr @.str6820) store ptr %t672, ptr %t673 %t674 = call ptr @fn_lbl(ptr @.str6821) store ptr %t674, ptr %t675 call void @fn_emit(ptr @.str6822) %t676 = load ptr, ptr %t671 call void @fn_emit(ptr %t676) call void @fn_emit(ptr @.str6823) %t677 = load ptr, ptr %t673 call void @fn_emit(ptr %t677) call void @fn_emit(ptr @.str6824) %t678 = load ptr, ptr %t675 call void @fn_emit(ptr %t678) call void @fn_emit(ptr @.str6825) %t679 = load ptr, ptr %t673 call void @fn_emit(ptr %t679) call void @fn_emit(ptr @.str6826) %t680 = load ptr, ptr %t572 %t681 = call ptr @lp_str_concat(ptr @.str6827, ptr %t680) %t682 = call ptr @lp_str_concat(ptr %t681, ptr @.str6828) %t683 = call ptr @fn_emit_bind(ptr %t682) store ptr %t683, ptr %t684 %t685 = call ptr @fn_emit_alloca(ptr @.str6829) store ptr %t685, ptr %t686 %t687 = load ptr, ptr %t666 %t688 = load ptr, ptr %t686 call void @fn_store_at(ptr @.str6830, ptr %t687, ptr %t688) %t689 = call ptr @fn_lbl(ptr @.str6831) store ptr %t689, ptr %t690 %t691 = call ptr @fn_lbl(ptr @.str6832) store ptr %t691, ptr %t692 %t693 = call ptr @fn_lbl(ptr @.str6833) store ptr %t693, ptr %t694 call void @fn_emit(ptr @.str6834) %t695 = load ptr, ptr %t690 call void @fn_emit(ptr %t695) call void @fn_emit(ptr @.str6835) %t696 = load ptr, ptr %t690 call void @fn_emit(ptr %t696) call void @fn_emit(ptr @.str6836) %t697 = load ptr, ptr %t686 %t698 = call ptr @lp_str_concat(ptr @.str6837, ptr %t697) %t699 = call ptr @fn_emit_bind(ptr %t698) store ptr %t699, ptr %t700 %t701 = load ptr, ptr %t700 %t702 = call ptr @lp_str_concat(ptr @.str6838, ptr %t701) %t703 = call ptr @lp_str_concat(ptr %t702, ptr @.str6839) %t704 = load ptr, ptr %t684 %t705 = call ptr @lp_str_concat(ptr %t703, ptr %t704) %t706 = call ptr @fn_emit_bind(ptr %t705) store ptr %t706, ptr %t707 call void @fn_emit(ptr @.str6840) %t708 = load ptr, ptr %t707 call void @fn_emit(ptr %t708) call void @fn_emit(ptr @.str6841) %t709 = load ptr, ptr %t692 call void @fn_emit(ptr %t709) call void @fn_emit(ptr @.str6842) %t710 = load ptr, ptr %t694 call void @fn_emit(ptr %t710) call void @fn_emit(ptr @.str6843) %t711 = load ptr, ptr %t692 call void @fn_emit(ptr %t711) call void @fn_emit(ptr @.str6844) %t712 = load ptr, ptr %t700 %t713 = call ptr @lp_str_concat(ptr @.str6845, ptr %t712) %t714 = call ptr @lp_str_concat(ptr %t713, ptr @.str6846) %t715 = call ptr @fn_emit_bind(ptr %t714) store ptr %t715, ptr %t716 %t717 = load ptr, ptr %t91 %t718 = load ptr, ptr %t87 %t719 = load ptr, ptr %t716 %t720 = call ptr @fn_list_elem_addr(ptr %t717, ptr %t718, ptr %t719) store ptr %t720, ptr %t721 %t722 = load ptr, ptr %t87 %t723 = call ptr @lp_str_concat(ptr @.str6847, ptr %t722) %t724 = call ptr @lp_str_concat(ptr %t723, ptr @.str6848) %t725 = load ptr, ptr %t721 %t726 = call ptr @lp_str_concat(ptr %t724, ptr %t725) %t727 = call ptr @fn_emit_bind(ptr %t726) store ptr %t727, ptr %t728 %t729 = load ptr, ptr %t91 %t730 = load ptr, ptr %t87 %t731 = load ptr, ptr %t700 %t732 = call ptr @fn_list_elem_addr(ptr %t729, ptr %t730, ptr %t731) store ptr %t732, ptr %t733 call void @fn_emit(ptr @.str6849) %t734 = load ptr, ptr %t87 call void @fn_emit(ptr %t734) call void @fn_emit(ptr @.str6850) %t735 = load ptr, ptr %t728 call void @fn_emit(ptr %t735) call void @fn_emit(ptr @.str6851) %t736 = load ptr, ptr %t733 call void @fn_emit(ptr %t736) call void @fn_emit(ptr @.str6852) %t737 = load ptr, ptr %t716 %t738 = load ptr, ptr %t686 call void @fn_store_at(ptr @.str6853, ptr %t737, ptr %t738) call void @fn_emit(ptr @.str6854) %t739 = load ptr, ptr %t690 call void @fn_emit(ptr %t739) call void @fn_emit(ptr @.str6855) %t740 = load ptr, ptr %t694 call void @fn_emit(ptr %t740) call void @fn_emit(ptr @.str6856) call void @fn_emit(ptr @.str6857) %t741 = load ptr, ptr %t684 call void @fn_emit(ptr %t741) call void @fn_emit(ptr @.str6858) %t742 = load ptr, ptr %t94 call void @fn_emit(ptr %t742) call void @fn_emit(ptr @.str6859) call void @fn_emit(ptr @.str6860) %t743 = load ptr, ptr %t675 call void @fn_emit(ptr %t743) call void @fn_emit(ptr @.str6861) %t744 = load ptr, ptr %t675 call void @fn_emit(ptr %t744) call void @fn_emit(ptr @.str6862) %t745 = call ptr @fn_val(ptr @.str6863, ptr @.str6864) store ptr %t745, ptr %retval br label %ret ifend64: %t746 = load ptr, ptr %t0 %t747 = call i32 @lp_str_eq(ptr %t746, ptr @.str6865) %t748 = icmp ne i32 %t747, 0 br i1 %t748, label %then67, label %ifend69 then67: %t749 = load ptr, ptr %t94 %t750 = call ptr @lp_str_concat(ptr @.str6866, ptr %t749) %t751 = call ptr @fn_emit_bind(ptr %t750) store ptr %t751, ptr %t752 %t753 = load ptr, ptr %t752 %t754 = call ptr @lp_str_concat(ptr @.str6867, ptr %t753) %t755 = call ptr @lp_str_concat(ptr %t754, ptr @.str6868) %t756 = call ptr @fn_emit_bind(ptr %t755) store ptr %t756, ptr %t757 %t758 = call ptr @fn_lbl(ptr @.str6869) store ptr %t758, ptr %t759 %t760 = call ptr @fn_lbl(ptr @.str6870) store ptr %t760, ptr %t761 %t762 = call ptr @fn_lbl(ptr @.str6871) store ptr %t762, ptr %t763 call void @fn_emit(ptr @.str6872) %t764 = load ptr, ptr %t757 call void @fn_emit(ptr %t764) call void @fn_emit(ptr @.str6873) %t765 = load ptr, ptr %t759 call void @fn_emit(ptr %t765) call void @fn_emit(ptr @.str6874) %t766 = load ptr, ptr %t761 call void @fn_emit(ptr %t766) call void @fn_emit(ptr @.str6875) %t767 = load ptr, ptr %t759 call void @fn_emit(ptr %t767) call void @fn_emit(ptr @.str6876) %t768 = load ptr, ptr %t94 %t769 = call ptr @lp_str_concat(ptr @.str6877, ptr %t768) %t770 = call ptr @fn_emit_bind(ptr %t769) store ptr %t770, ptr %t771 %t772 = call ptr @fn_emit_alloca(ptr @.str6878) store ptr %t772, ptr %t773 %t774 = load ptr, ptr %t773 call void @fn_store_at(ptr @.str6879, ptr @.str6880, ptr %t774) %t775 = call ptr @fn_lbl(ptr @.str6881) store ptr %t775, ptr %t776 %t777 = call ptr @fn_lbl(ptr @.str6882) store ptr %t777, ptr %t778 %t779 = call ptr @fn_lbl(ptr @.str6883) store ptr %t779, ptr %t780 call void @fn_emit(ptr @.str6884) %t781 = load ptr, ptr %t776 call void @fn_emit(ptr %t781) call void @fn_emit(ptr @.str6885) %t782 = load ptr, ptr %t776 call void @fn_emit(ptr %t782) call void @fn_emit(ptr @.str6886) %t783 = load ptr, ptr %t773 %t784 = call ptr @lp_str_concat(ptr @.str6887, ptr %t783) %t785 = call ptr @fn_emit_bind(ptr %t784) store ptr %t785, ptr %t786 %t787 = load ptr, ptr %t786 %t788 = call ptr @lp_str_concat(ptr @.str6888, ptr %t787) %t789 = call ptr @lp_str_concat(ptr %t788, ptr @.str6889) %t790 = load ptr, ptr %t771 %t791 = call ptr @lp_str_concat(ptr %t789, ptr %t790) %t792 = call ptr @fn_emit_bind(ptr %t791) store ptr %t792, ptr %t793 call void @fn_emit(ptr @.str6890) %t794 = load ptr, ptr %t793 call void @fn_emit(ptr %t794) call void @fn_emit(ptr @.str6891) %t795 = load ptr, ptr %t778 call void @fn_emit(ptr %t795) call void @fn_emit(ptr @.str6892) %t796 = load ptr, ptr %t780 call void @fn_emit(ptr %t796) call void @fn_emit(ptr @.str6893) %t797 = load ptr, ptr %t778 call void @fn_emit(ptr %t797) call void @fn_emit(ptr @.str6894) %t798 = load ptr, ptr %t91 %t799 = load ptr, ptr %t87 %t800 = load ptr, ptr %t786 %t801 = call ptr @fn_list_elem_addr(ptr %t798, ptr %t799, ptr %t800) store ptr %t801, ptr %t802 %t803 = load ptr, ptr %t87 %t804 = call ptr @lp_str_concat(ptr @.str6895, ptr %t803) %t805 = call ptr @lp_str_concat(ptr %t804, ptr @.str6896) %t806 = load ptr, ptr %t802 %t807 = call ptr @lp_str_concat(ptr %t805, ptr %t806) %t808 = call ptr @fn_emit_bind(ptr %t807) store ptr %t808, ptr %t809 %t810 = call ptr @fn_emit_alloca(ptr @.str6897) store ptr %t810, ptr %t811 %t812 = load ptr, ptr %t786 %t813 = call ptr @lp_str_concat(ptr @.str6898, ptr %t812) %t814 = call ptr @lp_str_concat(ptr %t813, ptr @.str6899) %t815 = call ptr @fn_emit_bind(ptr %t814) store ptr %t815, ptr %t816 %t817 = load ptr, ptr %t816 %t818 = load ptr, ptr %t811 call void @fn_store_at(ptr @.str6900, ptr %t817, ptr %t818) %t819 = call ptr @fn_lbl(ptr @.str6901) store ptr %t819, ptr %t820 %t821 = call ptr @fn_lbl(ptr @.str6902) store ptr %t821, ptr %t822 %t823 = call ptr @fn_lbl(ptr @.str6903) store ptr %t823, ptr %t824 call void @fn_emit(ptr @.str6904) %t825 = load ptr, ptr %t820 call void @fn_emit(ptr %t825) call void @fn_emit(ptr @.str6905) %t826 = load ptr, ptr %t820 call void @fn_emit(ptr %t826) call void @fn_emit(ptr @.str6906) %t827 = load ptr, ptr %t811 %t828 = call ptr @lp_str_concat(ptr @.str6907, ptr %t827) %t829 = call ptr @fn_emit_bind(ptr %t828) store ptr %t829, ptr %t830 %t831 = load ptr, ptr %t830 %t832 = call ptr @lp_str_concat(ptr @.str6908, ptr %t831) %t833 = call ptr @lp_str_concat(ptr %t832, ptr @.str6909) %t834 = call ptr @fn_emit_bind(ptr %t833) store ptr %t834, ptr %t835 %t836 = load ptr, ptr %t91 %t837 = load ptr, ptr %t87 %t838 = load ptr, ptr %t830 %t839 = call ptr @fn_list_elem_addr(ptr %t836, ptr %t837, ptr %t838) store ptr %t839, ptr %t840 %t841 = load ptr, ptr %t87 %t842 = call ptr @lp_str_concat(ptr @.str6910, ptr %t841) %t843 = call ptr @lp_str_concat(ptr %t842, ptr @.str6911) %t844 = load ptr, ptr %t840 %t845 = call ptr @lp_str_concat(ptr %t843, ptr %t844) %t846 = call ptr @fn_emit_bind(ptr %t845) store ptr %t846, ptr %t847 %t848 = load ptr, ptr %t87 %t849 = call ptr @lp_str_concat(ptr @.str6912, ptr %t848) %t850 = call ptr @lp_str_concat(ptr %t849, ptr @.str6913) %t851 = load ptr, ptr %t847 %t852 = call ptr @lp_str_concat(ptr %t850, ptr %t851) %t853 = call ptr @lp_str_concat(ptr %t852, ptr @.str6914) %t854 = load ptr, ptr %t809 %t855 = call ptr @lp_str_concat(ptr %t853, ptr %t854) %t856 = call ptr @fn_emit_bind(ptr %t855) store ptr %t856, ptr %t857 %t858 = load ptr, ptr %t835 %t859 = call ptr @lp_str_concat(ptr @.str6915, ptr %t858) %t860 = call ptr @lp_str_concat(ptr %t859, ptr @.str6916) %t861 = load ptr, ptr %t857 %t862 = call ptr @lp_str_concat(ptr %t860, ptr %t861) %t863 = call ptr @fn_emit_bind(ptr %t862) store ptr %t863, ptr %t864 call void @fn_emit(ptr @.str6917) %t865 = load ptr, ptr %t864 call void @fn_emit(ptr %t865) call void @fn_emit(ptr @.str6918) %t866 = load ptr, ptr %t822 call void @fn_emit(ptr %t866) call void @fn_emit(ptr @.str6919) %t867 = load ptr, ptr %t824 call void @fn_emit(ptr %t867) call void @fn_emit(ptr @.str6920) %t868 = load ptr, ptr %t822 call void @fn_emit(ptr %t868) call void @fn_emit(ptr @.str6921) %t869 = load ptr, ptr %t830 %t870 = call ptr @lp_str_concat(ptr @.str6922, ptr %t869) %t871 = call ptr @lp_str_concat(ptr %t870, ptr @.str6923) %t872 = call ptr @fn_emit_bind(ptr %t871) store ptr %t872, ptr %t873 %t874 = load ptr, ptr %t91 %t875 = load ptr, ptr %t87 %t876 = load ptr, ptr %t873 %t877 = call ptr @fn_list_elem_addr(ptr %t874, ptr %t875, ptr %t876) store ptr %t877, ptr %t878 call void @fn_emit(ptr @.str6924) %t879 = load ptr, ptr %t87 call void @fn_emit(ptr %t879) call void @fn_emit(ptr @.str6925) %t880 = load ptr, ptr %t847 call void @fn_emit(ptr %t880) call void @fn_emit(ptr @.str6926) %t881 = load ptr, ptr %t878 call void @fn_emit(ptr %t881) call void @fn_emit(ptr @.str6927) %t882 = load ptr, ptr %t830 %t883 = call ptr @lp_str_concat(ptr @.str6928, ptr %t882) %t884 = call ptr @lp_str_concat(ptr %t883, ptr @.str6929) %t885 = call ptr @fn_emit_bind(ptr %t884) store ptr %t885, ptr %t886 %t887 = load ptr, ptr %t886 %t888 = load ptr, ptr %t811 call void @fn_store_at(ptr @.str6930, ptr %t887, ptr %t888) call void @fn_emit(ptr @.str6931) %t889 = load ptr, ptr %t820 call void @fn_emit(ptr %t889) call void @fn_emit(ptr @.str6932) %t890 = load ptr, ptr %t824 call void @fn_emit(ptr %t890) call void @fn_emit(ptr @.str6933) %t891 = load ptr, ptr %t811 %t892 = call ptr @lp_str_concat(ptr @.str6934, ptr %t891) %t893 = call ptr @fn_emit_bind(ptr %t892) store ptr %t893, ptr %t894 %t895 = load ptr, ptr %t894 %t896 = call ptr @lp_str_concat(ptr @.str6935, ptr %t895) %t897 = call ptr @lp_str_concat(ptr %t896, ptr @.str6936) %t898 = call ptr @fn_emit_bind(ptr %t897) store ptr %t898, ptr %t899 %t900 = load ptr, ptr %t91 %t901 = load ptr, ptr %t87 %t902 = load ptr, ptr %t899 %t903 = call ptr @fn_list_elem_addr(ptr %t900, ptr %t901, ptr %t902) store ptr %t903, ptr %t904 call void @fn_emit(ptr @.str6937) %t905 = load ptr, ptr %t87 call void @fn_emit(ptr %t905) call void @fn_emit(ptr @.str6938) %t906 = load ptr, ptr %t809 call void @fn_emit(ptr %t906) call void @fn_emit(ptr @.str6939) %t907 = load ptr, ptr %t904 call void @fn_emit(ptr %t907) call void @fn_emit(ptr @.str6940) %t908 = load ptr, ptr %t786 %t909 = call ptr @lp_str_concat(ptr @.str6941, ptr %t908) %t910 = call ptr @lp_str_concat(ptr %t909, ptr @.str6942) %t911 = call ptr @fn_emit_bind(ptr %t910) store ptr %t911, ptr %t912 %t913 = load ptr, ptr %t912 %t914 = load ptr, ptr %t773 call void @fn_store_at(ptr @.str6943, ptr %t913, ptr %t914) call void @fn_emit(ptr @.str6944) %t915 = load ptr, ptr %t776 call void @fn_emit(ptr %t915) call void @fn_emit(ptr @.str6945) %t916 = load ptr, ptr %t780 call void @fn_emit(ptr %t916) call void @fn_emit(ptr @.str6946) call void @fn_emit(ptr @.str6947) %t917 = load ptr, ptr %t763 call void @fn_emit(ptr %t917) call void @fn_emit(ptr @.str6948) %t918 = load ptr, ptr %t761 call void @fn_emit(ptr %t918) call void @fn_emit(ptr @.str6949) %t919 = load ptr, ptr %t91 %t920 = load ptr, ptr %t87 call void @fn_emit_merge_sort(ptr %t919, ptr %t920, i32 3, ptr @.str6950, ptr @.str6951) call void @fn_emit(ptr @.str6952) %t921 = load ptr, ptr %t763 call void @fn_emit(ptr %t921) call void @fn_emit(ptr @.str6953) %t922 = load ptr, ptr %t763 call void @fn_emit(ptr %t922) call void @fn_emit(ptr @.str6954) %t923 = call ptr @fn_val(ptr @.str6955, ptr @.str6956) store ptr %t923, ptr %retval br label %ret ifend69: %t924 = load ptr, ptr %t0 %t925 = call i32 @lp_str_eq(ptr %t924, ptr @.str6957) %t926 = icmp ne i32 %t925, 0 br i1 %t926, label %then70, label %ifend72 then70: %t927 = load ptr, ptr %t0 %t928 = load ptr, ptr %t1 %t929 = call ptr @fn_sort_fn_arg(ptr %t927, ptr %t928) store ptr %t929, ptr %t930 %t931 = load ptr, ptr %t930 %t932 = call ptr @fn_find_fn(ptr %t931) %t933 = call ptr @fn_param_types(ptr %t932) %t934 = getelementptr inbounds %LSlice, ptr %t933, i32 0, i32 1 %t935 = load i32, ptr %t934 %t936 = icmp ne i32 %t935, 2 %t937 = zext i1 %t936 to i32 %t938 = icmp ne i32 %t937, 0 br i1 %t938, label %then73, label %ifend75 then73: %t939 = load ptr, ptr %t930 %t940 = call ptr @lp_str_concat(ptr @.str6958, ptr %t939) %t941 = call ptr @lp_str_concat(ptr %t940, ptr @.str6959) call void @fn_perr(ptr %t941) br label %ifend75 ifend75: %t942 = load ptr, ptr %t91 %t943 = load ptr, ptr %t87 %t944 = load ptr, ptr %t930 call void @fn_emit_merge_sort(ptr %t942, ptr %t943, i32 0, ptr %t944, ptr @.str6960) %t945 = call ptr @fn_val(ptr @.str6961, ptr @.str6962) store ptr %t945, ptr %retval br label %ret ifend72: %t947 = load ptr, ptr %t0 %t948 = call i32 @lp_str_eq(ptr %t947, ptr @.str6963) %t949 = icmp ne i32 %t948, 0 %t950 = zext i1 %t949 to i32 store i32 %t950, ptr %t946 br i1 %t949, label %scend77, label %sc76 sc76: %t951 = load ptr, ptr %t0 %t952 = call i32 @lp_str_eq(ptr %t951, ptr @.str6964) %t953 = icmp ne i32 %t952, 0 %t954 = zext i1 %t953 to i32 store i32 %t954, ptr %t946 br label %scend77 scend77: %t955 = load i32, ptr %t946 %t956 = icmp ne i32 %t955, 0 br i1 %t956, label %then78, label %ifend80 then78: %t957 = load ptr, ptr %t0 %t958 = load ptr, ptr %t1 %t959 = call ptr @fn_sort_fn_arg(ptr %t957, ptr %t958) store ptr %t959, ptr %t960 %t961 = load ptr, ptr %t960 %t962 = call ptr @fn_find_fn(ptr %t961) store ptr %t962, ptr %t963 %t964 = load ptr, ptr %t963 %t965 = call ptr @fn_param_types(ptr %t964) %t966 = getelementptr inbounds %LSlice, ptr %t965, i32 0, i32 1 %t967 = load i32, ptr %t966 %t968 = icmp ne i32 %t967, 1 %t969 = zext i1 %t968 to i32 %t970 = icmp ne i32 %t969, 0 br i1 %t970, label %then81, label %ifend83 then81: %t971 = load ptr, ptr %t0 %t972 = call ptr @lp_str_concat(ptr @.str6965, ptr %t971) %t973 = call ptr @lp_str_concat(ptr %t972, ptr @.str6966) %t974 = load ptr, ptr %t960 %t975 = call ptr @lp_str_concat(ptr %t973, ptr %t974) %t976 = call ptr @lp_str_concat(ptr %t975, ptr @.str6967) call void @fn_perr(ptr %t976) br label %ifend83 ifend83: %t977 = load ptr, ptr %t963 %t978 = getelementptr inbounds %Cmp_Node, ptr %t977, i32 0, i32 3 %t979 = load ptr, ptr %t978 %t980 = call ptr @fn_llty(ptr %t979) store ptr %t980, ptr %t981 %t983 = load ptr, ptr %t981 %t984 = call i32 @lp_str_eq(ptr %t983, ptr @.str6968) %t985 = icmp ne i32 %t984, 0 %t986 = zext i1 %t985 to i32 store i32 %t986, ptr %t982 br i1 %t985, label %scend85, label %sc84 sc84: %t987 = load ptr, ptr %t981 %t988 = call i32 @lp_str_eq(ptr %t987, ptr @.str6969) %t989 = icmp ne i32 %t988, 0 %t990 = zext i1 %t989 to i32 store i32 %t990, ptr %t982 br label %scend85 scend85: %t991 = load i32, ptr %t982 %t992 = icmp ne i32 %t991, 0 br i1 %t992, label %then86, label %ifend88 then86: %t993 = load ptr, ptr %t0 %t994 = call ptr @lp_str_concat(ptr @.str6970, ptr %t993) %t995 = call ptr @lp_str_concat(ptr %t994, ptr @.str6971) %t996 = load ptr, ptr %t960 %t997 = call ptr @lp_str_concat(ptr %t995, ptr %t996) %t998 = call ptr @lp_str_concat(ptr %t997, ptr @.str6972) call void @fn_perr(ptr %t998) br label %ifend88 ifend88: store i32 1, ptr %t999 %t1000 = load ptr, ptr %t0 %t1001 = call i32 @lp_str_eq(ptr %t1000, ptr @.str6973) %t1002 = icmp ne i32 %t1001, 0 br i1 %t1002, label %then89, label %ifend91 then89: store i32 2, ptr %t999 br label %ifend91 ifend91: %t1003 = load ptr, ptr %t91 %t1004 = load ptr, ptr %t87 %t1005 = load i32, ptr %t999 %t1006 = load ptr, ptr %t960 %t1007 = load ptr, ptr %t981 call void @fn_emit_merge_sort(ptr %t1003, ptr %t1004, i32 %t1005, ptr %t1006, ptr %t1007) %t1008 = call ptr @fn_val(ptr @.str6974, ptr @.str6975) store ptr %t1008, ptr %retval br label %ret ifend80: %t1009 = load ptr, ptr %t94 %t1010 = call ptr @lp_str_concat(ptr @.str6976, ptr %t1009) %t1011 = call ptr @fn_emit_bind(ptr %t1010) store ptr %t1011, ptr %t1012 %t1013 = call ptr @fn_emit_alloca(ptr @.str6977) store ptr %t1013, ptr %t1014 %t1015 = load ptr, ptr %t1014 call void @fn_store_at(ptr @.str6978, ptr @.str6979, ptr %t1015) %t1016 = call ptr @fn_emit_alloca(ptr @.str6980) store ptr %t1016, ptr %t1017 %t1018 = load ptr, ptr %t1012 %t1019 = call ptr @lp_str_concat(ptr @.str6981, ptr %t1018) %t1020 = call ptr @lp_str_concat(ptr %t1019, ptr @.str6982) %t1021 = call ptr @fn_emit_bind(ptr %t1020) store ptr %t1021, ptr %t1022 %t1023 = load ptr, ptr %t1022 %t1024 = load ptr, ptr %t1017 call void @fn_store_at(ptr @.str6983, ptr %t1023, ptr %t1024) %t1025 = call ptr @fn_lbl(ptr @.str6984) store ptr %t1025, ptr %t1026 %t1027 = call ptr @fn_lbl(ptr @.str6985) store ptr %t1027, ptr %t1028 %t1029 = call ptr @fn_lbl(ptr @.str6986) store ptr %t1029, ptr %t1030 call void @fn_emit(ptr @.str6987) %t1031 = load ptr, ptr %t1026 call void @fn_emit(ptr %t1031) call void @fn_emit(ptr @.str6988) %t1032 = load ptr, ptr %t1026 call void @fn_emit(ptr %t1032) call void @fn_emit(ptr @.str6989) %t1033 = load ptr, ptr %t1014 %t1034 = call ptr @lp_str_concat(ptr @.str6990, ptr %t1033) %t1035 = call ptr @fn_emit_bind(ptr %t1034) store ptr %t1035, ptr %t1036 %t1037 = load ptr, ptr %t1017 %t1038 = call ptr @lp_str_concat(ptr @.str6991, ptr %t1037) %t1039 = call ptr @fn_emit_bind(ptr %t1038) store ptr %t1039, ptr %t1040 %t1041 = load ptr, ptr %t1036 %t1042 = call ptr @lp_str_concat(ptr @.str6992, ptr %t1041) %t1043 = call ptr @lp_str_concat(ptr %t1042, ptr @.str6993) %t1044 = load ptr, ptr %t1040 %t1045 = call ptr @lp_str_concat(ptr %t1043, ptr %t1044) %t1046 = call ptr @fn_emit_bind(ptr %t1045) store ptr %t1046, ptr %t1047 call void @fn_emit(ptr @.str6994) %t1048 = load ptr, ptr %t1047 call void @fn_emit(ptr %t1048) call void @fn_emit(ptr @.str6995) %t1049 = load ptr, ptr %t1028 call void @fn_emit(ptr %t1049) call void @fn_emit(ptr @.str6996) %t1050 = load ptr, ptr %t1030 call void @fn_emit(ptr %t1050) call void @fn_emit(ptr @.str6997) %t1051 = load ptr, ptr %t1028 call void @fn_emit(ptr %t1051) call void @fn_emit(ptr @.str6998) %t1052 = load ptr, ptr %t91 %t1053 = load ptr, ptr %t87 %t1054 = load ptr, ptr %t1036 %t1055 = call ptr @fn_list_elem_addr(ptr %t1052, ptr %t1053, ptr %t1054) store ptr %t1055, ptr %t1056 %t1057 = load ptr, ptr %t91 %t1058 = load ptr, ptr %t87 %t1059 = load ptr, ptr %t1040 %t1060 = call ptr @fn_list_elem_addr(ptr %t1057, ptr %t1058, ptr %t1059) store ptr %t1060, ptr %t1061 %t1062 = load ptr, ptr %t87 %t1063 = call ptr @lp_str_concat(ptr @.str6999, ptr %t1062) %t1064 = call ptr @lp_str_concat(ptr %t1063, ptr @.str7000) %t1065 = load ptr, ptr %t1056 %t1066 = call ptr @lp_str_concat(ptr %t1064, ptr %t1065) %t1067 = call ptr @fn_emit_bind(ptr %t1066) store ptr %t1067, ptr %t1068 %t1069 = load ptr, ptr %t87 %t1070 = call ptr @lp_str_concat(ptr @.str7001, ptr %t1069) %t1071 = call ptr @lp_str_concat(ptr %t1070, ptr @.str7002) %t1072 = load ptr, ptr %t1061 %t1073 = call ptr @lp_str_concat(ptr %t1071, ptr %t1072) %t1074 = call ptr @fn_emit_bind(ptr %t1073) store ptr %t1074, ptr %t1075 call void @fn_emit(ptr @.str7003) %t1076 = load ptr, ptr %t87 call void @fn_emit(ptr %t1076) call void @fn_emit(ptr @.str7004) %t1077 = load ptr, ptr %t1075 call void @fn_emit(ptr %t1077) call void @fn_emit(ptr @.str7005) %t1078 = load ptr, ptr %t1056 call void @fn_emit(ptr %t1078) call void @fn_emit(ptr @.str7006) call void @fn_emit(ptr @.str7007) %t1079 = load ptr, ptr %t87 call void @fn_emit(ptr %t1079) call void @fn_emit(ptr @.str7008) %t1080 = load ptr, ptr %t1068 call void @fn_emit(ptr %t1080) call void @fn_emit(ptr @.str7009) %t1081 = load ptr, ptr %t1061 call void @fn_emit(ptr %t1081) call void @fn_emit(ptr @.str7010) %t1082 = load ptr, ptr %t1036 %t1083 = call ptr @lp_str_concat(ptr @.str7011, ptr %t1082) %t1084 = call ptr @lp_str_concat(ptr %t1083, ptr @.str7012) %t1085 = call ptr @fn_emit_bind(ptr %t1084) store ptr %t1085, ptr %t1086 %t1087 = load ptr, ptr %t1086 %t1088 = load ptr, ptr %t1014 call void @fn_store_at(ptr @.str7013, ptr %t1087, ptr %t1088) %t1089 = load ptr, ptr %t1040 %t1090 = call ptr @lp_str_concat(ptr @.str7014, ptr %t1089) %t1091 = call ptr @lp_str_concat(ptr %t1090, ptr @.str7015) %t1092 = call ptr @fn_emit_bind(ptr %t1091) store ptr %t1092, ptr %t1093 %t1094 = load ptr, ptr %t1093 %t1095 = load ptr, ptr %t1017 call void @fn_store_at(ptr @.str7016, ptr %t1094, ptr %t1095) call void @fn_emit(ptr @.str7017) %t1096 = load ptr, ptr %t1026 call void @fn_emit(ptr %t1096) call void @fn_emit(ptr @.str7018) %t1097 = load ptr, ptr %t1030 call void @fn_emit(ptr %t1097) call void @fn_emit(ptr @.str7019) %t1098 = call ptr @fn_val(ptr @.str7020, ptr @.str7021) store ptr %t1098, ptr %retval br label %ret ret: %t1099 = load ptr, ptr %retval ret ptr %t1099 } define i32 @fn_is_ease_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str7022) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str7023) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str7024) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7025) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t21 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str7026) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 br label %scend8 scend8: %t30 = load i32, ptr %t21 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t20 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str7027) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 br label %scend10 scend10: %t37 = load i32, ptr %t20 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: store i32 0, ptr %retval br label %ret ret: %t39 = load i32, ptr %retval ret i32 %t39 } define ptr @fn_ease_bounce_seg(ptr %arg_u) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr store ptr %arg_u, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_fx_mul_code(ptr %t1, ptr %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = call ptr @fn_fx_mul_code(ptr %t5, ptr @.str7028) store ptr %t6, ptr %retval br label %ret ret: %t7 = load ptr, ptr %retval ret ptr %t7 } define ptr @fn_ease_bounce_code(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr %t8 = alloca ptr %t11 = alloca ptr %t16 = alloca ptr %t21 = alloca ptr %t24 = alloca ptr %t29 = alloca ptr %t34 = alloca ptr %t37 = alloca ptr %t42 = alloca ptr %t47 = alloca ptr %t57 = alloca ptr %t62 = alloca ptr %t72 = alloca ptr %t77 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_ease_bounce_seg(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t0 %t5 = call ptr @lp_str_concat(ptr @.str7029, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str7030) %t7 = call ptr @fn_emit_bind(ptr %t6) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_ease_bounce_seg(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = call ptr @lp_str_concat(ptr @.str7031, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str7032) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t0 %t18 = call ptr @lp_str_concat(ptr @.str7033, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str7034) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call ptr @fn_ease_bounce_seg(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str7035, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str7036) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 %t31 = call ptr @lp_str_concat(ptr @.str7037, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str7038) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_ease_bounce_seg(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = call ptr @lp_str_concat(ptr @.str7039, ptr %t38) %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str7040) %t41 = call ptr @fn_emit_bind(ptr %t40) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t0 %t44 = call ptr @lp_str_concat(ptr @.str7041, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str7042) %t46 = call ptr @fn_emit_bind(ptr %t45) store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t47 %t49 = call ptr @lp_str_concat(ptr @.str7043, ptr %t48) %t50 = call ptr @lp_str_concat(ptr %t49, ptr @.str7044) %t51 = load ptr, ptr %t29 %t52 = call ptr @lp_str_concat(ptr %t50, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str7045) %t54 = load ptr, ptr %t42 %t55 = call ptr @lp_str_concat(ptr %t53, ptr %t54) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t0 %t59 = call ptr @lp_str_concat(ptr @.str7046, ptr %t58) %t60 = call ptr @lp_str_concat(ptr %t59, ptr @.str7047) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = call ptr @lp_str_concat(ptr @.str7048, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str7049) %t66 = load ptr, ptr %t16 %t67 = call ptr @lp_str_concat(ptr %t65, ptr %t66) %t68 = call ptr @lp_str_concat(ptr %t67, ptr @.str7050) %t69 = load ptr, ptr %t57 %t70 = call ptr @lp_str_concat(ptr %t68, ptr %t69) %t71 = call ptr @fn_emit_bind(ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t0 %t74 = call ptr @lp_str_concat(ptr @.str7051, ptr %t73) %t75 = call ptr @lp_str_concat(ptr %t74, ptr @.str7052) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t77 %t79 = call ptr @lp_str_concat(ptr @.str7053, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str7054) %t81 = load ptr, ptr %t3 %t82 = call ptr @lp_str_concat(ptr %t80, ptr %t81) %t83 = call ptr @lp_str_concat(ptr %t82, ptr @.str7055) %t84 = load ptr, ptr %t72 %t85 = call ptr @lp_str_concat(ptr %t83, ptr %t84) %t86 = call ptr @fn_emit_bind(ptr %t85) store ptr %t86, ptr %retval br label %ret ret: %t87 = load ptr, ptr %retval ret ptr %t87 } define ptr @fn_ease_eval(i32 %arg_mode, ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca i32 %t1 = alloca ptr %t21 = alloca ptr %t32 = alloca ptr %t36 = alloca ptr %t41 = alloca ptr %t46 = alloca ptr %t60 = alloca ptr %t64 = alloca ptr %t67 = alloca ptr %t70 = alloca ptr %t85 = alloca ptr %t89 = alloca ptr %t94 = alloca ptr %t99 = alloca ptr %t102 = alloca ptr %t107 = alloca ptr %t111 = alloca ptr store i32 %arg_mode, ptr %t0 store ptr %arg_t, ptr %t1 %t2 = load i32, ptr %t0 %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load i32, ptr %t0 %t8 = icmp eq i32 %t7, 1 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: %t11 = load ptr, ptr %t1 %t12 = load ptr, ptr %t1 %t13 = call ptr @fn_fx_mul_code(ptr %t11, ptr %t12) store ptr %t13, ptr %retval br label %ret ifend5: %t14 = load i32, ptr %t0 %t15 = icmp eq i32 %t14, 2 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: %t18 = load ptr, ptr %t1 %t19 = call ptr @lp_str_concat(ptr @.str7056, ptr %t18) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t1 %t23 = load ptr, ptr %t21 %t24 = call ptr @fn_fx_mul_code(ptr %t22, ptr %t23) store ptr %t24, ptr %retval br label %ret ifend8: %t25 = load i32, ptr %t0 %t26 = icmp eq i32 %t25, 3 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then9, label %ifend11 then9: %t29 = load ptr, ptr %t1 %t30 = load ptr, ptr %t1 %t31 = call ptr @fn_fx_mul_code(ptr %t29, ptr %t30) store ptr %t31, ptr %t32 %t33 = load ptr, ptr %t32 %t34 = load ptr, ptr %t1 %t35 = call ptr @fn_fx_mul_code(ptr %t33, ptr %t34) store ptr %t35, ptr %t36 %t37 = load ptr, ptr %t32 %t38 = call ptr @lp_str_concat(ptr @.str7057, ptr %t37) %t39 = call ptr @lp_str_concat(ptr %t38, ptr @.str7058) %t40 = call ptr @fn_emit_bind(ptr %t39) store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t36 %t43 = call ptr @lp_str_concat(ptr @.str7059, ptr %t42) %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str7060) %t45 = call ptr @fn_emit_bind(ptr %t44) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t41 %t48 = call ptr @lp_str_concat(ptr @.str7061, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str7062) %t50 = load ptr, ptr %t46 %t51 = call ptr @lp_str_concat(ptr %t49, ptr %t50) %t52 = call ptr @fn_emit_bind(ptr %t51) store ptr %t52, ptr %retval br label %ret ifend11: %t53 = load i32, ptr %t0 %t54 = icmp eq i32 %t53, 4 %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then12, label %ifend14 then12: %t57 = load ptr, ptr %t1 %t58 = load ptr, ptr %t1 %t59 = call ptr @fn_fx_mul_code(ptr %t57, ptr %t58) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t60 %t62 = load ptr, ptr %t1 %t63 = call ptr @fn_fx_mul_code(ptr %t61, ptr %t62) store ptr %t63, ptr %t64 %t65 = load ptr, ptr %t64 %t66 = call ptr @fn_fx_mul_code(ptr %t65, ptr @.str7063) store ptr %t66, ptr %t67 %t68 = load ptr, ptr %t60 %t69 = call ptr @fn_fx_mul_code(ptr %t68, ptr @.str7064) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t67 %t72 = call ptr @lp_str_concat(ptr @.str7065, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str7066) %t74 = load ptr, ptr %t70 %t75 = call ptr @lp_str_concat(ptr %t73, ptr %t74) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %retval br label %ret ifend14: %t77 = load i32, ptr %t0 %t78 = icmp eq i32 %t77, 5 %t79 = zext i1 %t78 to i32 %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then15, label %ifend17 then15: store i32 1, ptr @g_g_uses_mathrt %t81 = load ptr, ptr %t1 %t82 = call ptr @lp_str_concat(ptr @.str7067, ptr %t81) %t83 = call ptr @lp_str_concat(ptr %t82, ptr @.str7068) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = call ptr @lp_str_concat(ptr @.str7069, ptr %t86) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = call ptr @lp_str_concat(ptr @.str7070, ptr %t90) %t92 = call ptr @lp_str_concat(ptr %t91, ptr @.str7071) %t93 = call ptr @fn_emit_bind(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t85 %t96 = call ptr @lp_str_concat(ptr @.str7072, ptr %t95) %t97 = call ptr @lp_str_concat(ptr %t96, ptr @.str7073) %t98 = call ptr @fn_emit_bind(ptr %t97) store ptr %t98, ptr %t99 %t100 = load ptr, ptr %t99 %t101 = call ptr @fn_fx_mul_code(ptr %t100, ptr @.str7074) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t102 %t104 = call ptr @lp_str_concat(ptr @.str7075, ptr %t103) %t105 = call ptr @lp_str_concat(ptr %t104, ptr @.str7076) %t106 = call ptr @fn_emit_bind(ptr %t105) store ptr %t106, ptr %t107 %t108 = load ptr, ptr %t94 %t109 = load ptr, ptr %t107 %t110 = call ptr @fn_fx_mul_code(ptr %t108, ptr %t109) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t111 %t113 = call ptr @lp_str_concat(ptr @.str7077, ptr %t112) %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str7078) %t115 = call ptr @fn_emit_bind(ptr %t114) store ptr %t115, ptr %retval br label %ret ifend17: %t116 = load ptr, ptr %t1 %t117 = call ptr @fn_ease_bounce_code(ptr %t116) store ptr %t117, ptr %retval br label %ret ret: %t118 = load ptr, ptr %retval ret ptr %t118 } define ptr @fn_emit_ease_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t14 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 0, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str7079, i32 0, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 0 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_emit_expr(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7080) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then2, label %ifend4 then2: %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_ease_eval(i32 1, ptr %t20) %t22 = call ptr @fn_val(ptr %t21, ptr @.str7081) store ptr %t22, ptr %retval br label %ret ifend4: %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str7082) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: %t26 = load ptr, ptr %t14 %t27 = getelementptr inbounds %Cmp_Val, ptr %t26, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_ease_eval(i32 2, ptr %t28) %t30 = call ptr @fn_val(ptr %t29, ptr @.str7083) store ptr %t30, ptr %retval br label %ret ifend7: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str7084) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then8, label %ifend10 then8: %t34 = load ptr, ptr %t14 %t35 = getelementptr inbounds %Cmp_Val, ptr %t34, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_ease_eval(i32 3, ptr %t36) %t38 = call ptr @fn_val(ptr %t37, ptr @.str7085) store ptr %t38, ptr %retval br label %ret ifend10: %t39 = load ptr, ptr %t0 %t40 = call i32 @lp_str_eq(ptr %t39, ptr @.str7086) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then11, label %ifend13 then11: %t42 = load ptr, ptr %t14 %t43 = getelementptr inbounds %Cmp_Val, ptr %t42, i32 0, i32 0 %t44 = load ptr, ptr %t43 %t45 = call ptr @fn_ease_eval(i32 4, ptr %t44) %t46 = call ptr @fn_val(ptr %t45, ptr @.str7087) store ptr %t46, ptr %retval br label %ret ifend13: %t47 = load ptr, ptr %t0 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str7088) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then14, label %ifend16 then14: %t50 = load ptr, ptr %t14 %t51 = getelementptr inbounds %Cmp_Val, ptr %t50, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = call ptr @fn_ease_eval(i32 5, ptr %t52) %t54 = call ptr @fn_val(ptr %t53, ptr @.str7089) store ptr %t54, ptr %retval br label %ret ifend16: %t55 = load ptr, ptr %t14 %t56 = getelementptr inbounds %Cmp_Val, ptr %t55, i32 0, i32 0 %t57 = load ptr, ptr %t56 %t58 = call ptr @fn_ease_eval(i32 6, ptr %t57) %t59 = call ptr @fn_val(ptr %t58, ptr @.str7090) store ptr %t59, ptr %retval br label %ret ret: %t60 = load ptr, ptr %retval ret ptr %t60 } define i32 @fn_is_anim_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t31 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str7091) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str7092) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str7093) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t21, ptr @.str7094) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t20 br i1 %t23, label %scend8, label %sc7 sc7: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str7095) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t20 br label %scend8 scend8: %t29 = load i32, ptr %t20 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t32 = load ptr, ptr %t0 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str7096) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t31 br i1 %t34, label %scend13, label %sc12 sc12: %t36 = load ptr, ptr %t0 %t37 = call i32 @lp_str_eq(ptr %t36, ptr @.str7097) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t31 br label %scend13 scend13: %t40 = load i32, ptr %t31 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then14, label %ifend16 then14: store i32 1, ptr %retval br label %ret ifend16: store i32 0, ptr %retval br label %ret ret: %t42 = load i32, ptr %retval ret i32 %t42 } define ptr @fn_anim_elapsed(ptr %arg_timer, ptr %arg_fps) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca ptr %t11 = alloca ptr %t18 = alloca ptr %t23 = alloca ptr store ptr %arg_timer, ptr %t0 store ptr %arg_fps, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str7098, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str7099) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t1 %t8 = call ptr @lp_str_concat(ptr @.str7100, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str7101) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t6 %t13 = call ptr @lp_str_concat(ptr @.str7102, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str7103) %t15 = load ptr, ptr %t11 %t16 = call ptr @lp_str_concat(ptr %t14, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = call ptr @lp_str_concat(ptr @.str7104, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str7105) %t22 = call ptr @fn_emit_bind(ptr %t21) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = call ptr @lp_str_concat(ptr @.str7106, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str7107) %t27 = call ptr @fn_emit_bind(ptr %t26) store ptr %t27, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } define ptr @fn_anim_atleast1(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str7108, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str7109) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @lp_str_concat(ptr @.str7110, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str7111) %t9 = load ptr, ptr %t0 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %retval br label %ret ret: %t12 = load ptr, ptr %retval ret ptr %t12 } define ptr @fn_emit_anim_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t30 = alloca ptr %t43 = alloca ptr %t51 = alloca ptr %t56 = alloca ptr %t79 = alloca ptr %t92 = alloca ptr %t105 = alloca ptr %t113 = alloca ptr %t120 = alloca ptr %t127 = alloca ptr %t153 = alloca ptr %t166 = alloca ptr %t179 = alloca ptr %t187 = alloca ptr %t194 = alloca ptr %t199 = alloca ptr %t202 = alloca ptr %t209 = alloca ptr %t216 = alloca ptr %t225 = alloca ptr %t251 = alloca ptr %t264 = alloca ptr %t277 = alloca ptr %t285 = alloca ptr %t294 = alloca ptr %t315 = alloca ptr %t328 = alloca ptr %t335 = alloca ptr %t340 = alloca ptr %t363 = alloca ptr %t376 = alloca ptr %t389 = alloca ptr %t394 = alloca ptr %t403 = alloca ptr %t425 = alloca ptr %t438 = alloca ptr %t451 = alloca ptr %t456 = alloca ptr %t465 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7112) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str7113, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 1, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str7114, i32 1, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 1 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_emit_expr(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t1 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 2, %t37 br i1 %t38, label %ixok7, label %ixbad8 ixbad8: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str7115, i32 2, i32 %t37) call void @exit(i32 1) unreachable ixok7: %t40 = getelementptr inbounds ptr, ptr %t35, i32 2 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_emit_expr(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t17 %t45 = getelementptr inbounds %Cmp_Val, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = load ptr, ptr %t30 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_anim_elapsed(ptr %t46, ptr %t49) store ptr %t50, ptr %t51 %t52 = load ptr, ptr %t43 %t53 = getelementptr inbounds %Cmp_Val, ptr %t52, i32 0, i32 0 %t54 = load ptr, ptr %t53 %t55 = call ptr @fn_anim_atleast1(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t51 %t58 = call ptr @lp_str_concat(ptr @.str7116, ptr %t57) %t59 = call ptr @lp_str_concat(ptr %t58, ptr @.str7117) %t60 = load ptr, ptr %t56 %t61 = call ptr @lp_str_concat(ptr %t59, ptr %t60) %t62 = call ptr @fn_emit_bind(ptr %t61) %t63 = call ptr @fn_val(ptr %t62, ptr @.str7118) store ptr %t63, ptr %retval br label %ret ifend2: %t64 = load ptr, ptr %t0 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str7119) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then9, label %ifend11 then9: %t67 = load ptr, ptr %t1 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 7 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp ult i32 0, %t73 br i1 %t74, label %ixok12, label %ixbad13 ixbad13: %t75 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t75, ptr @.fmt_bounds, ptr @.str7120, i32 0, i32 %t73) call void @exit(i32 1) unreachable ixok12: %t76 = getelementptr inbounds ptr, ptr %t71, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_emit_expr(ptr %t77) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t1 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 7 %t82 = load ptr, ptr %t81 %t83 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 %t86 = load i32, ptr %t85 %t87 = icmp ult i32 1, %t86 br i1 %t87, label %ixok14, label %ixbad15 ixbad15: %t88 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t88, ptr @.fmt_bounds, ptr @.str7121, i32 1, i32 %t86) call void @exit(i32 1) unreachable ixok14: %t89 = getelementptr inbounds ptr, ptr %t84, i32 1 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_emit_expr(ptr %t90) store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t1 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 7 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %LSlice, ptr %t95, i32 0, i32 0 %t97 = load ptr, ptr %t96 %t98 = getelementptr inbounds %LSlice, ptr %t95, i32 0, i32 1 %t99 = load i32, ptr %t98 %t100 = icmp ult i32 2, %t99 br i1 %t100, label %ixok16, label %ixbad17 ixbad17: %t101 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t101, ptr @.fmt_bounds, ptr @.str7122, i32 2, i32 %t99) call void @exit(i32 1) unreachable ixok16: %t102 = getelementptr inbounds ptr, ptr %t97, i32 2 %t103 = load ptr, ptr %t102 %t104 = call ptr @fn_emit_expr(ptr %t103) store ptr %t104, ptr %t105 %t106 = load ptr, ptr %t79 %t107 = getelementptr inbounds %Cmp_Val, ptr %t106, i32 0, i32 0 %t108 = load ptr, ptr %t107 %t109 = load ptr, ptr %t92 %t110 = getelementptr inbounds %Cmp_Val, ptr %t109, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = call ptr @fn_anim_elapsed(ptr %t108, ptr %t111) store ptr %t112, ptr %t113 %t114 = load ptr, ptr %t105 %t115 = getelementptr inbounds %Cmp_Val, ptr %t114, i32 0, i32 0 %t116 = load ptr, ptr %t115 %t117 = call ptr @lp_str_concat(ptr @.str7123, ptr %t116) %t118 = call ptr @lp_str_concat(ptr %t117, ptr @.str7124) %t119 = call ptr @fn_emit_bind(ptr %t118) store ptr %t119, ptr %t120 %t121 = load ptr, ptr %t113 %t122 = call ptr @lp_str_concat(ptr @.str7125, ptr %t121) %t123 = call ptr @lp_str_concat(ptr %t122, ptr @.str7126) %t124 = load ptr, ptr %t120 %t125 = call ptr @lp_str_concat(ptr %t123, ptr %t124) %t126 = call ptr @fn_emit_bind(ptr %t125) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t127 %t129 = call ptr @lp_str_concat(ptr @.str7127, ptr %t128) %t130 = call ptr @lp_str_concat(ptr %t129, ptr @.str7128) %t131 = load ptr, ptr %t113 %t132 = call ptr @lp_str_concat(ptr %t130, ptr %t131) %t133 = call ptr @lp_str_concat(ptr %t132, ptr @.str7129) %t134 = load ptr, ptr %t120 %t135 = call ptr @lp_str_concat(ptr %t133, ptr %t134) %t136 = call ptr @fn_emit_bind(ptr %t135) %t137 = call ptr @fn_val(ptr %t136, ptr @.str7130) store ptr %t137, ptr %retval br label %ret ifend11: %t138 = load ptr, ptr %t0 %t139 = call i32 @lp_str_eq(ptr %t138, ptr @.str7131) %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %then18, label %ifend20 then18: %t141 = load ptr, ptr %t1 %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 7 %t143 = load ptr, ptr %t142 %t144 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 1 %t147 = load i32, ptr %t146 %t148 = icmp ult i32 0, %t147 br i1 %t148, label %ixok21, label %ixbad22 ixbad22: %t149 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t149, ptr @.fmt_bounds, ptr @.str7132, i32 0, i32 %t147) call void @exit(i32 1) unreachable ixok21: %t150 = getelementptr inbounds ptr, ptr %t145, i32 0 %t151 = load ptr, ptr %t150 %t152 = call ptr @fn_emit_expr(ptr %t151) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t1 %t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 7 %t156 = load ptr, ptr %t155 %t157 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 0 %t158 = load ptr, ptr %t157 %t159 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 1 %t160 = load i32, ptr %t159 %t161 = icmp ult i32 1, %t160 br i1 %t161, label %ixok23, label %ixbad24 ixbad24: %t162 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t162, ptr @.fmt_bounds, ptr @.str7133, i32 1, i32 %t160) call void @exit(i32 1) unreachable ixok23: %t163 = getelementptr inbounds ptr, ptr %t158, i32 1 %t164 = load ptr, ptr %t163 %t165 = call ptr @fn_emit_expr(ptr %t164) store ptr %t165, ptr %t166 %t167 = load ptr, ptr %t1 %t168 = getelementptr inbounds %Cmp_Node, ptr %t167, i32 0, i32 7 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 0 %t171 = load ptr, ptr %t170 %t172 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 1 %t173 = load i32, ptr %t172 %t174 = icmp ult i32 2, %t173 br i1 %t174, label %ixok25, label %ixbad26 ixbad26: %t175 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t175, ptr @.fmt_bounds, ptr @.str7134, i32 2, i32 %t173) call void @exit(i32 1) unreachable ixok25: %t176 = getelementptr inbounds ptr, ptr %t171, i32 2 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_emit_expr(ptr %t177) store ptr %t178, ptr %t179 %t180 = load ptr, ptr %t153 %t181 = getelementptr inbounds %Cmp_Val, ptr %t180, i32 0, i32 0 %t182 = load ptr, ptr %t181 %t183 = load ptr, ptr %t166 %t184 = getelementptr inbounds %Cmp_Val, ptr %t183, i32 0, i32 0 %t185 = load ptr, ptr %t184 %t186 = call ptr @fn_anim_elapsed(ptr %t182, ptr %t185) store ptr %t186, ptr %t187 %t188 = load ptr, ptr %t179 %t189 = getelementptr inbounds %Cmp_Val, ptr %t188, i32 0, i32 0 %t190 = load ptr, ptr %t189 %t191 = call ptr @lp_str_concat(ptr @.str7135, ptr %t190) %t192 = call ptr @lp_str_concat(ptr %t191, ptr @.str7136) %t193 = call ptr @fn_emit_bind(ptr %t192) store ptr %t193, ptr %t194 %t195 = load ptr, ptr %t194 %t196 = call ptr @lp_str_concat(ptr @.str7137, ptr %t195) %t197 = call ptr @lp_str_concat(ptr %t196, ptr @.str7138) %t198 = call ptr @fn_emit_bind(ptr %t197) store ptr %t198, ptr %t199 %t200 = load ptr, ptr %t199 %t201 = call ptr @fn_anim_atleast1(ptr %t200) store ptr %t201, ptr %t202 %t203 = load ptr, ptr %t187 %t204 = call ptr @lp_str_concat(ptr @.str7139, ptr %t203) %t205 = call ptr @lp_str_concat(ptr %t204, ptr @.str7140) %t206 = load ptr, ptr %t202 %t207 = call ptr @lp_str_concat(ptr %t205, ptr %t206) %t208 = call ptr @fn_emit_bind(ptr %t207) store ptr %t208, ptr %t209 %t210 = load ptr, ptr %t202 %t211 = call ptr @lp_str_concat(ptr @.str7141, ptr %t210) %t212 = call ptr @lp_str_concat(ptr %t211, ptr @.str7142) %t213 = load ptr, ptr %t209 %t214 = call ptr @lp_str_concat(ptr %t212, ptr %t213) %t215 = call ptr @fn_emit_bind(ptr %t214) store ptr %t215, ptr %t216 %t217 = load ptr, ptr %t209 %t218 = call ptr @lp_str_concat(ptr @.str7143, ptr %t217) %t219 = call ptr @lp_str_concat(ptr %t218, ptr @.str7144) %t220 = load ptr, ptr %t179 %t221 = getelementptr inbounds %Cmp_Val, ptr %t220, i32 0, i32 0 %t222 = load ptr, ptr %t221 %t223 = call ptr @lp_str_concat(ptr %t219, ptr %t222) %t224 = call ptr @fn_emit_bind(ptr %t223) store ptr %t224, ptr %t225 %t226 = load ptr, ptr %t225 %t227 = call ptr @lp_str_concat(ptr @.str7145, ptr %t226) %t228 = call ptr @lp_str_concat(ptr %t227, ptr @.str7146) %t229 = load ptr, ptr %t209 %t230 = call ptr @lp_str_concat(ptr %t228, ptr %t229) %t231 = call ptr @lp_str_concat(ptr %t230, ptr @.str7147) %t232 = load ptr, ptr %t216 %t233 = call ptr @lp_str_concat(ptr %t231, ptr %t232) %t234 = call ptr @fn_emit_bind(ptr %t233) %t235 = call ptr @fn_val(ptr %t234, ptr @.str7148) store ptr %t235, ptr %retval br label %ret ifend20: %t236 = load ptr, ptr %t0 %t237 = call i32 @lp_str_eq(ptr %t236, ptr @.str7149) %t238 = icmp ne i32 %t237, 0 br i1 %t238, label %then27, label %ifend29 then27: %t239 = load ptr, ptr %t1 %t240 = getelementptr inbounds %Cmp_Node, ptr %t239, i32 0, i32 7 %t241 = load ptr, ptr %t240 %t242 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 0 %t243 = load ptr, ptr %t242 %t244 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 1 %t245 = load i32, ptr %t244 %t246 = icmp ult i32 0, %t245 br i1 %t246, label %ixok30, label %ixbad31 ixbad31: %t247 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t247, ptr @.fmt_bounds, ptr @.str7150, i32 0, i32 %t245) call void @exit(i32 1) unreachable ixok30: %t248 = getelementptr inbounds ptr, ptr %t243, i32 0 %t249 = load ptr, ptr %t248 %t250 = call ptr @fn_emit_expr(ptr %t249) store ptr %t250, ptr %t251 %t252 = load ptr, ptr %t1 %t253 = getelementptr inbounds %Cmp_Node, ptr %t252, i32 0, i32 7 %t254 = load ptr, ptr %t253 %t255 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 0 %t256 = load ptr, ptr %t255 %t257 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 1 %t258 = load i32, ptr %t257 %t259 = icmp ult i32 1, %t258 br i1 %t259, label %ixok32, label %ixbad33 ixbad33: %t260 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t260, ptr @.fmt_bounds, ptr @.str7151, i32 1, i32 %t258) call void @exit(i32 1) unreachable ixok32: %t261 = getelementptr inbounds ptr, ptr %t256, i32 1 %t262 = load ptr, ptr %t261 %t263 = call ptr @fn_emit_expr(ptr %t262) store ptr %t263, ptr %t264 %t265 = load ptr, ptr %t1 %t266 = getelementptr inbounds %Cmp_Node, ptr %t265, i32 0, i32 7 %t267 = load ptr, ptr %t266 %t268 = getelementptr inbounds %LSlice, ptr %t267, i32 0, i32 0 %t269 = load ptr, ptr %t268 %t270 = getelementptr inbounds %LSlice, ptr %t267, i32 0, i32 1 %t271 = load i32, ptr %t270 %t272 = icmp ult i32 2, %t271 br i1 %t272, label %ixok34, label %ixbad35 ixbad35: %t273 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t273, ptr @.fmt_bounds, ptr @.str7152, i32 2, i32 %t271) call void @exit(i32 1) unreachable ixok34: %t274 = getelementptr inbounds ptr, ptr %t269, i32 2 %t275 = load ptr, ptr %t274 %t276 = call ptr @fn_emit_expr(ptr %t275) store ptr %t276, ptr %t277 %t278 = load ptr, ptr %t251 %t279 = getelementptr inbounds %Cmp_Val, ptr %t278, i32 0, i32 0 %t280 = load ptr, ptr %t279 %t281 = load ptr, ptr %t264 %t282 = getelementptr inbounds %Cmp_Val, ptr %t281, i32 0, i32 0 %t283 = load ptr, ptr %t282 %t284 = call ptr @fn_anim_elapsed(ptr %t280, ptr %t283) store ptr %t284, ptr %t285 %t286 = load ptr, ptr %t285 %t287 = call ptr @lp_str_concat(ptr @.str7153, ptr %t286) %t288 = call ptr @lp_str_concat(ptr %t287, ptr @.str7154) %t289 = load ptr, ptr %t277 %t290 = getelementptr inbounds %Cmp_Val, ptr %t289, i32 0, i32 0 %t291 = load ptr, ptr %t290 %t292 = call ptr @lp_str_concat(ptr %t288, ptr %t291) %t293 = call ptr @fn_emit_bind(ptr %t292) store ptr %t293, ptr %t294 %t295 = load ptr, ptr %t294 %t296 = call ptr @lp_str_concat(ptr @.str7155, ptr %t295) %t297 = call ptr @lp_str_concat(ptr %t296, ptr @.str7156) %t298 = call ptr @fn_emit_bind(ptr %t297) %t299 = call ptr @fn_val(ptr %t298, ptr @.str7157) store ptr %t299, ptr %retval br label %ret ifend29: %t300 = load ptr, ptr %t0 %t301 = call i32 @lp_str_eq(ptr %t300, ptr @.str7158) %t302 = icmp ne i32 %t301, 0 br i1 %t302, label %then36, label %ifend38 then36: %t303 = load ptr, ptr %t1 %t304 = getelementptr inbounds %Cmp_Node, ptr %t303, i32 0, i32 7 %t305 = load ptr, ptr %t304 %t306 = getelementptr inbounds %LSlice, ptr %t305, i32 0, i32 0 %t307 = load ptr, ptr %t306 %t308 = getelementptr inbounds %LSlice, ptr %t305, i32 0, i32 1 %t309 = load i32, ptr %t308 %t310 = icmp ult i32 0, %t309 br i1 %t310, label %ixok39, label %ixbad40 ixbad40: %t311 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t311, ptr @.fmt_bounds, ptr @.str7159, i32 0, i32 %t309) call void @exit(i32 1) unreachable ixok39: %t312 = getelementptr inbounds ptr, ptr %t307, i32 0 %t313 = load ptr, ptr %t312 %t314 = call ptr @fn_emit_expr(ptr %t313) store ptr %t314, ptr %t315 %t316 = load ptr, ptr %t1 %t317 = getelementptr inbounds %Cmp_Node, ptr %t316, i32 0, i32 7 %t318 = load ptr, ptr %t317 %t319 = getelementptr inbounds %LSlice, ptr %t318, i32 0, i32 0 %t320 = load ptr, ptr %t319 %t321 = getelementptr inbounds %LSlice, ptr %t318, i32 0, i32 1 %t322 = load i32, ptr %t321 %t323 = icmp ult i32 1, %t322 br i1 %t323, label %ixok41, label %ixbad42 ixbad42: %t324 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t324, ptr @.fmt_bounds, ptr @.str7160, i32 1, i32 %t322) call void @exit(i32 1) unreachable ixok41: %t325 = getelementptr inbounds ptr, ptr %t320, i32 1 %t326 = load ptr, ptr %t325 %t327 = call ptr @fn_emit_expr(ptr %t326) store ptr %t327, ptr %t328 %t329 = load ptr, ptr %t328 %t330 = getelementptr inbounds %Cmp_Val, ptr %t329, i32 0, i32 0 %t331 = load ptr, ptr %t330 %t332 = call ptr @lp_str_concat(ptr @.str7161, ptr %t331) %t333 = call ptr @lp_str_concat(ptr %t332, ptr @.str7162) %t334 = call ptr @fn_emit_bind(ptr %t333) store ptr %t334, ptr %t335 %t336 = load ptr, ptr %t315 %t337 = getelementptr inbounds %Cmp_Val, ptr %t336, i32 0, i32 0 %t338 = load ptr, ptr %t337 %t339 = call ptr @fn_anim_atleast1(ptr %t338) store ptr %t339, ptr %t340 %t341 = load ptr, ptr %t335 %t342 = call ptr @lp_str_concat(ptr @.str7163, ptr %t341) %t343 = call ptr @lp_str_concat(ptr %t342, ptr @.str7164) %t344 = load ptr, ptr %t340 %t345 = call ptr @lp_str_concat(ptr %t343, ptr %t344) %t346 = call ptr @fn_emit_bind(ptr %t345) %t347 = call ptr @fn_val(ptr %t346, ptr @.str7165) store ptr %t347, ptr %retval br label %ret ifend38: %t348 = load ptr, ptr %t0 %t349 = call i32 @lp_str_eq(ptr %t348, ptr @.str7166) %t350 = icmp ne i32 %t349, 0 br i1 %t350, label %then43, label %ifend45 then43: %t351 = load ptr, ptr %t1 %t352 = getelementptr inbounds %Cmp_Node, ptr %t351, i32 0, i32 7 %t353 = load ptr, ptr %t352 %t354 = getelementptr inbounds %LSlice, ptr %t353, i32 0, i32 0 %t355 = load ptr, ptr %t354 %t356 = getelementptr inbounds %LSlice, ptr %t353, i32 0, i32 1 %t357 = load i32, ptr %t356 %t358 = icmp ult i32 0, %t357 br i1 %t358, label %ixok46, label %ixbad47 ixbad47: %t359 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t359, ptr @.fmt_bounds, ptr @.str7167, i32 0, i32 %t357) call void @exit(i32 1) unreachable ixok46: %t360 = getelementptr inbounds ptr, ptr %t355, i32 0 %t361 = load ptr, ptr %t360 %t362 = call ptr @fn_emit_expr(ptr %t361) store ptr %t362, ptr %t363 %t364 = load ptr, ptr %t1 %t365 = getelementptr inbounds %Cmp_Node, ptr %t364, i32 0, i32 7 %t366 = load ptr, ptr %t365 %t367 = getelementptr inbounds %LSlice, ptr %t366, i32 0, i32 0 %t368 = load ptr, ptr %t367 %t369 = getelementptr inbounds %LSlice, ptr %t366, i32 0, i32 1 %t370 = load i32, ptr %t369 %t371 = icmp ult i32 1, %t370 br i1 %t371, label %ixok48, label %ixbad49 ixbad49: %t372 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t372, ptr @.fmt_bounds, ptr @.str7168, i32 1, i32 %t370) call void @exit(i32 1) unreachable ixok48: %t373 = getelementptr inbounds ptr, ptr %t368, i32 1 %t374 = load ptr, ptr %t373 %t375 = call ptr @fn_emit_expr(ptr %t374) store ptr %t375, ptr %t376 %t377 = load ptr, ptr %t1 %t378 = getelementptr inbounds %Cmp_Node, ptr %t377, i32 0, i32 7 %t379 = load ptr, ptr %t378 %t380 = getelementptr inbounds %LSlice, ptr %t379, i32 0, i32 0 %t381 = load ptr, ptr %t380 %t382 = getelementptr inbounds %LSlice, ptr %t379, i32 0, i32 1 %t383 = load i32, ptr %t382 %t384 = icmp ult i32 2, %t383 br i1 %t384, label %ixok50, label %ixbad51 ixbad51: %t385 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t385, ptr @.fmt_bounds, ptr @.str7169, i32 2, i32 %t383) call void @exit(i32 1) unreachable ixok50: %t386 = getelementptr inbounds ptr, ptr %t381, i32 2 %t387 = load ptr, ptr %t386 %t388 = call ptr @fn_emit_expr(ptr %t387) store ptr %t388, ptr %t389 %t390 = load ptr, ptr %t376 %t391 = getelementptr inbounds %Cmp_Val, ptr %t390, i32 0, i32 0 %t392 = load ptr, ptr %t391 %t393 = call ptr @fn_anim_atleast1(ptr %t392) store ptr %t393, ptr %t394 %t395 = load ptr, ptr %t363 %t396 = getelementptr inbounds %Cmp_Val, ptr %t395, i32 0, i32 0 %t397 = load ptr, ptr %t396 %t398 = call ptr @lp_str_concat(ptr @.str7170, ptr %t397) %t399 = call ptr @lp_str_concat(ptr %t398, ptr @.str7171) %t400 = load ptr, ptr %t394 %t401 = call ptr @lp_str_concat(ptr %t399, ptr %t400) %t402 = call ptr @fn_emit_bind(ptr %t401) store ptr %t402, ptr %t403 %t404 = load ptr, ptr %t403 %t405 = call ptr @lp_str_concat(ptr @.str7172, ptr %t404) %t406 = call ptr @lp_str_concat(ptr %t405, ptr @.str7173) %t407 = load ptr, ptr %t389 %t408 = getelementptr inbounds %Cmp_Val, ptr %t407, i32 0, i32 0 %t409 = load ptr, ptr %t408 %t410 = call ptr @lp_str_concat(ptr %t406, ptr %t409) %t411 = call ptr @fn_emit_bind(ptr %t410) %t412 = call ptr @fn_val(ptr %t411, ptr @.str7174) store ptr %t412, ptr %retval br label %ret ifend45: %t413 = load ptr, ptr %t1 %t414 = getelementptr inbounds %Cmp_Node, ptr %t413, i32 0, i32 7 %t415 = load ptr, ptr %t414 %t416 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 0 %t417 = load ptr, ptr %t416 %t418 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 1 %t419 = load i32, ptr %t418 %t420 = icmp ult i32 0, %t419 br i1 %t420, label %ixok52, label %ixbad53 ixbad53: %t421 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t421, ptr @.fmt_bounds, ptr @.str7175, i32 0, i32 %t419) call void @exit(i32 1) unreachable ixok52: %t422 = getelementptr inbounds ptr, ptr %t417, i32 0 %t423 = load ptr, ptr %t422 %t424 = call ptr @fn_emit_expr(ptr %t423) store ptr %t424, ptr %t425 %t426 = load ptr, ptr %t1 %t427 = getelementptr inbounds %Cmp_Node, ptr %t426, i32 0, i32 7 %t428 = load ptr, ptr %t427 %t429 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 0 %t430 = load ptr, ptr %t429 %t431 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 1 %t432 = load i32, ptr %t431 %t433 = icmp ult i32 1, %t432 br i1 %t433, label %ixok54, label %ixbad55 ixbad55: %t434 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t434, ptr @.fmt_bounds, ptr @.str7176, i32 1, i32 %t432) call void @exit(i32 1) unreachable ixok54: %t435 = getelementptr inbounds ptr, ptr %t430, i32 1 %t436 = load ptr, ptr %t435 %t437 = call ptr @fn_emit_expr(ptr %t436) store ptr %t437, ptr %t438 %t439 = load ptr, ptr %t1 %t440 = getelementptr inbounds %Cmp_Node, ptr %t439, i32 0, i32 7 %t441 = load ptr, ptr %t440 %t442 = getelementptr inbounds %LSlice, ptr %t441, i32 0, i32 0 %t443 = load ptr, ptr %t442 %t444 = getelementptr inbounds %LSlice, ptr %t441, i32 0, i32 1 %t445 = load i32, ptr %t444 %t446 = icmp ult i32 2, %t445 br i1 %t446, label %ixok56, label %ixbad57 ixbad57: %t447 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t447, ptr @.fmt_bounds, ptr @.str7177, i32 2, i32 %t445) call void @exit(i32 1) unreachable ixok56: %t448 = getelementptr inbounds ptr, ptr %t443, i32 2 %t449 = load ptr, ptr %t448 %t450 = call ptr @fn_emit_expr(ptr %t449) store ptr %t450, ptr %t451 %t452 = load ptr, ptr %t438 %t453 = getelementptr inbounds %Cmp_Val, ptr %t452, i32 0, i32 0 %t454 = load ptr, ptr %t453 %t455 = call ptr @fn_anim_atleast1(ptr %t454) store ptr %t455, ptr %t456 %t457 = load ptr, ptr %t425 %t458 = getelementptr inbounds %Cmp_Val, ptr %t457, i32 0, i32 0 %t459 = load ptr, ptr %t458 %t460 = call ptr @lp_str_concat(ptr @.str7178, ptr %t459) %t461 = call ptr @lp_str_concat(ptr %t460, ptr @.str7179) %t462 = load ptr, ptr %t456 %t463 = call ptr @lp_str_concat(ptr %t461, ptr %t462) %t464 = call ptr @fn_emit_bind(ptr %t463) store ptr %t464, ptr %t465 %t466 = load ptr, ptr %t465 %t467 = call ptr @lp_str_concat(ptr @.str7180, ptr %t466) %t468 = call ptr @lp_str_concat(ptr %t467, ptr @.str7181) %t469 = load ptr, ptr %t451 %t470 = getelementptr inbounds %Cmp_Val, ptr %t469, i32 0, i32 0 %t471 = load ptr, ptr %t470 %t472 = call ptr @lp_str_concat(ptr %t468, ptr %t471) %t473 = call ptr @fn_emit_bind(ptr %t472) %t474 = call ptr @fn_val(ptr %t473, ptr @.str7182) store ptr %t474, ptr %retval br label %ret ret: %t475 = load ptr, ptr %retval ret ptr %t475 } define i32 @fn_is_tween_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t47 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str7183) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str7184) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7185) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7186) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str7187) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t29 br i1 %t32, label %scend10, label %sc9 sc9: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str7188) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t29 br label %scend10 scend10: %t38 = load i32, ptr %t29 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t28 br i1 %t39, label %scend12, label %sc11 sc11: %t41 = load ptr, ptr %t0 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str7189) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t28 br label %scend12 scend12: %t45 = load i32, ptr %t28 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then13, label %ifend15 then13: store i32 1, ptr %retval br label %ret ifend15: %t48 = load ptr, ptr %t0 %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str7190) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t47 br i1 %t50, label %scend17, label %sc16 sc16: %t52 = load ptr, ptr %t0 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str7191) %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t47 br label %scend17 scend17: %t56 = load i32, ptr %t47 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then18, label %ifend20 then18: store i32 1, ptr %retval br label %ret ifend20: store i32 0, ptr %retval br label %ret ret: %t58 = load i32, ptr %retval ret i32 %t58 } define ptr @fn_tween_den(ptr %arg_dur) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_dur, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str7192, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str7193) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @lp_str_concat(ptr @.str7194, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str7195) %t9 = load ptr, ptr %t0 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @lp_str_concat(ptr %t10, ptr @.str7196) %t12 = call ptr @fn_emit_bind(ptr %t11) store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_emit_tween_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t30 = alloca ptr %t37 = alloca ptr %t47 = alloca ptr %t53 = alloca ptr %t58 = alloca ptr %t65 = alloca ptr %t70 = alloca ptr %t77 = alloca ptr %t101 = alloca ptr %t114 = alloca ptr %t119 = alloca ptr %t125 = alloca ptr %t146 = alloca ptr %t159 = alloca ptr %t164 = alloca ptr %t170 = alloca ptr %t175 = alloca ptr %t179 = alloca ptr %t184 = alloca ptr %t218 = alloca ptr %t238 = alloca ptr %t251 = alloca ptr %t262 = alloca ptr %t283 = alloca ptr %t295 = alloca ptr %t325 = alloca ptr %t338 = alloca ptr %t351 = alloca ptr %t378 = alloca ptr %t391 = alloca ptr %t404 = alloca ptr %t415 = alloca ptr %t420 = alloca ptr %t427 = alloca ptr %t434 = alloca ptr %t439 = alloca ptr %t444 = alloca ptr %t449 = alloca ptr %t474 = alloca ptr %t487 = alloca ptr %t500 = alloca ptr %t505 = alloca ptr %t510 = alloca ptr %t515 = alloca ptr %t520 = alloca ptr %t527 = alloca ptr %t534 = alloca ptr %t551 = alloca ptr %t564 = alloca ptr %t577 = alloca ptr %t590 = alloca ptr %t603 = alloca ptr %t616 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7197) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str7198, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 1, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str7199, i32 1, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 1 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_emit_expr(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Val, ptr %t31, i32 0, i32 0 %t33 = load ptr, ptr %t32 %t34 = call ptr @lp_str_concat(ptr @.str7200, ptr %t33) %t35 = call ptr @lp_str_concat(ptr %t34, ptr @.str7201) %t36 = call ptr @fn_emit_bind(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = call ptr @lp_str_concat(ptr @.str7202, ptr %t38) %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str7203) %t41 = load ptr, ptr %t30 %t42 = getelementptr inbounds %Cmp_Val, ptr %t41, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = call ptr @lp_str_concat(ptr %t40, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str7204) %t46 = call ptr @fn_emit_bind(ptr %t45) store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t17 %t49 = getelementptr inbounds %Cmp_Val, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = load ptr, ptr %t47 %t52 = call ptr @fn_fx_div_code(ptr %t50, ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = call ptr @lp_str_concat(ptr @.str7205, ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str7206) %t57 = call ptr @fn_emit_bind(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = call ptr @lp_str_concat(ptr @.str7207, ptr %t59) %t61 = call ptr @lp_str_concat(ptr %t60, ptr @.str7208) %t62 = load ptr, ptr %t53 %t63 = call ptr @lp_str_concat(ptr %t61, ptr %t62) %t64 = call ptr @fn_emit_bind(ptr %t63) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t65 %t67 = call ptr @lp_str_concat(ptr @.str7209, ptr %t66) %t68 = call ptr @lp_str_concat(ptr %t67, ptr @.str7210) %t69 = call ptr @fn_emit_bind(ptr %t68) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t70 %t72 = call ptr @lp_str_concat(ptr @.str7211, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str7212) %t74 = load ptr, ptr %t65 %t75 = call ptr @lp_str_concat(ptr %t73, ptr %t74) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t37 %t79 = call ptr @lp_str_concat(ptr @.str7213, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str7214) %t81 = load ptr, ptr %t77 %t82 = call ptr @lp_str_concat(ptr %t80, ptr %t81) %t83 = call ptr @lp_str_concat(ptr %t82, ptr @.str7215) %t84 = call ptr @fn_emit_bind(ptr %t83) %t85 = call ptr @fn_val(ptr %t84, ptr @.str7216) store ptr %t85, ptr %retval br label %ret ifend2: %t86 = load ptr, ptr %t0 %t87 = call i32 @lp_str_eq(ptr %t86, ptr @.str7217) %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then7, label %ifend9 then7: %t89 = load ptr, ptr %t1 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 7 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t95 = load i32, ptr %t94 %t96 = icmp ult i32 0, %t95 br i1 %t96, label %ixok10, label %ixbad11 ixbad11: %t97 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t97, ptr @.fmt_bounds, ptr @.str7218, i32 0, i32 %t95) call void @exit(i32 1) unreachable ixok10: %t98 = getelementptr inbounds ptr, ptr %t93, i32 0 %t99 = load ptr, ptr %t98 %t100 = call ptr @fn_emit_expr(ptr %t99) store ptr %t100, ptr %t101 %t102 = load ptr, ptr %t1 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 7 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 0 %t106 = load ptr, ptr %t105 %t107 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 1 %t108 = load i32, ptr %t107 %t109 = icmp ult i32 1, %t108 br i1 %t109, label %ixok12, label %ixbad13 ixbad13: %t110 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t110, ptr @.fmt_bounds, ptr @.str7219, i32 1, i32 %t108) call void @exit(i32 1) unreachable ixok12: %t111 = getelementptr inbounds ptr, ptr %t106, i32 1 %t112 = load ptr, ptr %t111 %t113 = call ptr @fn_emit_expr(ptr %t112) store ptr %t113, ptr %t114 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %Cmp_Val, ptr %t115, i32 0, i32 0 %t117 = load ptr, ptr %t116 %t118 = call ptr @fn_tween_den(ptr %t117) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t101 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = load ptr, ptr %t119 %t124 = call ptr @fn_fx_div_code(ptr %t122, ptr %t123) store ptr %t124, ptr %t125 %t126 = load ptr, ptr %t125 %t127 = call ptr @lp_str_concat(ptr @.str7220, ptr %t126) %t128 = call ptr @lp_str_concat(ptr %t127, ptr @.str7221) %t129 = call ptr @fn_emit_bind(ptr %t128) %t130 = call ptr @fn_val(ptr %t129, ptr @.str7222) store ptr %t130, ptr %retval br label %ret ifend9: %t131 = load ptr, ptr %t0 %t132 = call i32 @lp_str_eq(ptr %t131, ptr @.str7223) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then14, label %ifend16 then14: %t134 = load ptr, ptr %t1 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 7 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 0 %t138 = load ptr, ptr %t137 %t139 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 1 %t140 = load i32, ptr %t139 %t141 = icmp ult i32 0, %t140 br i1 %t141, label %ixok17, label %ixbad18 ixbad18: %t142 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t142, ptr @.fmt_bounds, ptr @.str7224, i32 0, i32 %t140) call void @exit(i32 1) unreachable ixok17: %t143 = getelementptr inbounds ptr, ptr %t138, i32 0 %t144 = load ptr, ptr %t143 %t145 = call ptr @fn_emit_expr(ptr %t144) store ptr %t145, ptr %t146 %t147 = load ptr, ptr %t1 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 7 %t149 = load ptr, ptr %t148 %t150 = getelementptr inbounds %LSlice, ptr %t149, i32 0, i32 0 %t151 = load ptr, ptr %t150 %t152 = getelementptr inbounds %LSlice, ptr %t149, i32 0, i32 1 %t153 = load i32, ptr %t152 %t154 = icmp ult i32 1, %t153 br i1 %t154, label %ixok19, label %ixbad20 ixbad20: %t155 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t155, ptr @.fmt_bounds, ptr @.str7225, i32 1, i32 %t153) call void @exit(i32 1) unreachable ixok19: %t156 = getelementptr inbounds ptr, ptr %t151, i32 1 %t157 = load ptr, ptr %t156 %t158 = call ptr @fn_emit_expr(ptr %t157) store ptr %t158, ptr %t159 %t160 = load ptr, ptr %t159 %t161 = getelementptr inbounds %Cmp_Val, ptr %t160, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = call ptr @fn_tween_den(ptr %t162) store ptr %t163, ptr %t164 %t165 = load ptr, ptr %t146 %t166 = getelementptr inbounds %Cmp_Val, ptr %t165, i32 0, i32 0 %t167 = load ptr, ptr %t166 %t168 = load ptr, ptr %t164 %t169 = call ptr @fn_fx_div_code(ptr %t167, ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t170 %t172 = call ptr @lp_str_concat(ptr @.str7226, ptr %t171) %t173 = call ptr @lp_str_concat(ptr %t172, ptr @.str7227) %t174 = call ptr @fn_emit_bind(ptr %t173) store ptr %t174, ptr %t175 %t176 = load ptr, ptr %t175 %t177 = call ptr @lp_str_concat(ptr @.str7228, ptr %t176) %t178 = call ptr @fn_emit_bind(ptr %t177) store ptr %t178, ptr %t179 %t180 = load ptr, ptr %t175 %t181 = call ptr @lp_str_concat(ptr @.str7229, ptr %t180) %t182 = call ptr @lp_str_concat(ptr %t181, ptr @.str7230) %t183 = call ptr @fn_emit_bind(ptr %t182) store ptr %t183, ptr %t184 %t185 = load ptr, ptr %t184 %t186 = call ptr @lp_str_concat(ptr @.str7231, ptr %t185) %t187 = call ptr @lp_str_concat(ptr %t186, ptr @.str7232) %t188 = load ptr, ptr %t175 %t189 = call ptr @lp_str_concat(ptr %t187, ptr %t188) %t190 = call ptr @lp_str_concat(ptr %t189, ptr @.str7233) %t191 = load ptr, ptr %t179 %t192 = call ptr @lp_str_concat(ptr %t190, ptr %t191) %t193 = call ptr @fn_emit_bind(ptr %t192) %t194 = call ptr @fn_val(ptr %t193, ptr @.str7234) store ptr %t194, ptr %retval br label %ret ifend16: %t195 = load ptr, ptr %t0 %t196 = call i32 @lp_str_eq(ptr %t195, ptr @.str7235) %t197 = icmp ne i32 %t196, 0 br i1 %t197, label %then21, label %ifend23 then21: %t198 = load ptr, ptr %t1 %t199 = getelementptr inbounds %Cmp_Node, ptr %t198, i32 0, i32 7 %t200 = load ptr, ptr %t199 %t201 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 1 %t202 = load i32, ptr %t201 %t203 = icmp eq i32 %t202, 1 %t204 = zext i1 %t203 to i32 %t205 = icmp ne i32 %t204, 0 br i1 %t205, label %then24, label %ifend26 then24: %t206 = load ptr, ptr %t1 %t207 = getelementptr inbounds %Cmp_Node, ptr %t206, i32 0, i32 7 %t208 = load ptr, ptr %t207 %t209 = getelementptr inbounds %LSlice, ptr %t208, i32 0, i32 0 %t210 = load ptr, ptr %t209 %t211 = getelementptr inbounds %LSlice, ptr %t208, i32 0, i32 1 %t212 = load i32, ptr %t211 %t213 = icmp ult i32 0, %t212 br i1 %t213, label %ixok27, label %ixbad28 ixbad28: %t214 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t214, ptr @.fmt_bounds, ptr @.str7236, i32 0, i32 %t212) call void @exit(i32 1) unreachable ixok27: %t215 = getelementptr inbounds ptr, ptr %t210, i32 0 %t216 = load ptr, ptr %t215 %t217 = call ptr @fn_emit_expr(ptr %t216) store ptr %t217, ptr %t218 %t219 = load ptr, ptr %t218 %t220 = getelementptr inbounds %Cmp_Val, ptr %t219, i32 0, i32 0 %t221 = load ptr, ptr %t220 %t222 = call ptr @lp_str_concat(ptr @.str7237, ptr %t221) %t223 = call ptr @lp_str_concat(ptr %t222, ptr @.str7238) %t224 = call ptr @fn_emit_bind(ptr %t223) %t225 = call ptr @fn_val(ptr %t224, ptr @.str7239) store ptr %t225, ptr %retval br label %ret ifend26: %t226 = load ptr, ptr %t1 %t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 7 %t228 = load ptr, ptr %t227 %t229 = getelementptr inbounds %LSlice, ptr %t228, i32 0, i32 0 %t230 = load ptr, ptr %t229 %t231 = getelementptr inbounds %LSlice, ptr %t228, i32 0, i32 1 %t232 = load i32, ptr %t231 %t233 = icmp ult i32 0, %t232 br i1 %t233, label %ixok29, label %ixbad30 ixbad30: %t234 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t234, ptr @.fmt_bounds, ptr @.str7240, i32 0, i32 %t232) call void @exit(i32 1) unreachable ixok29: %t235 = getelementptr inbounds ptr, ptr %t230, i32 0 %t236 = load ptr, ptr %t235 %t237 = call ptr @fn_emit_expr(ptr %t236) store ptr %t237, ptr %t238 %t239 = load ptr, ptr %t1 %t240 = getelementptr inbounds %Cmp_Node, ptr %t239, i32 0, i32 7 %t241 = load ptr, ptr %t240 %t242 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 0 %t243 = load ptr, ptr %t242 %t244 = getelementptr inbounds %LSlice, ptr %t241, i32 0, i32 1 %t245 = load i32, ptr %t244 %t246 = icmp ult i32 1, %t245 br i1 %t246, label %ixok31, label %ixbad32 ixbad32: %t247 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t247, ptr @.fmt_bounds, ptr @.str7241, i32 1, i32 %t245) call void @exit(i32 1) unreachable ixok31: %t248 = getelementptr inbounds ptr, ptr %t243, i32 1 %t249 = load ptr, ptr %t248 %t250 = call ptr @fn_emit_expr(ptr %t249) store ptr %t250, ptr %t251 %t252 = load ptr, ptr %t238 %t253 = getelementptr inbounds %Cmp_Val, ptr %t252, i32 0, i32 0 %t254 = load ptr, ptr %t253 %t255 = call ptr @lp_str_concat(ptr @.str7242, ptr %t254) %t256 = call ptr @lp_str_concat(ptr %t255, ptr @.str7243) %t257 = load ptr, ptr %t251 %t258 = getelementptr inbounds %Cmp_Val, ptr %t257, i32 0, i32 0 %t259 = load ptr, ptr %t258 %t260 = call ptr @lp_str_concat(ptr %t256, ptr %t259) %t261 = call ptr @fn_emit_bind(ptr %t260) store ptr %t261, ptr %t262 %t263 = load ptr, ptr %t262 %t264 = call ptr @lp_str_concat(ptr @.str7244, ptr %t263) %t265 = call ptr @lp_str_concat(ptr %t264, ptr @.str7245) %t266 = call ptr @fn_emit_bind(ptr %t265) %t267 = call ptr @fn_val(ptr %t266, ptr @.str7246) store ptr %t267, ptr %retval br label %ret ifend23: %t268 = load ptr, ptr %t0 %t269 = call i32 @lp_str_eq(ptr %t268, ptr @.str7247) %t270 = icmp ne i32 %t269, 0 br i1 %t270, label %then33, label %ifend35 then33: %t271 = load ptr, ptr %t1 %t272 = getelementptr inbounds %Cmp_Node, ptr %t271, i32 0, i32 7 %t273 = load ptr, ptr %t272 %t274 = getelementptr inbounds %LSlice, ptr %t273, i32 0, i32 0 %t275 = load ptr, ptr %t274 %t276 = getelementptr inbounds %LSlice, ptr %t273, i32 0, i32 1 %t277 = load i32, ptr %t276 %t278 = icmp ult i32 0, %t277 br i1 %t278, label %ixok36, label %ixbad37 ixbad37: %t279 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t279, ptr @.fmt_bounds, ptr @.str7248, i32 0, i32 %t277) call void @exit(i32 1) unreachable ixok36: %t280 = getelementptr inbounds ptr, ptr %t275, i32 0 %t281 = load ptr, ptr %t280 %t282 = call ptr @fn_emit_expr(ptr %t281) store ptr %t282, ptr %t283 %t284 = load ptr, ptr %t1 %t285 = getelementptr inbounds %Cmp_Node, ptr %t284, i32 0, i32 7 %t286 = load ptr, ptr %t285 %t287 = getelementptr inbounds %LSlice, ptr %t286, i32 0, i32 0 %t288 = load ptr, ptr %t287 %t289 = getelementptr inbounds %LSlice, ptr %t286, i32 0, i32 1 %t290 = load i32, ptr %t289 %t291 = icmp ult i32 1, %t290 br i1 %t291, label %ixok38, label %ixbad39 ixbad39: %t292 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t292, ptr @.fmt_bounds, ptr @.str7249, i32 1, i32 %t290) call void @exit(i32 1) unreachable ixok38: %t293 = getelementptr inbounds ptr, ptr %t288, i32 1 %t294 = load ptr, ptr %t293 store ptr %t294, ptr %t295 %t296 = load ptr, ptr %t295 %t297 = getelementptr inbounds %Cmp_Node, ptr %t296, i32 0, i32 0 %t298 = load i32, ptr %t297 %t299 = icmp ne i32 %t298, 30 %t300 = zext i1 %t299 to i32 %t301 = icmp ne i32 %t300, 0 br i1 %t301, label %then40, label %ifend42 then40: call void @fn_perr(ptr @.str7250) br label %ifend42 ifend42: %t302 = load ptr, ptr %t295 %t303 = getelementptr inbounds %Cmp_Node, ptr %t302, i32 0, i32 2 %t304 = load i32, ptr %t303 %t305 = load ptr, ptr %t283 %t306 = getelementptr inbounds %Cmp_Val, ptr %t305, i32 0, i32 0 %t307 = load ptr, ptr %t306 %t308 = call ptr @fn_ease_eval(i32 %t304, ptr %t307) %t309 = call ptr @fn_val(ptr %t308, ptr @.str7251) store ptr %t309, ptr %retval br label %ret ifend35: %t310 = load ptr, ptr %t0 %t311 = call i32 @lp_str_eq(ptr %t310, ptr @.str7252) %t312 = icmp ne i32 %t311, 0 br i1 %t312, label %then43, label %ifend45 then43: %t313 = load ptr, ptr %t1 %t314 = getelementptr inbounds %Cmp_Node, ptr %t313, i32 0, i32 7 %t315 = load ptr, ptr %t314 %t316 = getelementptr inbounds %LSlice, ptr %t315, i32 0, i32 0 %t317 = load ptr, ptr %t316 %t318 = getelementptr inbounds %LSlice, ptr %t315, i32 0, i32 1 %t319 = load i32, ptr %t318 %t320 = icmp ult i32 0, %t319 br i1 %t320, label %ixok46, label %ixbad47 ixbad47: %t321 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t321, ptr @.fmt_bounds, ptr @.str7253, i32 0, i32 %t319) call void @exit(i32 1) unreachable ixok46: %t322 = getelementptr inbounds ptr, ptr %t317, i32 0 %t323 = load ptr, ptr %t322 %t324 = call ptr @fn_emit_expr(ptr %t323) store ptr %t324, ptr %t325 %t326 = load ptr, ptr %t1 %t327 = getelementptr inbounds %Cmp_Node, ptr %t326, i32 0, i32 7 %t328 = load ptr, ptr %t327 %t329 = getelementptr inbounds %LSlice, ptr %t328, i32 0, i32 0 %t330 = load ptr, ptr %t329 %t331 = getelementptr inbounds %LSlice, ptr %t328, i32 0, i32 1 %t332 = load i32, ptr %t331 %t333 = icmp ult i32 1, %t332 br i1 %t333, label %ixok48, label %ixbad49 ixbad49: %t334 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t334, ptr @.fmt_bounds, ptr @.str7254, i32 1, i32 %t332) call void @exit(i32 1) unreachable ixok48: %t335 = getelementptr inbounds ptr, ptr %t330, i32 1 %t336 = load ptr, ptr %t335 %t337 = call ptr @fn_emit_expr(ptr %t336) store ptr %t337, ptr %t338 %t339 = load ptr, ptr %t1 %t340 = getelementptr inbounds %Cmp_Node, ptr %t339, i32 0, i32 7 %t341 = load ptr, ptr %t340 %t342 = getelementptr inbounds %LSlice, ptr %t341, i32 0, i32 0 %t343 = load ptr, ptr %t342 %t344 = getelementptr inbounds %LSlice, ptr %t341, i32 0, i32 1 %t345 = load i32, ptr %t344 %t346 = icmp ult i32 2, %t345 br i1 %t346, label %ixok50, label %ixbad51 ixbad51: %t347 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t347, ptr @.fmt_bounds, ptr @.str7255, i32 2, i32 %t345) call void @exit(i32 1) unreachable ixok50: %t348 = getelementptr inbounds ptr, ptr %t343, i32 2 %t349 = load ptr, ptr %t348 %t350 = call ptr @fn_emit_expr(ptr %t349) store ptr %t350, ptr %t351 %t352 = load ptr, ptr %t325 %t353 = getelementptr inbounds %Cmp_Val, ptr %t352, i32 0, i32 0 %t354 = load ptr, ptr %t353 %t355 = load ptr, ptr %t338 %t356 = getelementptr inbounds %Cmp_Val, ptr %t355, i32 0, i32 0 %t357 = load ptr, ptr %t356 %t358 = load ptr, ptr %t351 %t359 = getelementptr inbounds %Cmp_Val, ptr %t358, i32 0, i32 0 %t360 = load ptr, ptr %t359 %t361 = call ptr @fn_fx_lerp_code(ptr %t354, ptr %t357, ptr %t360) %t362 = call ptr @fn_val(ptr %t361, ptr @.str7256) store ptr %t362, ptr %retval br label %ret ifend45: %t363 = load ptr, ptr %t0 %t364 = call i32 @lp_str_eq(ptr %t363, ptr @.str7257) %t365 = icmp ne i32 %t364, 0 br i1 %t365, label %then52, label %ifend54 then52: %t366 = load ptr, ptr %t1 %t367 = getelementptr inbounds %Cmp_Node, ptr %t366, i32 0, i32 7 %t368 = load ptr, ptr %t367 %t369 = getelementptr inbounds %LSlice, ptr %t368, i32 0, i32 0 %t370 = load ptr, ptr %t369 %t371 = getelementptr inbounds %LSlice, ptr %t368, i32 0, i32 1 %t372 = load i32, ptr %t371 %t373 = icmp ult i32 0, %t372 br i1 %t373, label %ixok55, label %ixbad56 ixbad56: %t374 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t374, ptr @.fmt_bounds, ptr @.str7258, i32 0, i32 %t372) call void @exit(i32 1) unreachable ixok55: %t375 = getelementptr inbounds ptr, ptr %t370, i32 0 %t376 = load ptr, ptr %t375 %t377 = call ptr @fn_emit_expr(ptr %t376) store ptr %t377, ptr %t378 %t379 = load ptr, ptr %t1 %t380 = getelementptr inbounds %Cmp_Node, ptr %t379, i32 0, i32 7 %t381 = load ptr, ptr %t380 %t382 = getelementptr inbounds %LSlice, ptr %t381, i32 0, i32 0 %t383 = load ptr, ptr %t382 %t384 = getelementptr inbounds %LSlice, ptr %t381, i32 0, i32 1 %t385 = load i32, ptr %t384 %t386 = icmp ult i32 1, %t385 br i1 %t386, label %ixok57, label %ixbad58 ixbad58: %t387 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t387, ptr @.fmt_bounds, ptr @.str7259, i32 1, i32 %t385) call void @exit(i32 1) unreachable ixok57: %t388 = getelementptr inbounds ptr, ptr %t383, i32 1 %t389 = load ptr, ptr %t388 %t390 = call ptr @fn_emit_expr(ptr %t389) store ptr %t390, ptr %t391 %t392 = load ptr, ptr %t1 %t393 = getelementptr inbounds %Cmp_Node, ptr %t392, i32 0, i32 7 %t394 = load ptr, ptr %t393 %t395 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 0 %t396 = load ptr, ptr %t395 %t397 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 1 %t398 = load i32, ptr %t397 %t399 = icmp ult i32 2, %t398 br i1 %t399, label %ixok59, label %ixbad60 ixbad60: %t400 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t400, ptr @.fmt_bounds, ptr @.str7260, i32 2, i32 %t398) call void @exit(i32 1) unreachable ixok59: %t401 = getelementptr inbounds ptr, ptr %t396, i32 2 %t402 = load ptr, ptr %t401 %t403 = call ptr @fn_emit_expr(ptr %t402) store ptr %t403, ptr %t404 %t405 = load ptr, ptr %t391 %t406 = getelementptr inbounds %Cmp_Val, ptr %t405, i32 0, i32 0 %t407 = load ptr, ptr %t406 %t408 = call ptr @lp_str_concat(ptr @.str7261, ptr %t407) %t409 = call ptr @lp_str_concat(ptr %t408, ptr @.str7262) %t410 = load ptr, ptr %t378 %t411 = getelementptr inbounds %Cmp_Val, ptr %t410, i32 0, i32 0 %t412 = load ptr, ptr %t411 %t413 = call ptr @lp_str_concat(ptr %t409, ptr %t412) %t414 = call ptr @fn_emit_bind(ptr %t413) store ptr %t414, ptr %t415 %t416 = load ptr, ptr %t415 %t417 = call ptr @lp_str_concat(ptr @.str7263, ptr %t416) %t418 = call ptr @lp_str_concat(ptr %t417, ptr @.str7264) %t419 = call ptr @fn_emit_bind(ptr %t418) store ptr %t419, ptr %t420 %t421 = load ptr, ptr %t404 %t422 = getelementptr inbounds %Cmp_Val, ptr %t421, i32 0, i32 0 %t423 = load ptr, ptr %t422 %t424 = call ptr @lp_str_concat(ptr @.str7265, ptr %t423) %t425 = call ptr @lp_str_concat(ptr %t424, ptr @.str7266) %t426 = call ptr @fn_emit_bind(ptr %t425) store ptr %t426, ptr %t427 %t428 = load ptr, ptr %t420 %t429 = call ptr @lp_str_concat(ptr @.str7267, ptr %t428) %t430 = call ptr @lp_str_concat(ptr %t429, ptr @.str7268) %t431 = load ptr, ptr %t427 %t432 = call ptr @lp_str_concat(ptr %t430, ptr %t431) %t433 = call ptr @fn_emit_bind(ptr %t432) store ptr %t433, ptr %t434 %t435 = load ptr, ptr %t434 %t436 = call ptr @lp_str_concat(ptr @.str7269, ptr %t435) %t437 = call ptr @lp_str_concat(ptr %t436, ptr @.str7270) %t438 = call ptr @fn_emit_bind(ptr %t437) store ptr %t438, ptr %t439 %t440 = load ptr, ptr %t439 %t441 = call ptr @lp_str_concat(ptr @.str7271, ptr %t440) %t442 = call ptr @lp_str_concat(ptr %t441, ptr @.str7272) %t443 = call ptr @fn_emit_bind(ptr %t442) store ptr %t443, ptr %t444 %t445 = load ptr, ptr %t444 %t446 = call ptr @lp_str_concat(ptr @.str7273, ptr %t445) %t447 = call ptr @lp_str_concat(ptr %t446, ptr @.str7274) %t448 = call ptr @fn_emit_bind(ptr %t447) store ptr %t448, ptr %t449 %t450 = load ptr, ptr %t378 %t451 = getelementptr inbounds %Cmp_Val, ptr %t450, i32 0, i32 0 %t452 = load ptr, ptr %t451 %t453 = call ptr @lp_str_concat(ptr @.str7275, ptr %t452) %t454 = call ptr @lp_str_concat(ptr %t453, ptr @.str7276) %t455 = load ptr, ptr %t449 %t456 = call ptr @lp_str_concat(ptr %t454, ptr %t455) %t457 = call ptr @fn_emit_bind(ptr %t456) %t458 = call ptr @fn_val(ptr %t457, ptr @.str7277) store ptr %t458, ptr %retval br label %ret ifend54: %t459 = load ptr, ptr %t0 %t460 = call i32 @lp_str_eq(ptr %t459, ptr @.str7278) %t461 = icmp ne i32 %t460, 0 br i1 %t461, label %then61, label %ifend63 then61: %t462 = load ptr, ptr %t1 %t463 = getelementptr inbounds %Cmp_Node, ptr %t462, i32 0, i32 7 %t464 = load ptr, ptr %t463 %t465 = getelementptr inbounds %LSlice, ptr %t464, i32 0, i32 0 %t466 = load ptr, ptr %t465 %t467 = getelementptr inbounds %LSlice, ptr %t464, i32 0, i32 1 %t468 = load i32, ptr %t467 %t469 = icmp ult i32 0, %t468 br i1 %t469, label %ixok64, label %ixbad65 ixbad65: %t470 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t470, ptr @.fmt_bounds, ptr @.str7279, i32 0, i32 %t468) call void @exit(i32 1) unreachable ixok64: %t471 = getelementptr inbounds ptr, ptr %t466, i32 0 %t472 = load ptr, ptr %t471 %t473 = call ptr @fn_emit_expr(ptr %t472) store ptr %t473, ptr %t474 %t475 = load ptr, ptr %t1 %t476 = getelementptr inbounds %Cmp_Node, ptr %t475, i32 0, i32 7 %t477 = load ptr, ptr %t476 %t478 = getelementptr inbounds %LSlice, ptr %t477, i32 0, i32 0 %t479 = load ptr, ptr %t478 %t480 = getelementptr inbounds %LSlice, ptr %t477, i32 0, i32 1 %t481 = load i32, ptr %t480 %t482 = icmp ult i32 1, %t481 br i1 %t482, label %ixok66, label %ixbad67 ixbad67: %t483 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t483, ptr @.fmt_bounds, ptr @.str7280, i32 1, i32 %t481) call void @exit(i32 1) unreachable ixok66: %t484 = getelementptr inbounds ptr, ptr %t479, i32 1 %t485 = load ptr, ptr %t484 %t486 = call ptr @fn_emit_expr(ptr %t485) store ptr %t486, ptr %t487 %t488 = load ptr, ptr %t1 %t489 = getelementptr inbounds %Cmp_Node, ptr %t488, i32 0, i32 7 %t490 = load ptr, ptr %t489 %t491 = getelementptr inbounds %LSlice, ptr %t490, i32 0, i32 0 %t492 = load ptr, ptr %t491 %t493 = getelementptr inbounds %LSlice, ptr %t490, i32 0, i32 1 %t494 = load i32, ptr %t493 %t495 = icmp ult i32 2, %t494 br i1 %t495, label %ixok68, label %ixbad69 ixbad69: %t496 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t496, ptr @.fmt_bounds, ptr @.str7281, i32 2, i32 %t494) call void @exit(i32 1) unreachable ixok68: %t497 = getelementptr inbounds ptr, ptr %t492, i32 2 %t498 = load ptr, ptr %t497 %t499 = call ptr @fn_emit_expr(ptr %t498) store ptr %t499, ptr %t500 %t501 = load ptr, ptr %t474 %t502 = getelementptr inbounds %Cmp_Val, ptr %t501, i32 0, i32 0 %t503 = load ptr, ptr %t502 %t504 = call ptr @fn_vec_x(ptr %t503) store ptr %t504, ptr %t505 %t506 = load ptr, ptr %t474 %t507 = getelementptr inbounds %Cmp_Val, ptr %t506, i32 0, i32 0 %t508 = load ptr, ptr %t507 %t509 = call ptr @fn_vec_y(ptr %t508) store ptr %t509, ptr %t510 %t511 = load ptr, ptr %t487 %t512 = getelementptr inbounds %Cmp_Val, ptr %t511, i32 0, i32 0 %t513 = load ptr, ptr %t512 %t514 = call ptr @fn_vec_x(ptr %t513) store ptr %t514, ptr %t515 %t516 = load ptr, ptr %t487 %t517 = getelementptr inbounds %Cmp_Val, ptr %t516, i32 0, i32 0 %t518 = load ptr, ptr %t517 %t519 = call ptr @fn_vec_y(ptr %t518) store ptr %t519, ptr %t520 %t521 = load ptr, ptr %t505 %t522 = load ptr, ptr %t515 %t523 = load ptr, ptr %t500 %t524 = getelementptr inbounds %Cmp_Val, ptr %t523, i32 0, i32 0 %t525 = load ptr, ptr %t524 %t526 = call ptr @fn_fx_lerp_code(ptr %t521, ptr %t522, ptr %t525) store ptr %t526, ptr %t527 %t528 = load ptr, ptr %t510 %t529 = load ptr, ptr %t520 %t530 = load ptr, ptr %t500 %t531 = getelementptr inbounds %Cmp_Val, ptr %t530, i32 0, i32 0 %t532 = load ptr, ptr %t531 %t533 = call ptr @fn_fx_lerp_code(ptr %t528, ptr %t529, ptr %t532) store ptr %t533, ptr %t534 %t535 = load ptr, ptr %t527 %t536 = load ptr, ptr %t534 %t537 = call ptr @fn_vec_pack(ptr %t535, ptr %t536) %t538 = call ptr @fn_val(ptr %t537, ptr @.str7282) store ptr %t538, ptr %retval br label %ret ifend63: %t539 = load ptr, ptr %t1 %t540 = getelementptr inbounds %Cmp_Node, ptr %t539, i32 0, i32 7 %t541 = load ptr, ptr %t540 %t542 = getelementptr inbounds %LSlice, ptr %t541, i32 0, i32 0 %t543 = load ptr, ptr %t542 %t544 = getelementptr inbounds %LSlice, ptr %t541, i32 0, i32 1 %t545 = load i32, ptr %t544 %t546 = icmp ult i32 0, %t545 br i1 %t546, label %ixok70, label %ixbad71 ixbad71: %t547 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t547, ptr @.fmt_bounds, ptr @.str7283, i32 0, i32 %t545) call void @exit(i32 1) unreachable ixok70: %t548 = getelementptr inbounds ptr, ptr %t543, i32 0 %t549 = load ptr, ptr %t548 %t550 = call ptr @fn_emit_expr(ptr %t549) store ptr %t550, ptr %t551 %t552 = load ptr, ptr %t1 %t553 = getelementptr inbounds %Cmp_Node, ptr %t552, i32 0, i32 7 %t554 = load ptr, ptr %t553 %t555 = getelementptr inbounds %LSlice, ptr %t554, i32 0, i32 0 %t556 = load ptr, ptr %t555 %t557 = getelementptr inbounds %LSlice, ptr %t554, i32 0, i32 1 %t558 = load i32, ptr %t557 %t559 = icmp ult i32 1, %t558 br i1 %t559, label %ixok72, label %ixbad73 ixbad73: %t560 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t560, ptr @.fmt_bounds, ptr @.str7284, i32 1, i32 %t558) call void @exit(i32 1) unreachable ixok72: %t561 = getelementptr inbounds ptr, ptr %t556, i32 1 %t562 = load ptr, ptr %t561 %t563 = call ptr @fn_emit_expr(ptr %t562) store ptr %t563, ptr %t564 %t565 = load ptr, ptr %t1 %t566 = getelementptr inbounds %Cmp_Node, ptr %t565, i32 0, i32 7 %t567 = load ptr, ptr %t566 %t568 = getelementptr inbounds %LSlice, ptr %t567, i32 0, i32 0 %t569 = load ptr, ptr %t568 %t570 = getelementptr inbounds %LSlice, ptr %t567, i32 0, i32 1 %t571 = load i32, ptr %t570 %t572 = icmp ult i32 2, %t571 br i1 %t572, label %ixok74, label %ixbad75 ixbad75: %t573 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t573, ptr @.fmt_bounds, ptr @.str7285, i32 2, i32 %t571) call void @exit(i32 1) unreachable ixok74: %t574 = getelementptr inbounds ptr, ptr %t569, i32 2 %t575 = load ptr, ptr %t574 %t576 = call ptr @fn_emit_expr(ptr %t575) store ptr %t576, ptr %t577 %t578 = load ptr, ptr %t551 %t579 = getelementptr inbounds %Cmp_Val, ptr %t578, i32 0, i32 0 %t580 = load ptr, ptr %t579 %t581 = call ptr @fn_color_ch(ptr %t580, ptr @.str7286) %t582 = load ptr, ptr %t564 %t583 = getelementptr inbounds %Cmp_Val, ptr %t582, i32 0, i32 0 %t584 = load ptr, ptr %t583 %t585 = call ptr @fn_color_ch(ptr %t584, ptr @.str7287) %t586 = load ptr, ptr %t577 %t587 = getelementptr inbounds %Cmp_Val, ptr %t586, i32 0, i32 0 %t588 = load ptr, ptr %t587 %t589 = call ptr @fn_color_lerp_ch(ptr %t581, ptr %t585, ptr %t588) store ptr %t589, ptr %t590 %t591 = load ptr, ptr %t551 %t592 = getelementptr inbounds %Cmp_Val, ptr %t591, i32 0, i32 0 %t593 = load ptr, ptr %t592 %t594 = call ptr @fn_color_ch(ptr %t593, ptr @.str7288) %t595 = load ptr, ptr %t564 %t596 = getelementptr inbounds %Cmp_Val, ptr %t595, i32 0, i32 0 %t597 = load ptr, ptr %t596 %t598 = call ptr @fn_color_ch(ptr %t597, ptr @.str7289) %t599 = load ptr, ptr %t577 %t600 = getelementptr inbounds %Cmp_Val, ptr %t599, i32 0, i32 0 %t601 = load ptr, ptr %t600 %t602 = call ptr @fn_color_lerp_ch(ptr %t594, ptr %t598, ptr %t601) store ptr %t602, ptr %t603 %t604 = load ptr, ptr %t551 %t605 = getelementptr inbounds %Cmp_Val, ptr %t604, i32 0, i32 0 %t606 = load ptr, ptr %t605 %t607 = call ptr @fn_color_ch(ptr %t606, ptr @.str7290) %t608 = load ptr, ptr %t564 %t609 = getelementptr inbounds %Cmp_Val, ptr %t608, i32 0, i32 0 %t610 = load ptr, ptr %t609 %t611 = call ptr @fn_color_ch(ptr %t610, ptr @.str7291) %t612 = load ptr, ptr %t577 %t613 = getelementptr inbounds %Cmp_Val, ptr %t612, i32 0, i32 0 %t614 = load ptr, ptr %t613 %t615 = call ptr @fn_color_lerp_ch(ptr %t607, ptr %t611, ptr %t614) store ptr %t615, ptr %t616 %t617 = load ptr, ptr %t590 %t618 = load ptr, ptr %t603 %t619 = load ptr, ptr %t616 %t620 = call ptr @fn_color_pack(ptr %t617, ptr %t618, ptr %t619) %t621 = call ptr @fn_val(ptr %t620, ptr @.str7292) store ptr %t621, ptr %retval br label %ret ret: %t622 = load ptr, ptr %retval ret ptr %t622 } define i32 @fn_is_collide_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t12 = alloca i32 store ptr %arg_meth, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7293) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str7294) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then2, label %ifend4 then2: store i32 1, ptr %retval br label %ret ifend4: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str7295) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t12 br i1 %t15, label %scend6, label %sc5 sc5: %t17 = load ptr, ptr %t0 %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str7296) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t12 br label %scend6 scend6: %t21 = load i32, ptr %t12 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then7, label %ifend9 then7: store i32 1, ptr %retval br label %ret ifend9: store i32 0, ptr %retval br label %ret ret: %t23 = load i32, ptr %retval ret i32 %t23 } define ptr @fn_coll_sq_sum(ptr %arg_dx, ptr %arg_dy) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca ptr %t11 = alloca ptr %t18 = alloca ptr %t25 = alloca ptr store ptr %arg_dx, ptr %t0 store ptr %arg_dy, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str7297, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str7298) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t1 %t8 = call ptr @lp_str_concat(ptr @.str7299, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str7300) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t6 %t13 = call ptr @lp_str_concat(ptr @.str7301, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str7302) %t15 = load ptr, ptr %t6 %t16 = call ptr @lp_str_concat(ptr %t14, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t11 %t20 = call ptr @lp_str_concat(ptr @.str7303, ptr %t19) %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str7304) %t22 = load ptr, ptr %t11 %t23 = call ptr @lp_str_concat(ptr %t21, ptr %t22) %t24 = call ptr @fn_emit_bind(ptr %t23) store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t18 %t27 = call ptr @lp_str_concat(ptr @.str7305, ptr %t26) %t28 = call ptr @lp_str_concat(ptr %t27, ptr @.str7306) %t29 = load ptr, ptr %t25 %t30 = call ptr @lp_str_concat(ptr %t28, ptr %t29) %t31 = call ptr @fn_emit_bind(ptr %t30) store ptr %t31, ptr %retval br label %ret ret: %t32 = load ptr, ptr %retval ret ptr %t32 } define ptr @fn_coll_clamp(ptr %arg_v, ptr %arg_lo, ptr %arg_hi) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca ptr %t19 = alloca ptr %t26 = alloca ptr store ptr %arg_v, ptr %t0 store ptr %arg_lo, ptr %t1 store ptr %arg_hi, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call ptr @lp_str_concat(ptr @.str7307, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str7308) %t6 = load ptr, ptr %t2 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = call ptr @lp_str_concat(ptr @.str7309, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str7310) %t13 = load ptr, ptr %t0 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str7311) %t16 = load ptr, ptr %t2 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t1 %t21 = call ptr @lp_str_concat(ptr @.str7312, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str7313) %t23 = load ptr, ptr %t19 %t24 = call ptr @lp_str_concat(ptr %t22, ptr %t23) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t26 %t28 = call ptr @lp_str_concat(ptr @.str7314, ptr %t27) %t29 = call ptr @lp_str_concat(ptr %t28, ptr @.str7315) %t30 = load ptr, ptr %t1 %t31 = call ptr @lp_str_concat(ptr %t29, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str7316) %t33 = load ptr, ptr %t19 %t34 = call ptr @lp_str_concat(ptr %t32, ptr %t33) %t35 = call ptr @fn_emit_bind(ptr %t34) store ptr %t35, ptr %retval br label %ret ret: %t36 = load ptr, ptr %retval ret ptr %t36 } define ptr @fn_emit_collide_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t30 = alloca ptr %t43 = alloca ptr %t56 = alloca ptr %t69 = alloca ptr %t82 = alloca ptr %t95 = alloca ptr %t108 = alloca ptr %t119 = alloca ptr %t130 = alloca ptr %t141 = alloca ptr %t152 = alloca ptr %t161 = alloca ptr %t170 = alloca ptr %t179 = alloca ptr %t188 = alloca ptr %t195 = alloca ptr %t202 = alloca ptr %t209 = alloca ptr %t230 = alloca ptr %t243 = alloca ptr %t256 = alloca ptr %t269 = alloca ptr %t282 = alloca ptr %t295 = alloca ptr %t306 = alloca ptr %t317 = alloca ptr %t328 = alloca ptr %t337 = alloca ptr %t348 = alloca ptr %t357 = alloca ptr %t364 = alloca ptr %t371 = alloca ptr %t378 = alloca ptr %t399 = alloca ptr %t412 = alloca ptr %t425 = alloca ptr %t438 = alloca ptr %t451 = alloca ptr %t464 = alloca ptr %t475 = alloca ptr %t486 = alloca ptr %t490 = alloca ptr %t501 = alloca ptr %t506 = alloca ptr %t513 = alloca ptr %t520 = alloca ptr %t538 = alloca ptr %t551 = alloca ptr %t564 = alloca ptr %t577 = alloca ptr %t590 = alloca ptr %t603 = alloca ptr %t616 = alloca ptr %t627 = alloca ptr %t638 = alloca ptr %t647 = alloca ptr %t656 = alloca ptr %t665 = alloca ptr %t674 = alloca ptr %t678 = alloca ptr %t685 = alloca ptr %t692 = alloca ptr %t699 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7317) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str7318, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 1, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str7319, i32 1, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 1 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_emit_expr(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t1 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 2, %t37 br i1 %t38, label %ixok7, label %ixbad8 ixbad8: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str7320, i32 2, i32 %t37) call void @exit(i32 1) unreachable ixok7: %t40 = getelementptr inbounds ptr, ptr %t35, i32 2 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_emit_expr(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t1 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t50 = load i32, ptr %t49 %t51 = icmp ult i32 3, %t50 br i1 %t51, label %ixok9, label %ixbad10 ixbad10: %t52 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t52, ptr @.fmt_bounds, ptr @.str7321, i32 3, i32 %t50) call void @exit(i32 1) unreachable ixok9: %t53 = getelementptr inbounds ptr, ptr %t48, i32 3 %t54 = load ptr, ptr %t53 %t55 = call ptr @fn_emit_expr(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t1 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 7 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 4, %t63 br i1 %t64, label %ixok11, label %ixbad12 ixbad12: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str7322, i32 4, i32 %t63) call void @exit(i32 1) unreachable ixok11: %t66 = getelementptr inbounds ptr, ptr %t61, i32 4 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_emit_expr(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t1 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 7 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp ult i32 5, %t76 br i1 %t77, label %ixok13, label %ixbad14 ixbad14: %t78 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t78, ptr @.fmt_bounds, ptr @.str7323, i32 5, i32 %t76) call void @exit(i32 1) unreachable ixok13: %t79 = getelementptr inbounds ptr, ptr %t74, i32 5 %t80 = load ptr, ptr %t79 %t81 = call ptr @fn_emit_expr(ptr %t80) store ptr %t81, ptr %t82 %t83 = load ptr, ptr %t1 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 7 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 1 %t89 = load i32, ptr %t88 %t90 = icmp ult i32 6, %t89 br i1 %t90, label %ixok15, label %ixbad16 ixbad16: %t91 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t91, ptr @.fmt_bounds, ptr @.str7324, i32 6, i32 %t89) call void @exit(i32 1) unreachable ixok15: %t92 = getelementptr inbounds ptr, ptr %t87, i32 6 %t93 = load ptr, ptr %t92 %t94 = call ptr @fn_emit_expr(ptr %t93) store ptr %t94, ptr %t95 %t96 = load ptr, ptr %t1 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 7 %t98 = load ptr, ptr %t97 %t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp ult i32 7, %t102 br i1 %t103, label %ixok17, label %ixbad18 ixbad18: %t104 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t104, ptr @.fmt_bounds, ptr @.str7325, i32 7, i32 %t102) call void @exit(i32 1) unreachable ixok17: %t105 = getelementptr inbounds ptr, ptr %t100, i32 7 %t106 = load ptr, ptr %t105 %t107 = call ptr @fn_emit_expr(ptr %t106) store ptr %t107, ptr %t108 %t109 = load ptr, ptr %t17 %t110 = getelementptr inbounds %Cmp_Val, ptr %t109, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = call ptr @lp_str_concat(ptr @.str7326, ptr %t111) %t113 = call ptr @lp_str_concat(ptr %t112, ptr @.str7327) %t114 = load ptr, ptr %t43 %t115 = getelementptr inbounds %Cmp_Val, ptr %t114, i32 0, i32 0 %t116 = load ptr, ptr %t115 %t117 = call ptr @lp_str_concat(ptr %t113, ptr %t116) %t118 = call ptr @fn_emit_bind(ptr %t117) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t69 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = call ptr @lp_str_concat(ptr @.str7328, ptr %t122) %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str7329) %t125 = load ptr, ptr %t95 %t126 = getelementptr inbounds %Cmp_Val, ptr %t125, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = call ptr @lp_str_concat(ptr %t124, ptr %t127) %t129 = call ptr @fn_emit_bind(ptr %t128) store ptr %t129, ptr %t130 %t131 = load ptr, ptr %t30 %t132 = getelementptr inbounds %Cmp_Val, ptr %t131, i32 0, i32 0 %t133 = load ptr, ptr %t132 %t134 = call ptr @lp_str_concat(ptr @.str7330, ptr %t133) %t135 = call ptr @lp_str_concat(ptr %t134, ptr @.str7331) %t136 = load ptr, ptr %t56 %t137 = getelementptr inbounds %Cmp_Val, ptr %t136, i32 0, i32 0 %t138 = load ptr, ptr %t137 %t139 = call ptr @lp_str_concat(ptr %t135, ptr %t138) %t140 = call ptr @fn_emit_bind(ptr %t139) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t82 %t143 = getelementptr inbounds %Cmp_Val, ptr %t142, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = call ptr @lp_str_concat(ptr @.str7332, ptr %t144) %t146 = call ptr @lp_str_concat(ptr %t145, ptr @.str7333) %t147 = load ptr, ptr %t108 %t148 = getelementptr inbounds %Cmp_Val, ptr %t147, i32 0, i32 0 %t149 = load ptr, ptr %t148 %t150 = call ptr @lp_str_concat(ptr %t146, ptr %t149) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t17 %t154 = getelementptr inbounds %Cmp_Val, ptr %t153, i32 0, i32 0 %t155 = load ptr, ptr %t154 %t156 = call ptr @lp_str_concat(ptr @.str7334, ptr %t155) %t157 = call ptr @lp_str_concat(ptr %t156, ptr @.str7335) %t158 = load ptr, ptr %t130 %t159 = call ptr @lp_str_concat(ptr %t157, ptr %t158) %t160 = call ptr @fn_emit_bind(ptr %t159) store ptr %t160, ptr %t161 %t162 = load ptr, ptr %t69 %t163 = getelementptr inbounds %Cmp_Val, ptr %t162, i32 0, i32 0 %t164 = load ptr, ptr %t163 %t165 = call ptr @lp_str_concat(ptr @.str7336, ptr %t164) %t166 = call ptr @lp_str_concat(ptr %t165, ptr @.str7337) %t167 = load ptr, ptr %t119 %t168 = call ptr @lp_str_concat(ptr %t166, ptr %t167) %t169 = call ptr @fn_emit_bind(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t30 %t172 = getelementptr inbounds %Cmp_Val, ptr %t171, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = call ptr @lp_str_concat(ptr @.str7338, ptr %t173) %t175 = call ptr @lp_str_concat(ptr %t174, ptr @.str7339) %t176 = load ptr, ptr %t152 %t177 = call ptr @lp_str_concat(ptr %t175, ptr %t176) %t178 = call ptr @fn_emit_bind(ptr %t177) store ptr %t178, ptr %t179 %t180 = load ptr, ptr %t82 %t181 = getelementptr inbounds %Cmp_Val, ptr %t180, i32 0, i32 0 %t182 = load ptr, ptr %t181 %t183 = call ptr @lp_str_concat(ptr @.str7340, ptr %t182) %t184 = call ptr @lp_str_concat(ptr %t183, ptr @.str7341) %t185 = load ptr, ptr %t141 %t186 = call ptr @lp_str_concat(ptr %t184, ptr %t185) %t187 = call ptr @fn_emit_bind(ptr %t186) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t161 %t190 = call ptr @lp_str_concat(ptr @.str7342, ptr %t189) %t191 = call ptr @lp_str_concat(ptr %t190, ptr @.str7343) %t192 = load ptr, ptr %t170 %t193 = call ptr @lp_str_concat(ptr %t191, ptr %t192) %t194 = call ptr @fn_emit_bind(ptr %t193) store ptr %t194, ptr %t195 %t196 = load ptr, ptr %t179 %t197 = call ptr @lp_str_concat(ptr @.str7344, ptr %t196) %t198 = call ptr @lp_str_concat(ptr %t197, ptr @.str7345) %t199 = load ptr, ptr %t188 %t200 = call ptr @lp_str_concat(ptr %t198, ptr %t199) %t201 = call ptr @fn_emit_bind(ptr %t200) store ptr %t201, ptr %t202 %t203 = load ptr, ptr %t195 %t204 = call ptr @lp_str_concat(ptr @.str7346, ptr %t203) %t205 = call ptr @lp_str_concat(ptr %t204, ptr @.str7347) %t206 = load ptr, ptr %t202 %t207 = call ptr @lp_str_concat(ptr %t205, ptr %t206) %t208 = call ptr @fn_emit_bind(ptr %t207) store ptr %t208, ptr %t209 %t210 = load ptr, ptr %t209 %t211 = call ptr @lp_str_concat(ptr @.str7348, ptr %t210) %t212 = call ptr @lp_str_concat(ptr %t211, ptr @.str7349) %t213 = call ptr @fn_emit_bind(ptr %t212) %t214 = call ptr @fn_val(ptr %t213, ptr @.str7350) store ptr %t214, ptr %retval br label %ret ifend2: %t215 = load ptr, ptr %t0 %t216 = call i32 @lp_str_eq(ptr %t215, ptr @.str7351) %t217 = icmp ne i32 %t216, 0 br i1 %t217, label %then19, label %ifend21 then19: %t218 = load ptr, ptr %t1 %t219 = getelementptr inbounds %Cmp_Node, ptr %t218, i32 0, i32 7 %t220 = load ptr, ptr %t219 %t221 = getelementptr inbounds %LSlice, ptr %t220, i32 0, i32 0 %t222 = load ptr, ptr %t221 %t223 = getelementptr inbounds %LSlice, ptr %t220, i32 0, i32 1 %t224 = load i32, ptr %t223 %t225 = icmp ult i32 0, %t224 br i1 %t225, label %ixok22, label %ixbad23 ixbad23: %t226 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t226, ptr @.fmt_bounds, ptr @.str7352, i32 0, i32 %t224) call void @exit(i32 1) unreachable ixok22: %t227 = getelementptr inbounds ptr, ptr %t222, i32 0 %t228 = load ptr, ptr %t227 %t229 = call ptr @fn_emit_expr(ptr %t228) store ptr %t229, ptr %t230 %t231 = load ptr, ptr %t1 %t232 = getelementptr inbounds %Cmp_Node, ptr %t231, i32 0, i32 7 %t233 = load ptr, ptr %t232 %t234 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 0 %t235 = load ptr, ptr %t234 %t236 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 1 %t237 = load i32, ptr %t236 %t238 = icmp ult i32 1, %t237 br i1 %t238, label %ixok24, label %ixbad25 ixbad25: %t239 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t239, ptr @.fmt_bounds, ptr @.str7353, i32 1, i32 %t237) call void @exit(i32 1) unreachable ixok24: %t240 = getelementptr inbounds ptr, ptr %t235, i32 1 %t241 = load ptr, ptr %t240 %t242 = call ptr @fn_emit_expr(ptr %t241) store ptr %t242, ptr %t243 %t244 = load ptr, ptr %t1 %t245 = getelementptr inbounds %Cmp_Node, ptr %t244, i32 0, i32 7 %t246 = load ptr, ptr %t245 %t247 = getelementptr inbounds %LSlice, ptr %t246, i32 0, i32 0 %t248 = load ptr, ptr %t247 %t249 = getelementptr inbounds %LSlice, ptr %t246, i32 0, i32 1 %t250 = load i32, ptr %t249 %t251 = icmp ult i32 2, %t250 br i1 %t251, label %ixok26, label %ixbad27 ixbad27: %t252 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t252, ptr @.fmt_bounds, ptr @.str7354, i32 2, i32 %t250) call void @exit(i32 1) unreachable ixok26: %t253 = getelementptr inbounds ptr, ptr %t248, i32 2 %t254 = load ptr, ptr %t253 %t255 = call ptr @fn_emit_expr(ptr %t254) store ptr %t255, ptr %t256 %t257 = load ptr, ptr %t1 %t258 = getelementptr inbounds %Cmp_Node, ptr %t257, i32 0, i32 7 %t259 = load ptr, ptr %t258 %t260 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 0 %t261 = load ptr, ptr %t260 %t262 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 1 %t263 = load i32, ptr %t262 %t264 = icmp ult i32 3, %t263 br i1 %t264, label %ixok28, label %ixbad29 ixbad29: %t265 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t265, ptr @.fmt_bounds, ptr @.str7355, i32 3, i32 %t263) call void @exit(i32 1) unreachable ixok28: %t266 = getelementptr inbounds ptr, ptr %t261, i32 3 %t267 = load ptr, ptr %t266 %t268 = call ptr @fn_emit_expr(ptr %t267) store ptr %t268, ptr %t269 %t270 = load ptr, ptr %t1 %t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 7 %t272 = load ptr, ptr %t271 %t273 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 0 %t274 = load ptr, ptr %t273 %t275 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 1 %t276 = load i32, ptr %t275 %t277 = icmp ult i32 4, %t276 br i1 %t277, label %ixok30, label %ixbad31 ixbad31: %t278 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t278, ptr @.fmt_bounds, ptr @.str7356, i32 4, i32 %t276) call void @exit(i32 1) unreachable ixok30: %t279 = getelementptr inbounds ptr, ptr %t274, i32 4 %t280 = load ptr, ptr %t279 %t281 = call ptr @fn_emit_expr(ptr %t280) store ptr %t281, ptr %t282 %t283 = load ptr, ptr %t1 %t284 = getelementptr inbounds %Cmp_Node, ptr %t283, i32 0, i32 7 %t285 = load ptr, ptr %t284 %t286 = getelementptr inbounds %LSlice, ptr %t285, i32 0, i32 0 %t287 = load ptr, ptr %t286 %t288 = getelementptr inbounds %LSlice, ptr %t285, i32 0, i32 1 %t289 = load i32, ptr %t288 %t290 = icmp ult i32 5, %t289 br i1 %t290, label %ixok32, label %ixbad33 ixbad33: %t291 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t291, ptr @.fmt_bounds, ptr @.str7357, i32 5, i32 %t289) call void @exit(i32 1) unreachable ixok32: %t292 = getelementptr inbounds ptr, ptr %t287, i32 5 %t293 = load ptr, ptr %t292 %t294 = call ptr @fn_emit_expr(ptr %t293) store ptr %t294, ptr %t295 %t296 = load ptr, ptr %t256 %t297 = getelementptr inbounds %Cmp_Val, ptr %t296, i32 0, i32 0 %t298 = load ptr, ptr %t297 %t299 = call ptr @lp_str_concat(ptr @.str7358, ptr %t298) %t300 = call ptr @lp_str_concat(ptr %t299, ptr @.str7359) %t301 = load ptr, ptr %t282 %t302 = getelementptr inbounds %Cmp_Val, ptr %t301, i32 0, i32 0 %t303 = load ptr, ptr %t302 %t304 = call ptr @lp_str_concat(ptr %t300, ptr %t303) %t305 = call ptr @fn_emit_bind(ptr %t304) store ptr %t305, ptr %t306 %t307 = load ptr, ptr %t269 %t308 = getelementptr inbounds %Cmp_Val, ptr %t307, i32 0, i32 0 %t309 = load ptr, ptr %t308 %t310 = call ptr @lp_str_concat(ptr @.str7360, ptr %t309) %t311 = call ptr @lp_str_concat(ptr %t310, ptr @.str7361) %t312 = load ptr, ptr %t295 %t313 = getelementptr inbounds %Cmp_Val, ptr %t312, i32 0, i32 0 %t314 = load ptr, ptr %t313 %t315 = call ptr @lp_str_concat(ptr %t311, ptr %t314) %t316 = call ptr @fn_emit_bind(ptr %t315) store ptr %t316, ptr %t317 %t318 = load ptr, ptr %t230 %t319 = getelementptr inbounds %Cmp_Val, ptr %t318, i32 0, i32 0 %t320 = load ptr, ptr %t319 %t321 = call ptr @lp_str_concat(ptr @.str7362, ptr %t320) %t322 = call ptr @lp_str_concat(ptr %t321, ptr @.str7363) %t323 = load ptr, ptr %t256 %t324 = getelementptr inbounds %Cmp_Val, ptr %t323, i32 0, i32 0 %t325 = load ptr, ptr %t324 %t326 = call ptr @lp_str_concat(ptr %t322, ptr %t325) %t327 = call ptr @fn_emit_bind(ptr %t326) store ptr %t327, ptr %t328 %t329 = load ptr, ptr %t230 %t330 = getelementptr inbounds %Cmp_Val, ptr %t329, i32 0, i32 0 %t331 = load ptr, ptr %t330 %t332 = call ptr @lp_str_concat(ptr @.str7364, ptr %t331) %t333 = call ptr @lp_str_concat(ptr %t332, ptr @.str7365) %t334 = load ptr, ptr %t306 %t335 = call ptr @lp_str_concat(ptr %t333, ptr %t334) %t336 = call ptr @fn_emit_bind(ptr %t335) store ptr %t336, ptr %t337 %t338 = load ptr, ptr %t243 %t339 = getelementptr inbounds %Cmp_Val, ptr %t338, i32 0, i32 0 %t340 = load ptr, ptr %t339 %t341 = call ptr @lp_str_concat(ptr @.str7366, ptr %t340) %t342 = call ptr @lp_str_concat(ptr %t341, ptr @.str7367) %t343 = load ptr, ptr %t269 %t344 = getelementptr inbounds %Cmp_Val, ptr %t343, i32 0, i32 0 %t345 = load ptr, ptr %t344 %t346 = call ptr @lp_str_concat(ptr %t342, ptr %t345) %t347 = call ptr @fn_emit_bind(ptr %t346) store ptr %t347, ptr %t348 %t349 = load ptr, ptr %t243 %t350 = getelementptr inbounds %Cmp_Val, ptr %t349, i32 0, i32 0 %t351 = load ptr, ptr %t350 %t352 = call ptr @lp_str_concat(ptr @.str7368, ptr %t351) %t353 = call ptr @lp_str_concat(ptr %t352, ptr @.str7369) %t354 = load ptr, ptr %t317 %t355 = call ptr @lp_str_concat(ptr %t353, ptr %t354) %t356 = call ptr @fn_emit_bind(ptr %t355) store ptr %t356, ptr %t357 %t358 = load ptr, ptr %t328 %t359 = call ptr @lp_str_concat(ptr @.str7370, ptr %t358) %t360 = call ptr @lp_str_concat(ptr %t359, ptr @.str7371) %t361 = load ptr, ptr %t337 %t362 = call ptr @lp_str_concat(ptr %t360, ptr %t361) %t363 = call ptr @fn_emit_bind(ptr %t362) store ptr %t363, ptr %t364 %t365 = load ptr, ptr %t348 %t366 = call ptr @lp_str_concat(ptr @.str7372, ptr %t365) %t367 = call ptr @lp_str_concat(ptr %t366, ptr @.str7373) %t368 = load ptr, ptr %t357 %t369 = call ptr @lp_str_concat(ptr %t367, ptr %t368) %t370 = call ptr @fn_emit_bind(ptr %t369) store ptr %t370, ptr %t371 %t372 = load ptr, ptr %t364 %t373 = call ptr @lp_str_concat(ptr @.str7374, ptr %t372) %t374 = call ptr @lp_str_concat(ptr %t373, ptr @.str7375) %t375 = load ptr, ptr %t371 %t376 = call ptr @lp_str_concat(ptr %t374, ptr %t375) %t377 = call ptr @fn_emit_bind(ptr %t376) store ptr %t377, ptr %t378 %t379 = load ptr, ptr %t378 %t380 = call ptr @lp_str_concat(ptr @.str7376, ptr %t379) %t381 = call ptr @lp_str_concat(ptr %t380, ptr @.str7377) %t382 = call ptr @fn_emit_bind(ptr %t381) %t383 = call ptr @fn_val(ptr %t382, ptr @.str7378) store ptr %t383, ptr %retval br label %ret ifend21: %t384 = load ptr, ptr %t0 %t385 = call i32 @lp_str_eq(ptr %t384, ptr @.str7379) %t386 = icmp ne i32 %t385, 0 br i1 %t386, label %then34, label %ifend36 then34: %t387 = load ptr, ptr %t1 %t388 = getelementptr inbounds %Cmp_Node, ptr %t387, i32 0, i32 7 %t389 = load ptr, ptr %t388 %t390 = getelementptr inbounds %LSlice, ptr %t389, i32 0, i32 0 %t391 = load ptr, ptr %t390 %t392 = getelementptr inbounds %LSlice, ptr %t389, i32 0, i32 1 %t393 = load i32, ptr %t392 %t394 = icmp ult i32 0, %t393 br i1 %t394, label %ixok37, label %ixbad38 ixbad38: %t395 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t395, ptr @.fmt_bounds, ptr @.str7380, i32 0, i32 %t393) call void @exit(i32 1) unreachable ixok37: %t396 = getelementptr inbounds ptr, ptr %t391, i32 0 %t397 = load ptr, ptr %t396 %t398 = call ptr @fn_emit_expr(ptr %t397) store ptr %t398, ptr %t399 %t400 = load ptr, ptr %t1 %t401 = getelementptr inbounds %Cmp_Node, ptr %t400, i32 0, i32 7 %t402 = load ptr, ptr %t401 %t403 = getelementptr inbounds %LSlice, ptr %t402, i32 0, i32 0 %t404 = load ptr, ptr %t403 %t405 = getelementptr inbounds %LSlice, ptr %t402, i32 0, i32 1 %t406 = load i32, ptr %t405 %t407 = icmp ult i32 1, %t406 br i1 %t407, label %ixok39, label %ixbad40 ixbad40: %t408 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t408, ptr @.fmt_bounds, ptr @.str7381, i32 1, i32 %t406) call void @exit(i32 1) unreachable ixok39: %t409 = getelementptr inbounds ptr, ptr %t404, i32 1 %t410 = load ptr, ptr %t409 %t411 = call ptr @fn_emit_expr(ptr %t410) store ptr %t411, ptr %t412 %t413 = load ptr, ptr %t1 %t414 = getelementptr inbounds %Cmp_Node, ptr %t413, i32 0, i32 7 %t415 = load ptr, ptr %t414 %t416 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 0 %t417 = load ptr, ptr %t416 %t418 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 1 %t419 = load i32, ptr %t418 %t420 = icmp ult i32 2, %t419 br i1 %t420, label %ixok41, label %ixbad42 ixbad42: %t421 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t421, ptr @.fmt_bounds, ptr @.str7382, i32 2, i32 %t419) call void @exit(i32 1) unreachable ixok41: %t422 = getelementptr inbounds ptr, ptr %t417, i32 2 %t423 = load ptr, ptr %t422 %t424 = call ptr @fn_emit_expr(ptr %t423) store ptr %t424, ptr %t425 %t426 = load ptr, ptr %t1 %t427 = getelementptr inbounds %Cmp_Node, ptr %t426, i32 0, i32 7 %t428 = load ptr, ptr %t427 %t429 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 0 %t430 = load ptr, ptr %t429 %t431 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 1 %t432 = load i32, ptr %t431 %t433 = icmp ult i32 3, %t432 br i1 %t433, label %ixok43, label %ixbad44 ixbad44: %t434 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t434, ptr @.fmt_bounds, ptr @.str7383, i32 3, i32 %t432) call void @exit(i32 1) unreachable ixok43: %t435 = getelementptr inbounds ptr, ptr %t430, i32 3 %t436 = load ptr, ptr %t435 %t437 = call ptr @fn_emit_expr(ptr %t436) store ptr %t437, ptr %t438 %t439 = load ptr, ptr %t1 %t440 = getelementptr inbounds %Cmp_Node, ptr %t439, i32 0, i32 7 %t441 = load ptr, ptr %t440 %t442 = getelementptr inbounds %LSlice, ptr %t441, i32 0, i32 0 %t443 = load ptr, ptr %t442 %t444 = getelementptr inbounds %LSlice, ptr %t441, i32 0, i32 1 %t445 = load i32, ptr %t444 %t446 = icmp ult i32 4, %t445 br i1 %t446, label %ixok45, label %ixbad46 ixbad46: %t447 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t447, ptr @.fmt_bounds, ptr @.str7384, i32 4, i32 %t445) call void @exit(i32 1) unreachable ixok45: %t448 = getelementptr inbounds ptr, ptr %t443, i32 4 %t449 = load ptr, ptr %t448 %t450 = call ptr @fn_emit_expr(ptr %t449) store ptr %t450, ptr %t451 %t452 = load ptr, ptr %t1 %t453 = getelementptr inbounds %Cmp_Node, ptr %t452, i32 0, i32 7 %t454 = load ptr, ptr %t453 %t455 = getelementptr inbounds %LSlice, ptr %t454, i32 0, i32 0 %t456 = load ptr, ptr %t455 %t457 = getelementptr inbounds %LSlice, ptr %t454, i32 0, i32 1 %t458 = load i32, ptr %t457 %t459 = icmp ult i32 5, %t458 br i1 %t459, label %ixok47, label %ixbad48 ixbad48: %t460 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t460, ptr @.fmt_bounds, ptr @.str7385, i32 5, i32 %t458) call void @exit(i32 1) unreachable ixok47: %t461 = getelementptr inbounds ptr, ptr %t456, i32 5 %t462 = load ptr, ptr %t461 %t463 = call ptr @fn_emit_expr(ptr %t462) store ptr %t463, ptr %t464 %t465 = load ptr, ptr %t399 %t466 = getelementptr inbounds %Cmp_Val, ptr %t465, i32 0, i32 0 %t467 = load ptr, ptr %t466 %t468 = call ptr @lp_str_concat(ptr @.str7386, ptr %t467) %t469 = call ptr @lp_str_concat(ptr %t468, ptr @.str7387) %t470 = load ptr, ptr %t438 %t471 = getelementptr inbounds %Cmp_Val, ptr %t470, i32 0, i32 0 %t472 = load ptr, ptr %t471 %t473 = call ptr @lp_str_concat(ptr %t469, ptr %t472) %t474 = call ptr @fn_emit_bind(ptr %t473) store ptr %t474, ptr %t475 %t476 = load ptr, ptr %t412 %t477 = getelementptr inbounds %Cmp_Val, ptr %t476, i32 0, i32 0 %t478 = load ptr, ptr %t477 %t479 = call ptr @lp_str_concat(ptr @.str7388, ptr %t478) %t480 = call ptr @lp_str_concat(ptr %t479, ptr @.str7389) %t481 = load ptr, ptr %t451 %t482 = getelementptr inbounds %Cmp_Val, ptr %t481, i32 0, i32 0 %t483 = load ptr, ptr %t482 %t484 = call ptr @lp_str_concat(ptr %t480, ptr %t483) %t485 = call ptr @fn_emit_bind(ptr %t484) store ptr %t485, ptr %t486 %t487 = load ptr, ptr %t475 %t488 = load ptr, ptr %t486 %t489 = call ptr @fn_coll_sq_sum(ptr %t487, ptr %t488) store ptr %t489, ptr %t490 %t491 = load ptr, ptr %t425 %t492 = getelementptr inbounds %Cmp_Val, ptr %t491, i32 0, i32 0 %t493 = load ptr, ptr %t492 %t494 = call ptr @lp_str_concat(ptr @.str7390, ptr %t493) %t495 = call ptr @lp_str_concat(ptr %t494, ptr @.str7391) %t496 = load ptr, ptr %t464 %t497 = getelementptr inbounds %Cmp_Val, ptr %t496, i32 0, i32 0 %t498 = load ptr, ptr %t497 %t499 = call ptr @lp_str_concat(ptr %t495, ptr %t498) %t500 = call ptr @fn_emit_bind(ptr %t499) store ptr %t500, ptr %t501 %t502 = load ptr, ptr %t501 %t503 = call ptr @lp_str_concat(ptr @.str7392, ptr %t502) %t504 = call ptr @lp_str_concat(ptr %t503, ptr @.str7393) %t505 = call ptr @fn_emit_bind(ptr %t504) store ptr %t505, ptr %t506 %t507 = load ptr, ptr %t506 %t508 = call ptr @lp_str_concat(ptr @.str7394, ptr %t507) %t509 = call ptr @lp_str_concat(ptr %t508, ptr @.str7395) %t510 = load ptr, ptr %t506 %t511 = call ptr @lp_str_concat(ptr %t509, ptr %t510) %t512 = call ptr @fn_emit_bind(ptr %t511) store ptr %t512, ptr %t513 %t514 = load ptr, ptr %t490 %t515 = call ptr @lp_str_concat(ptr @.str7396, ptr %t514) %t516 = call ptr @lp_str_concat(ptr %t515, ptr @.str7397) %t517 = load ptr, ptr %t513 %t518 = call ptr @lp_str_concat(ptr %t516, ptr %t517) %t519 = call ptr @fn_emit_bind(ptr %t518) store ptr %t519, ptr %t520 %t521 = load ptr, ptr %t520 %t522 = call ptr @lp_str_concat(ptr @.str7398, ptr %t521) %t523 = call ptr @lp_str_concat(ptr %t522, ptr @.str7399) %t524 = call ptr @fn_emit_bind(ptr %t523) %t525 = call ptr @fn_val(ptr %t524, ptr @.str7400) store ptr %t525, ptr %retval br label %ret ifend36: %t526 = load ptr, ptr %t1 %t527 = getelementptr inbounds %Cmp_Node, ptr %t526, i32 0, i32 7 %t528 = load ptr, ptr %t527 %t529 = getelementptr inbounds %LSlice, ptr %t528, i32 0, i32 0 %t530 = load ptr, ptr %t529 %t531 = getelementptr inbounds %LSlice, ptr %t528, i32 0, i32 1 %t532 = load i32, ptr %t531 %t533 = icmp ult i32 0, %t532 br i1 %t533, label %ixok49, label %ixbad50 ixbad50: %t534 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t534, ptr @.fmt_bounds, ptr @.str7401, i32 0, i32 %t532) call void @exit(i32 1) unreachable ixok49: %t535 = getelementptr inbounds ptr, ptr %t530, i32 0 %t536 = load ptr, ptr %t535 %t537 = call ptr @fn_emit_expr(ptr %t536) store ptr %t537, ptr %t538 %t539 = load ptr, ptr %t1 %t540 = getelementptr inbounds %Cmp_Node, ptr %t539, i32 0, i32 7 %t541 = load ptr, ptr %t540 %t542 = getelementptr inbounds %LSlice, ptr %t541, i32 0, i32 0 %t543 = load ptr, ptr %t542 %t544 = getelementptr inbounds %LSlice, ptr %t541, i32 0, i32 1 %t545 = load i32, ptr %t544 %t546 = icmp ult i32 1, %t545 br i1 %t546, label %ixok51, label %ixbad52 ixbad52: %t547 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t547, ptr @.fmt_bounds, ptr @.str7402, i32 1, i32 %t545) call void @exit(i32 1) unreachable ixok51: %t548 = getelementptr inbounds ptr, ptr %t543, i32 1 %t549 = load ptr, ptr %t548 %t550 = call ptr @fn_emit_expr(ptr %t549) store ptr %t550, ptr %t551 %t552 = load ptr, ptr %t1 %t553 = getelementptr inbounds %Cmp_Node, ptr %t552, i32 0, i32 7 %t554 = load ptr, ptr %t553 %t555 = getelementptr inbounds %LSlice, ptr %t554, i32 0, i32 0 %t556 = load ptr, ptr %t555 %t557 = getelementptr inbounds %LSlice, ptr %t554, i32 0, i32 1 %t558 = load i32, ptr %t557 %t559 = icmp ult i32 2, %t558 br i1 %t559, label %ixok53, label %ixbad54 ixbad54: %t560 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t560, ptr @.fmt_bounds, ptr @.str7403, i32 2, i32 %t558) call void @exit(i32 1) unreachable ixok53: %t561 = getelementptr inbounds ptr, ptr %t556, i32 2 %t562 = load ptr, ptr %t561 %t563 = call ptr @fn_emit_expr(ptr %t562) store ptr %t563, ptr %t564 %t565 = load ptr, ptr %t1 %t566 = getelementptr inbounds %Cmp_Node, ptr %t565, i32 0, i32 7 %t567 = load ptr, ptr %t566 %t568 = getelementptr inbounds %LSlice, ptr %t567, i32 0, i32 0 %t569 = load ptr, ptr %t568 %t570 = getelementptr inbounds %LSlice, ptr %t567, i32 0, i32 1 %t571 = load i32, ptr %t570 %t572 = icmp ult i32 3, %t571 br i1 %t572, label %ixok55, label %ixbad56 ixbad56: %t573 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t573, ptr @.fmt_bounds, ptr @.str7404, i32 3, i32 %t571) call void @exit(i32 1) unreachable ixok55: %t574 = getelementptr inbounds ptr, ptr %t569, i32 3 %t575 = load ptr, ptr %t574 %t576 = call ptr @fn_emit_expr(ptr %t575) store ptr %t576, ptr %t577 %t578 = load ptr, ptr %t1 %t579 = getelementptr inbounds %Cmp_Node, ptr %t578, i32 0, i32 7 %t580 = load ptr, ptr %t579 %t581 = getelementptr inbounds %LSlice, ptr %t580, i32 0, i32 0 %t582 = load ptr, ptr %t581 %t583 = getelementptr inbounds %LSlice, ptr %t580, i32 0, i32 1 %t584 = load i32, ptr %t583 %t585 = icmp ult i32 4, %t584 br i1 %t585, label %ixok57, label %ixbad58 ixbad58: %t586 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t586, ptr @.fmt_bounds, ptr @.str7405, i32 4, i32 %t584) call void @exit(i32 1) unreachable ixok57: %t587 = getelementptr inbounds ptr, ptr %t582, i32 4 %t588 = load ptr, ptr %t587 %t589 = call ptr @fn_emit_expr(ptr %t588) store ptr %t589, ptr %t590 %t591 = load ptr, ptr %t1 %t592 = getelementptr inbounds %Cmp_Node, ptr %t591, i32 0, i32 7 %t593 = load ptr, ptr %t592 %t594 = getelementptr inbounds %LSlice, ptr %t593, i32 0, i32 0 %t595 = load ptr, ptr %t594 %t596 = getelementptr inbounds %LSlice, ptr %t593, i32 0, i32 1 %t597 = load i32, ptr %t596 %t598 = icmp ult i32 5, %t597 br i1 %t598, label %ixok59, label %ixbad60 ixbad60: %t599 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t599, ptr @.fmt_bounds, ptr @.str7406, i32 5, i32 %t597) call void @exit(i32 1) unreachable ixok59: %t600 = getelementptr inbounds ptr, ptr %t595, i32 5 %t601 = load ptr, ptr %t600 %t602 = call ptr @fn_emit_expr(ptr %t601) store ptr %t602, ptr %t603 %t604 = load ptr, ptr %t1 %t605 = getelementptr inbounds %Cmp_Node, ptr %t604, i32 0, i32 7 %t606 = load ptr, ptr %t605 %t607 = getelementptr inbounds %LSlice, ptr %t606, i32 0, i32 0 %t608 = load ptr, ptr %t607 %t609 = getelementptr inbounds %LSlice, ptr %t606, i32 0, i32 1 %t610 = load i32, ptr %t609 %t611 = icmp ult i32 6, %t610 br i1 %t611, label %ixok61, label %ixbad62 ixbad62: %t612 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t612, ptr @.fmt_bounds, ptr @.str7407, i32 6, i32 %t610) call void @exit(i32 1) unreachable ixok61: %t613 = getelementptr inbounds ptr, ptr %t608, i32 6 %t614 = load ptr, ptr %t613 %t615 = call ptr @fn_emit_expr(ptr %t614) store ptr %t615, ptr %t616 %t617 = load ptr, ptr %t538 %t618 = getelementptr inbounds %Cmp_Val, ptr %t617, i32 0, i32 0 %t619 = load ptr, ptr %t618 %t620 = call ptr @lp_str_concat(ptr @.str7408, ptr %t619) %t621 = call ptr @lp_str_concat(ptr %t620, ptr @.str7409) %t622 = load ptr, ptr %t564 %t623 = getelementptr inbounds %Cmp_Val, ptr %t622, i32 0, i32 0 %t624 = load ptr, ptr %t623 %t625 = call ptr @lp_str_concat(ptr %t621, ptr %t624) %t626 = call ptr @fn_emit_bind(ptr %t625) store ptr %t626, ptr %t627 %t628 = load ptr, ptr %t551 %t629 = getelementptr inbounds %Cmp_Val, ptr %t628, i32 0, i32 0 %t630 = load ptr, ptr %t629 %t631 = call ptr @lp_str_concat(ptr @.str7410, ptr %t630) %t632 = call ptr @lp_str_concat(ptr %t631, ptr @.str7411) %t633 = load ptr, ptr %t577 %t634 = getelementptr inbounds %Cmp_Val, ptr %t633, i32 0, i32 0 %t635 = load ptr, ptr %t634 %t636 = call ptr @lp_str_concat(ptr %t632, ptr %t635) %t637 = call ptr @fn_emit_bind(ptr %t636) store ptr %t637, ptr %t638 %t639 = load ptr, ptr %t590 %t640 = getelementptr inbounds %Cmp_Val, ptr %t639, i32 0, i32 0 %t641 = load ptr, ptr %t640 %t642 = load ptr, ptr %t538 %t643 = getelementptr inbounds %Cmp_Val, ptr %t642, i32 0, i32 0 %t644 = load ptr, ptr %t643 %t645 = load ptr, ptr %t627 %t646 = call ptr @fn_coll_clamp(ptr %t641, ptr %t644, ptr %t645) store ptr %t646, ptr %t647 %t648 = load ptr, ptr %t603 %t649 = getelementptr inbounds %Cmp_Val, ptr %t648, i32 0, i32 0 %t650 = load ptr, ptr %t649 %t651 = load ptr, ptr %t551 %t652 = getelementptr inbounds %Cmp_Val, ptr %t651, i32 0, i32 0 %t653 = load ptr, ptr %t652 %t654 = load ptr, ptr %t638 %t655 = call ptr @fn_coll_clamp(ptr %t650, ptr %t653, ptr %t654) store ptr %t655, ptr %t656 %t657 = load ptr, ptr %t590 %t658 = getelementptr inbounds %Cmp_Val, ptr %t657, i32 0, i32 0 %t659 = load ptr, ptr %t658 %t660 = call ptr @lp_str_concat(ptr @.str7412, ptr %t659) %t661 = call ptr @lp_str_concat(ptr %t660, ptr @.str7413) %t662 = load ptr, ptr %t647 %t663 = call ptr @lp_str_concat(ptr %t661, ptr %t662) %t664 = call ptr @fn_emit_bind(ptr %t663) store ptr %t664, ptr %t665 %t666 = load ptr, ptr %t603 %t667 = getelementptr inbounds %Cmp_Val, ptr %t666, i32 0, i32 0 %t668 = load ptr, ptr %t667 %t669 = call ptr @lp_str_concat(ptr @.str7414, ptr %t668) %t670 = call ptr @lp_str_concat(ptr %t669, ptr @.str7415) %t671 = load ptr, ptr %t656 %t672 = call ptr @lp_str_concat(ptr %t670, ptr %t671) %t673 = call ptr @fn_emit_bind(ptr %t672) store ptr %t673, ptr %t674 %t675 = load ptr, ptr %t665 %t676 = load ptr, ptr %t674 %t677 = call ptr @fn_coll_sq_sum(ptr %t675, ptr %t676) store ptr %t677, ptr %t678 %t679 = load ptr, ptr %t616 %t680 = getelementptr inbounds %Cmp_Val, ptr %t679, i32 0, i32 0 %t681 = load ptr, ptr %t680 %t682 = call ptr @lp_str_concat(ptr @.str7416, ptr %t681) %t683 = call ptr @lp_str_concat(ptr %t682, ptr @.str7417) %t684 = call ptr @fn_emit_bind(ptr %t683) store ptr %t684, ptr %t685 %t686 = load ptr, ptr %t685 %t687 = call ptr @lp_str_concat(ptr @.str7418, ptr %t686) %t688 = call ptr @lp_str_concat(ptr %t687, ptr @.str7419) %t689 = load ptr, ptr %t685 %t690 = call ptr @lp_str_concat(ptr %t688, ptr %t689) %t691 = call ptr @fn_emit_bind(ptr %t690) store ptr %t691, ptr %t692 %t693 = load ptr, ptr %t678 %t694 = call ptr @lp_str_concat(ptr @.str7420, ptr %t693) %t695 = call ptr @lp_str_concat(ptr %t694, ptr @.str7421) %t696 = load ptr, ptr %t692 %t697 = call ptr @lp_str_concat(ptr %t695, ptr %t696) %t698 = call ptr @fn_emit_bind(ptr %t697) store ptr %t698, ptr %t699 %t700 = load ptr, ptr %t699 %t701 = call ptr @lp_str_concat(ptr @.str7422, ptr %t700) %t702 = call ptr @lp_str_concat(ptr %t701, ptr @.str7423) %t703 = call ptr @fn_emit_bind(ptr %t702) %t704 = call ptr @fn_val(ptr %t703, ptr @.str7424) store ptr %t704, ptr %retval br label %ret ret: %t705 = load ptr, ptr %retval ret ptr %t705 } define i32 @fn_is_mem_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t12 = alloca i32 %t13 = alloca i32 %t14 = alloca i32 store ptr %arg_meth, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7425) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str7426) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then2, label %ifend4 then2: store i32 1, ptr %retval br label %ret ifend4: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7427) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t14 br i1 %t17, label %scend6, label %sc5 sc5: %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str7428) %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t14 br label %scend6 scend6: %t23 = load i32, ptr %t14 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t13 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str7429) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t13 br label %scend8 scend8: %t30 = load i32, ptr %t13 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t12 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str7430) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t12 br label %scend10 scend10: %t37 = load i32, ptr %t12 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: store i32 0, ptr %retval br label %ret ret: %t39 = load i32, ptr %retval ret i32 %t39 } define ptr @fn_emit_mem_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t24 = alloca ptr %t45 = alloca ptr %t52 = alloca ptr %t57 = alloca ptr %t75 = alloca ptr %t88 = alloca ptr %t101 = alloca ptr %t108 = alloca ptr %t132 = alloca ptr %t145 = alloca ptr %t158 = alloca ptr %t165 = alloca ptr %t189 = alloca ptr %t202 = alloca ptr %t213 = alloca ptr %t217 = alloca ptr %t235 = alloca ptr %t248 = alloca ptr %t261 = alloca ptr %t272 = alloca ptr %t279 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7431) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str7432, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str7433, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str7434) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str7435, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str7436) %t28 = call ptr @fn_emit_bind(ptr %t27) %t29 = call ptr @fn_val(ptr %t28, ptr @.str7437) store ptr %t29, ptr %retval br label %ret ifend2: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str7438) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t1 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 7 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 0, %t39 br i1 %t40, label %ixok8, label %ixbad9 ixbad9: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str7439, i32 0, i32 %t39) call void @exit(i32 1) unreachable ixok8: %t42 = getelementptr inbounds ptr, ptr %t37, i32 0 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_emit_expr(ptr %t43) store ptr %t44, ptr %t45 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %Cmp_Val, ptr %t46, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = call ptr @lp_str_concat(ptr @.str7440, ptr %t48) %t50 = call ptr @lp_str_concat(ptr %t49, ptr @.str7441) %t51 = call ptr @fn_emit_bind(ptr %t50) store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t52 %t54 = call ptr @lp_str_concat(ptr @.str7442, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str7443) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t45 %t59 = call ptr @fn_emit_sized_slice(ptr @.str7444, ptr %t58) store ptr %t59, ptr %retval br label %ret ifend7: %t60 = load ptr, ptr %t0 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str7445) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then10, label %ifend12 then10: %t63 = load ptr, ptr %t1 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 7 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 0 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t69 = load i32, ptr %t68 %t70 = icmp ult i32 0, %t69 br i1 %t70, label %ixok13, label %ixbad14 ixbad14: %t71 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t71, ptr @.fmt_bounds, ptr @.str7446, i32 0, i32 %t69) call void @exit(i32 1) unreachable ixok13: %t72 = getelementptr inbounds ptr, ptr %t67, i32 0 %t73 = load ptr, ptr %t72 %t74 = call ptr @fn_raw_expr(ptr %t73) store ptr %t74, ptr %t75 %t76 = load ptr, ptr %t1 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 7 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp ult i32 1, %t82 br i1 %t83, label %ixok15, label %ixbad16 ixbad16: %t84 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t84, ptr @.fmt_bounds, ptr @.str7447, i32 1, i32 %t82) call void @exit(i32 1) unreachable ixok15: %t85 = getelementptr inbounds ptr, ptr %t80, i32 1 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_raw_expr(ptr %t86) store ptr %t87, ptr %t88 %t89 = load ptr, ptr %t1 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 7 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t95 = load i32, ptr %t94 %t96 = icmp ult i32 2, %t95 br i1 %t96, label %ixok17, label %ixbad18 ixbad18: %t97 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t97, ptr @.fmt_bounds, ptr @.str7448, i32 2, i32 %t95) call void @exit(i32 1) unreachable ixok17: %t98 = getelementptr inbounds ptr, ptr %t93, i32 2 %t99 = load ptr, ptr %t98 %t100 = call ptr @fn_emit_expr(ptr %t99) store ptr %t100, ptr %t101 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %Cmp_Val, ptr %t102, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = call ptr @lp_str_concat(ptr @.str7449, ptr %t104) %t106 = call ptr @lp_str_concat(ptr %t105, ptr @.str7450) %t107 = call ptr @fn_emit_bind(ptr %t106) store ptr %t107, ptr %t108 call void @fn_emit(ptr @.str7451) %t109 = load ptr, ptr %t75 %t110 = getelementptr inbounds %Cmp_Val, ptr %t109, i32 0, i32 0 %t111 = load ptr, ptr %t110 call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str7452) %t112 = load ptr, ptr %t88 %t113 = getelementptr inbounds %Cmp_Val, ptr %t112, i32 0, i32 0 %t114 = load ptr, ptr %t113 call void @fn_emit(ptr %t114) call void @fn_emit(ptr @.str7453) %t115 = load ptr, ptr %t108 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str7454) %t116 = call ptr @fn_val(ptr @.str7455, ptr @.str7456) store ptr %t116, ptr %retval br label %ret ifend12: %t117 = load ptr, ptr %t0 %t118 = call i32 @lp_str_eq(ptr %t117, ptr @.str7457) %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then19, label %ifend21 then19: %t120 = load ptr, ptr %t1 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 7 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 %t126 = load i32, ptr %t125 %t127 = icmp ult i32 0, %t126 br i1 %t127, label %ixok22, label %ixbad23 ixbad23: %t128 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t128, ptr @.fmt_bounds, ptr @.str7458, i32 0, i32 %t126) call void @exit(i32 1) unreachable ixok22: %t129 = getelementptr inbounds ptr, ptr %t124, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_raw_expr(ptr %t130) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t1 %t134 = getelementptr inbounds %Cmp_Node, ptr %t133, i32 0, i32 7 %t135 = load ptr, ptr %t134 %t136 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 0 %t137 = load ptr, ptr %t136 %t138 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 1 %t139 = load i32, ptr %t138 %t140 = icmp ult i32 1, %t139 br i1 %t140, label %ixok24, label %ixbad25 ixbad25: %t141 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t141, ptr @.fmt_bounds, ptr @.str7459, i32 1, i32 %t139) call void @exit(i32 1) unreachable ixok24: %t142 = getelementptr inbounds ptr, ptr %t137, i32 1 %t143 = load ptr, ptr %t142 %t144 = call ptr @fn_emit_expr(ptr %t143) store ptr %t144, ptr %t145 %t146 = load ptr, ptr %t1 %t147 = getelementptr inbounds %Cmp_Node, ptr %t146, i32 0, i32 7 %t148 = load ptr, ptr %t147 %t149 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 0 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 1 %t152 = load i32, ptr %t151 %t153 = icmp ult i32 2, %t152 br i1 %t153, label %ixok26, label %ixbad27 ixbad27: %t154 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t154, ptr @.fmt_bounds, ptr @.str7460, i32 2, i32 %t152) call void @exit(i32 1) unreachable ixok26: %t155 = getelementptr inbounds ptr, ptr %t150, i32 2 %t156 = load ptr, ptr %t155 %t157 = call ptr @fn_emit_expr(ptr %t156) store ptr %t157, ptr %t158 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %Cmp_Val, ptr %t159, i32 0, i32 0 %t161 = load ptr, ptr %t160 %t162 = call ptr @lp_str_concat(ptr @.str7461, ptr %t161) %t163 = call ptr @lp_str_concat(ptr %t162, ptr @.str7462) %t164 = call ptr @fn_emit_bind(ptr %t163) store ptr %t164, ptr %t165 call void @fn_emit(ptr @.str7463) %t166 = load ptr, ptr %t132 %t167 = getelementptr inbounds %Cmp_Val, ptr %t166, i32 0, i32 0 %t168 = load ptr, ptr %t167 call void @fn_emit(ptr %t168) call void @fn_emit(ptr @.str7464) %t169 = load ptr, ptr %t145 %t170 = getelementptr inbounds %Cmp_Val, ptr %t169, i32 0, i32 0 %t171 = load ptr, ptr %t170 call void @fn_emit(ptr %t171) call void @fn_emit(ptr @.str7465) %t172 = load ptr, ptr %t165 call void @fn_emit(ptr %t172) call void @fn_emit(ptr @.str7466) %t173 = call ptr @fn_val(ptr @.str7467, ptr @.str7468) store ptr %t173, ptr %retval br label %ret ifend21: %t174 = load ptr, ptr %t0 %t175 = call i32 @lp_str_eq(ptr %t174, ptr @.str7469) %t176 = icmp ne i32 %t175, 0 br i1 %t176, label %then28, label %ifend30 then28: %t177 = load ptr, ptr %t1 %t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 7 %t179 = load ptr, ptr %t178 %t180 = getelementptr inbounds %LSlice, ptr %t179, i32 0, i32 0 %t181 = load ptr, ptr %t180 %t182 = getelementptr inbounds %LSlice, ptr %t179, i32 0, i32 1 %t183 = load i32, ptr %t182 %t184 = icmp ult i32 0, %t183 br i1 %t184, label %ixok31, label %ixbad32 ixbad32: %t185 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t185, ptr @.fmt_bounds, ptr @.str7470, i32 0, i32 %t183) call void @exit(i32 1) unreachable ixok31: %t186 = getelementptr inbounds ptr, ptr %t181, i32 0 %t187 = load ptr, ptr %t186 %t188 = call ptr @fn_raw_expr(ptr %t187) store ptr %t188, ptr %t189 %t190 = load ptr, ptr %t1 %t191 = getelementptr inbounds %Cmp_Node, ptr %t190, i32 0, i32 7 %t192 = load ptr, ptr %t191 %t193 = getelementptr inbounds %LSlice, ptr %t192, i32 0, i32 0 %t194 = load ptr, ptr %t193 %t195 = getelementptr inbounds %LSlice, ptr %t192, i32 0, i32 1 %t196 = load i32, ptr %t195 %t197 = icmp ult i32 1, %t196 br i1 %t197, label %ixok33, label %ixbad34 ixbad34: %t198 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t198, ptr @.fmt_bounds, ptr @.str7471, i32 1, i32 %t196) call void @exit(i32 1) unreachable ixok33: %t199 = getelementptr inbounds ptr, ptr %t194, i32 1 %t200 = load ptr, ptr %t199 %t201 = call ptr @fn_emit_expr(ptr %t200) store ptr %t201, ptr %t202 %t203 = load ptr, ptr %t189 %t204 = getelementptr inbounds %Cmp_Val, ptr %t203, i32 0, i32 0 %t205 = load ptr, ptr %t204 %t206 = call ptr @lp_str_concat(ptr @.str7472, ptr %t205) %t207 = call ptr @lp_str_concat(ptr %t206, ptr @.str7473) %t208 = load ptr, ptr %t202 %t209 = getelementptr inbounds %Cmp_Val, ptr %t208, i32 0, i32 0 %t210 = load ptr, ptr %t209 %t211 = call ptr @lp_str_concat(ptr %t207, ptr %t210) %t212 = call ptr @fn_emit_bind(ptr %t211) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t213 %t215 = call ptr @lp_str_concat(ptr @.str7474, ptr %t214) %t216 = call ptr @fn_emit_bind(ptr %t215) store ptr %t216, ptr %t217 %t218 = load ptr, ptr %t217 %t219 = call ptr @lp_str_concat(ptr @.str7475, ptr %t218) %t220 = call ptr @lp_str_concat(ptr %t219, ptr @.str7476) %t221 = call ptr @fn_emit_bind(ptr %t220) %t222 = call ptr @fn_val(ptr %t221, ptr @.str7477) store ptr %t222, ptr %retval br label %ret ifend30: %t223 = load ptr, ptr %t1 %t224 = getelementptr inbounds %Cmp_Node, ptr %t223, i32 0, i32 7 %t225 = load ptr, ptr %t224 %t226 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 0 %t227 = load ptr, ptr %t226 %t228 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 1 %t229 = load i32, ptr %t228 %t230 = icmp ult i32 0, %t229 br i1 %t230, label %ixok35, label %ixbad36 ixbad36: %t231 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t231, ptr @.fmt_bounds, ptr @.str7478, i32 0, i32 %t229) call void @exit(i32 1) unreachable ixok35: %t232 = getelementptr inbounds ptr, ptr %t227, i32 0 %t233 = load ptr, ptr %t232 %t234 = call ptr @fn_raw_expr(ptr %t233) store ptr %t234, ptr %t235 %t236 = load ptr, ptr %t1 %t237 = getelementptr inbounds %Cmp_Node, ptr %t236, i32 0, i32 7 %t238 = load ptr, ptr %t237 %t239 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 0 %t240 = load ptr, ptr %t239 %t241 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 1 %t242 = load i32, ptr %t241 %t243 = icmp ult i32 1, %t242 br i1 %t243, label %ixok37, label %ixbad38 ixbad38: %t244 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t244, ptr @.fmt_bounds, ptr @.str7479, i32 1, i32 %t242) call void @exit(i32 1) unreachable ixok37: %t245 = getelementptr inbounds ptr, ptr %t240, i32 1 %t246 = load ptr, ptr %t245 %t247 = call ptr @fn_emit_expr(ptr %t246) store ptr %t247, ptr %t248 %t249 = load ptr, ptr %t1 %t250 = getelementptr inbounds %Cmp_Node, ptr %t249, i32 0, i32 7 %t251 = load ptr, ptr %t250 %t252 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 0 %t253 = load ptr, ptr %t252 %t254 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 1 %t255 = load i32, ptr %t254 %t256 = icmp ult i32 2, %t255 br i1 %t256, label %ixok39, label %ixbad40 ixbad40: %t257 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t257, ptr @.fmt_bounds, ptr @.str7480, i32 2, i32 %t255) call void @exit(i32 1) unreachable ixok39: %t258 = getelementptr inbounds ptr, ptr %t253, i32 2 %t259 = load ptr, ptr %t258 %t260 = call ptr @fn_emit_expr(ptr %t259) store ptr %t260, ptr %t261 %t262 = load ptr, ptr %t235 %t263 = getelementptr inbounds %Cmp_Val, ptr %t262, i32 0, i32 0 %t264 = load ptr, ptr %t263 %t265 = call ptr @lp_str_concat(ptr @.str7481, ptr %t264) %t266 = call ptr @lp_str_concat(ptr %t265, ptr @.str7482) %t267 = load ptr, ptr %t248 %t268 = getelementptr inbounds %Cmp_Val, ptr %t267, i32 0, i32 0 %t269 = load ptr, ptr %t268 %t270 = call ptr @lp_str_concat(ptr %t266, ptr %t269) %t271 = call ptr @fn_emit_bind(ptr %t270) store ptr %t271, ptr %t272 %t273 = load ptr, ptr %t261 %t274 = getelementptr inbounds %Cmp_Val, ptr %t273, i32 0, i32 0 %t275 = load ptr, ptr %t274 %t276 = call ptr @lp_str_concat(ptr @.str7483, ptr %t275) %t277 = call ptr @lp_str_concat(ptr %t276, ptr @.str7484) %t278 = call ptr @fn_emit_bind(ptr %t277) store ptr %t278, ptr %t279 call void @fn_emit(ptr @.str7485) %t280 = load ptr, ptr %t279 call void @fn_emit(ptr %t280) call void @fn_emit(ptr @.str7486) %t281 = load ptr, ptr %t272 call void @fn_emit(ptr %t281) call void @fn_emit(ptr @.str7487) %t282 = call ptr @fn_val(ptr @.str7488, ptr @.str7489) store ptr %t282, ptr %retval br label %ret ret: %t283 = load ptr, ptr %retval ret ptr %t283 } define i32 @fn_is_time_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str7490) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str7491) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7492) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7493) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t28 = load ptr, ptr %t0 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str7494) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: store i32 0, ptr %retval br label %ret ret: %t31 = load i32, ptr %retval ret i32 %t31 } define ptr @fn_emit_time_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t15 = alloca ptr %t36 = alloca ptr %t38 = alloca ptr %t43 = alloca ptr %t54 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7495) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_emit_bind(ptr @.str7496) %t6 = call ptr @fn_val(ptr %t5, ptr @.str7497) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str7498) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: %t10 = call ptr @fn_val(ptr @.str7499, ptr @.str7500) store ptr %t10, ptr %retval br label %ret ifend5: %t11 = load ptr, ptr %t0 %t12 = call i32 @lp_str_eq(ptr %t11, ptr @.str7501) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: %t14 = call ptr @fn_emit_bind(ptr @.str7502) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = call ptr @lp_str_concat(ptr @.str7503, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str7504) %t19 = call ptr @fn_emit_bind(ptr %t18) %t20 = call ptr @fn_val(ptr %t19, ptr @.str7505) store ptr %t20, ptr %retval br label %ret ifend8: %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t21, ptr @.str7506) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then9, label %ifend11 then9: %t24 = load ptr, ptr %t1 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 0, %t30 br i1 %t31, label %ixok12, label %ixbad13 ixbad13: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str7507, i32 0, i32 %t30) call void @exit(i32 1) unreachable ixok12: %t33 = getelementptr inbounds ptr, ptr %t28, i32 0 %t34 = load ptr, ptr %t33 %t35 = call ptr @fn_emit_expr(ptr %t34) store ptr %t35, ptr %t36 %t37 = call ptr @fn_emit_bind(ptr @.str7508) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = call ptr @lp_str_concat(ptr @.str7509, ptr %t39) %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str7510) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = call ptr @lp_str_concat(ptr @.str7511, ptr %t44) %t46 = call ptr @lp_str_concat(ptr %t45, ptr @.str7512) %t47 = load ptr, ptr %t36 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = call ptr @lp_str_concat(ptr %t46, ptr %t49) %t51 = call ptr @fn_emit_bind(ptr %t50) %t52 = call ptr @fn_val(ptr %t51, ptr @.str7513) store ptr %t52, ptr %retval br label %ret ifend11: %t53 = call ptr @fn_emit_bind(ptr @.str7514) store ptr %t53, ptr %t54 %t55 = load ptr, ptr %t54 %t56 = call ptr @lp_str_concat(ptr @.str7515, ptr %t55) %t57 = call ptr @lp_str_concat(ptr %t56, ptr @.str7516) %t58 = call ptr @fn_emit_bind(ptr %t57) %t59 = call ptr @fn_val(ptr %t58, ptr @.str7517) store ptr %t59, ptr %retval br label %ret ret: %t60 = load ptr, ptr %retval ret ptr %t60 } define i32 @fn_is_duration_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t30 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str7518) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str7519) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7520) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7521) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str7522) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t30 br i1 %t33, label %scend10, label %sc9 sc9: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str7523) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t30 br label %scend10 scend10: %t39 = load i32, ptr %t30 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t29 br i1 %t40, label %scend12, label %sc11 sc11: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str7524) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t29 br label %scend12 scend12: %t46 = load i32, ptr %t29 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t28 br i1 %t47, label %scend14, label %sc13 sc13: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str7525) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t28 br label %scend14 scend14: %t53 = load i32, ptr %t28 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then15, label %ifend17 then15: store i32 1, ptr %retval br label %ret ifend17: store i32 0, ptr %retval br label %ret ret: %t55 = load i32, ptr %retval ret i32 %t55 } define ptr @fn_emit_duration_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t14 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 0, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str7526, i32 0, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 0 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_emit_expr(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7527) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then2, label %ifend4 then2: %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_val(ptr %t20, ptr @.str7528) store ptr %t21, ptr %retval br label %ret ifend4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7529) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: %t25 = load ptr, ptr %t14 %t26 = getelementptr inbounds %Cmp_Val, ptr %t25, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = call ptr @lp_str_concat(ptr @.str7530, ptr %t27) %t29 = call ptr @lp_str_concat(ptr %t28, ptr @.str7531) %t30 = call ptr @fn_emit_bind(ptr %t29) %t31 = call ptr @fn_val(ptr %t30, ptr @.str7532) store ptr %t31, ptr %retval br label %ret ifend7: %t32 = load ptr, ptr %t0 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str7533) %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then8, label %ifend10 then8: %t35 = load ptr, ptr %t14 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = call ptr @lp_str_concat(ptr @.str7534, ptr %t37) %t39 = call ptr @lp_str_concat(ptr %t38, ptr @.str7535) %t40 = call ptr @fn_emit_bind(ptr %t39) %t41 = call ptr @fn_val(ptr %t40, ptr @.str7536) store ptr %t41, ptr %retval br label %ret ifend10: %t42 = load ptr, ptr %t0 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str7537) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then11, label %ifend13 then11: %t45 = load ptr, ptr %t14 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = call ptr @lp_str_concat(ptr @.str7538, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str7539) %t50 = call ptr @fn_emit_bind(ptr %t49) %t51 = call ptr @fn_val(ptr %t50, ptr @.str7540) store ptr %t51, ptr %retval br label %ret ifend13: %t52 = load ptr, ptr %t0 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str7541) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then14, label %ifend16 then14: %t55 = load ptr, ptr %t14 %t56 = getelementptr inbounds %Cmp_Val, ptr %t55, i32 0, i32 0 %t57 = load ptr, ptr %t56 %t58 = call ptr @fn_val(ptr %t57, ptr @.str7542) store ptr %t58, ptr %retval br label %ret ifend16: %t59 = load ptr, ptr %t0 %t60 = call i32 @lp_str_eq(ptr %t59, ptr @.str7543) %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %then17, label %ifend19 then17: %t62 = load ptr, ptr %t14 %t63 = getelementptr inbounds %Cmp_Val, ptr %t62, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = call ptr @lp_str_concat(ptr @.str7544, ptr %t64) %t66 = call ptr @lp_str_concat(ptr %t65, ptr @.str7545) %t67 = call ptr @fn_emit_bind(ptr %t66) %t68 = call ptr @fn_val(ptr %t67, ptr @.str7546) store ptr %t68, ptr %retval br label %ret ifend19: %t69 = load ptr, ptr %t0 %t70 = call i32 @lp_str_eq(ptr %t69, ptr @.str7547) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then20, label %ifend22 then20: %t72 = load ptr, ptr %t14 %t73 = getelementptr inbounds %Cmp_Val, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = call ptr @lp_str_concat(ptr @.str7548, ptr %t74) %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str7549) %t77 = call ptr @fn_emit_bind(ptr %t76) %t78 = call ptr @fn_val(ptr %t77, ptr @.str7550) store ptr %t78, ptr %retval br label %ret ifend22: %t79 = load ptr, ptr %t14 %t80 = getelementptr inbounds %Cmp_Val, ptr %t79, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = call ptr @lp_str_concat(ptr @.str7551, ptr %t81) %t83 = call ptr @lp_str_concat(ptr %t82, ptr @.str7552) %t84 = call ptr @fn_emit_bind(ptr %t83) %t85 = call ptr @fn_val(ptr %t84, ptr @.str7553) store ptr %t85, ptr %retval br label %ret ret: %t86 = load ptr, ptr %retval ret ptr %t86 } define ptr @fn_date_component(ptr %arg_ed, i32 %arg_which) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t3 = alloca ptr %t5 = alloca ptr %t7 = alloca ptr %t21 = alloca ptr store ptr %arg_ed, ptr %t0 store i32 %arg_which, ptr %t1 store i32 1, ptr @g_g_uses_datert %t2 = call ptr @fn_emit_alloca(ptr @.str7554) store ptr %t2, ptr %t3 %t4 = call ptr @fn_emit_alloca(ptr @.str7555) store ptr %t4, ptr %t5 %t6 = call ptr @fn_emit_alloca(ptr @.str7556) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t0 %t9 = call ptr @lp_str_concat(ptr @.str7557, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str7558) %t11 = load ptr, ptr %t3 %t12 = call ptr @lp_str_concat(ptr %t10, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str7559) %t14 = load ptr, ptr %t5 %t15 = call ptr @lp_str_concat(ptr %t13, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str7560) %t17 = load ptr, ptr %t7 %t18 = call ptr @lp_str_concat(ptr %t16, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str7561) call void @fn_emit(ptr %t19) %t20 = load ptr, ptr %t3 store ptr %t20, ptr %t21 %t22 = load i32, ptr %t1 %t23 = icmp eq i32 %t22, 1 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then0, label %ifend2 then0: %t26 = load ptr, ptr %t5 store ptr %t26, ptr %t21 br label %ifend2 ifend2: %t27 = load i32, ptr %t1 %t28 = icmp eq i32 %t27, 2 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then3, label %ifend5 then3: %t31 = load ptr, ptr %t7 store ptr %t31, ptr %t21 br label %ifend5 ifend5: %t32 = load ptr, ptr %t21 %t33 = call ptr @lp_str_concat(ptr @.str7562, ptr %t32) %t34 = call ptr @fn_emit_bind(ptr %t33) store ptr %t34, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define i32 @fn_is_date_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t47 = alloca i32 %t48 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str7563) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str7564) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7565) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7566) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str7567) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t29 br i1 %t32, label %scend10, label %sc9 sc9: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str7568) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t29 br label %scend10 scend10: %t38 = load i32, ptr %t29 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t28 br i1 %t39, label %scend12, label %sc11 sc11: %t41 = load ptr, ptr %t0 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str7569) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t28 br label %scend12 scend12: %t45 = load i32, ptr %t28 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then13, label %ifend15 then13: store i32 1, ptr %retval br label %ret ifend15: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str7570) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t48 br i1 %t51, label %scend17, label %sc16 sc16: %t53 = load ptr, ptr %t0 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str7571) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t48 br label %scend17 scend17: %t57 = load i32, ptr %t48 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t47 br i1 %t58, label %scend19, label %sc18 sc18: %t60 = load ptr, ptr %t0 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str7572) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t47 br label %scend19 scend19: %t64 = load i32, ptr %t47 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then20, label %ifend22 then20: store i32 1, ptr %retval br label %ret ifend22: store i32 0, ptr %retval br label %ret ret: %t66 = load i32, ptr %retval ret i32 %t66 } define ptr @fn_emit_date_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t30 = alloca ptr %t43 = alloca ptr %t76 = alloca ptr %t97 = alloca ptr %t118 = alloca ptr %t139 = alloca ptr %t146 = alloca ptr %t151 = alloca ptr %t156 = alloca ptr %t177 = alloca ptr %t184 = alloca ptr %t189 = alloca ptr %t196 = alloca ptr %t201 = alloca ptr %t208 = alloca ptr %t213 = alloca ptr %t220 = alloca ptr %t227 = alloca ptr %t248 = alloca ptr %t261 = alloca ptr %t273 = alloca ptr %t280 = alloca ptr %t287 = alloca ptr %t299 = alloca ptr %t306 = alloca ptr %t313 = alloca ptr %t321 = alloca ptr %t344 = alloca ptr %t367 = alloca ptr %t380 = alloca ptr %t404 = alloca ptr %t417 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7573) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 1, ptr @g_g_uses_datert %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str7574, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 1, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str7575, i32 1, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 1 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_emit_expr(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t1 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 2, %t37 br i1 %t38, label %ixok7, label %ixbad8 ixbad8: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str7576, i32 2, i32 %t37) call void @exit(i32 1) unreachable ixok7: %t40 = getelementptr inbounds ptr, ptr %t35, i32 2 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_emit_expr(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t17 %t45 = getelementptr inbounds %Cmp_Val, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = call ptr @lp_str_concat(ptr @.str7577, ptr %t46) %t48 = call ptr @lp_str_concat(ptr %t47, ptr @.str7578) %t49 = load ptr, ptr %t30 %t50 = getelementptr inbounds %Cmp_Val, ptr %t49, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = call ptr @lp_str_concat(ptr %t48, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str7579) %t54 = load ptr, ptr %t43 %t55 = getelementptr inbounds %Cmp_Val, ptr %t54, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @lp_str_concat(ptr %t53, ptr %t56) %t58 = call ptr @lp_str_concat(ptr %t57, ptr @.str7580) %t59 = call ptr @fn_emit_bind(ptr %t58) %t60 = call ptr @fn_val(ptr %t59, ptr @.str7581) store ptr %t60, ptr %retval br label %ret ifend2: %t61 = load ptr, ptr %t0 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str7582) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then9, label %ifend11 then9: %t64 = load ptr, ptr %t1 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t70 = load i32, ptr %t69 %t71 = icmp ult i32 0, %t70 br i1 %t71, label %ixok12, label %ixbad13 ixbad13: %t72 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t72, ptr @.fmt_bounds, ptr @.str7583, i32 0, i32 %t70) call void @exit(i32 1) unreachable ixok12: %t73 = getelementptr inbounds ptr, ptr %t68, i32 0 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_emit_expr(ptr %t74) store ptr %t75, ptr %t76 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %Cmp_Val, ptr %t77, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_date_component(ptr %t79, i32 0) %t81 = call ptr @fn_val(ptr %t80, ptr @.str7584) store ptr %t81, ptr %retval br label %ret ifend11: %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t82, ptr @.str7585) %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then14, label %ifend16 then14: %t85 = load ptr, ptr %t1 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 7 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 0 %t89 = load ptr, ptr %t88 %t90 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t91 = load i32, ptr %t90 %t92 = icmp ult i32 0, %t91 br i1 %t92, label %ixok17, label %ixbad18 ixbad18: %t93 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t93, ptr @.fmt_bounds, ptr @.str7586, i32 0, i32 %t91) call void @exit(i32 1) unreachable ixok17: %t94 = getelementptr inbounds ptr, ptr %t89, i32 0 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_emit_expr(ptr %t95) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t97 %t99 = getelementptr inbounds %Cmp_Val, ptr %t98, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = call ptr @fn_date_component(ptr %t100, i32 1) %t102 = call ptr @fn_val(ptr %t101, ptr @.str7587) store ptr %t102, ptr %retval br label %ret ifend16: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str7588) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then19, label %ifend21 then19: %t106 = load ptr, ptr %t1 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 7 %t108 = load ptr, ptr %t107 %t109 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t110 = load ptr, ptr %t109 %t111 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t112 = load i32, ptr %t111 %t113 = icmp ult i32 0, %t112 br i1 %t113, label %ixok22, label %ixbad23 ixbad23: %t114 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t114, ptr @.fmt_bounds, ptr @.str7589, i32 0, i32 %t112) call void @exit(i32 1) unreachable ixok22: %t115 = getelementptr inbounds ptr, ptr %t110, i32 0 %t116 = load ptr, ptr %t115 %t117 = call ptr @fn_emit_expr(ptr %t116) store ptr %t117, ptr %t118 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %Cmp_Val, ptr %t119, i32 0, i32 0 %t121 = load ptr, ptr %t120 %t122 = call ptr @fn_date_component(ptr %t121, i32 2) %t123 = call ptr @fn_val(ptr %t122, ptr @.str7590) store ptr %t123, ptr %retval br label %ret ifend21: %t124 = load ptr, ptr %t0 %t125 = call i32 @lp_str_eq(ptr %t124, ptr @.str7591) %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then24, label %ifend26 then24: %t127 = load ptr, ptr %t1 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 7 %t129 = load ptr, ptr %t128 %t130 = getelementptr inbounds %LSlice, ptr %t129, i32 0, i32 0 %t131 = load ptr, ptr %t130 %t132 = getelementptr inbounds %LSlice, ptr %t129, i32 0, i32 1 %t133 = load i32, ptr %t132 %t134 = icmp ult i32 0, %t133 br i1 %t134, label %ixok27, label %ixbad28 ixbad28: %t135 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t135, ptr @.fmt_bounds, ptr @.str7592, i32 0, i32 %t133) call void @exit(i32 1) unreachable ixok27: %t136 = getelementptr inbounds ptr, ptr %t131, i32 0 %t137 = load ptr, ptr %t136 %t138 = call ptr @fn_emit_expr(ptr %t137) store ptr %t138, ptr %t139 %t140 = load ptr, ptr %t139 %t141 = getelementptr inbounds %Cmp_Val, ptr %t140, i32 0, i32 0 %t142 = load ptr, ptr %t141 %t143 = call ptr @lp_str_concat(ptr @.str7593, ptr %t142) %t144 = call ptr @lp_str_concat(ptr %t143, ptr @.str7594) %t145 = call ptr @fn_emit_bind(ptr %t144) store ptr %t145, ptr %t146 %t147 = load ptr, ptr %t146 %t148 = call ptr @lp_str_concat(ptr @.str7595, ptr %t147) %t149 = call ptr @lp_str_concat(ptr %t148, ptr @.str7596) %t150 = call ptr @fn_emit_bind(ptr %t149) store ptr %t150, ptr %t151 %t152 = load ptr, ptr %t151 %t153 = call ptr @lp_str_concat(ptr @.str7597, ptr %t152) %t154 = call ptr @lp_str_concat(ptr %t153, ptr @.str7598) %t155 = call ptr @fn_emit_bind(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t156 %t158 = call ptr @lp_str_concat(ptr @.str7599, ptr %t157) %t159 = call ptr @lp_str_concat(ptr %t158, ptr @.str7600) %t160 = call ptr @fn_emit_bind(ptr %t159) %t161 = call ptr @fn_val(ptr %t160, ptr @.str7601) store ptr %t161, ptr %retval br label %ret ifend26: %t162 = load ptr, ptr %t0 %t163 = call i32 @lp_str_eq(ptr %t162, ptr @.str7602) %t164 = icmp ne i32 %t163, 0 br i1 %t164, label %then29, label %ifend31 then29: %t165 = load ptr, ptr %t1 %t166 = getelementptr inbounds %Cmp_Node, ptr %t165, i32 0, i32 7 %t167 = load ptr, ptr %t166 %t168 = getelementptr inbounds %LSlice, ptr %t167, i32 0, i32 0 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %LSlice, ptr %t167, i32 0, i32 1 %t171 = load i32, ptr %t170 %t172 = icmp ult i32 0, %t171 br i1 %t172, label %ixok32, label %ixbad33 ixbad33: %t173 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t173, ptr @.fmt_bounds, ptr @.str7603, i32 0, i32 %t171) call void @exit(i32 1) unreachable ixok32: %t174 = getelementptr inbounds ptr, ptr %t169, i32 0 %t175 = load ptr, ptr %t174 %t176 = call ptr @fn_emit_expr(ptr %t175) store ptr %t176, ptr %t177 %t178 = load ptr, ptr %t177 %t179 = getelementptr inbounds %Cmp_Val, ptr %t178, i32 0, i32 0 %t180 = load ptr, ptr %t179 %t181 = call ptr @lp_str_concat(ptr @.str7604, ptr %t180) %t182 = call ptr @lp_str_concat(ptr %t181, ptr @.str7605) %t183 = call ptr @fn_emit_bind(ptr %t182) store ptr %t183, ptr %t184 %t185 = load ptr, ptr %t184 %t186 = call ptr @lp_str_concat(ptr @.str7606, ptr %t185) %t187 = call ptr @lp_str_concat(ptr %t186, ptr @.str7607) %t188 = call ptr @fn_emit_bind(ptr %t187) store ptr %t188, ptr %t189 %t190 = load ptr, ptr %t177 %t191 = getelementptr inbounds %Cmp_Val, ptr %t190, i32 0, i32 0 %t192 = load ptr, ptr %t191 %t193 = call ptr @lp_str_concat(ptr @.str7608, ptr %t192) %t194 = call ptr @lp_str_concat(ptr %t193, ptr @.str7609) %t195 = call ptr @fn_emit_bind(ptr %t194) store ptr %t195, ptr %t196 %t197 = load ptr, ptr %t196 %t198 = call ptr @lp_str_concat(ptr @.str7610, ptr %t197) %t199 = call ptr @lp_str_concat(ptr %t198, ptr @.str7611) %t200 = call ptr @fn_emit_bind(ptr %t199) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t177 %t203 = getelementptr inbounds %Cmp_Val, ptr %t202, i32 0, i32 0 %t204 = load ptr, ptr %t203 %t205 = call ptr @lp_str_concat(ptr @.str7612, ptr %t204) %t206 = call ptr @lp_str_concat(ptr %t205, ptr @.str7613) %t207 = call ptr @fn_emit_bind(ptr %t206) store ptr %t207, ptr %t208 %t209 = load ptr, ptr %t208 %t210 = call ptr @lp_str_concat(ptr @.str7614, ptr %t209) %t211 = call ptr @lp_str_concat(ptr %t210, ptr @.str7615) %t212 = call ptr @fn_emit_bind(ptr %t211) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t189 %t215 = call ptr @lp_str_concat(ptr @.str7616, ptr %t214) %t216 = call ptr @lp_str_concat(ptr %t215, ptr @.str7617) %t217 = load ptr, ptr %t201 %t218 = call ptr @lp_str_concat(ptr %t216, ptr %t217) %t219 = call ptr @fn_emit_bind(ptr %t218) store ptr %t219, ptr %t220 %t221 = load ptr, ptr %t220 %t222 = call ptr @lp_str_concat(ptr @.str7618, ptr %t221) %t223 = call ptr @lp_str_concat(ptr %t222, ptr @.str7619) %t224 = load ptr, ptr %t213 %t225 = call ptr @lp_str_concat(ptr %t223, ptr %t224) %t226 = call ptr @fn_emit_bind(ptr %t225) store ptr %t226, ptr %t227 %t228 = load ptr, ptr %t227 %t229 = call ptr @lp_str_concat(ptr @.str7620, ptr %t228) %t230 = call ptr @lp_str_concat(ptr %t229, ptr @.str7621) %t231 = call ptr @fn_emit_bind(ptr %t230) %t232 = call ptr @fn_val(ptr %t231, ptr @.str7622) store ptr %t232, ptr %retval br label %ret ifend31: %t233 = load ptr, ptr %t0 %t234 = call i32 @lp_str_eq(ptr %t233, ptr @.str7623) %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %then34, label %ifend36 then34: store i32 1, ptr @g_g_uses_datert %t236 = load ptr, ptr %t1 %t237 = getelementptr inbounds %Cmp_Node, ptr %t236, i32 0, i32 7 %t238 = load ptr, ptr %t237 %t239 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 0 %t240 = load ptr, ptr %t239 %t241 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 1 %t242 = load i32, ptr %t241 %t243 = icmp ult i32 0, %t242 br i1 %t243, label %ixok37, label %ixbad38 ixbad38: %t244 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t244, ptr @.fmt_bounds, ptr @.str7624, i32 0, i32 %t242) call void @exit(i32 1) unreachable ixok37: %t245 = getelementptr inbounds ptr, ptr %t240, i32 0 %t246 = load ptr, ptr %t245 %t247 = call ptr @fn_emit_expr(ptr %t246) store ptr %t247, ptr %t248 %t249 = load ptr, ptr %t1 %t250 = getelementptr inbounds %Cmp_Node, ptr %t249, i32 0, i32 7 %t251 = load ptr, ptr %t250 %t252 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 0 %t253 = load ptr, ptr %t252 %t254 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 1 %t255 = load i32, ptr %t254 %t256 = icmp ult i32 1, %t255 br i1 %t256, label %ixok39, label %ixbad40 ixbad40: %t257 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t257, ptr @.fmt_bounds, ptr @.str7625, i32 1, i32 %t255) call void @exit(i32 1) unreachable ixok39: %t258 = getelementptr inbounds ptr, ptr %t253, i32 1 %t259 = load ptr, ptr %t258 %t260 = call ptr @fn_emit_expr(ptr %t259) store ptr %t260, ptr %t261 %t262 = load ptr, ptr %t248 %t263 = getelementptr inbounds %Cmp_Val, ptr %t262, i32 0, i32 0 %t264 = load ptr, ptr %t263 %t265 = call ptr @lp_str_concat(ptr @.str7626, ptr %t264) %t266 = call ptr @lp_str_concat(ptr %t265, ptr @.str7627) %t267 = load ptr, ptr %t261 %t268 = getelementptr inbounds %Cmp_Val, ptr %t267, i32 0, i32 0 %t269 = load ptr, ptr %t268 %t270 = call ptr @lp_str_concat(ptr %t266, ptr %t269) %t271 = call ptr @lp_str_concat(ptr %t270, ptr @.str7628) %t272 = call ptr @fn_emit_bind(ptr %t271) store ptr %t272, ptr %t273 %t274 = load ptr, ptr %t261 %t275 = getelementptr inbounds %Cmp_Val, ptr %t274, i32 0, i32 0 %t276 = load ptr, ptr %t275 %t277 = call ptr @lp_str_concat(ptr @.str7629, ptr %t276) %t278 = call ptr @lp_str_concat(ptr %t277, ptr @.str7630) %t279 = call ptr @fn_emit_bind(ptr %t278) store ptr %t279, ptr %t280 %t281 = load ptr, ptr %t248 %t282 = getelementptr inbounds %Cmp_Val, ptr %t281, i32 0, i32 0 %t283 = load ptr, ptr %t282 %t284 = call ptr @lp_str_concat(ptr @.str7631, ptr %t283) %t285 = call ptr @lp_str_concat(ptr %t284, ptr @.str7632) %t286 = call ptr @fn_emit_bind(ptr %t285) store ptr %t286, ptr %t287 %t288 = load ptr, ptr %t280 %t289 = call ptr @lp_str_concat(ptr @.str7633, ptr %t288) %t290 = call ptr @lp_str_concat(ptr %t289, ptr @.str7634) %t291 = load ptr, ptr %t287 %t292 = call ptr @lp_str_concat(ptr %t290, ptr %t291) %t293 = call ptr @lp_str_concat(ptr %t292, ptr @.str7635) %t294 = load ptr, ptr %t248 %t295 = getelementptr inbounds %Cmp_Val, ptr %t294, i32 0, i32 0 %t296 = load ptr, ptr %t295 %t297 = call ptr @lp_str_concat(ptr %t293, ptr %t296) %t298 = call ptr @fn_emit_bind(ptr %t297) store ptr %t298, ptr %t299 %t300 = load ptr, ptr %t261 %t301 = getelementptr inbounds %Cmp_Val, ptr %t300, i32 0, i32 0 %t302 = load ptr, ptr %t301 %t303 = call ptr @lp_str_concat(ptr @.str7636, ptr %t302) %t304 = call ptr @lp_str_concat(ptr %t303, ptr @.str7637) %t305 = call ptr @fn_emit_bind(ptr %t304) store ptr %t305, ptr %t306 %t307 = load ptr, ptr %t280 %t308 = call ptr @lp_str_concat(ptr @.str7638, ptr %t307) %t309 = call ptr @lp_str_concat(ptr %t308, ptr @.str7639) %t310 = load ptr, ptr %t306 %t311 = call ptr @lp_str_concat(ptr %t309, ptr %t310) %t312 = call ptr @fn_emit_bind(ptr %t311) store ptr %t312, ptr %t313 %t314 = load ptr, ptr %t299 %t315 = call ptr @lp_str_concat(ptr @.str7640, ptr %t314) %t316 = call ptr @lp_str_concat(ptr %t315, ptr @.str7641) %t317 = load ptr, ptr %t313 %t318 = call ptr @lp_str_concat(ptr %t316, ptr %t317) %t319 = call ptr @lp_str_concat(ptr %t318, ptr @.str7642) %t320 = call ptr @fn_emit_bind(ptr %t319) store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t321 %t323 = call ptr @lp_str_concat(ptr @.str7643, ptr %t322) %t324 = call ptr @lp_str_concat(ptr %t323, ptr @.str7644) %t325 = load ptr, ptr %t273 %t326 = call ptr @lp_str_concat(ptr %t324, ptr %t325) %t327 = call ptr @fn_emit_bind(ptr %t326) %t328 = call ptr @fn_val(ptr %t327, ptr @.str7645) store ptr %t328, ptr %retval br label %ret ifend36: %t329 = load ptr, ptr %t0 %t330 = call i32 @lp_str_eq(ptr %t329, ptr @.str7646) %t331 = icmp ne i32 %t330, 0 br i1 %t331, label %then41, label %ifend43 then41: %t332 = load ptr, ptr %t1 %t333 = getelementptr inbounds %Cmp_Node, ptr %t332, i32 0, i32 7 %t334 = load ptr, ptr %t333 %t335 = getelementptr inbounds %LSlice, ptr %t334, i32 0, i32 0 %t336 = load ptr, ptr %t335 %t337 = getelementptr inbounds %LSlice, ptr %t334, i32 0, i32 1 %t338 = load i32, ptr %t337 %t339 = icmp ult i32 0, %t338 br i1 %t339, label %ixok44, label %ixbad45 ixbad45: %t340 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t340, ptr @.fmt_bounds, ptr @.str7647, i32 0, i32 %t338) call void @exit(i32 1) unreachable ixok44: %t341 = getelementptr inbounds ptr, ptr %t336, i32 0 %t342 = load ptr, ptr %t341 %t343 = call ptr @fn_emit_expr(ptr %t342) store ptr %t343, ptr %t344 %t345 = load ptr, ptr %t344 %t346 = getelementptr inbounds %Cmp_Val, ptr %t345, i32 0, i32 0 %t347 = load ptr, ptr %t346 %t348 = call ptr @lp_str_concat(ptr @.str7648, ptr %t347) %t349 = call ptr @lp_str_concat(ptr %t348, ptr @.str7649) %t350 = call ptr @fn_emit_bind(ptr %t349) %t351 = call ptr @fn_val(ptr %t350, ptr @.str7650) store ptr %t351, ptr %retval br label %ret ifend43: %t352 = load ptr, ptr %t0 %t353 = call i32 @lp_str_eq(ptr %t352, ptr @.str7651) %t354 = icmp ne i32 %t353, 0 br i1 %t354, label %then46, label %ifend48 then46: %t355 = load ptr, ptr %t1 %t356 = getelementptr inbounds %Cmp_Node, ptr %t355, i32 0, i32 7 %t357 = load ptr, ptr %t356 %t358 = getelementptr inbounds %LSlice, ptr %t357, i32 0, i32 0 %t359 = load ptr, ptr %t358 %t360 = getelementptr inbounds %LSlice, ptr %t357, i32 0, i32 1 %t361 = load i32, ptr %t360 %t362 = icmp ult i32 0, %t361 br i1 %t362, label %ixok49, label %ixbad50 ixbad50: %t363 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t363, ptr @.fmt_bounds, ptr @.str7652, i32 0, i32 %t361) call void @exit(i32 1) unreachable ixok49: %t364 = getelementptr inbounds ptr, ptr %t359, i32 0 %t365 = load ptr, ptr %t364 %t366 = call ptr @fn_emit_expr(ptr %t365) store ptr %t366, ptr %t367 %t368 = load ptr, ptr %t1 %t369 = getelementptr inbounds %Cmp_Node, ptr %t368, i32 0, i32 7 %t370 = load ptr, ptr %t369 %t371 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 0 %t372 = load ptr, ptr %t371 %t373 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 1 %t374 = load i32, ptr %t373 %t375 = icmp ult i32 1, %t374 br i1 %t375, label %ixok51, label %ixbad52 ixbad52: %t376 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t376, ptr @.fmt_bounds, ptr @.str7653, i32 1, i32 %t374) call void @exit(i32 1) unreachable ixok51: %t377 = getelementptr inbounds ptr, ptr %t372, i32 1 %t378 = load ptr, ptr %t377 %t379 = call ptr @fn_emit_expr(ptr %t378) store ptr %t379, ptr %t380 %t381 = load ptr, ptr %t367 %t382 = getelementptr inbounds %Cmp_Val, ptr %t381, i32 0, i32 0 %t383 = load ptr, ptr %t382 %t384 = call ptr @lp_str_concat(ptr @.str7654, ptr %t383) %t385 = call ptr @lp_str_concat(ptr %t384, ptr @.str7655) %t386 = load ptr, ptr %t380 %t387 = getelementptr inbounds %Cmp_Val, ptr %t386, i32 0, i32 0 %t388 = load ptr, ptr %t387 %t389 = call ptr @lp_str_concat(ptr %t385, ptr %t388) %t390 = call ptr @fn_emit_bind(ptr %t389) %t391 = call ptr @fn_val(ptr %t390, ptr @.str7656) store ptr %t391, ptr %retval br label %ret ifend48: %t392 = load ptr, ptr %t1 %t393 = getelementptr inbounds %Cmp_Node, ptr %t392, i32 0, i32 7 %t394 = load ptr, ptr %t393 %t395 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 0 %t396 = load ptr, ptr %t395 %t397 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 1 %t398 = load i32, ptr %t397 %t399 = icmp ult i32 0, %t398 br i1 %t399, label %ixok53, label %ixbad54 ixbad54: %t400 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t400, ptr @.fmt_bounds, ptr @.str7657, i32 0, i32 %t398) call void @exit(i32 1) unreachable ixok53: %t401 = getelementptr inbounds ptr, ptr %t396, i32 0 %t402 = load ptr, ptr %t401 %t403 = call ptr @fn_emit_expr(ptr %t402) store ptr %t403, ptr %t404 %t405 = load ptr, ptr %t1 %t406 = getelementptr inbounds %Cmp_Node, ptr %t405, i32 0, i32 7 %t407 = load ptr, ptr %t406 %t408 = getelementptr inbounds %LSlice, ptr %t407, i32 0, i32 0 %t409 = load ptr, ptr %t408 %t410 = getelementptr inbounds %LSlice, ptr %t407, i32 0, i32 1 %t411 = load i32, ptr %t410 %t412 = icmp ult i32 1, %t411 br i1 %t412, label %ixok55, label %ixbad56 ixbad56: %t413 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t413, ptr @.fmt_bounds, ptr @.str7658, i32 1, i32 %t411) call void @exit(i32 1) unreachable ixok55: %t414 = getelementptr inbounds ptr, ptr %t409, i32 1 %t415 = load ptr, ptr %t414 %t416 = call ptr @fn_emit_expr(ptr %t415) store ptr %t416, ptr %t417 %t418 = load ptr, ptr %t404 %t419 = getelementptr inbounds %Cmp_Val, ptr %t418, i32 0, i32 0 %t420 = load ptr, ptr %t419 %t421 = call ptr @lp_str_concat(ptr @.str7659, ptr %t420) %t422 = call ptr @lp_str_concat(ptr %t421, ptr @.str7660) %t423 = load ptr, ptr %t417 %t424 = getelementptr inbounds %Cmp_Val, ptr %t423, i32 0, i32 0 %t425 = load ptr, ptr %t424 %t426 = call ptr @lp_str_concat(ptr %t422, ptr %t425) %t427 = call ptr @fn_emit_bind(ptr %t426) %t428 = call ptr @fn_val(ptr %t427, ptr @.str7661) store ptr %t428, ptr %retval br label %ret ret: %t429 = load ptr, ptr %retval ret ptr %t429 } define ptr @fn_dt_secofday(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t10 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str7662, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str7663) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @lp_str_concat(ptr @.str7664, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str7665) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = call ptr @lp_str_concat(ptr @.str7666, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str7667) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } define ptr @fn_dt_epochday(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr %t10 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_dt_secofday(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t0 %t5 = call ptr @lp_str_concat(ptr @.str7668, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str7669) %t7 = load ptr, ptr %t3 %t8 = call ptr @lp_str_concat(ptr %t6, ptr %t7) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = call ptr @lp_str_concat(ptr @.str7670, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str7671) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } define i32 @fn_is_datetime_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 %t22 = alloca i32 %t47 = alloca i32 %t48 = alloca i32 %t66 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str7672) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str7673) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str7674) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str7675) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t22 br i1 %t25, label %scend8, label %sc7 sc7: %t27 = load ptr, ptr %t0 %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str7676) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t22 br label %scend8 scend8: %t31 = load i32, ptr %t22 %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t21 br i1 %t32, label %scend10, label %sc9 sc9: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str7677) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t21 br label %scend10 scend10: %t38 = load i32, ptr %t21 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t20 br i1 %t39, label %scend12, label %sc11 sc11: %t41 = load ptr, ptr %t0 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str7678) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t20 br label %scend12 scend12: %t45 = load i32, ptr %t20 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then13, label %ifend15 then13: store i32 1, ptr %retval br label %ret ifend15: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str7679) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t48 br i1 %t51, label %scend17, label %sc16 sc16: %t53 = load ptr, ptr %t0 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str7680) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t48 br label %scend17 scend17: %t57 = load i32, ptr %t48 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t47 br i1 %t58, label %scend19, label %sc18 sc18: %t60 = load ptr, ptr %t0 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str7681) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t47 br label %scend19 scend19: %t64 = load i32, ptr %t47 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then20, label %ifend22 then20: store i32 1, ptr %retval br label %ret ifend22: %t67 = load ptr, ptr %t0 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str7682) %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t66 br i1 %t69, label %scend24, label %sc23 sc23: %t71 = load ptr, ptr %t0 %t72 = call i32 @lp_str_eq(ptr %t71, ptr @.str7683) %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t66 br label %scend24 scend24: %t75 = load i32, ptr %t66 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then25, label %ifend27 then25: store i32 1, ptr %retval br label %ret ifend27: store i32 0, ptr %retval br label %ret ret: %t77 = load i32, ptr %retval ret i32 %t77 } define ptr @fn_dt_concat(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_a, ptr %t0 store ptr %arg_b, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str7684, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str7685) %t5 = load ptr, ptr %t1 %t6 = call ptr @lp_str_concat(ptr %t4, ptr %t5) %t7 = call ptr @lp_str_concat(ptr %t6, ptr @.str7686) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %retval br label %ret ret: %t9 = load ptr, ptr %retval ret ptr %t9 } define i32 @fn_dt_tok_at(ptr %arg_pat, i32 %arg_n, i32 %arg_i, ptr %arg_tok, i32 %arg_tlen) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca ptr %t4 = alloca i32 %t12 = alloca i32 store ptr %arg_pat, ptr %t0 store i32 %arg_n, ptr %t1 store i32 %arg_i, ptr %t2 store ptr %arg_tok, ptr %t3 store i32 %arg_tlen, ptr %t4 %t5 = load i32, ptr %t2 %t6 = load i32, ptr %t4 %t7 = add i32 %t5, %t6 %t8 = load i32, ptr %t1 %t9 = icmp sgt i32 %t7, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: store i32 0, ptr %t12 br label %wcond3 wcond3: %t13 = load i32, ptr %t12 %t14 = load i32, ptr %t4 %t15 = icmp slt i32 %t13, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody4, label %wend5 wbody4: %t18 = load ptr, ptr %t0 %t19 = load i32, ptr %t2 %t20 = load i32, ptr %t12 %t21 = add i32 %t19, %t20 %t22 = getelementptr inbounds i8, ptr %t18, i32 %t21 %t23 = load i8, ptr %t22 %t24 = zext i8 %t23 to i32 %t25 = load ptr, ptr %t3 %t26 = load i32, ptr %t12 %t27 = getelementptr inbounds i8, ptr %t25, i32 %t26 %t28 = load i8, ptr %t27 %t29 = zext i8 %t28 to i32 %t30 = icmp ne i32 %t24, %t29 %t31 = zext i1 %t30 to i32 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then6, label %ifend8 then6: store i32 0, ptr %retval br label %ret ifend8: %t33 = load i32, ptr %t12 %t34 = add i32 %t33, 1 store i32 %t34, ptr %t12 br label %wcond3 wend5: store i32 1, ptr %retval br label %ret ret: %t35 = load i32, ptr %retval ret i32 %t35 } define ptr @fn_emit_datetime_format(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t29 = alloca ptr %t43 = alloca ptr %t47 = alloca i32 %t52 = alloca ptr %t54 = alloca ptr %t56 = alloca ptr %t58 = alloca ptr %t74 = alloca ptr %t78 = alloca ptr %t82 = alloca ptr %t87 = alloca ptr %t92 = alloca ptr %t97 = alloca ptr %t102 = alloca ptr %t107 = alloca ptr %t112 = alloca ptr %t114 = alloca ptr %t116 = alloca ptr %t117 = alloca i32 %t123 = alloca ptr %t124 = alloca i32 %t125 = alloca i32 %t182 = alloca ptr %t201 = alloca ptr %t212 = alloca ptr store ptr %arg_e, ptr %t0 store i32 1, ptr @g_g_uses_datert store i32 1, ptr @g_g_uses_str %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp ult i32 1, %t7 br i1 %t8, label %ixok0, label %ixbad1 ixbad1: %t9 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t9, ptr @.fmt_bounds, ptr @.str7687, i32 1, i32 %t7) call void @exit(i32 1) unreachable ixok0: %t10 = getelementptr inbounds ptr, ptr %t5, i32 1 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 0 %t13 = load i32, ptr %t12 %t14 = icmp ne i32 %t13, 31 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: call void @fn_perr(ptr @.str7688) br label %ifend4 ifend4: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 0, %t23 br i1 %t24, label %ixok5, label %ixbad6 ixbad6: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str7689, i32 0, i32 %t23) call void @exit(i32 1) unreachable ixok5: %t26 = getelementptr inbounds ptr, ptr %t21, i32 0 %t27 = load ptr, ptr %t26 %t28 = call ptr @fn_emit_expr(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ult i32 1, %t36 br i1 %t37, label %ixok7, label %ixbad8 ixbad8: %t38 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t38, ptr @.fmt_bounds, ptr @.str7690, i32 1, i32 %t36) call void @exit(i32 1) unreachable ixok7: %t39 = getelementptr inbounds ptr, ptr %t34, i32 1 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = call i64 @strlen(ptr %t44) %t46 = trunc i64 %t45 to i32 store i32 %t46, ptr %t47 %t48 = load ptr, ptr %t29 %t49 = getelementptr inbounds %Cmp_Val, ptr %t48, i32 0, i32 0 %t50 = load ptr, ptr %t49 %t51 = call ptr @fn_dt_epochday(ptr %t50) store ptr %t51, ptr %t52 %t53 = call ptr @fn_emit_alloca(ptr @.str7691) store ptr %t53, ptr %t54 %t55 = call ptr @fn_emit_alloca(ptr @.str7692) store ptr %t55, ptr %t56 %t57 = call ptr @fn_emit_alloca(ptr @.str7693) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t52 %t60 = call ptr @lp_str_concat(ptr @.str7694, ptr %t59) %t61 = call ptr @lp_str_concat(ptr %t60, ptr @.str7695) %t62 = load ptr, ptr %t54 %t63 = call ptr @lp_str_concat(ptr %t61, ptr %t62) %t64 = call ptr @lp_str_concat(ptr %t63, ptr @.str7696) %t65 = load ptr, ptr %t56 %t66 = call ptr @lp_str_concat(ptr %t64, ptr %t65) %t67 = call ptr @lp_str_concat(ptr %t66, ptr @.str7697) %t68 = load ptr, ptr %t58 %t69 = call ptr @lp_str_concat(ptr %t67, ptr %t68) %t70 = call ptr @lp_str_concat(ptr %t69, ptr @.str7698) call void @fn_emit(ptr %t70) %t71 = load ptr, ptr %t54 %t72 = call ptr @lp_str_concat(ptr @.str7699, ptr %t71) %t73 = call ptr @fn_emit_bind(ptr %t72) store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t56 %t76 = call ptr @lp_str_concat(ptr @.str7700, ptr %t75) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t58 %t80 = call ptr @lp_str_concat(ptr @.str7701, ptr %t79) %t81 = call ptr @fn_emit_bind(ptr %t80) store ptr %t81, ptr %t82 %t83 = load ptr, ptr %t29 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_dt_secofday(ptr %t85) store ptr %t86, ptr %t87 %t88 = load ptr, ptr %t87 %t89 = call ptr @lp_str_concat(ptr @.str7702, ptr %t88) %t90 = call ptr @lp_str_concat(ptr %t89, ptr @.str7703) %t91 = call ptr @fn_emit_bind(ptr %t90) store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t87 %t94 = call ptr @lp_str_concat(ptr @.str7704, ptr %t93) %t95 = call ptr @lp_str_concat(ptr %t94, ptr @.str7705) %t96 = call ptr @fn_emit_bind(ptr %t95) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t97 %t99 = call ptr @lp_str_concat(ptr @.str7706, ptr %t98) %t100 = call ptr @lp_str_concat(ptr %t99, ptr @.str7707) %t101 = call ptr @fn_emit_bind(ptr %t100) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t87 %t104 = call ptr @lp_str_concat(ptr @.str7708, ptr %t103) %t105 = call ptr @lp_str_concat(ptr %t104, ptr @.str7709) %t106 = call ptr @fn_emit_bind(ptr %t105) store ptr %t106, ptr %t107 %t108 = load ptr, ptr %t74 %t109 = call ptr @lp_str_concat(ptr @.str7710, ptr %t108) %t110 = call ptr @lp_str_concat(ptr %t109, ptr @.str7711) %t111 = call ptr @fn_emit_bind(ptr %t110) store ptr %t111, ptr %t112 %t113 = call ptr @fn_emit_str_const(ptr @.str7712) store ptr %t113, ptr %t114 %t115 = call ptr @fn_buf_new() store ptr %t115, ptr %t116 store i32 0, ptr %t117 br label %wcond9 wcond9: %t118 = load i32, ptr %t117 %t119 = load i32, ptr %t47 %t120 = icmp slt i32 %t118, %t119 %t121 = zext i1 %t120 to i32 %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %wbody10, label %wend11 wbody10: store ptr null, ptr %t123 store i32 0, ptr %t124 store i32 0, ptr %t125 %t126 = load ptr, ptr %t43 %t127 = load i32, ptr %t47 %t128 = load i32, ptr %t117 %t129 = call i32 @fn_dt_tok_at(ptr %t126, i32 %t127, i32 %t128, ptr @.str7713, i32 4) %t130 = icmp ne i32 %t129, 0 br i1 %t130, label %then12, label %else13 then12: %t131 = load ptr, ptr %t74 store ptr %t131, ptr %t123 store i32 4, ptr %t124 store i32 4, ptr %t125 br label %ifend14 else13: %t132 = load ptr, ptr %t43 %t133 = load i32, ptr %t47 %t134 = load i32, ptr %t117 %t135 = call i32 @fn_dt_tok_at(ptr %t132, i32 %t133, i32 %t134, ptr @.str7714, i32 2) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then15, label %else16 then15: %t137 = load ptr, ptr %t112 store ptr %t137, ptr %t123 store i32 2, ptr %t124 store i32 2, ptr %t125 br label %ifend17 else16: %t138 = load ptr, ptr %t43 %t139 = load i32, ptr %t47 %t140 = load i32, ptr %t117 %t141 = call i32 @fn_dt_tok_at(ptr %t138, i32 %t139, i32 %t140, ptr @.str7715, i32 2) %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then18, label %else19 then18: %t143 = load ptr, ptr %t78 store ptr %t143, ptr %t123 store i32 2, ptr %t124 store i32 2, ptr %t125 br label %ifend20 else19: %t144 = load ptr, ptr %t43 %t145 = load i32, ptr %t47 %t146 = load i32, ptr %t117 %t147 = call i32 @fn_dt_tok_at(ptr %t144, i32 %t145, i32 %t146, ptr @.str7716, i32 2) %t148 = icmp ne i32 %t147, 0 br i1 %t148, label %then21, label %else22 then21: %t149 = load ptr, ptr %t82 store ptr %t149, ptr %t123 store i32 2, ptr %t124 store i32 2, ptr %t125 br label %ifend23 else22: %t150 = load ptr, ptr %t43 %t151 = load i32, ptr %t47 %t152 = load i32, ptr %t117 %t153 = call i32 @fn_dt_tok_at(ptr %t150, i32 %t151, i32 %t152, ptr @.str7717, i32 2) %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then24, label %else25 then24: %t155 = load ptr, ptr %t92 store ptr %t155, ptr %t123 store i32 2, ptr %t124 store i32 2, ptr %t125 br label %ifend26 else25: %t156 = load ptr, ptr %t43 %t157 = load i32, ptr %t47 %t158 = load i32, ptr %t117 %t159 = call i32 @fn_dt_tok_at(ptr %t156, i32 %t157, i32 %t158, ptr @.str7718, i32 2) %t160 = icmp ne i32 %t159, 0 br i1 %t160, label %then27, label %else28 then27: %t161 = load ptr, ptr %t102 store ptr %t161, ptr %t123 store i32 2, ptr %t124 store i32 2, ptr %t125 br label %ifend29 else28: %t162 = load ptr, ptr %t43 %t163 = load i32, ptr %t47 %t164 = load i32, ptr %t117 %t165 = call i32 @fn_dt_tok_at(ptr %t162, i32 %t163, i32 %t164, ptr @.str7719, i32 2) %t166 = icmp ne i32 %t165, 0 br i1 %t166, label %then30, label %ifend32 then30: %t167 = load ptr, ptr %t107 store ptr %t167, ptr %t123 store i32 2, ptr %t124 store i32 2, ptr %t125 br label %ifend32 ifend32: br label %ifend29 ifend29: br label %ifend26 ifend26: br label %ifend23 ifend23: br label %ifend20 ifend20: br label %ifend17 ifend17: br label %ifend14 ifend14: %t168 = load ptr, ptr %t123 %t169 = icmp eq ptr %t168, null %t170 = zext i1 %t169 to i32 %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then33, label %else34 then33: %t172 = load ptr, ptr %t116 %t173 = load ptr, ptr %t43 %t174 = load i32, ptr %t117 %t175 = getelementptr inbounds i8, ptr %t173, i32 %t174 %t176 = load i8, ptr %t175 %t177 = zext i8 %t176 to i32 call void @fn_buf_putc(ptr %t172, i32 %t177) %t178 = load i32, ptr %t117 %t179 = add i32 %t178, 1 store i32 %t179, ptr %t117 br label %ifend35 else34: %t180 = load ptr, ptr %t116 %t181 = call ptr @fn_buf_str(ptr %t180) store ptr %t181, ptr %t182 %t183 = load ptr, ptr %t182 %t184 = call i64 @strlen(ptr %t183) %t185 = trunc i64 %t184 to i32 %t186 = icmp sgt i32 %t185, 0 %t187 = zext i1 %t186 to i32 %t188 = icmp ne i32 %t187, 0 br i1 %t188, label %then36, label %ifend38 then36: %t189 = load ptr, ptr %t114 %t190 = load ptr, ptr %t182 %t191 = call ptr @fn_emit_str_const(ptr %t190) %t192 = call ptr @fn_dt_concat(ptr %t189, ptr %t191) store ptr %t192, ptr %t114 br label %ifend38 ifend38: %t193 = load ptr, ptr %t123 %t194 = call ptr @lp_str_concat(ptr @.str7720, ptr %t193) %t195 = call ptr @lp_str_concat(ptr %t194, ptr @.str7721) %t196 = load i32, ptr %t124 %t197 = call ptr @lp_int_str(i32 %t196) %t198 = call ptr @lp_str_concat(ptr %t195, ptr %t197) %t199 = call ptr @lp_str_concat(ptr %t198, ptr @.str7722) %t200 = call ptr @fn_emit_bind(ptr %t199) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t114 %t203 = load ptr, ptr %t201 %t204 = call ptr @fn_dt_concat(ptr %t202, ptr %t203) store ptr %t204, ptr %t114 %t205 = load ptr, ptr %t116 %t206 = getelementptr inbounds %Cmp_Buf, ptr %t205, i32 0, i32 1 store i32 0, ptr %t206 %t207 = load i32, ptr %t125 %t208 = load i32, ptr %t117 %t209 = add i32 %t208, %t207 store i32 %t209, ptr %t117 br label %ifend35 ifend35: br label %wcond9 wend11: %t210 = load ptr, ptr %t116 %t211 = call ptr @fn_buf_str(ptr %t210) store ptr %t211, ptr %t212 %t213 = load ptr, ptr %t212 %t214 = call i64 @strlen(ptr %t213) %t215 = trunc i64 %t214 to i32 %t216 = icmp sgt i32 %t215, 0 %t217 = zext i1 %t216 to i32 %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %then39, label %ifend41 then39: %t219 = load ptr, ptr %t114 %t220 = load ptr, ptr %t212 %t221 = call ptr @fn_emit_str_const(ptr %t220) %t222 = call ptr @fn_dt_concat(ptr %t219, ptr %t221) store ptr %t222, ptr %t114 br label %ifend41 ifend41: %t223 = load ptr, ptr %t114 %t224 = call ptr @fn_val(ptr %t223, ptr @.str7723) store ptr %t224, ptr %retval br label %ret ret: %t225 = load ptr, ptr %retval ret ptr %t225 } define ptr @fn_emit_datetime_parse(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t29 = alloca ptr %t43 = alloca ptr %t47 = alloca i32 %t49 = alloca ptr %t52 = alloca ptr %t55 = alloca ptr %t58 = alloca ptr %t61 = alloca ptr %t64 = alloca ptr %t67 = alloca ptr %t69 = alloca i32 %t70 = alloca i32 %t76 = alloca ptr %t77 = alloca i32 %t78 = alloca i32 %t140 = alloca ptr %t152 = alloca ptr %t156 = alloca ptr %t160 = alloca ptr %t164 = alloca ptr %t168 = alloca ptr %t172 = alloca ptr %t183 = alloca ptr %t188 = alloca ptr %t193 = alloca ptr %t198 = alloca ptr %t205 = alloca ptr %t212 = alloca ptr %t219 = alloca ptr %t223 = alloca ptr %t228 = alloca ptr store ptr %arg_e, ptr %t0 store i32 1, ptr @g_g_uses_datert %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp ult i32 1, %t7 br i1 %t8, label %ixok0, label %ixbad1 ixbad1: %t9 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t9, ptr @.fmt_bounds, ptr @.str7724, i32 1, i32 %t7) call void @exit(i32 1) unreachable ixok0: %t10 = getelementptr inbounds ptr, ptr %t5, i32 1 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 0 %t13 = load i32, ptr %t12 %t14 = icmp ne i32 %t13, 31 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: call void @fn_perr(ptr @.str7725) br label %ifend4 ifend4: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 0, %t23 br i1 %t24, label %ixok5, label %ixbad6 ixbad6: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str7726, i32 0, i32 %t23) call void @exit(i32 1) unreachable ixok5: %t26 = getelementptr inbounds ptr, ptr %t21, i32 0 %t27 = load ptr, ptr %t26 %t28 = call ptr @fn_emit_expr(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ult i32 1, %t36 br i1 %t37, label %ixok7, label %ixbad8 ixbad8: %t38 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t38, ptr @.fmt_bounds, ptr @.str7727, i32 1, i32 %t36) call void @exit(i32 1) unreachable ixok7: %t39 = getelementptr inbounds ptr, ptr %t34, i32 1 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = call i64 @strlen(ptr %t44) %t46 = trunc i64 %t45 to i32 store i32 %t46, ptr %t47 %t48 = call ptr @fn_emit_alloca(ptr @.str7728) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 call void @fn_store_at(ptr @.str7729, ptr @.str7730, ptr %t50) %t51 = call ptr @fn_emit_alloca(ptr @.str7731) store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t52 call void @fn_store_at(ptr @.str7732, ptr @.str7733, ptr %t53) %t54 = call ptr @fn_emit_alloca(ptr @.str7734) store ptr %t54, ptr %t55 %t56 = load ptr, ptr %t55 call void @fn_store_at(ptr @.str7735, ptr @.str7736, ptr %t56) %t57 = call ptr @fn_emit_alloca(ptr @.str7737) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 call void @fn_store_at(ptr @.str7738, ptr @.str7739, ptr %t59) %t60 = call ptr @fn_emit_alloca(ptr @.str7740) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t61 call void @fn_store_at(ptr @.str7741, ptr @.str7742, ptr %t62) %t63 = call ptr @fn_emit_alloca(ptr @.str7743) store ptr %t63, ptr %t64 %t65 = load ptr, ptr %t64 call void @fn_store_at(ptr @.str7744, ptr @.str7745, ptr %t65) %t66 = call ptr @fn_emit_alloca(ptr @.str7746) store ptr %t66, ptr %t67 %t68 = load ptr, ptr %t67 call void @fn_store_at(ptr @.str7747, ptr @.str7748, ptr %t68) store i32 0, ptr %t69 store i32 0, ptr %t70 br label %wcond9 wcond9: %t71 = load i32, ptr %t70 %t72 = load i32, ptr %t47 %t73 = icmp slt i32 %t71, %t72 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %wbody10, label %wend11 wbody10: store ptr null, ptr %t76 store i32 0, ptr %t77 store i32 0, ptr %t78 %t79 = load ptr, ptr %t43 %t80 = load i32, ptr %t47 %t81 = load i32, ptr %t70 %t82 = call i32 @fn_dt_tok_at(ptr %t79, i32 %t80, i32 %t81, ptr @.str7749, i32 4) %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then12, label %else13 then12: %t84 = load ptr, ptr %t52 store ptr %t84, ptr %t76 store i32 4, ptr %t77 store i32 4, ptr %t78 br label %ifend14 else13: %t85 = load ptr, ptr %t43 %t86 = load i32, ptr %t47 %t87 = load i32, ptr %t70 %t88 = call i32 @fn_dt_tok_at(ptr %t85, i32 %t86, i32 %t87, ptr @.str7750, i32 2) %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then15, label %else16 then15: %t90 = load ptr, ptr %t55 store ptr %t90, ptr %t76 store i32 2, ptr %t77 store i32 2, ptr %t78 br label %ifend17 else16: %t91 = load ptr, ptr %t43 %t92 = load i32, ptr %t47 %t93 = load i32, ptr %t70 %t94 = call i32 @fn_dt_tok_at(ptr %t91, i32 %t92, i32 %t93, ptr @.str7751, i32 2) %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then18, label %else19 then18: %t96 = load ptr, ptr %t58 store ptr %t96, ptr %t76 store i32 2, ptr %t77 store i32 2, ptr %t78 br label %ifend20 else19: %t97 = load ptr, ptr %t43 %t98 = load i32, ptr %t47 %t99 = load i32, ptr %t70 %t100 = call i32 @fn_dt_tok_at(ptr %t97, i32 %t98, i32 %t99, ptr @.str7752, i32 2) %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then21, label %else22 then21: %t102 = load ptr, ptr %t61 store ptr %t102, ptr %t76 store i32 2, ptr %t77 store i32 2, ptr %t78 br label %ifend23 else22: %t103 = load ptr, ptr %t43 %t104 = load i32, ptr %t47 %t105 = load i32, ptr %t70 %t106 = call i32 @fn_dt_tok_at(ptr %t103, i32 %t104, i32 %t105, ptr @.str7753, i32 2) %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then24, label %else25 then24: %t108 = load ptr, ptr %t64 store ptr %t108, ptr %t76 store i32 2, ptr %t77 store i32 2, ptr %t78 br label %ifend26 else25: %t109 = load ptr, ptr %t43 %t110 = load i32, ptr %t47 %t111 = load i32, ptr %t70 %t112 = call i32 @fn_dt_tok_at(ptr %t109, i32 %t110, i32 %t111, ptr @.str7754, i32 2) %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then27, label %ifend29 then27: %t114 = load ptr, ptr %t67 store ptr %t114, ptr %t76 store i32 2, ptr %t77 store i32 2, ptr %t78 br label %ifend29 ifend29: br label %ifend26 ifend26: br label %ifend23 ifend23: br label %ifend20 ifend20: br label %ifend17 ifend17: br label %ifend14 ifend14: %t115 = load ptr, ptr %t76 %t116 = icmp eq ptr %t115, null %t117 = zext i1 %t116 to i32 %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then30, label %else31 then30: %t119 = load i32, ptr %t69 %t120 = add i32 %t119, 1 store i32 %t120, ptr %t69 %t121 = load i32, ptr %t70 %t122 = add i32 %t121, 1 store i32 %t122, ptr %t70 br label %ifend32 else31: %t123 = load ptr, ptr %t29 %t124 = getelementptr inbounds %Cmp_Val, ptr %t123, i32 0, i32 0 %t125 = load ptr, ptr %t124 %t126 = call ptr @lp_str_concat(ptr @.str7755, ptr %t125) %t127 = call ptr @lp_str_concat(ptr %t126, ptr @.str7756) %t128 = load i32, ptr %t69 %t129 = call ptr @fn_itoa(i32 %t128) %t130 = call ptr @lp_str_concat(ptr %t127, ptr %t129) %t131 = call ptr @lp_str_concat(ptr %t130, ptr @.str7757) %t132 = load i32, ptr %t77 %t133 = call ptr @lp_int_str(i32 %t132) %t134 = call ptr @lp_str_concat(ptr %t131, ptr %t133) %t135 = call ptr @lp_str_concat(ptr %t134, ptr @.str7758) %t136 = load ptr, ptr %t49 %t137 = call ptr @lp_str_concat(ptr %t135, ptr %t136) %t138 = call ptr @lp_str_concat(ptr %t137, ptr @.str7759) %t139 = call ptr @fn_emit_bind(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t140 %t142 = load ptr, ptr %t76 call void @fn_store_at(ptr @.str7760, ptr %t141, ptr %t142) %t143 = load i32, ptr %t77 %t144 = load i32, ptr %t69 %t145 = add i32 %t144, %t143 store i32 %t145, ptr %t69 %t146 = load i32, ptr %t78 %t147 = load i32, ptr %t70 %t148 = add i32 %t147, %t146 store i32 %t148, ptr %t70 br label %ifend32 ifend32: br label %wcond9 wend11: %t149 = load ptr, ptr %t52 %t150 = call ptr @lp_str_concat(ptr @.str7761, ptr %t149) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t55 %t154 = call ptr @lp_str_concat(ptr @.str7762, ptr %t153) %t155 = call ptr @fn_emit_bind(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t58 %t158 = call ptr @lp_str_concat(ptr @.str7763, ptr %t157) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t61 %t162 = call ptr @lp_str_concat(ptr @.str7764, ptr %t161) %t163 = call ptr @fn_emit_bind(ptr %t162) store ptr %t163, ptr %t164 %t165 = load ptr, ptr %t64 %t166 = call ptr @lp_str_concat(ptr @.str7765, ptr %t165) %t167 = call ptr @fn_emit_bind(ptr %t166) store ptr %t167, ptr %t168 %t169 = load ptr, ptr %t67 %t170 = call ptr @lp_str_concat(ptr @.str7766, ptr %t169) %t171 = call ptr @fn_emit_bind(ptr %t170) store ptr %t171, ptr %t172 %t173 = load ptr, ptr %t152 %t174 = call ptr @lp_str_concat(ptr @.str7767, ptr %t173) %t175 = call ptr @lp_str_concat(ptr %t174, ptr @.str7768) %t176 = load ptr, ptr %t156 %t177 = call ptr @lp_str_concat(ptr %t175, ptr %t176) %t178 = call ptr @lp_str_concat(ptr %t177, ptr @.str7769) %t179 = load ptr, ptr %t160 %t180 = call ptr @lp_str_concat(ptr %t178, ptr %t179) %t181 = call ptr @lp_str_concat(ptr %t180, ptr @.str7770) %t182 = call ptr @fn_emit_bind(ptr %t181) store ptr %t182, ptr %t183 %t184 = load ptr, ptr %t183 %t185 = call ptr @lp_str_concat(ptr @.str7771, ptr %t184) %t186 = call ptr @lp_str_concat(ptr %t185, ptr @.str7772) %t187 = call ptr @fn_emit_bind(ptr %t186) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t164 %t190 = call ptr @lp_str_concat(ptr @.str7773, ptr %t189) %t191 = call ptr @lp_str_concat(ptr %t190, ptr @.str7774) %t192 = call ptr @fn_emit_bind(ptr %t191) store ptr %t192, ptr %t193 %t194 = load ptr, ptr %t168 %t195 = call ptr @lp_str_concat(ptr @.str7775, ptr %t194) %t196 = call ptr @lp_str_concat(ptr %t195, ptr @.str7776) %t197 = call ptr @fn_emit_bind(ptr %t196) store ptr %t197, ptr %t198 %t199 = load ptr, ptr %t188 %t200 = call ptr @lp_str_concat(ptr @.str7777, ptr %t199) %t201 = call ptr @lp_str_concat(ptr %t200, ptr @.str7778) %t202 = load ptr, ptr %t193 %t203 = call ptr @lp_str_concat(ptr %t201, ptr %t202) %t204 = call ptr @fn_emit_bind(ptr %t203) store ptr %t204, ptr %t205 %t206 = load ptr, ptr %t205 %t207 = call ptr @lp_str_concat(ptr @.str7779, ptr %t206) %t208 = call ptr @lp_str_concat(ptr %t207, ptr @.str7780) %t209 = load ptr, ptr %t198 %t210 = call ptr @lp_str_concat(ptr %t208, ptr %t209) %t211 = call ptr @fn_emit_bind(ptr %t210) store ptr %t211, ptr %t212 %t213 = load ptr, ptr %t212 %t214 = call ptr @lp_str_concat(ptr @.str7781, ptr %t213) %t215 = call ptr @lp_str_concat(ptr %t214, ptr @.str7782) %t216 = load ptr, ptr %t172 %t217 = call ptr @lp_str_concat(ptr %t215, ptr %t216) %t218 = call ptr @fn_emit_bind(ptr %t217) store ptr %t218, ptr %t219 %t220 = load ptr, ptr %t49 %t221 = call ptr @lp_str_concat(ptr @.str7783, ptr %t220) %t222 = call ptr @fn_emit_bind(ptr %t221) store ptr %t222, ptr %t223 %t224 = load ptr, ptr %t223 %t225 = call ptr @lp_str_concat(ptr @.str7784, ptr %t224) %t226 = call ptr @lp_str_concat(ptr %t225, ptr @.str7785) %t227 = call ptr @fn_emit_bind(ptr %t226) store ptr %t227, ptr %t228 %t229 = load ptr, ptr %t228 %t230 = call ptr @lp_str_concat(ptr @.str7786, ptr %t229) %t231 = call ptr @lp_str_concat(ptr %t230, ptr @.str7787) %t232 = load ptr, ptr %t219 %t233 = call ptr @lp_str_concat(ptr %t231, ptr %t232) %t234 = call ptr @fn_emit_bind(ptr %t233) %t235 = call ptr @fn_val(ptr %t234, ptr @.str7788) store ptr %t235, ptr %retval br label %ret ret: %t236 = load ptr, ptr %retval ret ptr %t236 } define ptr @fn_emit_datetime_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t27 = alloca ptr %t40 = alloca ptr %t53 = alloca ptr %t66 = alloca ptr %t79 = alloca ptr %t92 = alloca ptr %t109 = alloca ptr %t114 = alloca ptr %t121 = alloca ptr %t128 = alloca ptr %t135 = alloca ptr %t142 = alloca ptr %t167 = alloca ptr %t188 = alloca ptr %t201 = alloca ptr %t228 = alloca ptr %t250 = alloca ptr %t272 = alloca ptr %t294 = alloca ptr %t299 = alloca ptr %t304 = alloca ptr %t309 = alloca ptr %t314 = alloca ptr %t335 = alloca ptr %t340 = alloca ptr %t361 = alloca ptr %t366 = alloca ptr %t371 = alloca ptr %t389 = alloca ptr %t394 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7789) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = call ptr @fn_emit_datetime_format(ptr %t5) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str7790) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: %t10 = load ptr, ptr %t1 %t11 = call ptr @fn_emit_datetime_parse(ptr %t10) store ptr %t11, ptr %retval br label %ret ifend5: %t12 = load ptr, ptr %t0 %t13 = call i32 @lp_str_eq(ptr %t12, ptr @.str7791) %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then6, label %ifend8 then6: store i32 1, ptr @g_g_uses_datert %t15 = load ptr, ptr %t1 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp ult i32 0, %t21 br i1 %t22, label %ixok9, label %ixbad10 ixbad10: %t23 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t23, ptr @.fmt_bounds, ptr @.str7792, i32 0, i32 %t21) call void @exit(i32 1) unreachable ixok9: %t24 = getelementptr inbounds ptr, ptr %t19, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @fn_emit_expr(ptr %t25) store ptr %t26, ptr %t27 %t28 = load ptr, ptr %t1 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 1, %t34 br i1 %t35, label %ixok11, label %ixbad12 ixbad12: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str7793, i32 1, i32 %t34) call void @exit(i32 1) unreachable ixok11: %t37 = getelementptr inbounds ptr, ptr %t32, i32 1 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_emit_expr(ptr %t38) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t1 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 7 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 2, %t47 br i1 %t48, label %ixok13, label %ixbad14 ixbad14: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str7794, i32 2, i32 %t47) call void @exit(i32 1) unreachable ixok13: %t50 = getelementptr inbounds ptr, ptr %t45, i32 2 %t51 = load ptr, ptr %t50 %t52 = call ptr @fn_emit_expr(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t1 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 7 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t60 = load i32, ptr %t59 %t61 = icmp ult i32 3, %t60 br i1 %t61, label %ixok15, label %ixbad16 ixbad16: %t62 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t62, ptr @.fmt_bounds, ptr @.str7795, i32 3, i32 %t60) call void @exit(i32 1) unreachable ixok15: %t63 = getelementptr inbounds ptr, ptr %t58, i32 3 %t64 = load ptr, ptr %t63 %t65 = call ptr @fn_emit_expr(ptr %t64) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t1 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 7 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t73 = load i32, ptr %t72 %t74 = icmp ult i32 4, %t73 br i1 %t74, label %ixok17, label %ixbad18 ixbad18: %t75 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t75, ptr @.fmt_bounds, ptr @.str7796, i32 4, i32 %t73) call void @exit(i32 1) unreachable ixok17: %t76 = getelementptr inbounds ptr, ptr %t71, i32 4 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_emit_expr(ptr %t77) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t1 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 7 %t82 = load ptr, ptr %t81 %t83 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 %t86 = load i32, ptr %t85 %t87 = icmp ult i32 5, %t86 br i1 %t87, label %ixok19, label %ixbad20 ixbad20: %t88 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t88, ptr @.fmt_bounds, ptr @.str7797, i32 5, i32 %t86) call void @exit(i32 1) unreachable ixok19: %t89 = getelementptr inbounds ptr, ptr %t84, i32 5 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_emit_expr(ptr %t90) store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t27 %t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 0 %t95 = load ptr, ptr %t94 %t96 = call ptr @lp_str_concat(ptr @.str7798, ptr %t95) %t97 = call ptr @lp_str_concat(ptr %t96, ptr @.str7799) %t98 = load ptr, ptr %t40 %t99 = getelementptr inbounds %Cmp_Val, ptr %t98, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = call ptr @lp_str_concat(ptr %t97, ptr %t100) %t102 = call ptr @lp_str_concat(ptr %t101, ptr @.str7800) %t103 = load ptr, ptr %t53 %t104 = getelementptr inbounds %Cmp_Val, ptr %t103, i32 0, i32 0 %t105 = load ptr, ptr %t104 %t106 = call ptr @lp_str_concat(ptr %t102, ptr %t105) %t107 = call ptr @lp_str_concat(ptr %t106, ptr @.str7801) %t108 = call ptr @fn_emit_bind(ptr %t107) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t109 %t111 = call ptr @lp_str_concat(ptr @.str7802, ptr %t110) %t112 = call ptr @lp_str_concat(ptr %t111, ptr @.str7803) %t113 = call ptr @fn_emit_bind(ptr %t112) store ptr %t113, ptr %t114 %t115 = load ptr, ptr %t66 %t116 = getelementptr inbounds %Cmp_Val, ptr %t115, i32 0, i32 0 %t117 = load ptr, ptr %t116 %t118 = call ptr @lp_str_concat(ptr @.str7804, ptr %t117) %t119 = call ptr @lp_str_concat(ptr %t118, ptr @.str7805) %t120 = call ptr @fn_emit_bind(ptr %t119) store ptr %t120, ptr %t121 %t122 = load ptr, ptr %t79 %t123 = getelementptr inbounds %Cmp_Val, ptr %t122, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = call ptr @lp_str_concat(ptr @.str7806, ptr %t124) %t126 = call ptr @lp_str_concat(ptr %t125, ptr @.str7807) %t127 = call ptr @fn_emit_bind(ptr %t126) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t114 %t130 = call ptr @lp_str_concat(ptr @.str7808, ptr %t129) %t131 = call ptr @lp_str_concat(ptr %t130, ptr @.str7809) %t132 = load ptr, ptr %t121 %t133 = call ptr @lp_str_concat(ptr %t131, ptr %t132) %t134 = call ptr @fn_emit_bind(ptr %t133) store ptr %t134, ptr %t135 %t136 = load ptr, ptr %t135 %t137 = call ptr @lp_str_concat(ptr @.str7810, ptr %t136) %t138 = call ptr @lp_str_concat(ptr %t137, ptr @.str7811) %t139 = load ptr, ptr %t128 %t140 = call ptr @lp_str_concat(ptr %t138, ptr %t139) %t141 = call ptr @fn_emit_bind(ptr %t140) store ptr %t141, ptr %t142 %t143 = load ptr, ptr %t142 %t144 = call ptr @lp_str_concat(ptr @.str7812, ptr %t143) %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str7813) %t146 = load ptr, ptr %t92 %t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0 %t148 = load ptr, ptr %t147 %t149 = call ptr @lp_str_concat(ptr %t145, ptr %t148) %t150 = call ptr @fn_emit_bind(ptr %t149) %t151 = call ptr @fn_val(ptr %t150, ptr @.str7814) store ptr %t151, ptr %retval br label %ret ifend8: %t152 = load ptr, ptr %t0 %t153 = call i32 @lp_str_eq(ptr %t152, ptr @.str7815) %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then21, label %ifend23 then21: %t155 = load ptr, ptr %t1 %t156 = getelementptr inbounds %Cmp_Node, ptr %t155, i32 0, i32 7 %t157 = load ptr, ptr %t156 %t158 = getelementptr inbounds %LSlice, ptr %t157, i32 0, i32 0 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %LSlice, ptr %t157, i32 0, i32 1 %t161 = load i32, ptr %t160 %t162 = icmp ult i32 0, %t161 br i1 %t162, label %ixok24, label %ixbad25 ixbad25: %t163 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t163, ptr @.fmt_bounds, ptr @.str7816, i32 0, i32 %t161) call void @exit(i32 1) unreachable ixok24: %t164 = getelementptr inbounds ptr, ptr %t159, i32 0 %t165 = load ptr, ptr %t164 %t166 = call ptr @fn_emit_expr(ptr %t165) store ptr %t166, ptr %t167 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds %Cmp_Val, ptr %t168, i32 0, i32 0 %t170 = load ptr, ptr %t169 %t171 = call ptr @fn_dt_epochday(ptr %t170) %t172 = call ptr @fn_val(ptr %t171, ptr @.str7817) store ptr %t172, ptr %retval br label %ret ifend23: %t173 = load ptr, ptr %t0 %t174 = call i32 @lp_str_eq(ptr %t173, ptr @.str7818) %t175 = icmp ne i32 %t174, 0 br i1 %t175, label %then26, label %ifend28 then26: %t176 = load ptr, ptr %t1 %t177 = getelementptr inbounds %Cmp_Node, ptr %t176, i32 0, i32 7 %t178 = load ptr, ptr %t177 %t179 = getelementptr inbounds %LSlice, ptr %t178, i32 0, i32 0 %t180 = load ptr, ptr %t179 %t181 = getelementptr inbounds %LSlice, ptr %t178, i32 0, i32 1 %t182 = load i32, ptr %t181 %t183 = icmp ult i32 0, %t182 br i1 %t183, label %ixok29, label %ixbad30 ixbad30: %t184 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t184, ptr @.fmt_bounds, ptr @.str7819, i32 0, i32 %t182) call void @exit(i32 1) unreachable ixok29: %t185 = getelementptr inbounds ptr, ptr %t180, i32 0 %t186 = load ptr, ptr %t185 %t187 = call ptr @fn_emit_expr(ptr %t186) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t1 %t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 7 %t191 = load ptr, ptr %t190 %t192 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 0 %t193 = load ptr, ptr %t192 %t194 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 1 %t195 = load i32, ptr %t194 %t196 = icmp ult i32 1, %t195 br i1 %t196, label %ixok31, label %ixbad32 ixbad32: %t197 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t197, ptr @.fmt_bounds, ptr @.str7820, i32 1, i32 %t195) call void @exit(i32 1) unreachable ixok31: %t198 = getelementptr inbounds ptr, ptr %t193, i32 1 %t199 = load ptr, ptr %t198 %t200 = call ptr @fn_emit_expr(ptr %t199) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t188 %t203 = getelementptr inbounds %Cmp_Val, ptr %t202, i32 0, i32 0 %t204 = load ptr, ptr %t203 %t205 = call ptr @lp_str_concat(ptr @.str7821, ptr %t204) %t206 = call ptr @lp_str_concat(ptr %t205, ptr @.str7822) %t207 = load ptr, ptr %t201 %t208 = getelementptr inbounds %Cmp_Val, ptr %t207, i32 0, i32 0 %t209 = load ptr, ptr %t208 %t210 = call ptr @lp_str_concat(ptr %t206, ptr %t209) %t211 = call ptr @fn_emit_bind(ptr %t210) %t212 = call ptr @fn_val(ptr %t211, ptr @.str7823) store ptr %t212, ptr %retval br label %ret ifend28: %t213 = load ptr, ptr %t0 %t214 = call i32 @lp_str_eq(ptr %t213, ptr @.str7824) %t215 = icmp ne i32 %t214, 0 br i1 %t215, label %then33, label %ifend35 then33: %t216 = load ptr, ptr %t1 %t217 = getelementptr inbounds %Cmp_Node, ptr %t216, i32 0, i32 7 %t218 = load ptr, ptr %t217 %t219 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 0 %t220 = load ptr, ptr %t219 %t221 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 1 %t222 = load i32, ptr %t221 %t223 = icmp ult i32 0, %t222 br i1 %t223, label %ixok36, label %ixbad37 ixbad37: %t224 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t224, ptr @.fmt_bounds, ptr @.str7825, i32 0, i32 %t222) call void @exit(i32 1) unreachable ixok36: %t225 = getelementptr inbounds ptr, ptr %t220, i32 0 %t226 = load ptr, ptr %t225 %t227 = call ptr @fn_emit_expr(ptr %t226) store ptr %t227, ptr %t228 %t229 = load ptr, ptr %t228 %t230 = getelementptr inbounds %Cmp_Val, ptr %t229, i32 0, i32 0 %t231 = load ptr, ptr %t230 %t232 = call ptr @fn_dt_epochday(ptr %t231) %t233 = call ptr @fn_date_component(ptr %t232, i32 0) %t234 = call ptr @fn_val(ptr %t233, ptr @.str7826) store ptr %t234, ptr %retval br label %ret ifend35: %t235 = load ptr, ptr %t0 %t236 = call i32 @lp_str_eq(ptr %t235, ptr @.str7827) %t237 = icmp ne i32 %t236, 0 br i1 %t237, label %then38, label %ifend40 then38: %t238 = load ptr, ptr %t1 %t239 = getelementptr inbounds %Cmp_Node, ptr %t238, i32 0, i32 7 %t240 = load ptr, ptr %t239 %t241 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 0 %t242 = load ptr, ptr %t241 %t243 = getelementptr inbounds %LSlice, ptr %t240, i32 0, i32 1 %t244 = load i32, ptr %t243 %t245 = icmp ult i32 0, %t244 br i1 %t245, label %ixok41, label %ixbad42 ixbad42: %t246 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t246, ptr @.fmt_bounds, ptr @.str7828, i32 0, i32 %t244) call void @exit(i32 1) unreachable ixok41: %t247 = getelementptr inbounds ptr, ptr %t242, i32 0 %t248 = load ptr, ptr %t247 %t249 = call ptr @fn_emit_expr(ptr %t248) store ptr %t249, ptr %t250 %t251 = load ptr, ptr %t250 %t252 = getelementptr inbounds %Cmp_Val, ptr %t251, i32 0, i32 0 %t253 = load ptr, ptr %t252 %t254 = call ptr @fn_dt_epochday(ptr %t253) %t255 = call ptr @fn_date_component(ptr %t254, i32 1) %t256 = call ptr @fn_val(ptr %t255, ptr @.str7829) store ptr %t256, ptr %retval br label %ret ifend40: %t257 = load ptr, ptr %t0 %t258 = call i32 @lp_str_eq(ptr %t257, ptr @.str7830) %t259 = icmp ne i32 %t258, 0 br i1 %t259, label %then43, label %ifend45 then43: %t260 = load ptr, ptr %t1 %t261 = getelementptr inbounds %Cmp_Node, ptr %t260, i32 0, i32 7 %t262 = load ptr, ptr %t261 %t263 = getelementptr inbounds %LSlice, ptr %t262, i32 0, i32 0 %t264 = load ptr, ptr %t263 %t265 = getelementptr inbounds %LSlice, ptr %t262, i32 0, i32 1 %t266 = load i32, ptr %t265 %t267 = icmp ult i32 0, %t266 br i1 %t267, label %ixok46, label %ixbad47 ixbad47: %t268 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t268, ptr @.fmt_bounds, ptr @.str7831, i32 0, i32 %t266) call void @exit(i32 1) unreachable ixok46: %t269 = getelementptr inbounds ptr, ptr %t264, i32 0 %t270 = load ptr, ptr %t269 %t271 = call ptr @fn_emit_expr(ptr %t270) store ptr %t271, ptr %t272 %t273 = load ptr, ptr %t272 %t274 = getelementptr inbounds %Cmp_Val, ptr %t273, i32 0, i32 0 %t275 = load ptr, ptr %t274 %t276 = call ptr @fn_dt_epochday(ptr %t275) %t277 = call ptr @fn_date_component(ptr %t276, i32 2) %t278 = call ptr @fn_val(ptr %t277, ptr @.str7832) store ptr %t278, ptr %retval br label %ret ifend45: %t279 = load ptr, ptr %t0 %t280 = call i32 @lp_str_eq(ptr %t279, ptr @.str7833) %t281 = icmp ne i32 %t280, 0 br i1 %t281, label %then48, label %ifend50 then48: %t282 = load ptr, ptr %t1 %t283 = getelementptr inbounds %Cmp_Node, ptr %t282, i32 0, i32 7 %t284 = load ptr, ptr %t283 %t285 = getelementptr inbounds %LSlice, ptr %t284, i32 0, i32 0 %t286 = load ptr, ptr %t285 %t287 = getelementptr inbounds %LSlice, ptr %t284, i32 0, i32 1 %t288 = load i32, ptr %t287 %t289 = icmp ult i32 0, %t288 br i1 %t289, label %ixok51, label %ixbad52 ixbad52: %t290 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t290, ptr @.fmt_bounds, ptr @.str7834, i32 0, i32 %t288) call void @exit(i32 1) unreachable ixok51: %t291 = getelementptr inbounds ptr, ptr %t286, i32 0 %t292 = load ptr, ptr %t291 %t293 = call ptr @fn_emit_expr(ptr %t292) store ptr %t293, ptr %t294 %t295 = load ptr, ptr %t294 %t296 = getelementptr inbounds %Cmp_Val, ptr %t295, i32 0, i32 0 %t297 = load ptr, ptr %t296 %t298 = call ptr @fn_dt_epochday(ptr %t297) store ptr %t298, ptr %t299 %t300 = load ptr, ptr %t299 %t301 = call ptr @lp_str_concat(ptr @.str7835, ptr %t300) %t302 = call ptr @lp_str_concat(ptr %t301, ptr @.str7836) %t303 = call ptr @fn_emit_bind(ptr %t302) store ptr %t303, ptr %t304 %t305 = load ptr, ptr %t304 %t306 = call ptr @lp_str_concat(ptr @.str7837, ptr %t305) %t307 = call ptr @lp_str_concat(ptr %t306, ptr @.str7838) %t308 = call ptr @fn_emit_bind(ptr %t307) store ptr %t308, ptr %t309 %t310 = load ptr, ptr %t309 %t311 = call ptr @lp_str_concat(ptr @.str7839, ptr %t310) %t312 = call ptr @lp_str_concat(ptr %t311, ptr @.str7840) %t313 = call ptr @fn_emit_bind(ptr %t312) store ptr %t313, ptr %t314 %t315 = load ptr, ptr %t314 %t316 = call ptr @lp_str_concat(ptr @.str7841, ptr %t315) %t317 = call ptr @lp_str_concat(ptr %t316, ptr @.str7842) %t318 = call ptr @fn_emit_bind(ptr %t317) %t319 = call ptr @fn_val(ptr %t318, ptr @.str7843) store ptr %t319, ptr %retval br label %ret ifend50: %t320 = load ptr, ptr %t0 %t321 = call i32 @lp_str_eq(ptr %t320, ptr @.str7844) %t322 = icmp ne i32 %t321, 0 br i1 %t322, label %then53, label %ifend55 then53: %t323 = load ptr, ptr %t1 %t324 = getelementptr inbounds %Cmp_Node, ptr %t323, i32 0, i32 7 %t325 = load ptr, ptr %t324 %t326 = getelementptr inbounds %LSlice, ptr %t325, i32 0, i32 0 %t327 = load ptr, ptr %t326 %t328 = getelementptr inbounds %LSlice, ptr %t325, i32 0, i32 1 %t329 = load i32, ptr %t328 %t330 = icmp ult i32 0, %t329 br i1 %t330, label %ixok56, label %ixbad57 ixbad57: %t331 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t331, ptr @.fmt_bounds, ptr @.str7845, i32 0, i32 %t329) call void @exit(i32 1) unreachable ixok56: %t332 = getelementptr inbounds ptr, ptr %t327, i32 0 %t333 = load ptr, ptr %t332 %t334 = call ptr @fn_emit_expr(ptr %t333) store ptr %t334, ptr %t335 %t336 = load ptr, ptr %t335 %t337 = getelementptr inbounds %Cmp_Val, ptr %t336, i32 0, i32 0 %t338 = load ptr, ptr %t337 %t339 = call ptr @fn_dt_secofday(ptr %t338) store ptr %t339, ptr %t340 %t341 = load ptr, ptr %t340 %t342 = call ptr @lp_str_concat(ptr @.str7846, ptr %t341) %t343 = call ptr @lp_str_concat(ptr %t342, ptr @.str7847) %t344 = call ptr @fn_emit_bind(ptr %t343) %t345 = call ptr @fn_val(ptr %t344, ptr @.str7848) store ptr %t345, ptr %retval br label %ret ifend55: %t346 = load ptr, ptr %t0 %t347 = call i32 @lp_str_eq(ptr %t346, ptr @.str7849) %t348 = icmp ne i32 %t347, 0 br i1 %t348, label %then58, label %ifend60 then58: %t349 = load ptr, ptr %t1 %t350 = getelementptr inbounds %Cmp_Node, ptr %t349, i32 0, i32 7 %t351 = load ptr, ptr %t350 %t352 = getelementptr inbounds %LSlice, ptr %t351, i32 0, i32 0 %t353 = load ptr, ptr %t352 %t354 = getelementptr inbounds %LSlice, ptr %t351, i32 0, i32 1 %t355 = load i32, ptr %t354 %t356 = icmp ult i32 0, %t355 br i1 %t356, label %ixok61, label %ixbad62 ixbad62: %t357 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t357, ptr @.fmt_bounds, ptr @.str7850, i32 0, i32 %t355) call void @exit(i32 1) unreachable ixok61: %t358 = getelementptr inbounds ptr, ptr %t353, i32 0 %t359 = load ptr, ptr %t358 %t360 = call ptr @fn_emit_expr(ptr %t359) store ptr %t360, ptr %t361 %t362 = load ptr, ptr %t361 %t363 = getelementptr inbounds %Cmp_Val, ptr %t362, i32 0, i32 0 %t364 = load ptr, ptr %t363 %t365 = call ptr @fn_dt_secofday(ptr %t364) store ptr %t365, ptr %t366 %t367 = load ptr, ptr %t366 %t368 = call ptr @lp_str_concat(ptr @.str7851, ptr %t367) %t369 = call ptr @lp_str_concat(ptr %t368, ptr @.str7852) %t370 = call ptr @fn_emit_bind(ptr %t369) store ptr %t370, ptr %t371 %t372 = load ptr, ptr %t371 %t373 = call ptr @lp_str_concat(ptr @.str7853, ptr %t372) %t374 = call ptr @lp_str_concat(ptr %t373, ptr @.str7854) %t375 = call ptr @fn_emit_bind(ptr %t374) %t376 = call ptr @fn_val(ptr %t375, ptr @.str7855) store ptr %t376, ptr %retval br label %ret ifend60: %t377 = load ptr, ptr %t1 %t378 = getelementptr inbounds %Cmp_Node, ptr %t377, i32 0, i32 7 %t379 = load ptr, ptr %t378 %t380 = getelementptr inbounds %LSlice, ptr %t379, i32 0, i32 0 %t381 = load ptr, ptr %t380 %t382 = getelementptr inbounds %LSlice, ptr %t379, i32 0, i32 1 %t383 = load i32, ptr %t382 %t384 = icmp ult i32 0, %t383 br i1 %t384, label %ixok63, label %ixbad64 ixbad64: %t385 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t385, ptr @.fmt_bounds, ptr @.str7856, i32 0, i32 %t383) call void @exit(i32 1) unreachable ixok63: %t386 = getelementptr inbounds ptr, ptr %t381, i32 0 %t387 = load ptr, ptr %t386 %t388 = call ptr @fn_emit_expr(ptr %t387) store ptr %t388, ptr %t389 %t390 = load ptr, ptr %t389 %t391 = getelementptr inbounds %Cmp_Val, ptr %t390, i32 0, i32 0 %t392 = load ptr, ptr %t391 %t393 = call ptr @fn_dt_secofday(ptr %t392) store ptr %t393, ptr %t394 %t395 = load ptr, ptr %t394 %t396 = call ptr @lp_str_concat(ptr @.str7857, ptr %t395) %t397 = call ptr @lp_str_concat(ptr %t396, ptr @.str7858) %t398 = call ptr @fn_emit_bind(ptr %t397) %t399 = call ptr @fn_val(ptr %t398, ptr @.str7859) store ptr %t399, ptr %retval br label %ret ret: %t400 = load ptr, ptr %retval ret ptr %t400 } define void @fn_emit_datetime_prelude() { entry: call void @fn_emith(ptr @.str7860) call void @fn_emith(ptr @.str7861) call void @fn_emith(ptr @.str7862) call void @fn_emith(ptr @.str7863) call void @fn_emith(ptr @.str7864) call void @fn_emith(ptr @.str7865) call void @fn_emith(ptr @.str7866) call void @fn_emith(ptr @.str7867) call void @fn_emith(ptr @.str7868) call void @fn_emith(ptr @.str7869) call void @fn_emith(ptr @.str7870) call void @fn_emith(ptr @.str7871) call void @fn_emith(ptr @.str7872) call void @fn_emith(ptr @.str7873) call void @fn_emith(ptr @.str7874) call void @fn_emith(ptr @.str7875) call void @fn_emith(ptr @.str7876) call void @fn_emith(ptr @.str7877) call void @fn_emith(ptr @.str7878) call void @fn_emith(ptr @.str7879) call void @fn_emith(ptr @.str7880) call void @fn_emith(ptr @.str7881) call void @fn_emith(ptr @.str7882) call void @fn_emith(ptr @.str7883) call void @fn_emith(ptr @.str7884) call void @fn_emith(ptr @.str7885) call void @fn_emith(ptr @.str7886) call void @fn_emith(ptr @.str7887) call void @fn_emith(ptr @.str7888) call void @fn_emith(ptr @.str7889) call void @fn_emith(ptr @.str7890) call void @fn_emith(ptr @.str7891) call void @fn_emith(ptr @.str7892) call void @fn_emith(ptr @.str7893) call void @fn_emith(ptr @.str7894) call void @fn_emith(ptr @.str7895) call void @fn_emith(ptr @.str7896) call void @fn_emith(ptr @.str7897) call void @fn_emith(ptr @.str7898) call void @fn_emith(ptr @.str7899) call void @fn_emith(ptr @.str7900) call void @fn_emith(ptr @.str7901) call void @fn_emith(ptr @.str7902) call void @fn_emith(ptr @.str7903) call void @fn_emith(ptr @.str7904) call void @fn_emith(ptr @.str7905) call void @fn_emith(ptr @.str7906) call void @fn_emith(ptr @.str7907) call void @fn_emith(ptr @.str7908) call void @fn_emith(ptr @.str7909) call void @fn_emith(ptr @.str7910) call void @fn_emith(ptr @.str7911) call void @fn_emith(ptr @.str7912) call void @fn_emith(ptr @.str7913) call void @fn_emith(ptr @.str7914) call void @fn_emith(ptr @.str7915) call void @fn_emith(ptr @.str7916) call void @fn_emith(ptr @.str7917) call void @fn_emith(ptr @.str7918) call void @fn_emith(ptr @.str7919) call void @fn_emith(ptr @.str7920) call void @fn_emith(ptr @.str7921) call void @fn_emith(ptr @.str7922) call void @fn_emith(ptr @.str7923) call void @fn_emith(ptr @.str7924) call void @fn_emith(ptr @.str7925) call void @fn_emith(ptr @.str7926) call void @fn_emith(ptr @.str7927) call void @fn_emith(ptr @.str7928) call void @fn_emith(ptr @.str7929) call void @fn_emith(ptr @.str7930) call void @fn_emith(ptr @.str7931) call void @fn_emith(ptr @.str7932) call void @fn_emith(ptr @.str7933) call void @fn_emith(ptr @.str7934) call void @fn_emith(ptr @.str7935) call void @fn_emith(ptr @.str7936) call void @fn_emith(ptr @.str7937) call void @fn_emith(ptr @.str7938) call void @fn_emith(ptr @.str7939) call void @fn_emith(ptr @.str7940) call void @fn_emith(ptr @.str7941) call void @fn_emith(ptr @.str7942) call void @fn_emith(ptr @.str7943) call void @fn_emith(ptr @.str7944) call void @fn_emith(ptr @.str7945) call void @fn_emith(ptr @.str7946) call void @fn_emith(ptr @.str7947) call void @fn_emith(ptr @.str7948) call void @fn_emith(ptr @.str7949) call void @fn_emith(ptr @.str7950) call void @fn_emith(ptr @.str7951) call void @fn_emith(ptr @.str7952) call void @fn_emith(ptr @.str7953) call void @fn_emith(ptr @.str7954) call void @fn_emith(ptr @.str7955) call void @fn_emith(ptr @.str7956) call void @fn_emith(ptr @.str7957) br label %ret ret: ret void } define i32 @fn_is_clock_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_meth, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str7958) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str7959) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str7960) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7961) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: store i32 0, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define ptr @fn_emit_clock_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t26 = alloca ptr %t45 = alloca ptr %t47 = alloca ptr %t56 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str7962) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_emit_bind(ptr @.str7963) %t6 = call ptr @fn_val(ptr %t5, ptr @.str7964) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str7965) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str7966) %t10 = call ptr @fn_val(ptr @.str7967, ptr @.str7968) store ptr %t10, ptr %retval br label %ret ifend5: %t11 = load ptr, ptr %t0 %t12 = call i32 @lp_str_eq(ptr %t11, ptr @.str7969) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: %t14 = load ptr, ptr %t1 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 7 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 0, %t20 br i1 %t21, label %ixok9, label %ixbad10 ixbad10: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str7970, i32 0, i32 %t20) call void @exit(i32 1) unreachable ixok9: %t23 = getelementptr inbounds ptr, ptr %t18, i32 0 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_emit_expr(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %Cmp_Val, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = call ptr @lp_str_concat(ptr @.str7971, ptr %t29) %t31 = call ptr @lp_str_concat(ptr %t30, ptr @.str7972) call void @fn_emit(ptr %t31) %t32 = call ptr @fn_val(ptr @.str7973, ptr @.str7974) store ptr %t32, ptr %retval br label %ret ifend8: %t33 = load ptr, ptr %t1 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 7 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 0, %t39 br i1 %t40, label %ixok11, label %ixbad12 ixbad12: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str7975, i32 0, i32 %t39) call void @exit(i32 1) unreachable ixok11: %t42 = getelementptr inbounds ptr, ptr %t37, i32 0 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_emit_expr(ptr %t43) store ptr %t44, ptr %t45 %t46 = call ptr @fn_emit_bind(ptr @.str7976) store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t47 %t49 = call ptr @lp_str_concat(ptr @.str7977, ptr %t48) %t50 = call ptr @lp_str_concat(ptr %t49, ptr @.str7978) %t51 = load ptr, ptr %t45 %t52 = getelementptr inbounds %Cmp_Val, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = call ptr @lp_str_concat(ptr %t50, ptr %t53) %t55 = call ptr @fn_emit_bind(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t56 %t58 = call ptr @lp_str_concat(ptr @.str7979, ptr %t57) %t59 = call ptr @lp_str_concat(ptr %t58, ptr @.str7980) call void @fn_emit(ptr %t59) %t60 = call ptr @fn_val(ptr @.str7981, ptr @.str7982) store ptr %t60, ptr %retval br label %ret ret: %t61 = load ptr, ptr %retval ret ptr %t61 } define i32 @fn_is_colorfn_ns(ptr %arg_meth) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str7983) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str7984) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str7985) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str7986) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t21 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str7987) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 br label %scend8 scend8: %t30 = load i32, ptr %t21 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t20 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str7988) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 br label %scend10 scend10: %t37 = load i32, ptr %t20 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: store i32 0, ptr %retval br label %ret ret: %t39 = load i32, ptr %retval ret i32 %t39 } define ptr @fn_color_ch(ptr %arg_c, ptr %arg_shift) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca ptr store ptr %arg_c, ptr %t0 store ptr %arg_shift, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str7989, ptr %t2) %t4 = call ptr @lp_str_concat(ptr %t3, ptr @.str7990) %t5 = load ptr, ptr %t1 %t6 = call ptr @lp_str_concat(ptr %t4, ptr %t5) %t7 = call ptr @fn_emit_bind(ptr %t6) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = call ptr @lp_str_concat(ptr @.str7991, ptr %t9) %t11 = call ptr @lp_str_concat(ptr %t10, ptr @.str7992) %t12 = call ptr @fn_emit_bind(ptr %t11) store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_color_pack(ptr %arg_r, ptr %arg_g, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t7 = alloca ptr %t12 = alloca ptr %t19 = alloca ptr store ptr %arg_r, ptr %t0 store ptr %arg_g, ptr %t1 store ptr %arg_b, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call ptr @lp_str_concat(ptr @.str7993, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str7994) %t6 = call ptr @fn_emit_bind(ptr %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t1 %t9 = call ptr @lp_str_concat(ptr @.str7995, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str7996) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t7 %t14 = call ptr @lp_str_concat(ptr @.str7997, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str7998) %t16 = load ptr, ptr %t12 %t17 = call ptr @lp_str_concat(ptr %t15, ptr %t16) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str7999, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str8000) %t23 = load ptr, ptr %t2 %t24 = call ptr @lp_str_concat(ptr %t22, ptr %t23) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %retval br label %ret ret: %t26 = load ptr, ptr %retval ret ptr %t26 } define ptr @fn_color_lerp_ch(ptr %arg_ch0, ptr %arg_ch1, ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca ptr %t16 = alloca ptr %t21 = alloca ptr store ptr %arg_ch0, ptr %t0 store ptr %arg_ch1, ptr %t1 store ptr %arg_t, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @lp_str_concat(ptr @.str8001, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str8002) %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = call ptr @lp_str_concat(ptr @.str8003, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str8004) %t13 = load ptr, ptr %t2 %t14 = call ptr @lp_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t16 %t18 = call ptr @lp_str_concat(ptr @.str8005, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str8006) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t0 %t23 = call ptr @lp_str_concat(ptr @.str8007, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str8008) %t25 = load ptr, ptr %t21 %t26 = call ptr @lp_str_concat(ptr %t24, ptr %t25) %t27 = call ptr @fn_emit_bind(ptr %t26) store ptr %t27, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } define ptr @fn_emit_colorfn_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t17 = alloca ptr %t30 = alloca ptr %t43 = alloca ptr %t70 = alloca ptr %t83 = alloca ptr %t96 = alloca ptr %t109 = alloca ptr %t120 = alloca ptr %t127 = alloca ptr %t150 = alloca ptr %t163 = alloca ptr %t170 = alloca ptr %t177 = alloca ptr %t200 = alloca ptr %t213 = alloca ptr %t226 = alloca ptr %t239 = alloca ptr %t252 = alloca ptr %t265 = alloca ptr %t286 = alloca ptr %t299 = alloca ptr %t305 = alloca ptr %t310 = alloca ptr %t315 = alloca ptr %t320 = alloca ptr %t327 = alloca ptr %t332 = alloca ptr %t339 = alloca ptr %t344 = alloca ptr %t351 = alloca ptr %t356 = alloca ptr %t374 = alloca ptr %t387 = alloca ptr %t392 = alloca ptr %t397 = alloca ptr %t402 = alloca ptr %t406 = alloca ptr %t415 = alloca ptr %t420 = alloca ptr %t427 = alloca ptr %t431 = alloca ptr %t440 = alloca ptr %t445 = alloca ptr %t452 = alloca ptr %t456 = alloca ptr %t465 = alloca ptr %t470 = alloca ptr %t477 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str8009) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 0, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str8010, i32 0, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 0 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 1, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str8011, i32 1, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 1 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_emit_expr(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t1 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 2, %t37 br i1 %t38, label %ixok7, label %ixbad8 ixbad8: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str8012, i32 2, i32 %t37) call void @exit(i32 1) unreachable ixok7: %t40 = getelementptr inbounds ptr, ptr %t35, i32 2 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_emit_expr(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t17 %t45 = getelementptr inbounds %Cmp_Val, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = load ptr, ptr %t30 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = load ptr, ptr %t43 %t51 = getelementptr inbounds %Cmp_Val, ptr %t50, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = call ptr @fn_color_pack(ptr %t46, ptr %t49, ptr %t52) %t54 = call ptr @fn_val(ptr %t53, ptr @.str8013) store ptr %t54, ptr %retval br label %ret ifend2: %t55 = load ptr, ptr %t0 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str8014) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then9, label %ifend11 then9: %t58 = load ptr, ptr %t1 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 7 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 0, %t64 br i1 %t65, label %ixok12, label %ixbad13 ixbad13: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str8015, i32 0, i32 %t64) call void @exit(i32 1) unreachable ixok12: %t67 = getelementptr inbounds ptr, ptr %t62, i32 0 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_emit_expr(ptr %t68) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t1 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 7 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 0 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 1 %t77 = load i32, ptr %t76 %t78 = icmp ult i32 1, %t77 br i1 %t78, label %ixok14, label %ixbad15 ixbad15: %t79 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t79, ptr @.fmt_bounds, ptr @.str8016, i32 1, i32 %t77) call void @exit(i32 1) unreachable ixok14: %t80 = getelementptr inbounds ptr, ptr %t75, i32 1 %t81 = load ptr, ptr %t80 %t82 = call ptr @fn_emit_expr(ptr %t81) store ptr %t82, ptr %t83 %t84 = load ptr, ptr %t1 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 7 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 0 %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 %t90 = load i32, ptr %t89 %t91 = icmp ult i32 2, %t90 br i1 %t91, label %ixok16, label %ixbad17 ixbad17: %t92 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t92, ptr @.fmt_bounds, ptr @.str8017, i32 2, i32 %t90) call void @exit(i32 1) unreachable ixok16: %t93 = getelementptr inbounds ptr, ptr %t88, i32 2 %t94 = load ptr, ptr %t93 %t95 = call ptr @fn_emit_expr(ptr %t94) store ptr %t95, ptr %t96 %t97 = load ptr, ptr %t1 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 7 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 0 %t101 = load ptr, ptr %t100 %t102 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t103 = load i32, ptr %t102 %t104 = icmp ult i32 3, %t103 br i1 %t104, label %ixok18, label %ixbad19 ixbad19: %t105 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t105, ptr @.fmt_bounds, ptr @.str8018, i32 3, i32 %t103) call void @exit(i32 1) unreachable ixok18: %t106 = getelementptr inbounds ptr, ptr %t101, i32 3 %t107 = load ptr, ptr %t106 %t108 = call ptr @fn_emit_expr(ptr %t107) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t70 %t111 = getelementptr inbounds %Cmp_Val, ptr %t110, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = load ptr, ptr %t83 %t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = load ptr, ptr %t96 %t117 = getelementptr inbounds %Cmp_Val, ptr %t116, i32 0, i32 0 %t118 = load ptr, ptr %t117 %t119 = call ptr @fn_color_pack(ptr %t112, ptr %t115, ptr %t118) store ptr %t119, ptr %t120 %t121 = load ptr, ptr %t109 %t122 = getelementptr inbounds %Cmp_Val, ptr %t121, i32 0, i32 0 %t123 = load ptr, ptr %t122 %t124 = call ptr @lp_str_concat(ptr @.str8019, ptr %t123) %t125 = call ptr @lp_str_concat(ptr %t124, ptr @.str8020) %t126 = call ptr @fn_emit_bind(ptr %t125) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t120 %t129 = call ptr @lp_str_concat(ptr @.str8021, ptr %t128) %t130 = call ptr @lp_str_concat(ptr %t129, ptr @.str8022) %t131 = load ptr, ptr %t127 %t132 = call ptr @lp_str_concat(ptr %t130, ptr %t131) %t133 = call ptr @fn_emit_bind(ptr %t132) %t134 = call ptr @fn_val(ptr %t133, ptr @.str8023) store ptr %t134, ptr %retval br label %ret ifend11: %t135 = load ptr, ptr %t0 %t136 = call i32 @lp_str_eq(ptr %t135, ptr @.str8024) %t137 = icmp ne i32 %t136, 0 br i1 %t137, label %then20, label %ifend22 then20: %t138 = load ptr, ptr %t1 %t139 = getelementptr inbounds %Cmp_Node, ptr %t138, i32 0, i32 7 %t140 = load ptr, ptr %t139 %t141 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0 %t142 = load ptr, ptr %t141 %t143 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 1 %t144 = load i32, ptr %t143 %t145 = icmp ult i32 0, %t144 br i1 %t145, label %ixok23, label %ixbad24 ixbad24: %t146 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t146, ptr @.fmt_bounds, ptr @.str8025, i32 0, i32 %t144) call void @exit(i32 1) unreachable ixok23: %t147 = getelementptr inbounds ptr, ptr %t142, i32 0 %t148 = load ptr, ptr %t147 %t149 = call ptr @fn_emit_expr(ptr %t148) store ptr %t149, ptr %t150 %t151 = load ptr, ptr %t1 %t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 7 %t153 = load ptr, ptr %t152 %t154 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 0 %t155 = load ptr, ptr %t154 %t156 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 1 %t157 = load i32, ptr %t156 %t158 = icmp ult i32 1, %t157 br i1 %t158, label %ixok25, label %ixbad26 ixbad26: %t159 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t159, ptr @.fmt_bounds, ptr @.str8026, i32 1, i32 %t157) call void @exit(i32 1) unreachable ixok25: %t160 = getelementptr inbounds ptr, ptr %t155, i32 1 %t161 = load ptr, ptr %t160 %t162 = call ptr @fn_emit_expr(ptr %t161) store ptr %t162, ptr %t163 %t164 = load ptr, ptr %t150 %t165 = getelementptr inbounds %Cmp_Val, ptr %t164, i32 0, i32 0 %t166 = load ptr, ptr %t165 %t167 = call ptr @lp_str_concat(ptr @.str8027, ptr %t166) %t168 = call ptr @lp_str_concat(ptr %t167, ptr @.str8028) %t169 = call ptr @fn_emit_bind(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t163 %t172 = getelementptr inbounds %Cmp_Val, ptr %t171, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = call ptr @lp_str_concat(ptr @.str8029, ptr %t173) %t175 = call ptr @lp_str_concat(ptr %t174, ptr @.str8030) %t176 = call ptr @fn_emit_bind(ptr %t175) store ptr %t176, ptr %t177 %t178 = load ptr, ptr %t170 %t179 = call ptr @lp_str_concat(ptr @.str8031, ptr %t178) %t180 = call ptr @lp_str_concat(ptr %t179, ptr @.str8032) %t181 = load ptr, ptr %t177 %t182 = call ptr @lp_str_concat(ptr %t180, ptr %t181) %t183 = call ptr @fn_emit_bind(ptr %t182) %t184 = call ptr @fn_val(ptr %t183, ptr @.str8033) store ptr %t184, ptr %retval br label %ret ifend22: %t185 = load ptr, ptr %t0 %t186 = call i32 @lp_str_eq(ptr %t185, ptr @.str8034) %t187 = icmp ne i32 %t186, 0 br i1 %t187, label %then27, label %ifend29 then27: %t188 = load ptr, ptr %t1 %t189 = getelementptr inbounds %Cmp_Node, ptr %t188, i32 0, i32 7 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %LSlice, ptr %t190, i32 0, i32 0 %t192 = load ptr, ptr %t191 %t193 = getelementptr inbounds %LSlice, ptr %t190, i32 0, i32 1 %t194 = load i32, ptr %t193 %t195 = icmp ult i32 0, %t194 br i1 %t195, label %ixok30, label %ixbad31 ixbad31: %t196 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t196, ptr @.fmt_bounds, ptr @.str8035, i32 0, i32 %t194) call void @exit(i32 1) unreachable ixok30: %t197 = getelementptr inbounds ptr, ptr %t192, i32 0 %t198 = load ptr, ptr %t197 %t199 = call ptr @fn_emit_expr(ptr %t198) store ptr %t199, ptr %t200 %t201 = load ptr, ptr %t1 %t202 = getelementptr inbounds %Cmp_Node, ptr %t201, i32 0, i32 7 %t203 = load ptr, ptr %t202 %t204 = getelementptr inbounds %LSlice, ptr %t203, i32 0, i32 0 %t205 = load ptr, ptr %t204 %t206 = getelementptr inbounds %LSlice, ptr %t203, i32 0, i32 1 %t207 = load i32, ptr %t206 %t208 = icmp ult i32 1, %t207 br i1 %t208, label %ixok32, label %ixbad33 ixbad33: %t209 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t209, ptr @.fmt_bounds, ptr @.str8036, i32 1, i32 %t207) call void @exit(i32 1) unreachable ixok32: %t210 = getelementptr inbounds ptr, ptr %t205, i32 1 %t211 = load ptr, ptr %t210 %t212 = call ptr @fn_emit_expr(ptr %t211) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t1 %t215 = getelementptr inbounds %Cmp_Node, ptr %t214, i32 0, i32 7 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 0 %t218 = load ptr, ptr %t217 %t219 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 1 %t220 = load i32, ptr %t219 %t221 = icmp ult i32 2, %t220 br i1 %t221, label %ixok34, label %ixbad35 ixbad35: %t222 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t222, ptr @.fmt_bounds, ptr @.str8037, i32 2, i32 %t220) call void @exit(i32 1) unreachable ixok34: %t223 = getelementptr inbounds ptr, ptr %t218, i32 2 %t224 = load ptr, ptr %t223 %t225 = call ptr @fn_emit_expr(ptr %t224) store ptr %t225, ptr %t226 %t227 = load ptr, ptr %t200 %t228 = getelementptr inbounds %Cmp_Val, ptr %t227, i32 0, i32 0 %t229 = load ptr, ptr %t228 %t230 = call ptr @fn_color_ch(ptr %t229, ptr @.str8038) %t231 = load ptr, ptr %t213 %t232 = getelementptr inbounds %Cmp_Val, ptr %t231, i32 0, i32 0 %t233 = load ptr, ptr %t232 %t234 = call ptr @fn_color_ch(ptr %t233, ptr @.str8039) %t235 = load ptr, ptr %t226 %t236 = getelementptr inbounds %Cmp_Val, ptr %t235, i32 0, i32 0 %t237 = load ptr, ptr %t236 %t238 = call ptr @fn_color_lerp_ch(ptr %t230, ptr %t234, ptr %t237) store ptr %t238, ptr %t239 %t240 = load ptr, ptr %t200 %t241 = getelementptr inbounds %Cmp_Val, ptr %t240, i32 0, i32 0 %t242 = load ptr, ptr %t241 %t243 = call ptr @fn_color_ch(ptr %t242, ptr @.str8040) %t244 = load ptr, ptr %t213 %t245 = getelementptr inbounds %Cmp_Val, ptr %t244, i32 0, i32 0 %t246 = load ptr, ptr %t245 %t247 = call ptr @fn_color_ch(ptr %t246, ptr @.str8041) %t248 = load ptr, ptr %t226 %t249 = getelementptr inbounds %Cmp_Val, ptr %t248, i32 0, i32 0 %t250 = load ptr, ptr %t249 %t251 = call ptr @fn_color_lerp_ch(ptr %t243, ptr %t247, ptr %t250) store ptr %t251, ptr %t252 %t253 = load ptr, ptr %t200 %t254 = getelementptr inbounds %Cmp_Val, ptr %t253, i32 0, i32 0 %t255 = load ptr, ptr %t254 %t256 = call ptr @fn_color_ch(ptr %t255, ptr @.str8042) %t257 = load ptr, ptr %t213 %t258 = getelementptr inbounds %Cmp_Val, ptr %t257, i32 0, i32 0 %t259 = load ptr, ptr %t258 %t260 = call ptr @fn_color_ch(ptr %t259, ptr @.str8043) %t261 = load ptr, ptr %t226 %t262 = getelementptr inbounds %Cmp_Val, ptr %t261, i32 0, i32 0 %t263 = load ptr, ptr %t262 %t264 = call ptr @fn_color_lerp_ch(ptr %t256, ptr %t260, ptr %t263) store ptr %t264, ptr %t265 %t266 = load ptr, ptr %t239 %t267 = load ptr, ptr %t252 %t268 = load ptr, ptr %t265 %t269 = call ptr @fn_color_pack(ptr %t266, ptr %t267, ptr %t268) %t270 = call ptr @fn_val(ptr %t269, ptr @.str8044) store ptr %t270, ptr %retval br label %ret ifend29: %t271 = load ptr, ptr %t0 %t272 = call i32 @lp_str_eq(ptr %t271, ptr @.str8045) %t273 = icmp ne i32 %t272, 0 br i1 %t273, label %then36, label %ifend38 then36: %t274 = load ptr, ptr %t1 %t275 = getelementptr inbounds %Cmp_Node, ptr %t274, i32 0, i32 7 %t276 = load ptr, ptr %t275 %t277 = getelementptr inbounds %LSlice, ptr %t276, i32 0, i32 0 %t278 = load ptr, ptr %t277 %t279 = getelementptr inbounds %LSlice, ptr %t276, i32 0, i32 1 %t280 = load i32, ptr %t279 %t281 = icmp ult i32 0, %t280 br i1 %t281, label %ixok39, label %ixbad40 ixbad40: %t282 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t282, ptr @.fmt_bounds, ptr @.str8046, i32 0, i32 %t280) call void @exit(i32 1) unreachable ixok39: %t283 = getelementptr inbounds ptr, ptr %t278, i32 0 %t284 = load ptr, ptr %t283 %t285 = call ptr @fn_emit_expr(ptr %t284) store ptr %t285, ptr %t286 %t287 = load ptr, ptr %t1 %t288 = getelementptr inbounds %Cmp_Node, ptr %t287, i32 0, i32 7 %t289 = load ptr, ptr %t288 %t290 = getelementptr inbounds %LSlice, ptr %t289, i32 0, i32 0 %t291 = load ptr, ptr %t290 %t292 = getelementptr inbounds %LSlice, ptr %t289, i32 0, i32 1 %t293 = load i32, ptr %t292 %t294 = icmp ult i32 1, %t293 br i1 %t294, label %ixok41, label %ixbad42 ixbad42: %t295 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t295, ptr @.fmt_bounds, ptr @.str8047, i32 1, i32 %t293) call void @exit(i32 1) unreachable ixok41: %t296 = getelementptr inbounds ptr, ptr %t291, i32 1 %t297 = load ptr, ptr %t296 %t298 = call ptr @fn_emit_expr(ptr %t297) store ptr %t298, ptr %t299 %t300 = load ptr, ptr %t299 %t301 = getelementptr inbounds %Cmp_Val, ptr %t300, i32 0, i32 0 %t302 = load ptr, ptr %t301 %t303 = call ptr @lp_str_concat(ptr @.str8048, ptr %t302) %t304 = call ptr @fn_emit_bind(ptr %t303) store ptr %t304, ptr %t305 %t306 = load ptr, ptr %t286 %t307 = getelementptr inbounds %Cmp_Val, ptr %t306, i32 0, i32 0 %t308 = load ptr, ptr %t307 %t309 = call ptr @fn_color_ch(ptr %t308, ptr @.str8049) store ptr %t309, ptr %t310 %t311 = load ptr, ptr %t286 %t312 = getelementptr inbounds %Cmp_Val, ptr %t311, i32 0, i32 0 %t313 = load ptr, ptr %t312 %t314 = call ptr @fn_color_ch(ptr %t313, ptr @.str8050) store ptr %t314, ptr %t315 %t316 = load ptr, ptr %t286 %t317 = getelementptr inbounds %Cmp_Val, ptr %t316, i32 0, i32 0 %t318 = load ptr, ptr %t317 %t319 = call ptr @fn_color_ch(ptr %t318, ptr @.str8051) store ptr %t319, ptr %t320 %t321 = load ptr, ptr %t310 %t322 = call ptr @lp_str_concat(ptr @.str8052, ptr %t321) %t323 = call ptr @lp_str_concat(ptr %t322, ptr @.str8053) %t324 = load ptr, ptr %t305 %t325 = call ptr @lp_str_concat(ptr %t323, ptr %t324) %t326 = call ptr @fn_emit_bind(ptr %t325) store ptr %t326, ptr %t327 %t328 = load ptr, ptr %t327 %t329 = call ptr @lp_str_concat(ptr @.str8054, ptr %t328) %t330 = call ptr @lp_str_concat(ptr %t329, ptr @.str8055) %t331 = call ptr @fn_emit_bind(ptr %t330) store ptr %t331, ptr %t332 %t333 = load ptr, ptr %t315 %t334 = call ptr @lp_str_concat(ptr @.str8056, ptr %t333) %t335 = call ptr @lp_str_concat(ptr %t334, ptr @.str8057) %t336 = load ptr, ptr %t305 %t337 = call ptr @lp_str_concat(ptr %t335, ptr %t336) %t338 = call ptr @fn_emit_bind(ptr %t337) store ptr %t338, ptr %t339 %t340 = load ptr, ptr %t339 %t341 = call ptr @lp_str_concat(ptr @.str8058, ptr %t340) %t342 = call ptr @lp_str_concat(ptr %t341, ptr @.str8059) %t343 = call ptr @fn_emit_bind(ptr %t342) store ptr %t343, ptr %t344 %t345 = load ptr, ptr %t320 %t346 = call ptr @lp_str_concat(ptr @.str8060, ptr %t345) %t347 = call ptr @lp_str_concat(ptr %t346, ptr @.str8061) %t348 = load ptr, ptr %t305 %t349 = call ptr @lp_str_concat(ptr %t347, ptr %t348) %t350 = call ptr @fn_emit_bind(ptr %t349) store ptr %t350, ptr %t351 %t352 = load ptr, ptr %t351 %t353 = call ptr @lp_str_concat(ptr @.str8062, ptr %t352) %t354 = call ptr @lp_str_concat(ptr %t353, ptr @.str8063) %t355 = call ptr @fn_emit_bind(ptr %t354) store ptr %t355, ptr %t356 %t357 = load ptr, ptr %t332 %t358 = load ptr, ptr %t344 %t359 = load ptr, ptr %t356 %t360 = call ptr @fn_color_pack(ptr %t357, ptr %t358, ptr %t359) %t361 = call ptr @fn_val(ptr %t360, ptr @.str8064) store ptr %t361, ptr %retval br label %ret ifend38: %t362 = load ptr, ptr %t1 %t363 = getelementptr inbounds %Cmp_Node, ptr %t362, i32 0, i32 7 %t364 = load ptr, ptr %t363 %t365 = getelementptr inbounds %LSlice, ptr %t364, i32 0, i32 0 %t366 = load ptr, ptr %t365 %t367 = getelementptr inbounds %LSlice, ptr %t364, i32 0, i32 1 %t368 = load i32, ptr %t367 %t369 = icmp ult i32 0, %t368 br i1 %t369, label %ixok43, label %ixbad44 ixbad44: %t370 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t370, ptr @.fmt_bounds, ptr @.str8065, i32 0, i32 %t368) call void @exit(i32 1) unreachable ixok43: %t371 = getelementptr inbounds ptr, ptr %t366, i32 0 %t372 = load ptr, ptr %t371 %t373 = call ptr @fn_emit_expr(ptr %t372) store ptr %t373, ptr %t374 %t375 = load ptr, ptr %t1 %t376 = getelementptr inbounds %Cmp_Node, ptr %t375, i32 0, i32 7 %t377 = load ptr, ptr %t376 %t378 = getelementptr inbounds %LSlice, ptr %t377, i32 0, i32 0 %t379 = load ptr, ptr %t378 %t380 = getelementptr inbounds %LSlice, ptr %t377, i32 0, i32 1 %t381 = load i32, ptr %t380 %t382 = icmp ult i32 1, %t381 br i1 %t382, label %ixok45, label %ixbad46 ixbad46: %t383 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t383, ptr @.fmt_bounds, ptr @.str8066, i32 1, i32 %t381) call void @exit(i32 1) unreachable ixok45: %t384 = getelementptr inbounds ptr, ptr %t379, i32 1 %t385 = load ptr, ptr %t384 %t386 = call ptr @fn_emit_expr(ptr %t385) store ptr %t386, ptr %t387 %t388 = load ptr, ptr %t374 %t389 = getelementptr inbounds %Cmp_Val, ptr %t388, i32 0, i32 0 %t390 = load ptr, ptr %t389 %t391 = call ptr @fn_color_ch(ptr %t390, ptr @.str8067) store ptr %t391, ptr %t392 %t393 = load ptr, ptr %t374 %t394 = getelementptr inbounds %Cmp_Val, ptr %t393, i32 0, i32 0 %t395 = load ptr, ptr %t394 %t396 = call ptr @fn_color_ch(ptr %t395, ptr @.str8068) store ptr %t396, ptr %t397 %t398 = load ptr, ptr %t374 %t399 = getelementptr inbounds %Cmp_Val, ptr %t398, i32 0, i32 0 %t400 = load ptr, ptr %t399 %t401 = call ptr @fn_color_ch(ptr %t400, ptr @.str8069) store ptr %t401, ptr %t402 %t403 = load ptr, ptr %t392 %t404 = call ptr @lp_str_concat(ptr @.str8070, ptr %t403) %t405 = call ptr @fn_emit_bind(ptr %t404) store ptr %t405, ptr %t406 %t407 = load ptr, ptr %t406 %t408 = call ptr @lp_str_concat(ptr @.str8071, ptr %t407) %t409 = call ptr @lp_str_concat(ptr %t408, ptr @.str8072) %t410 = load ptr, ptr %t387 %t411 = getelementptr inbounds %Cmp_Val, ptr %t410, i32 0, i32 0 %t412 = load ptr, ptr %t411 %t413 = call ptr @lp_str_concat(ptr %t409, ptr %t412) %t414 = call ptr @fn_emit_bind(ptr %t413) store ptr %t414, ptr %t415 %t416 = load ptr, ptr %t415 %t417 = call ptr @lp_str_concat(ptr @.str8073, ptr %t416) %t418 = call ptr @lp_str_concat(ptr %t417, ptr @.str8074) %t419 = call ptr @fn_emit_bind(ptr %t418) store ptr %t419, ptr %t420 %t421 = load ptr, ptr %t392 %t422 = call ptr @lp_str_concat(ptr @.str8075, ptr %t421) %t423 = call ptr @lp_str_concat(ptr %t422, ptr @.str8076) %t424 = load ptr, ptr %t420 %t425 = call ptr @lp_str_concat(ptr %t423, ptr %t424) %t426 = call ptr @fn_emit_bind(ptr %t425) store ptr %t426, ptr %t427 %t428 = load ptr, ptr %t397 %t429 = call ptr @lp_str_concat(ptr @.str8077, ptr %t428) %t430 = call ptr @fn_emit_bind(ptr %t429) store ptr %t430, ptr %t431 %t432 = load ptr, ptr %t431 %t433 = call ptr @lp_str_concat(ptr @.str8078, ptr %t432) %t434 = call ptr @lp_str_concat(ptr %t433, ptr @.str8079) %t435 = load ptr, ptr %t387 %t436 = getelementptr inbounds %Cmp_Val, ptr %t435, i32 0, i32 0 %t437 = load ptr, ptr %t436 %t438 = call ptr @lp_str_concat(ptr %t434, ptr %t437) %t439 = call ptr @fn_emit_bind(ptr %t438) store ptr %t439, ptr %t440 %t441 = load ptr, ptr %t440 %t442 = call ptr @lp_str_concat(ptr @.str8080, ptr %t441) %t443 = call ptr @lp_str_concat(ptr %t442, ptr @.str8081) %t444 = call ptr @fn_emit_bind(ptr %t443) store ptr %t444, ptr %t445 %t446 = load ptr, ptr %t397 %t447 = call ptr @lp_str_concat(ptr @.str8082, ptr %t446) %t448 = call ptr @lp_str_concat(ptr %t447, ptr @.str8083) %t449 = load ptr, ptr %t445 %t450 = call ptr @lp_str_concat(ptr %t448, ptr %t449) %t451 = call ptr @fn_emit_bind(ptr %t450) store ptr %t451, ptr %t452 %t453 = load ptr, ptr %t402 %t454 = call ptr @lp_str_concat(ptr @.str8084, ptr %t453) %t455 = call ptr @fn_emit_bind(ptr %t454) store ptr %t455, ptr %t456 %t457 = load ptr, ptr %t456 %t458 = call ptr @lp_str_concat(ptr @.str8085, ptr %t457) %t459 = call ptr @lp_str_concat(ptr %t458, ptr @.str8086) %t460 = load ptr, ptr %t387 %t461 = getelementptr inbounds %Cmp_Val, ptr %t460, i32 0, i32 0 %t462 = load ptr, ptr %t461 %t463 = call ptr @lp_str_concat(ptr %t459, ptr %t462) %t464 = call ptr @fn_emit_bind(ptr %t463) store ptr %t464, ptr %t465 %t466 = load ptr, ptr %t465 %t467 = call ptr @lp_str_concat(ptr @.str8087, ptr %t466) %t468 = call ptr @lp_str_concat(ptr %t467, ptr @.str8088) %t469 = call ptr @fn_emit_bind(ptr %t468) store ptr %t469, ptr %t470 %t471 = load ptr, ptr %t402 %t472 = call ptr @lp_str_concat(ptr @.str8089, ptr %t471) %t473 = call ptr @lp_str_concat(ptr %t472, ptr @.str8090) %t474 = load ptr, ptr %t470 %t475 = call ptr @lp_str_concat(ptr %t473, ptr %t474) %t476 = call ptr @fn_emit_bind(ptr %t475) store ptr %t476, ptr %t477 %t478 = load ptr, ptr %t427 %t479 = load ptr, ptr %t452 %t480 = load ptr, ptr %t477 %t481 = call ptr @fn_color_pack(ptr %t478, ptr %t479, ptr %t480) %t482 = call ptr @fn_val(ptr %t481, ptr @.str8091) store ptr %t482, ptr %retval br label %ret ret: %t483 = load ptr, ptr %retval ret ptr %t483 } define i32 @fn_color_lookup(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str8092) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 16777215, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str8093) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store i32 16775930, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str8094) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store i32 16777200, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str8095) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store i32 15788758, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str8096) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store i32 16775920, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str8097) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: store i32 16774638, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str8098) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: store i32 16445670, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str8099) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: store i32 16444375, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str8100) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: store i32 16643558, ptr %retval br label %ret ifend26: %t28 = load ptr, ptr %t0 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str8101) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then27, label %ifend29 then27: store i32 16119260, ptr %retval br label %ret ifend29: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str8102) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then30, label %ifend32 then30: store i32 16776656, ptr %retval br label %ret ifend32: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str8103) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then33, label %ifend35 then33: store i32 15794160, ptr %retval br label %ret ifend35: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str8104) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then36, label %ifend38 then36: store i32 16121850, ptr %retval br label %ret ifend38: %t40 = load ptr, ptr %t0 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str8105) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then39, label %ifend41 then39: store i32 15794175, ptr %retval br label %ret ifend41: %t43 = load ptr, ptr %t0 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str8106) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then42, label %ifend44 then42: store i32 15792383, ptr %retval br label %ret ifend44: %t46 = load ptr, ptr %t0 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str8107) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then45, label %ifend47 then45: store i32 16316671, ptr %retval br label %ret ifend47: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str8108) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then48, label %ifend50 then48: store i32 16119285, ptr %retval br label %ret ifend50: %t52 = load ptr, ptr %t0 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str8109) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then51, label %ifend53 then51: store i32 15132410, ptr %retval br label %ret ifend53: %t55 = load ptr, ptr %t0 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str8110) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then54, label %ifend56 then54: store i32 14932681, ptr %retval br label %ret ifend56: %t58 = load ptr, ptr %t0 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str8111) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then57, label %ifend59 then57: store i32 15854034, ptr %retval br label %ret ifend59: %t61 = load ptr, ptr %t0 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str8112) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then60, label %ifend62 then60: store i32 14474460, ptr %retval br label %ret ifend62: %t64 = load ptr, ptr %t0 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str8113) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then63, label %ifend65 then63: store i32 13882323, ptr %retval br label %ret ifend65: %t67 = load ptr, ptr %t0 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str8114) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then66, label %ifend68 then66: store i32 12632256, ptr %retval br label %ret ifend68: %t70 = load ptr, ptr %t0 %t71 = call i32 @lp_str_eq(ptr %t70, ptr @.str8115) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then69, label %ifend71 then69: store i32 11714229, ptr %retval br label %ret ifend71: %t73 = load ptr, ptr %t0 %t74 = call i32 @lp_str_eq(ptr %t73, ptr @.str8116) %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then72, label %ifend74 then72: store i32 11119017, ptr %retval br label %ret ifend74: %t76 = load ptr, ptr %t0 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str8117) %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then75, label %ifend77 then75: store i32 8421504, ptr %retval br label %ret ifend77: %t79 = load ptr, ptr %t0 %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str8118) %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then78, label %ifend80 then78: store i32 6908265, ptr %retval br label %ret ifend80: %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t82, ptr @.str8119) %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then81, label %ifend83 then81: store i32 7500914, ptr %retval br label %ret ifend83: %t85 = load ptr, ptr %t0 %t86 = call i32 @lp_str_eq(ptr %t85, ptr @.str8120) %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then84, label %ifend86 then84: store i32 7372944, ptr %retval br label %ret ifend86: %t88 = load ptr, ptr %t0 %t89 = call i32 @lp_str_eq(ptr %t88, ptr @.str8121) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then87, label %ifend89 then87: store i32 7372944, ptr %retval br label %ret ifend89: %t91 = load ptr, ptr %t0 %t92 = call i32 @lp_str_eq(ptr %t91, ptr @.str8122) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then90, label %ifend92 then90: store i32 7833753, ptr %retval br label %ret ifend92: %t94 = load ptr, ptr %t0 %t95 = call i32 @lp_str_eq(ptr %t94, ptr @.str8123) %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %then93, label %ifend95 then93: store i32 2765881, ptr %retval br label %ret ifend95: %t97 = load ptr, ptr %t0 %t98 = call i32 @lp_str_eq(ptr %t97, ptr @.str8124) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then96, label %ifend98 then96: store i32 3556687, ptr %retval br label %ret ifend98: %t100 = load ptr, ptr %t0 %t101 = call i32 @lp_str_eq(ptr %t100, ptr @.str8125) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then99, label %ifend101 then99: store i32 1842204, ptr %retval br label %ret ifend101: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str8126) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then102, label %ifend104 then102: store i32 3487801, ptr %retval br label %ret ifend104: %t106 = load ptr, ptr %t0 %t107 = call i32 @lp_str_eq(ptr %t106, ptr @.str8127) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then105, label %ifend107 then105: store i32 3421236, ptr %retval br label %ret ifend107: %t109 = load ptr, ptr %t0 %t110 = call i32 @lp_str_eq(ptr %t109, ptr @.str8128) %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then108, label %ifend110 then108: store i32 0, ptr %retval br label %ret ifend110: %t112 = load ptr, ptr %t0 %t113 = call i32 @lp_str_eq(ptr %t112, ptr @.str8129) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then111, label %ifend113 then111: store i32 1776411, ptr %retval br label %ret ifend113: %t115 = load ptr, ptr %t0 %t116 = call i32 @lp_str_eq(ptr %t115, ptr @.str8130) %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then114, label %ifend116 then114: store i32 2367780, ptr %retval br label %ret ifend116: %t118 = load ptr, ptr %t0 %t119 = call i32 @lp_str_eq(ptr %t118, ptr @.str8131) %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then117, label %ifend119 then117: store i32 5594448, ptr %retval br label %ret ifend119: %t121 = load ptr, ptr %t0 %t122 = call i32 @lp_str_eq(ptr %t121, ptr @.str8132) %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then120, label %ifend122 then120: store i32 16711680, ptr %retval br label %ret ifend122: %t124 = load ptr, ptr %t0 %t125 = call i32 @lp_str_eq(ptr %t124, ptr @.str8133) %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then123, label %ifend125 then123: store i32 14423100, ptr %retval br label %ret ifend125: %t127 = load ptr, ptr %t0 %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str8134) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then126, label %ifend128 then126: store i32 16720896, ptr %retval br label %ret ifend128: %t130 = load ptr, ptr %t0 %t131 = call i32 @lp_str_eq(ptr %t130, ptr @.str8135) %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then129, label %ifend131 then129: store i32 14893620, ptr %retval br label %ret ifend131: %t133 = load ptr, ptr %t0 %t134 = call i32 @lp_str_eq(ptr %t133, ptr @.str8136) %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then132, label %ifend134 then132: store i32 11674146, ptr %retval br label %ret ifend134: %t136 = load ptr, ptr %t0 %t137 = call i32 @lp_str_eq(ptr %t136, ptr @.str8137) %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then135, label %ifend137 then135: store i32 14961966, ptr %retval br label %ret ifend137: %t139 = load ptr, ptr %t0 %t140 = call i32 @lp_str_eq(ptr %t139, ptr @.str8138) %t141 = icmp ne i32 %t140, 0 br i1 %t141, label %then138, label %ifend140 then138: store i32 9109504, ptr %retval br label %ret ifend140: %t142 = load ptr, ptr %t0 %t143 = call i32 @lp_str_eq(ptr %t142, ptr @.str8139) %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %then141, label %ifend143 then141: store i32 8388608, ptr %retval br label %ret ifend143: %t145 = load ptr, ptr %t0 %t146 = call i32 @lp_str_eq(ptr %t145, ptr @.str8140) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then144, label %ifend146 then144: store i32 14684511, ptr %retval br label %ret ifend146: %t148 = load ptr, ptr %t0 %t149 = call i32 @lp_str_eq(ptr %t148, ptr @.str8141) %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %then147, label %ifend149 then147: store i32 12852794, ptr %retval br label %ret ifend149: %t151 = load ptr, ptr %t0 %t152 = call i32 @lp_str_eq(ptr %t151, ptr @.str8142) %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then150, label %ifend152 then150: store i32 13458524, ptr %retval br label %ret ifend152: %t154 = load ptr, ptr %t0 %t155 = call i32 @lp_str_eq(ptr %t154, ptr @.str8143) %t156 = icmp ne i32 %t155, 0 br i1 %t156, label %then153, label %ifend155 then153: store i32 12009742, ptr %retval br label %ret ifend155: %t157 = load ptr, ptr %t0 %t158 = call i32 @lp_str_eq(ptr %t157, ptr @.str8144) %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then156, label %ifend158 then156: store i32 9568266, ptr %retval br label %ret ifend158: %t160 = load ptr, ptr %t0 %t161 = call i32 @lp_str_eq(ptr %t160, ptr @.str8145) %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then159, label %ifend161 then159: store i32 10771026, ptr %retval br label %ret ifend161: %t163 = load ptr, ptr %t0 %t164 = call i32 @lp_str_eq(ptr %t163, ptr @.str8146) %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then162, label %ifend164 then162: store i32 14561635, ptr %retval br label %ret ifend164: %t166 = load ptr, ptr %t0 %t167 = call i32 @lp_str_eq(ptr %t166, ptr @.str8147) %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then165, label %ifend167 then165: store i32 15018832, ptr %retval br label %ret ifend167: %t169 = load ptr, ptr %t0 %t170 = call i32 @lp_str_eq(ptr %t169, ptr @.str8148) %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then168, label %ifend170 then168: store i32 9830424, ptr %retval br label %ret ifend170: %t172 = load ptr, ptr %t0 %t173 = call i32 @lp_str_eq(ptr %t172, ptr @.str8149) %t174 = icmp ne i32 %t173, 0 br i1 %t174, label %then171, label %ifend173 then171: store i32 9782581, ptr %retval br label %ret ifend173: %t175 = load ptr, ptr %t0 %t176 = call i32 @lp_str_eq(ptr %t175, ptr @.str8150) %t177 = icmp ne i32 %t176, 0 br i1 %t177, label %then174, label %ifend176 then174: store i32 13320532, ptr %retval br label %ret ifend176: %t178 = load ptr, ptr %t0 %t179 = call i32 @lp_str_eq(ptr %t178, ptr @.str8151) %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then177, label %ifend179 then177: store i32 14840411, ptr %retval br label %ret ifend179: %t181 = load ptr, ptr %t0 %t182 = call i32 @lp_str_eq(ptr %t181, ptr @.str8152) %t183 = icmp ne i32 %t182, 0 br i1 %t183, label %then180, label %ifend182 then180: store i32 16761035, ptr %retval br label %ret ifend182: %t184 = load ptr, ptr %t0 %t185 = call i32 @lp_str_eq(ptr %t184, ptr @.str8153) %t186 = icmp ne i32 %t185, 0 br i1 %t186, label %then183, label %ifend185 then183: store i32 16758465, ptr %retval br label %ret ifend185: %t187 = load ptr, ptr %t0 %t188 = call i32 @lp_str_eq(ptr %t187, ptr @.str8154) %t189 = icmp ne i32 %t188, 0 br i1 %t189, label %then186, label %ifend188 then186: store i32 16738740, ptr %retval br label %ret ifend188: %t190 = load ptr, ptr %t0 %t191 = call i32 @lp_str_eq(ptr %t190, ptr @.str8155) %t192 = icmp ne i32 %t191, 0 br i1 %t192, label %then189, label %ifend191 then189: store i32 16716947, ptr %retval br label %ret ifend191: %t193 = load ptr, ptr %t0 %t194 = call i32 @lp_str_eq(ptr %t193, ptr @.str8156) %t195 = icmp ne i32 %t194, 0 br i1 %t195, label %then192, label %ifend194 then192: store i32 14381203, ptr %retval br label %ret ifend194: %t196 = load ptr, ptr %t0 %t197 = call i32 @lp_str_eq(ptr %t196, ptr @.str8157) %t198 = icmp ne i32 %t197, 0 br i1 %t198, label %then195, label %ifend197 then195: store i32 16711807, ptr %retval br label %ret ifend197: %t199 = load ptr, ptr %t0 %t200 = call i32 @lp_str_eq(ptr %t199, ptr @.str8158) %t201 = icmp ne i32 %t200, 0 br i1 %t201, label %then198, label %ifend200 then198: store i32 14572931, ptr %retval br label %ret ifend200: %t202 = load ptr, ptr %t0 %t203 = call i32 @lp_str_eq(ptr %t202, ptr @.str8159) %t204 = icmp ne i32 %t203, 0 br i1 %t204, label %then201, label %ifend203 then201: store i32 16416882, ptr %retval br label %ret ifend203: %t205 = load ptr, ptr %t0 %t206 = call i32 @lp_str_eq(ptr %t205, ptr @.str8160) %t207 = icmp ne i32 %t206, 0 br i1 %t207, label %then204, label %ifend206 then204: store i32 16752762, ptr %retval br label %ret ifend206: %t208 = load ptr, ptr %t0 %t209 = call i32 @lp_str_eq(ptr %t208, ptr @.str8161) %t210 = icmp ne i32 %t209, 0 br i1 %t210, label %then207, label %ifend209 then207: store i32 15308410, ptr %retval br label %ret ifend209: %t211 = load ptr, ptr %t0 %t212 = call i32 @lp_str_eq(ptr %t211, ptr @.str8162) %t213 = icmp ne i32 %t212, 0 br i1 %t213, label %then210, label %ifend212 then210: store i32 16744272, ptr %retval br label %ret ifend212: %t214 = load ptr, ptr %t0 %t215 = call i32 @lp_str_eq(ptr %t214, ptr @.str8163) %t216 = icmp ne i32 %t215, 0 br i1 %t216, label %then213, label %ifend215 then213: store i32 16542853, ptr %retval br label %ret ifend215: %t217 = load ptr, ptr %t0 %t218 = call i32 @lp_str_eq(ptr %t217, ptr @.str8164) %t219 = icmp ne i32 %t218, 0 br i1 %t219, label %then216, label %ifend218 then216: store i32 16551596, ptr %retval br label %ret ifend218: %t220 = load ptr, ptr %t0 %t221 = call i32 @lp_str_eq(ptr %t220, ptr @.str8165) %t222 = icmp ne i32 %t221, 0 br i1 %t222, label %then219, label %ifend221 then219: store i32 16761292, ptr %retval br label %ret ifend221: %t223 = load ptr, ptr %t0 %t224 = call i32 @lp_str_eq(ptr %t223, ptr @.str8166) %t225 = icmp ne i32 %t224, 0 br i1 %t225, label %then222, label %ifend224 then222: store i32 16711935, ptr %retval br label %ret ifend224: %t226 = load ptr, ptr %t0 %t227 = call i32 @lp_str_eq(ptr %t226, ptr @.str8167) %t228 = icmp ne i32 %t227, 0 br i1 %t228, label %then225, label %ifend227 then225: store i32 16711935, ptr %retval br label %ret ifend227: %t229 = load ptr, ptr %t0 %t230 = call i32 @lp_str_eq(ptr %t229, ptr @.str8168) %t231 = icmp ne i32 %t230, 0 br i1 %t231, label %then228, label %ifend230 then228: store i32 14725375, ptr %retval br label %ret ifend230: %t232 = load ptr, ptr %t0 %t233 = call i32 @lp_str_eq(ptr %t232, ptr @.str8169) %t234 = icmp ne i32 %t233, 0 br i1 %t234, label %then231, label %ifend233 then231: store i32 13404313, ptr %retval br label %ret ifend233: %t235 = load ptr, ptr %t0 %t236 = call i32 @lp_str_eq(ptr %t235, ptr @.str8170) %t237 = icmp ne i32 %t236, 0 br i1 %t237, label %then234, label %ifend236 then234: store i32 14204888, ptr %retval br label %ret ifend236: %t238 = load ptr, ptr %t0 %t239 = call i32 @lp_str_eq(ptr %t238, ptr @.str8171) %t240 = icmp ne i32 %t239, 0 br i1 %t240, label %then237, label %ifend239 then237: store i32 14315734, ptr %retval br label %ret ifend239: %t241 = load ptr, ptr %t0 %t242 = call i32 @lp_str_eq(ptr %t241, ptr @.str8172) %t243 = icmp ne i32 %t242, 0 br i1 %t243, label %then240, label %ifend242 then240: store i32 16753920, ptr %retval br label %ret ifend242: %t244 = load ptr, ptr %t0 %t245 = call i32 @lp_str_eq(ptr %t244, ptr @.str8173) %t246 = icmp ne i32 %t245, 0 br i1 %t246, label %then243, label %ifend245 then243: store i32 16747520, ptr %retval br label %ret ifend245: %t247 = load ptr, ptr %t0 %t248 = call i32 @lp_str_eq(ptr %t247, ptr @.str8174) %t249 = icmp ne i32 %t248, 0 br i1 %t249, label %then246, label %ifend248 then246: store i32 15893760, ptr %retval br label %ret ifend248: %t250 = load ptr, ptr %t0 %t251 = call i32 @lp_str_eq(ptr %t250, ptr @.str8175) %t252 = icmp ne i32 %t251, 0 br i1 %t252, label %then249, label %ifend251 then249: store i32 16741656, ptr %retval br label %ret ifend251: %t253 = load ptr, ptr %t0 %t254 = call i32 @lp_str_eq(ptr %t253, ptr @.str8176) %t255 = icmp ne i32 %t254, 0 br i1 %t255, label %then252, label %ifend254 then252: store i32 16502449, ptr %retval br label %ret ifend254: %t256 = load ptr, ptr %t0 %t257 = call i32 @lp_str_eq(ptr %t256, ptr @.str8177) %t258 = icmp ne i32 %t257, 0 br i1 %t258, label %then255, label %ifend257 then255: store i32 16770484, ptr %retval br label %ret ifend257: %t259 = load ptr, ptr %t0 %t260 = call i32 @lp_str_eq(ptr %t259, ptr @.str8178) %t261 = icmp ne i32 %t260, 0 br i1 %t261, label %then258, label %ifend260 then258: store i32 16754219, ptr %retval br label %ret ifend260: %t262 = load ptr, ptr %t0 %t263 = call i32 @lp_str_eq(ptr %t262, ptr @.str8179) %t264 = icmp ne i32 %t263, 0 br i1 %t264, label %then261, label %ifend263 then261: store i32 16760576, ptr %retval br label %ret ifend263: %t265 = load ptr, ptr %t0 %t266 = call i32 @lp_str_eq(ptr %t265, ptr @.str8180) %t267 = icmp ne i32 %t266, 0 br i1 %t267, label %then264, label %ifend266 then264: store i32 13467442, ptr %retval br label %ret ifend266: %t268 = load ptr, ptr %t0 %t269 = call i32 @lp_str_eq(ptr %t268, ptr @.str8181) %t270 = icmp ne i32 %t269, 0 br i1 %t270, label %then267, label %ifend269 then267: store i32 12088115, ptr %retval br label %ret ifend269: %t271 = load ptr, ptr %t0 %t272 = call i32 @lp_str_eq(ptr %t271, ptr @.str8182) %t273 = icmp ne i32 %t272, 0 br i1 %t273, label %then270, label %ifend272 then270: store i32 15376929, ptr %retval br label %ret ifend272: %t274 = load ptr, ptr %t0 %t275 = call i32 @lp_str_eq(ptr %t274, ptr @.str8183) %t276 = icmp ne i32 %t275, 0 br i1 %t276, label %then273, label %ifend275 then273: store i32 15569185, ptr %retval br label %ret ifend275: %t277 = load ptr, ptr %t0 %t278 = call i32 @lp_str_eq(ptr %t277, ptr @.str8184) %t279 = icmp ne i32 %t278, 0 br i1 %t279, label %then276, label %ifend278 then276: store i32 15489024, ptr %retval br label %ret ifend278: %t280 = load ptr, ptr %t0 %t281 = call i32 @lp_str_eq(ptr %t280, ptr @.str8185) %t282 = icmp ne i32 %t281, 0 br i1 %t282, label %then279, label %ifend281 then279: store i32 16752172, ptr %retval br label %ret ifend281: %t283 = load ptr, ptr %t0 %t284 = call i32 @lp_str_eq(ptr %t283, ptr @.str8186) %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then282, label %ifend284 then282: store i32 16438949, ptr %retval br label %ret ifend284: %t286 = load ptr, ptr %t0 %t287 = call i32 @lp_str_eq(ptr %t286, ptr @.str8187) %t288 = icmp ne i32 %t287, 0 br i1 %t288, label %then285, label %ifend287 then285: store i32 16776960, ptr %retval br label %ret ifend287: %t289 = load ptr, ptr %t0 %t290 = call i32 @lp_str_eq(ptr %t289, ptr @.str8188) %t291 = icmp ne i32 %t290, 0 br i1 %t291, label %then288, label %ifend290 then288: store i32 16777184, ptr %retval br label %ret ifend290: %t292 = load ptr, ptr %t0 %t293 = call i32 @lp_str_eq(ptr %t292, ptr @.str8189) %t294 = icmp ne i32 %t293, 0 br i1 %t294, label %then291, label %ifend293 then291: store i32 16766720, ptr %retval br label %ret ifend293: %t295 = load ptr, ptr %t0 %t296 = call i32 @lp_str_eq(ptr %t295, ptr @.str8190) %t297 = icmp ne i32 %t296, 0 br i1 %t297, label %then294, label %ifend296 then294: store i32 14329120, ptr %retval br label %ret ifend296: %t298 = load ptr, ptr %t0 %t299 = call i32 @lp_str_eq(ptr %t298, ptr @.str8191) %t300 = icmp ne i32 %t299, 0 br i1 %t300, label %then297, label %ifend299 then297: store i32 16774912, ptr %retval br label %ret ifend299: %t301 = load ptr, ptr %t0 %t302 = call i32 @lp_str_eq(ptr %t301, ptr @.str8192) %t303 = icmp ne i32 %t302, 0 br i1 %t303, label %then300, label %ifend302 then300: store i32 16772864, ptr %retval br label %ret ifend302: %t304 = load ptr, ptr %t0 %t305 = call i32 @lp_str_eq(ptr %t304, ptr @.str8193) %t306 = icmp ne i32 %t305, 0 br i1 %t306, label %then303, label %ifend305 then303: store i32 16767832, ptr %retval br label %ret ifend305: %t307 = load ptr, ptr %t0 %t308 = call i32 @lp_str_eq(ptr %t307, ptr @.str8194) %t309 = icmp ne i32 %t308, 0 br i1 %t309, label %then306, label %ifend308 then306: store i32 15654018, ptr %retval br label %ret ifend308: %t310 = load ptr, ptr %t0 %t311 = call i32 @lp_str_eq(ptr %t310, ptr @.str8195) %t312 = icmp ne i32 %t311, 0 br i1 %t312, label %then309, label %ifend311 then309: store i32 16113331, ptr %retval br label %ret ifend311: %t313 = load ptr, ptr %t0 %t314 = call i32 @lp_str_eq(ptr %t313, ptr @.str8196) %t315 = icmp ne i32 %t314, 0 br i1 %t315, label %then312, label %ifend314 then312: store i32 16510045, ptr %retval br label %ret ifend314: %t316 = load ptr, ptr %t0 %t317 = call i32 @lp_str_eq(ptr %t316, ptr @.str8197) %t318 = icmp ne i32 %t317, 0 br i1 %t318, label %then315, label %ifend317 then315: store i32 15786288, ptr %retval br label %ret ifend317: %t319 = load ptr, ptr %t0 %t320 = call i32 @lp_str_eq(ptr %t319, ptr @.str8198) %t321 = icmp ne i32 %t320, 0 br i1 %t321, label %then318, label %ifend320 then318: store i32 16041008, ptr %retval br label %ret ifend320: %t322 = load ptr, ptr %t0 %t323 = call i32 @lp_str_eq(ptr %t322, ptr @.str8199) %t324 = icmp ne i32 %t323, 0 br i1 %t324, label %then321, label %ifend323 then321: store i32 15787660, ptr %retval br label %ret ifend323: %t325 = load ptr, ptr %t0 %t326 = call i32 @lp_str_eq(ptr %t325, ptr @.str8200) %t327 = icmp ne i32 %t326, 0 br i1 %t327, label %then324, label %ifend326 then324: store i32 12433259, ptr %retval br label %ret ifend326: %t328 = load ptr, ptr %t0 %t329 = call i32 @lp_str_eq(ptr %t328, ptr @.str8201) %t330 = icmp ne i32 %t329, 0 br i1 %t330, label %then327, label %ifend329 then327: store i32 14997871, ptr %retval br label %ret ifend329: %t331 = load ptr, ptr %t0 %t332 = call i32 @lp_str_eq(ptr %t331, ptr @.str8202) %t333 = icmp ne i32 %t332, 0 br i1 %t333, label %then330, label %ifend332 then330: store i32 9127187, ptr %retval br label %ret ifend332: %t334 = load ptr, ptr %t0 %t335 = call i32 @lp_str_eq(ptr %t334, ptr @.str8203) %t336 = icmp ne i32 %t335, 0 br i1 %t336, label %then333, label %ifend335 then333: store i32 9127187, ptr %retval br label %ret ifend335: %t337 = load ptr, ptr %t0 %t338 = call i32 @lp_str_eq(ptr %t337, ptr @.str8204) %t339 = icmp ne i32 %t338, 0 br i1 %t339, label %then336, label %ifend338 then336: store i32 10506797, ptr %retval br label %ret ifend338: %t340 = load ptr, ptr %t0 %t341 = call i32 @lp_str_eq(ptr %t340, ptr @.str8205) %t342 = icmp ne i32 %t341, 0 br i1 %t342, label %then339, label %ifend341 then339: store i32 13789470, ptr %retval br label %ret ifend341: %t343 = load ptr, ptr %t0 %t344 = call i32 @lp_str_eq(ptr %t343, ptr @.str8206) %t345 = icmp ne i32 %t344, 0 br i1 %t345, label %then342, label %ifend344 then342: store i32 13468991, ptr %retval br label %ret ifend344: %t346 = load ptr, ptr %t0 %t347 = call i32 @lp_str_eq(ptr %t346, ptr @.str8207) %t348 = icmp ne i32 %t347, 0 br i1 %t348, label %then345, label %ifend347 then345: store i32 13808780, ptr %retval br label %ret ifend347: %t349 = load ptr, ptr %t0 %t350 = call i32 @lp_str_eq(ptr %t349, ptr @.str8208) %t351 = icmp ne i32 %t350, 0 br i1 %t351, label %then348, label %ifend350 then348: store i32 14596231, ptr %retval br label %ret ifend350: %t352 = load ptr, ptr %t0 %t353 = call i32 @lp_str_eq(ptr %t352, ptr @.str8209) %t354 = icmp ne i32 %t353, 0 br i1 %t354, label %then351, label %ifend353 then351: store i32 12759680, ptr %retval br label %ret ifend353: %t355 = load ptr, ptr %t0 %t356 = call i32 @lp_str_eq(ptr %t355, ptr @.str8210) %t357 = icmp ne i32 %t356, 0 br i1 %t357, label %then354, label %ifend356 then354: store i32 7294519, ptr %retval br label %ret ifend356: %t358 = load ptr, ptr %t0 %t359 = call i32 @lp_str_eq(ptr %t358, ptr @.str8211) %t360 = icmp ne i32 %t359, 0 br i1 %t360, label %then357, label %ifend359 then357: store i32 4929057, ptr %retval br label %ret ifend359: %t361 = load ptr, ptr %t0 %t362 = call i32 @lp_str_eq(ptr %t361, ptr @.str8212) %t363 = icmp ne i32 %t362, 0 br i1 %t363, label %then360, label %ifend362 then360: store i32 12599296, ptr %retval br label %ret ifend362: %t364 = load ptr, ptr %t0 %t365 = call i32 @lp_str_eq(ptr %t364, ptr @.str8213) %t366 = icmp ne i32 %t365, 0 br i1 %t366, label %then363, label %ifend365 then363: store i32 7814938, ptr %retval br label %ret ifend365: %t367 = load ptr, ptr %t0 %t368 = call i32 @lp_str_eq(ptr %t367, ptr @.str8214) %t369 = icmp ne i32 %t368, 0 br i1 %t369, label %then366, label %ifend368 then366: store i32 6508871, ptr %retval br label %ret ifend368: %t370 = load ptr, ptr %t0 %t371 = call i32 @lp_str_eq(ptr %t370, ptr @.str8215) %t372 = icmp ne i32 %t371, 0 br i1 %t372, label %then369, label %ifend371 then369: store i32 7356948, ptr %retval br label %ret ifend371: %t373 = load ptr, ptr %t0 %t374 = call i32 @lp_str_eq(ptr %t373, ptr @.str8216) %t375 = icmp ne i32 %t374, 0 br i1 %t375, label %then372, label %ifend374 then372: store i32 4734002, ptr %retval br label %ret ifend374: %t376 = load ptr, ptr %t0 %t377 = call i32 @lp_str_eq(ptr %t376, ptr @.str8217) %t378 = icmp ne i32 %t377, 0 br i1 %t378, label %then375, label %ifend377 then375: store i32 15051376, ptr %retval br label %ret ifend377: %t379 = load ptr, ptr %t0 %t380 = call i32 @lp_str_eq(ptr %t379, ptr @.str8218) %t381 = icmp ne i32 %t380, 0 br i1 %t381, label %then378, label %ifend380 then378: store i32 13012503, ptr %retval br label %ret ifend380: %t382 = load ptr, ptr %t0 %t383 = call i32 @lp_str_eq(ptr %t382, ptr @.str8219) %t384 = icmp ne i32 %t383, 0 br i1 %t384, label %then381, label %ifend383 then381: store i32 13789470, ptr %retval br label %ret ifend383: %t385 = load ptr, ptr %t0 %t386 = call i32 @lp_str_eq(ptr %t385, ptr @.str8220) %t387 = icmp ne i32 %t386, 0 br i1 %t387, label %then384, label %ifend386 then384: store i32 9336344, ptr %retval br label %ret ifend386: %t388 = load ptr, ptr %t0 %t389 = call i32 @lp_str_eq(ptr %t388, ptr @.str8221) %t390 = icmp ne i32 %t389, 0 br i1 %t390, label %then387, label %ifend389 then387: store i32 6575186, ptr %retval br label %ret ifend389: %t391 = load ptr, ptr %t0 %t392 = call i32 @lp_str_eq(ptr %t391, ptr @.str8222) %t393 = icmp ne i32 %t392, 0 br i1 %t393, label %then390, label %ifend392 then390: store i32 32768, ptr %retval br label %ret ifend392: %t394 = load ptr, ptr %t0 %t395 = call i32 @lp_str_eq(ptr %t394, ptr @.str8223) %t396 = icmp ne i32 %t395, 0 br i1 %t396, label %then393, label %ifend395 then393: store i32 65280, ptr %retval br label %ret ifend395: %t397 = load ptr, ptr %t0 %t398 = call i32 @lp_str_eq(ptr %t397, ptr @.str8224) %t399 = icmp ne i32 %t398, 0 br i1 %t399, label %then396, label %ifend398 then396: store i32 3329330, ptr %retval br label %ret ifend398: %t400 = load ptr, ptr %t0 %t401 = call i32 @lp_str_eq(ptr %t400, ptr @.str8225) %t402 = icmp ne i32 %t401, 0 br i1 %t402, label %then399, label %ifend401 then399: store i32 8190976, ptr %retval br label %ret ifend401: %t403 = load ptr, ptr %t0 %t404 = call i32 @lp_str_eq(ptr %t403, ptr @.str8226) %t405 = icmp ne i32 %t404, 0 br i1 %t405, label %then402, label %ifend404 then402: store i32 8388352, ptr %retval br label %ret ifend404: %t406 = load ptr, ptr %t0 %t407 = call i32 @lp_str_eq(ptr %t406, ptr @.str8227) %t408 = icmp ne i32 %t407, 0 br i1 %t408, label %then405, label %ifend407 then405: store i32 11403055, ptr %retval br label %ret ifend407: %t409 = load ptr, ptr %t0 %t410 = call i32 @lp_str_eq(ptr %t409, ptr @.str8228) %t411 = icmp ne i32 %t410, 0 br i1 %t411, label %then408, label %ifend410 then408: store i32 65407, ptr %retval br label %ret ifend410: %t412 = load ptr, ptr %t0 %t413 = call i32 @lp_str_eq(ptr %t412, ptr @.str8229) %t414 = icmp ne i32 %t413, 0 br i1 %t414, label %then411, label %ifend413 then411: store i32 10026904, ptr %retval br label %ret ifend413: %t415 = load ptr, ptr %t0 %t416 = call i32 @lp_str_eq(ptr %t415, ptr @.str8230) %t417 = icmp ne i32 %t416, 0 br i1 %t417, label %then414, label %ifend416 then414: store i32 3050327, ptr %retval br label %ret ifend416: %t418 = load ptr, ptr %t0 %t419 = call i32 @lp_str_eq(ptr %t418, ptr @.str8231) %t420 = icmp ne i32 %t419, 0 br i1 %t420, label %then417, label %ifend419 then417: store i32 3978097, ptr %retval br label %ret ifend419: %t421 = load ptr, ptr %t0 %t422 = call i32 @lp_str_eq(ptr %t421, ptr @.str8232) %t423 = icmp ne i32 %t422, 0 br i1 %t423, label %then420, label %ifend422 then420: store i32 2263842, ptr %retval br label %ret ifend422: %t424 = load ptr, ptr %t0 %t425 = call i32 @lp_str_eq(ptr %t424, ptr @.str8233) %t426 = icmp ne i32 %t425, 0 br i1 %t426, label %then423, label %ifend425 then423: store i32 25600, ptr %retval br label %ret ifend425: %t427 = load ptr, ptr %t0 %t428 = call i32 @lp_str_eq(ptr %t427, ptr @.str8234) %t429 = icmp ne i32 %t428, 0 br i1 %t429, label %then426, label %ifend428 then426: store i32 7048739, ptr %retval br label %ret ifend428: %t430 = load ptr, ptr %t0 %t431 = call i32 @lp_str_eq(ptr %t430, ptr @.str8235) %t432 = icmp ne i32 %t431, 0 br i1 %t432, label %then429, label %ifend431 then429: store i32 8421376, ptr %retval br label %ret ifend431: %t433 = load ptr, ptr %t0 %t434 = call i32 @lp_str_eq(ptr %t433, ptr @.str8236) %t435 = icmp ne i32 %t434, 0 br i1 %t435, label %then432, label %ifend434 then432: store i32 9083483, ptr %retval br label %ret ifend434: %t436 = load ptr, ptr %t0 %t437 = call i32 @lp_str_eq(ptr %t436, ptr @.str8237) %t438 = icmp ne i32 %t437, 0 br i1 %t438, label %then435, label %ifend437 then435: store i32 5208386, ptr %retval br label %ret ifend437: %t439 = load ptr, ptr %t0 %t440 = call i32 @lp_str_eq(ptr %t439, ptr @.str8238) %t441 = icmp ne i32 %t440, 0 br i1 %t441, label %then438, label %ifend440 then438: store i32 5294200, ptr %retval br label %ret ifend440: %t442 = load ptr, ptr %t0 %t443 = call i32 @lp_str_eq(ptr %t442, ptr @.str8239) %t444 = icmp ne i32 %t443, 0 br i1 %t444, label %then441, label %ifend443 then441: store i32 43115, ptr %retval br label %ret ifend443: %t445 = load ptr, ptr %t0 %t446 = call i32 @lp_str_eq(ptr %t445, ptr @.str8240) %t447 = icmp ne i32 %t446, 0 br i1 %t447, label %then444, label %ifend446 then444: store i32 776785, ptr %retval br label %ret ifend446: %t448 = load ptr, ptr %t0 %t449 = call i32 @lp_str_eq(ptr %t448, ptr @.str8241) %t450 = icmp ne i32 %t449, 0 br i1 %t450, label %then447, label %ifend449 then447: store i32 40544, ptr %retval br label %ret ifend449: %t451 = load ptr, ptr %t0 %t452 = call i32 @lp_str_eq(ptr %t451, ptr @.str8242) %t453 = icmp ne i32 %t452, 0 br i1 %t453, label %then450, label %ifend452 then450: store i32 9684338, ptr %retval br label %ret ifend452: %t454 = load ptr, ptr %t0 %t455 = call i32 @lp_str_eq(ptr %t454, ptr @.str8243) %t456 = icmp ne i32 %t455, 0 br i1 %t456, label %then453, label %ifend455 then453: store i32 5669379, ptr %retval br label %ret ifend455: %t457 = load ptr, ptr %t0 %t458 = call i32 @lp_str_eq(ptr %t457, ptr @.str8244) %t459 = icmp ne i32 %t458, 0 br i1 %t459, label %then456, label %ifend458 then456: store i32 96623, ptr %retval br label %ret ifend458: %t460 = load ptr, ptr %t0 %t461 = call i32 @lp_str_eq(ptr %t460, ptr @.str8245) %t462 = icmp ne i32 %t461, 0 br i1 %t462, label %then459, label %ifend461 then459: store i32 10268552, ptr %retval br label %ret ifend461: %t463 = load ptr, ptr %t0 %t464 = call i32 @lp_str_eq(ptr %t463, ptr @.str8246) %t465 = icmp ne i32 %t464, 0 br i1 %t465, label %then462, label %ifend464 then462: store i32 5028631, ptr %retval br label %ret ifend464: %t466 = load ptr, ptr %t0 %t467 = call i32 @lp_str_eq(ptr %t466, ptr @.str8247) %t468 = icmp ne i32 %t467, 0 br i1 %t468, label %then465, label %ifend467 then465: store i32 3497531, ptr %retval br label %ret ifend467: %t469 = load ptr, ptr %t0 %t470 = call i32 @lp_str_eq(ptr %t469, ptr @.str8248) %t471 = icmp ne i32 %t470, 0 br i1 %t471, label %then468, label %ifend470 then468: store i32 5739049, ptr %retval br label %ret ifend470: %t472 = load ptr, ptr %t0 %t473 = call i32 @lp_str_eq(ptr %t472, ptr @.str8249) %t474 = icmp ne i32 %t473, 0 br i1 %t474, label %then471, label %ifend473 then471: store i32 3050327, ptr %retval br label %ret ifend473: %t475 = load ptr, ptr %t0 %t476 = call i32 @lp_str_eq(ptr %t475, ptr @.str8250) %t477 = icmp ne i32 %t476, 0 br i1 %t477, label %then474, label %ifend476 then474: store i32 7182969, ptr %retval br label %ret ifend476: %t478 = load ptr, ptr %t0 %t479 = call i32 @lp_str_eq(ptr %t478, ptr @.str8251) %t480 = icmp ne i32 %t479, 0 br i1 %t480, label %then477, label %ifend479 then477: store i32 3800852, ptr %retval br label %ret ifend479: %t481 = load ptr, ptr %t0 %t482 = call i32 @lp_str_eq(ptr %t481, ptr @.str8252) %t483 = icmp ne i32 %t482, 0 br i1 %t483, label %then480, label %ifend482 then480: store i32 65535, ptr %retval br label %ret ifend482: %t484 = load ptr, ptr %t0 %t485 = call i32 @lp_str_eq(ptr %t484, ptr @.str8253) %t486 = icmp ne i32 %t485, 0 br i1 %t486, label %then483, label %ifend485 then483: store i32 65535, ptr %retval br label %ret ifend485: %t487 = load ptr, ptr %t0 %t488 = call i32 @lp_str_eq(ptr %t487, ptr @.str8254) %t489 = icmp ne i32 %t488, 0 br i1 %t489, label %then486, label %ifend488 then486: store i32 14745599, ptr %retval br label %ret ifend488: %t490 = load ptr, ptr %t0 %t491 = call i32 @lp_str_eq(ptr %t490, ptr @.str8255) %t492 = icmp ne i32 %t491, 0 br i1 %t492, label %then489, label %ifend491 then489: store i32 11529966, ptr %retval br label %ret ifend491: %t493 = load ptr, ptr %t0 %t494 = call i32 @lp_str_eq(ptr %t493, ptr @.str8256) %t495 = icmp ne i32 %t494, 0 br i1 %t495, label %then492, label %ifend494 then492: store i32 8388564, ptr %retval br label %ret ifend494: %t496 = load ptr, ptr %t0 %t497 = call i32 @lp_str_eq(ptr %t496, ptr @.str8257) %t498 = icmp ne i32 %t497, 0 br i1 %t498, label %then495, label %ifend497 then495: store i32 4251856, ptr %retval br label %ret ifend497: %t499 = load ptr, ptr %t0 %t500 = call i32 @lp_str_eq(ptr %t499, ptr @.str8258) %t501 = icmp ne i32 %t500, 0 br i1 %t501, label %then498, label %ifend500 then498: store i32 4772300, ptr %retval br label %ret ifend500: %t502 = load ptr, ptr %t0 %t503 = call i32 @lp_str_eq(ptr %t502, ptr @.str8259) %t504 = icmp ne i32 %t503, 0 br i1 %t504, label %then501, label %ifend503 then501: store i32 52945, ptr %retval br label %ret ifend503: %t505 = load ptr, ptr %t0 %t506 = call i32 @lp_str_eq(ptr %t505, ptr @.str8260) %t507 = icmp ne i32 %t506, 0 br i1 %t507, label %then504, label %ifend506 then504: store i32 32896, ptr %retval br label %ret ifend506: %t508 = load ptr, ptr %t0 %t509 = call i32 @lp_str_eq(ptr %t508, ptr @.str8261) %t510 = icmp ne i32 %t509, 0 br i1 %t510, label %then507, label %ifend509 then507: store i32 35723, ptr %retval br label %ret ifend509: %t511 = load ptr, ptr %t0 %t512 = call i32 @lp_str_eq(ptr %t511, ptr @.str8262) %t513 = icmp ne i32 %t512, 0 br i1 %t513, label %then510, label %ifend512 then510: store i32 6266528, ptr %retval br label %ret ifend512: %t514 = load ptr, ptr %t0 %t515 = call i32 @lp_str_eq(ptr %t514, ptr @.str8263) %t516 = icmp ne i32 %t515, 0 br i1 %t516, label %then513, label %ifend515 then513: store i32 102030, ptr %retval br label %ret ifend515: %t517 = load ptr, ptr %t0 %t518 = call i32 @lp_str_eq(ptr %t517, ptr @.str8264) %t519 = icmp ne i32 %t518, 0 br i1 %t519, label %then516, label %ifend518 then516: store i32 9693630, ptr %retval br label %ret ifend518: %t520 = load ptr, ptr %t0 %t521 = call i32 @lp_str_eq(ptr %t520, ptr @.str8265) %t522 = icmp ne i32 %t521, 0 br i1 %t522, label %then519, label %ifend521 then519: store i32 31655, ptr %retval br label %ret ifend521: %t523 = load ptr, ptr %t0 %t524 = call i32 @lp_str_eq(ptr %t523, ptr @.str8266) %t525 = icmp ne i32 %t524, 0 br i1 %t525, label %then522, label %ifend524 then522: store i32 8444651, ptr %retval br label %ret ifend524: %t526 = load ptr, ptr %t0 %t527 = call i32 @lp_str_eq(ptr %t526, ptr @.str8267) %t528 = icmp ne i32 %t527, 0 br i1 %t528, label %then525, label %ifend527 then525: store i32 52428, ptr %retval br label %ret ifend527: %t529 = load ptr, ptr %t0 %t530 = call i32 @lp_str_eq(ptr %t529, ptr @.str8268) %t531 = icmp ne i32 %t530, 0 br i1 %t531, label %then528, label %ifend530 then528: store i32 4436910, ptr %retval br label %ret ifend530: %t532 = load ptr, ptr %t0 %t533 = call i32 @lp_str_eq(ptr %t532, ptr @.str8269) %t534 = icmp ne i32 %t533, 0 br i1 %t534, label %then531, label %ifend533 then531: store i32 11329967, ptr %retval br label %ret ifend533: %t535 = load ptr, ptr %t0 %t536 = call i32 @lp_str_eq(ptr %t535, ptr @.str8270) %t537 = icmp ne i32 %t536, 0 br i1 %t537, label %then534, label %ifend536 then534: store i32 255, ptr %retval br label %ret ifend536: %t538 = load ptr, ptr %t0 %t539 = call i32 @lp_str_eq(ptr %t538, ptr @.str8271) %t540 = icmp ne i32 %t539, 0 br i1 %t540, label %then537, label %ifend539 then537: store i32 11393254, ptr %retval br label %ret ifend539: %t541 = load ptr, ptr %t0 %t542 = call i32 @lp_str_eq(ptr %t541, ptr @.str8272) %t543 = icmp ne i32 %t542, 0 br i1 %t543, label %then540, label %ifend542 then540: store i32 11591910, ptr %retval br label %ret ifend542: %t544 = load ptr, ptr %t0 %t545 = call i32 @lp_str_eq(ptr %t544, ptr @.str8273) %t546 = icmp ne i32 %t545, 0 br i1 %t546, label %then543, label %ifend545 then543: store i32 8900331, ptr %retval br label %ret ifend545: %t547 = load ptr, ptr %t0 %t548 = call i32 @lp_str_eq(ptr %t547, ptr @.str8274) %t549 = icmp ne i32 %t548, 0 br i1 %t549, label %then546, label %ifend548 then546: store i32 8900346, ptr %retval br label %ret ifend548: %t550 = load ptr, ptr %t0 %t551 = call i32 @lp_str_eq(ptr %t550, ptr @.str8275) %t552 = icmp ne i32 %t551, 0 br i1 %t552, label %then549, label %ifend551 then549: store i32 49151, ptr %retval br label %ret ifend551: %t553 = load ptr, ptr %t0 %t554 = call i32 @lp_str_eq(ptr %t553, ptr @.str8276) %t555 = icmp ne i32 %t554, 0 br i1 %t555, label %then552, label %ifend554 then552: store i32 2003199, ptr %retval br label %ret ifend554: %t556 = load ptr, ptr %t0 %t557 = call i32 @lp_str_eq(ptr %t556, ptr @.str8277) %t558 = icmp ne i32 %t557, 0 br i1 %t558, label %then555, label %ifend557 then555: store i32 6591981, ptr %retval br label %ret ifend557: %t559 = load ptr, ptr %t0 %t560 = call i32 @lp_str_eq(ptr %t559, ptr @.str8278) %t561 = icmp ne i32 %t560, 0 br i1 %t561, label %then558, label %ifend560 then558: store i32 4620980, ptr %retval br label %ret ifend560: %t562 = load ptr, ptr %t0 %t563 = call i32 @lp_str_eq(ptr %t562, ptr @.str8279) %t564 = icmp ne i32 %t563, 0 br i1 %t564, label %then561, label %ifend563 then561: store i32 4286945, ptr %retval br label %ret ifend563: %t565 = load ptr, ptr %t0 %t566 = call i32 @lp_str_eq(ptr %t565, ptr @.str8280) %t567 = icmp ne i32 %t566, 0 br i1 %t567, label %then564, label %ifend566 then564: store i32 205, ptr %retval br label %ret ifend566: %t568 = load ptr, ptr %t0 %t569 = call i32 @lp_str_eq(ptr %t568, ptr @.str8281) %t570 = icmp ne i32 %t569, 0 br i1 %t570, label %then567, label %ifend569 then567: store i32 139, ptr %retval br label %ret ifend569: %t571 = load ptr, ptr %t0 %t572 = call i32 @lp_str_eq(ptr %t571, ptr @.str8282) %t573 = icmp ne i32 %t572, 0 br i1 %t573, label %then570, label %ifend572 then570: store i32 128, ptr %retval br label %ret ifend572: %t574 = load ptr, ptr %t0 %t575 = call i32 @lp_str_eq(ptr %t574, ptr @.str8283) %t576 = icmp ne i32 %t575, 0 br i1 %t576, label %then573, label %ifend575 then573: store i32 1644912, ptr %retval br label %ret ifend575: %t577 = load ptr, ptr %t0 %t578 = call i32 @lp_str_eq(ptr %t577, ptr @.str8284) %t579 = icmp ne i32 %t578, 0 br i1 %t579, label %then576, label %ifend578 then576: store i32 18347, ptr %retval br label %ret ifend578: %t580 = load ptr, ptr %t0 %t581 = call i32 @lp_str_eq(ptr %t580, ptr @.str8285) %t582 = icmp ne i32 %t581, 0 br i1 %t582, label %then579, label %ifend581 then579: store i32 1004218, ptr %retval br label %ret ifend581: %t583 = load ptr, ptr %t0 %t584 = call i32 @lp_str_eq(ptr %t583, ptr @.str8286) %t585 = icmp ne i32 %t584, 0 br i1 %t585, label %then582, label %ifend584 then582: store i32 1401021, ptr %retval br label %ret ifend584: %t586 = load ptr, ptr %t0 %t587 = call i32 @lp_str_eq(ptr %t586, ptr @.str8287) %t588 = icmp ne i32 %t587, 0 br i1 %t588, label %then585, label %ifend587 then585: store i32 4915330, ptr %retval br label %ret ifend587: %t589 = load ptr, ptr %t0 %t590 = call i32 @lp_str_eq(ptr %t589, ptr @.str8288) %t591 = icmp ne i32 %t590, 0 br i1 %t591, label %then588, label %ifend590 then588: store i32 12627, ptr %retval br label %ret ifend590: %t592 = load ptr, ptr %t0 %t593 = call i32 @lp_str_eq(ptr %t592, ptr @.str8289) %t594 = icmp ne i32 %t593, 0 br i1 %t594, label %then591, label %ifend593 then591: store i32 4129023, ptr %retval br label %ret ifend593: %t595 = load ptr, ptr %t0 %t596 = call i32 @lp_str_eq(ptr %t595, ptr @.str8290) %t597 = icmp ne i32 %t596, 0 br i1 %t597, label %then594, label %ifend596 then594: store i32 13421823, ptr %retval br label %ret ifend596: %t598 = load ptr, ptr %t0 %t599 = call i32 @lp_str_eq(ptr %t598, ptr @.str8291) %t600 = icmp ne i32 %t599, 0 br i1 %t600, label %then597, label %ifend599 then597: store i32 5918671, ptr %retval br label %ret ifend599: %t601 = load ptr, ptr %t0 %t602 = call i32 @lp_str_eq(ptr %t601, ptr @.str8292) %t603 = icmp ne i32 %t602, 0 br i1 %t603, label %then600, label %ifend602 then600: store i32 6324918, ptr %retval br label %ret ifend602: %t604 = load ptr, ptr %t0 %t605 = call i32 @lp_str_eq(ptr %t604, ptr @.str8293) %t606 = icmp ne i32 %t605, 0 br i1 %t606, label %then603, label %ifend605 then603: store i32 5288, ptr %retval br label %ret ifend605: %t607 = load ptr, ptr %t0 %t608 = call i32 @lp_str_eq(ptr %t607, ptr @.str8294) %t609 = icmp ne i32 %t608, 0 br i1 %t609, label %then606, label %ifend608 then606: store i32 3026312, ptr %retval br label %ret ifend608: %t610 = load ptr, ptr %t0 %t611 = call i32 @lp_str_eq(ptr %t610, ptr @.str8295) %t612 = icmp ne i32 %t611, 0 br i1 %t612, label %then609, label %ifend611 then609: store i32 8388736, ptr %retval br label %ret ifend611: %t613 = load ptr, ptr %t0 %t614 = call i32 @lp_str_eq(ptr %t613, ptr @.str8296) %t615 = icmp ne i32 %t614, 0 br i1 %t615, label %then612, label %ifend614 then612: store i32 15631086, ptr %retval br label %ret ifend614: %t616 = load ptr, ptr %t0 %t617 = call i32 @lp_str_eq(ptr %t616, ptr @.str8297) %t618 = icmp ne i32 %t617, 0 br i1 %t618, label %then615, label %ifend617 then615: store i32 9699539, ptr %retval br label %ret ifend617: %t619 = load ptr, ptr %t0 %t620 = call i32 @lp_str_eq(ptr %t619, ptr @.str8298) %t621 = icmp ne i32 %t620, 0 br i1 %t621, label %then618, label %ifend620 then618: store i32 9055202, ptr %retval br label %ret ifend620: %t622 = load ptr, ptr %t0 %t623 = call i32 @lp_str_eq(ptr %t622, ptr @.str8299) %t624 = icmp ne i32 %t623, 0 br i1 %t624, label %then621, label %ifend623 then621: store i32 9662683, ptr %retval br label %ret ifend623: %t625 = load ptr, ptr %t0 %t626 = call i32 @lp_str_eq(ptr %t625, ptr @.str8300) %t627 = icmp ne i32 %t626, 0 br i1 %t627, label %then624, label %ifend626 then624: store i32 10053324, ptr %retval br label %ret ifend626: %t628 = load ptr, ptr %t0 %t629 = call i32 @lp_str_eq(ptr %t628, ptr @.str8301) %t630 = icmp ne i32 %t629, 0 br i1 %t630, label %then627, label %ifend629 then627: store i32 9323909, ptr %retval br label %ret ifend629: %t631 = load ptr, ptr %t0 %t632 = call i32 @lp_str_eq(ptr %t631, ptr @.str8302) %t633 = icmp ne i32 %t632, 0 br i1 %t633, label %then630, label %ifend632 then630: store i32 6373457, ptr %retval br label %ret ifend632: %t634 = load ptr, ptr %t0 %t635 = call i32 @lp_str_eq(ptr %t634, ptr @.str8303) %t636 = icmp ne i32 %t635, 0 br i1 %t636, label %then633, label %ifend635 then633: store i32 7286184, ptr %retval br label %ret ifend635: %t637 = load ptr, ptr %t0 %t638 = call i32 @lp_str_eq(ptr %t637, ptr @.str8304) %t639 = icmp ne i32 %t638, 0 br i1 %t639, label %then636, label %ifend638 then636: store i32 7483191, ptr %retval br label %ret ifend638: %t640 = load ptr, ptr %t0 %t641 = call i32 @lp_str_eq(ptr %t640, ptr @.str8305) %t642 = icmp ne i32 %t641, 0 br i1 %t642, label %then639, label %ifend641 then639: store i32 12929932, ptr %retval br label %ret ifend641: %t643 = load ptr, ptr %t0 %t644 = call i32 @lp_str_eq(ptr %t643, ptr @.str8306) %t645 = icmp ne i32 %t644, 0 br i1 %t645, label %then642, label %ifend644 then642: store i32 13148872, ptr %retval br label %ret ifend644: %t646 = load ptr, ptr %t0 %t647 = call i32 @lp_str_eq(ptr %t646, ptr @.str8307) %t648 = icmp ne i32 %t647, 0 br i1 %t648, label %then645, label %ifend647 then645: store i32 13213916, ptr %retval br label %ret ifend647: %t649 = load ptr, ptr %t0 %t650 = call i32 @lp_str_eq(ptr %t649, ptr @.str8308) %t651 = icmp ne i32 %t650, 0 br i1 %t651, label %then648, label %ifend650 then648: store i32 14644223, ptr %retval br label %ret ifend650: %t652 = load ptr, ptr %t0 %t653 = call i32 @lp_str_eq(ptr %t652, ptr @.str8309) %t654 = icmp ne i32 %t653, 0 br i1 %t654, label %then651, label %ifend653 then651: store i32 7350627, ptr %retval br label %ret ifend653: %t655 = load ptr, ptr %t0 %t656 = call i32 @lp_str_eq(ptr %t655, ptr @.str8310) %t657 = icmp ne i32 %t656, 0 br i1 %t657, label %then654, label %ifend656 then654: store i32 6685244, ptr %retval br label %ret ifend656: %t658 = load ptr, ptr %t0 %t659 = call i32 @lp_str_eq(ptr %t658, ptr @.str8311) %t660 = icmp ne i32 %t659, 0 br i1 %t660, label %then657, label %ifend659 then657: store i32 6697881, ptr %retval br label %ret ifend659: %t661 = load ptr, ptr %t0 %t662 = call i32 @lp_str_eq(ptr %t661, ptr @.str8312) %t663 = icmp ne i32 %t662, 0 br i1 %t663, label %then660, label %ifend662 then660: store i32 11495919, ptr %retval br label %ret ifend662: %t664 = sub i32 0, 1 store i32 %t664, ptr %retval br label %ret ret: %t665 = load i32, ptr %retval ret i32 %t665 } define i32 @fn_key_lookup(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t180 = alloca i32 %t181 = alloca i32 store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str8313) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 32, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str8314) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store i32 10, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str8315) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store i32 10, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str8316) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store i32 27, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str8317) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store i32 27, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str8318) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: store i32 16, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str8319) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: store i32 9, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str8320) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: store i32 8, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str8321) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: store i32 128, ptr %retval br label %ret ifend26: %t28 = load ptr, ptr %t0 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str8322) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then27, label %ifend29 then27: store i32 129, ptr %retval br label %ret ifend29: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str8323) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then30, label %ifend32 then30: store i32 130, ptr %retval br label %ret ifend32: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str8324) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then33, label %ifend35 then33: store i32 131, ptr %retval br label %ret ifend35: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str8325) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then36, label %ifend38 then36: store i32 132, ptr %retval br label %ret ifend38: %t40 = load ptr, ptr %t0 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str8326) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then39, label %ifend41 then39: store i32 133, ptr %retval br label %ret ifend41: %t43 = load ptr, ptr %t0 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str8327) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then42, label %ifend44 then42: store i32 134, ptr %retval br label %ret ifend44: %t46 = load ptr, ptr %t0 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str8328) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then45, label %ifend47 then45: store i32 135, ptr %retval br label %ret ifend47: %t49 = load ptr, ptr %t0 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str8329) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then48, label %ifend50 then48: store i32 136, ptr %retval br label %ret ifend50: %t52 = load ptr, ptr %t0 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str8330) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then51, label %ifend53 then51: store i32 137, ptr %retval br label %ret ifend53: %t55 = load ptr, ptr %t0 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str8331) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then54, label %ifend56 then54: store i32 138, ptr %retval br label %ret ifend56: %t58 = load ptr, ptr %t0 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str8332) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then57, label %ifend59 then57: store i32 139, ptr %retval br label %ret ifend59: %t61 = load ptr, ptr %t0 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str8333) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then60, label %ifend62 then60: store i32 140, ptr %retval br label %ret ifend62: %t64 = load ptr, ptr %t0 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str8334) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then63, label %ifend65 then63: store i32 141, ptr %retval br label %ret ifend65: %t67 = load ptr, ptr %t0 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str8335) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then66, label %ifend68 then66: store i32 142, ptr %retval br label %ret ifend68: %t70 = load ptr, ptr %t0 %t71 = call i32 @lp_str_eq(ptr %t70, ptr @.str8336) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then69, label %ifend71 then69: store i32 143, ptr %retval br label %ret ifend71: %t73 = load ptr, ptr %t0 %t74 = call i32 @lp_str_eq(ptr %t73, ptr @.str8337) %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then72, label %ifend74 then72: store i32 144, ptr %retval br label %ret ifend74: %t76 = load ptr, ptr %t0 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str8338) %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then75, label %ifend77 then75: store i32 145, ptr %retval br label %ret ifend77: %t79 = load ptr, ptr %t0 %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str8339) %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then78, label %ifend80 then78: store i32 146, ptr %retval br label %ret ifend80: %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t82, ptr @.str8340) %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then81, label %ifend83 then81: store i32 147, ptr %retval br label %ret ifend83: %t85 = load ptr, ptr %t0 %t86 = call i32 @lp_str_eq(ptr %t85, ptr @.str8341) %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then84, label %ifend86 then84: store i32 148, ptr %retval br label %ret ifend86: %t88 = load ptr, ptr %t0 %t89 = call i32 @lp_str_eq(ptr %t88, ptr @.str8342) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then87, label %ifend89 then87: store i32 149, ptr %retval br label %ret ifend89: %t91 = load ptr, ptr %t0 %t92 = call i32 @lp_str_eq(ptr %t91, ptr @.str8343) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then90, label %ifend92 then90: store i32 150, ptr %retval br label %ret ifend92: %t94 = load ptr, ptr %t0 %t95 = call i32 @lp_str_eq(ptr %t94, ptr @.str8344) %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %then93, label %ifend95 then93: store i32 152, ptr %retval br label %ret ifend95: %t97 = load ptr, ptr %t0 %t98 = call i32 @lp_str_eq(ptr %t97, ptr @.str8345) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then96, label %ifend98 then96: store i32 153, ptr %retval br label %ret ifend98: %t100 = load ptr, ptr %t0 %t101 = call i32 @lp_str_eq(ptr %t100, ptr @.str8346) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then99, label %ifend101 then99: store i32 154, ptr %retval br label %ret ifend101: %t103 = load ptr, ptr %t0 %t104 = call i32 @lp_str_eq(ptr %t103, ptr @.str8347) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then102, label %ifend104 then102: store i32 155, ptr %retval br label %ret ifend104: %t106 = load ptr, ptr %t0 %t107 = call i32 @lp_str_eq(ptr %t106, ptr @.str8348) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then105, label %ifend107 then105: store i32 156, ptr %retval br label %ret ifend107: %t109 = load ptr, ptr %t0 %t110 = call i32 @lp_str_eq(ptr %t109, ptr @.str8349) %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then108, label %ifend110 then108: store i32 157, ptr %retval br label %ret ifend110: %t112 = load ptr, ptr %t0 %t113 = call i32 @lp_str_eq(ptr %t112, ptr @.str8350) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then111, label %ifend113 then111: store i32 158, ptr %retval br label %ret ifend113: %t115 = load ptr, ptr %t0 %t116 = call i32 @lp_str_eq(ptr %t115, ptr @.str8351) %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then114, label %ifend116 then114: store i32 159, ptr %retval br label %ret ifend116: %t118 = load ptr, ptr %t0 %t119 = call i32 @lp_str_eq(ptr %t118, ptr @.str8352) %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then117, label %ifend119 then117: store i32 160, ptr %retval br label %ret ifend119: %t121 = load ptr, ptr %t0 %t122 = call i32 @lp_str_eq(ptr %t121, ptr @.str8353) %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then120, label %ifend122 then120: store i32 161, ptr %retval br label %ret ifend122: %t124 = load ptr, ptr %t0 %t125 = call i32 @lp_str_eq(ptr %t124, ptr @.str8354) %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then123, label %ifend125 then123: store i32 162, ptr %retval br label %ret ifend125: %t127 = load ptr, ptr %t0 %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str8355) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then126, label %ifend128 then126: store i32 163, ptr %retval br label %ret ifend128: %t130 = load ptr, ptr %t0 %t131 = call i32 @lp_str_eq(ptr %t130, ptr @.str8356) %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then129, label %ifend131 then129: store i32 164, ptr %retval br label %ret ifend131: %t133 = load ptr, ptr %t0 %t134 = call i32 @lp_str_eq(ptr %t133, ptr @.str8357) %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then132, label %ifend134 then132: store i32 165, ptr %retval br label %ret ifend134: %t136 = load ptr, ptr %t0 %t137 = call i32 @lp_str_eq(ptr %t136, ptr @.str8358) %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then135, label %ifend137 then135: store i32 166, ptr %retval br label %ret ifend137: %t139 = load ptr, ptr %t0 %t140 = call i32 @lp_str_eq(ptr %t139, ptr @.str8359) %t141 = icmp ne i32 %t140, 0 br i1 %t141, label %then138, label %ifend140 then138: store i32 48, ptr %retval br label %ret ifend140: %t142 = load ptr, ptr %t0 %t143 = call i32 @lp_str_eq(ptr %t142, ptr @.str8360) %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %then141, label %ifend143 then141: store i32 49, ptr %retval br label %ret ifend143: %t145 = load ptr, ptr %t0 %t146 = call i32 @lp_str_eq(ptr %t145, ptr @.str8361) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then144, label %ifend146 then144: store i32 50, ptr %retval br label %ret ifend146: %t148 = load ptr, ptr %t0 %t149 = call i32 @lp_str_eq(ptr %t148, ptr @.str8362) %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %then147, label %ifend149 then147: store i32 51, ptr %retval br label %ret ifend149: %t151 = load ptr, ptr %t0 %t152 = call i32 @lp_str_eq(ptr %t151, ptr @.str8363) %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then150, label %ifend152 then150: store i32 52, ptr %retval br label %ret ifend152: %t154 = load ptr, ptr %t0 %t155 = call i32 @lp_str_eq(ptr %t154, ptr @.str8364) %t156 = icmp ne i32 %t155, 0 br i1 %t156, label %then153, label %ifend155 then153: store i32 53, ptr %retval br label %ret ifend155: %t157 = load ptr, ptr %t0 %t158 = call i32 @lp_str_eq(ptr %t157, ptr @.str8365) %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then156, label %ifend158 then156: store i32 54, ptr %retval br label %ret ifend158: %t160 = load ptr, ptr %t0 %t161 = call i32 @lp_str_eq(ptr %t160, ptr @.str8366) %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then159, label %ifend161 then159: store i32 55, ptr %retval br label %ret ifend161: %t163 = load ptr, ptr %t0 %t164 = call i32 @lp_str_eq(ptr %t163, ptr @.str8367) %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then162, label %ifend164 then162: store i32 56, ptr %retval br label %ret ifend164: %t166 = load ptr, ptr %t0 %t167 = call i32 @lp_str_eq(ptr %t166, ptr @.str8368) %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then165, label %ifend167 then165: store i32 57, ptr %retval br label %ret ifend167: %t169 = load ptr, ptr %t0 %t170 = getelementptr inbounds i8, ptr %t169, i32 1 %t171 = load i8, ptr %t170 %t172 = zext i8 %t171 to i32 %t173 = icmp eq i32 %t172, 0 %t174 = zext i1 %t173 to i32 %t175 = icmp ne i32 %t174, 0 br i1 %t175, label %then168, label %ifend170 then168: %t176 = load ptr, ptr %t0 %t177 = getelementptr inbounds i8, ptr %t176, i32 0 %t178 = load i8, ptr %t177 %t179 = zext i8 %t178 to i32 store i32 %t179, ptr %t180 %t182 = load i32, ptr %t180 %t183 = icmp sge i32 %t182, 65 %t184 = zext i1 %t183 to i32 %t185 = icmp ne i32 %t184, 0 %t186 = zext i1 %t185 to i32 store i32 %t186, ptr %t181 br i1 %t185, label %sc171, label %scend172 sc171: %t187 = load i32, ptr %t180 %t188 = icmp sle i32 %t187, 90 %t189 = zext i1 %t188 to i32 %t190 = icmp ne i32 %t189, 0 %t191 = zext i1 %t190 to i32 store i32 %t191, ptr %t181 br label %scend172 scend172: %t192 = load i32, ptr %t181 %t193 = icmp ne i32 %t192, 0 br i1 %t193, label %then173, label %ifend175 then173: %t194 = load i32, ptr %t180 %t195 = add i32 %t194, 32 store i32 %t195, ptr %retval br label %ret ifend175: br label %ifend170 ifend170: %t196 = sub i32 0, 1 store i32 %t196, ptr %retval br label %ret ret: %t197 = load i32, ptr %retval ret i32 %t197 } define ptr @fn_emit_sizeof(ptr %arg_llt) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_llt, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_concat(ptr @.str8369, ptr %t1) %t3 = call ptr @lp_str_concat(ptr %t2, ptr @.str8370) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @lp_str_concat(ptr @.str8371, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str8372) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_rec_field(ptr %arg_rec, ptr %arg_fname) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca i32 %t28 = alloca ptr store ptr %arg_rec, ptr %t0 store ptr %arg_fname, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: store i32 0, ptr %t6 br label %wcond3 wcond3: %t7 = load i32, ptr %t6 %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 7 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = load i32, ptr %t11 %t13 = icmp slt i32 %t7, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody4, label %wend5 wbody4: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = load i32, ptr %t6 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok6, label %ixbad7 ixbad7: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str8373, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok6: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr %t1 %t33 = call i32 @lp_str_eq(ptr %t31, ptr %t32) %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then8, label %ifend10 then8: %t35 = load ptr, ptr %t28 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 4 %t37 = load ptr, ptr %t36 store ptr %t37, ptr %retval br label %ret ifend10: %t38 = load i32, ptr %t6 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t6 br label %wcond3 wend5: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_emit_new_struct(ptr %arg_name, ptr %arg_rec) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t4 = alloca ptr %t5 = alloca i32 %t35 = alloca ptr %t38 = alloca ptr %t43 = alloca ptr %t44 = alloca i32 %t66 = alloca ptr %t68 = alloca ptr %t78 = alloca ptr %t81 = alloca ptr %t92 = alloca ptr %t103 = alloca ptr %t110 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_rec, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_layout_node(ptr %t2) store ptr %t3, ptr %t4 %t6 = load ptr, ptr %t4 %t7 = icmp eq ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t5 br i1 %t9, label %sc0, label %scend1 sc0: %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_port_find(ptr %t11) %t13 = icmp sge i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t5 br label %scend1 scend1: %t17 = load i32, ptr %t5 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then2, label %ifend4 then2: %t19 = load ptr, ptr %t0 %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str8374) %t21 = load ptr, ptr %t0 %t22 = call ptr @lp_str_concat(ptr %t20, ptr %t21) %t23 = call ptr @lp_str_concat(ptr %t22, ptr @.str8375) call void @fn_perr(ptr %t23) br label %ifend4 ifend4: %t24 = load ptr, ptr %t4 %t25 = icmp eq ptr %t24, null %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = load ptr, ptr %t0 %t29 = call ptr @lp_str_concat(ptr @.str8376, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str8377) call void @fn_perr(ptr %t30) br label %ifend7 ifend7: %t31 = load ptr, ptr %t4 %t32 = load ptr, ptr %t0 call void @fn_vis_check(ptr %t31, ptr %t32) %t33 = load ptr, ptr %t0 %t34 = call ptr @fn_layout_ty(ptr %t33) store ptr %t34, ptr %t35 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_emit_sizeof(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = call ptr @lp_str_concat(ptr @.str8378, ptr %t39) %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str8379) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 store i32 0, ptr %t44 br label %wcond8 wcond8: %t45 = load i32, ptr %t44 %t46 = load ptr, ptr %t4 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 7 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t50 = load i32, ptr %t49 %t51 = icmp slt i32 %t45, %t50 %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %wbody9, label %wend10 wbody9: %t54 = load ptr, ptr %t4 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 7 %t56 = load ptr, ptr %t55 %t57 = load i32, ptr %t44 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 %t57, %t61 br i1 %t62, label %ixok11, label %ixbad12 ixbad12: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str8380, i32 %t57, i32 %t61) call void @exit(i32 1) unreachable ixok11: %t64 = getelementptr inbounds ptr, ptr %t59, i32 %t57 %t65 = load ptr, ptr %t64 store ptr %t65, ptr %t66 %t67 = call ptr @fn_nreg() store ptr %t67, ptr %t68 call void @fn_emit(ptr @.str8381) %t69 = load ptr, ptr %t68 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str8382) %t70 = load ptr, ptr %t35 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str8383) %t71 = load ptr, ptr %t43 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str8384) %t72 = load i32, ptr %t44 %t73 = call ptr @fn_itoa(i32 %t72) call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str8385) %t74 = load ptr, ptr %t66 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 3 %t76 = load ptr, ptr %t75 %t77 = call ptr @fn_llty(ptr %t76) store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_zero_of(ptr %t79) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t66 %t83 = getelementptr inbounds %Cmp_Node, ptr %t82, i32 0, i32 4 %t84 = load ptr, ptr %t83 %t85 = icmp ne ptr %t84, null %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then13, label %ifend15 then13: %t88 = load ptr, ptr %t66 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 4 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_emit_expr(ptr %t90) store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t92 %t94 = load ptr, ptr %t66 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 3 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_coerce_code(ptr %t93, ptr %t96) store ptr %t97, ptr %t81 br label %ifend15 ifend15: %t98 = load ptr, ptr %t1 %t99 = load ptr, ptr %t66 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 1 %t101 = load ptr, ptr %t100 %t102 = call ptr @fn_rec_field(ptr %t98, ptr %t101) store ptr %t102, ptr %t103 %t104 = load ptr, ptr %t103 %t105 = icmp ne ptr %t104, null %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then16, label %ifend18 then16: %t108 = load ptr, ptr %t103 %t109 = call ptr @fn_emit_expr(ptr %t108) store ptr %t109, ptr %t110 %t111 = load ptr, ptr %t110 %t112 = load ptr, ptr %t66 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 3 %t114 = load ptr, ptr %t113 %t115 = call ptr @fn_coerce_code(ptr %t111, ptr %t114) store ptr %t115, ptr %t81 br label %ifend18 ifend18: call void @fn_emit(ptr @.str8386) %t116 = load ptr, ptr %t78 call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str8387) %t117 = load ptr, ptr %t81 call void @fn_emit(ptr %t117) call void @fn_emit(ptr @.str8388) %t118 = load ptr, ptr %t68 call void @fn_emit(ptr %t118) call void @fn_emit(ptr @.str8389) %t119 = load i32, ptr %t44 %t120 = add i32 %t119, 1 store i32 %t120, ptr %t44 br label %wcond8 wend10: %t121 = load ptr, ptr %t43 %t122 = load ptr, ptr %t0 %t123 = call ptr @fn_val(ptr %t121, ptr %t122) store ptr %t123, ptr %retval br label %ret ret: %t124 = load ptr, ptr %retval ret ptr %t124 } define ptr @fn_emit_new_slice(ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t7 = alloca ptr %t9 = alloca ptr %t14 = alloca ptr %t19 = alloca ptr store ptr %arg_ty, ptr %t0 %t1 = call ptr @fn_emit_sizeof(ptr @.str8390) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t2 %t4 = call ptr @lp_str_concat(ptr @.str8391, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str8392) %t6 = call ptr @fn_emit_bind(ptr %t5) store ptr %t6, ptr %t7 %t8 = call ptr @fn_nreg() store ptr %t8, ptr %t9 call void @fn_emit(ptr @.str8393) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) call void @fn_emit(ptr @.str8394) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) call void @fn_emit(ptr @.str8395) call void @fn_emit(ptr @.str8396) %t12 = load ptr, ptr %t9 call void @fn_emit(ptr %t12) call void @fn_emit(ptr @.str8397) %t13 = call ptr @fn_nreg() store ptr %t13, ptr %t14 call void @fn_emit(ptr @.str8398) %t15 = load ptr, ptr %t14 call void @fn_emit(ptr %t15) call void @fn_emit(ptr @.str8399) %t16 = load ptr, ptr %t7 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str8400) call void @fn_emit(ptr @.str8401) %t17 = load ptr, ptr %t14 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str8402) %t18 = call ptr @fn_nreg() store ptr %t18, ptr %t19 call void @fn_emit(ptr @.str8403) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str8404) %t21 = load ptr, ptr %t7 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str8405) call void @fn_emit(ptr @.str8406) %t22 = load ptr, ptr %t19 call void @fn_emit(ptr %t22) call void @fn_emit(ptr @.str8407) %t23 = load ptr, ptr %t7 %t24 = load ptr, ptr %t0 %t25 = call ptr @fn_val(ptr %t23, ptr %t24) store ptr %t25, ptr %retval br label %ret ret: %t26 = load ptr, ptr %retval ret ptr %t26 } define ptr @fn_emit_sized_slice(ptr %arg_el, ptr %arg_n) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t5 = alloca ptr %t9 = alloca ptr %t16 = alloca ptr %t24 = alloca ptr store ptr %arg_el, ptr %t0 store ptr %arg_n, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @lp_str_concat(ptr @.str8408, ptr %t2) %t4 = call ptr @fn_emit_new_slice(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_llty(ptr %t6) %t8 = call ptr @fn_emit_sizeof(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t1 %t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = call ptr @lp_str_concat(ptr @.str8409, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str8410) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t16 %t18 = call ptr @lp_str_concat(ptr @.str8411, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str8412) %t20 = load ptr, ptr %t9 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str8413) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str8414, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str8415) %t28 = load ptr, ptr %t5 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_slice_field(ptr %t30, i32 0) %t32 = call ptr @lp_str_concat(ptr %t27, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str8416) call void @fn_emit(ptr %t33) %t34 = load ptr, ptr %t1 %t35 = getelementptr inbounds %Cmp_Val, ptr %t34, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = call ptr @lp_str_concat(ptr @.str8417, ptr %t36) %t38 = call ptr @lp_str_concat(ptr %t37, ptr @.str8418) %t39 = load ptr, ptr %t5 %t40 = getelementptr inbounds %Cmp_Val, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_slice_field(ptr %t41, i32 1) %t43 = call ptr @lp_str_concat(ptr %t38, ptr %t42) %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str8419) call void @fn_emit(ptr %t44) %t45 = load ptr, ptr %t1 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = call ptr @lp_str_concat(ptr @.str8420, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str8421) %t50 = load ptr, ptr %t5 %t51 = getelementptr inbounds %Cmp_Val, ptr %t50, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = call ptr @fn_slice_field(ptr %t52, i32 2) %t54 = call ptr @lp_str_concat(ptr %t49, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str8422) call void @fn_emit(ptr %t55) %t56 = load ptr, ptr %t5 store ptr %t56, ptr %retval br label %ret ret: %t57 = load ptr, ptr %retval ret ptr %t57 } define ptr @fn_src_name_of(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_e, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 9 %t9 = load ptr, ptr %t8 %t10 = icmp eq ptr %t9, null %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br label %scend1 scend1: %t14 = load i32, ptr %t1 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then2, label %ifend4 then2: %t16 = load ptr, ptr @g_g_src_name store ptr %t16, ptr %retval br label %ret ifend4: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 9 %t19 = load ptr, ptr %t18 store ptr %t19, ptr %retval br label %ret ret: %t20 = load ptr, ptr %retval ret ptr %t20 } define ptr @fn_emit_view(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t13 = alloca ptr %t37 = alloca ptr %t50 = alloca ptr %t55 = alloca ptr %t62 = alloca ptr %t73 = alloca ptr %t80 = alloca ptr %t87 = alloca ptr %t94 = alloca ptr %t101 = alloca ptr %t108 = alloca ptr %t110 = alloca ptr %t112 = alloca ptr %t134 = alloca ptr %t137 = alloca ptr %t158 = alloca ptr %t171 = alloca ptr %t176 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp ult i32 0, %t7 br i1 %t8, label %ixok0, label %ixbad1 ixbad1: %t9 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t9, ptr @.fmt_bounds, ptr @.str8423, i32 0, i32 %t7) call void @exit(i32 1) unreachable ixok0: %t10 = getelementptr inbounds ptr, ptr %t5, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = call i32 @fn_is_slice_ty(ptr %t16) %t18 = icmp eq i32 %t17, 0 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then2, label %ifend4 then2: %t21 = load ptr, ptr %t13 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 1 %t23 = load ptr, ptr %t22 %t24 = call ptr @lp_str_concat(ptr @.str8424, ptr %t23) call void @fn_perr(ptr %t24) br label %ifend4 ifend4: %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 7 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 1, %t31 br i1 %t32, label %ixok5, label %ixbad6 ixbad6: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str8425, i32 1, i32 %t31) call void @exit(i32 1) unreachable ixok5: %t34 = getelementptr inbounds ptr, ptr %t29, i32 1 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_emit_expr(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 2, %t44 br i1 %t45, label %ixok7, label %ixbad8 ixbad8: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str8426, i32 2, i32 %t44) call void @exit(i32 1) unreachable ixok7: %t47 = getelementptr inbounds ptr, ptr %t42, i32 2 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_emit_expr(ptr %t48) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t13 %t52 = getelementptr inbounds %Cmp_Val, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_slice_elem(ptr %t53) store ptr %t54, ptr %t55 %t56 = load ptr, ptr %t13 %t57 = getelementptr inbounds %Cmp_Val, ptr %t56, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = call ptr @fn_slice_field(ptr %t58, i32 1) %t60 = call ptr @lp_str_concat(ptr @.str8427, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t37 %t64 = getelementptr inbounds %Cmp_Val, ptr %t63, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = call ptr @lp_str_concat(ptr @.str8428, ptr %t65) %t67 = call ptr @lp_str_concat(ptr %t66, ptr @.str8429) %t68 = load ptr, ptr %t50 %t69 = getelementptr inbounds %Cmp_Val, ptr %t68, i32 0, i32 0 %t70 = load ptr, ptr %t69 %t71 = call ptr @lp_str_concat(ptr %t67, ptr %t70) %t72 = call ptr @fn_emit_bind(ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t73 %t75 = call ptr @lp_str_concat(ptr @.str8430, ptr %t74) %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str8431) %t77 = load ptr, ptr %t62 %t78 = call ptr @lp_str_concat(ptr %t76, ptr %t77) %t79 = call ptr @fn_emit_bind(ptr %t78) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t37 %t82 = getelementptr inbounds %Cmp_Val, ptr %t81, i32 0, i32 0 %t83 = load ptr, ptr %t82 %t84 = call ptr @lp_str_concat(ptr @.str8432, ptr %t83) %t85 = call ptr @lp_str_concat(ptr %t84, ptr @.str8433) %t86 = call ptr @fn_emit_bind(ptr %t85) store ptr %t86, ptr %t87 %t88 = load ptr, ptr %t50 %t89 = getelementptr inbounds %Cmp_Val, ptr %t88, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = call ptr @lp_str_concat(ptr @.str8434, ptr %t90) %t92 = call ptr @lp_str_concat(ptr %t91, ptr @.str8435) %t93 = call ptr @fn_emit_bind(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t80 %t96 = call ptr @lp_str_concat(ptr @.str8436, ptr %t95) %t97 = call ptr @lp_str_concat(ptr %t96, ptr @.str8437) %t98 = load ptr, ptr %t87 %t99 = call ptr @lp_str_concat(ptr %t97, ptr %t98) %t100 = call ptr @fn_emit_bind(ptr %t99) store ptr %t100, ptr %t101 %t102 = load ptr, ptr %t101 %t103 = call ptr @lp_str_concat(ptr @.str8438, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str8439) %t105 = load ptr, ptr %t94 %t106 = call ptr @lp_str_concat(ptr %t104, ptr %t105) %t107 = call ptr @fn_emit_bind(ptr %t106) store ptr %t107, ptr %t108 %t109 = call ptr @fn_lbl(ptr @.str8440) store ptr %t109, ptr %t110 %t111 = call ptr @fn_lbl(ptr @.str8441) store ptr %t111, ptr %t112 %t113 = load ptr, ptr %t108 %t114 = call ptr @lp_str_concat(ptr @.str8442, ptr %t113) %t115 = call ptr @lp_str_concat(ptr %t114, ptr @.str8443) %t116 = load ptr, ptr %t110 %t117 = call ptr @lp_str_concat(ptr %t115, ptr %t116) %t118 = call ptr @lp_str_concat(ptr %t117, ptr @.str8444) %t119 = load ptr, ptr %t112 %t120 = call ptr @lp_str_concat(ptr %t118, ptr %t119) %t121 = call ptr @lp_str_concat(ptr %t120, ptr @.str8445) call void @fn_emit(ptr %t121) %t122 = load ptr, ptr %t112 %t123 = call ptr @lp_str_concat(ptr %t122, ptr @.str8446) call void @fn_emit(ptr %t123) store i32 1, ptr @g_g_uses_bounds %t124 = load ptr, ptr %t0 %t125 = call ptr @fn_src_name_of(ptr %t124) %t126 = call ptr @lp_str_concat(ptr %t125, ptr @.str8447) %t127 = load ptr, ptr %t0 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 8 %t129 = load i32, ptr %t128 %t130 = call ptr @fn_itoa(i32 %t129) %t131 = call ptr @lp_str_concat(ptr %t126, ptr %t130) %t132 = call ptr @lp_str_concat(ptr %t131, ptr @.str8448) %t133 = call ptr @fn_emit_str_const(ptr %t132) store ptr %t133, ptr %t134 %t135 = call ptr @fn_stdstream_rhs(i32 2) %t136 = call ptr @fn_emit_bind(ptr %t135) store ptr %t136, ptr %t137 %t138 = load ptr, ptr %t137 %t139 = call ptr @lp_str_concat(ptr @.str8449, ptr %t138) %t140 = call ptr @lp_str_concat(ptr %t139, ptr @.str8450) %t141 = load ptr, ptr %t134 %t142 = call ptr @lp_str_concat(ptr %t140, ptr %t141) %t143 = call ptr @lp_str_concat(ptr %t142, ptr @.str8451) %t144 = load ptr, ptr %t73 %t145 = call ptr @lp_str_concat(ptr %t143, ptr %t144) %t146 = call ptr @lp_str_concat(ptr %t145, ptr @.str8452) %t147 = load ptr, ptr %t62 %t148 = call ptr @lp_str_concat(ptr %t146, ptr %t147) %t149 = call ptr @lp_str_concat(ptr %t148, ptr @.str8453) call void @fn_emit(ptr %t149) call void @fn_emit(ptr @.str8454) %t150 = load ptr, ptr %t110 %t151 = call ptr @lp_str_concat(ptr %t150, ptr @.str8455) call void @fn_emit(ptr %t151) %t152 = load ptr, ptr %t13 %t153 = getelementptr inbounds %Cmp_Val, ptr %t152, i32 0, i32 0 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_slice_field(ptr %t154, i32 0) %t156 = call ptr @lp_str_concat(ptr @.str8456, ptr %t155) %t157 = call ptr @fn_emit_bind(ptr %t156) store ptr %t157, ptr %t158 %t159 = load ptr, ptr %t55 %t160 = call ptr @fn_llty(ptr %t159) %t161 = call ptr @lp_str_concat(ptr @.str8457, ptr %t160) %t162 = call ptr @lp_str_concat(ptr %t161, ptr @.str8458) %t163 = load ptr, ptr %t158 %t164 = call ptr @lp_str_concat(ptr %t162, ptr %t163) %t165 = call ptr @lp_str_concat(ptr %t164, ptr @.str8459) %t166 = load ptr, ptr %t37 %t167 = getelementptr inbounds %Cmp_Val, ptr %t166, i32 0, i32 0 %t168 = load ptr, ptr %t167 %t169 = call ptr @lp_str_concat(ptr %t165, ptr %t168) %t170 = call ptr @fn_emit_bind(ptr %t169) store ptr %t170, ptr %t171 %t172 = load ptr, ptr %t13 %t173 = getelementptr inbounds %Cmp_Val, ptr %t172, i32 0, i32 1 %t174 = load ptr, ptr %t173 %t175 = call ptr @fn_emit_new_slice(ptr %t174) store ptr %t175, ptr %t176 %t177 = load ptr, ptr %t171 %t178 = call ptr @lp_str_concat(ptr @.str8460, ptr %t177) %t179 = call ptr @lp_str_concat(ptr %t178, ptr @.str8461) %t180 = load ptr, ptr %t176 %t181 = getelementptr inbounds %Cmp_Val, ptr %t180, i32 0, i32 0 %t182 = load ptr, ptr %t181 %t183 = call ptr @fn_slice_field(ptr %t182, i32 0) %t184 = call ptr @lp_str_concat(ptr %t179, ptr %t183) %t185 = call ptr @lp_str_concat(ptr %t184, ptr @.str8462) call void @fn_emit(ptr %t185) %t186 = load ptr, ptr %t50 %t187 = getelementptr inbounds %Cmp_Val, ptr %t186, i32 0, i32 0 %t188 = load ptr, ptr %t187 %t189 = call ptr @lp_str_concat(ptr @.str8463, ptr %t188) %t190 = call ptr @lp_str_concat(ptr %t189, ptr @.str8464) %t191 = load ptr, ptr %t176 %t192 = getelementptr inbounds %Cmp_Val, ptr %t191, i32 0, i32 0 %t193 = load ptr, ptr %t192 %t194 = call ptr @fn_slice_field(ptr %t193, i32 1) %t195 = call ptr @lp_str_concat(ptr %t190, ptr %t194) %t196 = call ptr @lp_str_concat(ptr %t195, ptr @.str8465) call void @fn_emit(ptr %t196) %t197 = load ptr, ptr %t50 %t198 = getelementptr inbounds %Cmp_Val, ptr %t197, i32 0, i32 0 %t199 = load ptr, ptr %t198 %t200 = call ptr @lp_str_concat(ptr @.str8466, ptr %t199) %t201 = call ptr @lp_str_concat(ptr %t200, ptr @.str8467) %t202 = load ptr, ptr %t176 %t203 = getelementptr inbounds %Cmp_Val, ptr %t202, i32 0, i32 0 %t204 = load ptr, ptr %t203 %t205 = call ptr @fn_slice_field(ptr %t204, i32 2) %t206 = call ptr @lp_str_concat(ptr %t201, ptr %t205) %t207 = call ptr @lp_str_concat(ptr %t206, ptr @.str8468) call void @fn_emit(ptr %t207) %t208 = load ptr, ptr %t176 store ptr %t208, ptr %retval br label %ret ret: %t209 = load ptr, ptr %retval ret ptr %t209 } define ptr @fn_raw_expr(ptr %arg_n) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr store ptr %arg_n, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_emit_expr(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 1 %t6 = load ptr, ptr %t5 %t7 = call i32 @fn_is_slice_ty(ptr %t6) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t3 %t10 = getelementptr inbounds %Cmp_Val, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_slice_field(ptr %t11, i32 0) %t13 = call ptr @lp_str_concat(ptr @.str8469, ptr %t12) %t14 = call ptr @fn_emit_bind(ptr %t13) %t15 = call ptr @fn_val(ptr %t14, ptr @.str8470) store ptr %t15, ptr %retval br label %ret ifend2: %t16 = load ptr, ptr %t3 store ptr %t16, ptr %retval br label %ret ret: %t17 = load ptr, ptr %retval ret ptr %t17 } define ptr @fn_slice_field(ptr %arg_h, i32 %arg_i) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t3 = alloca ptr store ptr %arg_h, ptr %t0 store i32 %arg_i, ptr %t1 %t2 = call ptr @fn_nreg() store ptr %t2, ptr %t3 call void @fn_emit(ptr @.str8471) %t4 = load ptr, ptr %t3 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str8472) %t5 = load ptr, ptr %t0 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str8473) %t6 = load i32, ptr %t1 %t7 = call ptr @fn_itoa(i32 %t6) call void @fn_emit(ptr %t7) call void @fn_emit(ptr @.str8474) %t8 = load ptr, ptr %t3 store ptr %t8, ptr %retval br label %ret ret: %t9 = load ptr, ptr %retval ret ptr %t9 } define ptr @fn_emit_len(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t13 = alloca ptr %t23 = alloca ptr %t34 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp ult i32 0, %t7 br i1 %t8, label %ixok0, label %ixbad1 ixbad1: %t9 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t9, ptr @.fmt_bounds, ptr @.str8475, i32 0, i32 %t7) call void @exit(i32 1) unreachable ixok0: %t10 = getelementptr inbounds ptr, ptr %t5, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = call i32 @fn_is_slice_ty(ptr %t16) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then2, label %ifend4 then2: %t19 = load ptr, ptr %t13 %t20 = getelementptr inbounds %Cmp_Val, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = call ptr @fn_slice_field(ptr %t21, i32 1) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = call ptr @lp_str_concat(ptr @.str8476, ptr %t24) %t26 = call ptr @fn_emit_bind(ptr %t25) %t27 = call ptr @fn_val(ptr %t26, ptr @.str8477) store ptr %t27, ptr %retval br label %ret ifend4: %t28 = load ptr, ptr %t13 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr @.str8478, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str8479) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @lp_str_concat(ptr @.str8480, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str8481) %t38 = call ptr @fn_emit_bind(ptr %t37) %t39 = call ptr @fn_val(ptr %t38, ptr @.str8482) store ptr %t39, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_emit_push(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t13 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp ult i32 0, %t7 br i1 %t8, label %ixok0, label %ixbad1 ixbad1: %t9 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t9, ptr @.fmt_bounds, ptr @.str8483, i32 0, i32 %t7) call void @exit(i32 1) unreachable ixok0: %t10 = getelementptr inbounds ptr, ptr %t5, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t13 %t18 = getelementptr inbounds %Cmp_Val, ptr %t17, i32 0, i32 1 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_slice_elem(ptr %t19) %t21 = call ptr @fn_llty(ptr %t20) %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 7 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 1, %t28 br i1 %t29, label %ixok2, label %ixbad3 ixbad3: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str8484, i32 1, i32 %t28) call void @exit(i32 1) unreachable ixok2: %t31 = getelementptr inbounds ptr, ptr %t26, i32 1 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_emit_expr(ptr %t32) call void @fn_emit_push_into(ptr %t16, ptr %t21, ptr %t33) %t34 = call ptr @fn_val(ptr @.str8485, ptr @.str8486) store ptr %t34, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define ptr @fn_emit_list(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t21 = alloca ptr %t26 = alloca ptr %t31 = alloca ptr %t34 = alloca ptr %t40 = alloca i32 %t63 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: call void @fn_perr(ptr @.str8487) br label %ifend2 ifend2: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 0, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str8488, i32 0, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 0 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_emit_list_elem(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Val, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 %t25 = call ptr @lp_str_concat(ptr @.str8489, ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t21 %t28 = getelementptr inbounds %Cmp_Val, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_llty(ptr %t29) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t26 %t33 = call ptr @fn_emit_new_slice(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t31 %t39 = load ptr, ptr %t21 call void @fn_emit_push_into(ptr %t37, ptr %t38, ptr %t39) store i32 1, ptr %t40 br label %wcond5 wcond5: %t41 = load i32, ptr %t40 %t42 = load ptr, ptr %t0 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 7 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t46 = load i32, ptr %t45 %t47 = icmp slt i32 %t41, %t46 %t48 = zext i1 %t47 to i32 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %wbody6, label %wend7 wbody6: %t50 = load ptr, ptr %t0 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 7 %t52 = load ptr, ptr %t51 %t53 = load i32, ptr %t40 %t54 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t57 = load i32, ptr %t56 %t58 = icmp ult i32 %t53, %t57 br i1 %t58, label %ixok8, label %ixbad9 ixbad9: %t59 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t59, ptr @.fmt_bounds, ptr @.str8490, i32 %t53, i32 %t57) call void @exit(i32 1) unreachable ixok8: %t60 = getelementptr inbounds ptr, ptr %t55, i32 %t53 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_emit_list_elem(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 1 %t66 = load ptr, ptr %t65 %t67 = load ptr, ptr %t21 %t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 1 %t69 = load ptr, ptr %t68 %t70 = call i32 @lp_str_eq(ptr %t66, ptr %t69) %t71 = icmp eq i32 %t70, 0 %t72 = zext i1 %t71 to i32 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then10, label %ifend12 then10: %t74 = load ptr, ptr %t21 %t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 1 %t76 = load ptr, ptr %t75 %t77 = call ptr @lp_str_concat(ptr @.str8491, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str8492) %t79 = load ptr, ptr %t63 %t80 = getelementptr inbounds %Cmp_Val, ptr %t79, i32 0, i32 1 %t81 = load ptr, ptr %t80 %t82 = call ptr @lp_str_concat(ptr %t78, ptr %t81) call void @fn_perr(ptr %t82) br label %ifend12 ifend12: %t83 = load ptr, ptr %t34 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = load ptr, ptr %t31 %t87 = load ptr, ptr %t63 call void @fn_emit_push_into(ptr %t85, ptr %t86, ptr %t87) %t88 = load i32, ptr %t40 %t89 = add i32 %t88, 1 store i32 %t89, ptr %t40 br label %wcond5 wend7: %t90 = load ptr, ptr %t34 store ptr %t90, ptr %retval br label %ret ret: %t91 = load ptr, ptr %retval ret ptr %t91 } define ptr @fn_emit_list_elem(ptr %arg_k) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t14 = alloca ptr store ptr %arg_k, ptr %t0 %t1 = load ptr, ptr @g_g_err_file store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 9 %t5 = load ptr, ptr %t4 %t6 = icmp ne ptr %t5, null %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 9 %t11 = load ptr, ptr %t10 store ptr %t11, ptr @g_g_err_file br label %ifend2 ifend2: %t12 = load ptr, ptr %t0 %t13 = call ptr @fn_emit_expr(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t2 store ptr %t15, ptr @g_g_err_file %t16 = load ptr, ptr %t14 store ptr %t16, ptr %retval br label %ret ret: %t17 = load ptr, ptr %retval ret ptr %t17 } define void @fn_emit_push_into(ptr %arg_h, ptr %arg_elt, ptr %arg_v) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t5 = alloca ptr %t8 = alloca ptr %t11 = alloca ptr %t15 = alloca ptr %t19 = alloca ptr %t26 = alloca ptr %t28 = alloca ptr %t30 = alloca ptr %t39 = alloca ptr %t44 = alloca ptr %t51 = alloca ptr %t54 = alloca ptr %t59 = alloca ptr %t66 = alloca ptr %t70 = alloca ptr %t78 = alloca ptr %t88 = alloca ptr %t90 = alloca ptr %t104 = alloca ptr store ptr %arg_h, ptr %t0 store ptr %arg_elt, ptr %t1 store ptr %arg_v, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_slice_field(ptr %t3, i32 1) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_slice_field(ptr %t6, i32 2) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t0 %t10 = call ptr @fn_slice_field(ptr %t9, i32 0) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t5 %t13 = call ptr @lp_str_concat(ptr @.str8493, ptr %t12) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t8 %t17 = call ptr @lp_str_concat(ptr @.str8494, ptr %t16) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t15 %t21 = call ptr @lp_str_concat(ptr @.str8495, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str8496) %t23 = load ptr, ptr %t19 %t24 = call ptr @lp_str_concat(ptr %t22, ptr %t23) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = call ptr @fn_lbl(ptr @.str8497) store ptr %t27, ptr %t28 %t29 = call ptr @fn_lbl(ptr @.str8498) store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str8499) %t31 = load ptr, ptr %t26 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str8500) %t32 = load ptr, ptr %t28 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str8501) %t33 = load ptr, ptr %t30 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str8502) %t34 = load ptr, ptr %t28 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str8503) %t35 = load ptr, ptr %t19 %t36 = call ptr @lp_str_concat(ptr @.str8504, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str8505) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t19 %t41 = call ptr @lp_str_concat(ptr @.str8506, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str8507) %t43 = call ptr @fn_emit_bind(ptr %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t44 %t46 = call ptr @lp_str_concat(ptr @.str8508, ptr %t45) %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str8509) %t48 = load ptr, ptr %t39 %t49 = call ptr @lp_str_concat(ptr %t47, ptr %t48) %t50 = call ptr @fn_emit_bind(ptr %t49) store ptr %t50, ptr %t51 %t52 = load ptr, ptr %t1 %t53 = call ptr @fn_emit_sizeof(ptr %t52) store ptr %t53, ptr %t54 %t55 = load ptr, ptr %t51 %t56 = call ptr @lp_str_concat(ptr @.str8510, ptr %t55) %t57 = call ptr @lp_str_concat(ptr %t56, ptr @.str8511) %t58 = call ptr @fn_emit_bind(ptr %t57) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t59 %t61 = call ptr @lp_str_concat(ptr @.str8512, ptr %t60) %t62 = call ptr @lp_str_concat(ptr %t61, ptr @.str8513) %t63 = load ptr, ptr %t54 %t64 = call ptr @lp_str_concat(ptr %t62, ptr %t63) %t65 = call ptr @fn_emit_bind(ptr %t64) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t11 %t68 = call ptr @lp_str_concat(ptr @.str8514, ptr %t67) %t69 = call ptr @fn_emit_bind(ptr %t68) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t70 %t72 = call ptr @lp_str_concat(ptr @.str8515, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str8516) %t74 = load ptr, ptr %t66 %t75 = call ptr @lp_str_concat(ptr %t73, ptr %t74) %t76 = call ptr @lp_str_concat(ptr %t75, ptr @.str8517) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 call void @fn_emit(ptr @.str8518) %t79 = load ptr, ptr %t78 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str8519) %t80 = load ptr, ptr %t11 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str8520) call void @fn_emit(ptr @.str8521) %t81 = load ptr, ptr %t51 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str8522) %t82 = load ptr, ptr %t8 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str8523) call void @fn_emit(ptr @.str8524) %t83 = load ptr, ptr %t30 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str8525) %t84 = load ptr, ptr %t30 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str8526) %t85 = load ptr, ptr %t11 %t86 = call ptr @lp_str_concat(ptr @.str8527, ptr %t85) %t87 = call ptr @fn_emit_bind(ptr %t86) store ptr %t87, ptr %t88 %t89 = call ptr @fn_nreg() store ptr %t89, ptr %t90 call void @fn_emit(ptr @.str8528) %t91 = load ptr, ptr %t90 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str8529) %t92 = load ptr, ptr %t1 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str8530) %t93 = load ptr, ptr %t88 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str8531) %t94 = load ptr, ptr %t15 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str8532) call void @fn_emit(ptr @.str8533) %t95 = load ptr, ptr %t1 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str8534) %t96 = load ptr, ptr %t2 %t97 = getelementptr inbounds %Cmp_Val, ptr %t96, i32 0, i32 0 %t98 = load ptr, ptr %t97 call void @fn_emit(ptr %t98) call void @fn_emit(ptr @.str8535) %t99 = load ptr, ptr %t90 call void @fn_emit(ptr %t99) call void @fn_emit(ptr @.str8536) %t100 = load ptr, ptr %t15 %t101 = call ptr @lp_str_concat(ptr @.str8537, ptr %t100) %t102 = call ptr @lp_str_concat(ptr %t101, ptr @.str8538) %t103 = call ptr @fn_emit_bind(ptr %t102) store ptr %t103, ptr %t104 call void @fn_emit(ptr @.str8539) %t105 = load ptr, ptr %t104 call void @fn_emit(ptr %t105) call void @fn_emit(ptr @.str8540) %t106 = load ptr, ptr %t5 call void @fn_emit(ptr %t106) call void @fn_emit(ptr @.str8541) br label %ret ret: ret void } define void @fn_emit_try_body(ptr %arg_b, ptr %arg_slot) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t26 = alloca ptr %t27 = alloca i32 %t55 = alloca ptr store ptr %arg_b, ptr %t0 store ptr %arg_slot, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load i32, ptr @g_g_term %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: br label %ret ifend5: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 7 %t16 = load ptr, ptr %t15 %t17 = load i32, ptr %t2 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp ult i32 %t17, %t21 br i1 %t22, label %ixok6, label %ixbad7 ixbad7: %t23 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t23, ptr @.fmt_bounds, ptr @.str8542, i32 %t17, i32 %t21) call void @exit(i32 1) unreachable ixok6: %t24 = getelementptr inbounds ptr, ptr %t19, i32 %t17 %t25 = load ptr, ptr %t24 store ptr %t25, ptr %t26 %t28 = load i32, ptr %t2 %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = sub i32 %t33, 1 %t35 = icmp eq i32 %t28, %t34 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t27 br i1 %t37, label %sc8, label %scend9 sc8: %t39 = load ptr, ptr %t26 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 0 %t41 = load i32, ptr %t40 %t42 = icmp eq i32 %t41, 16 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t27 br label %scend9 scend9: %t46 = load i32, ptr %t27 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then10, label %else11 then10: %t48 = load ptr, ptr %t26 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 8 %t50 = load i32, ptr %t49 call void @fn_emit_cov_hit(i32 %t50) %t51 = load ptr, ptr %t26 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 4 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_emit_expr(ptr %t53) store ptr %t54, ptr %t55 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_coerce_code(ptr %t56, ptr @.str8544) %t58 = call ptr @lp_str_concat(ptr @.str8543, ptr %t57) %t59 = call ptr @lp_str_concat(ptr %t58, ptr @.str8545) %t60 = load ptr, ptr %t1 %t61 = call ptr @lp_str_concat(ptr %t59, ptr %t60) %t62 = call ptr @lp_str_concat(ptr %t61, ptr @.str8546) call void @fn_emit(ptr %t62) br label %ifend12 else11: %t63 = load ptr, ptr %t26 call void @fn_emit_stmt(ptr %t63) br label %ifend12 ifend12: %t64 = load i32, ptr %t2 %t65 = add i32 %t64, 1 store i32 %t65, ptr %t2 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_emit_try(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t24 = alloca ptr %t34 = alloca ptr %t38 = alloca ptr %t43 = alloca ptr %t45 = alloca ptr %t47 = alloca ptr %t49 = alloca ptr %t67 = alloca ptr %t71 = alloca ptr %t89 = alloca ptr %t93 = alloca ptr %t95 = alloca ptr %t103 = alloca i32 store ptr %arg_e, ptr %t0 store i32 1, ptr @g_g_uses_result %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str8547) %t10 = icmp eq i32 %t9, 0 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: %t13 = load ptr, ptr %t5 %t14 = getelementptr inbounds %Cmp_Val, ptr %t13, i32 0, i32 1 %t15 = load ptr, ptr %t14 %t16 = call ptr @lp_str_concat(ptr @.str8548, ptr %t15) %t17 = call ptr @lp_str_concat(ptr %t16, ptr @.str8549) %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 8 %t20 = load i32, ptr %t19 %t21 = call ptr @fn_itoa(i32 %t20) %t22 = call ptr @lp_str_concat(ptr %t17, ptr %t21) call void @fn_perr(ptr %t22) br label %ifend2 ifend2: %t23 = call ptr @fn_emit_alloca(ptr @.str8550) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str8551, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str8552) call void @fn_emit(ptr %t27) %t28 = load ptr, ptr %t5 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @lp_str_concat(ptr @.str8553, ptr %t30) %t32 = call ptr @lp_str_concat(ptr %t31, ptr @.str8554) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @lp_str_concat(ptr @.str8555, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = call ptr @lp_str_concat(ptr @.str8556, ptr %t39) %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str8557) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 %t44 = call ptr @fn_lbl(ptr @.str8558) store ptr %t44, ptr %t45 %t46 = call ptr @fn_lbl(ptr @.str8559) store ptr %t46, ptr %t47 %t48 = call ptr @fn_lbl(ptr @.str8560) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t43 %t51 = call ptr @lp_str_concat(ptr @.str8561, ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t51, ptr @.str8562) %t53 = load ptr, ptr %t45 %t54 = call ptr @lp_str_concat(ptr %t52, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str8563) %t56 = load ptr, ptr %t47 %t57 = call ptr @lp_str_concat(ptr %t55, ptr %t56) %t58 = call ptr @lp_str_concat(ptr %t57, ptr @.str8564) call void @fn_emit(ptr %t58) %t59 = load ptr, ptr %t45 %t60 = call ptr @lp_str_concat(ptr %t59, ptr @.str8565) call void @fn_emit(ptr %t60) store i32 0, ptr @g_g_term %t61 = load ptr, ptr %t5 %t62 = getelementptr inbounds %Cmp_Val, ptr %t61, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = call ptr @lp_str_concat(ptr @.str8566, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str8567) %t66 = call ptr @fn_emit_bind(ptr %t65) store ptr %t66, ptr %t67 %t68 = load ptr, ptr %t67 %t69 = call ptr @lp_str_concat(ptr @.str8568, ptr %t68) %t70 = call ptr @fn_emit_bind(ptr %t69) store ptr %t70, ptr %t71 %t72 = load ptr, ptr %t71 %t73 = call ptr @lp_str_concat(ptr @.str8569, ptr %t72) %t74 = call ptr @lp_str_concat(ptr %t73, ptr @.str8570) %t75 = load ptr, ptr %t24 %t76 = call ptr @lp_str_concat(ptr %t74, ptr %t75) %t77 = call ptr @lp_str_concat(ptr %t76, ptr @.str8571) call void @fn_emit(ptr %t77) %t78 = load ptr, ptr %t49 %t79 = call ptr @lp_str_concat(ptr @.str8572, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str8573) call void @fn_emit(ptr %t80) %t81 = load ptr, ptr %t47 %t82 = call ptr @lp_str_concat(ptr %t81, ptr @.str8574) call void @fn_emit(ptr %t82) store i32 0, ptr @g_g_term %t83 = load ptr, ptr %t5 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = call ptr @lp_str_concat(ptr @.str8575, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str8576) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = call ptr @lp_str_concat(ptr @.str8577, ptr %t90) %t92 = call ptr @fn_emit_bind(ptr %t91) store ptr %t92, ptr %t93 %t94 = call ptr @fn_emit_alloca(ptr @.str8578) store ptr %t94, ptr %t95 %t96 = load ptr, ptr %t93 %t97 = call ptr @lp_str_concat(ptr @.str8579, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str8580) %t99 = load ptr, ptr %t95 %t100 = call ptr @lp_str_concat(ptr %t98, ptr %t99) %t101 = call ptr @lp_str_concat(ptr %t100, ptr @.str8581) call void @fn_emit(ptr %t101) %t102 = load i32, ptr @g_nloc store i32 %t102, ptr %t103 %t104 = load ptr, ptr %t95 call void @fn_loc_push(ptr @.str8582, ptr %t104, ptr @.str8583) %t105 = load ptr, ptr %t0 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 5 %t107 = load ptr, ptr %t106 %t108 = load ptr, ptr %t24 call void @fn_emit_try_body(ptr %t107, ptr %t108) %t109 = load i32, ptr %t103 store i32 %t109, ptr @g_nloc %t110 = load i32, ptr @g_g_term %t111 = icmp eq i32 %t110, 0 %t112 = zext i1 %t111 to i32 %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then3, label %ifend5 then3: %t114 = load ptr, ptr %t49 %t115 = call ptr @lp_str_concat(ptr @.str8584, ptr %t114) %t116 = call ptr @lp_str_concat(ptr %t115, ptr @.str8585) call void @fn_emit(ptr %t116) br label %ifend5 ifend5: %t117 = load ptr, ptr %t49 %t118 = call ptr @lp_str_concat(ptr %t117, ptr @.str8586) call void @fn_emit(ptr %t118) store i32 0, ptr @g_g_term %t119 = load ptr, ptr %t24 %t120 = call ptr @lp_str_concat(ptr @.str8587, ptr %t119) %t121 = call ptr @fn_emit_bind(ptr %t120) %t122 = call ptr @fn_val(ptr %t121, ptr @.str8588) store ptr %t122, ptr %retval br label %ret ret: %t123 = load ptr, ptr %retval ret ptr %t123 } define ptr @fn_emit_load_at(ptr %arg_addr, ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t9 = alloca ptr store ptr %arg_addr, ptr %t0 store ptr %arg_ty, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = call ptr @fn_llty(ptr %t2) %t4 = call ptr @lp_str_concat(ptr @.str8589, ptr %t3) %t5 = call ptr @lp_str_concat(ptr %t4, ptr @.str8590) %t6 = load ptr, ptr %t0 %t7 = call ptr @lp_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = load ptr, ptr %t1 %t12 = call ptr @fn_val(ptr %t10, ptr %t11) store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_emit_logic(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t7 = alloca ptr %t14 = alloca ptr %t19 = alloca ptr %t23 = alloca ptr %t25 = alloca ptr %t42 = alloca ptr %t49 = alloca ptr %t54 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = call ptr @fn_emit_alloca(ptr @.str8591) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 %t5 = load ptr, ptr %t4 %t6 = call ptr @fn_emit_expr(ptr %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %Cmp_Val, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = call ptr @lp_str_concat(ptr @.str8592, ptr %t10) %t12 = call ptr @lp_str_concat(ptr %t11, ptr @.str8593) %t13 = call ptr @fn_emit_bind(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = call ptr @lp_str_concat(ptr @.str8594, ptr %t15) %t17 = call ptr @lp_str_concat(ptr %t16, ptr @.str8595) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 call void @fn_emit(ptr @.str8596) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str8597) %t21 = load ptr, ptr %t2 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str8598) %t22 = call ptr @fn_lbl(ptr @.str8599) store ptr %t22, ptr %t23 %t24 = call ptr @fn_lbl(ptr @.str8600) store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str8601) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then0, label %else1 then0: call void @fn_emit(ptr @.str8602) %t31 = load ptr, ptr %t14 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str8603) %t32 = load ptr, ptr %t23 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str8604) %t33 = load ptr, ptr %t25 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str8605) br label %ifend2 else1: call void @fn_emit(ptr @.str8606) %t34 = load ptr, ptr %t14 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str8607) %t35 = load ptr, ptr %t25 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str8608) %t36 = load ptr, ptr %t23 call void @fn_emit(ptr %t36) call void @fn_emit(ptr @.str8609) br label %ifend2 ifend2: %t37 = load ptr, ptr %t23 call void @fn_emit(ptr %t37) call void @fn_emit(ptr @.str8610) %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 5 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_emit_expr(ptr %t40) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Val, ptr %t43, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = call ptr @lp_str_concat(ptr @.str8611, ptr %t45) %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str8612) %t48 = call ptr @fn_emit_bind(ptr %t47) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 %t51 = call ptr @lp_str_concat(ptr @.str8613, ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t51, ptr @.str8614) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 call void @fn_emit(ptr @.str8615) %t55 = load ptr, ptr %t54 call void @fn_emit(ptr %t55) call void @fn_emit(ptr @.str8616) %t56 = load ptr, ptr %t2 call void @fn_emit(ptr %t56) call void @fn_emit(ptr @.str8617) call void @fn_emit(ptr @.str8618) %t57 = load ptr, ptr %t25 call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str8619) %t58 = load ptr, ptr %t25 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str8620) %t59 = load ptr, ptr %t2 %t60 = call ptr @lp_str_concat(ptr @.str8621, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) %t62 = call ptr @fn_val(ptr %t61, ptr @.str8622) store ptr %t62, ptr %retval br label %ret ret: %t63 = load ptr, ptr %retval ret ptr %t63 } define ptr @fn_cmp_code(ptr %arg_op) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_op, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str8623) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str8624, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str8625) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str8626, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str8627) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str8628, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str8629) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store ptr @.str8630, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str8631) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store ptr @.str8632, ptr %retval br label %ret ifend14: store ptr @.str8633, ptr %retval br label %ret ret: %t16 = load ptr, ptr %retval ret ptr %t16 } define i32 @fn_is_cmp(ptr %arg_op) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 store ptr %arg_op, ptr %t0 %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str8634) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t5 br i1 %t8, label %scend1, label %sc0 sc0: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str8635) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t5 br label %scend1 scend1: %t14 = load i32, ptr %t5 %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t4 br i1 %t15, label %scend3, label %sc2 sc2: %t17 = load ptr, ptr %t0 %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str8636) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t4 br label %scend3 scend3: %t21 = load i32, ptr %t4 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t3 br i1 %t22, label %scend5, label %sc4 sc4: %t24 = load ptr, ptr %t0 %t25 = call i32 @lp_str_eq(ptr %t24, ptr @.str8637) %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t3 br label %scend5 scend5: %t28 = load i32, ptr %t3 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t2 br i1 %t29, label %scend7, label %sc6 sc6: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str8638) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t2 br label %scend7 scend7: %t35 = load i32, ptr %t2 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t1 br i1 %t36, label %scend9, label %sc8 sc8: %t38 = load ptr, ptr %t0 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str8639) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t1 br label %scend9 scend9: %t42 = load i32, ptr %t1 store i32 %t42, ptr %retval br label %ret ret: %t43 = load i32, ptr %retval ret i32 %t43 } define ptr @fn_arith_code(ptr %arg_op) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_op, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str8640) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str8641, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str8642) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str8643, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str8644) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str8645, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str8646) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store ptr @.str8647, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str8648) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store ptr @.str8649, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str8650) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: store ptr @.str8651, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str8652) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: store ptr @.str8653, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str8654) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: store ptr @.str8655, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str8656) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: store ptr @.str8657, ptr %retval br label %ret ifend26: store ptr @.str8658, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } define ptr @fn_to_fixed(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str8659) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0 %t8 = load ptr, ptr %t7 store ptr %t8, ptr %retval br label %ret ifend2: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Val, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @lp_str_concat(ptr @.str8660, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str8661) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } define ptr @fn_coerce_code(ptr %arg_v, ptr %arg_target) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t11 = alloca i32 %t12 = alloca i32 %t44 = alloca i32 %t60 = alloca i32 %t61 = alloca i32 %t96 = alloca ptr %t101 = alloca ptr %t109 = alloca i32 %t126 = alloca i32 store ptr %arg_v, ptr %t0 store ptr %arg_target, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = call i32 @fn_is_fp(ptr %t2) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr %t0 %t6 = load ptr, ptr %t1 %t7 = load ptr, ptr %t1 %t8 = call ptr @lp_str_concat(ptr @.str8662, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str8663) %t10 = call ptr @fn_to_fp(ptr %t5, ptr %t6, ptr %t9) store ptr %t10, ptr %retval br label %ret ifend2: %t13 = load ptr, ptr %t1 %t14 = call i32 @fn_is_fn_type(ptr %t13) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t12 br i1 %t15, label %sc3, label %scend4 sc3: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Val, ptr %t17, i32 0, i32 1 %t19 = load ptr, ptr %t18 %t20 = call i32 @fn_is_fn_type(ptr %t19) %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t12 br label %scend4 scend4: %t23 = load i32, ptr %t12 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t11 br i1 %t24, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Val, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = load ptr, ptr %t1 %t30 = call i32 @lp_str_eq(ptr %t28, ptr %t29) %t31 = icmp eq i32 %t30, 0 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t11 br label %scend6 scend6: %t35 = load i32, ptr %t11 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t0 %t38 = getelementptr inbounds %Cmp_Val, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 %t40 = call ptr @lp_str_concat(ptr @.str8664, ptr %t39) %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str8665) %t42 = load ptr, ptr %t1 %t43 = call ptr @lp_str_concat(ptr %t41, ptr %t42) call void @fn_perr(ptr %t43) br label %ifend9 ifend9: %t45 = load ptr, ptr %t1 %t46 = call i32 @lp_str_eq(ptr %t45, ptr @.str8666) %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t44 br i1 %t47, label %sc10, label %scend11 sc10: %t49 = load ptr, ptr %t0 %t50 = call ptr @fn_fixed_lit_code(ptr %t49) %t51 = call i32 @lp_str_eq(ptr %t50, ptr @.str8667) %t52 = icmp eq i32 %t51, 0 %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t44 br label %scend11 scend11: %t56 = load i32, ptr %t44 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then12, label %ifend14 then12: %t58 = load ptr, ptr %t0 %t59 = call ptr @fn_fixed_lit_code(ptr %t58) store ptr %t59, ptr %retval br label %ret ifend14: %t62 = load ptr, ptr %t0 %t63 = getelementptr inbounds %Cmp_Val, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 %t65 = call i32 @fn_is_fp(ptr %t64) %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t61 br i1 %t66, label %sc15, label %scend16 sc15: %t68 = load ptr, ptr %t1 %t69 = call i32 @fn_is_fp(ptr %t68) %t70 = icmp eq i32 %t69, 0 %t71 = zext i1 %t70 to i32 %t72 = icmp ne i32 %t71, 0 %t73 = zext i1 %t72 to i32 store i32 %t73, ptr %t61 br label %scend16 scend16: %t74 = load i32, ptr %t61 %t75 = icmp ne i32 %t74, 0 %t76 = zext i1 %t75 to i32 store i32 %t76, ptr %t60 br i1 %t75, label %sc17, label %scend18 sc17: %t77 = load ptr, ptr %t1 %t78 = call ptr @fn_llty(ptr %t77) %t79 = call i32 @lp_str_eq(ptr %t78, ptr @.str8668) %t80 = icmp eq i32 %t79, 0 %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t60 br label %scend18 scend18: %t84 = load i32, ptr %t60 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then19, label %ifend21 then19: %t86 = load ptr, ptr %t0 %t87 = getelementptr inbounds %Cmp_Val, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %t87 %t89 = call ptr @lp_str_concat(ptr @.str8669, ptr %t88) %t90 = call ptr @lp_str_concat(ptr %t89, ptr @.str8670) %t91 = load ptr, ptr %t1 %t92 = call ptr @lp_str_concat(ptr %t90, ptr %t91) %t93 = call ptr @lp_str_concat(ptr %t92, ptr @.str8671) call void @fn_perr(ptr %t93) br label %ifend21 ifend21: %t94 = load ptr, ptr %t1 %t95 = call ptr @fn_llty(ptr %t94) store ptr %t95, ptr %t96 %t97 = load ptr, ptr %t0 %t98 = getelementptr inbounds %Cmp_Val, ptr %t97, i32 0, i32 1 %t99 = load ptr, ptr %t98 %t100 = call ptr @fn_llty(ptr %t99) store ptr %t100, ptr %t101 %t102 = load ptr, ptr %t96 %t103 = load ptr, ptr %t101 %t104 = call i32 @lp_str_eq(ptr %t102, ptr %t103) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then22, label %ifend24 then22: %t106 = load ptr, ptr %t0 %t107 = getelementptr inbounds %Cmp_Val, ptr %t106, i32 0, i32 0 %t108 = load ptr, ptr %t107 store ptr %t108, ptr %retval br label %ret ifend24: %t110 = load ptr, ptr %t96 %t111 = call i32 @lp_str_eq(ptr %t110, ptr @.str8672) %t112 = icmp ne i32 %t111, 0 %t113 = zext i1 %t112 to i32 store i32 %t113, ptr %t109 br i1 %t112, label %sc25, label %scend26 sc25: %t114 = load ptr, ptr %t101 %t115 = call i32 @lp_str_eq(ptr %t114, ptr @.str8673) %t116 = icmp ne i32 %t115, 0 %t117 = zext i1 %t116 to i32 store i32 %t117, ptr %t109 br label %scend26 scend26: %t118 = load i32, ptr %t109 %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then27, label %ifend29 then27: %t120 = load ptr, ptr %t0 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = call ptr @lp_str_concat(ptr @.str8674, ptr %t122) %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str8675) %t125 = call ptr @fn_emit_bind(ptr %t124) store ptr %t125, ptr %retval br label %ret ifend29: %t127 = load ptr, ptr %t96 %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str8676) %t129 = icmp ne i32 %t128, 0 %t130 = zext i1 %t129 to i32 store i32 %t130, ptr %t126 br i1 %t129, label %sc30, label %scend31 sc30: %t131 = load ptr, ptr %t101 %t132 = call i32 @lp_str_eq(ptr %t131, ptr @.str8677) %t133 = icmp ne i32 %t132, 0 %t134 = zext i1 %t133 to i32 store i32 %t134, ptr %t126 br label %scend31 scend31: %t135 = load i32, ptr %t126 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then32, label %ifend34 then32: %t137 = load ptr, ptr %t0 %t138 = getelementptr inbounds %Cmp_Val, ptr %t137, i32 0, i32 0 %t139 = load ptr, ptr %t138 %t140 = call ptr @lp_str_concat(ptr @.str8678, ptr %t139) %t141 = call ptr @lp_str_concat(ptr %t140, ptr @.str8679) %t142 = call ptr @fn_emit_bind(ptr %t141) store ptr %t142, ptr %retval br label %ret ifend34: %t143 = load ptr, ptr %t0 %t144 = getelementptr inbounds %Cmp_Val, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 store ptr %t145, ptr %retval br label %ret ret: %t146 = load ptr, ptr %retval ret ptr %t146 } define ptr @fn_to_long(ptr %arg_v) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_llty(ptr %t3) %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str8680) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Val, ptr %t7, i32 0, i32 0 %t9 = load ptr, ptr %t8 store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = call ptr @lp_str_concat(ptr @.str8681, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str8682) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %retval br label %ret ret: %t16 = load ptr, ptr %retval ret ptr %t16 } define ptr @fn_emit_str_op(ptr %arg_op, ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t29 = alloca ptr %t37 = alloca ptr store ptr %arg_op, ptr %t0 store ptr %arg_a, ptr %t1 store ptr %arg_b, ptr %t2 store i32 1, ptr @g_g_uses_str %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str8683) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr @.str8684, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str8685) %t11 = load ptr, ptr %t2 %t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = call ptr @lp_str_concat(ptr %t10, ptr %t13) %t15 = call ptr @lp_str_concat(ptr %t14, ptr @.str8686) %t16 = call ptr @fn_emit_bind(ptr %t15) %t17 = call ptr @fn_val(ptr %t16, ptr @.str8687) store ptr %t17, ptr %retval br label %ret ifend2: %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = call ptr @lp_str_concat(ptr @.str8688, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str8689) %t23 = load ptr, ptr %t2 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr %t22, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str8690) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str8691) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then3, label %ifend5 then3: %t33 = load ptr, ptr %t29 %t34 = call ptr @lp_str_concat(ptr @.str8692, ptr %t33) %t35 = call ptr @lp_str_concat(ptr %t34, ptr @.str8693) %t36 = call ptr @fn_emit_bind(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = call ptr @lp_str_concat(ptr @.str8694, ptr %t38) %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str8695) %t41 = call ptr @fn_emit_bind(ptr %t40) %t42 = call ptr @fn_val(ptr %t41, ptr @.str8696) store ptr %t42, ptr %retval br label %ret ifend5: %t43 = load ptr, ptr %t29 %t44 = call ptr @fn_val(ptr %t43, ptr @.str8697) store ptr %t44, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } define ptr @fn_arith_ty(ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 store ptr %arg_ty, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str8698) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str8699) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @fn_is_fp(ptr %t14) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: %t20 = load ptr, ptr %t0 store ptr %t20, ptr %retval br label %ret ifend6: store ptr @.str8700, ptr %retval br label %ret ret: %t21 = load ptr, ptr %retval ret ptr %t21 } define ptr @fn_emit_bin(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t22 = alloca ptr %t27 = alloca ptr %t28 = alloca i32 %t48 = alloca i32 %t56 = alloca ptr %t57 = alloca i32 %t58 = alloca i32 %t78 = alloca i32 %t98 = alloca i32 %t99 = alloca i32 %t119 = alloca i32 store ptr %arg_e, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1 %t4 = load ptr, ptr %t3 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str8701) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t1 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1 %t10 = load ptr, ptr %t9 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str8702) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br label %scend1 scend1: %t14 = load i32, ptr %t1 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then2, label %ifend4 then2: %t16 = load ptr, ptr %t0 %t17 = call ptr @fn_emit_logic(ptr %t16) store ptr %t17, ptr %retval br label %ret ifend4: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_emit_expr(ptr %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 5 %t25 = load ptr, ptr %t24 %t26 = call ptr @fn_emit_expr(ptr %t25) store ptr %t26, ptr %t27 %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 4 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 0 %t33 = load i32, ptr %t32 %t34 = icmp eq i32 %t33, 43 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t28 br i1 %t36, label %scend6, label %sc5 sc5: %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 5 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 0 %t42 = load i32, ptr %t41 %t43 = icmp eq i32 %t42, 43 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t28 br label %scend6 scend6: %t47 = load i32, ptr %t28 store i32 %t47, ptr %t48 %t49 = load ptr, ptr %t0 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1 %t51 = load ptr, ptr %t50 %t52 = load ptr, ptr %t22 %t53 = load ptr, ptr %t27 %t54 = load i32, ptr %t48 %t55 = call ptr @fn_emit_bin_vals(ptr %t51, ptr %t52, ptr %t53, i32 %t54) store ptr %t55, ptr %t56 %t59 = load ptr, ptr %t0 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 1 %t61 = load ptr, ptr %t60 %t62 = call i32 @fn_is_cmp(ptr %t61) %t63 = icmp eq i32 %t62, 0 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t58 br i1 %t65, label %sc7, label %scend8 sc7: %t67 = load ptr, ptr %t56 %t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 1 %t69 = load ptr, ptr %t68 %t70 = call i32 @fn_is_fp(ptr %t69) %t71 = icmp eq i32 %t70, 0 %t72 = zext i1 %t71 to i32 %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t58 br label %scend8 scend8: %t75 = load i32, ptr %t58 %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t57 br i1 %t76, label %sc9, label %scend10 sc9: %t79 = load ptr, ptr %t22 %t80 = getelementptr inbounds %Cmp_Val, ptr %t79, i32 0, i32 2 %t81 = load ptr, ptr %t80 %t82 = icmp ne ptr %t81, null %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t78 br i1 %t84, label %scend12, label %sc11 sc11: %t86 = load ptr, ptr %t27 %t87 = getelementptr inbounds %Cmp_Val, ptr %t86, i32 0, i32 2 %t88 = load ptr, ptr %t87 %t89 = icmp ne ptr %t88, null %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t78 br label %scend12 scend12: %t93 = load i32, ptr %t78 %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t57 br label %scend10 scend10: %t96 = load i32, ptr %t57 %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then13, label %ifend15 then13: %t100 = load ptr, ptr %t22 %t101 = getelementptr inbounds %Cmp_Val, ptr %t100, i32 0, i32 2 %t102 = load ptr, ptr %t101 %t103 = icmp ne ptr %t102, null %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 %t106 = zext i1 %t105 to i32 store i32 %t106, ptr %t99 br i1 %t105, label %scend17, label %sc16 sc16: %t107 = load ptr, ptr %t0 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 4 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 0 %t111 = load i32, ptr %t110 %t112 = icmp eq i32 %t111, 30 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t99 br label %scend17 scend17: %t116 = load i32, ptr %t99 %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t98 br i1 %t117, label %sc18, label %scend19 sc18: %t120 = load ptr, ptr %t27 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 2 %t122 = load ptr, ptr %t121 %t123 = icmp ne ptr %t122, null %t124 = zext i1 %t123 to i32 %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t119 br i1 %t125, label %scend21, label %sc20 sc20: %t127 = load ptr, ptr %t0 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 5 %t129 = load ptr, ptr %t128 %t130 = getelementptr inbounds %Cmp_Node, ptr %t129, i32 0, i32 0 %t131 = load i32, ptr %t130 %t132 = icmp eq i32 %t131, 30 %t133 = zext i1 %t132 to i32 %t134 = icmp ne i32 %t133, 0 %t135 = zext i1 %t134 to i32 store i32 %t135, ptr %t119 br label %scend21 scend21: %t136 = load i32, ptr %t119 %t137 = icmp ne i32 %t136, 0 %t138 = zext i1 %t137 to i32 store i32 %t138, ptr %t98 br label %scend19 scend19: %t139 = load i32, ptr %t98 %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %then22, label %ifend24 then22: %t141 = load ptr, ptr %t56 %t142 = getelementptr inbounds %Cmp_Val, ptr %t141, i32 0, i32 2 %t143 = load ptr, ptr %t0 store ptr %t143, ptr %t142 br label %ifend24 ifend24: br label %ifend15 ifend15: %t144 = load ptr, ptr %t56 store ptr %t144, ptr %retval br label %ret ret: %t145 = load ptr, ptr %retval ret ptr %t145 } define i32 @fn_is_textish(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 store ptr %arg_t, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str8703) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str8704) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str8705) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 store i32 %t18, ptr %retval br label %ret ret: %t19 = load i32, ptr %retval ret i32 %t19 } define ptr @fn_emit_bin_vals(ptr %arg_op, ptr %arg_a, ptr %arg_b, i32 %arg_isnull) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t4 = alloca i32 %t20 = alloca i32 %t29 = alloca i32 %t30 = alloca i32 %t49 = alloca i32 %t68 = alloca i32 %t69 = alloca i32 %t86 = alloca i32 %t118 = alloca i32 %t132 = alloca i32 %t133 = alloca i32 %t134 = alloca i32 %t135 = alloca i32 %t167 = alloca i32 %t168 = alloca i32 %t193 = alloca ptr %t197 = alloca ptr %t198 = alloca ptr %t211 = alloca i32 %t241 = alloca ptr %t251 = alloca ptr %t254 = alloca ptr %t269 = alloca ptr %t272 = alloca ptr %t280 = alloca ptr %t285 = alloca ptr %t292 = alloca ptr %t297 = alloca ptr %t310 = alloca ptr %t315 = alloca ptr %t320 = alloca ptr %t327 = alloca ptr %t342 = alloca ptr %t358 = alloca ptr store ptr %arg_op, ptr %t0 store ptr %arg_a, ptr %t1 store ptr %arg_b, ptr %t2 store i32 %arg_isnull, ptr %t3 %t5 = load ptr, ptr %t1 %t6 = getelementptr inbounds %Cmp_Val, ptr %t5, i32 0, i32 1 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_llty(ptr %t7) %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str8706) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t4 br i1 %t10, label %scend1, label %sc0 sc0: %t12 = load ptr, ptr %t2 %t13 = getelementptr inbounds %Cmp_Val, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t13 %t15 = call ptr @fn_llty(ptr %t14) %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str8707) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t4 br label %scend1 scend1: %t19 = load i32, ptr %t4 store i32 %t19, ptr %t20 %t21 = load i32, ptr %t20 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then2, label %ifend4 then2: %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str8708) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: %t26 = load ptr, ptr %t1 %t27 = load ptr, ptr %t2 %t28 = call ptr @fn_emit_str_op(ptr @.str8709, ptr %t26, ptr %t27) store ptr %t28, ptr %retval br label %ret ifend7: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str8710) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t30 br i1 %t33, label %scend9, label %sc8 sc8: %t35 = load ptr, ptr %t0 %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str8711) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t30 br label %scend9 scend9: %t39 = load i32, ptr %t30 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t29 br i1 %t40, label %sc10, label %scend11 sc10: %t42 = load i32, ptr %t3 %t43 = icmp eq i32 %t42, 0 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t29 br label %scend11 scend11: %t47 = load i32, ptr %t29 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then12, label %ifend14 then12: %t50 = load ptr, ptr %t1 %t51 = getelementptr inbounds %Cmp_Val, ptr %t50, i32 0, i32 1 %t52 = load ptr, ptr %t51 %t53 = call i32 @fn_is_textish(ptr %t52) %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t49 br i1 %t54, label %sc15, label %scend16 sc15: %t56 = load ptr, ptr %t2 %t57 = getelementptr inbounds %Cmp_Val, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = call i32 @fn_is_textish(ptr %t58) %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t49 br label %scend16 scend16: %t62 = load i32, ptr %t49 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then17, label %ifend19 then17: %t64 = load ptr, ptr %t0 %t65 = load ptr, ptr %t1 %t66 = load ptr, ptr %t2 %t67 = call ptr @fn_emit_str_op(ptr %t64, ptr %t65, ptr %t66) store ptr %t67, ptr %retval br label %ret ifend19: %t70 = load ptr, ptr %t1 %t71 = getelementptr inbounds %Cmp_Val, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 %t73 = call i32 @lp_str_eq(ptr %t72, ptr @.str8712) %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t69 br i1 %t74, label %sc20, label %scend21 sc20: %t76 = load ptr, ptr %t2 %t77 = getelementptr inbounds %Cmp_Val, ptr %t76, i32 0, i32 1 %t78 = load ptr, ptr %t77 %t79 = call ptr @fn_llty(ptr %t78) %t80 = call i32 @lp_str_eq(ptr %t79, ptr @.str8713) %t81 = icmp ne i32 %t80, 0 %t82 = zext i1 %t81 to i32 store i32 %t82, ptr %t69 br label %scend21 scend21: %t83 = load i32, ptr %t69 %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t68 br i1 %t84, label %scend23, label %sc22 sc22: %t87 = load ptr, ptr %t2 %t88 = getelementptr inbounds %Cmp_Val, ptr %t87, i32 0, i32 1 %t89 = load ptr, ptr %t88 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str8714) %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t86 br i1 %t91, label %sc24, label %scend25 sc24: %t93 = load ptr, ptr %t1 %t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 1 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_llty(ptr %t95) %t97 = call i32 @lp_str_eq(ptr %t96, ptr @.str8715) %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t86 br label %scend25 scend25: %t100 = load i32, ptr %t86 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t68 br label %scend23 scend23: %t103 = load i32, ptr %t68 %t104 = icmp ne i32 %t103, 0 br i1 %t104, label %then26, label %ifend28 then26: %t105 = load ptr, ptr %t1 %t106 = getelementptr inbounds %Cmp_Val, ptr %t105, i32 0, i32 1 %t107 = load ptr, ptr %t106 %t108 = call ptr @lp_str_concat(ptr @.str8716, ptr %t107) %t109 = call ptr @lp_str_concat(ptr %t108, ptr @.str8717) %t110 = load ptr, ptr %t2 %t111 = getelementptr inbounds %Cmp_Val, ptr %t110, i32 0, i32 1 %t112 = load ptr, ptr %t111 %t113 = call ptr @lp_str_concat(ptr %t109, ptr %t112) %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str8718) %t115 = load ptr, ptr %t0 %t116 = call ptr @lp_str_concat(ptr %t114, ptr %t115) %t117 = call ptr @lp_str_concat(ptr %t116, ptr @.str8719) call void @fn_perr(ptr %t117) br label %ifend28 ifend28: br label %ifend14 ifend14: br label %ifend4 ifend4: %t119 = load ptr, ptr %t1 %t120 = getelementptr inbounds %Cmp_Val, ptr %t119, i32 0, i32 1 %t121 = load ptr, ptr %t120 %t122 = call i32 @lp_str_eq(ptr %t121, ptr @.str8720) %t123 = icmp ne i32 %t122, 0 %t124 = zext i1 %t123 to i32 store i32 %t124, ptr %t118 br i1 %t123, label %scend30, label %sc29 sc29: %t125 = load ptr, ptr %t2 %t126 = getelementptr inbounds %Cmp_Val, ptr %t125, i32 0, i32 1 %t127 = load ptr, ptr %t126 %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str8721) %t129 = icmp ne i32 %t128, 0 %t130 = zext i1 %t129 to i32 store i32 %t130, ptr %t118 br label %scend30 scend30: %t131 = load i32, ptr %t118 store i32 %t131, ptr %t132 %t136 = load ptr, ptr %t1 %t137 = getelementptr inbounds %Cmp_Val, ptr %t136, i32 0, i32 1 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_llty(ptr %t138) %t140 = call i32 @lp_str_eq(ptr %t139, ptr @.str8722) %t141 = icmp ne i32 %t140, 0 %t142 = zext i1 %t141 to i32 store i32 %t142, ptr %t135 br i1 %t141, label %scend32, label %sc31 sc31: %t143 = load ptr, ptr %t2 %t144 = getelementptr inbounds %Cmp_Val, ptr %t143, i32 0, i32 1 %t145 = load ptr, ptr %t144 %t146 = call ptr @fn_llty(ptr %t145) %t147 = call i32 @lp_str_eq(ptr %t146, ptr @.str8723) %t148 = icmp ne i32 %t147, 0 %t149 = zext i1 %t148 to i32 store i32 %t149, ptr %t135 br label %scend32 scend32: %t150 = load i32, ptr %t135 %t151 = icmp ne i32 %t150, 0 %t152 = zext i1 %t151 to i32 store i32 %t152, ptr %t134 br i1 %t151, label %sc33, label %scend34 sc33: %t153 = load i32, ptr %t132 %t154 = icmp eq i32 %t153, 0 %t155 = zext i1 %t154 to i32 %t156 = icmp ne i32 %t155, 0 %t157 = zext i1 %t156 to i32 store i32 %t157, ptr %t134 br label %scend34 scend34: %t158 = load i32, ptr %t134 %t159 = icmp ne i32 %t158, 0 %t160 = zext i1 %t159 to i32 store i32 %t160, ptr %t133 br i1 %t159, label %sc35, label %scend36 sc35: %t161 = load i32, ptr %t20 %t162 = icmp eq i32 %t161, 0 %t163 = zext i1 %t162 to i32 %t164 = icmp ne i32 %t163, 0 %t165 = zext i1 %t164 to i32 store i32 %t165, ptr %t133 br label %scend36 scend36: %t166 = load i32, ptr %t133 store i32 %t166, ptr %t167 %t169 = load ptr, ptr %t1 %t170 = getelementptr inbounds %Cmp_Val, ptr %t169, i32 0, i32 1 %t171 = load ptr, ptr %t170 %t172 = call i32 @fn_is_fp(ptr %t171) %t173 = icmp ne i32 %t172, 0 %t174 = zext i1 %t173 to i32 store i32 %t174, ptr %t168 br i1 %t173, label %scend38, label %sc37 sc37: %t175 = load ptr, ptr %t2 %t176 = getelementptr inbounds %Cmp_Val, ptr %t175, i32 0, i32 1 %t177 = load ptr, ptr %t176 %t178 = call i32 @fn_is_fp(ptr %t177) %t179 = icmp ne i32 %t178, 0 %t180 = zext i1 %t179 to i32 store i32 %t180, ptr %t168 br label %scend38 scend38: %t181 = load i32, ptr %t168 %t182 = icmp ne i32 %t181, 0 br i1 %t182, label %then39, label %ifend41 then39: %t183 = load ptr, ptr %t0 %t184 = load ptr, ptr %t1 %t185 = load ptr, ptr %t2 %t186 = call ptr @fn_emit_fp_bin(ptr %t183, ptr %t184, ptr %t185) store ptr %t186, ptr %retval br label %ret ifend41: %t187 = load ptr, ptr %t0 %t188 = call i32 @fn_is_cmp(ptr %t187) %t189 = icmp ne i32 %t188, 0 br i1 %t189, label %then42, label %ifend44 then42: %t190 = load ptr, ptr %t1 %t191 = getelementptr inbounds %Cmp_Val, ptr %t190, i32 0, i32 0 %t192 = load ptr, ptr %t191 store ptr %t192, ptr %t193 %t194 = load ptr, ptr %t2 %t195 = getelementptr inbounds %Cmp_Val, ptr %t194, i32 0, i32 0 %t196 = load ptr, ptr %t195 store ptr %t196, ptr %t197 store ptr @.str8724, ptr %t198 %t199 = load i32, ptr %t132 %t200 = icmp ne i32 %t199, 0 br i1 %t200, label %then45, label %else46 then45: %t201 = load ptr, ptr %t1 %t202 = call ptr @fn_to_fixed(ptr %t201) store ptr %t202, ptr %t193 %t203 = load ptr, ptr %t2 %t204 = call ptr @fn_to_fixed(ptr %t203) store ptr %t204, ptr %t197 br label %ifend47 else46: %t205 = load i32, ptr %t167 %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then48, label %else49 then48: store ptr @.str8725, ptr %t198 %t207 = load ptr, ptr %t1 %t208 = call ptr @fn_to_long(ptr %t207) store ptr %t208, ptr %t193 %t209 = load ptr, ptr %t2 %t210 = call ptr @fn_to_long(ptr %t209) store ptr %t210, ptr %t197 br label %ifend50 else49: %t212 = load ptr, ptr %t1 %t213 = getelementptr inbounds %Cmp_Val, ptr %t212, i32 0, i32 1 %t214 = load ptr, ptr %t213 %t215 = call ptr @fn_llty(ptr %t214) %t216 = call i32 @lp_str_eq(ptr %t215, ptr @.str8726) %t217 = icmp ne i32 %t216, 0 %t218 = zext i1 %t217 to i32 store i32 %t218, ptr %t211 br i1 %t217, label %scend52, label %sc51 sc51: %t219 = load ptr, ptr %t2 %t220 = getelementptr inbounds %Cmp_Val, ptr %t219, i32 0, i32 1 %t221 = load ptr, ptr %t220 %t222 = call ptr @fn_llty(ptr %t221) %t223 = call i32 @lp_str_eq(ptr %t222, ptr @.str8727) %t224 = icmp ne i32 %t223, 0 %t225 = zext i1 %t224 to i32 store i32 %t225, ptr %t211 br label %scend52 scend52: %t226 = load i32, ptr %t211 %t227 = icmp ne i32 %t226, 0 br i1 %t227, label %then53, label %ifend55 then53: store ptr @.str8728, ptr %t198 br label %ifend55 ifend55: br label %ifend50 ifend50: br label %ifend47 ifend47: %t228 = load ptr, ptr %t0 %t229 = call ptr @fn_cmp_code(ptr %t228) %t230 = call ptr @lp_str_concat(ptr @.str8729, ptr %t229) %t231 = call ptr @lp_str_concat(ptr %t230, ptr @.str8730) %t232 = load ptr, ptr %t198 %t233 = call ptr @lp_str_concat(ptr %t231, ptr %t232) %t234 = call ptr @lp_str_concat(ptr %t233, ptr @.str8731) %t235 = load ptr, ptr %t193 %t236 = call ptr @lp_str_concat(ptr %t234, ptr %t235) %t237 = call ptr @lp_str_concat(ptr %t236, ptr @.str8732) %t238 = load ptr, ptr %t197 %t239 = call ptr @lp_str_concat(ptr %t237, ptr %t238) %t240 = call ptr @fn_emit_bind(ptr %t239) store ptr %t240, ptr %t241 %t242 = load ptr, ptr %t241 %t243 = call ptr @lp_str_concat(ptr @.str8733, ptr %t242) %t244 = call ptr @lp_str_concat(ptr %t243, ptr @.str8734) %t245 = call ptr @fn_emit_bind(ptr %t244) %t246 = call ptr @fn_val(ptr %t245, ptr @.str8735) store ptr %t246, ptr %retval br label %ret ifend44: %t247 = load i32, ptr %t167 %t248 = icmp ne i32 %t247, 0 br i1 %t248, label %then56, label %ifend58 then56: %t249 = load ptr, ptr %t1 %t250 = call ptr @fn_to_long(ptr %t249) store ptr %t250, ptr %t251 %t252 = load ptr, ptr %t2 %t253 = call ptr @fn_to_long(ptr %t252) store ptr %t253, ptr %t254 %t255 = load ptr, ptr %t0 %t256 = call ptr @fn_arith_code(ptr %t255) %t257 = call ptr @lp_str_concat(ptr %t256, ptr @.str8736) %t258 = load ptr, ptr %t251 %t259 = call ptr @lp_str_concat(ptr %t257, ptr %t258) %t260 = call ptr @lp_str_concat(ptr %t259, ptr @.str8737) %t261 = load ptr, ptr %t254 %t262 = call ptr @lp_str_concat(ptr %t260, ptr %t261) %t263 = call ptr @fn_emit_bind(ptr %t262) %t264 = call ptr @fn_val(ptr %t263, ptr @.str8738) store ptr %t264, ptr %retval br label %ret ifend58: %t265 = load i32, ptr %t132 %t266 = icmp ne i32 %t265, 0 br i1 %t266, label %then59, label %ifend61 then59: %t267 = load ptr, ptr %t1 %t268 = call ptr @fn_to_fixed(ptr %t267) store ptr %t268, ptr %t269 %t270 = load ptr, ptr %t2 %t271 = call ptr @fn_to_fixed(ptr %t270) store ptr %t271, ptr %t272 %t273 = load ptr, ptr %t0 %t274 = call i32 @lp_str_eq(ptr %t273, ptr @.str8739) %t275 = icmp ne i32 %t274, 0 br i1 %t275, label %then62, label %ifend64 then62: %t276 = load ptr, ptr %t269 %t277 = call ptr @lp_str_concat(ptr @.str8740, ptr %t276) %t278 = call ptr @lp_str_concat(ptr %t277, ptr @.str8741) %t279 = call ptr @fn_emit_bind(ptr %t278) store ptr %t279, ptr %t280 %t281 = load ptr, ptr %t272 %t282 = call ptr @lp_str_concat(ptr @.str8742, ptr %t281) %t283 = call ptr @lp_str_concat(ptr %t282, ptr @.str8743) %t284 = call ptr @fn_emit_bind(ptr %t283) store ptr %t284, ptr %t285 %t286 = load ptr, ptr %t280 %t287 = call ptr @lp_str_concat(ptr @.str8744, ptr %t286) %t288 = call ptr @lp_str_concat(ptr %t287, ptr @.str8745) %t289 = load ptr, ptr %t285 %t290 = call ptr @lp_str_concat(ptr %t288, ptr %t289) %t291 = call ptr @fn_emit_bind(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t292 %t294 = call ptr @lp_str_concat(ptr @.str8746, ptr %t293) %t295 = call ptr @lp_str_concat(ptr %t294, ptr @.str8747) %t296 = call ptr @fn_emit_bind(ptr %t295) store ptr %t296, ptr %t297 %t298 = load ptr, ptr %t297 %t299 = call ptr @lp_str_concat(ptr @.str8748, ptr %t298) %t300 = call ptr @lp_str_concat(ptr %t299, ptr @.str8749) %t301 = call ptr @fn_emit_bind(ptr %t300) %t302 = call ptr @fn_val(ptr %t301, ptr @.str8750) store ptr %t302, ptr %retval br label %ret ifend64: %t303 = load ptr, ptr %t0 %t304 = call i32 @lp_str_eq(ptr %t303, ptr @.str8751) %t305 = icmp ne i32 %t304, 0 br i1 %t305, label %then65, label %ifend67 then65: %t306 = load ptr, ptr %t269 %t307 = call ptr @lp_str_concat(ptr @.str8752, ptr %t306) %t308 = call ptr @lp_str_concat(ptr %t307, ptr @.str8753) %t309 = call ptr @fn_emit_bind(ptr %t308) store ptr %t309, ptr %t310 %t311 = load ptr, ptr %t310 %t312 = call ptr @lp_str_concat(ptr @.str8754, ptr %t311) %t313 = call ptr @lp_str_concat(ptr %t312, ptr @.str8755) %t314 = call ptr @fn_emit_bind(ptr %t313) store ptr %t314, ptr %t315 %t316 = load ptr, ptr %t272 %t317 = call ptr @lp_str_concat(ptr @.str8756, ptr %t316) %t318 = call ptr @lp_str_concat(ptr %t317, ptr @.str8757) %t319 = call ptr @fn_emit_bind(ptr %t318) store ptr %t319, ptr %t320 %t321 = load ptr, ptr %t315 %t322 = call ptr @lp_str_concat(ptr @.str8758, ptr %t321) %t323 = call ptr @lp_str_concat(ptr %t322, ptr @.str8759) %t324 = load ptr, ptr %t320 %t325 = call ptr @lp_str_concat(ptr %t323, ptr %t324) %t326 = call ptr @fn_emit_bind(ptr %t325) store ptr %t326, ptr %t327 %t328 = load ptr, ptr %t327 %t329 = call ptr @lp_str_concat(ptr @.str8760, ptr %t328) %t330 = call ptr @lp_str_concat(ptr %t329, ptr @.str8761) %t331 = call ptr @fn_emit_bind(ptr %t330) %t332 = call ptr @fn_val(ptr %t331, ptr @.str8762) store ptr %t332, ptr %retval br label %ret ifend67: %t333 = load ptr, ptr %t0 %t334 = call ptr @fn_arith_code(ptr %t333) %t335 = call ptr @lp_str_concat(ptr %t334, ptr @.str8763) %t336 = load ptr, ptr %t269 %t337 = call ptr @lp_str_concat(ptr %t335, ptr %t336) %t338 = call ptr @lp_str_concat(ptr %t337, ptr @.str8764) %t339 = load ptr, ptr %t272 %t340 = call ptr @lp_str_concat(ptr %t338, ptr %t339) %t341 = call ptr @fn_emit_bind(ptr %t340) store ptr %t341, ptr %t342 %t343 = load ptr, ptr %t342 %t344 = call ptr @fn_val(ptr %t343, ptr @.str8765) store ptr %t344, ptr %retval br label %ret ifend61: %t345 = load ptr, ptr %t0 %t346 = call ptr @fn_arith_code(ptr %t345) %t347 = call ptr @lp_str_concat(ptr %t346, ptr @.str8766) %t348 = load ptr, ptr %t1 %t349 = getelementptr inbounds %Cmp_Val, ptr %t348, i32 0, i32 0 %t350 = load ptr, ptr %t349 %t351 = call ptr @lp_str_concat(ptr %t347, ptr %t350) %t352 = call ptr @lp_str_concat(ptr %t351, ptr @.str8767) %t353 = load ptr, ptr %t2 %t354 = getelementptr inbounds %Cmp_Val, ptr %t353, i32 0, i32 0 %t355 = load ptr, ptr %t354 %t356 = call ptr @lp_str_concat(ptr %t352, ptr %t355) %t357 = call ptr @fn_emit_bind(ptr %t356) store ptr %t357, ptr %t358 %t359 = load ptr, ptr %t358 %t360 = call ptr @fn_val(ptr %t359, ptr @.str8768) store ptr %t360, ptr %retval br label %ret ret: %t361 = load ptr, ptr %retval ret ptr %t361 } define i32 @fn_args_are_named(ptr %arg_e) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_e, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t2, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr %t1 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str8769, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 0 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 42 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t28 = load i32, ptr %t1 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t30 = load i32, ptr %retval ret i32 %t30 } define void @fn_reorder_named(ptr %arg_e, ptr %arg_labels) { entry: %t0 = alloca ptr %t1 = alloca ptr %t7 = alloca i32 %t53 = alloca ptr %t54 = alloca i32 %t62 = alloca ptr %t63 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_labels, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_args_are_named(ptr %t2) %t4 = icmp eq i32 %t3, 0 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 0, ptr %t7 br label %wcond3 wcond3: %t8 = load i32, ptr %t7 %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t8, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody4, label %wend5 wbody4: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = load i32, ptr %t7 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok6, label %ixbad7 ixbad7: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str8770, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok6: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 0 %t30 = load i32, ptr %t29 %t31 = icmp ne i32 %t30, 42 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then8, label %ifend10 then8: call void @fn_perr(ptr @.str8771) br label %ifend10 ifend10: %t34 = load i32, ptr %t7 %t35 = add i32 %t34, 1 store i32 %t35, ptr %t7 br label %wcond3 wend5: %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = load ptr, ptr %t1 %t42 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 1 %t43 = load i32, ptr %t42 %t44 = icmp ne i32 %t40, %t43 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then11, label %ifend13 then11: call void @fn_perr(ptr @.str8772) br label %ifend13 ifend13: %t47 = getelementptr %LSlice, ptr null, i32 1 %t48 = ptrtoint ptr %t47 to i64 %t49 = call ptr @malloc(i64 %t48) %t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 store ptr null, ptr %t50 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 store i32 0, ptr %t51 %t52 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 2 store i32 0, ptr %t52 store ptr %t49, ptr %t53 store i32 0, ptr %t54 br label %wcond14 wcond14: %t55 = load i32, ptr %t54 %t56 = load ptr, ptr %t1 %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t58 = load i32, ptr %t57 %t59 = icmp slt i32 %t55, %t58 %t60 = zext i1 %t59 to i32 %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %wbody15, label %wend16 wbody15: store ptr null, ptr %t62 store i32 0, ptr %t63 br label %wcond17 wcond17: %t64 = load i32, ptr %t63 %t65 = load ptr, ptr %t0 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 7 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 1 %t69 = load i32, ptr %t68 %t70 = icmp slt i32 %t64, %t69 %t71 = zext i1 %t70 to i32 %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %wbody18, label %wend19 wbody18: %t73 = load ptr, ptr %t0 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 7 %t75 = load ptr, ptr %t74 %t76 = load i32, ptr %t63 %t77 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t80 = load i32, ptr %t79 %t81 = icmp ult i32 %t76, %t80 br i1 %t81, label %ixok20, label %ixbad21 ixbad21: %t82 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t82, ptr @.fmt_bounds, ptr @.str8773, i32 %t76, i32 %t80) call void @exit(i32 1) unreachable ixok20: %t83 = getelementptr inbounds ptr, ptr %t78, i32 %t76 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 %t87 = load ptr, ptr %t1 %t88 = load i32, ptr %t54 %t89 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t92 = load i32, ptr %t91 %t93 = icmp ult i32 %t88, %t92 br i1 %t93, label %ixok22, label %ixbad23 ixbad23: %t94 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t94, ptr @.fmt_bounds, ptr @.str8774, i32 %t88, i32 %t92) call void @exit(i32 1) unreachable ixok22: %t95 = getelementptr inbounds ptr, ptr %t90, i32 %t88 %t96 = load ptr, ptr %t95 %t97 = call i32 @lp_str_eq(ptr %t86, ptr %t96) %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then24, label %ifend26 then24: %t99 = load ptr, ptr %t0 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 7 %t101 = load ptr, ptr %t100 %t102 = load i32, ptr %t63 %t103 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp ult i32 %t102, %t106 br i1 %t107, label %ixok27, label %ixbad28 ixbad28: %t108 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t108, ptr @.fmt_bounds, ptr @.str8775, i32 %t102, i32 %t106) call void @exit(i32 1) unreachable ixok27: %t109 = getelementptr inbounds ptr, ptr %t104, i32 %t102 %t110 = load ptr, ptr %t109 store ptr %t110, ptr %t62 br label %ifend26 ifend26: %t111 = load i32, ptr %t63 %t112 = add i32 %t111, 1 store i32 %t112, ptr %t63 br label %wcond17 wend19: %t113 = load ptr, ptr %t62 %t114 = icmp eq ptr %t113, null %t115 = zext i1 %t114 to i32 %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then29, label %ifend31 then29: %t117 = load ptr, ptr %t1 %t118 = load i32, ptr %t54 %t119 = getelementptr inbounds %LSlice, ptr %t117, i32 0, i32 0 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %LSlice, ptr %t117, i32 0, i32 1 %t122 = load i32, ptr %t121 %t123 = icmp ult i32 %t118, %t122 br i1 %t123, label %ixok32, label %ixbad33 ixbad33: %t124 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t124, ptr @.fmt_bounds, ptr @.str8777, i32 %t118, i32 %t122) call void @exit(i32 1) unreachable ixok32: %t125 = getelementptr inbounds ptr, ptr %t120, i32 %t118 %t126 = load ptr, ptr %t125 %t127 = call ptr @lp_str_concat(ptr @.str8776, ptr %t126) call void @fn_perr(ptr %t127) br label %ifend31 ifend31: %t128 = load ptr, ptr %t53 %t129 = load ptr, ptr %t62 %t130 = getelementptr inbounds %Cmp_Node, ptr %t129, i32 0, i32 4 %t131 = load ptr, ptr %t130 %t132 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 1 %t133 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 2 %t134 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 0 %t135 = load i32, ptr %t132 %t136 = load i32, ptr %t133 %t137 = icmp sge i32 %t135, %t136 br i1 %t137, label %grow34, label %put35 grow34: %t138 = mul i32 %t136, 2 %t139 = icmp eq i32 %t136, 0 %t140 = select i1 %t139, i32 8, i32 %t138 %t141 = getelementptr ptr, ptr null, i32 1 %t142 = ptrtoint ptr %t141 to i64 %t143 = zext i32 %t140 to i64 %t144 = mul i64 %t143, %t142 %t145 = load ptr, ptr %t134 %t146 = call ptr @realloc(ptr %t145, i64 %t144) store ptr %t146, ptr %t134 store i32 %t140, ptr %t133 br label %put35 put35: %t147 = load ptr, ptr %t134 %t148 = getelementptr inbounds ptr, ptr %t147, i32 %t135 store ptr %t131, ptr %t148 %t149 = add i32 %t135, 1 store i32 %t149, ptr %t132 %t150 = load i32, ptr %t54 %t151 = add i32 %t150, 1 store i32 %t151, ptr %t54 br label %wcond14 wend16: %t152 = load ptr, ptr %t0 %t153 = getelementptr inbounds %Cmp_Node, ptr %t152, i32 0, i32 7 %t154 = load ptr, ptr %t53 store ptr %t154, ptr %t153 br label %ret ret: ret void } define ptr @fn_param_labels(ptr %arg_fn) { entry: %retval = alloca ptr %t0 = alloca ptr %t7 = alloca ptr %t8 = alloca i32 store ptr %arg_fn, ptr %t0 %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 store i32 0, ptr %t8 br label %wcond0 wcond0: %t9 = load i32, ptr %t8 %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t9, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t8 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok3, label %ixbad4 ixbad4: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str8778, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok3: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 5 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load ptr, ptr %t7 %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7 %t38 = load ptr, ptr %t37 %t39 = load i32, ptr %t8 %t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t43 = load i32, ptr %t42 %t44 = icmp ult i32 %t39, %t43 br i1 %t44, label %ixok8, label %ixbad9 ixbad9: %t45 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t45, ptr @.fmt_bounds, ptr @.str8779, i32 %t39, i32 %t43) call void @exit(i32 1) unreachable ixok8: %t46 = getelementptr inbounds ptr, ptr %t41, i32 %t39 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 1 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t51 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 2 %t52 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t53 = load i32, ptr %t50 %t54 = load i32, ptr %t51 %t55 = icmp sge i32 %t53, %t54 br i1 %t55, label %grow10, label %put11 grow10: %t56 = mul i32 %t54, 2 %t57 = icmp eq i32 %t54, 0 %t58 = select i1 %t57, i32 8, i32 %t56 %t59 = getelementptr ptr, ptr null, i32 1 %t60 = ptrtoint ptr %t59 to i64 %t61 = zext i32 %t58 to i64 %t62 = mul i64 %t61, %t60 %t63 = load ptr, ptr %t52 %t64 = call ptr @realloc(ptr %t63, i64 %t62) store ptr %t64, ptr %t52 store i32 %t58, ptr %t51 br label %put11 put11: %t65 = load ptr, ptr %t52 %t66 = getelementptr inbounds ptr, ptr %t65, i32 %t53 store ptr %t49, ptr %t66 %t67 = add i32 %t53, 1 store i32 %t67, ptr %t50 br label %ifend7 ifend7: %t68 = load i32, ptr %t8 %t69 = add i32 %t68, 1 store i32 %t69, ptr %t8 br label %wcond0 wend2: %t70 = load ptr, ptr %t7 store ptr %t70, ptr %retval br label %ret ret: %t71 = load ptr, ptr %retval ret ptr %t71 } define ptr @fn_param_types(ptr %arg_fn) { entry: %retval = alloca ptr %t0 = alloca ptr %t7 = alloca ptr %t8 = alloca i32 store ptr %arg_fn, ptr %t0 %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 store i32 0, ptr %t8 br label %wcond0 wcond0: %t9 = load i32, ptr %t8 %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t9, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t8 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok3, label %ixbad4 ixbad4: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str8780, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok3: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 5 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load ptr, ptr %t7 %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7 %t38 = load ptr, ptr %t37 %t39 = load i32, ptr %t8 %t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t43 = load i32, ptr %t42 %t44 = icmp ult i32 %t39, %t43 br i1 %t44, label %ixok8, label %ixbad9 ixbad9: %t45 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t45, ptr @.fmt_bounds, ptr @.str8781, i32 %t39, i32 %t43) call void @exit(i32 1) unreachable ixok8: %t46 = getelementptr inbounds ptr, ptr %t41, i32 %t39 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t51 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 2 %t52 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t53 = load i32, ptr %t50 %t54 = load i32, ptr %t51 %t55 = icmp sge i32 %t53, %t54 br i1 %t55, label %grow10, label %put11 grow10: %t56 = mul i32 %t54, 2 %t57 = icmp eq i32 %t54, 0 %t58 = select i1 %t57, i32 8, i32 %t56 %t59 = getelementptr ptr, ptr null, i32 1 %t60 = ptrtoint ptr %t59 to i64 %t61 = zext i32 %t58 to i64 %t62 = mul i64 %t61, %t60 %t63 = load ptr, ptr %t52 %t64 = call ptr @realloc(ptr %t63, i64 %t62) store ptr %t64, ptr %t52 store i32 %t58, ptr %t51 br label %put11 put11: %t65 = load ptr, ptr %t52 %t66 = getelementptr inbounds ptr, ptr %t65, i32 %t53 store ptr %t49, ptr %t66 %t67 = add i32 %t53, 1 store i32 %t67, ptr %t50 br label %ifend7 ifend7: %t68 = load i32, ptr %t8 %t69 = add i32 %t68, 1 store i32 %t69, ptr %t8 br label %wcond0 wend2: %t70 = load ptr, ptr %t7 store ptr %t70, ptr %retval br label %ret ret: %t71 = load ptr, ptr %retval ret ptr %t71 } define void @fn_emit_expect_fail(ptr %arg_cond1, ptr %arg_msgsym, ptr %arg_got, ptr %arg_want) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t5 = alloca ptr %t7 = alloca ptr store ptr %arg_cond1, ptr %t0 store ptr %arg_msgsym, ptr %t1 store ptr %arg_got, ptr %t2 store ptr %arg_want, ptr %t3 %t4 = call ptr @fn_lbl(ptr @.str8782) store ptr %t4, ptr %t5 %t6 = call ptr @fn_lbl(ptr @.str8783) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t0 %t9 = call ptr @lp_str_concat(ptr @.str8784, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str8785) %t11 = load ptr, ptr %t5 %t12 = call ptr @lp_str_concat(ptr %t10, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str8786) %t14 = load ptr, ptr %t7 %t15 = call ptr @lp_str_concat(ptr %t13, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str8787) call void @fn_emit(ptr %t16) %t17 = load ptr, ptr %t7 %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str8788) call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str8789) %t19 = load ptr, ptr %t2 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str8790) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then0, label %else1 then0: %t22 = load ptr, ptr %t1 %t23 = call ptr @lp_str_concat(ptr @.str8791, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str8792) call void @fn_emit(ptr %t24) br label %ifend2 else1: %t25 = load ptr, ptr %t1 %t26 = call ptr @lp_str_concat(ptr @.str8793, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str8794) %t28 = load ptr, ptr %t2 %t29 = call ptr @lp_str_concat(ptr %t27, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str8795) %t31 = load ptr, ptr %t3 %t32 = call ptr @lp_str_concat(ptr %t30, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str8796) call void @fn_emit(ptr %t33) br label %ifend2 ifend2: %t34 = load ptr, ptr %t5 %t35 = call ptr @lp_str_concat(ptr @.str8797, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str8798) call void @fn_emit(ptr %t36) %t37 = load ptr, ptr %t5 %t38 = call ptr @lp_str_concat(ptr %t37, ptr @.str8799) call void @fn_emit(ptr %t38) br label %ret ret: ret void } define ptr @fn_emit_expect_fp(ptr %arg_e, ptr %arg_a, ptr %arg_b, ptr %arg_tol) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t5 = alloca i32 %t20 = alloca i32 %t37 = alloca ptr %t41 = alloca ptr %t42 = alloca ptr %t43 = alloca ptr %t60 = alloca ptr %t70 = alloca ptr %t77 = alloca ptr %t85 = alloca ptr %t101 = alloca ptr %t118 = alloca ptr %t120 = alloca ptr %t122 = alloca ptr %t135 = alloca ptr %t137 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_a, ptr %t1 store ptr %arg_b, ptr %t2 store ptr %arg_tol, ptr %t3 store i32 1, ptr @g_g_uses_expect_fp store ptr @.str8800, ptr %t4 %t6 = load ptr, ptr %t1 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str8801) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t5 br i1 %t10, label %scend1, label %sc0 sc0: %t12 = load ptr, ptr %t2 %t13 = getelementptr inbounds %Cmp_Val, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t13 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str8802) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t5 br label %scend1 scend1: %t18 = load i32, ptr %t5 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then2, label %ifend4 then2: store ptr @.str8803, ptr %t4 br label %ifend4 ifend4: %t21 = load ptr, ptr %t3 %t22 = icmp ne ptr %t21, null %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t20 br i1 %t24, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr %t3 %t27 = getelementptr inbounds %Cmp_Val, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str8804) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t20 br label %scend6 scend6: %t32 = load i32, ptr %t20 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then7, label %ifend9 then7: store ptr @.str8805, ptr %t4 br label %ifend9 ifend9: %t34 = load ptr, ptr %t1 %t35 = load ptr, ptr %t4 %t36 = call ptr @fn_to_fp(ptr %t34, ptr %t35, ptr @.str8806) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t2 %t39 = load ptr, ptr %t4 %t40 = call ptr @fn_to_fp(ptr %t38, ptr %t39, ptr @.str8807) store ptr %t40, ptr %t41 store ptr @.str8808, ptr %t42 store ptr @.str8809, ptr %t43 %t44 = load ptr, ptr %t3 %t45 = icmp eq ptr %t44, null %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then10, label %else11 then10: %t48 = load ptr, ptr %t4 %t49 = call ptr @lp_str_concat(ptr @.str8810, ptr %t48) %t50 = call ptr @lp_str_concat(ptr %t49, ptr @.str8811) %t51 = load ptr, ptr %t37 %t52 = call ptr @lp_str_concat(ptr %t50, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str8812) %t54 = load ptr, ptr %t41 %t55 = call ptr @lp_str_concat(ptr %t53, ptr %t54) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t42 br label %ifend12 else11: store ptr @.str8813, ptr %t43 %t57 = load ptr, ptr %t3 %t58 = load ptr, ptr %t4 %t59 = call ptr @fn_to_fp(ptr %t57, ptr %t58, ptr @.str8814) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t4 %t62 = call ptr @lp_str_concat(ptr @.str8815, ptr %t61) %t63 = call ptr @lp_str_concat(ptr %t62, ptr @.str8816) %t64 = load ptr, ptr %t37 %t65 = call ptr @lp_str_concat(ptr %t63, ptr %t64) %t66 = call ptr @lp_str_concat(ptr %t65, ptr @.str8817) %t67 = load ptr, ptr %t41 %t68 = call ptr @lp_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @fn_emit_bind(ptr %t68) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t4 %t72 = call ptr @lp_str_concat(ptr @.str8818, ptr %t71) %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str8819) %t74 = load ptr, ptr %t70 %t75 = call ptr @lp_str_concat(ptr %t73, ptr %t74) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t4 %t79 = call ptr @lp_str_concat(ptr @.str8820, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str8821) %t81 = load ptr, ptr %t70 %t82 = call ptr @lp_str_concat(ptr %t80, ptr %t81) %t83 = call ptr @lp_str_concat(ptr %t82, ptr @.str8822) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = call ptr @lp_str_concat(ptr @.str8823, ptr %t86) %t88 = call ptr @lp_str_concat(ptr %t87, ptr @.str8824) %t89 = load ptr, ptr %t4 %t90 = call ptr @lp_str_concat(ptr %t88, ptr %t89) %t91 = call ptr @lp_str_concat(ptr %t90, ptr @.str8825) %t92 = load ptr, ptr %t77 %t93 = call ptr @lp_str_concat(ptr %t91, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str8826) %t95 = load ptr, ptr %t4 %t96 = call ptr @lp_str_concat(ptr %t94, ptr %t95) %t97 = call ptr @lp_str_concat(ptr %t96, ptr @.str8827) %t98 = load ptr, ptr %t70 %t99 = call ptr @lp_str_concat(ptr %t97, ptr %t98) %t100 = call ptr @fn_emit_bind(ptr %t99) store ptr %t100, ptr %t101 %t102 = load ptr, ptr %t4 %t103 = call ptr @lp_str_concat(ptr @.str8828, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str8829) %t105 = load ptr, ptr %t101 %t106 = call ptr @lp_str_concat(ptr %t104, ptr %t105) %t107 = call ptr @lp_str_concat(ptr %t106, ptr @.str8830) %t108 = load ptr, ptr %t60 %t109 = call ptr @lp_str_concat(ptr %t107, ptr %t108) %t110 = call ptr @fn_emit_bind(ptr %t109) store ptr %t110, ptr %t42 br label %ifend12 ifend12: %t111 = load ptr, ptr %t0 %t112 = call ptr @fn_expect_where(ptr %t111) %t113 = call ptr @lp_str_concat(ptr %t112, ptr @.str8831) %t114 = load ptr, ptr %t43 %t115 = call ptr @lp_str_concat(ptr %t113, ptr %t114) %t116 = call ptr @lp_str_concat(ptr %t115, ptr @.str8832) %t117 = call ptr @fn_emit_str_const(ptr %t116) store ptr %t117, ptr %t118 %t119 = load ptr, ptr %t37 store ptr %t119, ptr %t120 %t121 = load ptr, ptr %t41 store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t4 %t124 = call i32 @lp_str_eq(ptr %t123, ptr @.str8833) %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then13, label %ifend15 then13: %t126 = load ptr, ptr %t37 %t127 = call ptr @lp_str_concat(ptr @.str8834, ptr %t126) %t128 = call ptr @lp_str_concat(ptr %t127, ptr @.str8835) %t129 = call ptr @fn_emit_bind(ptr %t128) store ptr %t129, ptr %t120 %t130 = load ptr, ptr %t41 %t131 = call ptr @lp_str_concat(ptr @.str8836, ptr %t130) %t132 = call ptr @lp_str_concat(ptr %t131, ptr @.str8837) %t133 = call ptr @fn_emit_bind(ptr %t132) store ptr %t133, ptr %t122 br label %ifend15 ifend15: %t134 = call ptr @fn_lbl(ptr @.str8838) store ptr %t134, ptr %t135 %t136 = call ptr @fn_lbl(ptr @.str8839) store ptr %t136, ptr %t137 %t138 = load ptr, ptr %t42 %t139 = call ptr @lp_str_concat(ptr @.str8840, ptr %t138) %t140 = call ptr @lp_str_concat(ptr %t139, ptr @.str8841) %t141 = load ptr, ptr %t135 %t142 = call ptr @lp_str_concat(ptr %t140, ptr %t141) %t143 = call ptr @lp_str_concat(ptr %t142, ptr @.str8842) %t144 = load ptr, ptr %t137 %t145 = call ptr @lp_str_concat(ptr %t143, ptr %t144) %t146 = call ptr @lp_str_concat(ptr %t145, ptr @.str8843) call void @fn_emit(ptr %t146) %t147 = load ptr, ptr %t137 %t148 = call ptr @lp_str_concat(ptr %t147, ptr @.str8844) call void @fn_emit(ptr %t148) call void @fn_emit(ptr @.str8845) %t149 = load ptr, ptr %t118 %t150 = call ptr @lp_str_concat(ptr @.str8846, ptr %t149) %t151 = call ptr @lp_str_concat(ptr %t150, ptr @.str8847) %t152 = load ptr, ptr %t120 %t153 = call ptr @lp_str_concat(ptr %t151, ptr %t152) %t154 = call ptr @lp_str_concat(ptr %t153, ptr @.str8848) %t155 = load ptr, ptr %t122 %t156 = call ptr @lp_str_concat(ptr %t154, ptr %t155) %t157 = call ptr @lp_str_concat(ptr %t156, ptr @.str8849) call void @fn_emit(ptr %t157) %t158 = load ptr, ptr %t135 %t159 = call ptr @lp_str_concat(ptr @.str8850, ptr %t158) %t160 = call ptr @lp_str_concat(ptr %t159, ptr @.str8851) call void @fn_emit(ptr %t160) %t161 = load ptr, ptr %t135 %t162 = call ptr @lp_str_concat(ptr %t161, ptr @.str8852) call void @fn_emit(ptr %t162) %t163 = call ptr @fn_val(ptr @.str8853, ptr @.str8854) store ptr %t163, ptr %retval br label %ret ret: %t164 = load ptr, ptr %retval ret ptr %t164 } define ptr @fn_expect_where(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 9 %t3 = load ptr, ptr %t2 %t4 = icmp ne ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 9 %t9 = load ptr, ptr %t8 %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str8855) %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 8 %t13 = load i32, ptr %t12 %t14 = call ptr @fn_itoa(i32 %t13) %t15 = call ptr @lp_str_concat(ptr %t10, ptr %t14) store ptr %t15, ptr %retval br label %ret ifend2: %t16 = load ptr, ptr @g_g_src_name %t17 = call ptr @lp_str_concat(ptr %t16, ptr @.str8856) %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 8 %t20 = load i32, ptr %t19 %t21 = call ptr @fn_itoa(i32 %t20) %t22 = call ptr @lp_str_concat(ptr %t17, ptr %t21) store ptr %t22, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval ret ptr %t23 } define ptr @fn_ns_lower(ptr %arg_s) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca i32 %t8 = alloca ptr %t9 = alloca i32 %t20 = alloca i32 %t21 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_cstr_len(ptr %t1) store i32 %t2, ptr %t3 %t4 = load i32, ptr %t3 %t5 = add i32 %t4, 1 %t6 = zext i32 %t5 to i64 %t7 = call ptr @malloc(i64 %t6) store ptr %t7, ptr %t8 store i32 0, ptr %t9 br label %wcond0 wcond0: %t10 = load i32, ptr %t9 %t11 = load i32, ptr %t3 %t12 = icmp slt i32 %t10, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %wbody1, label %wend2 wbody1: %t15 = load ptr, ptr %t0 %t16 = load i32, ptr %t9 %t17 = getelementptr inbounds i8, ptr %t15, i32 %t16 %t18 = load i8, ptr %t17 %t19 = zext i8 %t18 to i32 store i32 %t19, ptr %t20 %t22 = load i32, ptr %t20 %t23 = icmp sge i32 %t22, 65 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t21 br i1 %t25, label %sc3, label %scend4 sc3: %t27 = load i32, ptr %t20 %t28 = icmp sle i32 %t27, 90 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t21 br label %scend4 scend4: %t32 = load i32, ptr %t21 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then5, label %ifend7 then5: %t34 = load i32, ptr %t20 %t35 = add i32 %t34, 32 store i32 %t35, ptr %t20 br label %ifend7 ifend7: %t36 = load ptr, ptr %t8 %t37 = load i32, ptr %t9 %t38 = getelementptr inbounds i8, ptr %t36, i32 %t37 %t39 = load i32, ptr %t20 %t40 = trunc i32 %t39 to i8 store i8 %t40, ptr %t38 %t41 = load i32, ptr %t9 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t9 br label %wcond0 wend2: %t43 = load ptr, ptr %t8 %t44 = load i32, ptr %t3 %t45 = getelementptr inbounds i8, ptr %t43, i32 %t44 %t46 = trunc i32 0 to i8 store i8 %t46, ptr %t45 %t47 = load ptr, ptr %t8 store ptr %t47, ptr %retval br label %ret ret: %t48 = load ptr, ptr %retval ret ptr %t48 } define ptr @fn_emit_component_access(ptr %arg_prop, ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t19 = alloca ptr %t32 = alloca ptr %t61 = alloca ptr %t90 = alloca ptr %t92 = alloca ptr %t94 = alloca ptr %t143 = alloca ptr %t146 = alloca ptr %t149 = alloca ptr %t151 = alloca ptr %t153 = alloca ptr %t155 = alloca ptr %t161 = alloca ptr %t163 = alloca ptr %t170 = alloca ptr %t181 = alloca ptr %t185 = alloca ptr %t195 = alloca ptr %t199 = alloca ptr %t204 = alloca ptr %t211 = alloca ptr %t215 = alloca ptr %t222 = alloca ptr %t231 = alloca ptr %t265 = alloca ptr %t283 = alloca ptr %t295 = alloca ptr %t305 = alloca ptr %t312 = alloca ptr %t316 = alloca ptr %t321 = alloca ptr %t331 = alloca ptr %t335 = alloca ptr %t340 = alloca ptr %t347 = alloca ptr %t354 = alloca ptr store ptr %arg_prop, ptr %t0 store ptr %arg_meth, ptr %t1 store ptr %arg_e, ptr %t2 %t3 = call ptr @fn_itoa(i32 1024) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t1 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str8857) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load ptr, ptr %t2 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 7 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = load i32, ptr %t11 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: %t16 = load ptr, ptr %t0 %t17 = call ptr @lp_str_concat(ptr %t16, ptr @.str8858) call void @fn_perr(ptr %t17) br label %ifend5 ifend5: %t18 = call ptr @fn_node(i32 21) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 7 %t22 = getelementptr %LSlice, ptr null, i32 1 %t23 = ptrtoint ptr %t22 to i64 %t24 = call ptr @malloc(i64 %t23) %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 store ptr null, ptr %t25 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 store i32 0, ptr %t26 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 store i32 0, ptr %t27 store ptr %t24, ptr %t21 %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 6 %t30 = call ptr @fn_node(i32 7) store ptr %t30, ptr %t29 %t31 = call ptr @fn_node(i32 33) store ptr %t31, ptr %t32 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t0 store ptr %t35, ptr %t34 %t36 = load ptr, ptr %t19 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 6 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7 %t40 = load ptr, ptr %t39 %t41 = load ptr, ptr %t32 %t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 2 %t44 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t45 = load i32, ptr %t42 %t46 = load i32, ptr %t43 %t47 = icmp sge i32 %t45, %t46 br i1 %t47, label %grow6, label %put7 grow6: %t48 = mul i32 %t46, 2 %t49 = icmp eq i32 %t46, 0 %t50 = select i1 %t49, i32 8, i32 %t48 %t51 = getelementptr ptr, ptr null, i32 1 %t52 = ptrtoint ptr %t51 to i64 %t53 = zext i32 %t50 to i64 %t54 = mul i64 %t53, %t52 %t55 = load ptr, ptr %t44 %t56 = call ptr @realloc(ptr %t55, i64 %t54) store ptr %t56, ptr %t44 store i32 %t50, ptr %t43 br label %put7 put7: %t57 = load ptr, ptr %t44 %t58 = getelementptr inbounds ptr, ptr %t57, i32 %t45 store ptr %t41, ptr %t58 %t59 = add i32 %t45, 1 store i32 %t59, ptr %t42 %t60 = call ptr @fn_node(i32 33) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 store ptr @.str8859, ptr %t63 %t64 = load ptr, ptr %t19 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7 %t66 = load ptr, ptr %t65 %t67 = load ptr, ptr %t61 %t68 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t69 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 2 %t70 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0 %t71 = load i32, ptr %t68 %t72 = load i32, ptr %t69 %t73 = icmp sge i32 %t71, %t72 br i1 %t73, label %grow8, label %put9 grow8: %t74 = mul i32 %t72, 2 %t75 = icmp eq i32 %t72, 0 %t76 = select i1 %t75, i32 8, i32 %t74 %t77 = getelementptr ptr, ptr null, i32 1 %t78 = ptrtoint ptr %t77 to i64 %t79 = zext i32 %t76 to i64 %t80 = mul i64 %t79, %t78 %t81 = load ptr, ptr %t70 %t82 = call ptr @realloc(ptr %t81, i64 %t80) store ptr %t82, ptr %t70 store i32 %t76, ptr %t69 br label %put9 put9: %t83 = load ptr, ptr %t70 %t84 = getelementptr inbounds ptr, ptr %t83, i32 %t71 store ptr %t67, ptr %t84 %t85 = add i32 %t71, 1 store i32 %t85, ptr %t68 %t86 = load ptr, ptr %t19 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 4 %t88 = call ptr @fn_node(i32 7) store ptr %t88, ptr %t87 %t89 = call ptr @fn_node(i32 23) store ptr %t89, ptr %t90 %t91 = call ptr @fn_node(i32 34) store ptr %t91, ptr %t92 %t93 = call ptr @fn_node(i32 33) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1 store ptr @.str8860, ptr %t96 %t97 = load ptr, ptr %t92 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 4 %t99 = load ptr, ptr %t94 store ptr %t99, ptr %t98 %t100 = load ptr, ptr %t90 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 4 %t102 = load ptr, ptr %t92 store ptr %t102, ptr %t101 %t103 = load ptr, ptr %t19 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 4 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 7 %t107 = load ptr, ptr %t106 %t108 = load ptr, ptr %t90 %t109 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 1 %t110 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 2 %t111 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 0 %t112 = load i32, ptr %t109 %t113 = load i32, ptr %t110 %t114 = icmp sge i32 %t112, %t113 br i1 %t114, label %grow10, label %put11 grow10: %t115 = mul i32 %t113, 2 %t116 = icmp eq i32 %t113, 0 %t117 = select i1 %t116, i32 8, i32 %t115 %t118 = getelementptr ptr, ptr null, i32 1 %t119 = ptrtoint ptr %t118 to i64 %t120 = zext i32 %t117 to i64 %t121 = mul i64 %t120, %t119 %t122 = load ptr, ptr %t111 %t123 = call ptr @realloc(ptr %t122, i64 %t121) store ptr %t123, ptr %t111 store i32 %t117, ptr %t110 br label %put11 put11: %t124 = load ptr, ptr %t111 %t125 = getelementptr inbounds ptr, ptr %t124, i32 %t112 store ptr %t108, ptr %t125 %t126 = add i32 %t112, 1 store i32 %t126, ptr %t109 %t127 = load ptr, ptr %t19 call void @fn_emit_query(ptr %t127) %t128 = call ptr @fn_val(ptr @.str8861, ptr @.str8862) store ptr %t128, ptr %retval br label %ret ifend2: %t129 = load ptr, ptr %t1 %t130 = call i32 @lp_str_eq(ptr %t129, ptr @.str8863) %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %then12, label %ifend14 then12: %t132 = load ptr, ptr %t2 %t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 7 %t134 = load ptr, ptr %t133 %t135 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 1 %t136 = load i32, ptr %t135 %t137 = icmp ne i32 %t136, 0 %t138 = zext i1 %t137 to i32 %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then15, label %ifend17 then15: %t140 = load ptr, ptr %t0 %t141 = call ptr @lp_str_concat(ptr %t140, ptr @.str8864) call void @fn_perr(ptr %t141) br label %ifend17 ifend17: %t142 = call ptr @fn_emit_alloca(ptr @.str8865) store ptr %t142, ptr %t143 %t144 = load ptr, ptr %t143 call void @fn_store_at(ptr @.str8866, ptr @.str8867, ptr %t144) %t145 = call ptr @fn_emit_alloca(ptr @.str8868) store ptr %t145, ptr %t146 %t147 = load ptr, ptr %t146 call void @fn_store_at(ptr @.str8869, ptr @.str8870, ptr %t147) %t148 = call ptr @fn_lbl(ptr @.str8871) store ptr %t148, ptr %t149 %t150 = call ptr @fn_lbl(ptr @.str8872) store ptr %t150, ptr %t151 %t152 = call ptr @fn_lbl(ptr @.str8873) store ptr %t152, ptr %t153 %t154 = call ptr @fn_lbl(ptr @.str8874) store ptr %t154, ptr %t155 call void @fn_emit(ptr @.str8875) %t156 = load ptr, ptr %t149 call void @fn_emit(ptr %t156) call void @fn_emit(ptr @.str8876) %t157 = load ptr, ptr %t149 call void @fn_emit(ptr %t157) call void @fn_emit(ptr @.str8877) %t158 = load ptr, ptr %t143 %t159 = call ptr @lp_str_concat(ptr @.str8878, ptr %t158) %t160 = call ptr @fn_emit_bind(ptr %t159) store ptr %t160, ptr %t161 %t162 = call ptr @fn_emit_bind(ptr @.str8879) store ptr %t162, ptr %t163 %t164 = load ptr, ptr %t161 %t165 = call ptr @lp_str_concat(ptr @.str8880, ptr %t164) %t166 = call ptr @lp_str_concat(ptr %t165, ptr @.str8881) %t167 = load ptr, ptr %t163 %t168 = call ptr @lp_str_concat(ptr %t166, ptr %t167) %t169 = call ptr @fn_emit_bind(ptr %t168) store ptr %t169, ptr %t170 call void @fn_emit(ptr @.str8882) %t171 = load ptr, ptr %t170 call void @fn_emit(ptr %t171) call void @fn_emit(ptr @.str8883) %t172 = load ptr, ptr %t151 call void @fn_emit(ptr %t172) call void @fn_emit(ptr @.str8884) %t173 = load ptr, ptr %t155 call void @fn_emit(ptr %t173) call void @fn_emit(ptr @.str8885) %t174 = load ptr, ptr %t151 call void @fn_emit(ptr %t174) call void @fn_emit(ptr @.str8886) %t175 = load ptr, ptr %t4 %t176 = call ptr @lp_str_concat(ptr @.str8887, ptr %t175) %t177 = call ptr @lp_str_concat(ptr %t176, ptr @.str8888) %t178 = load ptr, ptr %t161 %t179 = call ptr @lp_str_concat(ptr %t177, ptr %t178) %t180 = call ptr @fn_emit_bind(ptr %t179) store ptr %t180, ptr %t181 %t182 = load ptr, ptr %t181 %t183 = call ptr @lp_str_concat(ptr @.str8889, ptr %t182) %t184 = call ptr @fn_emit_bind(ptr %t183) store ptr %t184, ptr %t185 %t186 = load ptr, ptr %t4 %t187 = call ptr @lp_str_concat(ptr @.str8890, ptr %t186) %t188 = call ptr @lp_str_concat(ptr %t187, ptr @.str8891) %t189 = load ptr, ptr %t0 %t190 = call ptr @lp_str_concat(ptr %t188, ptr %t189) %t191 = call ptr @lp_str_concat(ptr %t190, ptr @.str8892) %t192 = load ptr, ptr %t161 %t193 = call ptr @lp_str_concat(ptr %t191, ptr %t192) %t194 = call ptr @fn_emit_bind(ptr %t193) store ptr %t194, ptr %t195 %t196 = load ptr, ptr %t195 %t197 = call ptr @lp_str_concat(ptr @.str8893, ptr %t196) %t198 = call ptr @fn_emit_bind(ptr %t197) store ptr %t198, ptr %t199 %t200 = load ptr, ptr %t199 %t201 = call ptr @lp_str_concat(ptr @.str8894, ptr %t200) %t202 = call ptr @lp_str_concat(ptr %t201, ptr @.str8895) %t203 = call ptr @fn_emit_bind(ptr %t202) store ptr %t203, ptr %t204 %t205 = load ptr, ptr %t185 %t206 = call ptr @lp_str_concat(ptr @.str8896, ptr %t205) %t207 = call ptr @lp_str_concat(ptr %t206, ptr @.str8897) %t208 = load ptr, ptr %t204 %t209 = call ptr @lp_str_concat(ptr %t207, ptr %t208) %t210 = call ptr @fn_emit_bind(ptr %t209) store ptr %t210, ptr %t211 %t212 = load ptr, ptr %t146 %t213 = call ptr @lp_str_concat(ptr @.str8898, ptr %t212) %t214 = call ptr @fn_emit_bind(ptr %t213) store ptr %t214, ptr %t215 %t216 = load ptr, ptr %t215 %t217 = call ptr @lp_str_concat(ptr @.str8899, ptr %t216) %t218 = call ptr @lp_str_concat(ptr %t217, ptr @.str8900) %t219 = load ptr, ptr %t211 %t220 = call ptr @lp_str_concat(ptr %t218, ptr %t219) %t221 = call ptr @fn_emit_bind(ptr %t220) store ptr %t221, ptr %t222 %t223 = load ptr, ptr %t222 %t224 = load ptr, ptr %t146 call void @fn_store_at(ptr @.str8901, ptr %t223, ptr %t224) call void @fn_emit(ptr @.str8902) %t225 = load ptr, ptr %t153 call void @fn_emit(ptr %t225) call void @fn_emit(ptr @.str8903) %t226 = load ptr, ptr %t153 call void @fn_emit(ptr %t226) call void @fn_emit(ptr @.str8904) %t227 = load ptr, ptr %t161 %t228 = call ptr @lp_str_concat(ptr @.str8905, ptr %t227) %t229 = call ptr @lp_str_concat(ptr %t228, ptr @.str8906) %t230 = call ptr @fn_emit_bind(ptr %t229) store ptr %t230, ptr %t231 %t232 = load ptr, ptr %t231 %t233 = load ptr, ptr %t143 call void @fn_store_at(ptr @.str8907, ptr %t232, ptr %t233) call void @fn_emit(ptr @.str8908) %t234 = load ptr, ptr %t149 call void @fn_emit(ptr %t234) call void @fn_emit(ptr @.str8909) %t235 = load ptr, ptr %t155 call void @fn_emit(ptr %t235) call void @fn_emit(ptr @.str8910) %t236 = load ptr, ptr %t146 %t237 = call ptr @lp_str_concat(ptr @.str8911, ptr %t236) %t238 = call ptr @fn_emit_bind(ptr %t237) %t239 = call ptr @fn_val(ptr %t238, ptr @.str8912) store ptr %t239, ptr %retval br label %ret ifend14: %t240 = load ptr, ptr %t2 %t241 = getelementptr inbounds %Cmp_Node, ptr %t240, i32 0, i32 7 %t242 = load ptr, ptr %t241 %t243 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 1 %t244 = load i32, ptr %t243 %t245 = icmp ne i32 %t244, 1 %t246 = zext i1 %t245 to i32 %t247 = icmp ne i32 %t246, 0 br i1 %t247, label %then18, label %ifend20 then18: %t248 = load ptr, ptr %t0 %t249 = call ptr @lp_str_concat(ptr %t248, ptr @.str8913) %t250 = load ptr, ptr %t1 %t251 = call ptr @lp_str_concat(ptr %t249, ptr %t250) %t252 = call ptr @lp_str_concat(ptr %t251, ptr @.str8914) call void @fn_perr(ptr %t252) br label %ifend20 ifend20: %t253 = load ptr, ptr %t2 %t254 = getelementptr inbounds %Cmp_Node, ptr %t253, i32 0, i32 7 %t255 = load ptr, ptr %t254 %t256 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 0 %t257 = load ptr, ptr %t256 %t258 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 1 %t259 = load i32, ptr %t258 %t260 = icmp ult i32 0, %t259 br i1 %t260, label %ixok21, label %ixbad22 ixbad22: %t261 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t261, ptr @.fmt_bounds, ptr @.str8915, i32 0, i32 %t259) call void @exit(i32 1) unreachable ixok21: %t262 = getelementptr inbounds ptr, ptr %t257, i32 0 %t263 = load ptr, ptr %t262 %t264 = call ptr @fn_emit_expr(ptr %t263) store ptr %t264, ptr %t265 %t266 = load ptr, ptr %t1 %t267 = call i32 @lp_str_eq(ptr %t266, ptr @.str8916) %t268 = icmp ne i32 %t267, 0 br i1 %t268, label %then23, label %ifend25 then23: %t269 = load ptr, ptr %t4 %t270 = call ptr @lp_str_concat(ptr @.str8917, ptr %t269) %t271 = call ptr @lp_str_concat(ptr %t270, ptr @.str8918) %t272 = load ptr, ptr %t0 %t273 = call ptr @lp_str_concat(ptr %t271, ptr %t272) %t274 = call ptr @lp_str_concat(ptr %t273, ptr @.str8919) %t275 = load ptr, ptr %t0 %t276 = call ptr @lp_str_concat(ptr %t274, ptr %t275) %t277 = call ptr @lp_str_concat(ptr %t276, ptr @.str8920) %t278 = load ptr, ptr %t265 %t279 = getelementptr inbounds %Cmp_Val, ptr %t278, i32 0, i32 0 %t280 = load ptr, ptr %t279 %t281 = call ptr @lp_str_concat(ptr %t277, ptr %t280) %t282 = call ptr @fn_emit_bind(ptr %t281) store ptr %t282, ptr %t283 %t284 = load ptr, ptr %t283 %t285 = load ptr, ptr %t0 %t286 = call ptr @fn_val(ptr %t284, ptr %t285) store ptr %t286, ptr %retval br label %ret ifend25: %t287 = load ptr, ptr %t265 %t288 = getelementptr inbounds %Cmp_Val, ptr %t287, i32 0, i32 0 %t289 = load ptr, ptr %t288 %t290 = call ptr @lp_str_concat(ptr @.str8921, ptr %t289) %t291 = call ptr @lp_str_concat(ptr %t290, ptr @.str8922) %t292 = load ptr, ptr %t4 %t293 = call ptr @lp_str_concat(ptr %t291, ptr %t292) %t294 = call ptr @fn_emit_bind(ptr %t293) store ptr %t294, ptr %t295 %t296 = load ptr, ptr %t295 %t297 = call ptr @lp_str_concat(ptr @.str8923, ptr %t296) %t298 = call ptr @lp_str_concat(ptr %t297, ptr @.str8924) %t299 = load ptr, ptr %t265 %t300 = getelementptr inbounds %Cmp_Val, ptr %t299, i32 0, i32 0 %t301 = load ptr, ptr %t300 %t302 = call ptr @lp_str_concat(ptr %t298, ptr %t301) %t303 = call ptr @lp_str_concat(ptr %t302, ptr @.str8925) %t304 = call ptr @fn_emit_bind(ptr %t303) store ptr %t304, ptr %t305 %t306 = load ptr, ptr %t4 %t307 = call ptr @lp_str_concat(ptr @.str8926, ptr %t306) %t308 = call ptr @lp_str_concat(ptr %t307, ptr @.str8927) %t309 = load ptr, ptr %t305 %t310 = call ptr @lp_str_concat(ptr %t308, ptr %t309) %t311 = call ptr @fn_emit_bind(ptr %t310) store ptr %t311, ptr %t312 %t313 = load ptr, ptr %t312 %t314 = call ptr @lp_str_concat(ptr @.str8928, ptr %t313) %t315 = call ptr @fn_emit_bind(ptr %t314) store ptr %t315, ptr %t316 %t317 = load ptr, ptr %t316 %t318 = call ptr @lp_str_concat(ptr @.str8929, ptr %t317) %t319 = call ptr @lp_str_concat(ptr %t318, ptr @.str8930) %t320 = call ptr @fn_emit_bind(ptr %t319) store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t4 %t323 = call ptr @lp_str_concat(ptr @.str8931, ptr %t322) %t324 = call ptr @lp_str_concat(ptr %t323, ptr @.str8932) %t325 = load ptr, ptr %t0 %t326 = call ptr @lp_str_concat(ptr %t324, ptr %t325) %t327 = call ptr @lp_str_concat(ptr %t326, ptr @.str8933) %t328 = load ptr, ptr %t305 %t329 = call ptr @lp_str_concat(ptr %t327, ptr %t328) %t330 = call ptr @fn_emit_bind(ptr %t329) store ptr %t330, ptr %t331 %t332 = load ptr, ptr %t331 %t333 = call ptr @lp_str_concat(ptr @.str8934, ptr %t332) %t334 = call ptr @fn_emit_bind(ptr %t333) store ptr %t334, ptr %t335 %t336 = load ptr, ptr %t335 %t337 = call ptr @lp_str_concat(ptr @.str8935, ptr %t336) %t338 = call ptr @lp_str_concat(ptr %t337, ptr @.str8936) %t339 = call ptr @fn_emit_bind(ptr %t338) store ptr %t339, ptr %t340 %t341 = load ptr, ptr %t295 %t342 = call ptr @lp_str_concat(ptr @.str8937, ptr %t341) %t343 = call ptr @lp_str_concat(ptr %t342, ptr @.str8938) %t344 = load ptr, ptr %t321 %t345 = call ptr @lp_str_concat(ptr %t343, ptr %t344) %t346 = call ptr @fn_emit_bind(ptr %t345) store ptr %t346, ptr %t347 %t348 = load ptr, ptr %t347 %t349 = call ptr @lp_str_concat(ptr @.str8939, ptr %t348) %t350 = call ptr @lp_str_concat(ptr %t349, ptr @.str8940) %t351 = load ptr, ptr %t340 %t352 = call ptr @lp_str_concat(ptr %t350, ptr %t351) %t353 = call ptr @fn_emit_bind(ptr %t352) store ptr %t353, ptr %t354 %t355 = load ptr, ptr %t354 %t356 = call ptr @lp_str_concat(ptr @.str8941, ptr %t355) %t357 = call ptr @lp_str_concat(ptr %t356, ptr @.str8942) %t358 = call ptr @fn_emit_bind(ptr %t357) %t359 = call ptr @fn_val(ptr %t358, ptr @.str8943) store ptr %t359, ptr %retval br label %ret ret: %t360 = load ptr, ptr %retval ret ptr %t360 } define i32 @fn_first_arg_is_text(ptr %arg_e) { entry: %retval = alloca i32 %t0 = alloca ptr %t20 = alloca ptr %t43 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7 %t3 = load ptr, ptr %t2 %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 0, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str8944, i32 0, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 0 %t19 = load ptr, ptr %t18 store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 42 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then5, label %ifend7 then5: %t27 = load ptr, ptr %t20 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 %t30 = call i32 @lp_str_eq(ptr %t29, ptr @.str8945) %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t32 = load ptr, ptr %t20 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 4 %t34 = load ptr, ptr %t33 store ptr %t34, ptr %t20 br label %ifend7 ifend7: %t35 = load ptr, ptr %t20 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 0 %t37 = load i32, ptr %t36 %t38 = icmp eq i32 %t37, 31 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then11, label %ifend13 then11: store i32 1, ptr %retval br label %ret ifend13: %t41 = load ptr, ptr %t20 %t42 = call ptr @fn_static_type(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = icmp eq ptr %t44, null %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then14, label %ifend16 then14: store i32 0, ptr %retval br label %ret ifend16: %t48 = load ptr, ptr %t43 %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str8946) store i32 %t49, ptr %retval br label %ret ret: %t50 = load i32, ptr %retval ret i32 %t50 } define ptr @fn_emit_alias_or_fail(ptr %arg_ns, ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t6 = alloca i32 store ptr %arg_ns, ptr %t0 store ptr %arg_meth, ptr %t1 store ptr %arg_e, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = load ptr, ptr %t1 %t5 = call i32 @fn_ns_alias_find(ptr %t3, ptr %t4) store i32 %t5, ptr %t6 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t0 %t12 = call ptr @lp_str_concat(ptr @.str8947, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str8948) %t14 = load ptr, ptr %t1 %t15 = call ptr @lp_str_concat(ptr %t13, ptr %t14) call void @fn_perr(ptr %t15) br label %ifend2 ifend2: %t16 = load i32, ptr %t6 %t17 = load ptr, ptr %t2 %t18 = call ptr @fn_emit_alias_call(i32 %t16, ptr %t17) store ptr %t18, ptr %retval br label %ret ret: %t19 = load ptr, ptr %retval ret ptr %t19 } define ptr @fn_emit_ns_call(ptr %arg_ns, ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t10 = alloca i32 %t11 = alloca i32 %t12 = alloca i32 %t385 = alloca ptr %t405 = alloca ptr %t417 = alloca ptr %t424 = alloca i32 %t466 = alloca ptr %t468 = alloca ptr %t482 = alloca i32 %t490 = alloca ptr %t497 = alloca ptr %t509 = alloca ptr %t520 = alloca ptr %t573 = alloca ptr %t586 = alloca ptr %t593 = alloca ptr %t595 = alloca ptr %t602 = alloca ptr %t611 = alloca ptr %t620 = alloca ptr %t625 = alloca ptr %t630 = alloca ptr %t650 = alloca ptr %t692 = alloca ptr %t1146 = alloca i32 %t1162 = alloca ptr %t1175 = alloca ptr %t1176 = alloca i32 %t1215 = alloca i32 %t1231 = alloca ptr %t1244 = alloca ptr %t1245 = alloca i32 %t1284 = alloca i32 %t1301 = alloca i32 %t1323 = alloca ptr %t1330 = alloca ptr %t1331 = alloca i32 %t1382 = alloca ptr store ptr %arg_ns, ptr %t0 store ptr %arg_meth, ptr %t1 store ptr %arg_e, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = call ptr @fn_find_comp(ptr %t4) %t6 = icmp ne ptr %t5, null %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t3 br i1 %t8, label %sc0, label %scend1 sc0: %t13 = load ptr, ptr %t1 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str8949) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t12 br i1 %t15, label %scend3, label %sc2 sc2: %t17 = load ptr, ptr %t1 %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str8950) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t12 br label %scend3 scend3: %t21 = load i32, ptr %t12 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t11 br i1 %t22, label %scend5, label %sc4 sc4: %t24 = load ptr, ptr %t1 %t25 = call i32 @lp_str_eq(ptr %t24, ptr @.str8951) %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t11 br label %scend5 scend5: %t28 = load i32, ptr %t11 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t10 br i1 %t29, label %scend7, label %sc6 sc6: %t31 = load ptr, ptr %t1 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str8952) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t10 br label %scend7 scend7: %t35 = load i32, ptr %t10 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t3 br label %scend1 scend1: %t38 = load i32, ptr %t3 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then8, label %ifend10 then8: %t40 = load ptr, ptr %t0 %t41 = call ptr @fn_ns_lower(ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str8953) %t43 = load ptr, ptr %t1 %t44 = call ptr @lp_str_concat(ptr %t42, ptr %t43) %t45 = call ptr @fn_find_fn(ptr %t44) %t46 = icmp eq ptr %t45, null %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then11, label %ifend13 then11: %t49 = load ptr, ptr %t0 %t50 = load ptr, ptr %t1 %t51 = load ptr, ptr %t2 %t52 = call ptr @fn_emit_component_access(ptr %t49, ptr %t50, ptr %t51) store ptr %t52, ptr %retval br label %ret ifend13: br label %ifend10 ifend10: %t53 = load ptr, ptr %t0 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str8954) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then14, label %ifend16 then14: %t56 = load ptr, ptr %t1 %t57 = call i32 @fn_is_math_ns(ptr %t56) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then17, label %ifend19 then17: %t59 = load ptr, ptr %t1 %t60 = load ptr, ptr %t2 %t61 = call ptr @fn_emit_math_ns(ptr %t59, ptr %t60) store ptr %t61, ptr %retval br label %ret ifend19: %t62 = load ptr, ptr %t1 %t63 = load ptr, ptr %t2 %t64 = call ptr @fn_emit_alias_or_fail(ptr @.str8955, ptr %t62, ptr %t63) store ptr %t64, ptr %retval br label %ret ifend16: %t65 = load ptr, ptr %t0 %t66 = call i32 @lp_str_eq(ptr %t65, ptr @.str8956) %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then20, label %ifend22 then20: %t68 = load ptr, ptr %t1 %t69 = call i32 @fn_is_text_ns(ptr %t68) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then23, label %ifend25 then23: %t71 = load ptr, ptr %t1 %t72 = load ptr, ptr %t2 %t73 = call ptr @fn_emit_text_ns(ptr %t71, ptr %t72) store ptr %t73, ptr %retval br label %ret ifend25: %t74 = load ptr, ptr %t1 %t75 = load ptr, ptr %t2 %t76 = call ptr @fn_emit_alias_or_fail(ptr @.str8957, ptr %t74, ptr %t75) store ptr %t76, ptr %retval br label %ret ifend22: %t77 = load ptr, ptr %t0 %t78 = call i32 @lp_str_eq(ptr %t77, ptr @.str8958) %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then26, label %ifend28 then26: %t80 = load ptr, ptr %t1 %t81 = call i32 @fn_is_list_ns(ptr %t80) %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then29, label %ifend31 then29: %t83 = load ptr, ptr %t1 %t84 = load ptr, ptr %t2 %t85 = call ptr @fn_emit_list_ns(ptr %t83, ptr %t84) store ptr %t85, ptr %retval br label %ret ifend31: %t86 = load ptr, ptr %t1 %t87 = load ptr, ptr %t2 %t88 = call ptr @fn_emit_alias_or_fail(ptr @.str8959, ptr %t86, ptr %t87) store ptr %t88, ptr %retval br label %ret ifend28: %t89 = load ptr, ptr %t0 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str8960) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then32, label %ifend34 then32: %t92 = load ptr, ptr %t1 %t93 = call i32 @fn_is_ease_ns(ptr %t92) %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then35, label %ifend37 then35: %t95 = load ptr, ptr %t1 %t96 = load ptr, ptr %t2 %t97 = call ptr @fn_emit_ease_ns(ptr %t95, ptr %t96) store ptr %t97, ptr %retval br label %ret ifend37: %t98 = load ptr, ptr %t1 %t99 = load ptr, ptr %t2 %t100 = call ptr @fn_emit_alias_or_fail(ptr @.str8961, ptr %t98, ptr %t99) store ptr %t100, ptr %retval br label %ret ifend34: %t101 = load ptr, ptr %t0 %t102 = call i32 @lp_str_eq(ptr %t101, ptr @.str8962) %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then38, label %ifend40 then38: %t104 = load ptr, ptr %t1 %t105 = call i32 @fn_is_anim_ns(ptr %t104) %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then41, label %ifend43 then41: %t107 = load ptr, ptr %t1 %t108 = load ptr, ptr %t2 %t109 = call ptr @fn_emit_anim_ns(ptr %t107, ptr %t108) store ptr %t109, ptr %retval br label %ret ifend43: br label %ifend40 ifend40: %t110 = load ptr, ptr %t0 %t111 = call i32 @lp_str_eq(ptr %t110, ptr @.str8963) %t112 = icmp ne i32 %t111, 0 br i1 %t112, label %then44, label %ifend46 then44: %t113 = load ptr, ptr %t1 %t114 = call i32 @fn_is_tween_ns(ptr %t113) %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then47, label %ifend49 then47: %t116 = load ptr, ptr %t1 %t117 = load ptr, ptr %t2 %t118 = call ptr @fn_emit_tween_ns(ptr %t116, ptr %t117) store ptr %t118, ptr %retval br label %ret ifend49: br label %ifend46 ifend46: %t119 = load ptr, ptr %t0 %t120 = call i32 @lp_str_eq(ptr %t119, ptr @.str8964) %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then50, label %ifend52 then50: %t122 = load ptr, ptr %t1 %t123 = call i32 @fn_is_collide_ns(ptr %t122) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then53, label %ifend55 then53: %t125 = load ptr, ptr %t1 %t126 = load ptr, ptr %t2 %t127 = call ptr @fn_emit_collide_ns(ptr %t125, ptr %t126) store ptr %t127, ptr %retval br label %ret ifend55: %t128 = load ptr, ptr %t1 %t129 = load ptr, ptr %t2 %t130 = call ptr @fn_emit_alias_or_fail(ptr @.str8965, ptr %t128, ptr %t129) store ptr %t130, ptr %retval br label %ret ifend52: %t131 = load ptr, ptr %t0 %t132 = call i32 @lp_str_eq(ptr %t131, ptr @.str8966) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then56, label %ifend58 then56: %t134 = load ptr, ptr %t1 %t135 = call i32 @fn_is_mem_ns(ptr %t134) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then59, label %ifend61 then59: %t137 = load ptr, ptr %t1 %t138 = load ptr, ptr %t2 %t139 = call ptr @fn_emit_mem_ns(ptr %t137, ptr %t138) store ptr %t139, ptr %retval br label %ret ifend61: %t140 = load ptr, ptr %t1 %t141 = load ptr, ptr %t2 %t142 = call ptr @fn_emit_alias_or_fail(ptr @.str8967, ptr %t140, ptr %t141) store ptr %t142, ptr %retval br label %ret ifend58: %t143 = load ptr, ptr %t0 %t144 = call i32 @lp_str_eq(ptr %t143, ptr @.str8968) %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then62, label %ifend64 then62: %t146 = load ptr, ptr %t1 %t147 = call i32 @fn_is_colorfn_ns(ptr %t146) %t148 = icmp ne i32 %t147, 0 br i1 %t148, label %then65, label %ifend67 then65: %t149 = load ptr, ptr %t1 %t150 = load ptr, ptr %t2 %t151 = call ptr @fn_emit_colorfn_ns(ptr %t149, ptr %t150) store ptr %t151, ptr %retval br label %ret ifend67: %t152 = load ptr, ptr %t1 %t153 = load ptr, ptr %t2 %t154 = call ptr @fn_emit_alias_or_fail(ptr @.str8969, ptr %t152, ptr %t153) store ptr %t154, ptr %retval br label %ret ifend64: %t155 = load ptr, ptr %t0 %t156 = call i32 @lp_str_eq(ptr %t155, ptr @.str8970) %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then68, label %ifend70 then68: %t158 = load ptr, ptr %t1 %t159 = call i32 @fn_is_time_ns(ptr %t158) %t160 = icmp ne i32 %t159, 0 br i1 %t160, label %then71, label %ifend73 then71: %t161 = load ptr, ptr %t1 %t162 = load ptr, ptr %t2 %t163 = call ptr @fn_emit_time_ns(ptr %t161, ptr %t162) store ptr %t163, ptr %retval br label %ret ifend73: %t164 = load ptr, ptr %t1 %t165 = load ptr, ptr %t2 %t166 = call ptr @fn_emit_alias_or_fail(ptr @.str8971, ptr %t164, ptr %t165) store ptr %t166, ptr %retval br label %ret ifend70: %t167 = load ptr, ptr %t0 %t168 = call i32 @lp_str_eq(ptr %t167, ptr @.str8972) %t169 = icmp ne i32 %t168, 0 br i1 %t169, label %then74, label %ifend76 then74: %t170 = load ptr, ptr %t1 %t171 = call i32 @fn_is_hash_ns(ptr %t170) %t172 = icmp ne i32 %t171, 0 br i1 %t172, label %then77, label %ifend79 then77: %t173 = load ptr, ptr %t1 %t174 = load ptr, ptr %t2 %t175 = call ptr @fn_emit_hash_ns(ptr %t173, ptr %t174) store ptr %t175, ptr %retval br label %ret ifend79: %t176 = load ptr, ptr %t1 %t177 = load ptr, ptr %t2 %t178 = call ptr @fn_emit_alias_or_fail(ptr @.str8973, ptr %t176, ptr %t177) store ptr %t178, ptr %retval br label %ret ifend76: %t179 = load ptr, ptr %t0 %t180 = call i32 @lp_str_eq(ptr %t179, ptr @.str8974) %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %then80, label %ifend82 then80: %t182 = load ptr, ptr %t1 %t183 = call i32 @fn_is_crypto_ns(ptr %t182) %t184 = icmp ne i32 %t183, 0 br i1 %t184, label %then83, label %ifend85 then83: %t185 = load ptr, ptr %t1 %t186 = load ptr, ptr %t2 %t187 = call ptr @fn_emit_crypto_ns(ptr %t185, ptr %t186) store ptr %t187, ptr %retval br label %ret ifend85: %t188 = load ptr, ptr %t1 %t189 = load ptr, ptr %t2 %t190 = call ptr @fn_emit_alias_or_fail(ptr @.str8975, ptr %t188, ptr %t189) store ptr %t190, ptr %retval br label %ret ifend82: %t191 = load ptr, ptr %t0 %t192 = call i32 @lp_str_eq(ptr %t191, ptr @.str8976) %t193 = icmp ne i32 %t192, 0 br i1 %t193, label %then86, label %ifend88 then86: %t194 = load ptr, ptr %t1 %t195 = call i32 @fn_is_uuid_ns(ptr %t194) %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %then89, label %ifend91 then89: %t197 = load ptr, ptr %t1 %t198 = load ptr, ptr %t2 %t199 = call ptr @fn_emit_uuid_ns(ptr %t197, ptr %t198) store ptr %t199, ptr %retval br label %ret ifend91: %t200 = load ptr, ptr %t1 %t201 = load ptr, ptr %t2 %t202 = call ptr @fn_emit_alias_or_fail(ptr @.str8977, ptr %t200, ptr %t201) store ptr %t202, ptr %retval br label %ret ifend88: %t203 = load ptr, ptr %t0 %t204 = call i32 @lp_str_eq(ptr %t203, ptr @.str8978) %t205 = icmp ne i32 %t204, 0 br i1 %t205, label %then92, label %ifend94 then92: %t206 = load ptr, ptr %t1 %t207 = call i32 @fn_is_noise_ns(ptr %t206) %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %then95, label %ifend97 then95: %t209 = load ptr, ptr %t1 %t210 = load ptr, ptr %t2 %t211 = call ptr @fn_emit_noise_ns(ptr %t209, ptr %t210) store ptr %t211, ptr %retval br label %ret ifend97: %t212 = load ptr, ptr %t1 %t213 = load ptr, ptr %t2 %t214 = call ptr @fn_emit_alias_or_fail(ptr @.str8979, ptr %t212, ptr %t213) store ptr %t214, ptr %retval br label %ret ifend94: %t215 = load ptr, ptr %t0 %t216 = call i32 @lp_str_eq(ptr %t215, ptr @.str8980) %t217 = icmp ne i32 %t216, 0 br i1 %t217, label %then98, label %ifend100 then98: %t218 = load ptr, ptr %t1 %t219 = call i32 @fn_is_log_ns(ptr %t218) %t220 = icmp ne i32 %t219, 0 br i1 %t220, label %then101, label %ifend103 then101: %t221 = load ptr, ptr %t1 %t222 = load ptr, ptr %t2 %t223 = call ptr @fn_emit_log_ns(ptr %t221, ptr %t222) store ptr %t223, ptr %retval br label %ret ifend103: %t224 = load ptr, ptr %t1 %t225 = load ptr, ptr %t2 %t226 = call ptr @fn_emit_alias_or_fail(ptr @.str8981, ptr %t224, ptr %t225) store ptr %t226, ptr %retval br label %ret ifend100: %t227 = load ptr, ptr %t0 %t228 = call i32 @lp_str_eq(ptr %t227, ptr @.str8982) %t229 = icmp ne i32 %t228, 0 br i1 %t229, label %then104, label %ifend106 then104: %t230 = load ptr, ptr %t1 %t231 = call i32 @fn_is_os_ns(ptr %t230) %t232 = icmp ne i32 %t231, 0 br i1 %t232, label %then107, label %ifend109 then107: %t233 = load ptr, ptr %t1 %t234 = load ptr, ptr %t2 %t235 = call ptr @fn_emit_os_ns(ptr %t233, ptr %t234) store ptr %t235, ptr %retval br label %ret ifend109: %t236 = load ptr, ptr %t1 %t237 = load ptr, ptr %t2 %t238 = call ptr @fn_emit_alias_or_fail(ptr @.str8983, ptr %t236, ptr %t237) store ptr %t238, ptr %retval br label %ret ifend106: %t239 = load ptr, ptr %t0 %t240 = call i32 @lp_str_eq(ptr %t239, ptr @.str8984) %t241 = icmp ne i32 %t240, 0 br i1 %t241, label %then110, label %ifend112 then110: %t242 = load ptr, ptr %t1 %t243 = call i32 @fn_is_unicode_ns(ptr %t242) %t244 = icmp ne i32 %t243, 0 br i1 %t244, label %then113, label %ifend115 then113: %t245 = load ptr, ptr %t1 %t246 = load ptr, ptr %t2 %t247 = call ptr @fn_emit_unicode_ns(ptr %t245, ptr %t246) store ptr %t247, ptr %retval br label %ret ifend115: %t248 = load ptr, ptr %t1 %t249 = load ptr, ptr %t2 %t250 = call ptr @fn_emit_alias_or_fail(ptr @.str8985, ptr %t248, ptr %t249) store ptr %t250, ptr %retval br label %ret ifend112: %t251 = load ptr, ptr %t0 %t252 = call i32 @lp_str_eq(ptr %t251, ptr @.str8986) %t253 = icmp ne i32 %t252, 0 br i1 %t253, label %then116, label %ifend118 then116: %t254 = load ptr, ptr %t1 %t255 = call i32 @fn_is_fs_ns(ptr %t254) %t256 = icmp ne i32 %t255, 0 br i1 %t256, label %then119, label %ifend121 then119: %t257 = load ptr, ptr %t1 %t258 = load ptr, ptr %t2 %t259 = call ptr @fn_emit_fs_ns(ptr %t257, ptr %t258) store ptr %t259, ptr %retval br label %ret ifend121: %t260 = load ptr, ptr %t1 %t261 = load ptr, ptr %t2 %t262 = call ptr @fn_emit_alias_or_fail(ptr @.str8987, ptr %t260, ptr %t261) store ptr %t262, ptr %retval br label %ret ifend118: %t263 = load ptr, ptr %t0 %t264 = call i32 @lp_str_eq(ptr %t263, ptr @.str8988) %t265 = icmp ne i32 %t264, 0 br i1 %t265, label %then122, label %ifend124 then122: %t266 = load ptr, ptr %t1 %t267 = call i32 @fn_is_path_ns(ptr %t266) %t268 = icmp ne i32 %t267, 0 br i1 %t268, label %then125, label %ifend127 then125: %t269 = load ptr, ptr %t1 %t270 = load ptr, ptr %t2 %t271 = call ptr @fn_emit_path_ns(ptr %t269, ptr %t270) store ptr %t271, ptr %retval br label %ret ifend127: %t272 = load ptr, ptr %t1 %t273 = load ptr, ptr %t2 %t274 = call ptr @fn_emit_alias_or_fail(ptr @.str8989, ptr %t272, ptr %t273) store ptr %t274, ptr %retval br label %ret ifend124: %t275 = load ptr, ptr %t0 %t276 = call i32 @lp_str_eq(ptr %t275, ptr @.str8990) %t277 = icmp ne i32 %t276, 0 br i1 %t277, label %then128, label %ifend130 then128: %t278 = load ptr, ptr %t1 %t279 = call i32 @fn_is_mime_ns(ptr %t278) %t280 = icmp ne i32 %t279, 0 br i1 %t280, label %then131, label %ifend133 then131: %t281 = load ptr, ptr %t1 %t282 = load ptr, ptr %t2 %t283 = call ptr @fn_emit_mime_ns(ptr %t281, ptr %t282) store ptr %t283, ptr %retval br label %ret ifend133: %t284 = load ptr, ptr %t1 %t285 = load ptr, ptr %t2 %t286 = call ptr @fn_emit_alias_or_fail(ptr @.str8991, ptr %t284, ptr %t285) store ptr %t286, ptr %retval br label %ret ifend130: %t287 = load ptr, ptr %t0 %t288 = call i32 @lp_str_eq(ptr %t287, ptr @.str8992) %t289 = icmp ne i32 %t288, 0 br i1 %t289, label %then134, label %ifend136 then134: %t290 = load ptr, ptr %t1 %t291 = call i32 @fn_is_vector_ns(ptr %t290) %t292 = icmp ne i32 %t291, 0 br i1 %t292, label %then137, label %ifend139 then137: %t293 = load ptr, ptr %t1 %t294 = load ptr, ptr %t2 %t295 = call ptr @fn_emit_vector_ns(ptr %t293, ptr %t294) store ptr %t295, ptr %retval br label %ret ifend139: %t296 = load ptr, ptr %t1 %t297 = load ptr, ptr %t2 %t298 = call ptr @fn_emit_alias_or_fail(ptr @.str8993, ptr %t296, ptr %t297) store ptr %t298, ptr %retval br label %ret ifend136: %t299 = load ptr, ptr %t0 %t300 = call i32 @lp_str_eq(ptr %t299, ptr @.str8994) %t301 = icmp ne i32 %t300, 0 br i1 %t301, label %then140, label %ifend142 then140: %t302 = load ptr, ptr %t1 %t303 = call i32 @fn_is_ivec_ns(ptr %t302) %t304 = icmp ne i32 %t303, 0 br i1 %t304, label %then143, label %ifend145 then143: %t305 = load ptr, ptr %t1 %t306 = load ptr, ptr %t2 %t307 = call ptr @fn_emit_ivec_ns(ptr %t305, ptr %t306) store ptr %t307, ptr %retval br label %ret ifend145: %t308 = load ptr, ptr %t1 %t309 = load ptr, ptr %t2 %t310 = call ptr @fn_emit_alias_or_fail(ptr @.str8995, ptr %t308, ptr %t309) store ptr %t310, ptr %retval br label %ret ifend142: %t311 = load ptr, ptr %t0 %t312 = call i32 @lp_str_eq(ptr %t311, ptr @.str8996) %t313 = icmp ne i32 %t312, 0 br i1 %t313, label %then146, label %ifend148 then146: %t314 = load ptr, ptr %t1 %t315 = call i32 @fn_is_rect_ns(ptr %t314) %t316 = icmp ne i32 %t315, 0 br i1 %t316, label %then149, label %ifend151 then149: %t317 = load ptr, ptr %t1 %t318 = load ptr, ptr %t2 %t319 = call ptr @fn_emit_rect_ns(ptr %t317, ptr %t318) store ptr %t319, ptr %retval br label %ret ifend151: %t320 = load ptr, ptr %t1 %t321 = load ptr, ptr %t2 %t322 = call ptr @fn_emit_alias_or_fail(ptr @.str8997, ptr %t320, ptr %t321) store ptr %t322, ptr %retval br label %ret ifend148: %t323 = load ptr, ptr %t0 %t324 = call i32 @lp_str_eq(ptr %t323, ptr @.str8998) %t325 = icmp ne i32 %t324, 0 br i1 %t325, label %then152, label %ifend154 then152: %t326 = load ptr, ptr %t1 %t327 = call i32 @fn_is_duration_ns(ptr %t326) %t328 = icmp ne i32 %t327, 0 br i1 %t328, label %then155, label %ifend157 then155: %t329 = load ptr, ptr %t1 %t330 = load ptr, ptr %t2 %t331 = call ptr @fn_emit_duration_ns(ptr %t329, ptr %t330) store ptr %t331, ptr %retval br label %ret ifend157: %t332 = load ptr, ptr %t1 %t333 = load ptr, ptr %t2 %t334 = call ptr @fn_emit_alias_or_fail(ptr @.str8999, ptr %t332, ptr %t333) store ptr %t334, ptr %retval br label %ret ifend154: %t335 = load ptr, ptr %t0 %t336 = call i32 @lp_str_eq(ptr %t335, ptr @.str9000) %t337 = icmp ne i32 %t336, 0 br i1 %t337, label %then158, label %ifend160 then158: %t338 = load ptr, ptr %t1 %t339 = call i32 @fn_is_date_ns(ptr %t338) %t340 = icmp ne i32 %t339, 0 br i1 %t340, label %then161, label %ifend163 then161: %t341 = load ptr, ptr %t1 %t342 = load ptr, ptr %t2 %t343 = call ptr @fn_emit_date_ns(ptr %t341, ptr %t342) store ptr %t343, ptr %retval br label %ret ifend163: %t344 = load ptr, ptr %t1 %t345 = load ptr, ptr %t2 %t346 = call ptr @fn_emit_alias_or_fail(ptr @.str9001, ptr %t344, ptr %t345) store ptr %t346, ptr %retval br label %ret ifend160: %t347 = load ptr, ptr %t0 %t348 = call i32 @lp_str_eq(ptr %t347, ptr @.str9002) %t349 = icmp ne i32 %t348, 0 br i1 %t349, label %then164, label %ifend166 then164: %t350 = load ptr, ptr %t1 %t351 = call i32 @fn_is_datetime_ns(ptr %t350) %t352 = icmp ne i32 %t351, 0 br i1 %t352, label %then167, label %ifend169 then167: %t353 = load ptr, ptr %t1 %t354 = load ptr, ptr %t2 %t355 = call ptr @fn_emit_datetime_ns(ptr %t353, ptr %t354) store ptr %t355, ptr %retval br label %ret ifend169: %t356 = load ptr, ptr %t1 %t357 = load ptr, ptr %t2 %t358 = call ptr @fn_emit_alias_or_fail(ptr @.str9003, ptr %t356, ptr %t357) store ptr %t358, ptr %retval br label %ret ifend166: %t359 = load ptr, ptr %t0 %t360 = call i32 @lp_str_eq(ptr %t359, ptr @.str9004) %t361 = icmp ne i32 %t360, 0 br i1 %t361, label %then170, label %ifend172 then170: %t362 = load ptr, ptr %t1 %t363 = call i32 @fn_is_clock_ns(ptr %t362) %t364 = icmp ne i32 %t363, 0 br i1 %t364, label %then173, label %ifend175 then173: %t365 = load ptr, ptr %t1 %t366 = load ptr, ptr %t2 %t367 = call ptr @fn_emit_clock_ns(ptr %t365, ptr %t366) store ptr %t367, ptr %retval br label %ret ifend175: %t368 = load ptr, ptr %t1 %t369 = load ptr, ptr %t2 %t370 = call ptr @fn_emit_alias_or_fail(ptr @.str9005, ptr %t368, ptr %t369) store ptr %t370, ptr %retval br label %ret ifend172: %t371 = load ptr, ptr %t0 %t372 = call i32 @lp_str_eq(ptr %t371, ptr @.str9006) %t373 = icmp ne i32 %t372, 0 br i1 %t373, label %then176, label %ifend178 then176: %t374 = load ptr, ptr %t1 %t375 = call i32 @lp_str_eq(ptr %t374, ptr @.str9007) %t376 = icmp ne i32 %t375, 0 br i1 %t376, label %then179, label %ifend181 then179: call void @fn_use_pak() %t377 = load i32, ptr @g_g_windowed %t378 = icmp ne i32 %t377, 0 br i1 %t378, label %then182, label %ifend184 then182: call void @fn_emit(ptr @.str9008) br label %ifend184 ifend184: %t379 = call ptr @fn_val(ptr @.str9009, ptr @.str9010) store ptr %t379, ptr %retval br label %ret ifend181: %t380 = load ptr, ptr %t1 %t381 = call i32 @lp_str_eq(ptr %t380, ptr @.str9011) %t382 = icmp ne i32 %t381, 0 br i1 %t382, label %then185, label %ifend187 then185: call void @fn_use_pak() %t383 = load ptr, ptr %t2 %t384 = call ptr @fn_arg_code(ptr %t383, i32 0) store ptr %t384, ptr %t385 %t386 = load i32, ptr @g_g_windowed %t387 = icmp ne i32 %t386, 0 br i1 %t387, label %then188, label %ifend190 then188: %t388 = load ptr, ptr %t385 %t389 = call ptr @lp_str_concat(ptr @.str9012, ptr %t388) %t390 = call ptr @lp_str_concat(ptr %t389, ptr @.str9013) call void @fn_emit(ptr %t390) br label %ifend190 ifend190: %t391 = call ptr @fn_val(ptr @.str9014, ptr @.str9015) store ptr %t391, ptr %retval br label %ret ifend187: %t392 = load ptr, ptr %t1 %t393 = call i32 @lp_str_eq(ptr %t392, ptr @.str9016) %t394 = icmp ne i32 %t393, 0 br i1 %t394, label %then191, label %ifend193 then191: call void @fn_use_pak() %t395 = load i32, ptr @g_g_windowed %t396 = icmp ne i32 %t395, 0 br i1 %t396, label %then194, label %ifend196 then194: %t397 = call ptr @fn_emit_bind(ptr @.str9017) %t398 = call ptr @fn_val(ptr %t397, ptr @.str9018) store ptr %t398, ptr %retval br label %ret ifend196: %t399 = call ptr @fn_val(ptr @.str9019, ptr @.str9020) store ptr %t399, ptr %retval br label %ret ifend193: %t400 = load ptr, ptr %t1 %t401 = call i32 @lp_str_eq(ptr %t400, ptr @.str9021) %t402 = icmp ne i32 %t401, 0 br i1 %t402, label %then197, label %ifend199 then197: call void @fn_use_pak() %t403 = load ptr, ptr %t2 %t404 = call ptr @fn_arg_code(ptr %t403, i32 0) store ptr %t404, ptr %t405 %t406 = load i32, ptr @g_g_windowed %t407 = icmp ne i32 %t406, 0 br i1 %t407, label %then200, label %ifend202 then200: %t408 = load ptr, ptr %t405 %t409 = call ptr @lp_str_concat(ptr @.str9022, ptr %t408) %t410 = call ptr @lp_str_concat(ptr %t409, ptr @.str9023) call void @fn_emit(ptr %t410) br label %ifend202 ifend202: %t411 = call ptr @fn_val(ptr @.str9024, ptr @.str9025) store ptr %t411, ptr %retval br label %ret ifend199: %t412 = load ptr, ptr %t1 %t413 = call i32 @lp_str_eq(ptr %t412, ptr @.str9026) %t414 = icmp ne i32 %t413, 0 br i1 %t414, label %then203, label %ifend205 then203: call void @fn_use_pak() %t415 = load ptr, ptr %t2 %t416 = call ptr @fn_arg_code(ptr %t415, i32 0) store ptr %t416, ptr %t417 %t418 = load i32, ptr @g_g_windowed %t419 = icmp ne i32 %t418, 0 br i1 %t419, label %then206, label %ifend208 then206: %t420 = load ptr, ptr %t417 %t421 = call ptr @lp_str_concat(ptr @.str9027, ptr %t420) %t422 = call ptr @lp_str_concat(ptr %t421, ptr @.str9028) call void @fn_emit(ptr %t422) br label %ifend208 ifend208: %t423 = call ptr @fn_val(ptr @.str9029, ptr @.str9030) store ptr %t423, ptr %retval br label %ret ifend205: %t425 = load ptr, ptr %t1 %t426 = call i32 @lp_str_eq(ptr %t425, ptr @.str9031) %t427 = icmp ne i32 %t426, 0 %t428 = zext i1 %t427 to i32 store i32 %t428, ptr %t424 br i1 %t427, label %scend210, label %sc209 sc209: %t429 = load ptr, ptr %t1 %t430 = call i32 @lp_str_eq(ptr %t429, ptr @.str9032) %t431 = icmp ne i32 %t430, 0 %t432 = zext i1 %t431 to i32 store i32 %t432, ptr %t424 br label %scend210 scend210: %t433 = load i32, ptr %t424 %t434 = icmp ne i32 %t433, 0 br i1 %t434, label %then211, label %ifend213 then211: call void @fn_use_pak() %t435 = load i32, ptr @g_g_windowed %t436 = icmp ne i32 %t435, 0 br i1 %t436, label %then214, label %ifend216 then214: %t437 = load ptr, ptr %t1 %t438 = call ptr @lp_str_concat(ptr @.str9033, ptr %t437) %t439 = call ptr @lp_str_concat(ptr %t438, ptr @.str9034) call void @fn_emit(ptr %t439) br label %ifend216 ifend216: %t440 = call ptr @fn_val(ptr @.str9035, ptr @.str9036) store ptr %t440, ptr %retval br label %ret ifend213: %t441 = load ptr, ptr %t1 %t442 = load ptr, ptr %t2 %t443 = call ptr @fn_emit_alias_or_fail(ptr @.str9037, ptr %t441, ptr %t442) store ptr %t443, ptr %retval br label %ret ifend178: %t444 = load ptr, ptr %t0 %t445 = call i32 @lp_str_eq(ptr %t444, ptr @.str9038) %t446 = icmp ne i32 %t445, 0 br i1 %t446, label %then217, label %ifend219 then217: %t447 = load ptr, ptr %t1 %t448 = call i32 @lp_str_eq(ptr %t447, ptr @.str9039) %t449 = icmp ne i32 %t448, 0 br i1 %t449, label %then220, label %ifend222 then220: %t450 = call ptr @fn_itoa(i32 1024) %t451 = call ptr @fn_val(ptr %t450, ptr @.str9040) store ptr %t451, ptr %retval br label %ret ifend222: %t452 = load ptr, ptr %t1 %t453 = call i32 @lp_str_eq(ptr %t452, ptr @.str9041) %t454 = icmp ne i32 %t453, 0 br i1 %t454, label %then223, label %ifend225 then223: %t455 = call ptr @fn_emit_bind(ptr @.str9042) %t456 = call ptr @fn_val(ptr %t455, ptr @.str9043) store ptr %t456, ptr %retval br label %ret ifend225: %t457 = load ptr, ptr %t1 %t458 = call i32 @lp_str_eq(ptr %t457, ptr @.str9044) %t459 = icmp ne i32 %t458, 0 br i1 %t459, label %then226, label %ifend228 then226: %t460 = call ptr @fn_emit_bind(ptr @.str9045) %t461 = call ptr @fn_val(ptr %t460, ptr @.str9046) store ptr %t461, ptr %retval br label %ret ifend228: %t462 = load ptr, ptr %t1 %t463 = call i32 @lp_str_eq(ptr %t462, ptr @.str9047) %t464 = icmp ne i32 %t463, 0 br i1 %t464, label %then229, label %ifend231 then229: %t465 = call ptr @fn_emit_bind(ptr @.str9048) store ptr %t465, ptr %t466 %t467 = call ptr @fn_emit_bind(ptr @.str9049) store ptr %t467, ptr %t468 %t469 = load ptr, ptr %t466 %t470 = call ptr @lp_str_concat(ptr @.str9050, ptr %t469) %t471 = call ptr @lp_str_concat(ptr %t470, ptr @.str9051) %t472 = load ptr, ptr %t468 %t473 = call ptr @lp_str_concat(ptr %t471, ptr %t472) %t474 = call ptr @fn_emit_bind(ptr %t473) %t475 = call ptr @fn_val(ptr %t474, ptr @.str9052) store ptr %t475, ptr %retval br label %ret ifend231: %t476 = load ptr, ptr %t1 %t477 = load ptr, ptr %t2 %t478 = call ptr @fn_emit_alias_or_fail(ptr @.str9053, ptr %t476, ptr %t477) store ptr %t478, ptr %retval br label %ret ifend219: %t479 = load ptr, ptr %t0 %t480 = load ptr, ptr %t1 %t481 = call i32 @fn_ns_alias_find(ptr %t479, ptr %t480) store i32 %t481, ptr %t482 %t483 = load i32, ptr %t482 %t484 = icmp sge i32 %t483, 0 %t485 = zext i1 %t484 to i32 %t486 = icmp ne i32 %t485, 0 br i1 %t486, label %then232, label %ifend234 then232: %t487 = load i32, ptr %t482 %t488 = load ptr, ptr %t2 %t489 = call ptr @fn_emit_alias_call(i32 %t487, ptr %t488) store ptr %t489, ptr %retval br label %ret ifend234: store ptr null, ptr %t490 %t491 = getelementptr %LSlice, ptr null, i32 1 %t492 = ptrtoint ptr %t491 to i64 %t493 = call ptr @malloc(i64 %t492) %t494 = getelementptr inbounds %LSlice, ptr %t493, i32 0, i32 0 store ptr null, ptr %t494 %t495 = getelementptr inbounds %LSlice, ptr %t493, i32 0, i32 1 store i32 0, ptr %t495 %t496 = getelementptr inbounds %LSlice, ptr %t493, i32 0, i32 2 store i32 0, ptr %t496 store ptr %t493, ptr %t497 %t498 = load ptr, ptr %t0 %t499 = call i32 @lp_str_eq(ptr %t498, ptr @.str9054) %t500 = icmp ne i32 %t499, 0 br i1 %t500, label %then235, label %ifend237 then235: %t501 = load ptr, ptr %t1 %t502 = call i32 @lp_str_eq(ptr %t501, ptr @.str9055) %t503 = icmp ne i32 %t502, 0 br i1 %t503, label %then238, label %ifend240 then238: %t504 = call i32 @fn_has_prefabs() %t505 = icmp eq i32 %t504, 0 %t506 = zext i1 %t505 to i32 %t507 = icmp ne i32 %t506, 0 br i1 %t507, label %then241, label %ifend243 then241: call void @fn_perr(ptr @.str9056) br label %ifend243 ifend243: %t508 = call ptr @fn_find_comp(ptr @.str9057) store ptr %t508, ptr %t509 %t510 = load ptr, ptr %t509 %t511 = icmp eq ptr %t510, null %t512 = zext i1 %t511 to i32 %t513 = icmp ne i32 %t512, 0 br i1 %t513, label %then244, label %ifend246 then244: call void @fn_perr(ptr @.str9058) br label %ifend246 ifend246: %t514 = getelementptr %LSlice, ptr null, i32 1 %t515 = ptrtoint ptr %t514 to i64 %t516 = call ptr @malloc(i64 %t515) %t517 = getelementptr inbounds %LSlice, ptr %t516, i32 0, i32 0 store ptr null, ptr %t517 %t518 = getelementptr inbounds %LSlice, ptr %t516, i32 0, i32 1 store i32 0, ptr %t518 %t519 = getelementptr inbounds %LSlice, ptr %t516, i32 0, i32 2 store i32 0, ptr %t519 store ptr %t516, ptr %t520 %t521 = load ptr, ptr %t520 %t522 = getelementptr inbounds %LSlice, ptr %t521, i32 0, i32 1 %t523 = getelementptr inbounds %LSlice, ptr %t521, i32 0, i32 2 %t524 = getelementptr inbounds %LSlice, ptr %t521, i32 0, i32 0 %t525 = load i32, ptr %t522 %t526 = load i32, ptr %t523 %t527 = icmp sge i32 %t525, %t526 br i1 %t527, label %grow247, label %put248 grow247: %t528 = mul i32 %t526, 2 %t529 = icmp eq i32 %t526, 0 %t530 = select i1 %t529, i32 8, i32 %t528 %t531 = getelementptr ptr, ptr null, i32 1 %t532 = ptrtoint ptr %t531 to i64 %t533 = zext i32 %t530 to i64 %t534 = mul i64 %t533, %t532 %t535 = load ptr, ptr %t524 %t536 = call ptr @realloc(ptr %t535, i64 %t534) store ptr %t536, ptr %t524 store i32 %t530, ptr %t523 br label %put248 put248: %t537 = load ptr, ptr %t524 %t538 = getelementptr inbounds ptr, ptr %t537, i32 %t525 store ptr @.str9059, ptr %t538 %t539 = add i32 %t525, 1 store i32 %t539, ptr %t522 %t540 = load ptr, ptr %t520 %t541 = getelementptr inbounds %LSlice, ptr %t540, i32 0, i32 1 %t542 = getelementptr inbounds %LSlice, ptr %t540, i32 0, i32 2 %t543 = getelementptr inbounds %LSlice, ptr %t540, i32 0, i32 0 %t544 = load i32, ptr %t541 %t545 = load i32, ptr %t542 %t546 = icmp sge i32 %t544, %t545 br i1 %t546, label %grow249, label %put250 grow249: %t547 = mul i32 %t545, 2 %t548 = icmp eq i32 %t545, 0 %t549 = select i1 %t548, i32 8, i32 %t547 %t550 = getelementptr ptr, ptr null, i32 1 %t551 = ptrtoint ptr %t550 to i64 %t552 = zext i32 %t549 to i64 %t553 = mul i64 %t552, %t551 %t554 = load ptr, ptr %t543 %t555 = call ptr @realloc(ptr %t554, i64 %t553) store ptr %t555, ptr %t543 store i32 %t549, ptr %t542 br label %put250 put250: %t556 = load ptr, ptr %t543 %t557 = getelementptr inbounds ptr, ptr %t556, i32 %t544 store ptr @.str9060, ptr %t557 %t558 = add i32 %t544, 1 store i32 %t558, ptr %t541 %t559 = load ptr, ptr %t2 %t560 = load ptr, ptr %t520 call void @fn_reorder_named(ptr %t559, ptr %t560) %t561 = load ptr, ptr %t2 %t562 = getelementptr inbounds %Cmp_Node, ptr %t561, i32 0, i32 7 %t563 = load ptr, ptr %t562 %t564 = getelementptr inbounds %LSlice, ptr %t563, i32 0, i32 0 %t565 = load ptr, ptr %t564 %t566 = getelementptr inbounds %LSlice, ptr %t563, i32 0, i32 1 %t567 = load i32, ptr %t566 %t568 = icmp ult i32 0, %t567 br i1 %t568, label %ixok251, label %ixbad252 ixbad252: %t569 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t569, ptr @.fmt_bounds, ptr @.str9061, i32 0, i32 %t567) call void @exit(i32 1) unreachable ixok251: %t570 = getelementptr inbounds ptr, ptr %t565, i32 0 %t571 = load ptr, ptr %t570 %t572 = call ptr @fn_emit_expr(ptr %t571) store ptr %t572, ptr %t573 %t574 = load ptr, ptr %t2 %t575 = getelementptr inbounds %Cmp_Node, ptr %t574, i32 0, i32 7 %t576 = load ptr, ptr %t575 %t577 = getelementptr inbounds %LSlice, ptr %t576, i32 0, i32 0 %t578 = load ptr, ptr %t577 %t579 = getelementptr inbounds %LSlice, ptr %t576, i32 0, i32 1 %t580 = load i32, ptr %t579 %t581 = icmp ult i32 1, %t580 br i1 %t581, label %ixok253, label %ixbad254 ixbad254: %t582 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t582, ptr @.fmt_bounds, ptr @.str9062, i32 1, i32 %t580) call void @exit(i32 1) unreachable ixok253: %t583 = getelementptr inbounds ptr, ptr %t578, i32 1 %t584 = load ptr, ptr %t583 %t585 = call ptr @fn_emit_expr(ptr %t584) store ptr %t585, ptr %t586 %t587 = load ptr, ptr %t573 %t588 = getelementptr inbounds %Cmp_Val, ptr %t587, i32 0, i32 0 %t589 = load ptr, ptr %t588 %t590 = call ptr @lp_str_concat(ptr @.str9063, ptr %t589) %t591 = call ptr @lp_str_concat(ptr %t590, ptr @.str9064) %t592 = call ptr @fn_emit_bind(ptr %t591) store ptr %t592, ptr %t593 %t594 = call ptr @fn_itoa(i32 1024) store ptr %t594, ptr %t595 %t596 = load ptr, ptr %t595 %t597 = call ptr @lp_str_concat(ptr @.str9065, ptr %t596) %t598 = call ptr @lp_str_concat(ptr %t597, ptr @.str9066) %t599 = load ptr, ptr %t593 %t600 = call ptr @lp_str_concat(ptr %t598, ptr %t599) %t601 = call ptr @fn_emit_bind(ptr %t600) store ptr %t601, ptr %t602 %t603 = load ptr, ptr %t602 %t604 = call ptr @lp_str_concat(ptr @.str9067, ptr %t603) %t605 = call ptr @lp_str_concat(ptr %t604, ptr @.str9068) %t606 = load ptr, ptr %t509 %t607 = call i32 @fn_field_index(ptr %t606, ptr @.str9069) %t608 = call ptr @fn_itoa(i32 %t607) %t609 = call ptr @lp_str_concat(ptr %t605, ptr %t608) %t610 = call ptr @fn_emit_bind(ptr %t609) store ptr %t610, ptr %t611 %t612 = load ptr, ptr %t602 %t613 = call ptr @lp_str_concat(ptr @.str9070, ptr %t612) %t614 = call ptr @lp_str_concat(ptr %t613, ptr @.str9071) %t615 = load ptr, ptr %t509 %t616 = call i32 @fn_field_index(ptr %t615, ptr @.str9072) %t617 = call ptr @fn_itoa(i32 %t616) %t618 = call ptr @lp_str_concat(ptr %t614, ptr %t617) %t619 = call ptr @fn_emit_bind(ptr %t618) store ptr %t619, ptr %t620 %t621 = load ptr, ptr %t586 %t622 = getelementptr inbounds %Cmp_Val, ptr %t621, i32 0, i32 0 %t623 = load ptr, ptr %t622 %t624 = call ptr @fn_vec_x(ptr %t623) store ptr %t624, ptr %t625 %t626 = load ptr, ptr %t586 %t627 = getelementptr inbounds %Cmp_Val, ptr %t626, i32 0, i32 0 %t628 = load ptr, ptr %t627 %t629 = call ptr @fn_vec_y(ptr %t628) store ptr %t629, ptr %t630 call void @fn_emit(ptr @.str9073) %t631 = load ptr, ptr %t625 call void @fn_emit(ptr %t631) call void @fn_emit(ptr @.str9074) %t632 = load ptr, ptr %t611 call void @fn_emit(ptr %t632) call void @fn_emit(ptr @.str9075) call void @fn_emit(ptr @.str9076) %t633 = load ptr, ptr %t630 call void @fn_emit(ptr %t633) call void @fn_emit(ptr @.str9077) %t634 = load ptr, ptr %t620 call void @fn_emit(ptr %t634) call void @fn_emit(ptr @.str9078) %t635 = load ptr, ptr %t593 %t636 = call ptr @fn_val(ptr %t635, ptr @.str9079) store ptr %t636, ptr %retval br label %ret ifend240: %t637 = load ptr, ptr %t1 %t638 = call i32 @lp_str_eq(ptr %t637, ptr @.str9080) %t639 = icmp ne i32 %t638, 0 br i1 %t639, label %then255, label %ifend257 then255: %t640 = call i32 @fn_has_prefabs() %t641 = icmp eq i32 %t640, 0 %t642 = zext i1 %t641 to i32 %t643 = icmp ne i32 %t642, 0 br i1 %t643, label %then258, label %ifend260 then258: call void @fn_perr(ptr @.str9081) br label %ifend260 ifend260: %t644 = getelementptr %LSlice, ptr null, i32 1 %t645 = ptrtoint ptr %t644 to i64 %t646 = call ptr @malloc(i64 %t645) %t647 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 0 store ptr null, ptr %t647 %t648 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 1 store i32 0, ptr %t648 %t649 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 2 store i32 0, ptr %t649 store ptr %t646, ptr %t650 %t651 = load ptr, ptr %t650 %t652 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 1 %t653 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 2 %t654 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 0 %t655 = load i32, ptr %t652 %t656 = load i32, ptr %t653 %t657 = icmp sge i32 %t655, %t656 br i1 %t657, label %grow261, label %put262 grow261: %t658 = mul i32 %t656, 2 %t659 = icmp eq i32 %t656, 0 %t660 = select i1 %t659, i32 8, i32 %t658 %t661 = getelementptr ptr, ptr null, i32 1 %t662 = ptrtoint ptr %t661 to i64 %t663 = zext i32 %t660 to i64 %t664 = mul i64 %t663, %t662 %t665 = load ptr, ptr %t654 %t666 = call ptr @realloc(ptr %t665, i64 %t664) store ptr %t666, ptr %t654 store i32 %t660, ptr %t653 br label %put262 put262: %t667 = load ptr, ptr %t654 %t668 = getelementptr inbounds ptr, ptr %t667, i32 %t655 store ptr @.str9082, ptr %t668 %t669 = add i32 %t655, 1 store i32 %t669, ptr %t652 %t670 = load ptr, ptr %t2 %t671 = load ptr, ptr %t650 call void @fn_reorder_named(ptr %t670, ptr %t671) %t672 = load ptr, ptr %t2 %t673 = getelementptr inbounds %Cmp_Node, ptr %t672, i32 0, i32 7 %t674 = load ptr, ptr %t673 %t675 = getelementptr inbounds %LSlice, ptr %t674, i32 0, i32 1 %t676 = load i32, ptr %t675 %t677 = icmp ne i32 %t676, 1 %t678 = zext i1 %t677 to i32 %t679 = icmp ne i32 %t678, 0 br i1 %t679, label %then263, label %ifend265 then263: call void @fn_perr(ptr @.str9083) br label %ifend265 ifend265: %t680 = load ptr, ptr %t2 %t681 = getelementptr inbounds %Cmp_Node, ptr %t680, i32 0, i32 7 %t682 = load ptr, ptr %t681 %t683 = getelementptr inbounds %LSlice, ptr %t682, i32 0, i32 0 %t684 = load ptr, ptr %t683 %t685 = getelementptr inbounds %LSlice, ptr %t682, i32 0, i32 1 %t686 = load i32, ptr %t685 %t687 = icmp ult i32 0, %t686 br i1 %t687, label %ixok266, label %ixbad267 ixbad267: %t688 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t688, ptr @.fmt_bounds, ptr @.str9084, i32 0, i32 %t686) call void @exit(i32 1) unreachable ixok266: %t689 = getelementptr inbounds ptr, ptr %t684, i32 0 %t690 = load ptr, ptr %t689 %t691 = call ptr @fn_emit_expr(ptr %t690) store ptr %t691, ptr %t692 %t693 = load ptr, ptr %t692 %t694 = getelementptr inbounds %Cmp_Val, ptr %t693, i32 0, i32 0 %t695 = load ptr, ptr %t694 %t696 = call ptr @lp_str_concat(ptr @.str9085, ptr %t695) %t697 = call ptr @lp_str_concat(ptr %t696, ptr @.str9086) %t698 = call ptr @fn_emit_bind(ptr %t697) %t699 = call ptr @fn_val(ptr %t698, ptr @.str9087) store ptr %t699, ptr %retval br label %ret ifend257: %t700 = load ptr, ptr %t1 %t701 = load ptr, ptr %t2 %t702 = call ptr @fn_emit_alias_or_fail(ptr @.str9088, ptr %t700, ptr %t701) store ptr %t702, ptr %retval br label %ret ifend237: %t703 = load ptr, ptr %t0 %t704 = call i32 @lp_str_eq(ptr %t703, ptr @.str9089) %t705 = icmp ne i32 %t704, 0 br i1 %t705, label %then268, label %ifend270 then268: %t706 = load ptr, ptr %t1 %t707 = call i32 @lp_str_eq(ptr %t706, ptr @.str9090) %t708 = icmp ne i32 %t707, 0 br i1 %t708, label %then271, label %ifend273 then271: %t709 = load ptr, ptr %t2 %t710 = call i32 @fn_first_arg_is_text(ptr %t709) %t711 = icmp ne i32 %t710, 0 br i1 %t711, label %then274, label %else275 then274: store ptr @.str9091, ptr %t490 %t712 = load ptr, ptr %t497 %t713 = getelementptr inbounds %LSlice, ptr %t712, i32 0, i32 1 %t714 = getelementptr inbounds %LSlice, ptr %t712, i32 0, i32 2 %t715 = getelementptr inbounds %LSlice, ptr %t712, i32 0, i32 0 %t716 = load i32, ptr %t713 %t717 = load i32, ptr %t714 %t718 = icmp sge i32 %t716, %t717 br i1 %t718, label %grow277, label %put278 grow277: %t719 = mul i32 %t717, 2 %t720 = icmp eq i32 %t717, 0 %t721 = select i1 %t720, i32 8, i32 %t719 %t722 = getelementptr ptr, ptr null, i32 1 %t723 = ptrtoint ptr %t722 to i64 %t724 = zext i32 %t721 to i64 %t725 = mul i64 %t724, %t723 %t726 = load ptr, ptr %t715 %t727 = call ptr @realloc(ptr %t726, i64 %t725) store ptr %t727, ptr %t715 store i32 %t721, ptr %t714 br label %put278 put278: %t728 = load ptr, ptr %t715 %t729 = getelementptr inbounds ptr, ptr %t728, i32 %t716 store ptr @.str9092, ptr %t729 %t730 = add i32 %t716, 1 store i32 %t730, ptr %t713 br label %ifend276 else275: store ptr @.str9093, ptr %t490 %t731 = load ptr, ptr %t497 %t732 = getelementptr inbounds %LSlice, ptr %t731, i32 0, i32 1 %t733 = getelementptr inbounds %LSlice, ptr %t731, i32 0, i32 2 %t734 = getelementptr inbounds %LSlice, ptr %t731, i32 0, i32 0 %t735 = load i32, ptr %t732 %t736 = load i32, ptr %t733 %t737 = icmp sge i32 %t735, %t736 br i1 %t737, label %grow279, label %put280 grow279: %t738 = mul i32 %t736, 2 %t739 = icmp eq i32 %t736, 0 %t740 = select i1 %t739, i32 8, i32 %t738 %t741 = getelementptr ptr, ptr null, i32 1 %t742 = ptrtoint ptr %t741 to i64 %t743 = zext i32 %t740 to i64 %t744 = mul i64 %t743, %t742 %t745 = load ptr, ptr %t734 %t746 = call ptr @realloc(ptr %t745, i64 %t744) store ptr %t746, ptr %t734 store i32 %t740, ptr %t733 br label %put280 put280: %t747 = load ptr, ptr %t734 %t748 = getelementptr inbounds ptr, ptr %t747, i32 %t735 store ptr @.str9094, ptr %t748 %t749 = add i32 %t735, 1 store i32 %t749, ptr %t732 br label %ifend276 ifend276: br label %ifend273 ifend273: %t750 = load ptr, ptr %t1 %t751 = call i32 @lp_str_eq(ptr %t750, ptr @.str9095) %t752 = icmp ne i32 %t751, 0 br i1 %t752, label %then281, label %ifend283 then281: %t753 = load ptr, ptr %t2 %t754 = call i32 @fn_first_arg_is_text(ptr %t753) %t755 = icmp ne i32 %t754, 0 br i1 %t755, label %then284, label %else285 then284: store ptr @.str9096, ptr %t490 %t756 = load ptr, ptr %t497 %t757 = getelementptr inbounds %LSlice, ptr %t756, i32 0, i32 1 %t758 = getelementptr inbounds %LSlice, ptr %t756, i32 0, i32 2 %t759 = getelementptr inbounds %LSlice, ptr %t756, i32 0, i32 0 %t760 = load i32, ptr %t757 %t761 = load i32, ptr %t758 %t762 = icmp sge i32 %t760, %t761 br i1 %t762, label %grow287, label %put288 grow287: %t763 = mul i32 %t761, 2 %t764 = icmp eq i32 %t761, 0 %t765 = select i1 %t764, i32 8, i32 %t763 %t766 = getelementptr ptr, ptr null, i32 1 %t767 = ptrtoint ptr %t766 to i64 %t768 = zext i32 %t765 to i64 %t769 = mul i64 %t768, %t767 %t770 = load ptr, ptr %t759 %t771 = call ptr @realloc(ptr %t770, i64 %t769) store ptr %t771, ptr %t759 store i32 %t765, ptr %t758 br label %put288 put288: %t772 = load ptr, ptr %t759 %t773 = getelementptr inbounds ptr, ptr %t772, i32 %t760 store ptr @.str9097, ptr %t773 %t774 = add i32 %t760, 1 store i32 %t774, ptr %t757 br label %ifend286 else285: store ptr @.str9098, ptr %t490 %t775 = load ptr, ptr %t497 %t776 = getelementptr inbounds %LSlice, ptr %t775, i32 0, i32 1 %t777 = getelementptr inbounds %LSlice, ptr %t775, i32 0, i32 2 %t778 = getelementptr inbounds %LSlice, ptr %t775, i32 0, i32 0 %t779 = load i32, ptr %t776 %t780 = load i32, ptr %t777 %t781 = icmp sge i32 %t779, %t780 br i1 %t781, label %grow289, label %put290 grow289: %t782 = mul i32 %t780, 2 %t783 = icmp eq i32 %t780, 0 %t784 = select i1 %t783, i32 8, i32 %t782 %t785 = getelementptr ptr, ptr null, i32 1 %t786 = ptrtoint ptr %t785 to i64 %t787 = zext i32 %t784 to i64 %t788 = mul i64 %t787, %t786 %t789 = load ptr, ptr %t778 %t790 = call ptr @realloc(ptr %t789, i64 %t788) store ptr %t790, ptr %t778 store i32 %t784, ptr %t777 br label %put290 put290: %t791 = load ptr, ptr %t778 %t792 = getelementptr inbounds ptr, ptr %t791, i32 %t779 store ptr @.str9099, ptr %t792 %t793 = add i32 %t779, 1 store i32 %t793, ptr %t776 br label %ifend286 ifend286: br label %ifend283 ifend283: br label %ifend270 ifend270: %t794 = load ptr, ptr %t0 %t795 = call i32 @lp_str_eq(ptr %t794, ptr @.str9100) %t796 = icmp ne i32 %t795, 0 br i1 %t796, label %then291, label %ifend293 then291: %t797 = load ptr, ptr %t1 %t798 = call i32 @lp_str_eq(ptr %t797, ptr @.str9101) %t799 = icmp ne i32 %t798, 0 br i1 %t799, label %then294, label %ifend296 then294: store ptr @.str9102, ptr %t490 %t800 = load ptr, ptr %t497 %t801 = getelementptr inbounds %LSlice, ptr %t800, i32 0, i32 1 %t802 = getelementptr inbounds %LSlice, ptr %t800, i32 0, i32 2 %t803 = getelementptr inbounds %LSlice, ptr %t800, i32 0, i32 0 %t804 = load i32, ptr %t801 %t805 = load i32, ptr %t802 %t806 = icmp sge i32 %t804, %t805 br i1 %t806, label %grow297, label %put298 grow297: %t807 = mul i32 %t805, 2 %t808 = icmp eq i32 %t805, 0 %t809 = select i1 %t808, i32 8, i32 %t807 %t810 = getelementptr ptr, ptr null, i32 1 %t811 = ptrtoint ptr %t810 to i64 %t812 = zext i32 %t809 to i64 %t813 = mul i64 %t812, %t811 %t814 = load ptr, ptr %t803 %t815 = call ptr @realloc(ptr %t814, i64 %t813) store ptr %t815, ptr %t803 store i32 %t809, ptr %t802 br label %put298 put298: %t816 = load ptr, ptr %t803 %t817 = getelementptr inbounds ptr, ptr %t816, i32 %t804 store ptr @.str9103, ptr %t817 %t818 = add i32 %t804, 1 store i32 %t818, ptr %t801 %t819 = load ptr, ptr %t497 %t820 = getelementptr inbounds %LSlice, ptr %t819, i32 0, i32 1 %t821 = getelementptr inbounds %LSlice, ptr %t819, i32 0, i32 2 %t822 = getelementptr inbounds %LSlice, ptr %t819, i32 0, i32 0 %t823 = load i32, ptr %t820 %t824 = load i32, ptr %t821 %t825 = icmp sge i32 %t823, %t824 br i1 %t825, label %grow299, label %put300 grow299: %t826 = mul i32 %t824, 2 %t827 = icmp eq i32 %t824, 0 %t828 = select i1 %t827, i32 8, i32 %t826 %t829 = getelementptr ptr, ptr null, i32 1 %t830 = ptrtoint ptr %t829 to i64 %t831 = zext i32 %t828 to i64 %t832 = mul i64 %t831, %t830 %t833 = load ptr, ptr %t822 %t834 = call ptr @realloc(ptr %t833, i64 %t832) store ptr %t834, ptr %t822 store i32 %t828, ptr %t821 br label %put300 put300: %t835 = load ptr, ptr %t822 %t836 = getelementptr inbounds ptr, ptr %t835, i32 %t823 store ptr @.str9104, ptr %t836 %t837 = add i32 %t823, 1 store i32 %t837, ptr %t820 %t838 = load ptr, ptr %t497 %t839 = getelementptr inbounds %LSlice, ptr %t838, i32 0, i32 1 %t840 = getelementptr inbounds %LSlice, ptr %t838, i32 0, i32 2 %t841 = getelementptr inbounds %LSlice, ptr %t838, i32 0, i32 0 %t842 = load i32, ptr %t839 %t843 = load i32, ptr %t840 %t844 = icmp sge i32 %t842, %t843 br i1 %t844, label %grow301, label %put302 grow301: %t845 = mul i32 %t843, 2 %t846 = icmp eq i32 %t843, 0 %t847 = select i1 %t846, i32 8, i32 %t845 %t848 = getelementptr ptr, ptr null, i32 1 %t849 = ptrtoint ptr %t848 to i64 %t850 = zext i32 %t847 to i64 %t851 = mul i64 %t850, %t849 %t852 = load ptr, ptr %t841 %t853 = call ptr @realloc(ptr %t852, i64 %t851) store ptr %t853, ptr %t841 store i32 %t847, ptr %t840 br label %put302 put302: %t854 = load ptr, ptr %t841 %t855 = getelementptr inbounds ptr, ptr %t854, i32 %t842 store ptr @.str9105, ptr %t855 %t856 = add i32 %t842, 1 store i32 %t856, ptr %t839 %t857 = load ptr, ptr %t2 %t858 = getelementptr inbounds %Cmp_Node, ptr %t857, i32 0, i32 7 %t859 = load ptr, ptr %t858 %t860 = getelementptr inbounds %LSlice, ptr %t859, i32 0, i32 1 %t861 = load i32, ptr %t860 %t862 = icmp sgt i32 %t861, 1 %t863 = zext i1 %t862 to i32 %t864 = icmp ne i32 %t863, 0 br i1 %t864, label %then303, label %ifend305 then303: %t865 = load ptr, ptr %t2 %t866 = getelementptr inbounds %Cmp_Node, ptr %t865, i32 0, i32 7 %t867 = load ptr, ptr %t866 %t868 = getelementptr inbounds %LSlice, ptr %t867, i32 0, i32 0 %t869 = load ptr, ptr %t868 %t870 = getelementptr inbounds %LSlice, ptr %t867, i32 0, i32 1 %t871 = load i32, ptr %t870 %t872 = icmp ult i32 1, %t871 br i1 %t872, label %ixok306, label %ixbad307 ixbad307: %t873 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t873, ptr @.fmt_bounds, ptr @.str9106, i32 1, i32 %t871) call void @exit(i32 1) unreachable ixok306: %t874 = getelementptr inbounds ptr, ptr %t869, i32 1 %t875 = load ptr, ptr %t874 call void @fn_check_worker_ref(ptr %t875) br label %ifend305 ifend305: br label %ifend296 ifend296: br label %ifend293 ifend293: %t876 = load ptr, ptr %t0 %t877 = call i32 @lp_str_eq(ptr %t876, ptr @.str9107) %t878 = icmp ne i32 %t877, 0 br i1 %t878, label %then308, label %ifend310 then308: %t879 = load ptr, ptr %t1 %t880 = call i32 @lp_str_eq(ptr %t879, ptr @.str9108) %t881 = icmp ne i32 %t880, 0 br i1 %t881, label %then311, label %ifend313 then311: store ptr @.str9109, ptr %t490 %t882 = load ptr, ptr %t497 %t883 = getelementptr inbounds %LSlice, ptr %t882, i32 0, i32 1 %t884 = getelementptr inbounds %LSlice, ptr %t882, i32 0, i32 2 %t885 = getelementptr inbounds %LSlice, ptr %t882, i32 0, i32 0 %t886 = load i32, ptr %t883 %t887 = load i32, ptr %t884 %t888 = icmp sge i32 %t886, %t887 br i1 %t888, label %grow314, label %put315 grow314: %t889 = mul i32 %t887, 2 %t890 = icmp eq i32 %t887, 0 %t891 = select i1 %t890, i32 8, i32 %t889 %t892 = getelementptr ptr, ptr null, i32 1 %t893 = ptrtoint ptr %t892 to i64 %t894 = zext i32 %t891 to i64 %t895 = mul i64 %t894, %t893 %t896 = load ptr, ptr %t885 %t897 = call ptr @realloc(ptr %t896, i64 %t895) store ptr %t897, ptr %t885 store i32 %t891, ptr %t884 br label %put315 put315: %t898 = load ptr, ptr %t885 %t899 = getelementptr inbounds ptr, ptr %t898, i32 %t886 store ptr @.str9110, ptr %t899 %t900 = add i32 %t886, 1 store i32 %t900, ptr %t883 %t901 = load ptr, ptr %t497 %t902 = getelementptr inbounds %LSlice, ptr %t901, i32 0, i32 1 %t903 = getelementptr inbounds %LSlice, ptr %t901, i32 0, i32 2 %t904 = getelementptr inbounds %LSlice, ptr %t901, i32 0, i32 0 %t905 = load i32, ptr %t902 %t906 = load i32, ptr %t903 %t907 = icmp sge i32 %t905, %t906 br i1 %t907, label %grow316, label %put317 grow316: %t908 = mul i32 %t906, 2 %t909 = icmp eq i32 %t906, 0 %t910 = select i1 %t909, i32 8, i32 %t908 %t911 = getelementptr ptr, ptr null, i32 1 %t912 = ptrtoint ptr %t911 to i64 %t913 = zext i32 %t910 to i64 %t914 = mul i64 %t913, %t912 %t915 = load ptr, ptr %t904 %t916 = call ptr @realloc(ptr %t915, i64 %t914) store ptr %t916, ptr %t904 store i32 %t910, ptr %t903 br label %put317 put317: %t917 = load ptr, ptr %t904 %t918 = getelementptr inbounds ptr, ptr %t917, i32 %t905 store ptr @.str9111, ptr %t918 %t919 = add i32 %t905, 1 store i32 %t919, ptr %t902 %t920 = load ptr, ptr %t497 %t921 = getelementptr inbounds %LSlice, ptr %t920, i32 0, i32 1 %t922 = getelementptr inbounds %LSlice, ptr %t920, i32 0, i32 2 %t923 = getelementptr inbounds %LSlice, ptr %t920, i32 0, i32 0 %t924 = load i32, ptr %t921 %t925 = load i32, ptr %t922 %t926 = icmp sge i32 %t924, %t925 br i1 %t926, label %grow318, label %put319 grow318: %t927 = mul i32 %t925, 2 %t928 = icmp eq i32 %t925, 0 %t929 = select i1 %t928, i32 8, i32 %t927 %t930 = getelementptr ptr, ptr null, i32 1 %t931 = ptrtoint ptr %t930 to i64 %t932 = zext i32 %t929 to i64 %t933 = mul i64 %t932, %t931 %t934 = load ptr, ptr %t923 %t935 = call ptr @realloc(ptr %t934, i64 %t933) store ptr %t935, ptr %t923 store i32 %t929, ptr %t922 br label %put319 put319: %t936 = load ptr, ptr %t923 %t937 = getelementptr inbounds ptr, ptr %t936, i32 %t924 store ptr @.str9112, ptr %t937 %t938 = add i32 %t924, 1 store i32 %t938, ptr %t921 %t939 = load ptr, ptr %t497 %t940 = getelementptr inbounds %LSlice, ptr %t939, i32 0, i32 1 %t941 = getelementptr inbounds %LSlice, ptr %t939, i32 0, i32 2 %t942 = getelementptr inbounds %LSlice, ptr %t939, i32 0, i32 0 %t943 = load i32, ptr %t940 %t944 = load i32, ptr %t941 %t945 = icmp sge i32 %t943, %t944 br i1 %t945, label %grow320, label %put321 grow320: %t946 = mul i32 %t944, 2 %t947 = icmp eq i32 %t944, 0 %t948 = select i1 %t947, i32 8, i32 %t946 %t949 = getelementptr ptr, ptr null, i32 1 %t950 = ptrtoint ptr %t949 to i64 %t951 = zext i32 %t948 to i64 %t952 = mul i64 %t951, %t950 %t953 = load ptr, ptr %t942 %t954 = call ptr @realloc(ptr %t953, i64 %t952) store ptr %t954, ptr %t942 store i32 %t948, ptr %t941 br label %put321 put321: %t955 = load ptr, ptr %t942 %t956 = getelementptr inbounds ptr, ptr %t955, i32 %t943 store ptr @.str9113, ptr %t956 %t957 = add i32 %t943, 1 store i32 %t957, ptr %t940 br label %ifend313 ifend313: %t958 = load ptr, ptr %t1 %t959 = call i32 @lp_str_eq(ptr %t958, ptr @.str9114) %t960 = icmp ne i32 %t959, 0 br i1 %t960, label %then322, label %ifend324 then322: store ptr @.str9115, ptr %t490 %t961 = load ptr, ptr %t497 %t962 = getelementptr inbounds %LSlice, ptr %t961, i32 0, i32 1 %t963 = getelementptr inbounds %LSlice, ptr %t961, i32 0, i32 2 %t964 = getelementptr inbounds %LSlice, ptr %t961, i32 0, i32 0 %t965 = load i32, ptr %t962 %t966 = load i32, ptr %t963 %t967 = icmp sge i32 %t965, %t966 br i1 %t967, label %grow325, label %put326 grow325: %t968 = mul i32 %t966, 2 %t969 = icmp eq i32 %t966, 0 %t970 = select i1 %t969, i32 8, i32 %t968 %t971 = getelementptr ptr, ptr null, i32 1 %t972 = ptrtoint ptr %t971 to i64 %t973 = zext i32 %t970 to i64 %t974 = mul i64 %t973, %t972 %t975 = load ptr, ptr %t964 %t976 = call ptr @realloc(ptr %t975, i64 %t974) store ptr %t976, ptr %t964 store i32 %t970, ptr %t963 br label %put326 put326: %t977 = load ptr, ptr %t964 %t978 = getelementptr inbounds ptr, ptr %t977, i32 %t965 store ptr @.str9116, ptr %t978 %t979 = add i32 %t965, 1 store i32 %t979, ptr %t962 %t980 = load ptr, ptr %t497 %t981 = getelementptr inbounds %LSlice, ptr %t980, i32 0, i32 1 %t982 = getelementptr inbounds %LSlice, ptr %t980, i32 0, i32 2 %t983 = getelementptr inbounds %LSlice, ptr %t980, i32 0, i32 0 %t984 = load i32, ptr %t981 %t985 = load i32, ptr %t982 %t986 = icmp sge i32 %t984, %t985 br i1 %t986, label %grow327, label %put328 grow327: %t987 = mul i32 %t985, 2 %t988 = icmp eq i32 %t985, 0 %t989 = select i1 %t988, i32 8, i32 %t987 %t990 = getelementptr ptr, ptr null, i32 1 %t991 = ptrtoint ptr %t990 to i64 %t992 = zext i32 %t989 to i64 %t993 = mul i64 %t992, %t991 %t994 = load ptr, ptr %t983 %t995 = call ptr @realloc(ptr %t994, i64 %t993) store ptr %t995, ptr %t983 store i32 %t989, ptr %t982 br label %put328 put328: %t996 = load ptr, ptr %t983 %t997 = getelementptr inbounds ptr, ptr %t996, i32 %t984 store ptr @.str9117, ptr %t997 %t998 = add i32 %t984, 1 store i32 %t998, ptr %t981 br label %ifend324 ifend324: %t999 = load ptr, ptr %t1 %t1000 = call i32 @lp_str_eq(ptr %t999, ptr @.str9118) %t1001 = icmp ne i32 %t1000, 0 br i1 %t1001, label %then329, label %ifend331 then329: store ptr @.str9119, ptr %t490 %t1002 = load ptr, ptr %t497 %t1003 = getelementptr inbounds %LSlice, ptr %t1002, i32 0, i32 1 %t1004 = getelementptr inbounds %LSlice, ptr %t1002, i32 0, i32 2 %t1005 = getelementptr inbounds %LSlice, ptr %t1002, i32 0, i32 0 %t1006 = load i32, ptr %t1003 %t1007 = load i32, ptr %t1004 %t1008 = icmp sge i32 %t1006, %t1007 br i1 %t1008, label %grow332, label %put333 grow332: %t1009 = mul i32 %t1007, 2 %t1010 = icmp eq i32 %t1007, 0 %t1011 = select i1 %t1010, i32 8, i32 %t1009 %t1012 = getelementptr ptr, ptr null, i32 1 %t1013 = ptrtoint ptr %t1012 to i64 %t1014 = zext i32 %t1011 to i64 %t1015 = mul i64 %t1014, %t1013 %t1016 = load ptr, ptr %t1005 %t1017 = call ptr @realloc(ptr %t1016, i64 %t1015) store ptr %t1017, ptr %t1005 store i32 %t1011, ptr %t1004 br label %put333 put333: %t1018 = load ptr, ptr %t1005 %t1019 = getelementptr inbounds ptr, ptr %t1018, i32 %t1006 store ptr @.str9120, ptr %t1019 %t1020 = add i32 %t1006, 1 store i32 %t1020, ptr %t1003 br label %ifend331 ifend331: %t1021 = load ptr, ptr %t1 %t1022 = call i32 @lp_str_eq(ptr %t1021, ptr @.str9121) %t1023 = icmp ne i32 %t1022, 0 br i1 %t1023, label %then334, label %ifend336 then334: %t1024 = load ptr, ptr %t2 %t1025 = getelementptr inbounds %Cmp_Node, ptr %t1024, i32 0, i32 7 %t1026 = load ptr, ptr %t1025 %t1027 = getelementptr inbounds %LSlice, ptr %t1026, i32 0, i32 1 %t1028 = load i32, ptr %t1027 %t1029 = icmp eq i32 %t1028, 2 %t1030 = zext i1 %t1029 to i32 %t1031 = icmp ne i32 %t1030, 0 br i1 %t1031, label %then337, label %else338 then337: store ptr @.str9122, ptr %t490 %t1032 = load ptr, ptr %t497 %t1033 = getelementptr inbounds %LSlice, ptr %t1032, i32 0, i32 1 %t1034 = getelementptr inbounds %LSlice, ptr %t1032, i32 0, i32 2 %t1035 = getelementptr inbounds %LSlice, ptr %t1032, i32 0, i32 0 %t1036 = load i32, ptr %t1033 %t1037 = load i32, ptr %t1034 %t1038 = icmp sge i32 %t1036, %t1037 br i1 %t1038, label %grow340, label %put341 grow340: %t1039 = mul i32 %t1037, 2 %t1040 = icmp eq i32 %t1037, 0 %t1041 = select i1 %t1040, i32 8, i32 %t1039 %t1042 = getelementptr ptr, ptr null, i32 1 %t1043 = ptrtoint ptr %t1042 to i64 %t1044 = zext i32 %t1041 to i64 %t1045 = mul i64 %t1044, %t1043 %t1046 = load ptr, ptr %t1035 %t1047 = call ptr @realloc(ptr %t1046, i64 %t1045) store ptr %t1047, ptr %t1035 store i32 %t1041, ptr %t1034 br label %put341 put341: %t1048 = load ptr, ptr %t1035 %t1049 = getelementptr inbounds ptr, ptr %t1048, i32 %t1036 store ptr @.str9123, ptr %t1049 %t1050 = add i32 %t1036, 1 store i32 %t1050, ptr %t1033 %t1051 = load ptr, ptr %t497 %t1052 = getelementptr inbounds %LSlice, ptr %t1051, i32 0, i32 1 %t1053 = getelementptr inbounds %LSlice, ptr %t1051, i32 0, i32 2 %t1054 = getelementptr inbounds %LSlice, ptr %t1051, i32 0, i32 0 %t1055 = load i32, ptr %t1052 %t1056 = load i32, ptr %t1053 %t1057 = icmp sge i32 %t1055, %t1056 br i1 %t1057, label %grow342, label %put343 grow342: %t1058 = mul i32 %t1056, 2 %t1059 = icmp eq i32 %t1056, 0 %t1060 = select i1 %t1059, i32 8, i32 %t1058 %t1061 = getelementptr ptr, ptr null, i32 1 %t1062 = ptrtoint ptr %t1061 to i64 %t1063 = zext i32 %t1060 to i64 %t1064 = mul i64 %t1063, %t1062 %t1065 = load ptr, ptr %t1054 %t1066 = call ptr @realloc(ptr %t1065, i64 %t1064) store ptr %t1066, ptr %t1054 store i32 %t1060, ptr %t1053 br label %put343 put343: %t1067 = load ptr, ptr %t1054 %t1068 = getelementptr inbounds ptr, ptr %t1067, i32 %t1055 store ptr @.str9124, ptr %t1068 %t1069 = add i32 %t1055, 1 store i32 %t1069, ptr %t1052 br label %ifend339 else338: store ptr @.str9125, ptr %t490 %t1070 = load ptr, ptr %t497 %t1071 = getelementptr inbounds %LSlice, ptr %t1070, i32 0, i32 1 %t1072 = getelementptr inbounds %LSlice, ptr %t1070, i32 0, i32 2 %t1073 = getelementptr inbounds %LSlice, ptr %t1070, i32 0, i32 0 %t1074 = load i32, ptr %t1071 %t1075 = load i32, ptr %t1072 %t1076 = icmp sge i32 %t1074, %t1075 br i1 %t1076, label %grow344, label %put345 grow344: %t1077 = mul i32 %t1075, 2 %t1078 = icmp eq i32 %t1075, 0 %t1079 = select i1 %t1078, i32 8, i32 %t1077 %t1080 = getelementptr ptr, ptr null, i32 1 %t1081 = ptrtoint ptr %t1080 to i64 %t1082 = zext i32 %t1079 to i64 %t1083 = mul i64 %t1082, %t1081 %t1084 = load ptr, ptr %t1073 %t1085 = call ptr @realloc(ptr %t1084, i64 %t1083) store ptr %t1085, ptr %t1073 store i32 %t1079, ptr %t1072 br label %put345 put345: %t1086 = load ptr, ptr %t1073 %t1087 = getelementptr inbounds ptr, ptr %t1086, i32 %t1074 store ptr @.str9126, ptr %t1087 %t1088 = add i32 %t1074, 1 store i32 %t1088, ptr %t1071 %t1089 = load ptr, ptr %t497 %t1090 = getelementptr inbounds %LSlice, ptr %t1089, i32 0, i32 1 %t1091 = getelementptr inbounds %LSlice, ptr %t1089, i32 0, i32 2 %t1092 = getelementptr inbounds %LSlice, ptr %t1089, i32 0, i32 0 %t1093 = load i32, ptr %t1090 %t1094 = load i32, ptr %t1091 %t1095 = icmp sge i32 %t1093, %t1094 br i1 %t1095, label %grow346, label %put347 grow346: %t1096 = mul i32 %t1094, 2 %t1097 = icmp eq i32 %t1094, 0 %t1098 = select i1 %t1097, i32 8, i32 %t1096 %t1099 = getelementptr ptr, ptr null, i32 1 %t1100 = ptrtoint ptr %t1099 to i64 %t1101 = zext i32 %t1098 to i64 %t1102 = mul i64 %t1101, %t1100 %t1103 = load ptr, ptr %t1092 %t1104 = call ptr @realloc(ptr %t1103, i64 %t1102) store ptr %t1104, ptr %t1092 store i32 %t1098, ptr %t1091 br label %put347 put347: %t1105 = load ptr, ptr %t1092 %t1106 = getelementptr inbounds ptr, ptr %t1105, i32 %t1093 store ptr @.str9127, ptr %t1106 %t1107 = add i32 %t1093, 1 store i32 %t1107, ptr %t1090 %t1108 = load ptr, ptr %t497 %t1109 = getelementptr inbounds %LSlice, ptr %t1108, i32 0, i32 1 %t1110 = getelementptr inbounds %LSlice, ptr %t1108, i32 0, i32 2 %t1111 = getelementptr inbounds %LSlice, ptr %t1108, i32 0, i32 0 %t1112 = load i32, ptr %t1109 %t1113 = load i32, ptr %t1110 %t1114 = icmp sge i32 %t1112, %t1113 br i1 %t1114, label %grow348, label %put349 grow348: %t1115 = mul i32 %t1113, 2 %t1116 = icmp eq i32 %t1113, 0 %t1117 = select i1 %t1116, i32 8, i32 %t1115 %t1118 = getelementptr ptr, ptr null, i32 1 %t1119 = ptrtoint ptr %t1118 to i64 %t1120 = zext i32 %t1117 to i64 %t1121 = mul i64 %t1120, %t1119 %t1122 = load ptr, ptr %t1111 %t1123 = call ptr @realloc(ptr %t1122, i64 %t1121) store ptr %t1123, ptr %t1111 store i32 %t1117, ptr %t1110 br label %put349 put349: %t1124 = load ptr, ptr %t1111 %t1125 = getelementptr inbounds ptr, ptr %t1124, i32 %t1112 store ptr @.str9128, ptr %t1125 %t1126 = add i32 %t1112, 1 store i32 %t1126, ptr %t1109 %t1127 = load ptr, ptr %t497 %t1128 = getelementptr inbounds %LSlice, ptr %t1127, i32 0, i32 1 %t1129 = getelementptr inbounds %LSlice, ptr %t1127, i32 0, i32 2 %t1130 = getelementptr inbounds %LSlice, ptr %t1127, i32 0, i32 0 %t1131 = load i32, ptr %t1128 %t1132 = load i32, ptr %t1129 %t1133 = icmp sge i32 %t1131, %t1132 br i1 %t1133, label %grow350, label %put351 grow350: %t1134 = mul i32 %t1132, 2 %t1135 = icmp eq i32 %t1132, 0 %t1136 = select i1 %t1135, i32 8, i32 %t1134 %t1137 = getelementptr ptr, ptr null, i32 1 %t1138 = ptrtoint ptr %t1137 to i64 %t1139 = zext i32 %t1136 to i64 %t1140 = mul i64 %t1139, %t1138 %t1141 = load ptr, ptr %t1130 %t1142 = call ptr @realloc(ptr %t1141, i64 %t1140) store ptr %t1142, ptr %t1130 store i32 %t1136, ptr %t1129 br label %put351 put351: %t1143 = load ptr, ptr %t1130 %t1144 = getelementptr inbounds ptr, ptr %t1143, i32 %t1131 store ptr @.str9129, ptr %t1144 %t1145 = add i32 %t1131, 1 store i32 %t1145, ptr %t1128 br label %ifend339 ifend339: br label %ifend336 ifend336: br label %ifend310 ifend310: %t1147 = load ptr, ptr %t0 %t1148 = call i32 @lp_str_eq(ptr %t1147, ptr @.str9130) %t1149 = icmp ne i32 %t1148, 0 %t1150 = zext i1 %t1149 to i32 store i32 %t1150, ptr %t1146 br i1 %t1149, label %sc352, label %scend353 sc352: %t1151 = load ptr, ptr %t490 %t1152 = icmp eq ptr %t1151, null %t1153 = zext i1 %t1152 to i32 %t1154 = icmp ne i32 %t1153, 0 %t1155 = zext i1 %t1154 to i32 store i32 %t1155, ptr %t1146 br label %scend353 scend353: %t1156 = load i32, ptr %t1146 %t1157 = icmp ne i32 %t1156, 0 br i1 %t1157, label %then354, label %ifend356 then354: %t1158 = load ptr, ptr %t1 %t1159 = call ptr @lp_str_concat(ptr @.str9131, ptr %t1158) store ptr %t1159, ptr %t490 %t1160 = load ptr, ptr %t490 %t1161 = call ptr @fn_find_fn(ptr %t1160) store ptr %t1161, ptr %t1162 %t1163 = load ptr, ptr %t1162 %t1164 = icmp eq ptr %t1163, null %t1165 = zext i1 %t1164 to i32 %t1166 = icmp ne i32 %t1165, 0 br i1 %t1166, label %then357, label %ifend359 then357: %t1167 = load ptr, ptr %t490 %t1168 = call ptr @fn_find_extern(ptr %t1167) store ptr %t1168, ptr %t1162 br label %ifend359 ifend359: %t1169 = load ptr, ptr %t1162 %t1170 = icmp ne ptr %t1169, null %t1171 = zext i1 %t1170 to i32 %t1172 = icmp ne i32 %t1171, 0 br i1 %t1172, label %then360, label %ifend362 then360: %t1173 = load ptr, ptr %t1162 %t1174 = call ptr @fn_param_labels(ptr %t1173) store ptr %t1174, ptr %t1175 store i32 0, ptr %t1176 br label %wcond363 wcond363: %t1177 = load i32, ptr %t1176 %t1178 = load ptr, ptr %t1175 %t1179 = getelementptr inbounds %LSlice, ptr %t1178, i32 0, i32 1 %t1180 = load i32, ptr %t1179 %t1181 = icmp slt i32 %t1177, %t1180 %t1182 = zext i1 %t1181 to i32 %t1183 = icmp ne i32 %t1182, 0 br i1 %t1183, label %wbody364, label %wend365 wbody364: %t1184 = load ptr, ptr %t497 %t1185 = load ptr, ptr %t1175 %t1186 = load i32, ptr %t1176 %t1187 = getelementptr inbounds %LSlice, ptr %t1185, i32 0, i32 0 %t1188 = load ptr, ptr %t1187 %t1189 = getelementptr inbounds %LSlice, ptr %t1185, i32 0, i32 1 %t1190 = load i32, ptr %t1189 %t1191 = icmp ult i32 %t1186, %t1190 br i1 %t1191, label %ixok366, label %ixbad367 ixbad367: %t1192 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1192, ptr @.fmt_bounds, ptr @.str9132, i32 %t1186, i32 %t1190) call void @exit(i32 1) unreachable ixok366: %t1193 = getelementptr inbounds ptr, ptr %t1188, i32 %t1186 %t1194 = load ptr, ptr %t1193 %t1195 = getelementptr inbounds %LSlice, ptr %t1184, i32 0, i32 1 %t1196 = getelementptr inbounds %LSlice, ptr %t1184, i32 0, i32 2 %t1197 = getelementptr inbounds %LSlice, ptr %t1184, i32 0, i32 0 %t1198 = load i32, ptr %t1195 %t1199 = load i32, ptr %t1196 %t1200 = icmp sge i32 %t1198, %t1199 br i1 %t1200, label %grow368, label %put369 grow368: %t1201 = mul i32 %t1199, 2 %t1202 = icmp eq i32 %t1199, 0 %t1203 = select i1 %t1202, i32 8, i32 %t1201 %t1204 = getelementptr ptr, ptr null, i32 1 %t1205 = ptrtoint ptr %t1204 to i64 %t1206 = zext i32 %t1203 to i64 %t1207 = mul i64 %t1206, %t1205 %t1208 = load ptr, ptr %t1197 %t1209 = call ptr @realloc(ptr %t1208, i64 %t1207) store ptr %t1209, ptr %t1197 store i32 %t1203, ptr %t1196 br label %put369 put369: %t1210 = load ptr, ptr %t1197 %t1211 = getelementptr inbounds ptr, ptr %t1210, i32 %t1198 store ptr %t1194, ptr %t1211 %t1212 = add i32 %t1198, 1 store i32 %t1212, ptr %t1195 %t1213 = load i32, ptr %t1176 %t1214 = add i32 %t1213, 1 store i32 %t1214, ptr %t1176 br label %wcond363 wend365: br label %ifend362 ifend362: br label %ifend356 ifend356: %t1216 = load ptr, ptr %t0 %t1217 = call i32 @lp_str_eq(ptr %t1216, ptr @.str9133) %t1218 = icmp ne i32 %t1217, 0 %t1219 = zext i1 %t1218 to i32 store i32 %t1219, ptr %t1215 br i1 %t1218, label %sc370, label %scend371 sc370: %t1220 = load ptr, ptr %t490 %t1221 = icmp eq ptr %t1220, null %t1222 = zext i1 %t1221 to i32 %t1223 = icmp ne i32 %t1222, 0 %t1224 = zext i1 %t1223 to i32 store i32 %t1224, ptr %t1215 br label %scend371 scend371: %t1225 = load i32, ptr %t1215 %t1226 = icmp ne i32 %t1225, 0 br i1 %t1226, label %then372, label %ifend374 then372: %t1227 = load ptr, ptr %t1 %t1228 = call ptr @lp_str_concat(ptr @.str9134, ptr %t1227) store ptr %t1228, ptr %t490 %t1229 = load ptr, ptr %t490 %t1230 = call ptr @fn_find_fn(ptr %t1229) store ptr %t1230, ptr %t1231 %t1232 = load ptr, ptr %t1231 %t1233 = icmp eq ptr %t1232, null %t1234 = zext i1 %t1233 to i32 %t1235 = icmp ne i32 %t1234, 0 br i1 %t1235, label %then375, label %ifend377 then375: %t1236 = load ptr, ptr %t490 %t1237 = call ptr @fn_find_extern(ptr %t1236) store ptr %t1237, ptr %t1231 br label %ifend377 ifend377: %t1238 = load ptr, ptr %t1231 %t1239 = icmp ne ptr %t1238, null %t1240 = zext i1 %t1239 to i32 %t1241 = icmp ne i32 %t1240, 0 br i1 %t1241, label %then378, label %ifend380 then378: %t1242 = load ptr, ptr %t1231 %t1243 = call ptr @fn_param_labels(ptr %t1242) store ptr %t1243, ptr %t1244 store i32 0, ptr %t1245 br label %wcond381 wcond381: %t1246 = load i32, ptr %t1245 %t1247 = load ptr, ptr %t1244 %t1248 = getelementptr inbounds %LSlice, ptr %t1247, i32 0, i32 1 %t1249 = load i32, ptr %t1248 %t1250 = icmp slt i32 %t1246, %t1249 %t1251 = zext i1 %t1250 to i32 %t1252 = icmp ne i32 %t1251, 0 br i1 %t1252, label %wbody382, label %wend383 wbody382: %t1253 = load ptr, ptr %t497 %t1254 = load ptr, ptr %t1244 %t1255 = load i32, ptr %t1245 %t1256 = getelementptr inbounds %LSlice, ptr %t1254, i32 0, i32 0 %t1257 = load ptr, ptr %t1256 %t1258 = getelementptr inbounds %LSlice, ptr %t1254, i32 0, i32 1 %t1259 = load i32, ptr %t1258 %t1260 = icmp ult i32 %t1255, %t1259 br i1 %t1260, label %ixok384, label %ixbad385 ixbad385: %t1261 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1261, ptr @.fmt_bounds, ptr @.str9135, i32 %t1255, i32 %t1259) call void @exit(i32 1) unreachable ixok384: %t1262 = getelementptr inbounds ptr, ptr %t1257, i32 %t1255 %t1263 = load ptr, ptr %t1262 %t1264 = getelementptr inbounds %LSlice, ptr %t1253, i32 0, i32 1 %t1265 = getelementptr inbounds %LSlice, ptr %t1253, i32 0, i32 2 %t1266 = getelementptr inbounds %LSlice, ptr %t1253, i32 0, i32 0 %t1267 = load i32, ptr %t1264 %t1268 = load i32, ptr %t1265 %t1269 = icmp sge i32 %t1267, %t1268 br i1 %t1269, label %grow386, label %put387 grow386: %t1270 = mul i32 %t1268, 2 %t1271 = icmp eq i32 %t1268, 0 %t1272 = select i1 %t1271, i32 8, i32 %t1270 %t1273 = getelementptr ptr, ptr null, i32 1 %t1274 = ptrtoint ptr %t1273 to i64 %t1275 = zext i32 %t1272 to i64 %t1276 = mul i64 %t1275, %t1274 %t1277 = load ptr, ptr %t1266 %t1278 = call ptr @realloc(ptr %t1277, i64 %t1276) store ptr %t1278, ptr %t1266 store i32 %t1272, ptr %t1265 br label %put387 put387: %t1279 = load ptr, ptr %t1266 %t1280 = getelementptr inbounds ptr, ptr %t1279, i32 %t1267 store ptr %t1263, ptr %t1280 %t1281 = add i32 %t1267, 1 store i32 %t1281, ptr %t1264 %t1282 = load i32, ptr %t1245 %t1283 = add i32 %t1282, 1 store i32 %t1283, ptr %t1245 br label %wcond381 wend383: br label %ifend380 ifend380: br label %ifend374 ifend374: %t1285 = load ptr, ptr %t490 %t1286 = icmp eq ptr %t1285, null %t1287 = zext i1 %t1286 to i32 %t1288 = icmp ne i32 %t1287, 0 %t1289 = zext i1 %t1288 to i32 store i32 %t1289, ptr %t1284 br i1 %t1288, label %sc388, label %scend389 sc388: %t1290 = load ptr, ptr %t0 %t1291 = call i32 @fn_is_registered_namespace(ptr %t1290) %t1292 = icmp ne i32 %t1291, 0 %t1293 = zext i1 %t1292 to i32 store i32 %t1293, ptr %t1284 br label %scend389 scend389: %t1294 = load i32, ptr %t1284 %t1295 = icmp ne i32 %t1294, 0 br i1 %t1295, label %then390, label %ifend392 then390: %t1296 = load ptr, ptr %t0 %t1297 = call ptr @fn_ns_lower(ptr %t1296) %t1298 = call ptr @lp_str_concat(ptr %t1297, ptr @.str9136) %t1299 = load ptr, ptr %t1 %t1300 = call ptr @lp_str_concat(ptr %t1298, ptr %t1299) store ptr %t1300, ptr %t490 %t1302 = load ptr, ptr %t0 %t1303 = call i32 @fn_is_ns_block(ptr %t1302) %t1304 = icmp ne i32 %t1303, 0 %t1305 = zext i1 %t1304 to i32 store i32 %t1305, ptr %t1301 br i1 %t1304, label %sc393, label %scend394 sc393: %t1306 = load ptr, ptr %t490 %t1307 = call i32 @fn_ns_export_has(ptr %t1306) %t1308 = icmp eq i32 %t1307, 0 %t1309 = zext i1 %t1308 to i32 %t1310 = icmp ne i32 %t1309, 0 %t1311 = zext i1 %t1310 to i32 store i32 %t1311, ptr %t1301 br label %scend394 scend394: %t1312 = load i32, ptr %t1301 %t1313 = icmp ne i32 %t1312, 0 br i1 %t1313, label %then395, label %ifend397 then395: %t1314 = load ptr, ptr %t0 %t1315 = call ptr @lp_str_concat(ptr %t1314, ptr @.str9137) %t1316 = load ptr, ptr %t1 %t1317 = call ptr @lp_str_concat(ptr %t1315, ptr %t1316) %t1318 = call ptr @lp_str_concat(ptr %t1317, ptr @.str9138) %t1319 = load ptr, ptr %t0 %t1320 = call ptr @lp_str_concat(ptr %t1318, ptr %t1319) call void @fn_perr(ptr %t1320) br label %ifend397 ifend397: %t1321 = load ptr, ptr %t490 %t1322 = call ptr @fn_find_fn(ptr %t1321) store ptr %t1322, ptr %t1323 %t1324 = load ptr, ptr %t1323 %t1325 = icmp ne ptr %t1324, null %t1326 = zext i1 %t1325 to i32 %t1327 = icmp ne i32 %t1326, 0 br i1 %t1327, label %then398, label %ifend400 then398: %t1328 = load ptr, ptr %t1323 %t1329 = call ptr @fn_param_labels(ptr %t1328) store ptr %t1329, ptr %t1330 store i32 0, ptr %t1331 br label %wcond401 wcond401: %t1332 = load i32, ptr %t1331 %t1333 = load ptr, ptr %t1330 %t1334 = getelementptr inbounds %LSlice, ptr %t1333, i32 0, i32 1 %t1335 = load i32, ptr %t1334 %t1336 = icmp slt i32 %t1332, %t1335 %t1337 = zext i1 %t1336 to i32 %t1338 = icmp ne i32 %t1337, 0 br i1 %t1338, label %wbody402, label %wend403 wbody402: %t1339 = load ptr, ptr %t497 %t1340 = load ptr, ptr %t1330 %t1341 = load i32, ptr %t1331 %t1342 = getelementptr inbounds %LSlice, ptr %t1340, i32 0, i32 0 %t1343 = load ptr, ptr %t1342 %t1344 = getelementptr inbounds %LSlice, ptr %t1340, i32 0, i32 1 %t1345 = load i32, ptr %t1344 %t1346 = icmp ult i32 %t1341, %t1345 br i1 %t1346, label %ixok404, label %ixbad405 ixbad405: %t1347 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1347, ptr @.fmt_bounds, ptr @.str9139, i32 %t1341, i32 %t1345) call void @exit(i32 1) unreachable ixok404: %t1348 = getelementptr inbounds ptr, ptr %t1343, i32 %t1341 %t1349 = load ptr, ptr %t1348 %t1350 = getelementptr inbounds %LSlice, ptr %t1339, i32 0, i32 1 %t1351 = getelementptr inbounds %LSlice, ptr %t1339, i32 0, i32 2 %t1352 = getelementptr inbounds %LSlice, ptr %t1339, i32 0, i32 0 %t1353 = load i32, ptr %t1350 %t1354 = load i32, ptr %t1351 %t1355 = icmp sge i32 %t1353, %t1354 br i1 %t1355, label %grow406, label %put407 grow406: %t1356 = mul i32 %t1354, 2 %t1357 = icmp eq i32 %t1354, 0 %t1358 = select i1 %t1357, i32 8, i32 %t1356 %t1359 = getelementptr ptr, ptr null, i32 1 %t1360 = ptrtoint ptr %t1359 to i64 %t1361 = zext i32 %t1358 to i64 %t1362 = mul i64 %t1361, %t1360 %t1363 = load ptr, ptr %t1352 %t1364 = call ptr @realloc(ptr %t1363, i64 %t1362) store ptr %t1364, ptr %t1352 store i32 %t1358, ptr %t1351 br label %put407 put407: %t1365 = load ptr, ptr %t1352 %t1366 = getelementptr inbounds ptr, ptr %t1365, i32 %t1353 store ptr %t1349, ptr %t1366 %t1367 = add i32 %t1353, 1 store i32 %t1367, ptr %t1350 %t1368 = load i32, ptr %t1331 %t1369 = add i32 %t1368, 1 store i32 %t1369, ptr %t1331 br label %wcond401 wend403: br label %ifend400 ifend400: br label %ifend392 ifend392: %t1370 = load ptr, ptr %t490 %t1371 = icmp eq ptr %t1370, null %t1372 = zext i1 %t1371 to i32 %t1373 = icmp ne i32 %t1372, 0 br i1 %t1373, label %then408, label %ifend410 then408: %t1374 = load ptr, ptr %t0 %t1375 = call ptr @lp_str_concat(ptr @.str9140, ptr %t1374) %t1376 = call ptr @lp_str_concat(ptr %t1375, ptr @.str9141) %t1377 = load ptr, ptr %t1 %t1378 = call ptr @lp_str_concat(ptr %t1376, ptr %t1377) call void @fn_perr(ptr %t1378) br label %ifend410 ifend410: %t1379 = load ptr, ptr %t2 %t1380 = load ptr, ptr %t497 call void @fn_reorder_named(ptr %t1379, ptr %t1380) %t1381 = call ptr @fn_node(i32 33) store ptr %t1381, ptr %t1382 %t1383 = load ptr, ptr %t1382 %t1384 = getelementptr inbounds %Cmp_Node, ptr %t1383, i32 0, i32 1 %t1385 = load ptr, ptr %t490 store ptr %t1385, ptr %t1384 %t1386 = load ptr, ptr %t2 %t1387 = getelementptr inbounds %Cmp_Node, ptr %t1386, i32 0, i32 4 %t1388 = load ptr, ptr %t1382 store ptr %t1388, ptr %t1387 %t1389 = load ptr, ptr %t2 %t1390 = call ptr @fn_emit_call(ptr %t1389) store ptr %t1390, ptr %retval br label %ret ret: %t1391 = load ptr, ptr %retval ret ptr %t1391 } define ptr @fn_emit_variant_new(ptr %arg_en, i32 %arg_ord, ptr %arg_args) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca ptr %t15 = alloca ptr %t21 = alloca i32 %t49 = alloca ptr %t53 = alloca i32 %t73 = alloca ptr %t85 = alloca ptr %t89 = alloca ptr %t91 = alloca ptr store ptr %arg_en, ptr %t0 store i32 %arg_ord, ptr %t1 store ptr %arg_args, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 %t5 = load ptr, ptr %t4 %t6 = load i32, ptr %t1 %t7 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp ult i32 %t6, %t10 br i1 %t11, label %ixok0, label %ixbad1 ixbad1: %t12 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t12, ptr @.fmt_bounds, ptr @.str9142, i32 %t6, i32 %t10) call void @exit(i32 1) unreachable ixok0: %t13 = getelementptr inbounds ptr, ptr %t8, i32 %t6 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = load i32, ptr %t19 store i32 %t20, ptr %t21 %t22 = load ptr, ptr %t2 %t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = load i32, ptr %t21 %t26 = icmp ne i32 %t24, %t25 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then2, label %ifend4 then2: %t29 = load ptr, ptr %t15 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = call ptr @lp_str_concat(ptr @.str9143, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str9144) %t34 = load i32, ptr %t21 %t35 = call ptr @fn_itoa(i32 %t34) %t36 = call ptr @lp_str_concat(ptr %t33, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str9145) %t38 = load ptr, ptr %t2 %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = call ptr @fn_itoa(i32 %t40) %t42 = call ptr @lp_str_concat(ptr %t37, ptr %t41) call void @fn_perr(ptr %t42) br label %ifend4 ifend4: %t43 = load ptr, ptr %t0 %t44 = call i32 @fn_enum_box_size(ptr %t43) %t45 = call ptr @fn_itoa(i32 %t44) %t46 = call ptr @lp_str_concat(ptr @.str9146, ptr %t45) %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str9147) %t48 = call ptr @fn_emit_bind(ptr %t47) store ptr %t48, ptr %t49 call void @fn_emit(ptr @.str9148) %t50 = load i32, ptr %t1 %t51 = call ptr @fn_itoa(i32 %t50) call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str9149) %t52 = load ptr, ptr %t49 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str9150) store i32 0, ptr %t53 br label %wcond5 wcond5: %t54 = load i32, ptr %t53 %t55 = load i32, ptr %t21 %t56 = icmp slt i32 %t54, %t55 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %wbody6, label %wend7 wbody6: %t59 = load ptr, ptr %t15 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 7 %t61 = load ptr, ptr %t60 %t62 = load i32, ptr %t53 %t63 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t66 = load i32, ptr %t65 %t67 = icmp ult i32 %t62, %t66 br i1 %t67, label %ixok8, label %ixbad9 ixbad9: %t68 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t68, ptr @.fmt_bounds, ptr @.str9151, i32 %t62, i32 %t66) call void @exit(i32 1) unreachable ixok8: %t69 = getelementptr inbounds ptr, ptr %t64, i32 %t62 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 3 %t72 = load ptr, ptr %t71 store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t2 %t75 = load i32, ptr %t53 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t79 = load i32, ptr %t78 %t80 = icmp ult i32 %t75, %t79 br i1 %t80, label %ixok10, label %ixbad11 ixbad11: %t81 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t81, ptr @.fmt_bounds, ptr @.str9152, i32 %t75, i32 %t79) call void @exit(i32 1) unreachable ixok10: %t82 = getelementptr inbounds ptr, ptr %t77, i32 %t75 %t83 = load ptr, ptr %t82 %t84 = call ptr @fn_emit_expr(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = load ptr, ptr %t73 %t88 = call ptr @fn_coerce_code(ptr %t86, ptr %t87) store ptr %t88, ptr %t89 %t90 = call ptr @fn_nreg() store ptr %t90, ptr %t91 call void @fn_emit(ptr @.str9153) %t92 = load ptr, ptr %t91 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str9154) %t93 = load ptr, ptr %t49 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str9155) %t94 = load i32, ptr %t53 %t95 = add i32 %t94, 1 %t96 = mul i32 8, %t95 %t97 = call ptr @fn_itoa(i32 %t96) call void @fn_emit(ptr %t97) call void @fn_emit(ptr @.str9156) call void @fn_emit(ptr @.str9157) %t98 = load ptr, ptr %t73 %t99 = call ptr @fn_llty(ptr %t98) call void @fn_emit(ptr %t99) call void @fn_emit(ptr @.str9158) %t100 = load ptr, ptr %t89 call void @fn_emit(ptr %t100) call void @fn_emit(ptr @.str9159) %t101 = load ptr, ptr %t91 call void @fn_emit(ptr %t101) call void @fn_emit(ptr @.str9160) %t102 = load i32, ptr %t53 %t103 = add i32 %t102, 1 store i32 %t103, ptr %t53 br label %wcond5 wend7: %t104 = load ptr, ptr %t49 %t105 = load ptr, ptr %t0 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 1 %t107 = load ptr, ptr %t106 %t108 = call ptr @fn_val(ptr %t104, ptr %t107) store ptr %t108, ptr %retval br label %ret ret: %t109 = load ptr, ptr %retval ret ptr %t109 } define ptr @fn_emit_call(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr %t48 = alloca ptr %t80 = alloca i32 %t119 = alloca ptr %t142 = alloca ptr %t155 = alloca ptr %t182 = alloca ptr %t195 = alloca ptr %t223 = alloca ptr %t236 = alloca ptr %t249 = alloca ptr %t275 = alloca ptr %t298 = alloca ptr %t321 = alloca ptr %t334 = alloca ptr %t357 = alloca ptr %t369 = alloca ptr %t374 = alloca ptr %t412 = alloca ptr %t432 = alloca ptr %t437 = alloca i32 %t461 = alloca ptr %t474 = alloca ptr %t487 = alloca ptr %t498 = alloca i32 %t522 = alloca ptr %t535 = alloca ptr %t573 = alloca ptr %t623 = alloca ptr %t674 = alloca ptr %t681 = alloca ptr %t703 = alloca i32 %t729 = alloca i32 %t755 = alloca i32 %t801 = alloca ptr %t824 = alloca ptr %t849 = alloca i32 %t850 = alloca i32 %t851 = alloca i32 %t897 = alloca i32 %t898 = alloca i32 %t935 = alloca ptr %t972 = alloca i32 %t973 = alloca i32 %t1010 = alloca ptr %t1021 = alloca i32 %t1047 = alloca i32 %t1073 = alloca i32 %t1099 = alloca i32 %t1125 = alloca i32 %t1126 = alloca i32 %t1146 = alloca ptr %t1179 = alloca ptr %t1202 = alloca ptr %t1209 = alloca ptr %t1214 = alloca ptr %t1233 = alloca ptr %t1246 = alloca ptr %t1247 = alloca i32 %t1276 = alloca ptr %t1281 = alloca ptr %t1306 = alloca ptr %t1319 = alloca ptr %t1332 = alloca ptr %t1333 = alloca i32 %t1334 = alloca i32 %t1373 = alloca ptr %t1377 = alloca ptr %t1382 = alloca ptr %t1392 = alloca ptr %t1401 = alloca ptr %t1406 = alloca ptr %t1431 = alloca ptr %t1441 = alloca ptr %t1444 = alloca ptr %t1472 = alloca ptr %t1479 = alloca ptr %t1481 = alloca ptr %t1483 = alloca ptr %t1507 = alloca ptr %t1517 = alloca ptr %t1520 = alloca ptr %t1535 = alloca i32 %t1559 = alloca ptr %t1561 = alloca ptr %t1566 = alloca ptr %t1574 = alloca ptr %t1586 = alloca ptr %t1592 = alloca i32 %t1616 = alloca ptr %t1618 = alloca ptr %t1623 = alloca ptr %t1631 = alloca ptr %t1639 = alloca ptr %t1650 = alloca i32 %t1674 = alloca ptr %t1681 = alloca ptr %t1685 = alloca ptr %t1690 = alloca ptr %t1696 = alloca i32 %t1720 = alloca ptr %t1727 = alloca ptr %t1731 = alloca ptr %t1736 = alloca ptr %t1742 = alloca i32 %t1766 = alloca ptr %t1768 = alloca ptr %t1773 = alloca ptr %t1781 = alloca ptr %t1791 = alloca i32 %t1804 = alloca ptr %t1809 = alloca ptr %t1817 = alloca ptr %t1823 = alloca i32 %t1847 = alloca ptr %t1854 = alloca ptr %t1858 = alloca ptr %t1863 = alloca ptr %t1869 = alloca i32 %t1893 = alloca ptr %t1900 = alloca ptr %t1904 = alloca ptr %t1909 = alloca ptr %t1915 = alloca i32 %t1939 = alloca ptr %t1952 = alloca ptr %t1959 = alloca ptr %t1963 = alloca ptr %t1970 = alloca ptr %t1974 = alloca ptr %t1979 = alloca ptr %t2006 = alloca ptr %t2029 = alloca ptr %t2042 = alloca ptr %t2070 = alloca ptr %t2083 = alloca ptr %t2096 = alloca ptr %t2113 = alloca ptr %t2134 = alloca ptr %t2147 = alloca ptr %t2160 = alloca ptr %t2173 = alloca ptr %t2180 = alloca ptr %t2207 = alloca ptr %t2220 = alloca ptr %t2253 = alloca ptr %t2276 = alloca ptr %t2299 = alloca ptr %t2312 = alloca ptr %t2340 = alloca ptr %t2353 = alloca ptr %t2381 = alloca ptr %t2394 = alloca ptr %t2417 = alloca ptr %t2430 = alloca ptr %t2453 = alloca ptr %t2481 = alloca ptr %t2504 = alloca ptr %t2527 = alloca ptr %t2540 = alloca ptr %t2568 = alloca ptr %t2581 = alloca ptr %t2614 = alloca ptr %t2624 = alloca ptr %t2631 = alloca ptr %t2638 = alloca ptr %t2639 = alloca i32 %t2662 = alloca ptr %t2678 = alloca ptr %t2747 = alloca ptr %t2748 = alloca ptr %t2803 = alloca ptr %t2816 = alloca ptr %t2818 = alloca ptr %t2825 = alloca ptr %t2844 = alloca ptr %t2851 = alloca ptr %t2858 = alloca ptr %t2859 = alloca i32 %t2882 = alloca ptr %t2886 = alloca ptr %t2952 = alloca ptr %t2953 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_callee_value(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load ptr, ptr %t3 %t9 = load ptr, ptr %t0 %t10 = call ptr @fn_emit_indirect_call(ptr %t8, ptr %t9) store ptr %t10, ptr %retval br label %ret ifend2: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0 %t15 = load i32, ptr %t14 %t16 = icmp eq i32 %t15, 35 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load ptr, ptr %t0 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 4 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 4 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 33 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 4 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 4 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 4 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 1 %t40 = load ptr, ptr %t39 %t41 = load ptr, ptr %t0 %t42 = call ptr @fn_emit_ns_call(ptr %t35, ptr %t40, ptr %t41) store ptr %t42, ptr %retval br label %ret ifend8: call void @fn_perr(ptr @.str9161) br label %ifend5 ifend5: %t43 = load ptr, ptr %t0 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 4 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t48 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str9162) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then9, label %ifend11 then9: %t52 = load i32, ptr @g_nself %t53 = icmp eq i32 %t52, 0 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then12, label %ifend14 then12: %t56 = call ptr @fn_val(ptr @.str9163, ptr @.str9164) store ptr %t56, ptr %retval br label %ret ifend14: %t57 = load ptr, ptr @g_self_stk %t58 = load i32, ptr @g_nself %t59 = sub i32 %t58, 1 %t60 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 %t59, %t63 br i1 %t64, label %ixok15, label %ixbad16 ixbad16: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str9166, i32 %t59, i32 %t63) call void @exit(i32 1) unreachable ixok15: %t66 = getelementptr inbounds ptr, ptr %t61, i32 %t59 %t67 = load ptr, ptr %t66 %t68 = call ptr @lp_str_concat(ptr @.str9165, ptr %t67) %t69 = call ptr @fn_emit_bind(ptr %t68) %t70 = call ptr @fn_val(ptr %t69, ptr @.str9167) store ptr %t70, ptr %retval br label %ret ifend11: %t71 = load ptr, ptr %t48 %t72 = call i32 @lp_str_eq(ptr %t71, ptr @.str9168) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then17, label %ifend19 then17: %t74 = call ptr @fn_emit_bind(ptr @.str9169) %t75 = call ptr @fn_val(ptr %t74, ptr @.str9170) store ptr %t75, ptr %retval br label %ret ifend19: %t76 = load ptr, ptr %t48 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str9171) %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then20, label %ifend22 then20: call void @fn_emit(ptr @.str9172) %t79 = call ptr @fn_val(ptr @.str9173, ptr @.str9174) store ptr %t79, ptr %retval br label %ret ifend22: %t81 = load ptr, ptr %t48 %t82 = call i32 @lp_str_eq(ptr %t81, ptr @.str9175) %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t80 br i1 %t83, label %sc23, label %scend24 sc23: %t85 = load ptr, ptr %t48 %t86 = call ptr @fn_find_fn(ptr %t85) %t87 = icmp eq ptr %t86, null %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t80 br label %scend24 scend24: %t91 = load i32, ptr %t80 %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then25, label %ifend27 then25: call void @fn_emit(ptr @.str9176) %t93 = call ptr @fn_val(ptr @.str9177, ptr @.str9178) store ptr %t93, ptr %retval br label %ret ifend27: %t94 = load ptr, ptr %t48 %t95 = call i32 @lp_str_eq(ptr %t94, ptr @.str9179) %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %then28, label %ifend30 then28: %t97 = call ptr @fn_emit_bind(ptr @.str9180) %t98 = call ptr @fn_val(ptr %t97, ptr @.str9181) store ptr %t98, ptr %retval br label %ret ifend30: %t99 = load ptr, ptr %t48 %t100 = call i32 @lp_str_eq(ptr %t99, ptr @.str9182) %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then31, label %ifend33 then31: %t102 = call ptr @fn_emit_bind(ptr @.str9183) %t103 = call ptr @fn_val(ptr %t102, ptr @.str9184) store ptr %t103, ptr %retval br label %ret ifend33: %t104 = load ptr, ptr %t48 %t105 = call i32 @lp_str_eq(ptr %t104, ptr @.str9185) %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then34, label %ifend36 then34: %t107 = load ptr, ptr %t0 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 7 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 0 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 1 %t113 = load i32, ptr %t112 %t114 = icmp ult i32 0, %t113 br i1 %t114, label %ixok37, label %ixbad38 ixbad38: %t115 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t115, ptr @.fmt_bounds, ptr @.str9186, i32 0, i32 %t113) call void @exit(i32 1) unreachable ixok37: %t116 = getelementptr inbounds ptr, ptr %t111, i32 0 %t117 = load ptr, ptr %t116 %t118 = call ptr @fn_emit_expr(ptr %t117) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = call ptr @lp_str_concat(ptr @.str9187, ptr %t122) %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str9188) %t125 = call ptr @fn_emit_bind(ptr %t124) %t126 = call ptr @fn_val(ptr %t125, ptr @.str9189) store ptr %t126, ptr %retval br label %ret ifend36: %t127 = load ptr, ptr %t48 %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str9190) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then39, label %ifend41 then39: %t130 = load ptr, ptr %t0 %t131 = getelementptr inbounds %Cmp_Node, ptr %t130, i32 0, i32 7 %t132 = load ptr, ptr %t131 %t133 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 0 %t134 = load ptr, ptr %t133 %t135 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 1 %t136 = load i32, ptr %t135 %t137 = icmp ult i32 0, %t136 br i1 %t137, label %ixok42, label %ixbad43 ixbad43: %t138 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t138, ptr @.fmt_bounds, ptr @.str9191, i32 0, i32 %t136) call void @exit(i32 1) unreachable ixok42: %t139 = getelementptr inbounds ptr, ptr %t134, i32 0 %t140 = load ptr, ptr %t139 %t141 = call ptr @fn_emit_expr(ptr %t140) store ptr %t141, ptr %t142 %t143 = load ptr, ptr %t0 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 7 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 0 %t147 = load ptr, ptr %t146 %t148 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 1 %t149 = load i32, ptr %t148 %t150 = icmp ult i32 1, %t149 br i1 %t150, label %ixok44, label %ixbad45 ixbad45: %t151 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t151, ptr @.fmt_bounds, ptr @.str9192, i32 1, i32 %t149) call void @exit(i32 1) unreachable ixok44: %t152 = getelementptr inbounds ptr, ptr %t147, i32 1 %t153 = load ptr, ptr %t152 %t154 = call ptr @fn_emit_expr(ptr %t153) store ptr %t154, ptr %t155 call void @fn_emit(ptr @.str9193) %t156 = load ptr, ptr %t142 %t157 = getelementptr inbounds %Cmp_Val, ptr %t156, i32 0, i32 0 %t158 = load ptr, ptr %t157 call void @fn_emit(ptr %t158) call void @fn_emit(ptr @.str9194) %t159 = load ptr, ptr %t155 %t160 = getelementptr inbounds %Cmp_Val, ptr %t159, i32 0, i32 0 %t161 = load ptr, ptr %t160 call void @fn_emit(ptr %t161) call void @fn_emit(ptr @.str9195) %t162 = call ptr @fn_val(ptr @.str9196, ptr @.str9197) store ptr %t162, ptr %retval br label %ret ifend41: %t163 = load ptr, ptr %t48 %t164 = call i32 @lp_str_eq(ptr %t163, ptr @.str9198) %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then46, label %ifend48 then46: store i32 1, ptr @g_g_uses_quit call void @fn_emit(ptr @.str9199) %t166 = call ptr @fn_val(ptr @.str9200, ptr @.str9201) store ptr %t166, ptr %retval br label %ret ifend48: %t167 = load ptr, ptr %t48 %t168 = call i32 @lp_str_eq(ptr %t167, ptr @.str9202) %t169 = icmp ne i32 %t168, 0 br i1 %t169, label %then49, label %ifend51 then49: %t170 = load ptr, ptr %t0 %t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 7 %t172 = load ptr, ptr %t171 %t173 = getelementptr inbounds %LSlice, ptr %t172, i32 0, i32 0 %t174 = load ptr, ptr %t173 %t175 = getelementptr inbounds %LSlice, ptr %t172, i32 0, i32 1 %t176 = load i32, ptr %t175 %t177 = icmp ult i32 0, %t176 br i1 %t177, label %ixok52, label %ixbad53 ixbad53: %t178 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t178, ptr @.fmt_bounds, ptr @.str9203, i32 0, i32 %t176) call void @exit(i32 1) unreachable ixok52: %t179 = getelementptr inbounds ptr, ptr %t174, i32 0 %t180 = load ptr, ptr %t179 %t181 = call ptr @fn_emit_expr(ptr %t180) store ptr %t181, ptr %t182 %t183 = load ptr, ptr %t0 %t184 = getelementptr inbounds %Cmp_Node, ptr %t183, i32 0, i32 7 %t185 = load ptr, ptr %t184 %t186 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 0 %t187 = load ptr, ptr %t186 %t188 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 1 %t189 = load i32, ptr %t188 %t190 = icmp ult i32 1, %t189 br i1 %t190, label %ixok54, label %ixbad55 ixbad55: %t191 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t191, ptr @.fmt_bounds, ptr @.str9204, i32 1, i32 %t189) call void @exit(i32 1) unreachable ixok54: %t192 = getelementptr inbounds ptr, ptr %t187, i32 1 %t193 = load ptr, ptr %t192 %t194 = call ptr @fn_emit_expr(ptr %t193) store ptr %t194, ptr %t195 %t196 = load ptr, ptr %t182 %t197 = getelementptr inbounds %Cmp_Val, ptr %t196, i32 0, i32 0 %t198 = load ptr, ptr %t197 %t199 = call ptr @lp_str_concat(ptr @.str9205, ptr %t198) %t200 = call ptr @lp_str_concat(ptr %t199, ptr @.str9206) %t201 = load ptr, ptr %t195 %t202 = getelementptr inbounds %Cmp_Val, ptr %t201, i32 0, i32 0 %t203 = load ptr, ptr %t202 %t204 = call ptr @lp_str_concat(ptr %t200, ptr %t203) %t205 = call ptr @lp_str_concat(ptr %t204, ptr @.str9207) %t206 = call ptr @fn_emit_bind(ptr %t205) %t207 = call ptr @fn_val(ptr %t206, ptr @.str9208) store ptr %t207, ptr %retval br label %ret ifend51: %t208 = load ptr, ptr %t48 %t209 = call i32 @lp_str_eq(ptr %t208, ptr @.str9209) %t210 = icmp ne i32 %t209, 0 br i1 %t210, label %then56, label %ifend58 then56: %t211 = load ptr, ptr %t0 %t212 = getelementptr inbounds %Cmp_Node, ptr %t211, i32 0, i32 7 %t213 = load ptr, ptr %t212 %t214 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 0 %t215 = load ptr, ptr %t214 %t216 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 1 %t217 = load i32, ptr %t216 %t218 = icmp ult i32 0, %t217 br i1 %t218, label %ixok59, label %ixbad60 ixbad60: %t219 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t219, ptr @.fmt_bounds, ptr @.str9210, i32 0, i32 %t217) call void @exit(i32 1) unreachable ixok59: %t220 = getelementptr inbounds ptr, ptr %t215, i32 0 %t221 = load ptr, ptr %t220 %t222 = call ptr @fn_emit_expr(ptr %t221) store ptr %t222, ptr %t223 %t224 = load ptr, ptr %t0 %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 7 %t226 = load ptr, ptr %t225 %t227 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 0 %t228 = load ptr, ptr %t227 %t229 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 1 %t230 = load i32, ptr %t229 %t231 = icmp ult i32 1, %t230 br i1 %t231, label %ixok61, label %ixbad62 ixbad62: %t232 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t232, ptr @.fmt_bounds, ptr @.str9211, i32 1, i32 %t230) call void @exit(i32 1) unreachable ixok61: %t233 = getelementptr inbounds ptr, ptr %t228, i32 1 %t234 = load ptr, ptr %t233 %t235 = call ptr @fn_emit_expr(ptr %t234) store ptr %t235, ptr %t236 %t237 = load ptr, ptr %t0 %t238 = getelementptr inbounds %Cmp_Node, ptr %t237, i32 0, i32 7 %t239 = load ptr, ptr %t238 %t240 = getelementptr inbounds %LSlice, ptr %t239, i32 0, i32 0 %t241 = load ptr, ptr %t240 %t242 = getelementptr inbounds %LSlice, ptr %t239, i32 0, i32 1 %t243 = load i32, ptr %t242 %t244 = icmp ult i32 2, %t243 br i1 %t244, label %ixok63, label %ixbad64 ixbad64: %t245 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t245, ptr @.fmt_bounds, ptr @.str9212, i32 2, i32 %t243) call void @exit(i32 1) unreachable ixok63: %t246 = getelementptr inbounds ptr, ptr %t241, i32 2 %t247 = load ptr, ptr %t246 %t248 = call ptr @fn_emit_expr(ptr %t247) store ptr %t248, ptr %t249 call void @fn_emit(ptr @.str9213) %t250 = load ptr, ptr %t223 %t251 = getelementptr inbounds %Cmp_Val, ptr %t250, i32 0, i32 0 %t252 = load ptr, ptr %t251 call void @fn_emit(ptr %t252) call void @fn_emit(ptr @.str9214) %t253 = load ptr, ptr %t236 %t254 = getelementptr inbounds %Cmp_Val, ptr %t253, i32 0, i32 0 %t255 = load ptr, ptr %t254 call void @fn_emit(ptr %t255) call void @fn_emit(ptr @.str9215) %t256 = load ptr, ptr %t249 %t257 = getelementptr inbounds %Cmp_Val, ptr %t256, i32 0, i32 0 %t258 = load ptr, ptr %t257 call void @fn_emit(ptr %t258) call void @fn_emit(ptr @.str9216) %t259 = call ptr @fn_val(ptr @.str9217, ptr @.str9218) store ptr %t259, ptr %retval br label %ret ifend58: %t260 = load ptr, ptr %t48 %t261 = call i32 @lp_str_eq(ptr %t260, ptr @.str9219) %t262 = icmp ne i32 %t261, 0 br i1 %t262, label %then65, label %ifend67 then65: %t263 = load ptr, ptr %t0 %t264 = getelementptr inbounds %Cmp_Node, ptr %t263, i32 0, i32 7 %t265 = load ptr, ptr %t264 %t266 = getelementptr inbounds %LSlice, ptr %t265, i32 0, i32 0 %t267 = load ptr, ptr %t266 %t268 = getelementptr inbounds %LSlice, ptr %t265, i32 0, i32 1 %t269 = load i32, ptr %t268 %t270 = icmp ult i32 0, %t269 br i1 %t270, label %ixok68, label %ixbad69 ixbad69: %t271 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t271, ptr @.fmt_bounds, ptr @.str9220, i32 0, i32 %t269) call void @exit(i32 1) unreachable ixok68: %t272 = getelementptr inbounds ptr, ptr %t267, i32 0 %t273 = load ptr, ptr %t272 %t274 = call ptr @fn_emit_expr(ptr %t273) store ptr %t274, ptr %t275 %t276 = load ptr, ptr %t275 %t277 = getelementptr inbounds %Cmp_Val, ptr %t276, i32 0, i32 0 %t278 = load ptr, ptr %t277 %t279 = call ptr @lp_str_concat(ptr @.str9221, ptr %t278) %t280 = call ptr @lp_str_concat(ptr %t279, ptr @.str9222) %t281 = call ptr @fn_emit_bind(ptr %t280) %t282 = call ptr @fn_val(ptr %t281, ptr @.str9223) store ptr %t282, ptr %retval br label %ret ifend67: %t283 = load ptr, ptr %t48 %t284 = call i32 @lp_str_eq(ptr %t283, ptr @.str9224) %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then70, label %ifend72 then70: %t286 = load ptr, ptr %t0 %t287 = getelementptr inbounds %Cmp_Node, ptr %t286, i32 0, i32 7 %t288 = load ptr, ptr %t287 %t289 = getelementptr inbounds %LSlice, ptr %t288, i32 0, i32 0 %t290 = load ptr, ptr %t289 %t291 = getelementptr inbounds %LSlice, ptr %t288, i32 0, i32 1 %t292 = load i32, ptr %t291 %t293 = icmp ult i32 0, %t292 br i1 %t293, label %ixok73, label %ixbad74 ixbad74: %t294 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t294, ptr @.fmt_bounds, ptr @.str9225, i32 0, i32 %t292) call void @exit(i32 1) unreachable ixok73: %t295 = getelementptr inbounds ptr, ptr %t290, i32 0 %t296 = load ptr, ptr %t295 %t297 = call ptr @fn_emit_expr(ptr %t296) store ptr %t297, ptr %t298 %t299 = load ptr, ptr %t298 %t300 = getelementptr inbounds %Cmp_Val, ptr %t299, i32 0, i32 0 %t301 = load ptr, ptr %t300 %t302 = call ptr @lp_str_concat(ptr @.str9226, ptr %t301) %t303 = call ptr @lp_str_concat(ptr %t302, ptr @.str9227) %t304 = call ptr @fn_emit_bind(ptr %t303) %t305 = call ptr @fn_val(ptr %t304, ptr @.str9228) store ptr %t305, ptr %retval br label %ret ifend72: %t306 = load ptr, ptr %t48 %t307 = call i32 @lp_str_eq(ptr %t306, ptr @.str9229) %t308 = icmp ne i32 %t307, 0 br i1 %t308, label %then75, label %ifend77 then75: %t309 = load ptr, ptr %t0 %t310 = getelementptr inbounds %Cmp_Node, ptr %t309, i32 0, i32 7 %t311 = load ptr, ptr %t310 %t312 = getelementptr inbounds %LSlice, ptr %t311, i32 0, i32 0 %t313 = load ptr, ptr %t312 %t314 = getelementptr inbounds %LSlice, ptr %t311, i32 0, i32 1 %t315 = load i32, ptr %t314 %t316 = icmp ult i32 0, %t315 br i1 %t316, label %ixok78, label %ixbad79 ixbad79: %t317 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t317, ptr @.fmt_bounds, ptr @.str9230, i32 0, i32 %t315) call void @exit(i32 1) unreachable ixok78: %t318 = getelementptr inbounds ptr, ptr %t313, i32 0 %t319 = load ptr, ptr %t318 %t320 = call ptr @fn_emit_expr(ptr %t319) store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t0 %t323 = getelementptr inbounds %Cmp_Node, ptr %t322, i32 0, i32 7 %t324 = load ptr, ptr %t323 %t325 = getelementptr inbounds %LSlice, ptr %t324, i32 0, i32 0 %t326 = load ptr, ptr %t325 %t327 = getelementptr inbounds %LSlice, ptr %t324, i32 0, i32 1 %t328 = load i32, ptr %t327 %t329 = icmp ult i32 1, %t328 br i1 %t329, label %ixok80, label %ixbad81 ixbad81: %t330 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t330, ptr @.fmt_bounds, ptr @.str9231, i32 1, i32 %t328) call void @exit(i32 1) unreachable ixok80: %t331 = getelementptr inbounds ptr, ptr %t326, i32 1 %t332 = load ptr, ptr %t331 %t333 = call ptr @fn_emit_expr(ptr %t332) store ptr %t333, ptr %t334 call void @fn_emit(ptr @.str9232) %t335 = load ptr, ptr %t321 %t336 = getelementptr inbounds %Cmp_Val, ptr %t335, i32 0, i32 0 %t337 = load ptr, ptr %t336 call void @fn_emit(ptr %t337) call void @fn_emit(ptr @.str9233) %t338 = load ptr, ptr %t334 %t339 = getelementptr inbounds %Cmp_Val, ptr %t338, i32 0, i32 0 %t340 = load ptr, ptr %t339 call void @fn_emit(ptr %t340) call void @fn_emit(ptr @.str9234) %t341 = call ptr @fn_val(ptr @.str9235, ptr @.str9236) store ptr %t341, ptr %retval br label %ret ifend77: %t342 = load ptr, ptr %t48 %t343 = call i32 @lp_str_eq(ptr %t342, ptr @.str9237) %t344 = icmp ne i32 %t343, 0 br i1 %t344, label %then82, label %ifend84 then82: %t345 = load ptr, ptr %t0 %t346 = getelementptr inbounds %Cmp_Node, ptr %t345, i32 0, i32 7 %t347 = load ptr, ptr %t346 %t348 = getelementptr inbounds %LSlice, ptr %t347, i32 0, i32 0 %t349 = load ptr, ptr %t348 %t350 = getelementptr inbounds %LSlice, ptr %t347, i32 0, i32 1 %t351 = load i32, ptr %t350 %t352 = icmp ult i32 0, %t351 br i1 %t352, label %ixok85, label %ixbad86 ixbad86: %t353 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t353, ptr @.fmt_bounds, ptr @.str9238, i32 0, i32 %t351) call void @exit(i32 1) unreachable ixok85: %t354 = getelementptr inbounds ptr, ptr %t349, i32 0 %t355 = load ptr, ptr %t354 %t356 = call ptr @fn_emit_expr(ptr %t355) store ptr %t356, ptr %t357 %t358 = load ptr, ptr %t357 %t359 = getelementptr inbounds %Cmp_Val, ptr %t358, i32 0, i32 0 %t360 = load ptr, ptr %t359 %t361 = call ptr @lp_str_concat(ptr @.str9239, ptr %t360) %t362 = call ptr @lp_str_concat(ptr %t361, ptr @.str9240) %t363 = call ptr @fn_emit_bind(ptr %t362) %t364 = call ptr @fn_val(ptr %t363, ptr @.str9241) store ptr %t364, ptr %retval br label %ret ifend84: %t365 = load ptr, ptr %t48 %t366 = call i32 @lp_str_eq(ptr %t365, ptr @.str9242) %t367 = icmp ne i32 %t366, 0 br i1 %t367, label %then87, label %ifend89 then87: %t368 = call ptr @fn_emit_bind(ptr @.str9243) store ptr %t368, ptr %t369 %t370 = load ptr, ptr %t369 %t371 = call ptr @lp_str_concat(ptr @.str9244, ptr %t370) %t372 = call ptr @lp_str_concat(ptr %t371, ptr @.str9245) %t373 = call ptr @fn_emit_bind(ptr %t372) store ptr %t373, ptr %t374 %t375 = load ptr, ptr %t374 %t376 = call ptr @lp_str_concat(ptr @.str9246, ptr %t375) %t377 = call ptr @lp_str_concat(ptr %t376, ptr @.str9247) %t378 = call ptr @fn_emit_bind(ptr %t377) %t379 = call ptr @fn_val(ptr %t378, ptr @.str9248) store ptr %t379, ptr %retval br label %ret ifend89: %t380 = load ptr, ptr %t48 %t381 = call i32 @lp_str_eq(ptr %t380, ptr @.str9249) %t382 = icmp ne i32 %t381, 0 br i1 %t382, label %then90, label %ifend92 then90: %t383 = call ptr @fn_emit_bind(ptr @.str9250) %t384 = call ptr @fn_val(ptr %t383, ptr @.str9251) store ptr %t384, ptr %retval br label %ret ifend92: %t385 = load ptr, ptr %t48 %t386 = call i32 @lp_str_eq(ptr %t385, ptr @.str9252) %t387 = icmp ne i32 %t386, 0 br i1 %t387, label %then93, label %ifend95 then93: call void @fn_emit(ptr @.str9253) %t388 = call ptr @fn_val(ptr @.str9254, ptr @.str9255) store ptr %t388, ptr %retval br label %ret ifend95: %t389 = load ptr, ptr %t48 %t390 = call i32 @lp_str_eq(ptr %t389, ptr @.str9256) %t391 = icmp ne i32 %t390, 0 br i1 %t391, label %then96, label %ifend98 then96: call void @fn_emit(ptr @.str9257) %t392 = call ptr @fn_val(ptr @.str9258, ptr @.str9259) store ptr %t392, ptr %retval br label %ret ifend98: %t393 = load ptr, ptr %t48 %t394 = call i32 @lp_str_eq(ptr %t393, ptr @.str9260) %t395 = icmp ne i32 %t394, 0 br i1 %t395, label %then99, label %ifend101 then99: call void @fn_emit(ptr @.str9261) %t396 = call ptr @fn_val(ptr @.str9262, ptr @.str9263) store ptr %t396, ptr %retval br label %ret ifend101: %t397 = load ptr, ptr %t48 %t398 = call i32 @lp_str_eq(ptr %t397, ptr @.str9264) %t399 = icmp ne i32 %t398, 0 br i1 %t399, label %then102, label %ifend104 then102: %t400 = load ptr, ptr %t0 %t401 = getelementptr inbounds %Cmp_Node, ptr %t400, i32 0, i32 7 %t402 = load ptr, ptr %t401 %t403 = getelementptr inbounds %LSlice, ptr %t402, i32 0, i32 0 %t404 = load ptr, ptr %t403 %t405 = getelementptr inbounds %LSlice, ptr %t402, i32 0, i32 1 %t406 = load i32, ptr %t405 %t407 = icmp ult i32 0, %t406 br i1 %t407, label %ixok105, label %ixbad106 ixbad106: %t408 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t408, ptr @.fmt_bounds, ptr @.str9265, i32 0, i32 %t406) call void @exit(i32 1) unreachable ixok105: %t409 = getelementptr inbounds ptr, ptr %t404, i32 0 %t410 = load ptr, ptr %t409 %t411 = call ptr @fn_emit_expr(ptr %t410) store ptr %t411, ptr %t412 call void @fn_emit(ptr @.str9266) %t413 = load ptr, ptr %t412 %t414 = getelementptr inbounds %Cmp_Val, ptr %t413, i32 0, i32 0 %t415 = load ptr, ptr %t414 call void @fn_emit(ptr %t415) call void @fn_emit(ptr @.str9267) %t416 = call ptr @fn_val(ptr @.str9268, ptr @.str9269) store ptr %t416, ptr %retval br label %ret ifend104: %t417 = load ptr, ptr %t48 %t418 = call i32 @lp_str_eq(ptr %t417, ptr @.str9270) %t419 = icmp ne i32 %t418, 0 br i1 %t419, label %then107, label %ifend109 then107: %t420 = load ptr, ptr %t0 %t421 = getelementptr inbounds %Cmp_Node, ptr %t420, i32 0, i32 7 %t422 = load ptr, ptr %t421 %t423 = getelementptr inbounds %LSlice, ptr %t422, i32 0, i32 0 %t424 = load ptr, ptr %t423 %t425 = getelementptr inbounds %LSlice, ptr %t422, i32 0, i32 1 %t426 = load i32, ptr %t425 %t427 = icmp ult i32 0, %t426 br i1 %t427, label %ixok110, label %ixbad111 ixbad111: %t428 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t428, ptr @.fmt_bounds, ptr @.str9271, i32 0, i32 %t426) call void @exit(i32 1) unreachable ixok110: %t429 = getelementptr inbounds ptr, ptr %t424, i32 0 %t430 = load ptr, ptr %t429 %t431 = call ptr @fn_emit_expr(ptr %t430) store ptr %t431, ptr %t432 call void @fn_emit(ptr @.str9272) %t433 = load ptr, ptr %t432 %t434 = getelementptr inbounds %Cmp_Val, ptr %t433, i32 0, i32 0 %t435 = load ptr, ptr %t434 call void @fn_emit(ptr %t435) call void @fn_emit(ptr @.str9273) %t436 = call ptr @fn_val(ptr @.str9274, ptr @.str9275) store ptr %t436, ptr %retval br label %ret ifend109: %t438 = load ptr, ptr %t48 %t439 = call i32 @lp_str_eq(ptr %t438, ptr @.str9276) %t440 = icmp ne i32 %t439, 0 %t441 = zext i1 %t440 to i32 store i32 %t441, ptr %t437 br i1 %t440, label %sc112, label %scend113 sc112: %t442 = call ptr @fn_find_extern(ptr @.str9277) %t443 = icmp eq ptr %t442, null %t444 = zext i1 %t443 to i32 %t445 = icmp ne i32 %t444, 0 %t446 = zext i1 %t445 to i32 store i32 %t446, ptr %t437 br label %scend113 scend113: %t447 = load i32, ptr %t437 %t448 = icmp ne i32 %t447, 0 br i1 %t448, label %then114, label %ifend116 then114: store i32 1, ptr @g_g_uses_loopback %t449 = load ptr, ptr %t0 %t450 = getelementptr inbounds %Cmp_Node, ptr %t449, i32 0, i32 7 %t451 = load ptr, ptr %t450 %t452 = getelementptr inbounds %LSlice, ptr %t451, i32 0, i32 0 %t453 = load ptr, ptr %t452 %t454 = getelementptr inbounds %LSlice, ptr %t451, i32 0, i32 1 %t455 = load i32, ptr %t454 %t456 = icmp ult i32 0, %t455 br i1 %t456, label %ixok117, label %ixbad118 ixbad118: %t457 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t457, ptr @.fmt_bounds, ptr @.str9278, i32 0, i32 %t455) call void @exit(i32 1) unreachable ixok117: %t458 = getelementptr inbounds ptr, ptr %t453, i32 0 %t459 = load ptr, ptr %t458 %t460 = call ptr @fn_emit_expr(ptr %t459) store ptr %t460, ptr %t461 %t462 = load ptr, ptr %t0 %t463 = getelementptr inbounds %Cmp_Node, ptr %t462, i32 0, i32 7 %t464 = load ptr, ptr %t463 %t465 = getelementptr inbounds %LSlice, ptr %t464, i32 0, i32 0 %t466 = load ptr, ptr %t465 %t467 = getelementptr inbounds %LSlice, ptr %t464, i32 0, i32 1 %t468 = load i32, ptr %t467 %t469 = icmp ult i32 1, %t468 br i1 %t469, label %ixok119, label %ixbad120 ixbad120: %t470 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t470, ptr @.fmt_bounds, ptr @.str9279, i32 1, i32 %t468) call void @exit(i32 1) unreachable ixok119: %t471 = getelementptr inbounds ptr, ptr %t466, i32 1 %t472 = load ptr, ptr %t471 %t473 = call ptr @fn_emit_expr(ptr %t472) store ptr %t473, ptr %t474 %t475 = load ptr, ptr %t0 %t476 = getelementptr inbounds %Cmp_Node, ptr %t475, i32 0, i32 7 %t477 = load ptr, ptr %t476 %t478 = getelementptr inbounds %LSlice, ptr %t477, i32 0, i32 0 %t479 = load ptr, ptr %t478 %t480 = getelementptr inbounds %LSlice, ptr %t477, i32 0, i32 1 %t481 = load i32, ptr %t480 %t482 = icmp ult i32 2, %t481 br i1 %t482, label %ixok121, label %ixbad122 ixbad122: %t483 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t483, ptr @.fmt_bounds, ptr @.str9280, i32 2, i32 %t481) call void @exit(i32 1) unreachable ixok121: %t484 = getelementptr inbounds ptr, ptr %t479, i32 2 %t485 = load ptr, ptr %t484 %t486 = call ptr @fn_emit_expr(ptr %t485) store ptr %t486, ptr %t487 call void @fn_emit(ptr @.str9281) %t488 = load ptr, ptr %t461 %t489 = getelementptr inbounds %Cmp_Val, ptr %t488, i32 0, i32 0 %t490 = load ptr, ptr %t489 call void @fn_emit(ptr %t490) call void @fn_emit(ptr @.str9282) %t491 = load ptr, ptr %t474 %t492 = getelementptr inbounds %Cmp_Val, ptr %t491, i32 0, i32 0 %t493 = load ptr, ptr %t492 call void @fn_emit(ptr %t493) call void @fn_emit(ptr @.str9283) %t494 = load ptr, ptr %t487 %t495 = getelementptr inbounds %Cmp_Val, ptr %t494, i32 0, i32 0 %t496 = load ptr, ptr %t495 call void @fn_emit(ptr %t496) call void @fn_emit(ptr @.str9284) %t497 = call ptr @fn_val(ptr @.str9285, ptr @.str9286) store ptr %t497, ptr %retval br label %ret ifend116: %t499 = load ptr, ptr %t48 %t500 = call i32 @lp_str_eq(ptr %t499, ptr @.str9287) %t501 = icmp ne i32 %t500, 0 %t502 = zext i1 %t501 to i32 store i32 %t502, ptr %t498 br i1 %t501, label %sc123, label %scend124 sc123: %t503 = call ptr @fn_find_extern(ptr @.str9288) %t504 = icmp eq ptr %t503, null %t505 = zext i1 %t504 to i32 %t506 = icmp ne i32 %t505, 0 %t507 = zext i1 %t506 to i32 store i32 %t507, ptr %t498 br label %scend124 scend124: %t508 = load i32, ptr %t498 %t509 = icmp ne i32 %t508, 0 br i1 %t509, label %then125, label %ifend127 then125: store i32 1, ptr @g_g_uses_loopback %t510 = load ptr, ptr %t0 %t511 = getelementptr inbounds %Cmp_Node, ptr %t510, i32 0, i32 7 %t512 = load ptr, ptr %t511 %t513 = getelementptr inbounds %LSlice, ptr %t512, i32 0, i32 0 %t514 = load ptr, ptr %t513 %t515 = getelementptr inbounds %LSlice, ptr %t512, i32 0, i32 1 %t516 = load i32, ptr %t515 %t517 = icmp ult i32 0, %t516 br i1 %t517, label %ixok128, label %ixbad129 ixbad129: %t518 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t518, ptr @.fmt_bounds, ptr @.str9289, i32 0, i32 %t516) call void @exit(i32 1) unreachable ixok128: %t519 = getelementptr inbounds ptr, ptr %t514, i32 0 %t520 = load ptr, ptr %t519 %t521 = call ptr @fn_emit_expr(ptr %t520) store ptr %t521, ptr %t522 %t523 = load ptr, ptr %t0 %t524 = getelementptr inbounds %Cmp_Node, ptr %t523, i32 0, i32 7 %t525 = load ptr, ptr %t524 %t526 = getelementptr inbounds %LSlice, ptr %t525, i32 0, i32 0 %t527 = load ptr, ptr %t526 %t528 = getelementptr inbounds %LSlice, ptr %t525, i32 0, i32 1 %t529 = load i32, ptr %t528 %t530 = icmp ult i32 1, %t529 br i1 %t530, label %ixok130, label %ixbad131 ixbad131: %t531 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t531, ptr @.fmt_bounds, ptr @.str9290, i32 1, i32 %t529) call void @exit(i32 1) unreachable ixok130: %t532 = getelementptr inbounds ptr, ptr %t527, i32 1 %t533 = load ptr, ptr %t532 %t534 = call ptr @fn_emit_expr(ptr %t533) store ptr %t534, ptr %t535 %t536 = load ptr, ptr %t522 %t537 = getelementptr inbounds %Cmp_Val, ptr %t536, i32 0, i32 0 %t538 = load ptr, ptr %t537 %t539 = call ptr @lp_str_concat(ptr @.str9291, ptr %t538) %t540 = call ptr @lp_str_concat(ptr %t539, ptr @.str9292) %t541 = load ptr, ptr %t535 %t542 = getelementptr inbounds %Cmp_Val, ptr %t541, i32 0, i32 0 %t543 = load ptr, ptr %t542 %t544 = call ptr @lp_str_concat(ptr %t540, ptr %t543) %t545 = call ptr @lp_str_concat(ptr %t544, ptr @.str9293) %t546 = call ptr @fn_emit_bind(ptr %t545) %t547 = call ptr @fn_val(ptr %t546, ptr @.str9294) store ptr %t547, ptr %retval br label %ret ifend127: %t548 = load ptr, ptr %t48 %t549 = call i32 @lp_str_eq(ptr %t548, ptr @.str9295) %t550 = icmp ne i32 %t549, 0 br i1 %t550, label %then132, label %ifend134 then132: %t551 = load ptr, ptr %t0 %t552 = call ptr @fn_emit_len(ptr %t551) store ptr %t552, ptr %retval br label %ret ifend134: %t553 = load ptr, ptr %t48 %t554 = call i32 @lp_str_eq(ptr %t553, ptr @.str9296) %t555 = icmp ne i32 %t554, 0 br i1 %t555, label %then135, label %ifend137 then135: %t556 = load ptr, ptr %t0 %t557 = call ptr @fn_emit_push(ptr %t556) store ptr %t557, ptr %retval br label %ret ifend137: %t558 = load ptr, ptr %t48 %t559 = call i32 @lp_str_eq(ptr %t558, ptr @.str9297) %t560 = icmp ne i32 %t559, 0 br i1 %t560, label %then138, label %ifend140 then138: %t561 = load ptr, ptr %t0 %t562 = getelementptr inbounds %Cmp_Node, ptr %t561, i32 0, i32 7 %t563 = load ptr, ptr %t562 %t564 = getelementptr inbounds %LSlice, ptr %t563, i32 0, i32 0 %t565 = load ptr, ptr %t564 %t566 = getelementptr inbounds %LSlice, ptr %t563, i32 0, i32 1 %t567 = load i32, ptr %t566 %t568 = icmp ult i32 0, %t567 br i1 %t568, label %ixok141, label %ixbad142 ixbad142: %t569 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t569, ptr @.fmt_bounds, ptr @.str9298, i32 0, i32 %t567) call void @exit(i32 1) unreachable ixok141: %t570 = getelementptr inbounds ptr, ptr %t565, i32 0 %t571 = load ptr, ptr %t570 %t572 = call ptr @fn_emit_expr(ptr %t571) store ptr %t572, ptr %t573 %t574 = load ptr, ptr %t573 %t575 = getelementptr inbounds %Cmp_Val, ptr %t574, i32 0, i32 1 %t576 = load ptr, ptr %t575 %t577 = call ptr @fn_llty(ptr %t576) %t578 = call i32 @lp_str_eq(ptr %t577, ptr @.str9299) %t579 = icmp ne i32 %t578, 0 br i1 %t579, label %then143, label %ifend145 then143: %t580 = load ptr, ptr %t573 store ptr %t580, ptr %retval br label %ret ifend145: %t581 = load ptr, ptr %t573 %t582 = getelementptr inbounds %Cmp_Val, ptr %t581, i32 0, i32 1 %t583 = load ptr, ptr %t582 %t584 = call i32 @fn_is_fp(ptr %t583) %t585 = icmp ne i32 %t584, 0 br i1 %t585, label %then146, label %ifend148 then146: %t586 = load ptr, ptr %t573 %t587 = call ptr @fn_emit_fp_str(ptr %t586) store ptr %t587, ptr %retval br label %ret ifend148: %t588 = load ptr, ptr %t573 %t589 = getelementptr inbounds %Cmp_Val, ptr %t588, i32 0, i32 1 %t590 = load ptr, ptr %t589 %t591 = call ptr @fn_llty(ptr %t590) %t592 = call i32 @lp_str_eq(ptr %t591, ptr @.str9300) %t593 = icmp ne i32 %t592, 0 br i1 %t593, label %then149, label %ifend151 then149: store i32 1, ptr @g_g_uses_longstr %t594 = load ptr, ptr %t573 %t595 = getelementptr inbounds %Cmp_Val, ptr %t594, i32 0, i32 0 %t596 = load ptr, ptr %t595 %t597 = call ptr @lp_str_concat(ptr @.str9301, ptr %t596) %t598 = call ptr @lp_str_concat(ptr %t597, ptr @.str9302) %t599 = call ptr @fn_emit_bind(ptr %t598) %t600 = call ptr @fn_val(ptr %t599, ptr @.str9303) store ptr %t600, ptr %retval br label %ret ifend151: store i32 1, ptr @g_g_uses_intstr %t601 = load ptr, ptr %t573 %t602 = getelementptr inbounds %Cmp_Val, ptr %t601, i32 0, i32 0 %t603 = load ptr, ptr %t602 %t604 = call ptr @lp_str_concat(ptr @.str9304, ptr %t603) %t605 = call ptr @lp_str_concat(ptr %t604, ptr @.str9305) %t606 = call ptr @fn_emit_bind(ptr %t605) %t607 = call ptr @fn_val(ptr %t606, ptr @.str9306) store ptr %t607, ptr %retval br label %ret ifend140: %t608 = load ptr, ptr %t48 %t609 = call i32 @lp_str_eq(ptr %t608, ptr @.str9307) %t610 = icmp ne i32 %t609, 0 br i1 %t610, label %then152, label %ifend154 then152: %t611 = load ptr, ptr %t0 %t612 = getelementptr inbounds %Cmp_Node, ptr %t611, i32 0, i32 7 %t613 = load ptr, ptr %t612 %t614 = getelementptr inbounds %LSlice, ptr %t613, i32 0, i32 0 %t615 = load ptr, ptr %t614 %t616 = getelementptr inbounds %LSlice, ptr %t613, i32 0, i32 1 %t617 = load i32, ptr %t616 %t618 = icmp ult i32 0, %t617 br i1 %t618, label %ixok155, label %ixbad156 ixbad156: %t619 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t619, ptr @.fmt_bounds, ptr @.str9308, i32 0, i32 %t617) call void @exit(i32 1) unreachable ixok155: %t620 = getelementptr inbounds ptr, ptr %t615, i32 0 %t621 = load ptr, ptr %t620 %t622 = call ptr @fn_emit_expr(ptr %t621) store ptr %t622, ptr %t623 %t624 = load ptr, ptr %t623 %t625 = getelementptr inbounds %Cmp_Val, ptr %t624, i32 0, i32 1 %t626 = load ptr, ptr %t625 %t627 = call i32 @fn_is_fp(ptr %t626) %t628 = icmp ne i32 %t627, 0 br i1 %t628, label %then157, label %ifend159 then157: %t629 = load ptr, ptr %t623 %t630 = call ptr @fn_emit_fp_str(ptr %t629) store ptr %t630, ptr %t623 br label %ifend159 ifend159: %t631 = load ptr, ptr %t623 %t632 = getelementptr inbounds %Cmp_Val, ptr %t631, i32 0, i32 1 %t633 = load ptr, ptr %t632 %t634 = call ptr @fn_llty(ptr %t633) %t635 = call i32 @lp_str_eq(ptr %t634, ptr @.str9309) %t636 = icmp ne i32 %t635, 0 br i1 %t636, label %then160, label %else161 then160: %t637 = load ptr, ptr %t623 %t638 = getelementptr inbounds %Cmp_Val, ptr %t637, i32 0, i32 0 %t639 = load ptr, ptr %t638 %t640 = call ptr @lp_str_concat(ptr %t639, ptr @.str9311) %t641 = call ptr @lp_str_concat(ptr @.str9310, ptr %t640) call void @fn_emit(ptr %t641) br label %ifend162 else161: %t642 = load ptr, ptr %t623 %t643 = getelementptr inbounds %Cmp_Val, ptr %t642, i32 0, i32 1 %t644 = load ptr, ptr %t643 %t645 = call ptr @fn_llty(ptr %t644) %t646 = call i32 @lp_str_eq(ptr %t645, ptr @.str9312) %t647 = icmp ne i32 %t646, 0 br i1 %t647, label %then163, label %else164 then163: %t648 = load ptr, ptr %t623 %t649 = getelementptr inbounds %Cmp_Val, ptr %t648, i32 0, i32 0 %t650 = load ptr, ptr %t649 %t651 = call ptr @lp_str_concat(ptr %t650, ptr @.str9314) %t652 = call ptr @lp_str_concat(ptr @.str9313, ptr %t651) call void @fn_emit(ptr %t652) br label %ifend165 else164: %t653 = load ptr, ptr %t623 %t654 = getelementptr inbounds %Cmp_Val, ptr %t653, i32 0, i32 0 %t655 = load ptr, ptr %t654 %t656 = call ptr @lp_str_concat(ptr %t655, ptr @.str9316) %t657 = call ptr @lp_str_concat(ptr @.str9315, ptr %t656) call void @fn_emit(ptr %t657) br label %ifend165 ifend165: br label %ifend162 ifend162: %t658 = call ptr @fn_val(ptr @.str9317, ptr @.str9318) store ptr %t658, ptr %retval br label %ret ifend154: %t659 = load ptr, ptr %t48 %t660 = call i32 @lp_str_eq(ptr %t659, ptr @.str9319) %t661 = icmp ne i32 %t660, 0 br i1 %t661, label %then166, label %ifend168 then166: %t662 = load ptr, ptr %t0 %t663 = getelementptr inbounds %Cmp_Node, ptr %t662, i32 0, i32 7 %t664 = load ptr, ptr %t663 %t665 = getelementptr inbounds %LSlice, ptr %t664, i32 0, i32 0 %t666 = load ptr, ptr %t665 %t667 = getelementptr inbounds %LSlice, ptr %t664, i32 0, i32 1 %t668 = load i32, ptr %t667 %t669 = icmp ult i32 0, %t668 br i1 %t669, label %ixok169, label %ixbad170 ixbad170: %t670 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t670, ptr @.fmt_bounds, ptr @.str9320, i32 0, i32 %t668) call void @exit(i32 1) unreachable ixok169: %t671 = getelementptr inbounds ptr, ptr %t666, i32 0 %t672 = load ptr, ptr %t671 %t673 = call ptr @fn_emit_expr(ptr %t672) store ptr %t673, ptr %t674 %t675 = load ptr, ptr %t674 %t676 = getelementptr inbounds %Cmp_Val, ptr %t675, i32 0, i32 0 %t677 = load ptr, ptr %t676 %t678 = call ptr @lp_str_concat(ptr @.str9321, ptr %t677) %t679 = call ptr @lp_str_concat(ptr %t678, ptr @.str9322) %t680 = call ptr @fn_emit_bind(ptr %t679) store ptr %t680, ptr %t681 %t682 = load ptr, ptr %t681 %t683 = call ptr @lp_str_concat(ptr @.str9323, ptr %t682) %t684 = call ptr @lp_str_concat(ptr %t683, ptr @.str9324) %t685 = call ptr @fn_emit_bind(ptr %t684) %t686 = call ptr @fn_val(ptr %t685, ptr @.str9325) store ptr %t686, ptr %retval br label %ret ifend168: %t687 = load ptr, ptr %t48 %t688 = call i32 @lp_str_eq(ptr %t687, ptr @.str9326) %t689 = icmp ne i32 %t688, 0 br i1 %t689, label %then171, label %ifend173 then171: %t690 = load ptr, ptr %t0 %t691 = getelementptr inbounds %Cmp_Node, ptr %t690, i32 0, i32 7 %t692 = load ptr, ptr %t691 %t693 = getelementptr inbounds %LSlice, ptr %t692, i32 0, i32 0 %t694 = load ptr, ptr %t693 %t695 = getelementptr inbounds %LSlice, ptr %t692, i32 0, i32 1 %t696 = load i32, ptr %t695 %t697 = icmp ult i32 0, %t696 br i1 %t697, label %ixok174, label %ixbad175 ixbad175: %t698 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t698, ptr @.fmt_bounds, ptr @.str9328, i32 0, i32 %t696) call void @exit(i32 1) unreachable ixok174: %t699 = getelementptr inbounds ptr, ptr %t694, i32 0 %t700 = load ptr, ptr %t699 %t701 = call ptr @fn_emit_expr(ptr %t700) %t702 = call ptr @fn_emit_sized_slice(ptr @.str9327, ptr %t701) store ptr %t702, ptr %retval br label %ret ifend173: %t704 = load ptr, ptr %t48 %t705 = call i32 @lp_str_eq(ptr %t704, ptr @.str9329) %t706 = icmp ne i32 %t705, 0 %t707 = zext i1 %t706 to i32 store i32 %t707, ptr %t703 br i1 %t706, label %sc176, label %scend177 sc176: %t708 = load ptr, ptr %t48 %t709 = call ptr @fn_find_fn(ptr %t708) %t710 = icmp eq ptr %t709, null %t711 = zext i1 %t710 to i32 %t712 = icmp ne i32 %t711, 0 %t713 = zext i1 %t712 to i32 store i32 %t713, ptr %t703 br label %scend177 scend177: %t714 = load i32, ptr %t703 %t715 = icmp ne i32 %t714, 0 br i1 %t715, label %then178, label %ifend180 then178: %t716 = load ptr, ptr %t0 %t717 = getelementptr inbounds %Cmp_Node, ptr %t716, i32 0, i32 7 %t718 = load ptr, ptr %t717 %t719 = getelementptr inbounds %LSlice, ptr %t718, i32 0, i32 0 %t720 = load ptr, ptr %t719 %t721 = getelementptr inbounds %LSlice, ptr %t718, i32 0, i32 1 %t722 = load i32, ptr %t721 %t723 = icmp ult i32 0, %t722 br i1 %t723, label %ixok181, label %ixbad182 ixbad182: %t724 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t724, ptr @.fmt_bounds, ptr @.str9331, i32 0, i32 %t722) call void @exit(i32 1) unreachable ixok181: %t725 = getelementptr inbounds ptr, ptr %t720, i32 0 %t726 = load ptr, ptr %t725 %t727 = call ptr @fn_emit_expr(ptr %t726) %t728 = call ptr @fn_emit_sized_slice(ptr @.str9330, ptr %t727) store ptr %t728, ptr %retval br label %ret ifend180: %t730 = load ptr, ptr %t48 %t731 = call i32 @lp_str_eq(ptr %t730, ptr @.str9332) %t732 = icmp ne i32 %t731, 0 %t733 = zext i1 %t732 to i32 store i32 %t733, ptr %t729 br i1 %t732, label %sc183, label %scend184 sc183: %t734 = load ptr, ptr %t48 %t735 = call ptr @fn_find_fn(ptr %t734) %t736 = icmp eq ptr %t735, null %t737 = zext i1 %t736 to i32 %t738 = icmp ne i32 %t737, 0 %t739 = zext i1 %t738 to i32 store i32 %t739, ptr %t729 br label %scend184 scend184: %t740 = load i32, ptr %t729 %t741 = icmp ne i32 %t740, 0 br i1 %t741, label %then185, label %ifend187 then185: %t742 = load ptr, ptr %t0 %t743 = getelementptr inbounds %Cmp_Node, ptr %t742, i32 0, i32 7 %t744 = load ptr, ptr %t743 %t745 = getelementptr inbounds %LSlice, ptr %t744, i32 0, i32 0 %t746 = load ptr, ptr %t745 %t747 = getelementptr inbounds %LSlice, ptr %t744, i32 0, i32 1 %t748 = load i32, ptr %t747 %t749 = icmp ult i32 0, %t748 br i1 %t749, label %ixok188, label %ixbad189 ixbad189: %t750 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t750, ptr @.fmt_bounds, ptr @.str9334, i32 0, i32 %t748) call void @exit(i32 1) unreachable ixok188: %t751 = getelementptr inbounds ptr, ptr %t746, i32 0 %t752 = load ptr, ptr %t751 %t753 = call ptr @fn_emit_expr(ptr %t752) %t754 = call ptr @fn_emit_sized_slice(ptr @.str9333, ptr %t753) store ptr %t754, ptr %retval br label %ret ifend187: %t756 = load ptr, ptr %t48 %t757 = call i32 @lp_str_eq(ptr %t756, ptr @.str9335) %t758 = icmp ne i32 %t757, 0 %t759 = zext i1 %t758 to i32 store i32 %t759, ptr %t755 br i1 %t758, label %sc190, label %scend191 sc190: %t760 = load ptr, ptr %t48 %t761 = call ptr @fn_find_fn(ptr %t760) %t762 = icmp eq ptr %t761, null %t763 = zext i1 %t762 to i32 %t764 = icmp ne i32 %t763, 0 %t765 = zext i1 %t764 to i32 store i32 %t765, ptr %t755 br label %scend191 scend191: %t766 = load i32, ptr %t755 %t767 = icmp ne i32 %t766, 0 br i1 %t767, label %then192, label %ifend194 then192: %t768 = load ptr, ptr %t0 %t769 = getelementptr inbounds %Cmp_Node, ptr %t768, i32 0, i32 7 %t770 = load ptr, ptr %t769 %t771 = getelementptr inbounds %LSlice, ptr %t770, i32 0, i32 0 %t772 = load ptr, ptr %t771 %t773 = getelementptr inbounds %LSlice, ptr %t770, i32 0, i32 1 %t774 = load i32, ptr %t773 %t775 = icmp ult i32 0, %t774 br i1 %t775, label %ixok195, label %ixbad196 ixbad196: %t776 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t776, ptr @.fmt_bounds, ptr @.str9337, i32 0, i32 %t774) call void @exit(i32 1) unreachable ixok195: %t777 = getelementptr inbounds ptr, ptr %t772, i32 0 %t778 = load ptr, ptr %t777 %t779 = call ptr @fn_emit_expr(ptr %t778) %t780 = call ptr @fn_emit_sized_slice(ptr @.str9336, ptr %t779) store ptr %t780, ptr %retval br label %ret ifend194: %t781 = load ptr, ptr %t48 %t782 = call i32 @lp_str_eq(ptr %t781, ptr @.str9338) %t783 = icmp ne i32 %t782, 0 br i1 %t783, label %then197, label %ifend199 then197: %t784 = load ptr, ptr %t0 %t785 = call ptr @fn_emit_view(ptr %t784) store ptr %t785, ptr %retval br label %ret ifend199: %t786 = load ptr, ptr %t48 %t787 = call i32 @lp_str_eq(ptr %t786, ptr @.str9339) %t788 = icmp ne i32 %t787, 0 br i1 %t788, label %then200, label %ifend202 then200: %t789 = load ptr, ptr %t0 %t790 = getelementptr inbounds %Cmp_Node, ptr %t789, i32 0, i32 7 %t791 = load ptr, ptr %t790 %t792 = getelementptr inbounds %LSlice, ptr %t791, i32 0, i32 0 %t793 = load ptr, ptr %t792 %t794 = getelementptr inbounds %LSlice, ptr %t791, i32 0, i32 1 %t795 = load i32, ptr %t794 %t796 = icmp ult i32 0, %t795 br i1 %t796, label %ixok203, label %ixbad204 ixbad204: %t797 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t797, ptr @.fmt_bounds, ptr @.str9340, i32 0, i32 %t795) call void @exit(i32 1) unreachable ixok203: %t798 = getelementptr inbounds ptr, ptr %t793, i32 0 %t799 = load ptr, ptr %t798 %t800 = call ptr @fn_emit_expr(ptr %t799) store ptr %t800, ptr %t801 %t802 = load ptr, ptr %t801 %t803 = getelementptr inbounds %Cmp_Val, ptr %t802, i32 0, i32 0 %t804 = load ptr, ptr %t803 %t805 = call ptr @fn_slice_field(ptr %t804, i32 0) %t806 = call ptr @lp_str_concat(ptr @.str9341, ptr %t805) %t807 = call ptr @fn_emit_bind(ptr %t806) %t808 = call ptr @fn_val(ptr %t807, ptr @.str9342) store ptr %t808, ptr %retval br label %ret ifend202: %t809 = load ptr, ptr %t48 %t810 = call i32 @lp_str_eq(ptr %t809, ptr @.str9343) %t811 = icmp ne i32 %t810, 0 br i1 %t811, label %then205, label %ifend207 then205: %t812 = load ptr, ptr %t0 %t813 = getelementptr inbounds %Cmp_Node, ptr %t812, i32 0, i32 7 %t814 = load ptr, ptr %t813 %t815 = getelementptr inbounds %LSlice, ptr %t814, i32 0, i32 0 %t816 = load ptr, ptr %t815 %t817 = getelementptr inbounds %LSlice, ptr %t814, i32 0, i32 1 %t818 = load i32, ptr %t817 %t819 = icmp ult i32 0, %t818 br i1 %t819, label %ixok208, label %ixbad209 ixbad209: %t820 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t820, ptr @.fmt_bounds, ptr @.str9344, i32 0, i32 %t818) call void @exit(i32 1) unreachable ixok208: %t821 = getelementptr inbounds ptr, ptr %t816, i32 0 %t822 = load ptr, ptr %t821 %t823 = call ptr @fn_emit_expr(ptr %t822) store ptr %t823, ptr %t824 %t825 = load ptr, ptr %t824 %t826 = getelementptr inbounds %Cmp_Val, ptr %t825, i32 0, i32 1 %t827 = load ptr, ptr %t826 %t828 = call i32 @fn_is_fp(ptr %t827) %t829 = icmp ne i32 %t828, 0 br i1 %t829, label %then210, label %ifend212 then210: %t830 = load ptr, ptr %t824 %t831 = call ptr @fn_emit_fp_to_fixed(ptr %t830) store ptr %t831, ptr %retval br label %ret ifend212: %t832 = load ptr, ptr %t824 %t833 = getelementptr inbounds %Cmp_Val, ptr %t832, i32 0, i32 2 %t834 = load ptr, ptr %t833 %t835 = icmp ne ptr %t834, null %t836 = zext i1 %t835 to i32 %t837 = icmp ne i32 %t836, 0 br i1 %t837, label %then213, label %ifend215 then213: %t838 = load ptr, ptr %t824 %t839 = getelementptr inbounds %Cmp_Val, ptr %t838, i32 0, i32 0 %t840 = load ptr, ptr %t839 %t841 = call ptr @fn_val(ptr %t840, ptr @.str9345) store ptr %t841, ptr %retval br label %ret ifend215: %t842 = load ptr, ptr %t824 %t843 = getelementptr inbounds %Cmp_Val, ptr %t842, i32 0, i32 0 %t844 = load ptr, ptr %t843 %t845 = call ptr @lp_str_concat(ptr @.str9346, ptr %t844) %t846 = call ptr @lp_str_concat(ptr %t845, ptr @.str9347) %t847 = call ptr @fn_emit_bind(ptr %t846) %t848 = call ptr @fn_val(ptr %t847, ptr @.str9348) store ptr %t848, ptr %retval br label %ret ifend207: %t852 = load ptr, ptr %t48 %t853 = call i32 @lp_str_eq(ptr %t852, ptr @.str9349) %t854 = icmp ne i32 %t853, 0 %t855 = zext i1 %t854 to i32 store i32 %t855, ptr %t851 br i1 %t854, label %scend217, label %sc216 sc216: %t856 = load ptr, ptr %t48 %t857 = call i32 @lp_str_eq(ptr %t856, ptr @.str9350) %t858 = icmp ne i32 %t857, 0 %t859 = zext i1 %t858 to i32 store i32 %t859, ptr %t851 br label %scend217 scend217: %t860 = load i32, ptr %t851 %t861 = icmp ne i32 %t860, 0 %t862 = zext i1 %t861 to i32 store i32 %t862, ptr %t850 br i1 %t861, label %sc218, label %scend219 sc218: %t863 = load ptr, ptr %t48 %t864 = call ptr @fn_find_fn(ptr %t863) %t865 = icmp eq ptr %t864, null %t866 = zext i1 %t865 to i32 %t867 = icmp ne i32 %t866, 0 %t868 = zext i1 %t867 to i32 store i32 %t868, ptr %t850 br label %scend219 scend219: %t869 = load i32, ptr %t850 %t870 = icmp ne i32 %t869, 0 %t871 = zext i1 %t870 to i32 store i32 %t871, ptr %t849 br i1 %t870, label %sc220, label %scend221 sc220: %t872 = load ptr, ptr %t0 %t873 = getelementptr inbounds %Cmp_Node, ptr %t872, i32 0, i32 7 %t874 = load ptr, ptr %t873 %t875 = getelementptr inbounds %LSlice, ptr %t874, i32 0, i32 1 %t876 = load i32, ptr %t875 %t877 = icmp eq i32 %t876, 1 %t878 = zext i1 %t877 to i32 %t879 = icmp ne i32 %t878, 0 %t880 = zext i1 %t879 to i32 store i32 %t880, ptr %t849 br label %scend221 scend221: %t881 = load i32, ptr %t849 %t882 = icmp ne i32 %t881, 0 br i1 %t882, label %then222, label %ifend224 then222: %t883 = load ptr, ptr %t48 %t884 = load ptr, ptr %t0 %t885 = getelementptr inbounds %Cmp_Node, ptr %t884, i32 0, i32 7 %t886 = load ptr, ptr %t885 %t887 = getelementptr inbounds %LSlice, ptr %t886, i32 0, i32 0 %t888 = load ptr, ptr %t887 %t889 = getelementptr inbounds %LSlice, ptr %t886, i32 0, i32 1 %t890 = load i32, ptr %t889 %t891 = icmp ult i32 0, %t890 br i1 %t891, label %ixok225, label %ixbad226 ixbad226: %t892 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t892, ptr @.fmt_bounds, ptr @.str9351, i32 0, i32 %t890) call void @exit(i32 1) unreachable ixok225: %t893 = getelementptr inbounds ptr, ptr %t888, i32 0 %t894 = load ptr, ptr %t893 %t895 = call ptr @fn_emit_expr(ptr %t894) %t896 = call ptr @fn_emit_fp_convert(ptr %t883, ptr %t895) store ptr %t896, ptr %retval br label %ret ifend224: %t899 = load ptr, ptr %t48 %t900 = call i32 @lp_str_eq(ptr %t899, ptr @.str9352) %t901 = icmp ne i32 %t900, 0 %t902 = zext i1 %t901 to i32 store i32 %t902, ptr %t898 br i1 %t901, label %sc227, label %scend228 sc227: %t903 = load ptr, ptr %t48 %t904 = call ptr @fn_find_fn(ptr %t903) %t905 = icmp eq ptr %t904, null %t906 = zext i1 %t905 to i32 %t907 = icmp ne i32 %t906, 0 %t908 = zext i1 %t907 to i32 store i32 %t908, ptr %t898 br label %scend228 scend228: %t909 = load i32, ptr %t898 %t910 = icmp ne i32 %t909, 0 %t911 = zext i1 %t910 to i32 store i32 %t911, ptr %t897 br i1 %t910, label %sc229, label %scend230 sc229: %t912 = load ptr, ptr %t0 %t913 = getelementptr inbounds %Cmp_Node, ptr %t912, i32 0, i32 7 %t914 = load ptr, ptr %t913 %t915 = getelementptr inbounds %LSlice, ptr %t914, i32 0, i32 1 %t916 = load i32, ptr %t915 %t917 = icmp eq i32 %t916, 1 %t918 = zext i1 %t917 to i32 %t919 = icmp ne i32 %t918, 0 %t920 = zext i1 %t919 to i32 store i32 %t920, ptr %t897 br label %scend230 scend230: %t921 = load i32, ptr %t897 %t922 = icmp ne i32 %t921, 0 br i1 %t922, label %then231, label %ifend233 then231: %t923 = load ptr, ptr %t0 %t924 = getelementptr inbounds %Cmp_Node, ptr %t923, i32 0, i32 7 %t925 = load ptr, ptr %t924 %t926 = getelementptr inbounds %LSlice, ptr %t925, i32 0, i32 0 %t927 = load ptr, ptr %t926 %t928 = getelementptr inbounds %LSlice, ptr %t925, i32 0, i32 1 %t929 = load i32, ptr %t928 %t930 = icmp ult i32 0, %t929 br i1 %t930, label %ixok234, label %ixbad235 ixbad235: %t931 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t931, ptr @.fmt_bounds, ptr @.str9353, i32 0, i32 %t929) call void @exit(i32 1) unreachable ixok234: %t932 = getelementptr inbounds ptr, ptr %t927, i32 0 %t933 = load ptr, ptr %t932 %t934 = call ptr @fn_emit_expr(ptr %t933) store ptr %t934, ptr %t935 %t936 = load ptr, ptr %t935 %t937 = getelementptr inbounds %Cmp_Val, ptr %t936, i32 0, i32 1 %t938 = load ptr, ptr %t937 %t939 = call i32 @fn_is_fp(ptr %t938) %t940 = icmp ne i32 %t939, 0 br i1 %t940, label %then236, label %ifend238 then236: %t941 = load ptr, ptr %t935 %t942 = call ptr @fn_emit_fp_to_int(ptr %t941) store ptr %t942, ptr %retval br label %ret ifend238: %t943 = load ptr, ptr %t935 %t944 = getelementptr inbounds %Cmp_Val, ptr %t943, i32 0, i32 1 %t945 = load ptr, ptr %t944 %t946 = call i32 @lp_str_eq(ptr %t945, ptr @.str9354) %t947 = icmp ne i32 %t946, 0 br i1 %t947, label %then239, label %ifend241 then239: %t948 = load ptr, ptr %t935 %t949 = getelementptr inbounds %Cmp_Val, ptr %t948, i32 0, i32 0 %t950 = load ptr, ptr %t949 %t951 = call ptr @lp_str_concat(ptr @.str9355, ptr %t950) %t952 = call ptr @lp_str_concat(ptr %t951, ptr @.str9356) %t953 = call ptr @fn_emit_bind(ptr %t952) %t954 = call ptr @fn_val(ptr %t953, ptr @.str9357) store ptr %t954, ptr %retval br label %ret ifend241: %t955 = load ptr, ptr %t935 %t956 = getelementptr inbounds %Cmp_Val, ptr %t955, i32 0, i32 1 %t957 = load ptr, ptr %t956 %t958 = call ptr @fn_llty(ptr %t957) %t959 = call i32 @lp_str_eq(ptr %t958, ptr @.str9358) %t960 = icmp ne i32 %t959, 0 br i1 %t960, label %then242, label %ifend244 then242: %t961 = load ptr, ptr %t935 %t962 = getelementptr inbounds %Cmp_Val, ptr %t961, i32 0, i32 0 %t963 = load ptr, ptr %t962 %t964 = call ptr @lp_str_concat(ptr @.str9359, ptr %t963) %t965 = call ptr @lp_str_concat(ptr %t964, ptr @.str9360) %t966 = call ptr @fn_emit_bind(ptr %t965) %t967 = call ptr @fn_val(ptr %t966, ptr @.str9361) store ptr %t967, ptr %retval br label %ret ifend244: %t968 = load ptr, ptr %t935 %t969 = getelementptr inbounds %Cmp_Val, ptr %t968, i32 0, i32 0 %t970 = load ptr, ptr %t969 %t971 = call ptr @fn_val(ptr %t970, ptr @.str9362) store ptr %t971, ptr %retval br label %ret ifend233: %t974 = load ptr, ptr %t48 %t975 = call i32 @lp_str_eq(ptr %t974, ptr @.str9363) %t976 = icmp ne i32 %t975, 0 %t977 = zext i1 %t976 to i32 store i32 %t977, ptr %t973 br i1 %t976, label %sc245, label %scend246 sc245: %t978 = load ptr, ptr %t48 %t979 = call ptr @fn_find_fn(ptr %t978) %t980 = icmp eq ptr %t979, null %t981 = zext i1 %t980 to i32 %t982 = icmp ne i32 %t981, 0 %t983 = zext i1 %t982 to i32 store i32 %t983, ptr %t973 br label %scend246 scend246: %t984 = load i32, ptr %t973 %t985 = icmp ne i32 %t984, 0 %t986 = zext i1 %t985 to i32 store i32 %t986, ptr %t972 br i1 %t985, label %sc247, label %scend248 sc247: %t987 = load ptr, ptr %t0 %t988 = getelementptr inbounds %Cmp_Node, ptr %t987, i32 0, i32 7 %t989 = load ptr, ptr %t988 %t990 = getelementptr inbounds %LSlice, ptr %t989, i32 0, i32 1 %t991 = load i32, ptr %t990 %t992 = icmp eq i32 %t991, 1 %t993 = zext i1 %t992 to i32 %t994 = icmp ne i32 %t993, 0 %t995 = zext i1 %t994 to i32 store i32 %t995, ptr %t972 br label %scend248 scend248: %t996 = load i32, ptr %t972 %t997 = icmp ne i32 %t996, 0 br i1 %t997, label %then249, label %ifend251 then249: %t998 = load ptr, ptr %t0 %t999 = getelementptr inbounds %Cmp_Node, ptr %t998, i32 0, i32 7 %t1000 = load ptr, ptr %t999 %t1001 = getelementptr inbounds %LSlice, ptr %t1000, i32 0, i32 0 %t1002 = load ptr, ptr %t1001 %t1003 = getelementptr inbounds %LSlice, ptr %t1000, i32 0, i32 1 %t1004 = load i32, ptr %t1003 %t1005 = icmp ult i32 0, %t1004 br i1 %t1005, label %ixok252, label %ixbad253 ixbad253: %t1006 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1006, ptr @.fmt_bounds, ptr @.str9364, i32 0, i32 %t1004) call void @exit(i32 1) unreachable ixok252: %t1007 = getelementptr inbounds ptr, ptr %t1002, i32 0 %t1008 = load ptr, ptr %t1007 %t1009 = call ptr @fn_emit_expr(ptr %t1008) store ptr %t1009, ptr %t1010 %t1011 = load ptr, ptr %t1010 %t1012 = getelementptr inbounds %Cmp_Val, ptr %t1011, i32 0, i32 1 %t1013 = load ptr, ptr %t1012 %t1014 = call i32 @fn_is_fp(ptr %t1013) %t1015 = icmp ne i32 %t1014, 0 br i1 %t1015, label %then254, label %ifend256 then254: %t1016 = load ptr, ptr %t1010 %t1017 = call ptr @fn_emit_fp_to_long(ptr %t1016) store ptr %t1017, ptr %retval br label %ret ifend256: %t1018 = load ptr, ptr %t1010 %t1019 = call ptr @fn_to_long(ptr %t1018) %t1020 = call ptr @fn_val(ptr %t1019, ptr @.str9365) store ptr %t1020, ptr %retval br label %ret ifend251: %t1022 = load ptr, ptr %t48 %t1023 = call i32 @lp_str_eq(ptr %t1022, ptr @.str9366) %t1024 = icmp ne i32 %t1023, 0 %t1025 = zext i1 %t1024 to i32 store i32 %t1025, ptr %t1021 br i1 %t1024, label %sc257, label %scend258 sc257: %t1026 = load ptr, ptr %t48 %t1027 = call ptr @fn_find_fn(ptr %t1026) %t1028 = icmp eq ptr %t1027, null %t1029 = zext i1 %t1028 to i32 %t1030 = icmp ne i32 %t1029, 0 %t1031 = zext i1 %t1030 to i32 store i32 %t1031, ptr %t1021 br label %scend258 scend258: %t1032 = load i32, ptr %t1021 %t1033 = icmp ne i32 %t1032, 0 br i1 %t1033, label %then259, label %ifend261 then259: %t1034 = load ptr, ptr %t0 %t1035 = getelementptr inbounds %Cmp_Node, ptr %t1034, i32 0, i32 7 %t1036 = load ptr, ptr %t1035 %t1037 = getelementptr inbounds %LSlice, ptr %t1036, i32 0, i32 0 %t1038 = load ptr, ptr %t1037 %t1039 = getelementptr inbounds %LSlice, ptr %t1036, i32 0, i32 1 %t1040 = load i32, ptr %t1039 %t1041 = icmp ult i32 0, %t1040 br i1 %t1041, label %ixok262, label %ixbad263 ixbad263: %t1042 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1042, ptr @.fmt_bounds, ptr @.str9367, i32 0, i32 %t1040) call void @exit(i32 1) unreachable ixok262: %t1043 = getelementptr inbounds ptr, ptr %t1038, i32 0 %t1044 = load ptr, ptr %t1043 %t1045 = call ptr @fn_emit_expr(ptr %t1044) %t1046 = call ptr @fn_emit_float_bits(ptr %t1045) store ptr %t1046, ptr %retval br label %ret ifend261: %t1048 = load ptr, ptr %t48 %t1049 = call i32 @lp_str_eq(ptr %t1048, ptr @.str9368) %t1050 = icmp ne i32 %t1049, 0 %t1051 = zext i1 %t1050 to i32 store i32 %t1051, ptr %t1047 br i1 %t1050, label %sc264, label %scend265 sc264: %t1052 = load ptr, ptr %t48 %t1053 = call ptr @fn_find_fn(ptr %t1052) %t1054 = icmp eq ptr %t1053, null %t1055 = zext i1 %t1054 to i32 %t1056 = icmp ne i32 %t1055, 0 %t1057 = zext i1 %t1056 to i32 store i32 %t1057, ptr %t1047 br label %scend265 scend265: %t1058 = load i32, ptr %t1047 %t1059 = icmp ne i32 %t1058, 0 br i1 %t1059, label %then266, label %ifend268 then266: %t1060 = load ptr, ptr %t0 %t1061 = getelementptr inbounds %Cmp_Node, ptr %t1060, i32 0, i32 7 %t1062 = load ptr, ptr %t1061 %t1063 = getelementptr inbounds %LSlice, ptr %t1062, i32 0, i32 0 %t1064 = load ptr, ptr %t1063 %t1065 = getelementptr inbounds %LSlice, ptr %t1062, i32 0, i32 1 %t1066 = load i32, ptr %t1065 %t1067 = icmp ult i32 0, %t1066 br i1 %t1067, label %ixok269, label %ixbad270 ixbad270: %t1068 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1068, ptr @.fmt_bounds, ptr @.str9369, i32 0, i32 %t1066) call void @exit(i32 1) unreachable ixok269: %t1069 = getelementptr inbounds ptr, ptr %t1064, i32 0 %t1070 = load ptr, ptr %t1069 %t1071 = call ptr @fn_emit_expr(ptr %t1070) %t1072 = call ptr @fn_emit_float_from_bits(ptr %t1071) store ptr %t1072, ptr %retval br label %ret ifend268: %t1074 = load ptr, ptr %t48 %t1075 = call i32 @lp_str_eq(ptr %t1074, ptr @.str9370) %t1076 = icmp ne i32 %t1075, 0 %t1077 = zext i1 %t1076 to i32 store i32 %t1077, ptr %t1073 br i1 %t1076, label %sc271, label %scend272 sc271: %t1078 = load ptr, ptr %t48 %t1079 = call ptr @fn_find_fn(ptr %t1078) %t1080 = icmp eq ptr %t1079, null %t1081 = zext i1 %t1080 to i32 %t1082 = icmp ne i32 %t1081, 0 %t1083 = zext i1 %t1082 to i32 store i32 %t1083, ptr %t1073 br label %scend272 scend272: %t1084 = load i32, ptr %t1073 %t1085 = icmp ne i32 %t1084, 0 br i1 %t1085, label %then273, label %ifend275 then273: %t1086 = load ptr, ptr %t0 %t1087 = getelementptr inbounds %Cmp_Node, ptr %t1086, i32 0, i32 7 %t1088 = load ptr, ptr %t1087 %t1089 = getelementptr inbounds %LSlice, ptr %t1088, i32 0, i32 0 %t1090 = load ptr, ptr %t1089 %t1091 = getelementptr inbounds %LSlice, ptr %t1088, i32 0, i32 1 %t1092 = load i32, ptr %t1091 %t1093 = icmp ult i32 0, %t1092 br i1 %t1093, label %ixok276, label %ixbad277 ixbad277: %t1094 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1094, ptr @.fmt_bounds, ptr @.str9371, i32 0, i32 %t1092) call void @exit(i32 1) unreachable ixok276: %t1095 = getelementptr inbounds ptr, ptr %t1090, i32 0 %t1096 = load ptr, ptr %t1095 %t1097 = call ptr @fn_emit_expr(ptr %t1096) %t1098 = call ptr @fn_emit_double_bits(ptr %t1097) store ptr %t1098, ptr %retval br label %ret ifend275: %t1100 = load ptr, ptr %t48 %t1101 = call i32 @lp_str_eq(ptr %t1100, ptr @.str9372) %t1102 = icmp ne i32 %t1101, 0 %t1103 = zext i1 %t1102 to i32 store i32 %t1103, ptr %t1099 br i1 %t1102, label %sc278, label %scend279 sc278: %t1104 = load ptr, ptr %t48 %t1105 = call ptr @fn_find_fn(ptr %t1104) %t1106 = icmp eq ptr %t1105, null %t1107 = zext i1 %t1106 to i32 %t1108 = icmp ne i32 %t1107, 0 %t1109 = zext i1 %t1108 to i32 store i32 %t1109, ptr %t1099 br label %scend279 scend279: %t1110 = load i32, ptr %t1099 %t1111 = icmp ne i32 %t1110, 0 br i1 %t1111, label %then280, label %ifend282 then280: %t1112 = load ptr, ptr %t0 %t1113 = getelementptr inbounds %Cmp_Node, ptr %t1112, i32 0, i32 7 %t1114 = load ptr, ptr %t1113 %t1115 = getelementptr inbounds %LSlice, ptr %t1114, i32 0, i32 0 %t1116 = load ptr, ptr %t1115 %t1117 = getelementptr inbounds %LSlice, ptr %t1114, i32 0, i32 1 %t1118 = load i32, ptr %t1117 %t1119 = icmp ult i32 0, %t1118 br i1 %t1119, label %ixok283, label %ixbad284 ixbad284: %t1120 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1120, ptr @.fmt_bounds, ptr @.str9373, i32 0, i32 %t1118) call void @exit(i32 1) unreachable ixok283: %t1121 = getelementptr inbounds ptr, ptr %t1116, i32 0 %t1122 = load ptr, ptr %t1121 %t1123 = call ptr @fn_emit_expr(ptr %t1122) %t1124 = call ptr @fn_emit_double_from_bits(ptr %t1123) store ptr %t1124, ptr %retval br label %ret ifend282: %t1127 = load ptr, ptr %t48 %t1128 = call i32 @lp_str_eq(ptr %t1127, ptr @.str9374) %t1129 = icmp ne i32 %t1128, 0 %t1130 = zext i1 %t1129 to i32 store i32 %t1130, ptr %t1126 br i1 %t1129, label %scend286, label %sc285 sc285: %t1131 = load ptr, ptr %t48 %t1132 = call i32 @lp_str_eq(ptr %t1131, ptr @.str9375) %t1133 = icmp ne i32 %t1132, 0 %t1134 = zext i1 %t1133 to i32 store i32 %t1134, ptr %t1126 br label %scend286 scend286: %t1135 = load i32, ptr %t1126 %t1136 = icmp ne i32 %t1135, 0 %t1137 = zext i1 %t1136 to i32 store i32 %t1137, ptr %t1125 br i1 %t1136, label %sc287, label %scend288 sc287: %t1138 = load ptr, ptr %t48 %t1139 = call ptr @fn_find_fn(ptr %t1138) %t1140 = icmp eq ptr %t1139, null %t1141 = zext i1 %t1140 to i32 %t1142 = icmp ne i32 %t1141, 0 %t1143 = zext i1 %t1142 to i32 store i32 %t1143, ptr %t1125 br label %scend288 scend288: %t1144 = load i32, ptr %t1125 %t1145 = icmp ne i32 %t1144, 0 br i1 %t1145, label %then289, label %ifend291 then289: store ptr @.str9376, ptr %t1146 %t1147 = load ptr, ptr %t48 %t1148 = call i32 @lp_str_eq(ptr %t1147, ptr @.str9377) %t1149 = icmp ne i32 %t1148, 0 br i1 %t1149, label %then292, label %ifend294 then292: store ptr @.str9378, ptr %t1146 br label %ifend294 ifend294: %t1150 = load ptr, ptr %t1146 %t1151 = load ptr, ptr %t0 %t1152 = getelementptr inbounds %Cmp_Node, ptr %t1151, i32 0, i32 7 %t1153 = load ptr, ptr %t1152 %t1154 = getelementptr inbounds %LSlice, ptr %t1153, i32 0, i32 0 %t1155 = load ptr, ptr %t1154 %t1156 = getelementptr inbounds %LSlice, ptr %t1153, i32 0, i32 1 %t1157 = load i32, ptr %t1156 %t1158 = icmp ult i32 0, %t1157 br i1 %t1158, label %ixok295, label %ixbad296 ixbad296: %t1159 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1159, ptr @.fmt_bounds, ptr @.str9379, i32 0, i32 %t1157) call void @exit(i32 1) unreachable ixok295: %t1160 = getelementptr inbounds ptr, ptr %t1155, i32 0 %t1161 = load ptr, ptr %t1160 %t1162 = call ptr @fn_emit_expr(ptr %t1161) %t1163 = call ptr @fn_emit_sized_slice(ptr %t1150, ptr %t1162) store ptr %t1163, ptr %retval br label %ret ifend291: %t1164 = load ptr, ptr %t48 %t1165 = call i32 @lp_str_eq(ptr %t1164, ptr @.str9380) %t1166 = icmp ne i32 %t1165, 0 br i1 %t1166, label %then297, label %ifend299 then297: %t1167 = load ptr, ptr %t0 %t1168 = getelementptr inbounds %Cmp_Node, ptr %t1167, i32 0, i32 7 %t1169 = load ptr, ptr %t1168 %t1170 = getelementptr inbounds %LSlice, ptr %t1169, i32 0, i32 0 %t1171 = load ptr, ptr %t1170 %t1172 = getelementptr inbounds %LSlice, ptr %t1169, i32 0, i32 1 %t1173 = load i32, ptr %t1172 %t1174 = icmp ult i32 0, %t1173 br i1 %t1174, label %ixok300, label %ixbad301 ixbad301: %t1175 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1175, ptr @.fmt_bounds, ptr @.str9381, i32 0, i32 %t1173) call void @exit(i32 1) unreachable ixok300: %t1176 = getelementptr inbounds ptr, ptr %t1171, i32 0 %t1177 = load ptr, ptr %t1176 %t1178 = call ptr @fn_emit_expr(ptr %t1177) store ptr %t1178, ptr %t1179 %t1180 = load ptr, ptr %t1179 %t1181 = getelementptr inbounds %Cmp_Val, ptr %t1180, i32 0, i32 0 %t1182 = load ptr, ptr %t1181 %t1183 = call ptr @lp_str_concat(ptr @.str9382, ptr %t1182) %t1184 = call ptr @lp_str_concat(ptr %t1183, ptr @.str9383) %t1185 = call ptr @fn_emit_bind(ptr %t1184) %t1186 = call ptr @fn_val(ptr %t1185, ptr @.str9384) store ptr %t1186, ptr %retval br label %ret ifend299: %t1187 = load ptr, ptr %t48 %t1188 = call i32 @lp_str_eq(ptr %t1187, ptr @.str9385) %t1189 = icmp ne i32 %t1188, 0 br i1 %t1189, label %then302, label %ifend304 then302: store i32 1, ptr @g_g_uses_expect %t1190 = load ptr, ptr %t0 %t1191 = getelementptr inbounds %Cmp_Node, ptr %t1190, i32 0, i32 7 %t1192 = load ptr, ptr %t1191 %t1193 = getelementptr inbounds %LSlice, ptr %t1192, i32 0, i32 0 %t1194 = load ptr, ptr %t1193 %t1195 = getelementptr inbounds %LSlice, ptr %t1192, i32 0, i32 1 %t1196 = load i32, ptr %t1195 %t1197 = icmp ult i32 0, %t1196 br i1 %t1197, label %ixok305, label %ixbad306 ixbad306: %t1198 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1198, ptr @.fmt_bounds, ptr @.str9386, i32 0, i32 %t1196) call void @exit(i32 1) unreachable ixok305: %t1199 = getelementptr inbounds ptr, ptr %t1194, i32 0 %t1200 = load ptr, ptr %t1199 %t1201 = call ptr @fn_emit_expr(ptr %t1200) store ptr %t1201, ptr %t1202 %t1203 = load ptr, ptr %t1202 %t1204 = getelementptr inbounds %Cmp_Val, ptr %t1203, i32 0, i32 0 %t1205 = load ptr, ptr %t1204 %t1206 = call ptr @lp_str_concat(ptr @.str9387, ptr %t1205) %t1207 = call ptr @lp_str_concat(ptr %t1206, ptr @.str9388) %t1208 = call ptr @fn_emit_bind(ptr %t1207) store ptr %t1208, ptr %t1209 %t1210 = load ptr, ptr %t0 %t1211 = call ptr @fn_expect_where(ptr %t1210) %t1212 = call ptr @lp_str_concat(ptr %t1211, ptr @.str9389) %t1213 = call ptr @fn_emit_str_const(ptr %t1212) store ptr %t1213, ptr %t1214 %t1215 = load ptr, ptr %t1209 %t1216 = load ptr, ptr %t1214 call void @fn_emit_expect_fail(ptr %t1215, ptr %t1216, ptr @.str9390, ptr @.str9391) %t1217 = call ptr @fn_val(ptr @.str9392, ptr @.str9393) store ptr %t1217, ptr %retval br label %ret ifend304: %t1218 = load ptr, ptr %t48 %t1219 = call i32 @lp_str_eq(ptr %t1218, ptr @.str9394) %t1220 = icmp ne i32 %t1219, 0 br i1 %t1220, label %then307, label %ifend309 then307: store i32 1, ptr @g_g_uses_expect %t1221 = load ptr, ptr %t0 %t1222 = getelementptr inbounds %Cmp_Node, ptr %t1221, i32 0, i32 7 %t1223 = load ptr, ptr %t1222 %t1224 = getelementptr inbounds %LSlice, ptr %t1223, i32 0, i32 0 %t1225 = load ptr, ptr %t1224 %t1226 = getelementptr inbounds %LSlice, ptr %t1223, i32 0, i32 1 %t1227 = load i32, ptr %t1226 %t1228 = icmp ult i32 0, %t1227 br i1 %t1228, label %ixok310, label %ixbad311 ixbad311: %t1229 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1229, ptr @.fmt_bounds, ptr @.str9395, i32 0, i32 %t1227) call void @exit(i32 1) unreachable ixok310: %t1230 = getelementptr inbounds ptr, ptr %t1225, i32 0 %t1231 = load ptr, ptr %t1230 %t1232 = call ptr @fn_emit_expr(ptr %t1231) store ptr %t1232, ptr %t1233 %t1234 = load ptr, ptr %t0 %t1235 = getelementptr inbounds %Cmp_Node, ptr %t1234, i32 0, i32 7 %t1236 = load ptr, ptr %t1235 %t1237 = getelementptr inbounds %LSlice, ptr %t1236, i32 0, i32 0 %t1238 = load ptr, ptr %t1237 %t1239 = getelementptr inbounds %LSlice, ptr %t1236, i32 0, i32 1 %t1240 = load i32, ptr %t1239 %t1241 = icmp ult i32 1, %t1240 br i1 %t1241, label %ixok312, label %ixbad313 ixbad313: %t1242 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1242, ptr @.fmt_bounds, ptr @.str9396, i32 1, i32 %t1240) call void @exit(i32 1) unreachable ixok312: %t1243 = getelementptr inbounds ptr, ptr %t1238, i32 1 %t1244 = load ptr, ptr %t1243 %t1245 = call ptr @fn_emit_expr(ptr %t1244) store ptr %t1245, ptr %t1246 %t1248 = load ptr, ptr %t1233 %t1249 = getelementptr inbounds %Cmp_Val, ptr %t1248, i32 0, i32 1 %t1250 = load ptr, ptr %t1249 %t1251 = call i32 @fn_is_fp(ptr %t1250) %t1252 = icmp ne i32 %t1251, 0 %t1253 = zext i1 %t1252 to i32 store i32 %t1253, ptr %t1247 br i1 %t1252, label %scend315, label %sc314 sc314: %t1254 = load ptr, ptr %t1246 %t1255 = getelementptr inbounds %Cmp_Val, ptr %t1254, i32 0, i32 1 %t1256 = load ptr, ptr %t1255 %t1257 = call i32 @fn_is_fp(ptr %t1256) %t1258 = icmp ne i32 %t1257, 0 %t1259 = zext i1 %t1258 to i32 store i32 %t1259, ptr %t1247 br label %scend315 scend315: %t1260 = load i32, ptr %t1247 %t1261 = icmp ne i32 %t1260, 0 br i1 %t1261, label %then316, label %ifend318 then316: %t1262 = load ptr, ptr %t0 %t1263 = load ptr, ptr %t1233 %t1264 = load ptr, ptr %t1246 %t1265 = call ptr @fn_emit_expect_fp(ptr %t1262, ptr %t1263, ptr %t1264, ptr null) store ptr %t1265, ptr %retval br label %ret ifend318: %t1266 = load ptr, ptr %t1233 %t1267 = getelementptr inbounds %Cmp_Val, ptr %t1266, i32 0, i32 0 %t1268 = load ptr, ptr %t1267 %t1269 = call ptr @lp_str_concat(ptr @.str9397, ptr %t1268) %t1270 = call ptr @lp_str_concat(ptr %t1269, ptr @.str9398) %t1271 = load ptr, ptr %t1246 %t1272 = getelementptr inbounds %Cmp_Val, ptr %t1271, i32 0, i32 0 %t1273 = load ptr, ptr %t1272 %t1274 = call ptr @lp_str_concat(ptr %t1270, ptr %t1273) %t1275 = call ptr @fn_emit_bind(ptr %t1274) store ptr %t1275, ptr %t1276 %t1277 = load ptr, ptr %t0 %t1278 = call ptr @fn_expect_where(ptr %t1277) %t1279 = call ptr @lp_str_concat(ptr %t1278, ptr @.str9399) %t1280 = call ptr @fn_emit_str_const(ptr %t1279) store ptr %t1280, ptr %t1281 %t1282 = load ptr, ptr %t1276 %t1283 = load ptr, ptr %t1281 %t1284 = load ptr, ptr %t1233 %t1285 = getelementptr inbounds %Cmp_Val, ptr %t1284, i32 0, i32 0 %t1286 = load ptr, ptr %t1285 %t1287 = load ptr, ptr %t1246 %t1288 = getelementptr inbounds %Cmp_Val, ptr %t1287, i32 0, i32 0 %t1289 = load ptr, ptr %t1288 call void @fn_emit_expect_fail(ptr %t1282, ptr %t1283, ptr %t1286, ptr %t1289) %t1290 = call ptr @fn_val(ptr @.str9400, ptr @.str9401) store ptr %t1290, ptr %retval br label %ret ifend309: %t1291 = load ptr, ptr %t48 %t1292 = call i32 @lp_str_eq(ptr %t1291, ptr @.str9402) %t1293 = icmp ne i32 %t1292, 0 br i1 %t1293, label %then319, label %ifend321 then319: store i32 1, ptr @g_g_uses_expect %t1294 = load ptr, ptr %t0 %t1295 = getelementptr inbounds %Cmp_Node, ptr %t1294, i32 0, i32 7 %t1296 = load ptr, ptr %t1295 %t1297 = getelementptr inbounds %LSlice, ptr %t1296, i32 0, i32 0 %t1298 = load ptr, ptr %t1297 %t1299 = getelementptr inbounds %LSlice, ptr %t1296, i32 0, i32 1 %t1300 = load i32, ptr %t1299 %t1301 = icmp ult i32 0, %t1300 br i1 %t1301, label %ixok322, label %ixbad323 ixbad323: %t1302 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1302, ptr @.fmt_bounds, ptr @.str9403, i32 0, i32 %t1300) call void @exit(i32 1) unreachable ixok322: %t1303 = getelementptr inbounds ptr, ptr %t1298, i32 0 %t1304 = load ptr, ptr %t1303 %t1305 = call ptr @fn_emit_expr(ptr %t1304) store ptr %t1305, ptr %t1306 %t1307 = load ptr, ptr %t0 %t1308 = getelementptr inbounds %Cmp_Node, ptr %t1307, i32 0, i32 7 %t1309 = load ptr, ptr %t1308 %t1310 = getelementptr inbounds %LSlice, ptr %t1309, i32 0, i32 0 %t1311 = load ptr, ptr %t1310 %t1312 = getelementptr inbounds %LSlice, ptr %t1309, i32 0, i32 1 %t1313 = load i32, ptr %t1312 %t1314 = icmp ult i32 1, %t1313 br i1 %t1314, label %ixok324, label %ixbad325 ixbad325: %t1315 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1315, ptr @.fmt_bounds, ptr @.str9404, i32 1, i32 %t1313) call void @exit(i32 1) unreachable ixok324: %t1316 = getelementptr inbounds ptr, ptr %t1311, i32 1 %t1317 = load ptr, ptr %t1316 %t1318 = call ptr @fn_emit_expr(ptr %t1317) store ptr %t1318, ptr %t1319 %t1320 = load ptr, ptr %t0 %t1321 = getelementptr inbounds %Cmp_Node, ptr %t1320, i32 0, i32 7 %t1322 = load ptr, ptr %t1321 %t1323 = getelementptr inbounds %LSlice, ptr %t1322, i32 0, i32 0 %t1324 = load ptr, ptr %t1323 %t1325 = getelementptr inbounds %LSlice, ptr %t1322, i32 0, i32 1 %t1326 = load i32, ptr %t1325 %t1327 = icmp ult i32 2, %t1326 br i1 %t1327, label %ixok326, label %ixbad327 ixbad327: %t1328 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1328, ptr @.fmt_bounds, ptr @.str9405, i32 2, i32 %t1326) call void @exit(i32 1) unreachable ixok326: %t1329 = getelementptr inbounds ptr, ptr %t1324, i32 2 %t1330 = load ptr, ptr %t1329 %t1331 = call ptr @fn_emit_expr(ptr %t1330) store ptr %t1331, ptr %t1332 %t1335 = load ptr, ptr %t1306 %t1336 = getelementptr inbounds %Cmp_Val, ptr %t1335, i32 0, i32 1 %t1337 = load ptr, ptr %t1336 %t1338 = call i32 @fn_is_fp(ptr %t1337) %t1339 = icmp ne i32 %t1338, 0 %t1340 = zext i1 %t1339 to i32 store i32 %t1340, ptr %t1334 br i1 %t1339, label %scend329, label %sc328 sc328: %t1341 = load ptr, ptr %t1319 %t1342 = getelementptr inbounds %Cmp_Val, ptr %t1341, i32 0, i32 1 %t1343 = load ptr, ptr %t1342 %t1344 = call i32 @fn_is_fp(ptr %t1343) %t1345 = icmp ne i32 %t1344, 0 %t1346 = zext i1 %t1345 to i32 store i32 %t1346, ptr %t1334 br label %scend329 scend329: %t1347 = load i32, ptr %t1334 %t1348 = icmp ne i32 %t1347, 0 %t1349 = zext i1 %t1348 to i32 store i32 %t1349, ptr %t1333 br i1 %t1348, label %scend331, label %sc330 sc330: %t1350 = load ptr, ptr %t1332 %t1351 = getelementptr inbounds %Cmp_Val, ptr %t1350, i32 0, i32 1 %t1352 = load ptr, ptr %t1351 %t1353 = call i32 @fn_is_fp(ptr %t1352) %t1354 = icmp ne i32 %t1353, 0 %t1355 = zext i1 %t1354 to i32 store i32 %t1355, ptr %t1333 br label %scend331 scend331: %t1356 = load i32, ptr %t1333 %t1357 = icmp ne i32 %t1356, 0 br i1 %t1357, label %then332, label %ifend334 then332: %t1358 = load ptr, ptr %t0 %t1359 = load ptr, ptr %t1306 %t1360 = load ptr, ptr %t1319 %t1361 = load ptr, ptr %t1332 %t1362 = call ptr @fn_emit_expect_fp(ptr %t1358, ptr %t1359, ptr %t1360, ptr %t1361) store ptr %t1362, ptr %retval br label %ret ifend334: %t1363 = load ptr, ptr %t1306 %t1364 = getelementptr inbounds %Cmp_Val, ptr %t1363, i32 0, i32 0 %t1365 = load ptr, ptr %t1364 %t1366 = call ptr @lp_str_concat(ptr @.str9406, ptr %t1365) %t1367 = call ptr @lp_str_concat(ptr %t1366, ptr @.str9407) %t1368 = load ptr, ptr %t1319 %t1369 = getelementptr inbounds %Cmp_Val, ptr %t1368, i32 0, i32 0 %t1370 = load ptr, ptr %t1369 %t1371 = call ptr @lp_str_concat(ptr %t1367, ptr %t1370) %t1372 = call ptr @fn_emit_bind(ptr %t1371) store ptr %t1372, ptr %t1373 %t1374 = load ptr, ptr %t1373 %t1375 = call ptr @lp_str_concat(ptr @.str9408, ptr %t1374) %t1376 = call ptr @fn_emit_bind(ptr %t1375) store ptr %t1376, ptr %t1377 %t1378 = load ptr, ptr %t1373 %t1379 = call ptr @lp_str_concat(ptr @.str9409, ptr %t1378) %t1380 = call ptr @lp_str_concat(ptr %t1379, ptr @.str9410) %t1381 = call ptr @fn_emit_bind(ptr %t1380) store ptr %t1381, ptr %t1382 %t1383 = load ptr, ptr %t1382 %t1384 = call ptr @lp_str_concat(ptr @.str9411, ptr %t1383) %t1385 = call ptr @lp_str_concat(ptr %t1384, ptr @.str9412) %t1386 = load ptr, ptr %t1377 %t1387 = call ptr @lp_str_concat(ptr %t1385, ptr %t1386) %t1388 = call ptr @lp_str_concat(ptr %t1387, ptr @.str9413) %t1389 = load ptr, ptr %t1373 %t1390 = call ptr @lp_str_concat(ptr %t1388, ptr %t1389) %t1391 = call ptr @fn_emit_bind(ptr %t1390) store ptr %t1391, ptr %t1392 %t1393 = load ptr, ptr %t1392 %t1394 = call ptr @lp_str_concat(ptr @.str9414, ptr %t1393) %t1395 = call ptr @lp_str_concat(ptr %t1394, ptr @.str9415) %t1396 = load ptr, ptr %t1332 %t1397 = getelementptr inbounds %Cmp_Val, ptr %t1396, i32 0, i32 0 %t1398 = load ptr, ptr %t1397 %t1399 = call ptr @lp_str_concat(ptr %t1395, ptr %t1398) %t1400 = call ptr @fn_emit_bind(ptr %t1399) store ptr %t1400, ptr %t1401 %t1402 = load ptr, ptr %t0 %t1403 = call ptr @fn_expect_where(ptr %t1402) %t1404 = call ptr @lp_str_concat(ptr %t1403, ptr @.str9416) %t1405 = call ptr @fn_emit_str_const(ptr %t1404) store ptr %t1405, ptr %t1406 %t1407 = load ptr, ptr %t1401 %t1408 = load ptr, ptr %t1406 %t1409 = load ptr, ptr %t1306 %t1410 = getelementptr inbounds %Cmp_Val, ptr %t1409, i32 0, i32 0 %t1411 = load ptr, ptr %t1410 %t1412 = load ptr, ptr %t1319 %t1413 = getelementptr inbounds %Cmp_Val, ptr %t1412, i32 0, i32 0 %t1414 = load ptr, ptr %t1413 call void @fn_emit_expect_fail(ptr %t1407, ptr %t1408, ptr %t1411, ptr %t1414) %t1415 = call ptr @fn_val(ptr @.str9417, ptr @.str9418) store ptr %t1415, ptr %retval br label %ret ifend321: %t1416 = load ptr, ptr %t48 %t1417 = call i32 @lp_str_eq(ptr %t1416, ptr @.str9419) %t1418 = icmp ne i32 %t1417, 0 br i1 %t1418, label %then335, label %ifend337 then335: store i32 1, ptr @g_g_uses_panic %t1419 = load ptr, ptr %t0 %t1420 = getelementptr inbounds %Cmp_Node, ptr %t1419, i32 0, i32 7 %t1421 = load ptr, ptr %t1420 %t1422 = getelementptr inbounds %LSlice, ptr %t1421, i32 0, i32 0 %t1423 = load ptr, ptr %t1422 %t1424 = getelementptr inbounds %LSlice, ptr %t1421, i32 0, i32 1 %t1425 = load i32, ptr %t1424 %t1426 = icmp ult i32 0, %t1425 br i1 %t1426, label %ixok338, label %ixbad339 ixbad339: %t1427 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1427, ptr @.fmt_bounds, ptr @.str9420, i32 0, i32 %t1425) call void @exit(i32 1) unreachable ixok338: %t1428 = getelementptr inbounds ptr, ptr %t1423, i32 0 %t1429 = load ptr, ptr %t1428 %t1430 = call ptr @fn_emit_expr(ptr %t1429) store ptr %t1430, ptr %t1431 %t1432 = load ptr, ptr @g_g_src_name %t1433 = call ptr @lp_str_concat(ptr %t1432, ptr @.str9421) %t1434 = load ptr, ptr %t0 %t1435 = getelementptr inbounds %Cmp_Node, ptr %t1434, i32 0, i32 8 %t1436 = load i32, ptr %t1435 %t1437 = call ptr @fn_itoa(i32 %t1436) %t1438 = call ptr @lp_str_concat(ptr %t1433, ptr %t1437) %t1439 = call ptr @lp_str_concat(ptr %t1438, ptr @.str9422) %t1440 = call ptr @fn_emit_str_const(ptr %t1439) store ptr %t1440, ptr %t1441 %t1442 = call ptr @fn_stdstream_rhs(i32 2) %t1443 = call ptr @fn_emit_bind(ptr %t1442) store ptr %t1443, ptr %t1444 %t1445 = load ptr, ptr %t1444 %t1446 = call ptr @lp_str_concat(ptr @.str9423, ptr %t1445) %t1447 = call ptr @lp_str_concat(ptr %t1446, ptr @.str9424) %t1448 = load ptr, ptr %t1441 %t1449 = call ptr @lp_str_concat(ptr %t1447, ptr %t1448) %t1450 = call ptr @lp_str_concat(ptr %t1449, ptr @.str9425) %t1451 = load ptr, ptr %t1431 %t1452 = getelementptr inbounds %Cmp_Val, ptr %t1451, i32 0, i32 0 %t1453 = load ptr, ptr %t1452 %t1454 = call ptr @lp_str_concat(ptr %t1450, ptr %t1453) %t1455 = call ptr @lp_str_concat(ptr %t1454, ptr @.str9426) call void @fn_emit(ptr %t1455) call void @fn_emit(ptr @.str9427) store i32 1, ptr @g_g_term %t1456 = call ptr @fn_val(ptr @.str9428, ptr @.str9429) store ptr %t1456, ptr %retval br label %ret ifend337: %t1457 = load ptr, ptr %t48 %t1458 = call i32 @lp_str_eq(ptr %t1457, ptr @.str9430) %t1459 = icmp ne i32 %t1458, 0 br i1 %t1459, label %then340, label %ifend342 then340: store i32 1, ptr @g_g_uses_panic %t1460 = load ptr, ptr %t0 %t1461 = getelementptr inbounds %Cmp_Node, ptr %t1460, i32 0, i32 7 %t1462 = load ptr, ptr %t1461 %t1463 = getelementptr inbounds %LSlice, ptr %t1462, i32 0, i32 0 %t1464 = load ptr, ptr %t1463 %t1465 = getelementptr inbounds %LSlice, ptr %t1462, i32 0, i32 1 %t1466 = load i32, ptr %t1465 %t1467 = icmp ult i32 0, %t1466 br i1 %t1467, label %ixok343, label %ixbad344 ixbad344: %t1468 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1468, ptr @.fmt_bounds, ptr @.str9431, i32 0, i32 %t1466) call void @exit(i32 1) unreachable ixok343: %t1469 = getelementptr inbounds ptr, ptr %t1464, i32 0 %t1470 = load ptr, ptr %t1469 %t1471 = call ptr @fn_emit_expr(ptr %t1470) store ptr %t1471, ptr %t1472 %t1473 = load ptr, ptr %t1472 %t1474 = getelementptr inbounds %Cmp_Val, ptr %t1473, i32 0, i32 0 %t1475 = load ptr, ptr %t1474 %t1476 = call ptr @lp_str_concat(ptr @.str9432, ptr %t1475) %t1477 = call ptr @lp_str_concat(ptr %t1476, ptr @.str9433) %t1478 = call ptr @fn_emit_bind(ptr %t1477) store ptr %t1478, ptr %t1479 %t1480 = call ptr @fn_lbl(ptr @.str9434) store ptr %t1480, ptr %t1481 %t1482 = call ptr @fn_lbl(ptr @.str9435) store ptr %t1482, ptr %t1483 %t1484 = load ptr, ptr %t1479 %t1485 = call ptr @lp_str_concat(ptr @.str9436, ptr %t1484) %t1486 = call ptr @lp_str_concat(ptr %t1485, ptr @.str9437) %t1487 = load ptr, ptr %t1481 %t1488 = call ptr @lp_str_concat(ptr %t1486, ptr %t1487) %t1489 = call ptr @lp_str_concat(ptr %t1488, ptr @.str9438) %t1490 = load ptr, ptr %t1483 %t1491 = call ptr @lp_str_concat(ptr %t1489, ptr %t1490) %t1492 = call ptr @lp_str_concat(ptr %t1491, ptr @.str9439) call void @fn_emit(ptr %t1492) %t1493 = load ptr, ptr %t1483 %t1494 = call ptr @lp_str_concat(ptr %t1493, ptr @.str9440) call void @fn_emit(ptr %t1494) %t1495 = load ptr, ptr %t0 %t1496 = getelementptr inbounds %Cmp_Node, ptr %t1495, i32 0, i32 7 %t1497 = load ptr, ptr %t1496 %t1498 = getelementptr inbounds %LSlice, ptr %t1497, i32 0, i32 0 %t1499 = load ptr, ptr %t1498 %t1500 = getelementptr inbounds %LSlice, ptr %t1497, i32 0, i32 1 %t1501 = load i32, ptr %t1500 %t1502 = icmp ult i32 1, %t1501 br i1 %t1502, label %ixok345, label %ixbad346 ixbad346: %t1503 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1503, ptr @.fmt_bounds, ptr @.str9441, i32 1, i32 %t1501) call void @exit(i32 1) unreachable ixok345: %t1504 = getelementptr inbounds ptr, ptr %t1499, i32 1 %t1505 = load ptr, ptr %t1504 %t1506 = call ptr @fn_emit_expr(ptr %t1505) store ptr %t1506, ptr %t1507 %t1508 = load ptr, ptr @g_g_src_name %t1509 = call ptr @lp_str_concat(ptr %t1508, ptr @.str9442) %t1510 = load ptr, ptr %t0 %t1511 = getelementptr inbounds %Cmp_Node, ptr %t1510, i32 0, i32 8 %t1512 = load i32, ptr %t1511 %t1513 = call ptr @fn_itoa(i32 %t1512) %t1514 = call ptr @lp_str_concat(ptr %t1509, ptr %t1513) %t1515 = call ptr @lp_str_concat(ptr %t1514, ptr @.str9443) %t1516 = call ptr @fn_emit_str_const(ptr %t1515) store ptr %t1516, ptr %t1517 %t1518 = call ptr @fn_stdstream_rhs(i32 2) %t1519 = call ptr @fn_emit_bind(ptr %t1518) store ptr %t1519, ptr %t1520 %t1521 = load ptr, ptr %t1520 %t1522 = call ptr @lp_str_concat(ptr @.str9444, ptr %t1521) %t1523 = call ptr @lp_str_concat(ptr %t1522, ptr @.str9445) %t1524 = load ptr, ptr %t1517 %t1525 = call ptr @lp_str_concat(ptr %t1523, ptr %t1524) %t1526 = call ptr @lp_str_concat(ptr %t1525, ptr @.str9446) %t1527 = load ptr, ptr %t1507 %t1528 = getelementptr inbounds %Cmp_Val, ptr %t1527, i32 0, i32 0 %t1529 = load ptr, ptr %t1528 %t1530 = call ptr @lp_str_concat(ptr %t1526, ptr %t1529) %t1531 = call ptr @lp_str_concat(ptr %t1530, ptr @.str9447) call void @fn_emit(ptr %t1531) call void @fn_emit(ptr @.str9448) %t1532 = load ptr, ptr %t1481 %t1533 = call ptr @lp_str_concat(ptr %t1532, ptr @.str9449) call void @fn_emit(ptr %t1533) %t1534 = call ptr @fn_val(ptr @.str9450, ptr @.str9451) store ptr %t1534, ptr %retval br label %ret ifend342: %t1536 = load ptr, ptr %t48 %t1537 = call i32 @lp_str_eq(ptr %t1536, ptr @.str9452) %t1538 = icmp ne i32 %t1537, 0 %t1539 = zext i1 %t1538 to i32 store i32 %t1539, ptr %t1535 br i1 %t1538, label %sc347, label %scend348 sc347: %t1540 = call ptr @fn_find_fn(ptr @.str9453) %t1541 = icmp eq ptr %t1540, null %t1542 = zext i1 %t1541 to i32 %t1543 = icmp ne i32 %t1542, 0 %t1544 = zext i1 %t1543 to i32 store i32 %t1544, ptr %t1535 br label %scend348 scend348: %t1545 = load i32, ptr %t1535 %t1546 = icmp ne i32 %t1545, 0 br i1 %t1546, label %then349, label %ifend351 then349: store i32 1, ptr @g_g_uses_result %t1547 = load ptr, ptr %t0 %t1548 = getelementptr inbounds %Cmp_Node, ptr %t1547, i32 0, i32 7 %t1549 = load ptr, ptr %t1548 %t1550 = getelementptr inbounds %LSlice, ptr %t1549, i32 0, i32 0 %t1551 = load ptr, ptr %t1550 %t1552 = getelementptr inbounds %LSlice, ptr %t1549, i32 0, i32 1 %t1553 = load i32, ptr %t1552 %t1554 = icmp ult i32 0, %t1553 br i1 %t1554, label %ixok352, label %ixbad353 ixbad353: %t1555 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1555, ptr @.fmt_bounds, ptr @.str9454, i32 0, i32 %t1553) call void @exit(i32 1) unreachable ixok352: %t1556 = getelementptr inbounds ptr, ptr %t1551, i32 0 %t1557 = load ptr, ptr %t1556 %t1558 = call ptr @fn_emit_expr(ptr %t1557) store ptr %t1558, ptr %t1559 %t1560 = call ptr @fn_emit_bind(ptr @.str9455) store ptr %t1560, ptr %t1561 %t1562 = load ptr, ptr %t1561 %t1563 = call ptr @lp_str_concat(ptr @.str9456, ptr %t1562) %t1564 = call ptr @lp_str_concat(ptr %t1563, ptr @.str9457) %t1565 = call ptr @fn_emit_bind(ptr %t1564) store ptr %t1565, ptr %t1566 %t1567 = load ptr, ptr %t1566 %t1568 = call ptr @lp_str_concat(ptr @.str9458, ptr %t1567) %t1569 = call ptr @lp_str_concat(ptr %t1568, ptr @.str9459) call void @fn_emit(ptr %t1569) %t1570 = load ptr, ptr %t1561 %t1571 = call ptr @lp_str_concat(ptr @.str9460, ptr %t1570) %t1572 = call ptr @lp_str_concat(ptr %t1571, ptr @.str9461) %t1573 = call ptr @fn_emit_bind(ptr %t1572) store ptr %t1573, ptr %t1574 %t1575 = load ptr, ptr %t1559 %t1576 = call ptr @fn_coerce_code(ptr %t1575, ptr @.str9463) %t1577 = call ptr @lp_str_concat(ptr @.str9462, ptr %t1576) %t1578 = call ptr @lp_str_concat(ptr %t1577, ptr @.str9464) %t1579 = load ptr, ptr %t1574 %t1580 = call ptr @lp_str_concat(ptr %t1578, ptr %t1579) %t1581 = call ptr @lp_str_concat(ptr %t1580, ptr @.str9465) call void @fn_emit(ptr %t1581) %t1582 = load ptr, ptr %t1561 %t1583 = call ptr @lp_str_concat(ptr @.str9466, ptr %t1582) %t1584 = call ptr @lp_str_concat(ptr %t1583, ptr @.str9467) %t1585 = call ptr @fn_emit_bind(ptr %t1584) store ptr %t1585, ptr %t1586 %t1587 = load ptr, ptr %t1586 %t1588 = call ptr @lp_str_concat(ptr @.str9468, ptr %t1587) %t1589 = call ptr @lp_str_concat(ptr %t1588, ptr @.str9469) call void @fn_emit(ptr %t1589) %t1590 = load ptr, ptr %t1561 %t1591 = call ptr @fn_val(ptr %t1590, ptr @.str9470) store ptr %t1591, ptr %retval br label %ret ifend351: %t1593 = load ptr, ptr %t48 %t1594 = call i32 @lp_str_eq(ptr %t1593, ptr @.str9471) %t1595 = icmp ne i32 %t1594, 0 %t1596 = zext i1 %t1595 to i32 store i32 %t1596, ptr %t1592 br i1 %t1595, label %sc354, label %scend355 sc354: %t1597 = call ptr @fn_find_fn(ptr @.str9472) %t1598 = icmp eq ptr %t1597, null %t1599 = zext i1 %t1598 to i32 %t1600 = icmp ne i32 %t1599, 0 %t1601 = zext i1 %t1600 to i32 store i32 %t1601, ptr %t1592 br label %scend355 scend355: %t1602 = load i32, ptr %t1592 %t1603 = icmp ne i32 %t1602, 0 br i1 %t1603, label %then356, label %ifend358 then356: store i32 1, ptr @g_g_uses_result %t1604 = load ptr, ptr %t0 %t1605 = getelementptr inbounds %Cmp_Node, ptr %t1604, i32 0, i32 7 %t1606 = load ptr, ptr %t1605 %t1607 = getelementptr inbounds %LSlice, ptr %t1606, i32 0, i32 0 %t1608 = load ptr, ptr %t1607 %t1609 = getelementptr inbounds %LSlice, ptr %t1606, i32 0, i32 1 %t1610 = load i32, ptr %t1609 %t1611 = icmp ult i32 0, %t1610 br i1 %t1611, label %ixok359, label %ixbad360 ixbad360: %t1612 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1612, ptr @.fmt_bounds, ptr @.str9473, i32 0, i32 %t1610) call void @exit(i32 1) unreachable ixok359: %t1613 = getelementptr inbounds ptr, ptr %t1608, i32 0 %t1614 = load ptr, ptr %t1613 %t1615 = call ptr @fn_emit_expr(ptr %t1614) store ptr %t1615, ptr %t1616 %t1617 = call ptr @fn_emit_bind(ptr @.str9474) store ptr %t1617, ptr %t1618 %t1619 = load ptr, ptr %t1618 %t1620 = call ptr @lp_str_concat(ptr @.str9475, ptr %t1619) %t1621 = call ptr @lp_str_concat(ptr %t1620, ptr @.str9476) %t1622 = call ptr @fn_emit_bind(ptr %t1621) store ptr %t1622, ptr %t1623 %t1624 = load ptr, ptr %t1623 %t1625 = call ptr @lp_str_concat(ptr @.str9477, ptr %t1624) %t1626 = call ptr @lp_str_concat(ptr %t1625, ptr @.str9478) call void @fn_emit(ptr %t1626) %t1627 = load ptr, ptr %t1618 %t1628 = call ptr @lp_str_concat(ptr @.str9479, ptr %t1627) %t1629 = call ptr @lp_str_concat(ptr %t1628, ptr @.str9480) %t1630 = call ptr @fn_emit_bind(ptr %t1629) store ptr %t1630, ptr %t1631 %t1632 = load ptr, ptr %t1631 %t1633 = call ptr @lp_str_concat(ptr @.str9481, ptr %t1632) %t1634 = call ptr @lp_str_concat(ptr %t1633, ptr @.str9482) call void @fn_emit(ptr %t1634) %t1635 = load ptr, ptr %t1618 %t1636 = call ptr @lp_str_concat(ptr @.str9483, ptr %t1635) %t1637 = call ptr @lp_str_concat(ptr %t1636, ptr @.str9484) %t1638 = call ptr @fn_emit_bind(ptr %t1637) store ptr %t1638, ptr %t1639 %t1640 = load ptr, ptr %t1616 %t1641 = getelementptr inbounds %Cmp_Val, ptr %t1640, i32 0, i32 0 %t1642 = load ptr, ptr %t1641 %t1643 = call ptr @lp_str_concat(ptr @.str9485, ptr %t1642) %t1644 = call ptr @lp_str_concat(ptr %t1643, ptr @.str9486) %t1645 = load ptr, ptr %t1639 %t1646 = call ptr @lp_str_concat(ptr %t1644, ptr %t1645) %t1647 = call ptr @lp_str_concat(ptr %t1646, ptr @.str9487) call void @fn_emit(ptr %t1647) %t1648 = load ptr, ptr %t1618 %t1649 = call ptr @fn_val(ptr %t1648, ptr @.str9488) store ptr %t1649, ptr %retval br label %ret ifend358: %t1651 = load ptr, ptr %t48 %t1652 = call i32 @lp_str_eq(ptr %t1651, ptr @.str9489) %t1653 = icmp ne i32 %t1652, 0 %t1654 = zext i1 %t1653 to i32 store i32 %t1654, ptr %t1650 br i1 %t1653, label %sc361, label %scend362 sc361: %t1655 = call ptr @fn_find_fn(ptr @.str9490) %t1656 = icmp eq ptr %t1655, null %t1657 = zext i1 %t1656 to i32 %t1658 = icmp ne i32 %t1657, 0 %t1659 = zext i1 %t1658 to i32 store i32 %t1659, ptr %t1650 br label %scend362 scend362: %t1660 = load i32, ptr %t1650 %t1661 = icmp ne i32 %t1660, 0 br i1 %t1661, label %then363, label %ifend365 then363: %t1662 = load ptr, ptr %t0 %t1663 = getelementptr inbounds %Cmp_Node, ptr %t1662, i32 0, i32 7 %t1664 = load ptr, ptr %t1663 %t1665 = getelementptr inbounds %LSlice, ptr %t1664, i32 0, i32 0 %t1666 = load ptr, ptr %t1665 %t1667 = getelementptr inbounds %LSlice, ptr %t1664, i32 0, i32 1 %t1668 = load i32, ptr %t1667 %t1669 = icmp ult i32 0, %t1668 br i1 %t1669, label %ixok366, label %ixbad367 ixbad367: %t1670 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1670, ptr @.fmt_bounds, ptr @.str9491, i32 0, i32 %t1668) call void @exit(i32 1) unreachable ixok366: %t1671 = getelementptr inbounds ptr, ptr %t1666, i32 0 %t1672 = load ptr, ptr %t1671 %t1673 = call ptr @fn_emit_expr(ptr %t1672) store ptr %t1673, ptr %t1674 %t1675 = load ptr, ptr %t1674 %t1676 = getelementptr inbounds %Cmp_Val, ptr %t1675, i32 0, i32 0 %t1677 = load ptr, ptr %t1676 %t1678 = call ptr @lp_str_concat(ptr @.str9492, ptr %t1677) %t1679 = call ptr @lp_str_concat(ptr %t1678, ptr @.str9493) %t1680 = call ptr @fn_emit_bind(ptr %t1679) store ptr %t1680, ptr %t1681 %t1682 = load ptr, ptr %t1681 %t1683 = call ptr @lp_str_concat(ptr @.str9494, ptr %t1682) %t1684 = call ptr @fn_emit_bind(ptr %t1683) store ptr %t1684, ptr %t1685 %t1686 = load ptr, ptr %t1685 %t1687 = call ptr @lp_str_concat(ptr @.str9495, ptr %t1686) %t1688 = call ptr @lp_str_concat(ptr %t1687, ptr @.str9496) %t1689 = call ptr @fn_emit_bind(ptr %t1688) store ptr %t1689, ptr %t1690 %t1691 = load ptr, ptr %t1690 %t1692 = call ptr @lp_str_concat(ptr @.str9497, ptr %t1691) %t1693 = call ptr @lp_str_concat(ptr %t1692, ptr @.str9498) %t1694 = call ptr @fn_emit_bind(ptr %t1693) %t1695 = call ptr @fn_val(ptr %t1694, ptr @.str9499) store ptr %t1695, ptr %retval br label %ret ifend365: %t1697 = load ptr, ptr %t48 %t1698 = call i32 @lp_str_eq(ptr %t1697, ptr @.str9500) %t1699 = icmp ne i32 %t1698, 0 %t1700 = zext i1 %t1699 to i32 store i32 %t1700, ptr %t1696 br i1 %t1699, label %sc368, label %scend369 sc368: %t1701 = call ptr @fn_find_fn(ptr @.str9501) %t1702 = icmp eq ptr %t1701, null %t1703 = zext i1 %t1702 to i32 %t1704 = icmp ne i32 %t1703, 0 %t1705 = zext i1 %t1704 to i32 store i32 %t1705, ptr %t1696 br label %scend369 scend369: %t1706 = load i32, ptr %t1696 %t1707 = icmp ne i32 %t1706, 0 br i1 %t1707, label %then370, label %ifend372 then370: %t1708 = load ptr, ptr %t0 %t1709 = getelementptr inbounds %Cmp_Node, ptr %t1708, i32 0, i32 7 %t1710 = load ptr, ptr %t1709 %t1711 = getelementptr inbounds %LSlice, ptr %t1710, i32 0, i32 0 %t1712 = load ptr, ptr %t1711 %t1713 = getelementptr inbounds %LSlice, ptr %t1710, i32 0, i32 1 %t1714 = load i32, ptr %t1713 %t1715 = icmp ult i32 0, %t1714 br i1 %t1715, label %ixok373, label %ixbad374 ixbad374: %t1716 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1716, ptr @.fmt_bounds, ptr @.str9502, i32 0, i32 %t1714) call void @exit(i32 1) unreachable ixok373: %t1717 = getelementptr inbounds ptr, ptr %t1712, i32 0 %t1718 = load ptr, ptr %t1717 %t1719 = call ptr @fn_emit_expr(ptr %t1718) store ptr %t1719, ptr %t1720 %t1721 = load ptr, ptr %t1720 %t1722 = getelementptr inbounds %Cmp_Val, ptr %t1721, i32 0, i32 0 %t1723 = load ptr, ptr %t1722 %t1724 = call ptr @lp_str_concat(ptr @.str9503, ptr %t1723) %t1725 = call ptr @lp_str_concat(ptr %t1724, ptr @.str9504) %t1726 = call ptr @fn_emit_bind(ptr %t1725) store ptr %t1726, ptr %t1727 %t1728 = load ptr, ptr %t1727 %t1729 = call ptr @lp_str_concat(ptr @.str9505, ptr %t1728) %t1730 = call ptr @fn_emit_bind(ptr %t1729) store ptr %t1730, ptr %t1731 %t1732 = load ptr, ptr %t1731 %t1733 = call ptr @lp_str_concat(ptr @.str9506, ptr %t1732) %t1734 = call ptr @lp_str_concat(ptr %t1733, ptr @.str9507) %t1735 = call ptr @fn_emit_bind(ptr %t1734) store ptr %t1735, ptr %t1736 %t1737 = load ptr, ptr %t1736 %t1738 = call ptr @lp_str_concat(ptr @.str9508, ptr %t1737) %t1739 = call ptr @lp_str_concat(ptr %t1738, ptr @.str9509) %t1740 = call ptr @fn_emit_bind(ptr %t1739) %t1741 = call ptr @fn_val(ptr %t1740, ptr @.str9510) store ptr %t1741, ptr %retval br label %ret ifend372: %t1743 = load ptr, ptr %t48 %t1744 = call i32 @lp_str_eq(ptr %t1743, ptr @.str9511) %t1745 = icmp ne i32 %t1744, 0 %t1746 = zext i1 %t1745 to i32 store i32 %t1746, ptr %t1742 br i1 %t1745, label %sc375, label %scend376 sc375: %t1747 = call ptr @fn_find_fn(ptr @.str9512) %t1748 = icmp eq ptr %t1747, null %t1749 = zext i1 %t1748 to i32 %t1750 = icmp ne i32 %t1749, 0 %t1751 = zext i1 %t1750 to i32 store i32 %t1751, ptr %t1742 br label %scend376 scend376: %t1752 = load i32, ptr %t1742 %t1753 = icmp ne i32 %t1752, 0 br i1 %t1753, label %then377, label %ifend379 then377: store i32 1, ptr @g_g_uses_option %t1754 = load ptr, ptr %t0 %t1755 = getelementptr inbounds %Cmp_Node, ptr %t1754, i32 0, i32 7 %t1756 = load ptr, ptr %t1755 %t1757 = getelementptr inbounds %LSlice, ptr %t1756, i32 0, i32 0 %t1758 = load ptr, ptr %t1757 %t1759 = getelementptr inbounds %LSlice, ptr %t1756, i32 0, i32 1 %t1760 = load i32, ptr %t1759 %t1761 = icmp ult i32 0, %t1760 br i1 %t1761, label %ixok380, label %ixbad381 ixbad381: %t1762 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1762, ptr @.fmt_bounds, ptr @.str9513, i32 0, i32 %t1760) call void @exit(i32 1) unreachable ixok380: %t1763 = getelementptr inbounds ptr, ptr %t1758, i32 0 %t1764 = load ptr, ptr %t1763 %t1765 = call ptr @fn_emit_expr(ptr %t1764) store ptr %t1765, ptr %t1766 %t1767 = call ptr @fn_emit_bind(ptr @.str9514) store ptr %t1767, ptr %t1768 %t1769 = load ptr, ptr %t1768 %t1770 = call ptr @lp_str_concat(ptr @.str9515, ptr %t1769) %t1771 = call ptr @lp_str_concat(ptr %t1770, ptr @.str9516) %t1772 = call ptr @fn_emit_bind(ptr %t1771) store ptr %t1772, ptr %t1773 %t1774 = load ptr, ptr %t1773 %t1775 = call ptr @lp_str_concat(ptr @.str9517, ptr %t1774) %t1776 = call ptr @lp_str_concat(ptr %t1775, ptr @.str9518) call void @fn_emit(ptr %t1776) %t1777 = load ptr, ptr %t1768 %t1778 = call ptr @lp_str_concat(ptr @.str9519, ptr %t1777) %t1779 = call ptr @lp_str_concat(ptr %t1778, ptr @.str9520) %t1780 = call ptr @fn_emit_bind(ptr %t1779) store ptr %t1780, ptr %t1781 %t1782 = load ptr, ptr %t1766 %t1783 = call ptr @fn_coerce_code(ptr %t1782, ptr @.str9522) %t1784 = call ptr @lp_str_concat(ptr @.str9521, ptr %t1783) %t1785 = call ptr @lp_str_concat(ptr %t1784, ptr @.str9523) %t1786 = load ptr, ptr %t1781 %t1787 = call ptr @lp_str_concat(ptr %t1785, ptr %t1786) %t1788 = call ptr @lp_str_concat(ptr %t1787, ptr @.str9524) call void @fn_emit(ptr %t1788) %t1789 = load ptr, ptr %t1768 %t1790 = call ptr @fn_val(ptr %t1789, ptr @.str9525) store ptr %t1790, ptr %retval br label %ret ifend379: %t1792 = load ptr, ptr %t48 %t1793 = call i32 @lp_str_eq(ptr %t1792, ptr @.str9526) %t1794 = icmp ne i32 %t1793, 0 %t1795 = zext i1 %t1794 to i32 store i32 %t1795, ptr %t1791 br i1 %t1794, label %sc382, label %scend383 sc382: %t1796 = call ptr @fn_find_fn(ptr @.str9527) %t1797 = icmp eq ptr %t1796, null %t1798 = zext i1 %t1797 to i32 %t1799 = icmp ne i32 %t1798, 0 %t1800 = zext i1 %t1799 to i32 store i32 %t1800, ptr %t1791 br label %scend383 scend383: %t1801 = load i32, ptr %t1791 %t1802 = icmp ne i32 %t1801, 0 br i1 %t1802, label %then384, label %ifend386 then384: store i32 1, ptr @g_g_uses_option %t1803 = call ptr @fn_emit_bind(ptr @.str9528) store ptr %t1803, ptr %t1804 %t1805 = load ptr, ptr %t1804 %t1806 = call ptr @lp_str_concat(ptr @.str9529, ptr %t1805) %t1807 = call ptr @lp_str_concat(ptr %t1806, ptr @.str9530) %t1808 = call ptr @fn_emit_bind(ptr %t1807) store ptr %t1808, ptr %t1809 %t1810 = load ptr, ptr %t1809 %t1811 = call ptr @lp_str_concat(ptr @.str9531, ptr %t1810) %t1812 = call ptr @lp_str_concat(ptr %t1811, ptr @.str9532) call void @fn_emit(ptr %t1812) %t1813 = load ptr, ptr %t1804 %t1814 = call ptr @lp_str_concat(ptr @.str9533, ptr %t1813) %t1815 = call ptr @lp_str_concat(ptr %t1814, ptr @.str9534) %t1816 = call ptr @fn_emit_bind(ptr %t1815) store ptr %t1816, ptr %t1817 %t1818 = load ptr, ptr %t1817 %t1819 = call ptr @lp_str_concat(ptr @.str9535, ptr %t1818) %t1820 = call ptr @lp_str_concat(ptr %t1819, ptr @.str9536) call void @fn_emit(ptr %t1820) %t1821 = load ptr, ptr %t1804 %t1822 = call ptr @fn_val(ptr %t1821, ptr @.str9537) store ptr %t1822, ptr %retval br label %ret ifend386: %t1824 = load ptr, ptr %t48 %t1825 = call i32 @lp_str_eq(ptr %t1824, ptr @.str9538) %t1826 = icmp ne i32 %t1825, 0 %t1827 = zext i1 %t1826 to i32 store i32 %t1827, ptr %t1823 br i1 %t1826, label %sc387, label %scend388 sc387: %t1828 = call ptr @fn_find_fn(ptr @.str9539) %t1829 = icmp eq ptr %t1828, null %t1830 = zext i1 %t1829 to i32 %t1831 = icmp ne i32 %t1830, 0 %t1832 = zext i1 %t1831 to i32 store i32 %t1832, ptr %t1823 br label %scend388 scend388: %t1833 = load i32, ptr %t1823 %t1834 = icmp ne i32 %t1833, 0 br i1 %t1834, label %then389, label %ifend391 then389: %t1835 = load ptr, ptr %t0 %t1836 = getelementptr inbounds %Cmp_Node, ptr %t1835, i32 0, i32 7 %t1837 = load ptr, ptr %t1836 %t1838 = getelementptr inbounds %LSlice, ptr %t1837, i32 0, i32 0 %t1839 = load ptr, ptr %t1838 %t1840 = getelementptr inbounds %LSlice, ptr %t1837, i32 0, i32 1 %t1841 = load i32, ptr %t1840 %t1842 = icmp ult i32 0, %t1841 br i1 %t1842, label %ixok392, label %ixbad393 ixbad393: %t1843 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1843, ptr @.fmt_bounds, ptr @.str9540, i32 0, i32 %t1841) call void @exit(i32 1) unreachable ixok392: %t1844 = getelementptr inbounds ptr, ptr %t1839, i32 0 %t1845 = load ptr, ptr %t1844 %t1846 = call ptr @fn_emit_expr(ptr %t1845) store ptr %t1846, ptr %t1847 %t1848 = load ptr, ptr %t1847 %t1849 = getelementptr inbounds %Cmp_Val, ptr %t1848, i32 0, i32 0 %t1850 = load ptr, ptr %t1849 %t1851 = call ptr @lp_str_concat(ptr @.str9541, ptr %t1850) %t1852 = call ptr @lp_str_concat(ptr %t1851, ptr @.str9542) %t1853 = call ptr @fn_emit_bind(ptr %t1852) store ptr %t1853, ptr %t1854 %t1855 = load ptr, ptr %t1854 %t1856 = call ptr @lp_str_concat(ptr @.str9543, ptr %t1855) %t1857 = call ptr @fn_emit_bind(ptr %t1856) store ptr %t1857, ptr %t1858 %t1859 = load ptr, ptr %t1858 %t1860 = call ptr @lp_str_concat(ptr @.str9544, ptr %t1859) %t1861 = call ptr @lp_str_concat(ptr %t1860, ptr @.str9545) %t1862 = call ptr @fn_emit_bind(ptr %t1861) store ptr %t1862, ptr %t1863 %t1864 = load ptr, ptr %t1863 %t1865 = call ptr @lp_str_concat(ptr @.str9546, ptr %t1864) %t1866 = call ptr @lp_str_concat(ptr %t1865, ptr @.str9547) %t1867 = call ptr @fn_emit_bind(ptr %t1866) %t1868 = call ptr @fn_val(ptr %t1867, ptr @.str9548) store ptr %t1868, ptr %retval br label %ret ifend391: %t1870 = load ptr, ptr %t48 %t1871 = call i32 @lp_str_eq(ptr %t1870, ptr @.str9549) %t1872 = icmp ne i32 %t1871, 0 %t1873 = zext i1 %t1872 to i32 store i32 %t1873, ptr %t1869 br i1 %t1872, label %sc394, label %scend395 sc394: %t1874 = call ptr @fn_find_fn(ptr @.str9550) %t1875 = icmp eq ptr %t1874, null %t1876 = zext i1 %t1875 to i32 %t1877 = icmp ne i32 %t1876, 0 %t1878 = zext i1 %t1877 to i32 store i32 %t1878, ptr %t1869 br label %scend395 scend395: %t1879 = load i32, ptr %t1869 %t1880 = icmp ne i32 %t1879, 0 br i1 %t1880, label %then396, label %ifend398 then396: %t1881 = load ptr, ptr %t0 %t1882 = getelementptr inbounds %Cmp_Node, ptr %t1881, i32 0, i32 7 %t1883 = load ptr, ptr %t1882 %t1884 = getelementptr inbounds %LSlice, ptr %t1883, i32 0, i32 0 %t1885 = load ptr, ptr %t1884 %t1886 = getelementptr inbounds %LSlice, ptr %t1883, i32 0, i32 1 %t1887 = load i32, ptr %t1886 %t1888 = icmp ult i32 0, %t1887 br i1 %t1888, label %ixok399, label %ixbad400 ixbad400: %t1889 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1889, ptr @.fmt_bounds, ptr @.str9551, i32 0, i32 %t1887) call void @exit(i32 1) unreachable ixok399: %t1890 = getelementptr inbounds ptr, ptr %t1885, i32 0 %t1891 = load ptr, ptr %t1890 %t1892 = call ptr @fn_emit_expr(ptr %t1891) store ptr %t1892, ptr %t1893 %t1894 = load ptr, ptr %t1893 %t1895 = getelementptr inbounds %Cmp_Val, ptr %t1894, i32 0, i32 0 %t1896 = load ptr, ptr %t1895 %t1897 = call ptr @lp_str_concat(ptr @.str9552, ptr %t1896) %t1898 = call ptr @lp_str_concat(ptr %t1897, ptr @.str9553) %t1899 = call ptr @fn_emit_bind(ptr %t1898) store ptr %t1899, ptr %t1900 %t1901 = load ptr, ptr %t1900 %t1902 = call ptr @lp_str_concat(ptr @.str9554, ptr %t1901) %t1903 = call ptr @fn_emit_bind(ptr %t1902) store ptr %t1903, ptr %t1904 %t1905 = load ptr, ptr %t1904 %t1906 = call ptr @lp_str_concat(ptr @.str9555, ptr %t1905) %t1907 = call ptr @lp_str_concat(ptr %t1906, ptr @.str9556) %t1908 = call ptr @fn_emit_bind(ptr %t1907) store ptr %t1908, ptr %t1909 %t1910 = load ptr, ptr %t1909 %t1911 = call ptr @lp_str_concat(ptr @.str9557, ptr %t1910) %t1912 = call ptr @lp_str_concat(ptr %t1911, ptr @.str9558) %t1913 = call ptr @fn_emit_bind(ptr %t1912) %t1914 = call ptr @fn_val(ptr %t1913, ptr @.str9559) store ptr %t1914, ptr %retval br label %ret ifend398: %t1916 = load ptr, ptr %t48 %t1917 = call i32 @lp_str_eq(ptr %t1916, ptr @.str9560) %t1918 = icmp ne i32 %t1917, 0 %t1919 = zext i1 %t1918 to i32 store i32 %t1919, ptr %t1915 br i1 %t1918, label %sc401, label %scend402 sc401: %t1920 = call ptr @fn_find_fn(ptr @.str9561) %t1921 = icmp eq ptr %t1920, null %t1922 = zext i1 %t1921 to i32 %t1923 = icmp ne i32 %t1922, 0 %t1924 = zext i1 %t1923 to i32 store i32 %t1924, ptr %t1915 br label %scend402 scend402: %t1925 = load i32, ptr %t1915 %t1926 = icmp ne i32 %t1925, 0 br i1 %t1926, label %then403, label %ifend405 then403: %t1927 = load ptr, ptr %t0 %t1928 = getelementptr inbounds %Cmp_Node, ptr %t1927, i32 0, i32 7 %t1929 = load ptr, ptr %t1928 %t1930 = getelementptr inbounds %LSlice, ptr %t1929, i32 0, i32 0 %t1931 = load ptr, ptr %t1930 %t1932 = getelementptr inbounds %LSlice, ptr %t1929, i32 0, i32 1 %t1933 = load i32, ptr %t1932 %t1934 = icmp ult i32 0, %t1933 br i1 %t1934, label %ixok406, label %ixbad407 ixbad407: %t1935 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1935, ptr @.fmt_bounds, ptr @.str9562, i32 0, i32 %t1933) call void @exit(i32 1) unreachable ixok406: %t1936 = getelementptr inbounds ptr, ptr %t1931, i32 0 %t1937 = load ptr, ptr %t1936 %t1938 = call ptr @fn_emit_expr(ptr %t1937) store ptr %t1938, ptr %t1939 %t1940 = load ptr, ptr %t0 %t1941 = getelementptr inbounds %Cmp_Node, ptr %t1940, i32 0, i32 7 %t1942 = load ptr, ptr %t1941 %t1943 = getelementptr inbounds %LSlice, ptr %t1942, i32 0, i32 0 %t1944 = load ptr, ptr %t1943 %t1945 = getelementptr inbounds %LSlice, ptr %t1942, i32 0, i32 1 %t1946 = load i32, ptr %t1945 %t1947 = icmp ult i32 1, %t1946 br i1 %t1947, label %ixok408, label %ixbad409 ixbad409: %t1948 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t1948, ptr @.fmt_bounds, ptr @.str9563, i32 1, i32 %t1946) call void @exit(i32 1) unreachable ixok408: %t1949 = getelementptr inbounds ptr, ptr %t1944, i32 1 %t1950 = load ptr, ptr %t1949 %t1951 = call ptr @fn_emit_expr(ptr %t1950) store ptr %t1951, ptr %t1952 %t1953 = load ptr, ptr %t1939 %t1954 = getelementptr inbounds %Cmp_Val, ptr %t1953, i32 0, i32 0 %t1955 = load ptr, ptr %t1954 %t1956 = call ptr @lp_str_concat(ptr @.str9564, ptr %t1955) %t1957 = call ptr @lp_str_concat(ptr %t1956, ptr @.str9565) %t1958 = call ptr @fn_emit_bind(ptr %t1957) store ptr %t1958, ptr %t1959 %t1960 = load ptr, ptr %t1959 %t1961 = call ptr @lp_str_concat(ptr @.str9566, ptr %t1960) %t1962 = call ptr @fn_emit_bind(ptr %t1961) store ptr %t1962, ptr %t1963 %t1964 = load ptr, ptr %t1939 %t1965 = getelementptr inbounds %Cmp_Val, ptr %t1964, i32 0, i32 0 %t1966 = load ptr, ptr %t1965 %t1967 = call ptr @lp_str_concat(ptr @.str9567, ptr %t1966) %t1968 = call ptr @lp_str_concat(ptr %t1967, ptr @.str9568) %t1969 = call ptr @fn_emit_bind(ptr %t1968) store ptr %t1969, ptr %t1970 %t1971 = load ptr, ptr %t1970 %t1972 = call ptr @lp_str_concat(ptr @.str9569, ptr %t1971) %t1973 = call ptr @fn_emit_bind(ptr %t1972) store ptr %t1973, ptr %t1974 %t1975 = load ptr, ptr %t1963 %t1976 = call ptr @lp_str_concat(ptr @.str9570, ptr %t1975) %t1977 = call ptr @lp_str_concat(ptr %t1976, ptr @.str9571) %t1978 = call ptr @fn_emit_bind(ptr %t1977) store ptr %t1978, ptr %t1979 %t1980 = load ptr, ptr %t1979 %t1981 = call ptr @lp_str_concat(ptr @.str9572, ptr %t1980) %t1982 = call ptr @lp_str_concat(ptr %t1981, ptr @.str9573) %t1983 = load ptr, ptr %t1974 %t1984 = call ptr @lp_str_concat(ptr %t1982, ptr %t1983) %t1985 = call ptr @lp_str_concat(ptr %t1984, ptr @.str9574) %t1986 = load ptr, ptr %t1952 %t1987 = call ptr @fn_coerce_code(ptr %t1986, ptr @.str9575) %t1988 = call ptr @lp_str_concat(ptr %t1985, ptr %t1987) %t1989 = call ptr @fn_emit_bind(ptr %t1988) %t1990 = call ptr @fn_val(ptr %t1989, ptr @.str9576) store ptr %t1990, ptr %retval br label %ret ifend405: %t1991 = load ptr, ptr %t48 %t1992 = call i32 @lp_str_eq(ptr %t1991, ptr @.str9577) %t1993 = icmp ne i32 %t1992, 0 br i1 %t1993, label %then410, label %ifend412 then410: %t1994 = load ptr, ptr %t0 %t1995 = getelementptr inbounds %Cmp_Node, ptr %t1994, i32 0, i32 7 %t1996 = load ptr, ptr %t1995 %t1997 = getelementptr inbounds %LSlice, ptr %t1996, i32 0, i32 0 %t1998 = load ptr, ptr %t1997 %t1999 = getelementptr inbounds %LSlice, ptr %t1996, i32 0, i32 1 %t2000 = load i32, ptr %t1999 %t2001 = icmp ult i32 0, %t2000 br i1 %t2001, label %ixok413, label %ixbad414 ixbad414: %t2002 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2002, ptr @.fmt_bounds, ptr @.str9578, i32 0, i32 %t2000) call void @exit(i32 1) unreachable ixok413: %t2003 = getelementptr inbounds ptr, ptr %t1998, i32 0 %t2004 = load ptr, ptr %t2003 %t2005 = call ptr @fn_emit_expr(ptr %t2004) store ptr %t2005, ptr %t2006 %t2007 = load ptr, ptr %t2006 %t2008 = getelementptr inbounds %Cmp_Val, ptr %t2007, i32 0, i32 0 %t2009 = load ptr, ptr %t2008 %t2010 = call ptr @lp_str_concat(ptr @.str9579, ptr %t2009) %t2011 = call ptr @lp_str_concat(ptr %t2010, ptr @.str9580) %t2012 = call ptr @fn_emit_bind(ptr %t2011) %t2013 = call ptr @fn_val(ptr %t2012, ptr @.str9581) store ptr %t2013, ptr %retval br label %ret ifend412: %t2014 = load ptr, ptr %t48 %t2015 = call i32 @lp_str_eq(ptr %t2014, ptr @.str9582) %t2016 = icmp ne i32 %t2015, 0 br i1 %t2016, label %then415, label %ifend417 then415: %t2017 = load ptr, ptr %t0 %t2018 = getelementptr inbounds %Cmp_Node, ptr %t2017, i32 0, i32 7 %t2019 = load ptr, ptr %t2018 %t2020 = getelementptr inbounds %LSlice, ptr %t2019, i32 0, i32 0 %t2021 = load ptr, ptr %t2020 %t2022 = getelementptr inbounds %LSlice, ptr %t2019, i32 0, i32 1 %t2023 = load i32, ptr %t2022 %t2024 = icmp ult i32 0, %t2023 br i1 %t2024, label %ixok418, label %ixbad419 ixbad419: %t2025 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2025, ptr @.fmt_bounds, ptr @.str9583, i32 0, i32 %t2023) call void @exit(i32 1) unreachable ixok418: %t2026 = getelementptr inbounds ptr, ptr %t2021, i32 0 %t2027 = load ptr, ptr %t2026 %t2028 = call ptr @fn_emit_expr(ptr %t2027) store ptr %t2028, ptr %t2029 %t2030 = load ptr, ptr %t0 %t2031 = getelementptr inbounds %Cmp_Node, ptr %t2030, i32 0, i32 7 %t2032 = load ptr, ptr %t2031 %t2033 = getelementptr inbounds %LSlice, ptr %t2032, i32 0, i32 0 %t2034 = load ptr, ptr %t2033 %t2035 = getelementptr inbounds %LSlice, ptr %t2032, i32 0, i32 1 %t2036 = load i32, ptr %t2035 %t2037 = icmp ult i32 1, %t2036 br i1 %t2037, label %ixok420, label %ixbad421 ixbad421: %t2038 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2038, ptr @.fmt_bounds, ptr @.str9584, i32 1, i32 %t2036) call void @exit(i32 1) unreachable ixok420: %t2039 = getelementptr inbounds ptr, ptr %t2034, i32 1 %t2040 = load ptr, ptr %t2039 %t2041 = call ptr @fn_emit_expr(ptr %t2040) store ptr %t2041, ptr %t2042 %t2043 = load ptr, ptr %t2029 %t2044 = getelementptr inbounds %Cmp_Val, ptr %t2043, i32 0, i32 0 %t2045 = load ptr, ptr %t2044 %t2046 = call ptr @lp_str_concat(ptr @.str9585, ptr %t2045) %t2047 = call ptr @lp_str_concat(ptr %t2046, ptr @.str9586) %t2048 = load ptr, ptr %t2042 %t2049 = getelementptr inbounds %Cmp_Val, ptr %t2048, i32 0, i32 0 %t2050 = load ptr, ptr %t2049 %t2051 = call ptr @lp_str_concat(ptr %t2047, ptr %t2050) %t2052 = call ptr @lp_str_concat(ptr %t2051, ptr @.str9587) %t2053 = call ptr @fn_emit_bind(ptr %t2052) %t2054 = call ptr @fn_val(ptr %t2053, ptr @.str9588) store ptr %t2054, ptr %retval br label %ret ifend417: %t2055 = load ptr, ptr %t48 %t2056 = call i32 @lp_str_eq(ptr %t2055, ptr @.str9589) %t2057 = icmp ne i32 %t2056, 0 br i1 %t2057, label %then422, label %ifend424 then422: %t2058 = load ptr, ptr %t0 %t2059 = getelementptr inbounds %Cmp_Node, ptr %t2058, i32 0, i32 7 %t2060 = load ptr, ptr %t2059 %t2061 = getelementptr inbounds %LSlice, ptr %t2060, i32 0, i32 0 %t2062 = load ptr, ptr %t2061 %t2063 = getelementptr inbounds %LSlice, ptr %t2060, i32 0, i32 1 %t2064 = load i32, ptr %t2063 %t2065 = icmp ult i32 0, %t2064 br i1 %t2065, label %ixok425, label %ixbad426 ixbad426: %t2066 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2066, ptr @.fmt_bounds, ptr @.str9590, i32 0, i32 %t2064) call void @exit(i32 1) unreachable ixok425: %t2067 = getelementptr inbounds ptr, ptr %t2062, i32 0 %t2068 = load ptr, ptr %t2067 %t2069 = call ptr @fn_emit_expr(ptr %t2068) store ptr %t2069, ptr %t2070 %t2071 = load ptr, ptr %t0 %t2072 = getelementptr inbounds %Cmp_Node, ptr %t2071, i32 0, i32 7 %t2073 = load ptr, ptr %t2072 %t2074 = getelementptr inbounds %LSlice, ptr %t2073, i32 0, i32 0 %t2075 = load ptr, ptr %t2074 %t2076 = getelementptr inbounds %LSlice, ptr %t2073, i32 0, i32 1 %t2077 = load i32, ptr %t2076 %t2078 = icmp ult i32 1, %t2077 br i1 %t2078, label %ixok427, label %ixbad428 ixbad428: %t2079 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2079, ptr @.fmt_bounds, ptr @.str9591, i32 1, i32 %t2077) call void @exit(i32 1) unreachable ixok427: %t2080 = getelementptr inbounds ptr, ptr %t2075, i32 1 %t2081 = load ptr, ptr %t2080 %t2082 = call ptr @fn_emit_expr(ptr %t2081) store ptr %t2082, ptr %t2083 %t2084 = load ptr, ptr %t0 %t2085 = getelementptr inbounds %Cmp_Node, ptr %t2084, i32 0, i32 7 %t2086 = load ptr, ptr %t2085 %t2087 = getelementptr inbounds %LSlice, ptr %t2086, i32 0, i32 0 %t2088 = load ptr, ptr %t2087 %t2089 = getelementptr inbounds %LSlice, ptr %t2086, i32 0, i32 1 %t2090 = load i32, ptr %t2089 %t2091 = icmp ult i32 2, %t2090 br i1 %t2091, label %ixok429, label %ixbad430 ixbad430: %t2092 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2092, ptr @.fmt_bounds, ptr @.str9592, i32 2, i32 %t2090) call void @exit(i32 1) unreachable ixok429: %t2093 = getelementptr inbounds ptr, ptr %t2088, i32 2 %t2094 = load ptr, ptr %t2093 %t2095 = call ptr @fn_emit_expr(ptr %t2094) store ptr %t2095, ptr %t2096 %t2097 = load ptr, ptr %t2070 %t2098 = getelementptr inbounds %Cmp_Val, ptr %t2097, i32 0, i32 0 %t2099 = load ptr, ptr %t2098 %t2100 = call ptr @lp_str_concat(ptr @.str9593, ptr %t2099) %t2101 = call ptr @lp_str_concat(ptr %t2100, ptr @.str9594) %t2102 = load ptr, ptr %t2083 %t2103 = getelementptr inbounds %Cmp_Val, ptr %t2102, i32 0, i32 0 %t2104 = load ptr, ptr %t2103 %t2105 = call ptr @lp_str_concat(ptr %t2101, ptr %t2104) %t2106 = call ptr @lp_str_concat(ptr %t2105, ptr @.str9595) %t2107 = load ptr, ptr %t2096 %t2108 = getelementptr inbounds %Cmp_Val, ptr %t2107, i32 0, i32 0 %t2109 = load ptr, ptr %t2108 %t2110 = call ptr @lp_str_concat(ptr %t2106, ptr %t2109) %t2111 = call ptr @lp_str_concat(ptr %t2110, ptr @.str9596) %t2112 = call ptr @fn_emit_bind(ptr %t2111) store ptr %t2112, ptr %t2113 %t2114 = load ptr, ptr %t2113 %t2115 = call ptr @lp_str_concat(ptr @.str9597, ptr %t2114) %t2116 = call ptr @lp_str_concat(ptr %t2115, ptr @.str9598) %t2117 = call ptr @fn_emit_bind(ptr %t2116) %t2118 = call ptr @fn_val(ptr %t2117, ptr @.str9599) store ptr %t2118, ptr %retval br label %ret ifend424: %t2119 = load ptr, ptr %t48 %t2120 = call i32 @lp_str_eq(ptr %t2119, ptr @.str9600) %t2121 = icmp ne i32 %t2120, 0 br i1 %t2121, label %then431, label %ifend433 then431: %t2122 = load ptr, ptr %t0 %t2123 = getelementptr inbounds %Cmp_Node, ptr %t2122, i32 0, i32 7 %t2124 = load ptr, ptr %t2123 %t2125 = getelementptr inbounds %LSlice, ptr %t2124, i32 0, i32 0 %t2126 = load ptr, ptr %t2125 %t2127 = getelementptr inbounds %LSlice, ptr %t2124, i32 0, i32 1 %t2128 = load i32, ptr %t2127 %t2129 = icmp ult i32 0, %t2128 br i1 %t2129, label %ixok434, label %ixbad435 ixbad435: %t2130 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2130, ptr @.fmt_bounds, ptr @.str9601, i32 0, i32 %t2128) call void @exit(i32 1) unreachable ixok434: %t2131 = getelementptr inbounds ptr, ptr %t2126, i32 0 %t2132 = load ptr, ptr %t2131 %t2133 = call ptr @fn_emit_expr(ptr %t2132) store ptr %t2133, ptr %t2134 %t2135 = load ptr, ptr %t0 %t2136 = getelementptr inbounds %Cmp_Node, ptr %t2135, i32 0, i32 7 %t2137 = load ptr, ptr %t2136 %t2138 = getelementptr inbounds %LSlice, ptr %t2137, i32 0, i32 0 %t2139 = load ptr, ptr %t2138 %t2140 = getelementptr inbounds %LSlice, ptr %t2137, i32 0, i32 1 %t2141 = load i32, ptr %t2140 %t2142 = icmp ult i32 1, %t2141 br i1 %t2142, label %ixok436, label %ixbad437 ixbad437: %t2143 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2143, ptr @.fmt_bounds, ptr @.str9602, i32 1, i32 %t2141) call void @exit(i32 1) unreachable ixok436: %t2144 = getelementptr inbounds ptr, ptr %t2139, i32 1 %t2145 = load ptr, ptr %t2144 %t2146 = call ptr @fn_emit_expr(ptr %t2145) store ptr %t2146, ptr %t2147 %t2148 = load ptr, ptr %t0 %t2149 = getelementptr inbounds %Cmp_Node, ptr %t2148, i32 0, i32 7 %t2150 = load ptr, ptr %t2149 %t2151 = getelementptr inbounds %LSlice, ptr %t2150, i32 0, i32 0 %t2152 = load ptr, ptr %t2151 %t2153 = getelementptr inbounds %LSlice, ptr %t2150, i32 0, i32 1 %t2154 = load i32, ptr %t2153 %t2155 = icmp ult i32 2, %t2154 br i1 %t2155, label %ixok438, label %ixbad439 ixbad439: %t2156 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2156, ptr @.fmt_bounds, ptr @.str9603, i32 2, i32 %t2154) call void @exit(i32 1) unreachable ixok438: %t2157 = getelementptr inbounds ptr, ptr %t2152, i32 2 %t2158 = load ptr, ptr %t2157 %t2159 = call ptr @fn_emit_expr(ptr %t2158) store ptr %t2159, ptr %t2160 %t2161 = load ptr, ptr %t0 %t2162 = getelementptr inbounds %Cmp_Node, ptr %t2161, i32 0, i32 7 %t2163 = load ptr, ptr %t2162 %t2164 = getelementptr inbounds %LSlice, ptr %t2163, i32 0, i32 0 %t2165 = load ptr, ptr %t2164 %t2166 = getelementptr inbounds %LSlice, ptr %t2163, i32 0, i32 1 %t2167 = load i32, ptr %t2166 %t2168 = icmp ult i32 3, %t2167 br i1 %t2168, label %ixok440, label %ixbad441 ixbad441: %t2169 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2169, ptr @.fmt_bounds, ptr @.str9604, i32 3, i32 %t2167) call void @exit(i32 1) unreachable ixok440: %t2170 = getelementptr inbounds ptr, ptr %t2165, i32 3 %t2171 = load ptr, ptr %t2170 %t2172 = call ptr @fn_emit_expr(ptr %t2171) store ptr %t2172, ptr %t2173 %t2174 = load ptr, ptr %t2173 %t2175 = getelementptr inbounds %Cmp_Val, ptr %t2174, i32 0, i32 0 %t2176 = load ptr, ptr %t2175 %t2177 = call ptr @lp_str_concat(ptr @.str9605, ptr %t2176) %t2178 = call ptr @lp_str_concat(ptr %t2177, ptr @.str9606) %t2179 = call ptr @fn_emit_bind(ptr %t2178) store ptr %t2179, ptr %t2180 call void @fn_emit(ptr @.str9607) %t2181 = load ptr, ptr %t2134 %t2182 = getelementptr inbounds %Cmp_Val, ptr %t2181, i32 0, i32 0 %t2183 = load ptr, ptr %t2182 call void @fn_emit(ptr %t2183) call void @fn_emit(ptr @.str9608) %t2184 = load ptr, ptr %t2147 %t2185 = getelementptr inbounds %Cmp_Val, ptr %t2184, i32 0, i32 0 %t2186 = load ptr, ptr %t2185 call void @fn_emit(ptr %t2186) call void @fn_emit(ptr @.str9609) %t2187 = load ptr, ptr %t2160 %t2188 = getelementptr inbounds %Cmp_Val, ptr %t2187, i32 0, i32 0 %t2189 = load ptr, ptr %t2188 call void @fn_emit(ptr %t2189) call void @fn_emit(ptr @.str9610) %t2190 = load ptr, ptr %t2180 call void @fn_emit(ptr %t2190) call void @fn_emit(ptr @.str9611) %t2191 = call ptr @fn_val(ptr @.str9612, ptr @.str9613) store ptr %t2191, ptr %retval br label %ret ifend433: %t2192 = load ptr, ptr %t48 %t2193 = call i32 @lp_str_eq(ptr %t2192, ptr @.str9614) %t2194 = icmp ne i32 %t2193, 0 br i1 %t2194, label %then442, label %ifend444 then442: %t2195 = load ptr, ptr %t0 %t2196 = getelementptr inbounds %Cmp_Node, ptr %t2195, i32 0, i32 7 %t2197 = load ptr, ptr %t2196 %t2198 = getelementptr inbounds %LSlice, ptr %t2197, i32 0, i32 0 %t2199 = load ptr, ptr %t2198 %t2200 = getelementptr inbounds %LSlice, ptr %t2197, i32 0, i32 1 %t2201 = load i32, ptr %t2200 %t2202 = icmp ult i32 0, %t2201 br i1 %t2202, label %ixok445, label %ixbad446 ixbad446: %t2203 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2203, ptr @.fmt_bounds, ptr @.str9615, i32 0, i32 %t2201) call void @exit(i32 1) unreachable ixok445: %t2204 = getelementptr inbounds ptr, ptr %t2199, i32 0 %t2205 = load ptr, ptr %t2204 %t2206 = call ptr @fn_emit_expr(ptr %t2205) store ptr %t2206, ptr %t2207 %t2208 = load ptr, ptr %t0 %t2209 = getelementptr inbounds %Cmp_Node, ptr %t2208, i32 0, i32 7 %t2210 = load ptr, ptr %t2209 %t2211 = getelementptr inbounds %LSlice, ptr %t2210, i32 0, i32 0 %t2212 = load ptr, ptr %t2211 %t2213 = getelementptr inbounds %LSlice, ptr %t2210, i32 0, i32 1 %t2214 = load i32, ptr %t2213 %t2215 = icmp ult i32 1, %t2214 br i1 %t2215, label %ixok447, label %ixbad448 ixbad448: %t2216 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2216, ptr @.fmt_bounds, ptr @.str9616, i32 1, i32 %t2214) call void @exit(i32 1) unreachable ixok447: %t2217 = getelementptr inbounds ptr, ptr %t2212, i32 1 %t2218 = load ptr, ptr %t2217 %t2219 = call ptr @fn_emit_expr(ptr %t2218) store ptr %t2219, ptr %t2220 %t2221 = load ptr, ptr %t2207 %t2222 = getelementptr inbounds %Cmp_Val, ptr %t2221, i32 0, i32 0 %t2223 = load ptr, ptr %t2222 %t2224 = call ptr @lp_str_concat(ptr @.str9617, ptr %t2223) %t2225 = call ptr @lp_str_concat(ptr %t2224, ptr @.str9618) %t2226 = load ptr, ptr %t2220 %t2227 = getelementptr inbounds %Cmp_Val, ptr %t2226, i32 0, i32 0 %t2228 = load ptr, ptr %t2227 %t2229 = call ptr @lp_str_concat(ptr %t2225, ptr %t2228) %t2230 = call ptr @lp_str_concat(ptr %t2229, ptr @.str9619) %t2231 = call ptr @fn_emit_bind(ptr %t2230) %t2232 = call ptr @fn_val(ptr %t2231, ptr @.str9620) store ptr %t2232, ptr %retval br label %ret ifend444: %t2233 = load ptr, ptr %t48 %t2234 = call i32 @lp_str_eq(ptr %t2233, ptr @.str9621) %t2235 = icmp ne i32 %t2234, 0 br i1 %t2235, label %then449, label %ifend451 then449: %t2236 = call ptr @fn_emit_bind(ptr @.str9622) %t2237 = call ptr @fn_val(ptr %t2236, ptr @.str9623) store ptr %t2237, ptr %retval br label %ret ifend451: %t2238 = load ptr, ptr %t48 %t2239 = call i32 @lp_str_eq(ptr %t2238, ptr @.str9624) %t2240 = icmp ne i32 %t2239, 0 br i1 %t2240, label %then452, label %ifend454 then452: %t2241 = load ptr, ptr %t0 %t2242 = getelementptr inbounds %Cmp_Node, ptr %t2241, i32 0, i32 7 %t2243 = load ptr, ptr %t2242 %t2244 = getelementptr inbounds %LSlice, ptr %t2243, i32 0, i32 0 %t2245 = load ptr, ptr %t2244 %t2246 = getelementptr inbounds %LSlice, ptr %t2243, i32 0, i32 1 %t2247 = load i32, ptr %t2246 %t2248 = icmp ult i32 0, %t2247 br i1 %t2248, label %ixok455, label %ixbad456 ixbad456: %t2249 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2249, ptr @.fmt_bounds, ptr @.str9625, i32 0, i32 %t2247) call void @exit(i32 1) unreachable ixok455: %t2250 = getelementptr inbounds ptr, ptr %t2245, i32 0 %t2251 = load ptr, ptr %t2250 %t2252 = call ptr @fn_emit_expr(ptr %t2251) store ptr %t2252, ptr %t2253 %t2254 = load ptr, ptr %t2253 %t2255 = getelementptr inbounds %Cmp_Val, ptr %t2254, i32 0, i32 0 %t2256 = load ptr, ptr %t2255 %t2257 = call ptr @lp_str_concat(ptr @.str9626, ptr %t2256) %t2258 = call ptr @lp_str_concat(ptr %t2257, ptr @.str9627) %t2259 = call ptr @fn_emit_bind(ptr %t2258) %t2260 = call ptr @fn_val(ptr %t2259, ptr @.str9628) store ptr %t2260, ptr %retval br label %ret ifend454: %t2261 = load ptr, ptr %t48 %t2262 = call i32 @lp_str_eq(ptr %t2261, ptr @.str9629) %t2263 = icmp ne i32 %t2262, 0 br i1 %t2263, label %then457, label %ifend459 then457: %t2264 = load ptr, ptr %t0 %t2265 = getelementptr inbounds %Cmp_Node, ptr %t2264, i32 0, i32 7 %t2266 = load ptr, ptr %t2265 %t2267 = getelementptr inbounds %LSlice, ptr %t2266, i32 0, i32 0 %t2268 = load ptr, ptr %t2267 %t2269 = getelementptr inbounds %LSlice, ptr %t2266, i32 0, i32 1 %t2270 = load i32, ptr %t2269 %t2271 = icmp ult i32 0, %t2270 br i1 %t2271, label %ixok460, label %ixbad461 ixbad461: %t2272 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2272, ptr @.fmt_bounds, ptr @.str9630, i32 0, i32 %t2270) call void @exit(i32 1) unreachable ixok460: %t2273 = getelementptr inbounds ptr, ptr %t2268, i32 0 %t2274 = load ptr, ptr %t2273 %t2275 = call ptr @fn_emit_expr(ptr %t2274) store ptr %t2275, ptr %t2276 %t2277 = load ptr, ptr %t2276 %t2278 = getelementptr inbounds %Cmp_Val, ptr %t2277, i32 0, i32 0 %t2279 = load ptr, ptr %t2278 %t2280 = call ptr @lp_str_concat(ptr @.str9631, ptr %t2279) %t2281 = call ptr @lp_str_concat(ptr %t2280, ptr @.str9632) %t2282 = call ptr @fn_emit_bind(ptr %t2281) %t2283 = call ptr @fn_val(ptr %t2282, ptr @.str9633) store ptr %t2283, ptr %retval br label %ret ifend459: %t2284 = load ptr, ptr %t48 %t2285 = call i32 @lp_str_eq(ptr %t2284, ptr @.str9634) %t2286 = icmp ne i32 %t2285, 0 br i1 %t2286, label %then462, label %ifend464 then462: %t2287 = load ptr, ptr %t0 %t2288 = getelementptr inbounds %Cmp_Node, ptr %t2287, i32 0, i32 7 %t2289 = load ptr, ptr %t2288 %t2290 = getelementptr inbounds %LSlice, ptr %t2289, i32 0, i32 0 %t2291 = load ptr, ptr %t2290 %t2292 = getelementptr inbounds %LSlice, ptr %t2289, i32 0, i32 1 %t2293 = load i32, ptr %t2292 %t2294 = icmp ult i32 0, %t2293 br i1 %t2294, label %ixok465, label %ixbad466 ixbad466: %t2295 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2295, ptr @.fmt_bounds, ptr @.str9635, i32 0, i32 %t2293) call void @exit(i32 1) unreachable ixok465: %t2296 = getelementptr inbounds ptr, ptr %t2291, i32 0 %t2297 = load ptr, ptr %t2296 %t2298 = call ptr @fn_emit_expr(ptr %t2297) store ptr %t2298, ptr %t2299 %t2300 = load ptr, ptr %t0 %t2301 = getelementptr inbounds %Cmp_Node, ptr %t2300, i32 0, i32 7 %t2302 = load ptr, ptr %t2301 %t2303 = getelementptr inbounds %LSlice, ptr %t2302, i32 0, i32 0 %t2304 = load ptr, ptr %t2303 %t2305 = getelementptr inbounds %LSlice, ptr %t2302, i32 0, i32 1 %t2306 = load i32, ptr %t2305 %t2307 = icmp ult i32 1, %t2306 br i1 %t2307, label %ixok467, label %ixbad468 ixbad468: %t2308 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2308, ptr @.fmt_bounds, ptr @.str9636, i32 1, i32 %t2306) call void @exit(i32 1) unreachable ixok467: %t2309 = getelementptr inbounds ptr, ptr %t2304, i32 1 %t2310 = load ptr, ptr %t2309 %t2311 = call ptr @fn_emit_expr(ptr %t2310) store ptr %t2311, ptr %t2312 %t2313 = load ptr, ptr %t2299 %t2314 = getelementptr inbounds %Cmp_Val, ptr %t2313, i32 0, i32 0 %t2315 = load ptr, ptr %t2314 %t2316 = call ptr @lp_str_concat(ptr @.str9637, ptr %t2315) %t2317 = call ptr @lp_str_concat(ptr %t2316, ptr @.str9638) %t2318 = load ptr, ptr %t2312 %t2319 = getelementptr inbounds %Cmp_Val, ptr %t2318, i32 0, i32 0 %t2320 = load ptr, ptr %t2319 %t2321 = call ptr @lp_str_concat(ptr %t2317, ptr %t2320) %t2322 = call ptr @lp_str_concat(ptr %t2321, ptr @.str9639) %t2323 = call ptr @fn_emit_bind(ptr %t2322) %t2324 = call ptr @fn_val(ptr %t2323, ptr @.str9640) store ptr %t2324, ptr %retval br label %ret ifend464: %t2325 = load ptr, ptr %t48 %t2326 = call i32 @lp_str_eq(ptr %t2325, ptr @.str9641) %t2327 = icmp ne i32 %t2326, 0 br i1 %t2327, label %then469, label %ifend471 then469: %t2328 = load ptr, ptr %t0 %t2329 = getelementptr inbounds %Cmp_Node, ptr %t2328, i32 0, i32 7 %t2330 = load ptr, ptr %t2329 %t2331 = getelementptr inbounds %LSlice, ptr %t2330, i32 0, i32 0 %t2332 = load ptr, ptr %t2331 %t2333 = getelementptr inbounds %LSlice, ptr %t2330, i32 0, i32 1 %t2334 = load i32, ptr %t2333 %t2335 = icmp ult i32 0, %t2334 br i1 %t2335, label %ixok472, label %ixbad473 ixbad473: %t2336 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2336, ptr @.fmt_bounds, ptr @.str9642, i32 0, i32 %t2334) call void @exit(i32 1) unreachable ixok472: %t2337 = getelementptr inbounds ptr, ptr %t2332, i32 0 %t2338 = load ptr, ptr %t2337 %t2339 = call ptr @fn_emit_expr(ptr %t2338) store ptr %t2339, ptr %t2340 %t2341 = load ptr, ptr %t0 %t2342 = getelementptr inbounds %Cmp_Node, ptr %t2341, i32 0, i32 7 %t2343 = load ptr, ptr %t2342 %t2344 = getelementptr inbounds %LSlice, ptr %t2343, i32 0, i32 0 %t2345 = load ptr, ptr %t2344 %t2346 = getelementptr inbounds %LSlice, ptr %t2343, i32 0, i32 1 %t2347 = load i32, ptr %t2346 %t2348 = icmp ult i32 1, %t2347 br i1 %t2348, label %ixok474, label %ixbad475 ixbad475: %t2349 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2349, ptr @.fmt_bounds, ptr @.str9643, i32 1, i32 %t2347) call void @exit(i32 1) unreachable ixok474: %t2350 = getelementptr inbounds ptr, ptr %t2345, i32 1 %t2351 = load ptr, ptr %t2350 %t2352 = call ptr @fn_emit_expr(ptr %t2351) store ptr %t2352, ptr %t2353 %t2354 = load ptr, ptr %t2340 %t2355 = getelementptr inbounds %Cmp_Val, ptr %t2354, i32 0, i32 0 %t2356 = load ptr, ptr %t2355 %t2357 = call ptr @lp_str_concat(ptr @.str9644, ptr %t2356) %t2358 = call ptr @lp_str_concat(ptr %t2357, ptr @.str9645) %t2359 = load ptr, ptr %t2353 %t2360 = getelementptr inbounds %Cmp_Val, ptr %t2359, i32 0, i32 0 %t2361 = load ptr, ptr %t2360 %t2362 = call ptr @lp_str_concat(ptr %t2358, ptr %t2361) %t2363 = call ptr @lp_str_concat(ptr %t2362, ptr @.str9646) %t2364 = call ptr @fn_emit_bind(ptr %t2363) %t2365 = call ptr @fn_val(ptr %t2364, ptr @.str9647) store ptr %t2365, ptr %retval br label %ret ifend471: %t2366 = load ptr, ptr %t48 %t2367 = call i32 @lp_str_eq(ptr %t2366, ptr @.str9648) %t2368 = icmp ne i32 %t2367, 0 br i1 %t2368, label %then476, label %ifend478 then476: %t2369 = load ptr, ptr %t0 %t2370 = getelementptr inbounds %Cmp_Node, ptr %t2369, i32 0, i32 7 %t2371 = load ptr, ptr %t2370 %t2372 = getelementptr inbounds %LSlice, ptr %t2371, i32 0, i32 0 %t2373 = load ptr, ptr %t2372 %t2374 = getelementptr inbounds %LSlice, ptr %t2371, i32 0, i32 1 %t2375 = load i32, ptr %t2374 %t2376 = icmp ult i32 0, %t2375 br i1 %t2376, label %ixok479, label %ixbad480 ixbad480: %t2377 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2377, ptr @.fmt_bounds, ptr @.str9649, i32 0, i32 %t2375) call void @exit(i32 1) unreachable ixok479: %t2378 = getelementptr inbounds ptr, ptr %t2373, i32 0 %t2379 = load ptr, ptr %t2378 %t2380 = call ptr @fn_emit_expr(ptr %t2379) store ptr %t2380, ptr %t2381 %t2382 = load ptr, ptr %t0 %t2383 = getelementptr inbounds %Cmp_Node, ptr %t2382, i32 0, i32 7 %t2384 = load ptr, ptr %t2383 %t2385 = getelementptr inbounds %LSlice, ptr %t2384, i32 0, i32 0 %t2386 = load ptr, ptr %t2385 %t2387 = getelementptr inbounds %LSlice, ptr %t2384, i32 0, i32 1 %t2388 = load i32, ptr %t2387 %t2389 = icmp ult i32 1, %t2388 br i1 %t2389, label %ixok481, label %ixbad482 ixbad482: %t2390 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2390, ptr @.fmt_bounds, ptr @.str9650, i32 1, i32 %t2388) call void @exit(i32 1) unreachable ixok481: %t2391 = getelementptr inbounds ptr, ptr %t2386, i32 1 %t2392 = load ptr, ptr %t2391 %t2393 = call ptr @fn_emit_expr(ptr %t2392) store ptr %t2393, ptr %t2394 call void @fn_emit(ptr @.str9651) %t2395 = load ptr, ptr %t2381 %t2396 = getelementptr inbounds %Cmp_Val, ptr %t2395, i32 0, i32 0 %t2397 = load ptr, ptr %t2396 call void @fn_emit(ptr %t2397) call void @fn_emit(ptr @.str9652) %t2398 = load ptr, ptr %t2394 %t2399 = getelementptr inbounds %Cmp_Val, ptr %t2398, i32 0, i32 0 %t2400 = load ptr, ptr %t2399 call void @fn_emit(ptr %t2400) call void @fn_emit(ptr @.str9653) %t2401 = call ptr @fn_val(ptr @.str9654, ptr @.str9655) store ptr %t2401, ptr %retval br label %ret ifend478: %t2402 = load ptr, ptr %t48 %t2403 = call i32 @lp_str_eq(ptr %t2402, ptr @.str9656) %t2404 = icmp ne i32 %t2403, 0 br i1 %t2404, label %then483, label %ifend485 then483: %t2405 = load ptr, ptr %t0 %t2406 = getelementptr inbounds %Cmp_Node, ptr %t2405, i32 0, i32 7 %t2407 = load ptr, ptr %t2406 %t2408 = getelementptr inbounds %LSlice, ptr %t2407, i32 0, i32 0 %t2409 = load ptr, ptr %t2408 %t2410 = getelementptr inbounds %LSlice, ptr %t2407, i32 0, i32 1 %t2411 = load i32, ptr %t2410 %t2412 = icmp ult i32 0, %t2411 br i1 %t2412, label %ixok486, label %ixbad487 ixbad487: %t2413 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2413, ptr @.fmt_bounds, ptr @.str9657, i32 0, i32 %t2411) call void @exit(i32 1) unreachable ixok486: %t2414 = getelementptr inbounds ptr, ptr %t2409, i32 0 %t2415 = load ptr, ptr %t2414 %t2416 = call ptr @fn_emit_expr(ptr %t2415) store ptr %t2416, ptr %t2417 %t2418 = load ptr, ptr %t0 %t2419 = getelementptr inbounds %Cmp_Node, ptr %t2418, i32 0, i32 7 %t2420 = load ptr, ptr %t2419 %t2421 = getelementptr inbounds %LSlice, ptr %t2420, i32 0, i32 0 %t2422 = load ptr, ptr %t2421 %t2423 = getelementptr inbounds %LSlice, ptr %t2420, i32 0, i32 1 %t2424 = load i32, ptr %t2423 %t2425 = icmp ult i32 1, %t2424 br i1 %t2425, label %ixok488, label %ixbad489 ixbad489: %t2426 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2426, ptr @.fmt_bounds, ptr @.str9658, i32 1, i32 %t2424) call void @exit(i32 1) unreachable ixok488: %t2427 = getelementptr inbounds ptr, ptr %t2422, i32 1 %t2428 = load ptr, ptr %t2427 %t2429 = call ptr @fn_emit_expr(ptr %t2428) store ptr %t2429, ptr %t2430 call void @fn_emit(ptr @.str9659) %t2431 = load ptr, ptr %t2417 %t2432 = getelementptr inbounds %Cmp_Val, ptr %t2431, i32 0, i32 0 %t2433 = load ptr, ptr %t2432 call void @fn_emit(ptr %t2433) call void @fn_emit(ptr @.str9660) %t2434 = load ptr, ptr %t2430 %t2435 = getelementptr inbounds %Cmp_Val, ptr %t2434, i32 0, i32 0 %t2436 = load ptr, ptr %t2435 call void @fn_emit(ptr %t2436) call void @fn_emit(ptr @.str9661) %t2437 = call ptr @fn_val(ptr @.str9662, ptr @.str9663) store ptr %t2437, ptr %retval br label %ret ifend485: %t2438 = load ptr, ptr %t48 %t2439 = call i32 @lp_str_eq(ptr %t2438, ptr @.str9664) %t2440 = icmp ne i32 %t2439, 0 br i1 %t2440, label %then490, label %ifend492 then490: %t2441 = load ptr, ptr %t0 %t2442 = getelementptr inbounds %Cmp_Node, ptr %t2441, i32 0, i32 7 %t2443 = load ptr, ptr %t2442 %t2444 = getelementptr inbounds %LSlice, ptr %t2443, i32 0, i32 0 %t2445 = load ptr, ptr %t2444 %t2446 = getelementptr inbounds %LSlice, ptr %t2443, i32 0, i32 1 %t2447 = load i32, ptr %t2446 %t2448 = icmp ult i32 0, %t2447 br i1 %t2448, label %ixok493, label %ixbad494 ixbad494: %t2449 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2449, ptr @.fmt_bounds, ptr @.str9665, i32 0, i32 %t2447) call void @exit(i32 1) unreachable ixok493: %t2450 = getelementptr inbounds ptr, ptr %t2445, i32 0 %t2451 = load ptr, ptr %t2450 %t2452 = call ptr @fn_emit_expr(ptr %t2451) store ptr %t2452, ptr %t2453 %t2454 = load ptr, ptr %t2453 %t2455 = getelementptr inbounds %Cmp_Val, ptr %t2454, i32 0, i32 0 %t2456 = load ptr, ptr %t2455 %t2457 = call ptr @lp_str_concat(ptr @.str9666, ptr %t2456) %t2458 = call ptr @lp_str_concat(ptr %t2457, ptr @.str9667) %t2459 = call ptr @fn_emit_bind(ptr %t2458) %t2460 = call ptr @fn_val(ptr %t2459, ptr @.str9668) store ptr %t2460, ptr %retval br label %ret ifend492: %t2461 = load ptr, ptr %t48 %t2462 = call i32 @lp_str_eq(ptr %t2461, ptr @.str9669) %t2463 = icmp ne i32 %t2462, 0 br i1 %t2463, label %then495, label %ifend497 then495: %t2464 = call ptr @fn_emit_bind(ptr @.str9670) %t2465 = call ptr @fn_val(ptr %t2464, ptr @.str9671) store ptr %t2465, ptr %retval br label %ret ifend497: %t2466 = load ptr, ptr %t48 %t2467 = call i32 @lp_str_eq(ptr %t2466, ptr @.str9672) %t2468 = icmp ne i32 %t2467, 0 br i1 %t2468, label %then498, label %ifend500 then498: %t2469 = load ptr, ptr %t0 %t2470 = getelementptr inbounds %Cmp_Node, ptr %t2469, i32 0, i32 7 %t2471 = load ptr, ptr %t2470 %t2472 = getelementptr inbounds %LSlice, ptr %t2471, i32 0, i32 0 %t2473 = load ptr, ptr %t2472 %t2474 = getelementptr inbounds %LSlice, ptr %t2471, i32 0, i32 1 %t2475 = load i32, ptr %t2474 %t2476 = icmp ult i32 0, %t2475 br i1 %t2476, label %ixok501, label %ixbad502 ixbad502: %t2477 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2477, ptr @.fmt_bounds, ptr @.str9673, i32 0, i32 %t2475) call void @exit(i32 1) unreachable ixok501: %t2478 = getelementptr inbounds ptr, ptr %t2473, i32 0 %t2479 = load ptr, ptr %t2478 %t2480 = call ptr @fn_emit_expr(ptr %t2479) store ptr %t2480, ptr %t2481 %t2482 = load ptr, ptr %t2481 %t2483 = getelementptr inbounds %Cmp_Val, ptr %t2482, i32 0, i32 0 %t2484 = load ptr, ptr %t2483 %t2485 = call ptr @lp_str_concat(ptr @.str9674, ptr %t2484) %t2486 = call ptr @lp_str_concat(ptr %t2485, ptr @.str9675) %t2487 = call ptr @fn_emit_bind(ptr %t2486) %t2488 = call ptr @fn_val(ptr %t2487, ptr @.str9676) store ptr %t2488, ptr %retval br label %ret ifend500: %t2489 = load ptr, ptr %t48 %t2490 = call i32 @lp_str_eq(ptr %t2489, ptr @.str9677) %t2491 = icmp ne i32 %t2490, 0 br i1 %t2491, label %then503, label %ifend505 then503: %t2492 = load ptr, ptr %t0 %t2493 = getelementptr inbounds %Cmp_Node, ptr %t2492, i32 0, i32 7 %t2494 = load ptr, ptr %t2493 %t2495 = getelementptr inbounds %LSlice, ptr %t2494, i32 0, i32 0 %t2496 = load ptr, ptr %t2495 %t2497 = getelementptr inbounds %LSlice, ptr %t2494, i32 0, i32 1 %t2498 = load i32, ptr %t2497 %t2499 = icmp ult i32 0, %t2498 br i1 %t2499, label %ixok506, label %ixbad507 ixbad507: %t2500 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2500, ptr @.fmt_bounds, ptr @.str9678, i32 0, i32 %t2498) call void @exit(i32 1) unreachable ixok506: %t2501 = getelementptr inbounds ptr, ptr %t2496, i32 0 %t2502 = load ptr, ptr %t2501 %t2503 = call ptr @fn_emit_expr(ptr %t2502) store ptr %t2503, ptr %t2504 %t2505 = load ptr, ptr %t2504 %t2506 = getelementptr inbounds %Cmp_Val, ptr %t2505, i32 0, i32 0 %t2507 = load ptr, ptr %t2506 %t2508 = call ptr @lp_str_concat(ptr @.str9679, ptr %t2507) %t2509 = call ptr @lp_str_concat(ptr %t2508, ptr @.str9680) %t2510 = call ptr @fn_emit_bind(ptr %t2509) %t2511 = call ptr @fn_val(ptr %t2510, ptr @.str9681) store ptr %t2511, ptr %retval br label %ret ifend505: %t2512 = load ptr, ptr %t48 %t2513 = call i32 @lp_str_eq(ptr %t2512, ptr @.str9682) %t2514 = icmp ne i32 %t2513, 0 br i1 %t2514, label %then508, label %ifend510 then508: %t2515 = load ptr, ptr %t0 %t2516 = getelementptr inbounds %Cmp_Node, ptr %t2515, i32 0, i32 7 %t2517 = load ptr, ptr %t2516 %t2518 = getelementptr inbounds %LSlice, ptr %t2517, i32 0, i32 0 %t2519 = load ptr, ptr %t2518 %t2520 = getelementptr inbounds %LSlice, ptr %t2517, i32 0, i32 1 %t2521 = load i32, ptr %t2520 %t2522 = icmp ult i32 0, %t2521 br i1 %t2522, label %ixok511, label %ixbad512 ixbad512: %t2523 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2523, ptr @.fmt_bounds, ptr @.str9683, i32 0, i32 %t2521) call void @exit(i32 1) unreachable ixok511: %t2524 = getelementptr inbounds ptr, ptr %t2519, i32 0 %t2525 = load ptr, ptr %t2524 %t2526 = call ptr @fn_emit_expr(ptr %t2525) store ptr %t2526, ptr %t2527 %t2528 = load ptr, ptr %t0 %t2529 = getelementptr inbounds %Cmp_Node, ptr %t2528, i32 0, i32 7 %t2530 = load ptr, ptr %t2529 %t2531 = getelementptr inbounds %LSlice, ptr %t2530, i32 0, i32 0 %t2532 = load ptr, ptr %t2531 %t2533 = getelementptr inbounds %LSlice, ptr %t2530, i32 0, i32 1 %t2534 = load i32, ptr %t2533 %t2535 = icmp ult i32 1, %t2534 br i1 %t2535, label %ixok513, label %ixbad514 ixbad514: %t2536 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2536, ptr @.fmt_bounds, ptr @.str9684, i32 1, i32 %t2534) call void @exit(i32 1) unreachable ixok513: %t2537 = getelementptr inbounds ptr, ptr %t2532, i32 1 %t2538 = load ptr, ptr %t2537 %t2539 = call ptr @fn_emit_expr(ptr %t2538) store ptr %t2539, ptr %t2540 %t2541 = load ptr, ptr %t2527 %t2542 = getelementptr inbounds %Cmp_Val, ptr %t2541, i32 0, i32 0 %t2543 = load ptr, ptr %t2542 %t2544 = call ptr @lp_str_concat(ptr @.str9685, ptr %t2543) %t2545 = call ptr @lp_str_concat(ptr %t2544, ptr @.str9686) %t2546 = load ptr, ptr %t2540 %t2547 = getelementptr inbounds %Cmp_Val, ptr %t2546, i32 0, i32 0 %t2548 = load ptr, ptr %t2547 %t2549 = call ptr @lp_str_concat(ptr %t2545, ptr %t2548) %t2550 = call ptr @lp_str_concat(ptr %t2549, ptr @.str9687) %t2551 = call ptr @fn_emit_bind(ptr %t2550) %t2552 = call ptr @fn_val(ptr %t2551, ptr @.str9688) store ptr %t2552, ptr %retval br label %ret ifend510: %t2553 = load ptr, ptr %t48 %t2554 = call i32 @lp_str_eq(ptr %t2553, ptr @.str9689) %t2555 = icmp ne i32 %t2554, 0 br i1 %t2555, label %then515, label %ifend517 then515: %t2556 = load ptr, ptr %t0 %t2557 = getelementptr inbounds %Cmp_Node, ptr %t2556, i32 0, i32 7 %t2558 = load ptr, ptr %t2557 %t2559 = getelementptr inbounds %LSlice, ptr %t2558, i32 0, i32 0 %t2560 = load ptr, ptr %t2559 %t2561 = getelementptr inbounds %LSlice, ptr %t2558, i32 0, i32 1 %t2562 = load i32, ptr %t2561 %t2563 = icmp ult i32 0, %t2562 br i1 %t2563, label %ixok518, label %ixbad519 ixbad519: %t2564 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2564, ptr @.fmt_bounds, ptr @.str9690, i32 0, i32 %t2562) call void @exit(i32 1) unreachable ixok518: %t2565 = getelementptr inbounds ptr, ptr %t2560, i32 0 %t2566 = load ptr, ptr %t2565 %t2567 = call ptr @fn_emit_expr(ptr %t2566) store ptr %t2567, ptr %t2568 %t2569 = load ptr, ptr %t0 %t2570 = getelementptr inbounds %Cmp_Node, ptr %t2569, i32 0, i32 7 %t2571 = load ptr, ptr %t2570 %t2572 = getelementptr inbounds %LSlice, ptr %t2571, i32 0, i32 0 %t2573 = load ptr, ptr %t2572 %t2574 = getelementptr inbounds %LSlice, ptr %t2571, i32 0, i32 1 %t2575 = load i32, ptr %t2574 %t2576 = icmp ult i32 1, %t2575 br i1 %t2576, label %ixok520, label %ixbad521 ixbad521: %t2577 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2577, ptr @.fmt_bounds, ptr @.str9691, i32 1, i32 %t2575) call void @exit(i32 1) unreachable ixok520: %t2578 = getelementptr inbounds ptr, ptr %t2573, i32 1 %t2579 = load ptr, ptr %t2578 %t2580 = call ptr @fn_emit_expr(ptr %t2579) store ptr %t2580, ptr %t2581 %t2582 = load ptr, ptr %t2568 %t2583 = getelementptr inbounds %Cmp_Val, ptr %t2582, i32 0, i32 0 %t2584 = load ptr, ptr %t2583 %t2585 = call ptr @lp_str_concat(ptr @.str9692, ptr %t2584) %t2586 = call ptr @lp_str_concat(ptr %t2585, ptr @.str9693) %t2587 = load ptr, ptr %t2581 %t2588 = getelementptr inbounds %Cmp_Val, ptr %t2587, i32 0, i32 0 %t2589 = load ptr, ptr %t2588 %t2590 = call ptr @lp_str_concat(ptr %t2586, ptr %t2589) %t2591 = call ptr @lp_str_concat(ptr %t2590, ptr @.str9694) %t2592 = call ptr @fn_emit_bind(ptr %t2591) %t2593 = call ptr @fn_val(ptr %t2592, ptr @.str9695) store ptr %t2593, ptr %retval br label %ret ifend517: %t2594 = load ptr, ptr %t48 %t2595 = call i32 @fn_is_intrinsic(ptr %t2594) %t2596 = icmp ne i32 %t2595, 0 br i1 %t2596, label %then522, label %ifend524 then522: %t2597 = load ptr, ptr %t48 %t2598 = load ptr, ptr %t0 %t2599 = call ptr @fn_emit_intrinsic(ptr %t2597, ptr %t2598) store ptr %t2599, ptr %retval br label %ret ifend524: %t2600 = load ptr, ptr %t48 %t2601 = call i32 @fn_is_intrinsic2(ptr %t2600) %t2602 = icmp ne i32 %t2601, 0 br i1 %t2602, label %then525, label %ifend527 then525: %t2603 = load ptr, ptr %t48 %t2604 = load ptr, ptr %t0 %t2605 = call ptr @fn_emit_intrinsic2(ptr %t2603, ptr %t2604) store ptr %t2605, ptr %retval br label %ret ifend527: %t2606 = load ptr, ptr %t48 %t2607 = call i32 @fn_is_math_builtin(ptr %t2606) %t2608 = icmp ne i32 %t2607, 0 br i1 %t2608, label %then528, label %ifend530 then528: %t2609 = load ptr, ptr %t48 %t2610 = load ptr, ptr %t0 %t2611 = call ptr @fn_emit_math_builtin(ptr %t2609, ptr %t2610) store ptr %t2611, ptr %retval br label %ret ifend530: %t2612 = load ptr, ptr %t48 %t2613 = call ptr @fn_find_extern(ptr %t2612) store ptr %t2613, ptr %t2614 %t2615 = load ptr, ptr %t2614 %t2616 = icmp ne ptr %t2615, null %t2617 = zext i1 %t2616 to i32 %t2618 = icmp ne i32 %t2617, 0 br i1 %t2618, label %then531, label %ifend533 then531: %t2619 = load ptr, ptr %t0 %t2620 = load ptr, ptr %t2614 %t2621 = call ptr @fn_param_labels(ptr %t2620) call void @fn_reorder_named(ptr %t2619, ptr %t2621) %t2622 = load ptr, ptr %t2614 %t2623 = call ptr @fn_param_types(ptr %t2622) store ptr %t2623, ptr %t2624 %t2625 = getelementptr %LSlice, ptr null, i32 1 %t2626 = ptrtoint ptr %t2625 to i64 %t2627 = call ptr @malloc(i64 %t2626) %t2628 = getelementptr inbounds %LSlice, ptr %t2627, i32 0, i32 0 store ptr null, ptr %t2628 %t2629 = getelementptr inbounds %LSlice, ptr %t2627, i32 0, i32 1 store i32 0, ptr %t2629 %t2630 = getelementptr inbounds %LSlice, ptr %t2627, i32 0, i32 2 store i32 0, ptr %t2630 store ptr %t2627, ptr %t2631 %t2632 = getelementptr %LSlice, ptr null, i32 1 %t2633 = ptrtoint ptr %t2632 to i64 %t2634 = call ptr @malloc(i64 %t2633) %t2635 = getelementptr inbounds %LSlice, ptr %t2634, i32 0, i32 0 store ptr null, ptr %t2635 %t2636 = getelementptr inbounds %LSlice, ptr %t2634, i32 0, i32 1 store i32 0, ptr %t2636 %t2637 = getelementptr inbounds %LSlice, ptr %t2634, i32 0, i32 2 store i32 0, ptr %t2637 store ptr %t2634, ptr %t2638 store i32 0, ptr %t2639 br label %wcond534 wcond534: %t2640 = load i32, ptr %t2639 %t2641 = load ptr, ptr %t0 %t2642 = getelementptr inbounds %Cmp_Node, ptr %t2641, i32 0, i32 7 %t2643 = load ptr, ptr %t2642 %t2644 = getelementptr inbounds %LSlice, ptr %t2643, i32 0, i32 1 %t2645 = load i32, ptr %t2644 %t2646 = icmp slt i32 %t2640, %t2645 %t2647 = zext i1 %t2646 to i32 %t2648 = icmp ne i32 %t2647, 0 br i1 %t2648, label %wbody535, label %wend536 wbody535: %t2649 = load ptr, ptr %t0 %t2650 = getelementptr inbounds %Cmp_Node, ptr %t2649, i32 0, i32 7 %t2651 = load ptr, ptr %t2650 %t2652 = load i32, ptr %t2639 %t2653 = getelementptr inbounds %LSlice, ptr %t2651, i32 0, i32 0 %t2654 = load ptr, ptr %t2653 %t2655 = getelementptr inbounds %LSlice, ptr %t2651, i32 0, i32 1 %t2656 = load i32, ptr %t2655 %t2657 = icmp ult i32 %t2652, %t2656 br i1 %t2657, label %ixok537, label %ixbad538 ixbad538: %t2658 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2658, ptr @.fmt_bounds, ptr @.str9696, i32 %t2652, i32 %t2656) call void @exit(i32 1) unreachable ixok537: %t2659 = getelementptr inbounds ptr, ptr %t2654, i32 %t2652 %t2660 = load ptr, ptr %t2659 %t2661 = call ptr @fn_emit_expr(ptr %t2660) store ptr %t2661, ptr %t2662 %t2663 = load ptr, ptr %t2662 %t2664 = getelementptr inbounds %Cmp_Val, ptr %t2663, i32 0, i32 1 %t2665 = load ptr, ptr %t2664 %t2666 = call i32 @fn_is_slice_ty(ptr %t2665) %t2667 = icmp ne i32 %t2666, 0 br i1 %t2667, label %then539, label %ifend541 then539: %t2668 = load ptr, ptr %t2662 %t2669 = getelementptr inbounds %Cmp_Val, ptr %t2668, i32 0, i32 0 %t2670 = load ptr, ptr %t2669 %t2671 = call ptr @fn_slice_field(ptr %t2670, i32 0) %t2672 = call ptr @lp_str_concat(ptr @.str9697, ptr %t2671) %t2673 = call ptr @fn_emit_bind(ptr %t2672) %t2674 = call ptr @fn_val(ptr %t2673, ptr @.str9698) store ptr %t2674, ptr %t2662 br label %ifend541 ifend541: %t2675 = load ptr, ptr %t2662 %t2676 = getelementptr inbounds %Cmp_Val, ptr %t2675, i32 0, i32 1 %t2677 = load ptr, ptr %t2676 store ptr %t2677, ptr %t2678 %t2679 = load i32, ptr %t2639 %t2680 = load ptr, ptr %t2624 %t2681 = getelementptr inbounds %LSlice, ptr %t2680, i32 0, i32 1 %t2682 = load i32, ptr %t2681 %t2683 = icmp slt i32 %t2679, %t2682 %t2684 = zext i1 %t2683 to i32 %t2685 = icmp ne i32 %t2684, 0 br i1 %t2685, label %then542, label %ifend544 then542: %t2686 = load ptr, ptr %t2624 %t2687 = load i32, ptr %t2639 %t2688 = getelementptr inbounds %LSlice, ptr %t2686, i32 0, i32 0 %t2689 = load ptr, ptr %t2688 %t2690 = getelementptr inbounds %LSlice, ptr %t2686, i32 0, i32 1 %t2691 = load i32, ptr %t2690 %t2692 = icmp ult i32 %t2687, %t2691 br i1 %t2692, label %ixok545, label %ixbad546 ixbad546: %t2693 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2693, ptr @.fmt_bounds, ptr @.str9699, i32 %t2687, i32 %t2691) call void @exit(i32 1) unreachable ixok545: %t2694 = getelementptr inbounds ptr, ptr %t2689, i32 %t2687 %t2695 = load ptr, ptr %t2694 store ptr %t2695, ptr %t2678 br label %ifend544 ifend544: %t2696 = load ptr, ptr %t2678 %t2697 = call i32 @fn_is_slice_ty(ptr %t2696) %t2698 = icmp ne i32 %t2697, 0 br i1 %t2698, label %then547, label %ifend549 then547: store ptr @.str9700, ptr %t2678 br label %ifend549 ifend549: %t2699 = load ptr, ptr %t2631 %t2700 = load ptr, ptr %t2662 %t2701 = load ptr, ptr %t2678 %t2702 = call ptr @fn_coerce_code(ptr %t2700, ptr %t2701) %t2703 = getelementptr inbounds %LSlice, ptr %t2699, i32 0, i32 1 %t2704 = getelementptr inbounds %LSlice, ptr %t2699, i32 0, i32 2 %t2705 = getelementptr inbounds %LSlice, ptr %t2699, i32 0, i32 0 %t2706 = load i32, ptr %t2703 %t2707 = load i32, ptr %t2704 %t2708 = icmp sge i32 %t2706, %t2707 br i1 %t2708, label %grow550, label %put551 grow550: %t2709 = mul i32 %t2707, 2 %t2710 = icmp eq i32 %t2707, 0 %t2711 = select i1 %t2710, i32 8, i32 %t2709 %t2712 = getelementptr ptr, ptr null, i32 1 %t2713 = ptrtoint ptr %t2712 to i64 %t2714 = zext i32 %t2711 to i64 %t2715 = mul i64 %t2714, %t2713 %t2716 = load ptr, ptr %t2705 %t2717 = call ptr @realloc(ptr %t2716, i64 %t2715) store ptr %t2717, ptr %t2705 store i32 %t2711, ptr %t2704 br label %put551 put551: %t2718 = load ptr, ptr %t2705 %t2719 = getelementptr inbounds ptr, ptr %t2718, i32 %t2706 store ptr %t2702, ptr %t2719 %t2720 = add i32 %t2706, 1 store i32 %t2720, ptr %t2703 %t2721 = load ptr, ptr %t2638 %t2722 = load ptr, ptr %t2678 %t2723 = getelementptr inbounds %LSlice, ptr %t2721, i32 0, i32 1 %t2724 = getelementptr inbounds %LSlice, ptr %t2721, i32 0, i32 2 %t2725 = getelementptr inbounds %LSlice, ptr %t2721, i32 0, i32 0 %t2726 = load i32, ptr %t2723 %t2727 = load i32, ptr %t2724 %t2728 = icmp sge i32 %t2726, %t2727 br i1 %t2728, label %grow552, label %put553 grow552: %t2729 = mul i32 %t2727, 2 %t2730 = icmp eq i32 %t2727, 0 %t2731 = select i1 %t2730, i32 8, i32 %t2729 %t2732 = getelementptr ptr, ptr null, i32 1 %t2733 = ptrtoint ptr %t2732 to i64 %t2734 = zext i32 %t2731 to i64 %t2735 = mul i64 %t2734, %t2733 %t2736 = load ptr, ptr %t2725 %t2737 = call ptr @realloc(ptr %t2736, i64 %t2735) store ptr %t2737, ptr %t2725 store i32 %t2731, ptr %t2724 br label %put553 put553: %t2738 = load ptr, ptr %t2725 %t2739 = getelementptr inbounds ptr, ptr %t2738, i32 %t2726 store ptr %t2722, ptr %t2739 %t2740 = add i32 %t2726, 1 store i32 %t2740, ptr %t2723 %t2741 = load i32, ptr %t2639 %t2742 = add i32 %t2741, 1 store i32 %t2742, ptr %t2639 br label %wcond534 wend536: %t2743 = load ptr, ptr %t2614 %t2744 = getelementptr inbounds %Cmp_Node, ptr %t2743, i32 0, i32 3 %t2745 = load ptr, ptr %t2744 %t2746 = call ptr @fn_llty(ptr %t2745) store ptr %t2746, ptr %t2747 call void @fn_emit(ptr @.str9701) store ptr @.str9702, ptr %t2748 %t2749 = load ptr, ptr %t2747 %t2750 = call i32 @lp_str_eq(ptr %t2749, ptr @.str9703) %t2751 = icmp eq i32 %t2750, 0 %t2752 = zext i1 %t2751 to i32 %t2753 = icmp ne i32 %t2752, 0 br i1 %t2753, label %then554, label %ifend556 then554: %t2754 = call ptr @fn_nreg() store ptr %t2754, ptr %t2748 %t2755 = load ptr, ptr %t2748 call void @fn_emit(ptr %t2755) call void @fn_emit(ptr @.str9704) br label %ifend556 ifend556: call void @fn_emit(ptr @.str9705) %t2756 = load ptr, ptr %t2747 call void @fn_emit(ptr %t2756) call void @fn_emit(ptr @.str9706) %t2757 = load ptr, ptr %t2614 %t2758 = getelementptr inbounds %Cmp_Node, ptr %t2757, i32 0, i32 4 %t2759 = load ptr, ptr %t2758 %t2760 = getelementptr inbounds %Cmp_Node, ptr %t2759, i32 0, i32 1 %t2761 = load ptr, ptr %t2760 call void @fn_emit(ptr %t2761) call void @fn_emit(ptr @.str9707) store i32 0, ptr %t2639 br label %wcond557 wcond557: %t2762 = load i32, ptr %t2639 %t2763 = load ptr, ptr %t2631 %t2764 = getelementptr inbounds %LSlice, ptr %t2763, i32 0, i32 1 %t2765 = load i32, ptr %t2764 %t2766 = icmp slt i32 %t2762, %t2765 %t2767 = zext i1 %t2766 to i32 %t2768 = icmp ne i32 %t2767, 0 br i1 %t2768, label %wbody558, label %wend559 wbody558: %t2769 = load i32, ptr %t2639 %t2770 = icmp sgt i32 %t2769, 0 %t2771 = zext i1 %t2770 to i32 %t2772 = icmp ne i32 %t2771, 0 br i1 %t2772, label %then560, label %ifend562 then560: call void @fn_emit(ptr @.str9708) br label %ifend562 ifend562: %t2773 = load ptr, ptr %t2638 %t2774 = load i32, ptr %t2639 %t2775 = getelementptr inbounds %LSlice, ptr %t2773, i32 0, i32 0 %t2776 = load ptr, ptr %t2775 %t2777 = getelementptr inbounds %LSlice, ptr %t2773, i32 0, i32 1 %t2778 = load i32, ptr %t2777 %t2779 = icmp ult i32 %t2774, %t2778 br i1 %t2779, label %ixok563, label %ixbad564 ixbad564: %t2780 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2780, ptr @.fmt_bounds, ptr @.str9709, i32 %t2774, i32 %t2778) call void @exit(i32 1) unreachable ixok563: %t2781 = getelementptr inbounds ptr, ptr %t2776, i32 %t2774 %t2782 = load ptr, ptr %t2781 %t2783 = call ptr @fn_llty(ptr %t2782) call void @fn_emit(ptr %t2783) call void @fn_emit(ptr @.str9710) %t2784 = load ptr, ptr %t2631 %t2785 = load i32, ptr %t2639 %t2786 = getelementptr inbounds %LSlice, ptr %t2784, i32 0, i32 0 %t2787 = load ptr, ptr %t2786 %t2788 = getelementptr inbounds %LSlice, ptr %t2784, i32 0, i32 1 %t2789 = load i32, ptr %t2788 %t2790 = icmp ult i32 %t2785, %t2789 br i1 %t2790, label %ixok565, label %ixbad566 ixbad566: %t2791 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2791, ptr @.fmt_bounds, ptr @.str9711, i32 %t2785, i32 %t2789) call void @exit(i32 1) unreachable ixok565: %t2792 = getelementptr inbounds ptr, ptr %t2787, i32 %t2785 %t2793 = load ptr, ptr %t2792 call void @fn_emit(ptr %t2793) %t2794 = load i32, ptr %t2639 %t2795 = add i32 %t2794, 1 store i32 %t2795, ptr %t2639 br label %wcond557 wend559: call void @fn_emit(ptr @.str9712) %t2796 = load ptr, ptr %t2748 %t2797 = load ptr, ptr %t2614 %t2798 = getelementptr inbounds %Cmp_Node, ptr %t2797, i32 0, i32 3 %t2799 = load ptr, ptr %t2798 %t2800 = call ptr @fn_val(ptr %t2796, ptr %t2799) store ptr %t2800, ptr %retval br label %ret ifend533: %t2801 = load ptr, ptr %t48 %t2802 = call ptr @fn_variant_enum(ptr %t2801) store ptr %t2802, ptr %t2803 %t2804 = load ptr, ptr %t2803 %t2805 = icmp ne ptr %t2804, null %t2806 = zext i1 %t2805 to i32 %t2807 = icmp ne i32 %t2806, 0 br i1 %t2807, label %then567, label %ifend569 then567: %t2808 = load ptr, ptr %t2803 %t2809 = load i32, ptr @g_g_var_ord %t2810 = load ptr, ptr %t0 %t2811 = getelementptr inbounds %Cmp_Node, ptr %t2810, i32 0, i32 7 %t2812 = load ptr, ptr %t2811 %t2813 = call ptr @fn_emit_variant_new(ptr %t2808, i32 %t2809, ptr %t2812) store ptr %t2813, ptr %retval br label %ret ifend569: %t2814 = load ptr, ptr %t48 %t2815 = call ptr @fn_find_fn(ptr %t2814) store ptr %t2815, ptr %t2816 %t2817 = load ptr, ptr %t48 store ptr %t2817, ptr %t2818 %t2819 = load ptr, ptr %t2816 %t2820 = icmp eq ptr %t2819, null %t2821 = zext i1 %t2820 to i32 %t2822 = icmp ne i32 %t2821, 0 br i1 %t2822, label %then570, label %ifend572 then570: %t2823 = load ptr, ptr %t48 %t2824 = call ptr @lp_str_concat(ptr @.str9713, ptr %t2823) store ptr %t2824, ptr %t2825 %t2826 = load ptr, ptr %t2825 %t2827 = call ptr @fn_find_fn(ptr %t2826) store ptr %t2827, ptr %t2816 %t2828 = load ptr, ptr %t2816 %t2829 = icmp eq ptr %t2828, null %t2830 = zext i1 %t2829 to i32 %t2831 = icmp ne i32 %t2830, 0 br i1 %t2831, label %then573, label %ifend575 then573: %t2832 = load ptr, ptr %t48 %t2833 = call ptr @lp_str_concat(ptr @.str9714, ptr %t2832) call void @fn_perr(ptr %t2833) br label %ifend575 ifend575: %t2834 = load ptr, ptr %t2825 store ptr %t2834, ptr %t2818 br label %ifend572 ifend572: %t2835 = load ptr, ptr %t2816 %t2836 = load ptr, ptr %t48 call void @fn_vis_check(ptr %t2835, ptr %t2836) %t2837 = load ptr, ptr %t0 %t2838 = load ptr, ptr %t2816 call void @fn_call_fill_defaults(ptr %t2837, ptr %t2838) %t2839 = load ptr, ptr %t0 %t2840 = load ptr, ptr %t2816 %t2841 = call ptr @fn_param_labels(ptr %t2840) call void @fn_reorder_named(ptr %t2839, ptr %t2841) %t2842 = load ptr, ptr %t2816 %t2843 = call ptr @fn_param_types(ptr %t2842) store ptr %t2843, ptr %t2844 %t2845 = getelementptr %LSlice, ptr null, i32 1 %t2846 = ptrtoint ptr %t2845 to i64 %t2847 = call ptr @malloc(i64 %t2846) %t2848 = getelementptr inbounds %LSlice, ptr %t2847, i32 0, i32 0 store ptr null, ptr %t2848 %t2849 = getelementptr inbounds %LSlice, ptr %t2847, i32 0, i32 1 store i32 0, ptr %t2849 %t2850 = getelementptr inbounds %LSlice, ptr %t2847, i32 0, i32 2 store i32 0, ptr %t2850 store ptr %t2847, ptr %t2851 %t2852 = getelementptr %LSlice, ptr null, i32 1 %t2853 = ptrtoint ptr %t2852 to i64 %t2854 = call ptr @malloc(i64 %t2853) %t2855 = getelementptr inbounds %LSlice, ptr %t2854, i32 0, i32 0 store ptr null, ptr %t2855 %t2856 = getelementptr inbounds %LSlice, ptr %t2854, i32 0, i32 1 store i32 0, ptr %t2856 %t2857 = getelementptr inbounds %LSlice, ptr %t2854, i32 0, i32 2 store i32 0, ptr %t2857 store ptr %t2854, ptr %t2858 store i32 0, ptr %t2859 br label %wcond576 wcond576: %t2860 = load i32, ptr %t2859 %t2861 = load ptr, ptr %t0 %t2862 = getelementptr inbounds %Cmp_Node, ptr %t2861, i32 0, i32 7 %t2863 = load ptr, ptr %t2862 %t2864 = getelementptr inbounds %LSlice, ptr %t2863, i32 0, i32 1 %t2865 = load i32, ptr %t2864 %t2866 = icmp slt i32 %t2860, %t2865 %t2867 = zext i1 %t2866 to i32 %t2868 = icmp ne i32 %t2867, 0 br i1 %t2868, label %wbody577, label %wend578 wbody577: %t2869 = load ptr, ptr %t0 %t2870 = getelementptr inbounds %Cmp_Node, ptr %t2869, i32 0, i32 7 %t2871 = load ptr, ptr %t2870 %t2872 = load i32, ptr %t2859 %t2873 = getelementptr inbounds %LSlice, ptr %t2871, i32 0, i32 0 %t2874 = load ptr, ptr %t2873 %t2875 = getelementptr inbounds %LSlice, ptr %t2871, i32 0, i32 1 %t2876 = load i32, ptr %t2875 %t2877 = icmp ult i32 %t2872, %t2876 br i1 %t2877, label %ixok579, label %ixbad580 ixbad580: %t2878 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2878, ptr @.fmt_bounds, ptr @.str9715, i32 %t2872, i32 %t2876) call void @exit(i32 1) unreachable ixok579: %t2879 = getelementptr inbounds ptr, ptr %t2874, i32 %t2872 %t2880 = load ptr, ptr %t2879 %t2881 = call ptr @fn_emit_expr(ptr %t2880) store ptr %t2881, ptr %t2882 %t2883 = load ptr, ptr %t2882 %t2884 = getelementptr inbounds %Cmp_Val, ptr %t2883, i32 0, i32 1 %t2885 = load ptr, ptr %t2884 store ptr %t2885, ptr %t2886 %t2887 = load i32, ptr %t2859 %t2888 = load ptr, ptr %t2844 %t2889 = getelementptr inbounds %LSlice, ptr %t2888, i32 0, i32 1 %t2890 = load i32, ptr %t2889 %t2891 = icmp slt i32 %t2887, %t2890 %t2892 = zext i1 %t2891 to i32 %t2893 = icmp ne i32 %t2892, 0 br i1 %t2893, label %then581, label %ifend583 then581: %t2894 = load ptr, ptr %t2844 %t2895 = load i32, ptr %t2859 %t2896 = getelementptr inbounds %LSlice, ptr %t2894, i32 0, i32 0 %t2897 = load ptr, ptr %t2896 %t2898 = getelementptr inbounds %LSlice, ptr %t2894, i32 0, i32 1 %t2899 = load i32, ptr %t2898 %t2900 = icmp ult i32 %t2895, %t2899 br i1 %t2900, label %ixok584, label %ixbad585 ixbad585: %t2901 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2901, ptr @.fmt_bounds, ptr @.str9716, i32 %t2895, i32 %t2899) call void @exit(i32 1) unreachable ixok584: %t2902 = getelementptr inbounds ptr, ptr %t2897, i32 %t2895 %t2903 = load ptr, ptr %t2902 store ptr %t2903, ptr %t2886 br label %ifend583 ifend583: %t2904 = load ptr, ptr %t2851 %t2905 = load ptr, ptr %t2882 %t2906 = load ptr, ptr %t2886 %t2907 = call ptr @fn_coerce_code(ptr %t2905, ptr %t2906) %t2908 = getelementptr inbounds %LSlice, ptr %t2904, i32 0, i32 1 %t2909 = getelementptr inbounds %LSlice, ptr %t2904, i32 0, i32 2 %t2910 = getelementptr inbounds %LSlice, ptr %t2904, i32 0, i32 0 %t2911 = load i32, ptr %t2908 %t2912 = load i32, ptr %t2909 %t2913 = icmp sge i32 %t2911, %t2912 br i1 %t2913, label %grow586, label %put587 grow586: %t2914 = mul i32 %t2912, 2 %t2915 = icmp eq i32 %t2912, 0 %t2916 = select i1 %t2915, i32 8, i32 %t2914 %t2917 = getelementptr ptr, ptr null, i32 1 %t2918 = ptrtoint ptr %t2917 to i64 %t2919 = zext i32 %t2916 to i64 %t2920 = mul i64 %t2919, %t2918 %t2921 = load ptr, ptr %t2910 %t2922 = call ptr @realloc(ptr %t2921, i64 %t2920) store ptr %t2922, ptr %t2910 store i32 %t2916, ptr %t2909 br label %put587 put587: %t2923 = load ptr, ptr %t2910 %t2924 = getelementptr inbounds ptr, ptr %t2923, i32 %t2911 store ptr %t2907, ptr %t2924 %t2925 = add i32 %t2911, 1 store i32 %t2925, ptr %t2908 %t2926 = load ptr, ptr %t2858 %t2927 = load ptr, ptr %t2886 %t2928 = getelementptr inbounds %LSlice, ptr %t2926, i32 0, i32 1 %t2929 = getelementptr inbounds %LSlice, ptr %t2926, i32 0, i32 2 %t2930 = getelementptr inbounds %LSlice, ptr %t2926, i32 0, i32 0 %t2931 = load i32, ptr %t2928 %t2932 = load i32, ptr %t2929 %t2933 = icmp sge i32 %t2931, %t2932 br i1 %t2933, label %grow588, label %put589 grow588: %t2934 = mul i32 %t2932, 2 %t2935 = icmp eq i32 %t2932, 0 %t2936 = select i1 %t2935, i32 8, i32 %t2934 %t2937 = getelementptr ptr, ptr null, i32 1 %t2938 = ptrtoint ptr %t2937 to i64 %t2939 = zext i32 %t2936 to i64 %t2940 = mul i64 %t2939, %t2938 %t2941 = load ptr, ptr %t2930 %t2942 = call ptr @realloc(ptr %t2941, i64 %t2940) store ptr %t2942, ptr %t2930 store i32 %t2936, ptr %t2929 br label %put589 put589: %t2943 = load ptr, ptr %t2930 %t2944 = getelementptr inbounds ptr, ptr %t2943, i32 %t2931 store ptr %t2927, ptr %t2944 %t2945 = add i32 %t2931, 1 store i32 %t2945, ptr %t2928 %t2946 = load i32, ptr %t2859 %t2947 = add i32 %t2946, 1 store i32 %t2947, ptr %t2859 br label %wcond576 wend578: %t2948 = load ptr, ptr %t2816 %t2949 = getelementptr inbounds %Cmp_Node, ptr %t2948, i32 0, i32 3 %t2950 = load ptr, ptr %t2949 %t2951 = call ptr @fn_llty(ptr %t2950) store ptr %t2951, ptr %t2952 call void @fn_emit(ptr @.str9717) store ptr @.str9718, ptr %t2953 %t2954 = load ptr, ptr %t2952 %t2955 = call i32 @lp_str_eq(ptr %t2954, ptr @.str9719) %t2956 = icmp eq i32 %t2955, 0 %t2957 = zext i1 %t2956 to i32 %t2958 = icmp ne i32 %t2957, 0 br i1 %t2958, label %then590, label %ifend592 then590: %t2959 = call ptr @fn_nreg() store ptr %t2959, ptr %t2953 %t2960 = load ptr, ptr %t2953 call void @fn_emit(ptr %t2960) call void @fn_emit(ptr @.str9720) br label %ifend592 ifend592: call void @fn_emit(ptr @.str9721) %t2961 = load ptr, ptr %t2952 call void @fn_emit(ptr %t2961) call void @fn_emit(ptr @.str9722) %t2962 = load ptr, ptr %t2818 call void @fn_emit(ptr %t2962) call void @fn_emit(ptr @.str9723) store i32 0, ptr %t2859 br label %wcond593 wcond593: %t2963 = load i32, ptr %t2859 %t2964 = load ptr, ptr %t2851 %t2965 = getelementptr inbounds %LSlice, ptr %t2964, i32 0, i32 1 %t2966 = load i32, ptr %t2965 %t2967 = icmp slt i32 %t2963, %t2966 %t2968 = zext i1 %t2967 to i32 %t2969 = icmp ne i32 %t2968, 0 br i1 %t2969, label %wbody594, label %wend595 wbody594: %t2970 = load i32, ptr %t2859 %t2971 = icmp sgt i32 %t2970, 0 %t2972 = zext i1 %t2971 to i32 %t2973 = icmp ne i32 %t2972, 0 br i1 %t2973, label %then596, label %ifend598 then596: call void @fn_emit(ptr @.str9724) br label %ifend598 ifend598: %t2974 = load ptr, ptr %t2858 %t2975 = load i32, ptr %t2859 %t2976 = getelementptr inbounds %LSlice, ptr %t2974, i32 0, i32 0 %t2977 = load ptr, ptr %t2976 %t2978 = getelementptr inbounds %LSlice, ptr %t2974, i32 0, i32 1 %t2979 = load i32, ptr %t2978 %t2980 = icmp ult i32 %t2975, %t2979 br i1 %t2980, label %ixok599, label %ixbad600 ixbad600: %t2981 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2981, ptr @.fmt_bounds, ptr @.str9725, i32 %t2975, i32 %t2979) call void @exit(i32 1) unreachable ixok599: %t2982 = getelementptr inbounds ptr, ptr %t2977, i32 %t2975 %t2983 = load ptr, ptr %t2982 %t2984 = call ptr @fn_llty(ptr %t2983) call void @fn_emit(ptr %t2984) call void @fn_emit(ptr @.str9726) %t2985 = load ptr, ptr %t2851 %t2986 = load i32, ptr %t2859 %t2987 = getelementptr inbounds %LSlice, ptr %t2985, i32 0, i32 0 %t2988 = load ptr, ptr %t2987 %t2989 = getelementptr inbounds %LSlice, ptr %t2985, i32 0, i32 1 %t2990 = load i32, ptr %t2989 %t2991 = icmp ult i32 %t2986, %t2990 br i1 %t2991, label %ixok601, label %ixbad602 ixbad602: %t2992 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t2992, ptr @.fmt_bounds, ptr @.str9727, i32 %t2986, i32 %t2990) call void @exit(i32 1) unreachable ixok601: %t2993 = getelementptr inbounds ptr, ptr %t2988, i32 %t2986 %t2994 = load ptr, ptr %t2993 call void @fn_emit(ptr %t2994) %t2995 = load i32, ptr %t2859 %t2996 = add i32 %t2995, 1 store i32 %t2996, ptr %t2859 br label %wcond593 wend595: call void @fn_emit(ptr @.str9728) %t2997 = load ptr, ptr %t2953 %t2998 = load ptr, ptr %t2816 %t2999 = getelementptr inbounds %Cmp_Node, ptr %t2998, i32 0, i32 3 %t3000 = load ptr, ptr %t2999 %t3001 = call ptr @fn_val(ptr %t2997, ptr %t3000) store ptr %t3001, ptr %retval br label %ret ret: %t3002 = load ptr, ptr %retval ret ptr %t3002 } define ptr @fn_emit_expr(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t27 = alloca i32 %t48 = alloca ptr %t64 = alloca ptr %t124 = alloca ptr %t129 = alloca ptr %t134 = alloca ptr %t211 = alloca i32 %t241 = alloca ptr %t260 = alloca ptr %t291 = alloca ptr %t312 = alloca ptr %t355 = alloca i32 %t378 = alloca i32 %t399 = alloca i32 %t411 = alloca ptr %t416 = alloca i32 %t421 = alloca i32 %t443 = alloca ptr %t464 = alloca ptr %t477 = alloca ptr %t489 = alloca ptr %t496 = alloca ptr %t547 = alloca ptr %t572 = alloca ptr %t592 = alloca i32 %t614 = alloca ptr %t685 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_val(ptr @.str9729, ptr @.str9730) store ptr %t5, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 0 %t8 = load i32, ptr %t7 %t9 = icmp eq i32 %t8, 30 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t13 %t15 = icmp ne ptr %t14, null %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_val(ptr %t20, ptr @.str9731) store ptr %t21, ptr %retval br label %ret ifend8: %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 2 %t24 = load i32, ptr %t23 %t25 = call ptr @fn_itoa(i32 %t24) %t26 = call ptr @fn_val(ptr %t25, ptr @.str9732) store ptr %t26, ptr %retval br label %ret ifend5: %t28 = load ptr, ptr %t0 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 0 %t30 = load i32, ptr %t29 %t31 = icmp eq i32 %t30, 40 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t27 br i1 %t33, label %sc9, label %scend10 sc9: %t35 = load ptr, ptr %t0 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 9 %t37 = load ptr, ptr %t36 %t38 = call i32 @fn_is_float_file(ptr %t37) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t27 br label %scend10 scend10: %t41 = load i32, ptr %t27 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then11, label %ifend13 then11: %t43 = load ptr, ptr %t0 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 1 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_fp_lit_code(ptr %t45, ptr @.str9733) %t47 = call ptr @fn_val(ptr %t46, ptr @.str9734) store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %Cmp_Val, ptr %t49, i32 0, i32 2 %t51 = load ptr, ptr %t0 store ptr %t51, ptr %t50 %t52 = load ptr, ptr %t48 store ptr %t52, ptr %retval br label %ret ifend13: %t53 = load ptr, ptr %t0 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 0 %t55 = load i32, ptr %t54 %t56 = icmp eq i32 %t55, 40 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then14, label %ifend16 then14: %t59 = load ptr, ptr %t0 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 2 %t61 = load i32, ptr %t60 %t62 = call ptr @fn_itoa(i32 %t61) %t63 = call ptr @fn_val(ptr %t62, ptr @.str9735) store ptr %t63, ptr %t64 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %Cmp_Val, ptr %t65, i32 0, i32 2 %t67 = load ptr, ptr %t0 store ptr %t67, ptr %t66 %t68 = load ptr, ptr %t64 store ptr %t68, ptr %retval br label %ret ifend16: %t69 = load ptr, ptr %t0 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 0 %t71 = load i32, ptr %t70 %t72 = icmp eq i32 %t71, 190 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then17, label %ifend19 then17: %t75 = load ptr, ptr @g_g_prevals %t76 = load ptr, ptr %t0 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 2 %t78 = load i32, ptr %t77 %t79 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp ult i32 %t78, %t82 br i1 %t83, label %ixok20, label %ixbad21 ixbad21: %t84 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t84, ptr @.fmt_bounds, ptr @.str9736, i32 %t78, i32 %t82) call void @exit(i32 1) unreachable ixok20: %t85 = getelementptr inbounds ptr, ptr %t80, i32 %t78 %t86 = load ptr, ptr %t85 store ptr %t86, ptr %retval br label %ret ifend19: %t87 = load ptr, ptr %t0 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 0 %t89 = load i32, ptr %t88 %t90 = icmp eq i32 %t89, 32 %t91 = zext i1 %t90 to i32 %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then22, label %ifend24 then22: %t93 = load ptr, ptr %t0 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 2 %t95 = load i32, ptr %t94 %t96 = call ptr @fn_itoa(i32 %t95) %t97 = call ptr @fn_val(ptr %t96, ptr @.str9737) store ptr %t97, ptr %retval br label %ret ifend24: %t98 = load ptr, ptr %t0 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 0 %t100 = load i32, ptr %t99 %t101 = icmp eq i32 %t100, 43 %t102 = zext i1 %t101 to i32 %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then25, label %ifend27 then25: %t104 = call ptr @fn_val(ptr @.str9738, ptr @.str9739) store ptr %t104, ptr %retval br label %ret ifend27: %t105 = load ptr, ptr %t0 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 0 %t107 = load i32, ptr %t106 %t108 = icmp eq i32 %t107, 22 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then28, label %ifend30 then28: %t111 = load ptr, ptr %t0 %t112 = call ptr @fn_emit_spawn(ptr %t111) %t113 = call ptr @fn_val(ptr %t112, ptr @.str9740) store ptr %t113, ptr %retval br label %ret ifend30: %t114 = load ptr, ptr %t0 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 0 %t116 = load i32, ptr %t115 %t117 = icmp eq i32 %t116, 44 %t118 = zext i1 %t117 to i32 %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then31, label %ifend33 then31: %t120 = load ptr, ptr %t0 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 4 %t122 = load ptr, ptr %t121 %t123 = call ptr @fn_emit_expr(ptr %t122) store ptr %t123, ptr %t124 %t125 = load ptr, ptr %t0 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 5 %t127 = load ptr, ptr %t126 %t128 = call ptr @fn_emit_expr(ptr %t127) store ptr %t128, ptr %t129 %t130 = load ptr, ptr %t0 %t131 = getelementptr inbounds %Cmp_Node, ptr %t130, i32 0, i32 6 %t132 = load ptr, ptr %t131 %t133 = call ptr @fn_emit_expr(ptr %t132) store ptr %t133, ptr %t134 store i32 1, ptr @g_g_uses_strslice %t135 = load ptr, ptr %t124 %t136 = getelementptr inbounds %Cmp_Val, ptr %t135, i32 0, i32 0 %t137 = load ptr, ptr %t136 %t138 = call ptr @lp_str_concat(ptr @.str9741, ptr %t137) %t139 = call ptr @lp_str_concat(ptr %t138, ptr @.str9742) %t140 = load ptr, ptr %t129 %t141 = getelementptr inbounds %Cmp_Val, ptr %t140, i32 0, i32 0 %t142 = load ptr, ptr %t141 %t143 = call ptr @lp_str_concat(ptr %t139, ptr %t142) %t144 = call ptr @lp_str_concat(ptr %t143, ptr @.str9743) %t145 = load ptr, ptr %t134 %t146 = getelementptr inbounds %Cmp_Val, ptr %t145, i32 0, i32 0 %t147 = load ptr, ptr %t146 %t148 = call ptr @lp_str_concat(ptr %t144, ptr %t147) %t149 = call ptr @lp_str_concat(ptr %t148, ptr @.str9744) %t150 = call ptr @fn_emit_bind(ptr %t149) %t151 = call ptr @fn_val(ptr %t150, ptr @.str9745) store ptr %t151, ptr %retval br label %ret ifend33: %t152 = load ptr, ptr %t0 %t153 = getelementptr inbounds %Cmp_Node, ptr %t152, i32 0, i32 0 %t154 = load i32, ptr %t153 %t155 = icmp eq i32 %t154, 31 %t156 = zext i1 %t155 to i32 %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then34, label %ifend36 then34: %t158 = load ptr, ptr %t0 %t159 = getelementptr inbounds %Cmp_Node, ptr %t158, i32 0, i32 1 %t160 = load ptr, ptr %t159 %t161 = call ptr @fn_emit_str_const(ptr %t160) %t162 = call ptr @fn_val(ptr %t161, ptr @.str9746) store ptr %t162, ptr %retval br label %ret ifend36: %t163 = load ptr, ptr %t0 %t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 0 %t165 = load i32, ptr %t164 %t166 = icmp eq i32 %t165, 39 %t167 = zext i1 %t166 to i32 %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then37, label %ifend39 then37: %t169 = load ptr, ptr %t0 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 1 %t171 = load ptr, ptr %t170 %t172 = call i32 @fn_is_slice_ty(ptr %t171) %t173 = icmp ne i32 %t172, 0 br i1 %t173, label %then40, label %ifend42 then40: %t174 = load ptr, ptr %t0 %t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 1 %t176 = load ptr, ptr %t175 %t177 = call ptr @fn_emit_new_slice(ptr %t176) store ptr %t177, ptr %retval br label %ret ifend42: %t178 = load ptr, ptr %t0 %t179 = getelementptr inbounds %Cmp_Node, ptr %t178, i32 0, i32 1 %t180 = load ptr, ptr %t179 %t181 = load ptr, ptr %t0 %t182 = getelementptr inbounds %Cmp_Node, ptr %t181, i32 0, i32 4 %t183 = load ptr, ptr %t182 %t184 = call ptr @fn_emit_new_struct(ptr %t180, ptr %t183) store ptr %t184, ptr %retval br label %ret ifend39: %t185 = load ptr, ptr %t0 %t186 = getelementptr inbounds %Cmp_Node, ptr %t185, i32 0, i32 0 %t187 = load i32, ptr %t186 %t188 = icmp eq i32 %t187, 54 %t189 = zext i1 %t188 to i32 %t190 = icmp ne i32 %t189, 0 br i1 %t190, label %then43, label %ifend45 then43: %t191 = load ptr, ptr %t0 %t192 = call ptr @fn_emit_list(ptr %t191) store ptr %t192, ptr %retval br label %ret ifend45: %t193 = load ptr, ptr %t0 %t194 = getelementptr inbounds %Cmp_Node, ptr %t193, i32 0, i32 0 %t195 = load i32, ptr %t194 %t196 = icmp eq i32 %t195, 55 %t197 = zext i1 %t196 to i32 %t198 = icmp ne i32 %t197, 0 br i1 %t198, label %then46, label %ifend48 then46: %t199 = load ptr, ptr %t0 %t200 = call ptr @fn_emit_fnref(ptr %t199) store ptr %t200, ptr %retval br label %ret ifend48: %t201 = load ptr, ptr %t0 %t202 = getelementptr inbounds %Cmp_Node, ptr %t201, i32 0, i32 0 %t203 = load i32, ptr %t202 %t204 = icmp eq i32 %t203, 33 %t205 = zext i1 %t204 to i32 %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then49, label %ifend51 then49: %t207 = load ptr, ptr %t0 %t208 = getelementptr inbounds %Cmp_Node, ptr %t207, i32 0, i32 1 %t209 = load ptr, ptr %t208 %t210 = call i32 @fn_loc_find(ptr %t209) store i32 %t210, ptr %t211 %t212 = load i32, ptr %t211 %t213 = icmp sge i32 %t212, 0 %t214 = zext i1 %t213 to i32 %t215 = icmp ne i32 %t214, 0 br i1 %t215, label %then52, label %ifend54 then52: %t216 = load ptr, ptr @g_loc_reg %t217 = load i32, ptr %t211 %t218 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 0 %t219 = load ptr, ptr %t218 %t220 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 1 %t221 = load i32, ptr %t220 %t222 = icmp ult i32 %t217, %t221 br i1 %t222, label %ixok55, label %ixbad56 ixbad56: %t223 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t223, ptr @.fmt_bounds, ptr @.str9747, i32 %t217, i32 %t221) call void @exit(i32 1) unreachable ixok55: %t224 = getelementptr inbounds ptr, ptr %t219, i32 %t217 %t225 = load ptr, ptr %t224 %t226 = load ptr, ptr @g_loc_ty %t227 = load i32, ptr %t211 %t228 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 0 %t229 = load ptr, ptr %t228 %t230 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 1 %t231 = load i32, ptr %t230 %t232 = icmp ult i32 %t227, %t231 br i1 %t232, label %ixok57, label %ixbad58 ixbad58: %t233 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t233, ptr @.fmt_bounds, ptr @.str9748, i32 %t227, i32 %t231) call void @exit(i32 1) unreachable ixok57: %t234 = getelementptr inbounds ptr, ptr %t229, i32 %t227 %t235 = load ptr, ptr %t234 %t236 = call ptr @fn_emit_load_at(ptr %t225, ptr %t235) store ptr %t236, ptr %retval br label %ret ifend54: %t237 = load ptr, ptr %t0 %t238 = getelementptr inbounds %Cmp_Node, ptr %t237, i32 0, i32 1 %t239 = load ptr, ptr %t238 %t240 = call ptr @fn_find_global(ptr %t239) store ptr %t240, ptr %t241 %t242 = load ptr, ptr %t241 %t243 = icmp ne ptr %t242, null %t244 = zext i1 %t243 to i32 %t245 = icmp ne i32 %t244, 0 br i1 %t245, label %then59, label %ifend61 then59: %t246 = load ptr, ptr %t241 %t247 = load ptr, ptr %t0 %t248 = getelementptr inbounds %Cmp_Node, ptr %t247, i32 0, i32 1 %t249 = load ptr, ptr %t248 call void @fn_vis_check(ptr %t246, ptr %t249) %t250 = load ptr, ptr %t241 %t251 = getelementptr inbounds %Cmp_Node, ptr %t250, i32 0, i32 0 %t252 = load i32, ptr %t251 %t253 = icmp eq i32 %t252, 3 %t254 = zext i1 %t253 to i32 %t255 = icmp ne i32 %t254, 0 br i1 %t255, label %then62, label %ifend64 then62: %t256 = load ptr, ptr %t241 %t257 = getelementptr inbounds %Cmp_Node, ptr %t256, i32 0, i32 4 %t258 = load ptr, ptr %t257 %t259 = call ptr @fn_emit_expr(ptr %t258) store ptr %t259, ptr %t260 %t261 = load ptr, ptr %t241 %t262 = getelementptr inbounds %Cmp_Node, ptr %t261, i32 0, i32 3 %t263 = load ptr, ptr %t262 %t264 = call i32 @fn_is_fp(ptr %t263) %t265 = icmp ne i32 %t264, 0 br i1 %t265, label %then65, label %ifend67 then65: %t266 = load ptr, ptr %t260 %t267 = load ptr, ptr %t241 %t268 = getelementptr inbounds %Cmp_Node, ptr %t267, i32 0, i32 3 %t269 = load ptr, ptr %t268 %t270 = load ptr, ptr %t0 %t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 1 %t272 = load ptr, ptr %t271 %t273 = call ptr @lp_str_concat(ptr @.str9749, ptr %t272) %t274 = call ptr @fn_to_fp(ptr %t266, ptr %t269, ptr %t273) %t275 = load ptr, ptr %t241 %t276 = getelementptr inbounds %Cmp_Node, ptr %t275, i32 0, i32 3 %t277 = load ptr, ptr %t276 %t278 = call ptr @fn_val(ptr %t274, ptr %t277) store ptr %t278, ptr %retval br label %ret ifend67: %t279 = load ptr, ptr %t260 store ptr %t279, ptr %retval br label %ret ifend64: %t280 = load ptr, ptr %t241 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 3 %t282 = load ptr, ptr %t281 %t283 = call ptr @fn_llty(ptr %t282) %t284 = call ptr @lp_str_concat(ptr @.str9750, ptr %t283) %t285 = call ptr @lp_str_concat(ptr %t284, ptr @.str9751) %t286 = load ptr, ptr %t0 %t287 = getelementptr inbounds %Cmp_Node, ptr %t286, i32 0, i32 1 %t288 = load ptr, ptr %t287 %t289 = call ptr @lp_str_concat(ptr %t285, ptr %t288) %t290 = call ptr @fn_emit_bind(ptr %t289) store ptr %t290, ptr %t291 %t292 = load ptr, ptr %t291 %t293 = load ptr, ptr %t241 %t294 = getelementptr inbounds %Cmp_Node, ptr %t293, i32 0, i32 3 %t295 = load ptr, ptr %t294 %t296 = call ptr @fn_val(ptr %t292, ptr %t295) store ptr %t296, ptr %retval br label %ret ifend61: %t297 = load ptr, ptr %t0 %t298 = getelementptr inbounds %Cmp_Node, ptr %t297, i32 0, i32 1 %t299 = load ptr, ptr %t298 %t300 = call i32 @fn_is_ui_ident(ptr %t299) %t301 = icmp ne i32 %t300, 0 br i1 %t301, label %then68, label %ifend70 then68: %t302 = load ptr, ptr %t0 %t303 = getelementptr inbounds %Cmp_Node, ptr %t302, i32 0, i32 1 %t304 = load ptr, ptr %t303 %t305 = call i32 @fn_ui_index_of(ptr %t304) %t306 = call ptr @fn_itoa(i32 %t305) %t307 = call ptr @fn_val(ptr %t306, ptr @.str9752) store ptr %t307, ptr %retval br label %ret ifend70: %t308 = load ptr, ptr %t0 %t309 = getelementptr inbounds %Cmp_Node, ptr %t308, i32 0, i32 1 %t310 = load ptr, ptr %t309 %t311 = call ptr @fn_variant_enum(ptr %t310) store ptr %t311, ptr %t312 %t313 = load ptr, ptr %t312 %t314 = icmp ne ptr %t313, null %t315 = zext i1 %t314 to i32 %t316 = icmp ne i32 %t315, 0 br i1 %t316, label %then71, label %ifend73 then71: %t317 = load ptr, ptr %t312 %t318 = load i32, ptr @g_g_var_ord %t319 = getelementptr %LSlice, ptr null, i32 1 %t320 = ptrtoint ptr %t319 to i64 %t321 = call ptr @malloc(i64 %t320) %t322 = getelementptr inbounds %LSlice, ptr %t321, i32 0, i32 0 store ptr null, ptr %t322 %t323 = getelementptr inbounds %LSlice, ptr %t321, i32 0, i32 1 store i32 0, ptr %t323 %t324 = getelementptr inbounds %LSlice, ptr %t321, i32 0, i32 2 store i32 0, ptr %t324 %t325 = call ptr @fn_emit_variant_new(ptr %t317, i32 %t318, ptr %t321) store ptr %t325, ptr %retval br label %ret ifend73: %t326 = load ptr, ptr %t0 %t327 = getelementptr inbounds %Cmp_Node, ptr %t326, i32 0, i32 1 %t328 = load ptr, ptr %t327 %t329 = call ptr @lp_str_concat(ptr @.str9753, ptr %t328) call void @fn_perr(ptr %t329) br label %ifend51 ifend51: %t330 = load ptr, ptr %t0 %t331 = getelementptr inbounds %Cmp_Node, ptr %t330, i32 0, i32 0 %t332 = load i32, ptr %t331 %t333 = icmp eq i32 %t332, 35 %t334 = zext i1 %t333 to i32 %t335 = icmp ne i32 %t334, 0 br i1 %t335, label %then74, label %ifend76 then74: %t336 = load ptr, ptr %t0 %t337 = getelementptr inbounds %Cmp_Node, ptr %t336, i32 0, i32 4 %t338 = load ptr, ptr %t337 %t339 = getelementptr inbounds %Cmp_Node, ptr %t338, i32 0, i32 0 %t340 = load i32, ptr %t339 %t341 = icmp eq i32 %t340, 33 %t342 = zext i1 %t341 to i32 %t343 = icmp ne i32 %t342, 0 br i1 %t343, label %then77, label %ifend79 then77: %t344 = load ptr, ptr %t0 %t345 = getelementptr inbounds %Cmp_Node, ptr %t344, i32 0, i32 4 %t346 = load ptr, ptr %t345 %t347 = getelementptr inbounds %Cmp_Node, ptr %t346, i32 0, i32 1 %t348 = load ptr, ptr %t347 %t349 = call i32 @lp_str_eq(ptr %t348, ptr @.str9754) %t350 = icmp ne i32 %t349, 0 br i1 %t350, label %then80, label %ifend82 then80: %t351 = load ptr, ptr %t0 %t352 = getelementptr inbounds %Cmp_Node, ptr %t351, i32 0, i32 1 %t353 = load ptr, ptr %t352 %t354 = call i32 @fn_color_lookup(ptr %t353) store i32 %t354, ptr %t355 %t356 = load i32, ptr %t355 %t357 = icmp slt i32 %t356, 0 %t358 = zext i1 %t357 to i32 %t359 = icmp ne i32 %t358, 0 br i1 %t359, label %then83, label %ifend85 then83: %t360 = load ptr, ptr %t0 %t361 = getelementptr inbounds %Cmp_Node, ptr %t360, i32 0, i32 1 %t362 = load ptr, ptr %t361 %t363 = call ptr @lp_str_concat(ptr @.str9755, ptr %t362) call void @fn_perr(ptr %t363) br label %ifend85 ifend85: %t364 = load i32, ptr %t355 %t365 = call ptr @fn_itoa(i32 %t364) %t366 = call ptr @fn_val(ptr %t365, ptr @.str9756) store ptr %t366, ptr %retval br label %ret ifend82: %t367 = load ptr, ptr %t0 %t368 = getelementptr inbounds %Cmp_Node, ptr %t367, i32 0, i32 4 %t369 = load ptr, ptr %t368 %t370 = getelementptr inbounds %Cmp_Node, ptr %t369, i32 0, i32 1 %t371 = load ptr, ptr %t370 %t372 = call i32 @lp_str_eq(ptr %t371, ptr @.str9757) %t373 = icmp ne i32 %t372, 0 br i1 %t373, label %then86, label %ifend88 then86: %t374 = load ptr, ptr %t0 %t375 = getelementptr inbounds %Cmp_Node, ptr %t374, i32 0, i32 1 %t376 = load ptr, ptr %t375 %t377 = call i32 @fn_key_lookup(ptr %t376) store i32 %t377, ptr %t378 %t379 = load i32, ptr %t378 %t380 = icmp slt i32 %t379, 0 %t381 = zext i1 %t380 to i32 %t382 = icmp ne i32 %t381, 0 br i1 %t382, label %then89, label %ifend91 then89: %t383 = load ptr, ptr %t0 %t384 = getelementptr inbounds %Cmp_Node, ptr %t383, i32 0, i32 1 %t385 = load ptr, ptr %t384 %t386 = call ptr @lp_str_concat(ptr @.str9758, ptr %t385) call void @fn_perr(ptr %t386) br label %ifend91 ifend91: %t387 = load i32, ptr %t378 %t388 = call ptr @fn_itoa(i32 %t387) %t389 = call ptr @fn_val(ptr %t388, ptr @.str9759) store ptr %t389, ptr %retval br label %ret ifend88: %t390 = load ptr, ptr %t0 %t391 = getelementptr inbounds %Cmp_Node, ptr %t390, i32 0, i32 4 %t392 = load ptr, ptr %t391 %t393 = getelementptr inbounds %Cmp_Node, ptr %t392, i32 0, i32 1 %t394 = load ptr, ptr %t393 %t395 = load ptr, ptr %t0 %t396 = getelementptr inbounds %Cmp_Node, ptr %t395, i32 0, i32 1 %t397 = load ptr, ptr %t396 %t398 = call i32 @fn_enum_ordinal(ptr %t394, ptr %t397) store i32 %t398, ptr %t399 %t400 = load i32, ptr %t399 %t401 = icmp sge i32 %t400, 0 %t402 = zext i1 %t401 to i32 %t403 = icmp ne i32 %t402, 0 br i1 %t403, label %then92, label %ifend94 then92: %t404 = load i32, ptr %t399 %t405 = call ptr @fn_itoa(i32 %t404) %t406 = call ptr @fn_val(ptr %t405, ptr @.str9760) store ptr %t406, ptr %retval br label %ret ifend94: br label %ifend79 ifend79: %t407 = load ptr, ptr %t0 %t408 = getelementptr inbounds %Cmp_Node, ptr %t407, i32 0, i32 4 %t409 = load ptr, ptr %t408 %t410 = call ptr @fn_static_type(ptr %t409) store ptr %t410, ptr %t411 %t412 = load ptr, ptr %t411 %t413 = icmp ne ptr %t412, null %t414 = zext i1 %t413 to i32 %t415 = icmp ne i32 %t414, 0 br i1 %t415, label %then95, label %ifend97 then95: %t417 = load ptr, ptr %t411 %t418 = call i32 @lp_str_eq(ptr %t417, ptr @.str9761) %t419 = icmp ne i32 %t418, 0 %t420 = zext i1 %t419 to i32 store i32 %t420, ptr %t416 br i1 %t419, label %sc98, label %scend99 sc98: %t422 = load ptr, ptr %t0 %t423 = getelementptr inbounds %Cmp_Node, ptr %t422, i32 0, i32 1 %t424 = load ptr, ptr %t423 %t425 = call i32 @lp_str_eq(ptr %t424, ptr @.str9762) %t426 = icmp ne i32 %t425, 0 %t427 = zext i1 %t426 to i32 store i32 %t427, ptr %t421 br i1 %t426, label %scend101, label %sc100 sc100: %t428 = load ptr, ptr %t0 %t429 = getelementptr inbounds %Cmp_Node, ptr %t428, i32 0, i32 1 %t430 = load ptr, ptr %t429 %t431 = call i32 @lp_str_eq(ptr %t430, ptr @.str9763) %t432 = icmp ne i32 %t431, 0 %t433 = zext i1 %t432 to i32 store i32 %t433, ptr %t421 br label %scend101 scend101: %t434 = load i32, ptr %t421 %t435 = icmp ne i32 %t434, 0 %t436 = zext i1 %t435 to i32 store i32 %t436, ptr %t416 br label %scend99 scend99: %t437 = load i32, ptr %t416 %t438 = icmp ne i32 %t437, 0 br i1 %t438, label %then102, label %ifend104 then102: %t439 = load ptr, ptr %t0 %t440 = getelementptr inbounds %Cmp_Node, ptr %t439, i32 0, i32 4 %t441 = load ptr, ptr %t440 %t442 = call ptr @fn_emit_expr(ptr %t441) store ptr %t442, ptr %t443 %t444 = load ptr, ptr %t0 %t445 = getelementptr inbounds %Cmp_Node, ptr %t444, i32 0, i32 1 %t446 = load ptr, ptr %t445 %t447 = call i32 @lp_str_eq(ptr %t446, ptr @.str9764) %t448 = icmp ne i32 %t447, 0 br i1 %t448, label %then105, label %ifend107 then105: %t449 = load ptr, ptr %t443 %t450 = getelementptr inbounds %Cmp_Val, ptr %t449, i32 0, i32 0 %t451 = load ptr, ptr %t450 %t452 = call ptr @fn_vec_x(ptr %t451) %t453 = call ptr @fn_val(ptr %t452, ptr @.str9765) store ptr %t453, ptr %retval br label %ret ifend107: %t454 = load ptr, ptr %t443 %t455 = getelementptr inbounds %Cmp_Val, ptr %t454, i32 0, i32 0 %t456 = load ptr, ptr %t455 %t457 = call ptr @fn_vec_y(ptr %t456) %t458 = call ptr @fn_val(ptr %t457, ptr @.str9766) store ptr %t458, ptr %retval br label %ret ifend104: %t459 = load ptr, ptr %t411 %t460 = load ptr, ptr %t0 %t461 = getelementptr inbounds %Cmp_Node, ptr %t460, i32 0, i32 1 %t462 = load ptr, ptr %t461 %t463 = call ptr @fn_computed_expr(ptr %t459, ptr %t462) store ptr %t463, ptr %t464 %t465 = load ptr, ptr %t464 %t466 = icmp ne ptr %t465, null %t467 = zext i1 %t466 to i32 %t468 = icmp ne i32 %t467, 0 br i1 %t468, label %then108, label %ifend110 then108: %t469 = load ptr, ptr %t464 %t470 = load ptr, ptr %t0 %t471 = getelementptr inbounds %Cmp_Node, ptr %t470, i32 0, i32 4 %t472 = load ptr, ptr %t471 %t473 = call ptr @fn_qualify_fields(ptr %t469, ptr %t472) %t474 = call ptr @fn_emit_expr(ptr %t473) store ptr %t474, ptr %retval br label %ret ifend110: br label %ifend97 ifend97: %t475 = load ptr, ptr %t0 %t476 = call ptr @fn_emit_member_addr(ptr %t475) store ptr %t476, ptr %t477 %t478 = load ptr, ptr %t477 %t479 = load ptr, ptr @g_g_addr_ty %t480 = call ptr @fn_emit_load_at(ptr %t478, ptr %t479) store ptr %t480, ptr %retval br label %ret ifend76: %t481 = load ptr, ptr %t0 %t482 = getelementptr inbounds %Cmp_Node, ptr %t481, i32 0, i32 0 %t483 = load i32, ptr %t482 %t484 = icmp eq i32 %t483, 36 %t485 = zext i1 %t484 to i32 %t486 = icmp ne i32 %t485, 0 br i1 %t486, label %then111, label %ifend113 then111: %t487 = load ptr, ptr %t0 %t488 = call ptr @fn_emit_index_addr(ptr %t487) store ptr %t488, ptr %t489 %t490 = load ptr, ptr @g_g_addr_ty %t491 = call i32 @lp_str_eq(ptr %t490, ptr @.str9767) %t492 = icmp ne i32 %t491, 0 br i1 %t492, label %then114, label %ifend116 then114: %t493 = load ptr, ptr %t489 %t494 = call ptr @lp_str_concat(ptr @.str9768, ptr %t493) %t495 = call ptr @fn_emit_bind(ptr %t494) store ptr %t495, ptr %t496 %t497 = load ptr, ptr %t496 %t498 = call ptr @lp_str_concat(ptr @.str9769, ptr %t497) %t499 = call ptr @lp_str_concat(ptr %t498, ptr @.str9770) %t500 = call ptr @fn_emit_bind(ptr %t499) %t501 = call ptr @fn_val(ptr %t500, ptr @.str9771) store ptr %t501, ptr %retval br label %ret ifend116: %t502 = load ptr, ptr %t489 %t503 = load ptr, ptr @g_g_addr_ty %t504 = call ptr @fn_emit_load_at(ptr %t502, ptr %t503) store ptr %t504, ptr %retval br label %ret ifend113: %t505 = load ptr, ptr %t0 %t506 = getelementptr inbounds %Cmp_Node, ptr %t505, i32 0, i32 0 %t507 = load i32, ptr %t506 %t508 = icmp eq i32 %t507, 49 %t509 = zext i1 %t508 to i32 %t510 = icmp ne i32 %t509, 0 br i1 %t510, label %then117, label %ifend119 then117: %t511 = load ptr, ptr %t0 %t512 = call ptr @fn_emit_emit(ptr %t511) store ptr %t512, ptr %retval br label %ret ifend119: %t513 = load ptr, ptr %t0 %t514 = getelementptr inbounds %Cmp_Node, ptr %t513, i32 0, i32 0 %t515 = load i32, ptr %t514 %t516 = icmp eq i32 %t515, 52 %t517 = zext i1 %t516 to i32 %t518 = icmp ne i32 %t517, 0 br i1 %t518, label %then120, label %ifend122 then120: %t519 = load ptr, ptr %t0 %t520 = call ptr @fn_emit_try(ptr %t519) store ptr %t520, ptr %retval br label %ret ifend122: %t521 = load ptr, ptr %t0 %t522 = getelementptr inbounds %Cmp_Node, ptr %t521, i32 0, i32 0 %t523 = load i32, ptr %t522 %t524 = icmp eq i32 %t523, 34 %t525 = zext i1 %t524 to i32 %t526 = icmp ne i32 %t525, 0 br i1 %t526, label %then123, label %ifend125 then123: %t527 = load ptr, ptr %t0 %t528 = call ptr @fn_emit_call(ptr %t527) store ptr %t528, ptr %retval br label %ret ifend125: %t529 = load ptr, ptr %t0 %t530 = getelementptr inbounds %Cmp_Node, ptr %t529, i32 0, i32 0 %t531 = load i32, ptr %t530 %t532 = icmp eq i32 %t531, 37 %t533 = zext i1 %t532 to i32 %t534 = icmp ne i32 %t533, 0 br i1 %t534, label %then126, label %ifend128 then126: %t535 = load ptr, ptr %t0 %t536 = call ptr @fn_emit_bin(ptr %t535) store ptr %t536, ptr %retval br label %ret ifend128: %t537 = load ptr, ptr %t0 %t538 = getelementptr inbounds %Cmp_Node, ptr %t537, i32 0, i32 0 %t539 = load i32, ptr %t538 %t540 = icmp eq i32 %t539, 38 %t541 = zext i1 %t540 to i32 %t542 = icmp ne i32 %t541, 0 br i1 %t542, label %then129, label %ifend131 then129: %t543 = load ptr, ptr %t0 %t544 = getelementptr inbounds %Cmp_Node, ptr %t543, i32 0, i32 4 %t545 = load ptr, ptr %t544 %t546 = call ptr @fn_emit_expr(ptr %t545) store ptr %t546, ptr %t547 %t548 = load ptr, ptr %t547 %t549 = getelementptr inbounds %Cmp_Val, ptr %t548, i32 0, i32 1 %t550 = load ptr, ptr %t549 %t551 = call i32 @fn_is_fp(ptr %t550) %t552 = icmp ne i32 %t551, 0 br i1 %t552, label %then132, label %ifend134 then132: %t553 = load ptr, ptr %t0 %t554 = getelementptr inbounds %Cmp_Node, ptr %t553, i32 0, i32 1 %t555 = load ptr, ptr %t554 %t556 = call i32 @lp_str_eq(ptr %t555, ptr @.str9772) %t557 = icmp ne i32 %t556, 0 br i1 %t557, label %then135, label %ifend137 then135: %t558 = load ptr, ptr %t547 %t559 = getelementptr inbounds %Cmp_Val, ptr %t558, i32 0, i32 1 %t560 = load ptr, ptr %t559 %t561 = call ptr @lp_str_concat(ptr @.str9773, ptr %t560) %t562 = call ptr @lp_str_concat(ptr %t561, ptr @.str9774) %t563 = load ptr, ptr %t547 %t564 = getelementptr inbounds %Cmp_Val, ptr %t563, i32 0, i32 0 %t565 = load ptr, ptr %t564 %t566 = call ptr @lp_str_concat(ptr %t562, ptr %t565) %t567 = call ptr @fn_emit_bind(ptr %t566) %t568 = load ptr, ptr %t547 %t569 = getelementptr inbounds %Cmp_Val, ptr %t568, i32 0, i32 1 %t570 = load ptr, ptr %t569 %t571 = call ptr @fn_val(ptr %t567, ptr %t570) store ptr %t571, ptr %t572 %t573 = load ptr, ptr %t547 %t574 = getelementptr inbounds %Cmp_Val, ptr %t573, i32 0, i32 2 %t575 = load ptr, ptr %t574 %t576 = icmp ne ptr %t575, null %t577 = zext i1 %t576 to i32 %t578 = icmp ne i32 %t577, 0 br i1 %t578, label %then138, label %ifend140 then138: %t579 = load ptr, ptr %t572 %t580 = getelementptr inbounds %Cmp_Val, ptr %t579, i32 0, i32 2 %t581 = load ptr, ptr %t0 store ptr %t581, ptr %t580 br label %ifend140 ifend140: %t582 = load ptr, ptr %t572 store ptr %t582, ptr %retval br label %ret ifend137: %t583 = load ptr, ptr %t0 %t584 = getelementptr inbounds %Cmp_Node, ptr %t583, i32 0, i32 1 %t585 = load ptr, ptr %t584 %t586 = call ptr @lp_str_concat(ptr @.str9775, ptr %t585) %t587 = call ptr @lp_str_concat(ptr %t586, ptr @.str9776) %t588 = load ptr, ptr %t547 %t589 = getelementptr inbounds %Cmp_Val, ptr %t588, i32 0, i32 1 %t590 = load ptr, ptr %t589 %t591 = call ptr @lp_str_concat(ptr %t587, ptr %t590) call void @fn_perr(ptr %t591) br label %ifend134 ifend134: %t593 = load ptr, ptr %t0 %t594 = getelementptr inbounds %Cmp_Node, ptr %t593, i32 0, i32 1 %t595 = load ptr, ptr %t594 %t596 = call i32 @lp_str_eq(ptr %t595, ptr @.str9777) %t597 = icmp ne i32 %t596, 0 %t598 = zext i1 %t597 to i32 store i32 %t598, ptr %t592 br i1 %t597, label %sc141, label %scend142 sc141: %t599 = load ptr, ptr %t547 %t600 = getelementptr inbounds %Cmp_Val, ptr %t599, i32 0, i32 2 %t601 = load ptr, ptr %t600 %t602 = icmp ne ptr %t601, null %t603 = zext i1 %t602 to i32 %t604 = icmp ne i32 %t603, 0 %t605 = zext i1 %t604 to i32 store i32 %t605, ptr %t592 br label %scend142 scend142: %t606 = load i32, ptr %t592 %t607 = icmp ne i32 %t606, 0 br i1 %t607, label %then143, label %ifend145 then143: %t608 = load ptr, ptr %t547 %t609 = getelementptr inbounds %Cmp_Val, ptr %t608, i32 0, i32 0 %t610 = load ptr, ptr %t609 %t611 = call ptr @lp_str_concat(ptr @.str9778, ptr %t610) %t612 = call ptr @fn_emit_bind(ptr %t611) %t613 = call ptr @fn_val(ptr %t612, ptr @.str9779) store ptr %t613, ptr %t614 %t615 = load ptr, ptr %t614 %t616 = getelementptr inbounds %Cmp_Val, ptr %t615, i32 0, i32 2 %t617 = load ptr, ptr %t0 store ptr %t617, ptr %t616 %t618 = load ptr, ptr %t614 store ptr %t618, ptr %retval br label %ret ifend145: %t619 = load ptr, ptr %t547 %t620 = getelementptr inbounds %Cmp_Val, ptr %t619, i32 0, i32 1 %t621 = load ptr, ptr %t620 %t622 = call ptr @fn_llty(ptr %t621) %t623 = call i32 @lp_str_eq(ptr %t622, ptr @.str9780) %t624 = icmp ne i32 %t623, 0 br i1 %t624, label %then146, label %ifend148 then146: %t625 = load ptr, ptr %t0 %t626 = getelementptr inbounds %Cmp_Node, ptr %t625, i32 0, i32 1 %t627 = load ptr, ptr %t626 %t628 = call i32 @lp_str_eq(ptr %t627, ptr @.str9781) %t629 = icmp ne i32 %t628, 0 br i1 %t629, label %then149, label %ifend151 then149: %t630 = load ptr, ptr %t547 %t631 = getelementptr inbounds %Cmp_Val, ptr %t630, i32 0, i32 0 %t632 = load ptr, ptr %t631 %t633 = call ptr @lp_str_concat(ptr @.str9782, ptr %t632) %t634 = call ptr @fn_emit_bind(ptr %t633) %t635 = call ptr @fn_val(ptr %t634, ptr @.str9783) store ptr %t635, ptr %retval br label %ret ifend151: %t636 = load ptr, ptr %t0 %t637 = getelementptr inbounds %Cmp_Node, ptr %t636, i32 0, i32 1 %t638 = load ptr, ptr %t637 %t639 = call i32 @lp_str_eq(ptr %t638, ptr @.str9784) %t640 = icmp ne i32 %t639, 0 br i1 %t640, label %then152, label %ifend154 then152: %t641 = load ptr, ptr %t547 %t642 = getelementptr inbounds %Cmp_Val, ptr %t641, i32 0, i32 0 %t643 = load ptr, ptr %t642 %t644 = call ptr @lp_str_concat(ptr @.str9785, ptr %t643) %t645 = call ptr @lp_str_concat(ptr %t644, ptr @.str9786) %t646 = call ptr @fn_emit_bind(ptr %t645) %t647 = call ptr @fn_val(ptr %t646, ptr @.str9787) store ptr %t647, ptr %retval br label %ret ifend154: br label %ifend148 ifend148: %t648 = load ptr, ptr %t0 %t649 = getelementptr inbounds %Cmp_Node, ptr %t648, i32 0, i32 1 %t650 = load ptr, ptr %t649 %t651 = call i32 @lp_str_eq(ptr %t650, ptr @.str9788) %t652 = icmp ne i32 %t651, 0 br i1 %t652, label %then155, label %ifend157 then155: %t653 = load ptr, ptr %t547 %t654 = getelementptr inbounds %Cmp_Val, ptr %t653, i32 0, i32 0 %t655 = load ptr, ptr %t654 %t656 = call ptr @lp_str_concat(ptr @.str9789, ptr %t655) %t657 = call ptr @fn_emit_bind(ptr %t656) %t658 = load ptr, ptr %t547 %t659 = getelementptr inbounds %Cmp_Val, ptr %t658, i32 0, i32 1 %t660 = load ptr, ptr %t659 %t661 = call ptr @fn_arith_ty(ptr %t660) %t662 = call ptr @fn_val(ptr %t657, ptr %t661) store ptr %t662, ptr %retval br label %ret ifend157: %t663 = load ptr, ptr %t0 %t664 = getelementptr inbounds %Cmp_Node, ptr %t663, i32 0, i32 1 %t665 = load ptr, ptr %t664 %t666 = call i32 @lp_str_eq(ptr %t665, ptr @.str9790) %t667 = icmp ne i32 %t666, 0 br i1 %t667, label %then158, label %ifend160 then158: %t668 = load ptr, ptr %t547 %t669 = getelementptr inbounds %Cmp_Val, ptr %t668, i32 0, i32 0 %t670 = load ptr, ptr %t669 %t671 = call ptr @lp_str_concat(ptr @.str9791, ptr %t670) %t672 = call ptr @lp_str_concat(ptr %t671, ptr @.str9792) %t673 = call ptr @fn_emit_bind(ptr %t672) %t674 = load ptr, ptr %t547 %t675 = getelementptr inbounds %Cmp_Val, ptr %t674, i32 0, i32 1 %t676 = load ptr, ptr %t675 %t677 = call ptr @fn_arith_ty(ptr %t676) %t678 = call ptr @fn_val(ptr %t673, ptr %t677) store ptr %t678, ptr %retval br label %ret ifend160: %t679 = load ptr, ptr %t547 %t680 = getelementptr inbounds %Cmp_Val, ptr %t679, i32 0, i32 0 %t681 = load ptr, ptr %t680 %t682 = call ptr @lp_str_concat(ptr @.str9793, ptr %t681) %t683 = call ptr @lp_str_concat(ptr %t682, ptr @.str9794) %t684 = call ptr @fn_emit_bind(ptr %t683) store ptr %t684, ptr %t685 %t686 = load ptr, ptr %t685 %t687 = call ptr @lp_str_concat(ptr @.str9795, ptr %t686) %t688 = call ptr @lp_str_concat(ptr %t687, ptr @.str9796) %t689 = call ptr @fn_emit_bind(ptr %t688) %t690 = call ptr @fn_val(ptr %t689, ptr @.str9797) store ptr %t690, ptr %retval br label %ret ifend131: call void @fn_perr(ptr @.str9798) %t691 = call ptr @fn_val(ptr @.str9799, ptr @.str9800) store ptr %t691, ptr %retval br label %ret ret: %t692 = load ptr, ptr %retval ret ptr %t692 } define i32 @fn_is_fn_type(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t5 = alloca i32 %t6 = alloca i32 %t7 = alloca i32 store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t0 %t9 = call i64 @strlen(ptr %t8) %t10 = trunc i64 %t9 to i32 %t11 = icmp sgt i32 %t10, 3 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t7 br i1 %t13, label %sc3, label %scend4 sc3: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds i8, ptr %t15, i32 0 %t17 = load i8, ptr %t16 %t18 = zext i8 %t17 to i32 %t19 = icmp eq i32 %t18, 102 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t7 br label %scend4 scend4: %t23 = load i32, ptr %t7 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t6 br i1 %t24, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds i8, ptr %t26, i32 1 %t28 = load i8, ptr %t27 %t29 = zext i8 %t28 to i32 %t30 = icmp eq i32 %t29, 110 %t31 = zext i1 %t30 to i32 %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t6 br label %scend6 scend6: %t34 = load i32, ptr %t6 %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t5 br i1 %t35, label %sc7, label %scend8 sc7: %t37 = load ptr, ptr %t0 %t38 = getelementptr inbounds i8, ptr %t37, i32 2 %t39 = load i8, ptr %t38 %t40 = zext i8 %t39 to i32 %t41 = icmp eq i32 %t40, 40 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t5 br label %scend8 scend8: %t45 = load i32, ptr %t5 store i32 %t45, ptr %retval br label %ret ret: %t46 = load i32, ptr %retval ret i32 %t46 } define ptr @fn_fn_sig_of(ptr %arg_d) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t39 = alloca ptr store ptr %arg_d, ptr %t0 store ptr @.str9801, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load i32, ptr %t2 %t13 = icmp sgt i32 %t12, 0 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: %t16 = load ptr, ptr %t1 %t17 = call ptr @lp_str_concat(ptr %t16, ptr @.str9802) store ptr %t17, ptr %t1 br label %ifend5 ifend5: %t18 = load ptr, ptr %t1 %t19 = load ptr, ptr %t0 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 7 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t2 %t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t26 = load i32, ptr %t25 %t27 = icmp ult i32 %t22, %t26 br i1 %t27, label %ixok6, label %ixbad7 ixbad7: %t28 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t28, ptr @.fmt_bounds, ptr @.str9803, i32 %t22, i32 %t26) call void @exit(i32 1) unreachable ixok6: %t29 = getelementptr inbounds ptr, ptr %t24, i32 %t22 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 3 %t32 = load ptr, ptr %t31 %t33 = call ptr @lp_str_concat(ptr %t18, ptr %t32) store ptr %t33, ptr %t1 %t34 = load i32, ptr %t2 %t35 = add i32 %t34, 1 store i32 %t35, ptr %t2 br label %wcond0 wend2: %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 3 %t38 = load ptr, ptr %t37 store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t39 %t41 = icmp eq ptr %t40, null %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then8, label %ifend10 then8: store ptr @.str9804, ptr %t39 br label %ifend10 ifend10: %t44 = load ptr, ptr %t1 %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str9805) %t46 = load ptr, ptr %t39 %t47 = call ptr @lp_str_concat(ptr %t45, ptr %t46) store ptr %t47, ptr %retval br label %ret ret: %t48 = load ptr, ptr %retval ret ptr %t48 } define ptr @fn_fn_ty_params(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t7 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 %t10 = alloca i32 %t24 = alloca i32 %t70 = alloca i32 store ptr %arg_t, ptr %t0 %t1 = getelementptr %LSlice, ptr null, i32 1 %t2 = ptrtoint ptr %t1 to i64 %t3 = call ptr @malloc(i64 %t2) %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 store ptr null, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 store i32 0, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2 store i32 0, ptr %t6 store ptr %t3, ptr %t7 store i32 0, ptr %t8 store i32 3, ptr %t9 store i32 3, ptr %t10 br label %wcond0 wcond0: %t11 = load ptr, ptr %t0 %t12 = load i32, ptr %t10 %t13 = getelementptr inbounds i8, ptr %t11, i32 %t12 %t14 = load i8, ptr %t13 %t15 = zext i8 %t14 to i32 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody1, label %wend2 wbody1: %t19 = load ptr, ptr %t0 %t20 = load i32, ptr %t10 %t21 = getelementptr inbounds i8, ptr %t19, i32 %t20 %t22 = load i8, ptr %t21 %t23 = zext i8 %t22 to i32 store i32 %t23, ptr %t24 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 40 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then3, label %ifend5 then3: %t29 = load i32, ptr %t8 %t30 = add i32 %t29, 1 store i32 %t30, ptr %t8 br label %ifend5 ifend5: %t31 = load i32, ptr %t24 %t32 = icmp eq i32 %t31, 41 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then6, label %ifend8 then6: %t35 = load i32, ptr %t8 %t36 = icmp eq i32 %t35, 0 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then9, label %ifend11 then9: %t39 = load i32, ptr %t10 %t40 = load i32, ptr %t9 %t41 = icmp sgt i32 %t39, %t40 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then12, label %ifend14 then12: %t44 = load ptr, ptr %t7 %t45 = load ptr, ptr %t0 %t46 = load i32, ptr %t9 %t47 = load i32, ptr %t10 %t48 = call ptr @lp_str_slice(ptr %t45, i32 %t46, i32 %t47) %t49 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t50 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 2 %t51 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t52 = load i32, ptr %t49 %t53 = load i32, ptr %t50 %t54 = icmp sge i32 %t52, %t53 br i1 %t54, label %grow15, label %put16 grow15: %t55 = mul i32 %t53, 2 %t56 = icmp eq i32 %t53, 0 %t57 = select i1 %t56, i32 8, i32 %t55 %t58 = getelementptr ptr, ptr null, i32 1 %t59 = ptrtoint ptr %t58 to i64 %t60 = zext i32 %t57 to i64 %t61 = mul i64 %t60, %t59 %t62 = load ptr, ptr %t51 %t63 = call ptr @realloc(ptr %t62, i64 %t61) store ptr %t63, ptr %t51 store i32 %t57, ptr %t50 br label %put16 put16: %t64 = load ptr, ptr %t51 %t65 = getelementptr inbounds ptr, ptr %t64, i32 %t52 store ptr %t48, ptr %t65 %t66 = add i32 %t52, 1 store i32 %t66, ptr %t49 br label %ifend14 ifend14: %t67 = load ptr, ptr %t7 store ptr %t67, ptr %retval br label %ret ifend11: %t68 = load i32, ptr %t8 %t69 = sub i32 %t68, 1 store i32 %t69, ptr %t8 br label %ifend8 ifend8: %t71 = load i32, ptr %t24 %t72 = icmp eq i32 %t71, 44 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t70 br i1 %t74, label %sc17, label %scend18 sc17: %t76 = load i32, ptr %t8 %t77 = icmp eq i32 %t76, 0 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t70 br label %scend18 scend18: %t81 = load i32, ptr %t70 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then19, label %ifend21 then19: %t83 = load ptr, ptr %t7 %t84 = load ptr, ptr %t0 %t85 = load i32, ptr %t9 %t86 = load i32, ptr %t10 %t87 = call ptr @lp_str_slice(ptr %t84, i32 %t85, i32 %t86) %t88 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t89 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 2 %t90 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 0 %t91 = load i32, ptr %t88 %t92 = load i32, ptr %t89 %t93 = icmp sge i32 %t91, %t92 br i1 %t93, label %grow22, label %put23 grow22: %t94 = mul i32 %t92, 2 %t95 = icmp eq i32 %t92, 0 %t96 = select i1 %t95, i32 8, i32 %t94 %t97 = getelementptr ptr, ptr null, i32 1 %t98 = ptrtoint ptr %t97 to i64 %t99 = zext i32 %t96 to i64 %t100 = mul i64 %t99, %t98 %t101 = load ptr, ptr %t90 %t102 = call ptr @realloc(ptr %t101, i64 %t100) store ptr %t102, ptr %t90 store i32 %t96, ptr %t89 br label %put23 put23: %t103 = load ptr, ptr %t90 %t104 = getelementptr inbounds ptr, ptr %t103, i32 %t91 store ptr %t87, ptr %t104 %t105 = add i32 %t91, 1 store i32 %t105, ptr %t88 %t106 = load i32, ptr %t10 %t107 = add i32 %t106, 1 store i32 %t107, ptr %t9 br label %ifend21 ifend21: %t108 = load i32, ptr %t10 %t109 = add i32 %t108, 1 store i32 %t109, ptr %t10 br label %wcond0 wend2: %t110 = load ptr, ptr %t7 store ptr %t110, ptr %retval br label %ret ret: %t111 = load ptr, ptr %retval ret ptr %t111 } define ptr @fn_fn_ty_ret(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 store ptr %arg_t, ptr %t0 store i32 0, ptr %t1 store i32 3, ptr %t2 br label %wcond0 wcond0: %t3 = load ptr, ptr %t0 %t4 = load i32, ptr %t2 %t5 = getelementptr inbounds i8, ptr %t3, i32 %t4 %t6 = load i8, ptr %t5 %t7 = zext i8 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = load i32, ptr %t2 %t13 = getelementptr inbounds i8, ptr %t11, i32 %t12 %t14 = load i8, ptr %t13 %t15 = zext i8 %t14 to i32 %t16 = icmp eq i32 %t15, 40 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load i32, ptr %t1 %t20 = add i32 %t19, 1 store i32 %t20, ptr %t1 br label %ifend5 ifend5: %t21 = load ptr, ptr %t0 %t22 = load i32, ptr %t2 %t23 = getelementptr inbounds i8, ptr %t21, i32 %t22 %t24 = load i8, ptr %t23 %t25 = zext i8 %t24 to i32 %t26 = icmp eq i32 %t25, 41 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: %t29 = load i32, ptr %t1 %t30 = icmp eq i32 %t29, 0 %t31 = zext i1 %t30 to i32 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then9, label %ifend11 then9: %t33 = load ptr, ptr %t0 %t34 = load i32, ptr %t2 %t35 = add i32 %t34, 3 %t36 = load ptr, ptr %t0 %t37 = call i64 @strlen(ptr %t36) %t38 = trunc i64 %t37 to i32 %t39 = call ptr @lp_str_slice(ptr %t33, i32 %t35, i32 %t38) store ptr %t39, ptr %retval br label %ret ifend11: %t40 = load i32, ptr %t1 %t41 = sub i32 %t40, 1 store i32 %t41, ptr %t1 br label %ifend8 ifend8: %t42 = load i32, ptr %t2 %t43 = add i32 %t42, 1 store i32 %t43, ptr %t2 br label %wcond0 wend2: store ptr @.str9806, ptr %retval br label %ret ret: %t44 = load ptr, ptr %retval ret ptr %t44 } define ptr @fn_emit_fnref(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_find_fn(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = icmp eq ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr %t11 %t13 = call ptr @lp_str_concat(ptr @.str9807, ptr %t12) %t14 = call ptr @lp_str_concat(ptr %t13, ptr @.str9808) %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = call ptr @lp_str_concat(ptr %t14, ptr %t17) call void @fn_perr(ptr %t18) br label %ifend2 ifend2: %t19 = load ptr, ptr %t5 %t20 = load ptr, ptr %t0 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 call void @fn_vis_check(ptr %t19, ptr %t22) %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str9809, ptr %t25) %t27 = load ptr, ptr %t5 %t28 = call ptr @fn_fn_sig_of(ptr %t27) %t29 = call ptr @fn_val(ptr %t26, ptr %t28) store ptr %t29, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } define ptr @fn_emit_indirect_call(ptr %arg_fv, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca ptr %t11 = alloca ptr %t47 = alloca ptr %t48 = alloca i32 %t71 = alloca ptr %t107 = alloca ptr %t108 = alloca ptr store ptr %arg_fv, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Val, ptr %t2, i32 0, i32 1 %t4 = load ptr, ptr %t3 %t5 = call ptr @fn_fn_ty_params(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Val, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_fn_ty_ret(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t1 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = load ptr, ptr %t6 %t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ne i32 %t16, %t19 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then0, label %ifend2 then0: %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str9810, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str9811) %t28 = load ptr, ptr %t6 %t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = call ptr @fn_itoa(i32 %t30) %t32 = call ptr @lp_str_concat(ptr %t27, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str9812) %t34 = load ptr, ptr %t1 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 7 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = call ptr @fn_itoa(i32 %t38) %t40 = call ptr @lp_str_concat(ptr %t33, ptr %t39) call void @fn_perr(ptr %t40) br label %ifend2 ifend2: %t41 = getelementptr %LSlice, ptr null, i32 1 %t42 = ptrtoint ptr %t41 to i64 %t43 = call ptr @malloc(i64 %t42) %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 store ptr null, ptr %t44 %t45 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 store i32 0, ptr %t45 %t46 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 2 store i32 0, ptr %t46 store ptr %t43, ptr %t47 store i32 0, ptr %t48 br label %wcond3 wcond3: %t49 = load i32, ptr %t48 %t50 = load ptr, ptr %t1 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 7 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp slt i32 %t49, %t54 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %wbody4, label %wend5 wbody4: %t58 = load ptr, ptr %t1 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 7 %t60 = load ptr, ptr %t59 %t61 = load i32, ptr %t48 %t62 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ult i32 %t61, %t65 br i1 %t66, label %ixok6, label %ixbad7 ixbad7: %t67 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t67, ptr @.fmt_bounds, ptr @.str9813, i32 %t61, i32 %t65) call void @exit(i32 1) unreachable ixok6: %t68 = getelementptr inbounds ptr, ptr %t63, i32 %t61 %t69 = load ptr, ptr %t68 %t70 = call ptr @fn_emit_expr(ptr %t69) store ptr %t70, ptr %t71 %t72 = load ptr, ptr %t47 %t73 = load ptr, ptr %t71 %t74 = load ptr, ptr %t6 %t75 = load i32, ptr %t48 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t79 = load i32, ptr %t78 %t80 = icmp ult i32 %t75, %t79 br i1 %t80, label %ixok8, label %ixbad9 ixbad9: %t81 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t81, ptr @.fmt_bounds, ptr @.str9814, i32 %t75, i32 %t79) call void @exit(i32 1) unreachable ixok8: %t82 = getelementptr inbounds ptr, ptr %t77, i32 %t75 %t83 = load ptr, ptr %t82 %t84 = call ptr @fn_coerce_code(ptr %t73, ptr %t83) %t85 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t86 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 2 %t87 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t88 = load i32, ptr %t85 %t89 = load i32, ptr %t86 %t90 = icmp sge i32 %t88, %t89 br i1 %t90, label %grow10, label %put11 grow10: %t91 = mul i32 %t89, 2 %t92 = icmp eq i32 %t89, 0 %t93 = select i1 %t92, i32 8, i32 %t91 %t94 = getelementptr ptr, ptr null, i32 1 %t95 = ptrtoint ptr %t94 to i64 %t96 = zext i32 %t93 to i64 %t97 = mul i64 %t96, %t95 %t98 = load ptr, ptr %t87 %t99 = call ptr @realloc(ptr %t98, i64 %t97) store ptr %t99, ptr %t87 store i32 %t93, ptr %t86 br label %put11 put11: %t100 = load ptr, ptr %t87 %t101 = getelementptr inbounds ptr, ptr %t100, i32 %t88 store ptr %t84, ptr %t101 %t102 = add i32 %t88, 1 store i32 %t102, ptr %t85 %t103 = load i32, ptr %t48 %t104 = add i32 %t103, 1 store i32 %t104, ptr %t48 br label %wcond3 wend5: %t105 = load ptr, ptr %t11 %t106 = call ptr @fn_llty(ptr %t105) store ptr %t106, ptr %t107 call void @fn_emit(ptr @.str9815) store ptr @.str9816, ptr %t108 %t109 = load ptr, ptr %t107 %t110 = call i32 @lp_str_eq(ptr %t109, ptr @.str9817) %t111 = icmp eq i32 %t110, 0 %t112 = zext i1 %t111 to i32 %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then12, label %ifend14 then12: %t114 = call ptr @fn_nreg() store ptr %t114, ptr %t108 %t115 = load ptr, ptr %t108 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str9818) br label %ifend14 ifend14: %t116 = load ptr, ptr %t107 %t117 = call ptr @lp_str_concat(ptr @.str9819, ptr %t116) %t118 = call ptr @lp_str_concat(ptr %t117, ptr @.str9820) %t119 = load ptr, ptr %t0 %t120 = getelementptr inbounds %Cmp_Val, ptr %t119, i32 0, i32 0 %t121 = load ptr, ptr %t120 %t122 = call ptr @lp_str_concat(ptr %t118, ptr %t121) %t123 = call ptr @lp_str_concat(ptr %t122, ptr @.str9821) call void @fn_emit(ptr %t123) store i32 0, ptr %t48 br label %wcond15 wcond15: %t124 = load i32, ptr %t48 %t125 = load ptr, ptr %t47 %t126 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 1 %t127 = load i32, ptr %t126 %t128 = icmp slt i32 %t124, %t127 %t129 = zext i1 %t128 to i32 %t130 = icmp ne i32 %t129, 0 br i1 %t130, label %wbody16, label %wend17 wbody16: %t131 = load i32, ptr %t48 %t132 = icmp sgt i32 %t131, 0 %t133 = zext i1 %t132 to i32 %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then18, label %ifend20 then18: call void @fn_emit(ptr @.str9822) br label %ifend20 ifend20: %t135 = load ptr, ptr %t6 %t136 = load i32, ptr %t48 %t137 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 0 %t138 = load ptr, ptr %t137 %t139 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 1 %t140 = load i32, ptr %t139 %t141 = icmp ult i32 %t136, %t140 br i1 %t141, label %ixok21, label %ixbad22 ixbad22: %t142 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t142, ptr @.fmt_bounds, ptr @.str9823, i32 %t136, i32 %t140) call void @exit(i32 1) unreachable ixok21: %t143 = getelementptr inbounds ptr, ptr %t138, i32 %t136 %t144 = load ptr, ptr %t143 %t145 = call ptr @fn_llty(ptr %t144) %t146 = call ptr @lp_str_concat(ptr %t145, ptr @.str9824) %t147 = load ptr, ptr %t47 %t148 = load i32, ptr %t48 %t149 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 0 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 1 %t152 = load i32, ptr %t151 %t153 = icmp ult i32 %t148, %t152 br i1 %t153, label %ixok23, label %ixbad24 ixbad24: %t154 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t154, ptr @.fmt_bounds, ptr @.str9825, i32 %t148, i32 %t152) call void @exit(i32 1) unreachable ixok23: %t155 = getelementptr inbounds ptr, ptr %t150, i32 %t148 %t156 = load ptr, ptr %t155 %t157 = call ptr @lp_str_concat(ptr %t146, ptr %t156) call void @fn_emit(ptr %t157) %t158 = load i32, ptr %t48 %t159 = add i32 %t158, 1 store i32 %t159, ptr %t48 br label %wcond15 wend17: call void @fn_emit(ptr @.str9826) %t160 = load ptr, ptr %t108 %t161 = load ptr, ptr %t11 %t162 = call ptr @fn_val(ptr %t160, ptr %t161) store ptr %t162, ptr %retval br label %ret ret: %t163 = load ptr, ptr %retval ret ptr %t163 } define ptr @fn_callee_value(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr %t15 = alloca i32 %t16 = alloca i32 %t47 = alloca ptr %t48 = alloca i32 %t70 = alloca i32 %t71 = alloca i32 %t108 = alloca ptr %t117 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 0 %t7 = load i32, ptr %t6 %t8 = icmp eq i32 %t7, 33 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t4 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 1 %t13 = load ptr, ptr %t12 %t14 = call i32 @fn_loc_find(ptr %t13) store i32 %t14, ptr %t15 %t17 = load i32, ptr %t15 %t18 = icmp sge i32 %t17, 0 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t16 br i1 %t20, label %sc3, label %scend4 sc3: %t22 = load ptr, ptr @g_loc_ty %t23 = load i32, ptr %t15 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok5, label %ixbad6 ixbad6: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str9827, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok5: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 %t32 = call i32 @fn_is_fn_type(ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t16 br label %scend4 scend4: %t35 = load i32, ptr %t16 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t4 %t38 = call ptr @fn_emit_expr(ptr %t37) store ptr %t38, ptr %retval br label %ret ifend9: %t39 = load i32, ptr %t15 %t40 = icmp slt i32 %t39, 0 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then10, label %ifend12 then10: %t43 = load ptr, ptr %t4 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 1 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_find_global(ptr %t45) store ptr %t46, ptr %t47 %t49 = load ptr, ptr %t47 %t50 = icmp ne ptr %t49, null %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t48 br i1 %t52, label %sc13, label %scend14 sc13: %t54 = load ptr, ptr %t47 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 3 %t56 = load ptr, ptr %t55 %t57 = call i32 @fn_is_fn_type(ptr %t56) %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t48 br label %scend14 scend14: %t60 = load i32, ptr %t48 %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %then15, label %ifend17 then15: %t62 = load ptr, ptr %t4 %t63 = call ptr @fn_emit_expr(ptr %t62) store ptr %t63, ptr %retval br label %ret ifend17: br label %ifend12 ifend12: store ptr null, ptr %retval br label %ret ifend2: %t64 = load ptr, ptr %t4 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 0 %t66 = load i32, ptr %t65 %t67 = icmp eq i32 %t66, 35 %t68 = zext i1 %t67 to i32 %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then18, label %ifend20 then18: %t72 = load ptr, ptr %t4 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 4 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 0 %t76 = load i32, ptr %t75 %t77 = icmp eq i32 %t76, 33 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t71 br i1 %t79, label %sc21, label %scend22 sc21: %t81 = load ptr, ptr %t4 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 4 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1 %t85 = load ptr, ptr %t84 %t86 = call i32 @fn_loc_find(ptr %t85) %t87 = icmp slt i32 %t86, 0 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t71 br label %scend22 scend22: %t91 = load i32, ptr %t71 %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t70 br i1 %t92, label %sc23, label %scend24 sc23: %t94 = load ptr, ptr %t4 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 4 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 1 %t98 = load ptr, ptr %t97 %t99 = call ptr @fn_find_global(ptr %t98) %t100 = icmp eq ptr %t99, null %t101 = zext i1 %t100 to i32 %t102 = icmp ne i32 %t101, 0 %t103 = zext i1 %t102 to i32 store i32 %t103, ptr %t70 br label %scend24 scend24: %t104 = load i32, ptr %t70 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then25, label %ifend27 then25: store ptr null, ptr %retval br label %ret ifend27: %t106 = load ptr, ptr %t4 %t107 = call ptr @fn_emit_expr(ptr %t106) store ptr %t107, ptr %t108 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %Cmp_Val, ptr %t109, i32 0, i32 1 %t111 = load ptr, ptr %t110 %t112 = call i32 @fn_is_fn_type(ptr %t111) %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then28, label %ifend30 then28: %t114 = load ptr, ptr %t108 store ptr %t114, ptr %retval br label %ret ifend30: store ptr null, ptr %retval br label %ret ifend20: %t115 = load ptr, ptr %t4 %t116 = call ptr @fn_emit_expr(ptr %t115) store ptr %t116, ptr %t117 %t118 = load ptr, ptr %t117 %t119 = getelementptr inbounds %Cmp_Val, ptr %t118, i32 0, i32 1 %t120 = load ptr, ptr %t119 %t121 = call i32 @fn_is_fn_type(ptr %t120) %t122 = icmp eq i32 %t121, 0 %t123 = zext i1 %t122 to i32 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then31, label %ifend33 then31: %t125 = load ptr, ptr %t117 %t126 = getelementptr inbounds %Cmp_Val, ptr %t125, i32 0, i32 1 %t127 = load ptr, ptr %t126 %t128 = call ptr @lp_str_concat(ptr @.str9828, ptr %t127) %t129 = call ptr @lp_str_concat(ptr %t128, ptr @.str9829) call void @fn_perr(ptr %t129) br label %ifend33 ifend33: %t130 = load ptr, ptr %t117 store ptr %t130, ptr %retval br label %ret ret: %t131 = load ptr, ptr %retval ret ptr %t131 } define void @fn_check_worker_ref(ptr %arg_e) { entry: %t0 = alloca ptr %t11 = alloca ptr %t16 = alloca i32 %t34 = alloca i32 %t37 = alloca i32 store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp ne i32 %t3, 55 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_find_fn(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = icmp eq ptr %t12, null %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: br label %ret ifend5: %t17 = load ptr, ptr %t11 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 2 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t16 br i1 %t24, label %sc6, label %scend7 sc6: %t26 = load ptr, ptr %t11 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 3 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_llty(ptr %t28) %t30 = call i32 @lp_str_eq(ptr %t29, ptr @.str9830) %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t16 br label %scend7 scend7: %t33 = load i32, ptr %t16 store i32 %t33, ptr %t34 %t35 = load i32, ptr %t34 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then8, label %ifend10 then8: %t38 = load ptr, ptr %t11 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 0, %t44 br i1 %t45, label %ixok11, label %ixbad12 ixbad12: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str9831, i32 0, i32 %t44) call void @exit(i32 1) unreachable ixok11: %t47 = getelementptr inbounds ptr, ptr %t42, i32 0 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 3 %t50 = load ptr, ptr %t49 %t51 = call ptr @fn_llty(ptr %t50) %t52 = call i32 @lp_str_eq(ptr %t51, ptr @.str9832) %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t37 br i1 %t53, label %sc13, label %scend14 sc13: %t55 = load ptr, ptr %t11 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 7 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 1, %t61 br i1 %t62, label %ixok15, label %ixbad16 ixbad16: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str9833, i32 1, i32 %t61) call void @exit(i32 1) unreachable ixok15: %t64 = getelementptr inbounds ptr, ptr %t59, i32 1 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 3 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_llty(ptr %t67) %t69 = call i32 @lp_str_eq(ptr %t68, ptr @.str9834) %t70 = icmp ne i32 %t69, 0 %t71 = zext i1 %t70 to i32 store i32 %t71, ptr %t37 br label %scend14 scend14: %t72 = load i32, ptr %t37 store i32 %t72, ptr %t34 br label %ifend10 ifend10: %t73 = load i32, ptr %t34 %t74 = icmp eq i32 %t73, 0 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then17, label %ifend19 then17: %t77 = load ptr, ptr %t0 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 1 %t79 = load ptr, ptr %t78 %t80 = call ptr @lp_str_concat(ptr @.str9835, ptr %t79) %t81 = call ptr @lp_str_concat(ptr %t80, ptr @.str9836) call void @fn_perr(ptr %t81) br label %ifend19 ifend19: br label %ret ret: ret void } define i32 @fn_vis_reporting() { entry: %retval = alloca i32 %t0 = load i32, ptr @g_g_vis_report %t1 = icmp slt i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 0, ptr @g_g_vis_report %t4 = call ptr @getenv(ptr @.str9837) %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then3, label %ifend5 then3: store i32 1, ptr @g_g_vis_report br label %ifend5 ifend5: br label %ifend2 ifend2: %t8 = load i32, ptr @g_g_vis_report %t9 = icmp eq i32 %t8, 1 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define ptr @fn_vis_plain(ptr %arg_what) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_what, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = call i64 @strlen(ptr %t3) %t5 = trunc i64 %t4 to i32 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr %t0 %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds i8, ptr %t9, i32 %t10 %t12 = load i8, ptr %t11 %t13 = zext i8 %t12 to i32 %t14 = icmp eq i32 %t13, 36 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then3, label %ifend5 then3: %t17 = load ptr, ptr %t0 %t18 = load i32, ptr %t1 %t19 = call ptr @lp_str_slice(ptr %t17, i32 0, i32 %t18) store ptr %t19, ptr %retval br label %ret ifend5: %t20 = load i32, ptr %t1 %t21 = add i32 %t20, 1 store i32 %t21, ptr %t1 br label %wcond0 wend2: %t22 = load ptr, ptr %t0 store ptr %t22, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval ret ptr %t23 } define void @fn_vis_say(ptr %arg_m) { entry: %t0 = alloca ptr store ptr %arg_m, ptr %t0 %t1 = load ptr, ptr @__stderrp %t2 = load ptr, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i64 @strlen(ptr %t3) %t5 = trunc i64 %t4 to i32 %t6 = zext i32 %t5 to i64 %t7 = call i64 @fwrite(ptr %t2, i64 1, i64 %t6, ptr %t1) %t8 = trunc i64 %t7 to i32 br label %ret ret: ret void } define void @fn_vis_check(ptr %arg_d, ptr %arg_what0) { entry: %t0 = alloca ptr %t1 = alloca ptr %t19 = alloca ptr %t21 = alloca ptr %t28 = alloca ptr %t33 = alloca ptr %t34 = alloca i32 %t35 = alloca i32 %t36 = alloca i32 %t126 = alloca ptr %t127 = alloca i32 store ptr %arg_d, ptr %t0 store ptr %arg_what0, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = load ptr, ptr %t0 call void @fn_port_check_bound(ptr %t6) %t7 = load ptr, ptr %t0 %t8 = load ptr, ptr %t1 call void @fn_deps_edge(ptr %t7, ptr %t8) %t9 = load i32, ptr @g_g_vis_off %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: br label %ret ifend5: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 9 %t13 = load ptr, ptr %t12 %t14 = icmp eq ptr %t13, null %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then6, label %ifend8 then6: br label %ret ifend8: %t17 = load ptr, ptr %t1 %t18 = call ptr @fn_vis_plain(ptr %t17) store ptr %t18, ptr %t19 %t20 = load ptr, ptr @g_g_err_file store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = icmp eq ptr %t22, null %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then9, label %ifend11 then9: br label %ret ifend11: %t26 = load ptr, ptr %t21 %t27 = call ptr @fn_module_of(ptr %t26) store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 9 %t31 = load ptr, ptr %t30 %t32 = call ptr @fn_module_for_uses(ptr %t31) store ptr %t32, ptr %t33 %t37 = load ptr, ptr %t33 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str9838) %t39 = icmp eq i32 %t38, 0 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t36 br i1 %t41, label %sc12, label %scend13 sc12: %t43 = load ptr, ptr %t28 %t44 = load ptr, ptr %t33 %t45 = call i32 @lp_str_eq(ptr %t43, ptr %t44) %t46 = icmp eq i32 %t45, 0 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t36 br label %scend13 scend13: %t50 = load i32, ptr %t36 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t35 br i1 %t51, label %sc14, label %scend15 sc14: %t53 = load ptr, ptr %t28 %t54 = load ptr, ptr %t33 %t55 = call i32 @fn_module_friend_of(ptr %t53, ptr %t54) %t56 = icmp eq i32 %t55, 0 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t35 br label %scend15 scend15: %t60 = load i32, ptr %t35 %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t34 br i1 %t61, label %sc16, label %scend17 sc16: %t63 = load ptr, ptr %t28 %t64 = load ptr, ptr %t33 %t65 = call i32 @fn_module_may_use(ptr %t63, ptr %t64) %t66 = icmp eq i32 %t65, 0 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 %t69 = zext i1 %t68 to i32 store i32 %t69, ptr %t34 br label %scend17 scend17: %t70 = load i32, ptr %t34 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then18, label %ifend20 then18: %t72 = call i32 @fn_vis_reporting() %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then21, label %else22 then21: %t74 = load ptr, ptr %t0 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 9 %t76 = load ptr, ptr %t75 %t77 = call ptr @lp_str_concat(ptr @.str9839, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str9840) %t79 = load ptr, ptr %t0 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 8 %t81 = load i32, ptr %t80 %t82 = call ptr @fn_itoa(i32 %t81) %t83 = call ptr @lp_str_concat(ptr %t78, ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str9841) %t85 = load ptr, ptr %t33 %t86 = call ptr @lp_str_concat(ptr %t84, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str9842) %t88 = load ptr, ptr %t19 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @lp_str_concat(ptr %t89, ptr @.str9843) %t91 = load ptr, ptr %t21 %t92 = call ptr @lp_str_concat(ptr %t90, ptr %t91) %t93 = call ptr @lp_str_concat(ptr %t92, ptr @.str9844) %t94 = load ptr, ptr %t28 %t95 = call ptr @lp_str_concat(ptr %t93, ptr %t94) %t96 = call ptr @lp_str_concat(ptr %t95, ptr @.str9845) call void @fn_vis_say(ptr %t96) br label %ifend23 else22: %t97 = load ptr, ptr %t28 %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str9846) %t99 = load ptr, ptr %t33 %t100 = call ptr @lp_str_concat(ptr %t98, ptr %t99) %t101 = call ptr @lp_str_concat(ptr %t100, ptr @.str9847) %t102 = load ptr, ptr %t19 %t103 = call ptr @lp_str_concat(ptr %t101, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str9848) %t105 = load ptr, ptr %t0 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 9 %t107 = load ptr, ptr %t106 %t108 = call ptr @lp_str_concat(ptr %t104, ptr %t107) %t109 = call ptr @lp_str_concat(ptr %t108, ptr @.str9849) %t110 = load ptr, ptr %t0 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 8 %t112 = load i32, ptr %t111 %t113 = call ptr @fn_itoa(i32 %t112) %t114 = call ptr @lp_str_concat(ptr %t109, ptr %t113) %t115 = call ptr @lp_str_concat(ptr %t114, ptr @.str9850) %t116 = load ptr, ptr %t33 %t117 = call ptr @lp_str_concat(ptr %t115, ptr %t116) %t118 = call ptr @lp_str_concat(ptr %t117, ptr @.str9851) %t119 = load ptr, ptr %t28 %t120 = call ptr @lp_str_concat(ptr %t118, ptr %t119) %t121 = call ptr @lp_str_concat(ptr %t120, ptr @.str9852) call void @fn_perr(ptr %t121) br label %ifend23 ifend23: br label %ifend20 ifend20: %t122 = load ptr, ptr %t0 %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 9 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_module_of(ptr %t124) store ptr %t125, ptr %t126 %t128 = load ptr, ptr %t126 %t129 = call i32 @lp_str_eq(ptr %t128, ptr @.str9853) %t130 = icmp ne i32 %t129, 0 %t131 = zext i1 %t130 to i32 store i32 %t131, ptr %t127 br i1 %t130, label %scend25, label %sc24 sc24: %t132 = load ptr, ptr %t28 %t133 = load ptr, ptr %t126 %t134 = call i32 @lp_str_eq(ptr %t132, ptr %t133) %t135 = icmp ne i32 %t134, 0 %t136 = zext i1 %t135 to i32 store i32 %t136, ptr %t127 br label %scend25 scend25: %t137 = load i32, ptr %t127 %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then26, label %ifend28 then26: br label %ret ifend28: %t139 = load ptr, ptr %t28 %t140 = load ptr, ptr %t126 %t141 = call i32 @fn_module_friend_of(ptr %t139, ptr %t140) %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then29, label %ifend31 then29: br label %ret ifend31: %t143 = load ptr, ptr %t0 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 10 %t145 = load i32, ptr %t144 %t146 = icmp eq i32 %t145, 1 %t147 = zext i1 %t146 to i32 %t148 = icmp ne i32 %t147, 0 br i1 %t148, label %then32, label %ifend34 then32: br label %ret ifend34: %t149 = call i32 @fn_vis_reporting() %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %then35, label %ifend37 then35: %t151 = load ptr, ptr %t0 %t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 9 %t153 = load ptr, ptr %t152 %t154 = call ptr @lp_str_concat(ptr @.str9854, ptr %t153) %t155 = call ptr @lp_str_concat(ptr %t154, ptr @.str9855) %t156 = load ptr, ptr %t0 %t157 = getelementptr inbounds %Cmp_Node, ptr %t156, i32 0, i32 8 %t158 = load i32, ptr %t157 %t159 = call ptr @fn_itoa(i32 %t158) %t160 = call ptr @lp_str_concat(ptr %t155, ptr %t159) %t161 = call ptr @lp_str_concat(ptr %t160, ptr @.str9856) %t162 = load ptr, ptr %t126 %t163 = call ptr @lp_str_concat(ptr %t161, ptr %t162) %t164 = call ptr @lp_str_concat(ptr %t163, ptr @.str9857) %t165 = load ptr, ptr %t19 %t166 = call ptr @lp_str_concat(ptr %t164, ptr %t165) %t167 = call ptr @lp_str_concat(ptr %t166, ptr @.str9858) %t168 = load ptr, ptr %t21 %t169 = call ptr @lp_str_concat(ptr %t167, ptr %t168) %t170 = call ptr @lp_str_concat(ptr %t169, ptr @.str9859) call void @fn_vis_say(ptr %t170) br label %ret ifend37: %t171 = load ptr, ptr %t19 %t172 = call ptr @lp_str_concat(ptr %t171, ptr @.str9860) %t173 = load ptr, ptr %t126 %t174 = call ptr @lp_str_concat(ptr %t172, ptr %t173) %t175 = call ptr @lp_str_concat(ptr %t174, ptr @.str9861) %t176 = load ptr, ptr %t0 %t177 = getelementptr inbounds %Cmp_Node, ptr %t176, i32 0, i32 9 %t178 = load ptr, ptr %t177 %t179 = call ptr @lp_str_concat(ptr %t175, ptr %t178) %t180 = call ptr @lp_str_concat(ptr %t179, ptr @.str9862) call void @fn_perr(ptr %t180) br label %ret ret: ret void } define i32 @fn_ck_hash(ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t6 = alloca i32 store ptr %arg_s, ptr %t0 store i32 5381, ptr %t1 store i32 0, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call i64 @strlen(ptr %t3) %t5 = trunc i64 %t4 to i32 store i32 %t5, ptr %t6 br label %wcond0 wcond0: %t7 = load i32, ptr %t2 %t8 = load i32, ptr %t6 %t9 = icmp slt i32 %t7, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load i32, ptr %t1 %t13 = mul i32 %t12, 33 %t14 = load ptr, ptr %t0 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds i8, ptr %t14, i32 %t15 %t17 = load i8, ptr %t16 %t18 = zext i8 %t17 to i32 %t19 = add i32 %t13, %t18 %t20 = srem i32 %t19, 1000003 store i32 %t20, ptr %t1 %t21 = load i32, ptr %t2 %t22 = add i32 %t21, 1 store i32 %t22, ptr %t2 br label %wcond0 wend2: %t23 = load i32, ptr %t1 %t24 = srem i32 %t23, 65536 store i32 %t24, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define void @fn_ck_tab_init(ptr %arg_k, ptr %arg_v) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_k, ptr %t0 store ptr %arg_v, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = icmp slt i32 %t3, 65536 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %wbody1, label %wend2 wbody1: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 2 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t11 = load i32, ptr %t8 %t12 = load i32, ptr %t9 %t13 = icmp sge i32 %t11, %t12 br i1 %t13, label %grow3, label %put4 grow3: %t14 = mul i32 %t12, 2 %t15 = icmp eq i32 %t12, 0 %t16 = select i1 %t15, i32 8, i32 %t14 %t17 = getelementptr ptr, ptr null, i32 1 %t18 = ptrtoint ptr %t17 to i64 %t19 = zext i32 %t16 to i64 %t20 = mul i64 %t19, %t18 %t21 = load ptr, ptr %t10 %t22 = call ptr @realloc(ptr %t21, i64 %t20) store ptr %t22, ptr %t10 store i32 %t16, ptr %t9 br label %put4 put4: %t23 = load ptr, ptr %t10 %t24 = getelementptr inbounds ptr, ptr %t23, i32 %t11 store ptr null, ptr %t24 %t25 = add i32 %t11, 1 store i32 %t25, ptr %t8 %t26 = load ptr, ptr %t1 %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t30 = load i32, ptr %t27 %t31 = load i32, ptr %t28 %t32 = icmp sge i32 %t30, %t31 br i1 %t32, label %grow5, label %put6 grow5: %t33 = mul i32 %t31, 2 %t34 = icmp eq i32 %t31, 0 %t35 = select i1 %t34, i32 8, i32 %t33 %t36 = getelementptr ptr, ptr null, i32 1 %t37 = ptrtoint ptr %t36 to i64 %t38 = zext i32 %t35 to i64 %t39 = mul i64 %t38, %t37 %t40 = load ptr, ptr %t29 %t41 = call ptr @realloc(ptr %t40, i64 %t39) store ptr %t41, ptr %t29 store i32 %t35, ptr %t28 br label %put6 put6: %t42 = load ptr, ptr %t29 %t43 = getelementptr inbounds ptr, ptr %t42, i32 %t30 store ptr null, ptr %t43 %t44 = add i32 %t30, 1 store i32 %t44, ptr %t27 %t45 = load i32, ptr %t2 %t46 = add i32 %t45, 1 store i32 %t46, ptr %t2 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_ck_tab_put(ptr %arg_k, ptr %arg_v, ptr %arg_name, ptr %arg_d) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t6 = alloca i32 store ptr %arg_k, ptr %t0 store ptr %arg_v, ptr %t1 store ptr %arg_name, ptr %t2 store ptr %arg_d, ptr %t3 %t4 = load ptr, ptr %t2 %t5 = call i32 @fn_ck_hash(ptr %t4) store i32 %t5, ptr %t6 br label %wcond0 wcond0: %t7 = load ptr, ptr %t0 %t8 = load i32, ptr %t6 %t9 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t12 = load i32, ptr %t11 %t13 = icmp ult i32 %t8, %t12 br i1 %t13, label %ixok3, label %ixbad4 ixbad4: %t14 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t14, ptr @.fmt_bounds, ptr @.str9863, i32 %t8, i32 %t12) call void @exit(i32 1) unreachable ixok3: %t15 = getelementptr inbounds ptr, ptr %t10, i32 %t8 %t16 = load ptr, ptr %t15 %t17 = icmp ne ptr %t16, null %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody1, label %wend2 wbody1: %t20 = load ptr, ptr %t0 %t21 = load i32, ptr %t6 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok5, label %ixbad6 ixbad6: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str9864, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok5: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t2 %t31 = call i32 @lp_str_eq(ptr %t29, ptr %t30) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then7, label %ifend9 then7: br label %ret ifend9: %t33 = load i32, ptr %t6 %t34 = add i32 %t33, 1 %t35 = srem i32 %t34, 65536 store i32 %t35, ptr %t6 br label %wcond0 wend2: %t36 = load ptr, ptr %t0 %t37 = load i32, ptr %t6 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok10, label %ixbad11 ixbad11: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str9865, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok10: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t2 store ptr %t45, ptr %t44 %t46 = load ptr, ptr %t1 %t47 = load i32, ptr %t6 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok12, label %ixbad13 ixbad13: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str9866, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok12: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t3 store ptr %t55, ptr %t54 br label %ret ret: ret void } define ptr @fn_ck_tab_get(ptr %arg_k, ptr %arg_v, ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca i32 store ptr %arg_k, ptr %t0 store ptr %arg_v, ptr %t1 store ptr %arg_name, ptr %t2 %t3 = load ptr, ptr %t2 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t2 %t8 = call i32 @fn_ck_hash(ptr %t7) store i32 %t8, ptr %t9 br label %wcond3 wcond3: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t9 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok6, label %ixbad7 ixbad7: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str9867, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok6: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = icmp ne ptr %t19, null %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %wbody4, label %wend5 wbody4: %t23 = load ptr, ptr %t0 %t24 = load i32, ptr %t9 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str9868, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 %t33 = load ptr, ptr %t2 %t34 = call i32 @lp_str_eq(ptr %t32, ptr %t33) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then10, label %ifend12 then10: %t36 = load ptr, ptr %t1 %t37 = load i32, ptr %t9 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok13, label %ixbad14 ixbad14: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str9869, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok13: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 store ptr %t45, ptr %retval br label %ret ifend12: %t46 = load i32, ptr %t9 %t47 = add i32 %t46, 1 %t48 = srem i32 %t47, 65536 store i32 %t48, ptr %t9 br label %wcond3 wend5: store ptr null, ptr %retval br label %ret ret: %t49 = load ptr, ptr %retval ret ptr %t49 } define void @fn_ck_index() { entry: %t10 = alloca i32 %t28 = alloca ptr %t41 = alloca i32 %t0 = load ptr, ptr @g_ck_fn_k %t1 = load ptr, ptr @g_ck_fn_v call void @fn_ck_tab_init(ptr %t0, ptr %t1) %t2 = load ptr, ptr @g_ck_gl_k %t3 = load ptr, ptr @g_ck_gl_v call void @fn_ck_tab_init(ptr %t2, ptr %t3) %t4 = load ptr, ptr @g_ck_rec_k %t5 = load ptr, ptr @g_ck_rec_v call void @fn_ck_tab_init(ptr %t4, ptr %t5) %t6 = load ptr, ptr @g_ck_en_k %t7 = load ptr, ptr @g_ck_en_v call void @fn_ck_tab_init(ptr %t6, ptr %t7) %t8 = load ptr, ptr @g_ck_ex_k %t9 = load ptr, ptr @g_ck_ex_v call void @fn_ck_tab_init(ptr %t8, ptr %t9) store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load ptr, ptr @g_prog %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t11, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr @g_prog %t19 = load i32, ptr %t10 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok3, label %ixbad4 ixbad4: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str9870, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok3: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 4 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: %t35 = load ptr, ptr @g_ck_fn_k %t36 = load ptr, ptr @g_ck_fn_v %t37 = load ptr, ptr %t28 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 %t40 = load ptr, ptr %t28 call void @fn_ck_tab_put(ptr %t35, ptr %t36, ptr %t39, ptr %t40) br label %ifend7 ifend7: %t42 = load ptr, ptr %t28 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 0 %t44 = load i32, ptr %t43 %t45 = icmp eq i32 %t44, 2 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t41 br i1 %t47, label %scend9, label %sc8 sc8: %t49 = load ptr, ptr %t28 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 0 %t51 = load i32, ptr %t50 %t52 = icmp eq i32 %t51, 3 %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t41 br label %scend9 scend9: %t56 = load i32, ptr %t41 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then10, label %ifend12 then10: %t58 = load ptr, ptr @g_ck_gl_k %t59 = load ptr, ptr @g_ck_gl_v %t60 = load ptr, ptr %t28 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 1 %t62 = load ptr, ptr %t61 %t63 = load ptr, ptr %t28 call void @fn_ck_tab_put(ptr %t58, ptr %t59, ptr %t62, ptr %t63) br label %ifend12 ifend12: %t64 = load ptr, ptr %t28 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 0 %t66 = load i32, ptr %t65 %t67 = icmp eq i32 %t66, 8 %t68 = zext i1 %t67 to i32 %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then13, label %ifend15 then13: %t70 = load ptr, ptr @g_ck_rec_k %t71 = load ptr, ptr @g_ck_rec_v %t72 = load ptr, ptr %t28 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 %t74 = load ptr, ptr %t73 %t75 = load ptr, ptr %t28 call void @fn_ck_tab_put(ptr %t70, ptr %t71, ptr %t74, ptr %t75) br label %ifend15 ifend15: %t76 = load ptr, ptr %t28 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 0 %t78 = load i32, ptr %t77 %t79 = icmp eq i32 %t78, 27 %t80 = zext i1 %t79 to i32 %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then16, label %ifend18 then16: %t82 = load ptr, ptr @g_ck_en_k %t83 = load ptr, ptr @g_ck_en_v %t84 = load ptr, ptr %t28 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 %t87 = load ptr, ptr %t28 call void @fn_ck_tab_put(ptr %t82, ptr %t83, ptr %t86, ptr %t87) br label %ifend18 ifend18: %t88 = load ptr, ptr %t28 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 0 %t90 = load i32, ptr %t89 %t91 = icmp eq i32 %t90, 11 %t92 = zext i1 %t91 to i32 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then19, label %ifend21 then19: %t94 = load ptr, ptr @g_ck_ex_k %t95 = load ptr, ptr @g_ck_ex_v %t96 = load ptr, ptr %t28 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 1 %t98 = load ptr, ptr %t97 %t99 = load ptr, ptr %t28 call void @fn_ck_tab_put(ptr %t94, ptr %t95, ptr %t98, ptr %t99) br label %ifend21 ifend21: %t100 = load i32, ptr %t10 %t101 = add i32 %t100, 1 store i32 %t101, ptr %t10 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_ck_fn(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr @g_ck_fn_k %t2 = load ptr, ptr @g_ck_fn_v %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_ck_tab_get(ptr %t1, ptr %t2, ptr %t3) store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define ptr @fn_ck_global(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr @g_ck_gl_k %t2 = load ptr, ptr @g_ck_gl_v %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_ck_tab_get(ptr %t1, ptr %t2, ptr %t3) store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define ptr @fn_ck_record(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr @g_ck_rec_k %t2 = load ptr, ptr @g_ck_rec_v %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_ck_tab_get(ptr %t1, ptr %t2, ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = icmp ne ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t5 store ptr %t10, ptr %retval br label %ret ifend2: %t11 = load ptr, ptr %t0 %t12 = call ptr @fn_gen_record(ptr %t11) store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_ck_enum(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr @g_ck_en_k %t2 = load ptr, ptr @g_ck_en_v %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_ck_tab_get(ptr %t1, ptr %t2, ptr %t3) store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define ptr @fn_ck_extern(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr @g_ck_ex_k %t2 = load ptr, ptr @g_ck_ex_v %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_ck_tab_get(ptr %t1, ptr %t2, ptr %t3) store ptr %t4, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define i32 @fn_ck_unknown(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_t, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str9871) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t1 br label %scend1 scend1: %t11 = load i32, ptr %t1 store i32 %t11, ptr %retval br label %ret ret: %t12 = load i32, ptr %retval ret i32 %t12 } define i32 @fn_ck_is_int(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t38 = alloca ptr store ptr %arg_t, ptr %t0 %t5 = load ptr, ptr %t0 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str9872) %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t4 br i1 %t7, label %scend1, label %sc0 sc0: %t9 = load ptr, ptr %t0 %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str9873) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t4 br label %scend1 scend1: %t13 = load i32, ptr %t4 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t3 br i1 %t14, label %scend3, label %sc2 sc2: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str9874) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t3 br label %scend3 scend3: %t20 = load i32, ptr %t3 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t2 br i1 %t21, label %scend5, label %sc4 sc4: %t23 = load ptr, ptr %t0 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str9875) %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t2 br label %scend5 scend5: %t27 = load i32, ptr %t2 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t1 br i1 %t28, label %scend7, label %sc6 sc6: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str9876) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t1 br label %scend7 scend7: %t34 = load i32, ptr %t1 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t36 = load ptr, ptr %t0 %t37 = call ptr @fn_ck_enum(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = icmp ne ptr %t39, null %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then11, label %ifend13 then11: %t43 = load ptr, ptr %t38 %t44 = call i32 @fn_enum_is_tagged(ptr %t43) %t45 = icmp eq i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %retval br label %ret ifend13: store i32 0, ptr %retval br label %ret ret: %t47 = load i32, ptr %retval ret i32 %t47 } define ptr @fn_ck_a(ptr %arg_t0) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 %t10 = alloca i32 %t11 = alloca i32 %t12 = alloca i32 %t13 = alloca i32 %t14 = alloca i32 %t15 = alloca i32 %t16 = alloca i32 %t17 = alloca i32 store ptr %arg_t0, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_gen_show(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds i8, ptr %t4, i32 0 %t6 = load i8, ptr %t5 %t7 = zext i8 %t6 to i32 store i32 %t7, ptr %t8 %t18 = load i32, ptr %t8 %t19 = icmp eq i32 %t18, 97 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t17 br i1 %t21, label %scend1, label %sc0 sc0: %t23 = load i32, ptr %t8 %t24 = icmp eq i32 %t23, 101 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t17 br label %scend1 scend1: %t28 = load i32, ptr %t17 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t16 br i1 %t29, label %scend3, label %sc2 sc2: %t31 = load i32, ptr %t8 %t32 = icmp eq i32 %t31, 105 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t16 br label %scend3 scend3: %t36 = load i32, ptr %t16 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t15 br i1 %t37, label %scend5, label %sc4 sc4: %t39 = load i32, ptr %t8 %t40 = icmp eq i32 %t39, 111 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t15 br label %scend5 scend5: %t44 = load i32, ptr %t15 %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t14 br i1 %t45, label %scend7, label %sc6 sc6: %t47 = load i32, ptr %t8 %t48 = icmp eq i32 %t47, 117 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t14 br label %scend7 scend7: %t52 = load i32, ptr %t14 %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t13 br i1 %t53, label %scend9, label %sc8 sc8: %t55 = load i32, ptr %t8 %t56 = icmp eq i32 %t55, 65 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t13 br label %scend9 scend9: %t60 = load i32, ptr %t13 %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t12 br i1 %t61, label %scend11, label %sc10 sc10: %t63 = load i32, ptr %t8 %t64 = icmp eq i32 %t63, 69 %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t12 br label %scend11 scend11: %t68 = load i32, ptr %t12 %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t11 br i1 %t69, label %scend13, label %sc12 sc12: %t71 = load i32, ptr %t8 %t72 = icmp eq i32 %t71, 73 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t11 br label %scend13 scend13: %t76 = load i32, ptr %t11 %t77 = icmp ne i32 %t76, 0 %t78 = zext i1 %t77 to i32 store i32 %t78, ptr %t10 br i1 %t77, label %scend15, label %sc14 sc14: %t79 = load i32, ptr %t8 %t80 = icmp eq i32 %t79, 79 %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t10 br label %scend15 scend15: %t84 = load i32, ptr %t10 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t9 br i1 %t85, label %scend17, label %sc16 sc16: %t87 = load i32, ptr %t8 %t88 = icmp eq i32 %t87, 85 %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 store i32 %t91, ptr %t9 br label %scend17 scend17: %t92 = load i32, ptr %t9 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then18, label %ifend20 then18: %t94 = load ptr, ptr %t3 %t95 = call ptr @lp_str_concat(ptr @.str9877, ptr %t94) store ptr %t95, ptr %retval br label %ret ifend20: %t96 = load ptr, ptr %t3 %t97 = call ptr @lp_str_concat(ptr @.str9878, ptr %t96) store ptr %t97, ptr %retval br label %ret ret: %t98 = load ptr, ptr %retval ret ptr %t98 } define i32 @fn_ck_is_float(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_t, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str9879) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str9880) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define i32 @fn_ck_is_num(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 store ptr %arg_t, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @fn_ck_is_int(ptr %t3) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = call i32 @fn_ck_is_float(ptr %t7) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str9881) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 br label %scend3 scend3: %t18 = load i32, ptr %t1 store i32 %t18, ptr %retval br label %ret ret: %t19 = load i32, ptr %retval ret i32 %t19 } define i32 @fn_ck_is_rec(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_ck_record(ptr %t1) %t3 = icmp ne ptr %t2, null %t4 = zext i1 %t3 to i32 store i32 %t4, ptr %retval br label %ret ret: %t5 = load i32, ptr %retval ret i32 %t5 } define i32 @fn_ck_is_ref(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_t, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @fn_ck_is_num(ptr %t4) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str9882) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str9883) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str9884) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 0, ptr %retval br label %ret ifend8: store i32 1, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define i32 @fn_ck_is_lit(ptr %arg_e) { entry: %retval = alloca i32 %t0 = alloca ptr %t5 = alloca i32 %t22 = alloca i32 store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 0 %t8 = load i32, ptr %t7 %t9 = icmp eq i32 %t8, 30 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t5 br i1 %t11, label %scend4, label %sc3 sc3: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0 %t15 = load i32, ptr %t14 %t16 = icmp eq i32 %t15, 40 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t5 br label %scend4 scend4: %t20 = load i32, ptr %t5 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 38 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t22 br i1 %t28, label %sc8, label %scend9 sc8: %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 1 %t32 = load ptr, ptr %t31 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str9885) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t22 br label %scend9 scend9: %t36 = load i32, ptr %t22 %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then10, label %ifend12 then10: %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 4 %t40 = load ptr, ptr %t39 %t41 = call i32 @fn_ck_is_lit(ptr %t40) store i32 %t41, ptr %retval br label %ret ifend12: store i32 0, ptr %retval br label %ret ret: %t42 = load i32, ptr %retval ret i32 %t42 } define ptr @fn_ck_class(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_ck_is_num(ptr %t1) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str9886, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str9887) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str9888, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str9889) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str9890, ptr %retval br label %ret ifend8: store ptr @.str9891, ptr %retval br label %ret ret: %t10 = load ptr, ptr %retval ret ptr %t10 } define ptr @fn_ck_mismatch(ptr %arg_to, ptr %arg_from, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t14 = alloca i32 %t32 = alloca i32 %t43 = alloca i32 %t44 = alloca i32 %t49 = alloca i32 %t64 = alloca i32 %t90 = alloca i32 %t110 = alloca i32 %t127 = alloca i32 %t140 = alloca i32 %t151 = alloca i32 %t164 = alloca i32 %t175 = alloca i32 %t189 = alloca i32 %t200 = alloca i32 %t205 = alloca i32 %t219 = alloca i32 %t230 = alloca i32 %t241 = alloca i32 %t252 = alloca i32 %t257 = alloca i32 %t258 = alloca i32 store ptr %arg_to, ptr %t0 store ptr %arg_from, ptr %t1 store ptr %arg_e, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = call i32 @fn_ck_unknown(ptr %t4) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t1 %t9 = call i32 @fn_ck_unknown(ptr %t8) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then2, label %ifend4 then2: store ptr null, ptr %retval br label %ret ifend4: %t15 = load ptr, ptr %t0 %t16 = load ptr, ptr %t1 %t17 = call i32 @lp_str_eq(ptr %t15, ptr %t16) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t14 br i1 %t18, label %scend6, label %sc5 sc5: %t20 = load ptr, ptr %t0 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str9892) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t14 br label %scend6 scend6: %t24 = load i32, ptr %t14 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then7, label %ifend9 then7: store ptr null, ptr %retval br label %ret ifend9: %t26 = load ptr, ptr %t1 %t27 = call i32 @lp_str_eq(ptr %t26, ptr @.str9893) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then10, label %ifend12 then10: %t29 = load ptr, ptr %t0 %t30 = call i32 @fn_ck_is_ref(ptr %t29) %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then13, label %ifend15 then13: store ptr null, ptr %retval br label %ret ifend15: store ptr @.str9894, ptr %retval br label %ret ifend12: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str9895) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t32 br i1 %t35, label %scend17, label %sc16 sc16: %t37 = load ptr, ptr %t1 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str9896) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t32 br label %scend17 scend17: %t41 = load i32, ptr %t32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then18, label %ifend20 then18: store ptr @.str9897, ptr %retval br label %ret ifend20: %t45 = load ptr, ptr %t2 %t46 = call i32 @fn_ck_is_lit(ptr %t45) %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t44 br i1 %t47, label %sc21, label %scend22 sc21: %t50 = load ptr, ptr %t1 %t51 = call i32 @lp_str_eq(ptr %t50, ptr @.str9898) %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t49 br i1 %t52, label %scend24, label %sc23 sc23: %t54 = load ptr, ptr %t1 %t55 = call i32 @fn_ck_is_float(ptr %t54) %t56 = icmp ne i32 %t55, 0 %t57 = zext i1 %t56 to i32 store i32 %t57, ptr %t49 br label %scend24 scend24: %t58 = load i32, ptr %t49 %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t44 br label %scend22 scend22: %t61 = load i32, ptr %t44 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t43 br i1 %t62, label %sc25, label %scend26 sc25: %t65 = load ptr, ptr %t0 %t66 = call i32 @lp_str_eq(ptr %t65, ptr @.str9899) %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t64 br i1 %t67, label %scend28, label %sc27 sc27: %t69 = load ptr, ptr %t0 %t70 = call i32 @fn_ck_is_float(ptr %t69) %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t64 br label %scend28 scend28: %t73 = load i32, ptr %t64 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t43 br label %scend26 scend26: %t76 = load i32, ptr %t43 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then29, label %ifend31 then29: store ptr null, ptr %retval br label %ret ifend31: %t78 = load ptr, ptr %t0 %t79 = call i32 @fn_ck_is_int(ptr %t78) %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then32, label %ifend34 then32: %t81 = load ptr, ptr %t1 %t82 = call i32 @fn_ck_is_int(ptr %t81) %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then35, label %ifend37 then35: store ptr null, ptr %retval br label %ret ifend37: %t84 = load ptr, ptr %t1 %t85 = call i32 @fn_ck_is_num(ptr %t84) %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then38, label %ifend40 then38: store ptr @.str9900, ptr %retval br label %ret ifend40: store ptr @.str9901, ptr %retval br label %ret ifend34: %t87 = load ptr, ptr %t0 %t88 = call i32 @fn_ck_is_float(ptr %t87) %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then41, label %ifend43 then41: %t91 = load ptr, ptr %t1 %t92 = call i32 @fn_ck_is_int(ptr %t91) %t93 = icmp ne i32 %t92, 0 %t94 = zext i1 %t93 to i32 store i32 %t94, ptr %t90 br i1 %t93, label %scend45, label %sc44 sc44: %t95 = load ptr, ptr %t1 %t96 = call i32 @fn_ck_is_float(ptr %t95) %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t90 br label %scend45 scend45: %t99 = load i32, ptr %t90 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then46, label %ifend48 then46: store ptr null, ptr %retval br label %ret ifend48: %t101 = load ptr, ptr %t1 %t102 = call i32 @lp_str_eq(ptr %t101, ptr @.str9902) %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then49, label %ifend51 then49: store ptr @.str9903, ptr %retval br label %ret ifend51: store ptr @.str9904, ptr %retval br label %ret ifend43: %t104 = load ptr, ptr %t0 %t105 = call i32 @lp_str_eq(ptr %t104, ptr @.str9905) %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then52, label %ifend54 then52: %t107 = load ptr, ptr %t1 %t108 = call i32 @fn_ck_is_int(ptr %t107) %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then55, label %ifend57 then55: store ptr null, ptr %retval br label %ret ifend57: %t111 = load ptr, ptr %t1 %t112 = call i32 @fn_ck_is_float(ptr %t111) %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t110 br i1 %t113, label %sc58, label %scend59 sc58: %t115 = load ptr, ptr %t2 %t116 = call i32 @fn_ck_is_lit(ptr %t115) %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t110 br label %scend59 scend59: %t119 = load i32, ptr %t110 %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then60, label %ifend62 then60: store ptr null, ptr %retval br label %ret ifend62: %t121 = load ptr, ptr %t1 %t122 = call i32 @fn_ck_is_float(ptr %t121) %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then63, label %ifend65 then63: store ptr @.str9906, ptr %retval br label %ret ifend65: store ptr @.str9907, ptr %retval br label %ret ifend54: %t124 = load ptr, ptr %t1 %t125 = call i32 @fn_ck_is_num(ptr %t124) %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then66, label %ifend68 then66: store ptr @.str9908, ptr %retval br label %ret ifend68: %t128 = load ptr, ptr %t0 %t129 = call i32 @lp_str_eq(ptr %t128, ptr @.str9909) %t130 = icmp ne i32 %t129, 0 %t131 = zext i1 %t130 to i32 store i32 %t131, ptr %t127 br i1 %t130, label %sc69, label %scend70 sc69: %t132 = load ptr, ptr %t1 %t133 = call i32 @fn_is_slice_ty(ptr %t132) %t134 = icmp ne i32 %t133, 0 %t135 = zext i1 %t134 to i32 store i32 %t135, ptr %t127 br label %scend70 scend70: %t136 = load i32, ptr %t127 %t137 = icmp ne i32 %t136, 0 br i1 %t137, label %then71, label %ifend73 then71: %t138 = load i32, ptr @g_ck_extern_arg %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then74, label %ifend76 then74: store ptr null, ptr %retval br label %ret ifend76: store ptr @.str9910, ptr %retval br label %ret ifend73: %t141 = load ptr, ptr %t1 %t142 = call i32 @lp_str_eq(ptr %t141, ptr @.str9911) %t143 = icmp ne i32 %t142, 0 %t144 = zext i1 %t143 to i32 store i32 %t144, ptr %t140 br i1 %t143, label %sc77, label %scend78 sc77: %t145 = load ptr, ptr %t0 %t146 = call i32 @fn_is_slice_ty(ptr %t145) %t147 = icmp ne i32 %t146, 0 %t148 = zext i1 %t147 to i32 store i32 %t148, ptr %t140 br label %scend78 scend78: %t149 = load i32, ptr %t140 %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %then79, label %ifend81 then79: store ptr @.str9912, ptr %retval br label %ret ifend81: %t152 = load ptr, ptr %t0 %t153 = call i32 @lp_str_eq(ptr %t152, ptr @.str9913) %t154 = icmp ne i32 %t153, 0 %t155 = zext i1 %t154 to i32 store i32 %t155, ptr %t151 br i1 %t154, label %sc82, label %scend83 sc82: %t156 = load ptr, ptr %t1 %t157 = call i32 @fn_is_slice_ty(ptr %t156) %t158 = icmp ne i32 %t157, 0 %t159 = zext i1 %t158 to i32 store i32 %t159, ptr %t151 br label %scend83 scend83: %t160 = load i32, ptr %t151 %t161 = icmp ne i32 %t160, 0 br i1 %t161, label %then84, label %ifend86 then84: %t162 = load i32, ptr @g_ck_extern_arg %t163 = icmp ne i32 %t162, 0 br i1 %t163, label %then87, label %ifend89 then87: store ptr null, ptr %retval br label %ret ifend89: store ptr @.str9914, ptr %retval br label %ret ifend86: %t165 = load ptr, ptr %t1 %t166 = call i32 @lp_str_eq(ptr %t165, ptr @.str9915) %t167 = icmp ne i32 %t166, 0 %t168 = zext i1 %t167 to i32 store i32 %t168, ptr %t164 br i1 %t167, label %sc90, label %scend91 sc90: %t169 = load ptr, ptr %t0 %t170 = call i32 @fn_is_slice_ty(ptr %t169) %t171 = icmp ne i32 %t170, 0 %t172 = zext i1 %t171 to i32 store i32 %t172, ptr %t164 br label %scend91 scend91: %t173 = load i32, ptr %t164 %t174 = icmp ne i32 %t173, 0 br i1 %t174, label %then92, label %ifend94 then92: store ptr @.str9916, ptr %retval br label %ret ifend94: %t176 = load ptr, ptr %t0 %t177 = call i32 @lp_str_eq(ptr %t176, ptr @.str9917) %t178 = icmp ne i32 %t177, 0 %t179 = zext i1 %t178 to i32 store i32 %t179, ptr %t175 br i1 %t178, label %scend96, label %sc95 sc95: %t180 = load ptr, ptr %t1 %t181 = call i32 @lp_str_eq(ptr %t180, ptr @.str9918) %t182 = icmp ne i32 %t181, 0 %t183 = zext i1 %t182 to i32 store i32 %t183, ptr %t175 br label %scend96 scend96: %t184 = load i32, ptr %t175 %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then97, label %ifend99 then97: store ptr null, ptr %retval br label %ret ifend99: %t186 = load ptr, ptr %t0 %t187 = call i32 @lp_str_eq(ptr %t186, ptr @.str9919) %t188 = icmp ne i32 %t187, 0 br i1 %t188, label %then100, label %ifend102 then100: store ptr @.str9920, ptr %retval br label %ret ifend102: %t190 = load ptr, ptr %t0 %t191 = call i32 @fn_ck_is_rec(ptr %t190) %t192 = icmp ne i32 %t191, 0 %t193 = zext i1 %t192 to i32 store i32 %t193, ptr %t189 br i1 %t192, label %sc103, label %scend104 sc103: %t194 = load ptr, ptr %t1 %t195 = call i32 @fn_ck_is_rec(ptr %t194) %t196 = icmp ne i32 %t195, 0 %t197 = zext i1 %t196 to i32 store i32 %t197, ptr %t189 br label %scend104 scend104: %t198 = load i32, ptr %t189 %t199 = icmp ne i32 %t198, 0 br i1 %t199, label %then105, label %ifend107 then105: store ptr @.str9921, ptr %retval br label %ret ifend107: %t201 = load ptr, ptr %t0 %t202 = call i32 @fn_ck_is_rec(ptr %t201) %t203 = icmp ne i32 %t202, 0 %t204 = zext i1 %t203 to i32 store i32 %t204, ptr %t200 br i1 %t203, label %sc108, label %scend109 sc108: %t206 = load ptr, ptr %t1 %t207 = call i32 @lp_str_eq(ptr %t206, ptr @.str9922) %t208 = icmp ne i32 %t207, 0 %t209 = zext i1 %t208 to i32 store i32 %t209, ptr %t205 br i1 %t208, label %scend111, label %sc110 sc110: %t210 = load ptr, ptr %t1 %t211 = call i32 @fn_is_slice_ty(ptr %t210) %t212 = icmp ne i32 %t211, 0 %t213 = zext i1 %t212 to i32 store i32 %t213, ptr %t205 br label %scend111 scend111: %t214 = load i32, ptr %t205 %t215 = icmp ne i32 %t214, 0 %t216 = zext i1 %t215 to i32 store i32 %t216, ptr %t200 br label %scend109 scend109: %t217 = load i32, ptr %t200 %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %then112, label %ifend114 then112: store ptr @.str9923, ptr %retval br label %ret ifend114: %t220 = load ptr, ptr %t0 %t221 = call i32 @lp_str_eq(ptr %t220, ptr @.str9924) %t222 = icmp ne i32 %t221, 0 %t223 = zext i1 %t222 to i32 store i32 %t223, ptr %t219 br i1 %t222, label %scend116, label %sc115 sc115: %t224 = load ptr, ptr %t1 %t225 = call i32 @lp_str_eq(ptr %t224, ptr @.str9925) %t226 = icmp ne i32 %t225, 0 %t227 = zext i1 %t226 to i32 store i32 %t227, ptr %t219 br label %scend116 scend116: %t228 = load i32, ptr %t219 %t229 = icmp ne i32 %t228, 0 br i1 %t229, label %then117, label %ifend119 then117: store ptr null, ptr %retval br label %ret ifend119: %t231 = load ptr, ptr %t0 %t232 = call i32 @fn_is_slice_ty(ptr %t231) %t233 = icmp ne i32 %t232, 0 %t234 = zext i1 %t233 to i32 store i32 %t234, ptr %t230 br i1 %t233, label %sc120, label %scend121 sc120: %t235 = load ptr, ptr %t1 %t236 = call i32 @fn_is_slice_ty(ptr %t235) %t237 = icmp ne i32 %t236, 0 %t238 = zext i1 %t237 to i32 store i32 %t238, ptr %t230 br label %scend121 scend121: %t239 = load i32, ptr %t230 %t240 = icmp ne i32 %t239, 0 br i1 %t240, label %then122, label %ifend124 then122: store ptr @.str9926, ptr %retval br label %ret ifend124: %t242 = load ptr, ptr %t0 %t243 = call i32 @fn_is_fn_type(ptr %t242) %t244 = icmp ne i32 %t243, 0 %t245 = zext i1 %t244 to i32 store i32 %t245, ptr %t241 br i1 %t244, label %sc125, label %scend126 sc125: %t246 = load ptr, ptr %t1 %t247 = call i32 @fn_is_fn_type(ptr %t246) %t248 = icmp ne i32 %t247, 0 %t249 = zext i1 %t248 to i32 store i32 %t249, ptr %t241 br label %scend126 scend126: %t250 = load i32, ptr %t241 %t251 = icmp ne i32 %t250, 0 br i1 %t251, label %then127, label %ifend129 then127: store ptr @.str9927, ptr %retval br label %ret ifend129: %t253 = load ptr, ptr %t1 %t254 = call i32 @lp_str_eq(ptr %t253, ptr @.str9928) %t255 = icmp ne i32 %t254, 0 %t256 = zext i1 %t255 to i32 store i32 %t256, ptr %t252 br i1 %t255, label %sc130, label %scend131 sc130: %t259 = load ptr, ptr %t0 %t260 = call i32 @fn_ck_is_rec(ptr %t259) %t261 = icmp ne i32 %t260, 0 %t262 = zext i1 %t261 to i32 store i32 %t262, ptr %t258 br i1 %t261, label %scend133, label %sc132 sc132: %t263 = load ptr, ptr %t0 %t264 = call i32 @fn_is_slice_ty(ptr %t263) %t265 = icmp ne i32 %t264, 0 %t266 = zext i1 %t265 to i32 store i32 %t266, ptr %t258 br label %scend133 scend133: %t267 = load i32, ptr %t258 %t268 = icmp ne i32 %t267, 0 %t269 = zext i1 %t268 to i32 store i32 %t269, ptr %t257 br i1 %t268, label %scend135, label %sc134 sc134: %t270 = load ptr, ptr %t0 %t271 = call i32 @fn_is_fn_type(ptr %t270) %t272 = icmp ne i32 %t271, 0 %t273 = zext i1 %t272 to i32 store i32 %t273, ptr %t257 br label %scend135 scend135: %t274 = load i32, ptr %t257 %t275 = icmp ne i32 %t274, 0 %t276 = zext i1 %t275 to i32 store i32 %t276, ptr %t252 br label %scend131 scend131: %t277 = load i32, ptr %t252 %t278 = icmp ne i32 %t277, 0 br i1 %t278, label %then136, label %ifend138 then136: store ptr @.str9929, ptr %retval br label %ret ifend138: store ptr null, ptr %retval br label %ret ret: %t279 = load ptr, ptr %retval ret ptr %t279 } define void @fn_ck_bind(ptr %arg_name, ptr %arg_ty) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr %t4 = alloca i32 store ptr %arg_name, ptr %t0 store ptr %arg_ty, ptr %t1 %t2 = load ptr, ptr %t1 store ptr %t2, ptr %t3 %t5 = load ptr, ptr %t3 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str9930) %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t4 br i1 %t7, label %scend1, label %sc0 sc0: %t9 = load ptr, ptr %t3 %t10 = icmp eq ptr %t9, null %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t4 br label %scend1 scend1: %t14 = load i32, ptr %t4 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then2, label %ifend4 then2: store ptr @.str9931, ptr %t3 br label %ifend4 ifend4: %t16 = load i32, ptr @g_ck_top %t17 = load ptr, ptr @g_ck_names %t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp slt i32 %t16, %t19 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %else6 then5: %t23 = load ptr, ptr @g_ck_names %t24 = load i32, ptr @g_ck_top %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str9932, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t0 store ptr %t32, ptr %t31 %t33 = load ptr, ptr @g_ck_tys %t34 = load i32, ptr @g_ck_top %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 %t34, %t38 br i1 %t39, label %ixok10, label %ixbad11 ixbad11: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str9933, i32 %t34, i32 %t38) call void @exit(i32 1) unreachable ixok10: %t41 = getelementptr inbounds ptr, ptr %t36, i32 %t34 %t42 = load ptr, ptr %t3 store ptr %t42, ptr %t41 br label %ifend7 else6: %t43 = load ptr, ptr @g_ck_names %t44 = load ptr, ptr %t0 %t45 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t46 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 2 %t47 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t48 = load i32, ptr %t45 %t49 = load i32, ptr %t46 %t50 = icmp sge i32 %t48, %t49 br i1 %t50, label %grow12, label %put13 grow12: %t51 = mul i32 %t49, 2 %t52 = icmp eq i32 %t49, 0 %t53 = select i1 %t52, i32 8, i32 %t51 %t54 = getelementptr ptr, ptr null, i32 1 %t55 = ptrtoint ptr %t54 to i64 %t56 = zext i32 %t53 to i64 %t57 = mul i64 %t56, %t55 %t58 = load ptr, ptr %t47 %t59 = call ptr @realloc(ptr %t58, i64 %t57) store ptr %t59, ptr %t47 store i32 %t53, ptr %t46 br label %put13 put13: %t60 = load ptr, ptr %t47 %t61 = getelementptr inbounds ptr, ptr %t60, i32 %t48 store ptr %t44, ptr %t61 %t62 = add i32 %t48, 1 store i32 %t62, ptr %t45 %t63 = load ptr, ptr @g_ck_tys %t64 = load ptr, ptr %t3 %t65 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t66 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 2 %t67 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 0 %t68 = load i32, ptr %t65 %t69 = load i32, ptr %t66 %t70 = icmp sge i32 %t68, %t69 br i1 %t70, label %grow14, label %put15 grow14: %t71 = mul i32 %t69, 2 %t72 = icmp eq i32 %t69, 0 %t73 = select i1 %t72, i32 8, i32 %t71 %t74 = getelementptr ptr, ptr null, i32 1 %t75 = ptrtoint ptr %t74 to i64 %t76 = zext i32 %t73 to i64 %t77 = mul i64 %t76, %t75 %t78 = load ptr, ptr %t67 %t79 = call ptr @realloc(ptr %t78, i64 %t77) store ptr %t79, ptr %t67 store i32 %t73, ptr %t66 br label %put15 put15: %t80 = load ptr, ptr %t67 %t81 = getelementptr inbounds ptr, ptr %t80, i32 %t68 store ptr %t64, ptr %t81 %t82 = add i32 %t68, 1 store i32 %t82, ptr %t65 br label %ifend7 ifend7: %t83 = load i32, ptr @g_ck_top %t84 = add i32 %t83, 1 store i32 %t84, ptr @g_ck_top br label %ret ret: ret void } define i32 @fn_ck_mark() { entry: %retval = alloca i32 %t0 = load i32, ptr @g_ck_top store i32 %t0, ptr %retval br label %ret ret: %t1 = load i32, ptr %retval ret i32 %t1 } define void @fn_ck_pop(i32 %arg_m) { entry: %t0 = alloca i32 store i32 %arg_m, ptr %t0 %t1 = load i32, ptr %t0 store i32 %t1, ptr @g_ck_top br label %ret ret: ret void } define i32 @fn_ck_local(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t3 = alloca i32 store ptr %arg_name, ptr %t0 %t1 = load i32, ptr @g_ck_top %t2 = sub i32 %t1, 1 store i32 %t2, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = icmp sge i32 %t4, 0 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_ck_names %t9 = load i32, ptr %t3 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str9934, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = load ptr, ptr %t0 %t19 = call i32 @lp_str_eq(ptr %t17, ptr %t18) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then5, label %ifend7 then5: %t21 = load i32, ptr %t3 store i32 %t21, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t3 %t23 = sub i32 %t22, 1 store i32 %t23, ptr %t3 br label %wcond0 wend2: %t24 = sub i32 0, 1 store i32 %t24, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define i32 @fn_ck_reporting() { entry: %retval = alloca i32 %t0 = load i32, ptr @g_ck_report %t1 = icmp slt i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 0, ptr @g_ck_report %t4 = call ptr @getenv(ptr @.str9935) %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then3, label %ifend5 then3: store i32 1, ptr @g_ck_report br label %ifend5 ifend5: br label %ifend2 ifend2: %t8 = load i32, ptr @g_ck_report %t9 = icmp eq i32 %t8, 1 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define void @fn_ck_err(ptr %arg_cat, ptr %arg_n, ptr %arg_msg) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca i32 %t30 = alloca ptr store ptr %arg_cat, ptr %t0 store ptr %arg_n, ptr %t1 store ptr %arg_msg, ptr %t2 store ptr @.str9936, ptr %t3 store i32 0, ptr %t4 %t5 = load ptr, ptr %t1 %t6 = icmp ne ptr %t5, null %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t1 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 9 %t11 = load ptr, ptr %t10 %t12 = icmp ne ptr %t11, null %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then3, label %ifend5 then3: %t15 = load ptr, ptr %t1 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t3 br label %ifend5 ifend5: %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 8 %t20 = load i32, ptr %t19 store i32 %t20, ptr %t4 br label %ifend2 ifend2: %t21 = load ptr, ptr %t3 %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str9937) %t23 = load i32, ptr %t4 %t24 = call ptr @fn_itoa(i32 %t23) %t25 = call ptr @lp_str_concat(ptr %t22, ptr %t24) %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str9938) %t27 = load ptr, ptr %t2 %t28 = call ptr @lp_str_concat(ptr %t26, ptr %t27) %t29 = call ptr @lp_str_concat(ptr %t28, ptr @.str9939) store ptr %t29, ptr %t30 %t31 = call i32 @fn_ck_reporting() %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then6, label %ifend8 then6: %t33 = load ptr, ptr %t0 %t34 = call ptr @lp_str_concat(ptr @.str9940, ptr %t33) %t35 = call ptr @lp_str_concat(ptr %t34, ptr @.str9941) %t36 = load ptr, ptr %t3 %t37 = call ptr @lp_str_concat(ptr %t35, ptr %t36) %t38 = call ptr @lp_str_concat(ptr %t37, ptr @.str9942) %t39 = load i32, ptr %t4 %t40 = call ptr @fn_itoa(i32 %t39) %t41 = call ptr @lp_str_concat(ptr %t38, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str9943) %t43 = load ptr, ptr %t2 %t44 = call ptr @lp_str_concat(ptr %t42, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str9944) store ptr %t45, ptr %t30 br label %ifend8 ifend8: %t46 = load ptr, ptr @__stderrp %t47 = load ptr, ptr %t30 %t48 = load ptr, ptr %t30 %t49 = call i64 @strlen(ptr %t48) %t50 = trunc i64 %t49 to i32 %t51 = zext i32 %t50 to i64 %t52 = call i64 @fwrite(ptr %t47, i64 1, i64 %t51, ptr %t46) %t53 = trunc i64 %t52 to i32 %t54 = load i32, ptr @g_ck_errors %t55 = add i32 %t54, 1 store i32 %t55, ptr @g_ck_errors br label %ret ret: ret void } define void @fn_ck_give(ptr %arg_to, ptr %arg_from, ptr %arg_e, ptr %arg_what) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 %t6 = alloca i32 %t32 = alloca i32 %t33 = alloca i32 %t70 = alloca ptr store ptr %arg_to, ptr %t0 store ptr %arg_from, ptr %t1 store ptr %arg_e, ptr %t2 store ptr %arg_what, ptr %t3 %t7 = load ptr, ptr %t2 %t8 = icmp ne ptr %t7, null %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t6 br i1 %t10, label %sc0, label %scend1 sc0: %t12 = load ptr, ptr %t2 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 0 %t14 = load i32, ptr %t13 %t15 = icmp eq i32 %t14, 30 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t6 br label %scend1 scend1: %t19 = load i32, ptr %t6 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t5 br i1 %t20, label %sc2, label %scend3 sc2: %t22 = load ptr, ptr %t2 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 %t25 = icmp ne ptr %t24, null %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t5 br label %scend3 scend3: %t29 = load i32, ptr %t5 %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t4 br i1 %t30, label %sc4, label %scend5 sc4: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str9945) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t33 br i1 %t36, label %scend7, label %sc6 sc6: %t38 = load ptr, ptr %t0 %t39 = call i32 @lp_str_eq(ptr %t38, ptr @.str9946) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t33 br label %scend7 scend7: %t42 = load i32, ptr %t33 %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t32 br i1 %t43, label %scend9, label %sc8 sc8: %t45 = load ptr, ptr %t0 %t46 = call i32 @lp_str_eq(ptr %t45, ptr @.str9947) %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t32 br label %scend9 scend9: %t49 = load i32, ptr %t32 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t4 br label %scend5 scend5: %t52 = load i32, ptr %t4 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then10, label %ifend12 then10: %t54 = load ptr, ptr %t2 %t55 = load ptr, ptr %t3 %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str9949) %t57 = load ptr, ptr %t0 %t58 = call ptr @fn_ck_a(ptr %t57) %t59 = call ptr @lp_str_concat(ptr %t56, ptr %t58) %t60 = call ptr @lp_str_concat(ptr %t59, ptr @.str9950) %t61 = load ptr, ptr %t2 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 1 %t63 = load ptr, ptr %t62 %t64 = call ptr @lp_str_concat(ptr %t60, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str9951) call void @fn_ck_err(ptr @.str9948, ptr %t54, ptr %t65) br label %ret ifend12: %t66 = load ptr, ptr %t0 %t67 = load ptr, ptr %t1 %t68 = load ptr, ptr %t2 %t69 = call ptr @fn_ck_mismatch(ptr %t66, ptr %t67, ptr %t68) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t70 %t72 = icmp eq ptr %t71, null %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then13, label %ifend15 then13: br label %ret ifend15: %t75 = load ptr, ptr %t70 %t76 = call i32 @lp_str_eq(ptr %t75, ptr @.str9952) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then16, label %ifend18 then16: %t78 = load ptr, ptr %t70 %t79 = load ptr, ptr %t2 %t80 = load ptr, ptr %t3 %t81 = call ptr @lp_str_concat(ptr %t80, ptr @.str9953) %t82 = load ptr, ptr %t1 %t83 = call ptr @fn_ck_a(ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t81, ptr %t83) %t85 = call ptr @lp_str_concat(ptr %t84, ptr @.str9954) call void @fn_ck_err(ptr %t78, ptr %t79, ptr %t85) br label %ret ifend18: %t86 = load ptr, ptr %t70 %t87 = call i32 @lp_str_eq(ptr %t86, ptr @.str9955) %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then19, label %ifend21 then19: %t89 = load ptr, ptr %t70 %t90 = load ptr, ptr %t2 %t91 = load ptr, ptr %t3 %t92 = call ptr @lp_str_concat(ptr %t91, ptr @.str9956) %t93 = load ptr, ptr %t0 %t94 = call ptr @fn_ck_a(ptr %t93) %t95 = call ptr @lp_str_concat(ptr %t92, ptr %t94) %t96 = call ptr @lp_str_concat(ptr %t95, ptr @.str9957) call void @fn_ck_err(ptr %t89, ptr %t90, ptr %t96) br label %ret ifend21: %t97 = load ptr, ptr %t70 %t98 = load ptr, ptr %t2 %t99 = load ptr, ptr %t3 %t100 = call ptr @lp_str_concat(ptr %t99, ptr @.str9958) %t101 = load ptr, ptr %t0 %t102 = call ptr @fn_ck_a(ptr %t101) %t103 = call ptr @lp_str_concat(ptr %t100, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str9959) %t105 = load ptr, ptr %t1 %t106 = call ptr @fn_ck_a(ptr %t105) %t107 = call ptr @lp_str_concat(ptr %t104, ptr %t106) call void @fn_ck_err(ptr %t97, ptr %t98, ptr %t107) br label %ret ret: ret void } define ptr @fn_ck_field(ptr %arg_r, ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_r, ptr %t0 store ptr %arg_name, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str9960, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = load ptr, ptr %t1 %t27 = call i32 @lp_str_eq(ptr %t25, ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7 %t31 = load ptr, ptr %t30 %t32 = load i32, ptr %t2 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ult i32 %t32, %t36 br i1 %t37, label %ixok8, label %ixbad9 ixbad9: %t38 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t38, ptr @.fmt_bounds, ptr @.str9961, i32 %t32, i32 %t36) call void @exit(i32 1) unreachable ixok8: %t39 = getelementptr inbounds ptr, ptr %t34, i32 %t32 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 3 %t42 = load ptr, ptr %t41 store ptr %t42, ptr %retval br label %ret ifend7: %t43 = load i32, ptr %t2 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t2 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } define void @fn_ck_walk(ptr %arg_e) { entry: %t0 = alloca ptr %t14 = alloca i32 store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 4 %t7 = load ptr, ptr %t6 call void @fn_ck_any(ptr %t7) %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 5 %t10 = load ptr, ptr %t9 call void @fn_ck_any(ptr %t10) %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 6 %t13 = load ptr, ptr %t12 call void @fn_ck_any(ptr %t13) store i32 0, ptr %t14 br label %wcond3 wcond3: %t15 = load i32, ptr %t14 %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp slt i32 %t15, %t20 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %wbody4, label %wend5 wbody4: %t24 = load ptr, ptr %t0 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7 %t26 = load ptr, ptr %t25 %t27 = load i32, ptr %t14 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok6, label %ixbad7 ixbad7: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str9962, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok6: %t34 = getelementptr inbounds ptr, ptr %t29, i32 %t27 %t35 = load ptr, ptr %t34 call void @fn_ck_any(ptr %t35) %t36 = load i32, ptr %t14 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t14 br label %wcond3 wend5: br label %ret ret: ret void } define void @fn_ck_any(ptr %arg_n) { entry: %t0 = alloca ptr %t22 = alloca i32 %t23 = alloca i32 %t24 = alloca i32 store ptr %arg_n, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 0 %t7 = load i32, ptr %t6 %t8 = icmp eq i32 %t7, 7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: %t11 = load ptr, ptr %t0 call void @fn_ck_block(ptr %t11) br label %ret ifend5: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 0 %t14 = load i32, ptr %t13 %t15 = icmp eq i32 %t14, 42 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_ck_expr(ptr %t20) br label %ret ifend8: %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 0 %t27 = load i32, ptr %t26 %t28 = icmp sge i32 %t27, 10 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t24 br i1 %t30, label %sc9, label %scend10 sc9: %t32 = load ptr, ptr %t0 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 0 %t34 = load i32, ptr %t33 %t35 = icmp sle i32 %t34, 26 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t24 br label %scend10 scend10: %t39 = load i32, ptr %t24 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t23 br i1 %t40, label %scend12, label %sc11 sc11: %t42 = load ptr, ptr %t0 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 0 %t44 = load i32, ptr %t43 %t45 = icmp eq i32 %t44, 49 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t23 br label %scend12 scend12: %t49 = load i32, ptr %t23 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t22 br i1 %t50, label %scend14, label %sc13 sc13: %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 0 %t54 = load i32, ptr %t53 %t55 = icmp eq i32 %t54, 56 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t22 br label %scend14 scend14: %t59 = load i32, ptr %t22 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then15, label %ifend17 then15: %t61 = load ptr, ptr %t0 call void @fn_ck_stmt(ptr %t61) br label %ret ifend17: %t62 = load ptr, ptr %t0 %t63 = call ptr @fn_ck_expr(ptr %t62) br label %ret ret: ret void } define ptr @fn_ck_expr(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t6 = alloca ptr %t10 = alloca i32 %t61 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store ptr @.str9963, ptr %retval br label %ret ifend2: %t5 = load ptr, ptr @g_ck_expect store ptr %t5, ptr %t6 store ptr null, ptr @g_ck_expect %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 store i32 %t9, ptr %t10 %t11 = load i32, ptr %t10 %t12 = icmp eq i32 %t11, 30 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then3, label %ifend5 then3: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = icmp ne ptr %t17, null %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then6, label %ifend8 then6: store ptr @.str9964, ptr %retval br label %ret ifend8: store ptr @.str9965, ptr %retval br label %ret ifend5: %t21 = load i32, ptr %t10 %t22 = icmp eq i32 %t21, 40 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then9, label %ifend11 then9: %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 9 %t27 = load ptr, ptr %t26 %t28 = call i32 @fn_is_float_file(ptr %t27) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then12, label %ifend14 then12: store ptr @.str9966, ptr %retval br label %ret ifend14: store ptr @.str9967, ptr %retval br label %ret ifend11: %t30 = load i32, ptr %t10 %t31 = icmp eq i32 %t30, 31 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then15, label %ifend17 then15: store ptr @.str9968, ptr %retval br label %ret ifend17: %t34 = load i32, ptr %t10 %t35 = icmp eq i32 %t34, 44 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then18, label %ifend20 then18: %t38 = load ptr, ptr %t0 call void @fn_ck_walk(ptr %t38) store ptr @.str9969, ptr %retval br label %ret ifend20: %t39 = load i32, ptr %t10 %t40 = icmp eq i32 %t39, 32 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then21, label %ifend23 then21: store ptr @.str9970, ptr %retval br label %ret ifend23: %t43 = load i32, ptr %t10 %t44 = icmp eq i32 %t43, 43 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then24, label %ifend26 then24: store ptr @.str9971, ptr %retval br label %ret ifend26: %t47 = load i32, ptr %t10 %t48 = icmp eq i32 %t47, 33 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then27, label %ifend29 then27: %t51 = load ptr, ptr %t0 %t52 = call ptr @fn_ck_id(ptr %t51) store ptr %t52, ptr %retval br label %ret ifend29: %t53 = load i32, ptr %t10 %t54 = icmp eq i32 %t53, 55 %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then30, label %ifend32 then30: %t57 = load ptr, ptr %t0 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 1 %t59 = load ptr, ptr %t58 %t60 = call ptr @fn_ck_fn(ptr %t59) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t61 %t63 = icmp ne ptr %t62, null %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then33, label %ifend35 then33: %t66 = load ptr, ptr %t61 %t67 = call ptr @fn_fn_sig_of(ptr %t66) store ptr %t67, ptr %retval br label %ret ifend35: store ptr @.str9972, ptr %retval br label %ret ifend32: %t68 = load i32, ptr %t10 %t69 = icmp eq i32 %t68, 39 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then36, label %ifend38 then36: %t72 = load ptr, ptr %t0 %t73 = call ptr @fn_ck_new(ptr %t72) store ptr %t73, ptr %retval br label %ret ifend38: %t74 = load i32, ptr %t10 %t75 = icmp eq i32 %t74, 54 %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then39, label %ifend41 then39: %t78 = load ptr, ptr %t0 %t79 = call ptr @fn_ck_list(ptr %t78) store ptr %t79, ptr %retval br label %ret ifend41: %t80 = load i32, ptr %t10 %t81 = icmp eq i32 %t80, 37 %t82 = zext i1 %t81 to i32 %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then42, label %ifend44 then42: %t84 = load ptr, ptr %t0 %t85 = call ptr @fn_ck_bin(ptr %t84) store ptr %t85, ptr %retval br label %ret ifend44: %t86 = load i32, ptr %t10 %t87 = icmp eq i32 %t86, 38 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then45, label %ifend47 then45: %t90 = load ptr, ptr %t0 %t91 = call ptr @fn_ck_un(ptr %t90) store ptr %t91, ptr %retval br label %ret ifend47: %t92 = load i32, ptr %t10 %t93 = icmp eq i32 %t92, 35 %t94 = zext i1 %t93 to i32 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then48, label %ifend50 then48: %t96 = load ptr, ptr %t0 %t97 = call ptr @fn_ck_member(ptr %t96) store ptr %t97, ptr %retval br label %ret ifend50: %t98 = load i32, ptr %t10 %t99 = icmp eq i32 %t98, 36 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then51, label %ifend53 then51: %t102 = load ptr, ptr %t0 %t103 = call ptr @fn_ck_index_of(ptr %t102) store ptr %t103, ptr %retval br label %ret ifend53: %t104 = load i32, ptr %t10 %t105 = icmp eq i32 %t104, 34 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then54, label %ifend56 then54: %t108 = load ptr, ptr %t6 store ptr %t108, ptr @g_ck_call_expect %t109 = load ptr, ptr %t0 %t110 = call ptr @fn_ck_call(ptr %t109) store ptr %t110, ptr %retval br label %ret ifend56: %t111 = load i32, ptr %t10 %t112 = icmp eq i32 %t111, 49 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then57, label %ifend59 then57: %t115 = load ptr, ptr %t0 call void @fn_ck_emit(ptr %t115) store ptr @.str9973, ptr %retval br label %ret ifend59: %t116 = load ptr, ptr %t0 call void @fn_ck_walk(ptr %t116) store ptr @.str9974, ptr %retval br label %ret ret: %t117 = load ptr, ptr %retval ret ptr %t117 } define ptr @fn_ck_id(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca i32 %t24 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call i32 @fn_ck_local(ptr %t3) store i32 %t4, ptr %t5 %t6 = load i32, ptr %t5 %t7 = icmp sge i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr @g_ck_tys %t11 = load i32, ptr %t5 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str9975, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 store ptr %t19, ptr %retval br label %ret ifend2: %t20 = load ptr, ptr %t0 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 %t23 = call ptr @fn_ck_global(ptr %t22) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = icmp ne ptr %t25, null %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: %t29 = load ptr, ptr %t24 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 3 %t31 = load ptr, ptr %t30 store ptr %t31, ptr %retval br label %ret ifend7: store ptr @.str9976, ptr %retval br label %ret ret: %t32 = load ptr, ptr %retval ret ptr %t32 } define ptr @fn_ck_new(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t12 = alloca i32 %t38 = alloca ptr %t43 = alloca ptr %t44 = alloca i32 %t64 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_ck_record(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 4 %t8 = load ptr, ptr %t7 %t9 = icmp ne ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: store i32 0, ptr %t12 br label %wcond3 wcond3: %t13 = load i32, ptr %t12 %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 4 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp slt i32 %t13, %t20 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %wbody4, label %wend5 wbody4: %t24 = load ptr, ptr %t0 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 4 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7 %t28 = load ptr, ptr %t27 %t29 = load i32, ptr %t12 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok6, label %ixbad7 ixbad7: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str9977, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok6: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 4 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_ck_expr(ptr %t41) store ptr %t42, ptr %t43 %t45 = load ptr, ptr %t5 %t46 = icmp ne ptr %t45, null %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t44 br i1 %t48, label %sc8, label %scend9 sc8: %t50 = load ptr, ptr %t38 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 0 %t52 = load i32, ptr %t51 %t53 = icmp eq i32 %t52, 42 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t44 br label %scend9 scend9: %t57 = load i32, ptr %t44 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then10, label %ifend12 then10: %t59 = load ptr, ptr %t5 %t60 = load ptr, ptr %t38 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 1 %t62 = load ptr, ptr %t61 %t63 = call ptr @fn_ck_field(ptr %t59, ptr %t62) store ptr %t63, ptr %t64 %t65 = load ptr, ptr %t64 %t66 = icmp ne ptr %t65, null %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then13, label %ifend15 then13: %t69 = load ptr, ptr %t64 %t70 = load ptr, ptr %t43 %t71 = load ptr, ptr %t38 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4 %t73 = load ptr, ptr %t72 %t74 = load ptr, ptr %t38 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 1 %t76 = load ptr, ptr %t75 %t77 = call ptr @lp_str_concat(ptr @.str9978, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str9979) %t79 = load ptr, ptr %t0 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 1 %t81 = load ptr, ptr %t80 %t82 = call ptr @lp_str_concat(ptr %t78, ptr %t81) call void @fn_ck_give(ptr %t69, ptr %t70, ptr %t73, ptr %t82) br label %ifend15 ifend15: %t83 = load ptr, ptr %t64 %t84 = icmp eq ptr %t83, null %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then16, label %ifend18 then16: %t87 = load ptr, ptr %t38 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 4 %t89 = load ptr, ptr %t88 %t90 = load ptr, ptr %t0 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 1 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_gen_show(ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str9981) %t95 = load ptr, ptr %t38 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 %t98 = call ptr @lp_str_concat(ptr %t94, ptr %t97) call void @fn_ck_err(ptr @.str9980, ptr %t89, ptr %t98) br label %ifend18 ifend18: br label %ifend12 ifend12: %t99 = load i32, ptr %t12 %t100 = add i32 %t99, 1 store i32 %t100, ptr %t12 br label %wcond3 wend5: br label %ifend2 ifend2: %t101 = load ptr, ptr %t0 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1 %t103 = load ptr, ptr %t102 store ptr %t103, ptr %retval br label %ret ret: %t104 = load ptr, ptr %retval ret ptr %t104 } define ptr @fn_ck_list(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t25 = alloca ptr %t48 = alloca i32 store ptr %arg_e, ptr %t0 store ptr @.str9982, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str9983, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_ck_expr(ptr %t23) store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t1 %t27 = call i32 @fn_ck_unknown(ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %else6 then5: %t29 = load ptr, ptr %t25 store ptr %t29, ptr %t1 br label %ifend7 else6: %t30 = load ptr, ptr %t1 %t31 = load ptr, ptr %t25 %t32 = load ptr, ptr %t0 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 7 %t34 = load ptr, ptr %t33 %t35 = load i32, ptr %t2 %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ult i32 %t35, %t39 br i1 %t40, label %ixok8, label %ixbad9 ixbad9: %t41 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t41, ptr @.fmt_bounds, ptr @.str9984, i32 %t35, i32 %t39) call void @exit(i32 1) unreachable ixok8: %t42 = getelementptr inbounds ptr, ptr %t37, i32 %t35 %t43 = load ptr, ptr %t42 %t44 = load ptr, ptr %t1 %t45 = call ptr @lp_str_concat(ptr @.str9985, ptr %t44) call void @fn_ck_give(ptr %t30, ptr %t31, ptr %t43, ptr %t45) br label %ifend7 ifend7: %t46 = load i32, ptr %t2 %t47 = add i32 %t46, 1 store i32 %t47, ptr %t2 br label %wcond0 wend2: %t49 = load ptr, ptr %t1 %t50 = call i32 @fn_ck_unknown(ptr %t49) %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t48 br i1 %t51, label %scend11, label %sc10 sc10: %t53 = load ptr, ptr %t1 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str9986) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t48 br label %scend11 scend11: %t57 = load i32, ptr %t48 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then12, label %ifend14 then12: store ptr @.str9987, ptr %retval br label %ret ifend14: %t59 = load ptr, ptr %t1 %t60 = call ptr @lp_str_concat(ptr @.str9988, ptr %t59) store ptr %t60, ptr %retval br label %ret ret: %t61 = load ptr, ptr %retval ret ptr %t61 } define ptr @fn_ck_un(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t6 = alloca i32 %t25 = alloca i32 store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_ck_expr(ptr %t3) store ptr %t4, ptr %t5 %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str9989) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t6 br i1 %t11, label %scend1, label %sc0 sc0: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 1 %t15 = load ptr, ptr %t14 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str9990) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t6 br label %scend1 scend1: %t19 = load i32, ptr %t6 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then2, label %ifend4 then2: %t21 = load ptr, ptr %t0 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 4 %t23 = load ptr, ptr %t22 %t24 = load ptr, ptr %t5 call void @fn_ck_cond(ptr %t23, ptr %t24) store ptr @.str9991, ptr %retval br label %ret ifend4: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str9992) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t25 br i1 %t30, label %sc5, label %scend6 sc5: %t32 = load ptr, ptr %t5 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str9993) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t25 br label %scend6 scend6: %t36 = load i32, ptr %t25 %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then7, label %ifend9 then7: %t38 = load ptr, ptr %t0 call void @fn_ck_err(ptr @.str9994, ptr %t38, ptr @.str9995) br label %ifend9 ifend9: %t39 = load ptr, ptr %t5 store ptr %t39, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_ck_member(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr %t5 = alloca i32 %t6 = alloca i32 %t39 = alloca ptr %t40 = alloca i32 %t59 = alloca ptr %t65 = alloca ptr %t75 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 %t7 = load ptr, ptr %t4 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 %t10 = icmp eq i32 %t9, 33 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t6 br i1 %t12, label %sc0, label %scend1 sc0: %t14 = load ptr, ptr %t4 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = call i32 @fn_ck_local(ptr %t16) %t18 = icmp slt i32 %t17, 0 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t6 br label %scend1 scend1: %t22 = load i32, ptr %t6 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t5 br i1 %t23, label %sc2, label %scend3 sc2: %t25 = load ptr, ptr %t4 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 %t28 = call ptr @fn_ck_global(ptr %t27) %t29 = icmp eq ptr %t28, null %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t5 br label %scend3 scend3: %t33 = load i32, ptr %t5 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then4, label %ifend6 then4: %t35 = load ptr, ptr %t4 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 %t38 = call ptr @fn_ck_enum(ptr %t37) store ptr %t38, ptr %t39 %t41 = load ptr, ptr %t39 %t42 = icmp ne ptr %t41, null %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t40 br i1 %t44, label %sc7, label %scend8 sc7: %t46 = load ptr, ptr %t39 %t47 = call i32 @fn_enum_is_tagged(ptr %t46) %t48 = icmp eq i32 %t47, 0 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t40 br label %scend8 scend8: %t52 = load i32, ptr %t40 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then9, label %ifend11 then9: %t54 = load ptr, ptr %t4 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t55 store ptr %t56, ptr %retval br label %ret ifend11: store ptr @.str9996, ptr %retval br label %ret ifend6: %t57 = load ptr, ptr %t4 %t58 = call ptr @fn_ck_expr(ptr %t57) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t59 %t61 = call i32 @fn_ck_unknown(ptr %t60) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then12, label %ifend14 then12: store ptr @.str9997, ptr %retval br label %ret ifend14: %t63 = load ptr, ptr %t59 %t64 = call ptr @fn_ck_record(ptr %t63) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t65 %t67 = icmp ne ptr %t66, null %t68 = zext i1 %t67 to i32 %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then15, label %ifend17 then15: %t70 = load ptr, ptr %t65 %t71 = load ptr, ptr %t0 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 1 %t73 = load ptr, ptr %t72 %t74 = call ptr @fn_ck_field(ptr %t70, ptr %t73) store ptr %t74, ptr %t75 %t76 = load ptr, ptr %t75 %t77 = icmp ne ptr %t76, null %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then18, label %ifend20 then18: %t80 = load ptr, ptr %t75 store ptr %t80, ptr %retval br label %ret ifend20: br label %ifend17 ifend17: store ptr @.str9998, ptr %retval br label %ret ret: %t81 = load ptr, ptr %retval ret ptr %t81 } define ptr @fn_ck_index_of(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t10 = alloca ptr %t18 = alloca i32 %t47 = alloca i32 store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_ck_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 5 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_ck_expr(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t5 %t12 = call i32 @fn_ck_is_raw(ptr %t11) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t0 %t15 = load ptr, ptr %t5 %t16 = call ptr @fn_ck_a(ptr %t15) %t17 = call ptr @lp_str_concat(ptr @.str9999, ptr %t16) call void @fn_ck_raw(ptr %t14, ptr %t17) br label %ifend2 ifend2: %t19 = load ptr, ptr %t10 %t20 = call i32 @fn_ck_unknown(ptr %t19) %t21 = icmp eq i32 %t20, 0 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t18 br i1 %t23, label %sc3, label %scend4 sc3: %t25 = load ptr, ptr %t10 %t26 = call i32 @fn_ck_is_int(ptr %t25) %t27 = icmp eq i32 %t26, 0 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t18 br label %scend4 scend4: %t31 = load i32, ptr %t18 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 5 %t35 = load ptr, ptr %t34 %t36 = load ptr, ptr %t10 %t37 = call ptr @fn_ck_a(ptr %t36) %t38 = call ptr @lp_str_concat(ptr @.str10001, ptr %t37) call void @fn_ck_err(ptr @.str10000, ptr %t35, ptr %t38) br label %ifend7 ifend7: %t39 = load ptr, ptr %t5 %t40 = call i32 @fn_ck_unknown(ptr %t39) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then8, label %ifend10 then8: store ptr @.str10002, ptr %retval br label %ret ifend10: %t42 = load ptr, ptr %t5 %t43 = call i32 @fn_is_slice_ty(ptr %t42) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then11, label %ifend13 then11: %t45 = load ptr, ptr %t5 %t46 = call ptr @fn_slice_elem(ptr %t45) store ptr %t46, ptr %retval br label %ret ifend13: %t48 = load ptr, ptr %t5 %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str10003) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t47 br i1 %t50, label %scend15, label %sc14 sc14: %t52 = load ptr, ptr %t5 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str10004) %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t47 br label %scend15 scend15: %t56 = load i32, ptr %t47 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then16, label %ifend18 then16: store ptr @.str10005, ptr %retval br label %ret ifend18: %t58 = load ptr, ptr %t5 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str10006) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then19, label %ifend21 then19: store ptr @.str10007, ptr %retval br label %ret ifend21: %t61 = load ptr, ptr %t5 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str10008) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then22, label %ifend24 then22: store ptr @.str10009, ptr %retval br label %ret ifend24: %t64 = load ptr, ptr %t5 %t65 = call i32 @lp_str_eq(ptr %t64, ptr @.str10010) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then25, label %ifend27 then25: store ptr @.str10011, ptr %retval br label %ret ifend27: %t67 = load ptr, ptr %t5 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str10012) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then28, label %ifend30 then28: store ptr @.str10013, ptr %retval br label %ret ifend30: store ptr @.str10014, ptr %retval br label %ret ret: %t70 = load ptr, ptr %retval ret ptr %t70 } define void @fn_ck_cond(ptr %arg_e, ptr %arg_t) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_t, ptr %t1 %t3 = load ptr, ptr %t1 %t4 = call i32 @fn_ck_unknown(ptr %t3) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t1 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str10015) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 br label %scend1 scend1: %t11 = load i32, ptr %t2 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then2, label %ifend4 then2: br label %ret ifend4: %t13 = load ptr, ptr %t0 %t14 = load ptr, ptr %t1 %t15 = call ptr @fn_ck_a(ptr %t14) %t16 = call ptr @lp_str_concat(ptr @.str10017, ptr %t15) call void @fn_ck_err(ptr @.str10016, ptr %t13, ptr %t16) br label %ret ret: ret void } define ptr @fn_ck_bin(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr %t9 = alloca ptr %t14 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 4 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_ck_expr(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 5 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_ck_expr(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t0 %t16 = load ptr, ptr %t4 %t17 = load ptr, ptr %t9 %t18 = load ptr, ptr %t14 %t19 = load ptr, ptr %t0 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 4 %t21 = load ptr, ptr %t20 %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 5 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_ck_binop(ptr %t15, ptr %t16, ptr %t17, ptr %t18, ptr %t21, ptr %t24) store ptr %t25, ptr %retval br label %ret ret: %t26 = load ptr, ptr %retval ret ptr %t26 } define ptr @fn_ck_binop(ptr %arg_e, ptr %arg_op, ptr %arg_l, ptr %arg_r, ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 %t8 = alloca i32 %t37 = alloca i32 %t38 = alloca i32 %t39 = alloca i32 %t40 = alloca i32 %t41 = alloca i32 %t86 = alloca i32 %t87 = alloca i32 %t88 = alloca i32 %t89 = alloca i32 %t128 = alloca i32 %t129 = alloca i32 %t130 = alloca i32 %t131 = alloca i32 %t163 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_op, ptr %t1 store ptr %arg_l, ptr %t2 store ptr %arg_r, ptr %t3 store ptr %arg_a, ptr %t4 store ptr %arg_b, ptr %t5 %t9 = load ptr, ptr %t1 %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str10018) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t8 br i1 %t11, label %scend1, label %sc0 sc0: %t13 = load ptr, ptr %t1 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str10019) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t8 br label %scend1 scend1: %t17 = load i32, ptr %t8 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t7 br i1 %t18, label %scend3, label %sc2 sc2: %t20 = load ptr, ptr %t1 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str10020) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t7 br label %scend3 scend3: %t24 = load i32, ptr %t7 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t6 br i1 %t25, label %scend5, label %sc4 sc4: %t27 = load ptr, ptr %t1 %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str10021) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t6 br label %scend5 scend5: %t31 = load i32, ptr %t6 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then6, label %ifend8 then6: %t33 = load ptr, ptr %t4 %t34 = load ptr, ptr %t2 call void @fn_ck_cond(ptr %t33, ptr %t34) %t35 = load ptr, ptr %t5 %t36 = load ptr, ptr %t3 call void @fn_ck_cond(ptr %t35, ptr %t36) store ptr @.str10022, ptr %retval br label %ret ifend8: %t42 = load ptr, ptr %t1 %t43 = call i32 @lp_str_eq(ptr %t42, ptr @.str10023) %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t41 br i1 %t44, label %scend10, label %sc9 sc9: %t46 = load ptr, ptr %t1 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str10024) %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t41 br label %scend10 scend10: %t50 = load i32, ptr %t41 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t40 br i1 %t51, label %scend12, label %sc11 sc11: %t53 = load ptr, ptr %t1 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str10025) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t40 br label %scend12 scend12: %t57 = load i32, ptr %t40 %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t39 br i1 %t58, label %scend14, label %sc13 sc13: %t60 = load ptr, ptr %t1 %t61 = call i32 @lp_str_eq(ptr %t60, ptr @.str10026) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t39 br label %scend14 scend14: %t64 = load i32, ptr %t39 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t38 br i1 %t65, label %scend16, label %sc15 sc15: %t67 = load ptr, ptr %t1 %t68 = call i32 @lp_str_eq(ptr %t67, ptr @.str10027) %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t38 br label %scend16 scend16: %t71 = load i32, ptr %t38 %t72 = icmp ne i32 %t71, 0 %t73 = zext i1 %t72 to i32 store i32 %t73, ptr %t37 br i1 %t72, label %scend18, label %sc17 sc17: %t74 = load ptr, ptr %t1 %t75 = call i32 @lp_str_eq(ptr %t74, ptr @.str10028) %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t37 br label %scend18 scend18: %t78 = load i32, ptr %t37 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then19, label %ifend21 then19: %t80 = load ptr, ptr %t0 %t81 = load ptr, ptr %t1 %t82 = load ptr, ptr %t2 %t83 = load ptr, ptr %t3 %t84 = load ptr, ptr %t4 %t85 = load ptr, ptr %t5 call void @fn_ck_compare(ptr %t80, ptr %t81, ptr %t82, ptr %t83, ptr %t84, ptr %t85) store ptr @.str10029, ptr %retval br label %ret ifend21: %t90 = load ptr, ptr %t1 %t91 = call i32 @lp_str_eq(ptr %t90, ptr @.str10030) %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t89 br i1 %t92, label %scend23, label %sc22 sc22: %t94 = load ptr, ptr %t1 %t95 = call i32 @lp_str_eq(ptr %t94, ptr @.str10031) %t96 = icmp ne i32 %t95, 0 %t97 = zext i1 %t96 to i32 store i32 %t97, ptr %t89 br label %scend23 scend23: %t98 = load i32, ptr %t89 %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t88 br i1 %t99, label %scend25, label %sc24 sc24: %t101 = load ptr, ptr %t1 %t102 = call i32 @lp_str_eq(ptr %t101, ptr @.str10032) %t103 = icmp ne i32 %t102, 0 %t104 = zext i1 %t103 to i32 store i32 %t104, ptr %t88 br label %scend25 scend25: %t105 = load i32, ptr %t88 %t106 = icmp ne i32 %t105, 0 %t107 = zext i1 %t106 to i32 store i32 %t107, ptr %t87 br i1 %t106, label %scend27, label %sc26 sc26: %t108 = load ptr, ptr %t1 %t109 = call i32 @lp_str_eq(ptr %t108, ptr @.str10033) %t110 = icmp ne i32 %t109, 0 %t111 = zext i1 %t110 to i32 store i32 %t111, ptr %t87 br label %scend27 scend27: %t112 = load i32, ptr %t87 %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t86 br i1 %t113, label %scend29, label %sc28 sc28: %t115 = load ptr, ptr %t1 %t116 = call i32 @lp_str_eq(ptr %t115, ptr @.str10034) %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t86 br label %scend29 scend29: %t119 = load i32, ptr %t86 %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then30, label %ifend32 then30: %t121 = load ptr, ptr %t0 %t122 = load ptr, ptr %t1 %t123 = load ptr, ptr %t2 %t124 = load ptr, ptr %t3 %t125 = load ptr, ptr %t4 %t126 = load ptr, ptr %t5 %t127 = call ptr @fn_ck_arith(ptr %t121, ptr %t122, ptr %t123, ptr %t124, ptr %t125, ptr %t126) store ptr %t127, ptr %retval br label %ret ifend32: %t132 = load ptr, ptr %t1 %t133 = call i32 @lp_str_eq(ptr %t132, ptr @.str10035) %t134 = icmp ne i32 %t133, 0 %t135 = zext i1 %t134 to i32 store i32 %t135, ptr %t131 br i1 %t134, label %scend34, label %sc33 sc33: %t136 = load ptr, ptr %t1 %t137 = call i32 @lp_str_eq(ptr %t136, ptr @.str10036) %t138 = icmp ne i32 %t137, 0 %t139 = zext i1 %t138 to i32 store i32 %t139, ptr %t131 br label %scend34 scend34: %t140 = load i32, ptr %t131 %t141 = icmp ne i32 %t140, 0 %t142 = zext i1 %t141 to i32 store i32 %t142, ptr %t130 br i1 %t141, label %scend36, label %sc35 sc35: %t143 = load ptr, ptr %t1 %t144 = call i32 @lp_str_eq(ptr %t143, ptr @.str10037) %t145 = icmp ne i32 %t144, 0 %t146 = zext i1 %t145 to i32 store i32 %t146, ptr %t130 br label %scend36 scend36: %t147 = load i32, ptr %t130 %t148 = icmp ne i32 %t147, 0 %t149 = zext i1 %t148 to i32 store i32 %t149, ptr %t129 br i1 %t148, label %scend38, label %sc37 sc37: %t150 = load ptr, ptr %t1 %t151 = call i32 @lp_str_eq(ptr %t150, ptr @.str10038) %t152 = icmp ne i32 %t151, 0 %t153 = zext i1 %t152 to i32 store i32 %t153, ptr %t129 br label %scend38 scend38: %t154 = load i32, ptr %t129 %t155 = icmp ne i32 %t154, 0 %t156 = zext i1 %t155 to i32 store i32 %t156, ptr %t128 br i1 %t155, label %scend40, label %sc39 sc39: %t157 = load ptr, ptr %t1 %t158 = call i32 @lp_str_eq(ptr %t157, ptr @.str10039) %t159 = icmp ne i32 %t158, 0 %t160 = zext i1 %t159 to i32 store i32 %t160, ptr %t128 br label %scend40 scend40: %t161 = load i32, ptr %t128 %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then41, label %ifend43 then41: %t164 = load ptr, ptr %t2 %t165 = call i32 @lp_str_eq(ptr %t164, ptr @.str10040) %t166 = icmp ne i32 %t165, 0 %t167 = zext i1 %t166 to i32 store i32 %t167, ptr %t163 br i1 %t166, label %scend45, label %sc44 sc44: %t168 = load ptr, ptr %t3 %t169 = call i32 @lp_str_eq(ptr %t168, ptr @.str10041) %t170 = icmp ne i32 %t169, 0 %t171 = zext i1 %t170 to i32 store i32 %t171, ptr %t163 br label %scend45 scend45: %t172 = load i32, ptr %t163 %t173 = icmp ne i32 %t172, 0 br i1 %t173, label %then46, label %ifend48 then46: store ptr @.str10042, ptr %retval br label %ret ifend48: store ptr @.str10043, ptr %retval br label %ret ifend43: store ptr @.str10044, ptr %retval br label %ret ret: %t174 = load ptr, ptr %retval ret ptr %t174 } define void @fn_ck_compare(ptr %arg_e, ptr %arg_op, ptr %arg_l, ptr %arg_r, ptr %arg_a, ptr %arg_b) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 %t8 = alloca i32 %t35 = alloca ptr %t38 = alloca ptr %t39 = alloca i32 %t40 = alloca i32 %t52 = alloca i32 %t82 = alloca i32 %t83 = alloca i32 %t115 = alloca i32 %t126 = alloca i32 %t143 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_op, ptr %t1 store ptr %arg_l, ptr %t2 store ptr %arg_r, ptr %t3 store ptr %arg_a, ptr %t4 store ptr %arg_b, ptr %t5 %t9 = load ptr, ptr %t2 %t10 = call i32 @fn_ck_unknown(ptr %t9) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t8 br i1 %t11, label %scend1, label %sc0 sc0: %t13 = load ptr, ptr %t3 %t14 = call i32 @fn_ck_unknown(ptr %t13) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t8 br label %scend1 scend1: %t17 = load i32, ptr %t8 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t7 br i1 %t18, label %scend3, label %sc2 sc2: %t20 = load ptr, ptr %t2 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str10045) %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t7 br label %scend3 scend3: %t24 = load i32, ptr %t7 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t6 br i1 %t25, label %scend5, label %sc4 sc4: %t27 = load ptr, ptr %t3 %t28 = call i32 @lp_str_eq(ptr %t27, ptr @.str10046) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t6 br label %scend5 scend5: %t31 = load i32, ptr %t6 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then6, label %ifend8 then6: br label %ret ifend8: %t33 = load ptr, ptr %t2 %t34 = call ptr @fn_ck_class(ptr %t33) store ptr %t34, ptr %t35 %t36 = load ptr, ptr %t3 %t37 = call ptr @fn_ck_class(ptr %t36) store ptr %t37, ptr %t38 %t41 = load ptr, ptr %t2 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str10047) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t40 br i1 %t43, label %sc9, label %scend10 sc9: %t45 = load ptr, ptr %t38 %t46 = call i32 @lp_str_eq(ptr %t45, ptr @.str10048) %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t40 br label %scend10 scend10: %t49 = load i32, ptr %t40 %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t39 br i1 %t50, label %scend12, label %sc11 sc11: %t53 = load ptr, ptr %t3 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str10049) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t52 br i1 %t55, label %sc13, label %scend14 sc13: %t57 = load ptr, ptr %t35 %t58 = call i32 @lp_str_eq(ptr %t57, ptr @.str10050) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t52 br label %scend14 scend14: %t61 = load i32, ptr %t52 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t39 br label %scend12 scend12: %t64 = load i32, ptr %t39 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then15, label %ifend17 then15: br label %ret ifend17: %t66 = load ptr, ptr %t35 %t67 = load ptr, ptr %t38 %t68 = call i32 @lp_str_eq(ptr %t66, ptr %t67) %t69 = icmp eq i32 %t68, 0 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then18, label %ifend20 then18: %t72 = load ptr, ptr %t0 %t73 = load ptr, ptr %t1 %t74 = call ptr @lp_str_concat(ptr %t73, ptr @.str10052) %t75 = load ptr, ptr %t2 %t76 = call ptr @fn_ck_a(ptr %t75) %t77 = call ptr @lp_str_concat(ptr %t74, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str10053) %t79 = load ptr, ptr %t3 %t80 = call ptr @fn_ck_a(ptr %t79) %t81 = call ptr @lp_str_concat(ptr %t78, ptr %t80) call void @fn_ck_err(ptr @.str10051, ptr %t72, ptr %t81) br label %ret ifend20: %t84 = load ptr, ptr %t2 %t85 = call i32 @fn_ck_is_rec(ptr %t84) %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t83 br i1 %t86, label %sc21, label %scend22 sc21: %t88 = load ptr, ptr %t3 %t89 = call i32 @fn_ck_is_rec(ptr %t88) %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 store i32 %t91, ptr %t83 br label %scend22 scend22: %t92 = load i32, ptr %t83 %t93 = icmp ne i32 %t92, 0 %t94 = zext i1 %t93 to i32 store i32 %t94, ptr %t82 br i1 %t93, label %sc23, label %scend24 sc23: %t95 = load ptr, ptr %t2 %t96 = load ptr, ptr %t3 %t97 = call i32 @lp_str_eq(ptr %t95, ptr %t96) %t98 = icmp eq i32 %t97, 0 %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 %t101 = zext i1 %t100 to i32 store i32 %t101, ptr %t82 br label %scend24 scend24: %t102 = load i32, ptr %t82 %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then25, label %ifend27 then25: %t104 = load ptr, ptr %t0 %t105 = load ptr, ptr %t1 %t106 = call ptr @lp_str_concat(ptr %t105, ptr @.str10055) %t107 = load ptr, ptr %t2 %t108 = call ptr @fn_ck_a(ptr %t107) %t109 = call ptr @lp_str_concat(ptr %t106, ptr %t108) %t110 = call ptr @lp_str_concat(ptr %t109, ptr @.str10056) %t111 = load ptr, ptr %t3 %t112 = call ptr @fn_ck_a(ptr %t111) %t113 = call ptr @lp_str_concat(ptr %t110, ptr %t112) %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str10057) call void @fn_ck_err(ptr @.str10054, ptr %t104, ptr %t114) br label %ifend27 ifend27: %t116 = load ptr, ptr %t4 %t117 = call i32 @fn_ck_is_lit(ptr %t116) %t118 = icmp ne i32 %t117, 0 %t119 = zext i1 %t118 to i32 store i32 %t119, ptr %t115 br i1 %t118, label %scend29, label %sc28 sc28: %t120 = load ptr, ptr %t5 %t121 = call i32 @fn_ck_is_lit(ptr %t120) %t122 = icmp ne i32 %t121, 0 %t123 = zext i1 %t122 to i32 store i32 %t123, ptr %t115 br label %scend29 scend29: %t124 = load i32, ptr %t115 %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then30, label %ifend32 then30: br label %ret ifend32: %t127 = load ptr, ptr %t2 %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str10058) %t129 = icmp ne i32 %t128, 0 %t130 = zext i1 %t129 to i32 store i32 %t130, ptr %t126 br i1 %t129, label %sc33, label %scend34 sc33: %t131 = load ptr, ptr %t3 %t132 = call i32 @fn_ck_is_float(ptr %t131) %t133 = icmp ne i32 %t132, 0 %t134 = zext i1 %t133 to i32 store i32 %t134, ptr %t126 br label %scend34 scend34: %t135 = load i32, ptr %t126 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then35, label %ifend37 then35: %t137 = load ptr, ptr %t0 %t138 = load ptr, ptr %t1 %t139 = call ptr @lp_str_concat(ptr %t138, ptr @.str10060) %t140 = load ptr, ptr %t3 %t141 = call ptr @fn_ck_a(ptr %t140) %t142 = call ptr @lp_str_concat(ptr %t139, ptr %t141) call void @fn_ck_err(ptr @.str10059, ptr %t137, ptr %t142) br label %ifend37 ifend37: %t144 = load ptr, ptr %t3 %t145 = call i32 @lp_str_eq(ptr %t144, ptr @.str10061) %t146 = icmp ne i32 %t145, 0 %t147 = zext i1 %t146 to i32 store i32 %t147, ptr %t143 br i1 %t146, label %sc38, label %scend39 sc38: %t148 = load ptr, ptr %t2 %t149 = call i32 @fn_ck_is_float(ptr %t148) %t150 = icmp ne i32 %t149, 0 %t151 = zext i1 %t150 to i32 store i32 %t151, ptr %t143 br label %scend39 scend39: %t152 = load i32, ptr %t143 %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then40, label %ifend42 then40: %t154 = load ptr, ptr %t0 %t155 = load ptr, ptr %t1 %t156 = call ptr @lp_str_concat(ptr %t155, ptr @.str10063) %t157 = load ptr, ptr %t2 %t158 = call ptr @fn_ck_a(ptr %t157) %t159 = call ptr @lp_str_concat(ptr %t156, ptr %t158) %t160 = call ptr @lp_str_concat(ptr %t159, ptr @.str10064) call void @fn_ck_err(ptr @.str10062, ptr %t154, ptr %t160) br label %ifend42 ifend42: br label %ret ret: ret void } define i32 @fn_ck_is_text(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_t, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str10065) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str10066) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define ptr @fn_ck_arith(ptr %arg_e, ptr %arg_op, ptr %arg_l, ptr %arg_r, ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t6 = alloca i32 %t17 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 %t58 = alloca i32 %t69 = alloca i32 %t83 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_op, ptr %t1 store ptr %arg_l, ptr %t2 store ptr %arg_r, ptr %t3 store ptr %arg_a, ptr %t4 store ptr %arg_b, ptr %t5 %t7 = load ptr, ptr %t2 %t8 = call i32 @fn_ck_is_text(ptr %t7) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t6 br i1 %t9, label %scend1, label %sc0 sc0: %t11 = load ptr, ptr %t3 %t12 = call i32 @fn_ck_is_text(ptr %t11) %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t6 br label %scend1 scend1: %t15 = load i32, ptr %t6 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: %t18 = load ptr, ptr %t2 %t19 = call i32 @fn_ck_unknown(ptr %t18) %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t17 br i1 %t20, label %scend6, label %sc5 sc5: %t22 = load ptr, ptr %t3 %t23 = call i32 @fn_ck_unknown(ptr %t22) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t17 br label %scend6 scend6: %t26 = load i32, ptr %t17 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then7, label %ifend9 then7: store ptr @.str10067, ptr %retval br label %ret ifend9: %t30 = load ptr, ptr %t2 %t31 = call i32 @fn_ck_is_text(ptr %t30) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t29 br i1 %t32, label %sc10, label %scend11 sc10: %t34 = load ptr, ptr %t3 %t35 = call i32 @fn_ck_is_text(ptr %t34) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t29 br label %scend11 scend11: %t38 = load i32, ptr %t29 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t28 br i1 %t39, label %sc12, label %scend13 sc12: %t41 = load ptr, ptr %t1 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str10068) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t28 br label %scend13 scend13: %t45 = load i32, ptr %t28 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then14, label %ifend16 then14: store ptr @.str10069, ptr %retval br label %ret ifend16: %t47 = load ptr, ptr %t0 %t48 = load ptr, ptr %t1 %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str10071) %t50 = load ptr, ptr %t2 %t51 = call ptr @fn_ck_a(ptr %t50) %t52 = call ptr @lp_str_concat(ptr %t49, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str10072) %t54 = load ptr, ptr %t3 %t55 = call ptr @fn_ck_a(ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t53, ptr %t55) %t57 = call ptr @lp_str_concat(ptr %t56, ptr @.str10073) call void @fn_ck_err(ptr @.str10070, ptr %t47, ptr %t57) store ptr @.str10074, ptr %retval br label %ret ifend4: %t59 = load ptr, ptr %t2 %t60 = call i32 @fn_ck_unknown(ptr %t59) %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t58 br i1 %t61, label %scend18, label %sc17 sc17: %t63 = load ptr, ptr %t3 %t64 = call i32 @fn_ck_unknown(ptr %t63) %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t58 br label %scend18 scend18: %t67 = load i32, ptr %t58 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then19, label %ifend21 then19: store ptr @.str10075, ptr %retval br label %ret ifend21: %t70 = load ptr, ptr %t2 %t71 = call i32 @lp_str_eq(ptr %t70, ptr @.str10076) %t72 = icmp ne i32 %t71, 0 %t73 = zext i1 %t72 to i32 store i32 %t73, ptr %t69 br i1 %t72, label %scend23, label %sc22 sc22: %t74 = load ptr, ptr %t3 %t75 = call i32 @lp_str_eq(ptr %t74, ptr @.str10077) %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t69 br label %scend23 scend23: %t78 = load i32, ptr %t69 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then24, label %ifend26 then24: %t80 = load ptr, ptr %t0 %t81 = load ptr, ptr %t1 %t82 = call ptr @lp_str_concat(ptr %t81, ptr @.str10079) call void @fn_ck_err(ptr @.str10078, ptr %t80, ptr %t82) store ptr @.str10080, ptr %retval br label %ret ifend26: %t84 = load ptr, ptr %t2 %t85 = call i32 @fn_ck_is_num(ptr %t84) %t86 = icmp ne i32 %t85, 0 %t87 = zext i1 %t86 to i32 store i32 %t87, ptr %t83 br i1 %t86, label %sc27, label %scend28 sc27: %t88 = load ptr, ptr %t3 %t89 = call i32 @fn_ck_is_num(ptr %t88) %t90 = icmp ne i32 %t89, 0 %t91 = zext i1 %t90 to i32 store i32 %t91, ptr %t83 br label %scend28 scend28: %t92 = load i32, ptr %t83 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then29, label %ifend31 then29: %t94 = load ptr, ptr %t0 %t95 = load ptr, ptr %t1 %t96 = load ptr, ptr %t2 %t97 = load ptr, ptr %t3 %t98 = load ptr, ptr %t4 %t99 = load ptr, ptr %t5 %t100 = call ptr @fn_ck_num_result(ptr %t94, ptr %t95, ptr %t96, ptr %t97, ptr %t98, ptr %t99) store ptr %t100, ptr %retval br label %ret ifend31: %t101 = load ptr, ptr %t0 %t102 = load ptr, ptr %t1 %t103 = call ptr @lp_str_concat(ptr %t102, ptr @.str10082) %t104 = load ptr, ptr %t2 %t105 = call ptr @fn_ck_a(ptr %t104) %t106 = call ptr @lp_str_concat(ptr %t103, ptr %t105) %t107 = call ptr @lp_str_concat(ptr %t106, ptr @.str10083) %t108 = load ptr, ptr %t3 %t109 = call ptr @fn_ck_a(ptr %t108) %t110 = call ptr @lp_str_concat(ptr %t107, ptr %t109) call void @fn_ck_err(ptr @.str10081, ptr %t101, ptr %t110) store ptr @.str10084, ptr %retval br label %ret ret: %t111 = load ptr, ptr %retval ret ptr %t111 } define ptr @fn_ck_num_result(ptr %arg_e, ptr %arg_op, ptr %arg_l, ptr %arg_r, ptr %arg_a, ptr %arg_b) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t6 = alloca i32 %t31 = alloca i32 %t56 = alloca i32 %t75 = alloca i32 %t86 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_op, ptr %t1 store ptr %arg_l, ptr %t2 store ptr %arg_r, ptr %t3 store ptr %arg_a, ptr %t4 store ptr %arg_b, ptr %t5 %t7 = load ptr, ptr %t2 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str10085) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t6 br i1 %t9, label %sc0, label %scend1 sc0: %t11 = load ptr, ptr %t3 %t12 = call i32 @fn_ck_is_float(ptr %t11) %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t6 br label %scend1 scend1: %t15 = load i32, ptr %t6 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: %t17 = load ptr, ptr %t5 %t18 = call i32 @fn_ck_is_lit(ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then5, label %ifend7 then5: store ptr @.str10086, ptr %retval br label %ret ifend7: %t20 = load ptr, ptr %t4 %t21 = call i32 @fn_ck_is_lit(ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then8, label %ifend10 then8: %t23 = load ptr, ptr %t3 store ptr %t23, ptr %retval br label %ret ifend10: %t24 = load ptr, ptr %t0 %t25 = load ptr, ptr %t1 %t26 = call ptr @lp_str_concat(ptr %t25, ptr @.str10088) %t27 = load ptr, ptr %t3 %t28 = call ptr @fn_ck_a(ptr %t27) %t29 = call ptr @lp_str_concat(ptr %t26, ptr %t28) %t30 = call ptr @lp_str_concat(ptr %t29, ptr @.str10089) call void @fn_ck_err(ptr @.str10087, ptr %t24, ptr %t30) store ptr @.str10090, ptr %retval br label %ret ifend4: %t32 = load ptr, ptr %t3 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str10091) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t31 br i1 %t34, label %sc11, label %scend12 sc11: %t36 = load ptr, ptr %t2 %t37 = call i32 @fn_ck_is_float(ptr %t36) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t31 br label %scend12 scend12: %t40 = load i32, ptr %t31 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then13, label %ifend15 then13: %t42 = load ptr, ptr %t4 %t43 = call i32 @fn_ck_is_lit(ptr %t42) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then16, label %ifend18 then16: store ptr @.str10092, ptr %retval br label %ret ifend18: %t45 = load ptr, ptr %t5 %t46 = call i32 @fn_ck_is_lit(ptr %t45) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then19, label %ifend21 then19: %t48 = load ptr, ptr %t2 store ptr %t48, ptr %retval br label %ret ifend21: %t49 = load ptr, ptr %t0 %t50 = load ptr, ptr %t1 %t51 = call ptr @lp_str_concat(ptr %t50, ptr @.str10094) %t52 = load ptr, ptr %t2 %t53 = call ptr @fn_ck_a(ptr %t52) %t54 = call ptr @lp_str_concat(ptr %t51, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str10095) call void @fn_ck_err(ptr @.str10093, ptr %t49, ptr %t55) store ptr @.str10096, ptr %retval br label %ret ifend15: %t57 = load ptr, ptr %t2 %t58 = call i32 @lp_str_eq(ptr %t57, ptr @.str10097) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t56 br i1 %t59, label %scend23, label %sc22 sc22: %t61 = load ptr, ptr %t3 %t62 = call i32 @lp_str_eq(ptr %t61, ptr @.str10098) %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t56 br label %scend23 scend23: %t65 = load i32, ptr %t56 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then24, label %ifend26 then24: store ptr @.str10099, ptr %retval br label %ret ifend26: %t67 = load ptr, ptr %t2 %t68 = call i32 @fn_ck_is_float(ptr %t67) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then27, label %ifend29 then27: %t70 = load ptr, ptr %t2 store ptr %t70, ptr %retval br label %ret ifend29: %t71 = load ptr, ptr %t3 %t72 = call i32 @fn_ck_is_float(ptr %t71) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then30, label %ifend32 then30: %t74 = load ptr, ptr %t3 store ptr %t74, ptr %retval br label %ret ifend32: %t76 = load ptr, ptr %t2 %t77 = call i32 @lp_str_eq(ptr %t76, ptr @.str10100) %t78 = icmp ne i32 %t77, 0 %t79 = zext i1 %t78 to i32 store i32 %t79, ptr %t75 br i1 %t78, label %scend34, label %sc33 sc33: %t80 = load ptr, ptr %t3 %t81 = call i32 @lp_str_eq(ptr %t80, ptr @.str10101) %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t75 br label %scend34 scend34: %t84 = load i32, ptr %t75 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then35, label %ifend37 then35: store ptr @.str10102, ptr %retval br label %ret ifend37: %t87 = load ptr, ptr %t2 %t88 = call i32 @lp_str_eq(ptr %t87, ptr @.str10103) %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t86 br i1 %t89, label %scend39, label %sc38 sc38: %t91 = load ptr, ptr %t3 %t92 = call i32 @lp_str_eq(ptr %t91, ptr @.str10104) %t93 = icmp ne i32 %t92, 0 %t94 = zext i1 %t93 to i32 store i32 %t94, ptr %t86 br label %scend39 scend39: %t95 = load i32, ptr %t86 %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %then40, label %ifend42 then40: store ptr @.str10105, ptr %retval br label %ret ifend42: store ptr @.str10106, ptr %retval br label %ret ret: %t97 = load ptr, ptr %retval ret ptr %t97 } define void @fn_ck_params(ptr %arg_f, ptr %arg_labels, ptr %arg_tys) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 store ptr %arg_f, ptr %t0 store ptr %arg_labels, ptr %t1 store ptr %arg_tys, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t4, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody1, label %wend2 wbody1: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = load i32, ptr %t3 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 %t16, %t20 br i1 %t21, label %ixok3, label %ixbad4 ixbad4: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str10107, i32 %t16, i32 %t20) call void @exit(i32 1) unreachable ixok3: %t23 = getelementptr inbounds ptr, ptr %t18, i32 %t16 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 0 %t26 = load i32, ptr %t25 %t27 = icmp eq i32 %t26, 5 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then5, label %ifend7 then5: %t30 = load ptr, ptr %t1 %t31 = load ptr, ptr %t0 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = load i32, ptr %t3 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 %t34, %t38 br i1 %t39, label %ixok8, label %ixbad9 ixbad9: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str10108, i32 %t34, i32 %t38) call void @exit(i32 1) unreachable ixok8: %t41 = getelementptr inbounds ptr, ptr %t36, i32 %t34 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 1 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t46 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 2 %t47 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t48 = load i32, ptr %t45 %t49 = load i32, ptr %t46 %t50 = icmp sge i32 %t48, %t49 br i1 %t50, label %grow10, label %put11 grow10: %t51 = mul i32 %t49, 2 %t52 = icmp eq i32 %t49, 0 %t53 = select i1 %t52, i32 8, i32 %t51 %t54 = getelementptr ptr, ptr null, i32 1 %t55 = ptrtoint ptr %t54 to i64 %t56 = zext i32 %t53 to i64 %t57 = mul i64 %t56, %t55 %t58 = load ptr, ptr %t47 %t59 = call ptr @realloc(ptr %t58, i64 %t57) store ptr %t59, ptr %t47 store i32 %t53, ptr %t46 br label %put11 put11: %t60 = load ptr, ptr %t47 %t61 = getelementptr inbounds ptr, ptr %t60, i32 %t48 store ptr %t44, ptr %t61 %t62 = add i32 %t48, 1 store i32 %t62, ptr %t45 %t63 = load ptr, ptr %t2 %t64 = load ptr, ptr %t0 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7 %t66 = load ptr, ptr %t65 %t67 = load i32, ptr %t3 %t68 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t71 = load i32, ptr %t70 %t72 = icmp ult i32 %t67, %t71 br i1 %t72, label %ixok12, label %ixbad13 ixbad13: %t73 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t73, ptr @.fmt_bounds, ptr @.str10109, i32 %t67, i32 %t71) call void @exit(i32 1) unreachable ixok12: %t74 = getelementptr inbounds ptr, ptr %t69, i32 %t67 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 3 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t79 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 2 %t80 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 0 %t81 = load i32, ptr %t78 %t82 = load i32, ptr %t79 %t83 = icmp sge i32 %t81, %t82 br i1 %t83, label %grow14, label %put15 grow14: %t84 = mul i32 %t82, 2 %t85 = icmp eq i32 %t82, 0 %t86 = select i1 %t85, i32 8, i32 %t84 %t87 = getelementptr ptr, ptr null, i32 1 %t88 = ptrtoint ptr %t87 to i64 %t89 = zext i32 %t86 to i64 %t90 = mul i64 %t89, %t88 %t91 = load ptr, ptr %t80 %t92 = call ptr @realloc(ptr %t91, i64 %t90) store ptr %t92, ptr %t80 store i32 %t86, ptr %t79 br label %put15 put15: %t93 = load ptr, ptr %t80 %t94 = getelementptr inbounds ptr, ptr %t93, i32 %t81 store ptr %t77, ptr %t94 %t95 = add i32 %t81, 1 store i32 %t95, ptr %t78 br label %ifend7 ifend7: %t96 = load i32, ptr %t3 %t97 = add i32 %t96, 1 store i32 %t97, ptr %t3 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_ck_call_fn(ptr %arg_e, ptr %arg_name, ptr %arg_f) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t11 = alloca ptr %t18 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_name, ptr %t1 store ptr %arg_f, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = load ptr, ptr %t2 call void @fn_call_fill_defaults(ptr %t3, ptr %t4) %t5 = getelementptr %LSlice, ptr null, i32 1 %t6 = ptrtoint ptr %t5 to i64 %t7 = call ptr @malloc(i64 %t6) %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 store ptr null, ptr %t8 %t9 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 store i32 0, ptr %t9 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 2 store i32 0, ptr %t10 store ptr %t7, ptr %t11 %t12 = getelementptr %LSlice, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = call ptr @malloc(i64 %t13) %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 store ptr null, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 store i32 0, ptr %t16 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 store i32 0, ptr %t17 store ptr %t14, ptr %t18 %t19 = load ptr, ptr %t2 %t20 = load ptr, ptr %t11 %t21 = load ptr, ptr %t18 call void @fn_ck_params(ptr %t19, ptr %t20, ptr %t21) %t22 = load ptr, ptr %t0 %t23 = load ptr, ptr %t1 %t24 = load ptr, ptr %t11 %t25 = load ptr, ptr %t18 call void @fn_ck_args(ptr %t22, ptr %t23, ptr %t24, ptr %t25) %t26 = load ptr, ptr %t2 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 3 %t28 = load ptr, ptr %t27 %t29 = icmp eq ptr %t28, null %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then0, label %ifend2 then0: store ptr @.str10110, ptr %retval br label %ret ifend2: %t32 = load ptr, ptr %t2 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 3 %t34 = load ptr, ptr %t33 store ptr %t34, ptr %retval br label %ret ret: %t35 = load ptr, ptr %retval ret ptr %t35 } define ptr @fn_ck_call_alias(ptr %arg_e, ptr %arg_name, i32 %arg_al, ptr %arg_f) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca ptr %t28 = alloca ptr %t35 = alloca ptr %t41 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_name, ptr %t1 store i32 %arg_al, ptr %t2 store ptr %arg_f, ptr %t3 %t4 = load ptr, ptr @g_g_al_labels %t5 = load i32, ptr %t2 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp ult i32 %t5, %t9 br i1 %t10, label %ixok0, label %ixbad1 ixbad1: %t11 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t11, ptr @.fmt_bounds, ptr @.str10111, i32 %t5, i32 %t9) call void @exit(i32 1) unreachable ixok0: %t12 = getelementptr inbounds ptr, ptr %t7, i32 %t5 %t13 = load ptr, ptr %t12 %t14 = icmp eq ptr %t13, null %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %else3 then2: %t17 = load ptr, ptr %t0 %t18 = load ptr, ptr %t3 call void @fn_call_fill_defaults(ptr %t17, ptr %t18) br label %ifend4 else3: %t19 = load ptr, ptr %t0 %t20 = load i32, ptr %t2 %t21 = call ptr @fn_ns_alias_labels(i32 %t20) call void @fn_call_mixed_to_named(ptr %t19, ptr %t21) br label %ifend4 ifend4: %t22 = getelementptr %LSlice, ptr null, i32 1 %t23 = ptrtoint ptr %t22 to i64 %t24 = call ptr @malloc(i64 %t23) %t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 store ptr null, ptr %t25 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 store i32 0, ptr %t26 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 store i32 0, ptr %t27 store ptr %t24, ptr %t28 %t29 = getelementptr %LSlice, ptr null, i32 1 %t30 = ptrtoint ptr %t29 to i64 %t31 = call ptr @malloc(i64 %t30) %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 store ptr null, ptr %t32 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 store i32 0, ptr %t33 %t34 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 2 store i32 0, ptr %t34 store ptr %t31, ptr %t35 %t36 = load ptr, ptr %t3 %t37 = load ptr, ptr %t28 %t38 = load ptr, ptr %t35 call void @fn_ck_params(ptr %t36, ptr %t37, ptr %t38) %t39 = load i32, ptr %t2 %t40 = call ptr @fn_ns_alias_labels(i32 %t39) store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = load ptr, ptr %t35 %t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp eq i32 %t44, %t47 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then5, label %else6 then5: %t51 = load ptr, ptr %t0 %t52 = load ptr, ptr %t1 %t53 = load ptr, ptr %t41 %t54 = load ptr, ptr %t35 call void @fn_ck_args(ptr %t51, ptr %t52, ptr %t53, ptr %t54) br label %ifend7 else6: %t55 = load ptr, ptr %t0 %t56 = load ptr, ptr %t1 %t57 = load ptr, ptr %t28 %t58 = load ptr, ptr %t35 call void @fn_ck_args(ptr %t55, ptr %t56, ptr %t57, ptr %t58) br label %ifend7 ifend7: %t59 = load ptr, ptr %t3 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 3 %t61 = load ptr, ptr %t60 %t62 = icmp eq ptr %t61, null %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then8, label %ifend10 then8: store ptr @.str10112, ptr %retval br label %ret ifend10: %t65 = load ptr, ptr %t3 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 3 %t67 = load ptr, ptr %t66 store ptr %t67, ptr %retval br label %ret ret: %t68 = load ptr, ptr %retval ret ptr %t68 } define ptr @fn_ck_call_sig(ptr %arg_e, ptr %arg_name, ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_name, ptr %t1 store ptr %arg_t, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = load ptr, ptr %t1 %t5 = getelementptr %LSlice, ptr null, i32 1 %t6 = ptrtoint ptr %t5 to i64 %t7 = call ptr @malloc(i64 %t6) %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0 store ptr null, ptr %t8 %t9 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 store i32 0, ptr %t9 %t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 2 store i32 0, ptr %t10 %t11 = load ptr, ptr %t2 %t12 = call ptr @fn_fn_ty_params(ptr %t11) call void @fn_ck_args(ptr %t3, ptr %t4, ptr %t7, ptr %t12) %t13 = load ptr, ptr %t2 %t14 = call ptr @fn_fn_ty_ret(ptr %t13) store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } define i32 @fn_ck_label_at(ptr %arg_labels, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_labels, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str10113, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t1 %t21 = call i32 @lp_str_eq(ptr %t19, ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load i32, ptr %t2 store i32 %t23, ptr %retval br label %ret ifend7: %t24 = load i32, ptr %t2 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t2 br label %wcond0 wend2: %t26 = sub i32 0, 1 store i32 %t26, ptr %retval br label %ret ret: %t27 = load i32, ptr %retval ret i32 %t27 } define void @fn_ck_args(ptr %arg_e, ptr %arg_name, ptr %arg_labels, ptr %arg_tys) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t9 = alloca i32 %t10 = alloca i32 %t35 = alloca i32 %t53 = alloca ptr %t58 = alloca ptr %t64 = alloca i32 %t90 = alloca i32 %t116 = alloca i32 %t157 = alloca i32 %t213 = alloca i32 %t249 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_name, ptr %t1 store ptr %arg_labels, ptr %t2 store ptr %arg_tys, ptr %t3 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 store i32 %t8, ptr %t9 %t11 = load i32, ptr %t9 %t12 = icmp sgt i32 %t11, 0 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t10 br i1 %t14, label %sc0, label %scend1 sc0: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 0, %t22 br i1 %t23, label %ixok2, label %ixbad3 ixbad3: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str10114, i32 0, i32 %t22) call void @exit(i32 1) unreachable ixok2: %t25 = getelementptr inbounds ptr, ptr %t20, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 0 %t28 = load i32, ptr %t27 %t29 = icmp eq i32 %t28, 42 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t10 br label %scend1 scend1: %t33 = load i32, ptr %t10 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then4, label %ifend6 then4: store i32 0, ptr %t35 br label %wcond7 wcond7: %t36 = load i32, ptr %t35 %t37 = load i32, ptr %t9 %t38 = icmp slt i32 %t36, %t37 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %wbody8, label %wend9 wbody8: %t41 = load ptr, ptr %t0 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 7 %t43 = load ptr, ptr %t42 %t44 = load i32, ptr %t35 %t45 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp ult i32 %t44, %t48 br i1 %t49, label %ixok10, label %ixbad11 ixbad11: %t50 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t50, ptr @.fmt_bounds, ptr @.str10115, i32 %t44, i32 %t48) call void @exit(i32 1) unreachable ixok10: %t51 = getelementptr inbounds ptr, ptr %t46, i32 %t44 %t52 = load ptr, ptr %t51 store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 4 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_ck_expr(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t2 %t60 = load ptr, ptr %t53 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 1 %t62 = load ptr, ptr %t61 %t63 = call i32 @fn_ck_label_at(ptr %t59, ptr %t62) store i32 %t63, ptr %t64 %t65 = load i32, ptr %t64 %t66 = icmp sge i32 %t65, 0 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then12, label %ifend14 then12: %t69 = load ptr, ptr %t3 %t70 = load i32, ptr %t64 %t71 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 0 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t74 = load i32, ptr %t73 %t75 = icmp ult i32 %t70, %t74 br i1 %t75, label %ixok15, label %ixbad16 ixbad16: %t76 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t76, ptr @.fmt_bounds, ptr @.str10116, i32 %t70, i32 %t74) call void @exit(i32 1) unreachable ixok15: %t77 = getelementptr inbounds ptr, ptr %t72, i32 %t70 %t78 = load ptr, ptr %t77 %t79 = load ptr, ptr %t58 %t80 = load ptr, ptr %t53 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 4 %t82 = load ptr, ptr %t81 %t83 = load ptr, ptr %t53 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1 %t85 = load ptr, ptr %t84 %t86 = call ptr @lp_str_concat(ptr @.str10117, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str10118) %t88 = load ptr, ptr %t1 %t89 = call ptr @lp_str_concat(ptr %t87, ptr %t88) call void @fn_ck_give(ptr %t78, ptr %t79, ptr %t82, ptr %t89) br label %ifend14 ifend14: %t91 = load i32, ptr %t64 %t92 = icmp slt i32 %t91, 0 %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t90 br i1 %t94, label %sc17, label %scend18 sc17: %t96 = load ptr, ptr %t2 %t97 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp sgt i32 %t98, 0 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t90 br label %scend18 scend18: %t103 = load i32, ptr %t90 %t104 = icmp ne i32 %t103, 0 br i1 %t104, label %then19, label %ifend21 then19: %t105 = load ptr, ptr %t53 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 4 %t107 = load ptr, ptr %t106 %t108 = load ptr, ptr %t1 %t109 = call ptr @lp_str_concat(ptr %t108, ptr @.str10120) %t110 = load ptr, ptr %t53 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1 %t112 = load ptr, ptr %t111 %t113 = call ptr @lp_str_concat(ptr %t109, ptr %t112) call void @fn_ck_err(ptr @.str10119, ptr %t107, ptr %t113) br label %ifend21 ifend21: %t114 = load i32, ptr %t35 %t115 = add i32 %t114, 1 store i32 %t115, ptr %t35 br label %wcond7 wend9: store i32 0, ptr %t116 br label %wcond22 wcond22: %t117 = load i32, ptr %t116 %t118 = load ptr, ptr %t2 %t119 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 1 %t120 = load i32, ptr %t119 %t121 = icmp slt i32 %t117, %t120 %t122 = zext i1 %t121 to i32 %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %wbody23, label %wend24 wbody23: %t124 = load ptr, ptr %t0 %t125 = load ptr, ptr %t2 %t126 = load i32, ptr %t116 %t127 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 0 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 1 %t130 = load i32, ptr %t129 %t131 = icmp ult i32 %t126, %t130 br i1 %t131, label %ixok25, label %ixbad26 ixbad26: %t132 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t132, ptr @.fmt_bounds, ptr @.str10121, i32 %t126, i32 %t130) call void @exit(i32 1) unreachable ixok25: %t133 = getelementptr inbounds ptr, ptr %t128, i32 %t126 %t134 = load ptr, ptr %t133 %t135 = call i32 @fn_ck_named_has(ptr %t124, ptr %t134) %t136 = icmp eq i32 %t135, 0 %t137 = zext i1 %t136 to i32 %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then27, label %ifend29 then27: %t139 = load ptr, ptr %t0 %t140 = load ptr, ptr %t1 %t141 = call ptr @lp_str_concat(ptr @.str10123, ptr %t140) %t142 = call ptr @lp_str_concat(ptr %t141, ptr @.str10124) %t143 = load ptr, ptr %t2 %t144 = load i32, ptr %t116 %t145 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0 %t146 = load ptr, ptr %t145 %t147 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 1 %t148 = load i32, ptr %t147 %t149 = icmp ult i32 %t144, %t148 br i1 %t149, label %ixok30, label %ixbad31 ixbad31: %t150 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t150, ptr @.fmt_bounds, ptr @.str10125, i32 %t144, i32 %t148) call void @exit(i32 1) unreachable ixok30: %t151 = getelementptr inbounds ptr, ptr %t146, i32 %t144 %t152 = load ptr, ptr %t151 %t153 = call ptr @lp_str_concat(ptr %t142, ptr %t152) %t154 = call ptr @lp_str_concat(ptr %t153, ptr @.str10126) call void @fn_ck_err(ptr @.str10122, ptr %t139, ptr %t154) br label %ifend29 ifend29: %t155 = load i32, ptr %t116 %t156 = add i32 %t155, 1 store i32 %t156, ptr %t116 br label %wcond22 wend24: br label %ret ifend6: %t158 = load i32, ptr %t9 %t159 = load ptr, ptr %t3 %t160 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 1 %t161 = load i32, ptr %t160 %t162 = icmp slt i32 %t158, %t161 %t163 = zext i1 %t162 to i32 %t164 = icmp ne i32 %t163, 0 %t165 = zext i1 %t164 to i32 store i32 %t165, ptr %t157 br i1 %t164, label %sc32, label %scend33 sc32: %t166 = load ptr, ptr %t2 %t167 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 1 %t168 = load i32, ptr %t167 %t169 = load ptr, ptr %t3 %t170 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 1 %t171 = load i32, ptr %t170 %t172 = icmp eq i32 %t168, %t171 %t173 = zext i1 %t172 to i32 %t174 = icmp ne i32 %t173, 0 %t175 = zext i1 %t174 to i32 store i32 %t175, ptr %t157 br label %scend33 scend33: %t176 = load i32, ptr %t157 %t177 = icmp ne i32 %t176, 0 br i1 %t177, label %then34, label %else35 then34: %t178 = load ptr, ptr %t0 %t179 = load ptr, ptr %t1 %t180 = call ptr @lp_str_concat(ptr @.str10128, ptr %t179) %t181 = call ptr @lp_str_concat(ptr %t180, ptr @.str10129) %t182 = load ptr, ptr %t2 %t183 = load i32, ptr %t9 %t184 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 0 %t185 = load ptr, ptr %t184 %t186 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 1 %t187 = load i32, ptr %t186 %t188 = icmp ult i32 %t183, %t187 br i1 %t188, label %ixok37, label %ixbad38 ixbad38: %t189 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t189, ptr @.fmt_bounds, ptr @.str10130, i32 %t183, i32 %t187) call void @exit(i32 1) unreachable ixok37: %t190 = getelementptr inbounds ptr, ptr %t185, i32 %t183 %t191 = load ptr, ptr %t190 %t192 = call ptr @lp_str_concat(ptr %t181, ptr %t191) %t193 = call ptr @lp_str_concat(ptr %t192, ptr @.str10131) call void @fn_ck_err(ptr @.str10127, ptr %t178, ptr %t193) br label %ifend36 else35: %t194 = load i32, ptr %t9 %t195 = load ptr, ptr %t3 %t196 = getelementptr inbounds %LSlice, ptr %t195, i32 0, i32 1 %t197 = load i32, ptr %t196 %t198 = icmp ne i32 %t194, %t197 %t199 = zext i1 %t198 to i32 %t200 = icmp ne i32 %t199, 0 br i1 %t200, label %then39, label %ifend41 then39: %t201 = load ptr, ptr %t0 %t202 = load ptr, ptr %t1 %t203 = call ptr @lp_str_concat(ptr %t202, ptr @.str10133) %t204 = load ptr, ptr %t3 %t205 = getelementptr inbounds %LSlice, ptr %t204, i32 0, i32 1 %t206 = load i32, ptr %t205 %t207 = call ptr @fn_itoa(i32 %t206) %t208 = call ptr @lp_str_concat(ptr %t203, ptr %t207) %t209 = call ptr @lp_str_concat(ptr %t208, ptr @.str10134) %t210 = load i32, ptr %t9 %t211 = call ptr @fn_itoa(i32 %t210) %t212 = call ptr @lp_str_concat(ptr %t209, ptr %t211) call void @fn_ck_err(ptr @.str10132, ptr %t201, ptr %t212) br label %ifend41 ifend41: br label %ifend36 ifend36: store i32 0, ptr %t213 br label %wcond42 wcond42: %t214 = load i32, ptr %t213 %t215 = load i32, ptr %t9 %t216 = icmp slt i32 %t214, %t215 %t217 = zext i1 %t216 to i32 %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %wbody43, label %wend44 wbody43: %t219 = load i32, ptr %t213 %t220 = load ptr, ptr %t3 %t221 = getelementptr inbounds %LSlice, ptr %t220, i32 0, i32 1 %t222 = load i32, ptr %t221 %t223 = icmp slt i32 %t219, %t222 %t224 = zext i1 %t223 to i32 %t225 = icmp ne i32 %t224, 0 br i1 %t225, label %then45, label %ifend47 then45: %t226 = load ptr, ptr %t3 %t227 = load i32, ptr %t213 %t228 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 0 %t229 = load ptr, ptr %t228 %t230 = getelementptr inbounds %LSlice, ptr %t226, i32 0, i32 1 %t231 = load i32, ptr %t230 %t232 = icmp ult i32 %t227, %t231 br i1 %t232, label %ixok48, label %ixbad49 ixbad49: %t233 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t233, ptr @.fmt_bounds, ptr @.str10135, i32 %t227, i32 %t231) call void @exit(i32 1) unreachable ixok48: %t234 = getelementptr inbounds ptr, ptr %t229, i32 %t227 %t235 = load ptr, ptr %t234 store ptr %t235, ptr @g_ck_expect br label %ifend47 ifend47: %t236 = load ptr, ptr %t0 %t237 = getelementptr inbounds %Cmp_Node, ptr %t236, i32 0, i32 7 %t238 = load ptr, ptr %t237 %t239 = load i32, ptr %t213 %t240 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 0 %t241 = load ptr, ptr %t240 %t242 = getelementptr inbounds %LSlice, ptr %t238, i32 0, i32 1 %t243 = load i32, ptr %t242 %t244 = icmp ult i32 %t239, %t243 br i1 %t244, label %ixok50, label %ixbad51 ixbad51: %t245 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t245, ptr @.fmt_bounds, ptr @.str10136, i32 %t239, i32 %t243) call void @exit(i32 1) unreachable ixok50: %t246 = getelementptr inbounds ptr, ptr %t241, i32 %t239 %t247 = load ptr, ptr %t246 %t248 = call ptr @fn_ck_expr(ptr %t247) store ptr %t248, ptr %t249 %t250 = load i32, ptr %t213 %t251 = load ptr, ptr %t3 %t252 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 1 %t253 = load i32, ptr %t252 %t254 = icmp slt i32 %t250, %t253 %t255 = zext i1 %t254 to i32 %t256 = icmp ne i32 %t255, 0 br i1 %t256, label %then52, label %ifend54 then52: %t257 = load ptr, ptr %t3 %t258 = load i32, ptr %t213 %t259 = getelementptr inbounds %LSlice, ptr %t257, i32 0, i32 0 %t260 = load ptr, ptr %t259 %t261 = getelementptr inbounds %LSlice, ptr %t257, i32 0, i32 1 %t262 = load i32, ptr %t261 %t263 = icmp ult i32 %t258, %t262 br i1 %t263, label %ixok55, label %ixbad56 ixbad56: %t264 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t264, ptr @.fmt_bounds, ptr @.str10137, i32 %t258, i32 %t262) call void @exit(i32 1) unreachable ixok55: %t265 = getelementptr inbounds ptr, ptr %t260, i32 %t258 %t266 = load ptr, ptr %t265 %t267 = load ptr, ptr %t249 %t268 = load ptr, ptr %t0 %t269 = getelementptr inbounds %Cmp_Node, ptr %t268, i32 0, i32 7 %t270 = load ptr, ptr %t269 %t271 = load i32, ptr %t213 %t272 = getelementptr inbounds %LSlice, ptr %t270, i32 0, i32 0 %t273 = load ptr, ptr %t272 %t274 = getelementptr inbounds %LSlice, ptr %t270, i32 0, i32 1 %t275 = load i32, ptr %t274 %t276 = icmp ult i32 %t271, %t275 br i1 %t276, label %ixok57, label %ixbad58 ixbad58: %t277 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t277, ptr @.fmt_bounds, ptr @.str10138, i32 %t271, i32 %t275) call void @exit(i32 1) unreachable ixok57: %t278 = getelementptr inbounds ptr, ptr %t273, i32 %t271 %t279 = load ptr, ptr %t278 %t280 = load i32, ptr %t213 %t281 = add i32 %t280, 1 %t282 = call ptr @fn_itoa(i32 %t281) %t283 = call ptr @lp_str_concat(ptr @.str10139, ptr %t282) %t284 = call ptr @lp_str_concat(ptr %t283, ptr @.str10140) %t285 = load ptr, ptr %t1 %t286 = call ptr @lp_str_concat(ptr %t284, ptr %t285) call void @fn_ck_give(ptr %t266, ptr %t267, ptr %t279, ptr %t286) br label %ifend54 ifend54: %t287 = load i32, ptr %t213 %t288 = add i32 %t287, 1 store i32 %t288, ptr %t213 br label %wcond42 wend44: br label %ret ret: ret void } define i32 @fn_ck_named_has(ptr %arg_e, ptr %arg_label) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_label, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str10141, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 %t26 = load ptr, ptr %t1 %t27 = call i32 @lp_str_eq(ptr %t25, ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t29 = load i32, ptr %t2 %t30 = add i32 %t29, 1 store i32 %t30, ptr %t2 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t31 = load i32, ptr %retval ret i32 %t31 } define void @fn_ck_walk_args(ptr %arg_e) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_e, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t2, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr %t1 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str10142, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 call void @fn_ck_any(ptr %t22) %t23 = load i32, ptr %t1 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t1 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_ck_builtin(ptr %arg_e, ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 %t6 = alloca i32 %t47 = alloca i32 %t64 = alloca i32 %t76 = alloca i32 %t104 = alloca ptr %t151 = alloca i32 %t171 = alloca i32 %t195 = alloca i32 %t214 = alloca i32 %t241 = alloca i32 %t269 = alloca ptr %t282 = alloca ptr %t283 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_name, ptr %t1 %t7 = load ptr, ptr %t1 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str10143) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t6 br i1 %t9, label %scend1, label %sc0 sc0: %t11 = load ptr, ptr %t1 %t12 = call i32 @lp_str_eq(ptr %t11, ptr @.str10144) %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t6 br label %scend1 scend1: %t15 = load i32, ptr %t6 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t5 br i1 %t16, label %scend3, label %sc2 sc2: %t18 = load ptr, ptr %t1 %t19 = call i32 @lp_str_eq(ptr %t18, ptr @.str10145) %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t5 br label %scend3 scend3: %t22 = load i32, ptr %t5 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t4 br i1 %t23, label %scend5, label %sc4 sc4: %t25 = load ptr, ptr %t1 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str10146) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t4 br label %scend5 scend5: %t29 = load i32, ptr %t4 %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t3 br i1 %t30, label %scend7, label %sc6 sc6: %t32 = load ptr, ptr %t1 %t33 = call i32 @lp_str_eq(ptr %t32, ptr @.str10147) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t3 br label %scend7 scend7: %t36 = load i32, ptr %t3 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t2 br i1 %t37, label %scend9, label %sc8 sc8: %t39 = load ptr, ptr %t1 %t40 = call i32 @lp_str_eq(ptr %t39, ptr @.str10148) %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t2 br label %scend9 scend9: %t43 = load i32, ptr %t2 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then10, label %ifend12 then10: %t45 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t45) %t46 = load ptr, ptr %t1 store ptr %t46, ptr %retval br label %ret ifend12: %t48 = load ptr, ptr %t1 %t49 = call i32 @lp_str_eq(ptr %t48, ptr @.str10149) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 store i32 %t51, ptr %t47 br i1 %t50, label %scend14, label %sc13 sc13: %t52 = load ptr, ptr %t1 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str10150) %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t47 br label %scend14 scend14: %t56 = load i32, ptr %t47 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then15, label %ifend17 then15: %t58 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t58) %t59 = load ptr, ptr %t1 %t60 = load ptr, ptr %t1 %t61 = call i64 @strlen(ptr %t60) %t62 = trunc i64 %t61 to i32 %t63 = call ptr @lp_str_slice(ptr %t59, i32 3, i32 %t62) store ptr %t63, ptr %retval br label %ret ifend17: %t65 = load ptr, ptr %t1 %t66 = call i32 @lp_str_eq(ptr %t65, ptr @.str10151) %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t64 br i1 %t67, label %scend19, label %sc18 sc18: %t69 = load ptr, ptr %t1 %t70 = call i32 @lp_str_eq(ptr %t69, ptr @.str10152) %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t64 br label %scend19 scend19: %t73 = load i32, ptr %t64 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then20, label %ifend22 then20: %t75 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t75) store ptr @.str10153, ptr %retval br label %ret ifend22: %t77 = load ptr, ptr %t1 %t78 = call i32 @lp_str_eq(ptr %t77, ptr @.str10154) %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t76 br i1 %t79, label %sc23, label %scend24 sc23: %t81 = load ptr, ptr %t0 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 7 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t85 = load i32, ptr %t84 %t86 = icmp eq i32 %t85, 3 %t87 = zext i1 %t86 to i32 %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t76 br label %scend24 scend24: %t90 = load i32, ptr %t76 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then25, label %ifend27 then25: %t92 = load ptr, ptr %t0 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 7 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp ult i32 0, %t98 br i1 %t99, label %ixok28, label %ixbad29 ixbad29: %t100 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t100, ptr @.fmt_bounds, ptr @.str10155, i32 0, i32 %t98) call void @exit(i32 1) unreachable ixok28: %t101 = getelementptr inbounds ptr, ptr %t96, i32 0 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_ck_expr(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t0 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 7 %t107 = load ptr, ptr %t106 %t108 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 0 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 1 %t111 = load i32, ptr %t110 %t112 = icmp ult i32 1, %t111 br i1 %t112, label %ixok30, label %ixbad31 ixbad31: %t113 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t113, ptr @.fmt_bounds, ptr @.str10157, i32 1, i32 %t111) call void @exit(i32 1) unreachable ixok30: %t114 = getelementptr inbounds ptr, ptr %t109, i32 1 %t115 = load ptr, ptr %t114 %t116 = call ptr @fn_ck_expr(ptr %t115) %t117 = load ptr, ptr %t0 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 7 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t121 = load ptr, ptr %t120 %t122 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t123 = load i32, ptr %t122 %t124 = icmp ult i32 1, %t123 br i1 %t124, label %ixok32, label %ixbad33 ixbad33: %t125 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t125, ptr @.fmt_bounds, ptr @.str10158, i32 1, i32 %t123) call void @exit(i32 1) unreachable ixok32: %t126 = getelementptr inbounds ptr, ptr %t121, i32 1 %t127 = load ptr, ptr %t126 call void @fn_ck_give(ptr @.str10156, ptr %t116, ptr %t127, ptr @.str10159) %t128 = load ptr, ptr %t0 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 7 %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 %t133 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t134 = load i32, ptr %t133 %t135 = icmp ult i32 2, %t134 br i1 %t135, label %ixok34, label %ixbad35 ixbad35: %t136 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t136, ptr @.fmt_bounds, ptr @.str10161, i32 2, i32 %t134) call void @exit(i32 1) unreachable ixok34: %t137 = getelementptr inbounds ptr, ptr %t132, i32 2 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_ck_expr(ptr %t138) %t140 = load ptr, ptr %t0 %t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 7 %t142 = load ptr, ptr %t141 %t143 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 1 %t146 = load i32, ptr %t145 %t147 = icmp ult i32 2, %t146 br i1 %t147, label %ixok36, label %ixbad37 ixbad37: %t148 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t148, ptr @.fmt_bounds, ptr @.str10162, i32 2, i32 %t146) call void @exit(i32 1) unreachable ixok36: %t149 = getelementptr inbounds ptr, ptr %t144, i32 2 %t150 = load ptr, ptr %t149 call void @fn_ck_give(ptr @.str10160, ptr %t139, ptr %t150, ptr @.str10163) %t152 = load ptr, ptr %t104 %t153 = call i32 @fn_ck_unknown(ptr %t152) %t154 = icmp eq i32 %t153, 0 %t155 = zext i1 %t154 to i32 %t156 = icmp ne i32 %t155, 0 %t157 = zext i1 %t156 to i32 store i32 %t157, ptr %t151 br i1 %t156, label %sc38, label %scend39 sc38: %t158 = load ptr, ptr %t104 %t159 = call i32 @fn_is_slice_ty(ptr %t158) %t160 = icmp eq i32 %t159, 0 %t161 = zext i1 %t160 to i32 %t162 = icmp ne i32 %t161, 0 %t163 = zext i1 %t162 to i32 store i32 %t163, ptr %t151 br label %scend39 scend39: %t164 = load i32, ptr %t151 %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then40, label %ifend42 then40: %t166 = load ptr, ptr %t0 %t167 = load ptr, ptr %t104 %t168 = call ptr @fn_ck_a(ptr %t167) %t169 = call ptr @lp_str_concat(ptr @.str10165, ptr %t168) call void @fn_ck_err(ptr @.str10164, ptr %t166, ptr %t169) br label %ifend42 ifend42: %t170 = load ptr, ptr %t104 store ptr %t170, ptr %retval br label %ret ifend27: %t172 = load ptr, ptr %t1 %t173 = call i32 @lp_str_eq(ptr %t172, ptr @.str10166) %t174 = icmp ne i32 %t173, 0 %t175 = zext i1 %t174 to i32 store i32 %t175, ptr %t171 br i1 %t174, label %scend44, label %sc43 sc43: %t176 = load ptr, ptr %t1 %t177 = call i32 @lp_str_eq(ptr %t176, ptr @.str10167) %t178 = icmp ne i32 %t177, 0 %t179 = zext i1 %t178 to i32 store i32 %t179, ptr %t171 br label %scend44 scend44: %t180 = load i32, ptr %t171 %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %then45, label %ifend47 then45: %t182 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t182) store ptr @.str10168, ptr %retval br label %ret ifend47: %t183 = load ptr, ptr %t1 %t184 = call i32 @lp_str_eq(ptr %t183, ptr @.str10169) %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then48, label %ifend50 then48: %t186 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t186) store ptr @.str10170, ptr %retval br label %ret ifend50: %t187 = load ptr, ptr %t1 %t188 = call i32 @lp_str_eq(ptr %t187, ptr @.str10171) %t189 = icmp ne i32 %t188, 0 br i1 %t189, label %then51, label %ifend53 then51: %t190 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t190) store ptr @.str10172, ptr %retval br label %ret ifend53: %t191 = load ptr, ptr %t1 %t192 = call i32 @lp_str_eq(ptr %t191, ptr @.str10173) %t193 = icmp ne i32 %t192, 0 br i1 %t193, label %then54, label %ifend56 then54: %t194 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t194) store ptr @.str10174, ptr %retval br label %ret ifend56: %t196 = load ptr, ptr %t1 %t197 = call i32 @lp_str_eq(ptr %t196, ptr @.str10175) %t198 = icmp ne i32 %t197, 0 %t199 = zext i1 %t198 to i32 store i32 %t199, ptr %t195 br i1 %t198, label %scend58, label %sc57 sc57: %t200 = load ptr, ptr %t1 %t201 = call i32 @lp_str_eq(ptr %t200, ptr @.str10176) %t202 = icmp ne i32 %t201, 0 %t203 = zext i1 %t202 to i32 store i32 %t203, ptr %t195 br label %scend58 scend58: %t204 = load i32, ptr %t195 %t205 = icmp ne i32 %t204, 0 br i1 %t205, label %then59, label %ifend61 then59: %t206 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t206) %t207 = load ptr, ptr %t1 %t208 = load ptr, ptr %t1 %t209 = call i64 @strlen(ptr %t208) %t210 = trunc i64 %t209 to i32 %t211 = sub i32 %t210, 1 %t212 = call ptr @lp_str_slice(ptr %t207, i32 0, i32 %t211) %t213 = call ptr @lp_str_concat(ptr @.str10177, ptr %t212) store ptr %t213, ptr %retval br label %ret ifend61: %t215 = load ptr, ptr %t1 %t216 = call i32 @lp_str_eq(ptr %t215, ptr @.str10178) %t217 = icmp ne i32 %t216, 0 %t218 = zext i1 %t217 to i32 store i32 %t218, ptr %t214 br i1 %t217, label %scend63, label %sc62 sc62: %t219 = load ptr, ptr %t1 %t220 = call i32 @lp_str_eq(ptr %t219, ptr @.str10179) %t221 = icmp ne i32 %t220, 0 %t222 = zext i1 %t221 to i32 store i32 %t222, ptr %t214 br label %scend63 scend63: %t223 = load i32, ptr %t214 %t224 = icmp ne i32 %t223, 0 br i1 %t224, label %then64, label %ifend66 then64: %t225 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t225) %t226 = load ptr, ptr %t1 %t227 = load ptr, ptr %t1 %t228 = call i64 @strlen(ptr %t227) %t229 = trunc i64 %t228 to i32 %t230 = sub i32 %t229, 1 %t231 = call ptr @lp_str_slice(ptr %t226, i32 0, i32 %t230) %t232 = call ptr @lp_str_concat(ptr @.str10180, ptr %t231) store ptr %t232, ptr %retval br label %ret ifend66: %t233 = load ptr, ptr %t1 %t234 = call i32 @lp_str_eq(ptr %t233, ptr @.str10181) %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %then67, label %ifend69 then67: %t236 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t236) store ptr @.str10182, ptr %retval br label %ret ifend69: %t237 = load ptr, ptr %t1 %t238 = call i32 @lp_str_eq(ptr %t237, ptr @.str10183) %t239 = icmp ne i32 %t238, 0 br i1 %t239, label %then70, label %ifend72 then70: %t240 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t240) store ptr @.str10184, ptr %retval br label %ret ifend72: %t242 = load ptr, ptr %t1 %t243 = call i32 @lp_str_eq(ptr %t242, ptr @.str10185) %t244 = icmp ne i32 %t243, 0 %t245 = zext i1 %t244 to i32 store i32 %t245, ptr %t241 br i1 %t244, label %sc73, label %scend74 sc73: %t246 = load ptr, ptr %t0 %t247 = getelementptr inbounds %Cmp_Node, ptr %t246, i32 0, i32 7 %t248 = load ptr, ptr %t247 %t249 = getelementptr inbounds %LSlice, ptr %t248, i32 0, i32 1 %t250 = load i32, ptr %t249 %t251 = icmp eq i32 %t250, 2 %t252 = zext i1 %t251 to i32 %t253 = icmp ne i32 %t252, 0 %t254 = zext i1 %t253 to i32 store i32 %t254, ptr %t241 br label %scend74 scend74: %t255 = load i32, ptr %t241 %t256 = icmp ne i32 %t255, 0 br i1 %t256, label %then75, label %ifend77 then75: %t257 = load ptr, ptr %t0 %t258 = getelementptr inbounds %Cmp_Node, ptr %t257, i32 0, i32 7 %t259 = load ptr, ptr %t258 %t260 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 0 %t261 = load ptr, ptr %t260 %t262 = getelementptr inbounds %LSlice, ptr %t259, i32 0, i32 1 %t263 = load i32, ptr %t262 %t264 = icmp ult i32 0, %t263 br i1 %t264, label %ixok78, label %ixbad79 ixbad79: %t265 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t265, ptr @.fmt_bounds, ptr @.str10186, i32 0, i32 %t263) call void @exit(i32 1) unreachable ixok78: %t266 = getelementptr inbounds ptr, ptr %t261, i32 0 %t267 = load ptr, ptr %t266 %t268 = call ptr @fn_ck_expr(ptr %t267) store ptr %t268, ptr %t269 %t270 = load ptr, ptr %t0 %t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 7 %t272 = load ptr, ptr %t271 %t273 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 0 %t274 = load ptr, ptr %t273 %t275 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 1 %t276 = load i32, ptr %t275 %t277 = icmp ult i32 1, %t276 br i1 %t277, label %ixok80, label %ixbad81 ixbad81: %t278 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t278, ptr @.fmt_bounds, ptr @.str10187, i32 1, i32 %t276) call void @exit(i32 1) unreachable ixok80: %t279 = getelementptr inbounds ptr, ptr %t274, i32 1 %t280 = load ptr, ptr %t279 %t281 = call ptr @fn_ck_expr(ptr %t280) store ptr %t281, ptr %t282 %t284 = load ptr, ptr %t269 %t285 = call i32 @fn_ck_unknown(ptr %t284) %t286 = icmp eq i32 %t285, 0 %t287 = zext i1 %t286 to i32 %t288 = icmp ne i32 %t287, 0 %t289 = zext i1 %t288 to i32 store i32 %t289, ptr %t283 br i1 %t288, label %sc82, label %scend83 sc82: %t290 = load ptr, ptr %t269 %t291 = call i32 @fn_is_slice_ty(ptr %t290) %t292 = icmp ne i32 %t291, 0 %t293 = zext i1 %t292 to i32 store i32 %t293, ptr %t283 br label %scend83 scend83: %t294 = load i32, ptr %t283 %t295 = icmp ne i32 %t294, 0 br i1 %t295, label %then84, label %ifend86 then84: %t296 = load ptr, ptr %t269 %t297 = call ptr @fn_slice_elem(ptr %t296) %t298 = load ptr, ptr %t282 %t299 = load ptr, ptr %t0 %t300 = getelementptr inbounds %Cmp_Node, ptr %t299, i32 0, i32 7 %t301 = load ptr, ptr %t300 %t302 = getelementptr inbounds %LSlice, ptr %t301, i32 0, i32 0 %t303 = load ptr, ptr %t302 %t304 = getelementptr inbounds %LSlice, ptr %t301, i32 0, i32 1 %t305 = load i32, ptr %t304 %t306 = icmp ult i32 1, %t305 br i1 %t306, label %ixok87, label %ixbad88 ixbad88: %t307 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t307, ptr @.fmt_bounds, ptr @.str10188, i32 1, i32 %t305) call void @exit(i32 1) unreachable ixok87: %t308 = getelementptr inbounds ptr, ptr %t303, i32 1 %t309 = load ptr, ptr %t308 %t310 = load ptr, ptr %t269 %t311 = call ptr @fn_ck_a(ptr %t310) %t312 = call ptr @lp_str_concat(ptr @.str10189, ptr %t311) call void @fn_ck_give(ptr %t297, ptr %t298, ptr %t309, ptr %t312) br label %ifend86 ifend86: store ptr @.str10190, ptr %retval br label %ret ifend77: store ptr null, ptr %retval br label %ret ret: %t313 = load ptr, ptr %retval ret ptr %t313 } define void @fn_ck_alias_shadow(ptr %arg_e, i32 %arg_al, ptr %arg_tf) { entry: %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca ptr %t17 = alloca i32 %t33 = alloca i32 store ptr %arg_e, ptr %t0 store i32 %arg_al, ptr %t1 store ptr %arg_tf, ptr %t2 %t3 = load ptr, ptr @g_g_al_file %t4 = load i32, ptr %t1 %t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp ult i32 %t4, %t8 br i1 %t9, label %ixok0, label %ixbad1 ixbad1: %t10 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t10, ptr @.fmt_bounds, ptr @.str10191, i32 %t4, i32 %t8) call void @exit(i32 1) unreachable ixok0: %t11 = getelementptr inbounds ptr, ptr %t6, i32 %t4 %t12 = load ptr, ptr %t11 %t13 = call i32 @fn_has_sub(ptr %t12, ptr @.str10192) %t14 = icmp eq i32 %t13, 0 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then2, label %ifend4 then2: br label %ret ifend4: %t18 = load ptr, ptr %t2 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 9 %t20 = load ptr, ptr %t19 %t21 = icmp eq ptr %t20, null %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t17 br i1 %t23, label %scend6, label %sc5 sc5: %t25 = load ptr, ptr %t2 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 9 %t27 = load ptr, ptr %t26 %t28 = call i32 @fn_has_sub(ptr %t27, ptr @.str10193) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t17 br label %scend6 scend6: %t31 = load i32, ptr %t17 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then7, label %ifend9 then7: br label %ret ifend9: store i32 0, ptr %t33 br label %wcond10 wcond10: %t34 = load i32, ptr %t33 %t35 = load ptr, ptr @g_ck_shadow_seen %t36 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp slt i32 %t34, %t37 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %wbody11, label %wend12 wbody11: %t41 = load ptr, ptr @g_ck_shadow_seen %t42 = load i32, ptr %t33 %t43 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 1 %t46 = load i32, ptr %t45 %t47 = icmp ult i32 %t42, %t46 br i1 %t47, label %ixok13, label %ixbad14 ixbad14: %t48 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t48, ptr @.fmt_bounds, ptr @.str10194, i32 %t42, i32 %t46) call void @exit(i32 1) unreachable ixok13: %t49 = getelementptr inbounds ptr, ptr %t44, i32 %t42 %t50 = load ptr, ptr %t49 %t51 = load ptr, ptr %t2 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t52 %t54 = call i32 @lp_str_eq(ptr %t50, ptr %t53) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then15, label %ifend17 then15: br label %ret ifend17: %t56 = load i32, ptr %t33 %t57 = add i32 %t56, 1 store i32 %t57, ptr %t33 br label %wcond10 wend12: %t58 = load ptr, ptr @g_ck_shadow_seen %t59 = load ptr, ptr %t2 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 1 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t63 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2 %t64 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t65 = load i32, ptr %t62 %t66 = load i32, ptr %t63 %t67 = icmp sge i32 %t65, %t66 br i1 %t67, label %grow18, label %put19 grow18: %t68 = mul i32 %t66, 2 %t69 = icmp eq i32 %t66, 0 %t70 = select i1 %t69, i32 8, i32 %t68 %t71 = getelementptr ptr, ptr null, i32 1 %t72 = ptrtoint ptr %t71 to i64 %t73 = zext i32 %t70 to i64 %t74 = mul i64 %t73, %t72 %t75 = load ptr, ptr %t64 %t76 = call ptr @realloc(ptr %t75, i64 %t74) store ptr %t76, ptr %t64 store i32 %t70, ptr %t63 br label %put19 put19: %t77 = load ptr, ptr %t64 %t78 = getelementptr inbounds ptr, ptr %t77, i32 %t65 store ptr %t61, ptr %t78 %t79 = add i32 %t65, 1 store i32 %t79, ptr %t62 %t80 = load ptr, ptr %t2 %t81 = load ptr, ptr %t2 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 1 %t83 = load ptr, ptr %t82 %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str10196) %t85 = load ptr, ptr @g_g_al_ns %t86 = load i32, ptr %t1 %t87 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0 %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 1 %t90 = load i32, ptr %t89 %t91 = icmp ult i32 %t86, %t90 br i1 %t91, label %ixok20, label %ixbad21 ixbad21: %t92 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t92, ptr @.fmt_bounds, ptr @.str10197, i32 %t86, i32 %t90) call void @exit(i32 1) unreachable ixok20: %t93 = getelementptr inbounds ptr, ptr %t88, i32 %t86 %t94 = load ptr, ptr %t93 %t95 = call ptr @lp_str_concat(ptr %t84, ptr %t94) %t96 = call ptr @lp_str_concat(ptr %t95, ptr @.str10198) %t97 = load ptr, ptr @g_g_al_meth %t98 = load i32, ptr %t1 %t99 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp ult i32 %t98, %t102 br i1 %t103, label %ixok22, label %ixbad23 ixbad23: %t104 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t104, ptr @.fmt_bounds, ptr @.str10199, i32 %t98, i32 %t102) call void @exit(i32 1) unreachable ixok22: %t105 = getelementptr inbounds ptr, ptr %t100, i32 %t98 %t106 = load ptr, ptr %t105 %t107 = call ptr @lp_str_concat(ptr %t96, ptr %t106) %t108 = call ptr @lp_str_concat(ptr %t107, ptr @.str10200) %t109 = load ptr, ptr %t0 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 9 %t111 = load ptr, ptr %t110 %t112 = call ptr @lp_str_concat(ptr %t108, ptr %t111) %t113 = call ptr @lp_str_concat(ptr %t112, ptr @.str10201) %t114 = load ptr, ptr %t0 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 8 %t116 = load i32, ptr %t115 %t117 = call ptr @fn_itoa(i32 %t116) %t118 = call ptr @lp_str_concat(ptr %t113, ptr %t117) %t119 = call ptr @lp_str_concat(ptr %t118, ptr @.str10202) call void @fn_ck_err(ptr @.str10195, ptr %t80, ptr %t119) br label %ret ret: ret void } define ptr @fn_ck_call(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca ptr %t25 = alloca ptr %t26 = alloca i32 %t27 = alloca i32 %t73 = alloca i32 %t89 = alloca ptr %t155 = alloca ptr %t169 = alloca ptr %t170 = alloca i32 %t191 = alloca ptr %t201 = alloca ptr %t202 = alloca i32 store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 0 %t7 = load i32, ptr %t6 %t8 = icmp eq i32 %t7, 33 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t0 %t12 = load ptr, ptr %t4 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t13 %t15 = call ptr @fn_ck_call_named(ptr %t11, ptr %t14) store ptr %t15, ptr %retval br label %ret ifend2: %t16 = load ptr, ptr %t4 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0 %t18 = load i32, ptr %t17 %t19 = icmp eq i32 %t18, 35 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then3, label %ifend5 then3: %t22 = load ptr, ptr %t4 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 4 %t24 = load ptr, ptr %t23 store ptr %t24, ptr %t25 %t28 = load ptr, ptr %t25 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 0 %t30 = load i32, ptr %t29 %t31 = icmp eq i32 %t30, 33 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t27 br i1 %t33, label %sc6, label %scend7 sc6: %t35 = load ptr, ptr %t25 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 %t38 = call i32 @fn_ck_local(ptr %t37) %t39 = icmp slt i32 %t38, 0 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t27 br label %scend7 scend7: %t43 = load i32, ptr %t27 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t26 br i1 %t44, label %sc8, label %scend9 sc8: %t46 = load ptr, ptr %t25 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 1 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_ck_global(ptr %t48) %t50 = icmp eq ptr %t49, null %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t26 br label %scend9 scend9: %t54 = load i32, ptr %t26 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then10, label %ifend12 then10: %t56 = load ptr, ptr %t25 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str10203) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then13, label %ifend15 then13: %t61 = load ptr, ptr %t0 %t62 = load ptr, ptr %t4 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 %t65 = call ptr @lp_str_concat(ptr @.str10204, ptr %t64) call void @fn_ck_raw(ptr %t61, ptr %t65) br label %ifend15 ifend15: %t66 = load ptr, ptr %t25 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1 %t68 = load ptr, ptr %t67 %t69 = load ptr, ptr %t4 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 %t72 = call i32 @fn_ns_alias_find(ptr %t68, ptr %t71) store i32 %t72, ptr %t73 %t74 = load i32, ptr %t73 %t75 = icmp sge i32 %t74, 0 %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then16, label %ifend18 then16: %t78 = load ptr, ptr @g_g_al_target %t79 = load i32, ptr %t73 %t80 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t83 = load i32, ptr %t82 %t84 = icmp ult i32 %t79, %t83 br i1 %t84, label %ixok19, label %ixbad20 ixbad20: %t85 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t85, ptr @.fmt_bounds, ptr @.str10205, i32 %t79, i32 %t83) call void @exit(i32 1) unreachable ixok19: %t86 = getelementptr inbounds ptr, ptr %t81, i32 %t79 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_ck_fn(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = icmp ne ptr %t90, null %t92 = zext i1 %t91 to i32 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then21, label %ifend23 then21: %t94 = load ptr, ptr %t0 %t95 = load i32, ptr %t73 %t96 = load ptr, ptr %t89 call void @fn_ck_alias_shadow(ptr %t94, i32 %t95, ptr %t96) br label %ifend23 ifend23: %t97 = load ptr, ptr %t89 %t98 = icmp eq ptr %t97, null %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then24, label %ifend26 then24: %t101 = load ptr, ptr @g_g_al_target %t102 = load i32, ptr %t73 %t103 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp ult i32 %t102, %t106 br i1 %t107, label %ixok27, label %ixbad28 ixbad28: %t108 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t108, ptr @.fmt_bounds, ptr @.str10206, i32 %t102, i32 %t106) call void @exit(i32 1) unreachable ixok27: %t109 = getelementptr inbounds ptr, ptr %t104, i32 %t102 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_ck_extern(ptr %t110) store ptr %t111, ptr %t89 %t112 = load ptr, ptr %t89 %t113 = icmp ne ptr %t112, null %t114 = zext i1 %t113 to i32 %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then29, label %ifend31 then29: %t116 = load ptr, ptr %t0 %t117 = load ptr, ptr %t25 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 1 %t119 = load ptr, ptr %t118 %t120 = call ptr @lp_str_concat(ptr %t119, ptr @.str10207) %t121 = load ptr, ptr %t4 %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 1 %t123 = load ptr, ptr %t122 %t124 = call ptr @lp_str_concat(ptr %t120, ptr %t123) %t125 = call ptr @lp_str_concat(ptr %t124, ptr @.str10208) call void @fn_ck_raw(ptr %t116, ptr %t125) br label %ifend31 ifend31: br label %ifend26 ifend26: %t126 = load ptr, ptr %t89 %t127 = icmp ne ptr %t126, null %t128 = zext i1 %t127 to i32 %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then32, label %ifend34 then32: %t130 = load ptr, ptr @g_g_al_target %t131 = load i32, ptr %t73 %t132 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t135 = load i32, ptr %t134 %t136 = icmp ult i32 %t131, %t135 br i1 %t136, label %ixok35, label %ixbad36 ixbad36: %t137 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t137, ptr @.fmt_bounds, ptr @.str10209, i32 %t131, i32 %t135) call void @exit(i32 1) unreachable ixok35: %t138 = getelementptr inbounds ptr, ptr %t133, i32 %t131 %t139 = load ptr, ptr %t138 %t140 = call ptr @fn_ck_extern(ptr %t139) %t141 = icmp ne ptr %t140, null %t142 = zext i1 %t141 to i32 store i32 %t142, ptr @g_ck_extern_arg %t143 = load ptr, ptr %t0 %t144 = load ptr, ptr %t25 %t145 = getelementptr inbounds %Cmp_Node, ptr %t144, i32 0, i32 1 %t146 = load ptr, ptr %t145 %t147 = call ptr @lp_str_concat(ptr %t146, ptr @.str10210) %t148 = load ptr, ptr %t4 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 1 %t150 = load ptr, ptr %t149 %t151 = call ptr @lp_str_concat(ptr %t147, ptr %t150) %t152 = load i32, ptr %t73 %t153 = load ptr, ptr %t89 %t154 = call ptr @fn_ck_call_alias(ptr %t143, ptr %t151, i32 %t152, ptr %t153) store ptr %t154, ptr %t155 store i32 0, ptr @g_ck_extern_arg %t156 = load ptr, ptr %t155 store ptr %t156, ptr %retval br label %ret ifend34: %t157 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t157) store ptr @.str10211, ptr %retval br label %ret ifend18: %t158 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t158) %t159 = load ptr, ptr %t25 %t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 1 %t161 = load ptr, ptr %t160 %t162 = call ptr @fn_ns_lower(ptr %t161) %t163 = call ptr @lp_str_concat(ptr %t162, ptr @.str10212) %t164 = load ptr, ptr %t4 %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 1 %t166 = load ptr, ptr %t165 %t167 = call ptr @lp_str_concat(ptr %t163, ptr %t166) %t168 = call ptr @fn_ck_fn(ptr %t167) store ptr %t168, ptr %t169 %t171 = load ptr, ptr %t169 %t172 = icmp ne ptr %t171, null %t173 = zext i1 %t172 to i32 %t174 = icmp ne i32 %t173, 0 %t175 = zext i1 %t174 to i32 store i32 %t175, ptr %t170 br i1 %t174, label %sc37, label %scend38 sc37: %t176 = load ptr, ptr %t169 %t177 = getelementptr inbounds %Cmp_Node, ptr %t176, i32 0, i32 3 %t178 = load ptr, ptr %t177 %t179 = icmp ne ptr %t178, null %t180 = zext i1 %t179 to i32 %t181 = icmp ne i32 %t180, 0 %t182 = zext i1 %t181 to i32 store i32 %t182, ptr %t170 br label %scend38 scend38: %t183 = load i32, ptr %t170 %t184 = icmp ne i32 %t183, 0 br i1 %t184, label %then39, label %ifend41 then39: %t185 = load ptr, ptr %t169 %t186 = getelementptr inbounds %Cmp_Node, ptr %t185, i32 0, i32 3 %t187 = load ptr, ptr %t186 store ptr %t187, ptr %retval br label %ret ifend41: store ptr @.str10213, ptr %retval br label %ret ifend12: %t188 = load ptr, ptr %t25 %t189 = call ptr @fn_ck_expr(ptr %t188) %t190 = call ptr @fn_ck_record(ptr %t189) store ptr %t190, ptr %t191 %t192 = load ptr, ptr %t191 %t193 = icmp ne ptr %t192, null %t194 = zext i1 %t193 to i32 %t195 = icmp ne i32 %t194, 0 br i1 %t195, label %then42, label %ifend44 then42: %t196 = load ptr, ptr %t191 %t197 = load ptr, ptr %t4 %t198 = getelementptr inbounds %Cmp_Node, ptr %t197, i32 0, i32 1 %t199 = load ptr, ptr %t198 %t200 = call ptr @fn_ck_field(ptr %t196, ptr %t199) store ptr %t200, ptr %t201 %t203 = load ptr, ptr %t201 %t204 = icmp ne ptr %t203, null %t205 = zext i1 %t204 to i32 %t206 = icmp ne i32 %t205, 0 %t207 = zext i1 %t206 to i32 store i32 %t207, ptr %t202 br i1 %t206, label %sc45, label %scend46 sc45: %t208 = load ptr, ptr %t201 %t209 = call i32 @fn_is_fn_type(ptr %t208) %t210 = icmp ne i32 %t209, 0 %t211 = zext i1 %t210 to i32 store i32 %t211, ptr %t202 br label %scend46 scend46: %t212 = load i32, ptr %t202 %t213 = icmp ne i32 %t212, 0 br i1 %t213, label %then47, label %ifend49 then47: %t214 = load ptr, ptr %t0 %t215 = load ptr, ptr %t4 %t216 = getelementptr inbounds %Cmp_Node, ptr %t215, i32 0, i32 1 %t217 = load ptr, ptr %t216 %t218 = load ptr, ptr %t201 %t219 = call ptr @fn_ck_call_sig(ptr %t214, ptr %t217, ptr %t218) store ptr %t219, ptr %retval br label %ret ifend49: br label %ifend44 ifend44: %t220 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t220) store ptr @.str10214, ptr %retval br label %ret ifend5: %t221 = load ptr, ptr %t4 %t222 = call ptr @fn_ck_expr(ptr %t221) %t223 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t223) store ptr @.str10215, ptr %retval br label %ret ret: %t224 = load ptr, ptr %retval ret ptr %t224 } define ptr @fn_ck_call_named(ptr %arg_e, ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t4 = alloca i32 %t44 = alloca ptr %t52 = alloca ptr %t64 = alloca ptr %t75 = alloca ptr %t87 = alloca ptr %t91 = alloca ptr %t92 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_name, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = call i32 @fn_ck_local(ptr %t2) store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = icmp sge i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr @g_ck_tys %t10 = load i32, ptr %t4 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str10216, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = call i32 @fn_is_fn_type(ptr %t18) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then5, label %ifend7 then5: %t21 = load ptr, ptr %t0 %t22 = load ptr, ptr %t1 %t23 = load ptr, ptr @g_ck_tys %t24 = load i32, ptr %t4 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str10217, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_ck_call_sig(ptr %t21, ptr %t22, ptr %t32) store ptr %t33, ptr %retval br label %ret ifend7: %t34 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t34) store ptr @.str10218, ptr %retval br label %ret ifend2: %t35 = load ptr, ptr %t1 %t36 = call i32 @fn_ck_raw_builtin(ptr %t35) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then10, label %ifend12 then10: %t38 = load ptr, ptr %t0 %t39 = load ptr, ptr %t1 %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str10219) call void @fn_ck_raw(ptr %t38, ptr %t40) br label %ifend12 ifend12: %t41 = load ptr, ptr %t0 %t42 = load ptr, ptr %t1 %t43 = call ptr @fn_ck_builtin(ptr %t41, ptr %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t44 %t46 = icmp ne ptr %t45, null %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then13, label %ifend15 then13: %t49 = load ptr, ptr %t44 store ptr %t49, ptr %retval br label %ret ifend15: %t50 = load ptr, ptr %t1 %t51 = call ptr @fn_ck_fn(ptr %t50) store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t52 %t54 = icmp ne ptr %t53, null %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then16, label %ifend18 then16: %t57 = load ptr, ptr %t0 %t58 = load ptr, ptr %t1 %t59 = load ptr, ptr %t52 %t60 = call ptr @fn_ck_call_fn(ptr %t57, ptr %t58, ptr %t59) store ptr %t60, ptr %retval br label %ret ifend18: %t61 = load ptr, ptr @g_g_gen_fns %t62 = load ptr, ptr %t1 %t63 = call ptr @fn_gen_template(ptr %t61, ptr %t62) store ptr %t63, ptr %t64 %t65 = load ptr, ptr %t64 %t66 = icmp ne ptr %t65, null %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then19, label %ifend21 then19: %t69 = load ptr, ptr %t0 %t70 = load ptr, ptr %t1 %t71 = load ptr, ptr %t64 %t72 = call ptr @fn_gen_call(ptr %t69, ptr %t70, ptr %t71) store ptr %t72, ptr %retval br label %ret ifend21: %t73 = load ptr, ptr %t1 %t74 = call ptr @fn_ck_extern(ptr %t73) store ptr %t74, ptr %t75 %t76 = load ptr, ptr %t75 %t77 = icmp ne ptr %t76, null %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then22, label %ifend24 then22: %t80 = load ptr, ptr %t0 %t81 = load ptr, ptr %t1 %t82 = call ptr @lp_str_concat(ptr @.str10220, ptr %t81) call void @fn_ck_raw(ptr %t80, ptr %t82) store i32 1, ptr @g_ck_extern_arg %t83 = load ptr, ptr %t0 %t84 = load ptr, ptr %t1 %t85 = load ptr, ptr %t75 %t86 = call ptr @fn_ck_call_fn(ptr %t83, ptr %t84, ptr %t85) store ptr %t86, ptr %t87 store i32 0, ptr @g_ck_extern_arg %t88 = load ptr, ptr %t87 store ptr %t88, ptr %retval br label %ret ifend24: %t89 = load ptr, ptr %t1 %t90 = call ptr @fn_ck_global(ptr %t89) store ptr %t90, ptr %t91 %t93 = load ptr, ptr %t91 %t94 = icmp ne ptr %t93, null %t95 = zext i1 %t94 to i32 %t96 = icmp ne i32 %t95, 0 %t97 = zext i1 %t96 to i32 store i32 %t97, ptr %t92 br i1 %t96, label %sc25, label %scend26 sc25: %t98 = load ptr, ptr %t91 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 3 %t100 = load ptr, ptr %t99 %t101 = call i32 @fn_is_fn_type(ptr %t100) %t102 = icmp ne i32 %t101, 0 %t103 = zext i1 %t102 to i32 store i32 %t103, ptr %t92 br label %scend26 scend26: %t104 = load i32, ptr %t92 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then27, label %ifend29 then27: %t106 = load ptr, ptr %t0 %t107 = load ptr, ptr %t1 %t108 = load ptr, ptr %t91 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 3 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_ck_call_sig(ptr %t106, ptr %t107, ptr %t110) store ptr %t111, ptr %retval br label %ret ifend29: %t112 = load ptr, ptr %t0 call void @fn_ck_walk_args(ptr %t112) store ptr @.str10221, ptr %retval br label %ret ret: %t113 = load ptr, ptr %retval ret ptr %t113 } define void @fn_ck_emit(ptr %arg_s) { entry: %t0 = alloca ptr %t5 = alloca ptr %t12 = alloca i32 %t38 = alloca ptr %t43 = alloca ptr %t53 = alloca ptr store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_find_event(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 4 %t8 = load ptr, ptr %t7 %t9 = icmp eq ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 0, ptr %t12 br label %wcond3 wcond3: %t13 = load i32, ptr %t12 %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 4 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp slt i32 %t13, %t20 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %wbody4, label %wend5 wbody4: %t24 = load ptr, ptr %t0 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 4 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7 %t28 = load ptr, ptr %t27 %t29 = load i32, ptr %t12 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ult i32 %t29, %t33 br i1 %t34, label %ixok6, label %ixbad7 ixbad7: %t35 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t35, ptr @.fmt_bounds, ptr @.str10222, i32 %t29, i32 %t33) call void @exit(i32 1) unreachable ixok6: %t36 = getelementptr inbounds ptr, ptr %t31, i32 %t29 %t37 = load ptr, ptr %t36 store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 4 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_ck_expr(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t5 %t45 = icmp ne ptr %t44, null %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then8, label %ifend10 then8: %t48 = load ptr, ptr %t5 %t49 = load ptr, ptr %t38 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1 %t51 = load ptr, ptr %t50 %t52 = call ptr @fn_ck_field(ptr %t48, ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = icmp ne ptr %t54, null %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then11, label %ifend13 then11: %t58 = load ptr, ptr %t53 %t59 = load ptr, ptr %t43 %t60 = load ptr, ptr %t38 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4 %t62 = load ptr, ptr %t61 %t63 = load ptr, ptr %t38 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 1 %t65 = load ptr, ptr %t64 %t66 = call ptr @lp_str_concat(ptr @.str10223, ptr %t65) %t67 = call ptr @lp_str_concat(ptr %t66, ptr @.str10224) %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 %t71 = call ptr @lp_str_concat(ptr %t67, ptr %t70) call void @fn_ck_give(ptr %t58, ptr %t59, ptr %t62, ptr %t71) br label %ifend13 ifend13: br label %ifend10 ifend10: %t72 = load i32, ptr %t12 %t73 = add i32 %t72, 1 store i32 %t73, ptr %t12 br label %wcond3 wend5: br label %ret ret: ret void } define void @fn_ck_block(ptr %arg_b) { entry: %t0 = alloca ptr %t13 = alloca i32 %t14 = alloca i32 store ptr %arg_b, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 0 %t7 = load i32, ptr %t6 %t8 = icmp ne i32 %t7, 7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: %t11 = load ptr, ptr %t0 call void @fn_ck_stmt(ptr %t11) br label %ret ifend5: %t12 = call i32 @fn_ck_mark() store i32 %t12, ptr %t13 store i32 0, ptr %t14 br label %wcond6 wcond6: %t15 = load i32, ptr %t14 %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp slt i32 %t15, %t20 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %wbody7, label %wend8 wbody7: %t24 = load ptr, ptr %t0 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7 %t26 = load ptr, ptr %t25 %t27 = load i32, ptr %t14 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok9, label %ixbad10 ixbad10: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str10225, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok9: %t34 = getelementptr inbounds ptr, ptr %t29, i32 %t27 %t35 = load ptr, ptr %t34 call void @fn_ck_stmt(ptr %t35) %t36 = load i32, ptr %t14 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t14 br label %wcond6 wend8: %t38 = load i32, ptr %t13 call void @fn_ck_pop(i32 %t38) br label %ret ret: ret void } define ptr @fn_ck_target(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 33 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 %t8 = call ptr @fn_ck_id(ptr %t7) store ptr %t8, ptr %retval br label %ret ifend2: %t9 = load ptr, ptr %t0 %t10 = call ptr @fn_ck_expr(ptr %t9) store ptr %t10, ptr %retval br label %ret ret: %t11 = load ptr, ptr %retval ret ptr %t11 } define void @fn_ck_let(ptr %arg_s) { entry: %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_s, ptr %t0 store ptr @.str10226, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 3 %t4 = load ptr, ptr %t3 store ptr %t4, ptr @g_ck_expect %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 4 %t7 = load ptr, ptr %t6 %t8 = icmp ne ptr %t7, null %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4 %t13 = load ptr, ptr %t12 %t14 = call ptr @fn_ck_expr(ptr %t13) store ptr %t14, ptr %t1 br label %ifend2 ifend2: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 3 %t17 = load ptr, ptr %t16 %t18 = icmp ne ptr %t17, null %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load ptr, ptr %t0 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 4 %t23 = load ptr, ptr %t22 %t24 = icmp ne ptr %t23, null %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %ifend8 then6: %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 3 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t1 %t31 = load ptr, ptr %t0 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 4 %t33 = load ptr, ptr %t32 %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t35 call void @fn_ck_give(ptr %t29, ptr %t30, ptr %t33, ptr %t36) br label %ifend8 ifend8: %t37 = load ptr, ptr %t0 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 %t40 = load ptr, ptr %t0 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 3 %t42 = load ptr, ptr %t41 call void @fn_ck_bind(ptr %t39, ptr %t42) br label %ret ifend5: %t43 = load ptr, ptr %t0 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 1 %t45 = load ptr, ptr %t44 %t46 = load ptr, ptr %t1 call void @fn_ck_bind(ptr %t45, ptr %t46) br label %ret ret: ret void } define void @fn_ck_assign(ptr %arg_s) { entry: %t0 = alloca ptr %t5 = alloca ptr %t16 = alloca ptr %t17 = alloca ptr %t60 = alloca ptr %t72 = alloca ptr store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_ck_target(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str10227) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t5 store ptr %t11, ptr @g_ck_expect br label %ifend2 ifend2: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 5 %t14 = load ptr, ptr %t13 %t15 = call ptr @fn_ck_expr(ptr %t14) store ptr %t15, ptr %t16 store ptr @.str10228, ptr %t17 %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 0 %t22 = load i32, ptr %t21 %t23 = icmp eq i32 %t22, 33 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then3, label %ifend5 then3: %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 4 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 store ptr %t30, ptr %t17 br label %ifend5 ifend5: %t31 = load ptr, ptr %t0 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 4 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 0 %t35 = load i32, ptr %t34 %t36 = icmp eq i32 %t35, 35 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then6, label %ifend8 then6: %t39 = load ptr, ptr %t0 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 4 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 %t44 = call ptr @lp_str_concat(ptr @.str10229, ptr %t43) store ptr %t44, ptr %t17 br label %ifend8 ifend8: %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = call i32 @lp_str_eq(ptr %t47, ptr @.str10230) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then9, label %ifend11 then9: %t50 = load ptr, ptr %t5 %t51 = load ptr, ptr %t16 %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 5 %t54 = load ptr, ptr %t53 %t55 = load ptr, ptr %t17 call void @fn_ck_give(ptr %t50, ptr %t51, ptr %t54, ptr %t55) br label %ret ifend11: %t56 = load ptr, ptr %t0 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = call ptr @lp_str_slice(ptr %t58, i32 0, i32 1) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t0 %t62 = load ptr, ptr %t60 %t63 = load ptr, ptr %t5 %t64 = load ptr, ptr %t16 %t65 = load ptr, ptr %t0 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 4 %t67 = load ptr, ptr %t66 %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 5 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_ck_binop(ptr %t61, ptr %t62, ptr %t63, ptr %t64, ptr %t67, ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t5 %t74 = load ptr, ptr %t72 %t75 = load ptr, ptr %t0 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 5 %t77 = load ptr, ptr %t76 %t78 = load ptr, ptr %t17 call void @fn_ck_give(ptr %t73, ptr %t74, ptr %t77, ptr %t78) br label %ret ret: ret void } define void @fn_ck_match(ptr %arg_s) { entry: %t0 = alloca ptr %t5 = alloca i32 %t27 = alloca ptr %t29 = alloca i32 %t30 = alloca i32 %t52 = alloca ptr %t59 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_ck_expr(ptr %t3) store i32 0, ptr %t5 br label %wcond0 wcond0: %t6 = load i32, ptr %t5 %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 7 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t6, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %wbody1, label %wend2 wbody1: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7 %t17 = load ptr, ptr %t16 %t18 = load i32, ptr %t5 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok3, label %ixbad4 ixbad4: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str10231, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok3: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 store ptr %t26, ptr %t27 %t28 = call i32 @fn_ck_mark() store i32 %t28, ptr %t29 store i32 0, ptr %t30 br label %wcond5 wcond5: %t31 = load i32, ptr %t30 %t32 = load ptr, ptr %t27 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 7 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp slt i32 %t31, %t36 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %wbody6, label %wend7 wbody6: %t40 = load ptr, ptr %t27 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 7 %t42 = load ptr, ptr %t41 %t43 = load i32, ptr %t30 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 %t43, %t47 br i1 %t48, label %ixok8, label %ixbad9 ixbad9: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str10232, i32 %t43, i32 %t47) call void @exit(i32 1) unreachable ixok8: %t50 = getelementptr inbounds ptr, ptr %t45, i32 %t43 %t51 = load ptr, ptr %t50 store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 0 %t55 = load i32, ptr %t54 %t56 = icmp eq i32 %t55, 34 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then10, label %ifend12 then10: store i32 0, ptr %t59 br label %wcond13 wcond13: %t60 = load i32, ptr %t59 %t61 = load ptr, ptr %t52 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 7 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp slt i32 %t60, %t65 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %wbody14, label %wend15 wbody14: %t69 = load ptr, ptr %t52 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 7 %t71 = load ptr, ptr %t70 %t72 = load i32, ptr %t59 %t73 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp ult i32 %t72, %t76 br i1 %t77, label %ixok16, label %ixbad17 ixbad17: %t78 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t78, ptr @.fmt_bounds, ptr @.str10233, i32 %t72, i32 %t76) call void @exit(i32 1) unreachable ixok16: %t79 = getelementptr inbounds ptr, ptr %t74, i32 %t72 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 0 %t82 = load i32, ptr %t81 %t83 = icmp eq i32 %t82, 33 %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then18, label %ifend20 then18: %t86 = load ptr, ptr %t52 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 7 %t88 = load ptr, ptr %t87 %t89 = load i32, ptr %t59 %t90 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp ult i32 %t89, %t93 br i1 %t94, label %ixok21, label %ixbad22 ixbad22: %t95 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t95, ptr @.fmt_bounds, ptr @.str10234, i32 %t89, i32 %t93) call void @exit(i32 1) unreachable ixok21: %t96 = getelementptr inbounds ptr, ptr %t91, i32 %t89 %t97 = load ptr, ptr %t96 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 1 %t99 = load ptr, ptr %t98 call void @fn_ck_bind(ptr %t99, ptr @.str10235) br label %ifend20 ifend20: %t100 = load i32, ptr %t59 %t101 = add i32 %t100, 1 store i32 %t101, ptr %t59 br label %wcond13 wend15: br label %ifend12 ifend12: %t102 = load i32, ptr %t30 %t103 = add i32 %t102, 1 store i32 %t103, ptr %t30 br label %wcond5 wend7: %t104 = load ptr, ptr %t27 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 4 %t106 = load ptr, ptr %t105 call void @fn_ck_block(ptr %t106) %t107 = load i32, ptr %t29 call void @fn_ck_pop(i32 %t107) %t108 = load i32, ptr %t5 %t109 = add i32 %t108, 1 store i32 %t109, ptr %t5 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_ck_stmt(ptr %arg_s) { entry: %t0 = alloca ptr %t8 = alloca i32 %t68 = alloca i32 %t91 = alloca ptr store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 0 %t7 = load i32, ptr %t6 store i32 %t7, ptr %t8 %t9 = load i32, ptr %t8 %t10 = icmp eq i32 %t9, 7 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: %t13 = load ptr, ptr %t0 call void @fn_ck_block(ptr %t13) br label %ret ifend5: %t14 = load i32, ptr %t8 %t15 = icmp eq i32 %t14, 10 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: %t18 = load ptr, ptr %t0 call void @fn_ck_let(ptr %t18) br label %ret ifend8: %t19 = load i32, ptr %t8 %t20 = icmp eq i32 %t19, 11 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then9, label %ifend11 then9: %t23 = load ptr, ptr %t0 call void @fn_ck_assign(ptr %t23) br label %ret ifend11: %t24 = load i32, ptr %t8 %t25 = icmp eq i32 %t24, 12 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then12, label %ifend14 then12: %t28 = load ptr, ptr %t0 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 4 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 4 %t33 = load ptr, ptr %t32 %t34 = call ptr @fn_ck_expr(ptr %t33) call void @fn_ck_cond(ptr %t30, ptr %t34) %t35 = load ptr, ptr %t0 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 5 %t37 = load ptr, ptr %t36 call void @fn_ck_block(ptr %t37) %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 6 %t40 = load ptr, ptr %t39 call void @fn_ck_block(ptr %t40) br label %ret ifend14: %t41 = load i32, ptr %t8 %t42 = icmp eq i32 %t41, 13 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then15, label %ifend17 then15: %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 4 %t47 = load ptr, ptr %t46 %t48 = load ptr, ptr %t0 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 4 %t50 = load ptr, ptr %t49 %t51 = call ptr @fn_ck_expr(ptr %t50) call void @fn_ck_cond(ptr %t47, ptr %t51) %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 5 %t54 = load ptr, ptr %t53 call void @fn_ck_block(ptr %t54) br label %ret ifend17: %t55 = load i32, ptr %t8 %t56 = icmp eq i32 %t55, 14 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then18, label %ifend20 then18: %t59 = load ptr, ptr %t0 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 4 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_ck_expr(ptr %t61) %t63 = load ptr, ptr %t0 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 5 %t65 = load ptr, ptr %t64 %t66 = call ptr @fn_ck_expr(ptr %t65) %t67 = call i32 @fn_ck_mark() store i32 %t67, ptr %t68 %t69 = load ptr, ptr %t0 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 call void @fn_ck_bind(ptr %t71, ptr @.str10236) %t72 = load ptr, ptr %t0 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 6 %t74 = load ptr, ptr %t73 call void @fn_ck_block(ptr %t74) %t75 = load i32, ptr %t68 call void @fn_ck_pop(i32 %t75) br label %ret ifend20: %t76 = load i32, ptr %t8 %t77 = icmp eq i32 %t76, 15 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then21, label %ifend23 then21: %t80 = load ptr, ptr %t0 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 4 %t82 = load ptr, ptr %t81 %t83 = icmp eq ptr %t82, null %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then24, label %ifend26 then24: br label %ret ifend26: %t86 = load ptr, ptr @g_ck_ret store ptr %t86, ptr @g_ck_expect %t87 = load ptr, ptr %t0 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 4 %t89 = load ptr, ptr %t88 %t90 = call ptr @fn_ck_expr(ptr %t89) store ptr %t90, ptr %t91 %t92 = load ptr, ptr @g_ck_ret %t93 = call i32 @lp_str_eq(ptr %t92, ptr @.str10237) %t94 = icmp eq i32 %t93, 0 %t95 = zext i1 %t94 to i32 %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %then27, label %ifend29 then27: %t97 = load ptr, ptr @g_ck_ret %t98 = load ptr, ptr %t91 %t99 = load ptr, ptr %t0 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 4 %t101 = load ptr, ptr %t100 call void @fn_ck_give(ptr %t97, ptr %t98, ptr %t101, ptr @.str10238) br label %ifend29 ifend29: br label %ret ifend23: %t102 = load i32, ptr %t8 %t103 = icmp eq i32 %t102, 16 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then30, label %ifend32 then30: %t106 = load ptr, ptr %t0 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 4 %t108 = load ptr, ptr %t107 %t109 = call ptr @fn_ck_expr(ptr %t108) br label %ret ifend32: %t110 = load i32, ptr %t8 %t111 = icmp eq i32 %t110, 19 %t112 = zext i1 %t111 to i32 %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then33, label %ifend35 then33: %t114 = load ptr, ptr %t0 call void @fn_ck_match(ptr %t114) br label %ret ifend35: %t115 = load i32, ptr %t8 %t116 = icmp eq i32 %t115, 49 %t117 = zext i1 %t116 to i32 %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then36, label %ifend38 then36: %t119 = load ptr, ptr %t0 call void @fn_ck_emit(ptr %t119) br label %ret ifend38: %t120 = load i32, ptr %t8 %t121 = icmp eq i32 %t120, 56 %t122 = zext i1 %t121 to i32 %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then39, label %ifend41 then39: %t124 = load ptr, ptr %t0 call void @fn_ck_unsafe_here(ptr %t124) %t125 = load i32, ptr @g_ck_unsafe %t126 = add i32 %t125, 1 store i32 %t126, ptr @g_ck_unsafe %t127 = load ptr, ptr %t0 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 4 %t129 = load ptr, ptr %t128 call void @fn_ck_block(ptr %t129) %t130 = load i32, ptr @g_ck_unsafe %t131 = sub i32 %t130, 1 store i32 %t131, ptr @g_ck_unsafe br label %ret ifend41: br label %ret ret: ret void } define void @fn_ck_fn_body(ptr %arg_d) { entry: %t0 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_d, ptr %t0 %t1 = call i32 @fn_ck_mark() store i32 %t1, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t4, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody1, label %wend2 wbody1: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7 %t15 = load ptr, ptr %t14 %t16 = load i32, ptr %t3 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 %t16, %t20 br i1 %t21, label %ixok3, label %ixbad4 ixbad4: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str10239, i32 %t16, i32 %t20) call void @exit(i32 1) unreachable ixok3: %t23 = getelementptr inbounds ptr, ptr %t18, i32 %t16 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 0 %t26 = load i32, ptr %t25 %t27 = icmp eq i32 %t26, 5 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then5, label %ifend7 then5: %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7 %t32 = load ptr, ptr %t31 %t33 = load i32, ptr %t3 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 %t33, %t37 br i1 %t38, label %ixok8, label %ixbad9 ixbad9: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str10240, i32 %t33, i32 %t37) call void @exit(i32 1) unreachable ixok8: %t40 = getelementptr inbounds ptr, ptr %t35, i32 %t33 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 %t44 = load ptr, ptr %t0 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = load i32, ptr %t3 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok10, label %ixbad11 ixbad11: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str10241, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok10: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 3 %t57 = load ptr, ptr %t56 call void @fn_ck_bind(ptr %t43, ptr %t57) br label %ifend7 ifend7: %t58 = load i32, ptr %t3 %t59 = add i32 %t58, 1 store i32 %t59, ptr %t3 br label %wcond0 wend2: %t60 = load ptr, ptr %t0 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 3 %t62 = load ptr, ptr %t61 store ptr %t62, ptr @g_ck_ret %t63 = load ptr, ptr @g_ck_ret %t64 = icmp eq ptr %t63, null %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then12, label %ifend14 then12: store ptr @.str10242, ptr @g_ck_ret br label %ifend14 ifend14: %t67 = load ptr, ptr %t0 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 12 %t69 = load i32, ptr %t68 %t70 = icmp eq i32 %t69, 1 %t71 = zext i1 %t70 to i32 %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then15, label %ifend17 then15: %t73 = load ptr, ptr %t0 call void @fn_ck_unsafe_here(ptr %t73) %t74 = load i32, ptr @g_ck_unsafe %t75 = add i32 %t74, 1 store i32 %t75, ptr @g_ck_unsafe br label %ifend17 ifend17: %t76 = load ptr, ptr %t0 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 4 %t78 = load ptr, ptr %t77 call void @fn_ck_block(ptr %t78) %t79 = load ptr, ptr %t0 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 12 %t81 = load i32, ptr %t80 %t82 = icmp eq i32 %t81, 1 %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then18, label %ifend20 then18: %t85 = load i32, ptr @g_ck_unsafe %t86 = sub i32 %t85, 1 store i32 %t86, ptr @g_ck_unsafe br label %ifend20 ifend20: store ptr @.str10243, ptr @g_ck_ret %t87 = load i32, ptr %t2 call void @fn_ck_pop(i32 %t87) br label %ret ret: ret void } define void @fn_ck_listener(ptr %arg_l) { entry: %t0 = alloca ptr %t5 = alloca ptr %t7 = alloca i32 %t12 = alloca i32 store ptr %arg_l, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_find_event(ptr %t3) store ptr %t4, ptr %t5 %t6 = call i32 @fn_ck_mark() store i32 %t6, ptr %t7 %t8 = load ptr, ptr %t5 %t9 = icmp ne ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: store i32 0, ptr %t12 br label %wcond3 wcond3: %t13 = load i32, ptr %t12 %t14 = load ptr, ptr %t5 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 7 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp slt i32 %t13, %t18 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %wbody4, label %wend5 wbody4: %t22 = load ptr, ptr %t5 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 7 %t24 = load ptr, ptr %t23 %t25 = load i32, ptr %t12 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp ult i32 %t25, %t29 br i1 %t30, label %ixok6, label %ixbad7 ixbad7: %t31 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t31, ptr @.fmt_bounds, ptr @.str10244, i32 %t25, i32 %t29) call void @exit(i32 1) unreachable ixok6: %t32 = getelementptr inbounds ptr, ptr %t27, i32 %t25 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 %t36 = load ptr, ptr %t5 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7 %t38 = load ptr, ptr %t37 %t39 = load i32, ptr %t12 %t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t43 = load i32, ptr %t42 %t44 = icmp ult i32 %t39, %t43 br i1 %t44, label %ixok8, label %ixbad9 ixbad9: %t45 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t45, ptr @.fmt_bounds, ptr @.str10245, i32 %t39, i32 %t43) call void @exit(i32 1) unreachable ixok8: %t46 = getelementptr inbounds ptr, ptr %t41, i32 %t39 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3 %t49 = load ptr, ptr %t48 call void @fn_ck_bind(ptr %t35, ptr %t49) %t50 = load i32, ptr %t12 %t51 = add i32 %t50, 1 store i32 %t51, ptr %t12 br label %wcond3 wend5: br label %ifend2 ifend2: store ptr @.str10246, ptr @g_ck_ret %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4 %t54 = load ptr, ptr %t53 call void @fn_ck_block(ptr %t54) %t55 = load i32, ptr %t7 call void @fn_ck_pop(i32 %t55) br label %ret ret: ret void } define void @fn_ck_runtime_shadows() { entry: %t0 = alloca i32 %t16 = alloca ptr %t17 = alloca i32 %t25 = alloca i32 %t51 = alloca i32 %t69 = alloca ptr %t80 = alloca ptr %t81 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load i32, ptr @g_g_prog_user_end %t3 = icmp slt i32 %t1, %t2 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %wbody1, label %wend2 wbody1: %t6 = load ptr, ptr @g_prog %t7 = load i32, ptr %t0 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 %t7, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str10247, i32 %t7, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 %t7 %t15 = load ptr, ptr %t14 store ptr %t15, ptr %t16 %t18 = load ptr, ptr %t16 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0 %t20 = load i32, ptr %t19 %t21 = icmp eq i32 %t20, 4 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t17 br i1 %t23, label %sc5, label %scend6 sc5: %t26 = load ptr, ptr %t16 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = call i32 @fn_is_intrinsic(ptr %t28) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t25 br i1 %t30, label %scend8, label %sc7 sc7: %t32 = load ptr, ptr %t16 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 %t35 = call i32 @fn_is_intrinsic2(ptr %t34) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t25 br label %scend8 scend8: %t38 = load i32, ptr %t25 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t17 br label %scend6 scend6: %t41 = load i32, ptr %t17 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: %t43 = load ptr, ptr %t16 %t44 = load ptr, ptr %t16 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1 %t46 = load ptr, ptr %t45 %t47 = call ptr @lp_str_concat(ptr %t46, ptr @.str10249) call void @fn_ck_err(ptr @.str10248, ptr %t43, ptr %t47) br label %ifend11 ifend11: %t48 = load i32, ptr %t0 %t49 = add i32 %t48, 1 store i32 %t49, ptr %t0 br label %wcond0 wend2: %t50 = load i32, ptr @g_g_prog_user_end store i32 %t50, ptr %t51 br label %wcond12 wcond12: %t52 = load i32, ptr %t51 %t53 = load ptr, ptr @g_prog %t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp slt i32 %t52, %t55 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %wbody13, label %wend14 wbody13: %t59 = load ptr, ptr @g_prog %t60 = load i32, ptr %t51 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 %t60, %t64 br i1 %t65, label %ixok15, label %ixbad16 ixbad16: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str10250, i32 %t60, i32 %t64) call void @exit(i32 1) unreachable ixok15: %t67 = getelementptr inbounds ptr, ptr %t62, i32 %t60 %t68 = load ptr, ptr %t67 store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 0 %t72 = load i32, ptr %t71 %t73 = icmp eq i32 %t72, 4 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then17, label %ifend19 then17: %t76 = load ptr, ptr %t69 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 1 %t78 = load ptr, ptr %t77 %t79 = call ptr @fn_ck_fn(ptr %t78) store ptr %t79, ptr %t80 %t82 = load ptr, ptr %t80 %t83 = icmp ne ptr %t82, null %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t81 br i1 %t85, label %sc20, label %scend21 sc20: %t87 = load ptr, ptr %t80 %t88 = load ptr, ptr %t69 %t89 = icmp ne ptr %t87, %t88 %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t81 br label %scend21 scend21: %t93 = load i32, ptr %t81 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then22, label %ifend24 then22: %t95 = load ptr, ptr %t80 %t96 = load ptr, ptr %t69 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 1 %t98 = load ptr, ptr %t97 %t99 = call ptr @lp_str_concat(ptr %t98, ptr @.str10252) %t100 = load ptr, ptr %t69 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 9 %t102 = load ptr, ptr %t101 %t103 = call ptr @lp_str_concat(ptr %t99, ptr %t102) %t104 = call ptr @lp_str_concat(ptr %t103, ptr @.str10253) call void @fn_ck_err(ptr @.str10251, ptr %t95, ptr %t104) br label %ifend24 ifend24: br label %ifend19 ifend19: %t105 = load i32, ptr %t51 %t106 = add i32 %t105, 1 store i32 %t106, ptr %t51 br label %wcond12 wend14: br label %ret ret: ret void } define void @fn_check_program() { entry: %t0 = alloca i32 %t18 = alloca ptr %t26 = alloca i32 %t46 = alloca i32 %t47 = alloca i32 %t89 = alloca i32 %t130 = alloca i32 %t146 = alloca ptr call void @fn_gen_collect() call void @fn_ck_index() call void @fn_ck_runtime_shadows() store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str10254, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 4 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: %t25 = load ptr, ptr %t18 call void @fn_ck_fn_body(ptr %t25) br label %ifend7 ifend7: %t27 = load ptr, ptr %t18 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 0 %t29 = load i32, ptr %t28 %t30 = icmp eq i32 %t29, 6 %t31 = zext i1 %t30 to i32 %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t26 br i1 %t32, label %scend9, label %sc8 sc8: %t34 = load ptr, ptr %t18 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 0 %t36 = load i32, ptr %t35 %t37 = icmp eq i32 %t36, 51 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t26 br label %scend9 scend9: %t41 = load i32, ptr %t26 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then10, label %ifend12 then10: %t43 = load ptr, ptr %t18 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 4 %t45 = load ptr, ptr %t44 call void @fn_ck_block(ptr %t45) br label %ifend12 ifend12: %t48 = load ptr, ptr %t18 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 0 %t50 = load i32, ptr %t49 %t51 = icmp eq i32 %t50, 2 %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t47 br i1 %t53, label %scend14, label %sc13 sc13: %t55 = load ptr, ptr %t18 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 0 %t57 = load i32, ptr %t56 %t58 = icmp eq i32 %t57, 3 %t59 = zext i1 %t58 to i32 %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t47 br label %scend14 scend14: %t62 = load i32, ptr %t47 %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t46 br i1 %t63, label %sc15, label %scend16 sc15: %t65 = load ptr, ptr %t18 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 4 %t67 = load ptr, ptr %t66 %t68 = icmp ne ptr %t67, null %t69 = zext i1 %t68 to i32 %t70 = icmp ne i32 %t69, 0 %t71 = zext i1 %t70 to i32 store i32 %t71, ptr %t46 br label %scend16 scend16: %t72 = load i32, ptr %t46 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then17, label %ifend19 then17: %t74 = load ptr, ptr %t18 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 3 %t76 = load ptr, ptr %t75 %t77 = load ptr, ptr %t18 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 4 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_ck_expr(ptr %t79) %t81 = load ptr, ptr %t18 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 4 %t83 = load ptr, ptr %t82 %t84 = load ptr, ptr %t18 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 call void @fn_ck_give(ptr %t76, ptr %t80, ptr %t83, ptr %t86) br label %ifend19 ifend19: %t87 = load i32, ptr %t0 %t88 = add i32 %t87, 1 store i32 %t88, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %t89 br label %wcond20 wcond20: %t90 = load i32, ptr %t89 %t91 = load ptr, ptr @g_g_onlisten %t92 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp slt i32 %t90, %t93 %t95 = zext i1 %t94 to i32 %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %wbody21, label %wend22 wbody21: %t97 = load ptr, ptr @g_g_onlisten %t98 = load i32, ptr %t89 %t99 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp ult i32 %t98, %t102 br i1 %t103, label %ixok23, label %ixbad24 ixbad24: %t104 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t104, ptr @.fmt_bounds, ptr @.str10255, i32 %t98, i32 %t102) call void @exit(i32 1) unreachable ixok23: %t105 = getelementptr inbounds ptr, ptr %t100, i32 %t98 %t106 = load ptr, ptr %t105 call void @fn_ck_listener(ptr %t106) %t107 = load i32, ptr %t89 %t108 = add i32 %t107, 1 store i32 %t108, ptr %t89 br label %wcond20 wend22: store i32 0, ptr %t89 br label %wcond25 wcond25: %t109 = load i32, ptr %t89 %t110 = load ptr, ptr @g_g_tests %t111 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 %t112 = load i32, ptr %t111 %t113 = icmp slt i32 %t109, %t112 %t114 = zext i1 %t113 to i32 %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %wbody26, label %wend27 wbody26: %t116 = load ptr, ptr @g_g_tests %t117 = load i32, ptr %t89 %t118 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 0 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 1 %t121 = load i32, ptr %t120 %t122 = icmp ult i32 %t117, %t121 br i1 %t122, label %ixok28, label %ixbad29 ixbad29: %t123 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t123, ptr @.fmt_bounds, ptr @.str10256, i32 %t117, i32 %t121) call void @exit(i32 1) unreachable ixok28: %t124 = getelementptr inbounds ptr, ptr %t119, i32 %t117 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 4 %t127 = load ptr, ptr %t126 call void @fn_ck_block(ptr %t127) %t128 = load i32, ptr %t89 %t129 = add i32 %t128, 1 store i32 %t129, ptr %t89 br label %wcond25 wend27: call void @fn_gen_finish() %t131 = load i32, ptr @g_ck_errors %t132 = icmp sgt i32 %t131, 0 %t133 = zext i1 %t132 to i32 %t134 = icmp ne i32 %t133, 0 %t135 = zext i1 %t134 to i32 store i32 %t135, ptr %t130 br i1 %t134, label %sc30, label %scend31 sc30: %t136 = call i32 @fn_ck_reporting() %t137 = icmp eq i32 %t136, 0 %t138 = zext i1 %t137 to i32 %t139 = icmp ne i32 %t138, 0 %t140 = zext i1 %t139 to i32 store i32 %t140, ptr %t130 br label %scend31 scend31: %t141 = load i32, ptr %t130 %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then32, label %ifend34 then32: %t143 = load i32, ptr @g_ck_errors %t144 = call ptr @fn_itoa(i32 %t143) %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str10257) store ptr %t145, ptr %t146 %t147 = load ptr, ptr @__stderrp %t148 = load ptr, ptr %t146 %t149 = load ptr, ptr %t146 %t150 = call i64 @strlen(ptr %t149) %t151 = trunc i64 %t150 to i32 %t152 = zext i32 %t151 to i64 %t153 = call i64 @fwrite(ptr %t148, i64 1, i64 %t152, ptr %t147) %t154 = trunc i64 %t153 to i32 call void @exit(i32 1) unreachable ifend34: br label %ret ret: ret void } define ptr @fn_gen_template(ptr %arg_list, ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_list, ptr %t0 store ptr %arg_name, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str10258, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 1 %t21 = load ptr, ptr %t20 %t22 = load ptr, ptr %t1 %t23 = call i32 @lp_str_eq(ptr %t21, ptr %t22) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: %t25 = load ptr, ptr %t0 %t26 = load i32, ptr %t2 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok8, label %ixbad9 ixbad9: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str10259, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok8: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 store ptr %t34, ptr %retval br label %ret ifend7: %t35 = load i32, ptr %t2 %t36 = add i32 %t35, 1 store i32 %t36, ptr %t2 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t37 = load ptr, ptr %retval ret ptr %t37 } define void @fn_gen_collect() { entry: %t6 = alloca ptr %t7 = alloca i32 %t8 = alloca i32 %t26 = alloca ptr %t27 = alloca i32 %t28 = alloca i32 %t0 = getelementptr %LSlice, ptr null, i32 1 %t1 = ptrtoint ptr %t0 to i64 %t2 = call ptr @malloc(i64 %t1) %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 store ptr null, ptr %t3 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 store i32 0, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 store i32 0, ptr %t5 store ptr %t2, ptr %t6 store i32 0, ptr %t7 store i32 0, ptr %t8 br label %wcond0 wcond0: %t9 = load i32, ptr %t8 %t10 = load ptr, ptr @g_prog %t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = load i32, ptr %t11 %t13 = icmp slt i32 %t9, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody1, label %wend2 wbody1: %t16 = load ptr, ptr @g_prog %t17 = load i32, ptr %t8 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp ult i32 %t17, %t21 br i1 %t22, label %ixok3, label %ixbad4 ixbad4: %t23 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t23, ptr @.fmt_bounds, ptr @.str10260, i32 %t17, i32 %t21) call void @exit(i32 1) unreachable ixok3: %t24 = getelementptr inbounds ptr, ptr %t19, i32 %t17 %t25 = load ptr, ptr %t24 store ptr %t25, ptr %t26 %t29 = load ptr, ptr %t26 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 8 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t28 br i1 %t34, label %scend6, label %sc5 sc5: %t36 = load ptr, ptr %t26 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 0 %t38 = load i32, ptr %t37 %t39 = icmp eq i32 %t38, 4 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t28 br label %scend6 scend6: %t43 = load i32, ptr %t28 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t27 br i1 %t44, label %sc7, label %scend8 sc7: %t46 = load ptr, ptr %t26 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 11 %t48 = load ptr, ptr %t47 %t49 = icmp ne ptr %t48, null %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t27 br label %scend8 scend8: %t53 = load i32, ptr %t27 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then9, label %else10 then9: %t55 = load ptr, ptr %t26 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 0 %t57 = load i32, ptr %t56 %t58 = icmp eq i32 %t57, 8 %t59 = zext i1 %t58 to i32 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then12, label %else13 then12: %t61 = load ptr, ptr @g_g_gen_recs %t62 = load ptr, ptr %t26 %t63 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t64 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 2 %t65 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0 %t66 = load i32, ptr %t63 %t67 = load i32, ptr %t64 %t68 = icmp sge i32 %t66, %t67 br i1 %t68, label %grow15, label %put16 grow15: %t69 = mul i32 %t67, 2 %t70 = icmp eq i32 %t67, 0 %t71 = select i1 %t70, i32 8, i32 %t69 %t72 = getelementptr ptr, ptr null, i32 1 %t73 = ptrtoint ptr %t72 to i64 %t74 = zext i32 %t71 to i64 %t75 = mul i64 %t74, %t73 %t76 = load ptr, ptr %t65 %t77 = call ptr @realloc(ptr %t76, i64 %t75) store ptr %t77, ptr %t65 store i32 %t71, ptr %t64 br label %put16 put16: %t78 = load ptr, ptr %t65 %t79 = getelementptr inbounds ptr, ptr %t78, i32 %t66 store ptr %t62, ptr %t79 %t80 = add i32 %t66, 1 store i32 %t80, ptr %t63 br label %ifend14 else13: %t81 = load ptr, ptr @g_g_gen_fns %t82 = load ptr, ptr %t26 %t83 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 1 %t84 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 2 %t85 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 0 %t86 = load i32, ptr %t83 %t87 = load i32, ptr %t84 %t88 = icmp sge i32 %t86, %t87 br i1 %t88, label %grow17, label %put18 grow17: %t89 = mul i32 %t87, 2 %t90 = icmp eq i32 %t87, 0 %t91 = select i1 %t90, i32 8, i32 %t89 %t92 = getelementptr ptr, ptr null, i32 1 %t93 = ptrtoint ptr %t92 to i64 %t94 = zext i32 %t91 to i64 %t95 = mul i64 %t94, %t93 %t96 = load ptr, ptr %t85 %t97 = call ptr @realloc(ptr %t96, i64 %t95) store ptr %t97, ptr %t85 store i32 %t91, ptr %t84 br label %put18 put18: %t98 = load ptr, ptr %t85 %t99 = getelementptr inbounds ptr, ptr %t98, i32 %t86 store ptr %t82, ptr %t99 %t100 = add i32 %t86, 1 store i32 %t100, ptr %t83 br label %ifend14 ifend14: %t101 = load i32, ptr %t8 %t102 = load i32, ptr @g_g_prog_user_end %t103 = icmp slt i32 %t101, %t102 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then19, label %ifend21 then19: %t106 = load i32, ptr %t7 %t107 = add i32 %t106, 1 store i32 %t107, ptr %t7 br label %ifend21 ifend21: br label %ifend11 else10: %t108 = load ptr, ptr %t6 %t109 = load ptr, ptr %t26 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t111 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2 %t112 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t113 = load i32, ptr %t110 %t114 = load i32, ptr %t111 %t115 = icmp sge i32 %t113, %t114 br i1 %t115, label %grow22, label %put23 grow22: %t116 = mul i32 %t114, 2 %t117 = icmp eq i32 %t114, 0 %t118 = select i1 %t117, i32 8, i32 %t116 %t119 = getelementptr ptr, ptr null, i32 1 %t120 = ptrtoint ptr %t119 to i64 %t121 = zext i32 %t118 to i64 %t122 = mul i64 %t121, %t120 %t123 = load ptr, ptr %t112 %t124 = call ptr @realloc(ptr %t123, i64 %t122) store ptr %t124, ptr %t112 store i32 %t118, ptr %t111 br label %put23 put23: %t125 = load ptr, ptr %t112 %t126 = getelementptr inbounds ptr, ptr %t125, i32 %t113 store ptr %t109, ptr %t126 %t127 = add i32 %t113, 1 store i32 %t127, ptr %t110 br label %ifend11 ifend11: %t128 = load i32, ptr %t8 %t129 = add i32 %t128, 1 store i32 %t129, ptr %t8 br label %wcond0 wend2: %t130 = load ptr, ptr %t6 store ptr %t130, ptr @g_prog %t131 = load i32, ptr @g_g_prog_user_end %t132 = load i32, ptr %t7 %t133 = sub i32 %t131, %t132 store i32 %t133, ptr @g_g_prog_user_end br label %ret ret: ret void } define i32 @fn_gen_index(ptr %arg_xs, ptr %arg_s) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_xs, ptr %t0 store ptr %arg_s, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str10261, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = load ptr, ptr %t1 %t21 = call i32 @lp_str_eq(ptr %t19, ptr %t20) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load i32, ptr %t2 store i32 %t23, ptr %retval br label %ret ifend7: %t24 = load i32, ptr %t2 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t2 br label %wcond0 wend2: %t26 = sub i32 0, 1 store i32 %t26, ptr %retval br label %ret ret: %t27 = load i32, ptr %retval ret i32 %t27 } define ptr @fn_gen_subst(ptr %arg_t, ptr %arg_tps, ptr %arg_args) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t10 = alloca i32 %t39 = alloca ptr %t40 = alloca ptr %t41 = alloca i32 %t82 = alloca i32 %t83 = alloca i32 %t116 = alloca ptr %t123 = alloca ptr %t124 = alloca i32 store ptr %arg_t, ptr %t0 store ptr %arg_tps, ptr %t1 store ptr %arg_args, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t1 %t8 = load ptr, ptr %t0 %t9 = call i32 @fn_gen_index(ptr %t7, ptr %t8) store i32 %t9, ptr %t10 %t11 = load i32, ptr %t10 %t12 = icmp sge i32 %t11, 0 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then3, label %ifend5 then3: %t15 = load ptr, ptr %t2 %t16 = load i32, ptr %t10 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 %t16, %t20 br i1 %t21, label %ixok6, label %ixbad7 ixbad7: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str10262, i32 %t16, i32 %t20) call void @exit(i32 1) unreachable ixok6: %t23 = getelementptr inbounds ptr, ptr %t18, i32 %t16 %t24 = load ptr, ptr %t23 store ptr %t24, ptr %retval br label %ret ifend5: %t25 = load ptr, ptr %t0 %t26 = call i32 @fn_is_slice_ty(ptr %t25) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then8, label %ifend10 then8: %t28 = load ptr, ptr %t0 %t29 = call ptr @fn_slice_elem(ptr %t28) %t30 = load ptr, ptr %t1 %t31 = load ptr, ptr %t2 %t32 = call ptr @fn_gen_subst(ptr %t29, ptr %t30, ptr %t31) %t33 = call ptr @lp_str_concat(ptr @.str10263, ptr %t32) store ptr %t33, ptr %retval br label %ret ifend10: %t34 = load ptr, ptr %t0 %t35 = call i32 @fn_is_fn_type(ptr %t34) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then11, label %ifend13 then11: %t37 = load ptr, ptr %t0 %t38 = call ptr @fn_fn_ty_params(ptr %t37) store ptr %t38, ptr %t39 store ptr @.str10264, ptr %t40 store i32 0, ptr %t41 br label %wcond14 wcond14: %t42 = load i32, ptr %t41 %t43 = load ptr, ptr %t39 %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t45 = load i32, ptr %t44 %t46 = icmp slt i32 %t42, %t45 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %wbody15, label %wend16 wbody15: %t49 = load i32, ptr %t41 %t50 = icmp sgt i32 %t49, 0 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then17, label %ifend19 then17: %t53 = load ptr, ptr %t40 %t54 = call ptr @lp_str_concat(ptr %t53, ptr @.str10265) store ptr %t54, ptr %t40 br label %ifend19 ifend19: %t55 = load ptr, ptr %t40 %t56 = load ptr, ptr %t39 %t57 = load i32, ptr %t41 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 %t57, %t61 br i1 %t62, label %ixok20, label %ixbad21 ixbad21: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str10266, i32 %t57, i32 %t61) call void @exit(i32 1) unreachable ixok20: %t64 = getelementptr inbounds ptr, ptr %t59, i32 %t57 %t65 = load ptr, ptr %t64 %t66 = load ptr, ptr %t1 %t67 = load ptr, ptr %t2 %t68 = call ptr @fn_gen_subst(ptr %t65, ptr %t66, ptr %t67) %t69 = call ptr @lp_str_concat(ptr %t55, ptr %t68) store ptr %t69, ptr %t40 %t70 = load i32, ptr %t41 %t71 = add i32 %t70, 1 store i32 %t71, ptr %t41 br label %wcond14 wend16: %t72 = load ptr, ptr %t40 %t73 = call ptr @lp_str_concat(ptr %t72, ptr @.str10267) %t74 = load ptr, ptr %t0 %t75 = call ptr @fn_fn_ty_ret(ptr %t74) %t76 = load ptr, ptr %t1 %t77 = load ptr, ptr %t2 %t78 = call ptr @fn_gen_subst(ptr %t75, ptr %t76, ptr %t77) %t79 = call ptr @lp_str_concat(ptr %t73, ptr %t78) store ptr %t79, ptr %retval br label %ret ifend13: %t80 = load ptr, ptr %t0 %t81 = call i32 @fn_gen_find(ptr %t80) store i32 %t81, ptr %t82 %t84 = load i32, ptr %t82 %t85 = icmp sge i32 %t84, 0 %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t83 br i1 %t87, label %sc22, label %scend23 sc22: %t89 = load ptr, ptr @g_g_gi_open %t90 = load i32, ptr %t82 %t91 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1 %t94 = load i32, ptr %t93 %t95 = icmp ult i32 %t90, %t94 br i1 %t95, label %ixok24, label %ixbad25 ixbad25: %t96 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t96, ptr @.fmt_bounds, ptr @.str10268, i32 %t90, i32 %t94) call void @exit(i32 1) unreachable ixok24: %t97 = getelementptr inbounds i32, ptr %t92, i32 %t90 %t98 = load i32, ptr %t97 %t99 = icmp eq i32 %t98, 1 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t83 br label %scend23 scend23: %t103 = load i32, ptr %t83 %t104 = icmp ne i32 %t103, 0 br i1 %t104, label %then26, label %ifend28 then26: %t105 = load ptr, ptr @g_g_gi_args %t106 = load i32, ptr %t82 %t107 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 0 %t108 = load ptr, ptr %t107 %t109 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 1 %t110 = load i32, ptr %t109 %t111 = icmp ult i32 %t106, %t110 br i1 %t111, label %ixok29, label %ixbad30 ixbad30: %t112 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t112, ptr @.fmt_bounds, ptr @.str10269, i32 %t106, i32 %t110) call void @exit(i32 1) unreachable ixok29: %t113 = getelementptr inbounds ptr, ptr %t108, i32 %t106 %t114 = load ptr, ptr %t113 %t115 = call ptr @fn_gen_split(ptr %t114) store ptr %t115, ptr %t116 %t117 = getelementptr %LSlice, ptr null, i32 1 %t118 = ptrtoint ptr %t117 to i64 %t119 = call ptr @malloc(i64 %t118) %t120 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 store ptr null, ptr %t120 %t121 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 store i32 0, ptr %t121 %t122 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 2 store i32 0, ptr %t122 store ptr %t119, ptr %t123 store i32 0, ptr %t124 br label %wcond31 wcond31: %t125 = load i32, ptr %t124 %t126 = load ptr, ptr %t116 %t127 = getelementptr inbounds %LSlice, ptr %t126, i32 0, i32 1 %t128 = load i32, ptr %t127 %t129 = icmp slt i32 %t125, %t128 %t130 = zext i1 %t129 to i32 %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %wbody32, label %wend33 wbody32: %t132 = load ptr, ptr %t123 %t133 = load ptr, ptr %t116 %t134 = load i32, ptr %t124 %t135 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 1 %t138 = load i32, ptr %t137 %t139 = icmp ult i32 %t134, %t138 br i1 %t139, label %ixok34, label %ixbad35 ixbad35: %t140 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t140, ptr @.fmt_bounds, ptr @.str10270, i32 %t134, i32 %t138) call void @exit(i32 1) unreachable ixok34: %t141 = getelementptr inbounds ptr, ptr %t136, i32 %t134 %t142 = load ptr, ptr %t141 %t143 = load ptr, ptr %t1 %t144 = load ptr, ptr %t2 %t145 = call ptr @fn_gen_subst(ptr %t142, ptr %t143, ptr %t144) %t146 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 1 %t147 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 2 %t148 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 0 %t149 = load i32, ptr %t146 %t150 = load i32, ptr %t147 %t151 = icmp sge i32 %t149, %t150 br i1 %t151, label %grow36, label %put37 grow36: %t152 = mul i32 %t150, 2 %t153 = icmp eq i32 %t150, 0 %t154 = select i1 %t153, i32 8, i32 %t152 %t155 = getelementptr ptr, ptr null, i32 1 %t156 = ptrtoint ptr %t155 to i64 %t157 = zext i32 %t154 to i64 %t158 = mul i64 %t157, %t156 %t159 = load ptr, ptr %t148 %t160 = call ptr @realloc(ptr %t159, i64 %t158) store ptr %t160, ptr %t148 store i32 %t154, ptr %t147 br label %put37 put37: %t161 = load ptr, ptr %t148 %t162 = getelementptr inbounds ptr, ptr %t161, i32 %t149 store ptr %t145, ptr %t162 %t163 = add i32 %t149, 1 store i32 %t163, ptr %t146 %t164 = load i32, ptr %t124 %t165 = add i32 %t164, 1 store i32 %t165, ptr %t124 br label %wcond31 wend33: %t166 = load ptr, ptr @g_g_gi_gen %t167 = load i32, ptr %t82 %t168 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 0 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 1 %t171 = load i32, ptr %t170 %t172 = icmp ult i32 %t167, %t171 br i1 %t172, label %ixok38, label %ixbad39 ixbad39: %t173 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t173, ptr @.fmt_bounds, ptr @.str10271, i32 %t167, i32 %t171) call void @exit(i32 1) unreachable ixok38: %t174 = getelementptr inbounds ptr, ptr %t169, i32 %t167 %t175 = load ptr, ptr %t174 %t176 = load ptr, ptr %t123 %t177 = call ptr @fn_gen_instance(ptr %t175, ptr %t176) store ptr %t177, ptr %retval br label %ret ifend28: %t178 = load ptr, ptr %t0 store ptr %t178, ptr %retval br label %ret ret: %t179 = load ptr, ptr %retval ret ptr %t179 } define ptr @fn_gen_clone(ptr %arg_n, ptr %arg_tps, ptr %arg_args) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t23 = alloca ptr %t108 = alloca i32 store ptr %arg_n, ptr %t0 store ptr %arg_tps, ptr %t1 store ptr %arg_args, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = icmp eq ptr %t3, null %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t7 = getelementptr %Cmp_Node, ptr null, i32 1 %t8 = ptrtoint ptr %t7 to i64 %t9 = call ptr @malloc(i64 %t8) %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 0 store i32 0, ptr %t10 %t11 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1 store ptr null, ptr %t11 %t12 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 2 store i32 0, ptr %t12 %t13 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 3 store ptr null, ptr %t13 %t14 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4 store ptr null, ptr %t14 %t15 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 5 store ptr null, ptr %t15 %t16 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 6 store ptr null, ptr %t16 %t17 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 store ptr null, ptr %t17 %t18 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 8 store i32 0, ptr %t18 %t19 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 9 store ptr null, ptr %t19 %t20 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 10 store i32 0, ptr %t20 %t21 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 11 store ptr null, ptr %t21 %t22 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 12 store i32 0, ptr %t22 store ptr %t9, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 0 %t28 = load i32, ptr %t27 store i32 %t28, ptr %t25 %t29 = load ptr, ptr %t23 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t0 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 store ptr %t33, ptr %t30 %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 0 %t36 = load i32, ptr %t35 %t37 = icmp eq i32 %t36, 39 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then3, label %ifend5 then3: %t40 = load ptr, ptr %t23 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t0 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 1 %t44 = load ptr, ptr %t43 %t45 = load ptr, ptr %t1 %t46 = load ptr, ptr %t2 %t47 = call ptr @fn_gen_subst(ptr %t44, ptr %t45, ptr %t46) store ptr %t47, ptr %t41 br label %ifend5 ifend5: %t48 = load ptr, ptr %t23 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 2 %t50 = load ptr, ptr %t0 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 2 %t52 = load i32, ptr %t51 store i32 %t52, ptr %t49 %t53 = load ptr, ptr %t23 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 3 %t55 = load ptr, ptr %t0 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 3 %t57 = load ptr, ptr %t56 %t58 = load ptr, ptr %t1 %t59 = load ptr, ptr %t2 %t60 = call ptr @fn_gen_subst(ptr %t57, ptr %t58, ptr %t59) store ptr %t60, ptr %t54 %t61 = load ptr, ptr %t23 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 8 %t63 = load ptr, ptr %t0 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 8 %t65 = load i32, ptr %t64 store i32 %t65, ptr %t62 %t66 = load ptr, ptr %t23 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 9 %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 9 %t70 = load ptr, ptr %t69 store ptr %t70, ptr %t67 %t71 = load ptr, ptr %t23 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 10 %t73 = load ptr, ptr %t0 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 10 %t75 = load i32, ptr %t74 store i32 %t75, ptr %t72 %t76 = load ptr, ptr %t23 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 4 %t78 = load ptr, ptr %t0 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 4 %t80 = load ptr, ptr %t79 %t81 = load ptr, ptr %t1 %t82 = load ptr, ptr %t2 %t83 = call ptr @fn_gen_clone(ptr %t80, ptr %t81, ptr %t82) store ptr %t83, ptr %t77 %t84 = load ptr, ptr %t23 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 5 %t86 = load ptr, ptr %t0 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 5 %t88 = load ptr, ptr %t87 %t89 = load ptr, ptr %t1 %t90 = load ptr, ptr %t2 %t91 = call ptr @fn_gen_clone(ptr %t88, ptr %t89, ptr %t90) store ptr %t91, ptr %t85 %t92 = load ptr, ptr %t23 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 6 %t94 = load ptr, ptr %t0 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 6 %t96 = load ptr, ptr %t95 %t97 = load ptr, ptr %t1 %t98 = load ptr, ptr %t2 %t99 = call ptr @fn_gen_clone(ptr %t96, ptr %t97, ptr %t98) store ptr %t99, ptr %t93 %t100 = load ptr, ptr %t23 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 7 %t102 = getelementptr %LSlice, ptr null, i32 1 %t103 = ptrtoint ptr %t102 to i64 %t104 = call ptr @malloc(i64 %t103) %t105 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 0 store ptr null, ptr %t105 %t106 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 1 store i32 0, ptr %t106 %t107 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 2 store i32 0, ptr %t107 store ptr %t104, ptr %t101 store i32 0, ptr %t108 br label %wcond6 wcond6: %t109 = load i32, ptr %t108 %t110 = load ptr, ptr %t0 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 7 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t114 = load i32, ptr %t113 %t115 = icmp slt i32 %t109, %t114 %t116 = zext i1 %t115 to i32 %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %wbody7, label %wend8 wbody7: %t118 = load ptr, ptr %t23 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 7 %t120 = load ptr, ptr %t119 %t121 = load ptr, ptr %t0 %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 7 %t123 = load ptr, ptr %t122 %t124 = load i32, ptr %t108 %t125 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 0 %t126 = load ptr, ptr %t125 %t127 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 1 %t128 = load i32, ptr %t127 %t129 = icmp ult i32 %t124, %t128 br i1 %t129, label %ixok9, label %ixbad10 ixbad10: %t130 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t130, ptr @.fmt_bounds, ptr @.str10272, i32 %t124, i32 %t128) call void @exit(i32 1) unreachable ixok9: %t131 = getelementptr inbounds ptr, ptr %t126, i32 %t124 %t132 = load ptr, ptr %t131 %t133 = load ptr, ptr %t1 %t134 = load ptr, ptr %t2 %t135 = call ptr @fn_gen_clone(ptr %t132, ptr %t133, ptr %t134) %t136 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 1 %t137 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 2 %t138 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t139 = load i32, ptr %t136 %t140 = load i32, ptr %t137 %t141 = icmp sge i32 %t139, %t140 br i1 %t141, label %grow11, label %put12 grow11: %t142 = mul i32 %t140, 2 %t143 = icmp eq i32 %t140, 0 %t144 = select i1 %t143, i32 8, i32 %t142 %t145 = getelementptr ptr, ptr null, i32 1 %t146 = ptrtoint ptr %t145 to i64 %t147 = zext i32 %t144 to i64 %t148 = mul i64 %t147, %t146 %t149 = load ptr, ptr %t138 %t150 = call ptr @realloc(ptr %t149, i64 %t148) store ptr %t150, ptr %t138 store i32 %t144, ptr %t137 br label %put12 put12: %t151 = load ptr, ptr %t138 %t152 = getelementptr inbounds ptr, ptr %t151, i32 %t139 store ptr %t135, ptr %t152 %t153 = add i32 %t139, 1 store i32 %t153, ptr %t136 %t154 = load i32, ptr %t108 %t155 = add i32 %t154, 1 store i32 %t155, ptr %t108 br label %wcond6 wend8: %t156 = load ptr, ptr %t23 store ptr %t156, ptr %retval br label %ret ret: %t157 = load ptr, ptr %retval ret ptr %t157 } define ptr @fn_gen_record(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t3 = alloca i32 %t4 = alloca i32 %t38 = alloca ptr %t54 = alloca ptr %t59 = alloca ptr %t85 = alloca ptr %t134 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_gen_find(ptr %t1) store i32 %t2, ptr %t3 %t5 = load i32, ptr %t3 %t6 = icmp slt i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t4 br i1 %t8, label %scend1, label %sc0 sc0: %t10 = load ptr, ptr @g_g_gi_open %t11 = load i32, ptr %t3 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok2, label %ixbad3 ixbad3: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str10273, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok2: %t18 = getelementptr inbounds i32, ptr %t13, i32 %t11 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 1 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t4 br label %scend1 scend1: %t24 = load i32, ptr %t4 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then4, label %ifend6 then4: store ptr null, ptr %retval br label %ret ifend6: %t26 = load ptr, ptr @g_g_gen_recs %t27 = load ptr, ptr @g_g_gi_gen %t28 = load i32, ptr %t3 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok7, label %ixbad8 ixbad8: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str10274, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok7: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_gen_template(ptr %t26, ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = icmp eq ptr %t39, null %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: store ptr null, ptr %retval br label %ret ifend11: %t43 = load ptr, ptr @g_g_gi_args %t44 = load i32, ptr %t3 %t45 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp ult i32 %t44, %t48 br i1 %t49, label %ixok12, label %ixbad13 ixbad13: %t50 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t50, ptr @.fmt_bounds, ptr @.str10275, i32 %t44, i32 %t48) call void @exit(i32 1) unreachable ixok12: %t51 = getelementptr inbounds ptr, ptr %t46, i32 %t44 %t52 = load ptr, ptr %t51 %t53 = call ptr @fn_gen_split(ptr %t52) store ptr %t53, ptr %t54 %t55 = load ptr, ptr %t38 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 11 %t57 = load ptr, ptr %t56 %t58 = call ptr @fn_gen_split(ptr %t57) store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t54 %t61 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t62 = load i32, ptr %t61 %t63 = load ptr, ptr %t59 %t64 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ne i32 %t62, %t65 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then14, label %ifend16 then14: %t69 = getelementptr %Cmp_Node, ptr null, i32 1 %t70 = ptrtoint ptr %t69 to i64 %t71 = call ptr @malloc(i64 %t70) %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 0 store i32 0, ptr %t72 %t73 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 1 store ptr null, ptr %t73 %t74 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 2 store i32 0, ptr %t74 %t75 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 3 store ptr null, ptr %t75 %t76 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4 store ptr null, ptr %t76 %t77 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 5 store ptr null, ptr %t77 %t78 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 6 store ptr null, ptr %t78 %t79 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 7 store ptr null, ptr %t79 %t80 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 8 store i32 0, ptr %t80 %t81 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 9 store ptr null, ptr %t81 %t82 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 10 store i32 0, ptr %t82 %t83 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 11 store ptr null, ptr %t83 %t84 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 12 store i32 0, ptr %t84 store ptr %t71, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 9 %t88 = load ptr, ptr @g_g_gi_file %t89 = load i32, ptr %t3 %t90 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp ult i32 %t89, %t93 br i1 %t94, label %ixok17, label %ixbad18 ixbad18: %t95 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t95, ptr @.fmt_bounds, ptr @.str10276, i32 %t89, i32 %t93) call void @exit(i32 1) unreachable ixok17: %t96 = getelementptr inbounds ptr, ptr %t91, i32 %t89 %t97 = load ptr, ptr %t96 store ptr %t97, ptr %t87 %t98 = load ptr, ptr %t85 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 8 %t100 = load ptr, ptr @g_g_gi_line %t101 = load i32, ptr %t3 %t102 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 0 %t103 = load ptr, ptr %t102 %t104 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1 %t105 = load i32, ptr %t104 %t106 = icmp ult i32 %t101, %t105 br i1 %t106, label %ixok19, label %ixbad20 ixbad20: %t107 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t107, ptr @.fmt_bounds, ptr @.str10277, i32 %t101, i32 %t105) call void @exit(i32 1) unreachable ixok19: %t108 = getelementptr inbounds i32, ptr %t103, i32 %t101 %t109 = load i32, ptr %t108 store i32 %t109, ptr %t99 %t110 = load ptr, ptr %t85 %t111 = load ptr, ptr %t38 %t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 1 %t113 = load ptr, ptr %t112 %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str10279) %t115 = load ptr, ptr %t59 %t116 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 1 %t117 = load i32, ptr %t116 %t118 = call ptr @fn_itoa(i32 %t117) %t119 = call ptr @lp_str_concat(ptr %t114, ptr %t118) %t120 = call ptr @lp_str_concat(ptr %t119, ptr @.str10280) %t121 = load ptr, ptr %t0 %t122 = call ptr @fn_gen_show(ptr %t121) %t123 = call ptr @lp_str_concat(ptr %t120, ptr %t122) %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str10281) %t125 = load ptr, ptr %t54 %t126 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 1 %t127 = load i32, ptr %t126 %t128 = call ptr @fn_itoa(i32 %t127) %t129 = call ptr @lp_str_concat(ptr %t124, ptr %t128) call void @fn_ck_err(ptr @.str10278, ptr %t110, ptr %t129) store ptr null, ptr %retval br label %ret ifend16: %t130 = load ptr, ptr %t38 %t131 = load ptr, ptr %t59 %t132 = load ptr, ptr %t54 %t133 = call ptr @fn_gen_clone(ptr %t130, ptr %t131, ptr %t132) store ptr %t133, ptr %t134 %t135 = load ptr, ptr %t134 %t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 1 %t137 = load ptr, ptr %t0 store ptr %t137, ptr %t136 %t138 = load ptr, ptr @g_g_gen_out %t139 = load ptr, ptr %t134 %t140 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 1 %t141 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 2 %t142 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 0 %t143 = load i32, ptr %t140 %t144 = load i32, ptr %t141 %t145 = icmp sge i32 %t143, %t144 br i1 %t145, label %grow21, label %put22 grow21: %t146 = mul i32 %t144, 2 %t147 = icmp eq i32 %t144, 0 %t148 = select i1 %t147, i32 8, i32 %t146 %t149 = getelementptr ptr, ptr null, i32 1 %t150 = ptrtoint ptr %t149 to i64 %t151 = zext i32 %t148 to i64 %t152 = mul i64 %t151, %t150 %t153 = load ptr, ptr %t142 %t154 = call ptr @realloc(ptr %t153, i64 %t152) store ptr %t154, ptr %t142 store i32 %t148, ptr %t141 br label %put22 put22: %t155 = load ptr, ptr %t142 %t156 = getelementptr inbounds ptr, ptr %t155, i32 %t143 store ptr %t139, ptr %t156 %t157 = add i32 %t143, 1 store i32 %t157, ptr %t140 %t158 = load ptr, ptr @g_ck_rec_k %t159 = load ptr, ptr @g_ck_rec_v %t160 = load ptr, ptr %t0 %t161 = load ptr, ptr %t134 call void @fn_ck_tab_put(ptr %t158, ptr %t159, ptr %t160, ptr %t161) %t162 = load ptr, ptr %t134 store ptr %t162, ptr %retval br label %ret ret: %t163 = load ptr, ptr %retval ret ptr %t163 } define void @fn_gen_unify(ptr %arg_p, ptr %arg_a, ptr %arg_tps, ptr %arg_binds) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 %t27 = alloca i32 %t55 = alloca i32 %t72 = alloca i32 %t85 = alloca ptr %t88 = alloca ptr %t89 = alloca i32 %t90 = alloca i32 %t141 = alloca i32 %t144 = alloca i32 %t145 = alloca i32 %t146 = alloca i32 %t196 = alloca ptr %t208 = alloca ptr %t209 = alloca i32 %t210 = alloca i32 store ptr %arg_p, ptr %t0 store ptr %arg_a, ptr %t1 store ptr %arg_tps, ptr %t2 store ptr %arg_binds, ptr %t3 %t6 = load ptr, ptr %t0 %t7 = icmp eq ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t5 br i1 %t9, label %scend1, label %sc0 sc0: %t11 = load ptr, ptr %t1 %t12 = call i32 @fn_ck_unknown(ptr %t11) %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t5 br label %scend1 scend1: %t15 = load i32, ptr %t5 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t4 br i1 %t16, label %scend3, label %sc2 sc2: %t18 = load ptr, ptr %t1 %t19 = call i32 @lp_str_eq(ptr %t18, ptr @.str10282) %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t4 br label %scend3 scend3: %t22 = load i32, ptr %t4 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then4, label %ifend6 then4: br label %ret ifend6: %t24 = load ptr, ptr %t2 %t25 = load ptr, ptr %t0 %t26 = call i32 @fn_gen_index(ptr %t24, ptr %t25) store i32 %t26, ptr %t27 %t28 = load i32, ptr %t27 %t29 = icmp sge i32 %t28, 0 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then7, label %ifend9 then7: %t32 = load ptr, ptr %t3 %t33 = load i32, ptr %t27 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 %t33, %t37 br i1 %t38, label %ixok10, label %ixbad11 ixbad11: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str10283, i32 %t33, i32 %t37) call void @exit(i32 1) unreachable ixok10: %t40 = getelementptr inbounds ptr, ptr %t35, i32 %t33 %t41 = load ptr, ptr %t40 %t42 = icmp eq ptr %t41, null %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then12, label %ifend14 then12: %t45 = load ptr, ptr %t3 %t46 = load i32, ptr %t27 %t47 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 %t50 = load i32, ptr %t49 %t51 = icmp ult i32 %t46, %t50 br i1 %t51, label %ixok15, label %ixbad16 ixbad16: %t52 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t52, ptr @.fmt_bounds, ptr @.str10284, i32 %t46, i32 %t50) call void @exit(i32 1) unreachable ixok15: %t53 = getelementptr inbounds ptr, ptr %t48, i32 %t46 %t54 = load ptr, ptr %t1 store ptr %t54, ptr %t53 br label %ifend14 ifend14: br label %ret ifend9: %t56 = load ptr, ptr %t0 %t57 = call i32 @fn_is_slice_ty(ptr %t56) %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t55 br i1 %t58, label %sc17, label %scend18 sc17: %t60 = load ptr, ptr %t1 %t61 = call i32 @fn_is_slice_ty(ptr %t60) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t55 br label %scend18 scend18: %t64 = load i32, ptr %t55 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then19, label %ifend21 then19: %t66 = load ptr, ptr %t0 %t67 = call ptr @fn_slice_elem(ptr %t66) %t68 = load ptr, ptr %t1 %t69 = call ptr @fn_slice_elem(ptr %t68) %t70 = load ptr, ptr %t2 %t71 = load ptr, ptr %t3 call void @fn_gen_unify(ptr %t67, ptr %t69, ptr %t70, ptr %t71) br label %ret ifend21: %t73 = load ptr, ptr %t0 %t74 = call i32 @fn_is_fn_type(ptr %t73) %t75 = icmp ne i32 %t74, 0 %t76 = zext i1 %t75 to i32 store i32 %t76, ptr %t72 br i1 %t75, label %sc22, label %scend23 sc22: %t77 = load ptr, ptr %t1 %t78 = call i32 @fn_is_fn_type(ptr %t77) %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t72 br label %scend23 scend23: %t81 = load i32, ptr %t72 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then24, label %ifend26 then24: %t83 = load ptr, ptr %t0 %t84 = call ptr @fn_fn_ty_params(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t1 %t87 = call ptr @fn_fn_ty_params(ptr %t86) store ptr %t87, ptr %t88 store i32 0, ptr %t89 br label %wcond27 wcond27: %t91 = load i32, ptr %t89 %t92 = load ptr, ptr %t85 %t93 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 %t94 = load i32, ptr %t93 %t95 = icmp slt i32 %t91, %t94 %t96 = zext i1 %t95 to i32 %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t90 br i1 %t97, label %sc30, label %scend31 sc30: %t99 = load i32, ptr %t89 %t100 = load ptr, ptr %t88 %t101 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp slt i32 %t99, %t102 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 %t106 = zext i1 %t105 to i32 store i32 %t106, ptr %t90 br label %scend31 scend31: %t107 = load i32, ptr %t90 %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %wbody28, label %wend29 wbody28: %t109 = load ptr, ptr %t85 %t110 = load i32, ptr %t89 %t111 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 1 %t114 = load i32, ptr %t113 %t115 = icmp ult i32 %t110, %t114 br i1 %t115, label %ixok32, label %ixbad33 ixbad33: %t116 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t116, ptr @.fmt_bounds, ptr @.str10285, i32 %t110, i32 %t114) call void @exit(i32 1) unreachable ixok32: %t117 = getelementptr inbounds ptr, ptr %t112, i32 %t110 %t118 = load ptr, ptr %t117 %t119 = load ptr, ptr %t88 %t120 = load i32, ptr %t89 %t121 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 1 %t124 = load i32, ptr %t123 %t125 = icmp ult i32 %t120, %t124 br i1 %t125, label %ixok34, label %ixbad35 ixbad35: %t126 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t126, ptr @.fmt_bounds, ptr @.str10286, i32 %t120, i32 %t124) call void @exit(i32 1) unreachable ixok34: %t127 = getelementptr inbounds ptr, ptr %t122, i32 %t120 %t128 = load ptr, ptr %t127 %t129 = load ptr, ptr %t2 %t130 = load ptr, ptr %t3 call void @fn_gen_unify(ptr %t118, ptr %t128, ptr %t129, ptr %t130) %t131 = load i32, ptr %t89 %t132 = add i32 %t131, 1 store i32 %t132, ptr %t89 br label %wcond27 wend29: %t133 = load ptr, ptr %t0 %t134 = call ptr @fn_fn_ty_ret(ptr %t133) %t135 = load ptr, ptr %t1 %t136 = call ptr @fn_fn_ty_ret(ptr %t135) %t137 = load ptr, ptr %t2 %t138 = load ptr, ptr %t3 call void @fn_gen_unify(ptr %t134, ptr %t136, ptr %t137, ptr %t138) br label %ret ifend26: %t139 = load ptr, ptr %t0 %t140 = call i32 @fn_gen_find(ptr %t139) store i32 %t140, ptr %t141 %t142 = load ptr, ptr %t1 %t143 = call i32 @fn_gen_find(ptr %t142) store i32 %t143, ptr %t144 %t147 = load i32, ptr %t141 %t148 = icmp sge i32 %t147, 0 %t149 = zext i1 %t148 to i32 %t150 = icmp ne i32 %t149, 0 %t151 = zext i1 %t150 to i32 store i32 %t151, ptr %t146 br i1 %t150, label %sc36, label %scend37 sc36: %t152 = load i32, ptr %t144 %t153 = icmp sge i32 %t152, 0 %t154 = zext i1 %t153 to i32 %t155 = icmp ne i32 %t154, 0 %t156 = zext i1 %t155 to i32 store i32 %t156, ptr %t146 br label %scend37 scend37: %t157 = load i32, ptr %t146 %t158 = icmp ne i32 %t157, 0 %t159 = zext i1 %t158 to i32 store i32 %t159, ptr %t145 br i1 %t158, label %sc38, label %scend39 sc38: %t160 = load ptr, ptr @g_g_gi_gen %t161 = load i32, ptr %t141 %t162 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 0 %t163 = load ptr, ptr %t162 %t164 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 1 %t165 = load i32, ptr %t164 %t166 = icmp ult i32 %t161, %t165 br i1 %t166, label %ixok40, label %ixbad41 ixbad41: %t167 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t167, ptr @.fmt_bounds, ptr @.str10287, i32 %t161, i32 %t165) call void @exit(i32 1) unreachable ixok40: %t168 = getelementptr inbounds ptr, ptr %t163, i32 %t161 %t169 = load ptr, ptr %t168 %t170 = load ptr, ptr @g_g_gi_gen %t171 = load i32, ptr %t144 %t172 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 1 %t175 = load i32, ptr %t174 %t176 = icmp ult i32 %t171, %t175 br i1 %t176, label %ixok42, label %ixbad43 ixbad43: %t177 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t177, ptr @.fmt_bounds, ptr @.str10288, i32 %t171, i32 %t175) call void @exit(i32 1) unreachable ixok42: %t178 = getelementptr inbounds ptr, ptr %t173, i32 %t171 %t179 = load ptr, ptr %t178 %t180 = call i32 @lp_str_eq(ptr %t169, ptr %t179) %t181 = icmp ne i32 %t180, 0 %t182 = zext i1 %t181 to i32 store i32 %t182, ptr %t145 br label %scend39 scend39: %t183 = load i32, ptr %t145 %t184 = icmp ne i32 %t183, 0 br i1 %t184, label %then44, label %ifend46 then44: %t185 = load ptr, ptr @g_g_gi_args %t186 = load i32, ptr %t141 %t187 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 0 %t188 = load ptr, ptr %t187 %t189 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 1 %t190 = load i32, ptr %t189 %t191 = icmp ult i32 %t186, %t190 br i1 %t191, label %ixok47, label %ixbad48 ixbad48: %t192 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t192, ptr @.fmt_bounds, ptr @.str10289, i32 %t186, i32 %t190) call void @exit(i32 1) unreachable ixok47: %t193 = getelementptr inbounds ptr, ptr %t188, i32 %t186 %t194 = load ptr, ptr %t193 %t195 = call ptr @fn_gen_split(ptr %t194) store ptr %t195, ptr %t196 %t197 = load ptr, ptr @g_g_gi_args %t198 = load i32, ptr %t144 %t199 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0 %t200 = load ptr, ptr %t199 %t201 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 1 %t202 = load i32, ptr %t201 %t203 = icmp ult i32 %t198, %t202 br i1 %t203, label %ixok49, label %ixbad50 ixbad50: %t204 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t204, ptr @.fmt_bounds, ptr @.str10290, i32 %t198, i32 %t202) call void @exit(i32 1) unreachable ixok49: %t205 = getelementptr inbounds ptr, ptr %t200, i32 %t198 %t206 = load ptr, ptr %t205 %t207 = call ptr @fn_gen_split(ptr %t206) store ptr %t207, ptr %t208 store i32 0, ptr %t209 br label %wcond51 wcond51: %t211 = load i32, ptr %t209 %t212 = load ptr, ptr %t196 %t213 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 1 %t214 = load i32, ptr %t213 %t215 = icmp slt i32 %t211, %t214 %t216 = zext i1 %t215 to i32 %t217 = icmp ne i32 %t216, 0 %t218 = zext i1 %t217 to i32 store i32 %t218, ptr %t210 br i1 %t217, label %sc54, label %scend55 sc54: %t219 = load i32, ptr %t209 %t220 = load ptr, ptr %t208 %t221 = getelementptr inbounds %LSlice, ptr %t220, i32 0, i32 1 %t222 = load i32, ptr %t221 %t223 = icmp slt i32 %t219, %t222 %t224 = zext i1 %t223 to i32 %t225 = icmp ne i32 %t224, 0 %t226 = zext i1 %t225 to i32 store i32 %t226, ptr %t210 br label %scend55 scend55: %t227 = load i32, ptr %t210 %t228 = icmp ne i32 %t227, 0 br i1 %t228, label %wbody52, label %wend53 wbody52: %t229 = load ptr, ptr %t196 %t230 = load i32, ptr %t209 %t231 = getelementptr inbounds %LSlice, ptr %t229, i32 0, i32 0 %t232 = load ptr, ptr %t231 %t233 = getelementptr inbounds %LSlice, ptr %t229, i32 0, i32 1 %t234 = load i32, ptr %t233 %t235 = icmp ult i32 %t230, %t234 br i1 %t235, label %ixok56, label %ixbad57 ixbad57: %t236 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t236, ptr @.fmt_bounds, ptr @.str10291, i32 %t230, i32 %t234) call void @exit(i32 1) unreachable ixok56: %t237 = getelementptr inbounds ptr, ptr %t232, i32 %t230 %t238 = load ptr, ptr %t237 %t239 = load ptr, ptr %t208 %t240 = load i32, ptr %t209 %t241 = getelementptr inbounds %LSlice, ptr %t239, i32 0, i32 0 %t242 = load ptr, ptr %t241 %t243 = getelementptr inbounds %LSlice, ptr %t239, i32 0, i32 1 %t244 = load i32, ptr %t243 %t245 = icmp ult i32 %t240, %t244 br i1 %t245, label %ixok58, label %ixbad59 ixbad59: %t246 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t246, ptr @.fmt_bounds, ptr @.str10292, i32 %t240, i32 %t244) call void @exit(i32 1) unreachable ixok58: %t247 = getelementptr inbounds ptr, ptr %t242, i32 %t240 %t248 = load ptr, ptr %t247 %t249 = load ptr, ptr %t2 %t250 = load ptr, ptr %t3 call void @fn_gen_unify(ptr %t238, ptr %t248, ptr %t249, ptr %t250) %t251 = load i32, ptr %t209 %t252 = add i32 %t251, 1 store i32 %t252, ptr %t209 br label %wcond51 wend53: br label %ifend46 ifend46: br label %ret ret: ret void } define ptr @fn_gen_show(ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t14 = alloca i32 %t31 = alloca ptr %t32 = alloca ptr %t44 = alloca i32 store ptr %arg_t, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store ptr @.str10293, ptr %retval br label %ret ifend2: %t5 = load ptr, ptr %t0 %t6 = call i32 @fn_is_slice_ty(ptr %t5) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then3, label %ifend5 then3: %t8 = load ptr, ptr %t0 %t9 = call ptr @fn_slice_elem(ptr %t8) %t10 = call ptr @fn_gen_show(ptr %t9) %t11 = call ptr @lp_str_concat(ptr @.str10294, ptr %t10) store ptr %t11, ptr %retval br label %ret ifend5: %t12 = load ptr, ptr %t0 %t13 = call i32 @fn_gen_find(ptr %t12) store i32 %t13, ptr %t14 %t15 = load i32, ptr %t14 %t16 = icmp slt i32 %t15, 0 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then6, label %ifend8 then6: %t19 = load ptr, ptr %t0 store ptr %t19, ptr %retval br label %ret ifend8: %t20 = load ptr, ptr @g_g_gi_args %t21 = load i32, ptr %t14 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok9, label %ixbad10 ixbad10: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str10295, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok9: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_gen_split(ptr %t29) store ptr %t30, ptr %t31 %t33 = load ptr, ptr @g_g_gi_gen %t34 = load i32, ptr %t14 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 %t34, %t38 br i1 %t39, label %ixok11, label %ixbad12 ixbad12: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str10296, i32 %t34, i32 %t38) call void @exit(i32 1) unreachable ixok11: %t41 = getelementptr inbounds ptr, ptr %t36, i32 %t34 %t42 = load ptr, ptr %t41 %t43 = call ptr @lp_str_concat(ptr %t42, ptr @.str10297) store ptr %t43, ptr %t32 store i32 0, ptr %t44 br label %wcond13 wcond13: %t45 = load i32, ptr %t44 %t46 = load ptr, ptr %t31 %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp slt i32 %t45, %t48 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %wbody14, label %wend15 wbody14: %t52 = load i32, ptr %t44 %t53 = icmp sgt i32 %t52, 0 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then16, label %ifend18 then16: %t56 = load ptr, ptr %t32 %t57 = call ptr @lp_str_concat(ptr %t56, ptr @.str10298) store ptr %t57, ptr %t32 br label %ifend18 ifend18: %t58 = load ptr, ptr %t32 %t59 = load ptr, ptr %t31 %t60 = load i32, ptr %t44 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 %t60, %t64 br i1 %t65, label %ixok19, label %ixbad20 ixbad20: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str10299, i32 %t60, i32 %t64) call void @exit(i32 1) unreachable ixok19: %t67 = getelementptr inbounds ptr, ptr %t62, i32 %t60 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_gen_show(ptr %t68) %t70 = call ptr @lp_str_concat(ptr %t58, ptr %t69) store ptr %t70, ptr %t32 %t71 = load i32, ptr %t44 %t72 = add i32 %t71, 1 store i32 %t72, ptr %t44 br label %wcond13 wend15: %t73 = load ptr, ptr %t32 %t74 = call ptr @lp_str_concat(ptr %t73, ptr @.str10300) store ptr %t74, ptr %retval br label %ret ret: %t75 = load ptr, ptr %retval ret ptr %t75 } define ptr @fn_gen_instance_name(ptr %arg_name, ptr %arg_binds) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca i32 store ptr %arg_name, ptr %t0 store ptr %arg_binds, ptr %t1 %t3 = load ptr, ptr %t0 store ptr %t3, ptr %t2 store i32 0, ptr %t4 br label %wcond0 wcond0: %t5 = load i32, ptr %t4 %t6 = load ptr, ptr %t1 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t5, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t2 %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str10301) %t14 = load ptr, ptr %t1 %t15 = load i32, ptr %t4 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str10302, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_gen_mangle(ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t13, ptr %t24) store ptr %t25, ptr %t2 %t26 = load i32, ptr %t4 %t27 = add i32 %t26, 1 store i32 %t27, ptr %t4 br label %wcond0 wend2: %t28 = load ptr, ptr %t2 store ptr %t28, ptr %retval br label %ret ret: %t29 = load ptr, ptr %retval ret ptr %t29 } define ptr @fn_gen_fn_instance(ptr %arg_t, ptr %arg_iname, ptr %arg_binds) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t5 = alloca ptr %t18 = alloca ptr store ptr %arg_t, ptr %t0 store ptr %arg_iname, ptr %t1 store ptr %arg_binds, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = call ptr @fn_ck_fn(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = icmp ne ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t5 store ptr %t10, ptr %retval br label %ret ifend2: %t11 = load ptr, ptr %t0 %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 11 %t14 = load ptr, ptr %t13 %t15 = call ptr @fn_gen_split(ptr %t14) %t16 = load ptr, ptr %t2 %t17 = call ptr @fn_gen_clone(ptr %t11, ptr %t15, ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 1 %t21 = load ptr, ptr %t1 store ptr %t21, ptr %t20 %t22 = load ptr, ptr @g_g_gen_out %t23 = load ptr, ptr %t18 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t25 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 2 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t27 = load i32, ptr %t24 %t28 = load i32, ptr %t25 %t29 = icmp sge i32 %t27, %t28 br i1 %t29, label %grow3, label %put4 grow3: %t30 = mul i32 %t28, 2 %t31 = icmp eq i32 %t28, 0 %t32 = select i1 %t31, i32 8, i32 %t30 %t33 = getelementptr ptr, ptr null, i32 1 %t34 = ptrtoint ptr %t33 to i64 %t35 = zext i32 %t32 to i64 %t36 = mul i64 %t35, %t34 %t37 = load ptr, ptr %t26 %t38 = call ptr @realloc(ptr %t37, i64 %t36) store ptr %t38, ptr %t26 store i32 %t32, ptr %t25 br label %put4 put4: %t39 = load ptr, ptr %t26 %t40 = getelementptr inbounds ptr, ptr %t39, i32 %t27 store ptr %t23, ptr %t40 %t41 = add i32 %t27, 1 store i32 %t41, ptr %t24 %t42 = load ptr, ptr @g_g_gen_work %t43 = load ptr, ptr %t18 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t45 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 2 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t47 = load i32, ptr %t44 %t48 = load i32, ptr %t45 %t49 = icmp sge i32 %t47, %t48 br i1 %t49, label %grow5, label %put6 grow5: %t50 = mul i32 %t48, 2 %t51 = icmp eq i32 %t48, 0 %t52 = select i1 %t51, i32 8, i32 %t50 %t53 = getelementptr ptr, ptr null, i32 1 %t54 = ptrtoint ptr %t53 to i64 %t55 = zext i32 %t52 to i64 %t56 = mul i64 %t55, %t54 %t57 = load ptr, ptr %t46 %t58 = call ptr @realloc(ptr %t57, i64 %t56) store ptr %t58, ptr %t46 store i32 %t52, ptr %t45 br label %put6 put6: %t59 = load ptr, ptr %t46 %t60 = getelementptr inbounds ptr, ptr %t59, i32 %t47 store ptr %t43, ptr %t60 %t61 = add i32 %t47, 1 store i32 %t61, ptr %t44 %t62 = load ptr, ptr @g_ck_fn_k %t63 = load ptr, ptr @g_ck_fn_v %t64 = load ptr, ptr %t1 %t65 = load ptr, ptr %t18 call void @fn_ck_tab_put(ptr %t62, ptr %t63, ptr %t64, ptr %t65) %t66 = load ptr, ptr %t18 store ptr %t66, ptr %retval br label %ret ret: %t67 = load ptr, ptr %retval ret ptr %t67 } define ptr @fn_gen_arg_nodes(ptr %arg_e, ptr %arg_labels) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca ptr %t9 = alloca i32 %t38 = alloca i32 %t60 = alloca ptr %t72 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_labels, ptr %t1 %t2 = getelementptr %LSlice, ptr null, i32 1 %t3 = ptrtoint ptr %t2 to i64 %t4 = call ptr @malloc(i64 %t3) %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 store ptr null, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 store i32 0, ptr %t6 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 2 store i32 0, ptr %t7 store ptr %t4, ptr %t8 store i32 0, ptr %t9 br label %wcond0 wcond0: %t10 = load i32, ptr %t9 %t11 = load ptr, ptr %t1 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t10, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody1, label %wend2 wbody1: %t17 = load ptr, ptr %t8 %t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 2 %t20 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t21 = load i32, ptr %t18 %t22 = load i32, ptr %t19 %t23 = icmp sge i32 %t21, %t22 br i1 %t23, label %grow3, label %put4 grow3: %t24 = mul i32 %t22, 2 %t25 = icmp eq i32 %t22, 0 %t26 = select i1 %t25, i32 8, i32 %t24 %t27 = getelementptr ptr, ptr null, i32 1 %t28 = ptrtoint ptr %t27 to i64 %t29 = zext i32 %t26 to i64 %t30 = mul i64 %t29, %t28 %t31 = load ptr, ptr %t20 %t32 = call ptr @realloc(ptr %t31, i64 %t30) store ptr %t32, ptr %t20 store i32 %t26, ptr %t19 br label %put4 put4: %t33 = load ptr, ptr %t20 %t34 = getelementptr inbounds ptr, ptr %t33, i32 %t21 store ptr null, ptr %t34 %t35 = add i32 %t21, 1 store i32 %t35, ptr %t18 %t36 = load i32, ptr %t9 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t9 br label %wcond0 wend2: store i32 0, ptr %t38 br label %wcond5 wcond5: %t39 = load i32, ptr %t38 %t40 = load ptr, ptr %t0 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 7 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp slt i32 %t39, %t44 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %wbody6, label %wend7 wbody6: %t48 = load ptr, ptr %t0 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7 %t50 = load ptr, ptr %t49 %t51 = load i32, ptr %t38 %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp ult i32 %t51, %t55 br i1 %t56, label %ixok8, label %ixbad9 ixbad9: %t57 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t57, ptr @.fmt_bounds, ptr @.str10303, i32 %t51, i32 %t55) call void @exit(i32 1) unreachable ixok8: %t58 = getelementptr inbounds ptr, ptr %t53, i32 %t51 %t59 = load ptr, ptr %t58 store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 0 %t63 = load i32, ptr %t62 %t64 = icmp eq i32 %t63, 42 %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then10, label %else11 then10: %t67 = load ptr, ptr %t1 %t68 = load ptr, ptr %t60 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 %t71 = call i32 @fn_gen_index(ptr %t67, ptr %t70) store i32 %t71, ptr %t72 %t73 = load i32, ptr %t72 %t74 = icmp sge i32 %t73, 0 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then13, label %ifend15 then13: %t77 = load ptr, ptr %t8 %t78 = load i32, ptr %t72 %t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp ult i32 %t78, %t82 br i1 %t83, label %ixok16, label %ixbad17 ixbad17: %t84 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t84, ptr @.fmt_bounds, ptr @.str10304, i32 %t78, i32 %t82) call void @exit(i32 1) unreachable ixok16: %t85 = getelementptr inbounds ptr, ptr %t80, i32 %t78 %t86 = load ptr, ptr %t60 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 4 %t88 = load ptr, ptr %t87 store ptr %t88, ptr %t85 br label %ifend15 ifend15: br label %ifend12 else11: %t89 = load i32, ptr %t38 %t90 = load ptr, ptr %t8 %t91 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t92 = load i32, ptr %t91 %t93 = icmp slt i32 %t89, %t92 %t94 = zext i1 %t93 to i32 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then18, label %ifend20 then18: %t96 = load ptr, ptr %t8 %t97 = load i32, ptr %t38 %t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 %t97, %t101 br i1 %t102, label %ixok21, label %ixbad22 ixbad22: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str10305, i32 %t97, i32 %t101) call void @exit(i32 1) unreachable ixok21: %t104 = getelementptr inbounds ptr, ptr %t99, i32 %t97 %t105 = load ptr, ptr %t60 store ptr %t105, ptr %t104 br label %ifend20 ifend20: br label %ifend12 ifend12: %t106 = load i32, ptr %t38 %t107 = add i32 %t106, 1 store i32 %t107, ptr %t38 br label %wcond5 wend7: %t108 = load ptr, ptr %t8 store ptr %t108, ptr %retval br label %ret ret: %t109 = load ptr, ptr %retval ret ptr %t109 } define ptr @fn_gen_call(ptr %arg_e, ptr %arg_name, ptr %arg_t) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t11 = alloca ptr %t18 = alloca ptr %t25 = alloca ptr %t59 = alloca ptr %t66 = alloca ptr %t73 = alloca ptr %t74 = alloca i32 %t110 = alloca ptr %t155 = alloca i32 %t215 = alloca i32 %t269 = alloca i32 %t314 = alloca ptr %t328 = alloca ptr %t335 = alloca ptr %t339 = alloca i32 store ptr %arg_e, ptr %t0 store ptr %arg_name, ptr %t1 store ptr %arg_t, ptr %t2 %t3 = load ptr, ptr @g_ck_call_expect store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = load ptr, ptr %t2 call void @fn_call_fill_defaults(ptr %t5, ptr %t6) %t7 = load ptr, ptr %t2 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 11 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_gen_split(ptr %t9) store ptr %t10, ptr %t11 %t12 = getelementptr %LSlice, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = call ptr @malloc(i64 %t13) %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 store ptr null, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 store i32 0, ptr %t16 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 store i32 0, ptr %t17 store ptr %t14, ptr %t18 %t19 = getelementptr %LSlice, ptr null, i32 1 %t20 = ptrtoint ptr %t19 to i64 %t21 = call ptr @malloc(i64 %t20) %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 store ptr null, ptr %t22 %t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 store i32 0, ptr %t23 %t24 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 2 store i32 0, ptr %t24 store ptr %t21, ptr %t25 %t26 = load ptr, ptr %t2 %t27 = load ptr, ptr %t18 %t28 = load ptr, ptr %t25 call void @fn_ck_params(ptr %t26, ptr %t27, ptr %t28) %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = load ptr, ptr %t25 %t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ne i32 %t33, %t36 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then0, label %ifend2 then0: %t40 = load ptr, ptr %t0 %t41 = load ptr, ptr %t1 %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str10307) %t43 = load ptr, ptr %t25 %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t45 = load i32, ptr %t44 %t46 = call ptr @fn_itoa(i32 %t45) %t47 = call ptr @lp_str_concat(ptr %t42, ptr %t46) %t48 = call ptr @lp_str_concat(ptr %t47, ptr @.str10308) %t49 = load ptr, ptr %t0 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 7 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = call ptr @fn_itoa(i32 %t53) %t55 = call ptr @lp_str_concat(ptr %t48, ptr %t54) call void @fn_ck_err(ptr @.str10306, ptr %t40, ptr %t55) br label %ifend2 ifend2: %t56 = load ptr, ptr %t0 %t57 = load ptr, ptr %t18 %t58 = call ptr @fn_gen_arg_nodes(ptr %t56, ptr %t57) store ptr %t58, ptr %t59 %t60 = getelementptr %LSlice, ptr null, i32 1 %t61 = ptrtoint ptr %t60 to i64 %t62 = call ptr @malloc(i64 %t61) %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 store ptr null, ptr %t63 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 store i32 0, ptr %t64 %t65 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 2 store i32 0, ptr %t65 store ptr %t62, ptr %t66 %t67 = getelementptr %LSlice, ptr null, i32 1 %t68 = ptrtoint ptr %t67 to i64 %t69 = call ptr @malloc(i64 %t68) %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 0 store ptr null, ptr %t70 %t71 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 store i32 0, ptr %t71 %t72 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 2 store i32 0, ptr %t72 store ptr %t69, ptr %t73 store i32 0, ptr %t74 br label %wcond3 wcond3: %t75 = load i32, ptr %t74 %t76 = load ptr, ptr %t11 %t77 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t78 = load i32, ptr %t77 %t79 = icmp slt i32 %t75, %t78 %t80 = zext i1 %t79 to i32 %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %wbody4, label %wend5 wbody4: %t82 = load ptr, ptr %t73 %t83 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 %t84 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 2 %t85 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 %t86 = load i32, ptr %t83 %t87 = load i32, ptr %t84 %t88 = icmp sge i32 %t86, %t87 br i1 %t88, label %grow6, label %put7 grow6: %t89 = mul i32 %t87, 2 %t90 = icmp eq i32 %t87, 0 %t91 = select i1 %t90, i32 8, i32 %t89 %t92 = getelementptr ptr, ptr null, i32 1 %t93 = ptrtoint ptr %t92 to i64 %t94 = zext i32 %t91 to i64 %t95 = mul i64 %t94, %t93 %t96 = load ptr, ptr %t85 %t97 = call ptr @realloc(ptr %t96, i64 %t95) store ptr %t97, ptr %t85 store i32 %t91, ptr %t84 br label %put7 put7: %t98 = load ptr, ptr %t85 %t99 = getelementptr inbounds ptr, ptr %t98, i32 %t86 store ptr null, ptr %t99 %t100 = add i32 %t86, 1 store i32 %t100, ptr %t83 %t101 = load i32, ptr %t74 %t102 = add i32 %t101, 1 store i32 %t102, ptr %t74 br label %wcond3 wend5: store i32 0, ptr %t74 br label %wcond8 wcond8: %t103 = load i32, ptr %t74 %t104 = load ptr, ptr %t59 %t105 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp slt i32 %t103, %t106 %t108 = zext i1 %t107 to i32 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %wbody9, label %wend10 wbody9: store ptr @.str10309, ptr %t110 %t111 = load ptr, ptr %t59 %t112 = load i32, ptr %t74 %t113 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 %t116 = load i32, ptr %t115 %t117 = icmp ult i32 %t112, %t116 br i1 %t117, label %ixok11, label %ixbad12 ixbad12: %t118 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t118, ptr @.fmt_bounds, ptr @.str10310, i32 %t112, i32 %t116) call void @exit(i32 1) unreachable ixok11: %t119 = getelementptr inbounds ptr, ptr %t114, i32 %t112 %t120 = load ptr, ptr %t119 %t121 = icmp ne ptr %t120, null %t122 = zext i1 %t121 to i32 %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then13, label %ifend15 then13: %t124 = load ptr, ptr %t59 %t125 = load i32, ptr %t74 %t126 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 1 %t129 = load i32, ptr %t128 %t130 = icmp ult i32 %t125, %t129 br i1 %t130, label %ixok16, label %ixbad17 ixbad17: %t131 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t131, ptr @.fmt_bounds, ptr @.str10311, i32 %t125, i32 %t129) call void @exit(i32 1) unreachable ixok16: %t132 = getelementptr inbounds ptr, ptr %t127, i32 %t125 %t133 = load ptr, ptr %t132 %t134 = call ptr @fn_ck_expr(ptr %t133) store ptr %t134, ptr %t110 br label %ifend15 ifend15: %t135 = load ptr, ptr %t66 %t136 = load ptr, ptr %t110 %t137 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 1 %t138 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 2 %t139 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 0 %t140 = load i32, ptr %t137 %t141 = load i32, ptr %t138 %t142 = icmp sge i32 %t140, %t141 br i1 %t142, label %grow18, label %put19 grow18: %t143 = mul i32 %t141, 2 %t144 = icmp eq i32 %t141, 0 %t145 = select i1 %t144, i32 8, i32 %t143 %t146 = getelementptr ptr, ptr null, i32 1 %t147 = ptrtoint ptr %t146 to i64 %t148 = zext i32 %t145 to i64 %t149 = mul i64 %t148, %t147 %t150 = load ptr, ptr %t139 %t151 = call ptr @realloc(ptr %t150, i64 %t149) store ptr %t151, ptr %t139 store i32 %t145, ptr %t138 br label %put19 put19: %t152 = load ptr, ptr %t139 %t153 = getelementptr inbounds ptr, ptr %t152, i32 %t140 store ptr %t136, ptr %t153 %t154 = add i32 %t140, 1 store i32 %t154, ptr %t137 %t156 = load ptr, ptr %t59 %t157 = load i32, ptr %t74 %t158 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 0 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 1 %t161 = load i32, ptr %t160 %t162 = icmp ult i32 %t157, %t161 br i1 %t162, label %ixok20, label %ixbad21 ixbad21: %t163 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t163, ptr @.fmt_bounds, ptr @.str10312, i32 %t157, i32 %t161) call void @exit(i32 1) unreachable ixok20: %t164 = getelementptr inbounds ptr, ptr %t159, i32 %t157 %t165 = load ptr, ptr %t164 %t166 = icmp ne ptr %t165, null %t167 = zext i1 %t166 to i32 %t168 = icmp ne i32 %t167, 0 %t169 = zext i1 %t168 to i32 store i32 %t169, ptr %t155 br i1 %t168, label %sc22, label %scend23 sc22: %t170 = load ptr, ptr %t59 %t171 = load i32, ptr %t74 %t172 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 1 %t175 = load i32, ptr %t174 %t176 = icmp ult i32 %t171, %t175 br i1 %t176, label %ixok24, label %ixbad25 ixbad25: %t177 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t177, ptr @.fmt_bounds, ptr @.str10313, i32 %t171, i32 %t175) call void @exit(i32 1) unreachable ixok24: %t178 = getelementptr inbounds ptr, ptr %t173, i32 %t171 %t179 = load ptr, ptr %t178 %t180 = call i32 @fn_ck_is_lit(ptr %t179) %t181 = icmp eq i32 %t180, 0 %t182 = zext i1 %t181 to i32 %t183 = icmp ne i32 %t182, 0 %t184 = zext i1 %t183 to i32 store i32 %t184, ptr %t155 br label %scend23 scend23: %t185 = load i32, ptr %t155 %t186 = icmp ne i32 %t185, 0 br i1 %t186, label %then26, label %ifend28 then26: %t187 = load ptr, ptr %t25 %t188 = load i32, ptr %t74 %t189 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 0 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 1 %t192 = load i32, ptr %t191 %t193 = icmp ult i32 %t188, %t192 br i1 %t193, label %ixok29, label %ixbad30 ixbad30: %t194 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t194, ptr @.fmt_bounds, ptr @.str10314, i32 %t188, i32 %t192) call void @exit(i32 1) unreachable ixok29: %t195 = getelementptr inbounds ptr, ptr %t190, i32 %t188 %t196 = load ptr, ptr %t195 %t197 = load ptr, ptr %t110 %t198 = load ptr, ptr %t11 %t199 = load ptr, ptr %t73 call void @fn_gen_unify(ptr %t196, ptr %t197, ptr %t198, ptr %t199) br label %ifend28 ifend28: %t200 = load i32, ptr %t74 %t201 = add i32 %t200, 1 store i32 %t201, ptr %t74 br label %wcond8 wend10: %t202 = load ptr, ptr %t2 %t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 3 %t204 = load ptr, ptr %t203 %t205 = load ptr, ptr %t4 %t206 = load ptr, ptr %t11 %t207 = load ptr, ptr %t73 call void @fn_gen_unify(ptr %t204, ptr %t205, ptr %t206, ptr %t207) store i32 0, ptr %t74 br label %wcond31 wcond31: %t208 = load i32, ptr %t74 %t209 = load ptr, ptr %t59 %t210 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 1 %t211 = load i32, ptr %t210 %t212 = icmp slt i32 %t208, %t211 %t213 = zext i1 %t212 to i32 %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %wbody32, label %wend33 wbody32: %t216 = load ptr, ptr %t59 %t217 = load i32, ptr %t74 %t218 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 0 %t219 = load ptr, ptr %t218 %t220 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 1 %t221 = load i32, ptr %t220 %t222 = icmp ult i32 %t217, %t221 br i1 %t222, label %ixok34, label %ixbad35 ixbad35: %t223 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t223, ptr @.fmt_bounds, ptr @.str10315, i32 %t217, i32 %t221) call void @exit(i32 1) unreachable ixok34: %t224 = getelementptr inbounds ptr, ptr %t219, i32 %t217 %t225 = load ptr, ptr %t224 %t226 = icmp ne ptr %t225, null %t227 = zext i1 %t226 to i32 %t228 = icmp ne i32 %t227, 0 %t229 = zext i1 %t228 to i32 store i32 %t229, ptr %t215 br i1 %t228, label %sc36, label %scend37 sc36: %t230 = load ptr, ptr %t59 %t231 = load i32, ptr %t74 %t232 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 0 %t233 = load ptr, ptr %t232 %t234 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 1 %t235 = load i32, ptr %t234 %t236 = icmp ult i32 %t231, %t235 br i1 %t236, label %ixok38, label %ixbad39 ixbad39: %t237 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t237, ptr @.fmt_bounds, ptr @.str10316, i32 %t231, i32 %t235) call void @exit(i32 1) unreachable ixok38: %t238 = getelementptr inbounds ptr, ptr %t233, i32 %t231 %t239 = load ptr, ptr %t238 %t240 = call i32 @fn_ck_is_lit(ptr %t239) %t241 = icmp ne i32 %t240, 0 %t242 = zext i1 %t241 to i32 store i32 %t242, ptr %t215 br label %scend37 scend37: %t243 = load i32, ptr %t215 %t244 = icmp ne i32 %t243, 0 br i1 %t244, label %then40, label %ifend42 then40: %t245 = load ptr, ptr %t25 %t246 = load i32, ptr %t74 %t247 = getelementptr inbounds %LSlice, ptr %t245, i32 0, i32 0 %t248 = load ptr, ptr %t247 %t249 = getelementptr inbounds %LSlice, ptr %t245, i32 0, i32 1 %t250 = load i32, ptr %t249 %t251 = icmp ult i32 %t246, %t250 br i1 %t251, label %ixok43, label %ixbad44 ixbad44: %t252 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t252, ptr @.fmt_bounds, ptr @.str10317, i32 %t246, i32 %t250) call void @exit(i32 1) unreachable ixok43: %t253 = getelementptr inbounds ptr, ptr %t248, i32 %t246 %t254 = load ptr, ptr %t253 %t255 = load ptr, ptr %t66 %t256 = load i32, ptr %t74 %t257 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 0 %t258 = load ptr, ptr %t257 %t259 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 1 %t260 = load i32, ptr %t259 %t261 = icmp ult i32 %t256, %t260 br i1 %t261, label %ixok45, label %ixbad46 ixbad46: %t262 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t262, ptr @.fmt_bounds, ptr @.str10318, i32 %t256, i32 %t260) call void @exit(i32 1) unreachable ixok45: %t263 = getelementptr inbounds ptr, ptr %t258, i32 %t256 %t264 = load ptr, ptr %t263 %t265 = load ptr, ptr %t11 %t266 = load ptr, ptr %t73 call void @fn_gen_unify(ptr %t254, ptr %t264, ptr %t265, ptr %t266) br label %ifend42 ifend42: %t267 = load i32, ptr %t74 %t268 = add i32 %t267, 1 store i32 %t268, ptr %t74 br label %wcond31 wend33: store i32 0, ptr %t269 br label %wcond47 wcond47: %t270 = load i32, ptr %t269 %t271 = load ptr, ptr %t11 %t272 = getelementptr inbounds %LSlice, ptr %t271, i32 0, i32 1 %t273 = load i32, ptr %t272 %t274 = icmp slt i32 %t270, %t273 %t275 = zext i1 %t274 to i32 %t276 = icmp ne i32 %t275, 0 br i1 %t276, label %wbody48, label %wend49 wbody48: %t277 = load ptr, ptr %t73 %t278 = load i32, ptr %t269 %t279 = getelementptr inbounds %LSlice, ptr %t277, i32 0, i32 0 %t280 = load ptr, ptr %t279 %t281 = getelementptr inbounds %LSlice, ptr %t277, i32 0, i32 1 %t282 = load i32, ptr %t281 %t283 = icmp ult i32 %t278, %t282 br i1 %t283, label %ixok50, label %ixbad51 ixbad51: %t284 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t284, ptr @.fmt_bounds, ptr @.str10319, i32 %t278, i32 %t282) call void @exit(i32 1) unreachable ixok50: %t285 = getelementptr inbounds ptr, ptr %t280, i32 %t278 %t286 = load ptr, ptr %t285 %t287 = icmp eq ptr %t286, null %t288 = zext i1 %t287 to i32 %t289 = icmp ne i32 %t288, 0 br i1 %t289, label %then52, label %ifend54 then52: %t290 = load ptr, ptr %t0 %t291 = load ptr, ptr %t11 %t292 = load i32, ptr %t269 %t293 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 0 %t294 = load ptr, ptr %t293 %t295 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 1 %t296 = load i32, ptr %t295 %t297 = icmp ult i32 %t292, %t296 br i1 %t297, label %ixok55, label %ixbad56 ixbad56: %t298 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t298, ptr @.fmt_bounds, ptr @.str10322, i32 %t292, i32 %t296) call void @exit(i32 1) unreachable ixok55: %t299 = getelementptr inbounds ptr, ptr %t294, i32 %t292 %t300 = load ptr, ptr %t299 %t301 = call ptr @lp_str_concat(ptr @.str10321, ptr %t300) %t302 = call ptr @lp_str_concat(ptr %t301, ptr @.str10323) %t303 = load ptr, ptr %t1 %t304 = call ptr @lp_str_concat(ptr %t302, ptr %t303) %t305 = call ptr @lp_str_concat(ptr %t304, ptr @.str10324) call void @fn_ck_err(ptr @.str10320, ptr %t290, ptr %t305) store ptr @.str10325, ptr %retval br label %ret ifend54: %t306 = load i32, ptr %t269 %t307 = add i32 %t306, 1 store i32 %t307, ptr %t269 br label %wcond47 wend49: %t308 = load ptr, ptr %t2 %t309 = load ptr, ptr %t1 %t310 = load ptr, ptr %t73 %t311 = call ptr @fn_gen_instance_name(ptr %t309, ptr %t310) %t312 = load ptr, ptr %t73 %t313 = call ptr @fn_gen_fn_instance(ptr %t308, ptr %t311, ptr %t312) store ptr %t313, ptr %t314 %t315 = load ptr, ptr %t0 %t316 = getelementptr inbounds %Cmp_Node, ptr %t315, i32 0, i32 4 %t317 = load ptr, ptr %t316 %t318 = getelementptr inbounds %Cmp_Node, ptr %t317, i32 0, i32 1 %t319 = load ptr, ptr %t314 %t320 = getelementptr inbounds %Cmp_Node, ptr %t319, i32 0, i32 1 %t321 = load ptr, ptr %t320 store ptr %t321, ptr %t318 %t322 = getelementptr %LSlice, ptr null, i32 1 %t323 = ptrtoint ptr %t322 to i64 %t324 = call ptr @malloc(i64 %t323) %t325 = getelementptr inbounds %LSlice, ptr %t324, i32 0, i32 0 store ptr null, ptr %t325 %t326 = getelementptr inbounds %LSlice, ptr %t324, i32 0, i32 1 store i32 0, ptr %t326 %t327 = getelementptr inbounds %LSlice, ptr %t324, i32 0, i32 2 store i32 0, ptr %t327 store ptr %t324, ptr %t328 %t329 = getelementptr %LSlice, ptr null, i32 1 %t330 = ptrtoint ptr %t329 to i64 %t331 = call ptr @malloc(i64 %t330) %t332 = getelementptr inbounds %LSlice, ptr %t331, i32 0, i32 0 store ptr null, ptr %t332 %t333 = getelementptr inbounds %LSlice, ptr %t331, i32 0, i32 1 store i32 0, ptr %t333 %t334 = getelementptr inbounds %LSlice, ptr %t331, i32 0, i32 2 store i32 0, ptr %t334 store ptr %t331, ptr %t335 %t336 = load ptr, ptr %t314 %t337 = load ptr, ptr %t328 %t338 = load ptr, ptr %t335 call void @fn_ck_params(ptr %t336, ptr %t337, ptr %t338) store i32 0, ptr %t339 br label %wcond57 wcond57: %t340 = load i32, ptr %t339 %t341 = load ptr, ptr %t59 %t342 = getelementptr inbounds %LSlice, ptr %t341, i32 0, i32 1 %t343 = load i32, ptr %t342 %t344 = icmp slt i32 %t340, %t343 %t345 = zext i1 %t344 to i32 %t346 = icmp ne i32 %t345, 0 br i1 %t346, label %wbody58, label %wend59 wbody58: %t347 = load ptr, ptr %t59 %t348 = load i32, ptr %t339 %t349 = getelementptr inbounds %LSlice, ptr %t347, i32 0, i32 0 %t350 = load ptr, ptr %t349 %t351 = getelementptr inbounds %LSlice, ptr %t347, i32 0, i32 1 %t352 = load i32, ptr %t351 %t353 = icmp ult i32 %t348, %t352 br i1 %t353, label %ixok60, label %ixbad61 ixbad61: %t354 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t354, ptr @.fmt_bounds, ptr @.str10326, i32 %t348, i32 %t352) call void @exit(i32 1) unreachable ixok60: %t355 = getelementptr inbounds ptr, ptr %t350, i32 %t348 %t356 = load ptr, ptr %t355 %t357 = icmp ne ptr %t356, null %t358 = zext i1 %t357 to i32 %t359 = icmp ne i32 %t358, 0 br i1 %t359, label %then62, label %ifend64 then62: %t360 = load ptr, ptr %t335 %t361 = load i32, ptr %t339 %t362 = getelementptr inbounds %LSlice, ptr %t360, i32 0, i32 0 %t363 = load ptr, ptr %t362 %t364 = getelementptr inbounds %LSlice, ptr %t360, i32 0, i32 1 %t365 = load i32, ptr %t364 %t366 = icmp ult i32 %t361, %t365 br i1 %t366, label %ixok65, label %ixbad66 ixbad66: %t367 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t367, ptr @.fmt_bounds, ptr @.str10327, i32 %t361, i32 %t365) call void @exit(i32 1) unreachable ixok65: %t368 = getelementptr inbounds ptr, ptr %t363, i32 %t361 %t369 = load ptr, ptr %t368 %t370 = load ptr, ptr %t66 %t371 = load i32, ptr %t339 %t372 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 0 %t373 = load ptr, ptr %t372 %t374 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 1 %t375 = load i32, ptr %t374 %t376 = icmp ult i32 %t371, %t375 br i1 %t376, label %ixok67, label %ixbad68 ixbad68: %t377 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t377, ptr @.fmt_bounds, ptr @.str10328, i32 %t371, i32 %t375) call void @exit(i32 1) unreachable ixok67: %t378 = getelementptr inbounds ptr, ptr %t373, i32 %t371 %t379 = load ptr, ptr %t378 %t380 = load ptr, ptr %t59 %t381 = load i32, ptr %t339 %t382 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 0 %t383 = load ptr, ptr %t382 %t384 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 1 %t385 = load i32, ptr %t384 %t386 = icmp ult i32 %t381, %t385 br i1 %t386, label %ixok69, label %ixbad70 ixbad70: %t387 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t387, ptr @.fmt_bounds, ptr @.str10329, i32 %t381, i32 %t385) call void @exit(i32 1) unreachable ixok69: %t388 = getelementptr inbounds ptr, ptr %t383, i32 %t381 %t389 = load ptr, ptr %t388 %t390 = load i32, ptr %t339 %t391 = add i32 %t390, 1 %t392 = call ptr @fn_itoa(i32 %t391) %t393 = call ptr @lp_str_concat(ptr @.str10330, ptr %t392) %t394 = call ptr @lp_str_concat(ptr %t393, ptr @.str10331) %t395 = load ptr, ptr %t1 %t396 = call ptr @lp_str_concat(ptr %t394, ptr %t395) call void @fn_ck_give(ptr %t369, ptr %t379, ptr %t389, ptr %t396) br label %ifend64 ifend64: %t397 = load i32, ptr %t339 %t398 = add i32 %t397, 1 store i32 %t398, ptr %t339 br label %wcond57 wend59: %t399 = load ptr, ptr %t314 %t400 = getelementptr inbounds %Cmp_Node, ptr %t399, i32 0, i32 3 %t401 = load ptr, ptr %t400 store ptr %t401, ptr %retval br label %ret ret: %t402 = load ptr, ptr %retval ret ptr %t402 } define void @fn_gen_finish() { entry: %t0 = alloca i32 %t20 = alloca i32 %t28 = alloca i32 %t86 = alloca ptr %t87 = alloca i32 %t100 = alloca i32 %t177 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_gen_work %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_gen_work %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str10332, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 call void @fn_ck_fn_body(ptr %t17) %t18 = load i32, ptr %t0 %t19 = add i32 %t18, 1 store i32 %t19, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %t20 br label %wcond5 wcond5: %t21 = load i32, ptr %t20 %t22 = load ptr, ptr @g_g_gi_name %t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp slt i32 %t21, %t24 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %wbody6, label %wend7 wbody6: %t29 = load ptr, ptr @g_g_gi_open %t30 = load i32, ptr %t20 %t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 %t30, %t34 br i1 %t35, label %ixok8, label %ixbad9 ixbad9: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str10333, i32 %t30, i32 %t34) call void @exit(i32 1) unreachable ixok8: %t37 = getelementptr inbounds i32, ptr %t32, i32 %t30 %t38 = load i32, ptr %t37 %t39 = icmp eq i32 %t38, 0 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t28 br i1 %t41, label %sc10, label %scend11 sc10: %t43 = load ptr, ptr @g_g_gen_recs %t44 = load ptr, ptr @g_g_gi_gen %t45 = load i32, ptr %t20 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok12, label %ixbad13 ixbad13: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str10334, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok12: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_gen_template(ptr %t43, ptr %t53) %t55 = icmp ne ptr %t54, null %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t28 br label %scend11 scend11: %t59 = load i32, ptr %t28 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then14, label %ifend16 then14: %t61 = load ptr, ptr @g_g_gi_name %t62 = load i32, ptr %t20 %t63 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t66 = load i32, ptr %t65 %t67 = icmp ult i32 %t62, %t66 br i1 %t67, label %ixok17, label %ixbad18 ixbad18: %t68 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t68, ptr @.fmt_bounds, ptr @.str10335, i32 %t62, i32 %t66) call void @exit(i32 1) unreachable ixok17: %t69 = getelementptr inbounds ptr, ptr %t64, i32 %t62 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_ck_record(ptr %t70) br label %ifend16 ifend16: %t72 = load i32, ptr %t20 %t73 = add i32 %t72, 1 store i32 %t73, ptr %t20 br label %wcond5 wend7: %t74 = load ptr, ptr @g_g_gen_out %t75 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp eq i32 %t76, 0 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then19, label %ifend21 then19: br label %ret ifend21: %t80 = getelementptr %LSlice, ptr null, i32 1 %t81 = ptrtoint ptr %t80 to i64 %t82 = call ptr @malloc(i64 %t81) %t83 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 store ptr null, ptr %t83 %t84 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 store i32 0, ptr %t84 %t85 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 2 store i32 0, ptr %t85 store ptr %t82, ptr %t86 store i32 0, ptr %t87 br label %wcond22 wcond22: %t88 = load i32, ptr %t87 %t89 = load ptr, ptr @g_prog %t90 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1 %t91 = load i32, ptr %t90 %t92 = icmp slt i32 %t88, %t91 %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %wbody23, label %wend24 wbody23: %t95 = load i32, ptr %t87 %t96 = load i32, ptr @g_g_prog_user_end %t97 = icmp eq i32 %t95, %t96 %t98 = zext i1 %t97 to i32 %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then25, label %ifend27 then25: store i32 0, ptr %t100 br label %wcond28 wcond28: %t101 = load i32, ptr %t100 %t102 = load ptr, ptr @g_g_gen_out %t103 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t104 = load i32, ptr %t103 %t105 = icmp slt i32 %t101, %t104 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %wbody29, label %wend30 wbody29: %t108 = load ptr, ptr %t86 %t109 = load ptr, ptr @g_g_gen_out %t110 = load i32, ptr %t100 %t111 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 1 %t114 = load i32, ptr %t113 %t115 = icmp ult i32 %t110, %t114 br i1 %t115, label %ixok31, label %ixbad32 ixbad32: %t116 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t116, ptr @.fmt_bounds, ptr @.str10336, i32 %t110, i32 %t114) call void @exit(i32 1) unreachable ixok31: %t117 = getelementptr inbounds ptr, ptr %t112, i32 %t110 %t118 = load ptr, ptr %t117 %t119 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t120 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2 %t121 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t122 = load i32, ptr %t119 %t123 = load i32, ptr %t120 %t124 = icmp sge i32 %t122, %t123 br i1 %t124, label %grow33, label %put34 grow33: %t125 = mul i32 %t123, 2 %t126 = icmp eq i32 %t123, 0 %t127 = select i1 %t126, i32 8, i32 %t125 %t128 = getelementptr ptr, ptr null, i32 1 %t129 = ptrtoint ptr %t128 to i64 %t130 = zext i32 %t127 to i64 %t131 = mul i64 %t130, %t129 %t132 = load ptr, ptr %t121 %t133 = call ptr @realloc(ptr %t132, i64 %t131) store ptr %t133, ptr %t121 store i32 %t127, ptr %t120 br label %put34 put34: %t134 = load ptr, ptr %t121 %t135 = getelementptr inbounds ptr, ptr %t134, i32 %t122 store ptr %t118, ptr %t135 %t136 = add i32 %t122, 1 store i32 %t136, ptr %t119 %t137 = load i32, ptr %t100 %t138 = add i32 %t137, 1 store i32 %t138, ptr %t100 br label %wcond28 wend30: br label %ifend27 ifend27: %t139 = load ptr, ptr %t86 %t140 = load ptr, ptr @g_prog %t141 = load i32, ptr %t87 %t142 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 1 %t145 = load i32, ptr %t144 %t146 = icmp ult i32 %t141, %t145 br i1 %t146, label %ixok35, label %ixbad36 ixbad36: %t147 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t147, ptr @.fmt_bounds, ptr @.str10337, i32 %t141, i32 %t145) call void @exit(i32 1) unreachable ixok35: %t148 = getelementptr inbounds ptr, ptr %t143, i32 %t141 %t149 = load ptr, ptr %t148 %t150 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 1 %t151 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 2 %t152 = getelementptr inbounds %LSlice, ptr %t139, i32 0, i32 0 %t153 = load i32, ptr %t150 %t154 = load i32, ptr %t151 %t155 = icmp sge i32 %t153, %t154 br i1 %t155, label %grow37, label %put38 grow37: %t156 = mul i32 %t154, 2 %t157 = icmp eq i32 %t154, 0 %t158 = select i1 %t157, i32 8, i32 %t156 %t159 = getelementptr ptr, ptr null, i32 1 %t160 = ptrtoint ptr %t159 to i64 %t161 = zext i32 %t158 to i64 %t162 = mul i64 %t161, %t160 %t163 = load ptr, ptr %t152 %t164 = call ptr @realloc(ptr %t163, i64 %t162) store ptr %t164, ptr %t152 store i32 %t158, ptr %t151 br label %put38 put38: %t165 = load ptr, ptr %t152 %t166 = getelementptr inbounds ptr, ptr %t165, i32 %t153 store ptr %t149, ptr %t166 %t167 = add i32 %t153, 1 store i32 %t167, ptr %t150 %t168 = load i32, ptr %t87 %t169 = add i32 %t168, 1 store i32 %t169, ptr %t87 br label %wcond22 wend24: %t170 = load i32, ptr @g_g_prog_user_end %t171 = load ptr, ptr @g_prog %t172 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 1 %t173 = load i32, ptr %t172 %t174 = icmp sge i32 %t170, %t173 %t175 = zext i1 %t174 to i32 %t176 = icmp ne i32 %t175, 0 br i1 %t176, label %then39, label %ifend41 then39: store i32 0, ptr %t177 br label %wcond42 wcond42: %t178 = load i32, ptr %t177 %t179 = load ptr, ptr @g_g_gen_out %t180 = getelementptr inbounds %LSlice, ptr %t179, i32 0, i32 1 %t181 = load i32, ptr %t180 %t182 = icmp slt i32 %t178, %t181 %t183 = zext i1 %t182 to i32 %t184 = icmp ne i32 %t183, 0 br i1 %t184, label %wbody43, label %wend44 wbody43: %t185 = load ptr, ptr %t86 %t186 = load ptr, ptr @g_g_gen_out %t187 = load i32, ptr %t177 %t188 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 0 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 1 %t191 = load i32, ptr %t190 %t192 = icmp ult i32 %t187, %t191 br i1 %t192, label %ixok45, label %ixbad46 ixbad46: %t193 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t193, ptr @.fmt_bounds, ptr @.str10338, i32 %t187, i32 %t191) call void @exit(i32 1) unreachable ixok45: %t194 = getelementptr inbounds ptr, ptr %t189, i32 %t187 %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 1 %t197 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 2 %t198 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 0 %t199 = load i32, ptr %t196 %t200 = load i32, ptr %t197 %t201 = icmp sge i32 %t199, %t200 br i1 %t201, label %grow47, label %put48 grow47: %t202 = mul i32 %t200, 2 %t203 = icmp eq i32 %t200, 0 %t204 = select i1 %t203, i32 8, i32 %t202 %t205 = getelementptr ptr, ptr null, i32 1 %t206 = ptrtoint ptr %t205 to i64 %t207 = zext i32 %t204 to i64 %t208 = mul i64 %t207, %t206 %t209 = load ptr, ptr %t198 %t210 = call ptr @realloc(ptr %t209, i64 %t208) store ptr %t210, ptr %t198 store i32 %t204, ptr %t197 br label %put48 put48: %t211 = load ptr, ptr %t198 %t212 = getelementptr inbounds ptr, ptr %t211, i32 %t199 store ptr %t195, ptr %t212 %t213 = add i32 %t199, 1 store i32 %t213, ptr %t196 %t214 = load i32, ptr %t177 %t215 = add i32 %t214, 1 store i32 %t215, ptr %t177 br label %wcond42 wend44: br label %ifend41 ifend41: %t216 = load ptr, ptr %t86 store ptr %t216, ptr @g_prog %t217 = load ptr, ptr @g_g_gen_out %t218 = getelementptr inbounds %LSlice, ptr %t217, i32 0, i32 1 %t219 = load i32, ptr %t218 %t220 = load i32, ptr @g_g_prog_user_end %t221 = add i32 %t220, %t219 store i32 %t221, ptr @g_g_prog_user_end br label %ret ret: ret void } define i32 @fn_ck_is_raw(ptr %arg_t) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_t, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str10339) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 %t7 = call i32 @lp_str_eq(ptr %t6, ptr @.str10340) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 br label %scend1 scend1: %t10 = load i32, ptr %t1 store i32 %t10, ptr %retval br label %ret ret: %t11 = load i32, ptr %retval ret i32 %t11 } define i32 @fn_ck_raw_builtin(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 store ptr %arg_name, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str10341) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str10342) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str10343) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str10344) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t29 = load ptr, ptr %t0 %t30 = call i32 @lp_str_eq(ptr %t29, ptr @.str10345) %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t28 br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 %t34 = call i32 @lp_str_eq(ptr %t33, ptr @.str10346) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t28 br label %scend10 scend10: %t37 = load i32, ptr %t28 store i32 %t37, ptr %retval br label %ret ret: %t38 = load i32, ptr %retval ret i32 %t38 } define void @fn_ck_raw(ptr %arg_n, ptr %arg_what) { entry: %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 store ptr %arg_n, ptr %t0 store ptr %arg_what, ptr %t1 %t2 = load i32, ptr @g_ck_unsafe %t3 = icmp sgt i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t8 = load ptr, ptr %t0 %t9 = icmp ne ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t7 br i1 %t11, label %sc3, label %scend4 sc3: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 9 %t15 = load ptr, ptr %t14 %t16 = icmp ne ptr %t15, null %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t7 br label %scend4 scend4: %t20 = load i32, ptr %t7 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t6 br i1 %t21, label %sc5, label %scend6 sc5: %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 9 %t25 = load ptr, ptr %t24 %t26 = call i32 @fn_unsafe_trusted(ptr %t25) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t6 br label %scend6 scend6: %t29 = load i32, ptr %t6 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then7, label %ifend9 then7: br label %ret ifend9: %t31 = load ptr, ptr %t0 %t32 = load ptr, ptr %t1 %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str10348) call void @fn_ck_err(ptr @.str10347, ptr %t31, ptr %t33) br label %ret ret: ret void } define void @fn_ck_unsafe_here(ptr %arg_n) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_n, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t1 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 9 %t9 = load ptr, ptr %t8 %t10 = icmp eq ptr %t9, null %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 br label %scend1 scend1: %t14 = load i32, ptr %t1 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then2, label %ifend4 then2: br label %ret ifend4: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 9 %t18 = load ptr, ptr %t17 %t19 = call i32 @fn_unsafe_trusted(ptr %t18) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then5, label %ifend7 then5: br label %ret ifend7: %t21 = load ptr, ptr %t0 call void @fn_ck_err(ptr @.str10349, ptr %t21, ptr @.str10350) br label %ret ret: ret void } define void @fn_emit_block(ptr %arg_b) { entry: %t0 = alloca ptr %t2 = alloca i32 %t6 = alloca i32 %t7 = alloca i32 store ptr %arg_b, ptr %t0 %t1 = load i32, ptr @g_g_blk_cur store i32 %t1, ptr %t2 %t3 = load i32, ptr @g_g_blk_next %t4 = add i32 %t3, 1 store i32 %t4, ptr @g_g_blk_next %t5 = load i32, ptr @g_g_blk_next store i32 %t5, ptr @g_g_blk_cur store i32 0, ptr %t6 br label %wcond0 wcond0: %t8 = load i32, ptr %t6 %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t8, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t7 br i1 %t16, label %sc3, label %scend4 sc3: %t18 = load i32, ptr @g_g_term %t19 = icmp eq i32 %t18, 0 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t7 br label %scend4 scend4: %t23 = load i32, ptr %t7 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %wbody1, label %wend2 wbody1: %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 7 %t27 = load ptr, ptr %t26 %t28 = load i32, ptr %t6 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok5, label %ixbad6 ixbad6: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str10351, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok5: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 call void @fn_emit_stmt(ptr %t36) %t37 = load i32, ptr %t6 %t38 = add i32 %t37, 1 store i32 %t38, ptr %t6 br label %wcond0 wend2: %t39 = load i32, ptr %t2 store i32 %t39, ptr @g_g_blk_cur br label %ret ret: ret void } define void @fn_store_at(ptr %arg_lt, ptr %arg_v, ptr %arg_addr) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr store ptr %arg_lt, ptr %t0 store ptr %arg_v, ptr %t1 store ptr %arg_addr, ptr %t2 call void @fn_emit(ptr @.str10352) %t3 = load ptr, ptr %t0 call void @fn_emit(ptr %t3) call void @fn_emit(ptr @.str10353) %t4 = load ptr, ptr %t1 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str10354) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str10355) br label %ret ret: ret void } define ptr @fn_compound_op(ptr %arg_tok) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_tok, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @lp_str_slice(ptr %t1, i32 0, i32 1) store ptr %t2, ptr %retval br label %ret ret: %t3 = load ptr, ptr %retval ret ptr %t3 } define void @fn_emit_assign(ptr %arg_st) { entry: %t0 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t6 = alloca ptr %t17 = alloca i32 %t69 = alloca ptr %t97 = alloca ptr %t126 = alloca ptr %t131 = alloca ptr %t147 = alloca ptr %t158 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 store ptr @.str10356, ptr %t5 store ptr @.str10357, ptr %t6 %t7 = load ptr, ptr %t4 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 %t10 = icmp eq i32 %t9, 33 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %else1 then0: %t13 = load ptr, ptr %t4 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 1 %t15 = load ptr, ptr %t14 %t16 = call i32 @fn_loc_find(ptr %t15) store i32 %t16, ptr %t17 %t18 = load i32, ptr %t17 %t19 = icmp sge i32 %t18, 0 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then3, label %else4 then3: %t22 = load ptr, ptr @g_loc_mut %t23 = load i32, ptr %t17 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok6, label %ixbad7 ixbad7: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str10358, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok6: %t30 = getelementptr inbounds i32, ptr %t25, i32 %t23 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 0 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then8, label %ifend10 then8: %t35 = load ptr, ptr %t4 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 %t38 = call ptr @lp_str_concat(ptr @.str10359, ptr %t37) %t39 = call ptr @lp_str_concat(ptr %t38, ptr @.str10360) %t40 = load ptr, ptr %t0 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 8 %t42 = load i32, ptr %t41 %t43 = call ptr @fn_itoa(i32 %t42) %t44 = call ptr @lp_str_concat(ptr %t39, ptr %t43) call void @fn_perr(ptr %t44) br label %ifend10 ifend10: %t45 = load ptr, ptr @g_loc_reg %t46 = load i32, ptr %t17 %t47 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 %t50 = load i32, ptr %t49 %t51 = icmp ult i32 %t46, %t50 br i1 %t51, label %ixok11, label %ixbad12 ixbad12: %t52 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t52, ptr @.fmt_bounds, ptr @.str10361, i32 %t46, i32 %t50) call void @exit(i32 1) unreachable ixok11: %t53 = getelementptr inbounds ptr, ptr %t48, i32 %t46 %t54 = load ptr, ptr %t53 store ptr %t54, ptr %t5 %t55 = load ptr, ptr @g_loc_ty %t56 = load i32, ptr %t17 %t57 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 1 %t60 = load i32, ptr %t59 %t61 = icmp ult i32 %t56, %t60 br i1 %t61, label %ixok13, label %ixbad14 ixbad14: %t62 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t62, ptr @.fmt_bounds, ptr @.str10362, i32 %t56, i32 %t60) call void @exit(i32 1) unreachable ixok13: %t63 = getelementptr inbounds ptr, ptr %t58, i32 %t56 %t64 = load ptr, ptr %t63 store ptr %t64, ptr %t6 br label %ifend5 else4: %t65 = load ptr, ptr %t4 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 1 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_find_global(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t69 %t71 = icmp eq ptr %t70, null %t72 = zext i1 %t71 to i32 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then15, label %ifend17 then15: %t74 = load ptr, ptr %t4 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 1 %t76 = load ptr, ptr %t75 %t77 = call ptr @lp_str_concat(ptr @.str10363, ptr %t76) call void @fn_perr(ptr %t77) br label %ifend17 ifend17: %t78 = load ptr, ptr %t69 %t79 = load ptr, ptr %t4 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 1 %t81 = load ptr, ptr %t80 call void @fn_vis_check(ptr %t78, ptr %t81) %t82 = load ptr, ptr %t69 %t83 = load ptr, ptr %t4 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1 %t85 = load ptr, ptr %t84 call void @fn_deps_write(ptr %t82, ptr %t85) %t86 = load ptr, ptr %t4 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %t87 %t89 = call ptr @lp_str_concat(ptr @.str10364, ptr %t88) store ptr %t89, ptr %t5 %t90 = load ptr, ptr %t69 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 3 %t92 = load ptr, ptr %t91 store ptr %t92, ptr %t6 br label %ifend5 ifend5: br label %ifend2 else1: %t93 = call i32 @fn_deps_on() %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then18, label %ifend20 then18: %t95 = load ptr, ptr %t4 %t96 = call ptr @fn_deps_target_root(ptr %t95) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t97 %t99 = icmp ne ptr %t98, null %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then21, label %ifend23 then21: %t102 = load ptr, ptr %t97 %t103 = load ptr, ptr %t97 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 1 %t105 = load ptr, ptr %t104 call void @fn_deps_write(ptr %t102, ptr %t105) br label %ifend23 ifend23: br label %ifend20 ifend20: %t106 = load ptr, ptr %t4 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 0 %t108 = load i32, ptr %t107 %t109 = icmp eq i32 %t108, 35 %t110 = zext i1 %t109 to i32 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then24, label %else25 then24: %t112 = load ptr, ptr %t4 %t113 = call ptr @fn_emit_member_addr(ptr %t112) store ptr %t113, ptr %t5 %t114 = load ptr, ptr @g_g_addr_ty store ptr %t114, ptr %t6 br label %ifend26 else25: %t115 = load ptr, ptr %t4 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 0 %t117 = load i32, ptr %t116 %t118 = icmp eq i32 %t117, 36 %t119 = zext i1 %t118 to i32 %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then27, label %else28 then27: %t121 = load ptr, ptr %t4 %t122 = call ptr @fn_emit_index_addr(ptr %t121) store ptr %t122, ptr %t5 %t123 = load ptr, ptr @g_g_addr_ty store ptr %t123, ptr %t6 br label %ifend29 else28: call void @fn_perr(ptr @.str10365) br label %ifend29 ifend29: br label %ifend26 ifend26: br label %ifend2 ifend2: %t124 = load ptr, ptr %t6 %t125 = call ptr @fn_llty(ptr %t124) store ptr %t125, ptr %t126 %t127 = load ptr, ptr %t0 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 5 %t129 = load ptr, ptr %t128 %t130 = call ptr @fn_emit_expr(ptr %t129) store ptr %t130, ptr %t131 %t132 = load ptr, ptr %t0 %t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 1 %t134 = load ptr, ptr %t133 %t135 = call i32 @lp_str_eq(ptr %t134, ptr @.str10366) %t136 = icmp eq i32 %t135, 0 %t137 = zext i1 %t136 to i32 %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then30, label %ifend32 then30: %t139 = load ptr, ptr %t126 %t140 = call ptr @lp_str_concat(ptr @.str10367, ptr %t139) %t141 = call ptr @lp_str_concat(ptr %t140, ptr @.str10368) %t142 = load ptr, ptr %t5 %t143 = call ptr @lp_str_concat(ptr %t141, ptr %t142) %t144 = call ptr @fn_emit_bind(ptr %t143) %t145 = load ptr, ptr %t6 %t146 = call ptr @fn_val(ptr %t144, ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t0 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 1 %t150 = load ptr, ptr %t149 %t151 = call ptr @fn_compound_op(ptr %t150) %t152 = load ptr, ptr %t147 %t153 = load ptr, ptr %t131 %t154 = call ptr @fn_emit_bin_vals(ptr %t151, ptr %t152, ptr %t153, i32 0) store ptr %t154, ptr %t131 br label %ifend32 ifend32: %t155 = load ptr, ptr %t131 %t156 = load ptr, ptr %t6 %t157 = call ptr @fn_coerce_code(ptr %t155, ptr %t156) store ptr %t157, ptr %t158 %t159 = load ptr, ptr %t126 %t160 = call i32 @lp_str_eq(ptr %t159, ptr @.str10369) %t161 = icmp ne i32 %t160, 0 br i1 %t161, label %then33, label %ifend35 then33: %t162 = load ptr, ptr %t158 %t163 = call ptr @lp_str_concat(ptr @.str10370, ptr %t162) %t164 = call ptr @lp_str_concat(ptr %t163, ptr @.str10371) %t165 = call ptr @fn_emit_bind(ptr %t164) store ptr %t165, ptr %t158 br label %ifend35 ifend35: %t166 = load ptr, ptr %t126 %t167 = load ptr, ptr %t158 %t168 = load ptr, ptr %t5 call void @fn_store_at(ptr %t166, ptr %t167, ptr %t168) br label %ret ret: ret void } define void @fn_emit_if(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t12 = alloca ptr %t18 = alloca i32 %t20 = alloca ptr %t22 = alloca ptr %t24 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr @.str10372, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str10373) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 6 %t15 = load ptr, ptr %t14 %t16 = icmp ne ptr %t15, null %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t18 %t19 = call ptr @fn_lbl(ptr @.str10374) store ptr %t19, ptr %t20 %t21 = call ptr @fn_lbl(ptr @.str10375) store ptr %t21, ptr %t22 %t23 = call ptr @fn_lbl(ptr @.str10376) store ptr %t23, ptr %t24 %t25 = load i32, ptr %t18 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then0, label %else1 then0: call void @fn_emit(ptr @.str10377) %t27 = load ptr, ptr %t12 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str10378) %t28 = load ptr, ptr %t20 call void @fn_emit(ptr %t28) call void @fn_emit(ptr @.str10379) %t29 = load ptr, ptr %t22 call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str10380) br label %ifend2 else1: call void @fn_emit(ptr @.str10381) %t30 = load ptr, ptr %t12 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str10382) %t31 = load ptr, ptr %t20 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str10383) %t32 = load ptr, ptr %t24 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str10384) br label %ifend2 ifend2: %t33 = load ptr, ptr %t20 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str10385) store i32 0, ptr @g_g_term %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 5 %t36 = load ptr, ptr %t35 call void @fn_emit_block(ptr %t36) %t37 = load i32, ptr @g_g_term %t38 = icmp eq i32 %t37, 0 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str10386) %t41 = load ptr, ptr %t24 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str10387) br label %ifend5 ifend5: %t42 = load i32, ptr %t18 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then6, label %ifend8 then6: %t44 = load ptr, ptr %t22 call void @fn_emit(ptr %t44) call void @fn_emit(ptr @.str10388) store i32 0, ptr @g_g_term %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 6 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 0 %t49 = load i32, ptr %t48 %t50 = icmp eq i32 %t49, 12 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then9, label %else10 then9: %t53 = load ptr, ptr %t0 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 6 %t55 = load ptr, ptr %t54 call void @fn_emit_stmt(ptr %t55) br label %ifend11 else10: %t56 = load ptr, ptr %t0 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 6 %t58 = load ptr, ptr %t57 call void @fn_emit_block(ptr %t58) br label %ifend11 ifend11: %t59 = load i32, ptr @g_g_term %t60 = icmp eq i32 %t59, 0 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then12, label %ifend14 then12: call void @fn_emit(ptr @.str10389) %t63 = load ptr, ptr %t24 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str10390) br label %ifend14 ifend14: br label %ifend8 ifend8: %t64 = load ptr, ptr %t24 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str10391) store i32 0, ptr @g_g_term br label %ret ret: ret void } define void @fn_emit_while(ptr %arg_st) { entry: %t0 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t6 = alloca ptr %t13 = alloca ptr %t20 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = call ptr @fn_lbl(ptr @.str10392) store ptr %t1, ptr %t2 %t3 = call ptr @fn_lbl(ptr @.str10393) store ptr %t3, ptr %t4 %t5 = call ptr @fn_lbl(ptr @.str10394) store ptr %t5, ptr %t6 call void @fn_emit(ptr @.str10395) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) call void @fn_emit(ptr @.str10396) %t8 = load ptr, ptr %t2 call void @fn_emit(ptr %t8) call void @fn_emit(ptr @.str10397) %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @lp_str_concat(ptr @.str10398, ptr %t16) %t18 = call ptr @lp_str_concat(ptr %t17, ptr @.str10399) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 call void @fn_emit(ptr @.str10400) %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str10401) %t22 = load ptr, ptr %t4 call void @fn_emit(ptr %t22) call void @fn_emit(ptr @.str10402) %t23 = load ptr, ptr %t6 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str10403) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str10404) store i32 0, ptr @g_g_term %t25 = load ptr, ptr %t2 %t26 = load ptr, ptr %t6 call void @fn_loop_push(ptr %t25, ptr %t26) %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 5 %t29 = load ptr, ptr %t28 call void @fn_emit_block(ptr %t29) call void @fn_loop_pop() %t30 = load i32, ptr @g_g_term %t31 = icmp eq i32 %t30, 0 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str10405) %t34 = load ptr, ptr %t2 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str10406) br label %ifend2 ifend2: %t35 = load ptr, ptr %t6 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str10407) store i32 0, ptr @g_g_term br label %ret ret: ret void } define void @fn_emit_for(ptr %arg_st) { entry: %t0 = alloca ptr %t2 = alloca ptr %t7 = alloca ptr %t17 = alloca ptr %t19 = alloca ptr %t21 = alloca ptr %t23 = alloca ptr %t29 = alloca ptr %t34 = alloca ptr %t43 = alloca ptr %t62 = alloca ptr %t67 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = call ptr @fn_emit_alloca(ptr @.str10408) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 %t5 = load ptr, ptr %t4 %t6 = call ptr @fn_emit_expr(ptr %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %Cmp_Val, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load ptr, ptr %t2 call void @fn_store_at(ptr @.str10409, ptr %t10, ptr %t11) %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t13 %t15 = load ptr, ptr %t2 call void @fn_loc_push(ptr %t14, ptr %t15, ptr @.str10410) %t16 = call ptr @fn_lbl(ptr @.str10411) store ptr %t16, ptr %t17 %t18 = call ptr @fn_lbl(ptr @.str10412) store ptr %t18, ptr %t19 %t20 = call ptr @fn_lbl(ptr @.str10413) store ptr %t20, ptr %t21 %t22 = call ptr @fn_lbl(ptr @.str10414) store ptr %t22, ptr %t23 call void @fn_emit(ptr @.str10415) %t24 = load ptr, ptr %t17 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str10416) %t25 = load ptr, ptr %t17 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str10417) %t26 = load ptr, ptr %t2 %t27 = call ptr @lp_str_concat(ptr @.str10418, ptr %t26) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 5 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_emit_expr(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t29 %t36 = call ptr @lp_str_concat(ptr @.str10419, ptr %t35) %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str10420) %t38 = load ptr, ptr %t34 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @lp_str_concat(ptr %t37, ptr %t40) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 call void @fn_emit(ptr @.str10421) %t44 = load ptr, ptr %t43 call void @fn_emit(ptr %t44) call void @fn_emit(ptr @.str10422) %t45 = load ptr, ptr %t19 call void @fn_emit(ptr %t45) call void @fn_emit(ptr @.str10423) %t46 = load ptr, ptr %t23 call void @fn_emit(ptr %t46) call void @fn_emit(ptr @.str10424) %t47 = load ptr, ptr %t19 call void @fn_emit(ptr %t47) call void @fn_emit(ptr @.str10425) store i32 0, ptr @g_g_term %t48 = load ptr, ptr %t21 %t49 = load ptr, ptr %t23 call void @fn_loop_push(ptr %t48, ptr %t49) %t50 = load ptr, ptr %t0 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 6 %t52 = load ptr, ptr %t51 call void @fn_emit_block(ptr %t52) call void @fn_loop_pop() %t53 = load i32, ptr @g_g_term %t54 = icmp eq i32 %t53, 0 %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str10426) %t57 = load ptr, ptr %t21 call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str10427) br label %ifend2 ifend2: %t58 = load ptr, ptr %t21 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str10428) %t59 = load ptr, ptr %t2 %t60 = call ptr @lp_str_concat(ptr @.str10429, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = call ptr @lp_str_concat(ptr @.str10430, ptr %t63) %t65 = call ptr @lp_str_concat(ptr %t64, ptr @.str10431) %t66 = call ptr @fn_emit_bind(ptr %t65) store ptr %t66, ptr %t67 %t68 = load ptr, ptr %t67 %t69 = load ptr, ptr %t2 call void @fn_store_at(ptr @.str10432, ptr %t68, ptr %t69) call void @fn_emit(ptr @.str10433) %t70 = load ptr, ptr %t17 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str10434) %t71 = load ptr, ptr %t23 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str10435) store i32 0, ptr @g_g_term br label %ret ret: ret void } define void @fn_emit_return(ptr %arg_st) { entry: %t0 = alloca ptr %t1 = alloca i32 %t25 = alloca ptr store ptr %arg_st, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 4 %t4 = load ptr, ptr %t3 %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 %t8 = zext i1 %t7 to i32 store i32 %t8, ptr %t1 br i1 %t7, label %sc0, label %scend1 sc0: %t9 = load ptr, ptr @g_ret_ty %t10 = call i32 @lp_str_eq(ptr %t9, ptr @.str10436) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t1 br label %scend1 scend1: %t13 = load i32, ptr %t1 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then2, label %ifend4 then2: call void @fn_perr(ptr @.str10437) br label %ifend4 ifend4: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4 %t17 = load ptr, ptr %t16 %t18 = icmp ne ptr %t17, null %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then5, label %ifend7 then5: %t21 = load ptr, ptr %t0 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 4 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_emit_expr(ptr %t23) store ptr %t24, ptr %t25 %t26 = load ptr, ptr @g_ret_ty %t27 = call ptr @fn_llty(ptr %t26) %t28 = load ptr, ptr %t25 %t29 = load ptr, ptr @g_ret_ty %t30 = call ptr @fn_coerce_code(ptr %t28, ptr %t29) call void @fn_store_at(ptr %t27, ptr %t30, ptr @.str10438) br label %ifend7 ifend7: %t31 = load ptr, ptr @g_g_ret_label %t32 = call ptr @lp_str_concat(ptr @.str10439, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str10440) call void @fn_emit(ptr %t33) store i32 1, ptr @g_g_term br label %ret ret: ret void } define i32 @fn_block_ends(ptr %arg_b) { entry: %retval = alloca i32 %t0 = alloca ptr %t5 = alloca i32 store ptr %arg_b, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: store i32 0, ptr %t5 br label %wcond3 wcond3: %t6 = load i32, ptr %t5 %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 7 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t6, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %wbody4, label %wend5 wbody4: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7 %t17 = load ptr, ptr %t16 %t18 = load i32, ptr %t5 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok6, label %ixbad7 ixbad7: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str10441, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok6: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 %t27 = call i32 @fn_stmt_ends(ptr %t26) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: %t29 = load i32, ptr %t5 %t30 = add i32 %t29, 1 store i32 %t30, ptr %t5 br label %wcond3 wend5: store i32 0, ptr %retval br label %ret ret: %t31 = load i32, ptr %retval ret i32 %t31 } define i32 @fn_stmt_ends(ptr %arg_st) { entry: %retval = alloca i32 %t0 = alloca ptr %t23 = alloca i32 %t63 = alloca i32 %t64 = alloca i32 %t86 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 15 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: store i32 1, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 %t10 = icmp eq i32 %t9, 56 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 4 %t15 = load ptr, ptr %t14 %t16 = call i32 @fn_block_ends(ptr %t15) store i32 %t16, ptr %retval br label %ret ifend5: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 12 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then6, label %ifend8 then6: %t24 = load ptr, ptr %t0 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 6 %t26 = load ptr, ptr %t25 %t27 = icmp eq ptr %t26, null %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t23 br i1 %t29, label %scend10, label %sc9 sc9: %t31 = load ptr, ptr %t0 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 5 %t33 = load ptr, ptr %t32 %t34 = call i32 @fn_block_ends(ptr %t33) %t35 = icmp eq i32 %t34, 0 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t23 br label %scend10 scend10: %t39 = load i32, ptr %t23 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then11, label %ifend13 then11: store i32 0, ptr %retval br label %ret ifend13: %t41 = load ptr, ptr %t0 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 6 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 0 %t45 = load i32, ptr %t44 %t46 = icmp eq i32 %t45, 12 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then14, label %ifend16 then14: %t49 = load ptr, ptr %t0 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 6 %t51 = load ptr, ptr %t50 %t52 = call i32 @fn_stmt_ends(ptr %t51) store i32 %t52, ptr %retval br label %ret ifend16: %t53 = load ptr, ptr %t0 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 6 %t55 = load ptr, ptr %t54 %t56 = call i32 @fn_block_ends(ptr %t55) store i32 %t56, ptr %retval br label %ret ifend8: %t57 = load ptr, ptr %t0 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 0 %t59 = load i32, ptr %t58 %t60 = icmp eq i32 %t59, 19 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then17, label %ifend19 then17: store i32 0, ptr %t63 store i32 0, ptr %t64 br label %wcond20 wcond20: %t65 = load i32, ptr %t64 %t66 = load ptr, ptr %t0 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 7 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 %t70 = load i32, ptr %t69 %t71 = icmp slt i32 %t65, %t70 %t72 = zext i1 %t71 to i32 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %wbody21, label %wend22 wbody21: %t74 = load ptr, ptr %t0 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 7 %t76 = load ptr, ptr %t75 %t77 = load i32, ptr %t64 %t78 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %LSlice, ptr %t76, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp ult i32 %t77, %t81 br i1 %t82, label %ixok23, label %ixbad24 ixbad24: %t83 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t83, ptr @.fmt_bounds, ptr @.str10442, i32 %t77, i32 %t81) call void @exit(i32 1) unreachable ixok23: %t84 = getelementptr inbounds ptr, ptr %t79, i32 %t77 %t85 = load ptr, ptr %t84 store ptr %t85, ptr %t86 %t87 = load ptr, ptr %t86 %t88 = call i32 @fn_arm_is_default(ptr %t87) %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then25, label %ifend27 then25: store i32 1, ptr %t63 br label %ifend27 ifend27: %t90 = load ptr, ptr %t86 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 4 %t92 = load ptr, ptr %t91 %t93 = call i32 @fn_block_ends(ptr %t92) %t94 = icmp eq i32 %t93, 0 %t95 = zext i1 %t94 to i32 %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %then28, label %ifend30 then28: store i32 0, ptr %retval br label %ret ifend30: %t97 = load i32, ptr %t64 %t98 = add i32 %t97, 1 store i32 %t98, ptr %t64 br label %wcond20 wend22: %t99 = load i32, ptr %t63 store i32 %t99, ptr %retval br label %ret ifend19: store i32 0, ptr %retval br label %ret ret: %t100 = load i32, ptr %retval ret i32 %t100 } define i32 @fn_arm_is_default(ptr %arg_arm) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t11 = alloca i32 store ptr %arg_arm, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t2, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t1 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str10443, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 33 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t11 br i1 %t28, label %sc5, label %scend6 sc5: %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7 %t32 = load ptr, ptr %t31 %t33 = load i32, ptr %t1 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 %t33, %t37 br i1 %t38, label %ixok7, label %ixbad8 ixbad8: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str10444, i32 %t33, i32 %t37) call void @exit(i32 1) unreachable ixok7: %t40 = getelementptr inbounds ptr, ptr %t35, i32 %t33 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str10445) %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t11 br label %scend6 scend6: %t47 = load i32, ptr %t11 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t49 = load i32, ptr %t1 %t50 = add i32 %t49, 1 store i32 %t50, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t51 = load i32, ptr %retval ret i32 %t51 } define void @fn_emit_bind_payload(ptr %arg_en, ptr %arg_pat, ptr %arg_sv) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t10 = alloca i32 %t23 = alloca ptr %t59 = alloca i32 %t113 = alloca ptr %t116 = alloca ptr %t118 = alloca ptr %t133 = alloca ptr %t136 = alloca ptr store ptr %arg_en, ptr %t0 store ptr %arg_pat, ptr %t1 store ptr %arg_sv, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = load ptr, ptr %t1 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 4 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call i32 @fn_variant_ordinal(ptr %t3, ptr %t8) store i32 %t9, ptr %t10 %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr %t10 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok0, label %ixbad1 ixbad1: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str10446, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok0: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t1 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = load ptr, ptr %t23 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t33 = load i32, ptr %t32 %t34 = icmp ne i32 %t28, %t33 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then2, label %ifend4 then2: %t37 = load ptr, ptr %t1 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 4 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 1 %t41 = load ptr, ptr %t40 %t42 = call ptr @lp_str_concat(ptr @.str10447, ptr %t41) %t43 = call ptr @lp_str_concat(ptr %t42, ptr @.str10448) %t44 = load ptr, ptr %t1 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = call ptr @fn_itoa(i32 %t48) %t50 = call ptr @lp_str_concat(ptr %t43, ptr %t49) %t51 = call ptr @lp_str_concat(ptr %t50, ptr @.str10449) %t52 = load ptr, ptr %t23 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 7 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 1 %t56 = load i32, ptr %t55 %t57 = call ptr @fn_itoa(i32 %t56) %t58 = call ptr @lp_str_concat(ptr %t51, ptr %t57) call void @fn_perr(ptr %t58) br label %ifend4 ifend4: store i32 0, ptr %t59 br label %wcond5 wcond5: %t60 = load i32, ptr %t59 %t61 = load ptr, ptr %t1 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 7 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp slt i32 %t60, %t65 %t67 = zext i1 %t66 to i32 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %wbody6, label %wend7 wbody6: %t69 = load ptr, ptr %t1 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 7 %t71 = load ptr, ptr %t70 %t72 = load i32, ptr %t59 %t73 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp ult i32 %t72, %t76 br i1 %t77, label %ixok8, label %ixbad9 ixbad9: %t78 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t78, ptr @.fmt_bounds, ptr @.str10450, i32 %t72, i32 %t76) call void @exit(i32 1) unreachable ixok8: %t79 = getelementptr inbounds ptr, ptr %t74, i32 %t72 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 0 %t82 = load i32, ptr %t81 %t83 = icmp eq i32 %t82, 33 %t84 = zext i1 %t83 to i32 %t85 = icmp eq i32 %t84, 0 %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then10, label %ifend12 then10: %t88 = load ptr, ptr %t1 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 4 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 1 %t92 = load ptr, ptr %t91 %t93 = call ptr @lp_str_concat(ptr @.str10451, ptr %t92) %t94 = call ptr @lp_str_concat(ptr %t93, ptr @.str10452) %t95 = load i32, ptr %t59 %t96 = call ptr @fn_itoa(i32 %t95) %t97 = call ptr @lp_str_concat(ptr %t94, ptr %t96) %t98 = call ptr @lp_str_concat(ptr %t97, ptr @.str10453) call void @fn_perr(ptr %t98) br label %ifend12 ifend12: %t99 = load ptr, ptr %t23 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 7 %t101 = load ptr, ptr %t100 %t102 = load i32, ptr %t59 %t103 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp ult i32 %t102, %t106 br i1 %t107, label %ixok13, label %ixbad14 ixbad14: %t108 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t108, ptr @.fmt_bounds, ptr @.str10454, i32 %t102, i32 %t106) call void @exit(i32 1) unreachable ixok13: %t109 = getelementptr inbounds ptr, ptr %t104, i32 %t102 %t110 = load ptr, ptr %t109 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 3 %t112 = load ptr, ptr %t111 store ptr %t112, ptr %t113 %t114 = load ptr, ptr %t113 %t115 = call ptr @fn_llty(ptr %t114) store ptr %t115, ptr %t116 %t117 = call ptr @fn_nreg() store ptr %t117, ptr %t118 call void @fn_emit(ptr @.str10455) %t119 = load ptr, ptr %t118 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str10456) %t120 = load ptr, ptr %t2 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 call void @fn_emit(ptr %t122) call void @fn_emit(ptr @.str10457) %t123 = load i32, ptr %t59 %t124 = add i32 %t123, 1 %t125 = mul i32 8, %t124 %t126 = call ptr @fn_itoa(i32 %t125) call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str10458) %t127 = load ptr, ptr %t116 %t128 = call ptr @lp_str_concat(ptr @.str10459, ptr %t127) %t129 = call ptr @lp_str_concat(ptr %t128, ptr @.str10460) %t130 = load ptr, ptr %t118 %t131 = call ptr @lp_str_concat(ptr %t129, ptr %t130) %t132 = call ptr @fn_emit_bind(ptr %t131) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t116 %t135 = call ptr @fn_emit_alloca(ptr %t134) store ptr %t135, ptr %t136 %t137 = load ptr, ptr %t116 %t138 = load ptr, ptr %t133 %t139 = load ptr, ptr %t136 call void @fn_store_at(ptr %t137, ptr %t138, ptr %t139) %t140 = load ptr, ptr %t1 %t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 7 %t142 = load ptr, ptr %t141 %t143 = load i32, ptr %t59 %t144 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 1 %t147 = load i32, ptr %t146 %t148 = icmp ult i32 %t143, %t147 br i1 %t148, label %ixok15, label %ixbad16 ixbad16: %t149 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t149, ptr @.fmt_bounds, ptr @.str10461, i32 %t143, i32 %t147) call void @exit(i32 1) unreachable ixok15: %t150 = getelementptr inbounds ptr, ptr %t145, i32 %t143 %t151 = load ptr, ptr %t150 %t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 1 %t153 = load ptr, ptr %t152 %t154 = load ptr, ptr %t136 %t155 = load ptr, ptr %t113 call void @fn_loc_push(ptr %t153, ptr %t154, ptr %t155) %t156 = load i32, ptr %t59 %t157 = add i32 %t156, 1 store i32 %t157, ptr %t59 br label %wcond5 wend7: br label %ret ret: ret void } define void @fn_emit_match_tagged(ptr %arg_st, ptr %arg_sv, ptr %arg_en) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t8 = alloca ptr %t10 = alloca ptr %t11 = alloca ptr %t12 = alloca i32 %t13 = alloca i32 %t35 = alloca ptr %t40 = alloca ptr %t41 = alloca i32 %t42 = alloca ptr %t43 = alloca i32 %t65 = alloca ptr %t69 = alloca ptr %t85 = alloca i32 %t108 = alloca ptr %t121 = alloca ptr %t123 = alloca ptr %t129 = alloca i32 %t163 = alloca i32 %t171 = alloca i32 store ptr %arg_st, ptr %t0 store ptr %arg_sv, ptr %t1 store ptr %arg_en, ptr %t2 %t3 = load ptr, ptr %t1 %t4 = getelementptr inbounds %Cmp_Val, ptr %t3, i32 0, i32 0 %t5 = load ptr, ptr %t4 %t6 = call ptr @lp_str_concat(ptr @.str10462, ptr %t5) %t7 = call ptr @fn_emit_bind(ptr %t6) store ptr %t7, ptr %t8 %t9 = call ptr @fn_lbl(ptr @.str10463) store ptr %t9, ptr %t10 store ptr null, ptr %t11 store i32 0, ptr %t12 store i32 0, ptr %t13 br label %wcond0 wcond0: %t14 = load i32, ptr %t13 %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp slt i32 %t14, %t19 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %wbody1, label %wend2 wbody1: %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 7 %t25 = load ptr, ptr %t24 %t26 = load i32, ptr %t13 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok3, label %ixbad4 ixbad4: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str10464, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok3: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 store ptr %t34, ptr %t35 %t36 = load ptr, ptr %t35 %t37 = call i32 @fn_arm_is_default(ptr %t36) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then5, label %else6 then5: %t39 = load ptr, ptr %t35 store ptr %t39, ptr %t11 br label %ifend7 else6: store ptr @.str10465, ptr %t40 store i32 1, ptr %t41 store ptr null, ptr %t42 store i32 0, ptr %t43 br label %wcond8 wcond8: %t44 = load i32, ptr %t43 %t45 = load ptr, ptr %t35 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 7 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp slt i32 %t44, %t49 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %wbody9, label %wend10 wbody9: %t53 = load ptr, ptr %t35 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 7 %t55 = load ptr, ptr %t54 %t56 = load i32, ptr %t43 %t57 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 1 %t60 = load i32, ptr %t59 %t61 = icmp ult i32 %t56, %t60 br i1 %t61, label %ixok11, label %ixbad12 ixbad12: %t62 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t62, ptr @.fmt_bounds, ptr @.str10466, i32 %t56, i32 %t60) call void @exit(i32 1) unreachable ixok11: %t63 = getelementptr inbounds ptr, ptr %t58, i32 %t56 %t64 = load ptr, ptr %t63 store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1 %t68 = load ptr, ptr %t67 store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t65 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 0 %t72 = load i32, ptr %t71 %t73 = icmp eq i32 %t72, 34 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then13, label %ifend15 then13: %t76 = load ptr, ptr %t65 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 4 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 1 %t80 = load ptr, ptr %t79 store ptr %t80, ptr %t69 %t81 = load ptr, ptr %t65 store ptr %t81, ptr %t42 br label %ifend15 ifend15: %t82 = load ptr, ptr %t2 %t83 = load ptr, ptr %t69 %t84 = call i32 @fn_variant_ordinal(ptr %t82, ptr %t83) store i32 %t84, ptr %t85 %t86 = load i32, ptr %t85 %t87 = icmp slt i32 %t86, 0 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then16, label %ifend18 then16: %t90 = load ptr, ptr %t69 %t91 = call ptr @lp_str_concat(ptr @.str10467, ptr %t90) %t92 = call ptr @lp_str_concat(ptr %t91, ptr @.str10468) %t93 = load ptr, ptr %t2 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 1 %t95 = load ptr, ptr %t94 %t96 = call ptr @lp_str_concat(ptr %t92, ptr %t95) call void @fn_perr(ptr %t96) br label %ifend18 ifend18: %t97 = load i32, ptr %t12 %t98 = load i32, ptr %t85 %t99 = shl i32 1, %t98 %t100 = or i32 %t97, %t99 store i32 %t100, ptr %t12 %t101 = load ptr, ptr %t8 %t102 = call ptr @lp_str_concat(ptr @.str10469, ptr %t101) %t103 = call ptr @lp_str_concat(ptr %t102, ptr @.str10470) %t104 = load i32, ptr %t85 %t105 = call ptr @fn_itoa(i32 %t104) %t106 = call ptr @lp_str_concat(ptr %t103, ptr %t105) %t107 = call ptr @fn_emit_bind(ptr %t106) store ptr %t107, ptr %t108 %t109 = load i32, ptr %t41 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then19, label %else20 then19: %t111 = load ptr, ptr %t108 store ptr %t111, ptr %t40 store i32 0, ptr %t41 br label %ifend21 else20: %t112 = load ptr, ptr %t40 %t113 = call ptr @lp_str_concat(ptr @.str10471, ptr %t112) %t114 = call ptr @lp_str_concat(ptr %t113, ptr @.str10472) %t115 = load ptr, ptr %t108 %t116 = call ptr @lp_str_concat(ptr %t114, ptr %t115) %t117 = call ptr @fn_emit_bind(ptr %t116) store ptr %t117, ptr %t40 br label %ifend21 ifend21: %t118 = load i32, ptr %t43 %t119 = add i32 %t118, 1 store i32 %t119, ptr %t43 br label %wcond8 wend10: %t120 = call ptr @fn_lbl(ptr @.str10473) store ptr %t120, ptr %t121 %t122 = call ptr @fn_lbl(ptr @.str10474) store ptr %t122, ptr %t123 call void @fn_emit(ptr @.str10475) %t124 = load ptr, ptr %t40 call void @fn_emit(ptr %t124) call void @fn_emit(ptr @.str10476) %t125 = load ptr, ptr %t121 call void @fn_emit(ptr %t125) call void @fn_emit(ptr @.str10477) %t126 = load ptr, ptr %t123 call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str10478) %t127 = load ptr, ptr %t121 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str10479) store i32 0, ptr @g_g_term %t128 = load i32, ptr @g_nloc store i32 %t128, ptr %t129 %t130 = load ptr, ptr %t42 %t131 = icmp ne ptr %t130, null %t132 = zext i1 %t131 to i32 %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then22, label %ifend24 then22: %t134 = load ptr, ptr %t2 %t135 = load ptr, ptr %t42 %t136 = load ptr, ptr %t1 call void @fn_emit_bind_payload(ptr %t134, ptr %t135, ptr %t136) br label %ifend24 ifend24: %t137 = load ptr, ptr %t35 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 4 %t139 = load ptr, ptr %t138 call void @fn_emit_block(ptr %t139) %t140 = load i32, ptr %t129 store i32 %t140, ptr @g_nloc %t141 = load i32, ptr @g_g_term %t142 = icmp eq i32 %t141, 0 %t143 = zext i1 %t142 to i32 %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %then25, label %ifend27 then25: call void @fn_emit(ptr @.str10480) %t145 = load ptr, ptr %t10 call void @fn_emit(ptr %t145) call void @fn_emit(ptr @.str10481) br label %ifend27 ifend27: %t146 = load ptr, ptr %t123 call void @fn_emit(ptr %t146) call void @fn_emit(ptr @.str10482) store i32 0, ptr @g_g_term br label %ifend7 ifend7: %t147 = load i32, ptr %t13 %t148 = add i32 %t147, 1 store i32 %t148, ptr %t13 br label %wcond0 wend2: %t149 = load ptr, ptr %t11 %t150 = icmp ne ptr %t149, null %t151 = zext i1 %t150 to i32 %t152 = icmp ne i32 %t151, 0 br i1 %t152, label %then28, label %else29 then28: %t153 = load ptr, ptr %t11 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 4 %t155 = load ptr, ptr %t154 call void @fn_emit_block(ptr %t155) br label %ifend30 else29: %t156 = load ptr, ptr %t2 %t157 = getelementptr inbounds %Cmp_Node, ptr %t156, i32 0, i32 7 %t158 = load ptr, ptr %t157 %t159 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1 %t160 = load i32, ptr %t159 %t161 = shl i32 1, %t160 %t162 = sub i32 %t161, 1 store i32 %t162, ptr %t163 %t164 = load i32, ptr %t12 %t165 = load i32, ptr %t163 %t166 = icmp eq i32 %t164, %t165 %t167 = zext i1 %t166 to i32 %t168 = icmp eq i32 %t167, 0 %t169 = zext i1 %t168 to i32 %t170 = icmp ne i32 %t169, 0 br i1 %t170, label %then31, label %ifend33 then31: store i32 0, ptr %t171 br label %wcond34 wcond34: %t172 = load i32, ptr %t171 %t173 = load ptr, ptr %t2 %t174 = getelementptr inbounds %Cmp_Node, ptr %t173, i32 0, i32 7 %t175 = load ptr, ptr %t174 %t176 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 1 %t177 = load i32, ptr %t176 %t178 = icmp slt i32 %t172, %t177 %t179 = zext i1 %t178 to i32 %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %wbody35, label %wend36 wbody35: %t181 = load i32, ptr %t12 %t182 = load i32, ptr %t171 %t183 = shl i32 1, %t182 %t184 = and i32 %t181, %t183 %t185 = icmp eq i32 %t184, 0 %t186 = zext i1 %t185 to i32 %t187 = icmp ne i32 %t186, 0 br i1 %t187, label %then37, label %ifend39 then37: %t188 = load ptr, ptr %t2 %t189 = getelementptr inbounds %Cmp_Node, ptr %t188, i32 0, i32 1 %t190 = load ptr, ptr %t189 %t191 = call ptr @lp_str_concat(ptr @.str10483, ptr %t190) %t192 = call ptr @lp_str_concat(ptr %t191, ptr @.str10484) %t193 = load ptr, ptr %t2 %t194 = getelementptr inbounds %Cmp_Node, ptr %t193, i32 0, i32 7 %t195 = load ptr, ptr %t194 %t196 = load i32, ptr %t171 %t197 = getelementptr inbounds %LSlice, ptr %t195, i32 0, i32 0 %t198 = load ptr, ptr %t197 %t199 = getelementptr inbounds %LSlice, ptr %t195, i32 0, i32 1 %t200 = load i32, ptr %t199 %t201 = icmp ult i32 %t196, %t200 br i1 %t201, label %ixok40, label %ixbad41 ixbad41: %t202 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t202, ptr @.fmt_bounds, ptr @.str10485, i32 %t196, i32 %t200) call void @exit(i32 1) unreachable ixok40: %t203 = getelementptr inbounds ptr, ptr %t198, i32 %t196 %t204 = load ptr, ptr %t203 %t205 = getelementptr inbounds %Cmp_Node, ptr %t204, i32 0, i32 1 %t206 = load ptr, ptr %t205 %t207 = call ptr @lp_str_concat(ptr %t192, ptr %t206) %t208 = call ptr @lp_str_concat(ptr %t207, ptr @.str10486) call void @fn_perr(ptr %t208) br label %ifend39 ifend39: %t209 = load i32, ptr %t171 %t210 = add i32 %t209, 1 store i32 %t210, ptr %t171 br label %wcond34 wend36: br label %ifend33 ifend33: br label %ifend30 ifend30: %t211 = load i32, ptr @g_g_term %t212 = icmp eq i32 %t211, 0 %t213 = zext i1 %t212 to i32 %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %then42, label %ifend44 then42: call void @fn_emit(ptr @.str10487) %t215 = load ptr, ptr %t10 call void @fn_emit(ptr %t215) call void @fn_emit(ptr @.str10488) br label %ifend44 ifend44: %t216 = load ptr, ptr %t10 call void @fn_emit(ptr %t216) call void @fn_emit(ptr @.str10489) store i32 0, ptr @g_g_term br label %ret ret: ret void } define void @fn_emit_match(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t10 = alloca ptr %t19 = alloca ptr %t20 = alloca ptr %t21 = alloca i32 %t43 = alloca ptr %t48 = alloca ptr %t49 = alloca i32 %t50 = alloca i32 %t73 = alloca ptr %t84 = alloca ptr %t97 = alloca ptr %t99 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_tagged_enum_of(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = icmp ne ptr %t11, null %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then0, label %ifend2 then0: %t15 = load ptr, ptr %t0 %t16 = load ptr, ptr %t5 %t17 = load ptr, ptr %t10 call void @fn_emit_match_tagged(ptr %t15, ptr %t16, ptr %t17) br label %ret ifend2: %t18 = call ptr @fn_lbl(ptr @.str10490) store ptr %t18, ptr %t19 store ptr null, ptr %t20 store i32 0, ptr %t21 br label %wcond3 wcond3: %t22 = load i32, ptr %t21 %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 7 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp slt i32 %t22, %t27 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %wbody4, label %wend5 wbody4: %t31 = load ptr, ptr %t0 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 %t34 = load i32, ptr %t21 %t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp ult i32 %t34, %t38 br i1 %t39, label %ixok6, label %ixbad7 ixbad7: %t40 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t40, ptr @.fmt_bounds, ptr @.str10491, i32 %t34, i32 %t38) call void @exit(i32 1) unreachable ixok6: %t41 = getelementptr inbounds ptr, ptr %t36, i32 %t34 %t42 = load ptr, ptr %t41 store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = call i32 @fn_arm_is_default(ptr %t44) %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then8, label %else9 then8: %t47 = load ptr, ptr %t43 store ptr %t47, ptr %t20 br label %ifend10 else9: store ptr @.str10492, ptr %t48 store i32 1, ptr %t49 store i32 0, ptr %t50 br label %wcond11 wcond11: %t51 = load i32, ptr %t50 %t52 = load ptr, ptr %t43 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 7 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 1 %t56 = load i32, ptr %t55 %t57 = icmp slt i32 %t51, %t56 %t58 = zext i1 %t57 to i32 %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %wbody12, label %wend13 wbody12: %t60 = load ptr, ptr %t43 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 7 %t62 = load ptr, ptr %t61 %t63 = load i32, ptr %t50 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t67 = load i32, ptr %t66 %t68 = icmp ult i32 %t63, %t67 br i1 %t68, label %ixok14, label %ixbad15 ixbad15: %t69 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t69, ptr @.fmt_bounds, ptr @.str10493, i32 %t63, i32 %t67) call void @exit(i32 1) unreachable ixok14: %t70 = getelementptr inbounds ptr, ptr %t65, i32 %t63 %t71 = load ptr, ptr %t70 %t72 = call ptr @fn_emit_expr(ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t5 %t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0 %t76 = load ptr, ptr %t75 %t77 = call ptr @lp_str_concat(ptr @.str10494, ptr %t76) %t78 = call ptr @lp_str_concat(ptr %t77, ptr @.str10495) %t79 = load ptr, ptr %t73 %t80 = getelementptr inbounds %Cmp_Val, ptr %t79, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = call ptr @lp_str_concat(ptr %t78, ptr %t81) %t83 = call ptr @fn_emit_bind(ptr %t82) store ptr %t83, ptr %t84 %t85 = load i32, ptr %t49 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then16, label %else17 then16: %t87 = load ptr, ptr %t84 store ptr %t87, ptr %t48 store i32 0, ptr %t49 br label %ifend18 else17: %t88 = load ptr, ptr %t48 %t89 = call ptr @lp_str_concat(ptr @.str10496, ptr %t88) %t90 = call ptr @lp_str_concat(ptr %t89, ptr @.str10497) %t91 = load ptr, ptr %t84 %t92 = call ptr @lp_str_concat(ptr %t90, ptr %t91) %t93 = call ptr @fn_emit_bind(ptr %t92) store ptr %t93, ptr %t48 br label %ifend18 ifend18: %t94 = load i32, ptr %t50 %t95 = add i32 %t94, 1 store i32 %t95, ptr %t50 br label %wcond11 wend13: %t96 = call ptr @fn_lbl(ptr @.str10498) store ptr %t96, ptr %t97 %t98 = call ptr @fn_lbl(ptr @.str10499) store ptr %t98, ptr %t99 call void @fn_emit(ptr @.str10500) %t100 = load ptr, ptr %t48 call void @fn_emit(ptr %t100) call void @fn_emit(ptr @.str10501) %t101 = load ptr, ptr %t97 call void @fn_emit(ptr %t101) call void @fn_emit(ptr @.str10502) %t102 = load ptr, ptr %t99 call void @fn_emit(ptr %t102) call void @fn_emit(ptr @.str10503) %t103 = load ptr, ptr %t97 call void @fn_emit(ptr %t103) call void @fn_emit(ptr @.str10504) store i32 0, ptr @g_g_term %t104 = load ptr, ptr %t43 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 4 %t106 = load ptr, ptr %t105 call void @fn_emit_block(ptr %t106) %t107 = load i32, ptr @g_g_term %t108 = icmp eq i32 %t107, 0 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then19, label %ifend21 then19: call void @fn_emit(ptr @.str10505) %t111 = load ptr, ptr %t19 call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str10506) br label %ifend21 ifend21: %t112 = load ptr, ptr %t99 call void @fn_emit(ptr %t112) call void @fn_emit(ptr @.str10507) store i32 0, ptr @g_g_term br label %ifend10 ifend10: %t113 = load i32, ptr %t21 %t114 = add i32 %t113, 1 store i32 %t114, ptr %t21 br label %wcond3 wend5: %t115 = load ptr, ptr %t20 %t116 = icmp ne ptr %t115, null %t117 = zext i1 %t116 to i32 %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then22, label %ifend24 then22: %t119 = load ptr, ptr %t20 %t120 = getelementptr inbounds %Cmp_Node, ptr %t119, i32 0, i32 4 %t121 = load ptr, ptr %t120 call void @fn_emit_block(ptr %t121) br label %ifend24 ifend24: %t122 = load i32, ptr @g_g_term %t123 = icmp eq i32 %t122, 0 %t124 = zext i1 %t123 to i32 %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then25, label %ifend27 then25: call void @fn_emit(ptr @.str10508) %t126 = load ptr, ptr %t19 call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str10509) br label %ifend27 ifend27: %t127 = load ptr, ptr %t19 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str10510) store i32 0, ptr @g_g_term br label %ret ret: ret void } define ptr @fn_emit_emit(ptr %arg_st) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t24 = alloca ptr %t31 = alloca ptr %t32 = alloca i32 %t54 = alloca ptr %t55 = alloca ptr %t56 = alloca i32 %t111 = alloca ptr %t112 = alloca ptr %t122 = alloca ptr %t136 = alloca ptr %t189 = alloca ptr %t197 = alloca i32 %t198 = alloca i32 %t209 = alloca ptr %t253 = alloca ptr %t269 = alloca ptr %t270 = alloca i32 %t315 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_find_event(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = icmp eq ptr %t6, null %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr %t11 %t13 = call ptr @lp_str_concat(ptr @.str10511, ptr %t12) call void @fn_perr(ptr %t13) br label %ifend2 ifend2: %t14 = load ptr, ptr %t5 %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 call void @fn_vis_check(ptr %t14, ptr %t17) %t18 = getelementptr %LSlice, ptr null, i32 1 %t19 = ptrtoint ptr %t18 to i64 %t20 = call ptr @malloc(i64 %t19) %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 store ptr null, ptr %t21 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 store i32 0, ptr %t22 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 store i32 0, ptr %t23 store ptr %t20, ptr %t24 %t25 = getelementptr %LSlice, ptr null, i32 1 %t26 = ptrtoint ptr %t25 to i64 %t27 = call ptr @malloc(i64 %t26) %t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 store ptr null, ptr %t28 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 store i32 0, ptr %t29 %t30 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 2 store i32 0, ptr %t30 store ptr %t27, ptr %t31 store i32 0, ptr %t32 br label %wcond3 wcond3: %t33 = load i32, ptr %t32 %t34 = load ptr, ptr %t5 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 7 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp slt i32 %t33, %t38 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %wbody4, label %wend5 wbody4: %t42 = load ptr, ptr %t5 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 7 %t44 = load ptr, ptr %t43 %t45 = load i32, ptr %t32 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok6, label %ixbad7 ixbad7: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str10512, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok6: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 store ptr %t53, ptr %t54 store ptr null, ptr %t55 store i32 0, ptr %t56 br label %wcond8 wcond8: %t57 = load i32, ptr %t56 %t58 = load ptr, ptr %t0 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 4 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 7 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp slt i32 %t57, %t64 %t66 = zext i1 %t65 to i32 %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %wbody9, label %wend10 wbody9: %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 4 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 7 %t72 = load ptr, ptr %t71 %t73 = load i32, ptr %t56 %t74 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t77 = load i32, ptr %t76 %t78 = icmp ult i32 %t73, %t77 br i1 %t78, label %ixok11, label %ixbad12 ixbad12: %t79 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t79, ptr @.fmt_bounds, ptr @.str10513, i32 %t73, i32 %t77) call void @exit(i32 1) unreachable ixok11: %t80 = getelementptr inbounds ptr, ptr %t75, i32 %t73 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 1 %t83 = load ptr, ptr %t82 %t84 = load ptr, ptr %t54 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 %t87 = call i32 @lp_str_eq(ptr %t83, ptr %t86) %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then13, label %ifend15 then13: %t89 = load ptr, ptr %t0 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 4 %t91 = load ptr, ptr %t90 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 7 %t93 = load ptr, ptr %t92 %t94 = load i32, ptr %t56 %t95 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp ult i32 %t94, %t98 br i1 %t99, label %ixok16, label %ixbad17 ixbad17: %t100 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t100, ptr @.fmt_bounds, ptr @.str10514, i32 %t94, i32 %t98) call void @exit(i32 1) unreachable ixok16: %t101 = getelementptr inbounds ptr, ptr %t96, i32 %t94 %t102 = load ptr, ptr %t101 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 4 %t104 = load ptr, ptr %t103 store ptr %t104, ptr %t55 br label %ifend15 ifend15: %t105 = load i32, ptr %t56 %t106 = add i32 %t105, 1 store i32 %t106, ptr %t56 br label %wcond8 wend10: %t107 = load ptr, ptr %t54 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 3 %t109 = load ptr, ptr %t108 %t110 = call ptr @fn_llty(ptr %t109) store ptr %t110, ptr %t111 store ptr @.str10515, ptr %t112 %t113 = load ptr, ptr %t111 %t114 = call i32 @lp_str_eq(ptr %t113, ptr @.str10516) %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then18, label %ifend20 then18: store ptr @.str10517, ptr %t112 br label %ifend20 ifend20: %t116 = load ptr, ptr %t55 %t117 = icmp ne ptr %t116, null %t118 = zext i1 %t117 to i32 %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then21, label %else22 then21: %t120 = load ptr, ptr %t55 %t121 = call ptr @fn_emit_expr(ptr %t120) store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %Cmp_Val, ptr %t123, i32 0, i32 0 %t125 = load ptr, ptr %t124 store ptr %t125, ptr %t112 br label %ifend23 else22: %t126 = load ptr, ptr %t54 %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 4 %t128 = load ptr, ptr %t127 %t129 = icmp ne ptr %t128, null %t130 = zext i1 %t129 to i32 %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %then24, label %ifend26 then24: %t132 = load ptr, ptr %t54 %t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 4 %t134 = load ptr, ptr %t133 %t135 = call ptr @fn_emit_expr(ptr %t134) store ptr %t135, ptr %t136 %t137 = load ptr, ptr %t136 %t138 = getelementptr inbounds %Cmp_Val, ptr %t137, i32 0, i32 0 %t139 = load ptr, ptr %t138 store ptr %t139, ptr %t112 br label %ifend26 ifend26: br label %ifend23 ifend23: %t140 = load ptr, ptr %t24 %t141 = load ptr, ptr %t112 %t142 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 1 %t143 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 2 %t144 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0 %t145 = load i32, ptr %t142 %t146 = load i32, ptr %t143 %t147 = icmp sge i32 %t145, %t146 br i1 %t147, label %grow27, label %put28 grow27: %t148 = mul i32 %t146, 2 %t149 = icmp eq i32 %t146, 0 %t150 = select i1 %t149, i32 8, i32 %t148 %t151 = getelementptr ptr, ptr null, i32 1 %t152 = ptrtoint ptr %t151 to i64 %t153 = zext i32 %t150 to i64 %t154 = mul i64 %t153, %t152 %t155 = load ptr, ptr %t144 %t156 = call ptr @realloc(ptr %t155, i64 %t154) store ptr %t156, ptr %t144 store i32 %t150, ptr %t143 br label %put28 put28: %t157 = load ptr, ptr %t144 %t158 = getelementptr inbounds ptr, ptr %t157, i32 %t145 store ptr %t141, ptr %t158 %t159 = add i32 %t145, 1 store i32 %t159, ptr %t142 %t160 = load ptr, ptr %t31 %t161 = load ptr, ptr %t111 %t162 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 1 %t163 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 2 %t164 = getelementptr inbounds %LSlice, ptr %t160, i32 0, i32 0 %t165 = load i32, ptr %t162 %t166 = load i32, ptr %t163 %t167 = icmp sge i32 %t165, %t166 br i1 %t167, label %grow29, label %put30 grow29: %t168 = mul i32 %t166, 2 %t169 = icmp eq i32 %t166, 0 %t170 = select i1 %t169, i32 8, i32 %t168 %t171 = getelementptr ptr, ptr null, i32 1 %t172 = ptrtoint ptr %t171 to i64 %t173 = zext i32 %t170 to i64 %t174 = mul i64 %t173, %t172 %t175 = load ptr, ptr %t164 %t176 = call ptr @realloc(ptr %t175, i64 %t174) store ptr %t176, ptr %t164 store i32 %t170, ptr %t163 br label %put30 put30: %t177 = load ptr, ptr %t164 %t178 = getelementptr inbounds ptr, ptr %t177, i32 %t165 store ptr %t161, ptr %t178 %t179 = add i32 %t165, 1 store i32 %t179, ptr %t162 %t180 = load i32, ptr %t32 %t181 = add i32 %t180, 1 store i32 %t181, ptr %t32 br label %wcond3 wend5: %t182 = load ptr, ptr %t5 %t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 3 %t184 = load ptr, ptr %t183 %t185 = icmp ne ptr %t184, null %t186 = zext i1 %t185 to i32 %t187 = icmp ne i32 %t186, 0 br i1 %t187, label %then31, label %ifend33 then31: %t188 = call ptr @fn_nreg() store ptr %t188, ptr %t189 call void @fn_emit(ptr @.str10518) %t190 = load ptr, ptr %t189 call void @fn_emit(ptr %t190) call void @fn_emit(ptr @.str10519) call void @fn_emit(ptr @.str10520) %t191 = load ptr, ptr %t0 %t192 = getelementptr inbounds %Cmp_Node, ptr %t191, i32 0, i32 1 %t193 = load ptr, ptr %t192 %t194 = call i32 @fn_net_event_id(ptr %t193) %t195 = call ptr @fn_itoa(i32 %t194) call void @fn_emit(ptr %t195) call void @fn_emit(ptr @.str10521) %t196 = load ptr, ptr %t189 call void @fn_emit(ptr %t196) call void @fn_emit(ptr @.str10522) store i32 4, ptr %t197 store i32 0, ptr %t198 br label %wcond34 wcond34: %t199 = load i32, ptr %t198 %t200 = load ptr, ptr %t5 %t201 = getelementptr inbounds %Cmp_Node, ptr %t200, i32 0, i32 7 %t202 = load ptr, ptr %t201 %t203 = getelementptr inbounds %LSlice, ptr %t202, i32 0, i32 1 %t204 = load i32, ptr %t203 %t205 = icmp slt i32 %t199, %t204 %t206 = zext i1 %t205 to i32 %t207 = icmp ne i32 %t206, 0 br i1 %t207, label %wbody35, label %wend36 wbody35: %t208 = call ptr @fn_nreg() store ptr %t208, ptr %t209 call void @fn_emit(ptr @.str10523) %t210 = load ptr, ptr %t209 call void @fn_emit(ptr %t210) call void @fn_emit(ptr @.str10524) %t211 = load i32, ptr %t197 %t212 = call ptr @fn_itoa(i32 %t211) call void @fn_emit(ptr %t212) call void @fn_emit(ptr @.str10525) call void @fn_emit(ptr @.str10526) %t213 = load ptr, ptr %t31 %t214 = load i32, ptr %t198 %t215 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 0 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 1 %t218 = load i32, ptr %t217 %t219 = icmp ult i32 %t214, %t218 br i1 %t219, label %ixok37, label %ixbad38 ixbad38: %t220 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t220, ptr @.fmt_bounds, ptr @.str10527, i32 %t214, i32 %t218) call void @exit(i32 1) unreachable ixok37: %t221 = getelementptr inbounds ptr, ptr %t216, i32 %t214 %t222 = load ptr, ptr %t221 call void @fn_emit(ptr %t222) call void @fn_emit(ptr @.str10528) %t223 = load ptr, ptr %t24 %t224 = load i32, ptr %t198 %t225 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 0 %t226 = load ptr, ptr %t225 %t227 = getelementptr inbounds %LSlice, ptr %t223, i32 0, i32 1 %t228 = load i32, ptr %t227 %t229 = icmp ult i32 %t224, %t228 br i1 %t229, label %ixok39, label %ixbad40 ixbad40: %t230 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t230, ptr @.fmt_bounds, ptr @.str10529, i32 %t224, i32 %t228) call void @exit(i32 1) unreachable ixok39: %t231 = getelementptr inbounds ptr, ptr %t226, i32 %t224 %t232 = load ptr, ptr %t231 call void @fn_emit(ptr %t232) call void @fn_emit(ptr @.str10530) %t233 = load ptr, ptr %t209 call void @fn_emit(ptr %t233) call void @fn_emit(ptr @.str10531) %t234 = load ptr, ptr %t5 %t235 = getelementptr inbounds %Cmp_Node, ptr %t234, i32 0, i32 7 %t236 = load ptr, ptr %t235 %t237 = load i32, ptr %t198 %t238 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 0 %t239 = load ptr, ptr %t238 %t240 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 1 %t241 = load i32, ptr %t240 %t242 = icmp ult i32 %t237, %t241 br i1 %t242, label %ixok41, label %ixbad42 ixbad42: %t243 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t243, ptr @.fmt_bounds, ptr @.str10532, i32 %t237, i32 %t241) call void @exit(i32 1) unreachable ixok41: %t244 = getelementptr inbounds ptr, ptr %t239, i32 %t237 %t245 = load ptr, ptr %t244 %t246 = getelementptr inbounds %Cmp_Node, ptr %t245, i32 0, i32 3 %t247 = load ptr, ptr %t246 %t248 = call i32 @fn_net_field_ibytes(ptr %t247) %t249 = load i32, ptr %t197 %t250 = add i32 %t249, %t248 store i32 %t250, ptr %t197 %t251 = load i32, ptr %t198 %t252 = add i32 %t251, 1 store i32 %t252, ptr %t198 br label %wcond34 wend36: store ptr @.str10533, ptr %t253 %t254 = load ptr, ptr %t5 %t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 3 %t256 = load ptr, ptr %t255 %t257 = call i32 @lp_str_eq(ptr %t256, ptr @.str10534) %t258 = icmp ne i32 %t257, 0 br i1 %t258, label %then43, label %ifend45 then43: store ptr @.str10535, ptr %t253 br label %ifend45 ifend45: %t259 = call ptr @fn_find_extern(ptr @.str10536) %t260 = icmp eq ptr %t259, null %t261 = zext i1 %t260 to i32 %t262 = icmp ne i32 %t261, 0 br i1 %t262, label %then46, label %ifend48 then46: store i32 1, ptr @g_g_uses_loopback br label %ifend48 ifend48: call void @fn_emit(ptr @.str10537) %t263 = call ptr @fn_net_send_sym() call void @fn_emit(ptr %t263) call void @fn_emit(ptr @.str10538) %t264 = load ptr, ptr %t253 call void @fn_emit(ptr %t264) call void @fn_emit(ptr @.str10539) %t265 = load i32, ptr %t197 %t266 = call ptr @fn_itoa(i32 %t265) call void @fn_emit(ptr %t266) call void @fn_emit(ptr @.str10540) %t267 = call ptr @fn_val(ptr @.str10541, ptr @.str10542) store ptr %t267, ptr %retval br label %ret ifend33: %t268 = call ptr @fn_buf_new() store ptr %t268, ptr %t269 store i32 0, ptr %t270 br label %wcond49 wcond49: %t271 = load i32, ptr %t270 %t272 = load ptr, ptr %t24 %t273 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 1 %t274 = load i32, ptr %t273 %t275 = icmp slt i32 %t271, %t274 %t276 = zext i1 %t275 to i32 %t277 = icmp ne i32 %t276, 0 br i1 %t277, label %wbody50, label %wend51 wbody50: %t278 = load i32, ptr %t270 %t279 = icmp sgt i32 %t278, 0 %t280 = zext i1 %t279 to i32 %t281 = icmp ne i32 %t280, 0 br i1 %t281, label %then52, label %ifend54 then52: %t282 = load ptr, ptr %t269 call void @fn_buf_puts(ptr %t282, ptr @.str10543) br label %ifend54 ifend54: %t283 = load ptr, ptr %t269 %t284 = load ptr, ptr %t31 %t285 = load i32, ptr %t270 %t286 = getelementptr inbounds %LSlice, ptr %t284, i32 0, i32 0 %t287 = load ptr, ptr %t286 %t288 = getelementptr inbounds %LSlice, ptr %t284, i32 0, i32 1 %t289 = load i32, ptr %t288 %t290 = icmp ult i32 %t285, %t289 br i1 %t290, label %ixok55, label %ixbad56 ixbad56: %t291 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t291, ptr @.fmt_bounds, ptr @.str10544, i32 %t285, i32 %t289) call void @exit(i32 1) unreachable ixok55: %t292 = getelementptr inbounds ptr, ptr %t287, i32 %t285 %t293 = load ptr, ptr %t292 call void @fn_buf_puts(ptr %t283, ptr %t293) %t294 = load ptr, ptr %t269 call void @fn_buf_puts(ptr %t294, ptr @.str10545) %t295 = load ptr, ptr %t269 %t296 = load ptr, ptr %t24 %t297 = load i32, ptr %t270 %t298 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 0 %t299 = load ptr, ptr %t298 %t300 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 1 %t301 = load i32, ptr %t300 %t302 = icmp ult i32 %t297, %t301 br i1 %t302, label %ixok57, label %ixbad58 ixbad58: %t303 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t303, ptr @.fmt_bounds, ptr @.str10546, i32 %t297, i32 %t301) call void @exit(i32 1) unreachable ixok57: %t304 = getelementptr inbounds ptr, ptr %t299, i32 %t297 %t305 = load ptr, ptr %t304 call void @fn_buf_puts(ptr %t295, ptr %t305) %t306 = load i32, ptr %t270 %t307 = add i32 %t306, 1 store i32 %t307, ptr %t270 br label %wcond49 wend51: %t308 = load ptr, ptr %t5 %t309 = getelementptr inbounds %Cmp_Node, ptr %t308, i32 0, i32 2 %t310 = load i32, ptr %t309 %t311 = icmp eq i32 %t310, 1 %t312 = zext i1 %t311 to i32 %t313 = icmp ne i32 %t312, 0 br i1 %t313, label %then59, label %ifend61 then59: %t314 = call ptr @fn_nreg() store ptr %t314, ptr %t315 call void @fn_emit(ptr @.str10547) %t316 = load ptr, ptr %t315 call void @fn_emit(ptr %t316) call void @fn_emit(ptr @.str10548) %t317 = load ptr, ptr %t0 %t318 = getelementptr inbounds %Cmp_Node, ptr %t317, i32 0, i32 1 %t319 = load ptr, ptr %t318 call void @fn_emit(ptr %t319) call void @fn_emit(ptr @.str10549) %t320 = load ptr, ptr %t269 %t321 = call ptr @fn_buf_str(ptr %t320) call void @fn_emit(ptr %t321) call void @fn_emit(ptr @.str10550) %t322 = load ptr, ptr %t315 %t323 = call ptr @fn_val(ptr %t322, ptr @.str10551) store ptr %t323, ptr %retval br label %ret ifend61: call void @fn_emit(ptr @.str10552) %t324 = load ptr, ptr %t0 %t325 = getelementptr inbounds %Cmp_Node, ptr %t324, i32 0, i32 1 %t326 = load ptr, ptr %t325 call void @fn_emit(ptr %t326) call void @fn_emit(ptr @.str10553) %t327 = load ptr, ptr %t269 %t328 = call ptr @fn_buf_str(ptr %t327) call void @fn_emit(ptr %t328) call void @fn_emit(ptr @.str10554) %t329 = call ptr @fn_val(ptr @.str10555, ptr @.str10556) store ptr %t329, ptr %retval br label %ret ret: %t330 = load ptr, ptr %retval ret ptr %t330 } define void @fn_emit_stmt(ptr %arg_st) { entry: %t0 = alloca ptr %t22 = alloca ptr %t31 = alloca ptr %t38 = alloca ptr %t56 = alloca ptr %t73 = alloca ptr %t179 = alloca ptr %t225 = alloca ptr %t261 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 9 %t3 = load ptr, ptr %t2 store ptr %t3, ptr @g_g_err_file %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 8 %t6 = load i32, ptr %t5 store i32 %t6, ptr @g_g_err_line %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 8 %t9 = load i32, ptr %t8 call void @fn_emit_cov_hit(i32 %t9) %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 0 %t12 = load i32, ptr %t11 %t13 = icmp eq i32 %t12, 10 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then0, label %ifend2 then0: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 call void @fn_loc_check_redeclared(ptr %t18) %t19 = load ptr, ptr %t0 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 3 %t21 = load ptr, ptr %t20 store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t22 %t24 = icmp eq ptr %t23, null %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then3, label %ifend5 then3: %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 4 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_emit_expr(ptr %t29) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Val, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 store ptr %t34, ptr %t22 %t35 = load ptr, ptr %t22 %t36 = call ptr @fn_llty(ptr %t35) %t37 = call ptr @fn_emit_alloca(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t22 %t40 = call ptr @fn_llty(ptr %t39) %t41 = load ptr, ptr %t31 %t42 = getelementptr inbounds %Cmp_Val, ptr %t41, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = load ptr, ptr %t38 call void @fn_store_at(ptr %t40, ptr %t43, ptr %t44) %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = load ptr, ptr %t38 %t49 = load ptr, ptr %t22 call void @fn_loc_push(ptr %t47, ptr %t48, ptr %t49) call void @fn_loc_mark_declared() %t50 = load ptr, ptr %t0 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 2 %t52 = load i32, ptr %t51 call void @fn_loc_set_mut(i32 %t52) br label %ret ifend5: %t53 = load ptr, ptr %t22 %t54 = call ptr @fn_llty(ptr %t53) %t55 = call ptr @fn_emit_alloca(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t0 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 4 %t59 = load ptr, ptr %t58 %t60 = icmp eq ptr %t59, null %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then6, label %else7 then6: %t63 = load ptr, ptr %t22 %t64 = call ptr @fn_llty(ptr %t63) %t65 = load ptr, ptr %t22 %t66 = call ptr @fn_llty(ptr %t65) %t67 = call ptr @fn_zero_of(ptr %t66) %t68 = load ptr, ptr %t56 call void @fn_store_at(ptr %t64, ptr %t67, ptr %t68) br label %ifend8 else7: %t69 = load ptr, ptr %t0 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 4 %t71 = load ptr, ptr %t70 %t72 = call ptr @fn_emit_expr(ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t22 %t75 = call ptr @fn_llty(ptr %t74) %t76 = load ptr, ptr %t73 %t77 = load ptr, ptr %t22 %t78 = call ptr @fn_coerce_code(ptr %t76, ptr %t77) %t79 = load ptr, ptr %t56 call void @fn_store_at(ptr %t75, ptr %t78, ptr %t79) br label %ifend8 ifend8: %t80 = load ptr, ptr %t0 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 1 %t82 = load ptr, ptr %t81 %t83 = load ptr, ptr %t56 %t84 = load ptr, ptr %t22 call void @fn_loc_push(ptr %t82, ptr %t83, ptr %t84) call void @fn_loc_mark_declared() %t85 = load ptr, ptr %t0 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 2 %t87 = load i32, ptr %t86 call void @fn_loc_set_mut(i32 %t87) br label %ret ifend2: %t88 = load ptr, ptr %t0 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 0 %t90 = load i32, ptr %t89 %t91 = icmp eq i32 %t90, 11 %t92 = zext i1 %t91 to i32 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then9, label %ifend11 then9: %t94 = load ptr, ptr %t0 call void @fn_emit_assign(ptr %t94) br label %ret ifend11: %t95 = load ptr, ptr %t0 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 0 %t97 = load i32, ptr %t96 %t98 = icmp eq i32 %t97, 12 %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then12, label %ifend14 then12: %t101 = load ptr, ptr %t0 call void @fn_emit_if(ptr %t101) br label %ret ifend14: %t102 = load ptr, ptr %t0 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 0 %t104 = load i32, ptr %t103 %t105 = icmp eq i32 %t104, 13 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then15, label %ifend17 then15: %t108 = load ptr, ptr %t0 call void @fn_emit_while(ptr %t108) br label %ret ifend17: %t109 = load ptr, ptr %t0 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 0 %t111 = load i32, ptr %t110 %t112 = icmp eq i32 %t111, 14 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then18, label %ifend20 then18: %t115 = load ptr, ptr %t0 call void @fn_emit_for(ptr %t115) br label %ret ifend20: %t116 = load ptr, ptr %t0 %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 0 %t118 = load i32, ptr %t117 %t119 = icmp eq i32 %t118, 15 %t120 = zext i1 %t119 to i32 %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then21, label %ifend23 then21: %t122 = load ptr, ptr %t0 call void @fn_emit_return(ptr %t122) br label %ret ifend23: %t123 = load ptr, ptr %t0 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 0 %t125 = load i32, ptr %t124 %t126 = icmp eq i32 %t125, 17 %t127 = zext i1 %t126 to i32 %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %then24, label %ifend26 then24: call void @fn_emit(ptr @.str10557) %t129 = load ptr, ptr @g_brk_lbl %t130 = load i32, ptr @g_nloop %t131 = sub i32 %t130, 1 %t132 = getelementptr inbounds %LSlice, ptr %t129, i32 0, i32 0 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %LSlice, ptr %t129, i32 0, i32 1 %t135 = load i32, ptr %t134 %t136 = icmp ult i32 %t131, %t135 br i1 %t136, label %ixok27, label %ixbad28 ixbad28: %t137 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t137, ptr @.fmt_bounds, ptr @.str10558, i32 %t131, i32 %t135) call void @exit(i32 1) unreachable ixok27: %t138 = getelementptr inbounds ptr, ptr %t133, i32 %t131 %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str10559) store i32 1, ptr @g_g_term br label %ret ifend26: %t140 = load ptr, ptr %t0 %t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 0 %t142 = load i32, ptr %t141 %t143 = icmp eq i32 %t142, 18 %t144 = zext i1 %t143 to i32 %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then29, label %ifend31 then29: call void @fn_emit(ptr @.str10560) %t146 = load ptr, ptr @g_cnt_lbl %t147 = load i32, ptr @g_nloop %t148 = sub i32 %t147, 1 %t149 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 0 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 1 %t152 = load i32, ptr %t151 %t153 = icmp ult i32 %t148, %t152 br i1 %t153, label %ixok32, label %ixbad33 ixbad33: %t154 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t154, ptr @.fmt_bounds, ptr @.str10561, i32 %t148, i32 %t152) call void @exit(i32 1) unreachable ixok32: %t155 = getelementptr inbounds ptr, ptr %t150, i32 %t148 %t156 = load ptr, ptr %t155 call void @fn_emit(ptr %t156) call void @fn_emit(ptr @.str10562) store i32 1, ptr @g_g_term br label %ret ifend31: %t157 = load ptr, ptr %t0 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 0 %t159 = load i32, ptr %t158 %t160 = icmp eq i32 %t159, 19 %t161 = zext i1 %t160 to i32 %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then34, label %ifend36 then34: %t163 = load ptr, ptr %t0 call void @fn_emit_match(ptr %t163) br label %ret ifend36: %t164 = load ptr, ptr %t0 %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 0 %t166 = load i32, ptr %t165 %t167 = icmp eq i32 %t166, 21 %t168 = zext i1 %t167 to i32 %t169 = icmp ne i32 %t168, 0 br i1 %t169, label %then37, label %ifend39 then37: %t170 = load ptr, ptr %t0 call void @fn_emit_query(ptr %t170) br label %ret ifend39: %t171 = load ptr, ptr %t0 %t172 = getelementptr inbounds %Cmp_Node, ptr %t171, i32 0, i32 0 %t173 = load i32, ptr %t172 %t174 = icmp eq i32 %t173, 22 %t175 = zext i1 %t174 to i32 %t176 = icmp ne i32 %t175, 0 br i1 %t176, label %then40, label %ifend42 then40: %t177 = load ptr, ptr %t0 %t178 = call ptr @fn_emit_spawn(ptr %t177) store ptr %t178, ptr %t179 br label %ret ifend42: %t180 = load ptr, ptr %t0 %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 0 %t182 = load i32, ptr %t181 %t183 = icmp eq i32 %t182, 23 %t184 = zext i1 %t183 to i32 %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then43, label %ifend45 then43: %t186 = load ptr, ptr %t0 call void @fn_emit_despawn(ptr %t186) br label %ret ifend45: %t187 = load ptr, ptr %t0 %t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 0 %t189 = load i32, ptr %t188 %t190 = icmp eq i32 %t189, 28 %t191 = zext i1 %t190 to i32 %t192 = icmp ne i32 %t191, 0 br i1 %t192, label %then46, label %ifend48 then46: %t193 = load ptr, ptr %t0 call void @fn_emit_toggle(ptr %t193) br label %ret ifend48: %t194 = load ptr, ptr %t0 %t195 = getelementptr inbounds %Cmp_Node, ptr %t194, i32 0, i32 0 %t196 = load i32, ptr %t195 %t197 = icmp eq i32 %t196, 56 %t198 = zext i1 %t197 to i32 %t199 = icmp ne i32 %t198, 0 br i1 %t199, label %then49, label %ifend51 then49: %t200 = load ptr, ptr %t0 %t201 = getelementptr inbounds %Cmp_Node, ptr %t200, i32 0, i32 4 %t202 = load ptr, ptr %t201 call void @fn_emit_block(ptr %t202) br label %ret ifend51: %t203 = load ptr, ptr %t0 %t204 = getelementptr inbounds %Cmp_Node, ptr %t203, i32 0, i32 0 %t205 = load i32, ptr %t204 %t206 = icmp eq i32 %t205, 46 %t207 = zext i1 %t206 to i32 %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %then52, label %ifend54 then52: %t209 = load ptr, ptr %t0 call void @fn_emit_attach(ptr %t209) br label %ret ifend54: %t210 = load ptr, ptr %t0 %t211 = getelementptr inbounds %Cmp_Node, ptr %t210, i32 0, i32 0 %t212 = load i32, ptr %t211 %t213 = icmp eq i32 %t212, 47 %t214 = zext i1 %t213 to i32 %t215 = icmp ne i32 %t214, 0 br i1 %t215, label %then55, label %ifend57 then55: %t216 = load ptr, ptr %t0 call void @fn_emit_detach(ptr %t216) br label %ret ifend57: %t217 = load ptr, ptr %t0 %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 0 %t219 = load i32, ptr %t218 %t220 = icmp eq i32 %t219, 49 %t221 = zext i1 %t220 to i32 %t222 = icmp ne i32 %t221, 0 br i1 %t222, label %then58, label %ifend60 then58: %t223 = load ptr, ptr %t0 %t224 = call ptr @fn_emit_emit(ptr %t223) store ptr %t224, ptr %t225 br label %ret ifend60: %t226 = load ptr, ptr %t0 %t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 0 %t228 = load i32, ptr %t227 %t229 = icmp eq i32 %t228, 50 %t230 = zext i1 %t229 to i32 %t231 = icmp ne i32 %t230, 0 br i1 %t231, label %then61, label %ifend63 then61: %t232 = load ptr, ptr @g_g_cancel_addr %t233 = icmp eq ptr %t232, null %t234 = zext i1 %t233 to i32 %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %then64, label %ifend66 then64: call void @fn_perr(ptr @.str10563) br label %ifend66 ifend66: call void @fn_emit(ptr @.str10564) %t236 = load ptr, ptr @g_g_cancel_addr call void @fn_emit(ptr %t236) call void @fn_emit(ptr @.str10565) br label %ret ifend63: %t237 = load ptr, ptr %t0 %t238 = getelementptr inbounds %Cmp_Node, ptr %t237, i32 0, i32 0 %t239 = load i32, ptr %t238 %t240 = icmp eq i32 %t239, 24 %t241 = zext i1 %t240 to i32 %t242 = icmp ne i32 %t241, 0 br i1 %t242, label %then67, label %ifend69 then67: %t243 = load ptr, ptr %t0 call void @fn_emit_machine(ptr %t243) br label %ret ifend69: %t244 = load ptr, ptr %t0 %t245 = getelementptr inbounds %Cmp_Node, ptr %t244, i32 0, i32 0 %t246 = load i32, ptr %t245 %t247 = icmp eq i32 %t246, 26 %t248 = zext i1 %t247 to i32 %t249 = icmp ne i32 %t248, 0 br i1 %t249, label %then70, label %ifend72 then70: %t250 = load ptr, ptr %t0 call void @fn_emit_become(ptr %t250) br label %ret ifend72: %t251 = load ptr, ptr %t0 %t252 = getelementptr inbounds %Cmp_Node, ptr %t251, i32 0, i32 0 %t253 = load i32, ptr %t252 %t254 = icmp eq i32 %t253, 16 %t255 = zext i1 %t254 to i32 %t256 = icmp ne i32 %t255, 0 br i1 %t256, label %then73, label %ifend75 then73: %t257 = load ptr, ptr %t0 %t258 = getelementptr inbounds %Cmp_Node, ptr %t257, i32 0, i32 4 %t259 = load ptr, ptr %t258 %t260 = call ptr @fn_emit_expr(ptr %t259) store ptr %t260, ptr %t261 br label %ret ifend75: call void @fn_perr(ptr @.str10566) br label %ret ret: ret void } define void @fn_loop_push(ptr %arg_cont, ptr %arg_brk) { entry: %t0 = alloca ptr %t1 = alloca ptr store ptr %arg_cont, ptr %t0 store ptr %arg_brk, ptr %t1 %t2 = load i32, ptr @g_nloop %t3 = load ptr, ptr @g_cnt_lbl %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %else1 then0: %t9 = load ptr, ptr @g_cnt_lbl %t10 = load i32, ptr @g_nloop %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str10567, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t0 store ptr %t18, ptr %t17 %t19 = load ptr, ptr @g_brk_lbl %t20 = load i32, ptr @g_nloop %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok5, label %ixbad6 ixbad6: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str10568, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok5: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t1 store ptr %t28, ptr %t27 br label %ifend2 else1: %t29 = load ptr, ptr @g_cnt_lbl %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t32 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 2 %t33 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 0 %t34 = load i32, ptr %t31 %t35 = load i32, ptr %t32 %t36 = icmp sge i32 %t34, %t35 br i1 %t36, label %grow7, label %put8 grow7: %t37 = mul i32 %t35, 2 %t38 = icmp eq i32 %t35, 0 %t39 = select i1 %t38, i32 8, i32 %t37 %t40 = getelementptr ptr, ptr null, i32 1 %t41 = ptrtoint ptr %t40 to i64 %t42 = zext i32 %t39 to i64 %t43 = mul i64 %t42, %t41 %t44 = load ptr, ptr %t33 %t45 = call ptr @realloc(ptr %t44, i64 %t43) store ptr %t45, ptr %t33 store i32 %t39, ptr %t32 br label %put8 put8: %t46 = load ptr, ptr %t33 %t47 = getelementptr inbounds ptr, ptr %t46, i32 %t34 store ptr %t30, ptr %t47 %t48 = add i32 %t34, 1 store i32 %t48, ptr %t31 %t49 = load ptr, ptr @g_brk_lbl %t50 = load ptr, ptr %t1 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t52 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 2 %t53 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t54 = load i32, ptr %t51 %t55 = load i32, ptr %t52 %t56 = icmp sge i32 %t54, %t55 br i1 %t56, label %grow9, label %put10 grow9: %t57 = mul i32 %t55, 2 %t58 = icmp eq i32 %t55, 0 %t59 = select i1 %t58, i32 8, i32 %t57 %t60 = getelementptr ptr, ptr null, i32 1 %t61 = ptrtoint ptr %t60 to i64 %t62 = zext i32 %t59 to i64 %t63 = mul i64 %t62, %t61 %t64 = load ptr, ptr %t53 %t65 = call ptr @realloc(ptr %t64, i64 %t63) store ptr %t65, ptr %t53 store i32 %t59, ptr %t52 br label %put10 put10: %t66 = load ptr, ptr %t53 %t67 = getelementptr inbounds ptr, ptr %t66, i32 %t54 store ptr %t50, ptr %t67 %t68 = add i32 %t54, 1 store i32 %t68, ptr %t51 br label %ifend2 ifend2: %t69 = load i32, ptr @g_nloop %t70 = add i32 %t69, 1 store i32 %t70, ptr @g_nloop br label %ret ret: ret void } define void @fn_loop_pop() { entry: %t0 = load i32, ptr @g_nloop %t1 = sub i32 %t0, 1 store i32 %t1, ptr @g_nloop br label %ret ret: ret void } define i32 @fn_has_systems() { entry: %retval = alloca i32 %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str10569, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 9 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t0 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t0 br label %wcond0 wend2: %t25 = call i32 @fn_uses_engine_systems() %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: store i32 0, ptr %retval br label %ret ret: %t27 = load i32, ptr %retval ret i32 %t27 } define i32 @fn_has_models() { entry: %retval = alloca i32 %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str10570, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 10 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t0 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define i32 @fn_uses_engine_systems() { entry: %retval = alloca i32 %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_esys_comp %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_esys_comp %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str10571, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_find_comp(ptr %t17) %t19 = icmp ne ptr %t18, null %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t22 = load i32, ptr %t0 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t0 br label %wcond0 wend2: %t24 = call ptr @fn_find_comp(ptr @.str10572) %t25 = icmp ne ptr %t24, null %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then8, label %ifend10 then8: store i32 1, ptr %retval br label %ret ifend10: store i32 0, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define i32 @fn_has_entry() { entry: %retval = alloca i32 %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str10573, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 6 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t0 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define i32 @fn_has_ecs() { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = call i32 @fn_has_systems() %t2 = icmp ne i32 %t1, 0 %t3 = zext i1 %t2 to i32 store i32 %t3, ptr %t0 br i1 %t2, label %scend1, label %sc0 sc0: %t4 = call i32 @fn_has_models() %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t0 br label %scend1 scend1: %t7 = load i32, ptr %t0 store i32 %t7, ptr %retval br label %ret ret: %t8 = load i32, ptr %retval ret i32 %t8 } define void @fn_emit_ecs_storage() { entry: %t7 = alloca ptr %t24 = alloca i32 %t42 = alloca ptr %t94 = alloca i32 call void @fn_emith(ptr @.str10574) call void @fn_emith(ptr @.str10575) call void @fn_emith(ptr @.str10576) %t0 = load ptr, ptr @g_g_scenes %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t2 = load i32, ptr %t1 %t3 = icmp sgt i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: call void @fn_emith(ptr @.str10577) br label %ifend2 ifend2: call void @fn_emith(ptr @.str10578) %t6 = call ptr @fn_itoa(i32 1024) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr @.str10579, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str10580) call void @fn_emith(ptr %t10) %t11 = load ptr, ptr %t7 %t12 = call ptr @lp_str_concat(ptr @.str10581, ptr %t11) %t13 = call ptr @lp_str_concat(ptr %t12, ptr @.str10582) call void @fn_emith(ptr %t13) %t14 = load ptr, ptr %t7 %t15 = call ptr @lp_str_concat(ptr @.str10583, ptr %t14) %t16 = call ptr @lp_str_concat(ptr %t15, ptr @.str10584) call void @fn_emith(ptr %t16) call void @fn_emith(ptr @.str10585) %t17 = call i32 @fn_net_any() %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: call void @fn_emith(ptr @.str10586) call void @fn_emith(ptr @.str10587) br label %ifend5 ifend5: %t19 = call i32 @fn_net_has_owned() %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then6, label %ifend8 then6: %t21 = load ptr, ptr %t7 %t22 = call ptr @lp_str_concat(ptr @.str10588, ptr %t21) %t23 = call ptr @lp_str_concat(ptr %t22, ptr @.str10589) call void @fn_emith(ptr %t23) br label %ifend8 ifend8: store i32 0, ptr %t24 br label %wcond9 wcond9: %t25 = load i32, ptr %t24 %t26 = load ptr, ptr @g_prog %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp slt i32 %t25, %t28 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %wbody10, label %wend11 wbody10: %t32 = load ptr, ptr @g_prog %t33 = load i32, ptr %t24 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 %t33, %t37 br i1 %t38, label %ixok12, label %ixbad13 ixbad13: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str10590, i32 %t33, i32 %t37) call void @exit(i32 1) unreachable ixok12: %t40 = getelementptr inbounds ptr, ptr %t35, i32 %t33 %t41 = load ptr, ptr %t40 store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 0 %t45 = load i32, ptr %t44 %t46 = icmp eq i32 %t45, 8 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then14, label %ifend16 then14: %t49 = load ptr, ptr %t42 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1 %t51 = load ptr, ptr %t50 %t52 = call ptr @lp_str_concat(ptr @.str10591, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str10592) %t54 = load ptr, ptr %t7 %t55 = call ptr @lp_str_concat(ptr %t53, ptr %t54) %t56 = call ptr @lp_str_concat(ptr %t55, ptr @.str10593) %t57 = load ptr, ptr %t42 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 1 %t59 = load ptr, ptr %t58 %t60 = call ptr @lp_str_concat(ptr %t56, ptr %t59) %t61 = call ptr @lp_str_concat(ptr %t60, ptr @.str10594) call void @fn_emith(ptr %t61) %t62 = load ptr, ptr %t42 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 %t65 = call ptr @lp_str_concat(ptr @.str10595, ptr %t64) %t66 = call ptr @lp_str_concat(ptr %t65, ptr @.str10596) %t67 = load ptr, ptr %t7 %t68 = call ptr @lp_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @lp_str_concat(ptr %t68, ptr @.str10597) call void @fn_emith(ptr %t69) br label %ifend16 ifend16: %t70 = load ptr, ptr %t42 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 0 %t72 = load i32, ptr %t71 %t73 = icmp eq i32 %t72, 10 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then17, label %ifend19 then17: %t76 = load ptr, ptr %t42 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 1 %t78 = load ptr, ptr %t77 %t79 = call ptr @lp_str_concat(ptr @.str10598, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str10599) call void @fn_emith(ptr %t80) br label %ifend19 ifend19: %t81 = load ptr, ptr %t42 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 0 %t83 = load i32, ptr %t82 %t84 = icmp eq i32 %t83, 9 %t85 = zext i1 %t84 to i32 %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then20, label %ifend22 then20: %t87 = load ptr, ptr %t42 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 1 %t89 = load ptr, ptr %t88 %t90 = call ptr @lp_str_concat(ptr @.str10600, ptr %t89) %t91 = call ptr @lp_str_concat(ptr %t90, ptr @.str10601) call void @fn_emith(ptr %t91) br label %ifend22 ifend22: %t92 = load i32, ptr %t24 %t93 = add i32 %t92, 1 store i32 %t93, ptr %t24 br label %wcond9 wend11: store i32 0, ptr %t94 br label %wcond23 wcond23: %t95 = load i32, ptr %t94 %t96 = load ptr, ptr @g_g_toggled_layers %t97 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t98 = load i32, ptr %t97 %t99 = icmp slt i32 %t95, %t98 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %wbody24, label %wend25 wbody24: %t102 = load ptr, ptr @g_g_toggled_layers %t103 = load i32, ptr %t94 %t104 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 0 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 1 %t107 = load i32, ptr %t106 %t108 = icmp ult i32 %t103, %t107 br i1 %t108, label %ixok26, label %ixbad27 ixbad27: %t109 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t109, ptr @.fmt_bounds, ptr @.str10603, i32 %t103, i32 %t107) call void @exit(i32 1) unreachable ixok26: %t110 = getelementptr inbounds ptr, ptr %t105, i32 %t103 %t111 = load ptr, ptr %t110 %t112 = call ptr @lp_str_concat(ptr @.str10602, ptr %t111) %t113 = call ptr @lp_str_concat(ptr %t112, ptr @.str10604) call void @fn_emith(ptr %t113) %t114 = load i32, ptr %t94 %t115 = add i32 %t114, 1 store i32 %t115, ptr %t94 br label %wcond23 wend25: br label %ret ret: ret void } define void @fn_emit_ecs_allocator() { entry: %t1 = alloca ptr %t2 = alloca i32 %t28 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 call void @fn_emit(ptr @.str10605) store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_prog %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_prog %t11 = load i32, ptr %t2 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str10606, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 8 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: %t25 = load i32, ptr %t2 %t26 = call ptr @fn_itoa(i32 %t25) %t27 = call ptr @lp_str_concat(ptr @.str10607, ptr %t26) store ptr %t27, ptr %t28 call void @fn_emit(ptr @.str10608) %t29 = load ptr, ptr %t28 call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str10609) %t30 = load ptr, ptr %t1 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str10610) %t31 = load ptr, ptr @g_prog %t32 = load i32, ptr %t2 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ult i32 %t32, %t36 br i1 %t37, label %ixok8, label %ixbad9 ixbad9: %t38 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t38, ptr @.fmt_bounds, ptr @.str10611, i32 %t32, i32 %t36) call void @exit(i32 1) unreachable ixok8: %t39 = getelementptr inbounds ptr, ptr %t34, i32 %t32 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str10612) call void @fn_emit(ptr @.str10613) %t43 = load ptr, ptr %t28 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str10614) br label %ifend7 ifend7: %t44 = load i32, ptr %t2 %t45 = add i32 %t44, 1 store i32 %t45, ptr %t2 br label %wcond0 wend2: call void @fn_emit(ptr @.str10615) %t46 = load ptr, ptr %t1 call void @fn_emit(ptr %t46) call void @fn_emit(ptr @.str10616) call void @fn_emit(ptr @.str10617) %t47 = call i32 @fn_net_has_owned() %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then10, label %ifend12 then10: call void @fn_emit(ptr @.str10618) %t49 = load ptr, ptr %t1 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str10619) call void @fn_emit(ptr @.str10620) br label %ifend12 ifend12: call void @fn_emit(ptr @.str10621) call void @fn_emit(ptr @.str10622) call void @fn_emit(ptr @.str10623) call void @fn_emit(ptr @.str10624) call void @fn_emit(ptr @.str10625) call void @fn_emit(ptr @.str10626) call void @fn_emit(ptr @.str10627) call void @fn_emit(ptr @.str10628) call void @fn_emit(ptr @.str10629) %t50 = load ptr, ptr %t1 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str10630) call void @fn_emit(ptr @.str10631) call void @fn_emit(ptr @.str10632) call void @fn_emit(ptr @.str10633) call void @fn_emit(ptr @.str10634) call void @fn_emit(ptr @.str10635) call void @fn_emit(ptr @.str10636) call void @fn_emit(ptr @.str10637) call void @fn_emit(ptr @.str10638) call void @fn_emit(ptr @.str10639) call void @fn_emit(ptr @.str10640) call void @fn_emit(ptr @.str10641) %t51 = load ptr, ptr %t1 call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str10642) call void @fn_emit(ptr @.str10643) call void @fn_emit(ptr @.str10644) call void @fn_emit(ptr @.str10645) call void @fn_emit(ptr @.str10646) %t52 = load ptr, ptr %t1 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str10647) call void @fn_emit(ptr @.str10648) call void @fn_emit(ptr @.str10649) call void @fn_emit(ptr @.str10650) call void @fn_emit(ptr @.str10651) %t53 = load ptr, ptr %t1 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str10652) call void @fn_emit(ptr @.str10653) call void @fn_emit(ptr @.str10654) call void @fn_emit(ptr @.str10655) call void @fn_emit(ptr @.str10656) br label %ret ret: ret void } define i32 @fn_find_arch_id(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 store i32 1, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t1 %t4 = load ptr, ptr @g_prog %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: %t10 = load ptr, ptr @g_prog %t11 = load i32, ptr %t1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp ult i32 %t11, %t15 br i1 %t16, label %ixok3, label %ixbad4 ixbad4: %t17 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t17, ptr @.fmt_bounds, ptr @.str10657, i32 %t11, i32 %t15) call void @exit(i32 1) unreachable ixok3: %t18 = getelementptr inbounds ptr, ptr %t13, i32 %t11 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 10 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: %t25 = load ptr, ptr @g_prog %t26 = load i32, ptr %t1 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok8, label %ixbad9 ixbad9: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str10658, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok8: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t35 %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t36, ptr %t37) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then10, label %ifend12 then10: %t40 = load i32, ptr %t2 store i32 %t40, ptr %retval br label %ret ifend12: %t41 = load i32, ptr %t2 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t2 br label %ifend7 ifend7: %t43 = load i32, ptr %t1 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t45 = load i32, ptr %retval ret i32 %t45 } define void @fn_emit_query(ptr %arg_st) { entry: %t0 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t46 = alloca ptr %t48 = alloca ptr %t50 = alloca ptr %t52 = alloca ptr %t58 = alloca ptr %t60 = alloca ptr %t67 = alloca ptr %t75 = alloca ptr %t77 = alloca ptr %t84 = alloca ptr %t89 = alloca ptr %t91 = alloca ptr %t99 = alloca ptr %t100 = alloca i32 %t122 = alloca ptr %t127 = alloca i32 %t128 = alloca ptr %t134 = alloca ptr %t141 = alloca ptr %t149 = alloca ptr %t155 = alloca ptr %t160 = alloca ptr %t168 = alloca ptr %t178 = alloca ptr %t184 = alloca ptr %t192 = alloca i32 %t193 = alloca i32 %t215 = alloca ptr %t216 = alloca i32 %t244 = alloca ptr %t255 = alloca ptr %t290 = alloca ptr %t297 = alloca ptr %t299 = alloca ptr %t319 = alloca ptr %t324 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = call ptr @fn_itoa(i32 1024) store ptr %t1, ptr %t2 %t3 = call ptr @fn_emit_alloca(ptr @.str10659) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 call void @fn_store_at(ptr @.str10660, ptr @.str10661, ptr %t5) %t6 = load i32, ptr @g_nself %t7 = load ptr, ptr @g_self_stk %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t6, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %else1 then0: %t13 = load ptr, ptr @g_self_stk %t14 = load i32, ptr @g_nself %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str10662, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t4 store ptr %t22, ptr %t21 br label %ifend2 else1: %t23 = load ptr, ptr @g_self_stk %t24 = load ptr, ptr %t4 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t28 = load i32, ptr %t25 %t29 = load i32, ptr %t26 %t30 = icmp sge i32 %t28, %t29 br i1 %t30, label %grow5, label %put6 grow5: %t31 = mul i32 %t29, 2 %t32 = icmp eq i32 %t29, 0 %t33 = select i1 %t32, i32 8, i32 %t31 %t34 = getelementptr ptr, ptr null, i32 1 %t35 = ptrtoint ptr %t34 to i64 %t36 = zext i32 %t33 to i64 %t37 = mul i64 %t36, %t35 %t38 = load ptr, ptr %t27 %t39 = call ptr @realloc(ptr %t38, i64 %t37) store ptr %t39, ptr %t27 store i32 %t33, ptr %t26 br label %put6 put6: %t40 = load ptr, ptr %t27 %t41 = getelementptr inbounds ptr, ptr %t40, i32 %t28 store ptr %t24, ptr %t41 %t42 = add i32 %t28, 1 store i32 %t42, ptr %t25 br label %ifend2 ifend2: %t43 = load i32, ptr @g_nself %t44 = add i32 %t43, 1 store i32 %t44, ptr @g_nself %t45 = call ptr @fn_lbl(ptr @.str10663) store ptr %t45, ptr %t46 %t47 = call ptr @fn_lbl(ptr @.str10664) store ptr %t47, ptr %t48 %t49 = call ptr @fn_lbl(ptr @.str10665) store ptr %t49, ptr %t50 %t51 = call ptr @fn_lbl(ptr @.str10666) store ptr %t51, ptr %t52 call void @fn_emit(ptr @.str10667) %t53 = load ptr, ptr %t46 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str10668) %t54 = load ptr, ptr %t46 call void @fn_emit(ptr %t54) call void @fn_emit(ptr @.str10669) %t55 = load ptr, ptr %t4 %t56 = call ptr @lp_str_concat(ptr @.str10670, ptr %t55) %t57 = call ptr @fn_emit_bind(ptr %t56) store ptr %t57, ptr %t58 %t59 = call ptr @fn_emit_bind(ptr @.str10671) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t58 %t62 = call ptr @lp_str_concat(ptr @.str10672, ptr %t61) %t63 = call ptr @lp_str_concat(ptr %t62, ptr @.str10673) %t64 = load ptr, ptr %t60 %t65 = call ptr @lp_str_concat(ptr %t63, ptr %t64) %t66 = call ptr @fn_emit_bind(ptr %t65) store ptr %t66, ptr %t67 call void @fn_emit(ptr @.str10674) %t68 = load ptr, ptr %t67 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str10675) %t69 = load ptr, ptr %t48 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str10676) %t70 = load ptr, ptr %t52 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str10677) %t71 = load ptr, ptr %t48 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str10678) store i32 0, ptr @g_g_term %t72 = load ptr, ptr %t4 %t73 = call ptr @lp_str_concat(ptr @.str10679, ptr %t72) %t74 = call ptr @fn_emit_bind(ptr %t73) store ptr %t74, ptr %t75 %t76 = call ptr @fn_nreg() store ptr %t76, ptr %t77 call void @fn_emit(ptr @.str10680) %t78 = load ptr, ptr %t77 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str10681) %t79 = load ptr, ptr %t2 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str10682) %t80 = load ptr, ptr %t75 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str10683) %t81 = load ptr, ptr %t77 %t82 = call ptr @lp_str_concat(ptr @.str10684, ptr %t81) %t83 = call ptr @fn_emit_bind(ptr %t82) store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t84 %t86 = call ptr @lp_str_concat(ptr @.str10685, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str10686) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = call ptr @fn_lbl(ptr @.str10687) store ptr %t90, ptr %t91 call void @fn_emit(ptr @.str10688) %t92 = load ptr, ptr %t89 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str10689) %t93 = load ptr, ptr %t91 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str10690) %t94 = load ptr, ptr %t50 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str10691) %t95 = load ptr, ptr %t91 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str10692) %t96 = load ptr, ptr %t0 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 6 %t98 = load ptr, ptr %t97 store ptr %t98, ptr %t99 store i32 0, ptr %t100 br label %wcond7 wcond7: %t101 = load i32, ptr %t100 %t102 = load ptr, ptr %t99 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 7 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp slt i32 %t101, %t106 %t108 = zext i1 %t107 to i32 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %wbody8, label %wend9 wbody8: %t110 = load ptr, ptr %t99 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 7 %t112 = load ptr, ptr %t111 %t113 = load i32, ptr %t100 %t114 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t117 = load i32, ptr %t116 %t118 = icmp ult i32 %t113, %t117 br i1 %t118, label %ixok10, label %ixbad11 ixbad11: %t119 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t119, ptr @.fmt_bounds, ptr @.str10693, i32 %t113, i32 %t117) call void @exit(i32 1) unreachable ixok10: %t120 = getelementptr inbounds ptr, ptr %t115, i32 %t113 %t121 = load ptr, ptr %t120 store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t124 %t126 = call i32 @fn_find_arch_id(ptr %t125) store i32 %t126, ptr %t127 store ptr @.str10694, ptr %t128 %t129 = load i32, ptr %t127 %t130 = icmp sgt i32 %t129, 0 %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then12, label %else13 then12: %t133 = call ptr @fn_nreg() store ptr %t133, ptr %t134 call void @fn_emit(ptr @.str10695) %t135 = load ptr, ptr %t134 call void @fn_emit(ptr %t135) call void @fn_emit(ptr @.str10696) %t136 = load ptr, ptr %t2 call void @fn_emit(ptr %t136) call void @fn_emit(ptr @.str10697) %t137 = load ptr, ptr %t75 call void @fn_emit(ptr %t137) call void @fn_emit(ptr @.str10698) %t138 = load ptr, ptr %t134 %t139 = call ptr @lp_str_concat(ptr @.str10699, ptr %t138) %t140 = call ptr @fn_emit_bind(ptr %t139) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t141 %t143 = call ptr @lp_str_concat(ptr @.str10700, ptr %t142) %t144 = call ptr @lp_str_concat(ptr %t143, ptr @.str10701) %t145 = load i32, ptr %t127 %t146 = call ptr @fn_itoa(i32 %t145) %t147 = call ptr @lp_str_concat(ptr %t144, ptr %t146) %t148 = call ptr @fn_emit_bind(ptr %t147) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t122 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 1 %t152 = load ptr, ptr %t151 %t153 = call ptr @lp_str_concat(ptr @.str10702, ptr %t152) %t154 = call ptr @fn_emit_bind(ptr %t153) store ptr %t154, ptr %t155 %t156 = load ptr, ptr %t155 %t157 = call ptr @lp_str_concat(ptr @.str10703, ptr %t156) %t158 = call ptr @lp_str_concat(ptr %t157, ptr @.str10704) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t149 %t162 = call ptr @lp_str_concat(ptr @.str10705, ptr %t161) %t163 = call ptr @lp_str_concat(ptr %t162, ptr @.str10706) %t164 = load ptr, ptr %t160 %t165 = call ptr @lp_str_concat(ptr %t163, ptr %t164) %t166 = call ptr @fn_emit_bind(ptr %t165) store ptr %t166, ptr %t128 br label %ifend14 else13: %t167 = call ptr @fn_nreg() store ptr %t167, ptr %t168 call void @fn_emit(ptr @.str10707) %t169 = load ptr, ptr %t168 call void @fn_emit(ptr %t169) call void @fn_emit(ptr @.str10708) %t170 = load ptr, ptr %t2 call void @fn_emit(ptr %t170) call void @fn_emit(ptr @.str10709) %t171 = load ptr, ptr %t122 %t172 = getelementptr inbounds %Cmp_Node, ptr %t171, i32 0, i32 1 %t173 = load ptr, ptr %t172 call void @fn_emit(ptr %t173) call void @fn_emit(ptr @.str10710) %t174 = load ptr, ptr %t75 call void @fn_emit(ptr %t174) call void @fn_emit(ptr @.str10711) %t175 = load ptr, ptr %t168 %t176 = call ptr @lp_str_concat(ptr @.str10712, ptr %t175) %t177 = call ptr @fn_emit_bind(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t178 %t180 = call ptr @lp_str_concat(ptr @.str10713, ptr %t179) %t181 = call ptr @lp_str_concat(ptr %t180, ptr @.str10714) %t182 = call ptr @fn_emit_bind(ptr %t181) store ptr %t182, ptr %t128 br label %ifend14 ifend14: %t183 = call ptr @fn_lbl(ptr @.str10715) store ptr %t183, ptr %t184 call void @fn_emit(ptr @.str10716) %t185 = load ptr, ptr %t128 call void @fn_emit(ptr %t185) call void @fn_emit(ptr @.str10717) %t186 = load ptr, ptr %t184 call void @fn_emit(ptr %t186) call void @fn_emit(ptr @.str10718) %t187 = load ptr, ptr %t50 call void @fn_emit(ptr %t187) call void @fn_emit(ptr @.str10719) %t188 = load ptr, ptr %t184 call void @fn_emit(ptr %t188) call void @fn_emit(ptr @.str10720) %t189 = load i32, ptr %t100 %t190 = add i32 %t189, 1 store i32 %t190, ptr %t100 br label %wcond7 wend9: %t191 = load i32, ptr @g_nloc store i32 %t191, ptr %t192 store i32 0, ptr %t193 store i32 0, ptr %t100 br label %wcond15 wcond15: %t194 = load i32, ptr %t100 %t195 = load ptr, ptr %t99 %t196 = getelementptr inbounds %Cmp_Node, ptr %t195, i32 0, i32 7 %t197 = load ptr, ptr %t196 %t198 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 1 %t199 = load i32, ptr %t198 %t200 = icmp slt i32 %t194, %t199 %t201 = zext i1 %t200 to i32 %t202 = icmp ne i32 %t201, 0 br i1 %t202, label %wbody16, label %wend17 wbody16: %t203 = load ptr, ptr %t99 %t204 = getelementptr inbounds %Cmp_Node, ptr %t203, i32 0, i32 7 %t205 = load ptr, ptr %t204 %t206 = load i32, ptr %t100 %t207 = getelementptr inbounds %LSlice, ptr %t205, i32 0, i32 0 %t208 = load ptr, ptr %t207 %t209 = getelementptr inbounds %LSlice, ptr %t205, i32 0, i32 1 %t210 = load i32, ptr %t209 %t211 = icmp ult i32 %t206, %t210 br i1 %t211, label %ixok18, label %ixbad19 ixbad19: %t212 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t212, ptr @.fmt_bounds, ptr @.str10721, i32 %t206, i32 %t210) call void @exit(i32 1) unreachable ixok18: %t213 = getelementptr inbounds ptr, ptr %t208, i32 %t206 %t214 = load ptr, ptr %t213 store ptr %t214, ptr %t215 %t217 = load ptr, ptr %t215 %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 2 %t219 = load i32, ptr %t218 %t220 = icmp eq i32 %t219, 0 %t221 = zext i1 %t220 to i32 %t222 = icmp ne i32 %t221, 0 %t223 = zext i1 %t222 to i32 store i32 %t223, ptr %t216 br i1 %t222, label %sc20, label %scend21 sc20: %t224 = load ptr, ptr %t215 %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 1 %t226 = load ptr, ptr %t225 %t227 = call i32 @fn_find_arch_id(ptr %t226) %t228 = icmp eq i32 %t227, 0 %t229 = zext i1 %t228 to i32 %t230 = icmp ne i32 %t229, 0 %t231 = zext i1 %t230 to i32 store i32 %t231, ptr %t216 br label %scend21 scend21: %t232 = load i32, ptr %t216 %t233 = icmp ne i32 %t232, 0 br i1 %t233, label %then22, label %ifend24 then22: %t234 = load i32, ptr %t193 %t235 = load ptr, ptr %t0 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 7 %t237 = load ptr, ptr %t236 %t238 = getelementptr inbounds %LSlice, ptr %t237, i32 0, i32 1 %t239 = load i32, ptr %t238 %t240 = icmp slt i32 %t234, %t239 %t241 = zext i1 %t240 to i32 %t242 = icmp ne i32 %t241, 0 br i1 %t242, label %then25, label %ifend27 then25: %t243 = call ptr @fn_nreg() store ptr %t243, ptr %t244 call void @fn_emit(ptr @.str10722) %t245 = load ptr, ptr %t244 call void @fn_emit(ptr %t245) call void @fn_emit(ptr @.str10723) %t246 = load ptr, ptr %t2 call void @fn_emit(ptr %t246) call void @fn_emit(ptr @.str10724) %t247 = load ptr, ptr %t215 %t248 = getelementptr inbounds %Cmp_Node, ptr %t247, i32 0, i32 1 %t249 = load ptr, ptr %t248 call void @fn_emit(ptr %t249) call void @fn_emit(ptr @.str10725) %t250 = load ptr, ptr %t215 %t251 = getelementptr inbounds %Cmp_Node, ptr %t250, i32 0, i32 1 %t252 = load ptr, ptr %t251 call void @fn_emit(ptr %t252) call void @fn_emit(ptr @.str10726) %t253 = load ptr, ptr %t75 call void @fn_emit(ptr %t253) call void @fn_emit(ptr @.str10727) %t254 = call ptr @fn_emit_alloca(ptr @.str10728) store ptr %t254, ptr %t255 call void @fn_emit(ptr @.str10729) %t256 = load ptr, ptr %t244 call void @fn_emit(ptr %t256) call void @fn_emit(ptr @.str10730) %t257 = load ptr, ptr %t255 call void @fn_emit(ptr %t257) call void @fn_emit(ptr @.str10731) %t258 = load ptr, ptr %t0 %t259 = getelementptr inbounds %Cmp_Node, ptr %t258, i32 0, i32 7 %t260 = load ptr, ptr %t259 %t261 = load i32, ptr %t193 %t262 = getelementptr inbounds %LSlice, ptr %t260, i32 0, i32 0 %t263 = load ptr, ptr %t262 %t264 = getelementptr inbounds %LSlice, ptr %t260, i32 0, i32 1 %t265 = load i32, ptr %t264 %t266 = icmp ult i32 %t261, %t265 br i1 %t266, label %ixok28, label %ixbad29 ixbad29: %t267 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t267, ptr @.fmt_bounds, ptr @.str10732, i32 %t261, i32 %t265) call void @exit(i32 1) unreachable ixok28: %t268 = getelementptr inbounds ptr, ptr %t263, i32 %t261 %t269 = load ptr, ptr %t268 %t270 = getelementptr inbounds %Cmp_Node, ptr %t269, i32 0, i32 1 %t271 = load ptr, ptr %t270 %t272 = load ptr, ptr %t255 %t273 = load ptr, ptr %t215 %t274 = getelementptr inbounds %Cmp_Node, ptr %t273, i32 0, i32 1 %t275 = load ptr, ptr %t274 call void @fn_loc_push(ptr %t271, ptr %t272, ptr %t275) %t276 = load i32, ptr %t193 %t277 = add i32 %t276, 1 store i32 %t277, ptr %t193 br label %ifend27 ifend27: br label %ifend24 ifend24: %t278 = load i32, ptr %t100 %t279 = add i32 %t278, 1 store i32 %t279, ptr %t100 br label %wcond15 wend17: %t280 = load ptr, ptr %t0 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 5 %t282 = load ptr, ptr %t281 %t283 = icmp ne ptr %t282, null %t284 = zext i1 %t283 to i32 %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then30, label %ifend32 then30: %t286 = load ptr, ptr %t0 %t287 = getelementptr inbounds %Cmp_Node, ptr %t286, i32 0, i32 5 %t288 = load ptr, ptr %t287 %t289 = call ptr @fn_emit_expr(ptr %t288) store ptr %t289, ptr %t290 %t291 = load ptr, ptr %t290 %t292 = getelementptr inbounds %Cmp_Val, ptr %t291, i32 0, i32 0 %t293 = load ptr, ptr %t292 %t294 = call ptr @lp_str_concat(ptr @.str10733, ptr %t293) %t295 = call ptr @lp_str_concat(ptr %t294, ptr @.str10734) %t296 = call ptr @fn_emit_bind(ptr %t295) store ptr %t296, ptr %t297 %t298 = call ptr @fn_lbl(ptr @.str10735) store ptr %t298, ptr %t299 call void @fn_emit(ptr @.str10736) %t300 = load ptr, ptr %t297 call void @fn_emit(ptr %t300) call void @fn_emit(ptr @.str10737) %t301 = load ptr, ptr %t299 call void @fn_emit(ptr %t301) call void @fn_emit(ptr @.str10738) %t302 = load ptr, ptr %t50 call void @fn_emit(ptr %t302) call void @fn_emit(ptr @.str10739) %t303 = load ptr, ptr %t299 call void @fn_emit(ptr %t303) call void @fn_emit(ptr @.str10740) br label %ifend32 ifend32: %t304 = load ptr, ptr %t50 %t305 = load ptr, ptr %t52 call void @fn_loop_push(ptr %t304, ptr %t305) %t306 = load ptr, ptr %t0 %t307 = getelementptr inbounds %Cmp_Node, ptr %t306, i32 0, i32 4 %t308 = load ptr, ptr %t307 call void @fn_emit_block(ptr %t308) call void @fn_loop_pop() %t309 = load i32, ptr %t192 store i32 %t309, ptr @g_nloc %t310 = load i32, ptr @g_g_term %t311 = icmp eq i32 %t310, 0 %t312 = zext i1 %t311 to i32 %t313 = icmp ne i32 %t312, 0 br i1 %t313, label %then33, label %ifend35 then33: call void @fn_emit(ptr @.str10741) %t314 = load ptr, ptr %t50 call void @fn_emit(ptr %t314) call void @fn_emit(ptr @.str10742) br label %ifend35 ifend35: %t315 = load ptr, ptr %t50 call void @fn_emit(ptr %t315) call void @fn_emit(ptr @.str10743) %t316 = load ptr, ptr %t4 %t317 = call ptr @lp_str_concat(ptr @.str10744, ptr %t316) %t318 = call ptr @fn_emit_bind(ptr %t317) store ptr %t318, ptr %t319 %t320 = load ptr, ptr %t319 %t321 = call ptr @lp_str_concat(ptr @.str10745, ptr %t320) %t322 = call ptr @lp_str_concat(ptr %t321, ptr @.str10746) %t323 = call ptr @fn_emit_bind(ptr %t322) store ptr %t323, ptr %t324 %t325 = load ptr, ptr %t324 %t326 = load ptr, ptr %t4 call void @fn_store_at(ptr @.str10747, ptr %t325, ptr %t326) call void @fn_emit(ptr @.str10748) %t327 = load ptr, ptr %t46 call void @fn_emit(ptr %t327) call void @fn_emit(ptr @.str10749) %t328 = load ptr, ptr %t52 call void @fn_emit(ptr %t328) call void @fn_emit(ptr @.str10750) store i32 0, ptr @g_g_term %t329 = load i32, ptr @g_nself %t330 = sub i32 %t329, 1 store i32 %t330, ptr @g_nself br label %ret ret: ret void } define void @fn_emit_hook_with_self(ptr %arg_e, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_body, ptr %t1 %t2 = call ptr @fn_emit_alloca(ptr @.str10751) store ptr %t2, ptr %t3 call void @fn_emit(ptr @.str10752) %t4 = load ptr, ptr %t0 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str10753) %t5 = load ptr, ptr %t3 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str10754) %t6 = load i32, ptr @g_nself %t7 = load ptr, ptr @g_self_stk %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t6, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %else1 then0: %t13 = load ptr, ptr @g_self_stk %t14 = load i32, ptr @g_nself %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str10755, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t3 store ptr %t22, ptr %t21 br label %ifend2 else1: %t23 = load ptr, ptr @g_self_stk %t24 = load ptr, ptr %t3 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t28 = load i32, ptr %t25 %t29 = load i32, ptr %t26 %t30 = icmp sge i32 %t28, %t29 br i1 %t30, label %grow5, label %put6 grow5: %t31 = mul i32 %t29, 2 %t32 = icmp eq i32 %t29, 0 %t33 = select i1 %t32, i32 8, i32 %t31 %t34 = getelementptr ptr, ptr null, i32 1 %t35 = ptrtoint ptr %t34 to i64 %t36 = zext i32 %t33 to i64 %t37 = mul i64 %t36, %t35 %t38 = load ptr, ptr %t27 %t39 = call ptr @realloc(ptr %t38, i64 %t37) store ptr %t39, ptr %t27 store i32 %t33, ptr %t26 br label %put6 put6: %t40 = load ptr, ptr %t27 %t41 = getelementptr inbounds ptr, ptr %t40, i32 %t28 store ptr %t24, ptr %t41 %t42 = add i32 %t28, 1 store i32 %t42, ptr %t25 br label %ifend2 ifend2: %t43 = load i32, ptr @g_nself %t44 = add i32 %t43, 1 store i32 %t44, ptr @g_nself %t45 = load ptr, ptr %t1 call void @fn_emit_block(ptr %t45) %t46 = load i32, ptr @g_nself %t47 = sub i32 %t46, 1 store i32 %t47, ptr @g_nself br label %ret ret: ret void } define void @fn_emit_init_component(ptr %arg_e, ptr %arg_comp, ptr %arg_rec) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t7 = alloca ptr %t15 = alloca ptr %t22 = alloca ptr %t28 = alloca i32 %t50 = alloca ptr %t52 = alloca ptr %t62 = alloca ptr %t65 = alloca ptr %t76 = alloca ptr %t91 = alloca i32 %t113 = alloca ptr %t119 = alloca i32 %t125 = alloca ptr %t135 = alloca ptr %t141 = alloca ptr %t145 = alloca ptr %t154 = alloca ptr %t160 = alloca i32 %t162 = alloca ptr %t174 = alloca ptr store ptr %arg_e, ptr %t0 store ptr %arg_comp, ptr %t1 store ptr %arg_rec, ptr %t2 %t3 = call ptr @fn_itoa(i32 1024) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t1 %t6 = call ptr @fn_find_comp(ptr %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = icmp eq ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: %t12 = load ptr, ptr %t1 %t13 = call ptr @lp_str_concat(ptr @.str10756, ptr %t12) call void @fn_perr(ptr %t13) br label %ifend2 ifend2: %t14 = call ptr @fn_nreg() store ptr %t14, ptr %t15 call void @fn_emit(ptr @.str10757) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str10758) %t17 = load ptr, ptr %t4 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str10759) %t18 = load ptr, ptr %t1 call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str10760) %t19 = load ptr, ptr %t0 call void @fn_emit(ptr %t19) call void @fn_emit(ptr @.str10761) call void @fn_emit(ptr @.str10762) %t20 = load ptr, ptr %t15 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str10763) %t21 = call ptr @fn_nreg() store ptr %t21, ptr %t22 call void @fn_emit(ptr @.str10764) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str10765) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str10766) %t25 = load ptr, ptr %t1 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str10767) %t26 = load ptr, ptr %t1 call void @fn_emit(ptr %t26) call void @fn_emit(ptr @.str10768) %t27 = load ptr, ptr %t0 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str10769) store i32 0, ptr %t28 br label %wcond3 wcond3: %t29 = load i32, ptr %t28 %t30 = load ptr, ptr %t7 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp slt i32 %t29, %t34 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %wbody4, label %wend5 wbody4: %t38 = load ptr, ptr %t7 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7 %t40 = load ptr, ptr %t39 %t41 = load i32, ptr %t28 %t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t45 = load i32, ptr %t44 %t46 = icmp ult i32 %t41, %t45 br i1 %t46, label %ixok6, label %ixbad7 ixbad7: %t47 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t47, ptr @.fmt_bounds, ptr @.str10770, i32 %t41, i32 %t45) call void @exit(i32 1) unreachable ixok6: %t48 = getelementptr inbounds ptr, ptr %t43, i32 %t41 %t49 = load ptr, ptr %t48 store ptr %t49, ptr %t50 %t51 = call ptr @fn_nreg() store ptr %t51, ptr %t52 call void @fn_emit(ptr @.str10771) %t53 = load ptr, ptr %t52 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str10772) %t54 = load ptr, ptr %t1 call void @fn_emit(ptr %t54) call void @fn_emit(ptr @.str10773) %t55 = load ptr, ptr %t22 call void @fn_emit(ptr %t55) call void @fn_emit(ptr @.str10774) %t56 = load i32, ptr %t28 %t57 = call ptr @fn_itoa(i32 %t56) call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str10775) %t58 = load ptr, ptr %t50 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 3 %t60 = load ptr, ptr %t59 %t61 = call ptr @fn_llty(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_zero_of(ptr %t63) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t50 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 4 %t68 = load ptr, ptr %t67 %t69 = icmp ne ptr %t68, null %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then8, label %ifend10 then8: %t72 = load ptr, ptr %t50 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 4 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_emit_expr(ptr %t74) store ptr %t75, ptr %t76 %t77 = load ptr, ptr %t76 %t78 = load ptr, ptr %t50 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 3 %t80 = load ptr, ptr %t79 %t81 = call ptr @fn_coerce_code(ptr %t77, ptr %t80) store ptr %t81, ptr %t65 br label %ifend10 ifend10: call void @fn_emit(ptr @.str10776) %t82 = load ptr, ptr %t62 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str10777) %t83 = load ptr, ptr %t65 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str10778) %t84 = load ptr, ptr %t52 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str10779) %t85 = load i32, ptr %t28 %t86 = add i32 %t85, 1 store i32 %t86, ptr %t28 br label %wcond3 wend5: %t87 = load ptr, ptr %t2 %t88 = icmp ne ptr %t87, null %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then11, label %ifend13 then11: store i32 0, ptr %t91 br label %wcond14 wcond14: %t92 = load i32, ptr %t91 %t93 = load ptr, ptr %t2 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 7 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %LSlice, ptr %t95, i32 0, i32 1 %t97 = load i32, ptr %t96 %t98 = icmp slt i32 %t92, %t97 %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %wbody15, label %wend16 wbody15: %t101 = load ptr, ptr %t2 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 7 %t103 = load ptr, ptr %t102 %t104 = load i32, ptr %t91 %t105 = getelementptr inbounds %LSlice, ptr %t103, i32 0, i32 0 %t106 = load ptr, ptr %t105 %t107 = getelementptr inbounds %LSlice, ptr %t103, i32 0, i32 1 %t108 = load i32, ptr %t107 %t109 = icmp ult i32 %t104, %t108 br i1 %t109, label %ixok17, label %ixbad18 ixbad18: %t110 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t110, ptr @.fmt_bounds, ptr @.str10780, i32 %t104, i32 %t108) call void @exit(i32 1) unreachable ixok17: %t111 = getelementptr inbounds ptr, ptr %t106, i32 %t104 %t112 = load ptr, ptr %t111 store ptr %t112, ptr %t113 %t114 = load ptr, ptr %t7 %t115 = load ptr, ptr %t113 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 1 %t117 = load ptr, ptr %t116 %t118 = call i32 @fn_field_index(ptr %t114, ptr %t117) store i32 %t118, ptr %t119 %t120 = load i32, ptr %t119 %t121 = icmp sge i32 %t120, 0 %t122 = zext i1 %t121 to i32 %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then19, label %ifend21 then19: %t124 = call ptr @fn_nreg() store ptr %t124, ptr %t125 call void @fn_emit(ptr @.str10781) %t126 = load ptr, ptr %t125 call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str10782) %t127 = load ptr, ptr %t1 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str10783) %t128 = load ptr, ptr %t22 call void @fn_emit(ptr %t128) call void @fn_emit(ptr @.str10784) %t129 = load i32, ptr %t119 %t130 = call ptr @fn_itoa(i32 %t129) call void @fn_emit(ptr %t130) call void @fn_emit(ptr @.str10785) %t131 = load ptr, ptr %t113 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 4 %t133 = load ptr, ptr %t132 %t134 = call ptr @fn_emit_expr(ptr %t133) store ptr %t134, ptr %t135 %t136 = load ptr, ptr %t7 %t137 = load ptr, ptr %t113 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 1 %t139 = load ptr, ptr %t138 %t140 = call ptr @fn_field_type(ptr %t136, ptr %t139) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t135 %t143 = load ptr, ptr %t141 %t144 = call ptr @fn_coerce_code(ptr %t142, ptr %t143) store ptr %t144, ptr %t145 call void @fn_emit(ptr @.str10786) %t146 = load ptr, ptr %t141 %t147 = call ptr @fn_llty(ptr %t146) call void @fn_emit(ptr %t147) call void @fn_emit(ptr @.str10787) %t148 = load ptr, ptr %t145 call void @fn_emit(ptr %t148) call void @fn_emit(ptr @.str10788) %t149 = load ptr, ptr %t125 call void @fn_emit(ptr %t149) call void @fn_emit(ptr @.str10789) br label %ifend21 ifend21: %t150 = load i32, ptr %t91 %t151 = add i32 %t150, 1 store i32 %t151, ptr %t91 br label %wcond14 wend16: br label %ifend13 ifend13: %t152 = load ptr, ptr %t1 %t153 = call ptr @fn_onattach_body(ptr %t152) store ptr %t153, ptr %t154 %t155 = load ptr, ptr %t154 %t156 = icmp ne ptr %t155, null %t157 = zext i1 %t156 to i32 %t158 = icmp ne i32 %t157, 0 br i1 %t158, label %then22, label %ifend24 then22: %t159 = load i32, ptr @g_nloc store i32 %t159, ptr %t160 %t161 = call ptr @fn_emit_alloca(ptr @.str10790) store ptr %t161, ptr %t162 call void @fn_emit(ptr @.str10791) %t163 = load ptr, ptr %t22 call void @fn_emit(ptr %t163) call void @fn_emit(ptr @.str10792) %t164 = load ptr, ptr %t162 call void @fn_emit(ptr %t164) call void @fn_emit(ptr @.str10793) %t165 = load ptr, ptr %t1 %t166 = load ptr, ptr %t162 %t167 = load ptr, ptr %t1 call void @fn_loc_push(ptr %t165, ptr %t166, ptr %t167) %t168 = load ptr, ptr %t0 %t169 = load ptr, ptr %t154 call void @fn_emit_hook_with_self(ptr %t168, ptr %t169) %t170 = load i32, ptr %t160 store i32 %t170, ptr @g_nloc br label %ifend24 ifend24: %t171 = load ptr, ptr %t1 %t172 = call ptr @lp_str_concat(ptr @.str10794, ptr %t171) %t173 = call ptr @lp_str_concat(ptr %t172, ptr @.str10795) store ptr %t173, ptr %t174 %t175 = load ptr, ptr %t174 %t176 = call ptr @fn_find_event(ptr %t175) %t177 = icmp ne ptr %t176, null %t178 = zext i1 %t177 to i32 %t179 = icmp ne i32 %t178, 0 br i1 %t179, label %then25, label %ifend27 then25: call void @fn_emit(ptr @.str10796) %t180 = load ptr, ptr %t174 call void @fn_emit(ptr %t180) call void @fn_emit(ptr @.str10797) %t181 = load ptr, ptr %t0 call void @fn_emit(ptr %t181) call void @fn_emit(ptr @.str10798) br label %ifend27 ifend27: br label %ret ret: ret void } define void @fn_emit_bind_props(ptr %arg_model, ptr %arg_e) { entry: %t0 = alloca ptr %t1 = alloca ptr %t3 = alloca ptr %t4 = alloca i32 %t28 = alloca ptr %t30 = alloca ptr %t37 = alloca ptr store ptr %arg_model, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = call ptr @fn_itoa(i32 1024) store ptr %t2, ptr %t3 store i32 0, ptr %t4 br label %wcond0 wcond0: %t5 = load i32, ptr %t4 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp slt i32 %t5, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %wbody1, label %wend2 wbody1: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 7 %t16 = load ptr, ptr %t15 %t17 = load i32, ptr %t4 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 %t21 = load i32, ptr %t20 %t22 = icmp ult i32 %t17, %t21 br i1 %t22, label %ixok3, label %ixbad4 ixbad4: %t23 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t23, ptr @.fmt_bounds, ptr @.str10799, i32 %t17, i32 %t21) call void @exit(i32 1) unreachable ixok3: %t24 = getelementptr inbounds ptr, ptr %t19, i32 %t17 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %t28 %t29 = call ptr @fn_nreg() store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str10800) %t31 = load ptr, ptr %t30 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str10801) %t32 = load ptr, ptr %t3 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str10802) %t33 = load ptr, ptr %t28 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str10803) %t34 = load ptr, ptr %t28 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str10804) %t35 = load ptr, ptr %t1 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str10805) %t36 = call ptr @fn_emit_alloca(ptr @.str10806) store ptr %t36, ptr %t37 call void @fn_emit(ptr @.str10807) %t38 = load ptr, ptr %t30 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str10808) %t39 = load ptr, ptr %t37 call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str10809) %t40 = load ptr, ptr %t28 %t41 = load ptr, ptr %t37 %t42 = load ptr, ptr %t28 call void @fn_loc_push(ptr %t40, ptr %t41, ptr %t42) %t43 = load i32, ptr %t4 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t4 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_spawn_record(ptr %arg_n, ptr %arg_cn) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t6 = alloca i32 store ptr %arg_n, ptr %t0 store ptr %arg_cn, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: store i32 0, ptr %t6 br label %wcond3 wcond3: %t7 = load i32, ptr %t6 %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 7 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = load i32, ptr %t11 %t13 = icmp slt i32 %t7, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody4, label %wend5 wbody4: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = load i32, ptr %t6 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok6, label %ixbad7 ixbad7: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str10810, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok6: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t1 %t31 = call i32 @lp_str_eq(ptr %t29, ptr %t30) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then8, label %ifend10 then8: %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 7 %t35 = load ptr, ptr %t34 %t36 = load i32, ptr %t6 %t37 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp ult i32 %t36, %t40 br i1 %t41, label %ixok11, label %ixbad12 ixbad12: %t42 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t42, ptr @.fmt_bounds, ptr @.str10811, i32 %t36, i32 %t40) call void @exit(i32 1) unreachable ixok11: %t43 = getelementptr inbounds ptr, ptr %t38, i32 %t36 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 4 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %retval br label %ret ifend10: %t47 = load i32, ptr %t6 %t48 = add i32 %t47, 1 store i32 %t48, ptr %t6 br label %wcond3 wend5: store ptr null, ptr %retval br label %ret ret: %t49 = load ptr, ptr %retval ret ptr %t49 } define ptr @fn_merge_records(ptr %arg_base, ptr %arg_over) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t13 = alloca ptr %t14 = alloca i32 store ptr %arg_base, ptr %t0 store ptr %arg_over, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = icmp eq ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t1 %t8 = icmp eq ptr %t7, null %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: %t11 = load ptr, ptr %t0 store ptr %t11, ptr %retval br label %ret ifend5: %t12 = call ptr @fn_node(i32 41) store ptr %t12, ptr %t13 store i32 0, ptr %t14 br label %wcond6 wcond6: %t15 = load i32, ptr %t14 %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp slt i32 %t15, %t20 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %wbody7, label %wend8 wbody7: %t24 = load ptr, ptr %t13 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 7 %t29 = load ptr, ptr %t28 %t30 = load i32, ptr %t14 %t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 %t30, %t34 br i1 %t35, label %ixok9, label %ixbad10 ixbad10: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str10812, i32 %t30, i32 %t34) call void @exit(i32 1) unreachable ixok9: %t37 = getelementptr inbounds ptr, ptr %t32, i32 %t30 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t40 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2 %t41 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t42 = load i32, ptr %t39 %t43 = load i32, ptr %t40 %t44 = icmp sge i32 %t42, %t43 br i1 %t44, label %grow11, label %put12 grow11: %t45 = mul i32 %t43, 2 %t46 = icmp eq i32 %t43, 0 %t47 = select i1 %t46, i32 8, i32 %t45 %t48 = getelementptr ptr, ptr null, i32 1 %t49 = ptrtoint ptr %t48 to i64 %t50 = zext i32 %t47 to i64 %t51 = mul i64 %t50, %t49 %t52 = load ptr, ptr %t41 %t53 = call ptr @realloc(ptr %t52, i64 %t51) store ptr %t53, ptr %t41 store i32 %t47, ptr %t40 br label %put12 put12: %t54 = load ptr, ptr %t41 %t55 = getelementptr inbounds ptr, ptr %t54, i32 %t42 store ptr %t38, ptr %t55 %t56 = add i32 %t42, 1 store i32 %t56, ptr %t39 %t57 = load i32, ptr %t14 %t58 = add i32 %t57, 1 store i32 %t58, ptr %t14 br label %wcond6 wend8: store i32 0, ptr %t14 br label %wcond13 wcond13: %t59 = load i32, ptr %t14 %t60 = load ptr, ptr %t1 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 7 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp slt i32 %t59, %t64 %t66 = zext i1 %t65 to i32 %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %wbody14, label %wend15 wbody14: %t68 = load ptr, ptr %t13 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 7 %t70 = load ptr, ptr %t69 %t71 = load ptr, ptr %t1 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 7 %t73 = load ptr, ptr %t72 %t74 = load i32, ptr %t14 %t75 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 0 %t76 = load ptr, ptr %t75 %t77 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 1 %t78 = load i32, ptr %t77 %t79 = icmp ult i32 %t74, %t78 br i1 %t79, label %ixok16, label %ixbad17 ixbad17: %t80 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t80, ptr @.fmt_bounds, ptr @.str10813, i32 %t74, i32 %t78) call void @exit(i32 1) unreachable ixok16: %t81 = getelementptr inbounds ptr, ptr %t76, i32 %t74 %t82 = load ptr, ptr %t81 %t83 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 1 %t84 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 2 %t85 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 0 %t86 = load i32, ptr %t83 %t87 = load i32, ptr %t84 %t88 = icmp sge i32 %t86, %t87 br i1 %t88, label %grow18, label %put19 grow18: %t89 = mul i32 %t87, 2 %t90 = icmp eq i32 %t87, 0 %t91 = select i1 %t90, i32 8, i32 %t89 %t92 = getelementptr ptr, ptr null, i32 1 %t93 = ptrtoint ptr %t92 to i64 %t94 = zext i32 %t91 to i64 %t95 = mul i64 %t94, %t93 %t96 = load ptr, ptr %t85 %t97 = call ptr @realloc(ptr %t96, i64 %t95) store ptr %t97, ptr %t85 store i32 %t91, ptr %t84 br label %put19 put19: %t98 = load ptr, ptr %t85 %t99 = getelementptr inbounds ptr, ptr %t98, i32 %t86 store ptr %t82, ptr %t99 %t100 = add i32 %t86, 1 store i32 %t100, ptr %t83 %t101 = load i32, ptr %t14 %t102 = add i32 %t101, 1 store i32 %t102, ptr %t14 br label %wcond13 wend15: %t103 = load ptr, ptr %t13 store ptr %t103, ptr %retval br label %ret ret: %t104 = load ptr, ptr %retval ret ptr %t104 } define ptr @fn_spawn_model(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t3 = alloca i32 %t7 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 store ptr %t1, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = icmp ne i32 1, 0 br i1 %t4, label %wbody1, label %wend2 wbody1: %t5 = load ptr, ptr %t2 %t6 = call ptr @fn_find_prefab(ptr %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = icmp eq ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: %t12 = load ptr, ptr %t2 store ptr %t12, ptr %retval br label %ret ifend5: %t13 = load ptr, ptr %t7 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 3 %t15 = load ptr, ptr %t14 store ptr %t15, ptr %t2 %t16 = load i32, ptr %t3 %t17 = add i32 %t16, 1 store i32 %t17, ptr %t3 %t18 = load i32, ptr %t3 %t19 = icmp sgt i32 %t18, 16 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then6, label %ifend8 then6: %t22 = load ptr, ptr %t0 %t23 = call ptr @lp_str_concat(ptr @.str10814, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str10815) call void @fn_perr(ptr %t24) br label %ifend8 ifend8: br label %wcond0 wend2: %t25 = load ptr, ptr %t2 store ptr %t25, ptr %retval br label %ret ret: %t26 = load ptr, ptr %retval ret ptr %t26 } define ptr @fn_prefab_record(ptr %arg_name, ptr %arg_cn) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t4 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_cn, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_find_prefab(ptr %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = icmp eq ptr %t5, null %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: store ptr null, ptr %retval br label %ret ifend2: %t9 = load ptr, ptr %t4 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 3 %t11 = load ptr, ptr %t10 %t12 = load ptr, ptr %t1 %t13 = call ptr @fn_prefab_record(ptr %t11, ptr %t12) %t14 = load ptr, ptr %t4 %t15 = load ptr, ptr %t1 %t16 = call ptr @fn_spawn_record(ptr %t14, ptr %t15) %t17 = call ptr @fn_merge_records(ptr %t13, ptr %t16) store ptr %t17, ptr %retval br label %ret ret: %t18 = load ptr, ptr %retval ret ptr %t18 } define void @fn_emit_worker_guard(ptr %arg_what, i32 %arg_line) { entry: %t0 = alloca ptr %t1 = alloca i32 %t7 = alloca ptr %t12 = alloca ptr %t14 = alloca ptr %t16 = alloca ptr %t35 = alloca ptr %t39 = alloca ptr %t42 = alloca ptr store ptr %arg_what, ptr %t0 store i32 %arg_line, ptr %t1 %t2 = load i32, ptr @g_g_uses_jobs %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: store i32 1, ptr @g_g_uses_panic %t6 = call ptr @fn_emit_bind(ptr @.str10816) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = call ptr @lp_str_concat(ptr @.str10817, ptr %t8) %t10 = call ptr @lp_str_concat(ptr %t9, ptr @.str10818) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = call ptr @fn_lbl(ptr @.str10819) store ptr %t13, ptr %t14 %t15 = call ptr @fn_lbl(ptr @.str10820) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t12 %t18 = call ptr @lp_str_concat(ptr @.str10821, ptr %t17) %t19 = call ptr @lp_str_concat(ptr %t18, ptr @.str10822) %t20 = load ptr, ptr %t16 %t21 = call ptr @lp_str_concat(ptr %t19, ptr %t20) %t22 = call ptr @lp_str_concat(ptr %t21, ptr @.str10823) %t23 = load ptr, ptr %t14 %t24 = call ptr @lp_str_concat(ptr %t22, ptr %t23) %t25 = call ptr @lp_str_concat(ptr %t24, ptr @.str10824) call void @fn_emit(ptr %t25) %t26 = load ptr, ptr %t16 %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str10825) call void @fn_emit(ptr %t27) %t28 = load ptr, ptr @g_g_src_name %t29 = call ptr @lp_str_concat(ptr %t28, ptr @.str10826) %t30 = load i32, ptr %t1 %t31 = call ptr @fn_itoa(i32 %t30) %t32 = call ptr @lp_str_concat(ptr %t29, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str10827) %t34 = call ptr @fn_emit_str_const(ptr %t33) store ptr %t34, ptr %t35 %t36 = load ptr, ptr %t0 %t37 = call ptr @lp_str_concat(ptr %t36, ptr @.str10828) %t38 = call ptr @fn_emit_str_const(ptr %t37) store ptr %t38, ptr %t39 %t40 = call ptr @fn_stdstream_rhs(i32 2) %t41 = call ptr @fn_emit_bind(ptr %t40) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t42 %t44 = call ptr @lp_str_concat(ptr @.str10829, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str10830) %t46 = load ptr, ptr %t35 %t47 = call ptr @lp_str_concat(ptr %t45, ptr %t46) %t48 = call ptr @lp_str_concat(ptr %t47, ptr @.str10831) %t49 = load ptr, ptr %t39 %t50 = call ptr @lp_str_concat(ptr %t48, ptr %t49) %t51 = call ptr @lp_str_concat(ptr %t50, ptr @.str10832) call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str10833) %t52 = load ptr, ptr %t14 %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str10834) call void @fn_emit(ptr %t53) br label %ret ret: ret void } define ptr @fn_emit_spawn(ptr %arg_st) { entry: %retval = alloca ptr %t0 = alloca ptr %t5 = alloca ptr %t10 = alloca ptr %t13 = alloca i32 %t14 = alloca i32 %t42 = alloca ptr %t44 = alloca ptr %t53 = alloca ptr %t54 = alloca i32 %t78 = alloca ptr %t94 = alloca ptr %t100 = alloca i32 %t109 = alloca ptr %t117 = alloca i32 store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 8 %t3 = load i32, ptr %t2 call void @fn_emit_worker_guard(ptr @.str10835, i32 %t3) %t4 = call ptr @fn_emit_bind(ptr @.str10836) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_spawn_model(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = call i32 @fn_find_arch_id(ptr %t11) store i32 %t12, ptr %t13 %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_find_prefab(ptr %t17) %t19 = icmp ne ptr %t18, null %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t14 br i1 %t21, label %sc0, label %scend1 sc0: %t23 = load i32, ptr %t13 %t24 = icmp eq i32 %t23, 0 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t14 br label %scend1 scend1: %t28 = load i32, ptr %t14 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then2, label %ifend4 then2: %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 1 %t32 = load ptr, ptr %t31 %t33 = call ptr @lp_str_concat(ptr @.str10837, ptr %t32) %t34 = call ptr @lp_str_concat(ptr %t33, ptr @.str10838) %t35 = load ptr, ptr %t10 %t36 = call ptr @lp_str_concat(ptr %t34, ptr %t35) call void @fn_perr(ptr %t36) br label %ifend4 ifend4: %t37 = load i32, ptr %t13 %t38 = icmp sgt i32 %t37, 0 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then5, label %else6 then5: %t41 = call ptr @fn_itoa(i32 1024) store ptr %t41, ptr %t42 %t43 = call ptr @fn_nreg() store ptr %t43, ptr %t44 call void @fn_emit(ptr @.str10839) %t45 = load ptr, ptr %t44 call void @fn_emit(ptr %t45) call void @fn_emit(ptr @.str10840) %t46 = load ptr, ptr %t42 call void @fn_emit(ptr %t46) call void @fn_emit(ptr @.str10841) %t47 = load ptr, ptr %t5 call void @fn_emit(ptr %t47) call void @fn_emit(ptr @.str10842) call void @fn_emit(ptr @.str10843) %t48 = load i32, ptr %t13 %t49 = call ptr @fn_itoa(i32 %t48) call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str10844) %t50 = load ptr, ptr %t44 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str10845) %t51 = load ptr, ptr %t10 %t52 = call ptr @fn_find_arch(ptr %t51) store ptr %t52, ptr %t53 store i32 0, ptr %t54 br label %wcond8 wcond8: %t55 = load i32, ptr %t54 %t56 = load ptr, ptr %t53 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t60 = load i32, ptr %t59 %t61 = icmp slt i32 %t55, %t60 %t62 = zext i1 %t61 to i32 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %wbody9, label %wend10 wbody9: %t64 = load ptr, ptr %t53 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7 %t66 = load ptr, ptr %t65 %t67 = load i32, ptr %t54 %t68 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t71 = load i32, ptr %t70 %t72 = icmp ult i32 %t67, %t71 br i1 %t72, label %ixok11, label %ixbad12 ixbad12: %t73 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t73, ptr @.fmt_bounds, ptr @.str10846, i32 %t67, i32 %t71) call void @exit(i32 1) unreachable ixok11: %t74 = getelementptr inbounds ptr, ptr %t69, i32 %t67 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 1 %t77 = load ptr, ptr %t76 store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t5 %t80 = load ptr, ptr %t78 %t81 = load ptr, ptr %t0 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 1 %t83 = load ptr, ptr %t82 %t84 = load ptr, ptr %t78 %t85 = call ptr @fn_prefab_record(ptr %t83, ptr %t84) %t86 = load ptr, ptr %t0 %t87 = load ptr, ptr %t78 %t88 = call ptr @fn_spawn_record(ptr %t86, ptr %t87) %t89 = call ptr @fn_merge_records(ptr %t85, ptr %t88) call void @fn_emit_init_component(ptr %t79, ptr %t80, ptr %t89) %t90 = load i32, ptr %t54 %t91 = add i32 %t90, 1 store i32 %t91, ptr %t54 br label %wcond8 wend10: %t92 = load ptr, ptr %t10 %t93 = call ptr @fn_onspawn_body(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t94 %t96 = icmp ne ptr %t95, null %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then13, label %ifend15 then13: %t99 = load i32, ptr @g_nloc store i32 %t99, ptr %t100 %t101 = load ptr, ptr %t53 %t102 = load ptr, ptr %t5 call void @fn_emit_bind_props(ptr %t101, ptr %t102) %t103 = load ptr, ptr %t5 %t104 = load ptr, ptr %t94 call void @fn_emit_hook_with_self(ptr %t103, ptr %t104) %t105 = load i32, ptr %t100 store i32 %t105, ptr @g_nloc br label %ifend15 ifend15: %t106 = load ptr, ptr %t10 %t107 = call ptr @lp_str_concat(ptr @.str10847, ptr %t106) %t108 = call ptr @lp_str_concat(ptr %t107, ptr @.str10848) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_find_event(ptr %t110) %t112 = icmp ne ptr %t111, null %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then16, label %ifend18 then16: call void @fn_emit(ptr @.str10849) %t115 = load ptr, ptr %t109 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str10850) %t116 = load ptr, ptr %t5 call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str10851) br label %ifend18 ifend18: br label %ifend7 else6: store i32 0, ptr %t117 br label %wcond19 wcond19: %t118 = load i32, ptr %t117 %t119 = load ptr, ptr %t0 %t120 = getelementptr inbounds %Cmp_Node, ptr %t119, i32 0, i32 7 %t121 = load ptr, ptr %t120 %t122 = getelementptr inbounds %LSlice, ptr %t121, i32 0, i32 1 %t123 = load i32, ptr %t122 %t124 = icmp slt i32 %t118, %t123 %t125 = zext i1 %t124 to i32 %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %wbody20, label %wend21 wbody20: %t127 = load ptr, ptr %t5 %t128 = load ptr, ptr %t0 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 7 %t130 = load ptr, ptr %t129 %t131 = load i32, ptr %t117 %t132 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t133 = load ptr, ptr %t132 %t134 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t135 = load i32, ptr %t134 %t136 = icmp ult i32 %t131, %t135 br i1 %t136, label %ixok22, label %ixbad23 ixbad23: %t137 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t137, ptr @.fmt_bounds, ptr @.str10852, i32 %t131, i32 %t135) call void @exit(i32 1) unreachable ixok22: %t138 = getelementptr inbounds ptr, ptr %t133, i32 %t131 %t139 = load ptr, ptr %t138 %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 1 %t141 = load ptr, ptr %t140 %t142 = load ptr, ptr %t0 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 7 %t144 = load ptr, ptr %t143 %t145 = load i32, ptr %t117 %t146 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 0 %t147 = load ptr, ptr %t146 %t148 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 1 %t149 = load i32, ptr %t148 %t150 = icmp ult i32 %t145, %t149 br i1 %t150, label %ixok24, label %ixbad25 ixbad25: %t151 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t151, ptr @.fmt_bounds, ptr @.str10853, i32 %t145, i32 %t149) call void @exit(i32 1) unreachable ixok24: %t152 = getelementptr inbounds ptr, ptr %t147, i32 %t145 %t153 = load ptr, ptr %t152 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 4 %t155 = load ptr, ptr %t154 call void @fn_emit_init_component(ptr %t127, ptr %t141, ptr %t155) %t156 = load i32, ptr %t117 %t157 = add i32 %t156, 1 store i32 %t157, ptr %t117 br label %wcond19 wend21: br label %ifend7 ifend7: %t158 = load ptr, ptr %t5 store ptr %t158, ptr %retval br label %ret ret: %t159 = load ptr, ptr %retval ret ptr %t159 } define void @fn_emit_despawn(ptr %arg_st) { entry: %t0 = alloca ptr %t8 = alloca ptr %t16 = alloca ptr %t18 = alloca ptr %t27 = alloca ptr %t28 = alloca i32 %t48 = alloca ptr %t57 = alloca ptr %t59 = alloca ptr %t61 = alloca ptr %t73 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 8 %t3 = load i32, ptr %t2 call void @fn_emit_worker_guard(ptr @.str10854, i32 %t3) %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 4 %t6 = load ptr, ptr %t5 %t7 = call ptr @fn_emit_expr(ptr %t6) store ptr %t7, ptr %t8 %t9 = load ptr, ptr @g_g_ondespawn %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp sgt i32 %t11, 0 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then0, label %ifend2 then0: %t15 = call ptr @fn_itoa(i32 1024) store ptr %t15, ptr %t16 %t17 = call ptr @fn_nreg() store ptr %t17, ptr %t18 call void @fn_emit(ptr @.str10855) %t19 = load ptr, ptr %t18 call void @fn_emit(ptr %t19) call void @fn_emit(ptr @.str10856) %t20 = load ptr, ptr %t16 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str10857) %t21 = load ptr, ptr %t8 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str10858) %t24 = load ptr, ptr %t18 %t25 = call ptr @lp_str_concat(ptr @.str10859, ptr %t24) %t26 = call ptr @fn_emit_bind(ptr %t25) store ptr %t26, ptr %t27 store i32 0, ptr %t28 br label %wcond3 wcond3: %t29 = load i32, ptr %t28 %t30 = load ptr, ptr @g_g_ondespawn %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp slt i32 %t29, %t32 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %wbody4, label %wend5 wbody4: %t36 = load ptr, ptr @g_g_ondespawn %t37 = load i32, ptr %t28 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok6, label %ixbad7 ixbad7: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str10860, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok6: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t27 %t50 = call ptr @lp_str_concat(ptr @.str10861, ptr %t49) %t51 = call ptr @lp_str_concat(ptr %t50, ptr @.str10862) %t52 = load ptr, ptr %t48 %t53 = call i32 @fn_find_arch_id(ptr %t52) %t54 = call ptr @fn_itoa(i32 %t53) %t55 = call ptr @lp_str_concat(ptr %t51, ptr %t54) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t57 %t58 = call ptr @fn_lbl(ptr @.str10863) store ptr %t58, ptr %t59 %t60 = call ptr @fn_lbl(ptr @.str10864) store ptr %t60, ptr %t61 call void @fn_emit(ptr @.str10865) %t62 = load ptr, ptr %t57 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str10866) %t63 = load ptr, ptr %t59 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str10867) %t64 = load ptr, ptr %t61 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str10868) %t65 = load ptr, ptr %t59 call void @fn_emit(ptr %t65) call void @fn_emit(ptr @.str10869) %t66 = load ptr, ptr %t48 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str10870) %t67 = load ptr, ptr %t8 %t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0 %t69 = load ptr, ptr %t68 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str10871) %t70 = load ptr, ptr %t48 %t71 = call ptr @lp_str_concat(ptr @.str10872, ptr %t70) %t72 = call ptr @lp_str_concat(ptr %t71, ptr @.str10873) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_find_event(ptr %t74) %t76 = icmp ne ptr %t75, null %t77 = zext i1 %t76 to i32 %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then8, label %ifend10 then8: call void @fn_emit(ptr @.str10874) %t79 = load ptr, ptr %t73 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str10875) %t80 = load ptr, ptr %t8 %t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 0 %t82 = load ptr, ptr %t81 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str10876) br label %ifend10 ifend10: call void @fn_emit(ptr @.str10877) %t83 = load ptr, ptr %t61 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str10878) %t84 = load ptr, ptr %t61 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str10879) %t85 = load i32, ptr %t28 %t86 = add i32 %t85, 1 store i32 %t86, ptr %t28 br label %wcond3 wend5: br label %ifend2 ifend2: %t87 = load ptr, ptr @g_g_events %t88 = getelementptr inbounds %LSlice, ptr %t87, i32 0, i32 1 %t89 = load i32, ptr %t88 %t90 = icmp sgt i32 %t89, 0 %t91 = zext i1 %t90 to i32 %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then11, label %ifend13 then11: call void @fn_emit(ptr @.str10880) %t93 = load ptr, ptr %t8 %t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 0 %t95 = load ptr, ptr %t94 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str10881) br label %ifend13 ifend13: call void @fn_emit(ptr @.str10882) %t96 = load ptr, ptr %t8 %t97 = getelementptr inbounds %Cmp_Val, ptr %t96, i32 0, i32 0 %t98 = load ptr, ptr %t97 call void @fn_emit(ptr %t98) call void @fn_emit(ptr @.str10883) br label %ret ret: ret void } define void @fn_emit_attach(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t7 = alloca ptr %t9 = alloca ptr %t21 = alloca ptr %t26 = alloca ptr %t28 = alloca ptr %t30 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = call ptr @fn_itoa(i32 1024) store ptr %t6, ptr %t7 %t8 = call ptr @fn_nreg() store ptr %t8, ptr %t9 call void @fn_emit(ptr @.str10884) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) call void @fn_emit(ptr @.str10885) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) call void @fn_emit(ptr @.str10886) %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t13 call void @fn_emit(ptr %t14) call void @fn_emit(ptr @.str10887) %t15 = load ptr, ptr %t5 %t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str10888) %t18 = load ptr, ptr %t9 %t19 = call ptr @lp_str_concat(ptr @.str10889, ptr %t18) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call ptr @lp_str_concat(ptr @.str10890, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str10891) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = call ptr @fn_lbl(ptr @.str10892) store ptr %t27, ptr %t28 %t29 = call ptr @fn_lbl(ptr @.str10893) store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str10894) %t31 = load ptr, ptr %t26 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str10895) %t32 = load ptr, ptr %t28 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str10896) %t33 = load ptr, ptr %t30 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str10897) %t34 = load ptr, ptr %t28 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str10898) store i32 0, ptr @g_g_term %t35 = load ptr, ptr %t5 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 1 %t40 = load ptr, ptr %t39 %t41 = load ptr, ptr %t0 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 5 %t43 = load ptr, ptr %t42 call void @fn_emit_init_component(ptr %t37, ptr %t40, ptr %t43) %t44 = load i32, ptr @g_g_term %t45 = icmp eq i32 %t44, 0 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str10899) %t48 = load ptr, ptr %t30 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str10900) br label %ifend2 ifend2: %t49 = load ptr, ptr %t30 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str10901) store i32 0, ptr @g_g_term br label %ret ret: ret void } define void @fn_emit_detach(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t7 = alloca ptr %t9 = alloca ptr %t21 = alloca ptr %t26 = alloca ptr %t28 = alloca ptr %t30 = alloca ptr %t40 = alloca ptr %t46 = alloca i32 %t48 = alloca ptr %t61 = alloca ptr %t78 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 %t6 = call ptr @fn_itoa(i32 1024) store ptr %t6, ptr %t7 %t8 = call ptr @fn_nreg() store ptr %t8, ptr %t9 call void @fn_emit(ptr @.str10902) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) call void @fn_emit(ptr @.str10903) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) call void @fn_emit(ptr @.str10904) %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1 %t14 = load ptr, ptr %t13 call void @fn_emit(ptr %t14) call void @fn_emit(ptr @.str10905) %t15 = load ptr, ptr %t5 %t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str10906) %t18 = load ptr, ptr %t9 %t19 = call ptr @lp_str_concat(ptr @.str10907, ptr %t18) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call ptr @lp_str_concat(ptr @.str10908, ptr %t22) %t24 = call ptr @lp_str_concat(ptr %t23, ptr @.str10909) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = call ptr @fn_lbl(ptr @.str10910) store ptr %t27, ptr %t28 %t29 = call ptr @fn_lbl(ptr @.str10911) store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str10912) %t31 = load ptr, ptr %t26 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str10913) %t32 = load ptr, ptr %t28 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str10914) %t33 = load ptr, ptr %t30 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str10915) %t34 = load ptr, ptr %t28 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str10916) store i32 0, ptr @g_g_term call void @fn_emit(ptr @.str10917) %t35 = load ptr, ptr %t9 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str10918) %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_ondetach_body(ptr %t38) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 %t42 = icmp ne ptr %t41, null %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then0, label %ifend2 then0: %t45 = load i32, ptr @g_nloc store i32 %t45, ptr %t46 %t47 = call ptr @fn_nreg() store ptr %t47, ptr %t48 call void @fn_emit(ptr @.str10919) %t49 = load ptr, ptr %t48 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str10920) %t50 = load ptr, ptr %t7 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str10921) %t51 = load ptr, ptr %t0 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t52 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str10922) %t54 = load ptr, ptr %t0 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t55 call void @fn_emit(ptr %t56) call void @fn_emit(ptr @.str10923) %t57 = load ptr, ptr %t5 %t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0 %t59 = load ptr, ptr %t58 call void @fn_emit(ptr %t59) call void @fn_emit(ptr @.str10924) %t60 = call ptr @fn_emit_alloca(ptr @.str10925) store ptr %t60, ptr %t61 call void @fn_emit(ptr @.str10926) %t62 = load ptr, ptr %t48 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str10927) %t63 = load ptr, ptr %t61 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str10928) %t64 = load ptr, ptr %t0 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 1 %t66 = load ptr, ptr %t65 %t67 = load ptr, ptr %t61 %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 call void @fn_loc_push(ptr %t66, ptr %t67, ptr %t70) %t71 = load ptr, ptr %t40 call void @fn_emit_block(ptr %t71) %t72 = load i32, ptr %t46 store i32 %t72, ptr @g_nloc br label %ifend2 ifend2: %t73 = load ptr, ptr %t0 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 1 %t75 = load ptr, ptr %t74 %t76 = call ptr @lp_str_concat(ptr @.str10929, ptr %t75) %t77 = call ptr @lp_str_concat(ptr %t76, ptr @.str10930) store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_find_event(ptr %t79) %t81 = icmp ne ptr %t80, null %t82 = zext i1 %t81 to i32 %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str10931) %t84 = load ptr, ptr %t78 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str10932) %t85 = load ptr, ptr %t5 %t86 = getelementptr inbounds %Cmp_Val, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 call void @fn_emit(ptr %t87) call void @fn_emit(ptr @.str10933) br label %ifend5 ifend5: %t88 = load i32, ptr @g_g_term %t89 = icmp eq i32 %t88, 0 %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then6, label %ifend8 then6: call void @fn_emit(ptr @.str10934) %t92 = load ptr, ptr %t30 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str10935) br label %ifend8 ifend8: %t93 = load ptr, ptr %t30 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str10936) store i32 0, ptr @g_g_term br label %ret ret: ret void } define ptr @fn_find_sys(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str10937, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t21 = load ptr, ptr %t19 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %t24 = icmp eq i32 %t23, 9 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t20 br i1 %t26, label %sc5, label %scend6 sc5: %t28 = load ptr, ptr %t19 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t30, ptr %t31) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t20 br label %scend6 scend6: %t35 = load i32, ptr %t20 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then7, label %ifend9 then7: %t37 = load ptr, ptr %t19 store ptr %t37, ptr %retval br label %ret ifend9: %t38 = load i32, ptr %t1 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define void @fn_emit_toggle(ptr %arg_st) { entry: %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca i32 %t24 = alloca i32 %t49 = alloca ptr %t77 = alloca ptr %t79 = alloca ptr %t81 = alloca ptr %t92 = alloca ptr %t112 = alloca i32 %t114 = alloca ptr %t127 = alloca ptr %t144 = alloca ptr %t165 = alloca ptr %t174 = alloca ptr %t175 = alloca i32 %t176 = alloca i32 %t203 = alloca ptr store ptr %arg_st, ptr %t0 store ptr @.str10938, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 2 %t4 = load i32, ptr %t3 %t5 = icmp eq i32 %t4, 1 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: store ptr @.str10939, ptr %t1 br label %ifend2 ifend2: %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 3 %t11 = load ptr, ptr %t10 %t12 = icmp ne ptr %t11, null %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t8 br i1 %t14, label %sc3, label %scend4 sc3: %t16 = load ptr, ptr %t0 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 %t18 = load ptr, ptr %t17 %t19 = call i32 @lp_str_eq(ptr %t18, ptr @.str10940) %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t8 br label %scend4 scend4: %t22 = load i32, ptr %t8 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: br label %ret ifend7: %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 3 %t27 = load ptr, ptr %t26 %t28 = icmp ne ptr %t27, null %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t24 br i1 %t30, label %sc8, label %scend9 sc8: %t32 = load ptr, ptr %t0 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 3 %t34 = load ptr, ptr %t33 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str10941) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t24 br label %scend9 scend9: %t38 = load i32, ptr %t24 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then10, label %ifend12 then10: call void @fn_emit(ptr @.str10942) %t40 = load ptr, ptr %t1 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str10943) %t41 = load ptr, ptr %t0 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str10944) %t44 = load ptr, ptr %t0 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1 %t46 = load ptr, ptr %t45 %t47 = call ptr @lp_str_concat(ptr @.str10945, ptr %t46) %t48 = call ptr @lp_str_concat(ptr %t47, ptr @.str10946) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t0 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 2 %t52 = load i32, ptr %t51 %t53 = icmp eq i32 %t52, 1 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then13, label %ifend15 then13: %t56 = load ptr, ptr %t0 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = call ptr @lp_str_concat(ptr @.str10947, ptr %t58) %t60 = call ptr @lp_str_concat(ptr %t59, ptr @.str10948) store ptr %t60, ptr %t49 br label %ifend15 ifend15: %t61 = load ptr, ptr %t49 %t62 = call ptr @fn_find_event(ptr %t61) %t63 = icmp ne ptr %t62, null %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then16, label %ifend18 then16: call void @fn_emit(ptr @.str10949) %t66 = load ptr, ptr %t49 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str10950) br label %ifend18 ifend18: br label %ret ifend12: %t67 = load ptr, ptr %t0 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 4 %t69 = load ptr, ptr %t68 %t70 = icmp ne ptr %t69, null %t71 = zext i1 %t70 to i32 %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then19, label %else20 then19: %t73 = load ptr, ptr %t0 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 4 %t75 = load ptr, ptr %t74 %t76 = call ptr @fn_emit_expr(ptr %t75) store ptr %t76, ptr %t77 %t78 = call ptr @fn_itoa(i32 1024) store ptr %t78, ptr %t79 %t80 = call ptr @fn_nreg() store ptr %t80, ptr %t81 call void @fn_emit(ptr @.str10951) %t82 = load ptr, ptr %t81 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str10952) %t83 = load ptr, ptr %t79 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str10953) %t84 = load ptr, ptr %t0 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 call void @fn_emit(ptr %t86) call void @fn_emit(ptr @.str10954) %t87 = load ptr, ptr %t77 %t88 = getelementptr inbounds %Cmp_Val, ptr %t87, i32 0, i32 0 %t89 = load ptr, ptr %t88 call void @fn_emit(ptr %t89) call void @fn_emit(ptr @.str10955) call void @fn_emit(ptr @.str10956) %t90 = load ptr, ptr %t1 call void @fn_emit(ptr %t90) call void @fn_emit(ptr @.str10957) %t91 = load ptr, ptr %t81 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str10958) store ptr null, ptr %t92 %t93 = load ptr, ptr %t0 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 2 %t95 = load i32, ptr %t94 %t96 = icmp eq i32 %t95, 1 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then22, label %else23 then22: %t99 = load ptr, ptr %t0 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 1 %t101 = load ptr, ptr %t100 %t102 = call ptr @fn_onenable_body(ptr %t101) store ptr %t102, ptr %t92 br label %ifend24 else23: %t103 = load ptr, ptr %t0 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 1 %t105 = load ptr, ptr %t104 %t106 = call ptr @fn_ondisable_body(ptr %t105) store ptr %t106, ptr %t92 br label %ifend24 ifend24: %t107 = load ptr, ptr %t92 %t108 = icmp ne ptr %t107, null %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then25, label %ifend27 then25: %t111 = load i32, ptr @g_nloc store i32 %t111, ptr %t112 %t113 = call ptr @fn_nreg() store ptr %t113, ptr %t114 call void @fn_emit(ptr @.str10959) %t115 = load ptr, ptr %t114 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str10960) %t116 = load ptr, ptr %t79 call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str10961) %t117 = load ptr, ptr %t0 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 1 %t119 = load ptr, ptr %t118 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str10962) %t120 = load ptr, ptr %t0 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 1 %t122 = load ptr, ptr %t121 call void @fn_emit(ptr %t122) call void @fn_emit(ptr @.str10963) %t123 = load ptr, ptr %t77 %t124 = getelementptr inbounds %Cmp_Val, ptr %t123, i32 0, i32 0 %t125 = load ptr, ptr %t124 call void @fn_emit(ptr %t125) call void @fn_emit(ptr @.str10964) %t126 = call ptr @fn_emit_alloca(ptr @.str10965) store ptr %t126, ptr %t127 call void @fn_emit(ptr @.str10966) %t128 = load ptr, ptr %t114 call void @fn_emit(ptr %t128) call void @fn_emit(ptr @.str10967) %t129 = load ptr, ptr %t127 call void @fn_emit(ptr %t129) call void @fn_emit(ptr @.str10968) %t130 = load ptr, ptr %t0 %t131 = getelementptr inbounds %Cmp_Node, ptr %t130, i32 0, i32 1 %t132 = load ptr, ptr %t131 %t133 = load ptr, ptr %t127 %t134 = load ptr, ptr %t0 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 1 %t136 = load ptr, ptr %t135 call void @fn_loc_push(ptr %t132, ptr %t133, ptr %t136) %t137 = load ptr, ptr %t92 call void @fn_emit_block(ptr %t137) %t138 = load i32, ptr %t112 store i32 %t138, ptr @g_nloc br label %ifend27 ifend27: %t139 = load ptr, ptr %t0 %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 1 %t141 = load ptr, ptr %t140 %t142 = call ptr @lp_str_concat(ptr @.str10969, ptr %t141) %t143 = call ptr @lp_str_concat(ptr %t142, ptr @.str10970) store ptr %t143, ptr %t144 %t145 = load ptr, ptr %t0 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 2 %t147 = load i32, ptr %t146 %t148 = icmp eq i32 %t147, 1 %t149 = zext i1 %t148 to i32 %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %then28, label %ifend30 then28: %t151 = load ptr, ptr %t0 %t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 1 %t153 = load ptr, ptr %t152 %t154 = call ptr @lp_str_concat(ptr @.str10971, ptr %t153) %t155 = call ptr @lp_str_concat(ptr %t154, ptr @.str10972) store ptr %t155, ptr %t144 br label %ifend30 ifend30: %t156 = load ptr, ptr %t144 %t157 = call ptr @fn_find_event(ptr %t156) %t158 = icmp ne ptr %t157, null %t159 = zext i1 %t158 to i32 %t160 = icmp ne i32 %t159, 0 br i1 %t160, label %then31, label %ifend33 then31: call void @fn_emit(ptr @.str10973) %t161 = load ptr, ptr %t144 call void @fn_emit(ptr %t161) call void @fn_emit(ptr @.str10974) %t162 = load ptr, ptr %t77 %t163 = getelementptr inbounds %Cmp_Val, ptr %t162, i32 0, i32 0 %t164 = load ptr, ptr %t163 call void @fn_emit(ptr %t164) call void @fn_emit(ptr @.str10975) br label %ifend33 ifend33: br label %ifend21 else20: store ptr @.str10976, ptr %t165 %t166 = load ptr, ptr %t0 %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 1 %t168 = load ptr, ptr %t167 %t169 = call i32 @fn_is_model(ptr %t168) %t170 = icmp ne i32 %t169, 0 br i1 %t170, label %then34, label %ifend36 then34: store ptr @.str10977, ptr %t165 br label %ifend36 ifend36: %t171 = load ptr, ptr %t0 %t172 = getelementptr inbounds %Cmp_Node, ptr %t171, i32 0, i32 1 %t173 = load ptr, ptr %t172 store ptr %t173, ptr %t174 %t177 = load ptr, ptr %t165 %t178 = call i32 @lp_str_eq(ptr %t177, ptr @.str10978) %t179 = icmp ne i32 %t178, 0 %t180 = zext i1 %t179 to i32 store i32 %t180, ptr %t176 br i1 %t179, label %sc37, label %scend38 sc37: %t181 = load ptr, ptr %t174 %t182 = call ptr @fn_find_sys(ptr %t181) %t183 = icmp eq ptr %t182, null %t184 = zext i1 %t183 to i32 %t185 = icmp ne i32 %t184, 0 %t186 = zext i1 %t185 to i32 store i32 %t186, ptr %t176 br label %scend38 scend38: %t187 = load i32, ptr %t176 %t188 = icmp ne i32 %t187, 0 %t189 = zext i1 %t188 to i32 store i32 %t189, ptr %t175 br i1 %t188, label %sc39, label %scend40 sc39: %t190 = load ptr, ptr @g_g_cur_scene %t191 = icmp ne ptr %t190, null %t192 = zext i1 %t191 to i32 %t193 = icmp ne i32 %t192, 0 %t194 = zext i1 %t193 to i32 store i32 %t194, ptr %t175 br label %scend40 scend40: %t195 = load i32, ptr %t175 %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %then41, label %ifend43 then41: %t197 = load ptr, ptr @g_g_cur_scene %t198 = getelementptr inbounds %Cmp_Node, ptr %t197, i32 0, i32 1 %t199 = load ptr, ptr %t198 %t200 = call ptr @lp_str_concat(ptr %t199, ptr @.str10979) %t201 = load ptr, ptr %t174 %t202 = call ptr @lp_str_concat(ptr %t200, ptr %t201) store ptr %t202, ptr %t203 %t204 = load ptr, ptr %t203 %t205 = call ptr @fn_find_sys(ptr %t204) %t206 = icmp ne ptr %t205, null %t207 = zext i1 %t206 to i32 %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %then44, label %ifend46 then44: %t209 = load ptr, ptr %t203 store ptr %t209, ptr %t174 br label %ifend46 ifend46: br label %ifend43 ifend43: call void @fn_emit(ptr @.str10980) %t210 = load ptr, ptr %t1 call void @fn_emit(ptr %t210) call void @fn_emit(ptr @.str10981) %t211 = load ptr, ptr %t165 call void @fn_emit(ptr %t211) %t212 = load ptr, ptr %t174 call void @fn_emit(ptr %t212) call void @fn_emit(ptr @.str10982) br label %ifend21 ifend21: br label %ret ret: ret void } define void @fn_emit_system_fn(ptr %arg_sys) { entry: %t0 = alloca ptr %t8 = alloca ptr %t11 = alloca ptr store ptr %arg_sys, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 call void @fn_det_enter(ptr %t3) %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 6 %t6 = load ptr, ptr %t5 store ptr %t6, ptr @g_g_cur_scene store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself store ptr @.str10983, ptr @g_ret_ty %t7 = call ptr @fn_buf_new() store ptr %t7, ptr %t8 %t9 = call ptr @fn_buf_new() store ptr %t9, ptr @g_falloc %t10 = load ptr, ptr @g_code store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t8 store ptr %t12, ptr @g_code %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 4 %t15 = load ptr, ptr %t14 call void @fn_emit_block(ptr %t15) %t16 = load i32, ptr @g_g_term %t17 = icmp eq i32 %t16, 0 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str10984) br label %ifend2 ifend2: call void @fn_emit(ptr @.str10985) %t20 = load ptr, ptr %t11 store ptr %t20, ptr @g_code call void @fn_emit(ptr @.str10986) %t21 = load ptr, ptr %t0 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 1 %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str10987) %t24 = load ptr, ptr @g_falloc %t25 = call ptr @fn_buf_str(ptr %t24) call void @fn_emit(ptr %t25) %t26 = load ptr, ptr %t8 %t27 = call ptr @fn_buf_str(ptr %t26) call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str10988) store ptr @.str10989, ptr @g_g_det_ctx br label %ret ret: ret void } define void @fn_emit_call_one(ptr %arg_d) { entry: %t0 = alloca ptr %t6 = alloca ptr %t11 = alloca ptr %t12 = alloca i32 %t37 = alloca ptr %t42 = alloca ptr %t56 = alloca ptr %t61 = alloca ptr %t69 = alloca ptr %t71 = alloca ptr store ptr %arg_d, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 %t4 = call ptr @lp_str_concat(ptr @.str10990, ptr %t3) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @lp_str_concat(ptr @.str10991, ptr %t7) %t9 = call ptr @lp_str_concat(ptr %t8, ptr @.str10992) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 5 %t15 = load ptr, ptr %t14 %t16 = icmp ne ptr %t15, null %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t12 br i1 %t18, label %sc0, label %scend1 sc0: %t20 = load ptr, ptr %t0 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 5 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 %t25 = call i32 @fn_is_toggled_layer(ptr %t24) %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t12 br label %scend1 scend1: %t28 = load i32, ptr %t12 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then2, label %ifend4 then2: %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 5 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 %t35 = call ptr @lp_str_concat(ptr @.str10993, ptr %t34) %t36 = call ptr @fn_emit_bind(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = call ptr @lp_str_concat(ptr @.str10994, ptr %t38) %t40 = call ptr @lp_str_concat(ptr %t39, ptr @.str10995) %t41 = call ptr @fn_emit_bind(ptr %t40) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t11 %t44 = call ptr @lp_str_concat(ptr @.str10996, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str10997) %t46 = load ptr, ptr %t42 %t47 = call ptr @lp_str_concat(ptr %t45, ptr %t46) %t48 = call ptr @fn_emit_bind(ptr %t47) store ptr %t48, ptr %t11 br label %ifend4 ifend4: %t49 = load ptr, ptr %t0 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 2 %t51 = load i32, ptr %t50 %t52 = icmp eq i32 %t51, 1 %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then5, label %ifend7 then5: %t55 = call ptr @fn_emit_bind(ptr @.str10998) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t56 %t58 = call ptr @lp_str_concat(ptr @.str10999, ptr %t57) %t59 = call ptr @lp_str_concat(ptr %t58, ptr @.str11000) %t60 = call ptr @fn_emit_bind(ptr %t59) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t11 %t63 = call ptr @lp_str_concat(ptr @.str11001, ptr %t62) %t64 = call ptr @lp_str_concat(ptr %t63, ptr @.str11002) %t65 = load ptr, ptr %t61 %t66 = call ptr @lp_str_concat(ptr %t64, ptr %t65) %t67 = call ptr @fn_emit_bind(ptr %t66) store ptr %t67, ptr %t11 br label %ifend7 ifend7: %t68 = call ptr @fn_lbl(ptr @.str11003) store ptr %t68, ptr %t69 %t70 = call ptr @fn_lbl(ptr @.str11004) store ptr %t70, ptr %t71 call void @fn_emit(ptr @.str11005) %t72 = load ptr, ptr %t11 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str11006) %t73 = load ptr, ptr %t69 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str11007) %t74 = load ptr, ptr %t71 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str11008) %t75 = load ptr, ptr %t69 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str11009) %t76 = load ptr, ptr %t0 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 1 %t78 = load ptr, ptr %t77 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str11010) call void @fn_emit(ptr @.str11011) %t79 = load ptr, ptr %t71 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str11012) %t80 = load ptr, ptr %t71 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str11013) br label %ret ret: ret void } define void @fn_emit_one_engine_system(ptr %arg_comp, ptr %arg_fn) { entry: %t0 = alloca ptr %t1 = alloca ptr %t5 = alloca i32 store ptr %arg_comp, ptr %t0 store ptr %arg_fn, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = call i32 @fn_is_system_disabled(ptr %t2) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_find_comp(ptr %t6) %t8 = icmp ne ptr %t7, null %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t5 br i1 %t10, label %sc3, label %scend4 sc3: %t12 = load ptr, ptr %t1 %t13 = call ptr @fn_find_fn(ptr %t12) %t14 = icmp ne ptr %t13, null %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t5 br label %scend4 scend4: %t18 = load i32, ptr %t5 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then5, label %ifend7 then5: call void @fn_emit(ptr @.str11014) %t20 = load ptr, ptr %t1 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str11015) br label %ifend7 ifend7: br label %ret ret: ret void } define void @fn_emit_engine_systems_for_phase(ptr %arg_phase) { entry: %t0 = alloca ptr %t1 = alloca i32 %t47 = alloca i32 %t60 = alloca i32 %t74 = alloca i32 store ptr %arg_phase, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_esys_comp %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_esys_phase %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str11016, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %ifend7 then5: %t22 = load ptr, ptr @g_g_esys_comp %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok8, label %ixbad9 ixbad9: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str11017, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok8: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr @g_g_esys_fn %t33 = load i32, ptr %t1 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 %t33, %t37 br i1 %t38, label %ixok10, label %ixbad11 ixbad11: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str11018, i32 %t33, i32 %t37) call void @exit(i32 1) unreachable ixok10: %t40 = getelementptr inbounds ptr, ptr %t35, i32 %t33 %t41 = load ptr, ptr %t40 call void @fn_emit_one_engine_system(ptr %t31, ptr %t41) br label %ifend7 ifend7: %t42 = load i32, ptr %t1 %t43 = add i32 %t42, 1 store i32 %t43, ptr %t1 br label %wcond0 wend2: %t44 = load ptr, ptr %t0 %t45 = call i32 @lp_str_eq(ptr %t44, ptr @.str11019) %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then12, label %ifend14 then12: %t48 = load i32, ptr @g_g_uses_tween_rt %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t47 br i1 %t49, label %sc15, label %scend16 sc15: %t51 = call ptr @fn_find_fn(ptr @.str11020) %t52 = icmp ne ptr %t51, null %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t47 br label %scend16 scend16: %t56 = load i32, ptr %t47 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then17, label %ifend19 then17: call void @fn_emit(ptr @.str11021) br label %ifend19 ifend19: %t58 = call i32 @fn_has_countdowns() %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %then20, label %ifend22 then20: call void @fn_emit(ptr @.str11022) br label %ifend22 ifend22: %t61 = load i32, ptr @g_g_uses_fx %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t60 br i1 %t62, label %sc23, label %scend24 sc23: %t64 = call ptr @fn_find_fn(ptr @.str11023) %t65 = icmp ne ptr %t64, null %t66 = zext i1 %t65 to i32 %t67 = icmp ne i32 %t66, 0 %t68 = zext i1 %t67 to i32 store i32 %t68, ptr %t60 br label %scend24 scend24: %t69 = load i32, ptr %t60 %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then25, label %ifend27 then25: call void @fn_emit(ptr @.str11024) br label %ifend27 ifend27: br label %ifend14 ifend14: %t71 = load ptr, ptr %t0 %t72 = call i32 @lp_str_eq(ptr %t71, ptr @.str11025) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then28, label %ifend30 then28: %t75 = load i32, ptr @g_g_uses_fx %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t74 br i1 %t76, label %sc31, label %scend32 sc31: %t78 = call ptr @fn_find_fn(ptr @.str11026) %t79 = icmp ne ptr %t78, null %t80 = zext i1 %t79 to i32 %t81 = icmp ne i32 %t80, 0 %t82 = zext i1 %t81 to i32 store i32 %t82, ptr %t74 br label %scend32 scend32: %t83 = load i32, ptr %t74 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then33, label %ifend35 then33: call void @fn_emit(ptr @.str11027) br label %ifend35 ifend35: br label %ifend30 ifend30: br label %ret ret: ret void } define void @fn_emit_countdown_system() { entry: %t1 = alloca ptr %t3 = alloca i32 %t4 = alloca i32 %t22 = alloca ptr %t29 = alloca i32 %t30 = alloca i32 %t62 = alloca ptr %t66 = alloca ptr %t119 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 call void @fn_emit(ptr @.str11028) call void @fn_emit(ptr @.str11029) call void @fn_emit(ptr @.str11030) call void @fn_emit(ptr @.str11031) call void @fn_emit(ptr @.str11032) %t2 = load ptr, ptr %t1 call void @fn_emit(ptr %t2) call void @fn_emit(ptr @.str11033) call void @fn_emit(ptr @.str11034) store i32 0, ptr %t3 store i32 0, ptr %t4 br label %wcond0 wcond0: %t5 = load i32, ptr %t4 %t6 = load ptr, ptr @g_prog %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t5, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr @g_prog %t13 = load i32, ptr %t4 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok3, label %ixbad4 ixbad4: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str11035, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok3: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 8 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond8 wcond8: %t31 = load i32, ptr %t30 %t32 = load ptr, ptr %t22 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 7 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp slt i32 %t31, %t36 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %wbody9, label %wend10 wbody9: %t40 = load ptr, ptr %t22 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 7 %t42 = load ptr, ptr %t41 %t43 = load i32, ptr %t30 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 %t43, %t47 br i1 %t48, label %ixok11, label %ixbad12 ixbad12: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str11036, i32 %t43, i32 %t47) call void @exit(i32 1) unreachable ixok11: %t50 = getelementptr inbounds ptr, ptr %t45, i32 %t43 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3 %t53 = load ptr, ptr %t52 %t54 = call i32 @lp_str_eq(ptr %t53, ptr @.str11037) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then13, label %ifend15 then13: store i32 1, ptr %t29 br label %ifend15 ifend15: %t56 = load i32, ptr %t30 %t57 = add i32 %t56, 1 store i32 %t57, ptr %t30 br label %wcond8 wend10: %t58 = load i32, ptr %t29 %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %then16, label %ifend18 then16: %t60 = load i32, ptr %t3 %t61 = call ptr @fn_itoa(i32 %t60) store ptr %t61, ptr %t62 %t63 = load i32, ptr %t3 %t64 = add i32 %t63, 1 %t65 = call ptr @fn_itoa(i32 %t64) store ptr %t65, ptr %t66 call void @fn_emit(ptr @.str11038) %t67 = load ptr, ptr %t62 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str11039) call void @fn_emit(ptr @.str11040) %t68 = load ptr, ptr %t62 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str11041) %t69 = load ptr, ptr %t1 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str11042) %t70 = load ptr, ptr %t22 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str11043) call void @fn_emit(ptr @.str11044) %t73 = load ptr, ptr %t62 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str11045) %t74 = load ptr, ptr %t62 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str11046) call void @fn_emit(ptr @.str11047) %t75 = load ptr, ptr %t62 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str11048) %t76 = load ptr, ptr %t62 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str11049) call void @fn_emit(ptr @.str11050) %t77 = load ptr, ptr %t62 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str11051) %t78 = load ptr, ptr %t62 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str11052) %t79 = load ptr, ptr %t66 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str11053) call void @fn_emit(ptr @.str11054) %t80 = load ptr, ptr %t62 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str11055) call void @fn_emit(ptr @.str11056) %t81 = load ptr, ptr %t62 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str11057) %t82 = load ptr, ptr %t1 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str11058) %t83 = load ptr, ptr %t22 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1 %t85 = load ptr, ptr %t84 call void @fn_emit(ptr %t85) call void @fn_emit(ptr @.str11059) %t86 = load ptr, ptr %t22 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %t87 call void @fn_emit(ptr %t88) call void @fn_emit(ptr @.str11060) store i32 0, ptr %t30 br label %wcond19 wcond19: %t89 = load i32, ptr %t30 %t90 = load ptr, ptr %t22 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 7 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 %t94 = load i32, ptr %t93 %t95 = icmp slt i32 %t89, %t94 %t96 = zext i1 %t95 to i32 %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %wbody20, label %wend21 wbody20: %t98 = load ptr, ptr %t22 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 7 %t100 = load ptr, ptr %t99 %t101 = load i32, ptr %t30 %t102 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 0 %t103 = load ptr, ptr %t102 %t104 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1 %t105 = load i32, ptr %t104 %t106 = icmp ult i32 %t101, %t105 br i1 %t106, label %ixok22, label %ixbad23 ixbad23: %t107 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t107, ptr @.fmt_bounds, ptr @.str11061, i32 %t101, i32 %t105) call void @exit(i32 1) unreachable ixok22: %t108 = getelementptr inbounds ptr, ptr %t103, i32 %t101 %t109 = load ptr, ptr %t108 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 3 %t111 = load ptr, ptr %t110 %t112 = call i32 @lp_str_eq(ptr %t111, ptr @.str11062) %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then24, label %ifend26 then24: %t114 = load ptr, ptr %t62 %t115 = call ptr @lp_str_concat(ptr %t114, ptr @.str11063) %t116 = load i32, ptr %t30 %t117 = call ptr @fn_itoa(i32 %t116) %t118 = call ptr @lp_str_concat(ptr %t115, ptr %t117) store ptr %t118, ptr %t119 call void @fn_emit(ptr @.str11064) %t120 = load ptr, ptr %t119 call void @fn_emit(ptr %t120) call void @fn_emit(ptr @.str11065) %t121 = load ptr, ptr %t22 %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 1 %t123 = load ptr, ptr %t122 call void @fn_emit(ptr %t123) call void @fn_emit(ptr @.str11066) %t124 = load ptr, ptr %t62 call void @fn_emit(ptr %t124) call void @fn_emit(ptr @.str11067) %t125 = load i32, ptr %t30 %t126 = call ptr @fn_itoa(i32 %t125) call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str11068) call void @fn_emit(ptr @.str11069) %t127 = load ptr, ptr %t119 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str11070) %t128 = load ptr, ptr %t119 call void @fn_emit(ptr %t128) call void @fn_emit(ptr @.str11071) call void @fn_emit(ptr @.str11072) %t129 = load ptr, ptr %t119 call void @fn_emit(ptr %t129) call void @fn_emit(ptr @.str11073) %t130 = load ptr, ptr %t119 call void @fn_emit(ptr %t130) call void @fn_emit(ptr @.str11074) call void @fn_emit(ptr @.str11075) %t131 = load ptr, ptr %t119 call void @fn_emit(ptr %t131) call void @fn_emit(ptr @.str11076) %t132 = load ptr, ptr %t119 call void @fn_emit(ptr %t132) call void @fn_emit(ptr @.str11077) call void @fn_emit(ptr @.str11078) %t133 = load ptr, ptr %t119 call void @fn_emit(ptr %t133) call void @fn_emit(ptr @.str11079) %t134 = load ptr, ptr %t119 call void @fn_emit(ptr %t134) call void @fn_emit(ptr @.str11080) %t135 = load ptr, ptr %t119 call void @fn_emit(ptr %t135) call void @fn_emit(ptr @.str11081) %t136 = load ptr, ptr %t119 call void @fn_emit(ptr %t136) call void @fn_emit(ptr @.str11082) call void @fn_emit(ptr @.str11083) %t137 = load ptr, ptr %t119 call void @fn_emit(ptr %t137) call void @fn_emit(ptr @.str11084) %t138 = load ptr, ptr %t119 call void @fn_emit(ptr %t138) call void @fn_emit(ptr @.str11085) br label %ifend26 ifend26: %t139 = load i32, ptr %t30 %t140 = add i32 %t139, 1 store i32 %t140, ptr %t30 br label %wcond19 wend21: call void @fn_emit(ptr @.str11086) %t141 = load ptr, ptr %t66 call void @fn_emit(ptr %t141) call void @fn_emit(ptr @.str11087) %t142 = load i32, ptr %t3 %t143 = add i32 %t142, 1 store i32 %t143, ptr %t3 br label %ifend18 ifend18: br label %ifend7 ifend7: %t144 = load i32, ptr %t4 %t145 = add i32 %t144, 1 store i32 %t145, ptr %t4 br label %wcond0 wend2: call void @fn_emit(ptr @.str11088) %t146 = load i32, ptr %t3 %t147 = call ptr @fn_itoa(i32 %t146) call void @fn_emit(ptr %t147) call void @fn_emit(ptr @.str11089) call void @fn_emit(ptr @.str11090) br label %ret ret: ret void } define void @fn_emit_prefab_fn(ptr %arg_pre) { entry: %t0 = alloca ptr %t2 = alloca ptr %t5 = alloca ptr %t8 = alloca ptr %t16 = alloca ptr store ptr %arg_pre, ptr %t0 store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself store ptr null, ptr @g_g_cur_scene store ptr @.str11091, ptr @g_ret_ty %t1 = call ptr @fn_buf_new() store ptr %t1, ptr %t2 %t3 = call ptr @fn_buf_new() store ptr %t3, ptr @g_falloc %t4 = load ptr, ptr @g_code store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t2 store ptr %t6, ptr @g_code %t7 = call ptr @fn_node(i32 22) store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1 %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 1 %t13 = load ptr, ptr %t12 store ptr %t13, ptr %t10 %t14 = load ptr, ptr %t8 %t15 = call ptr @fn_emit_spawn(ptr %t14) store ptr %t15, ptr %t16 call void @fn_emit(ptr @.str11092) %t17 = load ptr, ptr %t16 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str11093) %t18 = load ptr, ptr %t5 store ptr %t18, ptr @g_code call void @fn_emit(ptr @.str11094) %t19 = load ptr, ptr %t0 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 1 %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str11095) %t22 = load ptr, ptr @g_falloc %t23 = call ptr @fn_buf_str(ptr %t22) call void @fn_emit(ptr %t23) %t24 = load ptr, ptr %t2 %t25 = call ptr @fn_buf_str(ptr %t24) call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str11096) br label %ret ret: ret void } define void @fn_emit_prefab_fns() { entry: %t0 = alloca i32 %t36 = alloca ptr %t39 = alloca ptr %t58 = alloca ptr %t66 = alloca ptr %t74 = alloca ptr %t81 = alloca ptr %t86 = alloca ptr %t88 = alloca ptr %t90 = alloca ptr %t101 = alloca ptr store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str11097, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 53 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load ptr, ptr @g_prog %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str11098, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 call void @fn_emit_prefab_fn(ptr %t32) br label %ifend7 ifend7: %t33 = load i32, ptr %t0 %t34 = add i32 %t33, 1 store i32 %t34, ptr %t0 br label %wcond0 wend2: store i32 1, ptr @g_g_uses_str store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself %t35 = call ptr @fn_buf_new() store ptr %t35, ptr %t36 %t37 = call ptr @fn_buf_new() store ptr %t37, ptr @g_falloc %t38 = load ptr, ptr @g_code store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t36 store ptr %t40, ptr @g_code store i32 0, ptr %t0 br label %wcond10 wcond10: %t41 = load i32, ptr %t0 %t42 = load ptr, ptr @g_prog %t43 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp slt i32 %t41, %t44 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %wbody11, label %wend12 wbody11: %t48 = load ptr, ptr @g_prog %t49 = load i32, ptr %t0 %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = icmp ult i32 %t49, %t53 br i1 %t54, label %ixok13, label %ixbad14 ixbad14: %t55 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t55, ptr @.fmt_bounds, ptr @.str11099, i32 %t49, i32 %t53) call void @exit(i32 1) unreachable ixok13: %t56 = getelementptr inbounds ptr, ptr %t51, i32 %t49 %t57 = load ptr, ptr %t56 store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 0 %t61 = load i32, ptr %t60 %t62 = icmp eq i32 %t61, 53 %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then15, label %ifend17 then15: %t65 = call ptr @fn_node(i32 31) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 1 %t69 = load ptr, ptr %t58 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 store ptr %t71, ptr %t68 %t72 = load ptr, ptr %t66 %t73 = call ptr @fn_emit_expr(ptr %t72) store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t74 %t76 = getelementptr inbounds %Cmp_Val, ptr %t75, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @lp_str_concat(ptr @.str11100, ptr %t77) %t79 = call ptr @lp_str_concat(ptr %t78, ptr @.str11101) %t80 = call ptr @fn_emit_bind(ptr %t79) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t81 %t83 = call ptr @lp_str_concat(ptr @.str11102, ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str11103) %t85 = call ptr @fn_emit_bind(ptr %t84) store ptr %t85, ptr %t86 %t87 = call ptr @fn_lbl(ptr @.str11104) store ptr %t87, ptr %t88 %t89 = call ptr @fn_lbl(ptr @.str11105) store ptr %t89, ptr %t90 call void @fn_emit(ptr @.str11106) %t91 = load ptr, ptr %t86 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str11107) %t92 = load ptr, ptr %t88 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str11108) %t93 = load ptr, ptr %t90 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str11109) %t94 = load ptr, ptr %t88 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str11110) %t95 = load ptr, ptr %t58 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 %t98 = call ptr @lp_str_concat(ptr @.str11111, ptr %t97) %t99 = call ptr @lp_str_concat(ptr %t98, ptr @.str11112) %t100 = call ptr @fn_emit_bind(ptr %t99) store ptr %t100, ptr %t101 call void @fn_emit(ptr @.str11113) %t102 = load ptr, ptr %t101 call void @fn_emit(ptr %t102) call void @fn_emit(ptr @.str11114) %t103 = load ptr, ptr %t90 call void @fn_emit(ptr %t103) call void @fn_emit(ptr @.str11115) br label %ifend17 ifend17: %t104 = load i32, ptr %t0 %t105 = add i32 %t104, 1 store i32 %t105, ptr %t0 br label %wcond10 wend12: call void @fn_emit(ptr @.str11116) %t106 = load ptr, ptr %t39 store ptr %t106, ptr @g_code call void @fn_emit(ptr @.str11117) %t107 = load ptr, ptr @g_falloc %t108 = call ptr @fn_buf_str(ptr %t107) call void @fn_emit(ptr %t108) %t109 = load ptr, ptr %t36 %t110 = call ptr @fn_buf_str(ptr %t109) call void @fn_emit(ptr %t110) call void @fn_emit(ptr @.str11118) br label %ret ret: ret void } define i32 @fn_phase_id(ptr %arg_phase) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_phase, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str11119) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str11120) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str11121) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store i32 2, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str11122) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store i32 3, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str11123) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store i32 4, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str11124) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: store i32 5, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str11125) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: store i32 6, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str11126) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: store i32 7, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 %t26 = call ptr @lp_str_concat(ptr @.str11127, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str11128) call void @fn_perr(ptr %t27) store i32 7, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define i32 @fn_is_phase_name(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca i32 %t29 = alloca i32 store ptr %arg_name, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str11129) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str11130) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 br label %scend1 scend1: %t12 = load i32, ptr %t3 %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t2 br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 %t16 = call i32 @lp_str_eq(ptr %t15, ptr @.str11131) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 br label %scend3 scend3: %t19 = load i32, ptr %t2 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t1 br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str11132) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 br label %scend5 scend5: %t26 = load i32, ptr %t1 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: %t30 = load ptr, ptr %t0 %t31 = call i32 @lp_str_eq(ptr %t30, ptr @.str11133) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t29 br i1 %t32, label %scend10, label %sc9 sc9: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str11134) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t29 br label %scend10 scend10: %t38 = load i32, ptr %t29 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t28 br i1 %t39, label %scend12, label %sc11 sc11: %t41 = load ptr, ptr %t0 %t42 = call i32 @lp_str_eq(ptr %t41, ptr @.str11135) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t28 br label %scend12 scend12: %t45 = load i32, ptr %t28 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then13, label %ifend15 then13: store i32 1, ptr %retval br label %ret ifend15: store i32 0, ptr %retval br label %ret ret: %t47 = load i32, ptr %retval ret i32 %t47 } define void @fn_emit_module_glue() { entry: %t4 = alloca i32 call void @fn_emith(ptr @.str11136) call void @fn_emith(ptr @.str11137) call void @fn_emith(ptr @.str11138) call void @fn_emith(ptr @.str11139) call void @fn_emith(ptr @.str11140) call void @fn_emith(ptr @.str11141) call void @fn_emith(ptr @.str11142) call void @fn_emith(ptr @.str11143) call void @fn_emith(ptr @.str11144) call void @fn_emith(ptr @.str11145) call void @fn_emith(ptr @.str11146) call void @fn_emith(ptr @.str11147) call void @fn_emith(ptr @.str11148) call void @fn_emith(ptr @.str11149) call void @fn_emith(ptr @.str11150) call void @fn_emith(ptr @.str11151) call void @fn_emith(ptr @.str11152) call void @fn_emith(ptr @.str11153) call void @fn_emith(ptr @.str11154) call void @fn_emit(ptr @.str11155) %t0 = call ptr @fn_find_fn(ptr @.str11156) %t1 = icmp ne ptr %t0, null %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str11157) br label %ifend2 ifend2: store i32 0, ptr %t4 br label %wcond3 wcond3: %t5 = load i32, ptr %t4 %t6 = load ptr, ptr @g_g_mod_sys_fn %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t5, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody4, label %wend5 wbody4: call void @fn_emit(ptr @.str11158) %t12 = load ptr, ptr @g_g_mod_sys_fn %t13 = load i32, ptr %t4 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp ult i32 %t13, %t17 br i1 %t18, label %ixok6, label %ixbad7 ixbad7: %t19 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t19, ptr @.fmt_bounds, ptr @.str11159, i32 %t13, i32 %t17) call void @exit(i32 1) unreachable ixok6: %t20 = getelementptr inbounds ptr, ptr %t15, i32 %t13 %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str11160) %t22 = load ptr, ptr @g_g_mod_sys_phase %t23 = load i32, ptr %t4 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok8, label %ixbad9 ixbad9: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str11161, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok8: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 %t32 = call i32 @fn_phase_id(ptr %t31) %t33 = call ptr @fn_itoa(i32 %t32) call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str11162) %t34 = load i32, ptr %t4 %t35 = add i32 %t34, 1 store i32 %t35, ptr %t4 br label %wcond3 wend5: call void @fn_emit(ptr @.str11163) call void @fn_emith(ptr @.str11164) br label %ret ret: ret void } define void @fn_emit_system_registry() { entry: %t1 = alloca ptr %t0 = call ptr @fn_itoa(i32 64) store ptr %t0, ptr %t1 call void @fn_emith(ptr @.str11165) %t2 = load ptr, ptr %t1 call void @fn_emith(ptr %t2) call void @fn_emith(ptr @.str11166) call void @fn_emith(ptr @.str11167) %t3 = load ptr, ptr %t1 call void @fn_emith(ptr %t3) call void @fn_emith(ptr @.str11168) call void @fn_emith(ptr @.str11169) call void @fn_emit(ptr @.str11170) call void @fn_emit(ptr @.str11171) call void @fn_emit(ptr @.str11172) %t4 = load ptr, ptr %t1 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str11173) call void @fn_emit(ptr @.str11174) call void @fn_emit(ptr @.str11175) call void @fn_emit(ptr @.str11176) %t5 = load ptr, ptr %t1 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str11177) call void @fn_emit(ptr @.str11178) call void @fn_emit(ptr @.str11179) %t6 = load ptr, ptr %t1 call void @fn_emit(ptr %t6) call void @fn_emit(ptr @.str11180) call void @fn_emit(ptr @.str11181) call void @fn_emit(ptr @.str11182) call void @fn_emit(ptr @.str11183) br label %ret ret: ret void } define void @fn_emit_dyn_systems_for_phase(ptr %arg_phase) { entry: %t0 = alloca ptr %t2 = alloca ptr %t6 = alloca ptr %t8 = alloca ptr %t10 = alloca ptr %t12 = alloca ptr %t14 = alloca ptr %t16 = alloca ptr %t18 = alloca ptr %t20 = alloca ptr %t22 = alloca ptr %t32 = alloca ptr %t39 = alloca ptr %t45 = alloca ptr %t52 = alloca ptr %t59 = alloca ptr %t65 = alloca ptr %t72 = alloca ptr store ptr %arg_phase, ptr %t0 %t1 = call ptr @fn_itoa(i32 64) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call i32 @fn_phase_id(ptr %t3) %t5 = call ptr @fn_itoa(i32 %t4) store ptr %t5, ptr %t6 %t7 = call ptr @fn_nreg() store ptr %t7, ptr %t8 %t9 = call ptr @fn_nreg() store ptr %t9, ptr %t10 %t11 = call ptr @fn_lbl(ptr @.str11184) store ptr %t11, ptr %t12 %t13 = call ptr @fn_lbl(ptr @.str11185) store ptr %t13, ptr %t14 %t15 = call ptr @fn_lbl(ptr @.str11186) store ptr %t15, ptr %t16 %t17 = call ptr @fn_lbl(ptr @.str11187) store ptr %t17, ptr %t18 %t19 = call ptr @fn_lbl(ptr @.str11188) store ptr %t19, ptr %t20 %t21 = call ptr @fn_lbl(ptr @.str11189) store ptr %t21, ptr %t22 call void @fn_emit(ptr @.str11190) %t23 = load ptr, ptr %t12 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str11191) %t24 = load ptr, ptr %t12 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str11192) %t25 = load ptr, ptr %t14 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str11193) %t26 = load ptr, ptr %t14 call void @fn_emit(ptr %t26) call void @fn_emit(ptr @.str11194) call void @fn_emit(ptr @.str11195) %t27 = load ptr, ptr %t8 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str11196) %t28 = load ptr, ptr %t12 call void @fn_emit(ptr %t28) call void @fn_emit(ptr @.str11197) %t29 = load ptr, ptr %t10 call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str11198) %t30 = load ptr, ptr %t20 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str11199) %t31 = call ptr @fn_emit_bind(ptr @.str11200) store ptr %t31, ptr %t32 %t33 = load ptr, ptr %t8 %t34 = call ptr @lp_str_concat(ptr @.str11201, ptr %t33) %t35 = call ptr @lp_str_concat(ptr %t34, ptr @.str11202) %t36 = load ptr, ptr %t32 %t37 = call ptr @lp_str_concat(ptr %t35, ptr %t36) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 call void @fn_emit(ptr @.str11203) %t40 = load ptr, ptr %t39 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str11204) %t41 = load ptr, ptr %t16 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str11205) %t42 = load ptr, ptr %t22 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str11206) %t43 = load ptr, ptr %t16 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str11207) %t44 = call ptr @fn_nreg() store ptr %t44, ptr %t45 call void @fn_emit(ptr @.str11208) %t46 = load ptr, ptr %t45 call void @fn_emit(ptr %t46) call void @fn_emit(ptr @.str11209) %t47 = load ptr, ptr %t2 call void @fn_emit(ptr %t47) call void @fn_emit(ptr @.str11210) %t48 = load ptr, ptr %t8 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str11211) %t49 = load ptr, ptr %t45 %t50 = call ptr @lp_str_concat(ptr @.str11212, ptr %t49) %t51 = call ptr @fn_emit_bind(ptr %t50) store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t52 %t54 = call ptr @lp_str_concat(ptr @.str11213, ptr %t53) %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str11214) %t56 = load ptr, ptr %t6 %t57 = call ptr @lp_str_concat(ptr %t55, ptr %t56) %t58 = call ptr @fn_emit_bind(ptr %t57) store ptr %t58, ptr %t59 call void @fn_emit(ptr @.str11215) %t60 = load ptr, ptr %t59 call void @fn_emit(ptr %t60) call void @fn_emit(ptr @.str11216) %t61 = load ptr, ptr %t18 call void @fn_emit(ptr %t61) call void @fn_emit(ptr @.str11217) %t62 = load ptr, ptr %t20 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str11218) %t63 = load ptr, ptr %t18 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str11219) %t64 = call ptr @fn_nreg() store ptr %t64, ptr %t65 call void @fn_emit(ptr @.str11220) %t66 = load ptr, ptr %t65 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str11221) %t67 = load ptr, ptr %t2 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str11222) %t68 = load ptr, ptr %t8 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str11223) %t69 = load ptr, ptr %t65 %t70 = call ptr @lp_str_concat(ptr @.str11224, ptr %t69) %t71 = call ptr @fn_emit_bind(ptr %t70) store ptr %t71, ptr %t72 call void @fn_emit(ptr @.str11225) %t73 = load ptr, ptr %t72 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str11226) call void @fn_emit(ptr @.str11227) %t74 = load ptr, ptr %t20 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str11228) %t75 = load ptr, ptr %t20 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str11229) %t76 = load ptr, ptr %t10 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str11230) %t77 = load ptr, ptr %t8 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str11231) %t78 = load ptr, ptr %t14 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str11232) %t79 = load ptr, ptr %t22 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str11233) br label %ret ret: ret void } define void @fn_emit_calls_for_phase(ptr %arg_phase) { entry: %t0 = alloca ptr %t1 = alloca i32 %t19 = alloca ptr %t20 = alloca i32 %t21 = alloca i32 %t51 = alloca i32 %t69 = alloca ptr %t70 = alloca i32 %t71 = alloca i32 %t103 = alloca ptr %t121 = alloca ptr %t122 = alloca i32 %t123 = alloca i32 %t161 = alloca ptr %t163 = alloca ptr %t165 = alloca ptr store ptr %arg_phase, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_prog %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str11234, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t22 = load ptr, ptr %t19 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 0 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 9 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t21 br i1 %t27, label %sc5, label %scend6 sc5: %t29 = load ptr, ptr %t19 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 3 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr %t0 %t33 = call i32 @lp_str_eq(ptr %t31, ptr %t32) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t21 br label %scend6 scend6: %t36 = load i32, ptr %t21 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t20 br i1 %t37, label %sc7, label %scend8 sc7: %t39 = load ptr, ptr %t19 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 6 %t41 = load ptr, ptr %t40 %t42 = icmp eq ptr %t41, null %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t20 br label %scend8 scend8: %t46 = load i32, ptr %t20 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then9, label %ifend11 then9: %t48 = load ptr, ptr %t19 call void @fn_emit_call_one(ptr %t48) br label %ifend11 ifend11: %t49 = load i32, ptr %t1 %t50 = add i32 %t49, 1 store i32 %t50, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %t51 store i32 0, ptr %t1 br label %wcond12 wcond12: %t52 = load i32, ptr %t1 %t53 = load ptr, ptr @g_prog %t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp slt i32 %t52, %t55 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %wbody13, label %wend14 wbody13: %t59 = load ptr, ptr @g_prog %t60 = load i32, ptr %t1 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 %t60, %t64 br i1 %t65, label %ixok15, label %ixbad16 ixbad16: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str11235, i32 %t60, i32 %t64) call void @exit(i32 1) unreachable ixok15: %t67 = getelementptr inbounds ptr, ptr %t62, i32 %t60 %t68 = load ptr, ptr %t67 store ptr %t68, ptr %t69 %t72 = load ptr, ptr %t69 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 0 %t74 = load i32, ptr %t73 %t75 = icmp eq i32 %t74, 9 %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 %t78 = zext i1 %t77 to i32 store i32 %t78, ptr %t71 br i1 %t77, label %sc17, label %scend18 sc17: %t79 = load ptr, ptr %t69 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 3 %t81 = load ptr, ptr %t80 %t82 = load ptr, ptr %t0 %t83 = call i32 @lp_str_eq(ptr %t81, ptr %t82) %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t71 br label %scend18 scend18: %t86 = load i32, ptr %t71 %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t70 br i1 %t87, label %sc19, label %scend20 sc19: %t89 = load ptr, ptr %t69 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 6 %t91 = load ptr, ptr %t90 %t92 = icmp ne ptr %t91, null %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t70 br label %scend20 scend20: %t96 = load i32, ptr %t70 %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then21, label %ifend23 then21: store i32 1, ptr %t51 br label %ifend23 ifend23: %t98 = load i32, ptr %t1 %t99 = add i32 %t98, 1 store i32 %t99, ptr %t1 br label %wcond12 wend14: %t100 = load i32, ptr %t51 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then24, label %ifend26 then24: %t102 = call ptr @fn_emit_bind(ptr @.str11236) store ptr %t102, ptr %t103 store i32 0, ptr %t1 br label %wcond27 wcond27: %t104 = load i32, ptr %t1 %t105 = load ptr, ptr @g_prog %t106 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 1 %t107 = load i32, ptr %t106 %t108 = icmp slt i32 %t104, %t107 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %wbody28, label %wend29 wbody28: %t111 = load ptr, ptr @g_prog %t112 = load i32, ptr %t1 %t113 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 %t116 = load i32, ptr %t115 %t117 = icmp ult i32 %t112, %t116 br i1 %t117, label %ixok30, label %ixbad31 ixbad31: %t118 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t118, ptr @.fmt_bounds, ptr @.str11237, i32 %t112, i32 %t116) call void @exit(i32 1) unreachable ixok30: %t119 = getelementptr inbounds ptr, ptr %t114, i32 %t112 %t120 = load ptr, ptr %t119 store ptr %t120, ptr %t121 %t124 = load ptr, ptr %t121 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 0 %t126 = load i32, ptr %t125 %t127 = icmp eq i32 %t126, 9 %t128 = zext i1 %t127 to i32 %t129 = icmp ne i32 %t128, 0 %t130 = zext i1 %t129 to i32 store i32 %t130, ptr %t123 br i1 %t129, label %sc32, label %scend33 sc32: %t131 = load ptr, ptr %t121 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 3 %t133 = load ptr, ptr %t132 %t134 = load ptr, ptr %t0 %t135 = call i32 @lp_str_eq(ptr %t133, ptr %t134) %t136 = icmp ne i32 %t135, 0 %t137 = zext i1 %t136 to i32 store i32 %t137, ptr %t123 br label %scend33 scend33: %t138 = load i32, ptr %t123 %t139 = icmp ne i32 %t138, 0 %t140 = zext i1 %t139 to i32 store i32 %t140, ptr %t122 br i1 %t139, label %sc34, label %scend35 sc34: %t141 = load ptr, ptr %t121 %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 6 %t143 = load ptr, ptr %t142 %t144 = icmp ne ptr %t143, null %t145 = zext i1 %t144 to i32 %t146 = icmp ne i32 %t145, 0 %t147 = zext i1 %t146 to i32 store i32 %t147, ptr %t122 br label %scend35 scend35: %t148 = load i32, ptr %t122 %t149 = icmp ne i32 %t148, 0 br i1 %t149, label %then36, label %ifend38 then36: %t150 = load ptr, ptr %t103 %t151 = call ptr @lp_str_concat(ptr @.str11238, ptr %t150) %t152 = call ptr @lp_str_concat(ptr %t151, ptr @.str11239) %t153 = load ptr, ptr %t121 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 6 %t155 = load ptr, ptr %t154 %t156 = getelementptr inbounds %Cmp_Node, ptr %t155, i32 0, i32 2 %t157 = load i32, ptr %t156 %t158 = call ptr @fn_itoa(i32 %t157) %t159 = call ptr @lp_str_concat(ptr %t152, ptr %t158) %t160 = call ptr @fn_emit_bind(ptr %t159) store ptr %t160, ptr %t161 %t162 = call ptr @fn_lbl(ptr @.str11240) store ptr %t162, ptr %t163 %t164 = call ptr @fn_lbl(ptr @.str11241) store ptr %t164, ptr %t165 call void @fn_emit(ptr @.str11242) %t166 = load ptr, ptr %t161 call void @fn_emit(ptr %t166) call void @fn_emit(ptr @.str11243) %t167 = load ptr, ptr %t163 call void @fn_emit(ptr %t167) call void @fn_emit(ptr @.str11244) %t168 = load ptr, ptr %t165 call void @fn_emit(ptr %t168) call void @fn_emit(ptr @.str11245) %t169 = load ptr, ptr %t163 call void @fn_emit(ptr %t169) call void @fn_emit(ptr @.str11246) %t170 = load ptr, ptr %t121 call void @fn_emit_call_one(ptr %t170) call void @fn_emit(ptr @.str11247) %t171 = load ptr, ptr %t165 call void @fn_emit(ptr %t171) call void @fn_emit(ptr @.str11248) %t172 = load ptr, ptr %t165 call void @fn_emit(ptr %t172) call void @fn_emit(ptr @.str11249) br label %ifend38 ifend38: %t173 = load i32, ptr %t1 %t174 = add i32 %t173, 1 store i32 %t174, ptr %t1 br label %wcond27 wend29: br label %ifend26 ifend26: %t175 = load ptr, ptr %t0 call void @fn_emit_engine_systems_for_phase(ptr %t175) %t176 = load ptr, ptr %t0 call void @fn_emit_dyn_systems_for_phase(ptr %t176) %t177 = load ptr, ptr %t0 %t178 = call i32 @lp_str_eq(ptr %t177, ptr @.str11250) %t179 = icmp ne i32 %t178, 0 br i1 %t179, label %then39, label %ifend41 then39: call void @fn_emit_scene_menu_render() br label %ifend41 ifend41: br label %ret ret: ret void } define void @fn_emit_scene_menu_render() { entry: %t0 = alloca i32 %t1 = alloca i32 %t31 = alloca ptr %t49 = alloca ptr %t65 = alloca ptr %t67 = alloca ptr %t69 = alloca ptr store i32 0, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_scenes %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_scenes %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str11251, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 3 %t20 = load ptr, ptr %t19 %t21 = icmp ne ptr %t20, null %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: store i32 1, ptr %t0 br label %ifend7 ifend7: %t24 = load i32, ptr %t1 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t1 br label %wcond0 wend2: %t26 = load i32, ptr %t0 %t27 = icmp eq i32 %t26, 0 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then8, label %ifend10 then8: br label %ret ifend10: %t30 = call ptr @fn_emit_bind(ptr @.str11252) store ptr %t30, ptr %t31 store i32 0, ptr %t1 br label %wcond11 wcond11: %t32 = load i32, ptr %t1 %t33 = load ptr, ptr @g_g_scenes %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1 %t35 = load i32, ptr %t34 %t36 = icmp slt i32 %t32, %t35 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %wbody12, label %wend13 wbody12: %t39 = load ptr, ptr @g_g_scenes %t40 = load i32, ptr %t1 %t41 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 1 %t44 = load i32, ptr %t43 %t45 = icmp ult i32 %t40, %t44 br i1 %t45, label %ixok14, label %ixbad15 ixbad15: %t46 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t46, ptr @.fmt_bounds, ptr @.str11253, i32 %t40, i32 %t44) call void @exit(i32 1) unreachable ixok14: %t47 = getelementptr inbounds ptr, ptr %t42, i32 %t40 %t48 = load ptr, ptr %t47 store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 3 %t52 = load ptr, ptr %t51 %t53 = icmp ne ptr %t52, null %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then16, label %ifend18 then16: %t56 = load ptr, ptr %t31 %t57 = call ptr @lp_str_concat(ptr @.str11254, ptr %t56) %t58 = call ptr @lp_str_concat(ptr %t57, ptr @.str11255) %t59 = load ptr, ptr %t49 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 2 %t61 = load i32, ptr %t60 %t62 = call ptr @fn_itoa(i32 %t61) %t63 = call ptr @lp_str_concat(ptr %t58, ptr %t62) %t64 = call ptr @fn_emit_bind(ptr %t63) store ptr %t64, ptr %t65 %t66 = call ptr @fn_lbl(ptr @.str11256) store ptr %t66, ptr %t67 %t68 = call ptr @fn_lbl(ptr @.str11257) store ptr %t68, ptr %t69 call void @fn_emit(ptr @.str11258) %t70 = load ptr, ptr %t65 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str11259) %t71 = load ptr, ptr %t67 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str11260) %t72 = load ptr, ptr %t69 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str11261) %t73 = load ptr, ptr %t67 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str11262) call void @fn_emit(ptr @.str11263) %t74 = load ptr, ptr %t69 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str11264) %t75 = load ptr, ptr %t69 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str11265) br label %ifend18 ifend18: %t76 = load i32, ptr %t1 %t77 = add i32 %t76, 1 store i32 %t77, ptr %t1 br label %wcond11 wend13: br label %ret ret: ret void } define void @fn_emit_scene_fn(ptr %arg_name, ptr %arg_kind, ptr %arg_body, ptr %arg_menu) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t3 = alloca ptr %t5 = alloca ptr %t8 = alloca ptr %t10 = alloca i32 %t30 = alloca i32 %t52 = alloca ptr %t53 = alloca i32 store ptr %arg_name, ptr %t0 store ptr %arg_kind, ptr %t1 store ptr %arg_body, ptr %t2 store ptr %arg_menu, ptr %t3 store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself store ptr @.str11266, ptr @g_ret_ty %t4 = call ptr @fn_buf_new() store ptr %t4, ptr %t5 %t6 = call ptr @fn_buf_new() store ptr %t6, ptr @g_falloc %t7 = load ptr, ptr @g_code store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t5 store ptr %t9, ptr @g_code %t11 = load ptr, ptr %t3 %t12 = icmp ne ptr %t11, null %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t10 br i1 %t14, label %sc0, label %scend1 sc0: %t16 = load ptr, ptr %t1 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str11267) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t10 br label %scend1 scend1: %t20 = load i32, ptr %t10 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then2, label %ifend4 then2: %t22 = call ptr @fn_find_fn(ptr @.str11268) %t23 = icmp ne ptr %t22, null %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: call void @fn_emit(ptr @.str11269) br label %ifend7 ifend7: call void @fn_emit(ptr @.str11270) %t26 = load ptr, ptr %t3 %t27 = call ptr @lp_str_concat(ptr @.str11271, ptr %t26) %t28 = call i32 @fn_ui_index_of(ptr %t27) %t29 = call ptr @fn_itoa(i32 %t28) call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str11272) br label %ifend4 ifend4: %t31 = load ptr, ptr %t3 %t32 = icmp ne ptr %t31, null %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t30 br i1 %t34, label %sc8, label %scend9 sc8: %t36 = load ptr, ptr %t1 %t37 = call i32 @lp_str_eq(ptr %t36, ptr @.str11273) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t30 br label %scend9 scend9: %t40 = load i32, ptr %t30 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then10, label %ifend12 then10: call void @fn_emit(ptr @.str11274) br label %ifend12 ifend12: %t42 = load ptr, ptr %t2 %t43 = icmp ne ptr %t42, null %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then13, label %ifend15 then13: %t46 = load ptr, ptr %t2 call void @fn_emit_block(ptr %t46) br label %ifend15 ifend15: %t47 = load ptr, ptr %t0 %t48 = call ptr @lp_str_concat(ptr @.str11275, ptr %t47) %t49 = call ptr @lp_str_concat(ptr %t48, ptr @.str11276) %t50 = load ptr, ptr %t1 %t51 = call ptr @lp_str_concat(ptr %t49, ptr %t50) store ptr %t51, ptr %t52 %t54 = load i32, ptr @g_g_term %t55 = icmp eq i32 %t54, 0 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t53 br i1 %t57, label %sc16, label %scend17 sc16: %t59 = load ptr, ptr %t52 %t60 = call ptr @fn_find_event(ptr %t59) %t61 = icmp ne ptr %t60, null %t62 = zext i1 %t61 to i32 %t63 = icmp ne i32 %t62, 0 %t64 = zext i1 %t63 to i32 store i32 %t64, ptr %t53 br label %scend17 scend17: %t65 = load i32, ptr %t53 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then18, label %ifend20 then18: call void @fn_emit(ptr @.str11277) %t67 = load ptr, ptr %t52 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str11278) br label %ifend20 ifend20: %t68 = load i32, ptr @g_g_term %t69 = icmp eq i32 %t68, 0 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then21, label %ifend23 then21: call void @fn_emit(ptr @.str11279) br label %ifend23 ifend23: call void @fn_emit(ptr @.str11280) %t72 = load ptr, ptr %t8 store ptr %t72, ptr @g_code call void @fn_emit(ptr @.str11281) %t73 = load ptr, ptr %t1 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str11282) %t74 = load ptr, ptr %t0 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str11283) %t75 = load ptr, ptr @g_falloc %t76 = call ptr @fn_buf_str(ptr %t75) call void @fn_emit(ptr %t76) %t77 = load ptr, ptr %t5 %t78 = call ptr @fn_buf_str(ptr %t77) call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str11284) br label %ret ret: ret void } define void @fn_emit_scene_hooks() { entry: %t0 = alloca i32 %t18 = alloca ptr store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_scenes %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_scenes %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str11285, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 store ptr %t19, ptr @g_g_cur_scene %t20 = load ptr, ptr %t18 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 %t23 = load ptr, ptr %t18 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 4 %t25 = load ptr, ptr %t24 %t26 = load ptr, ptr %t18 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 3 %t28 = load ptr, ptr %t27 call void @fn_emit_scene_fn(ptr %t22, ptr @.str11286, ptr %t25, ptr %t28) %t29 = load ptr, ptr %t18 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr %t18 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 5 %t34 = load ptr, ptr %t33 %t35 = load ptr, ptr %t18 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 3 %t37 = load ptr, ptr %t36 call void @fn_emit_scene_fn(ptr %t31, ptr @.str11287, ptr %t34, ptr %t37) %t38 = load i32, ptr %t0 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t0 br label %wcond0 wend2: store ptr null, ptr @g_g_cur_scene %t40 = load ptr, ptr @g_g_scenes %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp sgt i32 %t42, 0 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then5, label %ifend7 then5: call void @fn_emit_scene_leave_fn() br label %ifend7 ifend7: br label %ret ret: ret void } define void @fn_emit_scene_leave_fn() { entry: %t0 = alloca i32 %t18 = alloca ptr %t21 = alloca ptr call void @fn_emit(ptr @.str11288) call void @fn_emit(ptr @.str11289) store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_scenes %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_scenes %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str11290, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load i32, ptr %t0 %t20 = call ptr @fn_itoa(i32 %t19) store ptr %t20, ptr %t21 call void @fn_emit(ptr @.str11291) %t22 = load ptr, ptr %t21 call void @fn_emit(ptr %t22) call void @fn_emit(ptr @.str11292) %t23 = load ptr, ptr %t18 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 2 %t25 = load i32, ptr %t24 %t26 = call ptr @fn_itoa(i32 %t25) call void @fn_emit(ptr %t26) call void @fn_emit(ptr @.str11293) call void @fn_emit(ptr @.str11294) %t27 = load ptr, ptr %t21 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str11295) %t28 = load ptr, ptr %t21 call void @fn_emit(ptr %t28) call void @fn_emit(ptr @.str11296) %t29 = load ptr, ptr %t21 call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str11297) call void @fn_emit(ptr @.str11298) %t30 = load ptr, ptr %t21 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str11299) %t31 = load ptr, ptr %t18 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str11300) call void @fn_emit(ptr @.str11301) %t34 = load ptr, ptr %t21 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str11302) %t35 = load i32, ptr %t0 %t36 = add i32 %t35, 1 store i32 %t36, ptr %t0 br label %wcond0 wend2: call void @fn_emit(ptr @.str11303) br label %ret ret: ret void } define void @fn_emit_despawn_hooks() { entry: %t0 = alloca i32 %t18 = alloca ptr %t23 = alloca ptr %t25 = alloca ptr %t28 = alloca ptr %t37 = alloca ptr store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_ondespawn %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_ondespawn %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str11304, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 1 %t21 = load ptr, ptr %t20 %t22 = call ptr @fn_find_arch(ptr %t21) store ptr %t22, ptr %t23 store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself store ptr @.str11305, ptr @g_ret_ty %t24 = call ptr @fn_buf_new() store ptr %t24, ptr %t25 %t26 = call ptr @fn_buf_new() store ptr %t26, ptr @g_falloc %t27 = load ptr, ptr @g_code store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t25 store ptr %t29, ptr @g_code %t30 = load ptr, ptr %t18 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 3 %t32 = load ptr, ptr %t31 %t33 = icmp ne ptr %t32, null %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then5, label %ifend7 then5: %t36 = call ptr @fn_emit_alloca(ptr @.str11306) store ptr %t36, ptr %t37 call void @fn_emit(ptr @.str11307) %t38 = load ptr, ptr %t37 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str11308) %t39 = load ptr, ptr %t18 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 3 %t41 = load ptr, ptr %t40 %t42 = load ptr, ptr %t37 call void @fn_loc_push(ptr %t41, ptr %t42, ptr @.str11309) br label %ifend7 ifend7: %t43 = load ptr, ptr %t23 call void @fn_emit_bind_props(ptr %t43, ptr @.str11310) %t44 = load ptr, ptr %t18 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 4 %t46 = load ptr, ptr %t45 call void @fn_emit_block(ptr %t46) %t47 = load i32, ptr @g_g_term %t48 = icmp eq i32 %t47, 0 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then8, label %ifend10 then8: call void @fn_emit(ptr @.str11311) br label %ifend10 ifend10: call void @fn_emit(ptr @.str11312) %t51 = load ptr, ptr %t28 store ptr %t51, ptr @g_code call void @fn_emit(ptr @.str11313) %t52 = load ptr, ptr %t18 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 1 %t54 = load ptr, ptr %t53 call void @fn_emit(ptr %t54) call void @fn_emit(ptr @.str11314) %t55 = load ptr, ptr @g_falloc %t56 = call ptr @fn_buf_str(ptr %t55) call void @fn_emit(ptr %t56) %t57 = load ptr, ptr %t25 %t58 = call ptr @fn_buf_str(ptr %t57) call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str11315) %t59 = load i32, ptr %t0 %t60 = add i32 %t59, 1 store i32 %t60, ptr %t0 br label %wcond0 wend2: call void @fn_emit_despawn_all_fn() br label %ret ret: ret void } define void @fn_emit_world_despawn_fn() { entry: %t7 = alloca ptr %t9 = alloca i32 %t29 = alloca ptr %t32 = alloca ptr %t45 = alloca ptr call void @fn_emit(ptr @.str11316) %t0 = load ptr, ptr @g_g_ondespawn %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t2 = load i32, ptr %t1 %t3 = icmp sgt i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = call ptr @fn_itoa(i32 1024) store ptr %t6, ptr %t7 call void @fn_emit(ptr @.str11317) %t8 = load ptr, ptr %t7 call void @fn_emit(ptr %t8) call void @fn_emit(ptr @.str11318) call void @fn_emit(ptr @.str11319) store i32 0, ptr %t9 br label %wcond3 wcond3: %t10 = load i32, ptr %t9 %t11 = load ptr, ptr @g_g_ondespawn %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t10, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody4, label %wend5 wbody4: %t17 = load ptr, ptr @g_g_ondespawn %t18 = load i32, ptr %t9 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok6, label %ixbad7 ixbad7: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str11320, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok6: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 store ptr %t28, ptr %t29 %t30 = load i32, ptr %t9 %t31 = call ptr @fn_itoa(i32 %t30) store ptr %t31, ptr %t32 call void @fn_emit(ptr @.str11321) %t33 = load ptr, ptr %t32 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str11322) %t34 = load ptr, ptr %t29 %t35 = call i32 @fn_find_arch_id(ptr %t34) %t36 = call ptr @fn_itoa(i32 %t35) call void @fn_emit(ptr %t36) call void @fn_emit(ptr @.str11323) call void @fn_emit(ptr @.str11324) %t37 = load ptr, ptr %t32 call void @fn_emit(ptr %t37) call void @fn_emit(ptr @.str11325) %t38 = load ptr, ptr %t32 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str11326) %t39 = load ptr, ptr %t32 call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str11327) call void @fn_emit(ptr @.str11328) %t40 = load ptr, ptr %t32 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str11329) %t41 = load ptr, ptr %t29 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str11330) %t42 = load ptr, ptr %t29 %t43 = call ptr @lp_str_concat(ptr @.str11331, ptr %t42) %t44 = call ptr @lp_str_concat(ptr %t43, ptr @.str11332) store ptr %t44, ptr %t45 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_find_event(ptr %t46) %t48 = icmp ne ptr %t47, null %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then8, label %ifend10 then8: call void @fn_emit(ptr @.str11333) %t51 = load ptr, ptr %t45 call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str11334) br label %ifend10 ifend10: call void @fn_emit(ptr @.str11335) %t52 = load ptr, ptr %t32 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str11336) call void @fn_emit(ptr @.str11337) %t53 = load ptr, ptr %t32 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str11338) %t54 = load i32, ptr %t9 %t55 = add i32 %t54, 1 store i32 %t55, ptr %t9 br label %wcond3 wend5: br label %ifend2 ifend2: %t56 = load ptr, ptr @g_g_events %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t58 = load i32, ptr %t57 %t59 = icmp sgt i32 %t58, 0 %t60 = zext i1 %t59 to i32 %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %then11, label %ifend13 then11: call void @fn_emit(ptr @.str11339) br label %ifend13 ifend13: call void @fn_emit(ptr @.str11340) call void @fn_emit(ptr @.str11341) br label %ret ret: ret void } define void @fn_emit_despawn_all_fn() { entry: %t7 = alloca ptr %t10 = alloca i32 %t30 = alloca ptr %t33 = alloca ptr %t46 = alloca ptr %t0 = load ptr, ptr @g_g_ondespawn %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1 %t2 = load i32, ptr %t1 %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: br label %ret ifend2: %t6 = call ptr @fn_itoa(i32 1024) store ptr %t6, ptr %t7 call void @fn_emit(ptr @.str11342) call void @fn_emit(ptr @.str11343) call void @fn_emit(ptr @.str11344) call void @fn_emit(ptr @.str11345) call void @fn_emit(ptr @.str11346) %t8 = load ptr, ptr %t7 call void @fn_emit(ptr %t8) call void @fn_emit(ptr @.str11347) call void @fn_emit(ptr @.str11348) call void @fn_emit(ptr @.str11349) call void @fn_emit(ptr @.str11350) %t9 = load ptr, ptr %t7 call void @fn_emit(ptr %t9) call void @fn_emit(ptr @.str11351) call void @fn_emit(ptr @.str11352) store i32 0, ptr %t10 br label %wcond3 wcond3: %t11 = load i32, ptr %t10 %t12 = load ptr, ptr @g_g_ondespawn %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t11, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody4, label %wend5 wbody4: %t18 = load ptr, ptr @g_g_ondespawn %t19 = load i32, ptr %t10 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok6, label %ixbad7 ixbad7: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str11353, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok6: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 store ptr %t29, ptr %t30 %t31 = load i32, ptr %t10 %t32 = call ptr @fn_itoa(i32 %t31) store ptr %t32, ptr %t33 call void @fn_emit(ptr @.str11354) %t34 = load ptr, ptr %t33 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str11355) %t35 = load ptr, ptr %t30 %t36 = call i32 @fn_find_arch_id(ptr %t35) %t37 = call ptr @fn_itoa(i32 %t36) call void @fn_emit(ptr %t37) call void @fn_emit(ptr @.str11356) call void @fn_emit(ptr @.str11357) %t38 = load ptr, ptr %t33 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str11358) %t39 = load ptr, ptr %t33 call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str11359) %t40 = load ptr, ptr %t33 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str11360) call void @fn_emit(ptr @.str11361) %t41 = load ptr, ptr %t33 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str11362) %t42 = load ptr, ptr %t30 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str11363) %t43 = load ptr, ptr %t30 %t44 = call ptr @lp_str_concat(ptr @.str11364, ptr %t43) %t45 = call ptr @lp_str_concat(ptr %t44, ptr @.str11365) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t46 %t48 = call ptr @fn_find_event(ptr %t47) %t49 = icmp ne ptr %t48, null %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then8, label %ifend10 then8: call void @fn_emit(ptr @.str11366) %t52 = load ptr, ptr %t46 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str11367) br label %ifend10 ifend10: call void @fn_emit(ptr @.str11368) %t53 = load ptr, ptr %t33 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str11369) call void @fn_emit(ptr @.str11370) %t54 = load ptr, ptr %t33 call void @fn_emit(ptr %t54) call void @fn_emit(ptr @.str11371) %t55 = load i32, ptr %t10 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t10 br label %wcond3 wend5: call void @fn_emit(ptr @.str11372) call void @fn_emit(ptr @.str11373) call void @fn_emit(ptr @.str11374) br label %ret ret: ret void } define void @fn_emit_event_fns() { entry: %t0 = alloca i32 %t18 = alloca ptr %t22 = alloca ptr %t24 = alloca ptr %t26 = alloca i32 %t97 = alloca ptr %t100 = alloca ptr %t112 = alloca ptr %t113 = alloca i32 %t135 = alloca ptr %t140 = alloca ptr %t142 = alloca ptr %t154 = alloca ptr %t168 = alloca ptr %t188 = alloca i32 %t189 = alloca i32 %t214 = alloca ptr %t258 = alloca ptr %t261 = alloca ptr %t263 = alloca ptr %t265 = alloca ptr %t271 = alloca ptr %t275 = alloca ptr %t282 = alloca ptr %t288 = alloca ptr %t296 = alloca ptr %t301 = alloca ptr %t303 = alloca ptr %t305 = alloca ptr %t318 = alloca ptr %t332 = alloca ptr %t335 = alloca ptr %t344 = alloca i32 %t384 = alloca ptr %t385 = alloca i32 %t405 = alloca ptr %t408 = alloca ptr call void @fn_emith(ptr @.str11375) store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_events %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_events %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str11376, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 1 %t21 = load ptr, ptr %t20 store ptr %t21, ptr %t22 %t23 = call ptr @fn_itoa(i32 16) store ptr %t23, ptr %t24 call void @fn_emith(ptr @.str11377) %t25 = load ptr, ptr %t22 call void @fn_emith(ptr %t25) call void @fn_emith(ptr @.str11378) store i32 0, ptr %t26 br label %wcond5 wcond5: %t27 = load i32, ptr %t26 %t28 = load ptr, ptr %t18 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp slt i32 %t27, %t32 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %wbody6, label %wend7 wbody6: %t36 = load i32, ptr %t26 %t37 = icmp sgt i32 %t36, 0 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then8, label %ifend10 then8: call void @fn_emith(ptr @.str11379) br label %ifend10 ifend10: %t40 = load ptr, ptr %t18 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 7 %t42 = load ptr, ptr %t41 %t43 = load i32, ptr %t26 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 %t43, %t47 br i1 %t48, label %ixok11, label %ixbad12 ixbad12: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str11380, i32 %t43, i32 %t47) call void @exit(i32 1) unreachable ixok11: %t50 = getelementptr inbounds ptr, ptr %t45, i32 %t43 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_llty(ptr %t53) call void @fn_emith(ptr %t54) %t55 = load i32, ptr %t26 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t26 br label %wcond5 wend7: %t57 = load ptr, ptr %t18 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 2 %t59 = load i32, ptr %t58 %t60 = icmp eq i32 %t59, 1 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then13, label %ifend15 then13: %t63 = load ptr, ptr %t18 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 7 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %LSlice, ptr %t65, i32 0, i32 1 %t67 = load i32, ptr %t66 %t68 = icmp sgt i32 %t67, 0 %t69 = zext i1 %t68 to i32 %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then16, label %ifend18 then16: call void @fn_emith(ptr @.str11381) br label %ifend18 ifend18: call void @fn_emith(ptr @.str11382) br label %ifend15 ifend15: call void @fn_emith(ptr @.str11383) call void @fn_emith(ptr @.str11384) %t71 = load ptr, ptr %t22 call void @fn_emith(ptr %t71) call void @fn_emith(ptr @.str11385) %t72 = load ptr, ptr %t24 call void @fn_emith(ptr %t72) call void @fn_emith(ptr @.str11386) call void @fn_emith(ptr @.str11387) %t73 = load ptr, ptr %t22 call void @fn_emith(ptr %t73) call void @fn_emith(ptr @.str11388) call void @fn_emith(ptr @.str11389) %t74 = load ptr, ptr %t22 call void @fn_emith(ptr %t74) call void @fn_emith(ptr @.str11390) %t75 = load ptr, ptr %t24 call void @fn_emith(ptr %t75) call void @fn_emith(ptr @.str11391) call void @fn_emit(ptr @.str11392) %t76 = load ptr, ptr %t22 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str11393) call void @fn_emit(ptr @.str11394) %t77 = load ptr, ptr %t22 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str11395) call void @fn_emit(ptr @.str11396) %t78 = load ptr, ptr %t24 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str11397) call void @fn_emit(ptr @.str11398) call void @fn_emit(ptr @.str11399) %t79 = load ptr, ptr %t24 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str11400) %t80 = load ptr, ptr %t22 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str11401) call void @fn_emit(ptr @.str11402) call void @fn_emit(ptr @.str11403) %t81 = load ptr, ptr %t24 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str11404) %t82 = load ptr, ptr %t22 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str11405) call void @fn_emit(ptr @.str11406) call void @fn_emit(ptr @.str11407) %t83 = load ptr, ptr %t22 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str11408) call void @fn_emit(ptr @.str11409) call void @fn_emit(ptr @.str11410) %t84 = load ptr, ptr %t22 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str11411) call void @fn_emit(ptr @.str11412) %t85 = load ptr, ptr %t22 call void @fn_emit(ptr %t85) call void @fn_emit(ptr @.str11413) call void @fn_emit(ptr @.str11414) %t86 = load ptr, ptr %t24 call void @fn_emit(ptr %t86) call void @fn_emit(ptr @.str11415) call void @fn_emit(ptr @.str11416) call void @fn_emit(ptr @.str11417) %t87 = load ptr, ptr %t24 call void @fn_emit(ptr %t87) call void @fn_emit(ptr @.str11418) %t88 = load ptr, ptr %t22 call void @fn_emit(ptr %t88) call void @fn_emit(ptr @.str11419) call void @fn_emit(ptr @.str11420) call void @fn_emit(ptr @.str11421) %t89 = load ptr, ptr %t24 call void @fn_emit(ptr %t89) call void @fn_emit(ptr @.str11422) %t90 = load ptr, ptr %t22 call void @fn_emit(ptr %t90) call void @fn_emit(ptr @.str11423) call void @fn_emit(ptr @.str11424) call void @fn_emit(ptr @.str11425) %t91 = load ptr, ptr %t22 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str11426) call void @fn_emit(ptr @.str11427) call void @fn_emit(ptr @.str11428) %t92 = load ptr, ptr %t22 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str11429) call void @fn_emit(ptr @.str11430) %t93 = load ptr, ptr %t22 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str11431) call void @fn_emit(ptr @.str11432) call void @fn_emit(ptr @.str11433) call void @fn_emit(ptr @.str11434) %t94 = load ptr, ptr %t24 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str11435) %t95 = load ptr, ptr %t22 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str11436) call void @fn_emit(ptr @.str11437) call void @fn_emit(ptr @.str11438) store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself store ptr null, ptr @g_g_cur_scene store ptr @.str11439, ptr @g_ret_ty %t96 = call ptr @fn_buf_new() store ptr %t96, ptr %t97 %t98 = call ptr @fn_buf_new() store ptr %t98, ptr @g_falloc %t99 = load ptr, ptr @g_code store ptr %t99, ptr %t100 %t101 = load ptr, ptr %t97 store ptr %t101, ptr @g_code call void @fn_emit(ptr @.str11440) call void @fn_emit(ptr @.str11441) %t102 = call ptr @fn_itoa(i32 32) call void @fn_emit(ptr %t102) call void @fn_emit(ptr @.str11442) call void @fn_emit(ptr @.str11443) call void @fn_emit(ptr @.str11444) %t103 = load ptr, ptr %t18 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 2 %t105 = load i32, ptr %t104 %t106 = icmp eq i32 %t105, 1 %t107 = zext i1 %t106 to i32 %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then19, label %else20 then19: call void @fn_emit(ptr @.str11445) br label %ifend21 else20: call void @fn_emit(ptr @.str11446) br label %ifend21 ifend21: call void @fn_emit(ptr @.str11447) call void @fn_emit(ptr @.str11448) %t109 = load ptr, ptr %t22 %t110 = call ptr @lp_str_concat(ptr @.str11449, ptr %t109) %t111 = call ptr @fn_emit_alloca(ptr %t110) store ptr %t111, ptr %t112 store i32 0, ptr %t113 br label %wcond22 wcond22: %t114 = load i32, ptr %t113 %t115 = load ptr, ptr %t18 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 7 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %LSlice, ptr %t117, i32 0, i32 1 %t119 = load i32, ptr %t118 %t120 = icmp slt i32 %t114, %t119 %t121 = zext i1 %t120 to i32 %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %wbody23, label %wend24 wbody23: %t123 = load ptr, ptr %t18 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 7 %t125 = load ptr, ptr %t124 %t126 = load i32, ptr %t113 %t127 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 0 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 1 %t130 = load i32, ptr %t129 %t131 = icmp ult i32 %t126, %t130 br i1 %t131, label %ixok25, label %ixbad26 ixbad26: %t132 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t132, ptr @.fmt_bounds, ptr @.str11450, i32 %t126, i32 %t130) call void @exit(i32 1) unreachable ixok25: %t133 = getelementptr inbounds ptr, ptr %t128, i32 %t126 %t134 = load ptr, ptr %t133 store ptr %t134, ptr %t135 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 3 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_llty(ptr %t138) store ptr %t139, ptr %t140 %t141 = call ptr @fn_nreg() store ptr %t141, ptr %t142 call void @fn_emit(ptr @.str11451) %t143 = load ptr, ptr %t142 call void @fn_emit(ptr %t143) call void @fn_emit(ptr @.str11452) %t144 = load ptr, ptr %t22 call void @fn_emit(ptr %t144) call void @fn_emit(ptr @.str11453) %t145 = load ptr, ptr %t112 call void @fn_emit(ptr %t145) call void @fn_emit(ptr @.str11454) %t146 = load i32, ptr %t113 %t147 = call ptr @fn_itoa(i32 %t146) call void @fn_emit(ptr %t147) call void @fn_emit(ptr @.str11455) call void @fn_emit(ptr @.str11456) %t148 = load ptr, ptr %t140 call void @fn_emit(ptr %t148) call void @fn_emit(ptr @.str11457) %t149 = load i32, ptr %t113 %t150 = call ptr @fn_itoa(i32 %t149) call void @fn_emit(ptr %t150) call void @fn_emit(ptr @.str11458) %t151 = load ptr, ptr %t142 call void @fn_emit(ptr %t151) call void @fn_emit(ptr @.str11459) %t152 = load ptr, ptr %t140 %t153 = call ptr @fn_emit_alloca(ptr %t152) store ptr %t153, ptr %t154 call void @fn_emit(ptr @.str11460) %t155 = load ptr, ptr %t140 call void @fn_emit(ptr %t155) call void @fn_emit(ptr @.str11461) %t156 = load i32, ptr %t113 %t157 = call ptr @fn_itoa(i32 %t156) call void @fn_emit(ptr %t157) call void @fn_emit(ptr @.str11462) %t158 = load ptr, ptr %t154 call void @fn_emit(ptr %t158) call void @fn_emit(ptr @.str11463) %t159 = load ptr, ptr %t135 %t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 1 %t161 = load ptr, ptr %t160 %t162 = load ptr, ptr %t154 %t163 = load ptr, ptr %t135 %t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 3 %t165 = load ptr, ptr %t164 call void @fn_loc_push(ptr %t161, ptr %t162, ptr %t165) %t166 = load i32, ptr %t113 %t167 = add i32 %t166, 1 store i32 %t167, ptr %t113 br label %wcond22 wend24: store ptr null, ptr %t168 %t169 = load ptr, ptr %t18 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 2 %t171 = load i32, ptr %t170 %t172 = icmp eq i32 %t171, 1 %t173 = zext i1 %t172 to i32 %t174 = icmp ne i32 %t173, 0 br i1 %t174, label %then27, label %ifend29 then27: %t175 = call ptr @fn_nreg() store ptr %t175, ptr %t168 call void @fn_emit(ptr @.str11464) %t176 = load ptr, ptr %t168 call void @fn_emit(ptr %t176) call void @fn_emit(ptr @.str11465) %t177 = load ptr, ptr %t22 call void @fn_emit(ptr %t177) call void @fn_emit(ptr @.str11466) %t178 = load ptr, ptr %t112 call void @fn_emit(ptr %t178) call void @fn_emit(ptr @.str11467) %t179 = load ptr, ptr %t18 %t180 = getelementptr inbounds %Cmp_Node, ptr %t179, i32 0, i32 7 %t181 = load ptr, ptr %t180 %t182 = getelementptr inbounds %LSlice, ptr %t181, i32 0, i32 1 %t183 = load i32, ptr %t182 %t184 = call ptr @fn_itoa(i32 %t183) call void @fn_emit(ptr %t184) call void @fn_emit(ptr @.str11468) call void @fn_emit(ptr @.str11469) %t185 = load ptr, ptr %t168 call void @fn_emit(ptr %t185) call void @fn_emit(ptr @.str11470) %t186 = load ptr, ptr %t168 store ptr %t186, ptr @g_g_cancel_addr br label %ifend29 ifend29: %t187 = load i32, ptr @g_nloc store i32 %t187, ptr %t188 store i32 0, ptr %t189 br label %wcond30 wcond30: %t190 = load i32, ptr %t189 %t191 = load ptr, ptr @g_g_onlisten %t192 = getelementptr inbounds %LSlice, ptr %t191, i32 0, i32 1 %t193 = load i32, ptr %t192 %t194 = icmp slt i32 %t190, %t193 %t195 = zext i1 %t194 to i32 %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %wbody31, label %wend32 wbody31: %t197 = load ptr, ptr @g_g_onlisten %t198 = load i32, ptr %t189 %t199 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0 %t200 = load ptr, ptr %t199 %t201 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 1 %t202 = load i32, ptr %t201 %t203 = icmp ult i32 %t198, %t202 br i1 %t203, label %ixok33, label %ixbad34 ixbad34: %t204 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t204, ptr @.fmt_bounds, ptr @.str11471, i32 %t198, i32 %t202) call void @exit(i32 1) unreachable ixok33: %t205 = getelementptr inbounds ptr, ptr %t200, i32 %t198 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds %Cmp_Node, ptr %t206, i32 0, i32 1 %t208 = load ptr, ptr %t207 %t209 = load ptr, ptr %t22 %t210 = call i32 @lp_str_eq(ptr %t208, ptr %t209) %t211 = icmp ne i32 %t210, 0 br i1 %t211, label %then35, label %ifend37 then35: %t212 = load i32, ptr %t188 store i32 %t212, ptr @g_nloc store i32 0, ptr @g_g_term %t213 = call ptr @fn_lbl(ptr @.str11472) store ptr %t213, ptr %t214 %t215 = load ptr, ptr %t214 store ptr %t215, ptr @g_g_ret_label %t216 = load ptr, ptr @g_g_onlisten %t217 = load i32, ptr %t189 %t218 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 0 %t219 = load ptr, ptr %t218 %t220 = getelementptr inbounds %LSlice, ptr %t216, i32 0, i32 1 %t221 = load i32, ptr %t220 %t222 = icmp ult i32 %t217, %t221 br i1 %t222, label %ixok38, label %ixbad39 ixbad39: %t223 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t223, ptr @.fmt_bounds, ptr @.str11473, i32 %t217, i32 %t221) call void @exit(i32 1) unreachable ixok38: %t224 = getelementptr inbounds ptr, ptr %t219, i32 %t217 %t225 = load ptr, ptr %t224 %t226 = getelementptr inbounds %Cmp_Node, ptr %t225, i32 0, i32 9 %t227 = load ptr, ptr %t226 store ptr %t227, ptr @g_g_err_file %t228 = load ptr, ptr %t18 %t229 = load ptr, ptr %t22 call void @fn_vis_check(ptr %t228, ptr %t229) %t230 = load ptr, ptr @g_g_onlisten %t231 = load i32, ptr %t189 %t232 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 0 %t233 = load ptr, ptr %t232 %t234 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 1 %t235 = load i32, ptr %t234 %t236 = icmp ult i32 %t231, %t235 br i1 %t236, label %ixok40, label %ixbad41 ixbad41: %t237 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t237, ptr @.fmt_bounds, ptr @.str11474, i32 %t231, i32 %t235) call void @exit(i32 1) unreachable ixok40: %t238 = getelementptr inbounds ptr, ptr %t233, i32 %t231 %t239 = load ptr, ptr %t238 %t240 = getelementptr inbounds %Cmp_Node, ptr %t239, i32 0, i32 4 %t241 = load ptr, ptr %t240 call void @fn_emit_block(ptr %t241) store ptr @.str11475, ptr @g_g_ret_label %t242 = load i32, ptr @g_g_term %t243 = icmp eq i32 %t242, 0 %t244 = zext i1 %t243 to i32 %t245 = icmp ne i32 %t244, 0 br i1 %t245, label %then42, label %ifend44 then42: %t246 = load ptr, ptr %t214 %t247 = call ptr @lp_str_concat(ptr @.str11476, ptr %t246) %t248 = call ptr @lp_str_concat(ptr %t247, ptr @.str11477) call void @fn_emit(ptr %t248) br label %ifend44 ifend44: %t249 = load ptr, ptr %t214 %t250 = call ptr @lp_str_concat(ptr %t249, ptr @.str11478) call void @fn_emit(ptr %t250) store i32 0, ptr @g_g_term br label %ifend37 ifend37: %t251 = load i32, ptr %t189 %t252 = add i32 %t251, 1 store i32 %t252, ptr %t189 br label %wcond30 wend32: %t253 = load i32, ptr @g_g_term %t254 = icmp eq i32 %t253, 0 %t255 = zext i1 %t254 to i32 %t256 = icmp ne i32 %t255, 0 br i1 %t256, label %then45, label %ifend47 then45: %t257 = call ptr @fn_emit_alloca(ptr @.str11479) store ptr %t257, ptr %t258 call void @fn_emit(ptr @.str11480) %t259 = load ptr, ptr %t258 call void @fn_emit(ptr %t259) call void @fn_emit(ptr @.str11481) %t260 = call ptr @fn_lbl(ptr @.str11482) store ptr %t260, ptr %t261 %t262 = call ptr @fn_lbl(ptr @.str11483) store ptr %t262, ptr %t263 %t264 = call ptr @fn_lbl(ptr @.str11484) store ptr %t264, ptr %t265 call void @fn_emit(ptr @.str11485) %t266 = load ptr, ptr %t261 call void @fn_emit(ptr %t266) call void @fn_emit(ptr @.str11486) %t267 = load ptr, ptr %t261 call void @fn_emit(ptr %t267) call void @fn_emit(ptr @.str11487) %t268 = load ptr, ptr %t258 %t269 = call ptr @lp_str_concat(ptr @.str11488, ptr %t268) %t270 = call ptr @fn_emit_bind(ptr %t269) store ptr %t270, ptr %t271 %t272 = load ptr, ptr %t22 %t273 = call ptr @lp_str_concat(ptr @.str11489, ptr %t272) %t274 = call ptr @fn_emit_bind(ptr %t273) store ptr %t274, ptr %t275 %t276 = load ptr, ptr %t271 %t277 = call ptr @lp_str_concat(ptr @.str11490, ptr %t276) %t278 = call ptr @lp_str_concat(ptr %t277, ptr @.str11491) %t279 = load ptr, ptr %t275 %t280 = call ptr @lp_str_concat(ptr %t278, ptr %t279) %t281 = call ptr @fn_emit_bind(ptr %t280) store ptr %t281, ptr %t282 call void @fn_emit(ptr @.str11492) %t283 = load ptr, ptr %t282 call void @fn_emit(ptr %t283) call void @fn_emit(ptr @.str11493) %t284 = load ptr, ptr %t263 call void @fn_emit(ptr %t284) call void @fn_emit(ptr @.str11494) %t285 = load ptr, ptr %t265 call void @fn_emit(ptr %t285) call void @fn_emit(ptr @.str11495) %t286 = load ptr, ptr %t263 call void @fn_emit(ptr %t286) call void @fn_emit(ptr @.str11496) %t287 = call ptr @fn_nreg() store ptr %t287, ptr %t288 call void @fn_emit(ptr @.str11497) %t289 = load ptr, ptr %t288 call void @fn_emit(ptr %t289) call void @fn_emit(ptr @.str11498) %t290 = load ptr, ptr %t24 call void @fn_emit(ptr %t290) call void @fn_emit(ptr @.str11499) %t291 = load ptr, ptr %t22 call void @fn_emit(ptr %t291) call void @fn_emit(ptr @.str11500) %t292 = load ptr, ptr %t271 call void @fn_emit(ptr %t292) call void @fn_emit(ptr @.str11501) %t293 = load ptr, ptr %t288 %t294 = call ptr @lp_str_concat(ptr @.str11502, ptr %t293) %t295 = call ptr @fn_emit_bind(ptr %t294) store ptr %t295, ptr %t296 %t297 = load ptr, ptr %t296 %t298 = call ptr @lp_str_concat(ptr @.str11503, ptr %t297) %t299 = call ptr @lp_str_concat(ptr %t298, ptr @.str11504) %t300 = call ptr @fn_emit_bind(ptr %t299) store ptr %t300, ptr %t301 %t302 = call ptr @fn_lbl(ptr @.str11505) store ptr %t302, ptr %t303 %t304 = call ptr @fn_lbl(ptr @.str11506) store ptr %t304, ptr %t305 call void @fn_emit(ptr @.str11507) %t306 = load ptr, ptr %t301 call void @fn_emit(ptr %t306) call void @fn_emit(ptr @.str11508) %t307 = load ptr, ptr %t305 call void @fn_emit(ptr %t307) call void @fn_emit(ptr @.str11509) %t308 = load ptr, ptr %t303 call void @fn_emit(ptr %t308) call void @fn_emit(ptr @.str11510) %t309 = load ptr, ptr %t303 call void @fn_emit(ptr %t309) call void @fn_emit(ptr @.str11511) call void @fn_emit(ptr @.str11512) %t310 = load ptr, ptr %t296 call void @fn_emit(ptr %t310) call void @fn_emit(ptr @.str11513) %t311 = load ptr, ptr %t112 call void @fn_emit(ptr %t311) call void @fn_emit(ptr @.str11514) call void @fn_emit(ptr @.str11515) %t312 = load ptr, ptr %t305 call void @fn_emit(ptr %t312) call void @fn_emit(ptr @.str11516) %t313 = load ptr, ptr %t305 call void @fn_emit(ptr %t313) call void @fn_emit(ptr @.str11517) %t314 = load ptr, ptr %t271 %t315 = call ptr @lp_str_concat(ptr @.str11518, ptr %t314) %t316 = call ptr @lp_str_concat(ptr %t315, ptr @.str11519) %t317 = call ptr @fn_emit_bind(ptr %t316) store ptr %t317, ptr %t318 call void @fn_emit(ptr @.str11520) %t319 = load ptr, ptr %t318 call void @fn_emit(ptr %t319) call void @fn_emit(ptr @.str11521) %t320 = load ptr, ptr %t258 call void @fn_emit(ptr %t320) call void @fn_emit(ptr @.str11522) call void @fn_emit(ptr @.str11523) %t321 = load ptr, ptr %t261 call void @fn_emit(ptr %t321) call void @fn_emit(ptr @.str11524) %t322 = load ptr, ptr %t265 call void @fn_emit(ptr %t322) call void @fn_emit(ptr @.str11525) call void @fn_emit(ptr @.str11526) br label %ifend47 ifend47: call void @fn_emit(ptr @.str11527) call void @fn_emit(ptr @.str11528) %t323 = load ptr, ptr %t18 %t324 = getelementptr inbounds %Cmp_Node, ptr %t323, i32 0, i32 2 %t325 = load i32, ptr %t324 %t326 = icmp eq i32 %t325, 1 %t327 = zext i1 %t326 to i32 %t328 = icmp ne i32 %t327, 0 br i1 %t328, label %then48, label %else49 then48: %t329 = load ptr, ptr %t168 %t330 = call ptr @lp_str_concat(ptr @.str11529, ptr %t329) %t331 = call ptr @fn_emit_bind(ptr %t330) store ptr %t331, ptr %t332 call void @fn_emit(ptr @.str11530) %t333 = load ptr, ptr %t332 call void @fn_emit(ptr %t333) call void @fn_emit(ptr @.str11531) br label %ifend50 else49: call void @fn_emit(ptr @.str11532) br label %ifend50 ifend50: store ptr null, ptr @g_g_cancel_addr %t334 = load ptr, ptr %t100 store ptr %t334, ptr @g_code store ptr @.str11533, ptr %t335 %t336 = load ptr, ptr %t18 %t337 = getelementptr inbounds %Cmp_Node, ptr %t336, i32 0, i32 2 %t338 = load i32, ptr %t337 %t339 = icmp eq i32 %t338, 1 %t340 = zext i1 %t339 to i32 %t341 = icmp ne i32 %t340, 0 br i1 %t341, label %then51, label %ifend53 then51: store ptr @.str11534, ptr %t335 br label %ifend53 ifend53: call void @fn_emit(ptr @.str11535) %t342 = load ptr, ptr %t335 call void @fn_emit(ptr %t342) call void @fn_emit(ptr @.str11536) %t343 = load ptr, ptr %t22 call void @fn_emit(ptr %t343) call void @fn_emit(ptr @.str11537) store i32 0, ptr %t344 br label %wcond54 wcond54: %t345 = load i32, ptr %t344 %t346 = load ptr, ptr %t18 %t347 = getelementptr inbounds %Cmp_Node, ptr %t346, i32 0, i32 7 %t348 = load ptr, ptr %t347 %t349 = getelementptr inbounds %LSlice, ptr %t348, i32 0, i32 1 %t350 = load i32, ptr %t349 %t351 = icmp slt i32 %t345, %t350 %t352 = zext i1 %t351 to i32 %t353 = icmp ne i32 %t352, 0 br i1 %t353, label %wbody55, label %wend56 wbody55: %t354 = load i32, ptr %t344 %t355 = icmp sgt i32 %t354, 0 %t356 = zext i1 %t355 to i32 %t357 = icmp ne i32 %t356, 0 br i1 %t357, label %then57, label %ifend59 then57: call void @fn_emit(ptr @.str11538) br label %ifend59 ifend59: %t358 = load ptr, ptr %t18 %t359 = getelementptr inbounds %Cmp_Node, ptr %t358, i32 0, i32 7 %t360 = load ptr, ptr %t359 %t361 = load i32, ptr %t344 %t362 = getelementptr inbounds %LSlice, ptr %t360, i32 0, i32 0 %t363 = load ptr, ptr %t362 %t364 = getelementptr inbounds %LSlice, ptr %t360, i32 0, i32 1 %t365 = load i32, ptr %t364 %t366 = icmp ult i32 %t361, %t365 br i1 %t366, label %ixok60, label %ixbad61 ixbad61: %t367 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t367, ptr @.fmt_bounds, ptr @.str11539, i32 %t361, i32 %t365) call void @exit(i32 1) unreachable ixok60: %t368 = getelementptr inbounds ptr, ptr %t363, i32 %t361 %t369 = load ptr, ptr %t368 %t370 = getelementptr inbounds %Cmp_Node, ptr %t369, i32 0, i32 3 %t371 = load ptr, ptr %t370 %t372 = call ptr @fn_llty(ptr %t371) call void @fn_emit(ptr %t372) call void @fn_emit(ptr @.str11540) %t373 = load i32, ptr %t344 %t374 = call ptr @fn_itoa(i32 %t373) call void @fn_emit(ptr %t374) %t375 = load i32, ptr %t344 %t376 = add i32 %t375, 1 store i32 %t376, ptr %t344 br label %wcond54 wend56: call void @fn_emit(ptr @.str11541) %t377 = load ptr, ptr @g_falloc %t378 = call ptr @fn_buf_str(ptr %t377) call void @fn_emit(ptr %t378) %t379 = load ptr, ptr %t97 %t380 = call ptr @fn_buf_str(ptr %t379) call void @fn_emit(ptr %t380) call void @fn_emit(ptr @.str11542) %t381 = load i32, ptr %t0 %t382 = add i32 %t381, 1 store i32 %t382, ptr %t0 br label %wcond0 wend2: %t383 = call ptr @fn_itoa(i32 16) store ptr %t383, ptr %t384 call void @fn_emit(ptr @.str11543) store i32 0, ptr %t385 br label %wcond62 wcond62: %t386 = load i32, ptr %t385 %t387 = load ptr, ptr @g_g_events %t388 = getelementptr inbounds %LSlice, ptr %t387, i32 0, i32 1 %t389 = load i32, ptr %t388 %t390 = icmp slt i32 %t386, %t389 %t391 = zext i1 %t390 to i32 %t392 = icmp ne i32 %t391, 0 br i1 %t392, label %wbody63, label %wend64 wbody63: %t393 = load ptr, ptr @g_g_events %t394 = load i32, ptr %t385 %t395 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 0 %t396 = load ptr, ptr %t395 %t397 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 1 %t398 = load i32, ptr %t397 %t399 = icmp ult i32 %t394, %t398 br i1 %t399, label %ixok65, label %ixbad66 ixbad66: %t400 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t400, ptr @.fmt_bounds, ptr @.str11544, i32 %t394, i32 %t398) call void @exit(i32 1) unreachable ixok65: %t401 = getelementptr inbounds ptr, ptr %t396, i32 %t394 %t402 = load ptr, ptr %t401 %t403 = getelementptr inbounds %Cmp_Node, ptr %t402, i32 0, i32 1 %t404 = load ptr, ptr %t403 store ptr %t404, ptr %t405 %t406 = load i32, ptr %t385 %t407 = call ptr @fn_itoa(i32 %t406) store ptr %t407, ptr %t408 call void @fn_emit(ptr @.str11545) %t409 = load ptr, ptr %t408 call void @fn_emit(ptr %t409) call void @fn_emit(ptr @.str11546) call void @fn_emit(ptr @.str11547) %t410 = load ptr, ptr %t408 call void @fn_emit(ptr %t410) call void @fn_emit(ptr @.str11548) call void @fn_emit(ptr @.str11549) %t411 = load ptr, ptr %t408 call void @fn_emit(ptr %t411) call void @fn_emit(ptr @.str11550) %t412 = load ptr, ptr %t405 call void @fn_emit(ptr %t412) call void @fn_emit(ptr @.str11551) call void @fn_emit(ptr @.str11552) %t413 = load ptr, ptr %t408 call void @fn_emit(ptr %t413) call void @fn_emit(ptr @.str11553) %t414 = load ptr, ptr %t408 call void @fn_emit(ptr %t414) call void @fn_emit(ptr @.str11554) %t415 = load ptr, ptr %t408 call void @fn_emit(ptr %t415) call void @fn_emit(ptr @.str11555) call void @fn_emit(ptr @.str11556) %t416 = load ptr, ptr %t408 call void @fn_emit(ptr %t416) call void @fn_emit(ptr @.str11557) %t417 = load ptr, ptr %t408 call void @fn_emit(ptr %t417) call void @fn_emit(ptr @.str11558) %t418 = load ptr, ptr %t408 call void @fn_emit(ptr %t418) call void @fn_emit(ptr @.str11559) call void @fn_emit(ptr @.str11560) %t419 = load ptr, ptr %t408 call void @fn_emit(ptr %t419) call void @fn_emit(ptr @.str11561) call void @fn_emit(ptr @.str11562) %t420 = load ptr, ptr %t408 call void @fn_emit(ptr %t420) call void @fn_emit(ptr @.str11563) %t421 = load ptr, ptr %t384 call void @fn_emit(ptr %t421) call void @fn_emit(ptr @.str11564) %t422 = load ptr, ptr %t405 call void @fn_emit(ptr %t422) call void @fn_emit(ptr @.str11565) %t423 = load ptr, ptr %t408 call void @fn_emit(ptr %t423) call void @fn_emit(ptr @.str11566) call void @fn_emit(ptr @.str11567) %t424 = load ptr, ptr %t408 call void @fn_emit(ptr %t424) call void @fn_emit(ptr @.str11568) %t425 = load ptr, ptr %t408 call void @fn_emit(ptr %t425) call void @fn_emit(ptr @.str11569) call void @fn_emit(ptr @.str11570) %t426 = load ptr, ptr %t408 call void @fn_emit(ptr %t426) call void @fn_emit(ptr @.str11571) %t427 = load ptr, ptr %t408 call void @fn_emit(ptr %t427) call void @fn_emit(ptr @.str11572) call void @fn_emit(ptr @.str11573) %t428 = load ptr, ptr %t408 call void @fn_emit(ptr %t428) call void @fn_emit(ptr @.str11574) %t429 = load ptr, ptr %t408 call void @fn_emit(ptr %t429) call void @fn_emit(ptr @.str11575) %t430 = load ptr, ptr %t408 call void @fn_emit(ptr %t430) call void @fn_emit(ptr @.str11576) call void @fn_emit(ptr @.str11577) %t431 = load ptr, ptr %t408 call void @fn_emit(ptr %t431) call void @fn_emit(ptr @.str11578) call void @fn_emit(ptr @.str11579) %t432 = load ptr, ptr %t408 call void @fn_emit(ptr %t432) call void @fn_emit(ptr @.str11580) %t433 = load ptr, ptr %t384 call void @fn_emit(ptr %t433) call void @fn_emit(ptr @.str11581) %t434 = load ptr, ptr %t405 call void @fn_emit(ptr %t434) call void @fn_emit(ptr @.str11582) %t435 = load ptr, ptr %t408 call void @fn_emit(ptr %t435) call void @fn_emit(ptr @.str11583) call void @fn_emit(ptr @.str11584) %t436 = load ptr, ptr %t408 call void @fn_emit(ptr %t436) call void @fn_emit(ptr @.str11585) %t437 = load ptr, ptr %t408 call void @fn_emit(ptr %t437) call void @fn_emit(ptr @.str11586) call void @fn_emit(ptr @.str11587) %t438 = load ptr, ptr %t408 call void @fn_emit(ptr %t438) call void @fn_emit(ptr @.str11588) call void @fn_emit(ptr @.str11589) %t439 = load ptr, ptr %t408 call void @fn_emit(ptr %t439) call void @fn_emit(ptr @.str11590) %t440 = load ptr, ptr %t408 call void @fn_emit(ptr %t440) call void @fn_emit(ptr @.str11591) %t441 = load ptr, ptr %t408 call void @fn_emit(ptr %t441) call void @fn_emit(ptr @.str11592) %t442 = load ptr, ptr %t408 call void @fn_emit(ptr %t442) call void @fn_emit(ptr @.str11593) call void @fn_emit(ptr @.str11594) %t443 = load ptr, ptr %t408 call void @fn_emit(ptr %t443) call void @fn_emit(ptr @.str11595) %t444 = load i32, ptr %t385 %t445 = add i32 %t444, 1 %t446 = load ptr, ptr @g_g_events %t447 = getelementptr inbounds %LSlice, ptr %t446, i32 0, i32 1 %t448 = load i32, ptr %t447 %t449 = icmp slt i32 %t445, %t448 %t450 = zext i1 %t449 to i32 %t451 = icmp ne i32 %t450, 0 br i1 %t451, label %then67, label %else68 then67: call void @fn_emit(ptr @.str11596) %t452 = load i32, ptr %t385 %t453 = add i32 %t452, 1 %t454 = call ptr @fn_itoa(i32 %t453) call void @fn_emit(ptr %t454) call void @fn_emit(ptr @.str11597) br label %ifend69 else68: call void @fn_emit(ptr @.str11598) br label %ifend69 ifend69: %t455 = load i32, ptr %t385 %t456 = add i32 %t455, 1 store i32 %t456, ptr %t385 br label %wcond62 wend64: call void @fn_emit(ptr @.str11599) br label %ret ret: ret void } define void @fn_emit_world_table() { entry: %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t32 = alloca ptr %t33 = alloca i32 %t34 = alloca i32 %t70 = alloca ptr %t73 = alloca ptr %t121 = alloca ptr %t124 = alloca ptr %t131 = alloca i32 %t156 = alloca ptr %t162 = alloca ptr %t213 = alloca ptr %t217 = alloca ptr %t220 = alloca ptr %t231 = alloca i32 %t256 = alloca ptr %t262 = alloca ptr %t337 = alloca ptr %t341 = alloca ptr %t344 = alloca ptr %t355 = alloca i32 %t380 = alloca ptr %t386 = alloca ptr %t457 = alloca ptr %t460 = alloca ptr %t523 = alloca ptr %t526 = alloca ptr %t588 = alloca ptr %t590 = alloca ptr %t593 = alloca ptr %t596 = alloca ptr %t602 = alloca ptr %t646 = alloca ptr %t649 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 store i32 0, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load i32, ptr %t3 %t5 = load ptr, ptr @g_prog %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t4, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load ptr, ptr @g_prog %t12 = load i32, ptr %t3 %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 %t12, %t16 br i1 %t17, label %ixok3, label %ixbad4 ixbad4: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str11600, i32 %t12, i32 %t16) call void @exit(i32 1) unreachable ixok3: %t19 = getelementptr inbounds ptr, ptr %t14, i32 %t12 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 0 %t22 = load i32, ptr %t21 %t23 = icmp eq i32 %t22, 8 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then5, label %ifend7 then5: %t26 = load i32, ptr %t2 %t27 = add i32 %t26, 1 store i32 %t27, ptr %t2 br label %ifend7 ifend7: %t28 = load i32, ptr %t3 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t3 br label %wcond0 wend2: %t30 = load i32, ptr %t2 %t31 = call ptr @fn_itoa(i32 %t30) store ptr %t31, ptr %t32 call void @fn_emith(ptr @.str11601) call void @fn_emith(ptr @.str11602) call void @fn_emith(ptr @.str11603) call void @fn_emith(ptr @.str11604) call void @fn_emith(ptr @.str11605) call void @fn_emit(ptr @.str11606) store i32 0, ptr %t33 store i32 0, ptr %t34 br label %wcond8 wcond8: %t35 = load i32, ptr %t34 %t36 = load ptr, ptr @g_prog %t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t38 = load i32, ptr %t37 %t39 = icmp slt i32 %t35, %t38 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %wbody9, label %wend10 wbody9: %t42 = load ptr, ptr @g_prog %t43 = load i32, ptr %t34 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 %t43, %t47 br i1 %t48, label %ixok11, label %ixbad12 ixbad12: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str11607, i32 %t43, i32 %t47) call void @exit(i32 1) unreachable ixok11: %t50 = getelementptr inbounds ptr, ptr %t45, i32 %t43 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 0 %t53 = load i32, ptr %t52 %t54 = icmp eq i32 %t53, 8 %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then13, label %ifend15 then13: %t57 = load ptr, ptr @g_prog %t58 = load i32, ptr %t34 %t59 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1 %t62 = load i32, ptr %t61 %t63 = icmp ult i32 %t58, %t62 br i1 %t63, label %ixok16, label %ixbad17 ixbad17: %t64 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t64, ptr @.fmt_bounds, ptr @.str11608, i32 %t58, i32 %t62) call void @exit(i32 1) unreachable ixok16: %t65 = getelementptr inbounds ptr, ptr %t60, i32 %t58 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_emit_str_const(ptr %t68) store ptr %t69, ptr %t70 %t71 = load i32, ptr %t33 %t72 = call ptr @fn_itoa(i32 %t71) store ptr %t72, ptr %t73 call void @fn_emit(ptr @.str11609) %t74 = load ptr, ptr %t73 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str11610) %t75 = load ptr, ptr %t70 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str11611) call void @fn_emit(ptr @.str11612) %t76 = load ptr, ptr %t73 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str11613) %t77 = load ptr, ptr %t73 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str11614) call void @fn_emit(ptr @.str11615) %t78 = load ptr, ptr %t73 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str11616) %t79 = load ptr, ptr %t73 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str11617) %t80 = load ptr, ptr %t73 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str11618) call void @fn_emit(ptr @.str11619) %t81 = load ptr, ptr %t73 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str11620) %t82 = load ptr, ptr %t73 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str11621) call void @fn_emit(ptr @.str11622) %t83 = load ptr, ptr %t73 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str11623) %t84 = load i32, ptr %t33 %t85 = add i32 %t84, 1 store i32 %t85, ptr %t33 br label %ifend15 ifend15: %t86 = load i32, ptr %t34 %t87 = add i32 %t86, 1 store i32 %t87, ptr %t34 br label %wcond8 wend10: call void @fn_emit(ptr @.str11624) call void @fn_emit(ptr @.str11625) call void @fn_emit(ptr @.str11626) call void @fn_emit(ptr @.str11627) %t88 = load ptr, ptr %t32 call void @fn_emit(ptr %t88) call void @fn_emit(ptr @.str11628) call void @fn_emit(ptr @.str11629) call void @fn_emit(ptr @.str11630) call void @fn_emit(ptr @.str11631) store i32 0, ptr %t33 store i32 0, ptr %t34 br label %wcond18 wcond18: %t89 = load i32, ptr %t34 %t90 = load ptr, ptr @g_prog %t91 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1 %t92 = load i32, ptr %t91 %t93 = icmp slt i32 %t89, %t92 %t94 = zext i1 %t93 to i32 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %wbody19, label %wend20 wbody19: %t96 = load ptr, ptr @g_prog %t97 = load i32, ptr %t34 %t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 %t97, %t101 br i1 %t102, label %ixok21, label %ixbad22 ixbad22: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str11632, i32 %t97, i32 %t101) call void @exit(i32 1) unreachable ixok21: %t104 = getelementptr inbounds ptr, ptr %t99, i32 %t97 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 0 %t107 = load i32, ptr %t106 %t108 = icmp eq i32 %t107, 8 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then23, label %ifend25 then23: %t111 = load ptr, ptr @g_prog %t112 = load i32, ptr %t34 %t113 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 %t116 = load i32, ptr %t115 %t117 = icmp ult i32 %t112, %t116 br i1 %t117, label %ixok26, label %ixbad27 ixbad27: %t118 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t118, ptr @.fmt_bounds, ptr @.str11633, i32 %t112, i32 %t116) call void @exit(i32 1) unreachable ixok26: %t119 = getelementptr inbounds ptr, ptr %t114, i32 %t112 %t120 = load ptr, ptr %t119 store ptr %t120, ptr %t121 %t122 = load i32, ptr %t33 %t123 = call ptr @fn_itoa(i32 %t122) store ptr %t123, ptr %t124 call void @fn_emit(ptr @.str11634) %t125 = load ptr, ptr %t124 call void @fn_emit(ptr %t125) call void @fn_emit(ptr @.str11635) %t126 = load ptr, ptr %t124 call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str11636) call void @fn_emit(ptr @.str11637) %t127 = load ptr, ptr %t124 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str11638) %t128 = load ptr, ptr %t124 call void @fn_emit(ptr %t128) call void @fn_emit(ptr @.str11639) %t129 = load ptr, ptr %t124 call void @fn_emit(ptr %t129) call void @fn_emit(ptr @.str11640) call void @fn_emit(ptr @.str11641) %t130 = load ptr, ptr %t124 call void @fn_emit(ptr %t130) call void @fn_emit(ptr @.str11642) store i32 0, ptr %t131 br label %wcond28 wcond28: %t132 = load i32, ptr %t131 %t133 = load ptr, ptr %t121 %t134 = getelementptr inbounds %Cmp_Node, ptr %t133, i32 0, i32 7 %t135 = load ptr, ptr %t134 %t136 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 1 %t137 = load i32, ptr %t136 %t138 = icmp slt i32 %t132, %t137 %t139 = zext i1 %t138 to i32 %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %wbody29, label %wend30 wbody29: %t141 = load ptr, ptr %t121 %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 7 %t143 = load ptr, ptr %t142 %t144 = load i32, ptr %t131 %t145 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0 %t146 = load ptr, ptr %t145 %t147 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 1 %t148 = load i32, ptr %t147 %t149 = icmp ult i32 %t144, %t148 br i1 %t149, label %ixok31, label %ixbad32 ixbad32: %t150 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t150, ptr @.fmt_bounds, ptr @.str11643, i32 %t144, i32 %t148) call void @exit(i32 1) unreachable ixok31: %t151 = getelementptr inbounds ptr, ptr %t146, i32 %t144 %t152 = load ptr, ptr %t151 %t153 = getelementptr inbounds %Cmp_Node, ptr %t152, i32 0, i32 1 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_emit_str_const(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t124 %t158 = call ptr @lp_str_concat(ptr %t157, ptr @.str11644) %t159 = load i32, ptr %t131 %t160 = call ptr @fn_itoa(i32 %t159) %t161 = call ptr @lp_str_concat(ptr %t158, ptr %t160) store ptr %t161, ptr %t162 call void @fn_emit(ptr @.str11645) %t163 = load ptr, ptr %t162 call void @fn_emit(ptr %t163) call void @fn_emit(ptr @.str11646) %t164 = load ptr, ptr %t156 call void @fn_emit(ptr %t164) call void @fn_emit(ptr @.str11647) call void @fn_emit(ptr @.str11648) %t165 = load ptr, ptr %t162 call void @fn_emit(ptr %t165) call void @fn_emit(ptr @.str11649) %t166 = load ptr, ptr %t162 call void @fn_emit(ptr %t166) call void @fn_emit(ptr @.str11650) call void @fn_emit(ptr @.str11651) %t167 = load ptr, ptr %t162 call void @fn_emit(ptr %t167) call void @fn_emit(ptr @.str11652) %t168 = load ptr, ptr %t162 call void @fn_emit(ptr %t168) call void @fn_emit(ptr @.str11653) %t169 = load ptr, ptr %t162 call void @fn_emit(ptr %t169) call void @fn_emit(ptr @.str11654) call void @fn_emit(ptr @.str11655) %t170 = load ptr, ptr %t162 call void @fn_emit(ptr %t170) call void @fn_emit(ptr @.str11656) %t171 = load i32, ptr %t131 %t172 = call ptr @fn_itoa(i32 %t171) call void @fn_emit(ptr %t172) call void @fn_emit(ptr @.str11657) call void @fn_emit(ptr @.str11658) %t173 = load ptr, ptr %t162 call void @fn_emit(ptr %t173) call void @fn_emit(ptr @.str11659) %t174 = load i32, ptr %t131 %t175 = add i32 %t174, 1 store i32 %t175, ptr %t131 br label %wcond28 wend30: call void @fn_emit(ptr @.str11660) call void @fn_emit(ptr @.str11661) %t176 = load ptr, ptr %t124 call void @fn_emit(ptr %t176) call void @fn_emit(ptr @.str11662) %t177 = load i32, ptr %t33 %t178 = add i32 %t177, 1 store i32 %t178, ptr %t33 br label %ifend25 ifend25: %t179 = load i32, ptr %t34 %t180 = add i32 %t179, 1 store i32 %t180, ptr %t34 br label %wcond18 wend20: call void @fn_emit(ptr @.str11663) call void @fn_emit(ptr @.str11664) store i32 0, ptr %t33 store i32 0, ptr %t34 br label %wcond33 wcond33: %t181 = load i32, ptr %t34 %t182 = load ptr, ptr @g_prog %t183 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 1 %t184 = load i32, ptr %t183 %t185 = icmp slt i32 %t181, %t184 %t186 = zext i1 %t185 to i32 %t187 = icmp ne i32 %t186, 0 br i1 %t187, label %wbody34, label %wend35 wbody34: %t188 = load ptr, ptr @g_prog %t189 = load i32, ptr %t34 %t190 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 0 %t191 = load ptr, ptr %t190 %t192 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 1 %t193 = load i32, ptr %t192 %t194 = icmp ult i32 %t189, %t193 br i1 %t194, label %ixok36, label %ixbad37 ixbad37: %t195 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t195, ptr @.fmt_bounds, ptr @.str11665, i32 %t189, i32 %t193) call void @exit(i32 1) unreachable ixok36: %t196 = getelementptr inbounds ptr, ptr %t191, i32 %t189 %t197 = load ptr, ptr %t196 %t198 = getelementptr inbounds %Cmp_Node, ptr %t197, i32 0, i32 0 %t199 = load i32, ptr %t198 %t200 = icmp eq i32 %t199, 8 %t201 = zext i1 %t200 to i32 %t202 = icmp ne i32 %t201, 0 br i1 %t202, label %then38, label %ifend40 then38: %t203 = load ptr, ptr @g_prog %t204 = load i32, ptr %t34 %t205 = getelementptr inbounds %LSlice, ptr %t203, i32 0, i32 0 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds %LSlice, ptr %t203, i32 0, i32 1 %t208 = load i32, ptr %t207 %t209 = icmp ult i32 %t204, %t208 br i1 %t209, label %ixok41, label %ixbad42 ixbad42: %t210 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t210, ptr @.fmt_bounds, ptr @.str11666, i32 %t204, i32 %t208) call void @exit(i32 1) unreachable ixok41: %t211 = getelementptr inbounds ptr, ptr %t206, i32 %t204 %t212 = load ptr, ptr %t211 store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t213 %t215 = getelementptr inbounds %Cmp_Node, ptr %t214, i32 0, i32 1 %t216 = load ptr, ptr %t215 store ptr %t216, ptr %t217 %t218 = load i32, ptr %t33 %t219 = call ptr @fn_itoa(i32 %t218) store ptr %t219, ptr %t220 call void @fn_emit(ptr @.str11667) %t221 = load ptr, ptr %t220 call void @fn_emit(ptr %t221) call void @fn_emit(ptr @.str11668) %t222 = load ptr, ptr %t220 call void @fn_emit(ptr %t222) call void @fn_emit(ptr @.str11669) call void @fn_emit(ptr @.str11670) %t223 = load ptr, ptr %t220 call void @fn_emit(ptr %t223) call void @fn_emit(ptr @.str11671) %t224 = load ptr, ptr %t220 call void @fn_emit(ptr %t224) call void @fn_emit(ptr @.str11672) %t225 = load ptr, ptr %t220 call void @fn_emit(ptr %t225) call void @fn_emit(ptr @.str11673) call void @fn_emit(ptr @.str11674) %t226 = load ptr, ptr %t220 call void @fn_emit(ptr %t226) call void @fn_emit(ptr @.str11675) call void @fn_emit(ptr @.str11676) %t227 = load ptr, ptr %t220 call void @fn_emit(ptr %t227) call void @fn_emit(ptr @.str11677) %t228 = load ptr, ptr %t1 call void @fn_emit(ptr %t228) call void @fn_emit(ptr @.str11678) %t229 = load ptr, ptr %t217 call void @fn_emit(ptr %t229) call void @fn_emit(ptr @.str11679) %t230 = load ptr, ptr %t217 call void @fn_emit(ptr %t230) call void @fn_emit(ptr @.str11680) store i32 0, ptr %t231 br label %wcond43 wcond43: %t232 = load i32, ptr %t231 %t233 = load ptr, ptr %t213 %t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 7 %t235 = load ptr, ptr %t234 %t236 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 1 %t237 = load i32, ptr %t236 %t238 = icmp slt i32 %t232, %t237 %t239 = zext i1 %t238 to i32 %t240 = icmp ne i32 %t239, 0 br i1 %t240, label %wbody44, label %wend45 wbody44: %t241 = load ptr, ptr %t213 %t242 = getelementptr inbounds %Cmp_Node, ptr %t241, i32 0, i32 7 %t243 = load ptr, ptr %t242 %t244 = load i32, ptr %t231 %t245 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 0 %t246 = load ptr, ptr %t245 %t247 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 1 %t248 = load i32, ptr %t247 %t249 = icmp ult i32 %t244, %t248 br i1 %t249, label %ixok46, label %ixbad47 ixbad47: %t250 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t250, ptr @.fmt_bounds, ptr @.str11681, i32 %t244, i32 %t248) call void @exit(i32 1) unreachable ixok46: %t251 = getelementptr inbounds ptr, ptr %t246, i32 %t244 %t252 = load ptr, ptr %t251 %t253 = getelementptr inbounds %Cmp_Node, ptr %t252, i32 0, i32 3 %t254 = load ptr, ptr %t253 %t255 = call ptr @fn_llty(ptr %t254) store ptr %t255, ptr %t256 %t257 = load ptr, ptr %t220 %t258 = call ptr @lp_str_concat(ptr %t257, ptr @.str11682) %t259 = load i32, ptr %t231 %t260 = call ptr @fn_itoa(i32 %t259) %t261 = call ptr @lp_str_concat(ptr %t258, ptr %t260) store ptr %t261, ptr %t262 call void @fn_emit(ptr @.str11683) %t263 = load ptr, ptr %t262 call void @fn_emit(ptr %t263) call void @fn_emit(ptr @.str11684) %t264 = load i32, ptr %t231 %t265 = call ptr @fn_itoa(i32 %t264) call void @fn_emit(ptr %t265) call void @fn_emit(ptr @.str11685) call void @fn_emit(ptr @.str11686) %t266 = load ptr, ptr %t262 call void @fn_emit(ptr %t266) call void @fn_emit(ptr @.str11687) %t267 = load ptr, ptr %t262 call void @fn_emit(ptr %t267) call void @fn_emit(ptr @.str11688) %t268 = load ptr, ptr %t262 call void @fn_emit(ptr %t268) call void @fn_emit(ptr @.str11689) call void @fn_emit(ptr @.str11690) %t269 = load ptr, ptr %t262 call void @fn_emit(ptr %t269) call void @fn_emit(ptr @.str11691) call void @fn_emit(ptr @.str11692) %t270 = load ptr, ptr %t262 call void @fn_emit(ptr %t270) call void @fn_emit(ptr @.str11693) %t271 = load ptr, ptr %t217 call void @fn_emit(ptr %t271) call void @fn_emit(ptr @.str11694) %t272 = load ptr, ptr %t220 call void @fn_emit(ptr %t272) call void @fn_emit(ptr @.str11695) %t273 = load i32, ptr %t231 %t274 = call ptr @fn_itoa(i32 %t273) call void @fn_emit(ptr %t274) call void @fn_emit(ptr @.str11696) %t275 = load ptr, ptr %t256 %t276 = call i32 @lp_str_eq(ptr %t275, ptr @.str11697) %t277 = icmp ne i32 %t276, 0 br i1 %t277, label %then48, label %else49 then48: call void @fn_emit(ptr @.str11698) %t278 = load ptr, ptr %t262 call void @fn_emit(ptr %t278) call void @fn_emit(ptr @.str11699) %t279 = load ptr, ptr %t262 call void @fn_emit(ptr %t279) call void @fn_emit(ptr @.str11700) call void @fn_emit(ptr @.str11701) %t280 = load ptr, ptr %t262 call void @fn_emit(ptr %t280) call void @fn_emit(ptr @.str11702) %t281 = load ptr, ptr %t262 call void @fn_emit(ptr %t281) call void @fn_emit(ptr @.str11703) %t282 = load ptr, ptr %t262 call void @fn_emit(ptr %t282) call void @fn_emit(ptr @.str11704) br label %ifend50 else49: %t283 = load ptr, ptr %t256 %t284 = call i32 @lp_str_eq(ptr %t283, ptr @.str11705) %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then51, label %else52 then51: call void @fn_emit(ptr @.str11706) %t286 = load ptr, ptr %t262 call void @fn_emit(ptr %t286) call void @fn_emit(ptr @.str11707) %t287 = load ptr, ptr %t262 call void @fn_emit(ptr %t287) call void @fn_emit(ptr @.str11708) call void @fn_emit(ptr @.str11709) %t288 = load ptr, ptr %t262 call void @fn_emit(ptr %t288) call void @fn_emit(ptr @.str11710) %t289 = load ptr, ptr %t262 call void @fn_emit(ptr %t289) call void @fn_emit(ptr @.str11711) %t290 = load ptr, ptr %t262 call void @fn_emit(ptr %t290) call void @fn_emit(ptr @.str11712) br label %ifend53 else52: call void @fn_emit(ptr @.str11713) %t291 = load ptr, ptr %t262 call void @fn_emit(ptr %t291) call void @fn_emit(ptr @.str11714) %t292 = load ptr, ptr %t262 call void @fn_emit(ptr %t292) call void @fn_emit(ptr @.str11715) call void @fn_emit(ptr @.str11716) %t293 = load ptr, ptr %t262 call void @fn_emit(ptr %t293) call void @fn_emit(ptr @.str11717) %t294 = load ptr, ptr %t262 call void @fn_emit(ptr %t294) call void @fn_emit(ptr @.str11718) %t295 = load ptr, ptr %t262 call void @fn_emit(ptr %t295) call void @fn_emit(ptr @.str11719) br label %ifend53 ifend53: br label %ifend50 ifend50: call void @fn_emit(ptr @.str11720) %t296 = load ptr, ptr %t262 call void @fn_emit(ptr %t296) call void @fn_emit(ptr @.str11721) %t297 = load i32, ptr %t231 %t298 = add i32 %t297, 1 store i32 %t298, ptr %t231 br label %wcond43 wend45: call void @fn_emit(ptr @.str11722) call void @fn_emit(ptr @.str11723) %t299 = load ptr, ptr %t220 call void @fn_emit(ptr %t299) call void @fn_emit(ptr @.str11724) %t300 = load i32, ptr %t33 %t301 = add i32 %t300, 1 store i32 %t301, ptr %t33 br label %ifend40 ifend40: %t302 = load i32, ptr %t34 %t303 = add i32 %t302, 1 store i32 %t303, ptr %t34 br label %wcond33 wend35: call void @fn_emit(ptr @.str11725) %t304 = load ptr, ptr %t32 call void @fn_emit(ptr %t304) call void @fn_emit(ptr @.str11726) call void @fn_emit(ptr @.str11727) call void @fn_emit(ptr @.str11728) call void @fn_emit(ptr @.str11729) call void @fn_emit(ptr @.str11730) call void @fn_emit(ptr @.str11731) call void @fn_emit(ptr @.str11732) store i32 0, ptr %t33 store i32 0, ptr %t34 br label %wcond54 wcond54: %t305 = load i32, ptr %t34 %t306 = load ptr, ptr @g_prog %t307 = getelementptr inbounds %LSlice, ptr %t306, i32 0, i32 1 %t308 = load i32, ptr %t307 %t309 = icmp slt i32 %t305, %t308 %t310 = zext i1 %t309 to i32 %t311 = icmp ne i32 %t310, 0 br i1 %t311, label %wbody55, label %wend56 wbody55: %t312 = load ptr, ptr @g_prog %t313 = load i32, ptr %t34 %t314 = getelementptr inbounds %LSlice, ptr %t312, i32 0, i32 0 %t315 = load ptr, ptr %t314 %t316 = getelementptr inbounds %LSlice, ptr %t312, i32 0, i32 1 %t317 = load i32, ptr %t316 %t318 = icmp ult i32 %t313, %t317 br i1 %t318, label %ixok57, label %ixbad58 ixbad58: %t319 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t319, ptr @.fmt_bounds, ptr @.str11733, i32 %t313, i32 %t317) call void @exit(i32 1) unreachable ixok57: %t320 = getelementptr inbounds ptr, ptr %t315, i32 %t313 %t321 = load ptr, ptr %t320 %t322 = getelementptr inbounds %Cmp_Node, ptr %t321, i32 0, i32 0 %t323 = load i32, ptr %t322 %t324 = icmp eq i32 %t323, 8 %t325 = zext i1 %t324 to i32 %t326 = icmp ne i32 %t325, 0 br i1 %t326, label %then59, label %ifend61 then59: %t327 = load ptr, ptr @g_prog %t328 = load i32, ptr %t34 %t329 = getelementptr inbounds %LSlice, ptr %t327, i32 0, i32 0 %t330 = load ptr, ptr %t329 %t331 = getelementptr inbounds %LSlice, ptr %t327, i32 0, i32 1 %t332 = load i32, ptr %t331 %t333 = icmp ult i32 %t328, %t332 br i1 %t333, label %ixok62, label %ixbad63 ixbad63: %t334 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t334, ptr @.fmt_bounds, ptr @.str11734, i32 %t328, i32 %t332) call void @exit(i32 1) unreachable ixok62: %t335 = getelementptr inbounds ptr, ptr %t330, i32 %t328 %t336 = load ptr, ptr %t335 store ptr %t336, ptr %t337 %t338 = load ptr, ptr %t337 %t339 = getelementptr inbounds %Cmp_Node, ptr %t338, i32 0, i32 1 %t340 = load ptr, ptr %t339 store ptr %t340, ptr %t341 %t342 = load i32, ptr %t33 %t343 = call ptr @fn_itoa(i32 %t342) store ptr %t343, ptr %t344 call void @fn_emit(ptr @.str11735) %t345 = load ptr, ptr %t344 call void @fn_emit(ptr %t345) call void @fn_emit(ptr @.str11736) %t346 = load ptr, ptr %t344 call void @fn_emit(ptr %t346) call void @fn_emit(ptr @.str11737) call void @fn_emit(ptr @.str11738) %t347 = load ptr, ptr %t344 call void @fn_emit(ptr %t347) call void @fn_emit(ptr @.str11739) %t348 = load ptr, ptr %t344 call void @fn_emit(ptr %t348) call void @fn_emit(ptr @.str11740) %t349 = load ptr, ptr %t344 call void @fn_emit(ptr %t349) call void @fn_emit(ptr @.str11741) call void @fn_emit(ptr @.str11742) %t350 = load ptr, ptr %t344 call void @fn_emit(ptr %t350) call void @fn_emit(ptr @.str11743) call void @fn_emit(ptr @.str11744) %t351 = load ptr, ptr %t344 call void @fn_emit(ptr %t351) call void @fn_emit(ptr @.str11745) %t352 = load ptr, ptr %t1 call void @fn_emit(ptr %t352) call void @fn_emit(ptr @.str11746) %t353 = load ptr, ptr %t341 call void @fn_emit(ptr %t353) call void @fn_emit(ptr @.str11747) %t354 = load ptr, ptr %t341 call void @fn_emit(ptr %t354) call void @fn_emit(ptr @.str11748) store i32 0, ptr %t355 br label %wcond64 wcond64: %t356 = load i32, ptr %t355 %t357 = load ptr, ptr %t337 %t358 = getelementptr inbounds %Cmp_Node, ptr %t357, i32 0, i32 7 %t359 = load ptr, ptr %t358 %t360 = getelementptr inbounds %LSlice, ptr %t359, i32 0, i32 1 %t361 = load i32, ptr %t360 %t362 = icmp slt i32 %t356, %t361 %t363 = zext i1 %t362 to i32 %t364 = icmp ne i32 %t363, 0 br i1 %t364, label %wbody65, label %wend66 wbody65: %t365 = load ptr, ptr %t337 %t366 = getelementptr inbounds %Cmp_Node, ptr %t365, i32 0, i32 7 %t367 = load ptr, ptr %t366 %t368 = load i32, ptr %t355 %t369 = getelementptr inbounds %LSlice, ptr %t367, i32 0, i32 0 %t370 = load ptr, ptr %t369 %t371 = getelementptr inbounds %LSlice, ptr %t367, i32 0, i32 1 %t372 = load i32, ptr %t371 %t373 = icmp ult i32 %t368, %t372 br i1 %t373, label %ixok67, label %ixbad68 ixbad68: %t374 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t374, ptr @.fmt_bounds, ptr @.str11749, i32 %t368, i32 %t372) call void @exit(i32 1) unreachable ixok67: %t375 = getelementptr inbounds ptr, ptr %t370, i32 %t368 %t376 = load ptr, ptr %t375 %t377 = getelementptr inbounds %Cmp_Node, ptr %t376, i32 0, i32 3 %t378 = load ptr, ptr %t377 %t379 = call ptr @fn_llty(ptr %t378) store ptr %t379, ptr %t380 %t381 = load ptr, ptr %t344 %t382 = call ptr @lp_str_concat(ptr %t381, ptr @.str11750) %t383 = load i32, ptr %t355 %t384 = call ptr @fn_itoa(i32 %t383) %t385 = call ptr @lp_str_concat(ptr %t382, ptr %t384) store ptr %t385, ptr %t386 call void @fn_emit(ptr @.str11751) %t387 = load ptr, ptr %t386 call void @fn_emit(ptr %t387) call void @fn_emit(ptr @.str11752) %t388 = load i32, ptr %t355 %t389 = call ptr @fn_itoa(i32 %t388) call void @fn_emit(ptr %t389) call void @fn_emit(ptr @.str11753) call void @fn_emit(ptr @.str11754) %t390 = load ptr, ptr %t386 call void @fn_emit(ptr %t390) call void @fn_emit(ptr @.str11755) %t391 = load ptr, ptr %t386 call void @fn_emit(ptr %t391) call void @fn_emit(ptr @.str11756) %t392 = load ptr, ptr %t386 call void @fn_emit(ptr %t392) call void @fn_emit(ptr @.str11757) call void @fn_emit(ptr @.str11758) %t393 = load ptr, ptr %t386 call void @fn_emit(ptr %t393) call void @fn_emit(ptr @.str11759) call void @fn_emit(ptr @.str11760) %t394 = load ptr, ptr %t386 call void @fn_emit(ptr %t394) call void @fn_emit(ptr @.str11761) %t395 = load ptr, ptr %t341 call void @fn_emit(ptr %t395) call void @fn_emit(ptr @.str11762) %t396 = load ptr, ptr %t344 call void @fn_emit(ptr %t396) call void @fn_emit(ptr @.str11763) %t397 = load i32, ptr %t355 %t398 = call ptr @fn_itoa(i32 %t397) call void @fn_emit(ptr %t398) call void @fn_emit(ptr @.str11764) %t399 = load ptr, ptr %t380 %t400 = call i32 @lp_str_eq(ptr %t399, ptr @.str11765) %t401 = icmp ne i32 %t400, 0 br i1 %t401, label %then69, label %else70 then69: call void @fn_emit(ptr @.str11766) %t402 = load ptr, ptr %t386 call void @fn_emit(ptr %t402) call void @fn_emit(ptr @.str11767) call void @fn_emit(ptr @.str11768) %t403 = load ptr, ptr %t386 call void @fn_emit(ptr %t403) call void @fn_emit(ptr @.str11769) %t404 = load ptr, ptr %t386 call void @fn_emit(ptr %t404) call void @fn_emit(ptr @.str11770) br label %ifend71 else70: %t405 = load ptr, ptr %t380 %t406 = call i32 @lp_str_eq(ptr %t405, ptr @.str11771) %t407 = icmp ne i32 %t406, 0 br i1 %t407, label %then72, label %else73 then72: call void @fn_emit(ptr @.str11772) %t408 = load ptr, ptr %t386 call void @fn_emit(ptr %t408) call void @fn_emit(ptr @.str11773) call void @fn_emit(ptr @.str11774) %t409 = load ptr, ptr %t386 call void @fn_emit(ptr %t409) call void @fn_emit(ptr @.str11775) %t410 = load ptr, ptr %t386 call void @fn_emit(ptr %t410) call void @fn_emit(ptr @.str11776) br label %ifend74 else73: call void @fn_emit(ptr @.str11777) %t411 = load ptr, ptr %t386 call void @fn_emit(ptr %t411) call void @fn_emit(ptr @.str11778) call void @fn_emit(ptr @.str11779) %t412 = load ptr, ptr %t386 call void @fn_emit(ptr %t412) call void @fn_emit(ptr @.str11780) %t413 = load ptr, ptr %t386 call void @fn_emit(ptr %t413) call void @fn_emit(ptr @.str11781) br label %ifend74 ifend74: br label %ifend71 ifend71: call void @fn_emit(ptr @.str11782) %t414 = load ptr, ptr %t386 call void @fn_emit(ptr %t414) call void @fn_emit(ptr @.str11783) %t415 = load i32, ptr %t355 %t416 = add i32 %t415, 1 store i32 %t416, ptr %t355 br label %wcond64 wend66: call void @fn_emit(ptr @.str11784) call void @fn_emit(ptr @.str11785) %t417 = load ptr, ptr %t344 call void @fn_emit(ptr %t417) call void @fn_emit(ptr @.str11786) %t418 = load i32, ptr %t33 %t419 = add i32 %t418, 1 store i32 %t419, ptr %t33 br label %ifend61 ifend61: %t420 = load i32, ptr %t34 %t421 = add i32 %t420, 1 store i32 %t421, ptr %t34 br label %wcond54 wend56: call void @fn_emit(ptr @.str11787) %t422 = load ptr, ptr %t32 call void @fn_emit(ptr %t422) call void @fn_emit(ptr @.str11788) call void @fn_emit(ptr @.str11789) call void @fn_emit(ptr @.str11790) call void @fn_emit(ptr @.str11791) call void @fn_emit(ptr @.str11792) call void @fn_emit(ptr @.str11793) call void @fn_emit(ptr @.str11794) store i32 0, ptr %t33 store i32 0, ptr %t34 br label %wcond75 wcond75: %t423 = load i32, ptr %t34 %t424 = load ptr, ptr @g_prog %t425 = getelementptr inbounds %LSlice, ptr %t424, i32 0, i32 1 %t426 = load i32, ptr %t425 %t427 = icmp slt i32 %t423, %t426 %t428 = zext i1 %t427 to i32 %t429 = icmp ne i32 %t428, 0 br i1 %t429, label %wbody76, label %wend77 wbody76: %t430 = load ptr, ptr @g_prog %t431 = load i32, ptr %t34 %t432 = getelementptr inbounds %LSlice, ptr %t430, i32 0, i32 0 %t433 = load ptr, ptr %t432 %t434 = getelementptr inbounds %LSlice, ptr %t430, i32 0, i32 1 %t435 = load i32, ptr %t434 %t436 = icmp ult i32 %t431, %t435 br i1 %t436, label %ixok78, label %ixbad79 ixbad79: %t437 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t437, ptr @.fmt_bounds, ptr @.str11795, i32 %t431, i32 %t435) call void @exit(i32 1) unreachable ixok78: %t438 = getelementptr inbounds ptr, ptr %t433, i32 %t431 %t439 = load ptr, ptr %t438 %t440 = getelementptr inbounds %Cmp_Node, ptr %t439, i32 0, i32 0 %t441 = load i32, ptr %t440 %t442 = icmp eq i32 %t441, 8 %t443 = zext i1 %t442 to i32 %t444 = icmp ne i32 %t443, 0 br i1 %t444, label %then80, label %ifend82 then80: %t445 = load ptr, ptr @g_prog %t446 = load i32, ptr %t34 %t447 = getelementptr inbounds %LSlice, ptr %t445, i32 0, i32 0 %t448 = load ptr, ptr %t447 %t449 = getelementptr inbounds %LSlice, ptr %t445, i32 0, i32 1 %t450 = load i32, ptr %t449 %t451 = icmp ult i32 %t446, %t450 br i1 %t451, label %ixok83, label %ixbad84 ixbad84: %t452 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t452, ptr @.fmt_bounds, ptr @.str11796, i32 %t446, i32 %t450) call void @exit(i32 1) unreachable ixok83: %t453 = getelementptr inbounds ptr, ptr %t448, i32 %t446 %t454 = load ptr, ptr %t453 %t455 = getelementptr inbounds %Cmp_Node, ptr %t454, i32 0, i32 1 %t456 = load ptr, ptr %t455 store ptr %t456, ptr %t457 %t458 = load i32, ptr %t33 %t459 = call ptr @fn_itoa(i32 %t458) store ptr %t459, ptr %t460 call void @fn_emit(ptr @.str11797) %t461 = load ptr, ptr %t460 call void @fn_emit(ptr %t461) call void @fn_emit(ptr @.str11798) %t462 = load ptr, ptr %t460 call void @fn_emit(ptr %t462) call void @fn_emit(ptr @.str11799) call void @fn_emit(ptr @.str11800) %t463 = load ptr, ptr %t460 call void @fn_emit(ptr %t463) call void @fn_emit(ptr @.str11801) %t464 = load ptr, ptr %t460 call void @fn_emit(ptr %t464) call void @fn_emit(ptr @.str11802) %t465 = load ptr, ptr %t460 call void @fn_emit(ptr %t465) call void @fn_emit(ptr @.str11803) call void @fn_emit(ptr @.str11804) %t466 = load ptr, ptr %t460 call void @fn_emit(ptr %t466) call void @fn_emit(ptr @.str11805) call void @fn_emit(ptr @.str11806) %t467 = load ptr, ptr %t460 call void @fn_emit(ptr %t467) call void @fn_emit(ptr @.str11807) %t468 = load ptr, ptr %t1 call void @fn_emit(ptr %t468) call void @fn_emit(ptr @.str11808) %t469 = load ptr, ptr %t457 call void @fn_emit(ptr %t469) call void @fn_emit(ptr @.str11809) call void @fn_emit(ptr @.str11810) %t470 = load ptr, ptr %t460 call void @fn_emit(ptr %t470) call void @fn_emit(ptr @.str11811) %t471 = load ptr, ptr %t460 call void @fn_emit(ptr %t471) call void @fn_emit(ptr @.str11812) call void @fn_emit(ptr @.str11813) %t472 = load ptr, ptr %t460 call void @fn_emit(ptr %t472) call void @fn_emit(ptr @.str11814) %t473 = load ptr, ptr %t460 call void @fn_emit(ptr %t473) call void @fn_emit(ptr @.str11815) %t474 = load ptr, ptr %t460 call void @fn_emit(ptr %t474) call void @fn_emit(ptr @.str11816) call void @fn_emit(ptr @.str11817) %t475 = load ptr, ptr %t460 call void @fn_emit(ptr %t475) call void @fn_emit(ptr @.str11818) %t476 = load i32, ptr %t33 %t477 = add i32 %t476, 1 store i32 %t477, ptr %t33 br label %ifend82 ifend82: %t478 = load i32, ptr %t34 %t479 = add i32 %t478, 1 store i32 %t479, ptr %t34 br label %wcond75 wend77: call void @fn_emit(ptr @.str11819) %t480 = load ptr, ptr %t32 call void @fn_emit(ptr %t480) call void @fn_emit(ptr @.str11820) call void @fn_emit(ptr @.str11821) call void @fn_emit(ptr @.str11822) call void @fn_emit(ptr @.str11823) call void @fn_emit(ptr @.str11824) call void @fn_emit(ptr @.str11825) call void @fn_emit(ptr @.str11826) %t481 = load ptr, ptr %t1 call void @fn_emit(ptr %t481) call void @fn_emit(ptr @.str11827) call void @fn_emit(ptr @.str11828) call void @fn_emit(ptr @.str11829) call void @fn_emit(ptr @.str11830) %t482 = load ptr, ptr %t1 call void @fn_emit(ptr %t482) call void @fn_emit(ptr @.str11831) %t483 = load ptr, ptr %t1 call void @fn_emit(ptr %t483) call void @fn_emit(ptr @.str11832) call void @fn_emit(ptr @.str11833) call void @fn_emit(ptr @.str11834) call void @fn_emit(ptr @.str11835) call void @fn_emit(ptr @.str11836) %t484 = load ptr, ptr %t32 call void @fn_emit(ptr %t484) call void @fn_emit(ptr @.str11837) call void @fn_emit(ptr @.str11838) call void @fn_emit(ptr @.str11839) call void @fn_emit(ptr @.str11840) %t485 = load ptr, ptr %t32 call void @fn_emit(ptr %t485) call void @fn_emit(ptr @.str11841) call void @fn_emit(ptr @.str11842) call void @fn_emit(ptr @.str11843) %t486 = load ptr, ptr %t32 call void @fn_emit(ptr %t486) call void @fn_emit(ptr @.str11844) call void @fn_emit(ptr @.str11845) call void @fn_emit(ptr @.str11846) call void @fn_emit(ptr @.str11847) %t487 = load ptr, ptr %t1 call void @fn_emit(ptr %t487) call void @fn_emit(ptr @.str11848) call void @fn_emit(ptr @.str11849) call void @fn_emit(ptr @.str11850) store i32 0, ptr %t33 store i32 0, ptr %t34 br label %wcond85 wcond85: %t488 = load i32, ptr %t34 %t489 = load ptr, ptr @g_prog %t490 = getelementptr inbounds %LSlice, ptr %t489, i32 0, i32 1 %t491 = load i32, ptr %t490 %t492 = icmp slt i32 %t488, %t491 %t493 = zext i1 %t492 to i32 %t494 = icmp ne i32 %t493, 0 br i1 %t494, label %wbody86, label %wend87 wbody86: %t495 = load ptr, ptr @g_prog %t496 = load i32, ptr %t34 %t497 = getelementptr inbounds %LSlice, ptr %t495, i32 0, i32 0 %t498 = load ptr, ptr %t497 %t499 = getelementptr inbounds %LSlice, ptr %t495, i32 0, i32 1 %t500 = load i32, ptr %t499 %t501 = icmp ult i32 %t496, %t500 br i1 %t501, label %ixok88, label %ixbad89 ixbad89: %t502 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t502, ptr @.fmt_bounds, ptr @.str11851, i32 %t496, i32 %t500) call void @exit(i32 1) unreachable ixok88: %t503 = getelementptr inbounds ptr, ptr %t498, i32 %t496 %t504 = load ptr, ptr %t503 %t505 = getelementptr inbounds %Cmp_Node, ptr %t504, i32 0, i32 0 %t506 = load i32, ptr %t505 %t507 = icmp eq i32 %t506, 10 %t508 = zext i1 %t507 to i32 %t509 = icmp ne i32 %t508, 0 br i1 %t509, label %then90, label %ifend92 then90: %t510 = load ptr, ptr @g_prog %t511 = load i32, ptr %t34 %t512 = getelementptr inbounds %LSlice, ptr %t510, i32 0, i32 0 %t513 = load ptr, ptr %t512 %t514 = getelementptr inbounds %LSlice, ptr %t510, i32 0, i32 1 %t515 = load i32, ptr %t514 %t516 = icmp ult i32 %t511, %t515 br i1 %t516, label %ixok93, label %ixbad94 ixbad94: %t517 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t517, ptr @.fmt_bounds, ptr @.str11852, i32 %t511, i32 %t515) call void @exit(i32 1) unreachable ixok93: %t518 = getelementptr inbounds ptr, ptr %t513, i32 %t511 %t519 = load ptr, ptr %t518 %t520 = getelementptr inbounds %Cmp_Node, ptr %t519, i32 0, i32 1 %t521 = load ptr, ptr %t520 %t522 = call ptr @fn_emit_str_const(ptr %t521) store ptr %t522, ptr %t523 %t524 = load i32, ptr %t33 %t525 = call ptr @fn_itoa(i32 %t524) store ptr %t525, ptr %t526 call void @fn_emit(ptr @.str11853) %t527 = load ptr, ptr %t526 call void @fn_emit(ptr %t527) call void @fn_emit(ptr @.str11854) %t528 = load ptr, ptr %t523 call void @fn_emit(ptr %t528) call void @fn_emit(ptr @.str11855) call void @fn_emit(ptr @.str11856) %t529 = load ptr, ptr %t526 call void @fn_emit(ptr %t529) call void @fn_emit(ptr @.str11857) %t530 = load ptr, ptr %t526 call void @fn_emit(ptr %t530) call void @fn_emit(ptr @.str11858) call void @fn_emit(ptr @.str11859) %t531 = load ptr, ptr %t526 call void @fn_emit(ptr %t531) call void @fn_emit(ptr @.str11860) %t532 = load ptr, ptr %t526 call void @fn_emit(ptr %t532) call void @fn_emit(ptr @.str11861) %t533 = load ptr, ptr %t526 call void @fn_emit(ptr %t533) call void @fn_emit(ptr @.str11862) call void @fn_emit(ptr @.str11863) %t534 = load ptr, ptr %t526 call void @fn_emit(ptr %t534) call void @fn_emit(ptr @.str11864) %t535 = load ptr, ptr @g_prog %t536 = load i32, ptr %t34 %t537 = getelementptr inbounds %LSlice, ptr %t535, i32 0, i32 0 %t538 = load ptr, ptr %t537 %t539 = getelementptr inbounds %LSlice, ptr %t535, i32 0, i32 1 %t540 = load i32, ptr %t539 %t541 = icmp ult i32 %t536, %t540 br i1 %t541, label %ixok95, label %ixbad96 ixbad96: %t542 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t542, ptr @.fmt_bounds, ptr @.str11865, i32 %t536, i32 %t540) call void @exit(i32 1) unreachable ixok95: %t543 = getelementptr inbounds ptr, ptr %t538, i32 %t536 %t544 = load ptr, ptr %t543 %t545 = getelementptr inbounds %Cmp_Node, ptr %t544, i32 0, i32 1 %t546 = load ptr, ptr %t545 %t547 = call i32 @fn_find_arch_id(ptr %t546) %t548 = call ptr @fn_itoa(i32 %t547) call void @fn_emit(ptr %t548) call void @fn_emit(ptr @.str11866) call void @fn_emit(ptr @.str11867) %t549 = load ptr, ptr %t526 call void @fn_emit(ptr %t549) call void @fn_emit(ptr @.str11868) %t550 = load i32, ptr %t33 %t551 = add i32 %t550, 1 store i32 %t551, ptr %t33 br label %ifend92 ifend92: %t552 = load i32, ptr %t34 %t553 = add i32 %t552, 1 store i32 %t553, ptr %t34 br label %wcond85 wend87: call void @fn_emit(ptr @.str11869) store i32 0, ptr %t34 br label %wcond97 wcond97: %t554 = load i32, ptr %t34 %t555 = load ptr, ptr @g_prog %t556 = getelementptr inbounds %LSlice, ptr %t555, i32 0, i32 1 %t557 = load i32, ptr %t556 %t558 = icmp slt i32 %t554, %t557 %t559 = zext i1 %t558 to i32 %t560 = icmp ne i32 %t559, 0 br i1 %t560, label %wbody98, label %wend99 wbody98: %t561 = load ptr, ptr @g_prog %t562 = load i32, ptr %t34 %t563 = getelementptr inbounds %LSlice, ptr %t561, i32 0, i32 0 %t564 = load ptr, ptr %t563 %t565 = getelementptr inbounds %LSlice, ptr %t561, i32 0, i32 1 %t566 = load i32, ptr %t565 %t567 = icmp ult i32 %t562, %t566 br i1 %t567, label %ixok100, label %ixbad101 ixbad101: %t568 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t568, ptr @.fmt_bounds, ptr @.str11870, i32 %t562, i32 %t566) call void @exit(i32 1) unreachable ixok100: %t569 = getelementptr inbounds ptr, ptr %t564, i32 %t562 %t570 = load ptr, ptr %t569 %t571 = getelementptr inbounds %Cmp_Node, ptr %t570, i32 0, i32 0 %t572 = load i32, ptr %t571 %t573 = icmp eq i32 %t572, 10 %t574 = zext i1 %t573 to i32 %t575 = icmp ne i32 %t574, 0 br i1 %t575, label %then102, label %ifend104 then102: %t576 = load ptr, ptr @g_prog %t577 = load i32, ptr %t34 %t578 = getelementptr inbounds %LSlice, ptr %t576, i32 0, i32 0 %t579 = load ptr, ptr %t578 %t580 = getelementptr inbounds %LSlice, ptr %t576, i32 0, i32 1 %t581 = load i32, ptr %t580 %t582 = icmp ult i32 %t577, %t581 br i1 %t582, label %ixok105, label %ixbad106 ixbad106: %t583 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t583, ptr @.fmt_bounds, ptr @.str11871, i32 %t577, i32 %t581) call void @exit(i32 1) unreachable ixok105: %t584 = getelementptr inbounds ptr, ptr %t579, i32 %t577 %t585 = load ptr, ptr %t584 %t586 = getelementptr inbounds %Cmp_Node, ptr %t585, i32 0, i32 1 %t587 = load ptr, ptr %t586 store ptr %t587, ptr %t588 store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself store ptr @.str11872, ptr @g_ret_ty %t589 = call ptr @fn_buf_new() store ptr %t589, ptr %t590 %t591 = call ptr @fn_buf_new() store ptr %t591, ptr @g_falloc %t592 = load ptr, ptr @g_code store ptr %t592, ptr %t593 %t594 = load ptr, ptr %t590 store ptr %t594, ptr @g_code %t595 = call ptr @fn_node(i32 22) store ptr %t595, ptr %t596 %t597 = load ptr, ptr %t596 %t598 = getelementptr inbounds %Cmp_Node, ptr %t597, i32 0, i32 1 %t599 = load ptr, ptr %t588 store ptr %t599, ptr %t598 %t600 = load ptr, ptr %t596 %t601 = call ptr @fn_emit_spawn(ptr %t600) store ptr %t601, ptr %t602 call void @fn_emit(ptr @.str11873) %t603 = load ptr, ptr %t602 call void @fn_emit(ptr %t603) call void @fn_emit(ptr @.str11874) %t604 = load ptr, ptr %t593 store ptr %t604, ptr @g_code call void @fn_emit(ptr @.str11875) %t605 = load ptr, ptr %t588 call void @fn_emit(ptr %t605) call void @fn_emit(ptr @.str11876) %t606 = load ptr, ptr @g_falloc %t607 = call ptr @fn_buf_str(ptr %t606) call void @fn_emit(ptr %t607) %t608 = load ptr, ptr %t590 %t609 = call ptr @fn_buf_str(ptr %t608) call void @fn_emit(ptr %t609) call void @fn_emit(ptr @.str11877) br label %ifend104 ifend104: %t610 = load i32, ptr %t34 %t611 = add i32 %t610, 1 store i32 %t611, ptr %t34 br label %wcond97 wend99: call void @fn_emit(ptr @.str11878) store i32 0, ptr %t33 store i32 0, ptr %t34 br label %wcond107 wcond107: %t612 = load i32, ptr %t34 %t613 = load ptr, ptr @g_prog %t614 = getelementptr inbounds %LSlice, ptr %t613, i32 0, i32 1 %t615 = load i32, ptr %t614 %t616 = icmp slt i32 %t612, %t615 %t617 = zext i1 %t616 to i32 %t618 = icmp ne i32 %t617, 0 br i1 %t618, label %wbody108, label %wend109 wbody108: %t619 = load ptr, ptr @g_prog %t620 = load i32, ptr %t34 %t621 = getelementptr inbounds %LSlice, ptr %t619, i32 0, i32 0 %t622 = load ptr, ptr %t621 %t623 = getelementptr inbounds %LSlice, ptr %t619, i32 0, i32 1 %t624 = load i32, ptr %t623 %t625 = icmp ult i32 %t620, %t624 br i1 %t625, label %ixok110, label %ixbad111 ixbad111: %t626 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t626, ptr @.fmt_bounds, ptr @.str11879, i32 %t620, i32 %t624) call void @exit(i32 1) unreachable ixok110: %t627 = getelementptr inbounds ptr, ptr %t622, i32 %t620 %t628 = load ptr, ptr %t627 %t629 = getelementptr inbounds %Cmp_Node, ptr %t628, i32 0, i32 0 %t630 = load i32, ptr %t629 %t631 = icmp eq i32 %t630, 10 %t632 = zext i1 %t631 to i32 %t633 = icmp ne i32 %t632, 0 br i1 %t633, label %then112, label %ifend114 then112: %t634 = load ptr, ptr @g_prog %t635 = load i32, ptr %t34 %t636 = getelementptr inbounds %LSlice, ptr %t634, i32 0, i32 0 %t637 = load ptr, ptr %t636 %t638 = getelementptr inbounds %LSlice, ptr %t634, i32 0, i32 1 %t639 = load i32, ptr %t638 %t640 = icmp ult i32 %t635, %t639 br i1 %t640, label %ixok115, label %ixbad116 ixbad116: %t641 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t641, ptr @.fmt_bounds, ptr @.str11880, i32 %t635, i32 %t639) call void @exit(i32 1) unreachable ixok115: %t642 = getelementptr inbounds ptr, ptr %t637, i32 %t635 %t643 = load ptr, ptr %t642 %t644 = getelementptr inbounds %Cmp_Node, ptr %t643, i32 0, i32 1 %t645 = load ptr, ptr %t644 store ptr %t645, ptr %t646 %t647 = load i32, ptr %t33 %t648 = call ptr @fn_itoa(i32 %t647) store ptr %t648, ptr %t649 call void @fn_emit(ptr @.str11881) %t650 = load ptr, ptr %t649 call void @fn_emit(ptr %t650) call void @fn_emit(ptr @.str11882) %t651 = load ptr, ptr %t646 %t652 = call i32 @fn_find_arch_id(ptr %t651) %t653 = call ptr @fn_itoa(i32 %t652) call void @fn_emit(ptr %t653) call void @fn_emit(ptr @.str11883) call void @fn_emit(ptr @.str11884) %t654 = load ptr, ptr %t649 call void @fn_emit(ptr %t654) call void @fn_emit(ptr @.str11885) %t655 = load ptr, ptr %t649 call void @fn_emit(ptr %t655) call void @fn_emit(ptr @.str11886) %t656 = load ptr, ptr %t649 call void @fn_emit(ptr %t656) call void @fn_emit(ptr @.str11887) call void @fn_emit(ptr @.str11888) %t657 = load ptr, ptr %t649 call void @fn_emit(ptr %t657) call void @fn_emit(ptr @.str11889) %t658 = load ptr, ptr %t649 call void @fn_emit(ptr %t658) call void @fn_emit(ptr @.str11890) %t659 = load ptr, ptr %t646 call void @fn_emit(ptr %t659) call void @fn_emit(ptr @.str11891) %t660 = load ptr, ptr %t649 call void @fn_emit(ptr %t660) call void @fn_emit(ptr @.str11892) call void @fn_emit(ptr @.str11893) %t661 = load ptr, ptr %t649 call void @fn_emit(ptr %t661) call void @fn_emit(ptr @.str11894) %t662 = load i32, ptr %t33 %t663 = add i32 %t662, 1 store i32 %t663, ptr %t33 br label %ifend114 ifend114: %t664 = load i32, ptr %t34 %t665 = add i32 %t664, 1 store i32 %t665, ptr %t34 br label %wcond107 wend109: call void @fn_emit(ptr @.str11895) call void @fn_emit(ptr @.str11896) call void @fn_emit(ptr @.str11897) call void @fn_emit(ptr @.str11898) call void @fn_emit(ptr @.str11899) call void @fn_emit(ptr @.str11900) %t666 = load ptr, ptr %t1 call void @fn_emit(ptr %t666) call void @fn_emit(ptr @.str11901) call void @fn_emit(ptr @.str11902) call void @fn_emit(ptr @.str11903) call void @fn_emit(ptr @.str11904) call void @fn_emit(ptr @.str11905) call void @fn_emit(ptr @.str11906) call void @fn_emit_world_reflect_enum() br label %ret ret: ret void } define void @fn_emit_world_reflect_enum() { entry: %t1 = alloca ptr %t3 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 %t34 = alloca ptr %t36 = alloca i32 %t72 = alloca ptr %t75 = alloca ptr %t122 = alloca ptr %t125 = alloca ptr %t176 = alloca ptr %t179 = alloca ptr %t186 = alloca i32 %t211 = alloca ptr %t217 = alloca ptr %t268 = alloca ptr %t271 = alloca ptr %t278 = alloca i32 %t303 = alloca ptr %t309 = alloca ptr %t0 = call ptr @fn_emit_str_const(ptr @.str11907) store ptr %t0, ptr %t1 %t2 = call ptr @fn_emit_str_const(ptr @.str11908) store ptr %t2, ptr %t3 store i32 0, ptr %t4 store i32 0, ptr %t5 br label %wcond0 wcond0: %t6 = load i32, ptr %t5 %t7 = load ptr, ptr @g_prog %t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1 %t9 = load i32, ptr %t8 %t10 = icmp slt i32 %t6, %t9 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %wbody1, label %wend2 wbody1: %t13 = load ptr, ptr @g_prog %t14 = load i32, ptr %t5 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str11909, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 0 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 8 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = load i32, ptr %t4 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t4 br label %ifend7 ifend7: %t30 = load i32, ptr %t5 %t31 = add i32 %t30, 1 store i32 %t31, ptr %t5 br label %wcond0 wend2: %t32 = load i32, ptr %t4 %t33 = call ptr @fn_itoa(i32 %t32) store ptr %t33, ptr %t34 call void @fn_emit(ptr @.str11910) call void @fn_emit(ptr @.str11911) %t35 = load ptr, ptr %t34 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str11912) call void @fn_emit(ptr @.str11913) store i32 0, ptr %t36 store i32 0, ptr %t5 br label %wcond8 wcond8: %t37 = load i32, ptr %t5 %t38 = load ptr, ptr @g_prog %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp slt i32 %t37, %t40 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %wbody9, label %wend10 wbody9: %t44 = load ptr, ptr @g_prog %t45 = load i32, ptr %t5 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok11, label %ixbad12 ixbad12: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str11914, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok11: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 0 %t55 = load i32, ptr %t54 %t56 = icmp eq i32 %t55, 8 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then13, label %ifend15 then13: %t59 = load ptr, ptr @g_prog %t60 = load i32, ptr %t5 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 %t60, %t64 br i1 %t65, label %ixok16, label %ixbad17 ixbad17: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str11915, i32 %t60, i32 %t64) call void @exit(i32 1) unreachable ixok16: %t67 = getelementptr inbounds ptr, ptr %t62, i32 %t60 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_emit_str_const(ptr %t70) store ptr %t71, ptr %t72 %t73 = load i32, ptr %t36 %t74 = call ptr @fn_itoa(i32 %t73) store ptr %t74, ptr %t75 call void @fn_emit(ptr @.str11916) %t76 = load ptr, ptr %t75 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str11917) %t77 = load ptr, ptr %t75 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str11918) call void @fn_emit(ptr @.str11919) %t78 = load ptr, ptr %t75 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str11920) %t79 = load ptr, ptr %t75 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str11921) %t80 = load ptr, ptr %t75 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str11922) call void @fn_emit(ptr @.str11923) %t81 = load ptr, ptr %t75 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str11924) %t82 = load ptr, ptr %t72 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str11925) call void @fn_emit(ptr @.str11926) %t83 = load ptr, ptr %t75 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str11927) %t84 = load i32, ptr %t36 %t85 = add i32 %t84, 1 store i32 %t85, ptr %t36 br label %ifend15 ifend15: %t86 = load i32, ptr %t5 %t87 = add i32 %t86, 1 store i32 %t87, ptr %t5 br label %wcond8 wend10: call void @fn_emit(ptr @.str11928) %t88 = load ptr, ptr %t34 call void @fn_emit(ptr %t88) call void @fn_emit(ptr @.str11929) call void @fn_emit(ptr @.str11930) call void @fn_emit(ptr @.str11931) call void @fn_emit(ptr @.str11932) %t89 = load ptr, ptr %t1 call void @fn_emit(ptr %t89) call void @fn_emit(ptr @.str11933) call void @fn_emit(ptr @.str11934) store i32 0, ptr %t36 store i32 0, ptr %t5 br label %wcond18 wcond18: %t90 = load i32, ptr %t5 %t91 = load ptr, ptr @g_prog %t92 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp slt i32 %t90, %t93 %t95 = zext i1 %t94 to i32 %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %wbody19, label %wend20 wbody19: %t97 = load ptr, ptr @g_prog %t98 = load i32, ptr %t5 %t99 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp ult i32 %t98, %t102 br i1 %t103, label %ixok21, label %ixbad22 ixbad22: %t104 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t104, ptr @.fmt_bounds, ptr @.str11935, i32 %t98, i32 %t102) call void @exit(i32 1) unreachable ixok21: %t105 = getelementptr inbounds ptr, ptr %t100, i32 %t98 %t106 = load ptr, ptr %t105 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 0 %t108 = load i32, ptr %t107 %t109 = icmp eq i32 %t108, 8 %t110 = zext i1 %t109 to i32 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then23, label %ifend25 then23: %t112 = load ptr, ptr @g_prog %t113 = load i32, ptr %t5 %t114 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t117 = load i32, ptr %t116 %t118 = icmp ult i32 %t113, %t117 br i1 %t118, label %ixok26, label %ixbad27 ixbad27: %t119 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t119, ptr @.fmt_bounds, ptr @.str11936, i32 %t113, i32 %t117) call void @exit(i32 1) unreachable ixok26: %t120 = getelementptr inbounds ptr, ptr %t115, i32 %t113 %t121 = load ptr, ptr %t120 store ptr %t121, ptr %t122 %t123 = load i32, ptr %t36 %t124 = call ptr @fn_itoa(i32 %t123) store ptr %t124, ptr %t125 call void @fn_emit(ptr @.str11937) %t126 = load ptr, ptr %t125 call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str11938) %t127 = load ptr, ptr %t125 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str11939) call void @fn_emit(ptr @.str11940) %t128 = load ptr, ptr %t125 call void @fn_emit(ptr %t128) call void @fn_emit(ptr @.str11941) %t129 = load ptr, ptr %t125 call void @fn_emit(ptr %t129) call void @fn_emit(ptr @.str11942) %t130 = load ptr, ptr %t125 call void @fn_emit(ptr %t130) call void @fn_emit(ptr @.str11943) call void @fn_emit(ptr @.str11944) %t131 = load ptr, ptr %t125 call void @fn_emit(ptr %t131) call void @fn_emit(ptr @.str11945) %t132 = load ptr, ptr %t122 %t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 7 %t134 = load ptr, ptr %t133 %t135 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 1 %t136 = load i32, ptr %t135 %t137 = call ptr @fn_itoa(i32 %t136) call void @fn_emit(ptr %t137) call void @fn_emit(ptr @.str11946) call void @fn_emit(ptr @.str11947) %t138 = load ptr, ptr %t125 call void @fn_emit(ptr %t138) call void @fn_emit(ptr @.str11948) %t139 = load i32, ptr %t36 %t140 = add i32 %t139, 1 store i32 %t140, ptr %t36 br label %ifend25 ifend25: %t141 = load i32, ptr %t5 %t142 = add i32 %t141, 1 store i32 %t142, ptr %t5 br label %wcond18 wend20: call void @fn_emit(ptr @.str11949) %t143 = load ptr, ptr %t34 call void @fn_emit(ptr %t143) call void @fn_emit(ptr @.str11950) call void @fn_emit(ptr @.str11951) call void @fn_emit(ptr @.str11952) call void @fn_emit(ptr @.str11953) call void @fn_emit(ptr @.str11954) store i32 0, ptr %t36 store i32 0, ptr %t5 br label %wcond28 wcond28: %t144 = load i32, ptr %t5 %t145 = load ptr, ptr @g_prog %t146 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 1 %t147 = load i32, ptr %t146 %t148 = icmp slt i32 %t144, %t147 %t149 = zext i1 %t148 to i32 %t150 = icmp ne i32 %t149, 0 br i1 %t150, label %wbody29, label %wend30 wbody29: %t151 = load ptr, ptr @g_prog %t152 = load i32, ptr %t5 %t153 = getelementptr inbounds %LSlice, ptr %t151, i32 0, i32 0 %t154 = load ptr, ptr %t153 %t155 = getelementptr inbounds %LSlice, ptr %t151, i32 0, i32 1 %t156 = load i32, ptr %t155 %t157 = icmp ult i32 %t152, %t156 br i1 %t157, label %ixok31, label %ixbad32 ixbad32: %t158 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t158, ptr @.fmt_bounds, ptr @.str11955, i32 %t152, i32 %t156) call void @exit(i32 1) unreachable ixok31: %t159 = getelementptr inbounds ptr, ptr %t154, i32 %t152 %t160 = load ptr, ptr %t159 %t161 = getelementptr inbounds %Cmp_Node, ptr %t160, i32 0, i32 0 %t162 = load i32, ptr %t161 %t163 = icmp eq i32 %t162, 8 %t164 = zext i1 %t163 to i32 %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then33, label %ifend35 then33: %t166 = load ptr, ptr @g_prog %t167 = load i32, ptr %t5 %t168 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 0 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 1 %t171 = load i32, ptr %t170 %t172 = icmp ult i32 %t167, %t171 br i1 %t172, label %ixok36, label %ixbad37 ixbad37: %t173 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t173, ptr @.fmt_bounds, ptr @.str11956, i32 %t167, i32 %t171) call void @exit(i32 1) unreachable ixok36: %t174 = getelementptr inbounds ptr, ptr %t169, i32 %t167 %t175 = load ptr, ptr %t174 store ptr %t175, ptr %t176 %t177 = load i32, ptr %t36 %t178 = call ptr @fn_itoa(i32 %t177) store ptr %t178, ptr %t179 call void @fn_emit(ptr @.str11957) %t180 = load ptr, ptr %t179 call void @fn_emit(ptr %t180) call void @fn_emit(ptr @.str11958) %t181 = load ptr, ptr %t179 call void @fn_emit(ptr %t181) call void @fn_emit(ptr @.str11959) call void @fn_emit(ptr @.str11960) %t182 = load ptr, ptr %t179 call void @fn_emit(ptr %t182) call void @fn_emit(ptr @.str11961) %t183 = load ptr, ptr %t179 call void @fn_emit(ptr %t183) call void @fn_emit(ptr @.str11962) %t184 = load ptr, ptr %t179 call void @fn_emit(ptr %t184) call void @fn_emit(ptr @.str11963) call void @fn_emit(ptr @.str11964) %t185 = load ptr, ptr %t179 call void @fn_emit(ptr %t185) call void @fn_emit(ptr @.str11965) store i32 0, ptr %t186 br label %wcond38 wcond38: %t187 = load i32, ptr %t186 %t188 = load ptr, ptr %t176 %t189 = getelementptr inbounds %Cmp_Node, ptr %t188, i32 0, i32 7 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %LSlice, ptr %t190, i32 0, i32 1 %t192 = load i32, ptr %t191 %t193 = icmp slt i32 %t187, %t192 %t194 = zext i1 %t193 to i32 %t195 = icmp ne i32 %t194, 0 br i1 %t195, label %wbody39, label %wend40 wbody39: %t196 = load ptr, ptr %t176 %t197 = getelementptr inbounds %Cmp_Node, ptr %t196, i32 0, i32 7 %t198 = load ptr, ptr %t197 %t199 = load i32, ptr %t186 %t200 = getelementptr inbounds %LSlice, ptr %t198, i32 0, i32 0 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %LSlice, ptr %t198, i32 0, i32 1 %t203 = load i32, ptr %t202 %t204 = icmp ult i32 %t199, %t203 br i1 %t204, label %ixok41, label %ixbad42 ixbad42: %t205 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t205, ptr @.fmt_bounds, ptr @.str11966, i32 %t199, i32 %t203) call void @exit(i32 1) unreachable ixok41: %t206 = getelementptr inbounds ptr, ptr %t201, i32 %t199 %t207 = load ptr, ptr %t206 %t208 = getelementptr inbounds %Cmp_Node, ptr %t207, i32 0, i32 1 %t209 = load ptr, ptr %t208 %t210 = call ptr @fn_emit_str_const(ptr %t209) store ptr %t210, ptr %t211 %t212 = load ptr, ptr %t179 %t213 = call ptr @lp_str_concat(ptr %t212, ptr @.str11967) %t214 = load i32, ptr %t186 %t215 = call ptr @fn_itoa(i32 %t214) %t216 = call ptr @lp_str_concat(ptr %t213, ptr %t215) store ptr %t216, ptr %t217 call void @fn_emit(ptr @.str11968) %t218 = load ptr, ptr %t217 call void @fn_emit(ptr %t218) call void @fn_emit(ptr @.str11969) %t219 = load i32, ptr %t186 %t220 = call ptr @fn_itoa(i32 %t219) call void @fn_emit(ptr %t220) call void @fn_emit(ptr @.str11970) call void @fn_emit(ptr @.str11971) %t221 = load ptr, ptr %t217 call void @fn_emit(ptr %t221) call void @fn_emit(ptr @.str11972) %t222 = load ptr, ptr %t217 call void @fn_emit(ptr %t222) call void @fn_emit(ptr @.str11973) %t223 = load ptr, ptr %t217 call void @fn_emit(ptr %t223) call void @fn_emit(ptr @.str11974) call void @fn_emit(ptr @.str11975) %t224 = load ptr, ptr %t217 call void @fn_emit(ptr %t224) call void @fn_emit(ptr @.str11976) %t225 = load ptr, ptr %t211 call void @fn_emit(ptr %t225) call void @fn_emit(ptr @.str11977) call void @fn_emit(ptr @.str11978) %t226 = load ptr, ptr %t217 call void @fn_emit(ptr %t226) call void @fn_emit(ptr @.str11979) %t227 = load i32, ptr %t186 %t228 = add i32 %t227, 1 store i32 %t228, ptr %t186 br label %wcond38 wend40: call void @fn_emit(ptr @.str11980) %t229 = load ptr, ptr %t1 call void @fn_emit(ptr %t229) call void @fn_emit(ptr @.str11981) call void @fn_emit(ptr @.str11982) %t230 = load ptr, ptr %t179 call void @fn_emit(ptr %t230) call void @fn_emit(ptr @.str11983) %t231 = load i32, ptr %t36 %t232 = add i32 %t231, 1 store i32 %t232, ptr %t36 br label %ifend35 ifend35: %t233 = load i32, ptr %t5 %t234 = add i32 %t233, 1 store i32 %t234, ptr %t5 br label %wcond28 wend30: call void @fn_emit(ptr @.str11984) %t235 = load ptr, ptr %t1 call void @fn_emit(ptr %t235) call void @fn_emit(ptr @.str11985) call void @fn_emit(ptr @.str11986) store i32 0, ptr %t36 store i32 0, ptr %t5 br label %wcond43 wcond43: %t236 = load i32, ptr %t5 %t237 = load ptr, ptr @g_prog %t238 = getelementptr inbounds %LSlice, ptr %t237, i32 0, i32 1 %t239 = load i32, ptr %t238 %t240 = icmp slt i32 %t236, %t239 %t241 = zext i1 %t240 to i32 %t242 = icmp ne i32 %t241, 0 br i1 %t242, label %wbody44, label %wend45 wbody44: %t243 = load ptr, ptr @g_prog %t244 = load i32, ptr %t5 %t245 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 0 %t246 = load ptr, ptr %t245 %t247 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 1 %t248 = load i32, ptr %t247 %t249 = icmp ult i32 %t244, %t248 br i1 %t249, label %ixok46, label %ixbad47 ixbad47: %t250 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t250, ptr @.fmt_bounds, ptr @.str11987, i32 %t244, i32 %t248) call void @exit(i32 1) unreachable ixok46: %t251 = getelementptr inbounds ptr, ptr %t246, i32 %t244 %t252 = load ptr, ptr %t251 %t253 = getelementptr inbounds %Cmp_Node, ptr %t252, i32 0, i32 0 %t254 = load i32, ptr %t253 %t255 = icmp eq i32 %t254, 8 %t256 = zext i1 %t255 to i32 %t257 = icmp ne i32 %t256, 0 br i1 %t257, label %then48, label %ifend50 then48: %t258 = load ptr, ptr @g_prog %t259 = load i32, ptr %t5 %t260 = getelementptr inbounds %LSlice, ptr %t258, i32 0, i32 0 %t261 = load ptr, ptr %t260 %t262 = getelementptr inbounds %LSlice, ptr %t258, i32 0, i32 1 %t263 = load i32, ptr %t262 %t264 = icmp ult i32 %t259, %t263 br i1 %t264, label %ixok51, label %ixbad52 ixbad52: %t265 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t265, ptr @.fmt_bounds, ptr @.str11988, i32 %t259, i32 %t263) call void @exit(i32 1) unreachable ixok51: %t266 = getelementptr inbounds ptr, ptr %t261, i32 %t259 %t267 = load ptr, ptr %t266 store ptr %t267, ptr %t268 %t269 = load i32, ptr %t36 %t270 = call ptr @fn_itoa(i32 %t269) store ptr %t270, ptr %t271 call void @fn_emit(ptr @.str11989) %t272 = load ptr, ptr %t271 call void @fn_emit(ptr %t272) call void @fn_emit(ptr @.str11990) %t273 = load ptr, ptr %t271 call void @fn_emit(ptr %t273) call void @fn_emit(ptr @.str11991) call void @fn_emit(ptr @.str11992) %t274 = load ptr, ptr %t271 call void @fn_emit(ptr %t274) call void @fn_emit(ptr @.str11993) %t275 = load ptr, ptr %t271 call void @fn_emit(ptr %t275) call void @fn_emit(ptr @.str11994) %t276 = load ptr, ptr %t271 call void @fn_emit(ptr %t276) call void @fn_emit(ptr @.str11995) call void @fn_emit(ptr @.str11996) %t277 = load ptr, ptr %t271 call void @fn_emit(ptr %t277) call void @fn_emit(ptr @.str11997) store i32 0, ptr %t278 br label %wcond53 wcond53: %t279 = load i32, ptr %t278 %t280 = load ptr, ptr %t268 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 7 %t282 = load ptr, ptr %t281 %t283 = getelementptr inbounds %LSlice, ptr %t282, i32 0, i32 1 %t284 = load i32, ptr %t283 %t285 = icmp slt i32 %t279, %t284 %t286 = zext i1 %t285 to i32 %t287 = icmp ne i32 %t286, 0 br i1 %t287, label %wbody54, label %wend55 wbody54: %t288 = load ptr, ptr %t268 %t289 = getelementptr inbounds %Cmp_Node, ptr %t288, i32 0, i32 7 %t290 = load ptr, ptr %t289 %t291 = load i32, ptr %t278 %t292 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 0 %t293 = load ptr, ptr %t292 %t294 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 1 %t295 = load i32, ptr %t294 %t296 = icmp ult i32 %t291, %t295 br i1 %t296, label %ixok56, label %ixbad57 ixbad57: %t297 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t297, ptr @.fmt_bounds, ptr @.str11998, i32 %t291, i32 %t295) call void @exit(i32 1) unreachable ixok56: %t298 = getelementptr inbounds ptr, ptr %t293, i32 %t291 %t299 = load ptr, ptr %t298 %t300 = getelementptr inbounds %Cmp_Node, ptr %t299, i32 0, i32 3 %t301 = load ptr, ptr %t300 %t302 = call ptr @fn_emit_str_const(ptr %t301) store ptr %t302, ptr %t303 %t304 = load ptr, ptr %t271 %t305 = call ptr @lp_str_concat(ptr %t304, ptr @.str11999) %t306 = load i32, ptr %t278 %t307 = call ptr @fn_itoa(i32 %t306) %t308 = call ptr @lp_str_concat(ptr %t305, ptr %t307) store ptr %t308, ptr %t309 call void @fn_emit(ptr @.str12000) %t310 = load ptr, ptr %t309 call void @fn_emit(ptr %t310) call void @fn_emit(ptr @.str12001) %t311 = load i32, ptr %t278 %t312 = call ptr @fn_itoa(i32 %t311) call void @fn_emit(ptr %t312) call void @fn_emit(ptr @.str12002) call void @fn_emit(ptr @.str12003) %t313 = load ptr, ptr %t309 call void @fn_emit(ptr %t313) call void @fn_emit(ptr @.str12004) %t314 = load ptr, ptr %t309 call void @fn_emit(ptr %t314) call void @fn_emit(ptr @.str12005) %t315 = load ptr, ptr %t309 call void @fn_emit(ptr %t315) call void @fn_emit(ptr @.str12006) call void @fn_emit(ptr @.str12007) %t316 = load ptr, ptr %t309 call void @fn_emit(ptr %t316) call void @fn_emit(ptr @.str12008) %t317 = load ptr, ptr %t303 call void @fn_emit(ptr %t317) call void @fn_emit(ptr @.str12009) call void @fn_emit(ptr @.str12010) %t318 = load ptr, ptr %t309 call void @fn_emit(ptr %t318) call void @fn_emit(ptr @.str12011) %t319 = load i32, ptr %t278 %t320 = add i32 %t319, 1 store i32 %t320, ptr %t278 br label %wcond53 wend55: call void @fn_emit(ptr @.str12012) %t321 = load ptr, ptr %t3 call void @fn_emit(ptr %t321) call void @fn_emit(ptr @.str12013) call void @fn_emit(ptr @.str12014) %t322 = load ptr, ptr %t271 call void @fn_emit(ptr %t322) call void @fn_emit(ptr @.str12015) %t323 = load i32, ptr %t36 %t324 = add i32 %t323, 1 store i32 %t324, ptr %t36 br label %ifend50 ifend50: %t325 = load i32, ptr %t5 %t326 = add i32 %t325, 1 store i32 %t326, ptr %t5 br label %wcond43 wend45: call void @fn_emit(ptr @.str12016) %t327 = load ptr, ptr %t3 call void @fn_emit(ptr %t327) call void @fn_emit(ptr @.str12017) br label %ret ret: ret void } define void @fn_emit_tick_helpers() { entry: call void @fn_emit(ptr @.str12018) store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl call void @fn_emit_calls_for_phase(ptr @.str12019) call void @fn_emit_calls_for_phase(ptr @.str12020) call void @fn_emit_calls_for_phase(ptr @.str12021) call void @fn_emit_calls_for_phase(ptr @.str12022) call void @fn_emit(ptr @.str12023) call void @fn_emit(ptr @.str12024) store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl call void @fn_emit_calls_for_phase(ptr @.str12025) call void @fn_emit_calls_for_phase(ptr @.str12026) call void @fn_emit(ptr @.str12027) br label %ret ret: ret void } define void @fn_emit_game_defs() { entry: %t0 = alloca i32 call void @fn_emit_system_registry() store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str12028, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 9 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load ptr, ptr @g_prog %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str12029, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 call void @fn_emit_system_fn(ptr %t32) br label %ifend7 ifend7: %t33 = load i32, ptr %t0 %t34 = add i32 %t33, 1 store i32 %t34, ptr %t0 br label %wcond0 wend2: call void @fn_emit_despawn_hooks() call void @fn_emit_scene_hooks() %t35 = call i32 @fn_has_countdowns() %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then10, label %ifend12 then10: call void @fn_emit_countdown_system() br label %ifend12 ifend12: %t37 = call i32 @fn_has_prefabs() %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then13, label %ifend15 then13: call void @fn_emit_prefab_fns() br label %ifend15 ifend15: call void @fn_emit_tick_helpers() br label %ret ret: ret void } define void @fn_emit_game_main() { entry: %t12 = alloca i32 %t55 = alloca ptr %t60 = alloca ptr %t66 = alloca ptr %t71 = alloca ptr %t78 = alloca ptr %t81 = alloca i32 %t93 = alloca ptr %t100 = alloca ptr %t102 = alloca i32 %t114 = alloca ptr %t116 = alloca i32 %t129 = alloca ptr %t133 = alloca i32 %t145 = alloca ptr %t150 = alloca ptr call void @fn_emit_game_defs() call void @fn_emit(ptr @.str12030) call void @fn_emit(ptr @.str12031) call void @fn_emit(ptr @.str12032) %t0 = call ptr @fn_find_fn(ptr @.str12033) %t1 = icmp ne ptr %t0, null %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str12034) br label %ifend2 ifend2: call void @fn_emit(ptr @.str12035) call void @fn_emit_calls_for_phase(ptr @.str12036) %t4 = load ptr, ptr @g_g_scenes %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp sgt i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str12037) %t10 = load i32, ptr @g_g_start_scene %t11 = call ptr @fn_itoa(i32 %t10) call void @fn_emit(ptr %t11) call void @fn_emit(ptr @.str12038) store i32 0, ptr %t12 br label %wcond6 wcond6: %t13 = load i32, ptr %t12 %t14 = load ptr, ptr @g_g_scenes %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp slt i32 %t13, %t16 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody7, label %wend8 wbody7: %t20 = load ptr, ptr @g_g_scenes %t21 = load i32, ptr %t12 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok9, label %ixbad10 ixbad10: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str12039, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok9: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 2 %t31 = load i32, ptr %t30 %t32 = load i32, ptr @g_g_start_scene %t33 = icmp eq i32 %t31, %t32 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then11, label %ifend13 then11: call void @fn_emit(ptr @.str12040) %t36 = load ptr, ptr @g_g_scenes %t37 = load i32, ptr %t12 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok14, label %ixbad15 ixbad15: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str12041, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok14: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 call void @fn_emit(ptr %t47) call void @fn_emit(ptr @.str12042) br label %ifend13 ifend13: %t48 = load i32, ptr %t12 %t49 = add i32 %t48, 1 store i32 %t49, ptr %t12 br label %wcond6 wend8: br label %ifend5 ifend5: %t50 = call ptr @fn_find_event(ptr @.str12043) %t51 = icmp ne ptr %t50, null %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then16, label %ifend18 then16: call void @fn_emit(ptr @.str12044) br label %ifend18 ifend18: call void @fn_emit(ptr @.str12045) call void @fn_emit(ptr @.str12046) %t54 = call ptr @fn_emit_bind(ptr @.str12047) store ptr %t54, ptr %t55 %t56 = load ptr, ptr %t55 %t57 = call ptr @lp_str_concat(ptr @.str12048, ptr %t56) %t58 = call ptr @lp_str_concat(ptr %t57, ptr @.str12049) %t59 = call ptr @fn_emit_bind(ptr %t58) store ptr %t59, ptr %t60 %t61 = call ptr @fn_find_fn(ptr @.str12050) %t62 = icmp ne ptr %t61, null %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then19, label %else20 then19: %t65 = call ptr @fn_emit_bind(ptr @.str12051) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t66 %t68 = call ptr @lp_str_concat(ptr @.str12052, ptr %t67) %t69 = call ptr @lp_str_concat(ptr %t68, ptr @.str12053) %t70 = call ptr @fn_emit_bind(ptr %t69) store ptr %t70, ptr %t71 %t72 = load ptr, ptr %t60 %t73 = call ptr @lp_str_concat(ptr @.str12054, ptr %t72) %t74 = call ptr @lp_str_concat(ptr %t73, ptr @.str12055) %t75 = load ptr, ptr %t71 %t76 = call ptr @lp_str_concat(ptr %t74, ptr %t75) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 call void @fn_emit(ptr @.str12056) %t79 = load ptr, ptr %t78 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str12057) br label %ifend21 else20: call void @fn_emit(ptr @.str12058) %t80 = load ptr, ptr %t60 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str12059) br label %ifend21 ifend21: call void @fn_emit(ptr @.str12060) %t82 = load i32, ptr @g_g_uses_input %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t81 br i1 %t83, label %sc22, label %scend23 sc22: %t85 = call ptr @fn_find_fn(ptr @.str12061) %t86 = icmp ne ptr %t85, null %t87 = zext i1 %t86 to i32 %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t81 br label %scend23 scend23: %t90 = load i32, ptr %t81 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then24, label %else25 then24: %t92 = call ptr @fn_emit_bind(ptr @.str12062) store ptr %t92, ptr %t93 call void @fn_emit(ptr @.str12063) %t94 = load ptr, ptr %t93 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str12064) br label %ifend26 else25: %t95 = call ptr @fn_find_fn(ptr @.str12065) %t96 = icmp ne ptr %t95, null %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then27, label %ifend29 then27: %t99 = call ptr @fn_emit_bind(ptr @.str12066) store ptr %t99, ptr %t100 call void @fn_emit(ptr @.str12067) %t101 = load ptr, ptr %t100 call void @fn_emit(ptr %t101) call void @fn_emit(ptr @.str12068) br label %ifend29 ifend29: br label %ifend26 ifend26: %t103 = call i32 @fn_has_ui() %t104 = icmp ne i32 %t103, 0 %t105 = zext i1 %t104 to i32 store i32 %t105, ptr %t102 br i1 %t104, label %sc30, label %scend31 sc30: %t106 = call ptr @fn_find_fn(ptr @.str12069) %t107 = icmp ne ptr %t106, null %t108 = zext i1 %t107 to i32 %t109 = icmp ne i32 %t108, 0 %t110 = zext i1 %t109 to i32 store i32 %t110, ptr %t102 br label %scend31 scend31: %t111 = load i32, ptr %t102 %t112 = icmp ne i32 %t111, 0 br i1 %t112, label %then32, label %ifend34 then32: %t113 = call ptr @fn_emit_bind(ptr @.str12070) store ptr %t113, ptr %t114 call void @fn_emit(ptr @.str12071) %t115 = load ptr, ptr %t114 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str12072) br label %ifend34 ifend34: call void @fn_emit_calls_for_phase(ptr @.str12073) call void @fn_emit_calls_for_phase(ptr @.str12074) call void @fn_emit_calls_for_phase(ptr @.str12075) call void @fn_emit_calls_for_phase(ptr @.str12076) %t117 = load i32, ptr @g_g_has_clear_color %t118 = icmp ne i32 %t117, 0 %t119 = zext i1 %t118 to i32 store i32 %t119, ptr %t116 br i1 %t118, label %sc35, label %scend36 sc35: %t120 = call ptr @fn_find_fn(ptr @.str12077) %t121 = icmp ne ptr %t120, null %t122 = zext i1 %t121 to i32 %t123 = icmp ne i32 %t122, 0 %t124 = zext i1 %t123 to i32 store i32 %t124, ptr %t116 br label %scend36 scend36: %t125 = load i32, ptr %t116 %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then37, label %ifend39 then37: %t127 = load ptr, ptr @g_g_clear_color %t128 = call ptr @fn_emit_expr(ptr %t127) store ptr %t128, ptr %t129 call void @fn_emit(ptr @.str12078) %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds %Cmp_Val, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 call void @fn_emit(ptr %t132) call void @fn_emit(ptr @.str12079) br label %ifend39 ifend39: call void @fn_emit_calls_for_phase(ptr @.str12080) call void @fn_emit_calls_for_phase(ptr @.str12081) %t134 = load i32, ptr @g_g_has_clear_color %t135 = icmp ne i32 %t134, 0 %t136 = zext i1 %t135 to i32 store i32 %t136, ptr %t133 br i1 %t135, label %sc40, label %scend41 sc40: %t137 = call ptr @fn_find_fn(ptr @.str12082) %t138 = icmp ne ptr %t137, null %t139 = zext i1 %t138 to i32 %t140 = icmp ne i32 %t139, 0 %t141 = zext i1 %t140 to i32 store i32 %t141, ptr %t133 br label %scend41 scend41: %t142 = load i32, ptr %t133 %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %then42, label %ifend44 then42: call void @fn_emit(ptr @.str12083) br label %ifend44 ifend44: %t144 = call ptr @fn_emit_bind(ptr @.str12084) store ptr %t144, ptr %t145 %t146 = load ptr, ptr %t145 %t147 = call ptr @lp_str_concat(ptr @.str12085, ptr %t146) %t148 = call ptr @lp_str_concat(ptr %t147, ptr @.str12086) %t149 = call ptr @fn_emit_bind(ptr %t148) store ptr %t149, ptr %t150 call void @fn_emit(ptr @.str12087) %t151 = load ptr, ptr %t150 call void @fn_emit(ptr %t151) call void @fn_emit(ptr @.str12088) call void @fn_emit(ptr @.str12089) call void @fn_emit(ptr @.str12090) %t152 = load ptr, ptr @g_g_ondespawn %t153 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 1 %t154 = load i32, ptr %t153 %t155 = icmp sgt i32 %t154, 0 %t156 = zext i1 %t155 to i32 %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then45, label %ifend47 then45: call void @fn_emit(ptr @.str12091) br label %ifend47 ifend47: call void @fn_emit_calls_for_phase(ptr @.str12092) %t158 = call ptr @fn_find_event(ptr @.str12093) %t159 = icmp ne ptr %t158, null %t160 = zext i1 %t159 to i32 %t161 = icmp ne i32 %t160, 0 br i1 %t161, label %then48, label %ifend50 then48: call void @fn_emit(ptr @.str12094) br label %ifend50 ifend50: %t162 = call ptr @fn_find_fn(ptr @.str12095) %t163 = icmp ne ptr %t162, null %t164 = zext i1 %t163 to i32 %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then51, label %ifend53 then51: call void @fn_emit(ptr @.str12096) br label %ifend53 ifend53: call void @fn_emit(ptr @.str12097) br label %ret ret: ret void } define ptr @fn_machine_var(ptr %arg_a) { entry: %retval = alloca ptr %t0 = alloca ptr %t11 = alloca ptr store ptr %arg_a, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 33 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then0, label %ifend2 then0: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_find_global(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = icmp ne ptr %t12, null %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: %t16 = load ptr, ptr %t11 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0 %t18 = load i32, ptr %t17 %t19 = icmp eq i32 %t18, 2 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then6, label %ifend8 then6: %t22 = load ptr, ptr %t11 store ptr %t22, ptr %retval br label %ret ifend8: br label %ifend5 ifend5: br label %ifend2 ifend2: store ptr null, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval ret ptr %t23 } define ptr @fn_machine_state_value(ptr %arg_m, ptr %arg_state) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t18 = alloca ptr %t36 = alloca i32 store ptr %arg_m, ptr %t0 store ptr %arg_state, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 5 %t4 = load ptr, ptr %t3 %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: %t8 = load ptr, ptr %t1 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 5 %t10 = load ptr, ptr %t9 %t11 = call ptr @fn_emit_expr(ptr %t10) %t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 store ptr %t13, ptr %retval br label %ret ifend2: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 4 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_machine_var(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = icmp ne ptr %t19, null %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then3, label %ifend5 then3: %t23 = load ptr, ptr %t18 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 3 %t25 = load ptr, ptr %t24 %t26 = icmp ne ptr %t25, null %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then6, label %ifend8 then6: %t29 = load ptr, ptr %t18 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 3 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr %t1 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 %t35 = call i32 @fn_enum_ordinal(ptr %t31, ptr %t34) store i32 %t35, ptr %t36 %t37 = load i32, ptr %t36 %t38 = icmp sge i32 %t37, 0 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then9, label %ifend11 then9: %t41 = load i32, ptr %t36 %t42 = call ptr @fn_itoa(i32 %t41) store ptr %t42, ptr %retval br label %ret ifend11: %t43 = load ptr, ptr %t18 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 3 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_find_enum(ptr %t45) %t47 = icmp ne ptr %t46, null %t48 = zext i1 %t47 to i32 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then12, label %ifend14 then12: %t50 = load ptr, ptr %t1 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 1 %t52 = load ptr, ptr %t51 %t53 = call ptr @lp_str_concat(ptr @.str12098, ptr %t52) %t54 = call ptr @lp_str_concat(ptr %t53, ptr @.str12099) %t55 = load ptr, ptr %t18 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 3 %t57 = load ptr, ptr %t56 %t58 = call ptr @lp_str_concat(ptr %t54, ptr %t57) call void @fn_perr(ptr %t58) br label %ifend14 ifend14: br label %ifend8 ifend8: br label %ifend5 ifend5: %t59 = load ptr, ptr %t1 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 2 %t61 = load i32, ptr %t60 %t62 = call ptr @fn_itoa(i32 %t61) store ptr %t62, ptr %retval br label %ret ret: %t63 = load ptr, ptr %retval ret ptr %t63 } define void @fn_emit_machine(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t6 = alloca ptr %t22 = alloca ptr %t69 = alloca ptr %t70 = alloca i32 %t92 = alloca ptr %t96 = alloca ptr %t103 = alloca ptr %t105 = alloca ptr %t107 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_machine_var(ptr %t3) store ptr %t4, ptr %t5 store ptr @.str12100, ptr %t6 %t7 = load ptr, ptr %t5 %t8 = icmp ne ptr %t7, null %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %else1 then0: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 1 %t15 = load ptr, ptr %t14 %t16 = call ptr @lp_str_concat(ptr @.str12101, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t6 br label %ifend2 else1: %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_emit_expr(ptr %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @lp_str_concat(ptr @.str12102, ptr %t25) %t27 = call ptr @lp_str_concat(ptr %t26, ptr @.str12103) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t6 br label %ifend2 ifend2: %t29 = load i32, ptr @g_nmach %t30 = load ptr, ptr @g_mach_stk %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp slt i32 %t29, %t32 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then3, label %else4 then3: %t36 = load ptr, ptr @g_mach_stk %t37 = load i32, ptr @g_nmach %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok6, label %ixbad7 ixbad7: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str12104, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok6: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t0 store ptr %t45, ptr %t44 br label %ifend5 else4: %t46 = load ptr, ptr @g_mach_stk %t47 = load ptr, ptr %t0 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 2 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t51 = load i32, ptr %t48 %t52 = load i32, ptr %t49 %t53 = icmp sge i32 %t51, %t52 br i1 %t53, label %grow8, label %put9 grow8: %t54 = mul i32 %t52, 2 %t55 = icmp eq i32 %t52, 0 %t56 = select i1 %t55, i32 8, i32 %t54 %t57 = getelementptr ptr, ptr null, i32 1 %t58 = ptrtoint ptr %t57 to i64 %t59 = zext i32 %t56 to i64 %t60 = mul i64 %t59, %t58 %t61 = load ptr, ptr %t50 %t62 = call ptr @realloc(ptr %t61, i64 %t60) store ptr %t62, ptr %t50 store i32 %t56, ptr %t49 br label %put9 put9: %t63 = load ptr, ptr %t50 %t64 = getelementptr inbounds ptr, ptr %t63, i32 %t51 store ptr %t47, ptr %t64 %t65 = add i32 %t51, 1 store i32 %t65, ptr %t48 br label %ifend5 ifend5: %t66 = load i32, ptr @g_nmach %t67 = add i32 %t66, 1 store i32 %t67, ptr @g_nmach %t68 = call ptr @fn_lbl(ptr @.str12105) store ptr %t68, ptr %t69 store i32 0, ptr %t70 br label %wcond10 wcond10: %t71 = load i32, ptr %t70 %t72 = load ptr, ptr %t0 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 7 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp slt i32 %t71, %t76 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %wbody11, label %wend12 wbody11: %t80 = load ptr, ptr %t0 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 7 %t82 = load ptr, ptr %t81 %t83 = load i32, ptr %t70 %t84 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 1 %t87 = load i32, ptr %t86 %t88 = icmp ult i32 %t83, %t87 br i1 %t88, label %ixok13, label %ixbad14 ixbad14: %t89 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t89, ptr @.fmt_bounds, ptr @.str12106, i32 %t83, i32 %t87) call void @exit(i32 1) unreachable ixok13: %t90 = getelementptr inbounds ptr, ptr %t85, i32 %t83 %t91 = load ptr, ptr %t90 store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t0 %t94 = load ptr, ptr %t92 %t95 = call ptr @fn_machine_state_value(ptr %t93, ptr %t94) store ptr %t95, ptr %t96 %t97 = load ptr, ptr %t6 %t98 = call ptr @lp_str_concat(ptr @.str12107, ptr %t97) %t99 = call ptr @lp_str_concat(ptr %t98, ptr @.str12108) %t100 = load ptr, ptr %t96 %t101 = call ptr @lp_str_concat(ptr %t99, ptr %t100) %t102 = call ptr @fn_emit_bind(ptr %t101) store ptr %t102, ptr %t103 %t104 = call ptr @fn_lbl(ptr @.str12109) store ptr %t104, ptr %t105 %t106 = call ptr @fn_lbl(ptr @.str12110) store ptr %t106, ptr %t107 call void @fn_emit(ptr @.str12111) %t108 = load ptr, ptr %t103 call void @fn_emit(ptr %t108) call void @fn_emit(ptr @.str12112) %t109 = load ptr, ptr %t105 call void @fn_emit(ptr %t109) call void @fn_emit(ptr @.str12113) %t110 = load ptr, ptr %t107 call void @fn_emit(ptr %t110) call void @fn_emit(ptr @.str12114) %t111 = load ptr, ptr %t105 call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str12115) store i32 0, ptr @g_g_term %t112 = load ptr, ptr %t92 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 4 %t114 = load ptr, ptr %t113 call void @fn_emit_block(ptr %t114) %t115 = load i32, ptr @g_g_term %t116 = icmp eq i32 %t115, 0 %t117 = zext i1 %t116 to i32 %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then15, label %ifend17 then15: call void @fn_emit(ptr @.str12116) %t119 = load ptr, ptr %t69 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str12117) br label %ifend17 ifend17: %t120 = load ptr, ptr %t107 call void @fn_emit(ptr %t120) call void @fn_emit(ptr @.str12118) store i32 0, ptr @g_g_term %t121 = load i32, ptr %t70 %t122 = add i32 %t121, 1 store i32 %t122, ptr %t70 br label %wcond10 wend12: %t123 = load i32, ptr @g_g_term %t124 = icmp eq i32 %t123, 0 %t125 = zext i1 %t124 to i32 %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then18, label %ifend20 then18: call void @fn_emit(ptr @.str12119) %t127 = load ptr, ptr %t69 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str12120) br label %ifend20 ifend20: %t128 = load ptr, ptr %t69 call void @fn_emit(ptr %t128) call void @fn_emit(ptr @.str12121) store i32 0, ptr @g_g_term %t129 = load i32, ptr @g_nmach %t130 = sub i32 %t129, 1 store i32 %t130, ptr @g_nmach br label %ret ret: ret void } define void @fn_emit_become(ptr %arg_st) { entry: %t0 = alloca ptr %t16 = alloca ptr %t17 = alloca ptr %t18 = alloca i32 %t69 = alloca ptr %t73 = alloca ptr %t88 = alloca ptr %t97 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load i32, ptr @g_nmach %t2 = icmp sgt i32 %t1, 0 %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = load ptr, ptr @g_mach_stk %t6 = load i32, ptr @g_nmach %t7 = sub i32 %t6, 1 %t8 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp ult i32 %t7, %t11 br i1 %t12, label %ixok3, label %ixbad4 ixbad4: %t13 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t13, ptr @.fmt_bounds, ptr @.str12122, i32 %t7, i32 %t11) call void @exit(i32 1) unreachable ixok3: %t14 = getelementptr inbounds ptr, ptr %t9, i32 %t7 %t15 = load ptr, ptr %t14 store ptr %t15, ptr %t16 store ptr null, ptr %t17 store i32 0, ptr %t18 br label %wcond5 wcond5: %t19 = load i32, ptr %t18 %t20 = load ptr, ptr %t16 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 7 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp slt i32 %t19, %t24 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %wbody6, label %wend7 wbody6: %t28 = load ptr, ptr %t16 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7 %t30 = load ptr, ptr %t29 %t31 = load i32, ptr %t18 %t32 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1 %t35 = load i32, ptr %t34 %t36 = icmp ult i32 %t31, %t35 br i1 %t36, label %ixok8, label %ixbad9 ixbad9: %t37 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t37, ptr @.fmt_bounds, ptr @.str12123, i32 %t31, i32 %t35) call void @exit(i32 1) unreachable ixok8: %t38 = getelementptr inbounds ptr, ptr %t33, i32 %t31 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 1 %t41 = load ptr, ptr %t40 %t42 = load ptr, ptr %t0 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 1 %t44 = load ptr, ptr %t43 %t45 = call i32 @lp_str_eq(ptr %t41, ptr %t44) %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then10, label %ifend12 then10: %t47 = load ptr, ptr %t16 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 7 %t49 = load ptr, ptr %t48 %t50 = load i32, ptr %t18 %t51 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp ult i32 %t50, %t54 br i1 %t55, label %ixok13, label %ixbad14 ixbad14: %t56 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t56, ptr @.fmt_bounds, ptr @.str12124, i32 %t50, i32 %t54) call void @exit(i32 1) unreachable ixok13: %t57 = getelementptr inbounds ptr, ptr %t52, i32 %t50 %t58 = load ptr, ptr %t57 store ptr %t58, ptr %t17 br label %ifend12 ifend12: %t59 = load i32, ptr %t18 %t60 = add i32 %t59, 1 store i32 %t60, ptr %t18 br label %wcond5 wend7: %t61 = load ptr, ptr %t17 %t62 = icmp ne ptr %t61, null %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then15, label %ifend17 then15: %t65 = load ptr, ptr %t16 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 4 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_machine_var(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t16 %t71 = load ptr, ptr %t17 %t72 = call ptr @fn_machine_state_value(ptr %t70, ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t69 %t75 = icmp ne ptr %t74, null %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then18, label %else19 then18: call void @fn_emit(ptr @.str12125) %t78 = load ptr, ptr %t73 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str12126) %t79 = load ptr, ptr %t16 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 4 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 1 %t83 = load ptr, ptr %t82 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str12127) br label %ifend20 else19: %t84 = load ptr, ptr %t16 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 4 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_emit_expr(ptr %t86) store ptr %t87, ptr %t88 call void @fn_emit(ptr @.str12128) %t89 = load ptr, ptr %t88 %t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 0 %t91 = load ptr, ptr %t90 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str12129) %t92 = load ptr, ptr %t73 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str12130) br label %ifend20 ifend20: br label %ret ifend17: br label %ifend2 ifend2: %t93 = load ptr, ptr %t0 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 1 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_find_scene(ptr %t95) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t97 %t99 = icmp eq ptr %t98, null %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then21, label %ifend23 then21: %t102 = load ptr, ptr %t0 %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 1 %t104 = load ptr, ptr %t103 %t105 = call ptr @lp_str_concat(ptr @.str12131, ptr %t104) call void @fn_perr(ptr %t105) br label %ifend23 ifend23: %t106 = load ptr, ptr @g_g_cur_scene %t107 = icmp ne ptr %t106, null %t108 = zext i1 %t107 to i32 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then24, label %else25 then24: call void @fn_emit(ptr @.str12132) %t110 = load ptr, ptr @g_g_cur_scene %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1 %t112 = load ptr, ptr %t111 call void @fn_emit(ptr %t112) call void @fn_emit(ptr @.str12133) br label %ifend26 else25: call void @fn_emit(ptr @.str12134) br label %ifend26 ifend26: call void @fn_emit(ptr @.str12135) %t113 = load ptr, ptr %t97 %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 2 %t115 = load i32, ptr %t114 %t116 = call ptr @fn_itoa(i32 %t115) call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str12136) call void @fn_emit(ptr @.str12137) %t117 = load ptr, ptr %t97 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 1 %t119 = load ptr, ptr %t118 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str12138) br label %ret ret: ret void } define void @fn_emit_io(ptr %arg_fn2, ptr %arg_p, ptr %arg_bytes) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t9 = alloca ptr %t22 = alloca ptr %t32 = alloca ptr %t47 = alloca ptr store ptr %arg_fn2, ptr %t0 store ptr %arg_p, ptr %t1 store ptr %arg_bytes, ptr %t2 %t3 = load ptr, ptr @g_g_snap_mode %t4 = call i32 @lp_str_eq(ptr %t3, ptr @.str12139) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load i32, ptr @g_g_iok %t7 = call ptr @fn_itoa(i32 %t6) %t8 = call ptr @lp_str_concat(ptr @.str12140, ptr %t7) store ptr %t8, ptr %t9 %t10 = load i32, ptr @g_g_iok %t11 = add i32 %t10, 1 store i32 %t11, ptr @g_g_iok call void @fn_emit(ptr @.str12141) %t12 = load ptr, ptr %t9 call void @fn_emit(ptr %t12) call void @fn_emit(ptr @.str12142) %t13 = load ptr, ptr %t0 call void @fn_emit(ptr %t13) call void @fn_emit(ptr @.str12143) %t14 = load ptr, ptr %t1 call void @fn_emit(ptr %t14) call void @fn_emit(ptr @.str12144) %t15 = load ptr, ptr %t2 call void @fn_emit(ptr %t15) call void @fn_emit(ptr @.str12145) br label %ret ifend2: %t16 = load ptr, ptr @g_g_snap_mode %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str12146) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load i32, ptr @g_g_iok %t20 = call ptr @fn_itoa(i32 %t19) %t21 = call ptr @lp_str_concat(ptr @.str12147, ptr %t20) store ptr %t21, ptr %t22 call void @fn_emit(ptr @.str12148) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str12149) %t24 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str12150) %t25 = load ptr, ptr %t2 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str12151) %t26 = load ptr, ptr %t22 store ptr %t26, ptr @g_g_off %t27 = load i32, ptr @g_g_iok %t28 = add i32 %t27, 1 store i32 %t28, ptr @g_g_iok br label %ret ifend5: %t29 = load i32, ptr @g_g_iok %t30 = call ptr @fn_itoa(i32 %t29) %t31 = call ptr @lp_str_concat(ptr @.str12152, ptr %t30) store ptr %t31, ptr %t32 call void @fn_emit(ptr @.str12153) %t33 = load ptr, ptr %t32 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str12154) %t34 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str12155) %t35 = load ptr, ptr @g_g_snap_mode %t36 = call i32 @lp_str_eq(ptr %t35, ptr @.str12156) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then6, label %else7 then6: call void @fn_emit(ptr @.str12157) %t38 = load ptr, ptr %t32 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str12158) %t39 = load ptr, ptr %t1 call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str12159) %t40 = load ptr, ptr %t2 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str12160) br label %ifend8 else7: call void @fn_emit(ptr @.str12161) %t41 = load ptr, ptr %t1 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str12162) %t42 = load ptr, ptr %t32 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str12163) %t43 = load ptr, ptr %t2 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str12164) br label %ifend8 ifend8: %t44 = load i32, ptr @g_g_iok %t45 = call ptr @fn_itoa(i32 %t44) %t46 = call ptr @lp_str_concat(ptr @.str12165, ptr %t45) store ptr %t46, ptr %t47 call void @fn_emit(ptr @.str12166) %t48 = load ptr, ptr %t47 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str12167) %t49 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str12168) %t50 = load ptr, ptr %t2 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str12169) %t51 = load ptr, ptr %t47 store ptr %t51, ptr @g_g_off %t52 = load i32, ptr @g_g_iok %t53 = add i32 %t52, 1 store i32 %t53, ptr @g_g_iok br label %ret ret: ret void } define void @fn_emit_snapshot_blocks(ptr %arg_fn2) { entry: %t0 = alloca ptr %t2 = alloca ptr %t12 = alloca i32 %t51 = alloca i32 %t86 = alloca ptr %t90 = alloca ptr store ptr %arg_fn2, ptr %t0 store i32 0, ptr @g_g_iok store ptr @.str12170, ptr @g_g_off %t1 = call ptr @fn_itoa(i32 1024) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t3, ptr @.str12171, ptr @.str12172) %t4 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t4, ptr @.str12173, ptr @.str12174) call void @fn_emit(ptr @.str12175) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str12176) %t6 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t6, ptr @.str12177, ptr @.str12178) %t7 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t7, ptr @.str12179, ptr @.str12180) %t8 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t8, ptr @.str12181, ptr @.str12182) %t9 = call i32 @fn_net_has_owned() %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t11, ptr @.str12183, ptr @.str12184) br label %ifend2 ifend2: store i32 0, ptr %t12 br label %wcond3 wcond3: %t13 = load i32, ptr %t12 %t14 = load ptr, ptr @g_prog %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp slt i32 %t13, %t16 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody4, label %wend5 wbody4: %t20 = load ptr, ptr @g_prog %t21 = load i32, ptr %t12 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok6, label %ixbad7 ixbad7: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str12185, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok6: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 2 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then8, label %ifend10 then8: %t35 = load ptr, ptr %t0 %t36 = load ptr, ptr @g_prog %t37 = load i32, ptr %t12 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok11, label %ixbad12 ixbad12: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str12187, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok11: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = call ptr @lp_str_concat(ptr @.str12186, ptr %t47) call void @fn_emit_io(ptr %t35, ptr %t48, ptr @.str12188) br label %ifend10 ifend10: %t49 = load i32, ptr %t12 %t50 = add i32 %t49, 1 store i32 %t50, ptr %t12 br label %wcond3 wend5: store i32 0, ptr %t51 store i32 0, ptr %t12 br label %wcond13 wcond13: %t52 = load i32, ptr %t12 %t53 = load ptr, ptr @g_prog %t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp slt i32 %t52, %t55 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %wbody14, label %wend15 wbody14: %t59 = load ptr, ptr @g_prog %t60 = load i32, ptr %t12 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = icmp ult i32 %t60, %t64 br i1 %t65, label %ixok16, label %ixbad17 ixbad17: %t66 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t66, ptr @.fmt_bounds, ptr @.str12189, i32 %t60, i32 %t64) call void @exit(i32 1) unreachable ixok16: %t67 = getelementptr inbounds ptr, ptr %t62, i32 %t60 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 0 %t70 = load i32, ptr %t69 %t71 = icmp eq i32 %t70, 8 %t72 = zext i1 %t71 to i32 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then18, label %ifend20 then18: %t74 = load ptr, ptr @g_prog %t75 = load i32, ptr %t12 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t79 = load i32, ptr %t78 %t80 = icmp ult i32 %t75, %t79 br i1 %t80, label %ixok21, label %ixbad22 ixbad22: %t81 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t81, ptr @.fmt_bounds, ptr @.str12190, i32 %t75, i32 %t79) call void @exit(i32 1) unreachable ixok21: %t82 = getelementptr inbounds ptr, ptr %t77, i32 %t75 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1 %t85 = load ptr, ptr %t84 store ptr %t85, ptr %t86 %t87 = load i32, ptr %t51 %t88 = call ptr @fn_itoa(i32 %t87) %t89 = call ptr @lp_str_concat(ptr @.str12191, ptr %t88) store ptr %t89, ptr %t90 call void @fn_emit(ptr @.str12192) %t91 = load ptr, ptr %t90 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str12193) %t92 = load ptr, ptr %t86 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str12194) %t93 = load ptr, ptr %t2 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str12195) %t94 = load ptr, ptr %t0 %t95 = load ptr, ptr %t86 %t96 = call ptr @lp_str_concat(ptr @.str12196, ptr %t95) %t97 = load ptr, ptr %t90 call void @fn_emit_io(ptr %t94, ptr %t96, ptr %t97) %t98 = load ptr, ptr %t0 %t99 = load ptr, ptr %t86 %t100 = call ptr @lp_str_concat(ptr @.str12197, ptr %t99) %t101 = load ptr, ptr %t2 call void @fn_emit_io(ptr %t98, ptr %t100, ptr %t101) %t102 = load i32, ptr %t51 %t103 = add i32 %t102, 1 store i32 %t103, ptr %t51 br label %ifend20 ifend20: %t104 = load i32, ptr %t12 %t105 = add i32 %t104, 1 store i32 %t105, ptr %t12 br label %wcond13 wend15: br label %ret ret: ret void } define void @fn_emit_snapshot() { entry: %t3 = alloca i32 %t7 = alloca i32 %t15 = alloca ptr %t22 = alloca ptr store ptr @.str12198, ptr @g_g_snap_mode call void @fn_emith(ptr @.str12199) call void @fn_emith(ptr @.str12200) call void @fn_emith(ptr @.str12201) %t0 = call ptr @fn_find_fn(ptr @.str12202) %t1 = icmp ne ptr %t0, null %t2 = zext i1 %t1 to i32 store i32 %t2, ptr %t3 %t4 = call ptr @fn_find_fn(ptr @.str12203) %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t7 call void @fn_emit(ptr @.str12204) call void @fn_emit(ptr @.str12205) call void @fn_emit(ptr @.str12206) call void @fn_emit(ptr @.str12207) call void @fn_emit_snapshot_blocks(ptr @.str12208) %t8 = load i32, ptr %t3 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str12209) br label %ifend2 ifend2: call void @fn_emit(ptr @.str12210) call void @fn_emit(ptr @.str12211) call void @fn_emit(ptr @.str12212) call void @fn_emit(ptr @.str12213) call void @fn_emit(ptr @.str12214) call void @fn_emit_snapshot_blocks(ptr @.str12215) %t10 = load i32, ptr %t7 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str12216) br label %ifend5 ifend5: call void @fn_emit(ptr @.str12217) call void @fn_emit(ptr @.str12218) store ptr @.str12219, ptr @g_g_snap_mode call void @fn_emit_snapshot_blocks(ptr @.str12220) %t12 = load i32, ptr @g_g_iok %t13 = call ptr @fn_itoa(i32 %t12) %t14 = call ptr @lp_str_concat(ptr @.str12221, ptr %t13) store ptr %t14, ptr %t15 call void @fn_emit(ptr @.str12222) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str12223) %t17 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str12224) call void @fn_emit(ptr @.str12225) %t18 = load ptr, ptr %t15 call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str12226) call void @fn_emit(ptr @.str12227) store ptr @.str12228, ptr @g_g_snap_mode call void @fn_emit_snapshot_blocks(ptr @.str12229) call void @fn_emit(ptr @.str12230) call void @fn_emit(ptr @.str12231) store ptr @.str12232, ptr @g_g_snap_mode call void @fn_emit_snapshot_blocks(ptr @.str12233) %t19 = load i32, ptr @g_g_iok %t20 = call ptr @fn_itoa(i32 %t19) %t21 = call ptr @lp_str_concat(ptr @.str12234, ptr %t20) store ptr %t21, ptr %t22 call void @fn_emit(ptr @.str12235) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str12236) %t24 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str12237) call void @fn_emit(ptr @.str12238) %t25 = load ptr, ptr %t22 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str12239) store ptr @.str12240, ptr @g_g_snap_mode br label %ret ret: ret void } define i32 @fn_net_field_ibytes(ptr %arg_ty) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_ty, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_llty(ptr %t1) %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str12241) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store i32 1, ptr %retval br label %ret ifend2: store i32 4, ptr %retval br label %ret ret: %t5 = load i32, ptr %retval ret i32 %t5 } define ptr @fn_net_field_bytes(ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr store ptr %arg_ty, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_llty(ptr %t1) %t3 = call i32 @lp_str_eq(ptr %t2, ptr @.str12242) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store ptr @.str12243, ptr %retval br label %ret ifend2: store ptr @.str12244, ptr %retval br label %ret ret: %t5 = load ptr, ptr %retval ret ptr %t5 } define i32 @fn_net_model_bytes(ptr %arg_m) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t44 = alloca ptr %t49 = alloca i32 store ptr %arg_m, ptr %t0 store i32 0, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t3, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr %t2 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 %t19 = load i32, ptr %t18 %t20 = icmp ult i32 %t15, %t19 br i1 %t20, label %ixok3, label %ixbad4 ixbad4: %t21 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t21, ptr @.fmt_bounds, ptr @.str12245, i32 %t15, i32 %t19) call void @exit(i32 1) unreachable ixok3: %t22 = getelementptr inbounds ptr, ptr %t17, i32 %t15 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 2 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 1 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then5, label %ifend7 then5: %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7 %t31 = load ptr, ptr %t30 %t32 = load i32, ptr %t2 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp ult i32 %t32, %t36 br i1 %t37, label %ixok8, label %ixbad9 ixbad9: %t38 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t38, ptr @.fmt_bounds, ptr @.str12246, i32 %t32, i32 %t36) call void @exit(i32 1) unreachable ixok8: %t39 = getelementptr inbounds ptr, ptr %t34, i32 %t32 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 %t43 = call ptr @fn_find_comp(ptr %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t44 %t46 = icmp ne ptr %t45, null %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then10, label %ifend12 then10: store i32 0, ptr %t49 br label %wcond13 wcond13: %t50 = load i32, ptr %t49 %t51 = load ptr, ptr %t44 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 7 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t55 = load i32, ptr %t54 %t56 = icmp slt i32 %t50, %t55 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %wbody14, label %wend15 wbody14: %t59 = load ptr, ptr %t44 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 7 %t61 = load ptr, ptr %t60 %t62 = load i32, ptr %t49 %t63 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t66 = load i32, ptr %t65 %t67 = icmp ult i32 %t62, %t66 br i1 %t67, label %ixok16, label %ixbad17 ixbad17: %t68 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t68, ptr @.fmt_bounds, ptr @.str12247, i32 %t62, i32 %t66) call void @exit(i32 1) unreachable ixok16: %t69 = getelementptr inbounds ptr, ptr %t64, i32 %t62 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 2 %t72 = load i32, ptr %t71 %t73 = icmp eq i32 %t72, 1 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then18, label %ifend20 then18: %t76 = load ptr, ptr %t44 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 7 %t78 = load ptr, ptr %t77 %t79 = load i32, ptr %t49 %t80 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t83 = load i32, ptr %t82 %t84 = icmp ult i32 %t79, %t83 br i1 %t84, label %ixok21, label %ixbad22 ixbad22: %t85 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t85, ptr @.fmt_bounds, ptr @.str12248, i32 %t79, i32 %t83) call void @exit(i32 1) unreachable ixok21: %t86 = getelementptr inbounds ptr, ptr %t81, i32 %t79 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 3 %t89 = load ptr, ptr %t88 %t90 = call i32 @fn_net_field_ibytes(ptr %t89) %t91 = load i32, ptr %t1 %t92 = add i32 %t91, %t90 store i32 %t92, ptr %t1 br label %ifend20 ifend20: %t93 = load i32, ptr %t49 %t94 = add i32 %t93, 1 store i32 %t94, ptr %t49 br label %wcond13 wend15: br label %ifend12 ifend12: br label %ifend7 ifend7: %t95 = load i32, ptr %t2 %t96 = add i32 %t95, 1 store i32 %t96, ptr %t2 br label %wcond0 wend2: %t97 = load i32, ptr %t1 store i32 %t97, ptr %retval br label %ret ret: %t98 = load i32, ptr %retval ret i32 %t98 } define i32 @fn_net_model_syncs(ptr %arg_m) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_m, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @fn_net_model_bytes(ptr %t1) %t3 = icmp sgt i32 %t2, 0 %t4 = zext i1 %t3 to i32 store i32 %t4, ptr %retval br label %ret ret: %t5 = load i32, ptr %retval ret i32 %t5 } define i32 @fn_net_has_sync() { entry: %retval = alloca i32 %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str12249, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 10 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load ptr, ptr @g_prog %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str12250, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 %t33 = call i32 @fn_net_model_syncs(ptr %t32) %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then10, label %ifend12 then10: store i32 1, ptr %retval br label %ret ifend12: br label %ifend7 ifend7: %t35 = load i32, ptr %t0 %t36 = add i32 %t35, 1 store i32 %t36, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t37 = load i32, ptr %retval ret i32 %t37 } define i32 @fn_net_has_owned() { entry: %retval = alloca i32 %t0 = alloca i32 %t8 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t0 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str12251, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0 %t20 = load i32, ptr %t19 %t21 = icmp eq i32 %t20, 10 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t8 br i1 %t23, label %sc5, label %scend6 sc5: %t25 = load ptr, ptr @g_prog %t26 = load i32, ptr %t0 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok7, label %ixbad8 ixbad8: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str12252, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok7: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2 %t36 = load i32, ptr %t35 %t37 = icmp eq i32 %t36, 1 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t8 br label %scend6 scend6: %t41 = load i32, ptr %t8 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t43 = load i32, ptr %t0 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t45 = load i32, ptr %retval ret i32 %t45 } define i32 @fn_net_has_role() { entry: %retval = alloca i32 %t0 = alloca i32 %t8 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t0 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str12253, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0 %t20 = load i32, ptr %t19 %t21 = icmp eq i32 %t20, 9 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t8 br i1 %t23, label %sc5, label %scend6 sc5: %t25 = load ptr, ptr @g_prog %t26 = load i32, ptr %t0 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok7, label %ixbad8 ixbad8: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str12254, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok7: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2 %t36 = load i32, ptr %t35 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t8 br label %scend6 scend6: %t41 = load i32, ptr %t8 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t43 = load i32, ptr %t0 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t45 = load i32, ptr %retval ret i32 %t45 } define i32 @fn_net_any() { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 %t2 = call i32 @fn_net_has_sync() %t3 = icmp ne i32 %t2, 0 %t4 = zext i1 %t3 to i32 store i32 %t4, ptr %t1 br i1 %t3, label %scend1, label %sc0 sc0: %t5 = call i32 @fn_net_has_owned() %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t1 br label %scend1 scend1: %t8 = load i32, ptr %t1 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t0 br i1 %t9, label %scend3, label %sc2 sc2: %t11 = call i32 @fn_net_has_role() %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t0 br label %scend3 scend3: %t14 = load i32, ptr %t0 store i32 %t14, ptr %retval br label %ret ret: %t15 = load i32, ptr %retval ret i32 %t15 } define void @fn_net_warn(ptr %arg_msg) { entry: %t0 = alloca ptr %t2 = alloca ptr store ptr %arg_msg, ptr %t0 %t1 = load ptr, ptr @__stderrp store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t2 %t4 = zext i32 23 to i64 %t5 = call i64 @fwrite(ptr @.str12255, i64 1, i64 %t4, ptr %t3) %t6 = trunc i64 %t5 to i32 %t7 = load ptr, ptr %t2 %t8 = load ptr, ptr %t0 %t9 = load ptr, ptr %t0 %t10 = call i64 @strlen(ptr %t9) %t11 = trunc i64 %t10 to i32 %t12 = zext i32 %t11 to i64 %t13 = call i64 @fwrite(ptr %t8, i64 1, i64 %t12, ptr %t7) %t14 = trunc i64 %t13 to i32 %t15 = load ptr, ptr %t2 %t16 = zext i32 1 to i64 %t17 = call i64 @fwrite(ptr @.str12256, i64 1, i64 %t16, ptr %t15) %t18 = trunc i64 %t17 to i32 br label %ret ret: ret void } define void @fn_net_check() { entry: %t0 = alloca i32 %t33 = alloca ptr %t34 = alloca i32 %t75 = alloca ptr %t78 = alloca ptr %t83 = alloca i32 %t84 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str12257, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 10 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: %t23 = load ptr, ptr @g_prog %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t28 = load i32, ptr %t27 %t29 = icmp ult i32 %t24, %t28 br i1 %t29, label %ixok8, label %ixbad9 ixbad9: %t30 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t30, ptr @.fmt_bounds, ptr @.str12258, i32 %t24, i32 %t28) call void @exit(i32 1) unreachable ixok8: %t31 = getelementptr inbounds ptr, ptr %t26, i32 %t24 %t32 = load ptr, ptr %t31 store ptr %t32, ptr %t33 store i32 0, ptr %t34 br label %wcond10 wcond10: %t35 = load i32, ptr %t34 %t36 = load ptr, ptr %t33 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp slt i32 %t35, %t40 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %wbody11, label %wend12 wbody11: %t44 = load ptr, ptr %t33 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7 %t46 = load ptr, ptr %t45 %t47 = load i32, ptr %t34 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 %t51 = load i32, ptr %t50 %t52 = icmp ult i32 %t47, %t51 br i1 %t52, label %ixok13, label %ixbad14 ixbad14: %t53 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t53, ptr @.fmt_bounds, ptr @.str12259, i32 %t47, i32 %t51) call void @exit(i32 1) unreachable ixok13: %t54 = getelementptr inbounds ptr, ptr %t49, i32 %t47 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 2 %t57 = load i32, ptr %t56 %t58 = icmp eq i32 %t57, 1 %t59 = zext i1 %t58 to i32 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then15, label %ifend17 then15: %t61 = load ptr, ptr %t33 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 7 %t63 = load ptr, ptr %t62 %t64 = load i32, ptr %t34 %t65 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t68 = load i32, ptr %t67 %t69 = icmp ult i32 %t64, %t68 br i1 %t69, label %ixok18, label %ixbad19 ixbad19: %t70 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t70, ptr @.fmt_bounds, ptr @.str12260, i32 %t64, i32 %t68) call void @exit(i32 1) unreachable ixok18: %t71 = getelementptr inbounds ptr, ptr %t66, i32 %t64 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 %t74 = load ptr, ptr %t73 store ptr %t74, ptr %t75 %t76 = load ptr, ptr %t75 %t77 = call ptr @fn_find_comp(ptr %t76) store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t78 %t80 = icmp ne ptr %t79, null %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then20, label %ifend22 then20: store i32 0, ptr %t83 store i32 0, ptr %t84 br label %wcond23 wcond23: %t85 = load i32, ptr %t84 %t86 = load ptr, ptr %t78 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 7 %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 1 %t90 = load i32, ptr %t89 %t91 = icmp slt i32 %t85, %t90 %t92 = zext i1 %t91 to i32 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %wbody24, label %wend25 wbody24: %t94 = load ptr, ptr %t78 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 7 %t96 = load ptr, ptr %t95 %t97 = load i32, ptr %t84 %t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp ult i32 %t97, %t101 br i1 %t102, label %ixok26, label %ixbad27 ixbad27: %t103 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t103, ptr @.fmt_bounds, ptr @.str12261, i32 %t97, i32 %t101) call void @exit(i32 1) unreachable ixok26: %t104 = getelementptr inbounds ptr, ptr %t99, i32 %t97 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 2 %t107 = load i32, ptr %t106 %t108 = icmp eq i32 %t107, 1 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then28, label %ifend30 then28: store i32 1, ptr %t83 %t111 = load ptr, ptr %t78 %t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 7 %t113 = load ptr, ptr %t112 %t114 = load i32, ptr %t84 %t115 = getelementptr inbounds %LSlice, ptr %t113, i32 0, i32 0 %t116 = load ptr, ptr %t115 %t117 = getelementptr inbounds %LSlice, ptr %t113, i32 0, i32 1 %t118 = load i32, ptr %t117 %t119 = icmp ult i32 %t114, %t118 br i1 %t119, label %ixok31, label %ixbad32 ixbad32: %t120 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t120, ptr @.fmt_bounds, ptr @.str12262, i32 %t114, i32 %t118) call void @exit(i32 1) unreachable ixok31: %t121 = getelementptr inbounds ptr, ptr %t116, i32 %t114 %t122 = load ptr, ptr %t121 %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 3 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_llty(ptr %t124) %t126 = call i32 @lp_str_eq(ptr %t125, ptr @.str12263) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then33, label %ifend35 then33: %t128 = load ptr, ptr %t75 %t129 = call ptr @lp_str_concat(ptr @.str12264, ptr %t128) %t130 = call ptr @lp_str_concat(ptr %t129, ptr @.str12265) %t131 = load ptr, ptr %t78 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 7 %t133 = load ptr, ptr %t132 %t134 = load i32, ptr %t84 %t135 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 1 %t138 = load i32, ptr %t137 %t139 = icmp ult i32 %t134, %t138 br i1 %t139, label %ixok36, label %ixbad37 ixbad37: %t140 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t140, ptr @.fmt_bounds, ptr @.str12266, i32 %t134, i32 %t138) call void @exit(i32 1) unreachable ixok36: %t141 = getelementptr inbounds ptr, ptr %t136, i32 %t134 %t142 = load ptr, ptr %t141 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 1 %t144 = load ptr, ptr %t143 %t145 = call ptr @lp_str_concat(ptr %t130, ptr %t144) %t146 = call ptr @lp_str_concat(ptr %t145, ptr @.str12267) call void @fn_perr(ptr %t146) br label %ifend35 ifend35: br label %ifend30 ifend30: %t147 = load i32, ptr %t84 %t148 = add i32 %t147, 1 store i32 %t148, ptr %t84 br label %wcond23 wend25: %t149 = load i32, ptr %t83 %t150 = icmp eq i32 %t149, 0 %t151 = zext i1 %t150 to i32 %t152 = icmp ne i32 %t151, 0 br i1 %t152, label %then38, label %ifend40 then38: %t153 = load ptr, ptr %t33 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 1 %t155 = load ptr, ptr %t154 %t156 = call ptr @lp_str_concat(ptr @.str12268, ptr %t155) %t157 = call ptr @lp_str_concat(ptr %t156, ptr @.str12269) %t158 = load ptr, ptr %t75 %t159 = call ptr @lp_str_concat(ptr %t157, ptr %t158) %t160 = call ptr @lp_str_concat(ptr %t159, ptr @.str12270) call void @fn_net_warn(ptr %t160) br label %ifend40 ifend40: br label %ifend22 ifend22: br label %ifend17 ifend17: %t161 = load i32, ptr %t34 %t162 = add i32 %t161, 1 store i32 %t162, ptr %t34 br label %wcond10 wend12: br label %ifend7 ifend7: %t163 = load i32, ptr %t0 %t164 = add i32 %t163, 1 store i32 %t164, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_emit_net_serialize(ptr %arg_m) { entry: %t0 = alloca ptr %t2 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 %t48 = alloca ptr %t51 = alloca ptr %t57 = alloca ptr %t62 = alloca i32 %t104 = alloca ptr %t106 = alloca ptr %t113 = alloca ptr store ptr %arg_m, ptr %t0 store i32 0, ptr @g_ll_t %t1 = call ptr @fn_itoa(i32 1024) store ptr %t1, ptr %t2 call void @fn_emit(ptr @.str12271) %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1 %t5 = load ptr, ptr %t4 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str12272) store i32 0, ptr %t6 store i32 0, ptr %t7 br label %wcond0 wcond0: %t8 = load i32, ptr %t7 %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t8, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody1, label %wend2 wbody1: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = load i32, ptr %t7 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok3, label %ixbad4 ixbad4: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str12273, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok3: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 2 %t30 = load i32, ptr %t29 %t31 = icmp eq i32 %t30, 1 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then5, label %ifend7 then5: %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 7 %t36 = load ptr, ptr %t35 %t37 = load i32, ptr %t7 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok8, label %ixbad9 ixbad9: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str12274, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok8: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_find_comp(ptr %t49) store ptr %t50, ptr %t51 %t52 = load ptr, ptr %t51 %t53 = icmp ne ptr %t52, null %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then10, label %ifend12 then10: %t56 = call ptr @fn_nreg() store ptr %t56, ptr %t57 call void @fn_emit(ptr @.str12275) %t58 = load ptr, ptr %t57 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str12276) %t59 = load ptr, ptr %t2 call void @fn_emit(ptr %t59) call void @fn_emit(ptr @.str12277) %t60 = load ptr, ptr %t48 call void @fn_emit(ptr %t60) call void @fn_emit(ptr @.str12278) %t61 = load ptr, ptr %t48 call void @fn_emit(ptr %t61) call void @fn_emit(ptr @.str12279) store i32 0, ptr %t62 br label %wcond13 wcond13: %t63 = load i32, ptr %t62 %t64 = load ptr, ptr %t51 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t68 = load i32, ptr %t67 %t69 = icmp slt i32 %t63, %t68 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %wbody14, label %wend15 wbody14: %t72 = load ptr, ptr %t51 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 7 %t74 = load ptr, ptr %t73 %t75 = load i32, ptr %t62 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t79 = load i32, ptr %t78 %t80 = icmp ult i32 %t75, %t79 br i1 %t80, label %ixok16, label %ixbad17 ixbad17: %t81 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t81, ptr @.fmt_bounds, ptr @.str12280, i32 %t75, i32 %t79) call void @exit(i32 1) unreachable ixok16: %t82 = getelementptr inbounds ptr, ptr %t77, i32 %t75 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 2 %t85 = load i32, ptr %t84 %t86 = icmp eq i32 %t85, 1 %t87 = zext i1 %t86 to i32 %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then18, label %ifend20 then18: %t89 = load ptr, ptr %t51 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 7 %t91 = load ptr, ptr %t90 %t92 = load i32, ptr %t62 %t93 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t96 = load i32, ptr %t95 %t97 = icmp ult i32 %t92, %t96 br i1 %t97, label %ixok21, label %ixbad22 ixbad22: %t98 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t98, ptr @.fmt_bounds, ptr @.str12281, i32 %t92, i32 %t96) call void @exit(i32 1) unreachable ixok21: %t99 = getelementptr inbounds ptr, ptr %t94, i32 %t92 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 3 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_net_field_bytes(ptr %t102) store ptr %t103, ptr %t104 %t105 = call ptr @fn_nreg() store ptr %t105, ptr %t106 call void @fn_emit(ptr @.str12282) %t107 = load ptr, ptr %t106 call void @fn_emit(ptr %t107) call void @fn_emit(ptr @.str12283) %t108 = load ptr, ptr %t48 call void @fn_emit(ptr %t108) call void @fn_emit(ptr @.str12284) %t109 = load ptr, ptr %t57 call void @fn_emit(ptr %t109) call void @fn_emit(ptr @.str12285) %t110 = load i32, ptr %t62 %t111 = call ptr @fn_itoa(i32 %t110) call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str12286) %t112 = call ptr @fn_nreg() store ptr %t112, ptr %t113 call void @fn_emit(ptr @.str12287) %t114 = load ptr, ptr %t113 call void @fn_emit(ptr %t114) call void @fn_emit(ptr @.str12288) %t115 = load i32, ptr %t6 %t116 = call ptr @fn_itoa(i32 %t115) call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str12289) call void @fn_emit(ptr @.str12290) %t117 = load ptr, ptr %t113 call void @fn_emit(ptr %t117) call void @fn_emit(ptr @.str12291) %t118 = load ptr, ptr %t106 call void @fn_emit(ptr %t118) call void @fn_emit(ptr @.str12292) %t119 = load ptr, ptr %t104 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str12293) %t120 = load ptr, ptr %t51 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 7 %t122 = load ptr, ptr %t121 %t123 = load i32, ptr %t62 %t124 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 %t127 = load i32, ptr %t126 %t128 = icmp ult i32 %t123, %t127 br i1 %t128, label %ixok23, label %ixbad24 ixbad24: %t129 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t129, ptr @.fmt_bounds, ptr @.str12294, i32 %t123, i32 %t127) call void @exit(i32 1) unreachable ixok23: %t130 = getelementptr inbounds ptr, ptr %t125, i32 %t123 %t131 = load ptr, ptr %t130 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 3 %t133 = load ptr, ptr %t132 %t134 = call i32 @fn_net_field_ibytes(ptr %t133) %t135 = load i32, ptr %t6 %t136 = add i32 %t135, %t134 store i32 %t136, ptr %t6 br label %ifend20 ifend20: %t137 = load i32, ptr %t62 %t138 = add i32 %t137, 1 store i32 %t138, ptr %t62 br label %wcond13 wend15: br label %ifend12 ifend12: br label %ifend7 ifend7: %t139 = load i32, ptr %t7 %t140 = add i32 %t139, 1 store i32 %t140, ptr %t7 br label %wcond0 wend2: call void @fn_emit(ptr @.str12295) %t141 = load i32, ptr %t6 %t142 = call ptr @fn_itoa(i32 %t141) call void @fn_emit(ptr %t142) call void @fn_emit(ptr @.str12296) br label %ret ret: ret void } define void @fn_emit_net_apply(ptr %arg_m) { entry: %t0 = alloca ptr %t2 = alloca ptr %t6 = alloca i32 %t7 = alloca i32 %t48 = alloca ptr %t51 = alloca ptr %t57 = alloca ptr %t62 = alloca i32 %t104 = alloca ptr %t106 = alloca ptr %t113 = alloca ptr store ptr %arg_m, ptr %t0 store i32 0, ptr @g_ll_t %t1 = call ptr @fn_itoa(i32 1024) store ptr %t1, ptr %t2 call void @fn_emit(ptr @.str12297) %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1 %t5 = load ptr, ptr %t4 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str12298) store i32 0, ptr %t6 store i32 0, ptr %t7 br label %wcond0 wcond0: %t8 = load i32, ptr %t7 %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t8, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %wbody1, label %wend2 wbody1: %t17 = load ptr, ptr %t0 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %t19 = load ptr, ptr %t18 %t20 = load i32, ptr %t7 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t24 = load i32, ptr %t23 %t25 = icmp ult i32 %t20, %t24 br i1 %t25, label %ixok3, label %ixbad4 ixbad4: %t26 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t26, ptr @.fmt_bounds, ptr @.str12299, i32 %t20, i32 %t24) call void @exit(i32 1) unreachable ixok3: %t27 = getelementptr inbounds ptr, ptr %t22, i32 %t20 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 2 %t30 = load i32, ptr %t29 %t31 = icmp eq i32 %t30, 1 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then5, label %ifend7 then5: %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 7 %t36 = load ptr, ptr %t35 %t37 = load i32, ptr %t7 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok8, label %ixbad9 ixbad9: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str12300, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok8: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_find_comp(ptr %t49) store ptr %t50, ptr %t51 %t52 = load ptr, ptr %t51 %t53 = icmp ne ptr %t52, null %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then10, label %ifend12 then10: %t56 = call ptr @fn_nreg() store ptr %t56, ptr %t57 call void @fn_emit(ptr @.str12301) %t58 = load ptr, ptr %t57 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str12302) %t59 = load ptr, ptr %t2 call void @fn_emit(ptr %t59) call void @fn_emit(ptr @.str12303) %t60 = load ptr, ptr %t48 call void @fn_emit(ptr %t60) call void @fn_emit(ptr @.str12304) %t61 = load ptr, ptr %t48 call void @fn_emit(ptr %t61) call void @fn_emit(ptr @.str12305) store i32 0, ptr %t62 br label %wcond13 wcond13: %t63 = load i32, ptr %t62 %t64 = load ptr, ptr %t51 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t68 = load i32, ptr %t67 %t69 = icmp slt i32 %t63, %t68 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %wbody14, label %wend15 wbody14: %t72 = load ptr, ptr %t51 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 7 %t74 = load ptr, ptr %t73 %t75 = load i32, ptr %t62 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 %t79 = load i32, ptr %t78 %t80 = icmp ult i32 %t75, %t79 br i1 %t80, label %ixok16, label %ixbad17 ixbad17: %t81 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t81, ptr @.fmt_bounds, ptr @.str12306, i32 %t75, i32 %t79) call void @exit(i32 1) unreachable ixok16: %t82 = getelementptr inbounds ptr, ptr %t77, i32 %t75 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 2 %t85 = load i32, ptr %t84 %t86 = icmp eq i32 %t85, 1 %t87 = zext i1 %t86 to i32 %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then18, label %ifend20 then18: %t89 = load ptr, ptr %t51 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 7 %t91 = load ptr, ptr %t90 %t92 = load i32, ptr %t62 %t93 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t96 = load i32, ptr %t95 %t97 = icmp ult i32 %t92, %t96 br i1 %t97, label %ixok21, label %ixbad22 ixbad22: %t98 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t98, ptr @.fmt_bounds, ptr @.str12307, i32 %t92, i32 %t96) call void @exit(i32 1) unreachable ixok21: %t99 = getelementptr inbounds ptr, ptr %t94, i32 %t92 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 3 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_net_field_bytes(ptr %t102) store ptr %t103, ptr %t104 %t105 = call ptr @fn_nreg() store ptr %t105, ptr %t106 call void @fn_emit(ptr @.str12308) %t107 = load ptr, ptr %t106 call void @fn_emit(ptr %t107) call void @fn_emit(ptr @.str12309) %t108 = load ptr, ptr %t48 call void @fn_emit(ptr %t108) call void @fn_emit(ptr @.str12310) %t109 = load ptr, ptr %t57 call void @fn_emit(ptr %t109) call void @fn_emit(ptr @.str12311) %t110 = load i32, ptr %t62 %t111 = call ptr @fn_itoa(i32 %t110) call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str12312) %t112 = call ptr @fn_nreg() store ptr %t112, ptr %t113 call void @fn_emit(ptr @.str12313) %t114 = load ptr, ptr %t113 call void @fn_emit(ptr %t114) call void @fn_emit(ptr @.str12314) %t115 = load i32, ptr %t6 %t116 = call ptr @fn_itoa(i32 %t115) call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str12315) call void @fn_emit(ptr @.str12316) %t117 = load ptr, ptr %t106 call void @fn_emit(ptr %t117) call void @fn_emit(ptr @.str12317) %t118 = load ptr, ptr %t113 call void @fn_emit(ptr %t118) call void @fn_emit(ptr @.str12318) %t119 = load ptr, ptr %t104 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str12319) %t120 = load ptr, ptr %t51 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 7 %t122 = load ptr, ptr %t121 %t123 = load i32, ptr %t62 %t124 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 %t127 = load i32, ptr %t126 %t128 = icmp ult i32 %t123, %t127 br i1 %t128, label %ixok23, label %ixbad24 ixbad24: %t129 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t129, ptr @.fmt_bounds, ptr @.str12320, i32 %t123, i32 %t127) call void @exit(i32 1) unreachable ixok23: %t130 = getelementptr inbounds ptr, ptr %t125, i32 %t123 %t131 = load ptr, ptr %t130 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 3 %t133 = load ptr, ptr %t132 %t134 = call i32 @fn_net_field_ibytes(ptr %t133) %t135 = load i32, ptr %t6 %t136 = add i32 %t135, %t134 store i32 %t136, ptr %t6 br label %ifend20 ifend20: %t137 = load i32, ptr %t62 %t138 = add i32 %t137, 1 store i32 %t138, ptr %t62 br label %wcond13 wend15: br label %ifend12 ifend12: br label %ifend7 ifend7: %t139 = load i32, ptr %t7 %t140 = add i32 %t139, 1 store i32 %t140, ptr %t7 br label %wcond0 wend2: call void @fn_emit(ptr @.str12321) br label %ret ret: ret void } define void @fn_emit_net_dispatch() { entry: %t1 = alloca ptr %t3 = alloca i32 %t4 = alloca i32 %t12 = alloca i32 %t56 = alloca ptr %t59 = alloca ptr %t84 = alloca i32 %t128 = alloca ptr %t131 = alloca ptr %t154 = alloca i32 %t198 = alloca ptr %t201 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 call void @fn_emit(ptr @.str12322) call void @fn_emit(ptr @.str12323) %t2 = load ptr, ptr %t1 call void @fn_emit(ptr %t2) call void @fn_emit(ptr @.str12324) store i32 0, ptr %t3 store i32 0, ptr %t4 br label %wcond0 wcond0: %t5 = load i32, ptr %t4 %t6 = load ptr, ptr @g_prog %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp slt i32 %t5, %t8 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t13 = load ptr, ptr @g_prog %t14 = load i32, ptr %t4 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t18 = load i32, ptr %t17 %t19 = icmp ult i32 %t14, %t18 br i1 %t19, label %ixok3, label %ixbad4 ixbad4: %t20 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t20, ptr @.fmt_bounds, ptr @.str12325, i32 %t14, i32 %t18) call void @exit(i32 1) unreachable ixok3: %t21 = getelementptr inbounds ptr, ptr %t16, i32 %t14 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 0 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 10 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t12 br i1 %t27, label %sc5, label %scend6 sc5: %t29 = load ptr, ptr @g_prog %t30 = load i32, ptr %t4 %t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp ult i32 %t30, %t34 br i1 %t35, label %ixok7, label %ixbad8 ixbad8: %t36 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t36, ptr @.fmt_bounds, ptr @.str12326, i32 %t30, i32 %t34) call void @exit(i32 1) unreachable ixok7: %t37 = getelementptr inbounds ptr, ptr %t32, i32 %t30 %t38 = load ptr, ptr %t37 %t39 = call i32 @fn_net_model_syncs(ptr %t38) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t12 br label %scend6 scend6: %t42 = load i32, ptr %t12 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then9, label %ifend11 then9: %t44 = load ptr, ptr @g_prog %t45 = load i32, ptr %t4 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 %t49 = load i32, ptr %t48 %t50 = icmp ult i32 %t45, %t49 br i1 %t50, label %ixok12, label %ixbad13 ixbad13: %t51 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t51, ptr @.fmt_bounds, ptr @.str12327, i32 %t45, i32 %t49) call void @exit(i32 1) unreachable ixok12: %t52 = getelementptr inbounds ptr, ptr %t47, i32 %t45 %t53 = load ptr, ptr %t52 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 1 %t55 = load ptr, ptr %t54 store ptr %t55, ptr %t56 %t57 = load i32, ptr %t3 %t58 = call ptr @fn_itoa(i32 %t57) store ptr %t58, ptr %t59 call void @fn_emit(ptr @.str12328) %t60 = load ptr, ptr %t59 call void @fn_emit(ptr %t60) call void @fn_emit(ptr @.str12329) %t61 = load ptr, ptr %t56 %t62 = call i32 @fn_find_arch_id(ptr %t61) %t63 = call ptr @fn_itoa(i32 %t62) call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str12330) call void @fn_emit(ptr @.str12331) %t64 = load ptr, ptr %t59 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str12332) %t65 = load ptr, ptr %t59 call void @fn_emit(ptr %t65) call void @fn_emit(ptr @.str12333) %t66 = load ptr, ptr %t59 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str12334) call void @fn_emit(ptr @.str12335) %t67 = load ptr, ptr %t59 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str12336) %t68 = load ptr, ptr %t59 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str12337) %t69 = load ptr, ptr %t56 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str12338) %t70 = load ptr, ptr %t59 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str12339) call void @fn_emit(ptr @.str12340) %t71 = load ptr, ptr %t59 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str12341) %t72 = load i32, ptr %t3 %t73 = add i32 %t72, 1 store i32 %t73, ptr %t3 br label %ifend11 ifend11: %t74 = load i32, ptr %t4 %t75 = add i32 %t74, 1 store i32 %t75, ptr %t4 br label %wcond0 wend2: call void @fn_emit(ptr @.str12342) call void @fn_emit(ptr @.str12343) call void @fn_emit(ptr @.str12344) %t76 = load ptr, ptr %t1 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str12345) store i32 0, ptr %t3 store i32 0, ptr %t4 br label %wcond14 wcond14: %t77 = load i32, ptr %t4 %t78 = load ptr, ptr @g_prog %t79 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t80 = load i32, ptr %t79 %t81 = icmp slt i32 %t77, %t80 %t82 = zext i1 %t81 to i32 %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %wbody15, label %wend16 wbody15: %t85 = load ptr, ptr @g_prog %t86 = load i32, ptr %t4 %t87 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0 %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 1 %t90 = load i32, ptr %t89 %t91 = icmp ult i32 %t86, %t90 br i1 %t91, label %ixok17, label %ixbad18 ixbad18: %t92 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t92, ptr @.fmt_bounds, ptr @.str12346, i32 %t86, i32 %t90) call void @exit(i32 1) unreachable ixok17: %t93 = getelementptr inbounds ptr, ptr %t88, i32 %t86 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 0 %t96 = load i32, ptr %t95 %t97 = icmp eq i32 %t96, 10 %t98 = zext i1 %t97 to i32 %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t84 br i1 %t99, label %sc19, label %scend20 sc19: %t101 = load ptr, ptr @g_prog %t102 = load i32, ptr %t4 %t103 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 0 %t104 = load ptr, ptr %t103 %t105 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 1 %t106 = load i32, ptr %t105 %t107 = icmp ult i32 %t102, %t106 br i1 %t107, label %ixok21, label %ixbad22 ixbad22: %t108 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t108, ptr @.fmt_bounds, ptr @.str12347, i32 %t102, i32 %t106) call void @exit(i32 1) unreachable ixok21: %t109 = getelementptr inbounds ptr, ptr %t104, i32 %t102 %t110 = load ptr, ptr %t109 %t111 = call i32 @fn_net_model_syncs(ptr %t110) %t112 = icmp ne i32 %t111, 0 %t113 = zext i1 %t112 to i32 store i32 %t113, ptr %t84 br label %scend20 scend20: %t114 = load i32, ptr %t84 %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then23, label %ifend25 then23: %t116 = load ptr, ptr @g_prog %t117 = load i32, ptr %t4 %t118 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 0 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 1 %t121 = load i32, ptr %t120 %t122 = icmp ult i32 %t117, %t121 br i1 %t122, label %ixok26, label %ixbad27 ixbad27: %t123 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t123, ptr @.fmt_bounds, ptr @.str12348, i32 %t117, i32 %t121) call void @exit(i32 1) unreachable ixok26: %t124 = getelementptr inbounds ptr, ptr %t119, i32 %t117 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 1 %t127 = load ptr, ptr %t126 store ptr %t127, ptr %t128 %t129 = load i32, ptr %t3 %t130 = call ptr @fn_itoa(i32 %t129) store ptr %t130, ptr %t131 call void @fn_emit(ptr @.str12349) %t132 = load ptr, ptr %t131 call void @fn_emit(ptr %t132) call void @fn_emit(ptr @.str12350) %t133 = load ptr, ptr %t128 %t134 = call i32 @fn_find_arch_id(ptr %t133) %t135 = call ptr @fn_itoa(i32 %t134) call void @fn_emit(ptr %t135) call void @fn_emit(ptr @.str12351) call void @fn_emit(ptr @.str12352) %t136 = load ptr, ptr %t131 call void @fn_emit(ptr %t136) call void @fn_emit(ptr @.str12353) %t137 = load ptr, ptr %t131 call void @fn_emit(ptr %t137) call void @fn_emit(ptr @.str12354) %t138 = load ptr, ptr %t131 call void @fn_emit(ptr %t138) call void @fn_emit(ptr @.str12355) call void @fn_emit(ptr @.str12356) %t139 = load ptr, ptr %t131 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str12357) %t140 = load ptr, ptr %t128 call void @fn_emit(ptr %t140) call void @fn_emit(ptr @.str12358) call void @fn_emit(ptr @.str12359) %t141 = load ptr, ptr %t131 call void @fn_emit(ptr %t141) call void @fn_emit(ptr @.str12360) %t142 = load i32, ptr %t3 %t143 = add i32 %t142, 1 store i32 %t143, ptr %t3 br label %ifend25 ifend25: %t144 = load i32, ptr %t4 %t145 = add i32 %t144, 1 store i32 %t145, ptr %t4 br label %wcond14 wend16: call void @fn_emit(ptr @.str12361) call void @fn_emit(ptr @.str12362) call void @fn_emit(ptr @.str12363) %t146 = load ptr, ptr %t1 call void @fn_emit(ptr %t146) call void @fn_emit(ptr @.str12364) store i32 0, ptr %t3 store i32 0, ptr %t4 br label %wcond28 wcond28: %t147 = load i32, ptr %t4 %t148 = load ptr, ptr @g_prog %t149 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 1 %t150 = load i32, ptr %t149 %t151 = icmp slt i32 %t147, %t150 %t152 = zext i1 %t151 to i32 %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %wbody29, label %wend30 wbody29: %t155 = load ptr, ptr @g_prog %t156 = load i32, ptr %t4 %t157 = getelementptr inbounds %LSlice, ptr %t155, i32 0, i32 0 %t158 = load ptr, ptr %t157 %t159 = getelementptr inbounds %LSlice, ptr %t155, i32 0, i32 1 %t160 = load i32, ptr %t159 %t161 = icmp ult i32 %t156, %t160 br i1 %t161, label %ixok31, label %ixbad32 ixbad32: %t162 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t162, ptr @.fmt_bounds, ptr @.str12365, i32 %t156, i32 %t160) call void @exit(i32 1) unreachable ixok31: %t163 = getelementptr inbounds ptr, ptr %t158, i32 %t156 %t164 = load ptr, ptr %t163 %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 0 %t166 = load i32, ptr %t165 %t167 = icmp eq i32 %t166, 10 %t168 = zext i1 %t167 to i32 %t169 = icmp ne i32 %t168, 0 %t170 = zext i1 %t169 to i32 store i32 %t170, ptr %t154 br i1 %t169, label %sc33, label %scend34 sc33: %t171 = load ptr, ptr @g_prog %t172 = load i32, ptr %t4 %t173 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 0 %t174 = load ptr, ptr %t173 %t175 = getelementptr inbounds %LSlice, ptr %t171, i32 0, i32 1 %t176 = load i32, ptr %t175 %t177 = icmp ult i32 %t172, %t176 br i1 %t177, label %ixok35, label %ixbad36 ixbad36: %t178 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t178, ptr @.fmt_bounds, ptr @.str12366, i32 %t172, i32 %t176) call void @exit(i32 1) unreachable ixok35: %t179 = getelementptr inbounds ptr, ptr %t174, i32 %t172 %t180 = load ptr, ptr %t179 %t181 = call i32 @fn_net_model_syncs(ptr %t180) %t182 = icmp ne i32 %t181, 0 %t183 = zext i1 %t182 to i32 store i32 %t183, ptr %t154 br label %scend34 scend34: %t184 = load i32, ptr %t154 %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then37, label %ifend39 then37: %t186 = load ptr, ptr @g_prog %t187 = load i32, ptr %t4 %t188 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 0 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 1 %t191 = load i32, ptr %t190 %t192 = icmp ult i32 %t187, %t191 br i1 %t192, label %ixok40, label %ixbad41 ixbad41: %t193 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t193, ptr @.fmt_bounds, ptr @.str12367, i32 %t187, i32 %t191) call void @exit(i32 1) unreachable ixok40: %t194 = getelementptr inbounds ptr, ptr %t189, i32 %t187 %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %Cmp_Node, ptr %t195, i32 0, i32 1 %t197 = load ptr, ptr %t196 store ptr %t197, ptr %t198 %t199 = load i32, ptr %t3 %t200 = call ptr @fn_itoa(i32 %t199) store ptr %t200, ptr %t201 call void @fn_emit(ptr @.str12368) %t202 = load ptr, ptr %t201 call void @fn_emit(ptr %t202) call void @fn_emit(ptr @.str12369) %t203 = load ptr, ptr %t198 %t204 = call i32 @fn_find_arch_id(ptr %t203) %t205 = call ptr @fn_itoa(i32 %t204) call void @fn_emit(ptr %t205) call void @fn_emit(ptr @.str12370) call void @fn_emit(ptr @.str12371) %t206 = load ptr, ptr %t201 call void @fn_emit(ptr %t206) call void @fn_emit(ptr @.str12372) %t207 = load ptr, ptr %t201 call void @fn_emit(ptr %t207) call void @fn_emit(ptr @.str12373) %t208 = load ptr, ptr %t201 call void @fn_emit(ptr %t208) call void @fn_emit(ptr @.str12374) call void @fn_emit(ptr @.str12375) %t209 = load ptr, ptr %t201 call void @fn_emit(ptr %t209) call void @fn_emit(ptr @.str12376) %t210 = load ptr, ptr @g_prog %t211 = load i32, ptr %t4 %t212 = getelementptr inbounds %LSlice, ptr %t210, i32 0, i32 0 %t213 = load ptr, ptr %t212 %t214 = getelementptr inbounds %LSlice, ptr %t210, i32 0, i32 1 %t215 = load i32, ptr %t214 %t216 = icmp ult i32 %t211, %t215 br i1 %t216, label %ixok42, label %ixbad43 ixbad43: %t217 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t217, ptr @.fmt_bounds, ptr @.str12377, i32 %t211, i32 %t215) call void @exit(i32 1) unreachable ixok42: %t218 = getelementptr inbounds ptr, ptr %t213, i32 %t211 %t219 = load ptr, ptr %t218 %t220 = call i32 @fn_net_model_bytes(ptr %t219) %t221 = call ptr @fn_itoa(i32 %t220) call void @fn_emit(ptr %t221) call void @fn_emit(ptr @.str12378) call void @fn_emit(ptr @.str12379) %t222 = load ptr, ptr %t201 call void @fn_emit(ptr %t222) call void @fn_emit(ptr @.str12380) %t223 = load i32, ptr %t3 %t224 = add i32 %t223, 1 store i32 %t224, ptr %t3 br label %ifend39 ifend39: %t225 = load i32, ptr %t4 %t226 = add i32 %t225, 1 store i32 %t226, ptr %t4 br label %wcond28 wend30: call void @fn_emit(ptr @.str12381) br label %ret ret: ret void } define void @fn_emit_net_owner() { entry: %t1 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 call void @fn_emit(ptr @.str12382) call void @fn_emit(ptr @.str12383) %t2 = load ptr, ptr %t1 call void @fn_emit(ptr %t2) call void @fn_emit(ptr @.str12384) call void @fn_emit(ptr @.str12385) call void @fn_emit(ptr @.str12386) %t3 = load ptr, ptr %t1 call void @fn_emit(ptr %t3) call void @fn_emit(ptr @.str12387) call void @fn_emit(ptr @.str12388) call void @fn_emit(ptr @.str12389) %t4 = load ptr, ptr %t1 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str12390) call void @fn_emit(ptr @.str12391) br label %ret ret: ret void } define void @fn_emit_loopback() { entry: call void @fn_emith(ptr @.str12392) call void @fn_emith(ptr @.str12393) call void @fn_emith(ptr @.str12394) call void @fn_emith(ptr @.str12395) call void @fn_emit(ptr @.str12396) call void @fn_emit(ptr @.str12397) call void @fn_emit(ptr @.str12398) call void @fn_emit(ptr @.str12399) call void @fn_emit(ptr @.str12400) call void @fn_emit(ptr @.str12401) call void @fn_emit(ptr @.str12402) call void @fn_emit(ptr @.str12403) call void @fn_emit(ptr @.str12404) call void @fn_emit(ptr @.str12405) call void @fn_emit(ptr @.str12406) call void @fn_emit(ptr @.str12407) call void @fn_emit(ptr @.str12408) call void @fn_emit(ptr @.str12409) call void @fn_emit(ptr @.str12410) call void @fn_emit(ptr @.str12411) call void @fn_emit(ptr @.str12412) call void @fn_emit(ptr @.str12413) call void @fn_emit(ptr @.str12414) call void @fn_emit(ptr @.str12415) call void @fn_emit(ptr @.str12416) call void @fn_emit(ptr @.str12417) br label %ret ret: ret void } define i32 @fn_net_has_remote() { entry: %retval = alloca i32 %t0 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_events %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_events %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str12418, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 3 %t19 = load ptr, ptr %t18 %t20 = icmp ne ptr %t19, null %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t23 = load i32, ptr %t0 %t24 = add i32 %t23, 1 store i32 %t24, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t25 = load i32, ptr %retval ret i32 %t25 } define i32 @fn_net_event_id(ptr %arg_name) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_name, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr @g_g_events %t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1 %t5 = load i32, ptr %t4 %t6 = icmp slt i32 %t2, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_g_events %t10 = load i32, ptr %t1 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str12419, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 %t21 = load ptr, ptr %t0 %t22 = call i32 @lp_str_eq(ptr %t20, ptr %t21) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then5, label %ifend7 then5: %t24 = load i32, ptr %t1 store i32 %t24, ptr %retval br label %ret ifend7: %t25 = load i32, ptr %t1 %t26 = add i32 %t25, 1 store i32 %t26, ptr %t1 br label %wcond0 wend2: %t27 = sub i32 0, 1 store i32 %t27, ptr %retval br label %ret ret: %t28 = load i32, ptr %retval ret i32 %t28 } define ptr @fn_net_send_sym() { entry: %retval = alloca ptr %t1 = alloca ptr %t0 = call ptr @fn_find_extern(ptr @.str12420) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp ne ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 4 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %retval br label %ret ifend2: store ptr @.str12421, ptr %retval br label %ret ret: %t11 = load ptr, ptr %retval ret ptr %t11 } define ptr @fn_net_poll_sym() { entry: %retval = alloca ptr %t1 = alloca ptr %t0 = call ptr @fn_find_extern(ptr @.str12422) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp ne ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 4 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %retval br label %ret ifend2: store ptr @.str12423, ptr %retval br label %ret ret: %t11 = load ptr, ptr %retval ret ptr %t11 } define void @fn_emit_net_pump() { entry: %t5 = alloca ptr %t7 = alloca i32 %t25 = alloca ptr %t34 = alloca ptr %t45 = alloca i32 %t46 = alloca i32 %t48 = alloca ptr %t73 = alloca ptr %t79 = alloca ptr call void @fn_emith(ptr @.str12424) %t0 = call ptr @fn_find_extern(ptr @.str12425) %t1 = icmp eq ptr %t0, null %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 1, ptr @g_g_uses_loopback br label %ifend2 ifend2: %t4 = call ptr @fn_net_poll_sym() store ptr %t4, ptr %t5 call void @fn_emit(ptr @.str12426) call void @fn_emit(ptr @.str12427) %t6 = load ptr, ptr %t5 call void @fn_emit(ptr %t6) call void @fn_emit(ptr @.str12428) call void @fn_emit(ptr @.str12429) call void @fn_emit(ptr @.str12430) store i32 0, ptr %t7 br label %wcond3 wcond3: %t8 = load i32, ptr %t7 %t9 = load ptr, ptr @g_g_events %t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t11 = load i32, ptr %t10 %t12 = icmp slt i32 %t8, %t11 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %wbody4, label %wend5 wbody4: %t15 = load ptr, ptr @g_g_events %t16 = load i32, ptr %t7 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t20 = load i32, ptr %t19 %t21 = icmp ult i32 %t16, %t20 br i1 %t21, label %ixok6, label %ixbad7 ixbad7: %t22 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t22, ptr @.fmt_bounds, ptr @.str12431, i32 %t16, i32 %t20) call void @exit(i32 1) unreachable ixok6: %t23 = getelementptr inbounds ptr, ptr %t18, i32 %t16 %t24 = load ptr, ptr %t23 store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 3 %t28 = load ptr, ptr %t27 %t29 = icmp ne ptr %t28, null %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then8, label %ifend10 then8: %t32 = load i32, ptr %t7 %t33 = call ptr @fn_itoa(i32 %t32) store ptr %t33, ptr %t34 call void @fn_emit(ptr @.str12432) %t35 = load ptr, ptr %t34 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str12433) %t36 = load ptr, ptr %t25 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 %t39 = call i32 @fn_net_event_id(ptr %t38) %t40 = call ptr @fn_itoa(i32 %t39) call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str12434) call void @fn_emit(ptr @.str12435) %t41 = load ptr, ptr %t34 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str12436) %t42 = load ptr, ptr %t34 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str12437) %t43 = load ptr, ptr %t34 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str12438) call void @fn_emit(ptr @.str12439) %t44 = load ptr, ptr %t34 call void @fn_emit(ptr %t44) call void @fn_emit(ptr @.str12440) store i32 4, ptr %t45 store i32 0, ptr %t46 %t47 = call ptr @fn_buf_new() store ptr %t47, ptr %t48 br label %wcond11 wcond11: %t49 = load i32, ptr %t46 %t50 = load ptr, ptr %t25 %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 7 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp slt i32 %t49, %t54 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %wbody12, label %wend13 wbody12: %t58 = load ptr, ptr %t25 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 7 %t60 = load ptr, ptr %t59 %t61 = load i32, ptr %t46 %t62 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ult i32 %t61, %t65 br i1 %t66, label %ixok14, label %ixbad15 ixbad15: %t67 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t67, ptr @.fmt_bounds, ptr @.str12441, i32 %t61, i32 %t65) call void @exit(i32 1) unreachable ixok14: %t68 = getelementptr inbounds ptr, ptr %t63, i32 %t61 %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 3 %t71 = load ptr, ptr %t70 %t72 = call ptr @fn_llty(ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t34 %t75 = call ptr @lp_str_concat(ptr %t74, ptr @.str12442) %t76 = load i32, ptr %t46 %t77 = call ptr @fn_itoa(i32 %t76) %t78 = call ptr @lp_str_concat(ptr %t75, ptr %t77) store ptr %t78, ptr %t79 call void @fn_emit(ptr @.str12443) %t80 = load ptr, ptr %t79 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str12444) %t81 = load i32, ptr %t45 %t82 = call ptr @fn_itoa(i32 %t81) call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str12445) call void @fn_emit(ptr @.str12446) %t83 = load ptr, ptr %t79 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str12447) %t84 = load ptr, ptr %t73 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str12448) %t85 = load ptr, ptr %t79 call void @fn_emit(ptr %t85) call void @fn_emit(ptr @.str12449) %t86 = load i32, ptr %t46 %t87 = icmp sgt i32 %t86, 0 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then16, label %ifend18 then16: %t90 = load ptr, ptr %t48 call void @fn_buf_puts(ptr %t90, ptr @.str12450) br label %ifend18 ifend18: %t91 = load ptr, ptr %t48 %t92 = load ptr, ptr %t73 call void @fn_buf_puts(ptr %t91, ptr %t92) %t93 = load ptr, ptr %t48 call void @fn_buf_puts(ptr %t93, ptr @.str12451) %t94 = load ptr, ptr %t48 %t95 = load ptr, ptr %t79 call void @fn_buf_puts(ptr %t94, ptr %t95) %t96 = load ptr, ptr %t25 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 7 %t98 = load ptr, ptr %t97 %t99 = load i32, ptr %t46 %t100 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 %t101 = load ptr, ptr %t100 %t102 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1 %t103 = load i32, ptr %t102 %t104 = icmp ult i32 %t99, %t103 br i1 %t104, label %ixok19, label %ixbad20 ixbad20: %t105 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t105, ptr @.fmt_bounds, ptr @.str12452, i32 %t99, i32 %t103) call void @exit(i32 1) unreachable ixok19: %t106 = getelementptr inbounds ptr, ptr %t101, i32 %t99 %t107 = load ptr, ptr %t106 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 3 %t109 = load ptr, ptr %t108 %t110 = call i32 @fn_net_field_ibytes(ptr %t109) %t111 = load i32, ptr %t45 %t112 = add i32 %t111, %t110 store i32 %t112, ptr %t45 %t113 = load i32, ptr %t46 %t114 = add i32 %t113, 1 store i32 %t114, ptr %t46 br label %wcond11 wend13: call void @fn_emit(ptr @.str12453) %t115 = load ptr, ptr %t25 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 1 %t117 = load ptr, ptr %t116 call void @fn_emit(ptr %t117) call void @fn_emit(ptr @.str12454) %t118 = load ptr, ptr %t48 %t119 = call ptr @fn_buf_str(ptr %t118) call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str12455) call void @fn_emit(ptr @.str12456) call void @fn_emit(ptr @.str12457) %t120 = load ptr, ptr %t34 call void @fn_emit(ptr %t120) call void @fn_emit(ptr @.str12458) br label %ifend10 ifend10: %t121 = load i32, ptr %t7 %t122 = add i32 %t121, 1 store i32 %t122, ptr %t7 br label %wcond3 wend5: call void @fn_emit(ptr @.str12459) call void @fn_emit(ptr @.str12460) br label %ret ret: ret void } define void @fn_emit_net() { entry: %t2 = alloca i32 %t10 = alloca i32 %t0 = call i32 @fn_net_has_sync() %t1 = icmp ne i32 %t0, 0 br i1 %t1, label %then0, label %ifend2 then0: call void @fn_net_check() store i32 0, ptr %t2 br label %wcond3 wcond3: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr @g_prog %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp slt i32 %t3, %t6 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody4, label %wend5 wbody4: %t11 = load ptr, ptr @g_prog %t12 = load i32, ptr %t2 %t13 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = icmp ult i32 %t12, %t16 br i1 %t17, label %ixok6, label %ixbad7 ixbad7: %t18 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t18, ptr @.fmt_bounds, ptr @.str12461, i32 %t12, i32 %t16) call void @exit(i32 1) unreachable ixok6: %t19 = getelementptr inbounds ptr, ptr %t14, i32 %t12 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 0 %t22 = load i32, ptr %t21 %t23 = icmp eq i32 %t22, 10 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 store i32 %t26, ptr %t10 br i1 %t25, label %sc8, label %scend9 sc8: %t27 = load ptr, ptr @g_prog %t28 = load i32, ptr %t2 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok10, label %ixbad11 ixbad11: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str12462, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok10: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = call i32 @fn_net_model_syncs(ptr %t36) %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t10 br label %scend9 scend9: %t40 = load i32, ptr %t10 %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then12, label %ifend14 then12: %t42 = load ptr, ptr @g_prog %t43 = load i32, ptr %t2 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp ult i32 %t43, %t47 br i1 %t48, label %ixok15, label %ixbad16 ixbad16: %t49 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t49, ptr @.fmt_bounds, ptr @.str12463, i32 %t43, i32 %t47) call void @exit(i32 1) unreachable ixok15: %t50 = getelementptr inbounds ptr, ptr %t45, i32 %t43 %t51 = load ptr, ptr %t50 call void @fn_emit_net_serialize(ptr %t51) %t52 = load ptr, ptr @g_prog %t53 = load i32, ptr %t2 %t54 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t57 = load i32, ptr %t56 %t58 = icmp ult i32 %t53, %t57 br i1 %t58, label %ixok17, label %ixbad18 ixbad18: %t59 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t59, ptr @.fmt_bounds, ptr @.str12464, i32 %t53, i32 %t57) call void @exit(i32 1) unreachable ixok17: %t60 = getelementptr inbounds ptr, ptr %t55, i32 %t53 %t61 = load ptr, ptr %t60 call void @fn_emit_net_apply(ptr %t61) br label %ifend14 ifend14: %t62 = load i32, ptr %t2 %t63 = add i32 %t62, 1 store i32 %t63, ptr %t2 br label %wcond3 wend5: call void @fn_emit_net_dispatch() br label %ifend2 ifend2: %t64 = call i32 @fn_net_has_owned() %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then19, label %ifend21 then19: call void @fn_emit_net_owner() br label %ifend21 ifend21: %t66 = call i32 @fn_net_has_remote() %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then22, label %ifend24 then22: call void @fn_emith(ptr @.str12465) call void @fn_emit_net_pump() br label %ifend24 ifend24: br label %ret ret: ret void } define i32 @fn_ui_wtype(ptr %arg_w) { entry: %retval = alloca i32 %t0 = alloca ptr %t4 = alloca ptr store ptr %arg_w, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = call i32 @lp_str_eq(ptr %t5, ptr @.str12466) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: store i32 0, ptr %retval br label %ret ifend2: %t8 = load ptr, ptr %t4 %t9 = call i32 @lp_str_eq(ptr %t8, ptr @.str12467) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t11 = load ptr, ptr %t4 %t12 = call i32 @lp_str_eq(ptr %t11, ptr @.str12468) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: store i32 2, ptr %retval br label %ret ifend8: %t14 = load ptr, ptr %t4 %t15 = call i32 @lp_str_eq(ptr %t14, ptr @.str12469) %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then9, label %ifend11 then9: store i32 3, ptr %retval br label %ret ifend11: %t17 = load ptr, ptr %t4 %t18 = call i32 @lp_str_eq(ptr %t17, ptr @.str12470) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then12, label %ifend14 then12: store i32 4, ptr %retval br label %ret ifend14: %t20 = load ptr, ptr %t4 %t21 = call i32 @lp_str_eq(ptr %t20, ptr @.str12471) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then15, label %ifend17 then15: store i32 5, ptr %retval br label %ret ifend17: %t23 = load ptr, ptr %t4 %t24 = call i32 @lp_str_eq(ptr %t23, ptr @.str12472) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then18, label %ifend20 then18: store i32 6, ptr %retval br label %ret ifend20: store i32 0, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define ptr @fn_ui_prop(ptr %arg_w, ptr %arg_key) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 store ptr %arg_w, ptr %t0 store ptr %arg_key, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t3 = load i32, ptr %t2 %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = load i32, ptr %t9 %t11 = icmp slt i32 %t3, %t10 %t12 = zext i1 %t11 to i32 %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %wbody1, label %wend2 wbody1: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 5 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7 %t18 = load ptr, ptr %t17 %t19 = load i32, ptr %t2 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok3, label %ixbad4 ixbad4: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str12473, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok3: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t1 %t31 = call i32 @lp_str_eq(ptr %t29, ptr %t30) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 5 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 7 %t37 = load ptr, ptr %t36 %t38 = load i32, ptr %t2 %t39 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp ult i32 %t38, %t42 br i1 %t43, label %ixok8, label %ixbad9 ixbad9: %t44 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t44, ptr @.fmt_bounds, ptr @.str12474, i32 %t38, i32 %t42) call void @exit(i32 1) unreachable ixok8: %t45 = getelementptr inbounds ptr, ptr %t40, i32 %t38 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 4 %t48 = load ptr, ptr %t47 store ptr %t48, ptr %retval br label %ret ifend7: %t49 = load i32, ptr %t2 %t50 = add i32 %t49, 1 store i32 %t50, ptr %t2 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t51 = load ptr, ptr %retval ret ptr %t51 } define ptr @fn_ui_props_with_inherited(i32 %arg_i) { entry: %retval = alloca ptr %t0 = alloca i32 %t11 = alloca ptr %t18 = alloca ptr %t19 = alloca i32 %t72 = alloca ptr %t149 = alloca i32 %t182 = alloca i32 %t208 = alloca ptr %t214 = alloca ptr store i32 %arg_i, ptr %t0 %t1 = load ptr, ptr @g_uiw %t2 = load i32, ptr %t0 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t4 = load ptr, ptr %t3 %t5 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t6 = load i32, ptr %t5 %t7 = icmp ult i32 %t2, %t6 br i1 %t7, label %ixok0, label %ixbad1 ixbad1: %t8 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t8, ptr @.fmt_bounds, ptr @.str12475, i32 %t2, i32 %t6) call void @exit(i32 1) unreachable ixok0: %t9 = getelementptr inbounds ptr, ptr %t4, i32 %t2 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t11 %t12 = getelementptr %LSlice, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = call ptr @malloc(i64 %t13) %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 store ptr null, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 store i32 0, ptr %t16 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 store i32 0, ptr %t17 store ptr %t14, ptr %t18 store i32 0, ptr %t19 br label %wcond2 wcond2: %t20 = load i32, ptr %t19 %t21 = load ptr, ptr %t11 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 5 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 7 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp slt i32 %t20, %t27 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %wbody3, label %wend4 wbody3: %t31 = load ptr, ptr %t18 %t32 = load ptr, ptr %t11 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 5 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 7 %t36 = load ptr, ptr %t35 %t37 = load i32, ptr %t19 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok5, label %ixbad6 ixbad6: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str12476, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok5: %t44 = getelementptr inbounds ptr, ptr %t39, i32 %t37 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t47 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 2 %t48 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t49 = load i32, ptr %t46 %t50 = load i32, ptr %t47 %t51 = icmp sge i32 %t49, %t50 br i1 %t51, label %grow7, label %put8 grow7: %t52 = mul i32 %t50, 2 %t53 = icmp eq i32 %t50, 0 %t54 = select i1 %t53, i32 8, i32 %t52 %t55 = getelementptr ptr, ptr null, i32 1 %t56 = ptrtoint ptr %t55 to i64 %t57 = zext i32 %t54 to i64 %t58 = mul i64 %t57, %t56 %t59 = load ptr, ptr %t48 %t60 = call ptr @realloc(ptr %t59, i64 %t58) store ptr %t60, ptr %t48 store i32 %t54, ptr %t47 br label %put8 put8: %t61 = load ptr, ptr %t48 %t62 = getelementptr inbounds ptr, ptr %t61, i32 %t49 store ptr %t45, ptr %t62 %t63 = add i32 %t49, 1 store i32 %t63, ptr %t46 %t64 = load i32, ptr %t19 %t65 = add i32 %t64, 1 store i32 %t65, ptr %t19 br label %wcond2 wend4: %t66 = getelementptr %LSlice, ptr null, i32 1 %t67 = ptrtoint ptr %t66 to i64 %t68 = call ptr @malloc(i64 %t67) %t69 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0 store ptr null, ptr %t69 %t70 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 store i32 0, ptr %t70 %t71 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 2 store i32 0, ptr %t71 store ptr %t68, ptr %t72 %t73 = load ptr, ptr %t72 %t74 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 1 %t75 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 2 %t76 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 0 %t77 = load i32, ptr %t74 %t78 = load i32, ptr %t75 %t79 = icmp sge i32 %t77, %t78 br i1 %t79, label %grow9, label %put10 grow9: %t80 = mul i32 %t78, 2 %t81 = icmp eq i32 %t78, 0 %t82 = select i1 %t81, i32 8, i32 %t80 %t83 = getelementptr ptr, ptr null, i32 1 %t84 = ptrtoint ptr %t83 to i64 %t85 = zext i32 %t82 to i64 %t86 = mul i64 %t85, %t84 %t87 = load ptr, ptr %t76 %t88 = call ptr @realloc(ptr %t87, i64 %t86) store ptr %t88, ptr %t76 store i32 %t82, ptr %t75 br label %put10 put10: %t89 = load ptr, ptr %t76 %t90 = getelementptr inbounds ptr, ptr %t89, i32 %t77 store ptr @.str12477, ptr %t90 %t91 = add i32 %t77, 1 store i32 %t91, ptr %t74 %t92 = load ptr, ptr %t72 %t93 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 %t94 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 2 %t95 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 0 %t96 = load i32, ptr %t93 %t97 = load i32, ptr %t94 %t98 = icmp sge i32 %t96, %t97 br i1 %t98, label %grow11, label %put12 grow11: %t99 = mul i32 %t97, 2 %t100 = icmp eq i32 %t97, 0 %t101 = select i1 %t100, i32 8, i32 %t99 %t102 = getelementptr ptr, ptr null, i32 1 %t103 = ptrtoint ptr %t102 to i64 %t104 = zext i32 %t101 to i64 %t105 = mul i64 %t104, %t103 %t106 = load ptr, ptr %t95 %t107 = call ptr @realloc(ptr %t106, i64 %t105) store ptr %t107, ptr %t95 store i32 %t101, ptr %t94 br label %put12 put12: %t108 = load ptr, ptr %t95 %t109 = getelementptr inbounds ptr, ptr %t108, i32 %t96 store ptr @.str12478, ptr %t109 %t110 = add i32 %t96, 1 store i32 %t110, ptr %t93 %t111 = load ptr, ptr %t72 %t112 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 1 %t113 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 2 %t114 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0 %t115 = load i32, ptr %t112 %t116 = load i32, ptr %t113 %t117 = icmp sge i32 %t115, %t116 br i1 %t117, label %grow13, label %put14 grow13: %t118 = mul i32 %t116, 2 %t119 = icmp eq i32 %t116, 0 %t120 = select i1 %t119, i32 8, i32 %t118 %t121 = getelementptr ptr, ptr null, i32 1 %t122 = ptrtoint ptr %t121 to i64 %t123 = zext i32 %t120 to i64 %t124 = mul i64 %t123, %t122 %t125 = load ptr, ptr %t114 %t126 = call ptr @realloc(ptr %t125, i64 %t124) store ptr %t126, ptr %t114 store i32 %t120, ptr %t113 br label %put14 put14: %t127 = load ptr, ptr %t114 %t128 = getelementptr inbounds ptr, ptr %t127, i32 %t115 store ptr @.str12479, ptr %t128 %t129 = add i32 %t115, 1 store i32 %t129, ptr %t112 %t130 = load ptr, ptr %t72 %t131 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 1 %t132 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 2 %t133 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0 %t134 = load i32, ptr %t131 %t135 = load i32, ptr %t132 %t136 = icmp sge i32 %t134, %t135 br i1 %t136, label %grow15, label %put16 grow15: %t137 = mul i32 %t135, 2 %t138 = icmp eq i32 %t135, 0 %t139 = select i1 %t138, i32 8, i32 %t137 %t140 = getelementptr ptr, ptr null, i32 1 %t141 = ptrtoint ptr %t140 to i64 %t142 = zext i32 %t139 to i64 %t143 = mul i64 %t142, %t141 %t144 = load ptr, ptr %t133 %t145 = call ptr @realloc(ptr %t144, i64 %t143) store ptr %t145, ptr %t133 store i32 %t139, ptr %t132 br label %put16 put16: %t146 = load ptr, ptr %t133 %t147 = getelementptr inbounds ptr, ptr %t146, i32 %t134 store ptr @.str12480, ptr %t147 %t148 = add i32 %t134, 1 store i32 %t148, ptr %t131 store i32 0, ptr %t149 br label %wcond17 wcond17: %t150 = load i32, ptr %t149 %t151 = load ptr, ptr %t72 %t152 = getelementptr inbounds %LSlice, ptr %t151, i32 0, i32 1 %t153 = load i32, ptr %t152 %t154 = icmp slt i32 %t150, %t153 %t155 = zext i1 %t154 to i32 %t156 = icmp ne i32 %t155, 0 br i1 %t156, label %wbody18, label %wend19 wbody18: %t157 = load ptr, ptr %t11 %t158 = load ptr, ptr %t72 %t159 = load i32, ptr %t149 %t160 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 0 %t161 = load ptr, ptr %t160 %t162 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1 %t163 = load i32, ptr %t162 %t164 = icmp ult i32 %t159, %t163 br i1 %t164, label %ixok20, label %ixbad21 ixbad21: %t165 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t165, ptr @.fmt_bounds, ptr @.str12481, i32 %t159, i32 %t163) call void @exit(i32 1) unreachable ixok20: %t166 = getelementptr inbounds ptr, ptr %t161, i32 %t159 %t167 = load ptr, ptr %t166 %t168 = call ptr @fn_ui_prop(ptr %t157, ptr %t167) %t169 = icmp eq ptr %t168, null %t170 = zext i1 %t169 to i32 %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then22, label %ifend24 then22: %t172 = load ptr, ptr @g_uiw_parent %t173 = load i32, ptr %t0 %t174 = getelementptr inbounds %LSlice, ptr %t172, i32 0, i32 0 %t175 = load ptr, ptr %t174 %t176 = getelementptr inbounds %LSlice, ptr %t172, i32 0, i32 1 %t177 = load i32, ptr %t176 %t178 = icmp ult i32 %t173, %t177 br i1 %t178, label %ixok25, label %ixbad26 ixbad26: %t179 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t179, ptr @.fmt_bounds, ptr @.str12482, i32 %t173, i32 %t177) call void @exit(i32 1) unreachable ixok25: %t180 = getelementptr inbounds i32, ptr %t175, i32 %t173 %t181 = load i32, ptr %t180 store i32 %t181, ptr %t182 br label %wcond27 wcond27: %t183 = load i32, ptr %t182 %t184 = icmp sge i32 %t183, 0 %t185 = zext i1 %t184 to i32 %t186 = icmp ne i32 %t185, 0 br i1 %t186, label %wbody28, label %wend29 wbody28: %t187 = load ptr, ptr @g_uiw %t188 = load i32, ptr %t182 %t189 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 0 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 1 %t192 = load i32, ptr %t191 %t193 = icmp ult i32 %t188, %t192 br i1 %t193, label %ixok30, label %ixbad31 ixbad31: %t194 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t194, ptr @.fmt_bounds, ptr @.str12483, i32 %t188, i32 %t192) call void @exit(i32 1) unreachable ixok30: %t195 = getelementptr inbounds ptr, ptr %t190, i32 %t188 %t196 = load ptr, ptr %t195 %t197 = load ptr, ptr %t72 %t198 = load i32, ptr %t149 %t199 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0 %t200 = load ptr, ptr %t199 %t201 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 1 %t202 = load i32, ptr %t201 %t203 = icmp ult i32 %t198, %t202 br i1 %t203, label %ixok32, label %ixbad33 ixbad33: %t204 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t204, ptr @.fmt_bounds, ptr @.str12484, i32 %t198, i32 %t202) call void @exit(i32 1) unreachable ixok32: %t205 = getelementptr inbounds ptr, ptr %t200, i32 %t198 %t206 = load ptr, ptr %t205 %t207 = call ptr @fn_ui_prop(ptr %t196, ptr %t206) store ptr %t207, ptr %t208 %t209 = load ptr, ptr %t208 %t210 = icmp ne ptr %t209, null %t211 = zext i1 %t210 to i32 %t212 = icmp ne i32 %t211, 0 br i1 %t212, label %then34, label %else35 then34: %t213 = call ptr @fn_node(i32 42) store ptr %t213, ptr %t214 %t215 = load ptr, ptr %t214 %t216 = getelementptr inbounds %Cmp_Node, ptr %t215, i32 0, i32 1 %t217 = load ptr, ptr %t72 %t218 = load i32, ptr %t149 %t219 = getelementptr inbounds %LSlice, ptr %t217, i32 0, i32 0 %t220 = load ptr, ptr %t219 %t221 = getelementptr inbounds %LSlice, ptr %t217, i32 0, i32 1 %t222 = load i32, ptr %t221 %t223 = icmp ult i32 %t218, %t222 br i1 %t223, label %ixok37, label %ixbad38 ixbad38: %t224 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t224, ptr @.fmt_bounds, ptr @.str12485, i32 %t218, i32 %t222) call void @exit(i32 1) unreachable ixok37: %t225 = getelementptr inbounds ptr, ptr %t220, i32 %t218 %t226 = load ptr, ptr %t225 store ptr %t226, ptr %t216 %t227 = load ptr, ptr %t214 %t228 = getelementptr inbounds %Cmp_Node, ptr %t227, i32 0, i32 4 %t229 = load ptr, ptr %t208 store ptr %t229, ptr %t228 %t230 = load ptr, ptr %t18 %t231 = load ptr, ptr %t214 %t232 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 1 %t233 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 2 %t234 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 0 %t235 = load i32, ptr %t232 %t236 = load i32, ptr %t233 %t237 = icmp sge i32 %t235, %t236 br i1 %t237, label %grow39, label %put40 grow39: %t238 = mul i32 %t236, 2 %t239 = icmp eq i32 %t236, 0 %t240 = select i1 %t239, i32 8, i32 %t238 %t241 = getelementptr ptr, ptr null, i32 1 %t242 = ptrtoint ptr %t241 to i64 %t243 = zext i32 %t240 to i64 %t244 = mul i64 %t243, %t242 %t245 = load ptr, ptr %t234 %t246 = call ptr @realloc(ptr %t245, i64 %t244) store ptr %t246, ptr %t234 store i32 %t240, ptr %t233 br label %put40 put40: %t247 = load ptr, ptr %t234 %t248 = getelementptr inbounds ptr, ptr %t247, i32 %t235 store ptr %t231, ptr %t248 %t249 = add i32 %t235, 1 store i32 %t249, ptr %t232 %t250 = sub i32 0, 1 store i32 %t250, ptr %t182 br label %ifend36 else35: %t251 = load ptr, ptr @g_uiw_parent %t252 = load i32, ptr %t182 %t253 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 0 %t254 = load ptr, ptr %t253 %t255 = getelementptr inbounds %LSlice, ptr %t251, i32 0, i32 1 %t256 = load i32, ptr %t255 %t257 = icmp ult i32 %t252, %t256 br i1 %t257, label %ixok41, label %ixbad42 ixbad42: %t258 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t258, ptr @.fmt_bounds, ptr @.str12486, i32 %t252, i32 %t256) call void @exit(i32 1) unreachable ixok41: %t259 = getelementptr inbounds i32, ptr %t254, i32 %t252 %t260 = load i32, ptr %t259 store i32 %t260, ptr %t182 br label %ifend36 ifend36: br label %wcond27 wend29: br label %ifend24 ifend24: %t261 = load i32, ptr %t149 %t262 = add i32 %t261, 1 store i32 %t262, ptr %t149 br label %wcond17 wend19: %t263 = load ptr, ptr %t18 store ptr %t263, ptr %retval br label %ret ret: %t264 = load ptr, ptr %retval ret ptr %t264 } define void @fn_ui_flatten(ptr %arg_w, i32 %arg_parent) { entry: %t0 = alloca ptr %t1 = alloca i32 %t5 = alloca i32 %t46 = alloca i32 store ptr %arg_w, ptr %t0 store i32 %arg_parent, ptr %t1 %t2 = load ptr, ptr @g_uiw %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 store i32 %t4, ptr %t5 %t6 = load ptr, ptr @g_uiw %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t9 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 2 %t10 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t11 = load i32, ptr %t8 %t12 = load i32, ptr %t9 %t13 = icmp sge i32 %t11, %t12 br i1 %t13, label %grow0, label %put1 grow0: %t14 = mul i32 %t12, 2 %t15 = icmp eq i32 %t12, 0 %t16 = select i1 %t15, i32 8, i32 %t14 %t17 = getelementptr ptr, ptr null, i32 1 %t18 = ptrtoint ptr %t17 to i64 %t19 = zext i32 %t16 to i64 %t20 = mul i64 %t19, %t18 %t21 = load ptr, ptr %t10 %t22 = call ptr @realloc(ptr %t21, i64 %t20) store ptr %t22, ptr %t10 store i32 %t16, ptr %t9 br label %put1 put1: %t23 = load ptr, ptr %t10 %t24 = getelementptr inbounds ptr, ptr %t23, i32 %t11 store ptr %t7, ptr %t24 %t25 = add i32 %t11, 1 store i32 %t25, ptr %t8 %t26 = load ptr, ptr @g_uiw_parent %t27 = load i32, ptr %t1 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t31 = load i32, ptr %t28 %t32 = load i32, ptr %t29 %t33 = icmp sge i32 %t31, %t32 br i1 %t33, label %grow2, label %put3 grow2: %t34 = mul i32 %t32, 2 %t35 = icmp eq i32 %t32, 0 %t36 = select i1 %t35, i32 8, i32 %t34 %t37 = getelementptr i32, ptr null, i32 1 %t38 = ptrtoint ptr %t37 to i64 %t39 = zext i32 %t36 to i64 %t40 = mul i64 %t39, %t38 %t41 = load ptr, ptr %t30 %t42 = call ptr @realloc(ptr %t41, i64 %t40) store ptr %t42, ptr %t30 store i32 %t36, ptr %t29 br label %put3 put3: %t43 = load ptr, ptr %t30 %t44 = getelementptr inbounds i32, ptr %t43, i32 %t31 store i32 %t27, ptr %t44 %t45 = add i32 %t31, 1 store i32 %t45, ptr %t28 store i32 0, ptr %t46 br label %wcond4 wcond4: %t47 = load i32, ptr %t46 %t48 = load ptr, ptr %t0 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7 %t50 = load ptr, ptr %t49 %t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 %t52 = load i32, ptr %t51 %t53 = icmp slt i32 %t47, %t52 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %wbody5, label %wend6 wbody5: %t56 = load ptr, ptr %t0 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7 %t58 = load ptr, ptr %t57 %t59 = load i32, ptr %t46 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t63 = load i32, ptr %t62 %t64 = icmp ult i32 %t59, %t63 br i1 %t64, label %ixok7, label %ixbad8 ixbad8: %t65 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t65, ptr @.fmt_bounds, ptr @.str12487, i32 %t59, i32 %t63) call void @exit(i32 1) unreachable ixok7: %t66 = getelementptr inbounds ptr, ptr %t61, i32 %t59 %t67 = load ptr, ptr %t66 %t68 = load i32, ptr %t5 call void @fn_ui_flatten(ptr %t67, i32 %t68) %t69 = load i32, ptr %t46 %t70 = add i32 %t69, 1 store i32 %t70, ptr %t46 br label %wcond4 wend6: br label %ret ret: ret void } define void @fn_ui_flatten_all() { entry: %t18 = alloca i32 %t26 = alloca i32 %t0 = getelementptr %LSlice, ptr null, i32 1 %t1 = ptrtoint ptr %t0 to i64 %t2 = call ptr @malloc(i64 %t1) %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 store ptr null, ptr %t3 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 store i32 0, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 store i32 0, ptr %t5 store ptr %t2, ptr @g_uiw %t6 = getelementptr %LSlice, ptr null, i32 1 %t7 = ptrtoint ptr %t6 to i64 %t8 = call ptr @malloc(i64 %t7) %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 store ptr null, ptr %t9 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 store i32 0, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2 store i32 0, ptr %t11 store ptr %t8, ptr @g_uiw_parent %t12 = getelementptr %LSlice, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = call ptr @malloc(i64 %t13) %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 store ptr null, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 store i32 0, ptr %t16 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 store i32 0, ptr %t17 store ptr %t14, ptr @g_ui_roots store i32 0, ptr %t18 br label %wcond0 wcond0: %t19 = load i32, ptr %t18 %t20 = load ptr, ptr @g_prog %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp slt i32 %t19, %t22 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %wbody1, label %wend2 wbody1: %t27 = load ptr, ptr @g_prog %t28 = load i32, ptr %t18 %t29 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t32 = load i32, ptr %t31 %t33 = icmp ult i32 %t28, %t32 br i1 %t33, label %ixok3, label %ixbad4 ixbad4: %t34 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t34, ptr @.fmt_bounds, ptr @.str12488, i32 %t28, i32 %t32) call void @exit(i32 1) unreachable ixok3: %t35 = getelementptr inbounds ptr, ptr %t30, i32 %t28 %t36 = load ptr, ptr %t35 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 0 %t38 = load i32, ptr %t37 %t39 = icmp eq i32 %t38, 12 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t26 br i1 %t41, label %sc5, label %scend6 sc5: %t43 = load ptr, ptr @g_prog %t44 = load i32, ptr %t18 %t45 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1 %t48 = load i32, ptr %t47 %t49 = icmp ult i32 %t44, %t48 br i1 %t49, label %ixok7, label %ixbad8 ixbad8: %t50 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t50, ptr @.fmt_bounds, ptr @.str12489, i32 %t44, i32 %t48) call void @exit(i32 1) unreachable ixok7: %t51 = getelementptr inbounds ptr, ptr %t46, i32 %t44 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 2 %t54 = load i32, ptr %t53 %t55 = icmp eq i32 %t54, 1 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 %t58 = zext i1 %t57 to i32 store i32 %t58, ptr %t26 br label %scend6 scend6: %t59 = load i32, ptr %t26 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then9, label %ifend11 then9: %t61 = load ptr, ptr @g_ui_roots %t62 = load ptr, ptr @g_uiw %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 %t64 = load i32, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 1 %t66 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 2 %t67 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0 %t68 = load i32, ptr %t65 %t69 = load i32, ptr %t66 %t70 = icmp sge i32 %t68, %t69 br i1 %t70, label %grow12, label %put13 grow12: %t71 = mul i32 %t69, 2 %t72 = icmp eq i32 %t69, 0 %t73 = select i1 %t72, i32 8, i32 %t71 %t74 = getelementptr i32, ptr null, i32 1 %t75 = ptrtoint ptr %t74 to i64 %t76 = zext i32 %t73 to i64 %t77 = mul i64 %t76, %t75 %t78 = load ptr, ptr %t67 %t79 = call ptr @realloc(ptr %t78, i64 %t77) store ptr %t79, ptr %t67 store i32 %t73, ptr %t66 br label %put13 put13: %t80 = load ptr, ptr %t67 %t81 = getelementptr inbounds i32, ptr %t80, i32 %t68 store i32 %t64, ptr %t81 %t82 = add i32 %t68, 1 store i32 %t82, ptr %t65 %t83 = load ptr, ptr @g_prog %t84 = load i32, ptr %t18 %t85 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 0 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %LSlice, ptr %t83, i32 0, i32 1 %t88 = load i32, ptr %t87 %t89 = icmp ult i32 %t84, %t88 br i1 %t89, label %ixok14, label %ixbad15 ixbad15: %t90 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t90, ptr @.fmt_bounds, ptr @.str12490, i32 %t84, i32 %t88) call void @exit(i32 1) unreachable ixok14: %t91 = getelementptr inbounds ptr, ptr %t86, i32 %t84 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 4 %t94 = load ptr, ptr %t93 %t95 = sub i32 0, 1 call void @fn_ui_flatten(ptr %t94, i32 %t95) br label %ifend11 ifend11: %t96 = load i32, ptr %t18 %t97 = add i32 %t96, 1 store i32 %t97, ptr %t18 br label %wcond0 wend2: br label %ret ret: ret void } define i32 @fn_has_ui() { entry: %retval = alloca i32 %t0 = alloca i32 %t8 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t9 = load ptr, ptr @g_prog %t10 = load i32, ptr %t0 %t11 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp ult i32 %t10, %t14 br i1 %t15, label %ixok3, label %ixbad4 ixbad4: %t16 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t16, ptr @.fmt_bounds, ptr @.str12491, i32 %t10, i32 %t14) call void @exit(i32 1) unreachable ixok3: %t17 = getelementptr inbounds ptr, ptr %t12, i32 %t10 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0 %t20 = load i32, ptr %t19 %t21 = icmp eq i32 %t20, 12 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t8 br i1 %t23, label %sc5, label %scend6 sc5: %t25 = load ptr, ptr @g_prog %t26 = load i32, ptr %t0 %t27 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 1 %t30 = load i32, ptr %t29 %t31 = icmp ult i32 %t26, %t30 br i1 %t31, label %ixok7, label %ixbad8 ixbad8: %t32 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t32, ptr @.fmt_bounds, ptr @.str12492, i32 %t26, i32 %t30) call void @exit(i32 1) unreachable ixok7: %t33 = getelementptr inbounds ptr, ptr %t28, i32 %t26 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2 %t36 = load i32, ptr %t35 %t37 = icmp eq i32 %t36, 1 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t8 br label %scend6 scend6: %t41 = load i32, ptr %t8 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: store i32 1, ptr %retval br label %ret ifend11: %t43 = load i32, ptr %t0 %t44 = add i32 %t43, 1 store i32 %t44, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t45 = load i32, ptr %retval ret i32 %t45 } define i32 @fn_ui_index_of(ptr %arg_nm) { entry: %retval = alloca i32 %t0 = alloca ptr %t10 = alloca ptr %t11 = alloca i32 %t12 = alloca i32 %t13 = alloca i32 %t21 = alloca i32 %t103 = alloca ptr %t108 = alloca i32 store ptr %arg_nm, ptr %t0 %t1 = load ptr, ptr @g_uiw %t2 = icmp eq ptr %t1, null %t3 = zext i1 %t2 to i32 %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: call void @fn_ui_flatten_all() br label %ifend2 ifend2: %t5 = load ptr, ptr %t0 %t6 = load ptr, ptr %t0 %t7 = call i64 @strlen(ptr %t6) %t8 = trunc i64 %t7 to i32 %t9 = call ptr @lp_str_slice(ptr %t5, i32 3, i32 %t8) store ptr %t9, ptr %t10 store i32 0, ptr %t11 store i32 0, ptr %t12 store i32 0, ptr %t13 br label %wcond3 wcond3: %t14 = load i32, ptr %t13 %t15 = load ptr, ptr @g_prog %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t17 = load i32, ptr %t16 %t18 = icmp slt i32 %t14, %t17 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %wbody4, label %wend5 wbody4: %t22 = load ptr, ptr @g_prog %t23 = load i32, ptr %t13 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 %t27 = load i32, ptr %t26 %t28 = icmp ult i32 %t23, %t27 br i1 %t28, label %ixok6, label %ixbad7 ixbad7: %t29 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t29, ptr @.fmt_bounds, ptr @.str12493, i32 %t23, i32 %t27) call void @exit(i32 1) unreachable ixok6: %t30 = getelementptr inbounds ptr, ptr %t25, i32 %t23 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 0 %t33 = load i32, ptr %t32 %t34 = icmp eq i32 %t33, 12 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t21 br i1 %t36, label %sc8, label %scend9 sc8: %t38 = load ptr, ptr @g_prog %t39 = load i32, ptr %t13 %t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 %t43 = load i32, ptr %t42 %t44 = icmp ult i32 %t39, %t43 br i1 %t44, label %ixok10, label %ixbad11 ixbad11: %t45 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t45, ptr @.fmt_bounds, ptr @.str12494, i32 %t39, i32 %t43) call void @exit(i32 1) unreachable ixok10: %t46 = getelementptr inbounds ptr, ptr %t41, i32 %t39 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 2 %t49 = load i32, ptr %t48 %t50 = icmp eq i32 %t49, 1 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t21 br label %scend9 scend9: %t54 = load i32, ptr %t21 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then12, label %ifend14 then12: %t56 = load ptr, ptr @g_prog %t57 = load i32, ptr %t13 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 %t61 = load i32, ptr %t60 %t62 = icmp ult i32 %t57, %t61 br i1 %t62, label %ixok15, label %ixbad16 ixbad16: %t63 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t63, ptr @.fmt_bounds, ptr @.str12495, i32 %t57, i32 %t61) call void @exit(i32 1) unreachable ixok15: %t64 = getelementptr inbounds ptr, ptr %t59, i32 %t57 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 1 %t67 = load ptr, ptr %t66 %t68 = load ptr, ptr %t10 %t69 = call i32 @lp_str_eq(ptr %t67, ptr %t68) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then17, label %ifend19 then17: %t71 = load ptr, ptr @g_ui_roots %t72 = load i32, ptr %t12 %t73 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 1 %t76 = load i32, ptr %t75 %t77 = icmp ult i32 %t72, %t76 br i1 %t77, label %ixok20, label %ixbad21 ixbad21: %t78 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t78, ptr @.fmt_bounds, ptr @.str12496, i32 %t72, i32 %t76) call void @exit(i32 1) unreachable ixok20: %t79 = getelementptr inbounds i32, ptr %t74, i32 %t72 %t80 = load i32, ptr %t79 store i32 %t80, ptr %retval br label %ret ifend19: %t81 = load i32, ptr %t12 %t82 = add i32 %t81, 1 store i32 %t82, ptr %t12 br label %ifend14 ifend14: %t83 = load i32, ptr %t13 %t84 = add i32 %t83, 1 store i32 %t84, ptr %t13 br label %wcond3 wend5: store i32 0, ptr %t13 br label %wcond22 wcond22: %t85 = load i32, ptr %t13 %t86 = load ptr, ptr @g_uiw %t87 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 %t88 = load i32, ptr %t87 %t89 = icmp slt i32 %t85, %t88 %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %wbody23, label %wend24 wbody23: %t92 = load ptr, ptr @g_uiw %t93 = load i32, ptr %t13 %t94 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 0 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 %t97 = load i32, ptr %t96 %t98 = icmp ult i32 %t93, %t97 br i1 %t98, label %ixok25, label %ixbad26 ixbad26: %t99 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t99, ptr @.fmt_bounds, ptr @.str12497, i32 %t93, i32 %t97) call void @exit(i32 1) unreachable ixok25: %t100 = getelementptr inbounds ptr, ptr %t95, i32 %t93 %t101 = load ptr, ptr %t100 %t102 = call ptr @fn_ui_prop(ptr %t101, ptr @.str12498) store ptr %t102, ptr %t103 %t104 = load ptr, ptr %t103 %t105 = icmp ne ptr %t104, null %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then27, label %ifend29 then27: %t109 = load ptr, ptr %t103 %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 0 %t111 = load i32, ptr %t110 %t112 = icmp eq i32 %t111, 33 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t108 br i1 %t114, label %sc30, label %scend31 sc30: %t116 = load ptr, ptr %t103 %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 1 %t118 = load ptr, ptr %t117 %t119 = load ptr, ptr %t10 %t120 = call i32 @lp_str_eq(ptr %t118, ptr %t119) %t121 = icmp ne i32 %t120, 0 %t122 = zext i1 %t121 to i32 store i32 %t122, ptr %t108 br label %scend31 scend31: %t123 = load i32, ptr %t108 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then32, label %ifend34 then32: %t125 = load i32, ptr %t13 store i32 %t125, ptr %retval br label %ret ifend34: br label %ifend29 ifend29: %t126 = load i32, ptr %t13 %t127 = add i32 %t126, 1 store i32 %t127, ptr %t13 br label %wcond22 wend24: store i32 0, ptr %retval br label %ret ret: %t128 = load i32, ptr %retval ret i32 %t128 } define i32 @fn_is_ui_ident(ptr %arg_nm) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_nm, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i64 @strlen(ptr %t4) %t6 = trunc i64 %t5 to i32 %t7 = icmp sgt i32 %t6, 3 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t3 br i1 %t9, label %sc0, label %scend1 sc0: %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds i8, ptr %t11, i32 0 %t13 = load i8, ptr %t12 %t14 = zext i8 %t13 to i32 %t15 = icmp eq i32 %t14, 85 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t3 br label %scend1 scend1: %t19 = load i32, ptr %t3 %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t2 br i1 %t20, label %sc2, label %scend3 sc2: %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds i8, ptr %t22, i32 1 %t24 = load i8, ptr %t23 %t25 = zext i8 %t24 to i32 %t26 = icmp eq i32 %t25, 73 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t2 br label %scend3 scend3: %t30 = load i32, ptr %t2 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t1 br i1 %t31, label %sc4, label %scend5 sc4: %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds i8, ptr %t33, i32 2 %t35 = load i8, ptr %t34 %t36 = zext i8 %t35 to i32 %t37 = icmp eq i32 %t36, 95 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t1 br label %scend5 scend5: %t41 = load i32, ptr %t1 store i32 %t41, ptr %retval br label %ret ret: %t42 = load i32, ptr %retval ret i32 %t42 } define void @fn_ll_ui_set(i32 %arg_idx, i32 %arg_key, ptr %arg_val) { entry: %t0 = alloca i32 %t1 = alloca i32 %t2 = alloca ptr store i32 %arg_idx, ptr %t0 store i32 %arg_key, ptr %t1 store ptr %arg_val, ptr %t2 call void @fn_emit(ptr @.str12499) %t3 = load i32, ptr %t0 %t4 = call ptr @fn_itoa(i32 %t3) call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str12500) %t5 = load i32, ptr %t1 %t6 = call ptr @fn_itoa(i32 %t5) call void @fn_emit(ptr %t6) call void @fn_emit(ptr @.str12501) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) call void @fn_emit(ptr @.str12502) br label %ret ret: ret void } define i32 @fn_ui_prop_key(ptr %arg_k) { entry: %retval = alloca i32 %t0 = alloca ptr store ptr %arg_k, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i32 @lp_str_eq(ptr %t1, ptr @.str12503) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store i32 2, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @lp_str_eq(ptr %t4, ptr @.str12504) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store i32 3, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @lp_str_eq(ptr %t7, ptr @.str12505) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store i32 4, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @lp_str_eq(ptr %t10, ptr @.str12506) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store i32 5, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str12507) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store i32 7, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str12508) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: store i32 8, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 %t20 = call i32 @lp_str_eq(ptr %t19, ptr @.str12509) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: store i32 9, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 %t23 = call i32 @lp_str_eq(ptr %t22, ptr @.str12510) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: store i32 10, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 %t26 = call i32 @lp_str_eq(ptr %t25, ptr @.str12511) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: store i32 11, ptr %retval br label %ret ifend26: %t28 = load ptr, ptr %t0 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str12512) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then27, label %ifend29 then27: store i32 13, ptr %retval br label %ret ifend29: %t31 = load ptr, ptr %t0 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str12513) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then30, label %ifend32 then30: store i32 14, ptr %retval br label %ret ifend32: %t34 = load ptr, ptr %t0 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str12514) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then33, label %ifend35 then33: store i32 15, ptr %retval br label %ret ifend35: %t37 = load ptr, ptr %t0 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str12515) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then36, label %ifend38 then36: store i32 16, ptr %retval br label %ret ifend38: %t40 = load ptr, ptr %t0 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str12516) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then39, label %ifend41 then39: store i32 17, ptr %retval br label %ret ifend41: %t43 = sub i32 0, 1 store i32 %t43, ptr %retval br label %ret ret: %t44 = load i32, ptr %retval ret i32 %t44 } define void @fn_emit_ui_build() { entry: %t1 = alloca ptr %t4 = alloca ptr %t10 = alloca i32 %t28 = alloca ptr %t31 = alloca i32 %t54 = alloca ptr %t55 = alloca i32 %t73 = alloca ptr %t77 = alloca ptr %t81 = alloca ptr %t82 = alloca i32 %t100 = alloca ptr %t106 = alloca i32 %t119 = alloca ptr %t126 = alloca ptr %t143 = alloca i32 %t159 = alloca ptr %t166 = alloca i32 %t173 = alloca ptr %t179 = alloca i32 call void @fn_ui_flatten_all() store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop %t0 = call ptr @fn_buf_new() store ptr %t0, ptr %t1 %t2 = call ptr @fn_buf_new() store ptr %t2, ptr @g_falloc %t3 = load ptr, ptr @g_code store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t1 store ptr %t5, ptr @g_code call void @fn_emit(ptr @.str12517) %t6 = load ptr, ptr @g_uiw %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = call ptr @fn_itoa(i32 %t8) call void @fn_emit(ptr %t9) call void @fn_emit(ptr @.str12518) store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load ptr, ptr @g_uiw %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = load i32, ptr %t13 %t15 = icmp slt i32 %t11, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr @g_uiw %t19 = load i32, ptr %t10 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t23 = load i32, ptr %t22 %t24 = icmp ult i32 %t19, %t23 br i1 %t24, label %ixok3, label %ixbad4 ixbad4: %t25 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t25, ptr @.fmt_bounds, ptr @.str12519, i32 %t19, i32 %t23) call void @exit(i32 1) unreachable ixok3: %t26 = getelementptr inbounds ptr, ptr %t21, i32 %t19 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %t28 %t29 = load ptr, ptr %t28 %t30 = call i32 @fn_ui_wtype(ptr %t29) store i32 %t30, ptr %t31 %t32 = load i32, ptr %t10 %t33 = load i32, ptr %t31 %t34 = call ptr @fn_itoa(i32 %t33) call void @fn_ll_ui_set(i32 %t32, i32 0, ptr %t34) %t35 = load i32, ptr %t10 %t36 = load ptr, ptr @g_uiw_parent %t37 = load i32, ptr %t10 %t38 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 1 %t41 = load i32, ptr %t40 %t42 = icmp ult i32 %t37, %t41 br i1 %t42, label %ixok5, label %ixbad6 ixbad6: %t43 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t43, ptr @.fmt_bounds, ptr @.str12520, i32 %t37, i32 %t41) call void @exit(i32 1) unreachable ixok5: %t44 = getelementptr inbounds i32, ptr %t39, i32 %t37 %t45 = load i32, ptr %t44 %t46 = call ptr @fn_itoa(i32 %t45) call void @fn_ll_ui_set(i32 %t35, i32 1, ptr %t46) %t47 = load i32, ptr %t31 %t48 = icmp eq i32 %t47, 4 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then7, label %ifend9 then7: %t51 = load i32, ptr %t10 call void @fn_ll_ui_set(i32 %t51, i32 17, ptr @.str12521) br label %ifend9 ifend9: %t52 = load i32, ptr %t10 %t53 = call ptr @fn_ui_props_with_inherited(i32 %t52) store ptr %t53, ptr %t54 store i32 0, ptr %t55 br label %wcond10 wcond10: %t56 = load i32, ptr %t55 %t57 = load ptr, ptr %t54 %t58 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1 %t59 = load i32, ptr %t58 %t60 = icmp slt i32 %t56, %t59 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %wbody11, label %wend12 wbody11: %t63 = load ptr, ptr %t54 %t64 = load i32, ptr %t55 %t65 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1 %t68 = load i32, ptr %t67 %t69 = icmp ult i32 %t64, %t68 br i1 %t69, label %ixok13, label %ixbad14 ixbad14: %t70 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t70, ptr @.fmt_bounds, ptr @.str12522, i32 %t64, i32 %t68) call void @exit(i32 1) unreachable ixok13: %t71 = getelementptr inbounds ptr, ptr %t66, i32 %t64 %t72 = load ptr, ptr %t71 store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t73 %t75 = getelementptr inbounds %Cmp_Node, ptr %t74, i32 0, i32 1 %t76 = load ptr, ptr %t75 store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t73 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 4 %t80 = load ptr, ptr %t79 store ptr %t80, ptr %t81 %t83 = load ptr, ptr %t77 %t84 = call i32 @lp_str_eq(ptr %t83, ptr @.str12523) %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t82 br i1 %t85, label %scend16, label %sc15 sc15: %t87 = load ptr, ptr %t77 %t88 = call i32 @lp_str_eq(ptr %t87, ptr @.str12524) %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t82 br label %scend16 scend16: %t91 = load i32, ptr %t82 %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then17, label %ifend19 then17: %t93 = load i32, ptr %t55 %t94 = add i32 %t93, 1 store i32 %t94, ptr %t55 br label %wcond10 ifend19: %t95 = load ptr, ptr %t77 %t96 = call i32 @lp_str_eq(ptr %t95, ptr @.str12525) %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then20, label %else21 then20: %t98 = load ptr, ptr %t81 %t99 = call ptr @fn_emit_expr(ptr %t98) store ptr %t99, ptr %t100 call void @fn_emit(ptr @.str12526) %t101 = load i32, ptr %t10 %t102 = call ptr @fn_itoa(i32 %t101) call void @fn_emit(ptr %t102) call void @fn_emit(ptr @.str12527) %t103 = load ptr, ptr %t100 %t104 = getelementptr inbounds %Cmp_Val, ptr %t103, i32 0, i32 0 %t105 = load ptr, ptr %t104 call void @fn_emit(ptr %t105) call void @fn_emit(ptr @.str12528) br label %ifend22 else21: %t107 = load ptr, ptr %t77 %t108 = call i32 @lp_str_eq(ptr %t107, ptr @.str12529) %t109 = icmp ne i32 %t108, 0 %t110 = zext i1 %t109 to i32 store i32 %t110, ptr %t106 br i1 %t109, label %scend24, label %sc23 sc23: %t111 = load ptr, ptr %t77 %t112 = call i32 @lp_str_eq(ptr %t111, ptr @.str12530) %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t106 br label %scend24 scend24: %t115 = load i32, ptr %t106 %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then25, label %else26 then25: %t117 = load ptr, ptr %t81 %t118 = call ptr @fn_emit_expr(ptr %t117) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = call ptr @lp_str_concat(ptr @.str12531, ptr %t122) %t124 = call ptr @lp_str_concat(ptr %t123, ptr @.str12532) %t125 = call ptr @fn_emit_bind(ptr %t124) store ptr %t125, ptr %t126 %t127 = load ptr, ptr %t77 %t128 = call i32 @lp_str_eq(ptr %t127, ptr @.str12533) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then28, label %else29 then28: %t130 = load i32, ptr %t10 %t131 = load ptr, ptr %t126 call void @fn_ll_ui_set(i32 %t130, i32 20, ptr %t131) br label %ifend30 else29: %t132 = load i32, ptr %t10 %t133 = load ptr, ptr %t126 call void @fn_ll_ui_set(i32 %t132, i32 19, ptr %t133) br label %ifend30 ifend30: br label %ifend27 else26: %t134 = load ptr, ptr %t77 %t135 = call i32 @lp_str_eq(ptr %t134, ptr @.str12534) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then31, label %else32 then31: %t137 = load ptr, ptr %t81 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 0 %t139 = load i32, ptr %t138 %t140 = icmp eq i32 %t139, 33 %t141 = zext i1 %t140 to i32 %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then34, label %else35 then34: store i32 0, ptr %t143 %t144 = load ptr, ptr %t81 %t145 = getelementptr inbounds %Cmp_Node, ptr %t144, i32 0, i32 1 %t146 = load ptr, ptr %t145 %t147 = call i32 @lp_str_eq(ptr %t146, ptr @.str12535) %t148 = icmp ne i32 %t147, 0 br i1 %t148, label %then37, label %ifend39 then37: store i32 1, ptr %t143 br label %ifend39 ifend39: %t149 = load ptr, ptr %t81 %t150 = getelementptr inbounds %Cmp_Node, ptr %t149, i32 0, i32 1 %t151 = load ptr, ptr %t150 %t152 = call i32 @lp_str_eq(ptr %t151, ptr @.str12536) %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then40, label %ifend42 then40: store i32 2, ptr %t143 br label %ifend42 ifend42: %t154 = load i32, ptr %t10 %t155 = load i32, ptr %t143 %t156 = call ptr @fn_itoa(i32 %t155) call void @fn_ll_ui_set(i32 %t154, i32 12, ptr %t156) br label %ifend36 else35: %t157 = load ptr, ptr %t81 %t158 = call ptr @fn_emit_expr(ptr %t157) store ptr %t158, ptr %t159 %t160 = load i32, ptr %t10 %t161 = load ptr, ptr %t159 %t162 = getelementptr inbounds %Cmp_Val, ptr %t161, i32 0, i32 0 %t163 = load ptr, ptr %t162 call void @fn_ll_ui_set(i32 %t160, i32 12, ptr %t163) br label %ifend36 ifend36: br label %ifend33 else32: %t164 = load ptr, ptr %t77 %t165 = call i32 @fn_ui_prop_key(ptr %t164) store i32 %t165, ptr %t166 %t167 = load i32, ptr %t166 %t168 = icmp sge i32 %t167, 0 %t169 = zext i1 %t168 to i32 %t170 = icmp ne i32 %t169, 0 br i1 %t170, label %then43, label %ifend45 then43: %t171 = load ptr, ptr %t81 %t172 = call ptr @fn_emit_expr(ptr %t171) store ptr %t172, ptr %t173 %t174 = load i32, ptr %t10 %t175 = load i32, ptr %t166 %t176 = load ptr, ptr %t173 %t177 = getelementptr inbounds %Cmp_Val, ptr %t176, i32 0, i32 0 %t178 = load ptr, ptr %t177 call void @fn_ll_ui_set(i32 %t174, i32 %t175, ptr %t178) %t180 = load i32, ptr %t166 %t181 = icmp eq i32 %t180, 4 %t182 = zext i1 %t181 to i32 %t183 = icmp ne i32 %t182, 0 %t184 = zext i1 %t183 to i32 store i32 %t184, ptr %t179 br i1 %t183, label %scend47, label %sc46 sc46: %t185 = load i32, ptr %t166 %t186 = icmp eq i32 %t185, 5 %t187 = zext i1 %t186 to i32 %t188 = icmp ne i32 %t187, 0 %t189 = zext i1 %t188 to i32 store i32 %t189, ptr %t179 br label %scend47 scend47: %t190 = load i32, ptr %t179 %t191 = icmp ne i32 %t190, 0 br i1 %t191, label %then48, label %ifend50 then48: %t192 = load i32, ptr %t10 call void @fn_ll_ui_set(i32 %t192, i32 6, ptr @.str12537) br label %ifend50 ifend50: br label %ifend45 ifend45: br label %ifend33 ifend33: br label %ifend27 ifend27: br label %ifend22 ifend22: %t193 = load i32, ptr %t55 %t194 = add i32 %t193, 1 store i32 %t194, ptr %t55 br label %wcond10 wend12: %t195 = load i32, ptr %t10 %t196 = add i32 %t195, 1 store i32 %t196, ptr %t10 br label %wcond0 wend2: %t197 = load ptr, ptr %t4 store ptr %t197, ptr @g_code call void @fn_emit(ptr @.str12538) %t198 = load ptr, ptr @g_falloc %t199 = call ptr @fn_buf_str(ptr %t198) call void @fn_emit(ptr %t199) %t200 = load ptr, ptr %t1 %t201 = call ptr @fn_buf_str(ptr %t200) call void @fn_emit(ptr %t201) call void @fn_emit(ptr @.str12539) br label %ret ret: ret void } define void @fn_emit_params_sig(ptr %arg_d) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_d, ptr %t0 store i32 0, ptr %t1 br label %wcond0 wcond0: %t2 = load i32, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1 %t7 = load i32, ptr %t6 %t8 = icmp slt i32 %t2, %t7 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load i32, ptr %t1 %t12 = icmp sgt i32 %t11, 0 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str12540) br label %ifend5 ifend5: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7 %t17 = load ptr, ptr %t16 %t18 = load i32, ptr %t1 %t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1 %t22 = load i32, ptr %t21 %t23 = icmp ult i32 %t18, %t22 br i1 %t23, label %ixok6, label %ixbad7 ixbad7: %t24 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t24, ptr @.fmt_bounds, ptr @.str12541, i32 %t18, i32 %t22) call void @exit(i32 1) unreachable ixok6: %t25 = getelementptr inbounds ptr, ptr %t20, i32 %t18 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 3 %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_llty(ptr %t28) call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str12542) %t30 = load ptr, ptr %t0 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7 %t32 = load ptr, ptr %t31 %t33 = load i32, ptr %t1 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t37 = load i32, ptr %t36 %t38 = icmp ult i32 %t33, %t37 br i1 %t38, label %ixok8, label %ixbad9 ixbad9: %t39 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t39, ptr @.fmt_bounds, ptr @.str12543, i32 %t33, i32 %t37) call void @exit(i32 1) unreachable ixok8: %t40 = getelementptr inbounds ptr, ptr %t35, i32 %t33 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 call void @fn_emit(ptr %t43) %t44 = load i32, ptr %t1 %t45 = add i32 %t44, 1 store i32 %t45, ptr %t1 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_emit_fn(ptr %arg_d) { entry: %t0 = alloca ptr %t8 = alloca ptr %t11 = alloca ptr %t15 = alloca ptr %t25 = alloca i32 %t47 = alloca ptr %t53 = alloca ptr %t74 = alloca i32 %t109 = alloca ptr store ptr %arg_d, ptr %t0 store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1 %t3 = load ptr, ptr %t2 call void @fn_det_enter(ptr %t3) store ptr null, ptr @g_g_cur_scene %t4 = load ptr, ptr %t0 %t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 3 %t6 = load ptr, ptr %t5 store ptr %t6, ptr @g_ret_ty %t7 = call ptr @fn_buf_new() store ptr %t7, ptr %t8 %t9 = call ptr @fn_buf_new() store ptr %t9, ptr @g_falloc %t10 = load ptr, ptr @g_code store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t8 store ptr %t12, ptr @g_code %t13 = load ptr, ptr @g_ret_ty %t14 = call ptr @fn_llty(ptr %t13) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = call i32 @lp_str_eq(ptr %t16, ptr @.str12544) %t18 = icmp eq i32 %t17, 0 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then0, label %ifend2 then0: %t21 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t21, ptr @.str12545) %t22 = load ptr, ptr @g_falloc %t23 = load ptr, ptr %t15 call void @fn_buf_puts(ptr %t22, ptr %t23) %t24 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t24, ptr @.str12546) br label %ifend2 ifend2: store i32 0, ptr %t25 br label %wcond3 wcond3: %t26 = load i32, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 7 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp slt i32 %t26, %t31 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %wbody4, label %wend5 wbody4: %t35 = load ptr, ptr %t0 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 7 %t37 = load ptr, ptr %t36 %t38 = load i32, ptr %t25 %t39 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t42 = load i32, ptr %t41 %t43 = icmp ult i32 %t38, %t42 br i1 %t43, label %ixok6, label %ixbad7 ixbad7: %t44 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t44, ptr @.fmt_bounds, ptr @.str12547, i32 %t38, i32 %t42) call void @exit(i32 1) unreachable ixok6: %t45 = getelementptr inbounds ptr, ptr %t40, i32 %t38 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 3 %t50 = load ptr, ptr %t49 %t51 = call ptr @fn_llty(ptr %t50) %t52 = call ptr @fn_emit_alloca(ptr %t51) store ptr %t52, ptr %t53 call void @fn_emit(ptr @.str12548) %t54 = load ptr, ptr %t47 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 3 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_llty(ptr %t56) call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str12549) %t58 = load ptr, ptr %t47 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 1 %t60 = load ptr, ptr %t59 call void @fn_emit(ptr %t60) call void @fn_emit(ptr @.str12550) %t61 = load ptr, ptr %t53 call void @fn_emit(ptr %t61) call void @fn_emit(ptr @.str12551) %t62 = load ptr, ptr %t47 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 %t65 = load ptr, ptr %t53 %t66 = load ptr, ptr %t47 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 3 %t68 = load ptr, ptr %t67 call void @fn_loc_push(ptr %t64, ptr %t65, ptr %t68) %t69 = load i32, ptr %t25 %t70 = add i32 %t69, 1 store i32 %t70, ptr %t25 br label %wcond3 wend5: %t71 = load ptr, ptr %t0 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4 %t73 = load ptr, ptr %t72 call void @fn_emit_block(ptr %t73) %t75 = load ptr, ptr %t15 %t76 = call i32 @lp_str_eq(ptr %t75, ptr @.str12552) %t77 = icmp eq i32 %t76, 0 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t74 br i1 %t79, label %sc8, label %scend9 sc8: %t81 = load ptr, ptr %t0 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 4 %t83 = load ptr, ptr %t82 %t84 = call i32 @fn_block_ends(ptr %t83) %t85 = icmp eq i32 %t84, 0 %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t74 br label %scend9 scend9: %t89 = load i32, ptr %t74 %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then10, label %ifend12 then10: %t91 = load ptr, ptr %t0 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 1 %t93 = load ptr, ptr %t92 %t94 = call ptr @lp_str_concat(ptr @.str12553, ptr %t93) %t95 = call ptr @lp_str_concat(ptr %t94, ptr @.str12554) %t96 = load ptr, ptr @g_ret_ty %t97 = call ptr @lp_str_concat(ptr %t95, ptr %t96) call void @fn_perr(ptr %t97) br label %ifend12 ifend12: %t98 = load i32, ptr @g_g_term %t99 = icmp eq i32 %t98, 0 %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then13, label %ifend15 then13: call void @fn_emit(ptr @.str12555) br label %ifend15 ifend15: call void @fn_emit(ptr @.str12556) %t102 = load ptr, ptr %t15 %t103 = call i32 @lp_str_eq(ptr %t102, ptr @.str12557) %t104 = icmp ne i32 %t103, 0 br i1 %t104, label %then16, label %else17 then16: call void @fn_emit(ptr @.str12558) br label %ifend18 else17: %t105 = load ptr, ptr %t15 %t106 = call ptr @lp_str_concat(ptr @.str12559, ptr %t105) %t107 = call ptr @lp_str_concat(ptr %t106, ptr @.str12560) %t108 = call ptr @fn_emit_bind(ptr %t107) store ptr %t108, ptr %t109 call void @fn_emit(ptr @.str12561) %t110 = load ptr, ptr %t15 call void @fn_emit(ptr %t110) call void @fn_emit(ptr @.str12562) %t111 = load ptr, ptr %t109 call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str12563) br label %ifend18 ifend18: %t112 = load ptr, ptr %t11 store ptr %t112, ptr @g_code call void @fn_emit(ptr @.str12564) %t113 = load ptr, ptr %t15 call void @fn_emit(ptr %t113) call void @fn_emit(ptr @.str12565) %t114 = load ptr, ptr %t0 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 1 %t116 = load ptr, ptr %t115 call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str12566) %t117 = load ptr, ptr %t0 call void @fn_emit_params_sig(ptr %t117) call void @fn_emit(ptr @.str12567) %t118 = load ptr, ptr @g_falloc %t119 = call ptr @fn_buf_str(ptr %t118) call void @fn_emit(ptr %t119) %t120 = load ptr, ptr %t8 %t121 = call ptr @fn_buf_str(ptr %t120) call void @fn_emit(ptr %t121) call void @fn_emit(ptr @.str12568) store ptr @.str12569, ptr @g_g_det_ctx br label %ret ret: ret void } define void @fn_emit_main(ptr %arg_d) { entry: %t0 = alloca ptr %t2 = alloca ptr %t5 = alloca ptr %t20 = alloca ptr store ptr %arg_d, ptr %t0 store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store ptr @.str12570, ptr @g_ret_ty %t1 = call ptr @fn_buf_new() store ptr %t1, ptr %t2 %t3 = call ptr @fn_buf_new() store ptr %t3, ptr @g_falloc %t4 = load ptr, ptr @g_code store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t2 store ptr %t6, ptr @g_code %t7 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t7, ptr @.str12571) call void @fn_emit(ptr @.str12572) call void @fn_emit(ptr @.str12573) call void @fn_emit(ptr @.str12574) %t8 = call ptr @fn_find_fn(ptr @.str12575) %t9 = icmp ne ptr %t8, null %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str12576) br label %ifend2 ifend2: call void @fn_emit(ptr @.str12577) %t12 = load ptr, ptr %t0 %t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 4 %t14 = load ptr, ptr %t13 call void @fn_emit_block(ptr %t14) %t15 = load i32, ptr @g_g_term %t16 = icmp eq i32 %t15, 0 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str12578) br label %ifend5 ifend5: call void @fn_emit(ptr @.str12579) %t19 = call ptr @fn_emit_bind(ptr @.str12580) store ptr %t19, ptr %t20 call void @fn_emit(ptr @.str12581) %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str12582) %t22 = load ptr, ptr %t5 store ptr %t22, ptr @g_code call void @fn_emit(ptr @.str12583) %t23 = load ptr, ptr @g_falloc %t24 = call ptr @fn_buf_str(ptr %t23) call void @fn_emit(ptr %t24) %t25 = load ptr, ptr %t2 %t26 = call ptr @fn_buf_str(ptr %t25) call void @fn_emit(ptr %t26) call void @fn_emit(ptr @.str12584) br label %ret ret: ret void } define void @fn_emit_test_fn(ptr %arg_t, i32 %arg_idx) { entry: %t0 = alloca ptr %t1 = alloca i32 %t3 = alloca ptr %t6 = alloca ptr store ptr %arg_t, ptr %t0 store i32 %arg_idx, ptr %t1 store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop store ptr @.str12585, ptr @g_ret_ty %t2 = call ptr @fn_buf_new() store ptr %t2, ptr %t3 %t4 = call ptr @fn_buf_new() store ptr %t4, ptr @g_falloc %t5 = load ptr, ptr @g_code store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t3 store ptr %t7, ptr @g_code %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = load ptr, ptr %t9 call void @fn_emit_block(ptr %t10) %t11 = load i32, ptr @g_g_term %t12 = icmp eq i32 %t11, 0 %t13 = zext i1 %t12 to i32 %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str12586) br label %ifend2 ifend2: call void @fn_emit(ptr @.str12587) %t15 = load ptr, ptr %t6 store ptr %t15, ptr @g_code call void @fn_emit(ptr @.str12588) %t16 = load i32, ptr %t1 %t17 = call ptr @fn_itoa(i32 %t16) call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str12589) %t18 = load ptr, ptr @g_falloc %t19 = call ptr @fn_buf_str(ptr %t18) call void @fn_emit(ptr %t19) %t20 = load ptr, ptr %t3 %t21 = call ptr @fn_buf_str(ptr %t20) call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str12590) br label %ret ret: ret void } define void @fn_emit_test_runner() { entry: %t0 = alloca i32 %t26 = alloca ptr %t28 = alloca ptr %t30 = alloca ptr %t43 = alloca ptr %t47 = alloca ptr %t57 = alloca ptr %t59 = alloca ptr %t61 = alloca ptr %t66 = alloca ptr %t68 = alloca ptr %t81 = alloca ptr %t89 = alloca ptr %t94 = alloca ptr %t106 = alloca i32 %t127 = alloca ptr %t158 = alloca ptr %t173 = alloca ptr %t187 = alloca ptr %t189 = alloca ptr %t191 = alloca ptr %t193 = alloca ptr %t195 = alloca ptr %t200 = alloca ptr %t219 = alloca ptr %t224 = alloca ptr %t237 = alloca ptr %t242 = alloca ptr %t251 = alloca ptr %t256 = alloca ptr %t258 = alloca ptr %t260 = alloca ptr %t262 = alloca ptr %t283 = alloca ptr %t288 = alloca ptr %t308 = alloca ptr %t310 = alloca ptr %t312 = alloca ptr %t314 = alloca ptr %t319 = alloca ptr %t324 = alloca ptr %t331 = alloca ptr %t349 = alloca ptr %t356 = alloca ptr %t367 = alloca ptr %t372 = alloca ptr call void @fn_emith(ptr @.str12591) call void @fn_emith(ptr @.str12592) call void @fn_emith(ptr @.str12593) store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_g_tests %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_g_tests %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str12594, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 %t18 = load i32, ptr %t0 call void @fn_emit_test_fn(ptr %t17, i32 %t18) %t19 = load i32, ptr %t0 %t20 = add i32 %t19, 1 store i32 %t20, ptr %t0 br label %wcond0 wend2: %t21 = load i32, ptr @g_g_uses_expect %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then5, label %ifend7 then5: call void @fn_emith(ptr @.str12595) br label %ifend7 ifend7: %t23 = load i32, ptr @g_g_uses_expect_fp %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then8, label %ifend10 then8: call void @fn_emith(ptr @.str12596) br label %ifend10 ifend10: store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl call void @fn_emit(ptr @.str12597) call void @fn_emit(ptr @.str12598) call void @fn_emit(ptr @.str12599) call void @fn_emit(ptr @.str12600) call void @fn_emit(ptr @.str12601) call void @fn_emit(ptr @.str12602) %t25 = call ptr @fn_lbl(ptr @.str12603) store ptr %t25, ptr %t26 %t27 = call ptr @fn_lbl(ptr @.str12604) store ptr %t27, ptr %t28 %t29 = call ptr @fn_emit_bind(ptr @.str12605) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = call ptr @lp_str_concat(ptr @.str12606, ptr %t31) %t33 = call ptr @lp_str_concat(ptr %t32, ptr @.str12607) %t34 = load ptr, ptr %t26 %t35 = call ptr @lp_str_concat(ptr %t33, ptr %t34) %t36 = call ptr @lp_str_concat(ptr %t35, ptr @.str12608) %t37 = load ptr, ptr %t28 %t38 = call ptr @lp_str_concat(ptr %t36, ptr %t37) %t39 = call ptr @lp_str_concat(ptr %t38, ptr @.str12609) call void @fn_emit(ptr %t39) %t40 = load ptr, ptr %t26 %t41 = call ptr @lp_str_concat(ptr %t40, ptr @.str12610) call void @fn_emit(ptr %t41) %t42 = call ptr @fn_emit_bind(ptr @.str12611) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = call ptr @lp_str_concat(ptr @.str12612, ptr %t44) %t46 = call ptr @fn_emit_bind(ptr %t45) store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t47 %t49 = call ptr @lp_str_concat(ptr @.str12613, ptr %t48) %t50 = call ptr @lp_str_concat(ptr %t49, ptr @.str12614) call void @fn_emit(ptr %t50) %t51 = load ptr, ptr %t28 %t52 = call ptr @lp_str_concat(ptr @.str12615, ptr %t51) %t53 = call ptr @lp_str_concat(ptr %t52, ptr @.str12616) call void @fn_emit(ptr %t53) %t54 = load ptr, ptr %t28 %t55 = call ptr @lp_str_concat(ptr %t54, ptr @.str12617) call void @fn_emit(ptr %t55) %t56 = call ptr @fn_lbl(ptr @.str12618) store ptr %t56, ptr %t57 %t58 = call ptr @fn_lbl(ptr @.str12619) store ptr %t58, ptr %t59 %t60 = call ptr @fn_emit_bind(ptr @.str12620) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t61 %t63 = call ptr @lp_str_concat(ptr @.str12621, ptr %t62) %t64 = call ptr @lp_str_concat(ptr %t63, ptr @.str12622) %t65 = call ptr @fn_emit_bind(ptr %t64) store ptr %t65, ptr %t66 %t67 = call ptr @fn_lbl(ptr @.str12623) store ptr %t67, ptr %t68 %t69 = load ptr, ptr %t66 %t70 = call ptr @lp_str_concat(ptr @.str12624, ptr %t69) %t71 = call ptr @lp_str_concat(ptr %t70, ptr @.str12625) %t72 = load ptr, ptr %t68 %t73 = call ptr @lp_str_concat(ptr %t71, ptr %t72) %t74 = call ptr @lp_str_concat(ptr %t73, ptr @.str12626) %t75 = load ptr, ptr %t59 %t76 = call ptr @lp_str_concat(ptr %t74, ptr %t75) %t77 = call ptr @lp_str_concat(ptr %t76, ptr @.str12627) call void @fn_emit(ptr %t77) %t78 = load ptr, ptr %t68 %t79 = call ptr @lp_str_concat(ptr %t78, ptr @.str12628) call void @fn_emit(ptr %t79) %t80 = call ptr @fn_emit_str_const(ptr @.str12629) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t61 %t83 = call ptr @lp_str_concat(ptr @.str12630, ptr %t82) %t84 = call ptr @lp_str_concat(ptr %t83, ptr @.str12631) %t85 = load ptr, ptr %t81 %t86 = call ptr @lp_str_concat(ptr %t84, ptr %t85) %t87 = call ptr @lp_str_concat(ptr %t86, ptr @.str12632) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = call ptr @lp_str_concat(ptr @.str12633, ptr %t90) %t92 = call ptr @lp_str_concat(ptr %t91, ptr @.str12634) %t93 = call ptr @fn_emit_bind(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t94 %t96 = call ptr @lp_str_concat(ptr @.str12635, ptr %t95) %t97 = call ptr @lp_str_concat(ptr %t96, ptr @.str12636) %t98 = load ptr, ptr %t57 %t99 = call ptr @lp_str_concat(ptr %t97, ptr %t98) %t100 = call ptr @lp_str_concat(ptr %t99, ptr @.str12637) %t101 = load ptr, ptr %t59 %t102 = call ptr @lp_str_concat(ptr %t100, ptr %t101) %t103 = call ptr @lp_str_concat(ptr %t102, ptr @.str12638) call void @fn_emit(ptr %t103) %t104 = load ptr, ptr %t57 %t105 = call ptr @lp_str_concat(ptr %t104, ptr @.str12639) call void @fn_emit(ptr %t105) store i32 0, ptr %t106 br label %wcond11 wcond11: %t107 = load i32, ptr %t106 %t108 = load ptr, ptr @g_g_tests %t109 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t110 = load i32, ptr %t109 %t111 = icmp slt i32 %t107, %t110 %t112 = zext i1 %t111 to i32 %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %wbody12, label %wend13 wbody12: %t114 = load ptr, ptr @g_g_tests %t115 = load i32, ptr %t106 %t116 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 0 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 1 %t119 = load i32, ptr %t118 %t120 = icmp ult i32 %t115, %t119 br i1 %t120, label %ixok14, label %ixbad15 ixbad15: %t121 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t121, ptr @.fmt_bounds, ptr @.str12640, i32 %t115, i32 %t119) call void @exit(i32 1) unreachable ixok14: %t122 = getelementptr inbounds ptr, ptr %t117, i32 %t115 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t124 %t126 = call ptr @fn_emit_str_const(ptr %t125) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t127 %t129 = call ptr @lp_str_concat(ptr @.str12641, ptr %t128) %t130 = call ptr @lp_str_concat(ptr %t129, ptr @.str12642) call void @fn_emit(ptr %t130) %t131 = load i32, ptr %t106 %t132 = add i32 %t131, 1 store i32 %t132, ptr %t106 br label %wcond11 wend13: call void @fn_emit(ptr @.str12643) %t133 = load ptr, ptr %t59 %t134 = call ptr @lp_str_concat(ptr %t133, ptr @.str12644) call void @fn_emit(ptr %t134) %t135 = call i32 @fn_has_ecs() %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then16, label %ifend18 then16: call void @fn_emit(ptr @.str12645) br label %ifend18 ifend18: call void @fn_emit(ptr @.str12646) store i32 0, ptr %t0 br label %wcond19 wcond19: %t137 = load i32, ptr %t0 %t138 = load ptr, ptr @g_g_tests %t139 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 1 %t140 = load i32, ptr %t139 %t141 = icmp slt i32 %t137, %t140 %t142 = zext i1 %t141 to i32 %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %wbody20, label %wend21 wbody20: %t144 = load ptr, ptr @g_g_tests %t145 = load i32, ptr %t0 %t146 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 0 %t147 = load ptr, ptr %t146 %t148 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 1 %t149 = load i32, ptr %t148 %t150 = icmp ult i32 %t145, %t149 br i1 %t150, label %ixok22, label %ixbad23 ixbad23: %t151 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t151, ptr @.fmt_bounds, ptr @.str12648, i32 %t145, i32 %t149) call void @exit(i32 1) unreachable ixok22: %t152 = getelementptr inbounds ptr, ptr %t147, i32 %t145 %t153 = load ptr, ptr %t152 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 1 %t155 = load ptr, ptr %t154 %t156 = call ptr @lp_str_concat(ptr @.str12647, ptr %t155) %t157 = call ptr @fn_emit_str_const(ptr %t156) store ptr %t157, ptr %t158 %t159 = load ptr, ptr @g_g_tests %t160 = load i32, ptr %t0 %t161 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 1 %t164 = load i32, ptr %t163 %t165 = icmp ult i32 %t160, %t164 br i1 %t165, label %ixok24, label %ixbad25 ixbad25: %t166 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t166, ptr @.fmt_bounds, ptr @.str12650, i32 %t160, i32 %t164) call void @exit(i32 1) unreachable ixok24: %t167 = getelementptr inbounds ptr, ptr %t162, i32 %t160 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds %Cmp_Node, ptr %t168, i32 0, i32 1 %t170 = load ptr, ptr %t169 %t171 = call ptr @lp_str_concat(ptr @.str12649, ptr %t170) %t172 = call ptr @fn_emit_str_const(ptr %t171) store ptr %t172, ptr %t173 %t174 = load ptr, ptr @g_g_tests %t175 = load i32, ptr %t0 %t176 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 0 %t177 = load ptr, ptr %t176 %t178 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 1 %t179 = load i32, ptr %t178 %t180 = icmp ult i32 %t175, %t179 br i1 %t180, label %ixok26, label %ixbad27 ixbad27: %t181 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t181, ptr @.fmt_bounds, ptr @.str12651, i32 %t175, i32 %t179) call void @exit(i32 1) unreachable ixok26: %t182 = getelementptr inbounds ptr, ptr %t177, i32 %t175 %t183 = load ptr, ptr %t182 %t184 = getelementptr inbounds %Cmp_Node, ptr %t183, i32 0, i32 1 %t185 = load ptr, ptr %t184 %t186 = call ptr @fn_emit_str_const(ptr %t185) store ptr %t186, ptr %t187 %t188 = call ptr @fn_lbl(ptr @.str12652) store ptr %t188, ptr %t189 %t190 = call ptr @fn_lbl(ptr @.str12653) store ptr %t190, ptr %t191 %t192 = call ptr @fn_lbl(ptr @.str12654) store ptr %t192, ptr %t193 %t194 = call ptr @fn_emit_bind(ptr @.str12655) store ptr %t194, ptr %t195 %t196 = load ptr, ptr %t195 %t197 = call ptr @lp_str_concat(ptr @.str12656, ptr %t196) %t198 = call ptr @lp_str_concat(ptr %t197, ptr @.str12657) %t199 = call ptr @fn_emit_bind(ptr %t198) store ptr %t199, ptr %t200 %t201 = load ptr, ptr %t200 %t202 = call ptr @lp_str_concat(ptr @.str12658, ptr %t201) %t203 = call ptr @lp_str_concat(ptr %t202, ptr @.str12659) %t204 = load ptr, ptr %t191 %t205 = call ptr @lp_str_concat(ptr %t203, ptr %t204) %t206 = call ptr @lp_str_concat(ptr %t205, ptr @.str12660) %t207 = load ptr, ptr %t189 %t208 = call ptr @lp_str_concat(ptr %t206, ptr %t207) %t209 = call ptr @lp_str_concat(ptr %t208, ptr @.str12661) call void @fn_emit(ptr %t209) %t210 = load ptr, ptr %t189 %t211 = call ptr @lp_str_concat(ptr %t210, ptr @.str12662) call void @fn_emit(ptr %t211) %t212 = load ptr, ptr %t195 %t213 = call ptr @lp_str_concat(ptr @.str12663, ptr %t212) %t214 = call ptr @lp_str_concat(ptr %t213, ptr @.str12664) %t215 = load ptr, ptr %t187 %t216 = call ptr @lp_str_concat(ptr %t214, ptr %t215) %t217 = call ptr @lp_str_concat(ptr %t216, ptr @.str12665) %t218 = call ptr @fn_emit_bind(ptr %t217) store ptr %t218, ptr %t219 %t220 = load ptr, ptr %t219 %t221 = call ptr @lp_str_concat(ptr @.str12666, ptr %t220) %t222 = call ptr @lp_str_concat(ptr %t221, ptr @.str12667) %t223 = call ptr @fn_emit_bind(ptr %t222) store ptr %t223, ptr %t224 %t225 = load ptr, ptr %t224 %t226 = call ptr @lp_str_concat(ptr @.str12668, ptr %t225) %t227 = call ptr @lp_str_concat(ptr %t226, ptr @.str12669) %t228 = load ptr, ptr %t191 %t229 = call ptr @lp_str_concat(ptr %t227, ptr %t228) %t230 = call ptr @lp_str_concat(ptr %t229, ptr @.str12670) %t231 = load ptr, ptr %t193 %t232 = call ptr @lp_str_concat(ptr %t230, ptr %t231) %t233 = call ptr @lp_str_concat(ptr %t232, ptr @.str12671) call void @fn_emit(ptr %t233) %t234 = load ptr, ptr %t191 %t235 = call ptr @lp_str_concat(ptr %t234, ptr @.str12672) call void @fn_emit(ptr %t235) %t236 = call ptr @fn_emit_bind(ptr @.str12673) store ptr %t236, ptr %t237 %t238 = load ptr, ptr %t237 %t239 = call ptr @lp_str_concat(ptr @.str12674, ptr %t238) %t240 = call ptr @lp_str_concat(ptr %t239, ptr @.str12675) %t241 = call ptr @fn_emit_bind(ptr %t240) store ptr %t241, ptr %t242 %t243 = load ptr, ptr %t242 %t244 = call ptr @lp_str_concat(ptr @.str12676, ptr %t243) %t245 = call ptr @lp_str_concat(ptr %t244, ptr @.str12677) call void @fn_emit(ptr %t245) call void @fn_emit(ptr @.str12678) %t246 = load i32, ptr %t0 %t247 = call ptr @fn_itoa(i32 %t246) %t248 = call ptr @lp_str_concat(ptr @.str12679, ptr %t247) %t249 = call ptr @lp_str_concat(ptr %t248, ptr @.str12680) call void @fn_emit(ptr %t249) %t250 = call ptr @fn_emit_bind(ptr @.str12681) store ptr %t250, ptr %t251 %t252 = load ptr, ptr %t251 %t253 = call ptr @lp_str_concat(ptr @.str12682, ptr %t252) %t254 = call ptr @lp_str_concat(ptr %t253, ptr @.str12683) %t255 = call ptr @fn_emit_bind(ptr %t254) store ptr %t255, ptr %t256 %t257 = call ptr @fn_lbl(ptr @.str12684) store ptr %t257, ptr %t258 %t259 = call ptr @fn_lbl(ptr @.str12685) store ptr %t259, ptr %t260 %t261 = call ptr @fn_lbl(ptr @.str12686) store ptr %t261, ptr %t262 %t263 = load ptr, ptr %t256 %t264 = call ptr @lp_str_concat(ptr @.str12687, ptr %t263) %t265 = call ptr @lp_str_concat(ptr %t264, ptr @.str12688) %t266 = load ptr, ptr %t260 %t267 = call ptr @lp_str_concat(ptr %t265, ptr %t266) %t268 = call ptr @lp_str_concat(ptr %t267, ptr @.str12689) %t269 = load ptr, ptr %t258 %t270 = call ptr @lp_str_concat(ptr %t268, ptr %t269) %t271 = call ptr @lp_str_concat(ptr %t270, ptr @.str12690) call void @fn_emit(ptr %t271) %t272 = load ptr, ptr %t258 %t273 = call ptr @lp_str_concat(ptr %t272, ptr @.str12691) call void @fn_emit(ptr %t273) %t274 = load ptr, ptr %t158 %t275 = call ptr @lp_str_concat(ptr @.str12692, ptr %t274) %t276 = call ptr @lp_str_concat(ptr %t275, ptr @.str12693) call void @fn_emit(ptr %t276) %t277 = load ptr, ptr %t262 %t278 = call ptr @lp_str_concat(ptr @.str12694, ptr %t277) %t279 = call ptr @lp_str_concat(ptr %t278, ptr @.str12695) call void @fn_emit(ptr %t279) %t280 = load ptr, ptr %t260 %t281 = call ptr @lp_str_concat(ptr %t280, ptr @.str12696) call void @fn_emit(ptr %t281) %t282 = call ptr @fn_emit_bind(ptr @.str12697) store ptr %t282, ptr %t283 %t284 = load ptr, ptr %t283 %t285 = call ptr @lp_str_concat(ptr @.str12698, ptr %t284) %t286 = call ptr @lp_str_concat(ptr %t285, ptr @.str12699) %t287 = call ptr @fn_emit_bind(ptr %t286) store ptr %t287, ptr %t288 %t289 = load ptr, ptr %t288 %t290 = call ptr @lp_str_concat(ptr @.str12700, ptr %t289) %t291 = call ptr @lp_str_concat(ptr %t290, ptr @.str12701) call void @fn_emit(ptr %t291) %t292 = load ptr, ptr %t173 %t293 = call ptr @lp_str_concat(ptr @.str12702, ptr %t292) %t294 = call ptr @lp_str_concat(ptr %t293, ptr @.str12703) call void @fn_emit(ptr %t294) %t295 = load ptr, ptr %t262 %t296 = call ptr @lp_str_concat(ptr @.str12704, ptr %t295) %t297 = call ptr @lp_str_concat(ptr %t296, ptr @.str12705) call void @fn_emit(ptr %t297) %t298 = load ptr, ptr %t262 %t299 = call ptr @lp_str_concat(ptr %t298, ptr @.str12706) call void @fn_emit(ptr %t299) %t300 = load ptr, ptr %t193 %t301 = call ptr @lp_str_concat(ptr @.str12707, ptr %t300) %t302 = call ptr @lp_str_concat(ptr %t301, ptr @.str12708) call void @fn_emit(ptr %t302) %t303 = load ptr, ptr %t193 %t304 = call ptr @lp_str_concat(ptr %t303, ptr @.str12709) call void @fn_emit(ptr %t304) %t305 = load i32, ptr %t0 %t306 = add i32 %t305, 1 store i32 %t306, ptr %t0 br label %wcond19 wend21: %t307 = call ptr @fn_lbl(ptr @.str12710) store ptr %t307, ptr %t308 %t309 = call ptr @fn_lbl(ptr @.str12711) store ptr %t309, ptr %t310 %t311 = call ptr @fn_emit_bind(ptr @.str12712) store ptr %t311, ptr %t312 %t313 = call ptr @fn_emit_bind(ptr @.str12713) store ptr %t313, ptr %t314 %t315 = load ptr, ptr %t314 %t316 = call ptr @lp_str_concat(ptr @.str12714, ptr %t315) %t317 = call ptr @lp_str_concat(ptr %t316, ptr @.str12715) %t318 = call ptr @fn_emit_bind(ptr %t317) store ptr %t318, ptr %t319 %t320 = load ptr, ptr %t312 %t321 = call ptr @lp_str_concat(ptr @.str12716, ptr %t320) %t322 = call ptr @lp_str_concat(ptr %t321, ptr @.str12717) %t323 = call ptr @fn_emit_bind(ptr %t322) store ptr %t323, ptr %t324 %t325 = load ptr, ptr %t319 %t326 = call ptr @lp_str_concat(ptr @.str12718, ptr %t325) %t327 = call ptr @lp_str_concat(ptr %t326, ptr @.str12719) %t328 = load ptr, ptr %t324 %t329 = call ptr @lp_str_concat(ptr %t327, ptr %t328) %t330 = call ptr @fn_emit_bind(ptr %t329) store ptr %t330, ptr %t331 %t332 = load ptr, ptr %t331 %t333 = call ptr @lp_str_concat(ptr @.str12720, ptr %t332) %t334 = call ptr @lp_str_concat(ptr %t333, ptr @.str12721) %t335 = load ptr, ptr %t308 %t336 = call ptr @lp_str_concat(ptr %t334, ptr %t335) %t337 = call ptr @lp_str_concat(ptr %t336, ptr @.str12722) %t338 = load ptr, ptr %t310 %t339 = call ptr @lp_str_concat(ptr %t337, ptr %t338) %t340 = call ptr @lp_str_concat(ptr %t339, ptr @.str12723) call void @fn_emit(ptr %t340) %t341 = load ptr, ptr %t308 %t342 = call ptr @lp_str_concat(ptr %t341, ptr @.str12724) call void @fn_emit(ptr %t342) %t343 = load ptr, ptr %t314 %t344 = call ptr @lp_str_concat(ptr @.str12725, ptr %t343) %t345 = call ptr @lp_str_concat(ptr %t344, ptr @.str12726) call void @fn_emit(ptr %t345) call void @fn_emit(ptr @.str12727) %t346 = load ptr, ptr %t310 %t347 = call ptr @lp_str_concat(ptr %t346, ptr @.str12728) call void @fn_emit(ptr %t347) %t348 = call ptr @fn_emit_bind(ptr @.str12729) store ptr %t348, ptr %t349 %t350 = load ptr, ptr %t312 %t351 = call ptr @lp_str_concat(ptr @.str12730, ptr %t350) %t352 = call ptr @lp_str_concat(ptr %t351, ptr @.str12731) %t353 = load ptr, ptr %t349 %t354 = call ptr @lp_str_concat(ptr %t352, ptr %t353) %t355 = call ptr @fn_emit_bind(ptr %t354) store ptr %t355, ptr %t356 %t357 = load ptr, ptr %t356 %t358 = call ptr @lp_str_concat(ptr @.str12732, ptr %t357) %t359 = call ptr @lp_str_concat(ptr %t358, ptr @.str12733) %t360 = load ptr, ptr %t349 %t361 = call ptr @lp_str_concat(ptr %t359, ptr %t360) %t362 = call ptr @lp_str_concat(ptr %t361, ptr @.str12734) call void @fn_emit(ptr %t362) %t363 = load ptr, ptr %t349 %t364 = call ptr @lp_str_concat(ptr @.str12735, ptr %t363) %t365 = call ptr @lp_str_concat(ptr %t364, ptr @.str12736) %t366 = call ptr @fn_emit_bind(ptr %t365) store ptr %t366, ptr %t367 %t368 = load ptr, ptr %t367 %t369 = call ptr @lp_str_concat(ptr @.str12737, ptr %t368) %t370 = call ptr @lp_str_concat(ptr %t369, ptr @.str12738) %t371 = call ptr @fn_emit_bind(ptr %t370) store ptr %t371, ptr %t372 %t373 = load ptr, ptr %t372 %t374 = call ptr @lp_str_concat(ptr @.str12739, ptr %t373) %t375 = call ptr @lp_str_concat(ptr %t374, ptr @.str12740) call void @fn_emit(ptr %t375) br label %ret ret: ret void } define void @fn_check_duplicate_fns() { entry: %t0 = alloca i32 %t18 = alloca ptr %t27 = alloca i32 %t45 = alloca ptr %t46 = alloca i32 store i32 0, ptr %t0 br label %wcond0 wcond0: %t1 = load i32, ptr %t0 %t2 = load ptr, ptr @g_prog %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 %t4 = load i32, ptr %t3 %t5 = icmp slt i32 %t1, %t4 %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %wbody1, label %wend2 wbody1: %t8 = load ptr, ptr @g_prog %t9 = load i32, ptr %t0 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp ult i32 %t9, %t13 br i1 %t14, label %ixok3, label %ixbad4 ixbad4: %t15 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t15, ptr @.fmt_bounds, ptr @.str12741, i32 %t9, i32 %t13) call void @exit(i32 1) unreachable ixok3: %t16 = getelementptr inbounds ptr, ptr %t11, i32 %t9 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 4 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then5, label %ifend7 then5: %t25 = load i32, ptr %t0 %t26 = add i32 %t25, 1 store i32 %t26, ptr %t27 br label %wcond8 wcond8: %t28 = load i32, ptr %t27 %t29 = load ptr, ptr @g_prog %t30 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp slt i32 %t28, %t31 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %wbody9, label %wend10 wbody9: %t35 = load ptr, ptr @g_prog %t36 = load i32, ptr %t27 %t37 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 0 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %LSlice, ptr %t35, i32 0, i32 1 %t40 = load i32, ptr %t39 %t41 = icmp ult i32 %t36, %t40 br i1 %t41, label %ixok11, label %ixbad12 ixbad12: %t42 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t42, ptr @.fmt_bounds, ptr @.str12742, i32 %t36, i32 %t40) call void @exit(i32 1) unreachable ixok11: %t43 = getelementptr inbounds ptr, ptr %t38, i32 %t36 %t44 = load ptr, ptr %t43 store ptr %t44, ptr %t45 %t47 = load ptr, ptr %t45 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 0 %t49 = load i32, ptr %t48 %t50 = icmp eq i32 %t49, 4 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t46 br i1 %t52, label %sc13, label %scend14 sc13: %t54 = load ptr, ptr %t45 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t55 %t57 = load ptr, ptr %t18 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 1 %t59 = load ptr, ptr %t58 %t60 = call i32 @lp_str_eq(ptr %t56, ptr %t59) %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t46 br label %scend14 scend14: %t63 = load i32, ptr %t46 %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then15, label %ifend17 then15: %t65 = load ptr, ptr %t45 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 9 %t67 = load ptr, ptr %t66 store ptr %t67, ptr @g_g_err_file %t68 = load ptr, ptr %t45 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 8 %t70 = load i32, ptr %t69 store i32 %t70, ptr @g_g_err_line %t71 = load ptr, ptr %t18 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 1 %t73 = load ptr, ptr %t72 %t74 = call ptr @lp_str_concat(ptr @.str12743, ptr %t73) %t75 = call ptr @lp_str_concat(ptr %t74, ptr @.str12744) %t76 = load ptr, ptr %t18 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 9 %t78 = load ptr, ptr %t77 %t79 = call ptr @lp_str_concat(ptr %t75, ptr %t78) %t80 = call ptr @lp_str_concat(ptr %t79, ptr @.str12745) %t81 = load ptr, ptr %t18 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 8 %t83 = load i32, ptr %t82 %t84 = call ptr @fn_itoa(i32 %t83) %t85 = call ptr @lp_str_concat(ptr %t80, ptr %t84) %t86 = call ptr @lp_str_concat(ptr %t85, ptr @.str12746) call void @fn_perr(ptr %t86) br label %ifend17 ifend17: %t87 = load i32, ptr %t27 %t88 = add i32 %t87, 1 store i32 %t88, ptr %t27 br label %wcond8 wend10: br label %ifend7 ifend7: %t89 = load i32, ptr %t0 %t90 = add i32 %t89, 1 store i32 %t90, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define i32 @fn_decl_group(i32 %arg_k) { entry: %retval = alloca i32 %t0 = alloca i32 %t1 = alloca i32 %t2 = alloca i32 %t23 = alloca i32 %t24 = alloca i32 store i32 %arg_k, ptr %t0 %t3 = load i32, ptr %t0 %t4 = icmp eq i32 %t3, 2 %t5 = zext i1 %t4 to i32 %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t2 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load i32, ptr %t0 %t9 = icmp eq i32 %t8, 3 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t2 br label %scend1 scend1: %t13 = load i32, ptr %t2 %t14 = icmp ne i32 %t13, 0 %t15 = zext i1 %t14 to i32 store i32 %t15, ptr %t1 br i1 %t14, label %scend3, label %sc2 sc2: %t16 = load i32, ptr %t0 %t17 = icmp eq i32 %t16, 27 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t1 br label %scend3 scend3: %t21 = load i32, ptr %t1 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then4, label %ifend6 then4: store i32 1, ptr %retval br label %ret ifend6: %t25 = load i32, ptr %t0 %t26 = icmp eq i32 %t25, 0 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t24 br i1 %t28, label %scend8, label %sc7 sc7: %t30 = load i32, ptr %t0 %t31 = icmp eq i32 %t30, 8 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t24 br label %scend8 scend8: %t35 = load i32, ptr %t24 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t23 br i1 %t36, label %scend10, label %sc9 sc9: %t38 = load i32, ptr %t0 %t39 = icmp eq i32 %t38, 48 %t40 = zext i1 %t39 to i32 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t23 br label %scend10 scend10: %t43 = load i32, ptr %t23 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then11, label %ifend13 then11: store i32 2, ptr %retval br label %ret ifend13: store i32 0, ptr %retval br label %ret ret: %t45 = load i32, ptr %retval ret i32 %t45 } define void @fn_check_duplicate_decls() { entry: %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t30 = alloca ptr %t35 = alloca i32 %t42 = alloca i32 %t43 = alloca i32 %t70 = alloca ptr %t71 = alloca i32 %t0 = load i32, ptr @g_g_prog_user_end store i32 %t0, ptr %t1 store i32 0, ptr %t2 br label %wcond0 wcond0: %t4 = load i32, ptr %t2 %t5 = load i32, ptr %t1 %t6 = icmp slt i32 %t4, %t5 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t3 br i1 %t8, label %sc3, label %scend4 sc3: %t10 = load i32, ptr %t2 %t11 = load ptr, ptr @g_prog %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1 %t13 = load i32, ptr %t12 %t14 = icmp slt i32 %t10, %t13 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t3 br label %scend4 scend4: %t18 = load i32, ptr %t3 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody1, label %wend2 wbody1: %t20 = load ptr, ptr @g_prog %t21 = load i32, ptr %t2 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t25 = load i32, ptr %t24 %t26 = icmp ult i32 %t21, %t25 br i1 %t26, label %ixok5, label %ixbad6 ixbad6: %t27 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t27, ptr @.fmt_bounds, ptr @.str12747, i32 %t21, i32 %t25) call void @exit(i32 1) unreachable ixok5: %t28 = getelementptr inbounds ptr, ptr %t23, i32 %t21 %t29 = load ptr, ptr %t28 store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 0 %t33 = load i32, ptr %t32 %t34 = call i32 @fn_decl_group(i32 %t33) store i32 %t34, ptr %t35 %t36 = load i32, ptr %t35 %t37 = icmp sgt i32 %t36, 0 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then7, label %ifend9 then7: %t40 = load i32, ptr %t2 %t41 = add i32 %t40, 1 store i32 %t41, ptr %t42 br label %wcond10 wcond10: %t44 = load i32, ptr %t42 %t45 = load i32, ptr %t1 %t46 = icmp slt i32 %t44, %t45 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t43 br i1 %t48, label %sc13, label %scend14 sc13: %t50 = load i32, ptr %t42 %t51 = load ptr, ptr @g_prog %t52 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 1 %t53 = load i32, ptr %t52 %t54 = icmp slt i32 %t50, %t53 %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 %t57 = zext i1 %t56 to i32 store i32 %t57, ptr %t43 br label %scend14 scend14: %t58 = load i32, ptr %t43 %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %wbody11, label %wend12 wbody11: %t60 = load ptr, ptr @g_prog %t61 = load i32, ptr %t42 %t62 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 1 %t65 = load i32, ptr %t64 %t66 = icmp ult i32 %t61, %t65 br i1 %t66, label %ixok15, label %ixbad16 ixbad16: %t67 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t67, ptr @.fmt_bounds, ptr @.str12748, i32 %t61, i32 %t65) call void @exit(i32 1) unreachable ixok15: %t68 = getelementptr inbounds ptr, ptr %t63, i32 %t61 %t69 = load ptr, ptr %t68 store ptr %t69, ptr %t70 %t72 = load ptr, ptr %t70 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 0 %t74 = load i32, ptr %t73 %t75 = call i32 @fn_decl_group(i32 %t74) %t76 = load i32, ptr %t35 %t77 = icmp eq i32 %t75, %t76 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t71 br i1 %t79, label %sc17, label %scend18 sc17: %t81 = load ptr, ptr %t70 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 1 %t83 = load ptr, ptr %t82 %t84 = load ptr, ptr %t30 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 %t87 = call i32 @lp_str_eq(ptr %t83, ptr %t86) %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t71 br label %scend18 scend18: %t90 = load i32, ptr %t71 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then19, label %ifend21 then19: %t92 = load ptr, ptr %t70 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 9 %t94 = load ptr, ptr %t93 store ptr %t94, ptr @g_g_err_file %t95 = load ptr, ptr %t70 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 8 %t97 = load i32, ptr %t96 store i32 %t97, ptr @g_g_err_line %t98 = load ptr, ptr %t30 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 1 %t100 = load ptr, ptr %t99 %t101 = call ptr @lp_str_concat(ptr @.str12749, ptr %t100) %t102 = call ptr @lp_str_concat(ptr %t101, ptr @.str12750) %t103 = load ptr, ptr %t30 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 9 %t105 = load ptr, ptr %t104 %t106 = call ptr @lp_str_concat(ptr %t102, ptr %t105) %t107 = call ptr @lp_str_concat(ptr %t106, ptr @.str12751) %t108 = load ptr, ptr %t30 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 8 %t110 = load i32, ptr %t109 %t111 = call ptr @fn_itoa(i32 %t110) %t112 = call ptr @lp_str_concat(ptr %t107, ptr %t111) %t113 = call ptr @lp_str_concat(ptr %t112, ptr @.str12752) call void @fn_perr(ptr %t113) br label %ifend21 ifend21: %t114 = load i32, ptr %t42 %t115 = add i32 %t114, 1 store i32 %t115, ptr %t42 br label %wcond10 wend12: br label %ifend9 ifend9: %t116 = load i32, ptr %t2 %t117 = add i32 %t116, 1 store i32 %t117, ptr %t2 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_emit_program() { entry: %t70 = alloca i32 %t131 = alloca i32 %t210 = alloca i32 %t253 = alloca i32 call void @fn_check_duplicate_fns() call void @fn_check_duplicate_decls() %t0 = call ptr @fn_buf_new() store ptr %t0, ptr @g_head %t1 = call ptr @fn_buf_new() store ptr %t1, ptr @g_code store i32 0, ptr @g_g_uses_str store i32 0, ptr @g_g_uses_intstr store i32 0, ptr @g_g_uses_fpstr %t2 = getelementptr %LSlice, ptr null, i32 1 %t3 = ptrtoint ptr %t2 to i64 %t4 = call ptr @malloc(i64 %t3) %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 store ptr null, ptr %t5 %t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 store i32 0, ptr %t6 %t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 2 store i32 0, ptr %t7 store ptr %t4, ptr @g_g_fp_decls %t8 = getelementptr %LSlice, ptr null, i32 1 %t9 = ptrtoint ptr %t8 to i64 %t10 = call ptr @malloc(i64 %t9) %t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 store ptr null, ptr %t11 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 store i32 0, ptr %t12 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 store i32 0, ptr %t13 store ptr %t10, ptr @g_g_prevals store i32 0, ptr @g_g_uses_strslice store i32 0, ptr @g_g_uses_loopback store i32 0, ptr @g_g_uses_expect store i32 0, ptr @g_g_uses_panic store i32 0, ptr @g_g_fprintf_declared store i32 0, ptr @g_g_uses_result store i32 0, ptr @g_g_uses_option store i32 0, ptr @g_g_uses_quit store i32 0, ptr @g_g_uses_world_despawn %t14 = getelementptr %LSlice, ptr null, i32 1 %t15 = ptrtoint ptr %t14 to i64 %t16 = call ptr @malloc(i64 %t15) %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 store ptr null, ptr %t17 %t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1 store i32 0, ptr %t18 %t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 2 store i32 0, ptr %t19 store ptr %t16, ptr @g_g_cov_lines store i32 1, ptr @g_g_cov_active %t20 = getelementptr %LSlice, ptr null, i32 1 %t21 = ptrtoint ptr %t20 to i64 %t22 = call ptr @malloc(i64 %t21) %t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 store ptr null, ptr %t23 %t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1 store i32 0, ptr %t24 %t25 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 2 store i32 0, ptr %t25 store ptr %t22, ptr @g_loc_name %t26 = getelementptr %LSlice, ptr null, i32 1 %t27 = ptrtoint ptr %t26 to i64 %t28 = call ptr @malloc(i64 %t27) %t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 store ptr null, ptr %t29 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 store i32 0, ptr %t30 %t31 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 2 store i32 0, ptr %t31 store ptr %t28, ptr @g_loc_reg %t32 = getelementptr %LSlice, ptr null, i32 1 %t33 = ptrtoint ptr %t32 to i64 %t34 = call ptr @malloc(i64 %t33) %t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 store ptr null, ptr %t35 %t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 store i32 0, ptr %t36 %t37 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 2 store i32 0, ptr %t37 store ptr %t34, ptr @g_loc_ty %t38 = getelementptr %LSlice, ptr null, i32 1 %t39 = ptrtoint ptr %t38 to i64 %t40 = call ptr @malloc(i64 %t39) %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 store ptr null, ptr %t41 %t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1 store i32 0, ptr %t42 %t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 2 store i32 0, ptr %t43 store ptr %t40, ptr @g_loc_mut %t44 = getelementptr %LSlice, ptr null, i32 1 %t45 = ptrtoint ptr %t44 to i64 %t46 = call ptr @malloc(i64 %t45) %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 store ptr null, ptr %t47 %t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1 store i32 0, ptr %t48 %t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 2 store i32 0, ptr %t49 store ptr %t46, ptr @g_brk_lbl %t50 = getelementptr %LSlice, ptr null, i32 1 %t51 = ptrtoint ptr %t50 to i64 %t52 = call ptr @malloc(i64 %t51) %t53 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0 store ptr null, ptr %t53 %t54 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 store i32 0, ptr %t54 %t55 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 2 store i32 0, ptr %t55 store ptr %t52, ptr @g_cnt_lbl %t56 = getelementptr %LSlice, ptr null, i32 1 %t57 = ptrtoint ptr %t56 to i64 %t58 = call ptr @malloc(i64 %t57) %t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 store ptr null, ptr %t59 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 store i32 0, ptr %t60 %t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2 store i32 0, ptr %t61 store ptr %t58, ptr @g_self_stk %t62 = getelementptr %LSlice, ptr null, i32 1 %t63 = ptrtoint ptr %t62 to i64 %t64 = call ptr @malloc(i64 %t63) %t65 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 store ptr null, ptr %t65 %t66 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 1 store i32 0, ptr %t66 %t67 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 2 store i32 0, ptr %t67 store ptr %t64, ptr @g_mach_stk call void @fn_emit_header() call void @fn_emit_extern_decls() %t68 = call i32 @fn_has_ecs() %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then0, label %ifend2 then0: call void @fn_emit_ecs_storage() br label %ifend2 ifend2: store i32 0, ptr %t70 br label %wcond3 wcond3: %t71 = load i32, ptr %t70 %t72 = load ptr, ptr @g_prog %t73 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1 %t74 = load i32, ptr %t73 %t75 = icmp slt i32 %t71, %t74 %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %wbody4, label %wend5 wbody4: %t78 = load ptr, ptr @g_prog %t79 = load i32, ptr %t70 %t80 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1 %t83 = load i32, ptr %t82 %t84 = icmp ult i32 %t79, %t83 br i1 %t84, label %ixok6, label %ixbad7 ixbad7: %t85 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t85, ptr @.fmt_bounds, ptr @.str12753, i32 %t79, i32 %t83) call void @exit(i32 1) unreachable ixok6: %t86 = getelementptr inbounds ptr, ptr %t81, i32 %t79 %t87 = load ptr, ptr %t86 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 0 %t89 = load i32, ptr %t88 %t90 = icmp eq i32 %t89, 4 %t91 = zext i1 %t90 to i32 %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then8, label %ifend10 then8: %t93 = load i32, ptr %t70 %t94 = load i32, ptr @g_g_prog_user_end %t95 = icmp slt i32 %t93, %t94 %t96 = zext i1 %t95 to i32 store i32 %t96, ptr @g_g_cov_active %t97 = load ptr, ptr @g_prog %t98 = load i32, ptr %t70 %t99 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp ult i32 %t98, %t102 br i1 %t103, label %ixok11, label %ixbad12 ixbad12: %t104 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t104, ptr @.fmt_bounds, ptr @.str12754, i32 %t98, i32 %t102) call void @exit(i32 1) unreachable ixok11: %t105 = getelementptr inbounds ptr, ptr %t100, i32 %t98 %t106 = load ptr, ptr %t105 call void @fn_emit_fn(ptr %t106) store i32 1, ptr @g_g_cov_active br label %ifend10 ifend10: %t107 = load i32, ptr %t70 %t108 = add i32 %t107, 1 store i32 %t108, ptr %t70 br label %wcond3 wend5: call void @fn_emit_global_init_fn() %t109 = load ptr, ptr @g_g_events %t110 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 1 %t111 = load i32, ptr %t110 %t112 = icmp sgt i32 %t111, 0 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then13, label %ifend15 then13: call void @fn_emit_event_fns() br label %ifend15 ifend15: %t115 = call i32 @fn_has_ecs() %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then16, label %ifend18 then16: call void @fn_emit_world_table() br label %ifend18 ifend18: %t117 = call i32 @fn_has_ecs() %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then19, label %ifend21 then19: call void @fn_emit_ecs_allocator() call void @fn_emit_snapshot() br label %ifend21 ifend21: %t119 = call i32 @fn_has_ecs() %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then22, label %ifend24 then22: call void @fn_emit_net() br label %ifend24 ifend24: %t121 = call i32 @fn_has_ui() %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %then25, label %ifend27 then25: call void @fn_emit_ui_build() br label %ifend27 ifend27: %t123 = load ptr, ptr @g_g_tests %t124 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 1 %t125 = load i32, ptr %t124 %t126 = icmp sgt i32 %t125, 0 %t127 = zext i1 %t126 to i32 %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %then28, label %else29 then28: %t129 = call i32 @fn_has_systems() %t130 = icmp ne i32 %t129, 0 br i1 %t130, label %then31, label %ifend33 then31: call void @fn_emit_game_defs() br label %ifend33 ifend33: call void @fn_emit_test_runner() br label %ifend30 else29: %t132 = call i32 @fn_has_systems() %t133 = icmp ne i32 %t132, 0 %t134 = zext i1 %t133 to i32 store i32 %t134, ptr %t131 br i1 %t133, label %sc34, label %scend35 sc34: %t135 = call i32 @fn_has_entry() %t136 = icmp ne i32 %t135, 0 %t137 = zext i1 %t136 to i32 store i32 %t137, ptr %t131 br label %scend35 scend35: %t138 = load i32, ptr %t131 %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then36, label %else37 then36: call void @fn_emit_game_defs() store i32 0, ptr %t70 br label %wcond39 wcond39: %t140 = load i32, ptr %t70 %t141 = load ptr, ptr @g_prog %t142 = getelementptr inbounds %LSlice, ptr %t141, i32 0, i32 1 %t143 = load i32, ptr %t142 %t144 = icmp slt i32 %t140, %t143 %t145 = zext i1 %t144 to i32 %t146 = icmp ne i32 %t145, 0 br i1 %t146, label %wbody40, label %wend41 wbody40: %t147 = load ptr, ptr @g_prog %t148 = load i32, ptr %t70 %t149 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 0 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %LSlice, ptr %t147, i32 0, i32 1 %t152 = load i32, ptr %t151 %t153 = icmp ult i32 %t148, %t152 br i1 %t153, label %ixok42, label %ixbad43 ixbad43: %t154 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t154, ptr @.fmt_bounds, ptr @.str12755, i32 %t148, i32 %t152) call void @exit(i32 1) unreachable ixok42: %t155 = getelementptr inbounds ptr, ptr %t150, i32 %t148 %t156 = load ptr, ptr %t155 %t157 = getelementptr inbounds %Cmp_Node, ptr %t156, i32 0, i32 0 %t158 = load i32, ptr %t157 %t159 = icmp eq i32 %t158, 6 %t160 = zext i1 %t159 to i32 %t161 = icmp ne i32 %t160, 0 br i1 %t161, label %then44, label %ifend46 then44: %t162 = load ptr, ptr @g_prog %t163 = load i32, ptr %t70 %t164 = getelementptr inbounds %LSlice, ptr %t162, i32 0, i32 0 %t165 = load ptr, ptr %t164 %t166 = getelementptr inbounds %LSlice, ptr %t162, i32 0, i32 1 %t167 = load i32, ptr %t166 %t168 = icmp ult i32 %t163, %t167 br i1 %t168, label %ixok47, label %ixbad48 ixbad48: %t169 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t169, ptr @.fmt_bounds, ptr @.str12756, i32 %t163, i32 %t167) call void @exit(i32 1) unreachable ixok47: %t170 = getelementptr inbounds ptr, ptr %t165, i32 %t163 %t171 = load ptr, ptr %t170 call void @fn_emit_main(ptr %t171) br label %ifend46 ifend46: %t172 = load i32, ptr %t70 %t173 = add i32 %t172, 1 store i32 %t173, ptr %t70 br label %wcond39 wend41: br label %ifend38 else37: %t174 = call i32 @fn_has_systems() %t175 = icmp ne i32 %t174, 0 br i1 %t175, label %then49, label %else50 then49: call void @fn_emit_game_main() br label %ifend51 else50: store i32 0, ptr %t70 br label %wcond52 wcond52: %t176 = load i32, ptr %t70 %t177 = load ptr, ptr @g_prog %t178 = getelementptr inbounds %LSlice, ptr %t177, i32 0, i32 1 %t179 = load i32, ptr %t178 %t180 = icmp slt i32 %t176, %t179 %t181 = zext i1 %t180 to i32 %t182 = icmp ne i32 %t181, 0 br i1 %t182, label %wbody53, label %wend54 wbody53: %t183 = load ptr, ptr @g_prog %t184 = load i32, ptr %t70 %t185 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 0 %t186 = load ptr, ptr %t185 %t187 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 1 %t188 = load i32, ptr %t187 %t189 = icmp ult i32 %t184, %t188 br i1 %t189, label %ixok55, label %ixbad56 ixbad56: %t190 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t190, ptr @.fmt_bounds, ptr @.str12757, i32 %t184, i32 %t188) call void @exit(i32 1) unreachable ixok55: %t191 = getelementptr inbounds ptr, ptr %t186, i32 %t184 %t192 = load ptr, ptr %t191 %t193 = getelementptr inbounds %Cmp_Node, ptr %t192, i32 0, i32 0 %t194 = load i32, ptr %t193 %t195 = icmp eq i32 %t194, 6 %t196 = zext i1 %t195 to i32 %t197 = icmp ne i32 %t196, 0 br i1 %t197, label %then57, label %ifend59 then57: %t198 = load ptr, ptr @g_prog %t199 = load i32, ptr %t70 %t200 = getelementptr inbounds %LSlice, ptr %t198, i32 0, i32 0 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %LSlice, ptr %t198, i32 0, i32 1 %t203 = load i32, ptr %t202 %t204 = icmp ult i32 %t199, %t203 br i1 %t204, label %ixok60, label %ixbad61 ixbad61: %t205 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t205, ptr @.fmt_bounds, ptr @.str12758, i32 %t199, i32 %t203) call void @exit(i32 1) unreachable ixok60: %t206 = getelementptr inbounds ptr, ptr %t201, i32 %t199 %t207 = load ptr, ptr %t206 call void @fn_emit_main(ptr %t207) br label %ifend59 ifend59: %t208 = load i32, ptr %t70 %t209 = add i32 %t208, 1 store i32 %t209, ptr %t70 br label %wcond52 wend54: br label %ifend51 ifend51: br label %ifend38 ifend38: br label %ifend30 ifend30: %t211 = load i32, ptr @g_g_uses_quit %t212 = icmp ne i32 %t211, 0 %t213 = zext i1 %t212 to i32 store i32 %t213, ptr %t210 br i1 %t212, label %sc62, label %scend63 sc62: %t214 = call i32 @fn_has_ecs() %t215 = icmp eq i32 %t214, 0 %t216 = zext i1 %t215 to i32 %t217 = icmp ne i32 %t216, 0 %t218 = zext i1 %t217 to i32 store i32 %t218, ptr %t210 br label %scend63 scend63: %t219 = load i32, ptr %t210 %t220 = icmp ne i32 %t219, 0 br i1 %t220, label %then64, label %ifend66 then64: call void @fn_emith(ptr @.str12759) br label %ifend66 ifend66: %t221 = load i32, ptr @g_g_uses_world_despawn %t222 = icmp ne i32 %t221, 0 br i1 %t222, label %then67, label %ifend69 then67: call void @fn_emit_world_despawn_fn() br label %ifend69 ifend69: %t223 = load i32, ptr @g_g_uses_loopback %t224 = icmp ne i32 %t223, 0 br i1 %t224, label %then70, label %ifend72 then70: call void @fn_emit_loopback() br label %ifend72 ifend72: %t225 = load i32, ptr @g_g_uses_str %t226 = icmp ne i32 %t225, 0 br i1 %t226, label %then73, label %ifend75 then73: call void @fn_emit_str_prelude() br label %ifend75 ifend75: %t227 = load i32, ptr @g_g_uses_intstr %t228 = icmp ne i32 %t227, 0 br i1 %t228, label %then76, label %ifend78 then76: call void @fn_emit_int_str() br label %ifend78 ifend78: %t229 = load i32, ptr @g_g_uses_fpstr %t230 = icmp ne i32 %t229, 0 br i1 %t230, label %then79, label %ifend81 then79: call void @fn_emit_fp_str_fn() br label %ifend81 ifend81: %t231 = load i32, ptr @g_g_uses_longstr %t232 = icmp ne i32 %t231, 0 br i1 %t232, label %then82, label %ifend84 then82: call void @fn_emit_long_str() br label %ifend84 ifend84: %t233 = load i32, ptr @g_g_uses_strslice %t234 = icmp ne i32 %t233, 0 br i1 %t234, label %then85, label %ifend87 then85: call void @fn_emit_str_slice() br label %ifend87 ifend87: %t235 = load i32, ptr @g_g_uses_mathrt %t236 = icmp ne i32 %t235, 0 br i1 %t236, label %then88, label %ifend90 then88: call void @fn_emit_math_prelude() br label %ifend90 ifend90: %t237 = load i32, ptr @g_g_uses_textrt %t238 = icmp ne i32 %t237, 0 br i1 %t238, label %then91, label %ifend93 then91: call void @fn_emit_text_prelude() br label %ifend93 ifend93: %t239 = load i32, ptr @g_g_uses_textrt2 %t240 = icmp ne i32 %t239, 0 br i1 %t240, label %then94, label %ifend96 then94: call void @fn_emit_text2_prelude() br label %ifend96 ifend96: %t241 = load i32, ptr @g_g_uses_hashrt %t242 = icmp ne i32 %t241, 0 br i1 %t242, label %then97, label %ifend99 then97: call void @fn_emit_hash_prelude() br label %ifend99 ifend99: %t243 = load i32, ptr @g_g_uses_cryptort %t244 = icmp ne i32 %t243, 0 br i1 %t244, label %then100, label %ifend102 then100: call void @fn_emit_crypto_prelude() br label %ifend102 ifend102: %t245 = load i32, ptr @g_g_uses_uuidrt %t246 = icmp ne i32 %t245, 0 br i1 %t246, label %then103, label %ifend105 then103: call void @fn_emit_uuid_prelude() br label %ifend105 ifend105: %t247 = load i32, ptr @g_g_uses_noisert %t248 = icmp ne i32 %t247, 0 br i1 %t248, label %then106, label %ifend108 then106: call void @fn_emit_noise_prelude() br label %ifend108 ifend108: %t249 = load i32, ptr @g_g_uses_logrt %t250 = icmp ne i32 %t249, 0 br i1 %t250, label %then109, label %ifend111 then109: call void @fn_emit_log_prelude() br label %ifend111 ifend111: %t251 = load i32, ptr @g_g_uses_osrt %t252 = icmp ne i32 %t251, 0 br i1 %t252, label %then112, label %ifend114 then112: call void @fn_emit_os_prelude() br label %ifend114 ifend114: %t254 = load i32, ptr @g_g_uses_pid %t255 = icmp ne i32 %t254, 0 %t256 = zext i1 %t255 to i32 store i32 %t256, ptr %t253 br i1 %t255, label %sc115, label %scend116 sc115: %t257 = load i32, ptr @g_g_target_win %t258 = icmp eq i32 %t257, 0 %t259 = zext i1 %t258 to i32 %t260 = icmp ne i32 %t259, 0 %t261 = zext i1 %t260 to i32 store i32 %t261, ptr %t253 br label %scend116 scend116: %t262 = load i32, ptr %t253 %t263 = icmp ne i32 %t262, 0 br i1 %t263, label %then117, label %ifend119 then117: call void @fn_emith(ptr @.str12760) br label %ifend119 ifend119: %t264 = load i32, ptr @g_g_uses_unicodert %t265 = icmp ne i32 %t264, 0 br i1 %t265, label %then120, label %ifend122 then120: call void @fn_emit_unicode_prelude() br label %ifend122 ifend122: %t266 = load i32, ptr @g_g_uses_fsrt %t267 = icmp ne i32 %t266, 0 br i1 %t267, label %then123, label %ifend125 then123: call void @fn_emit_fs_prelude() br label %ifend125 ifend125: %t268 = load i32, ptr @g_g_uses_pak %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then126, label %ifend128 then126: call void @fn_emit_pak_prelude() br label %ifend128 ifend128: %t270 = load i32, ptr @g_g_uses_datert %t271 = icmp ne i32 %t270, 0 br i1 %t271, label %then129, label %ifend131 then129: call void @fn_emit_datetime_prelude() br label %ifend131 ifend131: %t272 = load i32, ptr @g_g_uses_panic %t273 = icmp ne i32 %t272, 0 br i1 %t273, label %then132, label %ifend134 then132: call void @fn_emith(ptr @.str12761) store i32 1, ptr @g_g_fprintf_declared call void @fn_emith(ptr @.str12762) br label %ifend134 ifend134: %t274 = load i32, ptr @g_g_uses_bounds %t275 = icmp ne i32 %t274, 0 br i1 %t275, label %then135, label %ifend137 then135: %t276 = load i32, ptr @g_g_fprintf_declared %t277 = icmp eq i32 %t276, 0 %t278 = zext i1 %t277 to i32 %t279 = icmp ne i32 %t278, 0 br i1 %t279, label %then138, label %ifend140 then138: call void @fn_emith(ptr @.str12763) store i32 1, ptr @g_g_fprintf_declared br label %ifend140 ifend140: call void @fn_emith(ptr @.str12764) br label %ifend137 ifend137: %t280 = load i32, ptr @g_g_uses_result %t281 = icmp ne i32 %t280, 0 br i1 %t281, label %then141, label %ifend143 then141: call void @fn_emith(ptr @.str12765) br label %ifend143 ifend143: %t282 = load i32, ptr @g_g_uses_option %t283 = icmp ne i32 %t282, 0 br i1 %t283, label %then144, label %ifend146 then144: call void @fn_emith(ptr @.str12766) br label %ifend146 ifend146: call void @fn_emit_cov_runtime() %t284 = load i32, ptr @g_g_emit_module %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then147, label %ifend149 then147: call void @fn_emit_module_glue() br label %ifend149 ifend149: br label %ret ret: ret void } define void @fn_emit_cov_runtime() { entry: %t7 = alloca i32 %t14 = alloca ptr %t16 = alloca i32 %t45 = alloca ptr %t47 = alloca ptr %t49 = alloca ptr %t51 = alloca ptr %t0 = load i32, ptr @g_g_coverage %t1 = icmp eq i32 %t0, 0 %t2 = zext i1 %t1 to i32 %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: br label %ret ifend2: %t4 = load ptr, ptr @g_g_cov_lines %t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1 %t6 = load i32, ptr %t5 store i32 %t6, ptr %t7 %t8 = load i32, ptr %t7 %t9 = icmp eq i32 %t8, 0 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: br label %ret ifend5: %t12 = load i32, ptr %t7 %t13 = call ptr @fn_itoa(i32 %t12) store ptr %t13, ptr %t14 call void @fn_emith(ptr @.str12767) %t15 = load ptr, ptr %t14 call void @fn_emith(ptr %t15) call void @fn_emith(ptr @.str12768) store i32 0, ptr %t16 br label %wcond6 wcond6: %t17 = load i32, ptr %t16 %t18 = load i32, ptr %t7 %t19 = icmp slt i32 %t17, %t18 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %wbody7, label %wend8 wbody7: %t22 = load i32, ptr %t16 %t23 = icmp sgt i32 %t22, 0 %t24 = zext i1 %t23 to i32 %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then9, label %ifend11 then9: call void @fn_emith(ptr @.str12769) br label %ifend11 ifend11: call void @fn_emith(ptr @.str12770) %t26 = load ptr, ptr @g_g_cov_lines %t27 = load i32, ptr %t16 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 %t31 = load i32, ptr %t30 %t32 = icmp ult i32 %t27, %t31 br i1 %t32, label %ixok12, label %ixbad13 ixbad13: %t33 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t33, ptr @.fmt_bounds, ptr @.str12771, i32 %t27, i32 %t31) call void @exit(i32 1) unreachable ixok12: %t34 = getelementptr inbounds i32, ptr %t29, i32 %t27 %t35 = load i32, ptr %t34 %t36 = call ptr @fn_itoa(i32 %t35) call void @fn_emith(ptr %t36) %t37 = load i32, ptr %t16 %t38 = add i32 %t37, 1 store i32 %t38, ptr %t16 br label %wcond6 wend8: call void @fn_emith(ptr @.str12772) call void @fn_emith(ptr @.str12773) %t39 = load ptr, ptr %t14 call void @fn_emith(ptr %t39) call void @fn_emith(ptr @.str12774) %t40 = load ptr, ptr %t14 %t41 = call ptr @lp_str_concat(ptr @.str12775, ptr %t40) %t42 = call ptr @lp_str_concat(ptr %t41, ptr @.str12776) call void @fn_emith(ptr %t42) %t43 = load ptr, ptr @g_g_src_name %t44 = call ptr @fn_emit_str_const(ptr %t43) store ptr %t44, ptr %t45 %t46 = call ptr @fn_emit_str_const(ptr @.str12777) store ptr %t46, ptr %t47 %t48 = call ptr @fn_emit_str_const(ptr @.str12778) store ptr %t48, ptr %t49 %t50 = call ptr @fn_emit_str_const(ptr @.str12779) store ptr %t50, ptr %t51 call void @fn_emith(ptr @.str12780) call void @fn_emith(ptr @.str12781) %t52 = load i32, ptr @g_g_fprintf_declared %t53 = icmp eq i32 %t52, 0 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then14, label %ifend16 then14: call void @fn_emith(ptr @.str12782) store i32 1, ptr @g_g_fprintf_declared br label %ifend16 ifend16: call void @fn_emith(ptr @.str12783) call void @fn_emit(ptr @.str12784) %t56 = load ptr, ptr %t47 %t57 = call ptr @lp_str_concat(ptr @.str12785, ptr %t56) %t58 = call ptr @lp_str_concat(ptr %t57, ptr @.str12786) call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str12787) %t59 = load ptr, ptr %t49 %t60 = call ptr @lp_str_concat(ptr @.str12788, ptr %t59) %t61 = call ptr @lp_str_concat(ptr %t60, ptr @.str12789) call void @fn_emit(ptr %t61) %t62 = load ptr, ptr %t51 %t63 = call ptr @lp_str_concat(ptr @.str12790, ptr %t62) %t64 = call ptr @lp_str_concat(ptr %t63, ptr @.str12791) call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str12792) call void @fn_emit(ptr @.str12793) call void @fn_emit(ptr @.str12794) %t65 = load ptr, ptr %t45 %t66 = call ptr @lp_str_concat(ptr @.str12795, ptr %t65) %t67 = call ptr @lp_str_concat(ptr %t66, ptr @.str12796) call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str12797) call void @fn_emit(ptr @.str12798) call void @fn_emit(ptr @.str12799) %t68 = load ptr, ptr %t14 %t69 = call ptr @lp_str_concat(ptr @.str12800, ptr %t68) %t70 = call ptr @lp_str_concat(ptr %t69, ptr @.str12801) call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str12802) call void @fn_emit(ptr @.str12803) call void @fn_emit(ptr @.str12804) %t71 = load ptr, ptr %t14 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str12805) call void @fn_emit(ptr @.str12806) call void @fn_emit(ptr @.str12807) %t72 = load ptr, ptr %t14 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str12808) call void @fn_emit(ptr @.str12809) call void @fn_emit(ptr @.str12810) call void @fn_emit(ptr @.str12811) call void @fn_emit(ptr @.str12812) call void @fn_emit(ptr @.str12813) call void @fn_emit(ptr @.str12814) call void @fn_emit(ptr @.str12815) call void @fn_emit(ptr @.str12816) call void @fn_emit(ptr @.str12817) call void @fn_emit(ptr @.str12818) call void @fn_emit(ptr @.str12819) call void @fn_emith(ptr @.str12820) br label %ret ret: ret void } define i32 @fn_ir_flush(ptr %arg_path) { entry: %retval = alloca i32 %t0 = alloca ptr %t3 = alloca ptr %t6 = alloca ptr %t12 = alloca ptr %t31 = alloca ptr store ptr %arg_path, ptr %t0 %t1 = load ptr, ptr @g_head %t2 = call ptr @fn_buf_str(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr @g_code %t5 = call ptr @fn_buf_str(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t0 %t8 = icmp eq ptr %t7, null %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then0, label %ifend2 then0: %t11 = load ptr, ptr @__stdoutp store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = load ptr, ptr %t3 %t15 = load ptr, ptr %t3 %t16 = call i64 @strlen(ptr %t15) %t17 = trunc i64 %t16 to i32 %t18 = zext i32 %t17 to i64 %t19 = call i64 @fwrite(ptr %t14, i64 1, i64 %t18, ptr %t13) %t20 = trunc i64 %t19 to i32 %t21 = load ptr, ptr %t12 %t22 = load ptr, ptr %t6 %t23 = load ptr, ptr %t6 %t24 = call i64 @strlen(ptr %t23) %t25 = trunc i64 %t24 to i32 %t26 = zext i32 %t25 to i64 %t27 = call i64 @fwrite(ptr %t22, i64 1, i64 %t26, ptr %t21) %t28 = trunc i64 %t27 to i32 store i32 1, ptr %retval br label %ret ifend2: %t29 = load ptr, ptr %t0 %t30 = call ptr @lp_pak_open(ptr %t29, ptr @.str12821) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t31 %t33 = icmp eq ptr %t32, null %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then3, label %ifend5 then3: store i32 0, ptr %retval br label %ret ifend5: %t36 = load ptr, ptr %t31 %t37 = load ptr, ptr %t3 %t38 = load ptr, ptr %t3 %t39 = call i64 @strlen(ptr %t38) %t40 = trunc i64 %t39 to i32 %t41 = zext i32 %t40 to i64 %t42 = call i64 @fwrite(ptr %t37, i64 1, i64 %t41, ptr %t36) %t43 = trunc i64 %t42 to i32 %t44 = load ptr, ptr %t31 %t45 = load ptr, ptr %t6 %t46 = load ptr, ptr %t6 %t47 = call i64 @strlen(ptr %t46) %t48 = trunc i64 %t47 to i32 %t49 = zext i32 %t48 to i64 %t50 = call i64 @fwrite(ptr %t45, i64 1, i64 %t49, ptr %t44) %t51 = trunc i64 %t50 to i32 %t52 = load ptr, ptr %t31 call i32 @fclose(ptr %t52) store i32 1, ptr %retval br label %ret ret: %t53 = load i32, ptr %retval ret i32 %t53 } define ptr @fn_base_name(ptr %arg_path) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 store ptr %arg_path, ptr %t0 %t1 = sub i32 0, 1 store i32 %t1, ptr %t2 store i32 0, ptr %t3 br label %wcond0 wcond0: %t4 = load ptr, ptr %t0 %t5 = load i32, ptr %t3 %t6 = getelementptr inbounds i8, ptr %t4, i32 %t5 %t7 = load i8, ptr %t6 %t8 = zext i8 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %wbody1, label %wend2 wbody1: %t12 = load ptr, ptr %t0 %t13 = load i32, ptr %t3 %t14 = getelementptr inbounds i8, ptr %t12, i32 %t13 %t15 = load i8, ptr %t14 %t16 = zext i8 %t15 to i32 %t17 = call i32 @fn_is_sep(i32 %t16) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load i32, ptr %t3 store i32 %t19, ptr %t2 br label %ifend5 ifend5: %t20 = load i32, ptr %t3 %t21 = add i32 %t20, 1 store i32 %t21, ptr %t3 br label %wcond0 wend2: %t22 = load ptr, ptr %t0 %t23 = load i32, ptr %t2 %t24 = add i32 %t23, 1 %t25 = load i32, ptr %t3 %t26 = call ptr @lp_str_slice(ptr %t22, i32 %t24, i32 %t25) store ptr %t26, ptr %retval br label %ret ret: %t27 = load ptr, ptr %retval ret ptr %t27 } define ptr @fn_strip_ludic(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = icmp sgt i32 %t5, 6 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t0 %t10 = load i32, ptr %t4 %t11 = sub i32 %t10, 6 %t12 = load i32, ptr %t4 %t13 = call ptr @lp_str_slice(ptr %t9, i32 %t11, i32 %t12) %t14 = call i32 @lp_str_eq(ptr %t13, ptr @.str12822) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: %t16 = load ptr, ptr %t0 %t17 = load i32, ptr %t4 %t18 = sub i32 %t17, 6 %t19 = call ptr @lp_str_slice(ptr %t16, i32 0, i32 %t18) store ptr %t19, ptr %retval br label %ret ifend5: br label %ifend2 ifend2: %t20 = load ptr, ptr %t0 store ptr %t20, ptr %retval br label %ret ret: %t21 = load ptr, ptr %retval ret ptr %t21 } define ptr @fn_getenv_or(ptr %arg_name, ptr %arg_dflt) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t4 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_dflt, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call ptr @getenv(ptr %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = icmp eq ptr %t5, null %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t1 store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t4 store ptr %t10, ptr %retval br label %ret ret: %t11 = load ptr, ptr %retval ret ptr %t11 } define ptr @fn_ensure_slash(ptr %arg_d) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 store ptr %arg_d, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = icmp eq i32 %t5, 0 %t7 = zext i1 %t6 to i32 %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then0, label %ifend2 then0: %t9 = load ptr, ptr %t0 store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 %t11 = load i32, ptr %t4 %t12 = sub i32 %t11, 1 %t13 = getelementptr inbounds i8, ptr %t10, i32 %t12 %t14 = load i8, ptr %t13 %t15 = zext i8 %t14 to i32 %t16 = icmp eq i32 %t15, 47 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load ptr, ptr %t0 store ptr %t19, ptr %retval br label %ret ifend5: %t20 = load ptr, ptr %t0 %t21 = call ptr @lp_str_concat(ptr %t20, ptr @.str12823) store ptr %t21, ptr %retval br label %ret ret: %t22 = load ptr, ptr %retval ret ptr %t22 } define void @fn_die(ptr %arg_msg) { entry: %t0 = alloca ptr store ptr %arg_msg, ptr %t0 %t1 = load ptr, ptr @__stderrp %t2 = load ptr, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i64 @strlen(ptr %t3) %t5 = trunc i64 %t4 to i32 %t6 = zext i32 %t5 to i64 %t7 = call i64 @fwrite(ptr %t2, i64 1, i64 %t6, ptr %t1) %t8 = trunc i64 %t7 to i32 call void @exit(i32 1) unreachable ret: ret void } define ptr @fn_chomp(ptr %arg_s) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t5 = alloca i32 %t11 = alloca i32 %t12 = alloca i32 store ptr %arg_s, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 br label %wcond0 wcond0: %t6 = load i32, ptr %t4 %t7 = icmp sgt i32 %t6, 0 %t8 = zext i1 %t7 to i32 %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t5 br i1 %t9, label %sc3, label %scend4 sc3: %t13 = load ptr, ptr %t0 %t14 = load i32, ptr %t4 %t15 = sub i32 %t14, 1 %t16 = getelementptr inbounds i8, ptr %t13, i32 %t15 %t17 = load i8, ptr %t16 %t18 = zext i8 %t17 to i32 %t19 = icmp eq i32 %t18, 10 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t12 br i1 %t21, label %scend6, label %sc5 sc5: %t23 = load ptr, ptr %t0 %t24 = load i32, ptr %t4 %t25 = sub i32 %t24, 1 %t26 = getelementptr inbounds i8, ptr %t23, i32 %t25 %t27 = load i8, ptr %t26 %t28 = zext i8 %t27 to i32 %t29 = icmp eq i32 %t28, 13 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t12 br label %scend6 scend6: %t33 = load i32, ptr %t12 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t11 br i1 %t34, label %scend8, label %sc7 sc7: %t36 = load ptr, ptr %t0 %t37 = load i32, ptr %t4 %t38 = sub i32 %t37, 1 %t39 = getelementptr inbounds i8, ptr %t36, i32 %t38 %t40 = load i8, ptr %t39 %t41 = zext i8 %t40 to i32 %t42 = icmp eq i32 %t41, 32 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 %t45 = zext i1 %t44 to i32 store i32 %t45, ptr %t11 br label %scend8 scend8: %t46 = load i32, ptr %t11 %t47 = icmp ne i32 %t46, 0 %t48 = zext i1 %t47 to i32 store i32 %t48, ptr %t5 br label %scend4 scend4: %t49 = load i32, ptr %t5 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %wbody1, label %wend2 wbody1: %t51 = load i32, ptr %t4 %t52 = sub i32 %t51, 1 store i32 %t52, ptr %t4 br label %wcond0 wend2: %t53 = load ptr, ptr %t0 %t54 = load i32, ptr %t4 %t55 = call ptr @lp_str_slice(ptr %t53, i32 0, i32 %t54) store ptr %t55, ptr %retval br label %ret ret: %t56 = load ptr, ptr %retval ret ptr %t56 } define i32 @fn_has_sub(ptr %arg_s, ptr %arg_sub) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t5 = alloca i32 %t9 = alloca i32 %t10 = alloca i32 store ptr %arg_s, ptr %t0 store ptr %arg_sub, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i64 @strlen(ptr %t2) %t4 = trunc i64 %t3 to i32 store i32 %t4, ptr %t5 %t6 = load ptr, ptr %t1 %t7 = call i64 @strlen(ptr %t6) %t8 = trunc i64 %t7 to i32 store i32 %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load i32, ptr %t9 %t13 = add i32 %t11, %t12 %t14 = load i32, ptr %t5 %t15 = icmp sle i32 %t13, %t14 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr %t0 %t19 = load i32, ptr %t10 %t20 = load i32, ptr %t10 %t21 = load i32, ptr %t9 %t22 = add i32 %t20, %t21 %t23 = call ptr @lp_str_slice(ptr %t18, i32 %t19, i32 %t22) %t24 = load ptr, ptr %t1 %t25 = call i32 @lp_str_eq(ptr %t23, ptr %t24) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t27 = load i32, ptr %t10 %t28 = add i32 %t27, 1 store i32 %t28, ptr %t10 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t29 = load i32, ptr %retval ret i32 %t29 } define ptr @fn_win_path(ptr %arg_p) { entry: %retval = alloca ptr %t0 = alloca ptr %t4 = alloca i32 %t9 = alloca ptr %t10 = alloca i32 store ptr %arg_p, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call i64 @strlen(ptr %t1) %t3 = trunc i64 %t2 to i32 store i32 %t3, ptr %t4 %t5 = load i32, ptr %t4 %t6 = add i32 %t5, 1 %t7 = zext i32 %t6 to i64 %t8 = call ptr @malloc(i64 %t7) store ptr %t8, ptr %t9 store i32 0, ptr %t10 br label %wcond0 wcond0: %t11 = load i32, ptr %t10 %t12 = load i32, ptr %t4 %t13 = icmp slt i32 %t11, %t12 %t14 = zext i1 %t13 to i32 %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %wbody1, label %wend2 wbody1: %t16 = load ptr, ptr %t0 %t17 = load i32, ptr %t10 %t18 = getelementptr inbounds i8, ptr %t16, i32 %t17 %t19 = load i8, ptr %t18 %t20 = zext i8 %t19 to i32 %t21 = icmp eq i32 %t20, 47 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %else4 then3: %t24 = load ptr, ptr %t9 %t25 = load i32, ptr %t10 %t26 = getelementptr inbounds i8, ptr %t24, i32 %t25 %t27 = trunc i32 92 to i8 store i8 %t27, ptr %t26 br label %ifend5 else4: %t28 = load ptr, ptr %t9 %t29 = load i32, ptr %t10 %t30 = getelementptr inbounds i8, ptr %t28, i32 %t29 %t31 = load ptr, ptr %t0 %t32 = load i32, ptr %t10 %t33 = getelementptr inbounds i8, ptr %t31, i32 %t32 %t34 = load i8, ptr %t33 %t35 = zext i8 %t34 to i32 %t36 = trunc i32 %t35 to i8 store i8 %t36, ptr %t30 br label %ifend5 ifend5: %t37 = load i32, ptr %t10 %t38 = add i32 %t37, 1 store i32 %t38, ptr %t10 br label %wcond0 wend2: %t39 = load ptr, ptr %t9 %t40 = load i32, ptr %t4 %t41 = getelementptr inbounds i8, ptr %t39, i32 %t40 %t42 = trunc i32 0 to i8 store i8 %t42, ptr %t41 %t43 = load ptr, ptr %t9 store ptr %t43, ptr %retval br label %ret ret: %t44 = load ptr, ptr %retval ret ptr %t44 } define void @fn_make_dir(ptr %arg_d) { entry: %t0 = alloca ptr %t5 = alloca ptr store ptr %arg_d, ptr %t0 %t1 = call i32 @fn_host_is_windows() %t2 = icmp ne i32 %t1, 0 br i1 %t2, label %then0, label %else1 then0: %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_win_path(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @lp_str_concat(ptr @.str12824, ptr %t6) %t8 = call ptr @lp_str_concat(ptr %t7, ptr @.str12825) %t9 = load ptr, ptr %t5 %t10 = call ptr @lp_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @lp_str_concat(ptr %t10, ptr @.str12826) %t12 = call i32 @system(ptr %t11) br label %ifend2 else1: %t13 = load ptr, ptr %t0 %t14 = call ptr @lp_str_concat(ptr @.str12827, ptr %t13) %t15 = call i32 @system(ptr %t14) br label %ifend2 ifend2: br label %ret ret: ret void } define void @fn_remove_file(ptr %arg_p) { entry: %t0 = alloca ptr store ptr %arg_p, ptr %t0 %t1 = call i32 @fn_host_is_windows() %t2 = icmp ne i32 %t1, 0 br i1 %t2, label %then0, label %else1 then0: %t3 = load ptr, ptr %t0 %t4 = call ptr @fn_win_path(ptr %t3) %t5 = call ptr @lp_str_concat(ptr @.str12828, ptr %t4) %t6 = call ptr @lp_str_concat(ptr %t5, ptr @.str12829) %t7 = call i32 @system(ptr %t6) br label %ifend2 else1: %t8 = load ptr, ptr %t0 %t9 = call ptr @lp_str_concat(ptr @.str12830, ptr %t8) %t10 = call i32 @system(ptr %t9) br label %ifend2 ifend2: br label %ret ret: ret void } define ptr @fn_find_cc() { entry: %retval = alloca ptr %t1 = alloca ptr %t9 = alloca ptr %t12 = alloca ptr %t0 = call ptr @getenv(ptr @.str12831) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = icmp ne ptr %t2, null %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 store ptr %t6, ptr %retval br label %ret ifend2: %t7 = call i32 @fn_host_is_windows() %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then3, label %ifend5 then3: store ptr @.str12832, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = call ptr @lp_pak_open(ptr %t10, ptr @.str12833) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = icmp ne ptr %t13, null %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then6, label %ifend8 then6: %t17 = load ptr, ptr %t12 call i32 @fclose(ptr %t17) %t18 = load ptr, ptr %t9 %t19 = call ptr @lp_str_concat(ptr @.str12834, ptr %t18) %t20 = call ptr @lp_str_concat(ptr %t19, ptr @.str12835) store ptr %t20, ptr %retval br label %ret ifend8: br label %ifend5 ifend5: store ptr @.str12836, ptr %retval br label %ret ret: %t21 = load ptr, ptr %retval ret ptr %t21 } define void @fn_show_version() { entry: %t3 = alloca ptr %t0 = call ptr @fn_ludic_home() %t1 = call ptr @fn_join_path(ptr %t0, ptr @.str12837) %t2 = call ptr @fn_read_file(ptr %t1) store ptr %t2, ptr %t3 %t4 = load ptr, ptr %t3 %t5 = icmp eq ptr %t4, null %t6 = zext i1 %t5 to i32 %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %else1 then0: call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr @.str12838) br label %ifend2 else1: %t8 = load ptr, ptr %t3 %t9 = call ptr @fn_chomp(ptr %t8) %t10 = call ptr @lp_str_concat(ptr @.str12839, ptr %t9) call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr %t10) br label %ifend2 ifend2: call void @exit(i32 0) unreachable ret: ret void } define void @L_init_globals() { entry: store ptr @.str12840, ptr @g_g_parse_file %t0 = getelementptr %LSlice, ptr null, i32 1 %t1 = ptrtoint ptr %t0 to i64 %t2 = call ptr @malloc(i64 %t1) %t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0 store ptr null, ptr %t3 %t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1 store i32 0, ptr %t4 %t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2 store i32 0, ptr %t5 store ptr %t2, ptr @g_g_float_files %t6 = getelementptr %LSlice, ptr null, i32 1 %t7 = ptrtoint ptr %t6 to i64 %t8 = call ptr @malloc(i64 %t7) %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 store ptr null, ptr %t9 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 store i32 0, ptr %t10 %t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2 store i32 0, ptr %t11 store ptr %t8, ptr @g_g_trusted_files %t12 = getelementptr %LSlice, ptr null, i32 1 %t13 = ptrtoint ptr %t12 to i64 %t14 = call ptr @malloc(i64 %t13) %t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 store ptr null, ptr %t15 %t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1 store i32 0, ptr %t16 %t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2 store i32 0, ptr %t17 store ptr %t14, ptr @g_g_mod_file %t18 = getelementptr %LSlice, ptr null, i32 1 %t19 = ptrtoint ptr %t18 to i64 %t20 = call ptr @malloc(i64 %t19) %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 store ptr null, ptr %t21 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 store i32 0, ptr %t22 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 store i32 0, ptr %t23 store ptr %t20, ptr @g_g_mod_name %t24 = getelementptr %LSlice, ptr null, i32 1 %t25 = ptrtoint ptr %t24 to i64 %t26 = call ptr @malloc(i64 %t25) %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 store ptr null, ptr %t27 %t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1 store i32 0, ptr %t28 %t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2 store i32 0, ptr %t29 store ptr %t26, ptr @g_g_mod_friends store ptr @.str12841, ptr @g_g_err_file %t30 = getelementptr %LSlice, ptr null, i32 1 %t31 = ptrtoint ptr %t30 to i64 %t32 = call ptr @malloc(i64 %t31) %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 store ptr null, ptr %t33 %t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 store i32 0, ptr %t34 %t35 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 2 store i32 0, ptr %t35 store ptr %t32, ptr @g_g_rt_wants %t36 = getelementptr %LSlice, ptr null, i32 1 %t37 = ptrtoint ptr %t36 to i64 %t38 = call ptr @malloc(i64 %t37) %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 store ptr null, ptr %t39 %t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1 store i32 0, ptr %t40 %t41 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 2 store i32 0, ptr %t41 store ptr %t38, ptr @g_g_gi_name %t42 = getelementptr %LSlice, ptr null, i32 1 %t43 = ptrtoint ptr %t42 to i64 %t44 = call ptr @malloc(i64 %t43) %t45 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 store ptr null, ptr %t45 %t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1 store i32 0, ptr %t46 %t47 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 2 store i32 0, ptr %t47 store ptr %t44, ptr @g_g_gi_gen %t48 = getelementptr %LSlice, ptr null, i32 1 %t49 = ptrtoint ptr %t48 to i64 %t50 = call ptr @malloc(i64 %t49) %t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 store ptr null, ptr %t51 %t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1 store i32 0, ptr %t52 %t53 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 2 store i32 0, ptr %t53 store ptr %t50, ptr @g_g_gi_args %t54 = getelementptr %LSlice, ptr null, i32 1 %t55 = ptrtoint ptr %t54 to i64 %t56 = call ptr @malloc(i64 %t55) %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 store ptr null, ptr %t57 %t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1 store i32 0, ptr %t58 %t59 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 2 store i32 0, ptr %t59 store ptr %t56, ptr @g_g_gi_open %t60 = getelementptr %LSlice, ptr null, i32 1 %t61 = ptrtoint ptr %t60 to i64 %t62 = call ptr @malloc(i64 %t61) %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 store ptr null, ptr %t63 %t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1 store i32 0, ptr %t64 %t65 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 2 store i32 0, ptr %t65 store ptr %t62, ptr @g_g_gi_file %t66 = getelementptr %LSlice, ptr null, i32 1 %t67 = ptrtoint ptr %t66 to i64 %t68 = call ptr @malloc(i64 %t67) %t69 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0 store ptr null, ptr %t69 %t70 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1 store i32 0, ptr %t70 %t71 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 2 store i32 0, ptr %t71 store ptr %t68, ptr @g_g_gi_line %t72 = getelementptr %LSlice, ptr null, i32 1 %t73 = ptrtoint ptr %t72 to i64 %t74 = call ptr @malloc(i64 %t73) %t75 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0 store ptr null, ptr %t75 %t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1 store i32 0, ptr %t76 %t77 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 2 store i32 0, ptr %t77 store ptr %t74, ptr @g_g_al_ns %t78 = getelementptr %LSlice, ptr null, i32 1 %t79 = ptrtoint ptr %t78 to i64 %t80 = call ptr @malloc(i64 %t79) %t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 0 store ptr null, ptr %t81 %t82 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 1 store i32 0, ptr %t82 %t83 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 2 store i32 0, ptr %t83 store ptr %t80, ptr @g_g_al_meth %t84 = getelementptr %LSlice, ptr null, i32 1 %t85 = ptrtoint ptr %t84 to i64 %t86 = call ptr @malloc(i64 %t85) %t87 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 0 store ptr null, ptr %t87 %t88 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 1 store i32 0, ptr %t88 %t89 = getelementptr inbounds %LSlice, ptr %t86, i32 0, i32 2 store i32 0, ptr %t89 store ptr %t86, ptr @g_g_al_target %t90 = getelementptr %LSlice, ptr null, i32 1 %t91 = ptrtoint ptr %t90 to i64 %t92 = call ptr @malloc(i64 %t91) %t93 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 0 store ptr null, ptr %t93 %t94 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1 store i32 0, ptr %t94 %t95 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 2 store i32 0, ptr %t95 store ptr %t92, ptr @g_g_al_labels %t96 = getelementptr %LSlice, ptr null, i32 1 %t97 = ptrtoint ptr %t96 to i64 %t98 = call ptr @malloc(i64 %t97) %t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 store ptr null, ptr %t99 %t100 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1 store i32 0, ptr %t100 %t101 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 2 store i32 0, ptr %t101 store ptr %t98, ptr @g_g_al_file %t102 = getelementptr %LSlice, ptr null, i32 1 %t103 = ptrtoint ptr %t102 to i64 %t104 = call ptr @malloc(i64 %t103) %t105 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 0 store ptr null, ptr %t105 %t106 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 1 store i32 0, ptr %t106 %t107 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 2 store i32 0, ptr %t107 store ptr %t104, ptr @g_g_mu_mod %t108 = getelementptr %LSlice, ptr null, i32 1 %t109 = ptrtoint ptr %t108 to i64 %t110 = call ptr @malloc(i64 %t109) %t111 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 0 store ptr null, ptr %t111 %t112 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 store i32 0, ptr %t112 %t113 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 2 store i32 0, ptr %t113 store ptr %t110, ptr @g_g_mu_list %t114 = getelementptr %LSlice, ptr null, i32 1 %t115 = ptrtoint ptr %t114 to i64 %t116 = call ptr @malloc(i64 %t115) %t117 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 0 store ptr null, ptr %t117 %t118 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 1 store i32 0, ptr %t118 %t119 = getelementptr inbounds %LSlice, ptr %t116, i32 0, i32 2 store i32 0, ptr %t119 store ptr %t116, ptr @g_g_mu_file %t120 = getelementptr %LSlice, ptr null, i32 1 %t121 = ptrtoint ptr %t120 to i64 %t122 = call ptr @malloc(i64 %t121) %t123 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 0 store ptr null, ptr %t123 %t124 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 1 store i32 0, ptr %t124 %t125 = getelementptr inbounds %LSlice, ptr %t122, i32 0, i32 2 store i32 0, ptr %t125 store ptr %t122, ptr @g_g_mu_line %t126 = getelementptr %LSlice, ptr null, i32 1 %t127 = ptrtoint ptr %t126 to i64 %t128 = call ptr @malloc(i64 %t127) %t129 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 0 store ptr null, ptr %t129 %t130 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 1 store i32 0, ptr %t130 %t131 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 2 store i32 0, ptr %t131 store ptr %t128, ptr @g_g_fr_scope %t132 = getelementptr %LSlice, ptr null, i32 1 %t133 = ptrtoint ptr %t132 to i64 %t134 = call ptr @malloc(i64 %t133) %t135 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 0 store ptr null, ptr %t135 %t136 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 1 store i32 0, ptr %t136 %t137 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 2 store i32 0, ptr %t137 store ptr %t134, ptr @g_g_ly_mod %t138 = getelementptr %LSlice, ptr null, i32 1 %t139 = ptrtoint ptr %t138 to i64 %t140 = call ptr @malloc(i64 %t139) %t141 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0 store ptr null, ptr %t141 %t142 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 1 store i32 0, ptr %t142 %t143 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 2 store i32 0, ptr %t143 store ptr %t140, ptr @g_g_ly_name %t144 = getelementptr %LSlice, ptr null, i32 1 %t145 = ptrtoint ptr %t144 to i64 %t146 = call ptr @malloc(i64 %t145) %t147 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 0 store ptr null, ptr %t147 %t148 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 1 store i32 0, ptr %t148 %t149 = getelementptr inbounds %LSlice, ptr %t146, i32 0, i32 2 store i32 0, ptr %t149 store ptr %t146, ptr @g_g_pk_file %t150 = getelementptr %LSlice, ptr null, i32 1 %t151 = ptrtoint ptr %t150 to i64 %t152 = call ptr @malloc(i64 %t151) %t153 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 0 store ptr null, ptr %t153 %t154 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 1 store i32 0, ptr %t154 %t155 = getelementptr inbounds %LSlice, ptr %t152, i32 0, i32 2 store i32 0, ptr %t155 store ptr %t152, ptr @g_g_pk_name store ptr @.str12842, ptr @g_g_mu_done %t156 = getelementptr %LSlice, ptr null, i32 1 %t157 = ptrtoint ptr %t156 to i64 %t158 = call ptr @malloc(i64 %t157) %t159 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 0 store ptr null, ptr %t159 %t160 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1 store i32 0, ptr %t160 %t161 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 2 store i32 0, ptr %t161 store ptr %t158, ptr @g_g_pt_name %t162 = getelementptr %LSlice, ptr null, i32 1 %t163 = ptrtoint ptr %t162 to i64 %t164 = call ptr @malloc(i64 %t163) %t165 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 0 store ptr null, ptr %t165 %t166 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 1 store i32 0, ptr %t166 %t167 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 2 store i32 0, ptr %t167 store ptr %t164, ptr @g_g_pt_comp %t168 = getelementptr %LSlice, ptr null, i32 1 %t169 = ptrtoint ptr %t168 to i64 %t170 = call ptr @malloc(i64 %t169) %t171 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 0 store ptr null, ptr %t171 %t172 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 1 store i32 0, ptr %t172 %t173 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 2 store i32 0, ptr %t173 store ptr %t170, ptr @g_g_pt_var %t174 = getelementptr %LSlice, ptr null, i32 1 %t175 = ptrtoint ptr %t174 to i64 %t176 = call ptr @malloc(i64 %t175) %t177 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 0 store ptr null, ptr %t177 %t178 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 1 store i32 0, ptr %t178 %t179 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 2 store i32 0, ptr %t179 store ptr %t176, ptr @g_g_pt_bind %t180 = getelementptr %LSlice, ptr null, i32 1 %t181 = ptrtoint ptr %t180 to i64 %t182 = call ptr @malloc(i64 %t181) %t183 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 0 store ptr null, ptr %t183 %t184 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 1 store i32 0, ptr %t184 %t185 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 2 store i32 0, ptr %t185 store ptr %t182, ptr @g_g_bd %t186 = getelementptr %LSlice, ptr null, i32 1 %t187 = ptrtoint ptr %t186 to i64 %t188 = call ptr @malloc(i64 %t187) %t189 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 0 store ptr null, ptr %t189 %t190 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 1 store i32 0, ptr %t190 %t191 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 2 store i32 0, ptr %t191 store ptr %t188, ptr @g_g_rn_mod %t192 = getelementptr %LSlice, ptr null, i32 1 %t193 = ptrtoint ptr %t192 to i64 %t194 = call ptr @malloc(i64 %t193) %t195 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 0 store ptr null, ptr %t195 %t196 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 1 store i32 0, ptr %t196 %t197 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 2 store i32 0, ptr %t197 store ptr %t194, ptr @g_g_rn_old %t198 = getelementptr %LSlice, ptr null, i32 1 %t199 = ptrtoint ptr %t198 to i64 %t200 = call ptr @malloc(i64 %t199) %t201 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 0 store ptr null, ptr %t201 %t202 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 1 store i32 0, ptr %t202 %t203 = getelementptr inbounds %LSlice, ptr %t200, i32 0, i32 2 store i32 0, ptr %t203 store ptr %t200, ptr @g_g_rn_new %t204 = getelementptr %LSlice, ptr null, i32 1 %t205 = ptrtoint ptr %t204 to i64 %t206 = call ptr @malloc(i64 %t205) %t207 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 0 store ptr null, ptr %t207 %t208 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 1 store i32 0, ptr %t208 %t209 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 2 store i32 0, ptr %t209 store ptr %t206, ptr @g_g_rn_fn %t210 = getelementptr %LSlice, ptr null, i32 1 %t211 = ptrtoint ptr %t210 to i64 %t212 = call ptr @malloc(i64 %t211) %t213 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 0 store ptr null, ptr %t213 %t214 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 1 store i32 0, ptr %t214 %t215 = getelementptr inbounds %LSlice, ptr %t212, i32 0, i32 2 store i32 0, ptr %t215 store ptr %t212, ptr @g_g_rt_mod %t216 = getelementptr %LSlice, ptr null, i32 1 %t217 = ptrtoint ptr %t216 to i64 %t218 = call ptr @malloc(i64 %t217) %t219 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 0 store ptr null, ptr %t219 %t220 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 1 store i32 0, ptr %t220 %t221 = getelementptr inbounds %LSlice, ptr %t218, i32 0, i32 2 store i32 0, ptr %t221 store ptr %t218, ptr @g_g_rt_old %t222 = getelementptr %LSlice, ptr null, i32 1 %t223 = ptrtoint ptr %t222 to i64 %t224 = call ptr @malloc(i64 %t223) %t225 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 0 store ptr null, ptr %t225 %t226 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 1 store i32 0, ptr %t226 %t227 = getelementptr inbounds %LSlice, ptr %t224, i32 0, i32 2 store i32 0, ptr %t227 store ptr %t224, ptr @g_g_rt_new %t228 = getelementptr %LSlice, ptr null, i32 1 %t229 = ptrtoint ptr %t228 to i64 %t230 = call ptr @malloc(i64 %t229) %t231 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 0 store ptr null, ptr %t231 %t232 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 1 store i32 0, ptr %t232 %t233 = getelementptr inbounds %LSlice, ptr %t230, i32 0, i32 2 store i32 0, ptr %t233 store ptr %t230, ptr @g_g_re_mod %t234 = getelementptr %LSlice, ptr null, i32 1 %t235 = ptrtoint ptr %t234 to i64 %t236 = call ptr @malloc(i64 %t235) %t237 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 0 store ptr null, ptr %t237 %t238 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 1 store i32 0, ptr %t238 %t239 = getelementptr inbounds %LSlice, ptr %t236, i32 0, i32 2 store i32 0, ptr %t239 store ptr %t236, ptr @g_g_re_old %t240 = getelementptr %LSlice, ptr null, i32 1 %t241 = ptrtoint ptr %t240 to i64 %t242 = call ptr @malloc(i64 %t241) %t243 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 0 store ptr null, ptr %t243 %t244 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 1 store i32 0, ptr %t244 %t245 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 2 store i32 0, ptr %t245 store ptr %t242, ptr @g_g_re_new %t246 = getelementptr %LSlice, ptr null, i32 1 %t247 = ptrtoint ptr %t246 to i64 %t248 = call ptr @malloc(i64 %t247) %t249 = getelementptr inbounds %LSlice, ptr %t248, i32 0, i32 0 store ptr null, ptr %t249 %t250 = getelementptr inbounds %LSlice, ptr %t248, i32 0, i32 1 store i32 0, ptr %t250 %t251 = getelementptr inbounds %LSlice, ptr %t248, i32 0, i32 2 store i32 0, ptr %t251 store ptr %t248, ptr @g_g_rg_name %t252 = getelementptr %LSlice, ptr null, i32 1 %t253 = ptrtoint ptr %t252 to i64 %t254 = call ptr @malloc(i64 %t253) %t255 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 0 store ptr null, ptr %t255 %t256 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 1 store i32 0, ptr %t256 %t257 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 2 store i32 0, ptr %t257 store ptr %t254, ptr @g_g_rg_type %t258 = getelementptr %LSlice, ptr null, i32 1 %t259 = ptrtoint ptr %t258 to i64 %t260 = call ptr @malloc(i64 %t259) %t261 = getelementptr inbounds %LSlice, ptr %t260, i32 0, i32 0 store ptr null, ptr %t261 %t262 = getelementptr inbounds %LSlice, ptr %t260, i32 0, i32 1 store i32 0, ptr %t262 %t263 = getelementptr inbounds %LSlice, ptr %t260, i32 0, i32 2 store i32 0, ptr %t263 store ptr %t260, ptr @g_g_rg_prefix %t264 = getelementptr %LSlice, ptr null, i32 1 %t265 = ptrtoint ptr %t264 to i64 %t266 = call ptr @malloc(i64 %t265) %t267 = getelementptr inbounds %LSlice, ptr %t266, i32 0, i32 0 store ptr null, ptr %t267 %t268 = getelementptr inbounds %LSlice, ptr %t266, i32 0, i32 1 store i32 0, ptr %t268 %t269 = getelementptr inbounds %LSlice, ptr %t266, i32 0, i32 2 store i32 0, ptr %t269 store ptr %t266, ptr @g_g_rg_var %t270 = getelementptr %LSlice, ptr null, i32 1 %t271 = ptrtoint ptr %t270 to i64 %t272 = call ptr @malloc(i64 %t271) %t273 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 0 store ptr null, ptr %t273 %t274 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 1 store i32 0, ptr %t274 %t275 = getelementptr inbounds %LSlice, ptr %t272, i32 0, i32 2 store i32 0, ptr %t275 store ptr %t272, ptr @g_g_rg_open %t276 = getelementptr %LSlice, ptr null, i32 1 %t277 = ptrtoint ptr %t276 to i64 %t278 = call ptr @malloc(i64 %t277) %t279 = getelementptr inbounds %LSlice, ptr %t278, i32 0, i32 0 store ptr null, ptr %t279 %t280 = getelementptr inbounds %LSlice, ptr %t278, i32 0, i32 1 store i32 0, ptr %t280 %t281 = getelementptr inbounds %LSlice, ptr %t278, i32 0, i32 2 store i32 0, ptr %t281 store ptr %t278, ptr @g_g_df_reg %t282 = getelementptr %LSlice, ptr null, i32 1 %t283 = ptrtoint ptr %t282 to i64 %t284 = call ptr @malloc(i64 %t283) %t285 = getelementptr inbounds %LSlice, ptr %t284, i32 0, i32 0 store ptr null, ptr %t285 %t286 = getelementptr inbounds %LSlice, ptr %t284, i32 0, i32 1 store i32 0, ptr %t286 %t287 = getelementptr inbounds %LSlice, ptr %t284, i32 0, i32 2 store i32 0, ptr %t287 store ptr %t284, ptr @g_g_df_key %t288 = getelementptr %LSlice, ptr null, i32 1 %t289 = ptrtoint ptr %t288 to i64 %t290 = call ptr @malloc(i64 %t289) %t291 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 0 store ptr null, ptr %t291 %t292 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 1 store i32 0, ptr %t292 %t293 = getelementptr inbounds %LSlice, ptr %t290, i32 0, i32 2 store i32 0, ptr %t293 store ptr %t290, ptr @g_g_df_rec %t294 = getelementptr %LSlice, ptr null, i32 1 %t295 = ptrtoint ptr %t294 to i64 %t296 = call ptr @malloc(i64 %t295) %t297 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 0 store ptr null, ptr %t297 %t298 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 1 store i32 0, ptr %t298 %t299 = getelementptr inbounds %LSlice, ptr %t296, i32 0, i32 2 store i32 0, ptr %t299 store ptr %t296, ptr @g_g_vw_name %t300 = getelementptr %LSlice, ptr null, i32 1 %t301 = ptrtoint ptr %t300 to i64 %t302 = call ptr @malloc(i64 %t301) %t303 = getelementptr inbounds %LSlice, ptr %t302, i32 0, i32 0 store ptr null, ptr %t303 %t304 = getelementptr inbounds %LSlice, ptr %t302, i32 0, i32 1 store i32 0, ptr %t304 %t305 = getelementptr inbounds %LSlice, ptr %t302, i32 0, i32 2 store i32 0, ptr %t305 store ptr %t302, ptr @g_g_vw_node %t306 = getelementptr %LSlice, ptr null, i32 1 %t307 = ptrtoint ptr %t306 to i64 %t308 = call ptr @malloc(i64 %t307) %t309 = getelementptr inbounds %LSlice, ptr %t308, i32 0, i32 0 store ptr null, ptr %t309 %t310 = getelementptr inbounds %LSlice, ptr %t308, i32 0, i32 1 store i32 0, ptr %t310 %t311 = getelementptr inbounds %LSlice, ptr %t308, i32 0, i32 2 store i32 0, ptr %t311 store ptr %t308, ptr @g_g_vw_fields %t312 = getelementptr %LSlice, ptr null, i32 1 %t313 = ptrtoint ptr %t312 to i64 %t314 = call ptr @malloc(i64 %t313) %t315 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 0 store ptr null, ptr %t315 %t316 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 1 store i32 0, ptr %t316 %t317 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 2 store i32 0, ptr %t317 store ptr %t314, ptr @g_g_vw_fnames %t318 = getelementptr %LSlice, ptr null, i32 1 %t319 = ptrtoint ptr %t318 to i64 %t320 = call ptr @malloc(i64 %t319) %t321 = getelementptr inbounds %LSlice, ptr %t320, i32 0, i32 0 store ptr null, ptr %t321 %t322 = getelementptr inbounds %LSlice, ptr %t320, i32 0, i32 1 store i32 0, ptr %t322 %t323 = getelementptr inbounds %LSlice, ptr %t320, i32 0, i32 2 store i32 0, ptr %t323 store ptr %t320, ptr @g_g_vw_calls %t324 = getelementptr %LSlice, ptr null, i32 1 %t325 = ptrtoint ptr %t324 to i64 %t326 = call ptr @malloc(i64 %t325) %t327 = getelementptr inbounds %LSlice, ptr %t326, i32 0, i32 0 store ptr null, ptr %t327 %t328 = getelementptr inbounds %LSlice, ptr %t326, i32 0, i32 1 store i32 0, ptr %t328 %t329 = getelementptr inbounds %LSlice, ptr %t326, i32 0, i32 2 store i32 0, ptr %t329 store ptr %t326, ptr @g_g_vw_cnames %t330 = getelementptr %LSlice, ptr null, i32 1 %t331 = ptrtoint ptr %t330 to i64 %t332 = call ptr @malloc(i64 %t331) %t333 = getelementptr inbounds %LSlice, ptr %t332, i32 0, i32 0 store ptr null, ptr %t333 %t334 = getelementptr inbounds %LSlice, ptr %t332, i32 0, i32 1 store i32 0, ptr %t334 %t335 = getelementptr inbounds %LSlice, ptr %t332, i32 0, i32 2 store i32 0, ptr %t335 store ptr %t332, ptr @g_g_vw_helpers %t336 = getelementptr %LSlice, ptr null, i32 1 %t337 = ptrtoint ptr %t336 to i64 %t338 = call ptr @malloc(i64 %t337) %t339 = getelementptr inbounds %LSlice, ptr %t338, i32 0, i32 0 store ptr null, ptr %t339 %t340 = getelementptr inbounds %LSlice, ptr %t338, i32 0, i32 1 store i32 0, ptr %t340 %t341 = getelementptr inbounds %LSlice, ptr %t338, i32 0, i32 2 store i32 0, ptr %t341 store ptr %t338, ptr @g_g_cm_name %t342 = getelementptr %LSlice, ptr null, i32 1 %t343 = ptrtoint ptr %t342 to i64 %t344 = call ptr @malloc(i64 %t343) %t345 = getelementptr inbounds %LSlice, ptr %t344, i32 0, i32 0 store ptr null, ptr %t345 %t346 = getelementptr inbounds %LSlice, ptr %t344, i32 0, i32 1 store i32 0, ptr %t346 %t347 = getelementptr inbounds %LSlice, ptr %t344, i32 0, i32 2 store i32 0, ptr %t347 store ptr %t344, ptr @g_g_cm_file %t348 = getelementptr %LSlice, ptr null, i32 1 %t349 = ptrtoint ptr %t348 to i64 %t350 = call ptr @malloc(i64 %t349) %t351 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 0 store ptr null, ptr %t351 %t352 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 1 store i32 0, ptr %t352 %t353 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 2 store i32 0, ptr %t353 store ptr %t350, ptr @g_g_cm_line %t354 = getelementptr %LSlice, ptr null, i32 1 %t355 = ptrtoint ptr %t354 to i64 %t356 = call ptr @malloc(i64 %t355) %t357 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 0 store ptr null, ptr %t357 %t358 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 1 store i32 0, ptr %t358 %t359 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 2 store i32 0, ptr %t359 store ptr %t356, ptr @g_g_cm_vis %t360 = getelementptr %LSlice, ptr null, i32 1 %t361 = ptrtoint ptr %t360 to i64 %t362 = call ptr @malloc(i64 %t361) %t363 = getelementptr inbounds %LSlice, ptr %t362, i32 0, i32 0 store ptr null, ptr %t363 %t364 = getelementptr inbounds %LSlice, ptr %t362, i32 0, i32 1 store i32 0, ptr %t364 %t365 = getelementptr inbounds %LSlice, ptr %t362, i32 0, i32 2 store i32 0, ptr %t365 store ptr %t362, ptr @g_g_cm_keep %t366 = getelementptr %LSlice, ptr null, i32 1 %t367 = ptrtoint ptr %t366 to i64 %t368 = call ptr @malloc(i64 %t367) %t369 = getelementptr inbounds %LSlice, ptr %t368, i32 0, i32 0 store ptr null, ptr %t369 %t370 = getelementptr inbounds %LSlice, ptr %t368, i32 0, i32 1 store i32 0, ptr %t370 %t371 = getelementptr inbounds %LSlice, ptr %t368, i32 0, i32 2 store i32 0, ptr %t371 store ptr %t368, ptr @g_g_cm_keep_ty %t372 = getelementptr %LSlice, ptr null, i32 1 %t373 = ptrtoint ptr %t372 to i64 %t374 = call ptr @malloc(i64 %t373) %t375 = getelementptr inbounds %LSlice, ptr %t374, i32 0, i32 0 store ptr null, ptr %t375 %t376 = getelementptr inbounds %LSlice, ptr %t374, i32 0, i32 1 store i32 0, ptr %t376 %t377 = getelementptr inbounds %LSlice, ptr %t374, i32 0, i32 2 store i32 0, ptr %t377 store ptr %t374, ptr @g_g_cm_prop %t378 = getelementptr %LSlice, ptr null, i32 1 %t379 = ptrtoint ptr %t378 to i64 %t380 = call ptr @malloc(i64 %t379) %t381 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 0 store ptr null, ptr %t381 %t382 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 1 store i32 0, ptr %t382 %t383 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 2 store i32 0, ptr %t383 store ptr %t380, ptr @g_g_cm_defs %t384 = getelementptr %LSlice, ptr null, i32 1 %t385 = ptrtoint ptr %t384 to i64 %t386 = call ptr @malloc(i64 %t385) %t387 = getelementptr inbounds %LSlice, ptr %t386, i32 0, i32 0 store ptr null, ptr %t387 %t388 = getelementptr inbounds %LSlice, ptr %t386, i32 0, i32 1 store i32 0, ptr %t388 %t389 = getelementptr inbounds %LSlice, ptr %t386, i32 0, i32 2 store i32 0, ptr %t389 store ptr %t386, ptr @g_g_cm_fields %t390 = getelementptr %LSlice, ptr null, i32 1 %t391 = ptrtoint ptr %t390 to i64 %t392 = call ptr @malloc(i64 %t391) %t393 = getelementptr inbounds %LSlice, ptr %t392, i32 0, i32 0 store ptr null, ptr %t393 %t394 = getelementptr inbounds %LSlice, ptr %t392, i32 0, i32 1 store i32 0, ptr %t394 %t395 = getelementptr inbounds %LSlice, ptr %t392, i32 0, i32 2 store i32 0, ptr %t395 store ptr %t392, ptr @g_g_cm_fnames %t396 = getelementptr %LSlice, ptr null, i32 1 %t397 = ptrtoint ptr %t396 to i64 %t398 = call ptr @malloc(i64 %t397) %t399 = getelementptr inbounds %LSlice, ptr %t398, i32 0, i32 0 store ptr null, ptr %t399 %t400 = getelementptr inbounds %LSlice, ptr %t398, i32 0, i32 1 store i32 0, ptr %t400 %t401 = getelementptr inbounds %LSlice, ptr %t398, i32 0, i32 2 store i32 0, ptr %t401 store ptr %t398, ptr @g_g_cm_calls %t402 = getelementptr %LSlice, ptr null, i32 1 %t403 = ptrtoint ptr %t402 to i64 %t404 = call ptr @malloc(i64 %t403) %t405 = getelementptr inbounds %LSlice, ptr %t404, i32 0, i32 0 store ptr null, ptr %t405 %t406 = getelementptr inbounds %LSlice, ptr %t404, i32 0, i32 1 store i32 0, ptr %t406 %t407 = getelementptr inbounds %LSlice, ptr %t404, i32 0, i32 2 store i32 0, ptr %t407 store ptr %t404, ptr @g_g_cm_cnames %t408 = getelementptr %LSlice, ptr null, i32 1 %t409 = ptrtoint ptr %t408 to i64 %t410 = call ptr @malloc(i64 %t409) %t411 = getelementptr inbounds %LSlice, ptr %t410, i32 0, i32 0 store ptr null, ptr %t411 %t412 = getelementptr inbounds %LSlice, ptr %t410, i32 0, i32 1 store i32 0, ptr %t412 %t413 = getelementptr inbounds %LSlice, ptr %t410, i32 0, i32 2 store i32 0, ptr %t413 store ptr %t410, ptr @g_g_cm_head store ptr @.str12843, ptr @g_g_src_name store ptr @.str12844, ptr @g_g_ret_label %t414 = getelementptr %LSlice, ptr null, i32 1 %t415 = ptrtoint ptr %t414 to i64 %t416 = call ptr @malloc(i64 %t415) %t417 = getelementptr inbounds %LSlice, ptr %t416, i32 0, i32 0 store ptr null, ptr %t417 %t418 = getelementptr inbounds %LSlice, ptr %t416, i32 0, i32 1 store i32 0, ptr %t418 %t419 = getelementptr inbounds %LSlice, ptr %t416, i32 0, i32 2 store i32 0, ptr %t419 store ptr %t416, ptr @g_g_dp_key %t420 = getelementptr %LSlice, ptr null, i32 1 %t421 = ptrtoint ptr %t420 to i64 %t422 = call ptr @malloc(i64 %t421) %t423 = getelementptr inbounds %LSlice, ptr %t422, i32 0, i32 0 store ptr null, ptr %t423 %t424 = getelementptr inbounds %LSlice, ptr %t422, i32 0, i32 1 store i32 0, ptr %t424 %t425 = getelementptr inbounds %LSlice, ptr %t422, i32 0, i32 2 store i32 0, ptr %t425 store ptr %t422, ptr @g_g_dp_cnt %t426 = getelementptr %LSlice, ptr null, i32 1 %t427 = ptrtoint ptr %t426 to i64 %t428 = call ptr @malloc(i64 %t427) %t429 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 0 store ptr null, ptr %t429 %t430 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 1 store i32 0, ptr %t430 %t431 = getelementptr inbounds %LSlice, ptr %t428, i32 0, i32 2 store i32 0, ptr %t431 store ptr %t428, ptr @g_g_dp_name %t432 = getelementptr %LSlice, ptr null, i32 1 %t433 = ptrtoint ptr %t432 to i64 %t434 = call ptr @malloc(i64 %t433) %t435 = getelementptr inbounds %LSlice, ptr %t434, i32 0, i32 0 store ptr null, ptr %t435 %t436 = getelementptr inbounds %LSlice, ptr %t434, i32 0, i32 1 store i32 0, ptr %t436 %t437 = getelementptr inbounds %LSlice, ptr %t434, i32 0, i32 2 store i32 0, ptr %t437 store ptr %t434, ptr @g_g_dp_writes %t438 = getelementptr %LSlice, ptr null, i32 1 %t439 = ptrtoint ptr %t438 to i64 %t440 = call ptr @malloc(i64 %t439) %t441 = getelementptr inbounds %LSlice, ptr %t440, i32 0, i32 0 store ptr null, ptr %t441 %t442 = getelementptr inbounds %LSlice, ptr %t440, i32 0, i32 1 store i32 0, ptr %t442 %t443 = getelementptr inbounds %LSlice, ptr %t440, i32 0, i32 2 store i32 0, ptr %t443 store ptr %t440, ptr @g_g_det_names store ptr @.str12845, ptr @g_g_det_ctx %t444 = getelementptr %LSlice, ptr null, i32 1 %t445 = ptrtoint ptr %t444 to i64 %t446 = call ptr @malloc(i64 %t445) %t447 = getelementptr inbounds %LSlice, ptr %t446, i32 0, i32 0 store ptr null, ptr %t447 %t448 = getelementptr inbounds %LSlice, ptr %t446, i32 0, i32 1 store i32 0, ptr %t448 %t449 = getelementptr inbounds %LSlice, ptr %t446, i32 0, i32 2 store i32 0, ptr %t449 store ptr %t446, ptr @g_ck_fn_k %t450 = getelementptr %LSlice, ptr null, i32 1 %t451 = ptrtoint ptr %t450 to i64 %t452 = call ptr @malloc(i64 %t451) %t453 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 0 store ptr null, ptr %t453 %t454 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 1 store i32 0, ptr %t454 %t455 = getelementptr inbounds %LSlice, ptr %t452, i32 0, i32 2 store i32 0, ptr %t455 store ptr %t452, ptr @g_ck_fn_v %t456 = getelementptr %LSlice, ptr null, i32 1 %t457 = ptrtoint ptr %t456 to i64 %t458 = call ptr @malloc(i64 %t457) %t459 = getelementptr inbounds %LSlice, ptr %t458, i32 0, i32 0 store ptr null, ptr %t459 %t460 = getelementptr inbounds %LSlice, ptr %t458, i32 0, i32 1 store i32 0, ptr %t460 %t461 = getelementptr inbounds %LSlice, ptr %t458, i32 0, i32 2 store i32 0, ptr %t461 store ptr %t458, ptr @g_ck_gl_k %t462 = getelementptr %LSlice, ptr null, i32 1 %t463 = ptrtoint ptr %t462 to i64 %t464 = call ptr @malloc(i64 %t463) %t465 = getelementptr inbounds %LSlice, ptr %t464, i32 0, i32 0 store ptr null, ptr %t465 %t466 = getelementptr inbounds %LSlice, ptr %t464, i32 0, i32 1 store i32 0, ptr %t466 %t467 = getelementptr inbounds %LSlice, ptr %t464, i32 0, i32 2 store i32 0, ptr %t467 store ptr %t464, ptr @g_ck_gl_v %t468 = getelementptr %LSlice, ptr null, i32 1 %t469 = ptrtoint ptr %t468 to i64 %t470 = call ptr @malloc(i64 %t469) %t471 = getelementptr inbounds %LSlice, ptr %t470, i32 0, i32 0 store ptr null, ptr %t471 %t472 = getelementptr inbounds %LSlice, ptr %t470, i32 0, i32 1 store i32 0, ptr %t472 %t473 = getelementptr inbounds %LSlice, ptr %t470, i32 0, i32 2 store i32 0, ptr %t473 store ptr %t470, ptr @g_ck_rec_k %t474 = getelementptr %LSlice, ptr null, i32 1 %t475 = ptrtoint ptr %t474 to i64 %t476 = call ptr @malloc(i64 %t475) %t477 = getelementptr inbounds %LSlice, ptr %t476, i32 0, i32 0 store ptr null, ptr %t477 %t478 = getelementptr inbounds %LSlice, ptr %t476, i32 0, i32 1 store i32 0, ptr %t478 %t479 = getelementptr inbounds %LSlice, ptr %t476, i32 0, i32 2 store i32 0, ptr %t479 store ptr %t476, ptr @g_ck_rec_v %t480 = getelementptr %LSlice, ptr null, i32 1 %t481 = ptrtoint ptr %t480 to i64 %t482 = call ptr @malloc(i64 %t481) %t483 = getelementptr inbounds %LSlice, ptr %t482, i32 0, i32 0 store ptr null, ptr %t483 %t484 = getelementptr inbounds %LSlice, ptr %t482, i32 0, i32 1 store i32 0, ptr %t484 %t485 = getelementptr inbounds %LSlice, ptr %t482, i32 0, i32 2 store i32 0, ptr %t485 store ptr %t482, ptr @g_ck_en_k %t486 = getelementptr %LSlice, ptr null, i32 1 %t487 = ptrtoint ptr %t486 to i64 %t488 = call ptr @malloc(i64 %t487) %t489 = getelementptr inbounds %LSlice, ptr %t488, i32 0, i32 0 store ptr null, ptr %t489 %t490 = getelementptr inbounds %LSlice, ptr %t488, i32 0, i32 1 store i32 0, ptr %t490 %t491 = getelementptr inbounds %LSlice, ptr %t488, i32 0, i32 2 store i32 0, ptr %t491 store ptr %t488, ptr @g_ck_en_v %t492 = getelementptr %LSlice, ptr null, i32 1 %t493 = ptrtoint ptr %t492 to i64 %t494 = call ptr @malloc(i64 %t493) %t495 = getelementptr inbounds %LSlice, ptr %t494, i32 0, i32 0 store ptr null, ptr %t495 %t496 = getelementptr inbounds %LSlice, ptr %t494, i32 0, i32 1 store i32 0, ptr %t496 %t497 = getelementptr inbounds %LSlice, ptr %t494, i32 0, i32 2 store i32 0, ptr %t497 store ptr %t494, ptr @g_ck_ex_k %t498 = getelementptr %LSlice, ptr null, i32 1 %t499 = ptrtoint ptr %t498 to i64 %t500 = call ptr @malloc(i64 %t499) %t501 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 0 store ptr null, ptr %t501 %t502 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 1 store i32 0, ptr %t502 %t503 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 2 store i32 0, ptr %t503 store ptr %t500, ptr @g_ck_ex_v %t504 = getelementptr %LSlice, ptr null, i32 1 %t505 = ptrtoint ptr %t504 to i64 %t506 = call ptr @malloc(i64 %t505) %t507 = getelementptr inbounds %LSlice, ptr %t506, i32 0, i32 0 store ptr null, ptr %t507 %t508 = getelementptr inbounds %LSlice, ptr %t506, i32 0, i32 1 store i32 0, ptr %t508 %t509 = getelementptr inbounds %LSlice, ptr %t506, i32 0, i32 2 store i32 0, ptr %t509 store ptr %t506, ptr @g_ck_names %t510 = getelementptr %LSlice, ptr null, i32 1 %t511 = ptrtoint ptr %t510 to i64 %t512 = call ptr @malloc(i64 %t511) %t513 = getelementptr inbounds %LSlice, ptr %t512, i32 0, i32 0 store ptr null, ptr %t513 %t514 = getelementptr inbounds %LSlice, ptr %t512, i32 0, i32 1 store i32 0, ptr %t514 %t515 = getelementptr inbounds %LSlice, ptr %t512, i32 0, i32 2 store i32 0, ptr %t515 store ptr %t512, ptr @g_ck_tys store ptr @.str12846, ptr @g_ck_ret %t516 = getelementptr %LSlice, ptr null, i32 1 %t517 = ptrtoint ptr %t516 to i64 %t518 = call ptr @malloc(i64 %t517) %t519 = getelementptr inbounds %LSlice, ptr %t518, i32 0, i32 0 store ptr null, ptr %t519 %t520 = getelementptr inbounds %LSlice, ptr %t518, i32 0, i32 1 store i32 0, ptr %t520 %t521 = getelementptr inbounds %LSlice, ptr %t518, i32 0, i32 2 store i32 0, ptr %t521 store ptr %t518, ptr @g_ck_shadow_seen %t522 = getelementptr %LSlice, ptr null, i32 1 %t523 = ptrtoint ptr %t522 to i64 %t524 = call ptr @malloc(i64 %t523) %t525 = getelementptr inbounds %LSlice, ptr %t524, i32 0, i32 0 store ptr null, ptr %t525 %t526 = getelementptr inbounds %LSlice, ptr %t524, i32 0, i32 1 store i32 0, ptr %t526 %t527 = getelementptr inbounds %LSlice, ptr %t524, i32 0, i32 2 store i32 0, ptr %t527 store ptr %t524, ptr @g_g_gen_recs %t528 = getelementptr %LSlice, ptr null, i32 1 %t529 = ptrtoint ptr %t528 to i64 %t530 = call ptr @malloc(i64 %t529) %t531 = getelementptr inbounds %LSlice, ptr %t530, i32 0, i32 0 store ptr null, ptr %t531 %t532 = getelementptr inbounds %LSlice, ptr %t530, i32 0, i32 1 store i32 0, ptr %t532 %t533 = getelementptr inbounds %LSlice, ptr %t530, i32 0, i32 2 store i32 0, ptr %t533 store ptr %t530, ptr @g_g_gen_fns %t534 = getelementptr %LSlice, ptr null, i32 1 %t535 = ptrtoint ptr %t534 to i64 %t536 = call ptr @malloc(i64 %t535) %t537 = getelementptr inbounds %LSlice, ptr %t536, i32 0, i32 0 store ptr null, ptr %t537 %t538 = getelementptr inbounds %LSlice, ptr %t536, i32 0, i32 1 store i32 0, ptr %t538 %t539 = getelementptr inbounds %LSlice, ptr %t536, i32 0, i32 2 store i32 0, ptr %t539 store ptr %t536, ptr @g_g_gen_out %t540 = getelementptr %LSlice, ptr null, i32 1 %t541 = ptrtoint ptr %t540 to i64 %t542 = call ptr @malloc(i64 %t541) %t543 = getelementptr inbounds %LSlice, ptr %t542, i32 0, i32 0 store ptr null, ptr %t543 %t544 = getelementptr inbounds %LSlice, ptr %t542, i32 0, i32 1 store i32 0, ptr %t544 %t545 = getelementptr inbounds %LSlice, ptr %t542, i32 0, i32 2 store i32 0, ptr %t545 store ptr %t542, ptr @g_g_gen_work ret void } define i32 @main(i32 %argc, ptr %argv) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 %t6 = alloca i32 %t7 = alloca ptr %t8 = alloca ptr %t9 = alloca i32 %t16 = alloca ptr %t17 = alloca i32 %t27 = alloca ptr %t146 = alloca ptr %t171 = alloca ptr %t185 = alloca i32 %t203 = alloca i32 %t213 = alloca i32 %t222 = alloca i32 %t239 = alloca i32 %t268 = alloca i32 %t269 = alloca i32 %t288 = alloca ptr %t298 = alloca ptr %t305 = alloca ptr %t307 = alloca ptr %t312 = alloca ptr %t319 = alloca ptr %t329 = alloca ptr %t339 = alloca ptr %t349 = alloca ptr %t384 = alloca i32 %t415 = alloca ptr %t423 = alloca ptr %t435 = alloca ptr %t438 = alloca ptr %t441 = alloca ptr %t459 = alloca ptr %t462 = alloca ptr %t475 = alloca ptr %t478 = alloca ptr %t490 = alloca i32 %t501 = alloca i32 %t530 = alloca ptr %t538 = alloca i32 %t559 = alloca i32 store i32 %argc, ptr @L_argc store ptr %argv, ptr @L_argv store i32 0, ptr %retval call void @L_init_globals() store ptr null, ptr %t0 store ptr null, ptr %t1 store i32 0, ptr %t2 store i32 0, ptr %t3 store i32 0, ptr %t4 store i32 0, ptr %t5 store i32 0, ptr %t6 store ptr null, ptr %t7 store ptr null, ptr %t8 store i32 0, ptr %t9 %t10 = getelementptr %LSlice, ptr null, i32 1 %t11 = ptrtoint ptr %t10 to i64 %t12 = call ptr @malloc(i64 %t11) %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 store ptr null, ptr %t13 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 store i32 0, ptr %t14 %t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 2 store i32 0, ptr %t15 store ptr %t12, ptr %t16 store i32 0, ptr @g_g_coverage store i32 1, ptr %t17 br label %wcond0 wcond0: %t18 = load i32, ptr %t17 %t19 = load i32, ptr @L_argc %t20 = icmp slt i32 %t18, %t19 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %wbody1, label %wend2 wbody1: %t23 = load i32, ptr %t17 %t24 = load ptr, ptr @L_argv %t25 = getelementptr ptr, ptr %t24, i32 %t23 %t26 = load ptr, ptr %t25 store ptr %t26, ptr %t27 %t28 = load ptr, ptr %t27 %t29 = call i32 @lp_str_eq(ptr %t28, ptr @.str12847) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then3, label %else4 then3: call void @fn_show_version() br label %ifend5 else4: %t31 = load ptr, ptr %t27 %t32 = call i32 @lp_str_eq(ptr %t31, ptr @.str12848) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then6, label %else7 then6: store i32 1, ptr %t2 br label %ifend8 else7: %t34 = load ptr, ptr %t27 %t35 = call i32 @lp_str_eq(ptr %t34, ptr @.str12849) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then9, label %else10 then9: store i32 2, ptr %t2 br label %ifend11 else10: %t37 = load ptr, ptr %t27 %t38 = call i32 @lp_str_eq(ptr %t37, ptr @.str12850) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then12, label %else13 then12: store i32 1, ptr %t3 br label %ifend14 else13: %t40 = load ptr, ptr %t27 %t41 = call i32 @lp_str_eq(ptr %t40, ptr @.str12851) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then15, label %else16 then15: store i32 1, ptr @g_g_unsafe_all br label %ifend17 else16: %t43 = load ptr, ptr %t27 %t44 = call i32 @lp_str_eq(ptr %t43, ptr @.str12852) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then18, label %else19 then18: store i32 1, ptr @g_g_emit_module store i32 1, ptr %t3 br label %ifend20 else19: %t46 = load ptr, ptr %t27 %t47 = call i32 @lp_str_eq(ptr %t46, ptr @.str12853) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then21, label %else22 then21: store i32 1, ptr %t4 br label %ifend23 else22: %t49 = load ptr, ptr %t27 %t50 = call i32 @lp_str_eq(ptr %t49, ptr @.str12854) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then24, label %else25 then24: store i32 1, ptr %t5 br label %ifend26 else25: %t52 = load ptr, ptr %t27 %t53 = call i32 @lp_str_eq(ptr %t52, ptr @.str12855) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then27, label %else28 then27: store i32 1, ptr %t6 br label %ifend29 else28: %t55 = load ptr, ptr %t27 %t56 = call i32 @lp_str_eq(ptr %t55, ptr @.str12856) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then30, label %else31 then30: store i32 1, ptr @g_g_coverage br label %ifend32 else31: %t58 = load ptr, ptr %t27 %t59 = call i32 @lp_str_eq(ptr %t58, ptr @.str12857) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then33, label %else34 then33: %t61 = load i32, ptr %t17 %t62 = add i32 %t61, 1 store i32 %t62, ptr %t17 %t63 = load i32, ptr %t17 %t64 = load i32, ptr @L_argc %t65 = icmp slt i32 %t63, %t64 %t66 = zext i1 %t65 to i32 %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then36, label %ifend38 then36: %t68 = load i32, ptr %t17 %t69 = load ptr, ptr @L_argv %t70 = getelementptr ptr, ptr %t69, i32 %t68 %t71 = load ptr, ptr %t70 store ptr %t71, ptr %t7 br label %ifend38 ifend38: br label %ifend35 else34: %t72 = load ptr, ptr %t27 %t73 = call i32 @lp_str_eq(ptr %t72, ptr @.str12858) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then39, label %else40 then39: store i32 1, ptr %t9 br label %ifend41 else40: %t75 = load ptr, ptr %t27 %t76 = call i32 @lp_str_eq(ptr %t75, ptr @.str12859) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then42, label %else43 then42: %t78 = load i32, ptr %t17 %t79 = add i32 %t78, 1 store i32 %t79, ptr %t17 %t80 = load i32, ptr %t17 %t81 = load i32, ptr @L_argc %t82 = icmp slt i32 %t80, %t81 %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then45, label %ifend47 then45: %t85 = load i32, ptr %t17 %t86 = load ptr, ptr @L_argv %t87 = getelementptr ptr, ptr %t86, i32 %t85 %t88 = load ptr, ptr %t87 store ptr %t88, ptr %t8 br label %ifend47 ifend47: br label %ifend44 else43: %t89 = load ptr, ptr %t27 %t90 = call i32 @lp_str_eq(ptr %t89, ptr @.str12860) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then48, label %else49 then48: %t92 = load i32, ptr %t17 %t93 = add i32 %t92, 1 store i32 %t93, ptr %t17 %t94 = load i32, ptr %t17 %t95 = load i32, ptr @L_argc %t96 = icmp slt i32 %t94, %t95 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then51, label %ifend53 then51: %t99 = load ptr, ptr %t16 %t100 = load i32, ptr %t17 %t101 = load ptr, ptr @L_argv %t102 = getelementptr ptr, ptr %t101, i32 %t100 %t103 = load ptr, ptr %t102 %t104 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t105 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 2 %t106 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 0 %t107 = load i32, ptr %t104 %t108 = load i32, ptr %t105 %t109 = icmp sge i32 %t107, %t108 br i1 %t109, label %grow54, label %put55 grow54: %t110 = mul i32 %t108, 2 %t111 = icmp eq i32 %t108, 0 %t112 = select i1 %t111, i32 8, i32 %t110 %t113 = getelementptr ptr, ptr null, i32 1 %t114 = ptrtoint ptr %t113 to i64 %t115 = zext i32 %t112 to i64 %t116 = mul i64 %t115, %t114 %t117 = load ptr, ptr %t106 %t118 = call ptr @realloc(ptr %t117, i64 %t116) store ptr %t118, ptr %t106 store i32 %t112, ptr %t105 br label %put55 put55: %t119 = load ptr, ptr %t106 %t120 = getelementptr inbounds ptr, ptr %t119, i32 %t107 store ptr %t103, ptr %t120 %t121 = add i32 %t107, 1 store i32 %t121, ptr %t104 br label %ifend53 ifend53: br label %ifend50 else49: %t122 = load ptr, ptr %t27 %t123 = call i32 @lp_str_eq(ptr %t122, ptr @.str12861) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then56, label %else57 then56: %t125 = load i32, ptr %t17 %t126 = add i32 %t125, 1 store i32 %t126, ptr %t17 %t127 = load i32, ptr %t17 %t128 = load i32, ptr @L_argc %t129 = icmp slt i32 %t127, %t128 %t130 = zext i1 %t129 to i32 %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %then59, label %ifend61 then59: %t132 = load i32, ptr %t17 %t133 = load ptr, ptr @L_argv %t134 = getelementptr ptr, ptr %t133, i32 %t132 %t135 = load ptr, ptr %t134 store ptr %t135, ptr %t1 br label %ifend61 ifend61: br label %ifend58 else57: %t136 = load ptr, ptr %t27 %t137 = getelementptr inbounds i8, ptr %t136, i32 0 %t138 = load i8, ptr %t137 %t139 = zext i8 %t138 to i32 %t140 = icmp eq i32 %t139, 45 %t141 = zext i1 %t140 to i32 %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then62, label %else63 then62: %t143 = load ptr, ptr %t27 %t144 = call ptr @lp_str_concat(ptr @.str12862, ptr %t143) %t145 = call ptr @lp_str_concat(ptr %t144, ptr @.str12863) store ptr %t145, ptr %t146 %t147 = load ptr, ptr @__stderrp %t148 = load ptr, ptr %t146 %t149 = load ptr, ptr %t146 %t150 = call i64 @strlen(ptr %t149) %t151 = trunc i64 %t150 to i32 %t152 = zext i32 %t151 to i64 %t153 = call i64 @fwrite(ptr %t148, i64 1, i64 %t152, ptr %t147) %t154 = trunc i64 %t153 to i32 br label %ifend64 else63: %t155 = load ptr, ptr %t27 store ptr %t155, ptr %t0 br label %ifend64 ifend64: br label %ifend58 ifend58: br label %ifend50 ifend50: br label %ifend44 ifend44: br label %ifend41 ifend41: br label %ifend35 ifend35: br label %ifend32 ifend32: br label %ifend29 ifend29: br label %ifend26 ifend26: br label %ifend23 ifend23: br label %ifend20 ifend20: br label %ifend17 ifend17: br label %ifend14 ifend14: br label %ifend11 ifend11: br label %ifend8 ifend8: br label %ifend5 ifend5: %t156 = load i32, ptr %t17 %t157 = add i32 %t156, 1 store i32 %t157, ptr %t17 br label %wcond0 wend2: %t158 = load ptr, ptr %t0 %t159 = icmp eq ptr %t158, null %t160 = zext i1 %t159 to i32 %t161 = icmp ne i32 %t160, 0 br i1 %t161, label %then65, label %ifend67 then65: call void @fn_die(ptr @.str12864) br label %ifend67 ifend67: %t162 = load ptr, ptr %t7 %t163 = icmp ne ptr %t162, null %t164 = zext i1 %t163 to i32 %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then68, label %else69 then68: %t166 = load ptr, ptr %t7 %t167 = call i32 @fn_has_sub(ptr %t166, ptr @.str12865) store i32 %t167, ptr @g_g_target_win br label %ifend70 else69: %t168 = call i32 @fn_host_is_windows() store i32 %t168, ptr @g_g_target_win br label %ifend70 ifend70: %t169 = load ptr, ptr %t0 %t170 = call ptr @fn_read_file(ptr %t169) store ptr %t170, ptr %t171 %t172 = load ptr, ptr %t171 %t173 = icmp eq ptr %t172, null %t174 = zext i1 %t173 to i32 %t175 = icmp ne i32 %t174, 0 br i1 %t175, label %then71, label %ifend73 then71: call void @fn_die(ptr @.str12866) br label %ifend73 ifend73: %t176 = load ptr, ptr %t0 %t177 = call ptr @fn_dir_of(ptr %t176) store ptr %t177, ptr @g_cur_dir %t178 = load ptr, ptr %t0 %t179 = call ptr @fn_base_name(ptr %t178) store ptr %t179, ptr @g_g_src_name %t180 = load ptr, ptr %t0 store ptr %t180, ptr @g_g_parse_file %t181 = load ptr, ptr %t171 call void @fn_lex(ptr %t181) call void @fn_parse_program() %t182 = load ptr, ptr @g_prog %t183 = getelementptr inbounds %LSlice, ptr %t182, i32 0, i32 1 %t184 = load i32, ptr %t183 store i32 %t184, ptr @g_g_prog_user_end %t186 = load ptr, ptr %t8 %t187 = icmp ne ptr %t186, null %t188 = zext i1 %t187 to i32 %t189 = icmp ne i32 %t188, 0 %t190 = zext i1 %t189 to i32 store i32 %t190, ptr %t185 br i1 %t189, label %sc74, label %scend75 sc74: %t191 = load ptr, ptr %t8 %t192 = call i64 @strlen(ptr %t191) %t193 = trunc i64 %t192 to i32 %t194 = icmp sgt i32 %t193, 0 %t195 = zext i1 %t194 to i32 %t196 = icmp ne i32 %t195, 0 %t197 = zext i1 %t196 to i32 store i32 %t197, ptr %t185 br label %scend75 scend75: %t198 = load i32, ptr %t185 %t199 = icmp ne i32 %t198, 0 br i1 %t199, label %then76, label %ifend78 then76: %t200 = load ptr, ptr %t8 store ptr %t200, ptr @g_g_game_name br label %ifend78 ifend78: %t201 = load i32, ptr %t4 %t202 = icmp ne i32 %t201, 0 br i1 %t202, label %then79, label %ifend81 then79: call void @exit(i32 0) unreachable ifend81: call void @fn_maybe_splice_runtime() call void @fn_ui_register_gotos() %t204 = load i32, ptr %t6 %t205 = icmp ne i32 %t204, 0 %t206 = zext i1 %t205 to i32 store i32 %t206, ptr %t203 br i1 %t205, label %scend83, label %sc82 sc82: %t207 = load ptr, ptr %t1 %t208 = icmp ne ptr %t207, null %t209 = zext i1 %t208 to i32 %t210 = icmp ne i32 %t209, 0 %t211 = zext i1 %t210 to i32 store i32 %t211, ptr %t203 br label %scend83 scend83: %t212 = load i32, ptr %t203 store i32 %t212, ptr %t213 %t214 = load i32, ptr %t2 %t215 = icmp eq i32 %t214, 1 %t216 = zext i1 %t215 to i32 %t217 = icmp ne i32 %t216, 0 br i1 %t217, label %then84, label %else85 then84: store i32 1, ptr @g_g_windowed br label %ifend86 else85: %t218 = load i32, ptr %t2 %t219 = icmp eq i32 %t218, 2 %t220 = zext i1 %t219 to i32 %t221 = icmp ne i32 %t220, 0 br i1 %t221, label %then87, label %else88 then87: store i32 0, ptr @g_g_windowed br label %ifend89 else88: %t223 = load i32, ptr %t213 %t224 = icmp ne i32 %t223, 0 %t225 = zext i1 %t224 to i32 store i32 %t225, ptr %t222 br i1 %t224, label %sc90, label %scend91 sc90: %t226 = call i32 @fn_has_systems() %t227 = icmp ne i32 %t226, 0 %t228 = zext i1 %t227 to i32 store i32 %t228, ptr %t222 br label %scend91 scend91: %t229 = load i32, ptr %t222 store i32 %t229, ptr @g_g_windowed br label %ifend89 ifend89: br label %ifend86 ifend86: store i32 0, ptr @g_g_parsing call void @fn_privates_rename() call void @fn_check_duplicate_fns() call void @fn_check_duplicate_decls() call void @fn_check_program() call void @fn_emit_program() call void @fn_deps_flush() %t230 = load i32, ptr %t3 %t231 = icmp ne i32 %t230, 0 br i1 %t231, label %then92, label %ifend94 then92: %t232 = load ptr, ptr %t1 %t233 = call i32 @fn_ir_flush(ptr %t232) br label %ret ifend94: %t234 = load i32, ptr %t213 %t235 = icmp eq i32 %t234, 0 %t236 = zext i1 %t235 to i32 %t237 = icmp ne i32 %t236, 0 br i1 %t237, label %then95, label %ifend97 then95: %t238 = call i32 @fn_ir_flush(ptr null) br label %ret ifend97: %t240 = load i32, ptr %t6 %t241 = icmp ne i32 %t240, 0 %t242 = zext i1 %t241 to i32 store i32 %t242, ptr %t239 br i1 %t241, label %sc98, label %scend99 sc98: %t243 = load ptr, ptr %t1 %t244 = icmp eq ptr %t243, null %t245 = zext i1 %t244 to i32 %t246 = icmp ne i32 %t245, 0 %t247 = zext i1 %t246 to i32 store i32 %t247, ptr %t239 br label %scend99 scend99: %t248 = load i32, ptr %t239 %t249 = icmp ne i32 %t248, 0 br i1 %t249, label %then100, label %ifend102 then100: %t250 = call i32 @fn_host_is_windows() %t251 = icmp ne i32 %t250, 0 br i1 %t251, label %then103, label %else104 then103: %t252 = call ptr @fn_getenv_or(ptr @.str12867, ptr @.str12868) %t253 = call ptr @fn_fwd_slashes(ptr %t252) %t254 = call ptr @lp_str_concat(ptr %t253, ptr @.str12869) %t255 = load ptr, ptr %t0 %t256 = call ptr @fn_base_name(ptr %t255) %t257 = call ptr @fn_strip_ludic(ptr %t256) %t258 = call ptr @lp_str_concat(ptr %t254, ptr %t257) store ptr %t258, ptr %t1 br label %ifend105 else104: %t259 = load ptr, ptr %t0 %t260 = call ptr @fn_base_name(ptr %t259) %t261 = call ptr @fn_strip_ludic(ptr %t260) %t262 = call ptr @lp_str_concat(ptr @.str12870, ptr %t261) store ptr %t262, ptr %t1 br label %ifend105 ifend105: br label %ifend102 ifend102: %t263 = load i32, ptr @g_g_target_win %t264 = icmp ne i32 %t263, 0 br i1 %t264, label %then106, label %ifend108 then106: %t265 = load ptr, ptr %t1 %t266 = call i64 @strlen(ptr %t265) %t267 = trunc i64 %t266 to i32 store i32 %t267, ptr %t268 store i32 0, ptr %t269 %t270 = load i32, ptr %t268 %t271 = icmp sge i32 %t270, 4 %t272 = zext i1 %t271 to i32 %t273 = icmp ne i32 %t272, 0 br i1 %t273, label %then109, label %ifend111 then109: %t274 = load ptr, ptr %t1 %t275 = load i32, ptr %t268 %t276 = sub i32 %t275, 4 %t277 = load i32, ptr %t268 %t278 = call ptr @lp_str_slice(ptr %t274, i32 %t276, i32 %t277) %t279 = call i32 @lp_str_eq(ptr %t278, ptr @.str12871) store i32 %t279, ptr %t269 br label %ifend111 ifend111: %t280 = load i32, ptr %t269 %t281 = icmp eq i32 %t280, 0 %t282 = zext i1 %t281 to i32 %t283 = icmp ne i32 %t282, 0 br i1 %t283, label %then112, label %ifend114 then112: %t284 = load ptr, ptr %t1 %t285 = call ptr @lp_str_concat(ptr %t284, ptr @.str12872) store ptr %t285, ptr %t1 br label %ifend114 ifend114: br label %ifend108 ifend108: %t286 = load ptr, ptr %t1 %t287 = call ptr @fn_dir_of(ptr %t286) store ptr %t287, ptr %t288 %t289 = load ptr, ptr %t288 %t290 = call i64 @strlen(ptr %t289) %t291 = trunc i64 %t290 to i32 %t292 = icmp sgt i32 %t291, 0 %t293 = zext i1 %t292 to i32 %t294 = icmp ne i32 %t293, 0 br i1 %t294, label %then115, label %ifend117 then115: %t295 = load ptr, ptr %t288 call void @fn_make_dir(ptr %t295) br label %ifend117 ifend117: %t296 = load ptr, ptr %t1 %t297 = call ptr @lp_str_concat(ptr %t296, ptr @.str12873) store ptr %t297, ptr %t298 %t299 = load ptr, ptr %t298 %t300 = call i32 @fn_ir_flush(ptr %t299) %t301 = icmp eq i32 %t300, 0 %t302 = zext i1 %t301 to i32 %t303 = icmp ne i32 %t302, 0 br i1 %t303, label %then118, label %ifend120 then118: call void @fn_die(ptr @.str12874) br label %ifend120 ifend120: %t304 = call ptr @fn_find_cc() store ptr %t304, ptr %t305 %t306 = call ptr @fn_ludic_home() store ptr %t306, ptr %t307 %t308 = load ptr, ptr %t305 %t309 = call ptr @lp_str_concat(ptr %t308, ptr @.str12875) %t310 = load ptr, ptr %t298 %t311 = call ptr @lp_str_concat(ptr %t309, ptr %t310) store ptr %t311, ptr %t312 %t313 = load i32, ptr @g_g_target_win %t314 = icmp ne i32 %t313, 0 br i1 %t314, label %then121, label %else122 then121: %t315 = load i32, ptr @g_g_windowed %t316 = icmp ne i32 %t315, 0 br i1 %t316, label %then124, label %ifend126 then124: %t317 = load ptr, ptr %t307 %t318 = call ptr @fn_join_path(ptr %t317, ptr @.str12876) store ptr %t318, ptr %t319 %t320 = load ptr, ptr %t312 %t321 = call ptr @lp_str_concat(ptr %t320, ptr @.str12877) %t322 = load ptr, ptr %t319 %t323 = call ptr @lp_str_concat(ptr %t321, ptr %t322) %t324 = call ptr @lp_str_concat(ptr %t323, ptr @.str12878) store ptr %t324, ptr %t312 %t325 = load i32, ptr @g_g_uses_audio %t326 = icmp ne i32 %t325, 0 br i1 %t326, label %then127, label %ifend129 then127: %t327 = load ptr, ptr %t307 %t328 = call ptr @fn_join_path(ptr %t327, ptr @.str12879) store ptr %t328, ptr %t329 %t330 = load ptr, ptr %t312 %t331 = call ptr @lp_str_concat(ptr %t330, ptr @.str12880) %t332 = load ptr, ptr %t329 %t333 = call ptr @lp_str_concat(ptr %t331, ptr %t332) %t334 = call ptr @lp_str_concat(ptr %t333, ptr @.str12881) store ptr %t334, ptr %t312 br label %ifend129 ifend129: br label %ifend126 ifend126: br label %ifend123 else122: %t335 = load i32, ptr @g_g_windowed %t336 = icmp ne i32 %t335, 0 br i1 %t336, label %then130, label %ifend132 then130: %t337 = load ptr, ptr %t307 %t338 = call ptr @fn_join_path(ptr %t337, ptr @.str12882) store ptr %t338, ptr %t339 %t340 = load ptr, ptr %t312 %t341 = call ptr @lp_str_concat(ptr %t340, ptr @.str12883) %t342 = load ptr, ptr %t339 %t343 = call ptr @lp_str_concat(ptr %t341, ptr %t342) %t344 = call ptr @lp_str_concat(ptr %t343, ptr @.str12884) store ptr %t344, ptr %t312 %t345 = load i32, ptr @g_g_uses_audio %t346 = icmp ne i32 %t345, 0 br i1 %t346, label %then133, label %ifend135 then133: %t347 = load ptr, ptr %t307 %t348 = call ptr @fn_join_path(ptr %t347, ptr @.str12885) store ptr %t348, ptr %t349 %t350 = load ptr, ptr %t312 %t351 = call ptr @lp_str_concat(ptr %t350, ptr @.str12886) %t352 = load ptr, ptr %t349 %t353 = call ptr @lp_str_concat(ptr %t351, ptr %t352) %t354 = call ptr @lp_str_concat(ptr %t353, ptr @.str12887) store ptr %t354, ptr %t312 br label %ifend135 ifend135: br label %ifend132 ifend132: br label %ifend123 ifend123: %t355 = load i32, ptr @g_g_uses_jobs %t356 = icmp ne i32 %t355, 0 br i1 %t356, label %then136, label %ifend138 then136: %t357 = load i32, ptr @g_g_target_win %t358 = icmp ne i32 %t357, 0 br i1 %t358, label %then139, label %else140 then139: %t359 = load ptr, ptr %t312 %t360 = call ptr @lp_str_concat(ptr %t359, ptr @.str12888) %t361 = load ptr, ptr %t307 %t362 = call ptr @fn_join_path(ptr %t361, ptr @.str12889) %t363 = call ptr @lp_str_concat(ptr %t360, ptr %t362) store ptr %t363, ptr %t312 br label %ifend141 else140: %t364 = load ptr, ptr %t312 %t365 = call ptr @lp_str_concat(ptr %t364, ptr @.str12890) %t366 = load ptr, ptr %t307 %t367 = call ptr @fn_join_path(ptr %t366, ptr @.str12891) %t368 = call ptr @lp_str_concat(ptr %t365, ptr %t367) store ptr %t368, ptr %t312 br label %ifend141 ifend141: br label %ifend138 ifend138: %t369 = load i32, ptr @g_g_uses_udp %t370 = icmp ne i32 %t369, 0 br i1 %t370, label %then142, label %ifend144 then142: %t371 = load i32, ptr @g_g_target_win %t372 = icmp ne i32 %t371, 0 br i1 %t372, label %then145, label %else146 then145: %t373 = load ptr, ptr %t312 %t374 = call ptr @lp_str_concat(ptr %t373, ptr @.str12892) %t375 = load ptr, ptr %t307 %t376 = call ptr @fn_join_path(ptr %t375, ptr @.str12893) %t377 = call ptr @lp_str_concat(ptr %t374, ptr %t376) %t378 = call ptr @lp_str_concat(ptr %t377, ptr @.str12894) store ptr %t378, ptr %t312 br label %ifend147 else146: %t379 = load ptr, ptr %t312 %t380 = call ptr @lp_str_concat(ptr %t379, ptr @.str12895) %t381 = load ptr, ptr %t307 %t382 = call ptr @fn_join_path(ptr %t381, ptr @.str12896) %t383 = call ptr @lp_str_concat(ptr %t380, ptr %t382) store ptr %t383, ptr %t312 br label %ifend147 ifend147: br label %ifend144 ifend144: %t385 = load i32, ptr @g_g_target_win %t386 = icmp ne i32 %t385, 0 %t387 = zext i1 %t386 to i32 store i32 %t387, ptr %t384 br i1 %t386, label %sc148, label %scend149 sc148: %t388 = load i32, ptr @g_g_uses_cryptort %t389 = icmp ne i32 %t388, 0 %t390 = zext i1 %t389 to i32 store i32 %t390, ptr %t384 br label %scend149 scend149: %t391 = load i32, ptr %t384 %t392 = icmp ne i32 %t391, 0 br i1 %t392, label %then150, label %ifend152 then150: %t393 = load ptr, ptr %t312 %t394 = call ptr @lp_str_concat(ptr %t393, ptr @.str12897) store ptr %t394, ptr %t312 br label %ifend152 ifend152: %t395 = load i32, ptr @g_g_uses_process %t396 = icmp ne i32 %t395, 0 br i1 %t396, label %then153, label %ifend155 then153: %t397 = load i32, ptr @g_g_target_win %t398 = icmp ne i32 %t397, 0 br i1 %t398, label %then156, label %else157 then156: %t399 = load ptr, ptr %t312 %t400 = call ptr @lp_str_concat(ptr %t399, ptr @.str12898) %t401 = load ptr, ptr %t307 %t402 = call ptr @fn_join_path(ptr %t401, ptr @.str12899) %t403 = call ptr @lp_str_concat(ptr %t400, ptr %t402) store ptr %t403, ptr %t312 br label %ifend158 else157: %t404 = load ptr, ptr %t312 %t405 = call ptr @lp_str_concat(ptr %t404, ptr @.str12900) %t406 = load ptr, ptr %t307 %t407 = call ptr @fn_join_path(ptr %t406, ptr @.str12901) %t408 = call ptr @lp_str_concat(ptr %t405, ptr %t407) store ptr %t408, ptr %t312 br label %ifend158 ifend158: br label %ifend155 ifend155: %t409 = load i32, ptr @g_g_uses_http %t410 = icmp ne i32 %t409, 0 br i1 %t410, label %then159, label %ifend161 then159: %t411 = load i32, ptr @g_g_target_win %t412 = icmp ne i32 %t411, 0 br i1 %t412, label %then162, label %else163 then162: %t413 = load ptr, ptr %t307 %t414 = call ptr @fn_join_path(ptr %t413, ptr @.str12902) store ptr %t414, ptr %t415 %t416 = load ptr, ptr %t312 %t417 = call ptr @lp_str_concat(ptr %t416, ptr @.str12903) %t418 = load ptr, ptr %t415 %t419 = call ptr @lp_str_concat(ptr %t417, ptr %t418) %t420 = call ptr @lp_str_concat(ptr %t419, ptr @.str12904) store ptr %t420, ptr %t312 br label %ifend164 else163: %t421 = load ptr, ptr %t307 %t422 = call ptr @fn_join_path(ptr %t421, ptr @.str12905) store ptr %t422, ptr %t423 %t424 = load ptr, ptr %t312 %t425 = call ptr @lp_str_concat(ptr %t424, ptr @.str12906) %t426 = load ptr, ptr %t423 %t427 = call ptr @lp_str_concat(ptr %t425, ptr %t426) %t428 = call ptr @lp_str_concat(ptr %t427, ptr @.str12907) store ptr %t428, ptr %t312 br label %ifend164 ifend164: br label %ifend161 ifend161: %t429 = load i32, ptr @g_g_uses_gl %t430 = icmp ne i32 %t429, 0 br i1 %t430, label %then165, label %ifend167 then165: %t431 = load i32, ptr @g_g_target_win %t432 = icmp ne i32 %t431, 0 br i1 %t432, label %then168, label %else169 then168: %t433 = load ptr, ptr %t307 %t434 = call ptr @fn_join_path(ptr %t433, ptr @.str12908) store ptr %t434, ptr %t435 %t436 = load ptr, ptr %t307 %t437 = call ptr @fn_join_path(ptr %t436, ptr @.str12909) store ptr %t437, ptr %t438 %t439 = load ptr, ptr %t307 %t440 = call ptr @fn_join_path(ptr %t439, ptr @.str12910) store ptr %t440, ptr %t441 %t442 = load i32, ptr @g_g_windowed %t443 = icmp ne i32 %t442, 0 br i1 %t443, label %then171, label %ifend173 then171: %t444 = load ptr, ptr %t307 %t445 = call ptr @fn_join_path(ptr %t444, ptr @.str12911) store ptr %t445, ptr %t441 br label %ifend173 ifend173: %t446 = load ptr, ptr %t312 %t447 = call ptr @lp_str_concat(ptr %t446, ptr @.str12912) %t448 = load ptr, ptr %t435 %t449 = call ptr @lp_str_concat(ptr %t447, ptr %t448) %t450 = call ptr @lp_str_concat(ptr %t449, ptr @.str12913) %t451 = load ptr, ptr %t438 %t452 = call ptr @lp_str_concat(ptr %t450, ptr %t451) %t453 = call ptr @lp_str_concat(ptr %t452, ptr @.str12914) %t454 = load ptr, ptr %t441 %t455 = call ptr @lp_str_concat(ptr %t453, ptr %t454) %t456 = call ptr @lp_str_concat(ptr %t455, ptr @.str12915) store ptr %t456, ptr %t312 br label %ifend170 else169: %t457 = load ptr, ptr %t307 %t458 = call ptr @fn_join_path(ptr %t457, ptr @.str12916) store ptr %t458, ptr %t459 %t460 = load ptr, ptr %t307 %t461 = call ptr @fn_join_path(ptr %t460, ptr @.str12917) store ptr %t461, ptr %t462 %t463 = load ptr, ptr %t312 %t464 = call ptr @lp_str_concat(ptr %t463, ptr @.str12918) %t465 = load ptr, ptr %t459 %t466 = call ptr @lp_str_concat(ptr %t464, ptr %t465) %t467 = call ptr @lp_str_concat(ptr %t466, ptr @.str12919) %t468 = load ptr, ptr %t462 %t469 = call ptr @lp_str_concat(ptr %t467, ptr %t468) %t470 = call ptr @lp_str_concat(ptr %t469, ptr @.str12920) store ptr %t470, ptr %t312 br label %ifend170 ifend170: br label %ifend167 ifend167: %t471 = load i32, ptr @g_g_uses_vk %t472 = icmp ne i32 %t471, 0 br i1 %t472, label %then174, label %ifend176 then174: %t473 = load ptr, ptr %t307 %t474 = call ptr @fn_join_path(ptr %t473, ptr @.str12921) store ptr %t474, ptr %t475 %t476 = load ptr, ptr %t307 %t477 = call ptr @fn_join_path(ptr %t476, ptr @.str12922) store ptr %t477, ptr %t478 %t479 = load i32, ptr @g_g_target_win %t480 = icmp ne i32 %t479, 0 br i1 %t480, label %then177, label %ifend179 then177: %t481 = load ptr, ptr %t307 %t482 = call ptr @fn_join_path(ptr %t481, ptr @.str12923) store ptr %t482, ptr %t478 br label %ifend179 ifend179: %t483 = load ptr, ptr %t312 %t484 = call ptr @lp_str_concat(ptr %t483, ptr @.str12924) %t485 = load ptr, ptr %t475 %t486 = call ptr @lp_str_concat(ptr %t484, ptr %t485) %t487 = call ptr @lp_str_concat(ptr %t486, ptr @.str12925) %t488 = load ptr, ptr %t478 %t489 = call ptr @lp_str_concat(ptr %t487, ptr %t488) store ptr %t489, ptr %t312 br label %ifend176 ifend176: %t491 = load i32, ptr @g_g_target_win %t492 = icmp ne i32 %t491, 0 %t493 = zext i1 %t492 to i32 store i32 %t493, ptr %t490 br i1 %t492, label %sc180, label %scend181 sc180: %t494 = load i32, ptr %t9 %t495 = icmp ne i32 %t494, 0 %t496 = zext i1 %t495 to i32 store i32 %t496, ptr %t490 br label %scend181 scend181: %t497 = load i32, ptr %t490 %t498 = icmp ne i32 %t497, 0 br i1 %t498, label %then182, label %ifend184 then182: %t499 = load ptr, ptr %t312 %t500 = call ptr @lp_str_concat(ptr %t499, ptr @.str12926) store ptr %t500, ptr %t312 br label %ifend184 ifend184: store i32 0, ptr %t501 br label %wcond185 wcond185: %t502 = load i32, ptr %t501 %t503 = load ptr, ptr %t16 %t504 = getelementptr inbounds %LSlice, ptr %t503, i32 0, i32 1 %t505 = load i32, ptr %t504 %t506 = icmp slt i32 %t502, %t505 %t507 = zext i1 %t506 to i32 %t508 = icmp ne i32 %t507, 0 br i1 %t508, label %wbody186, label %wend187 wbody186: %t509 = load ptr, ptr %t312 %t510 = call ptr @lp_str_concat(ptr %t509, ptr @.str12927) %t511 = load ptr, ptr %t16 %t512 = load i32, ptr %t501 %t513 = getelementptr inbounds %LSlice, ptr %t511, i32 0, i32 0 %t514 = load ptr, ptr %t513 %t515 = getelementptr inbounds %LSlice, ptr %t511, i32 0, i32 1 %t516 = load i32, ptr %t515 %t517 = icmp ult i32 %t512, %t516 br i1 %t517, label %ixok188, label %ixbad189 ixbad189: %t518 = load ptr, ptr @__stderrp call i32 (ptr, ptr, ...) @fprintf(ptr %t518, ptr @.fmt_bounds, ptr @.str12928, i32 %t512, i32 %t516) call void @exit(i32 1) unreachable ixok188: %t519 = getelementptr inbounds ptr, ptr %t514, i32 %t512 %t520 = load ptr, ptr %t519 %t521 = call ptr @lp_str_concat(ptr %t510, ptr %t520) %t522 = call ptr @lp_str_concat(ptr %t521, ptr @.str12929) store ptr %t522, ptr %t312 %t523 = load i32, ptr %t501 %t524 = add i32 %t523, 1 store i32 %t524, ptr %t501 br label %wcond185 wend187: %t525 = load ptr, ptr %t312 %t526 = call ptr @lp_str_concat(ptr %t525, ptr @.str12930) %t527 = load ptr, ptr %t1 %t528 = call ptr @lp_str_concat(ptr %t526, ptr %t527) store ptr %t528, ptr %t312 %t529 = load ptr, ptr %t312 store ptr %t529, ptr %t530 %t531 = call i32 @fn_host_is_windows() %t532 = icmp ne i32 %t531, 0 br i1 %t532, label %then190, label %ifend192 then190: %t533 = load ptr, ptr %t312 %t534 = call ptr @lp_str_concat(ptr @.str12931, ptr %t533) %t535 = call ptr @lp_str_concat(ptr %t534, ptr @.str12932) store ptr %t535, ptr %t530 br label %ifend192 ifend192: %t536 = load ptr, ptr %t530 %t537 = call i32 @system(ptr %t536) store i32 %t537, ptr %t538 %t539 = load i32, ptr %t5 %t540 = icmp eq i32 %t539, 0 %t541 = zext i1 %t540 to i32 %t542 = icmp ne i32 %t541, 0 br i1 %t542, label %then193, label %ifend195 then193: %t543 = load ptr, ptr %t298 call void @fn_remove_file(ptr %t543) br label %ifend195 ifend195: %t544 = load i32, ptr %t538 %t545 = icmp ne i32 %t544, 0 %t546 = zext i1 %t545 to i32 %t547 = icmp ne i32 %t546, 0 br i1 %t547, label %then196, label %ifend198 then196: call void @fn_die(ptr @.str12933) br label %ifend198 ifend198: %t548 = load i32, ptr %t6 %t549 = icmp ne i32 %t548, 0 br i1 %t549, label %then199, label %ifend201 then199: %t550 = call i32 @fn_host_is_windows() %t551 = icmp ne i32 %t550, 0 br i1 %t551, label %then202, label %ifend204 then202: %t552 = load ptr, ptr %t1 %t553 = call ptr @fn_win_path(ptr %t552) %t554 = call ptr @lp_str_concat(ptr @.str12934, ptr %t553) %t555 = call ptr @lp_str_concat(ptr %t554, ptr @.str12935) %t556 = call i32 @system(ptr %t555) call void @exit(i32 %t556) unreachable ifend204: %t557 = load ptr, ptr %t1 %t558 = call i32 @system(ptr %t557) store i32 %t558, ptr %t559 %t560 = load i32, ptr %t559 %t561 = lshr i32 %t560, 8 %t562 = and i32 %t561, 255 call void @exit(i32 %t562) unreachable ifend201: br label %ret ret: %t563 = load i32, ptr %retval ret i32 %t563 }