; Ludic (self-hosted) -> LLVM IR declare i32 @printf(ptr, ...) declare ptr @malloc(i64) declare ptr @realloc(ptr, i64) declare void @free(ptr) declare ptr @fopen(ptr, ptr) declare i64 @fread(ptr, i64, i64, ptr) declare i64 @fwrite(ptr, i64, i64, ptr) declare i32 @fseek(ptr, i64, i32) declare i64 @ftell(ptr) declare i32 @fclose(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 @strncmp(ptr, ptr, i64) declare ptr @strstr(ptr, ptr) declare i32 @atoi(ptr) declare i32 @getchar() declare i32 @putchar(i32) declare i64 @time(ptr) 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() @__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 } %Cmp_Tok = type { i32, ptr, i32, i32 } %Cmp_Val = type { 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_loaded_paths = internal global ptr null @g_cur_dir = internal global ptr null @g_g_uses_regex = 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_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_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_unicodert = internal global i32 0 @g_g_uses_fsrt = internal global i32 0 @g_g_uses_datert = internal global i32 0 @g_g_uses_expect = 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_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_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_cancel_addr = internal global ptr null @g_g_toggled_layers = 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_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 [28 x i8] c"ludicc(self): parse error: \00" @.str2 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3 = private unnamed_addr constant [20 x i8] c"expected identifier\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 [2 x i8] c"(\00" @.str7 = private unnamed_addr constant [2 x i8] c")\00" @.str8 = private unnamed_addr constant [2 x i8] c":\00" @.str9 = private unnamed_addr constant [2 x i8] c":\00" @.str10 = private unnamed_addr constant [2 x i8] c",\00" @.str11 = private unnamed_addr constant [2 x i8] c")\00" @.str12 = private unnamed_addr constant [2 x i8] c"+\00" @.str13 = private unnamed_addr constant [7 x i8] c"string\00" @.str14 = private unnamed_addr constant [2 x i8] c"(\00" @.str15 = private unnamed_addr constant [2 x i8] c")\00" @.str16 = private unnamed_addr constant [2 x i8] c":\00" @.str17 = private unnamed_addr constant [2 x i8] c",\00" @.str18 = private unnamed_addr constant [2 x i8] c")\00" @.str19 = private unnamed_addr constant [5 x i8] c"emit\00" @.str20 = private unnamed_addr constant [5 x i8] c"true\00" @.str21 = private unnamed_addr constant [6 x i8] c"false\00" @.str22 = private unnamed_addr constant [5 x i8] c"null\00" @.str23 = private unnamed_addr constant [4 x i8] c"new\00" @.str24 = private unnamed_addr constant [2 x i8] c"{\00" @.str25 = private unnamed_addr constant [2 x i8] c"(\00" @.str26 = private unnamed_addr constant [2 x i8] c")\00" @.str27 = private unnamed_addr constant [20 x i8] c"expected expression\00" @.str28 = private unnamed_addr constant [2 x i8] c".\00" @.str29 = private unnamed_addr constant [6 x i8] c"Regex\00" @.str30 = private unnamed_addr constant [6 x i8] c"Query\00" @.str31 = private unnamed_addr constant [8 x i8] c"Reflect\00" @.str32 = private unnamed_addr constant [6 x i8] c"Light\00" @.str33 = private unnamed_addr constant [2 x i8] c"[\00" @.str34 = private unnamed_addr constant [3 x i8] c"..\00" @.str35 = private unnamed_addr constant [2 x i8] c"]\00" @.str36 = private unnamed_addr constant [2 x i8] c"]\00" @.str37 = private unnamed_addr constant [2 x i8] c"(\00" @.str38 = private unnamed_addr constant [2 x i8] c"-\00" @.str39 = private unnamed_addr constant [2 x i8] c"-\00" @.str40 = private unnamed_addr constant [2 x i8] c"~\00" @.str41 = private unnamed_addr constant [2 x i8] c"~\00" @.str42 = private unnamed_addr constant [4 x i8] c"not\00" @.str43 = private unnamed_addr constant [4 x i8] c"not\00" @.str44 = private unnamed_addr constant [2 x i8] c"*\00" @.str45 = private unnamed_addr constant [2 x i8] c"/\00" @.str46 = private unnamed_addr constant [2 x i8] c"%\00" @.str47 = private unnamed_addr constant [3 x i8] c"<<\00" @.str48 = private unnamed_addr constant [3 x i8] c">>\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 [2 x i8] c"-\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 [3 x i8] c"<=\00" @.str56 = private unnamed_addr constant [2 x i8] c">\00" @.str57 = private unnamed_addr constant [3 x i8] c">=\00" @.str58 = private unnamed_addr constant [3 x i8] c"==\00" @.str59 = private unnamed_addr constant [3 x i8] c"!=\00" @.str60 = private unnamed_addr constant [4 x i8] c"and\00" @.str61 = private unnamed_addr constant [4 x i8] c"and\00" @.str62 = private unnamed_addr constant [3 x i8] c"or\00" @.str63 = private unnamed_addr constant [3 x i8] c"or\00" @.str64 = private unnamed_addr constant [2 x i8] c"{\00" @.str65 = private unnamed_addr constant [2 x i8] c"}\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 [2 x i8] c"}\00" @.str72 = private unnamed_addr constant [43 x i8] c"expected newline or ';' between statements\00" @.str73 = private unnamed_addr constant [2 x i8] c"}\00" @.str74 = private unnamed_addr constant [4 x i8] c"let\00" @.str75 = private unnamed_addr constant [4 x i8] c"var\00" @.str76 = private unnamed_addr constant [4 x i8] c"var\00" @.str77 = private unnamed_addr constant [2 x i8] c":\00" @.str78 = private unnamed_addr constant [2 x i8] c"=\00" @.str79 = private unnamed_addr constant [7 x i8] c"return\00" @.str80 = private unnamed_addr constant [2 x i8] c"}\00" @.str81 = private unnamed_addr constant [3 x i8] c"if\00" @.str82 = private unnamed_addr constant [5 x i8] c"else\00" @.str83 = private unnamed_addr constant [3 x i8] c"if\00" @.str84 = private unnamed_addr constant [6 x i8] c"while\00" @.str85 = private unnamed_addr constant [4 x i8] c"for\00" @.str86 = private unnamed_addr constant [2 x i8] c"(\00" @.str87 = private unnamed_addr constant [3 x i8] c"..\00" @.str88 = private unnamed_addr constant [6 x i8] c"spawn\00" @.str89 = private unnamed_addr constant [8 x i8] c"machine\00" @.str90 = private unnamed_addr constant [2 x i8] c"{\00" @.str91 = private unnamed_addr constant [2 x i8] c"}\00" @.str92 = private unnamed_addr constant [2 x i8] c"=\00" @.str93 = private unnamed_addr constant [2 x i8] c"}\00" @.str94 = private unnamed_addr constant [5 x i8] c"emit\00" @.str95 = private unnamed_addr constant [7 x i8] c"become\00" @.str96 = private unnamed_addr constant [8 x i8] c"despawn\00" @.str97 = private unnamed_addr constant [7 x i8] c"enable\00" @.str98 = private unnamed_addr constant [8 x i8] c"disable\00" @.str99 = private unnamed_addr constant [7 x i8] c"enable\00" @.str100 = private unnamed_addr constant [6 x i8] c"layer\00" @.str101 = private unnamed_addr constant [6 x i8] c"layer\00" @.str102 = private unnamed_addr constant [3 x i8] c"on\00" @.str103 = private unnamed_addr constant [7 x i8] c"attach\00" @.str104 = private unnamed_addr constant [3 x i8] c"on\00" @.str105 = private unnamed_addr constant [27 x i8] c"attach needs 'on '\00" @.str106 = private unnamed_addr constant [2 x i8] c"{\00" @.str107 = private unnamed_addr constant [7 x i8] c"detach\00" @.str108 = private unnamed_addr constant [3 x i8] c"on\00" @.str109 = private unnamed_addr constant [27 x i8] c"detach needs 'on '\00" @.str110 = private unnamed_addr constant [6 x i8] c"break\00" @.str111 = private unnamed_addr constant [9 x i8] c"continue\00" @.str112 = private unnamed_addr constant [7 x i8] c"cancel\00" @.str113 = private unnamed_addr constant [6 x i8] c"match\00" @.str114 = private unnamed_addr constant [2 x i8] c"{\00" @.str115 = private unnamed_addr constant [2 x i8] c"}\00" @.str116 = private unnamed_addr constant [2 x i8] c",\00" @.str117 = private unnamed_addr constant [3 x i8] c"=>\00" @.str118 = private unnamed_addr constant [2 x i8] c"{\00" @.str119 = private unnamed_addr constant [2 x i8] c"}\00" @.str120 = private unnamed_addr constant [2 x i8] c"=\00" @.str121 = private unnamed_addr constant [3 x i8] c"+=\00" @.str122 = private unnamed_addr constant [3 x i8] c"-=\00" @.str123 = private unnamed_addr constant [3 x i8] c"*=\00" @.str124 = private unnamed_addr constant [3 x i8] c"/=\00" @.str125 = private unnamed_addr constant [2 x i8] c":\00" @.str126 = private unnamed_addr constant [2 x i8] c"=\00" @.str127 = private unnamed_addr constant [2 x i8] c":\00" @.str128 = private unnamed_addr constant [2 x i8] c"=\00" @.str129 = private unnamed_addr constant [2 x i8] c"(\00" @.str130 = private unnamed_addr constant [2 x i8] c")\00" @.str131 = private unnamed_addr constant [2 x i8] c":\00" @.str132 = private unnamed_addr constant [2 x i8] c",\00" @.str133 = private unnamed_addr constant [2 x i8] c")\00" @.str134 = private unnamed_addr constant [5 x i8] c"void\00" @.str135 = private unnamed_addr constant [3 x i8] c"->\00" @.str136 = private unnamed_addr constant [1 x i8] c"\00" @.str137 = private unnamed_addr constant [2 x i8] c"@\00" @.str138 = private unnamed_addr constant [7 x i8] c"export\00" @.str139 = private unnamed_addr constant [7 x i8] c"Public\00" @.str140 = private unnamed_addr constant [3 x i8] c"On\00" @.str141 = private unnamed_addr constant [2 x i8] c"(\00" @.str142 = private unnamed_addr constant [2 x i8] c")\00" @.str143 = private unnamed_addr constant [8 x i8] c"Queries\00" @.str144 = private unnamed_addr constant [8 x i8] c"OnSpawn\00" @.str145 = private unnamed_addr constant [2 x i8] c"(\00" @.str146 = private unnamed_addr constant [2 x i8] c")\00" @.str147 = private unnamed_addr constant [10 x i8] c"OnDespawn\00" @.str148 = private unnamed_addr constant [2 x i8] c"(\00" @.str149 = private unnamed_addr constant [2 x i8] c",\00" @.str150 = private unnamed_addr constant [2 x i8] c":\00" @.str151 = private unnamed_addr constant [2 x i8] c")\00" @.str152 = private unnamed_addr constant [9 x i8] c"OnAttach\00" @.str153 = private unnamed_addr constant [2 x i8] c"(\00" @.str154 = private unnamed_addr constant [2 x i8] c")\00" @.str155 = private unnamed_addr constant [9 x i8] c"OnDetach\00" @.str156 = private unnamed_addr constant [2 x i8] c"(\00" @.str157 = private unnamed_addr constant [2 x i8] c")\00" @.str158 = private unnamed_addr constant [9 x i8] c"OnEnable\00" @.str159 = private unnamed_addr constant [2 x i8] c"(\00" @.str160 = private unnamed_addr constant [2 x i8] c")\00" @.str161 = private unnamed_addr constant [10 x i8] c"OnDisable\00" @.str162 = private unnamed_addr constant [2 x i8] c"(\00" @.str163 = private unnamed_addr constant [2 x i8] c")\00" @.str164 = private unnamed_addr constant [8 x i8] c"OnStart\00" @.str165 = private unnamed_addr constant [6 x i8] c"Start\00" @.str166 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str167 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str168 = private unnamed_addr constant [5 x i8] c"Sync\00" @.str169 = private unnamed_addr constant [6 x i8] c"Owned\00" @.str170 = private unnamed_addr constant [7 x i8] c"Server\00" @.str171 = private unnamed_addr constant [7 x i8] c"server\00" @.str172 = private unnamed_addr constant [10 x i8] c"Predicted\00" @.str173 = private unnamed_addr constant [10 x i8] c"predicted\00" @.str174 = private unnamed_addr constant [9 x i8] c"ToServer\00" @.str175 = private unnamed_addr constant [9 x i8] c"toserver\00" @.str176 = private unnamed_addr constant [10 x i8] c"ToClients\00" @.str177 = private unnamed_addr constant [10 x i8] c"toclients\00" @.str178 = private unnamed_addr constant [2 x i8] c"(\00" @.str179 = private unnamed_addr constant [2 x i8] c"(\00" @.str180 = private unnamed_addr constant [2 x i8] c")\00" @.str181 = private unnamed_addr constant [7 x i8] c"import\00" @.str182 = private unnamed_addr constant [29 x i8] c"expected \22path\22 after import\00" @.str183 = private unnamed_addr constant [5 x i8] c"enum\00" @.str184 = private unnamed_addr constant [6 x i8] c"event\00" @.str185 = private unnamed_addr constant [9 x i8] c"property\00" @.str186 = private unnamed_addr constant [6 x i8] c"model\00" @.str187 = private unnamed_addr constant [6 x i8] c"scene\00" @.str188 = private unnamed_addr constant [8 x i8] c"handler\00" @.str189 = private unnamed_addr constant [7 x i8] c"server\00" @.str190 = private unnamed_addr constant [7 x i8] c"model_\00" @.str191 = private unnamed_addr constant [7 x i8] c"_spawn\00" @.str192 = private unnamed_addr constant [7 x i8] c"model_\00" @.str193 = private unnamed_addr constant [9 x i8] c"_despawn\00" @.str194 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str195 = private unnamed_addr constant [8 x i8] c"_attach\00" @.str196 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str197 = private unnamed_addr constant [8 x i8] c"_detach\00" @.str198 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str199 = private unnamed_addr constant [8 x i8] c"_enable\00" @.str200 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str201 = private unnamed_addr constant [9 x i8] c"_disable\00" @.str202 = private unnamed_addr constant [6 x i8] c"Start\00" @.str203 = private unnamed_addr constant [14 x i8] c"program_start\00" @.str204 = private unnamed_addr constant [13 x i8] c"program_quit\00" @.str205 = private unnamed_addr constant [3 x i8] c"ui\00" @.str206 = private unnamed_addr constant [4 x i8] c"var\00" @.str207 = private unnamed_addr constant [6 x i8] c"const\00" @.str208 = private unnamed_addr constant [9 x i8] c"function\00" @.str209 = private unnamed_addr constant [7 x i8] c"extern\00" @.str210 = private unnamed_addr constant [6 x i8] c"entry\00" @.str211 = private unnamed_addr constant [5 x i8] c"test\00" @.str212 = private unnamed_addr constant [21 x i8] c"expected declaration\00" @.str213 = private unnamed_addr constant [36 x i8] c"expected a \22name\22 string after test\00" @.str214 = private unnamed_addr constant [20 x i8] c"cannot open import \00" @.str215 = private unnamed_addr constant [1 x i8] c"\00" @.str216 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" @.str217 = private unnamed_addr constant [1 x i8] c"\00" @.str218 = private unnamed_addr constant [27 x i8] c"runtime/native/regex.ludic\00" @.str219 = private unnamed_addr constant [30 x i8] c"runtime/native/regex_vm.ludic\00" @.str220 = private unnamed_addr constant [1 x i8] c"\00" @.str221 = private unnamed_addr constant [27 x i8] c"runtime/native/query.ludic\00" @.str222 = private unnamed_addr constant [1 x i8] c"\00" @.str223 = private unnamed_addr constant [27 x i8] c"runtime/native/light.ludic\00" @.str224 = private unnamed_addr constant [6 x i8] c"Ludic\00" @.str225 = private unnamed_addr constant [7 x i8] c"import\00" @.str226 = private unnamed_addr constant [2 x i8] c"@\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 [8 x i8] c"program\00" @.str231 = private unnamed_addr constant [2 x i8] c"{\00" @.str232 = private unnamed_addr constant [2 x i8] c"}\00" @.str233 = private unnamed_addr constant [2 x i8] c"{\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 [9 x i8] c"Computed\00" @.str237 = private unnamed_addr constant [5 x i8] c"Sync\00" @.str238 = private unnamed_addr constant [2 x i8] c":\00" @.str239 = private unnamed_addr constant [2 x i8] c"=\00" @.str240 = private unnamed_addr constant [2 x i8] c",\00" @.str241 = private unnamed_addr constant [2 x i8] c"}\00" @.str242 = private unnamed_addr constant [12 x i8] c"cancellable\00" @.str243 = private unnamed_addr constant [2 x i8] c"{\00" @.str244 = private unnamed_addr constant [2 x i8] c"}\00" @.str245 = private unnamed_addr constant [2 x i8] c":\00" @.str246 = private unnamed_addr constant [2 x i8] c"=\00" @.str247 = private unnamed_addr constant [2 x i8] c",\00" @.str248 = private unnamed_addr constant [2 x i8] c"}\00" @.str249 = private unnamed_addr constant [7 x i8] c"Update\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 [6 x i8] c"phase\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 [2 x i8] c"{\00" @.str258 = private unnamed_addr constant [2 x i8] c"}\00" @.str259 = private unnamed_addr constant [2 x i8] c",\00" @.str260 = private unnamed_addr constant [2 x i8] c"]\00" @.str261 = private unnamed_addr constant [6 x i8] c"where\00" @.str262 = private unnamed_addr constant [2 x i8] c"(\00" @.str263 = private unnamed_addr constant [2 x i8] c")\00" @.str264 = private unnamed_addr constant [2 x i8] c",\00" @.str265 = private unnamed_addr constant [2 x i8] c")\00" @.str266 = private unnamed_addr constant [6 x i8] c"query\00" @.str267 = private unnamed_addr constant [29 x i8] c"expected 'query' in for-loop\00" @.str268 = private unnamed_addr constant [4 x i8] c"and\00" @.str269 = private unnamed_addr constant [2 x i8] c"(\00" @.str270 = private unnamed_addr constant [2 x i8] c")\00" @.str271 = private unnamed_addr constant [2 x i8] c")\00" @.str272 = private unnamed_addr constant [2 x i8] c":\00" @.str273 = private unnamed_addr constant [6 x i8] c"these\00" @.str274 = private unnamed_addr constant [2 x i8] c"[\00" @.str275 = private unnamed_addr constant [2 x i8] c"]\00" @.str276 = private unnamed_addr constant [2 x i8] c"{\00" @.str277 = private unnamed_addr constant [2 x i8] c"}\00" @.str278 = private unnamed_addr constant [2 x i8] c",\00" @.str279 = private unnamed_addr constant [2 x i8] c"]\00" @.str280 = private unnamed_addr constant [3 x i8] c"on\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 [2 x i8] c",\00" @.str286 = private unnamed_addr constant [2 x i8] c"}\00" @.str287 = private unnamed_addr constant [6 x i8] c"start\00" @.str288 = private unnamed_addr constant [7 x i8] c"public\00" @.str289 = private unnamed_addr constant [6 x i8] c"start\00" @.str290 = private unnamed_addr constant [7 x i8] c"scene_\00" @.str291 = private unnamed_addr constant [7 x i8] c"_enter\00" @.str292 = private unnamed_addr constant [7 x i8] c"scene_\00" @.str293 = private unnamed_addr constant [6 x i8] c"_exit\00" @.str294 = private unnamed_addr constant [2 x i8] c"{\00" @.str295 = private unnamed_addr constant [2 x i8] c"}\00" @.str296 = private unnamed_addr constant [3 x i8] c"on\00" @.str297 = private unnamed_addr constant [6 x i8] c"enter\00" @.str298 = private unnamed_addr constant [5 x i8] c"exit\00" @.str299 = private unnamed_addr constant [38 x i8] c"expected 'enter' or 'exit' after 'on'\00" @.str300 = private unnamed_addr constant [6 x i8] c"layer\00" @.str301 = private unnamed_addr constant [7 x i8] c"public\00" @.str302 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str303 = private unnamed_addr constant [6 x i8] c"_show\00" @.str304 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str305 = private unnamed_addr constant [6 x i8] c"_hide\00" @.str306 = private unnamed_addr constant [2 x i8] c"{\00" @.str307 = private unnamed_addr constant [2 x i8] c"}\00" @.str308 = private unnamed_addr constant [8 x i8] c"handler\00" @.str309 = private unnamed_addr constant [28 x i8] c"expected 'handler' in layer\00" @.str310 = private unnamed_addr constant [2 x i8] c"}\00" @.str311 = private unnamed_addr constant [39 x i8] c"expected 'on', 'layer' or '}' in scene\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 [2 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 [2 x i8] c"}\00" @.str319 = private unnamed_addr constant [2 x i8] c"@\00" @.str320 = private unnamed_addr constant [5 x i8] c"Sync\00" @.str321 = private unnamed_addr constant [2 x i8] c",\00" @.str322 = private unnamed_addr constant [2 x i8] c"}\00" @.str323 = private unnamed_addr constant [2 x i8] c"(\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 [5 x i8] c"void\00" @.str329 = private unnamed_addr constant [3 x i8] c"->\00" @.str330 = private unnamed_addr constant [2 x i8] c"=\00" @.str331 = private unnamed_addr constant [2 x i8] c":\00" @.str332 = private unnamed_addr constant [2 x i8] c":\00" @.str333 = private unnamed_addr constant [2 x i8] c"{\00" @.str334 = private unnamed_addr constant [2 x i8] c"}\00" @.str335 = private unnamed_addr constant [2 x i8] c"}\00" @.str336 = private unnamed_addr constant [2 x i8] c"{\00" @.str337 = private unnamed_addr constant [2 x i8] c"}\00" @.str338 = private unnamed_addr constant [3 x i8] c"%t\00" @.str339 = private unnamed_addr constant [3 x i8] c" \00" @.str340 = private unnamed_addr constant [11 x i8] c" = alloca \00" @.str341 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str342 = private unnamed_addr constant [3 x i8] c"%t\00" @.str343 = private unnamed_addr constant [4 x i8] c"int\00" @.str344 = private unnamed_addr constant [5 x i8] c"bool\00" @.str345 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str346 = private unnamed_addr constant [7 x i8] c"entity\00" @.str347 = private unnamed_addr constant [4 x i8] c"i32\00" @.str348 = private unnamed_addr constant [5 x i8] c"long\00" @.str349 = private unnamed_addr constant [4 x i8] c"i64\00" @.str350 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str351 = private unnamed_addr constant [4 x i8] c"i64\00" @.str352 = private unnamed_addr constant [5 x i8] c"byte\00" @.str353 = private unnamed_addr constant [3 x i8] c"i8\00" @.str354 = private unnamed_addr constant [6 x i8] c"words\00" @.str355 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str356 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str357 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str358 = private unnamed_addr constant [5 x i8] c"void\00" @.str359 = private unnamed_addr constant [5 x i8] c"void\00" @.str360 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str361 = private unnamed_addr constant [6 x i8] c"%Cmp_\00" @.str362 = private unnamed_addr constant [4 x i8] c"int\00" @.str363 = private unnamed_addr constant [10 x i8] c"EndReason\00" @.str364 = private unnamed_addr constant [10 x i8] c"Despawned\00" @.str365 = private unnamed_addr constant [10 x i8] c"SceneExit\00" @.str366 = private unnamed_addr constant [5 x i8] c"Quit\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 [7 x i8] c"entity\00" @.str370 = private unnamed_addr constant [4 x i8] c"int\00" @.str371 = private unnamed_addr constant [7 x i8] c"reason\00" @.str372 = private unnamed_addr constant [4 x i8] c"int\00" @.str373 = private unnamed_addr constant [6 x i8] c"@.str\00" @.str374 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" @.str375 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" @.str376 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" @.str377 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str378 = private unnamed_addr constant [5 x i8] c"null\00" @.str379 = private unnamed_addr constant [2 x i8] c"0\00" @.str380 = private unnamed_addr constant [2 x i8] c"-\00" @.str381 = private unnamed_addr constant [2 x i8] c"-\00" @.str382 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str383 = private unnamed_addr constant [5 x i8] c"null\00" @.str384 = private unnamed_addr constant [2 x i8] c"0\00" @.str385 = private unnamed_addr constant [34 x i8] c"; Ludic (self-hosted) -> LLVM IR\0A\00" @.str386 = private unnamed_addr constant [31 x i8] c"declare i32 @printf(ptr, ...)\0A\00" @.str387 = private unnamed_addr constant [26 x i8] c"declare ptr @malloc(i64)\0A\00" @.str388 = private unnamed_addr constant [32 x i8] c"declare ptr @realloc(ptr, i64)\0A\00" @.str389 = private unnamed_addr constant [25 x i8] c"declare void @free(ptr)\0A\00" @.str390 = private unnamed_addr constant [30 x i8] c"declare ptr @fopen(ptr, ptr)\0A\00" @.str391 = private unnamed_addr constant [40 x i8] c"declare i64 @fread(ptr, i64, i64, ptr)\0A\00" @.str392 = private unnamed_addr constant [41 x i8] c"declare i64 @fwrite(ptr, i64, i64, ptr)\0A\00" @.str393 = private unnamed_addr constant [35 x i8] c"declare i32 @fseek(ptr, i64, i32)\0A\00" @.str394 = private unnamed_addr constant [25 x i8] c"declare i64 @ftell(ptr)\0A\00" @.str395 = private unnamed_addr constant [26 x i8] c"declare i32 @fclose(ptr)\0A\00" @.str396 = private unnamed_addr constant [25 x i8] c"declare void @exit(i32)\0A\00" @.str397 = private unnamed_addr constant [26 x i8] c"declare i32 @system(ptr)\0A\00" @.str398 = private unnamed_addr constant [26 x i8] c"declare ptr @getenv(ptr)\0A\00" @.str399 = private unnamed_addr constant [36 x i8] c"declare ptr @memcpy(ptr, ptr, i64)\0A\00" @.str400 = private unnamed_addr constant [36 x i8] c"declare ptr @memset(ptr, i32, i64)\0A\00" @.str401 = private unnamed_addr constant [26 x i8] c"declare i64 @strlen(ptr)\0A\00" @.str402 = private unnamed_addr constant [37 x i8] c"declare i32 @strncmp(ptr, ptr, i64)\0A\00" @.str403 = private unnamed_addr constant [31 x i8] c"declare ptr @strstr(ptr, ptr)\0A\00" @.str404 = private unnamed_addr constant [24 x i8] c"declare i32 @atoi(ptr)\0A\00" @.str405 = private unnamed_addr constant [24 x i8] c"declare i32 @getchar()\0A\00" @.str406 = private unnamed_addr constant [27 x i8] c"declare i32 @putchar(i32)\0A\00" @.str407 = private unnamed_addr constant [24 x i8] c"declare i64 @time(ptr)\0A\00" @.str408 = private unnamed_addr constant [44 x i8] c"declare void @win_open(i32, i32, i32, ptr)\0A\00" @.str409 = private unnamed_addr constant [25 x i8] c"declare i32 @win_poll()\0A\00" @.str410 = private unnamed_addr constant [42 x i8] c"declare void @win_present(ptr, i32, i32)\0A\00" @.str411 = private unnamed_addr constant [28 x i8] c"declare i32 @win_running()\0A\00" @.str412 = private unnamed_addr constant [27 x i8] c"declare void @win_close()\0A\00" @.str413 = private unnamed_addr constant [34 x i8] c"@__stderrp = external global ptr\0A\00" @.str414 = private unnamed_addr constant [34 x i8] c"@__stdoutp = external global ptr\0A\00" @.str415 = 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" @.str416 = 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" @.str417 = 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" @.str418 = private unnamed_addr constant [33 x i8] c"@L_argc = internal global i32 0\0A\00" @.str419 = private unnamed_addr constant [36 x i8] c"@L_argv = internal global ptr null\0A\00" @.str420 = private unnamed_addr constant [34 x i8] c"@L_clock = internal global i32 0\0A\00" @.str421 = private unnamed_addr constant [46 x i8] c"@.gametitle = private unnamed_addr constant [\00" @.str422 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" @.str423 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" @.str424 = private unnamed_addr constant [34 x i8] c"%LSlice = type { ptr, i32, i32 }\0A\00" @.str425 = private unnamed_addr constant [11 x i8] c" = type { \00" @.str426 = private unnamed_addr constant [4 x i8] c"i32\00" @.str427 = private unnamed_addr constant [3 x i8] c", \00" @.str428 = private unnamed_addr constant [4 x i8] c" }\0A\00" @.str429 = private unnamed_addr constant [4 x i8] c"@g_\00" @.str430 = private unnamed_addr constant [20 x i8] c" = internal global \00" @.str431 = private unnamed_addr constant [2 x i8] c" \00" @.str432 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str433 = private unnamed_addr constant [9 x i8] c"declare \00" @.str434 = private unnamed_addr constant [3 x i8] c" @\00" @.str435 = private unnamed_addr constant [2 x i8] c"(\00" @.str436 = private unnamed_addr constant [3 x i8] c", \00" @.str437 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str438 = private unnamed_addr constant [41 x i8] c"define i32 @fn_str_eq(ptr %a, ptr %b) {\0A\00" @.str439 = private unnamed_addr constant [25 x i8] c"entry:\0A br label %loop\0A\00" @.str440 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00" @.str441 = private unnamed_addr constant [51 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %i\0A\00" @.str442 = private unnamed_addr constant [51 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %i\0A\00" @.str443 = private unnamed_addr constant [51 x i8] c" %ca = load i8, ptr %pa\0A %cb = load i8, ptr %pb\0A\00" @.str444 = private unnamed_addr constant [66 x i8] c" %df = icmp ne i8 %ca, %cb\0A br i1 %df, label %ret0, label %chk\0A\00" @.str445 = 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" @.str446 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" @.str447 = private unnamed_addr constant [39 x i8] c"ret1:\0A ret i32 1\0Aret0:\0A ret i32 0\0A}\0A\00" @.str448 = private unnamed_addr constant [45 x i8] c"define ptr @fn_str_concat(ptr %a, ptr %b) {\0A\00" @.str449 = private unnamed_addr constant [23 x i8] c"entry:\0A br label %al\0A\00" @.str450 = private unnamed_addr constant [51 x i8] c"al:\0A %ia = phi i32 [ 0, %entry ], [ %ia1, %alb ]\0A\00" @.str451 = private unnamed_addr constant [78 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %ia\0A %cca = load i8, ptr %pa\0A\00" @.str452 = private unnamed_addr constant [64 x i8] c" %za = icmp eq i8 %cca, 0\0A br i1 %za, label %bl0, label %alb\0A\00" @.str453 = private unnamed_addr constant [45 x i8] c"alb:\0A %ia1 = add i32 %ia, 1\0A br label %al\0A\00" @.str454 = private unnamed_addr constant [21 x i8] c"bl0:\0A br label %bl\0A\00" @.str455 = private unnamed_addr constant [49 x i8] c"bl:\0A %ib = phi i32 [ 0, %bl0 ], [ %ib1, %blb ]\0A\00" @.str456 = private unnamed_addr constant [78 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %ib\0A %ccb = load i8, ptr %pb\0A\00" @.str457 = private unnamed_addr constant [66 x i8] c" %zb = icmp eq i8 %ccb, 0\0A br i1 %zb, label %alloc, label %blb\0A\00" @.str458 = private unnamed_addr constant [45 x i8] c"blb:\0A %ib1 = add i32 %ib, 1\0A br label %bl\0A\00" @.str459 = private unnamed_addr constant [58 x i8] c"alloc:\0A %sum = add i32 %ia, %ib\0A %sz = add i32 %sum, 1\0A\00" @.str460 = 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" @.str461 = private unnamed_addr constant [49 x i8] c"c1:\0A %i = phi i32 [ 0, %alloc ], [ %i1, %c1b ]\0A\00" @.str462 = private unnamed_addr constant [66 x i8] c" %d1 = icmp slt i32 %i, %ia\0A br i1 %d1, label %c1b, label %c2i\0A\00" @.str463 = 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" @.str464 = private unnamed_addr constant [77 x i8] c" %o1 = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %v1, ptr %o1\0A\00" @.str465 = private unnamed_addr constant [38 x i8] c" %i1 = add i32 %i, 1\0A br label %c1\0A\00" @.str466 = private unnamed_addr constant [21 x i8] c"c2i:\0A br label %c2\0A\00" @.str467 = private unnamed_addr constant [47 x i8] c"c2:\0A %j = phi i32 [ 0, %c2i ], [ %j1, %c2b ]\0A\00" @.str468 = private unnamed_addr constant [66 x i8] c" %d2 = icmp slt i32 %j, %ib\0A br i1 %d2, label %c2b, label %fin\0A\00" @.str469 = 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" @.str470 = 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" @.str471 = private unnamed_addr constant [38 x i8] c" %j1 = add i32 %j, 1\0A br label %c2\0A\00" @.str472 = 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" @.str473 = private unnamed_addr constant [35 x i8] c"define ptr @fn_int_str(i32 %n0) {\0A\00" @.str474 = private unnamed_addr constant [42 x i8] c"entry:\0A %buf = call ptr @malloc(i64 24)\0A\00" @.str475 = private unnamed_addr constant [56 x i8] c" %isneg = icmp slt i32 %n0, 0\0A %neg = sub i32 0, %n0\0A\00" @.str476 = private unnamed_addr constant [44 x i8] c" %n = select i1 %isneg, i32 %neg, i32 %n0\0A\00" @.str477 = private unnamed_addr constant [79 x i8] c" %term = getelementptr inbounds i8, ptr %buf, i32 23\0A store i8 0, ptr %term\0A\00" @.str478 = private unnamed_addr constant [70 x i8] c" %iszero = icmp eq i32 %n0, 0\0A br i1 %iszero, label %zc, label %dl\0A\00" @.str479 = 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" @.str480 = private unnamed_addr constant [23 x i8] c"dl:\0A br label %dloop\0A\00" @.str481 = 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" @.str482 = private unnamed_addr constant [72 x i8] c" %done = icmp eq i32 %cur, 0\0A br i1 %done, label %sign, label %dbody\0A\00" @.str483 = 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" @.str484 = private unnamed_addr constant [80 x i8] c" %pp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 %ch8, ptr %pp\0A\00" @.str485 = 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" @.str486 = private unnamed_addr constant [49 x i8] c"sign:\0A br i1 %isneg, label %addneg, label %fin\0A\00" @.str487 = 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" @.str488 = private unnamed_addr constant [60 x i8] c"fin:\0A %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ]\0A\00" @.str489 = 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" @.str490 = private unnamed_addr constant [36 x i8] c"define ptr @fn_long_str(i64 %n0) {\0A\00" @.str491 = private unnamed_addr constant [42 x i8] c"entry:\0A %buf = call ptr @malloc(i64 24)\0A\00" @.str492 = private unnamed_addr constant [56 x i8] c" %isneg = icmp slt i64 %n0, 0\0A %neg = sub i64 0, %n0\0A\00" @.str493 = private unnamed_addr constant [44 x i8] c" %n = select i1 %isneg, i64 %neg, i64 %n0\0A\00" @.str494 = private unnamed_addr constant [79 x i8] c" %term = getelementptr inbounds i8, ptr %buf, i32 23\0A store i8 0, ptr %term\0A\00" @.str495 = private unnamed_addr constant [70 x i8] c" %iszero = icmp eq i64 %n0, 0\0A br i1 %iszero, label %zc, label %dl\0A\00" @.str496 = 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" @.str497 = private unnamed_addr constant [23 x i8] c"dl:\0A br label %dloop\0A\00" @.str498 = 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" @.str499 = private unnamed_addr constant [72 x i8] c" %done = icmp eq i64 %cur, 0\0A br i1 %done, label %sign, label %dbody\0A\00" @.str500 = 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" @.str501 = private unnamed_addr constant [80 x i8] c" %pp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 %ch8, ptr %pp\0A\00" @.str502 = 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" @.str503 = private unnamed_addr constant [49 x i8] c"sign:\0A br i1 %isneg, label %addneg, label %fin\0A\00" @.str504 = 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" @.str505 = private unnamed_addr constant [60 x i8] c"fin:\0A %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ]\0A\00" @.str506 = 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" @.str507 = private unnamed_addr constant [58 x i8] c"define ptr @fn_str_slice(ptr %s, i32 %start, i32 %end) {\0A\00" @.str508 = private unnamed_addr constant [62 x i8] c"entry:\0A %len = sub i32 %end, %start\0A %sz = add i32 %len, 1\0A\00" @.str509 = 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" @.str510 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %body ]\0A\00" @.str511 = private unnamed_addr constant [66 x i8] c" %d = icmp slt i32 %i, %len\0A br i1 %d, label %body, label %fin\0A\00" @.str512 = 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" @.str513 = 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" @.str514 = 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" @.str515 = private unnamed_addr constant [32 x i8] c"member access on non-aggregate \00" @.str516 = private unnamed_addr constant [15 x i8] c"no such field \00" @.str517 = private unnamed_addr constant [3 x i8] c" \00" @.str518 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str519 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str520 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str521 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str522 = private unnamed_addr constant [6 x i8] c"words\00" @.str523 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds i32, ptr \00" @.str524 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str525 = private unnamed_addr constant [4 x i8] c"int\00" @.str526 = private unnamed_addr constant [7 x i8] c"fixeds\00" @.str527 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds i32, ptr \00" @.str528 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str529 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str530 = private unnamed_addr constant [9 x i8] c"pointers\00" @.str531 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds ptr, ptr \00" @.str532 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str533 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str534 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str535 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str536 = private unnamed_addr constant [5 x i8] c"byte\00" @.str537 = private unnamed_addr constant [3 x i8] c" \00" @.str538 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str539 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" @.str540 = private unnamed_addr constant [3 x i8] c" \00" @.str541 = private unnamed_addr constant [18 x i8] c" = load ptr, ptr \00" @.str542 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str543 = private unnamed_addr constant [3 x i8] c" \00" @.str544 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str545 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str546 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str547 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str548 = private unnamed_addr constant [7 x i8] c"resize\00" @.str549 = private unnamed_addr constant [10 x i8] c"file_open\00" @.str550 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str551 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str552 = private unnamed_addr constant [10 x i8] c"file_seek\00" @.str553 = private unnamed_addr constant [10 x i8] c"file_tell\00" @.str554 = private unnamed_addr constant [11 x i8] c"file_close\00" @.str555 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str556 = private unnamed_addr constant [4 x i8] c"arg\00" @.str557 = private unnamed_addr constant [5 x i8] c"exit\00" @.str558 = private unnamed_addr constant [12 x i8] c"file_stderr\00" @.str559 = private unnamed_addr constant [12 x i8] c"file_stdout\00" @.str560 = private unnamed_addr constant [4 x i8] c"run\00" @.str561 = private unnamed_addr constant [7 x i8] c"getenv\00" @.str562 = private unnamed_addr constant [3 x i8] c" \00" @.str563 = private unnamed_addr constant [4 x i8] c" = \00" @.str564 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str565 = private unnamed_addr constant [7 x i8] c"resize\00" @.str566 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str567 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str568 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" @.str569 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str570 = private unnamed_addr constant [2 x i8] c")\00" @.str571 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str572 = private unnamed_addr constant [10 x i8] c"file_open\00" @.str573 = private unnamed_addr constant [21 x i8] c"call ptr @fopen(ptr \00" @.str574 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str575 = private unnamed_addr constant [2 x i8] c")\00" @.str576 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str577 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str578 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str579 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str580 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str581 = private unnamed_addr constant [7 x i8] c"@fread\00" @.str582 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str583 = private unnamed_addr constant [8 x i8] c"@fwrite\00" @.str584 = private unnamed_addr constant [10 x i8] c"call i64 \00" @.str585 = private unnamed_addr constant [6 x i8] c"(ptr \00" @.str586 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" @.str587 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str588 = private unnamed_addr constant [2 x i8] c")\00" @.str589 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str590 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str591 = private unnamed_addr constant [4 x i8] c"int\00" @.str592 = private unnamed_addr constant [10 x i8] c"file_seek\00" @.str593 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str594 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str595 = private unnamed_addr constant [21 x i8] c"call i32 @fseek(ptr \00" @.str596 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str597 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str598 = private unnamed_addr constant [2 x i8] c")\00" @.str599 = private unnamed_addr constant [4 x i8] c"int\00" @.str600 = private unnamed_addr constant [10 x i8] c"file_tell\00" @.str601 = private unnamed_addr constant [21 x i8] c"call i64 @ftell(ptr \00" @.str602 = private unnamed_addr constant [2 x i8] c")\00" @.str603 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str604 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str605 = private unnamed_addr constant [4 x i8] c"int\00" @.str606 = private unnamed_addr constant [11 x i8] c"file_close\00" @.str607 = private unnamed_addr constant [24 x i8] c" call i32 @fclose(ptr \00" @.str608 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str609 = private unnamed_addr constant [2 x i8] c"0\00" @.str610 = private unnamed_addr constant [5 x i8] c"void\00" @.str611 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str612 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" @.str613 = private unnamed_addr constant [4 x i8] c"int\00" @.str614 = private unnamed_addr constant [4 x i8] c"arg\00" @.str615 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" @.str616 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" @.str617 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str618 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str619 = private unnamed_addr constant [7 x i8] c"string\00" @.str620 = private unnamed_addr constant [5 x i8] c"exit\00" @.str621 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" @.str622 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str623 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" @.str624 = private unnamed_addr constant [2 x i8] c"0\00" @.str625 = private unnamed_addr constant [5 x i8] c"void\00" @.str626 = private unnamed_addr constant [12 x i8] c"file_stderr\00" @.str627 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stderrp\00" @.str628 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str629 = private unnamed_addr constant [12 x i8] c"file_stdout\00" @.str630 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stdoutp\00" @.str631 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str632 = private unnamed_addr constant [4 x i8] c"run\00" @.str633 = private unnamed_addr constant [22 x i8] c"call i32 @system(ptr \00" @.str634 = private unnamed_addr constant [2 x i8] c")\00" @.str635 = private unnamed_addr constant [4 x i8] c"int\00" @.str636 = private unnamed_addr constant [7 x i8] c"getenv\00" @.str637 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" @.str638 = private unnamed_addr constant [2 x i8] c")\00" @.str639 = private unnamed_addr constant [7 x i8] c"string\00" @.str640 = private unnamed_addr constant [2 x i8] c"0\00" @.str641 = private unnamed_addr constant [5 x i8] c"void\00" @.str642 = private unnamed_addr constant [5 x i8] c"free\00" @.str643 = private unnamed_addr constant [5 x i8] c"fill\00" @.str644 = private unnamed_addr constant [7 x i8] c"offset\00" @.str645 = private unnamed_addr constant [10 x i8] c"read_char\00" @.str646 = private unnamed_addr constant [9 x i8] c"as_fixed\00" @.str647 = private unnamed_addr constant [7 x i8] c"as_int\00" @.str648 = private unnamed_addr constant [12 x i8] c"is_windowed\00" @.str649 = private unnamed_addr constant [11 x i8] c"game_title\00" @.str650 = private unnamed_addr constant [9 x i8] c"win_open\00" @.str651 = private unnamed_addr constant [9 x i8] c"win_poll\00" @.str652 = private unnamed_addr constant [12 x i8] c"win_present\00" @.str653 = private unnamed_addr constant [12 x i8] c"win_running\00" @.str654 = private unnamed_addr constant [10 x i8] c"win_close\00" @.str655 = private unnamed_addr constant [5 x i8] c"free\00" @.str656 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" @.str657 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str658 = private unnamed_addr constant [2 x i8] c"0\00" @.str659 = private unnamed_addr constant [5 x i8] c"void\00" @.str660 = private unnamed_addr constant [5 x i8] c"fill\00" @.str661 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str662 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str663 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" @.str664 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str665 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str666 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str667 = private unnamed_addr constant [2 x i8] c"0\00" @.str668 = private unnamed_addr constant [5 x i8] c"void\00" @.str669 = private unnamed_addr constant [7 x i8] c"offset\00" @.str670 = private unnamed_addr constant [3 x i8] c" \00" @.str671 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" @.str672 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str673 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str674 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str675 = private unnamed_addr constant [10 x i8] c"read_char\00" @.str676 = private unnamed_addr constant [20 x i8] c"call i32 @getchar()\00" @.str677 = private unnamed_addr constant [4 x i8] c"int\00" @.str678 = private unnamed_addr constant [9 x i8] c"as_fixed\00" @.str679 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str680 = private unnamed_addr constant [7 x i8] c"as_int\00" @.str681 = private unnamed_addr constant [4 x i8] c"int\00" @.str682 = private unnamed_addr constant [12 x i8] c"is_windowed\00" @.str683 = private unnamed_addr constant [2 x i8] c"1\00" @.str684 = private unnamed_addr constant [5 x i8] c"bool\00" @.str685 = private unnamed_addr constant [2 x i8] c"0\00" @.str686 = private unnamed_addr constant [5 x i8] c"bool\00" @.str687 = private unnamed_addr constant [11 x i8] c"game_title\00" @.str688 = private unnamed_addr constant [12 x i8] c"@.gametitle\00" @.str689 = private unnamed_addr constant [7 x i8] c"string\00" @.str690 = private unnamed_addr constant [9 x i8] c"win_poll\00" @.str691 = private unnamed_addr constant [21 x i8] c"call i32 @win_poll()\00" @.str692 = private unnamed_addr constant [4 x i8] c"int\00" @.str693 = private unnamed_addr constant [12 x i8] c"win_running\00" @.str694 = private unnamed_addr constant [24 x i8] c"call i32 @win_running()\00" @.str695 = private unnamed_addr constant [5 x i8] c"bool\00" @.str696 = private unnamed_addr constant [9 x i8] c"win_open\00" @.str697 = private unnamed_addr constant [27 x i8] c" call void @win_open(i32 \00" @.str698 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str699 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str700 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str701 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str702 = private unnamed_addr constant [2 x i8] c"0\00" @.str703 = private unnamed_addr constant [5 x i8] c"void\00" @.str704 = private unnamed_addr constant [12 x i8] c"win_present\00" @.str705 = private unnamed_addr constant [30 x i8] c" call void @win_present(ptr \00" @.str706 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str707 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str708 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str709 = private unnamed_addr constant [2 x i8] c"0\00" @.str710 = private unnamed_addr constant [5 x i8] c"void\00" @.str711 = private unnamed_addr constant [10 x i8] c"win_close\00" @.str712 = private unnamed_addr constant [26 x i8] c" call void @win_close()\0A\00" @.str713 = private unnamed_addr constant [2 x i8] c"0\00" @.str714 = private unnamed_addr constant [5 x i8] c"void\00" @.str715 = private unnamed_addr constant [2 x i8] c"0\00" @.str716 = private unnamed_addr constant [5 x i8] c"void\00" @.str717 = private unnamed_addr constant [4 x i8] c"min\00" @.str718 = private unnamed_addr constant [4 x i8] c"max\00" @.str719 = private unnamed_addr constant [4 x i8] c"abs\00" @.str720 = private unnamed_addr constant [6 x i8] c"clamp\00" @.str721 = private unnamed_addr constant [4 x i8] c"abs\00" @.str722 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str723 = private unnamed_addr constant [4 x i8] c", 0\00" @.str724 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str725 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str726 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str727 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str728 = private unnamed_addr constant [4 x i8] c"min\00" @.str729 = private unnamed_addr constant [4 x i8] c"max\00" @.str730 = private unnamed_addr constant [4 x i8] c"slt\00" @.str731 = private unnamed_addr constant [4 x i8] c"max\00" @.str732 = private unnamed_addr constant [4 x i8] c"sgt\00" @.str733 = private unnamed_addr constant [6 x i8] c"icmp \00" @.str734 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str735 = private unnamed_addr constant [3 x i8] c", \00" @.str736 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str737 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str738 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str739 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str740 = private unnamed_addr constant [3 x i8] c", \00" @.str741 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str742 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str743 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str744 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str745 = private unnamed_addr constant [3 x i8] c", \00" @.str746 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str747 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str748 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str749 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str750 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str751 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str752 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str753 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str754 = private unnamed_addr constant [3 x i8] c", \00" @.str755 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str756 = private unnamed_addr constant [5 x i8] c", 16\00" @.str757 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str758 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str759 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str760 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str761 = private unnamed_addr constant [9 x i8] c"shl i64 \00" @.str762 = private unnamed_addr constant [5 x i8] c", 16\00" @.str763 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str764 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str765 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" @.str766 = private unnamed_addr constant [3 x i8] c", \00" @.str767 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str768 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str769 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str770 = private unnamed_addr constant [3 x i8] c", \00" @.str771 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str772 = private unnamed_addr constant [3 x i8] c", \00" @.str773 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str774 = private unnamed_addr constant [3 x i8] c", \00" @.str775 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str776 = private unnamed_addr constant [3 x i8] c", \00" @.str777 = private unnamed_addr constant [4 x i8] c"min\00" @.str778 = private unnamed_addr constant [4 x i8] c"max\00" @.str779 = private unnamed_addr constant [4 x i8] c"abs\00" @.str780 = private unnamed_addr constant [6 x i8] c"clamp\00" @.str781 = private unnamed_addr constant [5 x i8] c"sign\00" @.str782 = private unnamed_addr constant [6 x i8] c"floor\00" @.str783 = private unnamed_addr constant [5 x i8] c"ceil\00" @.str784 = private unnamed_addr constant [6 x i8] c"round\00" @.str785 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str786 = private unnamed_addr constant [13 x i8] c"inverse_lerp\00" @.str787 = private unnamed_addr constant [6 x i8] c"remap\00" @.str788 = private unnamed_addr constant [5 x i8] c"sqrt\00" @.str789 = private unnamed_addr constant [4 x i8] c"sin\00" @.str790 = private unnamed_addr constant [4 x i8] c"cos\00" @.str791 = private unnamed_addr constant [4 x i8] c"tan\00" @.str792 = private unnamed_addr constant [6 x i8] c"hypot\00" @.str793 = private unnamed_addr constant [6 x i8] c"atan2\00" @.str794 = private unnamed_addr constant [5 x i8] c"asin\00" @.str795 = private unnamed_addr constant [5 x i8] c"acos\00" @.str796 = private unnamed_addr constant [11 x i8] c"deg_to_rad\00" @.str797 = private unnamed_addr constant [11 x i8] c"rad_to_deg\00" @.str798 = private unnamed_addr constant [7 x i8] c"posmod\00" @.str799 = private unnamed_addr constant [5 x i8] c"wrap\00" @.str800 = private unnamed_addr constant [10 x i8] c"ping_pong\00" @.str801 = private unnamed_addr constant [8 x i8] c"snapped\00" @.str802 = private unnamed_addr constant [12 x i8] c"move_toward\00" @.str803 = private unnamed_addr constant [11 x i8] c"smoothstep\00" @.str804 = private unnamed_addr constant [5 x i8] c"dist\00" @.str805 = private unnamed_addr constant [6 x i8] c"dist2\00" @.str806 = private unnamed_addr constant [4 x i8] c"exp\00" @.str807 = private unnamed_addr constant [4 x i8] c"log\00" @.str808 = private unnamed_addr constant [4 x i8] c"pow\00" @.str809 = private unnamed_addr constant [4 x i8] c"min\00" @.str810 = private unnamed_addr constant [4 x i8] c"max\00" @.str811 = private unnamed_addr constant [4 x i8] c"abs\00" @.str812 = private unnamed_addr constant [6 x i8] c"clamp\00" @.str813 = private unnamed_addr constant [5 x i8] c"sign\00" @.str814 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str815 = private unnamed_addr constant [4 x i8] c", 0\00" @.str816 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str817 = private unnamed_addr constant [4 x i8] c", 0\00" @.str818 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str819 = private unnamed_addr constant [16 x i8] c", i32 -1, i32 0\00" @.str820 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str821 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str822 = private unnamed_addr constant [4 x i8] c"int\00" @.str823 = private unnamed_addr constant [6 x i8] c"floor\00" @.str824 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str825 = private unnamed_addr constant [5 x i8] c", 16\00" @.str826 = private unnamed_addr constant [4 x i8] c"int\00" @.str827 = private unnamed_addr constant [5 x i8] c"ceil\00" @.str828 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str829 = private unnamed_addr constant [8 x i8] c", 65535\00" @.str830 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str831 = private unnamed_addr constant [5 x i8] c", 16\00" @.str832 = private unnamed_addr constant [4 x i8] c"int\00" @.str833 = private unnamed_addr constant [6 x i8] c"round\00" @.str834 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str835 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str836 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str837 = private unnamed_addr constant [5 x i8] c", 16\00" @.str838 = private unnamed_addr constant [4 x i8] c"int\00" @.str839 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str840 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str841 = private unnamed_addr constant [13 x i8] c"inverse_lerp\00" @.str842 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str843 = private unnamed_addr constant [5 x i8] c"sqrt\00" @.str844 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str845 = private unnamed_addr constant [2 x i8] c")\00" @.str846 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str847 = private unnamed_addr constant [4 x i8] c"sin\00" @.str848 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str849 = private unnamed_addr constant [2 x i8] c")\00" @.str850 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str851 = private unnamed_addr constant [4 x i8] c"cos\00" @.str852 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str853 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str854 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str855 = private unnamed_addr constant [2 x i8] c")\00" @.str856 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str857 = private unnamed_addr constant [4 x i8] c"tan\00" @.str858 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str859 = private unnamed_addr constant [2 x i8] c")\00" @.str860 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str861 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str862 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str863 = private unnamed_addr constant [2 x i8] c")\00" @.str864 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str865 = private unnamed_addr constant [6 x i8] c"atan2\00" @.str866 = private unnamed_addr constant [27 x i8] c"call i32 @fn_fx_atan2(i32 \00" @.str867 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str868 = private unnamed_addr constant [2 x i8] c")\00" @.str869 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str870 = private unnamed_addr constant [5 x i8] c"asin\00" @.str871 = private unnamed_addr constant [16 x i8] c"sub i32 65536, \00" @.str872 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str873 = private unnamed_addr constant [2 x i8] c")\00" @.str874 = private unnamed_addr constant [27 x i8] c"call i32 @fn_fx_atan2(i32 \00" @.str875 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str876 = private unnamed_addr constant [2 x i8] c")\00" @.str877 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str878 = private unnamed_addr constant [5 x i8] c"acos\00" @.str879 = private unnamed_addr constant [16 x i8] c"sub i32 65536, \00" @.str880 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str881 = private unnamed_addr constant [2 x i8] c")\00" @.str882 = private unnamed_addr constant [27 x i8] c"call i32 @fn_fx_atan2(i32 \00" @.str883 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str884 = private unnamed_addr constant [2 x i8] c")\00" @.str885 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str886 = private unnamed_addr constant [6 x i8] c"hypot\00" @.str887 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str888 = private unnamed_addr constant [3 x i8] c", \00" @.str889 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str890 = private unnamed_addr constant [2 x i8] c")\00" @.str891 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str892 = private unnamed_addr constant [6 x i8] c"dist2\00" @.str893 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str894 = private unnamed_addr constant [3 x i8] c", \00" @.str895 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str896 = private unnamed_addr constant [3 x i8] c", \00" @.str897 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str898 = private unnamed_addr constant [3 x i8] c", \00" @.str899 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str900 = private unnamed_addr constant [5 x i8] c"dist\00" @.str901 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str902 = private unnamed_addr constant [3 x i8] c", \00" @.str903 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str904 = private unnamed_addr constant [3 x i8] c", \00" @.str905 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str906 = private unnamed_addr constant [3 x i8] c", \00" @.str907 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str908 = private unnamed_addr constant [2 x i8] c")\00" @.str909 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str910 = private unnamed_addr constant [4 x i8] c"exp\00" @.str911 = private unnamed_addr constant [6 x i8] c"94548\00" @.str912 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_exp2(i32 \00" @.str913 = private unnamed_addr constant [2 x i8] c")\00" @.str914 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str915 = private unnamed_addr constant [4 x i8] c"log\00" @.str916 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_log2(i32 \00" @.str917 = private unnamed_addr constant [2 x i8] c")\00" @.str918 = private unnamed_addr constant [6 x i8] c"45426\00" @.str919 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str920 = private unnamed_addr constant [4 x i8] c"pow\00" @.str921 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_log2(i32 \00" @.str922 = private unnamed_addr constant [2 x i8] c")\00" @.str923 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_exp2(i32 \00" @.str924 = private unnamed_addr constant [2 x i8] c")\00" @.str925 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str926 = private unnamed_addr constant [11 x i8] c"deg_to_rad\00" @.str927 = private unnamed_addr constant [5 x i8] c"1144\00" @.str928 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str929 = private unnamed_addr constant [11 x i8] c"rad_to_deg\00" @.str930 = private unnamed_addr constant [8 x i8] c"3754936\00" @.str931 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str932 = private unnamed_addr constant [7 x i8] c"posmod\00" @.str933 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str934 = private unnamed_addr constant [3 x i8] c", \00" @.str935 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str936 = private unnamed_addr constant [3 x i8] c", \00" @.str937 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str938 = private unnamed_addr constant [3 x i8] c", \00" @.str939 = private unnamed_addr constant [4 x i8] c"int\00" @.str940 = private unnamed_addr constant [5 x i8] c"wrap\00" @.str941 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str942 = private unnamed_addr constant [3 x i8] c", \00" @.str943 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str944 = private unnamed_addr constant [3 x i8] c", \00" @.str945 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str946 = private unnamed_addr constant [3 x i8] c", \00" @.str947 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str948 = private unnamed_addr constant [3 x i8] c", \00" @.str949 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str950 = private unnamed_addr constant [3 x i8] c", \00" @.str951 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str952 = private unnamed_addr constant [3 x i8] c", \00" @.str953 = private unnamed_addr constant [4 x i8] c"int\00" @.str954 = private unnamed_addr constant [10 x i8] c"ping_pong\00" @.str955 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str956 = private unnamed_addr constant [4 x i8] c", 2\00" @.str957 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str958 = private unnamed_addr constant [3 x i8] c", \00" @.str959 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str960 = private unnamed_addr constant [3 x i8] c", \00" @.str961 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str962 = private unnamed_addr constant [3 x i8] c", \00" @.str963 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str964 = private unnamed_addr constant [3 x i8] c", \00" @.str965 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str966 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str967 = private unnamed_addr constant [4 x i8] c", 0\00" @.str968 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str969 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str970 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str971 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str972 = private unnamed_addr constant [3 x i8] c", \00" @.str973 = private unnamed_addr constant [4 x i8] c"int\00" @.str974 = private unnamed_addr constant [8 x i8] c"snapped\00" @.str975 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str976 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str977 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str978 = private unnamed_addr constant [5 x i8] c", 16\00" @.str979 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str980 = private unnamed_addr constant [3 x i8] c", \00" @.str981 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str982 = private unnamed_addr constant [12 x i8] c"move_toward\00" @.str983 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str984 = private unnamed_addr constant [3 x i8] c", \00" @.str985 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str986 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str987 = private unnamed_addr constant [4 x i8] c", 0\00" @.str988 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str989 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str990 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str991 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str992 = private unnamed_addr constant [4 x i8] c", 0\00" @.str993 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str994 = private unnamed_addr constant [4 x i8] c", 0\00" @.str995 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str996 = private unnamed_addr constant [16 x i8] c", i32 -1, i32 0\00" @.str997 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str998 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str999 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str1000 = private unnamed_addr constant [3 x i8] c", \00" @.str1001 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1002 = private unnamed_addr constant [3 x i8] c", \00" @.str1003 = private unnamed_addr constant [14 x i8] c"icmp sle i32 \00" @.str1004 = private unnamed_addr constant [3 x i8] c", \00" @.str1005 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str1006 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1007 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1008 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1009 = private unnamed_addr constant [11 x i8] c"smoothstep\00" @.str1010 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str1011 = private unnamed_addr constant [4 x i8] c", 0\00" @.str1012 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str1013 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str1014 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str1015 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str1016 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str1017 = private unnamed_addr constant [18 x i8] c", i32 65536, i32 \00" @.str1018 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str1019 = private unnamed_addr constant [4 x i8] c", 2\00" @.str1020 = private unnamed_addr constant [17 x i8] c"sub i32 196608, \00" @.str1021 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1022 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1023 = 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" @.str1024 = private unnamed_addr constant [34 x i8] c"define i32 @fn_fx_sqrt(i32 %x) {\0A\00" @.str1025 = 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" @.str1026 = private unnamed_addr constant [19 x i8] c"ret0:\0A ret i32 0\0A\00" @.str1027 = private unnamed_addr constant [58 x i8] c"go:\0A %x64 = sext i32 %x to i64\0A %n0 = shl i64 %x64, 16\0A\00" @.str1028 = private unnamed_addr constant [58 x i8] c" %np = alloca i64\0A %rp = alloca i64\0A %bp = alloca i64\0A\00" @.str1029 = 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" @.str1030 = 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" @.str1031 = 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" @.str1032 = 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" @.str1033 = 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" @.str1034 = 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" @.str1035 = 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" @.str1036 = 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" @.str1037 = 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" @.str1038 = private unnamed_addr constant [33 x i8] c"define i32 @fn_fx_sin(i32 %x) {\0A\00" @.str1039 = 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" @.str1040 = 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" @.str1041 = private unnamed_addr constant [51 x i8] c" %i1 = add i64 %i0m, 1\0A %i1m = and i64 %i1, 255\0A\00" @.str1042 = 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" @.str1043 = 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" @.str1044 = 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" @.str1045 = private unnamed_addr constant [43 x i8] c"define i32 @fn_fx_atan2(i32 %y, i32 %x) {\0A\00" @.str1046 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1047 = private unnamed_addr constant [27 x i8] c" %xz = icmp eq i32 %x, 0\0A\00" @.str1048 = private unnamed_addr constant [27 x i8] c" %yz = icmp eq i32 %y, 0\0A\00" @.str1049 = private unnamed_addr constant [28 x i8] c" %both0 = and i1 %xz, %yz\0A\00" @.str1050 = private unnamed_addr constant [37 x i8] c" br i1 %both0, label %z, label %go\0A\00" @.str1051 = private unnamed_addr constant [4 x i8] c"z:\0A\00" @.str1052 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" @.str1053 = private unnamed_addr constant [5 x i8] c"go:\0A\00" @.str1054 = private unnamed_addr constant [30 x i8] c" %yneg = icmp slt i32 %y, 0\0A\00" @.str1055 = private unnamed_addr constant [24 x i8] c" %yng = sub i32 0, %y\0A\00" @.str1056 = private unnamed_addr constant [44 x i8] c" %ay0 = select i1 %yneg, i32 %yng, i32 %y\0A\00" @.str1057 = private unnamed_addr constant [25 x i8] c" %ay = add i32 %ay0, 1\0A\00" @.str1058 = private unnamed_addr constant [30 x i8] c" %xpos = icmp sge i32 %x, 0\0A\00" @.str1059 = private unnamed_addr constant [37 x i8] c" br i1 %xpos, label %xp, label %xn\0A\00" @.str1060 = private unnamed_addr constant [5 x i8] c"xp:\0A\00" @.str1061 = private unnamed_addr constant [25 x i8] c" %n1 = sub i32 %x, %ay\0A\00" @.str1062 = private unnamed_addr constant [25 x i8] c" %d1 = add i32 %x, %ay\0A\00" @.str1063 = private unnamed_addr constant [16 x i8] c" br label %dv\0A\00" @.str1064 = private unnamed_addr constant [5 x i8] c"xn:\0A\00" @.str1065 = private unnamed_addr constant [25 x i8] c" %n2 = add i32 %x, %ay\0A\00" @.str1066 = private unnamed_addr constant [25 x i8] c" %d2 = sub i32 %ay, %x\0A\00" @.str1067 = private unnamed_addr constant [16 x i8] c" br label %dv\0A\00" @.str1068 = private unnamed_addr constant [5 x i8] c"dv:\0A\00" @.str1069 = private unnamed_addr constant [45 x i8] c" %num = phi i32 [ %n1, %xp ], [ %n2, %xn ]\0A\00" @.str1070 = private unnamed_addr constant [45 x i8] c" %den = phi i32 [ %d1, %xp ], [ %d2, %xn ]\0A\00" @.str1071 = private unnamed_addr constant [51 x i8] c" %base = phi i32 [ 51472, %xp ], [ 154416, %xn ]\0A\00" @.str1072 = private unnamed_addr constant [31 x i8] c" %n64 = sext i32 %num to i64\0A\00" @.str1073 = private unnamed_addr constant [27 x i8] c" %nsh = shl i64 %n64, 16\0A\00" @.str1074 = private unnamed_addr constant [31 x i8] c" %d64 = sext i32 %den to i64\0A\00" @.str1075 = private unnamed_addr constant [30 x i8] c" %rdv = sdiv i64 %nsh, %d64\0A\00" @.str1076 = private unnamed_addr constant [30 x i8] c" %r = trunc i64 %rdv to i32\0A\00" @.str1077 = private unnamed_addr constant [30 x i8] c" %r64a = sext i32 %r to i64\0A\00" @.str1078 = private unnamed_addr constant [30 x i8] c" %r64b = sext i32 %r to i64\0A\00" @.str1079 = private unnamed_addr constant [30 x i8] c" %rr = mul i64 %r64a, %r64b\0A\00" @.str1080 = private unnamed_addr constant [27 x i8] c" %rrs = ashr i64 %rr, 16\0A\00" @.str1081 = private unnamed_addr constant [31 x i8] c" %r2 = trunc i64 %rrs to i32\0A\00" @.str1082 = private unnamed_addr constant [30 x i8] c" %r2e = sext i32 %r2 to i64\0A\00" @.str1083 = private unnamed_addr constant [28 x i8] c" %re = sext i32 %r to i64\0A\00" @.str1084 = private unnamed_addr constant [28 x i8] c" %r3m = mul i64 %r2e, %re\0A\00" @.str1085 = private unnamed_addr constant [28 x i8] c" %r3s = ashr i64 %r3m, 16\0A\00" @.str1086 = private unnamed_addr constant [31 x i8] c" %r3 = trunc i64 %r3s to i32\0A\00" @.str1087 = private unnamed_addr constant [30 x i8] c" %r3e = sext i32 %r3 to i64\0A\00" @.str1088 = private unnamed_addr constant [29 x i8] c" %c1 = mul i64 %r3e, 12865\0A\00" @.str1089 = private unnamed_addr constant [27 x i8] c" %c1s = ashr i64 %c1, 16\0A\00" @.str1090 = private unnamed_addr constant [31 x i8] c" %t1 = trunc i64 %c1s to i32\0A\00" @.str1091 = private unnamed_addr constant [29 x i8] c" %re2 = sext i32 %r to i64\0A\00" @.str1092 = private unnamed_addr constant [29 x i8] c" %c2 = mul i64 %re2, 64337\0A\00" @.str1093 = private unnamed_addr constant [27 x i8] c" %c2s = ashr i64 %c2, 16\0A\00" @.str1094 = private unnamed_addr constant [31 x i8] c" %t2 = trunc i64 %c2s to i32\0A\00" @.str1095 = private unnamed_addr constant [28 x i8] c" %poly = sub i32 %t1, %t2\0A\00" @.str1096 = private unnamed_addr constant [33 x i8] c" %angle = add i32 %poly, %base\0A\00" @.str1097 = private unnamed_addr constant [31 x i8] c" %angneg = sub i32 0, %angle\0A\00" @.str1098 = private unnamed_addr constant [51 x i8] c" %res = select i1 %yneg, i32 %angneg, i32 %angle\0A\00" @.str1099 = private unnamed_addr constant [16 x i8] c" ret i32 %res\0A\00" @.str1100 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1101 = private unnamed_addr constant [34 x i8] c"define i32 @fn_fx_exp2(i32 %x) {\0A\00" @.str1102 = 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" @.str1103 = 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" @.str1104 = 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" @.str1105 = 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" @.str1106 = 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" @.str1107 = 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" @.str1108 = private unnamed_addr constant [29 x i8] c" %p = trunc i64 %p1 to i32\0A\00" @.str1109 = private unnamed_addr constant [30 x i8] c" %ipos = icmp sge i32 %i, 0\0A\00" @.str1110 = 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" @.str1111 = private unnamed_addr constant [26 x i8] c" %shl = shl i32 %p, %sa\0A\00" @.str1112 = 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" @.str1113 = private unnamed_addr constant [27 x i8] c" %shr = ashr i32 %p, %ra\0A\00" @.str1114 = private unnamed_addr constant [63 x i8] c" %res = select i1 %ipos, i32 %shl, i32 %shr\0A ret i32 %res\0A}\0A\00" @.str1115 = private unnamed_addr constant [37 x i8] c"declare i32 @llvm.ctlz.i32(i32, i1)\0A\00" @.str1116 = private unnamed_addr constant [34 x i8] c"define i32 @fn_fx_log2(i32 %x) {\0A\00" @.str1117 = 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" @.str1118 = private unnamed_addr constant [28 x i8] c"neg:\0A ret i32 -2147483648\0A\00" @.str1119 = 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" @.str1120 = private unnamed_addr constant [49 x i8] c" %e = sub i32 %pmsb, 16\0A %ef = shl i32 %e, 16\0A\00" @.str1121 = 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" @.str1122 = 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" @.str1123 = private unnamed_addr constant [55 x i8] c" %num = sub i32 %m, 65536\0A %den = add i32 %m, 65536\0A\00" @.str1124 = 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" @.str1125 = 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" @.str1126 = 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" @.str1127 = 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" @.str1128 = 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" @.str1129 = 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" @.str1130 = 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" @.str1131 = private unnamed_addr constant [45 x i8] c" %res = add i32 %ef, %l2m\0A ret i32 %res\0A}\0A\00" @.str1132 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str1133 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str1134 = private unnamed_addr constant [9 x i8] c"shl i64 \00" @.str1135 = private unnamed_addr constant [5 x i8] c", 32\00" @.str1136 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str1137 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str1138 = private unnamed_addr constant [8 x i8] c"or i64 \00" @.str1139 = private unnamed_addr constant [3 x i8] c", \00" @.str1140 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str1141 = private unnamed_addr constant [5 x i8] c", 32\00" @.str1142 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str1143 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1144 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str1145 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1146 = private unnamed_addr constant [5 x i8] c"make\00" @.str1147 = private unnamed_addr constant [5 x i8] c"zero\00" @.str1148 = private unnamed_addr constant [2 x i8] c"x\00" @.str1149 = private unnamed_addr constant [2 x i8] c"y\00" @.str1150 = private unnamed_addr constant [4 x i8] c"add\00" @.str1151 = private unnamed_addr constant [4 x i8] c"sub\00" @.str1152 = private unnamed_addr constant [6 x i8] c"scale\00" @.str1153 = private unnamed_addr constant [4 x i8] c"dot\00" @.str1154 = private unnamed_addr constant [7 x i8] c"length\00" @.str1155 = private unnamed_addr constant [9 x i8] c"distance\00" @.str1156 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str1157 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str1158 = private unnamed_addr constant [7 x i8] c"rotate\00" @.str1159 = private unnamed_addr constant [6 x i8] c"angle\00" @.str1160 = private unnamed_addr constant [11 x i8] c"from_angle\00" @.str1161 = private unnamed_addr constant [5 x i8] c"zero\00" @.str1162 = private unnamed_addr constant [2 x i8] c"0\00" @.str1163 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1164 = private unnamed_addr constant [5 x i8] c"make\00" @.str1165 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1166 = private unnamed_addr constant [2 x i8] c"x\00" @.str1167 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1168 = private unnamed_addr constant [2 x i8] c"y\00" @.str1169 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1170 = private unnamed_addr constant [4 x i8] c"add\00" @.str1171 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1172 = private unnamed_addr constant [3 x i8] c", \00" @.str1173 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1174 = private unnamed_addr constant [3 x i8] c", \00" @.str1175 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1176 = private unnamed_addr constant [4 x i8] c"sub\00" @.str1177 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str1178 = private unnamed_addr constant [3 x i8] c", \00" @.str1179 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str1180 = private unnamed_addr constant [3 x i8] c", \00" @.str1181 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1182 = private unnamed_addr constant [6 x i8] c"scale\00" @.str1183 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1184 = private unnamed_addr constant [4 x i8] c"dot\00" @.str1185 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1186 = private unnamed_addr constant [3 x i8] c", \00" @.str1187 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1188 = private unnamed_addr constant [7 x i8] c"length\00" @.str1189 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1190 = private unnamed_addr constant [3 x i8] c", \00" @.str1191 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str1192 = private unnamed_addr constant [2 x i8] c")\00" @.str1193 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1194 = private unnamed_addr constant [9 x i8] c"distance\00" @.str1195 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str1196 = private unnamed_addr constant [3 x i8] c", \00" @.str1197 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str1198 = private unnamed_addr constant [3 x i8] c", \00" @.str1199 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1200 = private unnamed_addr constant [3 x i8] c", \00" @.str1201 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str1202 = private unnamed_addr constant [2 x i8] c")\00" @.str1203 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1204 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str1205 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1206 = private unnamed_addr constant [3 x i8] c", \00" @.str1207 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_sqrt(i32 \00" @.str1208 = private unnamed_addr constant [2 x i8] c")\00" @.str1209 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str1210 = private unnamed_addr constant [4 x i8] c", 0\00" @.str1211 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str1212 = private unnamed_addr constant [18 x i8] c", i32 65536, i32 \00" @.str1213 = private unnamed_addr constant [6 x i8] c"65536\00" @.str1214 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1215 = private unnamed_addr constant [7 x i8] c"rotate\00" @.str1216 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str1217 = private unnamed_addr constant [2 x i8] c")\00" @.str1218 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1219 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str1220 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str1221 = private unnamed_addr constant [2 x i8] c")\00" @.str1222 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str1223 = private unnamed_addr constant [3 x i8] c", \00" @.str1224 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1225 = private unnamed_addr constant [3 x i8] c", \00" @.str1226 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1227 = private unnamed_addr constant [6 x i8] c"angle\00" @.str1228 = private unnamed_addr constant [27 x i8] c"call i32 @fn_fx_atan2(i32 \00" @.str1229 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1230 = private unnamed_addr constant [2 x i8] c")\00" @.str1231 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str1232 = private unnamed_addr constant [11 x i8] c"from_angle\00" @.str1233 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str1234 = private unnamed_addr constant [2 x i8] c")\00" @.str1235 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1236 = private unnamed_addr constant [9 x i8] c", 102944\00" @.str1237 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str1238 = private unnamed_addr constant [2 x i8] c")\00" @.str1239 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1240 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str1241 = private unnamed_addr constant [7 x i8] c"length\00" @.str1242 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str1243 = private unnamed_addr constant [6 x i8] c"slice\00" @.str1244 = private unnamed_addr constant [7 x i8] c"equals\00" @.str1245 = private unnamed_addr constant [7 x i8] c"concat\00" @.str1246 = private unnamed_addr constant [7 x i8] c"to_int\00" @.str1247 = private unnamed_addr constant [9 x i8] c"from_int\00" @.str1248 = private unnamed_addr constant [12 x i8] c"starts_with\00" @.str1249 = private unnamed_addr constant [10 x i8] c"ends_with\00" @.str1250 = private unnamed_addr constant [9 x i8] c"contains\00" @.str1251 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str1252 = private unnamed_addr constant [6 x i8] c"upper\00" @.str1253 = private unnamed_addr constant [6 x i8] c"lower\00" @.str1254 = private unnamed_addr constant [5 x i8] c"trim\00" @.str1255 = private unnamed_addr constant [7 x i8] c"repeat\00" @.str1256 = private unnamed_addr constant [9 x i8] c"pad_left\00" @.str1257 = private unnamed_addr constant [10 x i8] c"pad_right\00" @.str1258 = private unnamed_addr constant [6 x i8] c"split\00" @.str1259 = private unnamed_addr constant [5 x i8] c"join\00" @.str1260 = private unnamed_addr constant [8 x i8] c"replace\00" @.str1261 = private unnamed_addr constant [9 x i8] c"from_int\00" @.str1262 = private unnamed_addr constant [26 x i8] c"call ptr @fn_int_str(i32 \00" @.str1263 = private unnamed_addr constant [2 x i8] c")\00" @.str1264 = private unnamed_addr constant [7 x i8] c"string\00" @.str1265 = private unnamed_addr constant [6 x i8] c"slice\00" @.str1266 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_slice(ptr \00" @.str1267 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1268 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1269 = private unnamed_addr constant [2 x i8] c")\00" @.str1270 = private unnamed_addr constant [7 x i8] c"string\00" @.str1271 = private unnamed_addr constant [7 x i8] c"equals\00" @.str1272 = private unnamed_addr constant [25 x i8] c"call i32 @fn_str_eq(ptr \00" @.str1273 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1274 = private unnamed_addr constant [2 x i8] c")\00" @.str1275 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1276 = private unnamed_addr constant [7 x i8] c"concat\00" @.str1277 = private unnamed_addr constant [29 x i8] c"call ptr @fn_str_concat(ptr \00" @.str1278 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1279 = private unnamed_addr constant [2 x i8] c")\00" @.str1280 = private unnamed_addr constant [7 x i8] c"string\00" @.str1281 = private unnamed_addr constant [7 x i8] c"length\00" @.str1282 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str1283 = private unnamed_addr constant [2 x i8] c")\00" @.str1284 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str1285 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1286 = private unnamed_addr constant [4 x i8] c"int\00" @.str1287 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str1288 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str1289 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1290 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str1291 = private unnamed_addr constant [9 x i8] c"zext i8 \00" @.str1292 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1293 = private unnamed_addr constant [4 x i8] c"int\00" @.str1294 = private unnamed_addr constant [7 x i8] c"to_int\00" @.str1295 = private unnamed_addr constant [20 x i8] c"call i32 @atoi(ptr \00" @.str1296 = private unnamed_addr constant [2 x i8] c")\00" @.str1297 = private unnamed_addr constant [4 x i8] c"int\00" @.str1298 = private unnamed_addr constant [6 x i8] c"upper\00" @.str1299 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_upper(ptr \00" @.str1300 = private unnamed_addr constant [2 x i8] c")\00" @.str1301 = private unnamed_addr constant [7 x i8] c"string\00" @.str1302 = private unnamed_addr constant [6 x i8] c"lower\00" @.str1303 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_lower(ptr \00" @.str1304 = private unnamed_addr constant [2 x i8] c")\00" @.str1305 = private unnamed_addr constant [7 x i8] c"string\00" @.str1306 = private unnamed_addr constant [5 x i8] c"trim\00" @.str1307 = private unnamed_addr constant [27 x i8] c"call ptr @fn_str_trim(ptr \00" @.str1308 = private unnamed_addr constant [2 x i8] c")\00" @.str1309 = private unnamed_addr constant [7 x i8] c"string\00" @.str1310 = private unnamed_addr constant [7 x i8] c"repeat\00" @.str1311 = private unnamed_addr constant [29 x i8] c"call ptr @fn_str_repeat(ptr \00" @.str1312 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1313 = private unnamed_addr constant [2 x i8] c")\00" @.str1314 = private unnamed_addr constant [7 x i8] c"string\00" @.str1315 = private unnamed_addr constant [9 x i8] c"pad_left\00" @.str1316 = private unnamed_addr constant [26 x i8] c"call ptr @fn_str_pad(ptr \00" @.str1317 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1318 = private unnamed_addr constant [8 x i8] c", i1 1)\00" @.str1319 = private unnamed_addr constant [7 x i8] c"string\00" @.str1320 = private unnamed_addr constant [10 x i8] c"pad_right\00" @.str1321 = private unnamed_addr constant [26 x i8] c"call ptr @fn_str_pad(ptr \00" @.str1322 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str1323 = private unnamed_addr constant [8 x i8] c", i1 0)\00" @.str1324 = private unnamed_addr constant [7 x i8] c"string\00" @.str1325 = private unnamed_addr constant [8 x i8] c"replace\00" @.str1326 = private unnamed_addr constant [30 x i8] c"call ptr @fn_str_replace(ptr \00" @.str1327 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1328 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1329 = private unnamed_addr constant [2 x i8] c")\00" @.str1330 = private unnamed_addr constant [7 x i8] c"string\00" @.str1331 = private unnamed_addr constant [6 x i8] c"split\00" @.str1332 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_split(ptr \00" @.str1333 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1334 = private unnamed_addr constant [2 x i8] c")\00" @.str1335 = private unnamed_addr constant [9 x i8] c"[]string\00" @.str1336 = private unnamed_addr constant [5 x i8] c"join\00" @.str1337 = private unnamed_addr constant [27 x i8] c"call ptr @fn_str_join(ptr \00" @.str1338 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1339 = private unnamed_addr constant [2 x i8] c")\00" @.str1340 = private unnamed_addr constant [7 x i8] c"string\00" @.str1341 = private unnamed_addr constant [9 x i8] c"contains\00" @.str1342 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str1343 = private unnamed_addr constant [22 x i8] c"call ptr @strstr(ptr \00" @.str1344 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1345 = private unnamed_addr constant [2 x i8] c")\00" @.str1346 = private unnamed_addr constant [9 x i8] c"contains\00" @.str1347 = private unnamed_addr constant [13 x i8] c"icmp ne ptr \00" @.str1348 = private unnamed_addr constant [7 x i8] c", null\00" @.str1349 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str1350 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1351 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1352 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" @.str1353 = private unnamed_addr constant [7 x i8] c", null\00" @.str1354 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" @.str1355 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str1356 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" @.str1357 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str1358 = private unnamed_addr constant [9 x i8] c"sub i64 \00" @.str1359 = private unnamed_addr constant [3 x i8] c", \00" @.str1360 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str1361 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1362 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str1363 = private unnamed_addr constant [15 x i8] c", i32 -1, i32 \00" @.str1364 = private unnamed_addr constant [4 x i8] c"int\00" @.str1365 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str1366 = private unnamed_addr constant [2 x i8] c")\00" @.str1367 = private unnamed_addr constant [12 x i8] c"starts_with\00" @.str1368 = private unnamed_addr constant [23 x i8] c"call i32 @strncmp(ptr \00" @.str1369 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1370 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str1371 = private unnamed_addr constant [2 x i8] c")\00" @.str1372 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str1373 = private unnamed_addr constant [4 x i8] c", 0\00" @.str1374 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str1375 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1376 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1377 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str1378 = private unnamed_addr constant [2 x i8] c")\00" @.str1379 = private unnamed_addr constant [9 x i8] c"sub i64 \00" @.str1380 = private unnamed_addr constant [3 x i8] c", \00" @.str1381 = private unnamed_addr constant [4 x i8] c"i32\00" @.str1382 = private unnamed_addr constant [4 x i8] c"i32\00" @.str1383 = private unnamed_addr constant [2 x i8] c"0\00" @.str1384 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" @.str1385 = private unnamed_addr constant [4 x i8] c", 0\00" @.str1386 = private unnamed_addr constant [7 x i8] c"ew_cmp\00" @.str1387 = private unnamed_addr constant [7 x i8] c"ew_end\00" @.str1388 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str1389 = private unnamed_addr constant [10 x i8] c", label %\00" @.str1390 = private unnamed_addr constant [10 x i8] c", label %\00" @.str1391 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1392 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str1393 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str1394 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str1395 = private unnamed_addr constant [23 x i8] c"call i32 @strncmp(ptr \00" @.str1396 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1397 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str1398 = private unnamed_addr constant [2 x i8] c")\00" @.str1399 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str1400 = private unnamed_addr constant [4 x i8] c", 0\00" @.str1401 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str1402 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str1403 = private unnamed_addr constant [4 x i8] c"i32\00" @.str1404 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1405 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1406 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str1407 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str1408 = private unnamed_addr constant [5 x i8] c"bool\00" @.str1409 = private unnamed_addr constant [36 x i8] c"define ptr @fn_str_upper(ptr %s) {\0A\00" @.str1410 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1411 = private unnamed_addr constant [33 x i8] c" %n = call i64 @strlen(ptr %s)\0A\00" @.str1412 = private unnamed_addr constant [23 x i8] c" %sz = add i64 %n, 1\0A\00" @.str1413 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str1414 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1415 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1416 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1417 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str1418 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1419 = private unnamed_addr constant [28 x i8] c" %d = icmp ult i64 %i, %n\0A\00" @.str1420 = private unnamed_addr constant [37 x i8] c" br i1 %d, label %body, label %fin\0A\00" @.str1421 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str1422 = private unnamed_addr constant [42 x i8] c" %sp = getelementptr i8, ptr %s, i64 %i\0A\00" @.str1423 = private unnamed_addr constant [25 x i8] c" %c = load i8, ptr %sp\0A\00" @.str1424 = private unnamed_addr constant [28 x i8] c" %ge = icmp uge i8 %c, 97\0A\00" @.str1425 = private unnamed_addr constant [29 x i8] c" %le = icmp ule i8 %c, 122\0A\00" @.str1426 = private unnamed_addr constant [25 x i8] c" %in = and i1 %ge, %le\0A\00" @.str1427 = private unnamed_addr constant [24 x i8] c" %cc = add i8 %c, -32\0A\00" @.str1428 = private unnamed_addr constant [38 x i8] c" %oc = select i1 %in, i8 %cc, i8 %c\0A\00" @.str1429 = private unnamed_addr constant [44 x i8] c" %op = getelementptr i8, ptr %out, i64 %i\0A\00" @.str1430 = private unnamed_addr constant [25 x i8] c" store i8 %oc, ptr %op\0A\00" @.str1431 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1432 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1433 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1434 = private unnamed_addr constant [6 x i8] c"fin:\0A\00" @.str1435 = private unnamed_addr constant [44 x i8] c" %tp = getelementptr i8, ptr %out, i64 %n\0A\00" @.str1436 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str1437 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str1438 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1439 = private unnamed_addr constant [36 x i8] c"define ptr @fn_str_lower(ptr %s) {\0A\00" @.str1440 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1441 = private unnamed_addr constant [33 x i8] c" %n = call i64 @strlen(ptr %s)\0A\00" @.str1442 = private unnamed_addr constant [23 x i8] c" %sz = add i64 %n, 1\0A\00" @.str1443 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str1444 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1445 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1446 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1447 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str1448 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1449 = private unnamed_addr constant [28 x i8] c" %d = icmp ult i64 %i, %n\0A\00" @.str1450 = private unnamed_addr constant [37 x i8] c" br i1 %d, label %body, label %fin\0A\00" @.str1451 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str1452 = private unnamed_addr constant [42 x i8] c" %sp = getelementptr i8, ptr %s, i64 %i\0A\00" @.str1453 = private unnamed_addr constant [25 x i8] c" %c = load i8, ptr %sp\0A\00" @.str1454 = private unnamed_addr constant [28 x i8] c" %ge = icmp uge i8 %c, 65\0A\00" @.str1455 = private unnamed_addr constant [28 x i8] c" %le = icmp ule i8 %c, 90\0A\00" @.str1456 = private unnamed_addr constant [25 x i8] c" %in = and i1 %ge, %le\0A\00" @.str1457 = private unnamed_addr constant [23 x i8] c" %cc = add i8 %c, 32\0A\00" @.str1458 = private unnamed_addr constant [38 x i8] c" %oc = select i1 %in, i8 %cc, i8 %c\0A\00" @.str1459 = private unnamed_addr constant [44 x i8] c" %op = getelementptr i8, ptr %out, i64 %i\0A\00" @.str1460 = private unnamed_addr constant [25 x i8] c" store i8 %oc, ptr %op\0A\00" @.str1461 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1462 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1463 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1464 = private unnamed_addr constant [6 x i8] c"fin:\0A\00" @.str1465 = private unnamed_addr constant [44 x i8] c" %tp = getelementptr i8, ptr %out, i64 %n\0A\00" @.str1466 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str1467 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str1468 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1469 = private unnamed_addr constant [35 x i8] c"define ptr @fn_str_trim(ptr %s) {\0A\00" @.str1470 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1471 = private unnamed_addr constant [33 x i8] c" %n = call i64 @strlen(ptr %s)\0A\00" @.str1472 = private unnamed_addr constant [20 x i8] c" %sp = alloca i64\0A\00" @.str1473 = private unnamed_addr constant [20 x i8] c" %ep = alloca i64\0A\00" @.str1474 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %sp\0A\00" @.str1475 = private unnamed_addr constant [25 x i8] c" store i64 %n, ptr %ep\0A\00" @.str1476 = private unnamed_addr constant [19 x i8] c" br label %lcond\0A\00" @.str1477 = private unnamed_addr constant [8 x i8] c"lcond:\0A\00" @.str1478 = private unnamed_addr constant [27 x i8] c" %a0 = load i64, ptr %sp\0A\00" @.str1479 = private unnamed_addr constant [27 x i8] c" %e0 = load i64, ptr %ep\0A\00" @.str1480 = private unnamed_addr constant [32 x i8] c" %lt0 = icmp ult i64 %a0, %e0\0A\00" @.str1481 = private unnamed_addr constant [41 x i8] c" br i1 %lt0, label %lchk, label %rcond\0A\00" @.str1482 = private unnamed_addr constant [7 x i8] c"lchk:\0A\00" @.str1483 = private unnamed_addr constant [43 x i8] c" %p0 = getelementptr i8, ptr %s, i64 %a0\0A\00" @.str1484 = private unnamed_addr constant [26 x i8] c" %c0 = load i8, ptr %p0\0A\00" @.str1485 = private unnamed_addr constant [36 x i8] c" %ws0 = call i1 @fn_is_ws(i8 %c0)\0A\00" @.str1486 = private unnamed_addr constant [41 x i8] c" br i1 %ws0, label %linc, label %rcond\0A\00" @.str1487 = private unnamed_addr constant [7 x i8] c"linc:\0A\00" @.str1488 = private unnamed_addr constant [24 x i8] c" %a1 = add i64 %a0, 1\0A\00" @.str1489 = private unnamed_addr constant [26 x i8] c" store i64 %a1, ptr %sp\0A\00" @.str1490 = private unnamed_addr constant [19 x i8] c" br label %lcond\0A\00" @.str1491 = private unnamed_addr constant [8 x i8] c"rcond:\0A\00" @.str1492 = private unnamed_addr constant [27 x i8] c" %a2 = load i64, ptr %sp\0A\00" @.str1493 = private unnamed_addr constant [27 x i8] c" %e2 = load i64, ptr %ep\0A\00" @.str1494 = private unnamed_addr constant [32 x i8] c" %lt2 = icmp ult i64 %a2, %e2\0A\00" @.str1495 = private unnamed_addr constant [41 x i8] c" br i1 %lt2, label %rchk, label %build\0A\00" @.str1496 = private unnamed_addr constant [7 x i8] c"rchk:\0A\00" @.str1497 = private unnamed_addr constant [25 x i8] c" %em1 = sub i64 %e2, 1\0A\00" @.str1498 = private unnamed_addr constant [44 x i8] c" %p1 = getelementptr i8, ptr %s, i64 %em1\0A\00" @.str1499 = private unnamed_addr constant [26 x i8] c" %c1 = load i8, ptr %p1\0A\00" @.str1500 = private unnamed_addr constant [36 x i8] c" %ws1 = call i1 @fn_is_ws(i8 %c1)\0A\00" @.str1501 = private unnamed_addr constant [41 x i8] c" br i1 %ws1, label %rdec, label %build\0A\00" @.str1502 = private unnamed_addr constant [7 x i8] c"rdec:\0A\00" @.str1503 = private unnamed_addr constant [27 x i8] c" store i64 %em1, ptr %ep\0A\00" @.str1504 = private unnamed_addr constant [19 x i8] c" br label %rcond\0A\00" @.str1505 = private unnamed_addr constant [8 x i8] c"build:\0A\00" @.str1506 = private unnamed_addr constant [27 x i8] c" %st = load i64, ptr %sp\0A\00" @.str1507 = private unnamed_addr constant [27 x i8] c" %en = load i64, ptr %ep\0A\00" @.str1508 = private unnamed_addr constant [27 x i8] c" %len = sub i64 %en, %st\0A\00" @.str1509 = private unnamed_addr constant [25 x i8] c" %sz = add i64 %len, 1\0A\00" @.str1510 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str1511 = private unnamed_addr constant [44 x i8] c" %src = getelementptr i8, ptr %s, i64 %st\0A\00" @.str1512 = private unnamed_addr constant [50 x i8] c" call ptr @memcpy(ptr %out, ptr %src, i64 %len)\0A\00" @.str1513 = private unnamed_addr constant [46 x i8] c" %tp = getelementptr i8, ptr %out, i64 %len\0A\00" @.str1514 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str1515 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str1516 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1517 = private unnamed_addr constant [30 x i8] c"define i1 @fn_is_ws(i8 %c) {\0A\00" @.str1518 = private unnamed_addr constant [26 x i8] c" %a = icmp eq i8 %c, 32\0A\00" @.str1519 = private unnamed_addr constant [25 x i8] c" %b = icmp eq i8 %c, 9\0A\00" @.str1520 = private unnamed_addr constant [26 x i8] c" %d = icmp eq i8 %c, 10\0A\00" @.str1521 = private unnamed_addr constant [26 x i8] c" %e = icmp eq i8 %c, 13\0A\00" @.str1522 = private unnamed_addr constant [22 x i8] c" %ab = or i1 %a, %b\0A\00" @.str1523 = private unnamed_addr constant [22 x i8] c" %de = or i1 %d, %e\0A\00" @.str1524 = private unnamed_addr constant [23 x i8] c" %r = or i1 %ab, %de\0A\00" @.str1525 = private unnamed_addr constant [13 x i8] c" ret i1 %r\0A\00" @.str1526 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1527 = private unnamed_addr constant [47 x i8] c"define ptr @fn_str_repeat(ptr %s, i32 %n32) {\0A\00" @.str1528 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1529 = private unnamed_addr constant [32 x i8] c" %nneg = icmp slt i32 %n32, 0\0A\00" @.str1530 = private unnamed_addr constant [42 x i8] c" %nn = select i1 %nneg, i32 0, i32 %n32\0A\00" @.str1531 = private unnamed_addr constant [28 x i8] c" %n = zext i32 %nn to i64\0A\00" @.str1532 = private unnamed_addr constant [33 x i8] c" %L = call i64 @strlen(ptr %s)\0A\00" @.str1533 = private unnamed_addr constant [25 x i8] c" %tot = mul i64 %L, %n\0A\00" @.str1534 = private unnamed_addr constant [25 x i8] c" %sz = add i64 %tot, 1\0A\00" @.str1535 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str1536 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1537 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1538 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1539 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str1540 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1541 = private unnamed_addr constant [28 x i8] c" %d = icmp ult i64 %i, %n\0A\00" @.str1542 = private unnamed_addr constant [37 x i8] c" br i1 %d, label %body, label %fin\0A\00" @.str1543 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str1544 = private unnamed_addr constant [25 x i8] c" %off = mul i64 %i, %L\0A\00" @.str1545 = private unnamed_addr constant [47 x i8] c" %dst = getelementptr i8, ptr %out, i64 %off\0A\00" @.str1546 = private unnamed_addr constant [46 x i8] c" call ptr @memcpy(ptr %dst, ptr %s, i64 %L)\0A\00" @.str1547 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1548 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1549 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1550 = private unnamed_addr constant [6 x i8] c"fin:\0A\00" @.str1551 = private unnamed_addr constant [46 x i8] c" %tp = getelementptr i8, ptr %out, i64 %tot\0A\00" @.str1552 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str1553 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str1554 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1555 = private unnamed_addr constant [54 x i8] c"define ptr @fn_str_pad(ptr %s, i32 %w32, i1 %left) {\0A\00" @.str1556 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1557 = private unnamed_addr constant [33 x i8] c" %L = call i64 @strlen(ptr %s)\0A\00" @.str1558 = private unnamed_addr constant [30 x i8] c" %w0 = sext i32 %w32 to i64\0A\00" @.str1559 = private unnamed_addr constant [32 x i8] c" %need = icmp ugt i64 %w0, %L\0A\00" @.str1560 = private unnamed_addr constant [39 x i8] c" br i1 %need, label %do, label %copy\0A\00" @.str1561 = private unnamed_addr constant [7 x i8] c"copy:\0A\00" @.str1562 = private unnamed_addr constant [24 x i8] c" %sz0 = add i64 %L, 1\0A\00" @.str1563 = private unnamed_addr constant [36 x i8] c" %o0 = call ptr @malloc(i64 %sz0)\0A\00" @.str1564 = private unnamed_addr constant [23 x i8] c" %e0 = add i64 %L, 0\0A\00" @.str1565 = private unnamed_addr constant [45 x i8] c" call ptr @memcpy(ptr %o0, ptr %s, i64 %L)\0A\00" @.str1566 = private unnamed_addr constant [43 x i8] c" %t0 = getelementptr i8, ptr %o0, i64 %L\0A\00" @.str1567 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %t0\0A\00" @.str1568 = private unnamed_addr constant [15 x i8] c" ret ptr %o0\0A\00" @.str1569 = private unnamed_addr constant [5 x i8] c"do:\0A\00" @.str1570 = private unnamed_addr constant [26 x i8] c" %pad = sub i64 %w0, %L\0A\00" @.str1571 = private unnamed_addr constant [24 x i8] c" %sz = add i64 %w0, 1\0A\00" @.str1572 = private unnamed_addr constant [36 x i8] c" %out = call ptr @malloc(i64 %sz)\0A\00" @.str1573 = private unnamed_addr constant [48 x i8] c" br i1 %left, label %padleft, label %padright\0A\00" @.str1574 = private unnamed_addr constant [10 x i8] c"padleft:\0A\00" @.str1575 = private unnamed_addr constant [52 x i8] c" call void @fn_fill_sp(ptr %out, i64 0, i64 %pad)\0A\00" @.str1576 = private unnamed_addr constant [48 x i8] c" %dstL = getelementptr i8, ptr %out, i64 %pad\0A\00" @.str1577 = private unnamed_addr constant [47 x i8] c" call ptr @memcpy(ptr %dstL, ptr %s, i64 %L)\0A\00" @.str1578 = private unnamed_addr constant [18 x i8] c" br label %term\0A\00" @.str1579 = private unnamed_addr constant [11 x i8] c"padright:\0A\00" @.str1580 = private unnamed_addr constant [46 x i8] c" call ptr @memcpy(ptr %out, ptr %s, i64 %L)\0A\00" @.str1581 = private unnamed_addr constant [53 x i8] c" call void @fn_fill_sp(ptr %out, i64 %L, i64 %pad)\0A\00" @.str1582 = private unnamed_addr constant [18 x i8] c" br label %term\0A\00" @.str1583 = private unnamed_addr constant [7 x i8] c"term:\0A\00" @.str1584 = private unnamed_addr constant [45 x i8] c" %tp = getelementptr i8, ptr %out, i64 %w0\0A\00" @.str1585 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str1586 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str1587 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1588 = private unnamed_addr constant [61 x i8] c"define void @fn_fill_sp(ptr %buf, i64 %start, i64 %count) {\0A\00" @.str1589 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1590 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1591 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1592 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1593 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str1594 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1595 = private unnamed_addr constant [32 x i8] c" %d = icmp ult i64 %i, %count\0A\00" @.str1596 = private unnamed_addr constant [38 x i8] c" br i1 %d, label %body, label %done\0A\00" @.str1597 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str1598 = private unnamed_addr constant [29 x i8] c" %off = add i64 %start, %i\0A\00" @.str1599 = private unnamed_addr constant [45 x i8] c" %p = getelementptr i8, ptr %buf, i64 %off\0A\00" @.str1600 = private unnamed_addr constant [23 x i8] c" store i8 32, ptr %p\0A\00" @.str1601 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1602 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1603 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1604 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str1605 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str1606 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1607 = private unnamed_addr constant [58 x i8] c"define ptr @fn_str_replace(ptr %s, ptr %from, ptr %to) {\0A\00" @.str1608 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1609 = private unnamed_addr constant [37 x i8] c" %lf = call i64 @strlen(ptr %from)\0A\00" @.str1610 = private unnamed_addr constant [28 x i8] c" %lz = icmp eq i64 %lf, 0\0A\00" @.str1611 = private unnamed_addr constant [42 x i8] c" br i1 %lz, label %copyall, label %scan\0A\00" @.str1612 = private unnamed_addr constant [10 x i8] c"copyall:\0A\00" @.str1613 = private unnamed_addr constant [35 x i8] c" %ls0 = call i64 @strlen(ptr %s)\0A\00" @.str1614 = private unnamed_addr constant [26 x i8] c" %sz0 = add i64 %ls0, 1\0A\00" @.str1615 = private unnamed_addr constant [36 x i8] c" %o0 = call ptr @malloc(i64 %sz0)\0A\00" @.str1616 = private unnamed_addr constant [47 x i8] c" call ptr @memcpy(ptr %o0, ptr %s, i64 %sz0)\0A\00" @.str1617 = private unnamed_addr constant [15 x i8] c" ret ptr %o0\0A\00" @.str1618 = private unnamed_addr constant [7 x i8] c"scan:\0A\00" @.str1619 = private unnamed_addr constant [35 x i8] c" %lt = call i64 @strlen(ptr %to)\0A\00" @.str1620 = private unnamed_addr constant [34 x i8] c" %ls = call i64 @strlen(ptr %s)\0A\00" @.str1621 = private unnamed_addr constant [22 x i8] c" %cntp = alloca i64\0A\00" @.str1622 = private unnamed_addr constant [26 x i8] c" store i64 0, ptr %cntp\0A\00" @.str1623 = private unnamed_addr constant [22 x i8] c" %curp = alloca ptr\0A\00" @.str1624 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %curp\0A\00" @.str1625 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str1626 = private unnamed_addr constant [8 x i8] c"ccond:\0A\00" @.str1627 = private unnamed_addr constant [30 x i8] c" %cur = load ptr, ptr %curp\0A\00" @.str1628 = private unnamed_addr constant [48 x i8] c" %hit = call ptr @strstr(ptr %cur, ptr %from)\0A\00" @.str1629 = private unnamed_addr constant [36 x i8] c" %isnull = icmp eq ptr %hit, null\0A\00" @.str1630 = private unnamed_addr constant [44 x i8] c" br i1 %isnull, label %csize, label %cinc\0A\00" @.str1631 = private unnamed_addr constant [7 x i8] c"cinc:\0A\00" @.str1632 = private unnamed_addr constant [29 x i8] c" %c0 = load i64, ptr %cntp\0A\00" @.str1633 = private unnamed_addr constant [24 x i8] c" %c1 = add i64 %c0, 1\0A\00" @.str1634 = private unnamed_addr constant [28 x i8] c" store i64 %c1, ptr %cntp\0A\00" @.str1635 = private unnamed_addr constant [46 x i8] c" %adv = getelementptr i8, ptr %hit, i64 %lf\0A\00" @.str1636 = private unnamed_addr constant [29 x i8] c" store ptr %adv, ptr %curp\0A\00" @.str1637 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str1638 = private unnamed_addr constant [8 x i8] c"csize:\0A\00" @.str1639 = private unnamed_addr constant [30 x i8] c" %cnt = load i64, ptr %cntp\0A\00" @.str1640 = private unnamed_addr constant [29 x i8] c" %delta = sub i64 %lt, %lf\0A\00" @.str1641 = private unnamed_addr constant [32 x i8] c" %grow = mul i64 %cnt, %delta\0A\00" @.str1642 = private unnamed_addr constant [32 x i8] c" %newlen = add i64 %ls, %grow\0A\00" @.str1643 = private unnamed_addr constant [29 x i8] c" %osz = add i64 %newlen, 1\0A\00" @.str1644 = private unnamed_addr constant [37 x i8] c" %out = call ptr @malloc(i64 %osz)\0A\00" @.str1645 = private unnamed_addr constant [22 x i8] c" %srcp = alloca ptr\0A\00" @.str1646 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %srcp\0A\00" @.str1647 = private unnamed_addr constant [22 x i8] c" %dstp = alloca ptr\0A\00" @.str1648 = private unnamed_addr constant [29 x i8] c" store ptr %out, ptr %dstp\0A\00" @.str1649 = private unnamed_addr constant [19 x i8] c" br label %bcond\0A\00" @.str1650 = private unnamed_addr constant [8 x i8] c"bcond:\0A\00" @.str1651 = private unnamed_addr constant [30 x i8] c" %src = load ptr, ptr %srcp\0A\00" @.str1652 = private unnamed_addr constant [47 x i8] c" %h2 = call ptr @strstr(ptr %src, ptr %from)\0A\00" @.str1653 = private unnamed_addr constant [31 x i8] c" %n2 = icmp eq ptr %h2, null\0A\00" @.str1654 = private unnamed_addr constant [38 x i8] c" br i1 %n2, label %tail, label %seg\0A\00" @.str1655 = private unnamed_addr constant [6 x i8] c"seg:\0A\00" @.str1656 = private unnamed_addr constant [34 x i8] c" %si = ptrtoint ptr %src to i64\0A\00" @.str1657 = private unnamed_addr constant [33 x i8] c" %hi = ptrtoint ptr %h2 to i64\0A\00" @.str1658 = private unnamed_addr constant [30 x i8] c" %seglen = sub i64 %hi, %si\0A\00" @.str1659 = private unnamed_addr constant [31 x i8] c" %dst0 = load ptr, ptr %dstp\0A\00" @.str1660 = private unnamed_addr constant [54 x i8] c" call ptr @memcpy(ptr %dst0, ptr %src, i64 %seglen)\0A\00" @.str1661 = private unnamed_addr constant [52 x i8] c" %dst1 = getelementptr i8, ptr %dst0, i64 %seglen\0A\00" @.str1662 = private unnamed_addr constant [49 x i8] c" call ptr @memcpy(ptr %dst1, ptr %to, i64 %lt)\0A\00" @.str1663 = private unnamed_addr constant [48 x i8] c" %dst2 = getelementptr i8, ptr %dst1, i64 %lt\0A\00" @.str1664 = private unnamed_addr constant [30 x i8] c" store ptr %dst2, ptr %dstp\0A\00" @.str1665 = private unnamed_addr constant [46 x i8] c" %src2 = getelementptr i8, ptr %h2, i64 %lf\0A\00" @.str1666 = private unnamed_addr constant [30 x i8] c" store ptr %src2, ptr %srcp\0A\00" @.str1667 = private unnamed_addr constant [19 x i8] c" br label %bcond\0A\00" @.str1668 = private unnamed_addr constant [7 x i8] c"tail:\0A\00" @.str1669 = private unnamed_addr constant [31 x i8] c" %src3 = load ptr, ptr %srcp\0A\00" @.str1670 = private unnamed_addr constant [38 x i8] c" %rem = call i64 @strlen(ptr %src3)\0A\00" @.str1671 = private unnamed_addr constant [31 x i8] c" %dst3 = load ptr, ptr %dstp\0A\00" @.str1672 = private unnamed_addr constant [28 x i8] c" %remp1 = add i64 %rem, 1\0A\00" @.str1673 = private unnamed_addr constant [54 x i8] c" call ptr @memcpy(ptr %dst3, ptr %src3, i64 %remp1)\0A\00" @.str1674 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str1675 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1676 = private unnamed_addr constant [45 x i8] c"define ptr @fn_str_join(ptr %h, ptr %sep) {\0A\00" @.str1677 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1678 = private unnamed_addr constant [62 x i8] c" %lp = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 1\0A\00" @.str1679 = private unnamed_addr constant [30 x i8] c" %len32 = load i32, ptr %lp\0A\00" @.str1680 = private unnamed_addr constant [33 x i8] c" %len = sext i32 %len32 to i64\0A\00" @.str1681 = private unnamed_addr constant [62 x i8] c" %dp = getelementptr inbounds %LSlice, ptr %h, i32 0, i32 0\0A\00" @.str1682 = private unnamed_addr constant [29 x i8] c" %data = load ptr, ptr %dp\0A\00" @.str1683 = private unnamed_addr constant [38 x i8] c" %lsep = call i64 @strlen(ptr %sep)\0A\00" @.str1684 = private unnamed_addr constant [22 x i8] c" %totp = alloca i64\0A\00" @.str1685 = private unnamed_addr constant [26 x i8] c" store i64 0, ptr %totp\0A\00" @.str1686 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1687 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1688 = private unnamed_addr constant [19 x i8] c" br label %scond\0A\00" @.str1689 = private unnamed_addr constant [8 x i8] c"scond:\0A\00" @.str1690 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1691 = private unnamed_addr constant [30 x i8] c" %d = icmp ult i64 %i, %len\0A\00" @.str1692 = private unnamed_addr constant [40 x i8] c" br i1 %d, label %sbody, label %alloc\0A\00" @.str1693 = private unnamed_addr constant [8 x i8] c"sbody:\0A\00" @.str1694 = private unnamed_addr constant [46 x i8] c" %ep = getelementptr ptr, ptr %data, i64 %i\0A\00" @.str1695 = private unnamed_addr constant [27 x i8] c" %es = load ptr, ptr %ep\0A\00" @.str1696 = private unnamed_addr constant [35 x i8] c" %el = call i64 @strlen(ptr %es)\0A\00" @.str1697 = private unnamed_addr constant [29 x i8] c" %t0 = load i64, ptr %totp\0A\00" @.str1698 = private unnamed_addr constant [26 x i8] c" %t1 = add i64 %t0, %el\0A\00" @.str1699 = private unnamed_addr constant [28 x i8] c" store i64 %t1, ptr %totp\0A\00" @.str1700 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1701 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1702 = private unnamed_addr constant [19 x i8] c" br label %scond\0A\00" @.str1703 = private unnamed_addr constant [8 x i8] c"alloc:\0A\00" @.str1704 = private unnamed_addr constant [30 x i8] c" %nz = icmp ugt i64 %len, 0\0A\00" @.str1705 = private unnamed_addr constant [26 x i8] c" %lm1 = sub i64 %len, 1\0A\00" @.str1706 = private unnamed_addr constant [31 x i8] c" %seps = mul i64 %lm1, %lsep\0A\00" @.str1707 = private unnamed_addr constant [44 x i8] c" %sepsz = select i1 %nz, i64 %seps, i64 0\0A\00" @.str1708 = private unnamed_addr constant [31 x i8] c" %tot0 = load i64, ptr %totp\0A\00" @.str1709 = private unnamed_addr constant [32 x i8] c" %tot = add i64 %tot0, %sepsz\0A\00" @.str1710 = private unnamed_addr constant [26 x i8] c" %osz = add i64 %tot, 1\0A\00" @.str1711 = private unnamed_addr constant [37 x i8] c" %out = call ptr @malloc(i64 %osz)\0A\00" @.str1712 = private unnamed_addr constant [22 x i8] c" %dstp = alloca ptr\0A\00" @.str1713 = private unnamed_addr constant [29 x i8] c" store ptr %out, ptr %dstp\0A\00" @.str1714 = private unnamed_addr constant [20 x i8] c" %jp = alloca i64\0A\00" @.str1715 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %jp\0A\00" @.str1716 = private unnamed_addr constant [19 x i8] c" br label %jcond\0A\00" @.str1717 = private unnamed_addr constant [8 x i8] c"jcond:\0A\00" @.str1718 = private unnamed_addr constant [26 x i8] c" %j = load i64, ptr %jp\0A\00" @.str1719 = private unnamed_addr constant [31 x i8] c" %d2 = icmp ult i64 %j, %len\0A\00" @.str1720 = private unnamed_addr constant [40 x i8] c" br i1 %d2, label %jbody, label %jfin\0A\00" @.str1721 = private unnamed_addr constant [8 x i8] c"jbody:\0A\00" @.str1722 = private unnamed_addr constant [29 x i8] c" %jnz = icmp ugt i64 %j, 0\0A\00" @.str1723 = private unnamed_addr constant [43 x i8] c" br i1 %jnz, label %putsep, label %putel\0A\00" @.str1724 = private unnamed_addr constant [9 x i8] c"putsep:\0A\00" @.str1725 = private unnamed_addr constant [30 x i8] c" %ds0 = load ptr, ptr %dstp\0A\00" @.str1726 = private unnamed_addr constant [51 x i8] c" call ptr @memcpy(ptr %ds0, ptr %sep, i64 %lsep)\0A\00" @.str1727 = private unnamed_addr constant [48 x i8] c" %ds1 = getelementptr i8, ptr %ds0, i64 %lsep\0A\00" @.str1728 = private unnamed_addr constant [29 x i8] c" store ptr %ds1, ptr %dstp\0A\00" @.str1729 = private unnamed_addr constant [19 x i8] c" br label %putel\0A\00" @.str1730 = private unnamed_addr constant [8 x i8] c"putel:\0A\00" @.str1731 = private unnamed_addr constant [47 x i8] c" %ep2 = getelementptr ptr, ptr %data, i64 %j\0A\00" @.str1732 = private unnamed_addr constant [29 x i8] c" %es2 = load ptr, ptr %ep2\0A\00" @.str1733 = private unnamed_addr constant [37 x i8] c" %el2 = call i64 @strlen(ptr %es2)\0A\00" @.str1734 = private unnamed_addr constant [30 x i8] c" %ds2 = load ptr, ptr %dstp\0A\00" @.str1735 = private unnamed_addr constant [50 x i8] c" call ptr @memcpy(ptr %ds2, ptr %es2, i64 %el2)\0A\00" @.str1736 = private unnamed_addr constant [47 x i8] c" %ds3 = getelementptr i8, ptr %ds2, i64 %el2\0A\00" @.str1737 = private unnamed_addr constant [29 x i8] c" store ptr %ds3, ptr %dstp\0A\00" @.str1738 = private unnamed_addr constant [23 x i8] c" %j1 = add i64 %j, 1\0A\00" @.str1739 = private unnamed_addr constant [26 x i8] c" store i64 %j1, ptr %jp\0A\00" @.str1740 = private unnamed_addr constant [19 x i8] c" br label %jcond\0A\00" @.str1741 = private unnamed_addr constant [7 x i8] c"jfin:\0A\00" @.str1742 = private unnamed_addr constant [30 x i8] c" %dsf = load ptr, ptr %dstp\0A\00" @.str1743 = private unnamed_addr constant [24 x i8] c" store i8 0, ptr %dsf\0A\00" @.str1744 = private unnamed_addr constant [16 x i8] c" ret ptr %out\0A\00" @.str1745 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1746 = private unnamed_addr constant [46 x i8] c"define ptr @fn_str_split(ptr %s, ptr %sep) {\0A\00" @.str1747 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1748 = private unnamed_addr constant [38 x i8] c" %lsep = call i64 @strlen(ptr %sep)\0A\00" @.str1749 = private unnamed_addr constant [22 x i8] c" %cntp = alloca i64\0A\00" @.str1750 = private unnamed_addr constant [26 x i8] c" store i64 1, ptr %cntp\0A\00" @.str1751 = private unnamed_addr constant [22 x i8] c" %curp = alloca ptr\0A\00" @.str1752 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %curp\0A\00" @.str1753 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str1754 = private unnamed_addr constant [8 x i8] c"ccond:\0A\00" @.str1755 = private unnamed_addr constant [30 x i8] c" %cur = load ptr, ptr %curp\0A\00" @.str1756 = private unnamed_addr constant [47 x i8] c" %hit = call ptr @strstr(ptr %cur, ptr %sep)\0A\00" @.str1757 = private unnamed_addr constant [36 x i8] c" %isnull = icmp eq ptr %hit, null\0A\00" @.str1758 = private unnamed_addr constant [41 x i8] c" br i1 %isnull, label %mk, label %cinc\0A\00" @.str1759 = private unnamed_addr constant [7 x i8] c"cinc:\0A\00" @.str1760 = private unnamed_addr constant [29 x i8] c" %c0 = load i64, ptr %cntp\0A\00" @.str1761 = private unnamed_addr constant [24 x i8] c" %c1 = add i64 %c0, 1\0A\00" @.str1762 = private unnamed_addr constant [28 x i8] c" store i64 %c1, ptr %cntp\0A\00" @.str1763 = private unnamed_addr constant [48 x i8] c" %adv = getelementptr i8, ptr %hit, i64 %lsep\0A\00" @.str1764 = private unnamed_addr constant [29 x i8] c" store ptr %adv, ptr %curp\0A\00" @.str1765 = private unnamed_addr constant [19 x i8] c" br label %ccond\0A\00" @.str1766 = private unnamed_addr constant [5 x i8] c"mk:\0A\00" @.str1767 = private unnamed_addr constant [30 x i8] c" %cnt = load i64, ptr %cntp\0A\00" @.str1768 = private unnamed_addr constant [35 x i8] c" %hdr = call ptr @malloc(i64 16)\0A\00" @.str1769 = private unnamed_addr constant [28 x i8] c" %arrsz = mul i64 %cnt, 8\0A\00" @.str1770 = private unnamed_addr constant [39 x i8] c" %arr = call ptr @malloc(i64 %arrsz)\0A\00" @.str1771 = private unnamed_addr constant [64 x i8] c" %d0 = getelementptr inbounds %LSlice, ptr %hdr, i32 0, i32 0\0A\00" @.str1772 = private unnamed_addr constant [27 x i8] c" store ptr %arr, ptr %d0\0A\00" @.str1773 = private unnamed_addr constant [34 x i8] c" %cnt32 = trunc i64 %cnt to i32\0A\00" @.str1774 = private unnamed_addr constant [64 x i8] c" %d1 = getelementptr inbounds %LSlice, ptr %hdr, i32 0, i32 1\0A\00" @.str1775 = private unnamed_addr constant [29 x i8] c" store i32 %cnt32, ptr %d1\0A\00" @.str1776 = private unnamed_addr constant [64 x i8] c" %d2 = getelementptr inbounds %LSlice, ptr %hdr, i32 0, i32 2\0A\00" @.str1777 = private unnamed_addr constant [29 x i8] c" store i32 %cnt32, ptr %d2\0A\00" @.str1778 = private unnamed_addr constant [22 x i8] c" %srcp = alloca ptr\0A\00" @.str1779 = private unnamed_addr constant [27 x i8] c" store ptr %s, ptr %srcp\0A\00" @.str1780 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1781 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1782 = private unnamed_addr constant [19 x i8] c" br label %fcond\0A\00" @.str1783 = private unnamed_addr constant [8 x i8] c"fcond:\0A\00" @.str1784 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1785 = private unnamed_addr constant [31 x i8] c" %lt = icmp ult i64 %i, %cnt\0A\00" @.str1786 = private unnamed_addr constant [40 x i8] c" br i1 %lt, label %fbody, label %done\0A\00" @.str1787 = private unnamed_addr constant [8 x i8] c"fbody:\0A\00" @.str1788 = private unnamed_addr constant [30 x i8] c" %src = load ptr, ptr %srcp\0A\00" @.str1789 = private unnamed_addr constant [46 x i8] c" %h2 = call ptr @strstr(ptr %src, ptr %sep)\0A\00" @.str1790 = private unnamed_addr constant [31 x i8] c" %n2 = icmp eq ptr %h2, null\0A\00" @.str1791 = private unnamed_addr constant [38 x i8] c" br i1 %n2, label %last, label %mid\0A\00" @.str1792 = private unnamed_addr constant [6 x i8] c"mid:\0A\00" @.str1793 = private unnamed_addr constant [34 x i8] c" %si = ptrtoint ptr %src to i64\0A\00" @.str1794 = private unnamed_addr constant [33 x i8] c" %hi = ptrtoint ptr %h2 to i64\0A\00" @.str1795 = private unnamed_addr constant [30 x i8] c" %seglen = sub i64 %hi, %si\0A\00" @.str1796 = private unnamed_addr constant [19 x i8] c" br label %store\0A\00" @.str1797 = private unnamed_addr constant [7 x i8] c"last:\0A\00" @.str1798 = private unnamed_addr constant [37 x i8] c" %rem = call i64 @strlen(ptr %src)\0A\00" @.str1799 = private unnamed_addr constant [19 x i8] c" br label %store\0A\00" @.str1800 = private unnamed_addr constant [8 x i8] c"store:\0A\00" @.str1801 = private unnamed_addr constant [53 x i8] c" %seg = phi i64 [ %seglen, %mid ], [ %rem, %last ]\0A\00" @.str1802 = private unnamed_addr constant [26 x i8] c" %ssz = add i64 %seg, 1\0A\00" @.str1803 = private unnamed_addr constant [37 x i8] c" %sub = call ptr @malloc(i64 %ssz)\0A\00" @.str1804 = private unnamed_addr constant [31 x i8] c" %src2 = load ptr, ptr %srcp\0A\00" @.str1805 = private unnamed_addr constant [51 x i8] c" call ptr @memcpy(ptr %sub, ptr %src2, i64 %seg)\0A\00" @.str1806 = private unnamed_addr constant [46 x i8] c" %tp = getelementptr i8, ptr %sub, i64 %seg\0A\00" @.str1807 = private unnamed_addr constant [23 x i8] c" store i8 0, ptr %tp\0A\00" @.str1808 = private unnamed_addr constant [47 x i8] c" %slot = getelementptr ptr, ptr %arr, i64 %i\0A\00" @.str1809 = private unnamed_addr constant [29 x i8] c" store ptr %sub, ptr %slot\0A\00" @.str1810 = private unnamed_addr constant [48 x i8] c" %adv2 = getelementptr i8, ptr %h2, i64 %lsep\0A\00" @.str1811 = private unnamed_addr constant [30 x i8] c" store ptr %adv2, ptr %srcp\0A\00" @.str1812 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1813 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1814 = private unnamed_addr constant [19 x i8] c" br label %fcond\0A\00" @.str1815 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str1816 = private unnamed_addr constant [16 x i8] c" ret ptr %hdr\0A\00" @.str1817 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1818 = private unnamed_addr constant [3 x i8] c"of\00" @.str1819 = private unnamed_addr constant [6 x i8] c"fnv1a\00" @.str1820 = private unnamed_addr constant [6 x i8] c"crc32\00" @.str1821 = private unnamed_addr constant [4 x i8] c"mix\00" @.str1822 = private unnamed_addr constant [8 x i8] c"combine\00" @.str1823 = private unnamed_addr constant [5 x i8] c"of64\00" @.str1824 = private unnamed_addr constant [9 x i8] c"fnv1a_64\00" @.str1825 = private unnamed_addr constant [6 x i8] c"mix64\00" @.str1826 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str1827 = private unnamed_addr constant [5 x i8] c", 16\00" @.str1828 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str1829 = private unnamed_addr constant [3 x i8] c", \00" @.str1830 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str1831 = private unnamed_addr constant [14 x i8] c", -2048144789\00" @.str1832 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str1833 = private unnamed_addr constant [5 x i8] c", 13\00" @.str1834 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str1835 = private unnamed_addr constant [3 x i8] c", \00" @.str1836 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str1837 = private unnamed_addr constant [14 x i8] c", -1028477387\00" @.str1838 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str1839 = private unnamed_addr constant [5 x i8] c", 16\00" @.str1840 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str1841 = private unnamed_addr constant [3 x i8] c", \00" @.str1842 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str1843 = private unnamed_addr constant [5 x i8] c", 33\00" @.str1844 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str1845 = private unnamed_addr constant [3 x i8] c", \00" @.str1846 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str1847 = private unnamed_addr constant [21 x i8] c", -49064778989728563\00" @.str1848 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str1849 = private unnamed_addr constant [5 x i8] c", 33\00" @.str1850 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str1851 = private unnamed_addr constant [3 x i8] c", \00" @.str1852 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str1853 = private unnamed_addr constant [23 x i8] c", -4265267296055464877\00" @.str1854 = private unnamed_addr constant [10 x i8] c"lshr i64 \00" @.str1855 = private unnamed_addr constant [5 x i8] c", 33\00" @.str1856 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str1857 = private unnamed_addr constant [3 x i8] c", \00" @.str1858 = private unnamed_addr constant [3 x i8] c"of\00" @.str1859 = private unnamed_addr constant [6 x i8] c"fnv1a\00" @.str1860 = private unnamed_addr constant [29 x i8] c"call i32 @fn_hash_fnv1a(ptr \00" @.str1861 = private unnamed_addr constant [2 x i8] c")\00" @.str1862 = private unnamed_addr constant [4 x i8] c"int\00" @.str1863 = private unnamed_addr constant [5 x i8] c"of64\00" @.str1864 = private unnamed_addr constant [9 x i8] c"fnv1a_64\00" @.str1865 = private unnamed_addr constant [32 x i8] c"call i64 @fn_hash_fnv1a_64(ptr \00" @.str1866 = private unnamed_addr constant [2 x i8] c")\00" @.str1867 = private unnamed_addr constant [5 x i8] c"long\00" @.str1868 = private unnamed_addr constant [6 x i8] c"mix64\00" @.str1869 = private unnamed_addr constant [5 x i8] c"long\00" @.str1870 = private unnamed_addr constant [6 x i8] c"crc32\00" @.str1871 = private unnamed_addr constant [29 x i8] c"call i32 @fn_hash_crc32(ptr \00" @.str1872 = private unnamed_addr constant [2 x i8] c")\00" @.str1873 = private unnamed_addr constant [4 x i8] c"int\00" @.str1874 = private unnamed_addr constant [4 x i8] c"mix\00" @.str1875 = private unnamed_addr constant [4 x i8] c"int\00" @.str1876 = private unnamed_addr constant [2 x i8] c"0\00" @.str1877 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1878 = private unnamed_addr constant [14 x i8] c", -1640531527\00" @.str1879 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str1880 = private unnamed_addr constant [4 x i8] c", 6\00" @.str1881 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str1882 = private unnamed_addr constant [4 x i8] c", 2\00" @.str1883 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1884 = private unnamed_addr constant [3 x i8] c", \00" @.str1885 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str1886 = private unnamed_addr constant [3 x i8] c", \00" @.str1887 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str1888 = private unnamed_addr constant [3 x i8] c", \00" @.str1889 = private unnamed_addr constant [4 x i8] c"int\00" @.str1890 = private unnamed_addr constant [37 x i8] c"define i32 @fn_hash_fnv1a(ptr %s) {\0A\00" @.str1891 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1892 = private unnamed_addr constant [20 x i8] c" %hp = alloca i32\0A\00" @.str1893 = private unnamed_addr constant [34 x i8] c" store i32 -2128831035, ptr %hp\0A\00" @.str1894 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1895 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1896 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1897 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str1898 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1899 = private unnamed_addr constant [41 x i8] c" %p = getelementptr i8, ptr %s, i64 %i\0A\00" @.str1900 = private unnamed_addr constant [24 x i8] c" %c = load i8, ptr %p\0A\00" @.str1901 = private unnamed_addr constant [25 x i8] c" %z = icmp eq i8 %c, 0\0A\00" @.str1902 = private unnamed_addr constant [38 x i8] c" br i1 %z, label %done, label %body\0A\00" @.str1903 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str1904 = private unnamed_addr constant [27 x i8] c" %ce = zext i8 %c to i32\0A\00" @.str1905 = private unnamed_addr constant [26 x i8] c" %h = load i32, ptr %hp\0A\00" @.str1906 = private unnamed_addr constant [24 x i8] c" %x = xor i32 %h, %ce\0A\00" @.str1907 = private unnamed_addr constant [29 x i8] c" %m = mul i32 %x, 16777619\0A\00" @.str1908 = private unnamed_addr constant [25 x i8] c" store i32 %m, ptr %hp\0A\00" @.str1909 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1910 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1911 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1912 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str1913 = private unnamed_addr constant [27 x i8] c" %hr = load i32, ptr %hp\0A\00" @.str1914 = private unnamed_addr constant [15 x i8] c" ret i32 %hr\0A\00" @.str1915 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1916 = private unnamed_addr constant [40 x i8] c"define i64 @fn_hash_fnv1a_64(ptr %s) {\0A\00" @.str1917 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1918 = private unnamed_addr constant [20 x i8] c" %hp = alloca i64\0A\00" @.str1919 = private unnamed_addr constant [43 x i8] c" store i64 -3750763034362895579, ptr %hp\0A\00" @.str1920 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1921 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1922 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1923 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str1924 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1925 = private unnamed_addr constant [41 x i8] c" %p = getelementptr i8, ptr %s, i64 %i\0A\00" @.str1926 = private unnamed_addr constant [24 x i8] c" %c = load i8, ptr %p\0A\00" @.str1927 = private unnamed_addr constant [25 x i8] c" %z = icmp eq i8 %c, 0\0A\00" @.str1928 = private unnamed_addr constant [38 x i8] c" br i1 %z, label %done, label %body\0A\00" @.str1929 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str1930 = private unnamed_addr constant [27 x i8] c" %ce = zext i8 %c to i64\0A\00" @.str1931 = private unnamed_addr constant [26 x i8] c" %h = load i64, ptr %hp\0A\00" @.str1932 = private unnamed_addr constant [24 x i8] c" %x = xor i64 %h, %ce\0A\00" @.str1933 = private unnamed_addr constant [34 x i8] c" %m = mul i64 %x, 1099511628211\0A\00" @.str1934 = private unnamed_addr constant [25 x i8] c" store i64 %m, ptr %hp\0A\00" @.str1935 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1936 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1937 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1938 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str1939 = private unnamed_addr constant [27 x i8] c" %hr = load i64, ptr %hp\0A\00" @.str1940 = private unnamed_addr constant [15 x i8] c" ret i64 %hr\0A\00" @.str1941 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1942 = private unnamed_addr constant [37 x i8] c"define i32 @fn_hash_crc32(ptr %s) {\0A\00" @.str1943 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str1944 = private unnamed_addr constant [20 x i8] c" %cp = alloca i32\0A\00" @.str1945 = private unnamed_addr constant [25 x i8] c" store i32 -1, ptr %cp\0A\00" @.str1946 = private unnamed_addr constant [20 x i8] c" %ip = alloca i64\0A\00" @.str1947 = private unnamed_addr constant [24 x i8] c" store i64 0, ptr %ip\0A\00" @.str1948 = private unnamed_addr constant [20 x i8] c" %kp = alloca i32\0A\00" @.str1949 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1950 = private unnamed_addr constant [7 x i8] c"cond:\0A\00" @.str1951 = private unnamed_addr constant [26 x i8] c" %i = load i64, ptr %ip\0A\00" @.str1952 = private unnamed_addr constant [41 x i8] c" %p = getelementptr i8, ptr %s, i64 %i\0A\00" @.str1953 = private unnamed_addr constant [25 x i8] c" %ch = load i8, ptr %p\0A\00" @.str1954 = private unnamed_addr constant [26 x i8] c" %z = icmp eq i8 %ch, 0\0A\00" @.str1955 = private unnamed_addr constant [38 x i8] c" br i1 %z, label %done, label %body\0A\00" @.str1956 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str1957 = private unnamed_addr constant [28 x i8] c" %ce = zext i8 %ch to i32\0A\00" @.str1958 = private unnamed_addr constant [27 x i8] c" %c0 = load i32, ptr %cp\0A\00" @.str1959 = private unnamed_addr constant [26 x i8] c" %cx = xor i32 %c0, %ce\0A\00" @.str1960 = private unnamed_addr constant [26 x i8] c" store i32 %cx, ptr %cp\0A\00" @.str1961 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %kp\0A\00" @.str1962 = private unnamed_addr constant [17 x i8] c" br label %bit\0A\00" @.str1963 = private unnamed_addr constant [6 x i8] c"bit:\0A\00" @.str1964 = private unnamed_addr constant [26 x i8] c" %k = load i32, ptr %kp\0A\00" @.str1965 = private unnamed_addr constant [28 x i8] c" %kd = icmp slt i32 %k, 8\0A\00" @.str1966 = private unnamed_addr constant [45 x i8] c" br i1 %kd, label %bitbody, label %bitdone\0A\00" @.str1967 = private unnamed_addr constant [10 x i8] c"bitbody:\0A\00" @.str1968 = private unnamed_addr constant [27 x i8] c" %c1 = load i32, ptr %cp\0A\00" @.str1969 = private unnamed_addr constant [24 x i8] c" %lb = and i32 %c1, 1\0A\00" @.str1970 = private unnamed_addr constant [25 x i8] c" %ls = lshr i32 %c1, 1\0A\00" @.str1971 = private unnamed_addr constant [29 x i8] c" %ism = icmp eq i32 %lb, 1\0A\00" @.str1972 = private unnamed_addr constant [47 x i8] c" %px = select i1 %ism, i32 -306674912, i32 0\0A\00" @.str1973 = private unnamed_addr constant [26 x i8] c" %c2 = xor i32 %ls, %px\0A\00" @.str1974 = private unnamed_addr constant [26 x i8] c" store i32 %c2, ptr %cp\0A\00" @.str1975 = private unnamed_addr constant [23 x i8] c" %k1 = add i32 %k, 1\0A\00" @.str1976 = private unnamed_addr constant [26 x i8] c" store i32 %k1, ptr %kp\0A\00" @.str1977 = private unnamed_addr constant [17 x i8] c" br label %bit\0A\00" @.str1978 = private unnamed_addr constant [10 x i8] c"bitdone:\0A\00" @.str1979 = private unnamed_addr constant [23 x i8] c" %i1 = add i64 %i, 1\0A\00" @.str1980 = private unnamed_addr constant [26 x i8] c" store i64 %i1, ptr %ip\0A\00" @.str1981 = private unnamed_addr constant [18 x i8] c" br label %cond\0A\00" @.str1982 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str1983 = private unnamed_addr constant [27 x i8] c" %cf = load i32, ptr %cp\0A\00" @.str1984 = private unnamed_addr constant [24 x i8] c" %r = xor i32 %cf, -1\0A\00" @.str1985 = private unnamed_addr constant [14 x i8] c" ret i32 %r\0A\00" @.str1986 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str1987 = private unnamed_addr constant [7 x i8] c"sha256\00" @.str1988 = private unnamed_addr constant [12 x i8] c"hmac_sha256\00" @.str1989 = private unnamed_addr constant [12 x i8] c"verify_hmac\00" @.str1990 = private unnamed_addr constant [4 x i8] c"hex\00" @.str1991 = private unnamed_addr constant [9 x i8] c"ct_equal\00" @.str1992 = private unnamed_addr constant [13 x i8] c"random_bytes\00" @.str1993 = private unnamed_addr constant [11 x i8] c"random_hex\00" @.str1994 = private unnamed_addr constant [11 x i8] c"random_u32\00" @.str1995 = private unnamed_addr constant [7 x i8] c"base64\00" @.str1996 = private unnamed_addr constant [7 x i8] c"sha256\00" @.str1997 = private unnamed_addr constant [29 x i8] c"call ptr @fn_sha256_hex(ptr \00" @.str1998 = private unnamed_addr constant [2 x i8] c")\00" @.str1999 = private unnamed_addr constant [7 x i8] c"string\00" @.str2000 = private unnamed_addr constant [12 x i8] c"hmac_sha256\00" @.str2001 = private unnamed_addr constant [34 x i8] c"call ptr @fn_hmac_sha256_hex(ptr \00" @.str2002 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2003 = private unnamed_addr constant [2 x i8] c")\00" @.str2004 = private unnamed_addr constant [7 x i8] c"string\00" @.str2005 = private unnamed_addr constant [4 x i8] c"hex\00" @.str2006 = private unnamed_addr constant [26 x i8] c"call ptr @fn_str_hex(ptr \00" @.str2007 = private unnamed_addr constant [2 x i8] c")\00" @.str2008 = private unnamed_addr constant [7 x i8] c"string\00" @.str2009 = private unnamed_addr constant [9 x i8] c"ct_equal\00" @.str2010 = private unnamed_addr constant [27 x i8] c"call i32 @fn_ct_streq(ptr \00" @.str2011 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2012 = private unnamed_addr constant [2 x i8] c")\00" @.str2013 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2014 = private unnamed_addr constant [13 x i8] c"random_bytes\00" @.str2015 = private unnamed_addr constant [11 x i8] c"random_hex\00" @.str2016 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str2017 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str2018 = private unnamed_addr constant [29 x i8] c"call ptr @fn_random_hex(i64 \00" @.str2019 = private unnamed_addr constant [2 x i8] c")\00" @.str2020 = private unnamed_addr constant [7 x i8] c"string\00" @.str2021 = private unnamed_addr constant [11 x i8] c"random_u32\00" @.str2022 = private unnamed_addr constant [26 x i8] c"call i32 @fn_random_u32()\00" @.str2023 = private unnamed_addr constant [4 x i8] c"int\00" @.str2024 = private unnamed_addr constant [7 x i8] c"base64\00" @.str2025 = private unnamed_addr constant [25 x i8] c"call ptr @fn_base64(ptr \00" @.str2026 = private unnamed_addr constant [2 x i8] c")\00" @.str2027 = private unnamed_addr constant [7 x i8] c"string\00" @.str2028 = private unnamed_addr constant [34 x i8] c"call ptr @fn_hmac_sha256_hex(ptr \00" @.str2029 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2030 = private unnamed_addr constant [2 x i8] c")\00" @.str2031 = private unnamed_addr constant [27 x i8] c"call i32 @fn_ct_streq(ptr \00" @.str2032 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2033 = private unnamed_addr constant [2 x i8] c")\00" @.str2034 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2035 = 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" @.str2036 = private unnamed_addr constant [41 x i8] c"define i32 @fn_rotr32(i32 %x, i32 %n) {\0A\00" @.str2037 = 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" @.str2038 = private unnamed_addr constant [60 x i8] c"define void @fn_sha256_buf(ptr %msg, i64 %len, ptr %out) {\0A\00" @.str2039 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str2040 = private unnamed_addr constant [50 x i8] c" %H = alloca [8 x i32]\0A %W = alloca [64 x i32]\0A\00" @.str2041 = 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" @.str2042 = private unnamed_addr constant [39 x i8] c" %ip = alloca i64\0A %bp = alloca i64\0A\00" @.str2043 = 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" @.str2044 = private unnamed_addr constant [36 x i8] c" %buf = call ptr @malloc(i64 %pl)\0A\00" @.str2045 = private unnamed_addr constant [46 x i8] c" call ptr @memset(ptr %buf, i32 0, i64 %pl)\0A\00" @.str2046 = private unnamed_addr constant [50 x i8] c" call ptr @memcpy(ptr %buf, ptr %msg, i64 %len)\0A\00" @.str2047 = private unnamed_addr constant [77 x i8] c" %pmark = getelementptr i8, ptr %buf, i64 %len\0A store i8 -128, ptr %pmark\0A\00" @.str2048 = private unnamed_addr constant [27 x i8] c" %bits = shl i64 %len, 3\0A\00" @.str2049 = private unnamed_addr constant [41 x i8] c" store i64 0, ptr %ip\0A br label %lenc\0A\00" @.str2050 = 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" @.str2051 = private unnamed_addr constant [7 x i8] c"lenb:\0A\00" @.str2052 = 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" @.str2053 = 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" @.str2054 = 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" @.str2055 = private unnamed_addr constant [8 x i8] c"hinit:\0A\00" @.str2056 = 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" @.str2057 = 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" @.str2058 = 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" @.str2059 = 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" @.str2060 = 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" @.str2061 = 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" @.str2062 = 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" @.str2063 = 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" @.str2064 = 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" @.str2065 = 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" @.str2066 = 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" @.str2067 = private unnamed_addr constant [40 x i8] c" store i64 0, ptr %ip\0A br label %w1c\0A\00" @.str2068 = 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" @.str2069 = private unnamed_addr constant [6 x i8] c"w1b:\0A\00" @.str2070 = private unnamed_addr constant [25 x i8] c" %wi4 = shl i64 %wi, 2\0A\00" @.str2071 = private unnamed_addr constant [75 x i8] c" %wp0 = getelementptr i8, ptr %base, i64 %wi4\0A %wc0 = load i8, ptr %wp0\0A\00" @.str2072 = 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" @.str2073 = 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" @.str2074 = 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" @.str2075 = 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" @.str2076 = 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" @.str2077 = 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" @.str2078 = 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" @.str2079 = 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" @.str2080 = private unnamed_addr constant [49 x i8] c"w2init:\0A store i64 16, ptr %ip\0A br label %w2c\0A\00" @.str2081 = 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" @.str2082 = private unnamed_addr constant [6 x i8] c"w2b:\0A\00" @.str2083 = 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" @.str2084 = private unnamed_addr constant [119 x i8] c" %r7 = call i32 @fn_rotr32(i32 %w15, i32 7)\0A %r18 = call i32 @fn_rotr32(i32 %w15, i32 18)\0A %sh3 = lshr i32 %w15, 3\0A\00" @.str2085 = private unnamed_addr constant [55 x i8] c" %x01 = xor i32 %r7, %r18\0A %s0 = xor i32 %x01, %sh3\0A\00" @.str2086 = 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" @.str2087 = private unnamed_addr constant [123 x i8] c" %r17 = call i32 @fn_rotr32(i32 %w2v, i32 17)\0A %r19 = call i32 @fn_rotr32(i32 %w2v, i32 19)\0A %sh10 = lshr i32 %w2v, 10\0A\00" @.str2088 = private unnamed_addr constant [57 x i8] c" %x02 = xor i32 %r17, %r19\0A %s1 = xor i32 %x02, %sh10\0A\00" @.str2089 = 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" @.str2090 = 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" @.str2091 = 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" @.str2092 = 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" @.str2093 = 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" @.str2094 = private unnamed_addr constant [11 x i8] c"compinit:\0A\00" @.str2095 = private unnamed_addr constant [53 x i8] c" %cv0 = load i32, ptr %H0\0A store i32 %cv0, ptr %a\0A\00" @.str2096 = private unnamed_addr constant [53 x i8] c" %cv1 = load i32, ptr %H1\0A store i32 %cv1, ptr %b\0A\00" @.str2097 = private unnamed_addr constant [53 x i8] c" %cv2 = load i32, ptr %H2\0A store i32 %cv2, ptr %c\0A\00" @.str2098 = private unnamed_addr constant [53 x i8] c" %cv3 = load i32, ptr %H3\0A store i32 %cv3, ptr %d\0A\00" @.str2099 = private unnamed_addr constant [53 x i8] c" %cv4 = load i32, ptr %H4\0A store i32 %cv4, ptr %e\0A\00" @.str2100 = private unnamed_addr constant [53 x i8] c" %cv5 = load i32, ptr %H5\0A store i32 %cv5, ptr %f\0A\00" @.str2101 = private unnamed_addr constant [53 x i8] c" %cv6 = load i32, ptr %H6\0A store i32 %cv6, ptr %g\0A\00" @.str2102 = private unnamed_addr constant [53 x i8] c" %cv7 = load i32, ptr %H7\0A store i32 %cv7, ptr %h\0A\00" @.str2103 = private unnamed_addr constant [39 x i8] c" store i64 0, ptr %ip\0A br label %rc\0A\00" @.str2104 = 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" @.str2105 = private unnamed_addr constant [5 x i8] c"rb:\0A\00" @.str2106 = 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" @.str2107 = 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" @.str2108 = private unnamed_addr constant [137 x i8] c" %e6 = call i32 @fn_rotr32(i32 %ev, i32 6)\0A %e11 = call i32 @fn_rotr32(i32 %ev, i32 11)\0A %e25 = call i32 @fn_rotr32(i32 %ev, i32 25)\0A\00" @.str2109 = private unnamed_addr constant [55 x i8] c" %S1a = xor i32 %e6, %e11\0A %S1 = xor i32 %S1a, %e25\0A\00" @.str2110 = 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" @.str2111 = 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" @.str2112 = 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" @.str2113 = 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" @.str2114 = private unnamed_addr constant [138 x i8] c" %a2r = call i32 @fn_rotr32(i32 %av, i32 2)\0A %a13 = call i32 @fn_rotr32(i32 %av, i32 13)\0A %a22 = call i32 @fn_rotr32(i32 %av, i32 22)\0A\00" @.str2115 = private unnamed_addr constant [56 x i8] c" %S0a = xor i32 %a2r, %a13\0A %S0 = xor i32 %S0a, %a22\0A\00" @.str2116 = 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" @.str2117 = private unnamed_addr constant [30 x i8] c" %temp2 = add i32 %S0, %maj\0A\00" @.str2118 = 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" @.str2119 = private unnamed_addr constant [57 x i8] c" %newe = add i32 %dv, %temp1\0A store i32 %newe, ptr %e\0A\00" @.str2120 = 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" @.str2121 = private unnamed_addr constant [60 x i8] c" %newa = add i32 %temp1, %temp2\0A store i32 %newa, ptr %a\0A\00" @.str2122 = 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" @.str2123 = private unnamed_addr constant [7 x i8] c"addH:\0A\00" @.str2124 = 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" @.str2125 = 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" @.str2126 = 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" @.str2127 = 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" @.str2128 = 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" @.str2129 = 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" @.str2130 = 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" @.str2131 = 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" @.str2132 = 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" @.str2133 = private unnamed_addr constant [45 x i8] c"outp:\0A store i64 0, ptr %ip\0A br label %oc\0A\00" @.str2134 = 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" @.str2135 = private unnamed_addr constant [5 x i8] c"ob:\0A\00" @.str2136 = 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" @.str2137 = 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" @.str2138 = 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" @.str2139 = 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" @.str2140 = 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" @.str2141 = 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" @.str2142 = private unnamed_addr constant [49 x i8] c"freeb:\0A call void @free(ptr %buf)\0A ret void\0A}\0A\00" @.str2143 = private unnamed_addr constant [35 x i8] c"define i8 @fn_hex_digit(i32 %d) {\0A\00" @.str2144 = 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" @.str2145 = private unnamed_addr constant [46 x i8] c"define ptr @fn_hex_encode(ptr %in, i64 %n) {\0A\00" @.str2146 = 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" @.str2147 = 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" @.str2148 = 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" @.str2149 = private unnamed_addr constant [127 x i8] c" %hi = lshr i32 %bz, 4\0A %lo = and i32 %bz, 15\0A %hc = call i8 @fn_hex_digit(i32 %hi)\0A %lc = call i8 @fn_hex_digit(i32 %lo)\0A\00" @.str2150 = 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" @.str2151 = 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" @.str2152 = 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" @.str2153 = private unnamed_addr constant [37 x i8] c"define ptr @fn_sha256_hex(ptr %s) {\0A\00" @.str2154 = 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" @.str2155 = private unnamed_addr constant [122 x i8] c" call void @fn_sha256_buf(ptr %s, i64 %len, ptr %dp)\0A %hex = call ptr @fn_hex_encode(ptr %dp, i64 32)\0A ret ptr %hex\0A}\0A\00" @.str2156 = private unnamed_addr constant [34 x i8] c"define ptr @fn_str_hex(ptr %s) {\0A\00" @.str2157 = private unnamed_addr constant [95 x i8] c" %n = call i64 @strlen(ptr %s)\0A %h = call ptr @fn_hex_encode(ptr %s, i64 %n)\0A ret ptr %h\0A}\0A\00" @.str2158 = private unnamed_addr constant [55 x i8] c"define void @fn_xor64(ptr %dst, ptr %src, i32 %pad) {\0A\00" @.str2159 = 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" @.str2160 = 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" @.str2161 = 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" @.str2162 = private unnamed_addr constant [17 x i8] c"d:\0A ret void\0A}\0A\00" @.str2163 = private unnamed_addr constant [54 x i8] c"define ptr @fn_hmac_sha256_hex(ptr %key, ptr %msg) {\0A\00" @.str2164 = private unnamed_addr constant [8 x i8] c"entry:\0A\00" @.str2165 = 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" @.str2166 = private unnamed_addr constant [75 x i8] c" %klen = call i64 @strlen(ptr %key)\0A %mlen = call i64 @strlen(ptr %msg)\0A\00" @.str2167 = 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" @.str2168 = private unnamed_addr constant [74 x i8] c" %big = icmp ugt i64 %klen, 64\0A br i1 %big, label %hashk, label %copyk\0A\00" @.str2169 = private unnamed_addr constant [83 x i8] c"hashk:\0A call void @fn_sha256_buf(ptr %key, i64 %klen, ptr %k0p)\0A br label %pads\0A\00" @.str2170 = 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" @.str2171 = private unnamed_addr constant [7 x i8] c"pads:\0A\00" @.str2172 = private unnamed_addr constant [70 x i8] c" %inlen = add i64 64, %mlen\0A %inbuf = call ptr @malloc(i64 %inlen)\0A\00" @.str2173 = private unnamed_addr constant [53 x i8] c" call void @fn_xor64(ptr %inbuf, ptr %k0p, i32 54)\0A\00" @.str2174 = 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" @.str2175 = private unnamed_addr constant [157 x i8] c" %innerp = getelementptr [32 x i8], ptr %inner, i64 0, i64 0\0A call void @fn_sha256_buf(ptr %inbuf, i64 %inlen, ptr %innerp)\0A call void @free(ptr %inbuf)\0A\00" @.str2176 = private unnamed_addr constant [113 x i8] c" %outp = getelementptr [96 x i8], ptr %outbuf, i64 0, i64 0\0A call void @fn_xor64(ptr %outp, ptr %k0p, i32 92)\0A\00" @.str2177 = 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" @.str2178 = private unnamed_addr constant [116 x i8] c" %finp = getelementptr [32 x i8], ptr %fin, i64 0, i64 0\0A call void @fn_sha256_buf(ptr %outp, i64 96, ptr %finp)\0A\00" @.str2179 = private unnamed_addr constant [70 x i8] c" %hex = call ptr @fn_hex_encode(ptr %finp, i64 32)\0A ret ptr %hex\0A}\0A\00" @.str2180 = private unnamed_addr constant [43 x i8] c"define i32 @fn_ct_streq(ptr %a, ptr %b) {\0A\00" @.str2181 = 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" @.str2182 = private unnamed_addr constant [17 x i8] c"ne:\0A ret i32 0\0A\00" @.str2183 = 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" @.str2184 = 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" @.str2185 = 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" @.str2186 = 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" @.str2187 = 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" @.str2188 = private unnamed_addr constant [66 x i8] c"@.ludic_rbmode = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str2189 = private unnamed_addr constant [126 x i8] c"@.ludic_b64tab = private unnamed_addr constant [64 x i8] c\22ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\22\0A\00" @.str2190 = private unnamed_addr constant [50 x i8] c"define void @fn_secure_bytes(ptr %out, i64 %n) {\0A\00" @.str2191 = private unnamed_addr constant [52 x i8] c"entry:\0A call ptr @memset(ptr %out, i32 0, i64 %n)\0A\00" @.str2192 = private unnamed_addr constant [66 x i8] c" %fp = call ptr @fopen(ptr @.ludic_urandom, ptr @.ludic_rbmode)\0A\00" @.str2193 = private unnamed_addr constant [75 x i8] c" %isnull = icmp eq ptr %fp, null\0A br i1 %isnull, label %fail, label %ok\0A\00" @.str2194 = 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" @.str2195 = private unnamed_addr constant [20 x i8] c"fail:\0A ret void\0A}\0A\00" @.str2196 = private unnamed_addr constant [37 x i8] c"define ptr @fn_random_hex(i64 %n) {\0A\00" @.str2197 = private unnamed_addr constant [89 x i8] c"entry:\0A %buf = call ptr @malloc(i64 %n)\0A call void @fn_secure_bytes(ptr %buf, i64 %n)\0A\00" @.str2198 = private unnamed_addr constant [97 x i8] c" %hex = call ptr @fn_hex_encode(ptr %buf, i64 %n)\0A call void @free(ptr %buf)\0A ret ptr %hex\0A}\0A\00" @.str2199 = private unnamed_addr constant [31 x i8] c"define i32 @fn_random_u32() {\0A\00" @.str2200 = 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 @fn_secure_bytes(ptr %bp, i64 4)\0A\00" @.str2201 = 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" @.str2202 = 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" @.str2203 = 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" @.str2204 = 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" @.str2205 = 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" @.str2206 = private unnamed_addr constant [33 x i8] c"define ptr @fn_base64(ptr %s) {\0A\00" @.str2207 = private unnamed_addr constant [40 x i8] c"entry:\0A %n = call i64 @strlen(ptr %s)\0A\00" @.str2208 = 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" @.str2209 = 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" @.str2210 = 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" @.str2211 = private unnamed_addr constant [60 x i8] c" %gp = alloca i64\0A store i64 0, ptr %gp\0A br label %cond\0A\00" @.str2212 = 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" @.str2213 = private unnamed_addr constant [30 x i8] c"body:\0A %i3 = mul i64 %gi, 3\0A\00" @.str2214 = 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" @.str2215 = 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" @.str2216 = 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" @.str2217 = private unnamed_addr constant [25 x i8] c" %e0 = lshr i32 %b0, 2\0A\00" @.str2218 = 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" @.str2219 = 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" @.str2220 = private unnamed_addr constant [25 x i8] c" %e3 = and i32 %b2, 63\0A\00" @.str2221 = private unnamed_addr constant [24 x i8] c" %o4 = mul i64 %gi, 4\0A\00" @.str2222 = 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" @.str2223 = 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" @.str2224 = 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" @.str2225 = 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" @.str2226 = 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" @.str2227 = 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" @.str2228 = 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" @.str2229 = private unnamed_addr constant [69 x i8] c" %eq = getelementptr i8, ptr %out, i64 %olen\0A store i8 0, ptr %eq\0A\00" @.str2230 = private unnamed_addr constant [41 x i8] c" br i1 %r1, label %pad1, label %maybe2\0A\00" @.str2231 = 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" @.str2232 = private unnamed_addr constant [47 x i8] c"maybe2:\0A br i1 %r2, label %pad2, label %done\0A\00" @.str2233 = 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" @.str2234 = private unnamed_addr constant [54 x i8] c"done:\0A call void @free(ptr %inbuf)\0A ret ptr %out\0A}\0A\00" @.str2235 = private unnamed_addr constant [4 x i8] c"new\00" @.str2236 = private unnamed_addr constant [3 x i8] c"v4\00" @.str2237 = private unnamed_addr constant [7 x i8] c"new_v7\00" @.str2238 = private unnamed_addr constant [3 x i8] c"v7\00" @.str2239 = private unnamed_addr constant [6 x i8] c"parse\00" @.str2240 = private unnamed_addr constant [9 x i8] c"is_valid\00" @.str2241 = private unnamed_addr constant [8 x i8] c"to_text\00" @.str2242 = private unnamed_addr constant [7 x i8] c"equals\00" @.str2243 = private unnamed_addr constant [4 x i8] c"nil\00" @.str2244 = private unnamed_addr constant [4 x i8] c"new\00" @.str2245 = private unnamed_addr constant [3 x i8] c"v4\00" @.str2246 = private unnamed_addr constant [23 x i8] c"call ptr @fn_uuid_v4()\00" @.str2247 = private unnamed_addr constant [7 x i8] c"string\00" @.str2248 = private unnamed_addr constant [7 x i8] c"new_v7\00" @.str2249 = private unnamed_addr constant [3 x i8] c"v7\00" @.str2250 = private unnamed_addr constant [23 x i8] c"call ptr @fn_uuid_v7()\00" @.str2251 = private unnamed_addr constant [7 x i8] c"string\00" @.str2252 = private unnamed_addr constant [4 x i8] c"nil\00" @.str2253 = private unnamed_addr constant [24 x i8] c"call ptr @fn_uuid_nil()\00" @.str2254 = private unnamed_addr constant [7 x i8] c"string\00" @.str2255 = private unnamed_addr constant [9 x i8] c"is_valid\00" @.str2256 = private unnamed_addr constant [29 x i8] c"call i32 @fn_uuid_valid(ptr \00" @.str2257 = private unnamed_addr constant [2 x i8] c")\00" @.str2258 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2259 = private unnamed_addr constant [8 x i8] c"to_text\00" @.str2260 = private unnamed_addr constant [7 x i8] c"string\00" @.str2261 = private unnamed_addr constant [7 x i8] c"equals\00" @.str2262 = private unnamed_addr constant [26 x i8] c"call i32 @fn_uuid_eq(ptr \00" @.str2263 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2264 = private unnamed_addr constant [2 x i8] c")\00" @.str2265 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2266 = private unnamed_addr constant [29 x i8] c"call ptr @fn_uuid_parse(ptr \00" @.str2267 = private unnamed_addr constant [2 x i8] c")\00" @.str2268 = private unnamed_addr constant [7 x i8] c"string\00" @.str2269 = private unnamed_addr constant [40 x i8] c"define ptr @fn_uuid_format(ptr %b16) {\0A\00" @.str2270 = private unnamed_addr constant [93 x i8] c"entry:\0A %hex = call ptr @fn_hex_encode(ptr %b16, i64 16)\0A %out = call ptr @malloc(i64 37)\0A\00" @.str2271 = private unnamed_addr constant [47 x i8] c" call ptr @memcpy(ptr %out, ptr %hex, i64 8)\0A\00" @.str2272 = private unnamed_addr constant [66 x i8] c" %o8 = getelementptr i8, ptr %out, i64 8\0A store i8 45, ptr %o8\0A\00" @.str2273 = 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" @.str2274 = private unnamed_addr constant [69 x i8] c" %o13 = getelementptr i8, ptr %out, i64 13\0A store i8 45, ptr %o13\0A\00" @.str2275 = 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" @.str2276 = private unnamed_addr constant [69 x i8] c" %o18 = getelementptr i8, ptr %out, i64 18\0A store i8 45, ptr %o18\0A\00" @.str2277 = 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" @.str2278 = private unnamed_addr constant [69 x i8] c" %o23 = getelementptr i8, ptr %out, i64 23\0A store i8 45, ptr %o23\0A\00" @.str2279 = 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" @.str2280 = private unnamed_addr constant [68 x i8] c" %o36 = getelementptr i8, ptr %out, i64 36\0A store i8 0, ptr %o36\0A\00" @.str2281 = private unnamed_addr constant [46 x i8] c" call void @free(ptr %hex)\0A ret ptr %out\0A}\0A\00" @.str2282 = private unnamed_addr constant [28 x i8] c"define ptr @fn_uuid_v4() {\0A\00" @.str2283 = 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 @fn_secure_bytes(ptr %bp, i64 16)\0A\00" @.str2284 = 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" @.str2285 = 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" @.str2286 = private unnamed_addr constant [57 x i8] c" %s = call ptr @fn_uuid_format(ptr %bp)\0A ret ptr %s\0A}\0A\00" @.str2287 = private unnamed_addr constant [28 x i8] c"define ptr @fn_uuid_v7() {\0A\00" @.str2288 = 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 @fn_secure_bytes(ptr %bp, i64 16)\0A\00" @.str2289 = private unnamed_addr constant [58 x i8] c" %t = call i64 @time(ptr null)\0A %ms = mul i64 %t, 1000\0A\00" @.str2290 = 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" @.str2291 = 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" @.str2292 = 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" @.str2293 = 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" @.str2294 = 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" @.str2295 = 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" @.str2296 = 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" @.str2297 = 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" @.str2298 = private unnamed_addr constant [57 x i8] c" %s = call ptr @fn_uuid_format(ptr %bp)\0A ret ptr %s\0A}\0A\00" @.str2299 = private unnamed_addr constant [29 x i8] c"define ptr @fn_uuid_nil() {\0A\00" @.str2300 = 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" @.str2301 = private unnamed_addr constant [66 x i8] c" %o8 = getelementptr i8, ptr %out, i64 8\0A store i8 45, ptr %o8\0A\00" @.str2302 = private unnamed_addr constant [69 x i8] c" %o13 = getelementptr i8, ptr %out, i64 13\0A store i8 45, ptr %o13\0A\00" @.str2303 = private unnamed_addr constant [69 x i8] c" %o18 = getelementptr i8, ptr %out, i64 18\0A store i8 45, ptr %o18\0A\00" @.str2304 = private unnamed_addr constant [69 x i8] c" %o23 = getelementptr i8, ptr %out, i64 23\0A store i8 45, ptr %o23\0A\00" @.str2305 = 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" @.str2306 = private unnamed_addr constant [37 x i8] c"define i32 @fn_uuid_valid(ptr %s) {\0A\00" @.str2307 = 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" @.str2308 = 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" @.str2309 = 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" @.str2310 = 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" @.str2311 = 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" @.str2312 = 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" @.str2313 = 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" @.str2314 = private unnamed_addr constant [8 x i8] c"ckhex:\0A\00" @.str2315 = 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" @.str2316 = 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" @.str2317 = 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" @.str2318 = 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" @.str2319 = 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" @.str2320 = private unnamed_addr constant [19 x i8] c"good:\0A ret i32 1\0A\00" @.str2321 = private unnamed_addr constant [20 x i8] c"bad:\0A ret i32 0\0A}\0A\00" @.str2322 = private unnamed_addr constant [42 x i8] c"define i32 @fn_uuid_eq(ptr %a, ptr %b) {\0A\00" @.str2323 = 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" @.str2324 = 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" @.str2325 = 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" @.str2326 = 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" @.str2327 = 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" @.str2328 = 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" @.str2329 = private unnamed_addr constant [71 x i8] c" %same = icmp eq i8 %cal, %cbl\0A br i1 %same, label %next, label %ne\0A\00" @.str2330 = 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" @.str2331 = private unnamed_addr constant [20 x i8] c"eqret:\0A ret i32 1\0A\00" @.str2332 = private unnamed_addr constant [19 x i8] c"ne:\0A ret i32 0\0A}\0A\00" @.str2333 = private unnamed_addr constant [37 x i8] c"define ptr @fn_uuid_parse(ptr %s) {\0A\00" @.str2334 = private unnamed_addr constant [116 x i8] c"entry:\0A %ok = call i32 @fn_uuid_valid(ptr %s)\0A %isok = icmp ne i32 %ok, 0\0A br i1 %isok, label %dup, label %nilb\0A\00" @.str2335 = 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" @.str2336 = 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" @.str2337 = 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" @.str2338 = 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" @.str2339 = private unnamed_addr constant [68 x i8] c" %op = getelementptr i8, ptr %out, i64 %i\0A store i8 %cl, ptr %op\0A\00" @.str2340 = 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" @.str2341 = 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" @.str2342 = private unnamed_addr constant [55 x i8] c"nilb:\0A %nn = call ptr @fn_uuid_nil()\0A ret ptr %nn\0A}\0A\00" @.str2343 = private unnamed_addr constant [7 x i8] c"value2\00" @.str2344 = private unnamed_addr constant [8 x i8] c"perlin2\00" @.str2345 = private unnamed_addr constant [9 x i8] c"simplex2\00" @.str2346 = private unnamed_addr constant [5 x i8] c"fbm2\00" @.str2347 = private unnamed_addr constant [10 x i8] c"cellular2\00" @.str2348 = private unnamed_addr constant [13 x i8] c"cellular2_id\00" @.str2349 = private unnamed_addr constant [5 x i8] c"unit\00" @.str2350 = private unnamed_addr constant [5 x i8] c"unit\00" @.str2351 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str2352 = private unnamed_addr constant [4 x i8] c", 1\00" @.str2353 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str2354 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str2355 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2356 = private unnamed_addr constant [7 x i8] c"value2\00" @.str2357 = private unnamed_addr constant [31 x i8] c"call i32 @fn_noise_value2(i32 \00" @.str2358 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2359 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2360 = private unnamed_addr constant [2 x i8] c")\00" @.str2361 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2362 = private unnamed_addr constant [8 x i8] c"perlin2\00" @.str2363 = private unnamed_addr constant [32 x i8] c"call i32 @fn_noise_perlin2(i32 \00" @.str2364 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2365 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2366 = private unnamed_addr constant [2 x i8] c")\00" @.str2367 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2368 = private unnamed_addr constant [9 x i8] c"simplex2\00" @.str2369 = private unnamed_addr constant [33 x i8] c"call i32 @fn_noise_simplex2(i32 \00" @.str2370 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2371 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2372 = private unnamed_addr constant [2 x i8] c")\00" @.str2373 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2374 = private unnamed_addr constant [5 x i8] c"fbm2\00" @.str2375 = private unnamed_addr constant [29 x i8] c"call i32 @fn_noise_fbm2(i32 \00" @.str2376 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2377 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2378 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2379 = private unnamed_addr constant [2 x i8] c")\00" @.str2380 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2381 = private unnamed_addr constant [10 x i8] c"cellular2\00" @.str2382 = private unnamed_addr constant [34 x i8] c"call i32 @fn_noise_cellular2(i32 \00" @.str2383 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2384 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2385 = private unnamed_addr constant [2 x i8] c")\00" @.str2386 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str2387 = private unnamed_addr constant [37 x i8] c"call i32 @fn_noise_cellular2_id(i32 \00" @.str2388 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2389 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2390 = private unnamed_addr constant [2 x i8] c")\00" @.str2391 = private unnamed_addr constant [4 x i8] c"int\00" @.str2392 = private unnamed_addr constant [42 x i8] c"define i32 @fn_nfx_mul(i32 %a, i32 %b) {\0A\00" @.str2393 = 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" @.str2394 = private unnamed_addr constant [42 x i8] c"define i32 @fn_nfx_div(i32 %a, i32 %b) {\0A\00" @.str2395 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %b, 0\0A br i1 %z, label %zero, label %go\0A\00" @.str2396 = private unnamed_addr constant [19 x i8] c"zero:\0A ret i32 0\0A\00" @.str2397 = 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" @.str2398 = private unnamed_addr constant [51 x i8] c"define i32 @fn_nfx_lerp(i32 %a, i32 %b, i32 %t) {\0A\00" @.str2399 = private unnamed_addr constant [106 x i8] c" %d = sub i32 %b, %a\0A %dt = call i32 @fn_nfx_mul(i32 %d, i32 %t)\0A %r = add i32 %a, %dt\0A ret i32 %r\0A}\0A\00" @.str2400 = private unnamed_addr constant [38 x i8] c"define i32 @fn_noise_clamp(i32 %v) {\0A\00" @.str2401 = 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" @.str2402 = private unnamed_addr constant [58 x i8] c"define i32 @fn_noise_hash(i32 %seed, i32 %xi, i32 %yi) {\0A\00" @.str2403 = 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" @.str2404 = 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" @.str2405 = 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" @.str2406 = 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" @.str2407 = private unnamed_addr constant [37 x i8] c"define i32 @fn_noise_fade(i32 %t) {\0A\00" @.str2408 = private unnamed_addr constant [92 x i8] c" %t2 = call i32 @fn_nfx_mul(i32 %t, i32 %t)\0A %t3 = call i32 @fn_nfx_mul(i32 %t2, i32 %t)\0A\00" @.str2409 = private unnamed_addr constant [93 x i8] c" %t4 = call i32 @fn_nfx_mul(i32 %t3, i32 %t)\0A %t5 = call i32 @fn_nfx_mul(i32 %t4, i32 %t)\0A\00" @.str2410 = 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" @.str2411 = 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" @.str2412 = private unnamed_addr constant [58 x i8] c"define i32 @fn_noise_value2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str2413 = 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" @.str2414 = private unnamed_addr constant [81 x i8] c" %u = call i32 @fn_noise_fade(i32 %xf)\0A %v = call i32 @fn_noise_fade(i32 %yf)\0A\00" @.str2415 = private unnamed_addr constant [49 x i8] c" %xi1 = add i32 %xi, 1\0A %yi1 = add i32 %yi, 1\0A\00" @.str2416 = private unnamed_addr constant [122 x i8] c" %h00 = call i32 @fn_noise_hash(i32 %seed, i32 %xi, i32 %yi)\0A %m00 = and i32 %h00, 131071\0A %n00 = sub i32 %m00, 65536\0A\00" @.str2417 = private unnamed_addr constant [123 x i8] c" %h10 = call i32 @fn_noise_hash(i32 %seed, i32 %xi1, i32 %yi)\0A %m10 = and i32 %h10, 131071\0A %n10 = sub i32 %m10, 65536\0A\00" @.str2418 = private unnamed_addr constant [123 x i8] c" %h01 = call i32 @fn_noise_hash(i32 %seed, i32 %xi, i32 %yi1)\0A %m01 = and i32 %h01, 131071\0A %n01 = sub i32 %m01, 65536\0A\00" @.str2419 = private unnamed_addr constant [124 x i8] c" %h11 = call i32 @fn_noise_hash(i32 %seed, i32 %xi1, i32 %yi1)\0A %m11 = and i32 %h11, 131071\0A %n11 = sub i32 %m11, 65536\0A\00" @.str2420 = private unnamed_addr constant [115 x i8] c" %a = call i32 @fn_nfx_lerp(i32 %n00, i32 %n10, i32 %u)\0A %b = call i32 @fn_nfx_lerp(i32 %n01, i32 %n11, i32 %u)\0A\00" @.str2421 = private unnamed_addr constant [109 x i8] c" %n = call i32 @fn_nfx_lerp(i32 %a, i32 %b, i32 %v)\0A %r = call i32 @fn_noise_clamp(i32 %n)\0A ret i32 %r\0A}\0A\00" @.str2422 = 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" @.str2423 = private unnamed_addr constant [59 x i8] c"define i32 @fn_noise_grad2(i32 %hash, i32 %dx, i32 %dy) {\0A\00" @.str2424 = 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" @.str2425 = 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" @.str2426 = 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" @.str2427 = private unnamed_addr constant [134 x i8] c" %px = call i32 @fn_nfx_mul(i32 %gx, i32 %dx)\0A %py = call i32 @fn_nfx_mul(i32 %gy, i32 %dy)\0A %r = add i32 %px, %py\0A ret i32 %r\0A}\0A\00" @.str2428 = private unnamed_addr constant [59 x i8] c"define i32 @fn_noise_perlin2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str2429 = 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" @.str2430 = private unnamed_addr constant [57 x i8] c" %xf1 = sub i32 %xf, 65536\0A %yf1 = sub i32 %yf, 65536\0A\00" @.str2431 = private unnamed_addr constant [81 x i8] c" %u = call i32 @fn_noise_fade(i32 %xf)\0A %v = call i32 @fn_noise_fade(i32 %yf)\0A\00" @.str2432 = private unnamed_addr constant [49 x i8] c" %xi1 = add i32 %xi, 1\0A %yi1 = add i32 %yi, 1\0A\00" @.str2433 = private unnamed_addr constant [126 x i8] c" %h00 = call i32 @fn_noise_hash(i32 %seed, i32 %xi, i32 %yi)\0A %h10 = call i32 @fn_noise_hash(i32 %seed, i32 %xi1, i32 %yi)\0A\00" @.str2434 = private unnamed_addr constant [128 x i8] c" %h01 = call i32 @fn_noise_hash(i32 %seed, i32 %xi, i32 %yi1)\0A %h11 = call i32 @fn_noise_hash(i32 %seed, i32 %xi1, i32 %yi1)\0A\00" @.str2435 = private unnamed_addr constant [126 x i8] c" %g00 = call i32 @fn_noise_grad2(i32 %h00, i32 %xf, i32 %yf)\0A %g10 = call i32 @fn_noise_grad2(i32 %h10, i32 %xf1, i32 %yf)\0A\00" @.str2436 = private unnamed_addr constant [128 x i8] c" %g01 = call i32 @fn_noise_grad2(i32 %h01, i32 %xf, i32 %yf1)\0A %g11 = call i32 @fn_noise_grad2(i32 %h11, i32 %xf1, i32 %yf1)\0A\00" @.str2437 = private unnamed_addr constant [115 x i8] c" %a = call i32 @fn_nfx_lerp(i32 %g00, i32 %g10, i32 %u)\0A %b = call i32 @fn_nfx_lerp(i32 %g01, i32 %g11, i32 %u)\0A\00" @.str2438 = private unnamed_addr constant [158 x i8] c" %n = call i32 @fn_nfx_lerp(i32 %a, i32 %b, i32 %v)\0A %sc = call i32 @fn_nfx_mul(i32 %n, i32 92682)\0A %r = call i32 @fn_noise_clamp(i32 %sc)\0A ret i32 %r\0A}\0A\00" @.str2439 = private unnamed_addr constant [61 x i8] c"define i32 @fn_noise_scorner(i32 %hash, i32 %dx, i32 %dy) {\0A\00" @.str2440 = private unnamed_addr constant [95 x i8] c" %xx = call i32 @fn_nfx_mul(i32 %dx, i32 %dx)\0A %yy = call i32 @fn_nfx_mul(i32 %dy, i32 %dy)\0A\00" @.str2441 = 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" @.str2442 = private unnamed_addr constant [19 x i8] c"zero:\0A ret i32 0\0A\00" @.str2443 = private unnamed_addr constant [97 x i8] c"go:\0A %t2 = call i32 @fn_nfx_mul(i32 %t, i32 %t)\0A %t4 = call i32 @fn_nfx_mul(i32 %t2, i32 %t2)\0A\00" @.str2444 = private unnamed_addr constant [122 x i8] c" %g = call i32 @fn_noise_grad2(i32 %hash, i32 %dx, i32 %dy)\0A %r = call i32 @fn_nfx_mul(i32 %t4, i32 %g)\0A ret i32 %r\0A}\0A\00" @.str2445 = private unnamed_addr constant [60 x i8] c"define i32 @fn_noise_simplex2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str2446 = private unnamed_addr constant [79 x i8] c" %sum0 = add i32 %x, %y\0A %skew = call i32 @fn_nfx_mul(i32 %sum0, i32 23994)\0A\00" @.str2447 = 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" @.str2448 = private unnamed_addr constant [51 x i8] c" %ij = add i32 %i, %j\0A %tt = mul i32 %ij, 13849\0A\00" @.str2449 = private unnamed_addr constant [49 x i8] c" %if0 = shl i32 %i, 16\0A %jf0 = shl i32 %j, 16\0A\00" @.str2450 = 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" @.str2451 = 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" @.str2452 = private unnamed_addr constant [51 x i8] c" %i1f = shl i32 %i1, 16\0A %j1f = shl i32 %j1, 16\0A\00" @.str2453 = 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" @.str2454 = 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" @.str2455 = 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" @.str2456 = private unnamed_addr constant [187 x i8] c" %gi0 = call i32 @fn_noise_hash(i32 %seed, i32 %i, i32 %j)\0A %gi1 = call i32 @fn_noise_hash(i32 %seed, i32 %i1p, i32 %j1p)\0A %gi2 = call i32 @fn_noise_hash(i32 %seed, i32 %i2, i32 %j2)\0A\00" @.str2457 = private unnamed_addr constant [190 x i8] c" %n0 = call i32 @fn_noise_scorner(i32 %gi0, i32 %x0, i32 %y0)\0A %n1 = call i32 @fn_noise_scorner(i32 %gi1, i32 %x1, i32 %y1)\0A %n2 = call i32 @fn_noise_scorner(i32 %gi2, i32 %x2, i32 %y2)\0A\00" @.str2458 = private unnamed_addr constant [51 x i8] c" %sa = add i32 %n0, %n1\0A %sb = add i32 %sa, %n2\0A\00" @.str2459 = private unnamed_addr constant [81 x i8] c" %sc = mul i32 %sb, 45\0A %r = call i32 @fn_noise_clamp(i32 %sc)\0A ret i32 %r\0A}\0A\00" @.str2460 = private unnamed_addr constant [66 x i8] c"define i32 @fn_noise_fbm2(i32 %x, i32 %y, i32 %seed, i32 %oct) {\0A\00" @.str2461 = 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" @.str2462 = 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" @.str2463 = 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" @.str2464 = private unnamed_addr constant [67 x i8] c"body:\0A %freq = load i32, ptr %freqp\0A %amp = load i32, ptr %ampp\0A\00" @.str2465 = private unnamed_addr constant [97 x i8] c" %fx = call i32 @fn_nfx_mul(i32 %x, i32 %freq)\0A %fy = call i32 @fn_nfx_mul(i32 %y, i32 %freq)\0A\00" @.str2466 = private unnamed_addr constant [89 x i8] c" %so = add i32 %seed, %o\0A %n = call i32 @fn_noise_simplex2(i32 %fx, i32 %fy, i32 %so)\0A\00" @.str2467 = private unnamed_addr constant [134 x i8] c" %na = call i32 @fn_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" @.str2468 = 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" @.str2469 = private unnamed_addr constant [82 x i8] c" %amp2 = call i32 @fn_nfx_mul(i32 %amp, i32 32768)\0A store i32 %amp2, ptr %ampp\0A\00" @.str2470 = private unnamed_addr constant [87 x i8] c" %freq2 = call i32 @fn_nfx_mul(i32 %freq, i32 131072)\0A store i32 %freq2, ptr %freqp\0A\00" @.str2471 = 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" @.str2472 = private unnamed_addr constant [69 x i8] c"done:\0A %fsum = load i32, ptr %sump\0A %fnorm = load i32, ptr %normp\0A\00" @.str2473 = private unnamed_addr constant [65 x i8] c" %nz = icmp eq i32 %fnorm, 0\0A br i1 %nz, label %z, label %div\0A\00" @.str2474 = private unnamed_addr constant [16 x i8] c"z:\0A ret i32 0\0A\00" @.str2475 = private unnamed_addr constant [112 x i8] c"div:\0A %d = call i32 @fn_nfx_div(i32 %fsum, i32 %fnorm)\0A %r = call i32 @fn_noise_clamp(i32 %d)\0A ret i32 %r\0A}\0A\00" @.str2476 = private unnamed_addr constant [86 x i8] c"define void @fn_noise_cell_scan(i32 %x, i32 %y, i32 %seed, ptr %d2out, ptr %idout) {\0A\00" @.str2477 = private unnamed_addr constant [56 x i8] c"entry:\0A %xi = ashr i32 %x, 16\0A %yi = ashr i32 %y, 16\0A\00" @.str2478 = 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" @.str2479 = 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" @.str2480 = 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" @.str2481 = private unnamed_addr constant [45 x i8] c"yb:\0A store i32 -1, ptr %dxp\0A br label %xc\0A\00" @.str2482 = 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" @.str2483 = private unnamed_addr constant [55 x i8] c"xb:\0A %cx = add i32 %xi, %ox\0A %cy = add i32 %yi, %oy\0A\00" @.str2484 = private unnamed_addr constant [61 x i8] c" %h = call i32 @fn_noise_hash(i32 %seed, i32 %cx, i32 %cy)\0A\00" @.str2485 = 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" @.str2486 = 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" @.str2487 = private unnamed_addr constant [53 x i8] c" %ddx = sub i32 %pxr, %x\0A %ddy = sub i32 %pyr, %y\0A\00" @.str2488 = private unnamed_addr constant [128 x i8] c" %dxx = call i32 @fn_nfx_mul(i32 %ddx, i32 %ddx)\0A %dyy = call i32 @fn_nfx_mul(i32 %ddy, i32 %ddy)\0A %d2 = add i32 %dxx, %dyy\0A\00" @.str2489 = 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" @.str2490 = 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" @.str2491 = 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" @.str2492 = 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" @.str2493 = 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" @.str2494 = private unnamed_addr constant [61 x i8] c"define i32 @fn_noise_cellular2(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str2495 = private unnamed_addr constant [116 x i8] c" %d2 = alloca i32\0A %id = alloca i32\0A call void @fn_noise_cell_scan(i32 %x, i32 %y, i32 %seed, ptr %d2, ptr %id)\0A\00" @.str2496 = private unnamed_addr constant [77 x i8] c" %v = load i32, ptr %d2\0A %r = call i32 @fn_fx_sqrt(i32 %v)\0A ret i32 %r\0A}\0A\00" @.str2497 = private unnamed_addr constant [64 x i8] c"define i32 @fn_noise_cellular2_id(i32 %x, i32 %y, i32 %seed) {\0A\00" @.str2498 = private unnamed_addr constant [116 x i8] c" %d2 = alloca i32\0A %id = alloca i32\0A call void @fn_noise_cell_scan(i32 %x, i32 %y, i32 %seed, ptr %d2, ptr %id)\0A\00" @.str2499 = private unnamed_addr constant [41 x i8] c" %r = load i32, ptr %id\0A ret i32 %r\0A}\0A\00" @.str2500 = private unnamed_addr constant [6 x i8] c"trace\00" @.str2501 = private unnamed_addr constant [6 x i8] c"debug\00" @.str2502 = private unnamed_addr constant [5 x i8] c"info\00" @.str2503 = private unnamed_addr constant [5 x i8] c"warn\00" @.str2504 = private unnamed_addr constant [6 x i8] c"error\00" @.str2505 = private unnamed_addr constant [10 x i8] c"set_level\00" @.str2506 = private unnamed_addr constant [6 x i8] c"level\00" @.str2507 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str2508 = private unnamed_addr constant [4 x i8] c"i64\00" @.str2509 = private unnamed_addr constant [27 x i8] c"call ptr @fn_long_str(i64 \00" @.str2510 = private unnamed_addr constant [2 x i8] c")\00" @.str2511 = private unnamed_addr constant [26 x i8] c"call ptr @fn_int_str(i32 \00" @.str2512 = private unnamed_addr constant [2 x i8] c")\00" @.str2513 = private unnamed_addr constant [10 x i8] c"set_level\00" @.str2514 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str2515 = private unnamed_addr constant [20 x i8] c", ptr @L_log_level\0A\00" @.str2516 = private unnamed_addr constant [2 x i8] c"0\00" @.str2517 = private unnamed_addr constant [5 x i8] c"void\00" @.str2518 = private unnamed_addr constant [6 x i8] c"level\00" @.str2519 = private unnamed_addr constant [27 x i8] c"load i32, ptr @L_log_level\00" @.str2520 = private unnamed_addr constant [4 x i8] c"int\00" @.str2521 = private unnamed_addr constant [2 x i8] c"2\00" @.str2522 = private unnamed_addr constant [8 x i8] c"[INFO] \00" @.str2523 = private unnamed_addr constant [6 x i8] c"trace\00" @.str2524 = private unnamed_addr constant [2 x i8] c"0\00" @.str2525 = private unnamed_addr constant [9 x i8] c"[TRACE] \00" @.str2526 = private unnamed_addr constant [6 x i8] c"debug\00" @.str2527 = private unnamed_addr constant [2 x i8] c"1\00" @.str2528 = private unnamed_addr constant [9 x i8] c"[DEBUG] \00" @.str2529 = private unnamed_addr constant [5 x i8] c"warn\00" @.str2530 = private unnamed_addr constant [2 x i8] c"3\00" @.str2531 = private unnamed_addr constant [8 x i8] c"[WARN] \00" @.str2532 = private unnamed_addr constant [6 x i8] c"error\00" @.str2533 = private unnamed_addr constant [2 x i8] c"4\00" @.str2534 = private unnamed_addr constant [9 x i8] c"[ERROR] \00" @.str2535 = private unnamed_addr constant [7 x i8] c"string\00" @.str2536 = private unnamed_addr constant [2 x i8] c"+\00" @.str2537 = private unnamed_addr constant [7 x i8] c"string\00" @.str2538 = private unnamed_addr constant [2 x i8] c"+\00" @.str2539 = private unnamed_addr constant [2 x i8] c" \00" @.str2540 = private unnamed_addr constant [7 x i8] c"string\00" @.str2541 = private unnamed_addr constant [2 x i8] c"+\00" @.str2542 = private unnamed_addr constant [7 x i8] c"string\00" @.str2543 = private unnamed_addr constant [2 x i8] c"+\00" @.str2544 = private unnamed_addr constant [2 x i8] c"=\00" @.str2545 = private unnamed_addr constant [7 x i8] c"string\00" @.str2546 = private unnamed_addr constant [2 x i8] c"+\00" @.str2547 = private unnamed_addr constant [7 x i8] c"string\00" @.str2548 = private unnamed_addr constant [30 x i8] c" call void @fn_log_emit(i32 \00" @.str2549 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2550 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2551 = private unnamed_addr constant [2 x i8] c"0\00" @.str2552 = private unnamed_addr constant [5 x i8] c"void\00" @.str2553 = private unnamed_addr constant [29 x i8] c"@L_log_level = global i32 0\0A\00" @.str2554 = private unnamed_addr constant [61 x i8] c"@.log_nl = private unnamed_addr constant [2 x i8] c\22\5C0A\5C00\22\0A\00" @.str2555 = private unnamed_addr constant [46 x i8] c"define void @fn_log_emit(i32 %lvl, ptr %s) {\0A\00" @.str2556 = 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" @.str2557 = private unnamed_addr constant [69 x i8] c"go:\0A %e = load ptr, ptr @__stderrp\0A %n = call i64 @strlen(ptr %s)\0A\00" @.str2558 = 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" @.str2559 = private unnamed_addr constant [20 x i8] c"done:\0A ret void\0A}\0A\00" @.str2560 = private unnamed_addr constant [5 x i8] c"args\00" @.str2561 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str2562 = private unnamed_addr constant [4 x i8] c"arg\00" @.str2563 = private unnamed_addr constant [4 x i8] c"env\00" @.str2564 = private unnamed_addr constant [7 x i8] c"env_or\00" @.str2565 = private unnamed_addr constant [8 x i8] c"has_env\00" @.str2566 = private unnamed_addr constant [8 x i8] c"set_env\00" @.str2567 = private unnamed_addr constant [10 x i8] c"unset_env\00" @.str2568 = private unnamed_addr constant [5 x i8] c"exit\00" @.str2569 = private unnamed_addr constant [9 x i8] c"platform\00" @.str2570 = private unnamed_addr constant [5 x i8] c"arch\00" @.str2571 = private unnamed_addr constant [13 x i8] c"stdout_write\00" @.str2572 = private unnamed_addr constant [13 x i8] c"stderr_write\00" @.str2573 = private unnamed_addr constant [9 x i8] c"save_dir\00" @.str2574 = private unnamed_addr constant [11 x i8] c"config_dir\00" @.str2575 = private unnamed_addr constant [10 x i8] c"cache_dir\00" @.str2576 = private unnamed_addr constant [9 x i8] c"temp_dir\00" @.str2577 = private unnamed_addr constant [10 x i8] c"arg_count\00" @.str2578 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" @.str2579 = private unnamed_addr constant [4 x i8] c"int\00" @.str2580 = private unnamed_addr constant [4 x i8] c"arg\00" @.str2581 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" @.str2582 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" @.str2583 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2584 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str2585 = private unnamed_addr constant [7 x i8] c"string\00" @.str2586 = private unnamed_addr constant [5 x i8] c"exit\00" @.str2587 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" @.str2588 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2589 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" @.str2590 = private unnamed_addr constant [2 x i8] c"0\00" @.str2591 = private unnamed_addr constant [5 x i8] c"void\00" @.str2592 = private unnamed_addr constant [4 x i8] c"env\00" @.str2593 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" @.str2594 = private unnamed_addr constant [2 x i8] c")\00" @.str2595 = private unnamed_addr constant [7 x i8] c"string\00" @.str2596 = private unnamed_addr constant [8 x i8] c"has_env\00" @.str2597 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" @.str2598 = private unnamed_addr constant [2 x i8] c")\00" @.str2599 = private unnamed_addr constant [13 x i8] c"icmp ne ptr \00" @.str2600 = private unnamed_addr constant [7 x i8] c", null\00" @.str2601 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str2602 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2603 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2604 = private unnamed_addr constant [13 x i8] c"stdout_write\00" @.str2605 = private unnamed_addr constant [13 x i8] c"stderr_write\00" @.str2606 = private unnamed_addr constant [11 x i8] c"@__stdoutp\00" @.str2607 = private unnamed_addr constant [13 x i8] c"stderr_write\00" @.str2608 = private unnamed_addr constant [11 x i8] c"@__stderrp\00" @.str2609 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str2610 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str2611 = private unnamed_addr constant [2 x i8] c")\00" @.str2612 = private unnamed_addr constant [24 x i8] c" call i64 @fwrite(ptr \00" @.str2613 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" @.str2614 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2615 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str2616 = private unnamed_addr constant [2 x i8] c"0\00" @.str2617 = private unnamed_addr constant [5 x i8] c"void\00" @.str2618 = private unnamed_addr constant [5 x i8] c"args\00" @.str2619 = private unnamed_addr constant [23 x i8] c"call ptr @fn_os_args()\00" @.str2620 = private unnamed_addr constant [9 x i8] c"[]string\00" @.str2621 = private unnamed_addr constant [7 x i8] c"env_or\00" @.str2622 = private unnamed_addr constant [31 x i8] c"call ptr @fn_os_getenv_or(ptr \00" @.str2623 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2624 = private unnamed_addr constant [2 x i8] c")\00" @.str2625 = private unnamed_addr constant [7 x i8] c"string\00" @.str2626 = private unnamed_addr constant [8 x i8] c"set_env\00" @.str2627 = private unnamed_addr constant [22 x i8] c"call i32 @setenv(ptr \00" @.str2628 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2629 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str2630 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str2631 = private unnamed_addr constant [4 x i8] c", 0\00" @.str2632 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str2633 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2634 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2635 = private unnamed_addr constant [10 x i8] c"unset_env\00" @.str2636 = private unnamed_addr constant [24 x i8] c"call i32 @unsetenv(ptr \00" @.str2637 = private unnamed_addr constant [2 x i8] c")\00" @.str2638 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str2639 = private unnamed_addr constant [4 x i8] c", 0\00" @.str2640 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str2641 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2642 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2643 = private unnamed_addr constant [9 x i8] c"platform\00" @.str2644 = private unnamed_addr constant [27 x i8] c"call ptr @fn_os_platform()\00" @.str2645 = private unnamed_addr constant [7 x i8] c"string\00" @.str2646 = private unnamed_addr constant [5 x i8] c"arch\00" @.str2647 = private unnamed_addr constant [23 x i8] c"call ptr @fn_os_arch()\00" @.str2648 = private unnamed_addr constant [7 x i8] c"string\00" @.str2649 = private unnamed_addr constant [9 x i8] c"save_dir\00" @.str2650 = private unnamed_addr constant [30 x i8] c"call ptr @fn_os_save_dir(ptr \00" @.str2651 = private unnamed_addr constant [2 x i8] c")\00" @.str2652 = private unnamed_addr constant [7 x i8] c"string\00" @.str2653 = private unnamed_addr constant [11 x i8] c"config_dir\00" @.str2654 = private unnamed_addr constant [32 x i8] c"call ptr @fn_os_config_dir(ptr \00" @.str2655 = private unnamed_addr constant [2 x i8] c")\00" @.str2656 = private unnamed_addr constant [7 x i8] c"string\00" @.str2657 = private unnamed_addr constant [10 x i8] c"cache_dir\00" @.str2658 = private unnamed_addr constant [31 x i8] c"call ptr @fn_os_cache_dir(ptr \00" @.str2659 = private unnamed_addr constant [2 x i8] c")\00" @.str2660 = private unnamed_addr constant [7 x i8] c"string\00" @.str2661 = private unnamed_addr constant [27 x i8] c"call ptr @fn_os_temp_dir()\00" @.str2662 = private unnamed_addr constant [7 x i8] c"string\00" @.str2663 = private unnamed_addr constant [36 x i8] c"declare i32 @setenv(ptr, ptr, i32)\0A\00" @.str2664 = private unnamed_addr constant [28 x i8] c"declare i32 @unsetenv(ptr)\0A\00" @.str2665 = private unnamed_addr constant [25 x i8] c"declare i32 @uname(ptr)\0A\00" @.str2666 = private unnamed_addr constant [5 x i8] c"HOME\00" @.str2667 = private unnamed_addr constant [2 x i8] c".\00" @.str2668 = private unnamed_addr constant [30 x i8] c"/Library/Application Support/\00" @.str2669 = private unnamed_addr constant [17 x i8] c"/Library/Caches/\00" @.str2670 = private unnamed_addr constant [7 x i8] c"TMPDIR\00" @.str2671 = private unnamed_addr constant [5 x i8] c"/tmp\00" @.str2672 = private unnamed_addr constant [7 x i8] c"Darwin\00" @.str2673 = private unnamed_addr constant [6 x i8] c"macos\00" @.str2674 = private unnamed_addr constant [6 x i8] c"Linux\00" @.str2675 = private unnamed_addr constant [6 x i8] c"linux\00" @.str2676 = private unnamed_addr constant [51 x i8] c"define ptr @fn_os_getenv_or(ptr %name, ptr %fb) {\0A\00" @.str2677 = 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" @.str2678 = private unnamed_addr constant [20 x i8] c"use:\0A ret ptr %fb\0A\00" @.str2679 = private unnamed_addr constant [21 x i8] c"got:\0A ret ptr %r\0A}\0A\00" @.str2680 = private unnamed_addr constant [43 x i8] c"define ptr @fn_os_join2(ptr %a, ptr %b) {\0A\00" @.str2681 = 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" @.str2682 = 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" @.str2683 = private unnamed_addr constant [45 x i8] c" call ptr @memcpy(ptr %m, ptr %a, i64 %la)\0A\00" @.str2684 = 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" @.str2685 = 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" @.str2686 = private unnamed_addr constant [51 x i8] c"define ptr @fn_os_join3(ptr %a, ptr %b, ptr %c) {\0A\00" @.str2687 = private unnamed_addr constant [115 x i8] c"entry:\0A %ab = call ptr @fn_os_join2(ptr %a, ptr %b)\0A %r = call ptr @fn_os_join2(ptr %ab, ptr %c)\0A ret ptr %r\0A}\0A\00" @.str2688 = private unnamed_addr constant [65 x i8] c"define ptr @fn_os_home() {\0A %r = call ptr @fn_os_getenv_or(ptr \00" @.str2689 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2690 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str2691 = private unnamed_addr constant [111 x i8] c"define ptr @fn_os_save_dir(ptr %app) {\0A %h = call ptr @fn_os_home()\0A %r = call ptr @fn_os_join3(ptr %h, ptr \00" @.str2692 = private unnamed_addr constant [28 x i8] c", ptr %app)\0A ret ptr %r\0A}\0A\00" @.str2693 = private unnamed_addr constant [113 x i8] c"define ptr @fn_os_config_dir(ptr %app) {\0A %h = call ptr @fn_os_home()\0A %r = call ptr @fn_os_join3(ptr %h, ptr \00" @.str2694 = private unnamed_addr constant [28 x i8] c", ptr %app)\0A ret ptr %r\0A}\0A\00" @.str2695 = private unnamed_addr constant [112 x i8] c"define ptr @fn_os_cache_dir(ptr %app) {\0A %h = call ptr @fn_os_home()\0A %r = call ptr @fn_os_join3(ptr %h, ptr \00" @.str2696 = private unnamed_addr constant [28 x i8] c", ptr %app)\0A ret ptr %r\0A}\0A\00" @.str2697 = private unnamed_addr constant [69 x i8] c"define ptr @fn_os_temp_dir() {\0A %r = call ptr @fn_os_getenv_or(ptr \00" @.str2698 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2699 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %r\0A}\0A\00" @.str2700 = private unnamed_addr constant [28 x i8] c"define ptr @fn_os_args() {\0A\00" @.str2701 = 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" @.str2702 = private unnamed_addr constant [33 x i8] c" %h = call ptr @malloc(i64 16)\0A\00" @.str2703 = 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" @.str2704 = 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" @.str2705 = 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" @.str2706 = private unnamed_addr constant [16 x i8] c" ret ptr %h\0A}\0A\00" @.str2707 = private unnamed_addr constant [32 x i8] c"define ptr @fn_os_platform() {\0A\00" @.str2708 = private unnamed_addr constant [72 x i8] c"entry:\0A %buf = call ptr @malloc(i64 8192)\0A call i32 @uname(ptr %buf)\0A\00" @.str2709 = private unnamed_addr constant [41 x i8] c" %cd = call i32 @strncmp(ptr %buf, ptr \00" @.str2710 = 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" @.str2711 = private unnamed_addr constant [16 x i8] c"mac:\0A ret ptr \00" @.str2712 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2713 = private unnamed_addr constant [47 x i8] c"chkl:\0A %cl = call i32 @strncmp(ptr %buf, ptr \00" @.str2714 = 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" @.str2715 = private unnamed_addr constant [16 x i8] c"lin:\0A ret ptr \00" @.str2716 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str2717 = private unnamed_addr constant [25 x i8] c"other:\0A ret ptr %buf\0A}\0A\00" @.str2718 = private unnamed_addr constant [28 x i8] c"define ptr @fn_os_arch() {\0A\00" @.str2719 = private unnamed_addr constant [72 x i8] c"entry:\0A %buf = call ptr @malloc(i64 8192)\0A call i32 @uname(ptr %buf)\0A\00" @.str2720 = private unnamed_addr constant [60 x i8] c" %m = getelementptr i8, ptr %buf, i64 1024\0A ret ptr %m\0A}\0A\00" @.str2721 = private unnamed_addr constant [4 x i8] c"len\00" @.str2722 = private unnamed_addr constant [9 x i8] c"byte_len\00" @.str2723 = private unnamed_addr constant [14 x i8] c"is_valid_utf8\00" @.str2724 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str2725 = private unnamed_addr constant [6 x i8] c"chars\00" @.str2726 = private unnamed_addr constant [6 x i8] c"upper\00" @.str2727 = private unnamed_addr constant [6 x i8] c"lower\00" @.str2728 = private unnamed_addr constant [9 x i8] c"truncate\00" @.str2729 = private unnamed_addr constant [13 x i8] c"grapheme_len\00" @.str2730 = private unnamed_addr constant [9 x i8] c"byte_len\00" @.str2731 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str2732 = private unnamed_addr constant [2 x i8] c")\00" @.str2733 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str2734 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str2735 = private unnamed_addr constant [4 x i8] c"int\00" @.str2736 = private unnamed_addr constant [4 x i8] c"len\00" @.str2737 = private unnamed_addr constant [26 x i8] c"call i32 @fn_uni_len(ptr \00" @.str2738 = private unnamed_addr constant [2 x i8] c")\00" @.str2739 = private unnamed_addr constant [4 x i8] c"int\00" @.str2740 = private unnamed_addr constant [14 x i8] c"is_valid_utf8\00" @.str2741 = private unnamed_addr constant [28 x i8] c"call i32 @fn_uni_valid(ptr \00" @.str2742 = private unnamed_addr constant [2 x i8] c")\00" @.str2743 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2744 = private unnamed_addr constant [8 x i8] c"char_at\00" @.str2745 = private unnamed_addr constant [30 x i8] c"call i32 @fn_uni_char_at(ptr \00" @.str2746 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2747 = private unnamed_addr constant [2 x i8] c")\00" @.str2748 = private unnamed_addr constant [4 x i8] c"int\00" @.str2749 = private unnamed_addr constant [6 x i8] c"chars\00" @.str2750 = private unnamed_addr constant [28 x i8] c"call ptr @fn_uni_chars(ptr \00" @.str2751 = private unnamed_addr constant [2 x i8] c")\00" @.str2752 = private unnamed_addr constant [6 x i8] c"[]int\00" @.str2753 = private unnamed_addr constant [6 x i8] c"upper\00" @.str2754 = private unnamed_addr constant [27 x i8] c"call ptr @fn_uni_case(ptr \00" @.str2755 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str2756 = private unnamed_addr constant [7 x i8] c"string\00" @.str2757 = private unnamed_addr constant [6 x i8] c"lower\00" @.str2758 = private unnamed_addr constant [27 x i8] c"call ptr @fn_uni_case(ptr \00" @.str2759 = private unnamed_addr constant [9 x i8] c", i32 0)\00" @.str2760 = private unnamed_addr constant [7 x i8] c"string\00" @.str2761 = private unnamed_addr constant [9 x i8] c"truncate\00" @.str2762 = private unnamed_addr constant [31 x i8] c"call ptr @fn_uni_truncate(ptr \00" @.str2763 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str2764 = private unnamed_addr constant [2 x i8] c")\00" @.str2765 = private unnamed_addr constant [7 x i8] c"string\00" @.str2766 = private unnamed_addr constant [35 x i8] c"call i32 @fn_uni_grapheme_len(ptr \00" @.str2767 = private unnamed_addr constant [2 x i8] c")\00" @.str2768 = private unnamed_addr constant [4 x i8] c"int\00" @.str2769 = private unnamed_addr constant [34 x i8] c"define i32 @fn_uni_len(ptr %s) {\0A\00" @.str2770 = 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" @.str2771 = 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" @.str2772 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str2773 = 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" @.str2774 = 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" @.str2775 = 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" @.str2776 = private unnamed_addr constant [47 x i8] c"done:\0A %r = load i32, ptr %np\0A ret i32 %r\0A}\0A\00" @.str2777 = private unnamed_addr constant [57 x i8] c"define i32 @fn_uni_decode(ptr %s, i32 %i, ptr %cpout) {\0A\00" @.str2778 = 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" @.str2779 = private unnamed_addr constant [69 x i8] c" %a1 = icmp ult i32 %c0, 128\0A br i1 %a1, label %one, label %multi\0A\00" @.str2780 = 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" @.str2781 = 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" @.str2782 = 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" @.str2783 = 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" @.str2784 = 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" @.str2785 = 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" @.str2786 = private unnamed_addr constant [67 x i8] c" %t1z = icmp eq i32 %t1, 0\0A br i1 %t1z, label %tbad, label %tok\0A\00" @.str2787 = 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" @.str2788 = 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" @.str2789 = 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" @.str2790 = private unnamed_addr constant [67 x i8] c" %r1z = icmp eq i32 %r1, 0\0A br i1 %r1z, label %rbad, label %rc2\0A\00" @.str2791 = 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" @.str2792 = 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" @.str2793 = private unnamed_addr constant [67 x i8] c" %r2z = icmp eq i32 %r2, 0\0A br i1 %r2z, label %rbad, label %rok\0A\00" @.str2794 = 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" @.str2795 = 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" @.str2796 = 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" @.str2797 = private unnamed_addr constant [67 x i8] c" %f1z = icmp eq i32 %f1, 0\0A br i1 %f1z, label %fbad, label %fc2\0A\00" @.str2798 = 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" @.str2799 = 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" @.str2800 = private unnamed_addr constant [67 x i8] c" %f2z = icmp eq i32 %f2, 0\0A br i1 %f2z, label %fbad, label %fc3\0A\00" @.str2801 = 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" @.str2802 = private unnamed_addr constant [67 x i8] c" %f3z = icmp eq i32 %f3, 0\0A br i1 %f3z, label %fbad, label %fok\0A\00" @.str2803 = 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" @.str2804 = 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" @.str2805 = 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" @.str2806 = private unnamed_addr constant [36 x i8] c"define i32 @fn_uni_valid(ptr %s) {\0A\00" @.str2807 = 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" @.str2808 = 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" @.str2809 = private unnamed_addr constant [60 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %good, label %g\0A\00" @.str2810 = 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" @.str2811 = 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" @.str2812 = 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" @.str2813 = 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" @.str2814 = 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" @.str2815 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str2816 = 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" @.str2817 = 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" @.str2818 = 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" @.str2819 = private unnamed_addr constant [71 x i8] c" %ov2 = icmp ult i32 %cp2, 128\0A br i1 %ov2, label %bad, label %adv2\0A\00" @.str2820 = 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" @.str2821 = 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" @.str2822 = 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" @.str2823 = 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" @.str2824 = 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" @.str2825 = 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" @.str2826 = private unnamed_addr constant [59 x i8] c" %cp3p = or i32 %e3s, %e3as\0A %cp3 = or i32 %cp3p, %e3bm\0A\00" @.str2827 = private unnamed_addr constant [72 x i8] c" %ov3 = icmp ult i32 %cp3, 2048\0A br i1 %ov3, label %bad, label %do3d\0A\00" @.str2828 = 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" @.str2829 = 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" @.str2830 = 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" @.str2831 = 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" @.str2832 = 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" @.str2833 = 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" @.str2834 = 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" @.str2835 = 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" @.str2836 = 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" @.str2837 = 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" @.str2838 = private unnamed_addr constant [73 x i8] c" %ov4 = icmp ult i32 %cp4, 65536\0A br i1 %ov4, label %bad, label %do4e\0A\00" @.str2839 = 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" @.str2840 = 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" @.str2841 = private unnamed_addr constant [21 x i8] c"good:\0A ret i32 1\0A}\0A\00" @.str2842 = private unnamed_addr constant [35 x i8] c"define i32 @fn_uni_upcp(i32 %c) {\0A\00" @.str2843 = 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" @.str2844 = 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" @.str2845 = 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" @.str2846 = private unnamed_addr constant [35 x i8] c"define i32 @fn_uni_locp(i32 %c) {\0A\00" @.str2847 = 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" @.str2848 = 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" @.str2849 = 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" @.str2850 = private unnamed_addr constant [39 x i8] c"define i32 @fn_uni_cpwidth(i32 %cp) {\0A\00" @.str2851 = 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" @.str2852 = 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" @.str2853 = private unnamed_addr constant [58 x i8] c"define i32 @fn_uni_encode(ptr %dst, i32 %off, i32 %cp) {\0A\00" @.str2854 = private unnamed_addr constant [111 x i8] c"entry:\0A %w = call i32 @fn_uni_cpwidth(i32 %cp)\0A %is1 = icmp eq i32 %w, 1\0A br i1 %is1, label %e1, label %k2\0A\00" @.str2855 = 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" @.str2856 = 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" @.str2857 = 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" @.str2858 = 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" @.str2859 = 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" @.str2860 = 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" @.str2861 = 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" @.str2862 = 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" @.str2863 = 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" @.str2864 = 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" @.str2865 = 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" @.str2866 = 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" @.str2867 = 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" @.str2868 = 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" @.str2869 = 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" @.str2870 = 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" @.str2871 = private unnamed_addr constant [40 x i8] c"define i32 @fn_uni_is_extend(i32 %c) {\0A\00" @.str2872 = private unnamed_addr constant [60 x i8] c" %r1 = call i32 @fn_uni_inrange(i32 %c, i32 768, i32 879)\0A\00" @.str2873 = private unnamed_addr constant [62 x i8] c" %r2 = call i32 @fn_uni_inrange(i32 %c, i32 6832, i32 6911)\0A\00" @.str2874 = private unnamed_addr constant [62 x i8] c" %r3 = call i32 @fn_uni_inrange(i32 %c, i32 7616, i32 7679)\0A\00" @.str2875 = private unnamed_addr constant [62 x i8] c" %r4 = call i32 @fn_uni_inrange(i32 %c, i32 8400, i32 8447)\0A\00" @.str2876 = private unnamed_addr constant [64 x i8] c" %r5 = call i32 @fn_uni_inrange(i32 %c, i32 65056, i32 65071)\0A\00" @.str2877 = private unnamed_addr constant [64 x i8] c" %r6 = call i32 @fn_uni_inrange(i32 %c, i32 65024, i32 65039)\0A\00" @.str2878 = private unnamed_addr constant [66 x i8] c" %r7 = call i32 @fn_uni_inrange(i32 %c, i32 917760, i32 917999)\0A\00" @.str2879 = 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" @.str2880 = private unnamed_addr constant [56 x i8] c"define i32 @fn_uni_inrange(i32 %c, i32 %lo, i32 %hi) {\0A\00" @.str2881 = 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" @.str2882 = private unnamed_addr constant [48 x i8] c"define i32 @fn_uni_char_at(ptr %s, i32 %idx) {\0A\00" @.str2883 = 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" @.str2884 = 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" @.str2885 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %none, label %go\0A\00" @.str2886 = private unnamed_addr constant [157 x i8] c"go:\0A %ni = call i32 @fn_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" @.str2887 = private unnamed_addr constant [46 x i8] c"found:\0A %v = load i32, ptr %cp\0A ret i32 %v\0A\00" @.str2888 = 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" @.str2889 = private unnamed_addr constant [22 x i8] c"none:\0A ret i32 -1\0A}\0A\00" @.str2890 = private unnamed_addr constant [36 x i8] c"define ptr @fn_uni_chars(ptr %s) {\0A\00" @.str2891 = private unnamed_addr constant [76 x i8] c"entry:\0A %n = call i32 @fn_uni_len(ptr %s)\0A %h = call ptr @malloc(i64 16)\0A\00" @.str2892 = 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" @.str2893 = 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" @.str2894 = 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" @.str2895 = 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" @.str2896 = 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" @.str2897 = 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" @.str2898 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str2899 = private unnamed_addr constant [112 x i8] c"go:\0A %ni = call i32 @fn_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %v = load i32, ptr %cp\0A %k = load i32, ptr %kp\0A\00" @.str2900 = 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" @.str2901 = private unnamed_addr constant [22 x i8] c"done:\0A ret ptr %h\0A}\0A\00" @.str2902 = private unnamed_addr constant [44 x i8] c"define ptr @fn_uni_case(ptr %s, i32 %up) {\0A\00" @.str2903 = 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" @.str2904 = 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" @.str2905 = 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" @.str2906 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str2907 = private unnamed_addr constant [87 x i8] c"go:\0A %ni = call i32 @fn_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %v = load i32, ptr %cp\0A\00" @.str2908 = private unnamed_addr constant [147 x i8] c" %mu = call i32 @fn_uni_upcp(i32 %v)\0A %ml = call i32 @fn_uni_locp(i32 %v)\0A %isup = icmp ne i32 %up, 0\0A %m = select i1 %isup, i32 %mu, i32 %ml\0A\00" @.str2909 = private unnamed_addr constant [149 x i8] c" %o = load i32, ptr %op\0A %no = call i32 @fn_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" @.str2910 = 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" @.str2911 = private unnamed_addr constant [47 x i8] c"define ptr @fn_uni_truncate(ptr %s, i32 %n) {\0A\00" @.str2912 = 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" @.str2913 = 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" @.str2914 = 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" @.str2915 = private unnamed_addr constant [60 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %cut, label %go\0A\00" @.str2916 = private unnamed_addr constant [149 x i8] c"go:\0A %ni = call i32 @fn_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" @.str2917 = 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" @.str2918 = 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" @.str2919 = private unnamed_addr constant [43 x i8] c"define i32 @fn_uni_grapheme_len(ptr %s) {\0A\00" @.str2920 = 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" @.str2921 = 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" @.str2922 = 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" @.str2923 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str2924 = private unnamed_addr constant [112 x i8] c"go:\0A %ni = call i32 @fn_uni_decode(ptr %s, i32 %i, ptr %cp)\0A %v = load i32, ptr %cp\0A store i32 %ni, ptr %ip\0A\00" @.str2925 = private unnamed_addr constant [75 x i8] c" %iszwj = icmp eq i32 %v, 8205\0A br i1 %iszwj, label %zwj, label %notzwj\0A\00" @.str2926 = 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" @.str2927 = 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" @.str2928 = 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" @.str2929 = 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 @fn_uni_inrange(i32 %v, i32 127462, i32 127487)\0A store i32 %ri0, ptr %rp\0A br label %lp\0A\00" @.str2930 = 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" @.str2931 = 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" @.str2932 = private unnamed_addr constant [129 x i8] c"chkext:\0A %ext = call i32 @fn_uni_is_extend(i32 %v)\0A %isext = icmp ne i32 %ext, 0\0A br i1 %isext, label %joinext, label %chkri\0A\00" @.str2933 = private unnamed_addr constant [48 x i8] c"joinext:\0A store i32 0, ptr %rp\0A br label %lp\0A\00" @.str2934 = private unnamed_addr constant [240 x i8] c"chkri:\0A %ri = call i32 @fn_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" @.str2935 = private unnamed_addr constant [47 x i8] c"joinri:\0A store i32 0, ptr %rp\0A br label %lp\0A\00" @.str2936 = 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" @.str2937 = private unnamed_addr constant [47 x i8] c"done:\0A %r = load i32, ptr %np\0A ret i32 %r\0A}\0A\00" @.str2938 = private unnamed_addr constant [7 x i8] c"exists\00" @.str2939 = private unnamed_addr constant [7 x i8] c"is_dir\00" @.str2940 = private unnamed_addr constant [10 x i8] c"read_text\00" @.str2941 = private unnamed_addr constant [11 x i8] c"write_text\00" @.str2942 = private unnamed_addr constant [12 x i8] c"append_text\00" @.str2943 = private unnamed_addr constant [7 x i8] c"remove\00" @.str2944 = private unnamed_addr constant [5 x i8] c"size\00" @.str2945 = private unnamed_addr constant [6 x i8] c"mkdir\00" @.str2946 = private unnamed_addr constant [5 x i8] c"copy\00" @.str2947 = private unnamed_addr constant [5 x i8] c"list\00" @.str2948 = private unnamed_addr constant [5 x i8] c"join\00" @.str2949 = private unnamed_addr constant [4 x i8] c"dir\00" @.str2950 = private unnamed_addr constant [5 x i8] c"base\00" @.str2951 = private unnamed_addr constant [4 x i8] c"ext\00" @.str2952 = private unnamed_addr constant [5 x i8] c"stem\00" @.str2953 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str2954 = private unnamed_addr constant [3 x i8] c"of\00" @.str2955 = private unnamed_addr constant [6 x i8] c"sniff\00" @.str2956 = private unnamed_addr constant [7 x i8] c"exists\00" @.str2957 = private unnamed_addr constant [28 x i8] c"call i32 @fn_fs_exists(ptr \00" @.str2958 = private unnamed_addr constant [2 x i8] c")\00" @.str2959 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2960 = private unnamed_addr constant [7 x i8] c"is_dir\00" @.str2961 = private unnamed_addr constant [28 x i8] c"call i32 @fn_fs_is_dir(ptr \00" @.str2962 = private unnamed_addr constant [2 x i8] c")\00" @.str2963 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2964 = private unnamed_addr constant [10 x i8] c"read_text\00" @.str2965 = private unnamed_addr constant [31 x i8] c"call ptr @fn_fs_read_text(ptr \00" @.str2966 = private unnamed_addr constant [2 x i8] c")\00" @.str2967 = private unnamed_addr constant [7 x i8] c"string\00" @.str2968 = private unnamed_addr constant [7 x i8] c"remove\00" @.str2969 = private unnamed_addr constant [28 x i8] c"call i32 @fn_fs_remove(ptr \00" @.str2970 = private unnamed_addr constant [2 x i8] c")\00" @.str2971 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2972 = private unnamed_addr constant [5 x i8] c"size\00" @.str2973 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fs_size(ptr \00" @.str2974 = private unnamed_addr constant [2 x i8] c")\00" @.str2975 = private unnamed_addr constant [4 x i8] c"int\00" @.str2976 = private unnamed_addr constant [6 x i8] c"mkdir\00" @.str2977 = private unnamed_addr constant [27 x i8] c"call i32 @fn_fs_mkdir(ptr \00" @.str2978 = private unnamed_addr constant [2 x i8] c")\00" @.str2979 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2980 = private unnamed_addr constant [5 x i8] c"list\00" @.str2981 = private unnamed_addr constant [26 x i8] c"call ptr @fn_fs_list(ptr \00" @.str2982 = private unnamed_addr constant [2 x i8] c")\00" @.str2983 = private unnamed_addr constant [9 x i8] c"[]string\00" @.str2984 = private unnamed_addr constant [11 x i8] c"write_text\00" @.str2985 = private unnamed_addr constant [32 x i8] c"call i32 @fn_fs_write_text(ptr \00" @.str2986 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2987 = private unnamed_addr constant [2 x i8] c")\00" @.str2988 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2989 = private unnamed_addr constant [12 x i8] c"append_text\00" @.str2990 = private unnamed_addr constant [33 x i8] c"call i32 @fn_fs_append_text(ptr \00" @.str2991 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2992 = private unnamed_addr constant [2 x i8] c")\00" @.str2993 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2994 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fs_copy(ptr \00" @.str2995 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str2996 = private unnamed_addr constant [2 x i8] c")\00" @.str2997 = private unnamed_addr constant [5 x i8] c"bool\00" @.str2998 = private unnamed_addr constant [4 x i8] c"dir\00" @.str2999 = private unnamed_addr constant [27 x i8] c"call ptr @fn_path_dir(ptr \00" @.str3000 = private unnamed_addr constant [2 x i8] c")\00" @.str3001 = private unnamed_addr constant [7 x i8] c"string\00" @.str3002 = private unnamed_addr constant [5 x i8] c"base\00" @.str3003 = private unnamed_addr constant [28 x i8] c"call ptr @fn_path_base(ptr \00" @.str3004 = private unnamed_addr constant [2 x i8] c")\00" @.str3005 = private unnamed_addr constant [7 x i8] c"string\00" @.str3006 = private unnamed_addr constant [4 x i8] c"ext\00" @.str3007 = private unnamed_addr constant [27 x i8] c"call ptr @fn_path_ext(ptr \00" @.str3008 = private unnamed_addr constant [2 x i8] c")\00" @.str3009 = private unnamed_addr constant [7 x i8] c"string\00" @.str3010 = private unnamed_addr constant [5 x i8] c"stem\00" @.str3011 = private unnamed_addr constant [28 x i8] c"call ptr @fn_path_stem(ptr \00" @.str3012 = private unnamed_addr constant [2 x i8] c")\00" @.str3013 = private unnamed_addr constant [7 x i8] c"string\00" @.str3014 = private unnamed_addr constant [10 x i8] c"normalize\00" @.str3015 = private unnamed_addr constant [28 x i8] c"call ptr @fn_path_norm(ptr \00" @.str3016 = private unnamed_addr constant [2 x i8] c")\00" @.str3017 = private unnamed_addr constant [7 x i8] c"string\00" @.str3018 = private unnamed_addr constant [28 x i8] c"call ptr @fn_path_join(ptr \00" @.str3019 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3020 = private unnamed_addr constant [2 x i8] c")\00" @.str3021 = private unnamed_addr constant [7 x i8] c"string\00" @.str3022 = private unnamed_addr constant [6 x i8] c"sniff\00" @.str3023 = private unnamed_addr constant [29 x i8] c"call ptr @fn_mime_sniff(ptr \00" @.str3024 = private unnamed_addr constant [2 x i8] c")\00" @.str3025 = private unnamed_addr constant [7 x i8] c"string\00" @.str3026 = private unnamed_addr constant [26 x i8] c"call ptr @fn_mime_of(ptr \00" @.str3027 = private unnamed_addr constant [2 x i8] c")\00" @.str3028 = private unnamed_addr constant [7 x i8] c"string\00" @.str3029 = private unnamed_addr constant [31 x i8] c"declare i32 @access(ptr, i32)\0A\00" @.str3030 = private unnamed_addr constant [30 x i8] c"declare i32 @mkdir(ptr, i32)\0A\00" @.str3031 = private unnamed_addr constant [26 x i8] c"declare i32 @remove(ptr)\0A\00" @.str3032 = private unnamed_addr constant [31 x i8] c"declare i32 @rename(ptr, ptr)\0A\00" @.str3033 = private unnamed_addr constant [27 x i8] c"declare ptr @opendir(ptr)\0A\00" @.str3034 = private unnamed_addr constant [27 x i8] c"declare ptr @readdir(ptr)\0A\00" @.str3035 = private unnamed_addr constant [28 x i8] c"declare i32 @closedir(ptr)\0A\00" @.str3036 = private unnamed_addr constant [31 x i8] c"declare i32 @strcmp(ptr, ptr)\0A\00" @.str3037 = private unnamed_addr constant [41 x i8] c"define ptr @fn_fs_dup(ptr %s, i32 %n) {\0A\00" @.str3038 = 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" @.str3039 = 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" @.str3040 = private unnamed_addr constant [36 x i8] c"define ptr @fn_fs_strdup(ptr %s) {\0A\00" @.str3041 = 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 @fn_fs_dup(ptr %s, i32 %li)\0A ret ptr %r\0A}\0A\00" @.str3042 = private unnamed_addr constant [39 x i8] c"define i32 @fn_fs_lastslash(ptr %s) {\0A\00" @.str3043 = 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" @.str3044 = 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" @.str3045 = private unnamed_addr constant [61 x i8] c" %z = icmp eq i32 %c, 0\0A br i1 %z, label %done, label %go\0A\00" @.str3046 = 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" @.str3047 = private unnamed_addr constant [45 x i8] c"set:\0A store i32 %i, ptr %rp\0A br label %nx\0A\00" @.str3048 = 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" @.str3049 = private unnamed_addr constant [47 x i8] c"done:\0A %r = load i32, ptr %rp\0A ret i32 %r\0A}\0A\00" @.str3050 = private unnamed_addr constant [44 x i8] c"define ptr @fn_path_join(ptr %a, ptr %b) {\0A\00" @.str3051 = 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" @.str3052 = 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" @.str3053 = private unnamed_addr constant [60 x i8] c"retb:\0A %rb = call ptr @fn_fs_strdup(ptr %b)\0A ret ptr %rb\0A\00" @.str3054 = 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" @.str3055 = private unnamed_addr constant [63 x i8] c"retb2:\0A %rb2 = call ptr @fn_fs_strdup(ptr %b)\0A ret ptr %rb2\0A\00" @.str3056 = 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" @.str3057 = private unnamed_addr constant [60 x i8] c"reta:\0A %ra = call ptr @fn_fs_strdup(ptr %a)\0A ret ptr %ra\0A\00" @.str3058 = 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" @.str3059 = 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" @.str3060 = 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" @.str3061 = private unnamed_addr constant [42 x i8] c" br i1 %ends, label %nosep, label %wsep\0A\00" @.str3062 = 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" @.str3063 = private unnamed_addr constant [26 x i8] c"nosep:\0A br label %after\0A\00" @.str3064 = 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" @.str3065 = 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" @.str3066 = private unnamed_addr constant [36 x i8] c"define ptr @fn_path_base(ptr %s) {\0A\00" @.str3067 = private unnamed_addr constant [121 x i8] c"entry:\0A %ls = call i32 @fn_fs_lastslash(ptr %s)\0A %none = icmp eq i32 %ls, -1\0A br i1 %none, label %whole, label %tail\0A\00" @.str3068 = private unnamed_addr constant [59 x i8] c"whole:\0A %r = call ptr @fn_fs_strdup(ptr %s)\0A ret ptr %r\0A\00" @.str3069 = 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 @fn_fs_strdup(ptr %p)\0A ret ptr %r2\0A}\0A\00" @.str3070 = private unnamed_addr constant [35 x i8] c"define ptr @fn_path_dir(ptr %s) {\0A\00" @.str3071 = private unnamed_addr constant [119 x i8] c"entry:\0A %ls = call i32 @fn_fs_lastslash(ptr %s)\0A %none = icmp eq i32 %ls, -1\0A br i1 %none, label %dot, label %chk0\0A\00" @.str3072 = private unnamed_addr constant [66 x i8] c"dot:\0A %d = call ptr @fn_fs_strdup(ptr @fn_str_dot)\0A ret ptr %d\0A\00" @.str3073 = 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" @.str3074 = private unnamed_addr constant [69 x i8] c"root:\0A %r = call ptr @fn_fs_strdup(ptr @fn_str_slash)\0A ret ptr %r\0A\00" @.str3075 = private unnamed_addr constant [67 x i8] c"cut:\0A %r2 = call ptr @fn_fs_dup(ptr %s, i32 %ls)\0A ret ptr %r2\0A}\0A\00" @.str3076 = private unnamed_addr constant [35 x i8] c"define ptr @fn_path_ext(ptr %s) {\0A\00" @.str3077 = private unnamed_addr constant [77 x i8] c"entry:\0A %ls = call i32 @fn_fs_lastslash(ptr %s)\0A %bstart = add i32 %ls, 1\0A\00" @.str3078 = 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" @.str3079 = 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" @.str3080 = 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" @.str3081 = private unnamed_addr constant [44 x i8] c"sd:\0A store i32 %i, ptr %dp\0A br label %nx\0A\00" @.str3082 = 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" @.str3083 = 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" @.str3084 = private unnamed_addr constant [70 x i8] c"empty:\0A %e = call ptr @fn_fs_strdup(ptr @fn_str_empty)\0A ret ptr %e\0A\00" @.str3085 = 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" @.str3086 = private unnamed_addr constant [73 x i8] c"empty2:\0A %e2 = call ptr @fn_fs_strdup(ptr @fn_str_empty)\0A ret ptr %e2\0A\00" @.str3087 = private unnamed_addr constant [102 x i8] c"take:\0A %pp = getelementptr i8, ptr %s, i32 %d\0A %r = call ptr @fn_fs_strdup(ptr %pp)\0A ret ptr %r\0A}\0A\00" @.str3088 = private unnamed_addr constant [36 x i8] c"define ptr @fn_path_stem(ptr %s) {\0A\00" @.str3089 = private unnamed_addr constant [88 x i8] c"entry:\0A %base = call ptr @fn_path_base(ptr %s)\0A %ext = call ptr @fn_path_ext(ptr %s)\0A\00" @.str3090 = 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" @.str3091 = private unnamed_addr constant [92 x i8] c" %keep = sub i32 %bl, %el\0A %r = call ptr @fn_fs_dup(ptr %base, i32 %keep)\0A ret ptr %r\0A}\0A\00" @.str3092 = private unnamed_addr constant [36 x i8] c"define ptr @fn_path_norm(ptr %s) {\0A\00" @.str3093 = 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" @.str3094 = private unnamed_addr constant [38 x i8] c" %out = call ptr @malloc(i64 %capz)\0A\00" @.str3095 = 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" @.str3096 = 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" @.str3097 = 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" @.str3098 = private unnamed_addr constant [40 x i8] c" br i1 %abs, label %ldr, label %noldr\0A\00" @.str3099 = 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" @.str3100 = private unnamed_addr constant [47 x i8] c"noldr:\0A store i32 0, ptr %op\0A br label %seg\0A\00" @.str3101 = private unnamed_addr constant [23 x i8] c"seg:\0A br label %sksl\0A\00" @.str3102 = 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" @.str3103 = 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" @.str3104 = private unnamed_addr constant [54 x i8] c"segstart:\0A %ss = load i32, ptr %ip\0A br label %scan\0A\00" @.str3105 = 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" @.str3106 = 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" @.str3107 = 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" @.str3108 = private unnamed_addr constant [11 x i8] c"classify:\0A\00" @.str3109 = 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" @.str3110 = 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" @.str3111 = 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" @.str3112 = 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" @.str3113 = 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" @.str3114 = private unnamed_addr constant [54 x i8] c"chkrel:\0A br i1 %abs, label %contseg, label %keepseg\0A\00" @.str3115 = 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" @.str3116 = private unnamed_addr constant [63 x i8] c" %cpp = alloca i32\0A store i32 %ss, ptr %cpp\0A br label %cpy\0A\00" @.str3117 = 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" @.str3118 = 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" @.str3119 = 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" @.str3120 = 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" @.str3121 = private unnamed_addr constant [27 x i8] c"atend:\0A br label %finish\0A\00" @.str3122 = 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" @.str3123 = 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" @.str3124 = private unnamed_addr constant [52 x i8] c"trim:\0A store i32 %lasto, ptr %op\0A br label %term\0A\00" @.str3125 = private unnamed_addr constant [28 x i8] c"fdefault:\0A br label %term\0A\00" @.str3126 = 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" @.str3127 = 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" @.str3128 = 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" @.str3129 = private unnamed_addr constant [36 x i8] c"define i32 @fn_fs_exists(ptr %p) {\0A\00" @.str3130 = private unnamed_addr constant [114 x i8] c"entry:\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" @.str3131 = private unnamed_addr constant [36 x i8] c"define i32 @fn_fs_is_dir(ptr %p) {\0A\00" @.str3132 = 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" @.str3133 = private unnamed_addr constant [47 x i8] c"yes:\0A call i32 @closedir(ptr %d)\0A ret i32 1\0A\00" @.str3134 = private unnamed_addr constant [19 x i8] c"no:\0A ret i32 0\0A}\0A\00" @.str3135 = private unnamed_addr constant [34 x i8] c"define i32 @fn_fs_size(ptr %p) {\0A\00" @.str3136 = private unnamed_addr constant [119 x i8] c"entry:\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" @.str3137 = private unnamed_addr constant [19 x i8] c"bad:\0A ret i32 -1\0A\00" @.str3138 = 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" @.str3139 = private unnamed_addr constant [50 x i8] c"define ptr @fn_fs_readall(ptr %p, ptr %lenout) {\0A\00" @.str3140 = private unnamed_addr constant [146 x i8] c"entry:\0A store i32 0, ptr %lenout\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" @.str3141 = private unnamed_addr constant [21 x i8] c"bad:\0A ret ptr null\0A\00" @.str3142 = 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" @.str3143 = 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" @.str3144 = 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" @.str3145 = private unnamed_addr constant [39 x i8] c"define ptr @fn_fs_read_text(ptr %p) {\0A\00" @.str3146 = private unnamed_addr constant [90 x i8] c"entry:\0A %lp = alloca i32\0A %r = call ptr @fn_fs_readall(ptr %p, ptr %lp)\0A ret ptr %r\0A}\0A\00" @.str3147 = private unnamed_addr constant [48 x i8] c"define i32 @fn_fs_write_text(ptr %p, ptr %s) {\0A\00" @.str3148 = private unnamed_addr constant [185 x i8] c"entry:\0A %tmp = call ptr @fn_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" @.str3149 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str3150 = 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" @.str3151 = 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" @.str3152 = private unnamed_addr constant [48 x i8] c"define ptr @fn_path_join_ext(ptr %a, ptr %b) {\0A\00" @.str3153 = 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" @.str3154 = 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" @.str3155 = private unnamed_addr constant [49 x i8] c"define i32 @fn_fs_append_text(ptr %p, ptr %s) {\0A\00" @.str3156 = 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" @.str3157 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str3158 = 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" @.str3159 = private unnamed_addr constant [36 x i8] c"define i32 @fn_fs_remove(ptr %p) {\0A\00" @.str3160 = 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" @.str3161 = private unnamed_addr constant [46 x i8] c"define i32 @fn_fs_copy(ptr %src, ptr %dst) {\0A\00" @.str3162 = private unnamed_addr constant [145 x i8] c"entry:\0A %lp = alloca i32\0A %buf = call ptr @fn_fs_readall(ptr %src, ptr %lp)\0A %nz = icmp ne ptr %buf, null\0A br i1 %nz, label %ok, label %bad\0A\00" @.str3163 = private unnamed_addr constant [18 x i8] c"bad:\0A ret i32 0\0A\00" @.str3164 = private unnamed_addr constant [185 x i8] c"ok:\0A %tmp = call ptr @fn_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" @.str3165 = 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" @.str3166 = private unnamed_addr constant [35 x i8] c"define i32 @fn_fs_mkdir(ptr %p) {\0A\00" @.str3167 = private unnamed_addr constant [105 x i8] c"entry:\0A %dup = call ptr @fn_fs_strdup(ptr %p)\0A %ip = alloca i32\0A store i32 1, ptr %ip\0A br label %lp\0A\00" @.str3168 = 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" @.str3169 = 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" @.str3170 = 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" @.str3171 = 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" @.str3172 = private unnamed_addr constant [96 x i8] c"fin:\0A call i32 @mkdir(ptr %dup, i32 493)\0A %r = call i32 @fn_fs_is_dir(ptr %p)\0A ret i32 %r\0A}\0A\00" @.str3173 = private unnamed_addr constant [37 x i8] c"define ptr @fn_fs_list(ptr %path) {\0A\00" @.str3174 = 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" @.str3175 = 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" @.str3176 = 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" @.str3177 = 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" @.str3178 = private unnamed_addr constant [51 x i8] c"ent:\0A %namep = getelementptr i8, ptr %de, i32 21\0A\00" @.str3179 = 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" @.str3180 = 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" @.str3181 = 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" @.str3182 = 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" @.str3183 = private unnamed_addr constant [50 x i8] c"keep:\0A %nm = call ptr @fn_fs_strdup(ptr %namep)\0A\00" @.str3184 = 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" @.str3185 = 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" @.str3186 = 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" @.str3187 = private unnamed_addr constant [59 x i8] c"closed:\0A call i32 @closedir(ptr %dir)\0A br label %sortit\0A\00" @.str3188 = private unnamed_addr constant [27 x i8] c"empty:\0A br label %sortit\0A\00" @.str3189 = 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" @.str3190 = 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" @.str3191 = 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" @.str3192 = 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" @.str3193 = 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" @.str3194 = 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" @.str3195 = 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" @.str3196 = 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" @.str3197 = private unnamed_addr constant [4 x i8] c"png\00" @.str3198 = private unnamed_addr constant [10 x i8] c"image/png\00" @.str3199 = private unnamed_addr constant [4 x i8] c"jpg\00" @.str3200 = private unnamed_addr constant [11 x i8] c"image/jpeg\00" @.str3201 = private unnamed_addr constant [5 x i8] c"jpeg\00" @.str3202 = private unnamed_addr constant [11 x i8] c"image/jpeg\00" @.str3203 = private unnamed_addr constant [4 x i8] c"gif\00" @.str3204 = private unnamed_addr constant [10 x i8] c"image/gif\00" @.str3205 = private unnamed_addr constant [4 x i8] c"bmp\00" @.str3206 = private unnamed_addr constant [10 x i8] c"image/bmp\00" @.str3207 = private unnamed_addr constant [5 x i8] c"webp\00" @.str3208 = private unnamed_addr constant [11 x i8] c"image/webp\00" @.str3209 = private unnamed_addr constant [4 x i8] c"svg\00" @.str3210 = private unnamed_addr constant [14 x i8] c"image/svg+xml\00" @.str3211 = private unnamed_addr constant [4 x i8] c"txt\00" @.str3212 = private unnamed_addr constant [11 x i8] c"text/plain\00" @.str3213 = private unnamed_addr constant [3 x i8] c"md\00" @.str3214 = private unnamed_addr constant [14 x i8] c"text/markdown\00" @.str3215 = private unnamed_addr constant [4 x i8] c"csv\00" @.str3216 = private unnamed_addr constant [9 x i8] c"text/csv\00" @.str3217 = private unnamed_addr constant [5 x i8] c"html\00" @.str3218 = private unnamed_addr constant [10 x i8] c"text/html\00" @.str3219 = private unnamed_addr constant [4 x i8] c"htm\00" @.str3220 = private unnamed_addr constant [10 x i8] c"text/html\00" @.str3221 = private unnamed_addr constant [4 x i8] c"css\00" @.str3222 = private unnamed_addr constant [9 x i8] c"text/css\00" @.str3223 = private unnamed_addr constant [3 x i8] c"js\00" @.str3224 = private unnamed_addr constant [16 x i8] c"text/javascript\00" @.str3225 = private unnamed_addr constant [5 x i8] c"json\00" @.str3226 = private unnamed_addr constant [17 x i8] c"application/json\00" @.str3227 = private unnamed_addr constant [4 x i8] c"xml\00" @.str3228 = private unnamed_addr constant [16 x i8] c"application/xml\00" @.str3229 = private unnamed_addr constant [4 x i8] c"zip\00" @.str3230 = private unnamed_addr constant [16 x i8] c"application/zip\00" @.str3231 = private unnamed_addr constant [4 x i8] c"pdf\00" @.str3232 = private unnamed_addr constant [16 x i8] c"application/pdf\00" @.str3233 = private unnamed_addr constant [4 x i8] c"wav\00" @.str3234 = private unnamed_addr constant [10 x i8] c"audio/wav\00" @.str3235 = private unnamed_addr constant [4 x i8] c"ogg\00" @.str3236 = private unnamed_addr constant [10 x i8] c"audio/ogg\00" @.str3237 = private unnamed_addr constant [4 x i8] c"mp3\00" @.str3238 = private unnamed_addr constant [11 x i8] c"audio/mpeg\00" @.str3239 = private unnamed_addr constant [4 x i8] c"ttf\00" @.str3240 = private unnamed_addr constant [9 x i8] c"font/ttf\00" @.str3241 = private unnamed_addr constant [4 x i8] c"otf\00" @.str3242 = private unnamed_addr constant [9 x i8] c"font/otf\00" @.str3243 = private unnamed_addr constant [6 x i8] c"ludic\00" @.str3244 = private unnamed_addr constant [13 x i8] c"text/x-ludic\00" @.str3245 = private unnamed_addr constant [25 x i8] c"application/octet-stream\00" @.str3246 = private unnamed_addr constant [44 x i8] c"@mime_tbl = private unnamed_addr constant [\00" @.str3247 = private unnamed_addr constant [19 x i8] c" x { ptr, ptr }] [\00" @.str3248 = private unnamed_addr constant [3 x i8] c", \00" @.str3249 = private unnamed_addr constant [20 x i8] c"{ ptr, ptr } { ptr \00" @.str3250 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3251 = private unnamed_addr constant [3 x i8] c" }\00" @.str3252 = private unnamed_addr constant [3 x i8] c"]\0A\00" @.str3253 = private unnamed_addr constant [37 x i8] c"define ptr @fn_mime_of(ptr %path) {\0A\00" @.str3254 = private unnamed_addr constant [146 x i8] c"entry:\0A %ext = call ptr @fn_path_ext(ptr %path)\0A %lc = call ptr @fn_mime_lc(ptr %ext)\0A %ip = alloca i32\0A store i32 0, ptr %ip\0A br label %lp\0A\00" @.str3255 = private unnamed_addr constant [55 x i8] c"lp:\0A %i = load i32, ptr %ip\0A %lt = icmp slt i32 %i, \00" @.str3256 = private unnamed_addr constant [39 x i8] c"\0A br i1 %lt, label %body, label %def\0A\00" @.str3257 = private unnamed_addr constant [30 x i8] c"body:\0A %kp = getelementptr [\00" @.str3258 = 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" @.str3259 = private unnamed_addr constant [29 x i8] c"hit:\0A %vp = getelementptr [\00" @.str3260 = 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 @fn_fs_strdup(ptr %v)\0A ret ptr %r\0A\00" @.str3261 = 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" @.str3262 = private unnamed_addr constant [40 x i8] c"def:\0A %d = call ptr @fn_fs_strdup(ptr \00" @.str3263 = private unnamed_addr constant [18 x i8] c")\0A ret ptr %d\0A}\0A\00" @.str3264 = private unnamed_addr constant [34 x i8] c"define ptr @fn_mime_lc(ptr %s) {\0A\00" @.str3265 = 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" @.str3266 = 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" @.str3267 = 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" @.str3268 = 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" @.str3269 = 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" @.str3270 = 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" @.str3271 = private unnamed_addr constant [40 x i8] c"define ptr @fn_mime_sniff(ptr %path) {\0A\00" @.str3272 = 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" @.str3273 = 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" @.str3274 = 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" @.str3275 = 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" @.str3276 = private unnamed_addr constant [72 x i8] c"png:\0A %rpng = call ptr @fn_fs_strdup(ptr @fn_sig_png)\0A ret ptr %rpng\0A\00" @.str3277 = 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" @.str3278 = private unnamed_addr constant [72 x i8] c"jpg:\0A %rjpg = call ptr @fn_fs_strdup(ptr @fn_sig_jpg)\0A ret ptr %rjpg\0A\00" @.str3279 = 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" @.str3280 = private unnamed_addr constant [72 x i8] c"gif:\0A %rgif = call ptr @fn_fs_strdup(ptr @fn_sig_gif)\0A ret ptr %rgif\0A\00" @.str3281 = 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" @.str3282 = private unnamed_addr constant [72 x i8] c"pdf:\0A %rpdf = call ptr @fn_fs_strdup(ptr @fn_sig_pdf)\0A ret ptr %rpdf\0A\00" @.str3283 = private unnamed_addr constant [65 x i8] c"fallback:\0A %r = call ptr @fn_mime_of(ptr %path)\0A ret ptr %r\0A}\0A\00" @.str3284 = private unnamed_addr constant [62 x i8] c"@fn_str_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str3285 = private unnamed_addr constant [62 x i8] c"@fn_str_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" @.str3286 = private unnamed_addr constant [62 x i8] c"@fn_str_ab = private unnamed_addr constant [3 x i8] c\22ab\5C00\22\0A\00" @.str3287 = private unnamed_addr constant [62 x i8] c"@fn_str_dot = private unnamed_addr constant [2 x i8] c\22.\5C00\22\0A\00" @.str3288 = private unnamed_addr constant [64 x i8] c"@fn_str_slash = private unnamed_addr constant [2 x i8] c\22/\5C00\22\0A\00" @.str3289 = private unnamed_addr constant [63 x i8] c"@fn_str_empty = private unnamed_addr constant [1 x i8] c\22\5C00\22\0A\00" @.str3290 = 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" @.str3291 = 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" @.str3292 = 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" @.str3293 = 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" @.str3294 = 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" @.str3295 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str3296 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" @.str3297 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3298 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3299 = private unnamed_addr constant [4 x i8] c"len\00" @.str3300 = private unnamed_addr constant [5 x i8] c"push\00" @.str3301 = private unnamed_addr constant [6 x i8] c"clear\00" @.str3302 = private unnamed_addr constant [6 x i8] c"first\00" @.str3303 = private unnamed_addr constant [5 x i8] c"last\00" @.str3304 = private unnamed_addr constant [4 x i8] c"pop\00" @.str3305 = private unnamed_addr constant [5 x i8] c"swap\00" @.str3306 = private unnamed_addr constant [9 x i8] c"contains\00" @.str3307 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str3308 = private unnamed_addr constant [8 x i8] c"reverse\00" @.str3309 = private unnamed_addr constant [7 x i8] c"insert\00" @.str3310 = private unnamed_addr constant [10 x i8] c"remove_at\00" @.str3311 = private unnamed_addr constant [7 x i8] c"remove\00" @.str3312 = private unnamed_addr constant [5 x i8] c"sort\00" @.str3313 = private unnamed_addr constant [8 x i8] c"sort_by\00" @.str3314 = private unnamed_addr constant [13 x i8] c"sort_desc_by\00" @.str3315 = private unnamed_addr constant [10 x i8] c"sort_with\00" @.str3316 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3317 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3318 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str3319 = private unnamed_addr constant [3 x i8] c", \00" @.str3320 = private unnamed_addr constant [3 x i8] c"ig\00" @.str3321 = private unnamed_addr constant [4 x i8] c"igd\00" @.str3322 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3323 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3324 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3325 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3326 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3327 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3328 = private unnamed_addr constant [4 x i8] c", 2\00" @.str3329 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str3330 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3331 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3332 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" @.str3333 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str3334 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str3335 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str3336 = private unnamed_addr constant [3 x i8] c", \00" @.str3337 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str3338 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" @.str3339 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str3340 = private unnamed_addr constant [2 x i8] c")\00" @.str3341 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str3342 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3343 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3344 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str3345 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3346 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3347 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3348 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3349 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3350 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" @.str3351 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3352 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3353 = private unnamed_addr constant [10 x i8] c"icmp slt \00" @.str3354 = private unnamed_addr constant [2 x i8] c" \00" @.str3355 = private unnamed_addr constant [3 x i8] c", \00" @.str3356 = private unnamed_addr constant [14 x i8] c"call i32 @fn_\00" @.str3357 = private unnamed_addr constant [2 x i8] c"(\00" @.str3358 = private unnamed_addr constant [2 x i8] c" \00" @.str3359 = private unnamed_addr constant [3 x i8] c", \00" @.str3360 = private unnamed_addr constant [2 x i8] c" \00" @.str3361 = private unnamed_addr constant [2 x i8] c")\00" @.str3362 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str3363 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3364 = private unnamed_addr constant [6 x i8] c"call \00" @.str3365 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str3366 = private unnamed_addr constant [2 x i8] c"(\00" @.str3367 = private unnamed_addr constant [2 x i8] c" \00" @.str3368 = private unnamed_addr constant [2 x i8] c")\00" @.str3369 = private unnamed_addr constant [6 x i8] c"call \00" @.str3370 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str3371 = private unnamed_addr constant [2 x i8] c"(\00" @.str3372 = private unnamed_addr constant [2 x i8] c" \00" @.str3373 = private unnamed_addr constant [2 x i8] c")\00" @.str3374 = private unnamed_addr constant [10 x i8] c"icmp slt \00" @.str3375 = private unnamed_addr constant [2 x i8] c" \00" @.str3376 = private unnamed_addr constant [3 x i8] c", \00" @.str3377 = private unnamed_addr constant [10 x i8] c"icmp sgt \00" @.str3378 = private unnamed_addr constant [2 x i8] c" \00" @.str3379 = private unnamed_addr constant [3 x i8] c", \00" @.str3380 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str3381 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3382 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str3383 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str3384 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str3385 = private unnamed_addr constant [3 x i8] c", \00" @.str3386 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str3387 = private unnamed_addr constant [2 x i8] c")\00" @.str3388 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3389 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3390 = private unnamed_addr constant [2 x i8] c"1\00" @.str3391 = private unnamed_addr constant [6 x i8] c"ms_wc\00" @.str3392 = private unnamed_addr constant [6 x i8] c"ms_wb\00" @.str3393 = private unnamed_addr constant [6 x i8] c"ms_we\00" @.str3394 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3395 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3396 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3397 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3398 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3399 = private unnamed_addr constant [3 x i8] c", \00" @.str3400 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3401 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3402 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3403 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3404 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3405 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str3406 = private unnamed_addr constant [4 x i8] c", 2\00" @.str3407 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3408 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3409 = private unnamed_addr constant [2 x i8] c"0\00" @.str3410 = private unnamed_addr constant [6 x i8] c"ms_ic\00" @.str3411 = private unnamed_addr constant [6 x i8] c"ms_ib\00" @.str3412 = private unnamed_addr constant [6 x i8] c"ms_ie\00" @.str3413 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3414 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3415 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3416 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3417 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3418 = private unnamed_addr constant [3 x i8] c", \00" @.str3419 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3420 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3421 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3422 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3423 = private unnamed_addr constant [3 x i8] c":\0A\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 [14 x i8] c"icmp slt i32 \00" @.str3427 = private unnamed_addr constant [3 x i8] c", \00" @.str3428 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3429 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3430 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3431 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3432 = private unnamed_addr constant [3 x i8] c", \00" @.str3433 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3434 = private unnamed_addr constant [3 x i8] c", \00" @.str3435 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str3436 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3437 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str3438 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3439 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3440 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3441 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3442 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3443 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3444 = private unnamed_addr constant [6 x i8] c"ms_mc\00" @.str3445 = private unnamed_addr constant [6 x i8] c"ms_mb\00" @.str3446 = private unnamed_addr constant [8 x i8] c"ms_mend\00" @.str3447 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3448 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3449 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3450 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3451 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3452 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3453 = private unnamed_addr constant [3 x i8] c", \00" @.str3454 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3455 = private unnamed_addr constant [3 x i8] c", \00" @.str3456 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str3457 = private unnamed_addr constant [3 x i8] c", \00" @.str3458 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3459 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3460 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3461 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3462 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3463 = private unnamed_addr constant [6 x i8] c"load \00" @.str3464 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3465 = private unnamed_addr constant [6 x i8] c"load \00" @.str3466 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3467 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3468 = private unnamed_addr constant [9 x i8] c"ms_takeR\00" @.str3469 = private unnamed_addr constant [9 x i8] c"ms_takeL\00" @.str3470 = private unnamed_addr constant [9 x i8] c"ms_takeD\00" @.str3471 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3472 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3473 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3474 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3475 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3476 = private unnamed_addr constant [9 x i8] c" store \00" @.str3477 = private unnamed_addr constant [2 x i8] c" \00" @.str3478 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3479 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3480 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3481 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3482 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3483 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3484 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3485 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3486 = private unnamed_addr constant [9 x i8] c" store \00" @.str3487 = private unnamed_addr constant [2 x i8] c" \00" @.str3488 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3489 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3490 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3491 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3492 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3493 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3494 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3495 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3496 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3497 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3498 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3499 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3500 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3501 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3502 = private unnamed_addr constant [7 x i8] c"ms_dac\00" @.str3503 = private unnamed_addr constant [7 x i8] c"ms_dab\00" @.str3504 = private unnamed_addr constant [7 x i8] c"ms_dae\00" @.str3505 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3506 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3507 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3508 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3509 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3510 = private unnamed_addr constant [3 x i8] c", \00" @.str3511 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3512 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3513 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3514 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3515 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3516 = private unnamed_addr constant [6 x i8] c"load \00" @.str3517 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3518 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3519 = private unnamed_addr constant [9 x i8] c" store \00" @.str3520 = private unnamed_addr constant [2 x i8] c" \00" @.str3521 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3522 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3523 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3524 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3525 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3526 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3527 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3528 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3529 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3530 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3531 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3532 = private unnamed_addr constant [7 x i8] c"ms_dbc\00" @.str3533 = private unnamed_addr constant [7 x i8] c"ms_dbb\00" @.str3534 = private unnamed_addr constant [7 x i8] c"ms_dbe\00" @.str3535 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3536 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3537 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3538 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3539 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3540 = private unnamed_addr constant [3 x i8] c", \00" @.str3541 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3542 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3543 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3544 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3545 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3546 = private unnamed_addr constant [6 x i8] c"load \00" @.str3547 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3548 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3549 = private unnamed_addr constant [9 x i8] c" store \00" @.str3550 = private unnamed_addr constant [2 x i8] c" \00" @.str3551 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3552 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3553 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3554 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3555 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3556 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3557 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3558 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3559 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3560 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3561 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3562 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3563 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3564 = private unnamed_addr constant [7 x i8] c"ms_cbc\00" @.str3565 = private unnamed_addr constant [7 x i8] c"ms_cbb\00" @.str3566 = private unnamed_addr constant [7 x i8] c"ms_cbe\00" @.str3567 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3568 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3569 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3570 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3571 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3572 = private unnamed_addr constant [3 x i8] c", \00" @.str3573 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3574 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3575 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3576 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3577 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3578 = private unnamed_addr constant [6 x i8] c"load \00" @.str3579 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3580 = private unnamed_addr constant [9 x i8] c" store \00" @.str3581 = private unnamed_addr constant [2 x i8] c" \00" @.str3582 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3583 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3584 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3585 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3586 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3587 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3588 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3589 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3590 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3591 = private unnamed_addr constant [3 x i8] c", \00" @.str3592 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3593 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3594 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3595 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3596 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3597 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3598 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3599 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3600 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" @.str3601 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str3602 = private unnamed_addr constant [6 x i8] c"List.\00" @.str3603 = private unnamed_addr constant [25 x i8] c" needs (slice, function)\00" @.str3604 = private unnamed_addr constant [6 x i8] c"List.\00" @.str3605 = private unnamed_addr constant [46 x i8] c": the second argument must be a function name\00" @.str3606 = private unnamed_addr constant [6 x i8] c"List.\00" @.str3607 = private unnamed_addr constant [22 x i8] c": no function named '\00" @.str3608 = private unnamed_addr constant [2 x i8] c"'\00" @.str3609 = private unnamed_addr constant [4 x i8] c"len\00" @.str3610 = private unnamed_addr constant [5 x i8] c"push\00" @.str3611 = private unnamed_addr constant [6 x i8] c"List.\00" @.str3612 = private unnamed_addr constant [15 x i8] c" needs a slice\00" @.str3613 = private unnamed_addr constant [6 x i8] c"clear\00" @.str3614 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str3615 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3616 = private unnamed_addr constant [2 x i8] c"0\00" @.str3617 = private unnamed_addr constant [5 x i8] c"void\00" @.str3618 = private unnamed_addr constant [6 x i8] c"first\00" @.str3619 = private unnamed_addr constant [2 x i8] c"0\00" @.str3620 = private unnamed_addr constant [6 x i8] c"load \00" @.str3621 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3622 = private unnamed_addr constant [5 x i8] c"last\00" @.str3623 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3624 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3625 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3626 = private unnamed_addr constant [6 x i8] c"load \00" @.str3627 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3628 = private unnamed_addr constant [4 x i8] c"pop\00" @.str3629 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3630 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3631 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3632 = private unnamed_addr constant [6 x i8] c"load \00" @.str3633 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3634 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str3635 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3636 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3637 = private unnamed_addr constant [5 x i8] c"swap\00" @.str3638 = private unnamed_addr constant [6 x i8] c"load \00" @.str3639 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3640 = private unnamed_addr constant [6 x i8] c"load \00" @.str3641 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3642 = private unnamed_addr constant [9 x i8] c" store \00" @.str3643 = private unnamed_addr constant [2 x i8] c" \00" @.str3644 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3645 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3646 = private unnamed_addr constant [9 x i8] c" store \00" @.str3647 = private unnamed_addr constant [2 x i8] c" \00" @.str3648 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3649 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3650 = private unnamed_addr constant [2 x i8] c"0\00" @.str3651 = private unnamed_addr constant [5 x i8] c"void\00" @.str3652 = private unnamed_addr constant [9 x i8] c"contains\00" @.str3653 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str3654 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3655 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3656 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3657 = private unnamed_addr constant [3 x i8] c"-1\00" @.str3658 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3659 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3660 = private unnamed_addr constant [2 x i8] c"0\00" @.str3661 = private unnamed_addr constant [8 x i8] c"lc_cond\00" @.str3662 = private unnamed_addr constant [8 x i8] c"lc_body\00" @.str3663 = private unnamed_addr constant [7 x i8] c"lc_hit\00" @.str3664 = private unnamed_addr constant [8 x i8] c"lc_next\00" @.str3665 = private unnamed_addr constant [7 x i8] c"lc_end\00" @.str3666 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3667 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3668 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3669 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3670 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3671 = private unnamed_addr constant [3 x i8] c", \00" @.str3672 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3673 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3674 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3675 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3676 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3677 = private unnamed_addr constant [6 x i8] c"load \00" @.str3678 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3679 = private unnamed_addr constant [9 x i8] c"icmp eq \00" @.str3680 = private unnamed_addr constant [2 x i8] c" \00" @.str3681 = private unnamed_addr constant [3 x i8] c", \00" @.str3682 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3683 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3684 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3685 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3686 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3687 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3688 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3689 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3690 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3691 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3692 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3693 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3694 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3695 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3696 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3697 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3698 = private unnamed_addr constant [9 x i8] c"index_of\00" @.str3699 = private unnamed_addr constant [4 x i8] c"int\00" @.str3700 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str3701 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3702 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str3703 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str3704 = private unnamed_addr constant [5 x i8] c"bool\00" @.str3705 = private unnamed_addr constant [7 x i8] c"insert\00" @.str3706 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3707 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3708 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3709 = private unnamed_addr constant [5 x i8] c"li_c\00" @.str3710 = private unnamed_addr constant [5 x i8] c"li_b\00" @.str3711 = private unnamed_addr constant [5 x i8] c"li_e\00" @.str3712 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3713 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3714 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3715 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3716 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str3717 = private unnamed_addr constant [3 x i8] c", \00" @.str3718 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3719 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3720 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3721 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3722 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3723 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3724 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3725 = private unnamed_addr constant [6 x i8] c"load \00" @.str3726 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3727 = private unnamed_addr constant [9 x i8] c" store \00" @.str3728 = private unnamed_addr constant [2 x i8] c" \00" @.str3729 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3730 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3731 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3732 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3733 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3734 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3735 = private unnamed_addr constant [9 x i8] c" store \00" @.str3736 = private unnamed_addr constant [2 x i8] c" \00" @.str3737 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3738 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3739 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3740 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3741 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str3742 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3743 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3744 = private unnamed_addr constant [2 x i8] c"0\00" @.str3745 = private unnamed_addr constant [5 x i8] c"void\00" @.str3746 = private unnamed_addr constant [10 x i8] c"remove_at\00" @.str3747 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3748 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3749 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3750 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3751 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3752 = private unnamed_addr constant [5 x i8] c"lr_c\00" @.str3753 = private unnamed_addr constant [5 x i8] c"lr_b\00" @.str3754 = private unnamed_addr constant [5 x i8] c"lr_e\00" @.str3755 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3756 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3757 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3758 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3759 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3760 = private unnamed_addr constant [3 x i8] c", \00" @.str3761 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3762 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3763 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3764 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3765 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3766 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3767 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3768 = private unnamed_addr constant [6 x i8] c"load \00" @.str3769 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3770 = private unnamed_addr constant [9 x i8] c" store \00" @.str3771 = private unnamed_addr constant [2 x i8] c" \00" @.str3772 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3773 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3774 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3775 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3776 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3777 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3778 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str3779 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3780 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3781 = private unnamed_addr constant [2 x i8] c"0\00" @.str3782 = private unnamed_addr constant [5 x i8] c"void\00" @.str3783 = private unnamed_addr constant [7 x i8] c"remove\00" @.str3784 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3785 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3786 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3787 = private unnamed_addr constant [3 x i8] c"-1\00" @.str3788 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3789 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3790 = private unnamed_addr constant [2 x i8] c"0\00" @.str3791 = private unnamed_addr constant [5 x i8] c"lv_c\00" @.str3792 = private unnamed_addr constant [5 x i8] c"lv_b\00" @.str3793 = private unnamed_addr constant [5 x i8] c"lv_h\00" @.str3794 = private unnamed_addr constant [5 x i8] c"lv_n\00" @.str3795 = private unnamed_addr constant [5 x i8] c"lv_e\00" @.str3796 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3797 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3798 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3799 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3800 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3801 = private unnamed_addr constant [3 x i8] c", \00" @.str3802 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3803 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3804 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3805 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str3806 = private unnamed_addr constant [3 x i8] c", \00" @.str3807 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3808 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3809 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3810 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3811 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3812 = private unnamed_addr constant [6 x i8] c"load \00" @.str3813 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3814 = private unnamed_addr constant [9 x i8] c"icmp eq \00" @.str3815 = private unnamed_addr constant [2 x i8] c" \00" @.str3816 = private unnamed_addr constant [3 x i8] c", \00" @.str3817 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3818 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3819 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3820 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3821 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3822 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3823 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3824 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3825 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3826 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3827 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3828 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3829 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3830 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3831 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3832 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3833 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str3834 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3835 = private unnamed_addr constant [6 x i8] c"lv_do\00" @.str3836 = private unnamed_addr constant [7 x i8] c"lv_end\00" @.str3837 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3838 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3839 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3840 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3841 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3842 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3843 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3844 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3845 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3846 = private unnamed_addr constant [6 x i8] c"lv_dc\00" @.str3847 = private unnamed_addr constant [6 x i8] c"lv_db\00" @.str3848 = private unnamed_addr constant [6 x i8] c"lv_de\00" @.str3849 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3850 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3851 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3852 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3853 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3854 = private unnamed_addr constant [3 x i8] c", \00" @.str3855 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3856 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3857 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3858 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3859 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3860 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3861 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3862 = private unnamed_addr constant [6 x i8] c"load \00" @.str3863 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3864 = private unnamed_addr constant [9 x i8] c" store \00" @.str3865 = private unnamed_addr constant [2 x i8] c" \00" @.str3866 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3867 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3868 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3869 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3870 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3871 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3872 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str3873 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3874 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3875 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3876 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3877 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3878 = private unnamed_addr constant [2 x i8] c"0\00" @.str3879 = private unnamed_addr constant [5 x i8] c"void\00" @.str3880 = private unnamed_addr constant [5 x i8] c"sort\00" @.str3881 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3882 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3883 = private unnamed_addr constant [5 x i8] c", 32\00" @.str3884 = private unnamed_addr constant [9 x i8] c"sort_ins\00" @.str3885 = private unnamed_addr constant [9 x i8] c"sort_mrg\00" @.str3886 = private unnamed_addr constant [9 x i8] c"sort_end\00" @.str3887 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3888 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3889 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3890 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3891 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3892 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3893 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3894 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3895 = private unnamed_addr constant [2 x i8] c"1\00" @.str3896 = private unnamed_addr constant [6 x i8] c"ls_oc\00" @.str3897 = private unnamed_addr constant [6 x i8] c"ls_ob\00" @.str3898 = private unnamed_addr constant [6 x i8] c"ls_oe\00" @.str3899 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3900 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3901 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3902 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3903 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str3904 = private unnamed_addr constant [3 x i8] c", \00" @.str3905 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3906 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3907 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3908 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3909 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3910 = private unnamed_addr constant [6 x i8] c"load \00" @.str3911 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3912 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3913 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3914 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3915 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3916 = private unnamed_addr constant [6 x i8] c"ls_ic\00" @.str3917 = private unnamed_addr constant [6 x i8] c"ls_ib\00" @.str3918 = private unnamed_addr constant [6 x i8] c"ls_ie\00" @.str3919 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3920 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3921 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3922 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3923 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str3924 = private unnamed_addr constant [4 x i8] c", 0\00" @.str3925 = private unnamed_addr constant [6 x i8] c"load \00" @.str3926 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3927 = private unnamed_addr constant [10 x i8] c"icmp sgt \00" @.str3928 = private unnamed_addr constant [2 x i8] c" \00" @.str3929 = private unnamed_addr constant [3 x i8] c", \00" @.str3930 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str3931 = private unnamed_addr constant [3 x i8] c", \00" @.str3932 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str3933 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3934 = private unnamed_addr constant [10 x i8] c", label %\00" @.str3935 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3936 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3937 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3938 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3939 = private unnamed_addr constant [9 x i8] c" store \00" @.str3940 = private unnamed_addr constant [2 x i8] c" \00" @.str3941 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3942 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3943 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3944 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3945 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3946 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3947 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3948 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3949 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3950 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3951 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3952 = private unnamed_addr constant [9 x i8] c" store \00" @.str3953 = private unnamed_addr constant [2 x i8] c" \00" @.str3954 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str3955 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3956 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str3957 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3958 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3959 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3960 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3961 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3962 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3963 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3964 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3965 = private unnamed_addr constant [1 x i8] c"\00" @.str3966 = private unnamed_addr constant [1 x i8] c"\00" @.str3967 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str3968 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str3969 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str3970 = private unnamed_addr constant [2 x i8] c"0\00" @.str3971 = private unnamed_addr constant [5 x i8] c"void\00" @.str3972 = private unnamed_addr constant [10 x i8] c"sort_with\00" @.str3973 = private unnamed_addr constant [18 x i8] c"List.sort_with: '\00" @.str3974 = private unnamed_addr constant [26 x i8] c"' must take two arguments\00" @.str3975 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3976 = private unnamed_addr constant [2 x i8] c"0\00" @.str3977 = private unnamed_addr constant [5 x i8] c"void\00" @.str3978 = private unnamed_addr constant [8 x i8] c"sort_by\00" @.str3979 = private unnamed_addr constant [13 x i8] c"sort_desc_by\00" @.str3980 = private unnamed_addr constant [6 x i8] c"List.\00" @.str3981 = private unnamed_addr constant [8 x i8] c": key '\00" @.str3982 = private unnamed_addr constant [25 x i8] c"' must take one argument\00" @.str3983 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str3984 = private unnamed_addr constant [5 x i8] c"void\00" @.str3985 = private unnamed_addr constant [6 x i8] c"List.\00" @.str3986 = private unnamed_addr constant [8 x i8] c": key '\00" @.str3987 = private unnamed_addr constant [23 x i8] c"' must return a number\00" @.str3988 = private unnamed_addr constant [13 x i8] c"sort_desc_by\00" @.str3989 = private unnamed_addr constant [2 x i8] c"0\00" @.str3990 = private unnamed_addr constant [5 x i8] c"void\00" @.str3991 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str3992 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3993 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3994 = private unnamed_addr constant [2 x i8] c"0\00" @.str3995 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3996 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str3997 = private unnamed_addr constant [4 x i8] c", 1\00" @.str3998 = private unnamed_addr constant [4 x i8] c"i32\00" @.str3999 = private unnamed_addr constant [8 x i8] c"lr_cond\00" @.str4000 = private unnamed_addr constant [8 x i8] c"lr_body\00" @.str4001 = private unnamed_addr constant [7 x i8] c"lr_end\00" @.str4002 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str4003 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str4004 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str4005 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4006 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4007 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4008 = private unnamed_addr constant [3 x i8] c", \00" @.str4009 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str4010 = private unnamed_addr constant [10 x i8] c", label %\00" @.str4011 = private unnamed_addr constant [10 x i8] c", label %\00" @.str4012 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str4013 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str4014 = private unnamed_addr constant [6 x i8] c"load \00" @.str4015 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4016 = private unnamed_addr constant [6 x i8] c"load \00" @.str4017 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4018 = private unnamed_addr constant [9 x i8] c" store \00" @.str4019 = private unnamed_addr constant [2 x i8] c" \00" @.str4020 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4021 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str4022 = private unnamed_addr constant [9 x i8] c" store \00" @.str4023 = private unnamed_addr constant [2 x i8] c" \00" @.str4024 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4025 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str4026 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4027 = private unnamed_addr constant [4 x i8] c", 1\00" @.str4028 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4029 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4030 = private unnamed_addr constant [4 x i8] c", 1\00" @.str4031 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4032 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str4033 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str4034 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str4035 = private unnamed_addr constant [2 x i8] c"0\00" @.str4036 = private unnamed_addr constant [5 x i8] c"void\00" @.str4037 = private unnamed_addr constant [3 x i8] c"in\00" @.str4038 = private unnamed_addr constant [4 x i8] c"out\00" @.str4039 = private unnamed_addr constant [7 x i8] c"in_out\00" @.str4040 = private unnamed_addr constant [5 x i8] c"back\00" @.str4041 = private unnamed_addr constant [7 x i8] c"bounce\00" @.str4042 = private unnamed_addr constant [8 x i8] c"elastic\00" @.str4043 = private unnamed_addr constant [7 x i8] c"495616\00" @.str4044 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4045 = private unnamed_addr constant [8 x i8] c", 35747\00" @.str4046 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4047 = private unnamed_addr constant [8 x i8] c", 49152\00" @.str4048 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4049 = private unnamed_addr constant [8 x i8] c", 53620\00" @.str4050 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4051 = private unnamed_addr constant [8 x i8] c", 61440\00" @.str4052 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4053 = private unnamed_addr constant [8 x i8] c", 62557\00" @.str4054 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4055 = private unnamed_addr constant [8 x i8] c", 64512\00" @.str4056 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4057 = private unnamed_addr constant [8 x i8] c", 59578\00" @.str4058 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4059 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4060 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4061 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4062 = private unnamed_addr constant [8 x i8] c", 47663\00" @.str4063 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4064 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4065 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4066 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4067 = private unnamed_addr constant [8 x i8] c", 23831\00" @.str4068 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4069 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4070 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4071 = private unnamed_addr constant [17 x i8] c"sub i32 131072, \00" @.str4072 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4073 = private unnamed_addr constant [4 x i8] c", 3\00" @.str4074 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4075 = private unnamed_addr constant [4 x i8] c", 2\00" @.str4076 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4077 = private unnamed_addr constant [3 x i8] c", \00" @.str4078 = private unnamed_addr constant [7 x i8] c"177051\00" @.str4079 = private unnamed_addr constant [7 x i8] c"111515\00" @.str4080 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4081 = private unnamed_addr constant [3 x i8] c", \00" @.str4082 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4083 = private unnamed_addr constant [5 x i8] c", 10\00" @.str4084 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str4085 = private unnamed_addr constant [26 x i8] c"call i32 @fn_fx_exp2(i32 \00" @.str4086 = private unnamed_addr constant [2 x i8] c")\00" @.str4087 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4088 = private unnamed_addr constant [8 x i8] c", 49152\00" @.str4089 = private unnamed_addr constant [7 x i8] c"137258\00" @.str4090 = private unnamed_addr constant [25 x i8] c"call i32 @fn_fx_sin(i32 \00" @.str4091 = private unnamed_addr constant [2 x i8] c")\00" @.str4092 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4093 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str4094 = private unnamed_addr constant [3 x i8] c"in\00" @.str4095 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4096 = private unnamed_addr constant [4 x i8] c"out\00" @.str4097 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4098 = private unnamed_addr constant [7 x i8] c"in_out\00" @.str4099 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4100 = private unnamed_addr constant [5 x i8] c"back\00" @.str4101 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4102 = private unnamed_addr constant [8 x i8] c"elastic\00" @.str4103 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4104 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4105 = private unnamed_addr constant [6 x i8] c"frame\00" @.str4106 = private unnamed_addr constant [5 x i8] c"once\00" @.str4107 = private unnamed_addr constant [9 x i8] c"pingpong\00" @.str4108 = private unnamed_addr constant [9 x i8] c"finished\00" @.str4109 = private unnamed_addr constant [9 x i8] c"duration\00" @.str4110 = private unnamed_addr constant [7 x i8] c"cell_x\00" @.str4111 = private unnamed_addr constant [7 x i8] c"cell_y\00" @.str4112 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4113 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4114 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4115 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4116 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4117 = private unnamed_addr constant [3 x i8] c", \00" @.str4118 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str4119 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4120 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str4121 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4122 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4123 = private unnamed_addr constant [4 x i8] c", 1\00" @.str4124 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4125 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str4126 = private unnamed_addr constant [6 x i8] c"frame\00" @.str4127 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4128 = private unnamed_addr constant [3 x i8] c", \00" @.str4129 = private unnamed_addr constant [4 x i8] c"int\00" @.str4130 = private unnamed_addr constant [5 x i8] c"once\00" @.str4131 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4132 = private unnamed_addr constant [4 x i8] c", 1\00" @.str4133 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4134 = private unnamed_addr constant [3 x i8] c", \00" @.str4135 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4136 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4137 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4138 = private unnamed_addr constant [4 x i8] c"int\00" @.str4139 = private unnamed_addr constant [9 x i8] c"pingpong\00" @.str4140 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4141 = private unnamed_addr constant [4 x i8] c", 2\00" @.str4142 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4143 = private unnamed_addr constant [4 x i8] c", 2\00" @.str4144 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4145 = private unnamed_addr constant [3 x i8] c", \00" @.str4146 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4147 = private unnamed_addr constant [3 x i8] c", \00" @.str4148 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4149 = private unnamed_addr constant [3 x i8] c", \00" @.str4150 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4151 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4152 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4153 = private unnamed_addr constant [4 x i8] c"int\00" @.str4154 = private unnamed_addr constant [9 x i8] c"finished\00" @.str4155 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str4156 = private unnamed_addr constant [3 x i8] c", \00" @.str4157 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str4158 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4159 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4160 = private unnamed_addr constant [9 x i8] c"duration\00" @.str4161 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str4162 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4163 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4164 = private unnamed_addr constant [3 x i8] c", \00" @.str4165 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4166 = private unnamed_addr constant [7 x i8] c"cell_x\00" @.str4167 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4168 = private unnamed_addr constant [3 x i8] c", \00" @.str4169 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4170 = private unnamed_addr constant [3 x i8] c", \00" @.str4171 = private unnamed_addr constant [4 x i8] c"int\00" @.str4172 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4173 = private unnamed_addr constant [3 x i8] c", \00" @.str4174 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4175 = private unnamed_addr constant [3 x i8] c", \00" @.str4176 = private unnamed_addr constant [4 x i8] c"int\00" @.str4177 = private unnamed_addr constant [9 x i8] c"progress\00" @.str4178 = private unnamed_addr constant [5 x i8] c"loop\00" @.str4179 = private unnamed_addr constant [5 x i8] c"yoyo\00" @.str4180 = private unnamed_addr constant [5 x i8] c"done\00" @.str4181 = private unnamed_addr constant [5 x i8] c"ease\00" @.str4182 = private unnamed_addr constant [7 x i8] c"number\00" @.str4183 = private unnamed_addr constant [6 x i8] c"round\00" @.str4184 = private unnamed_addr constant [6 x i8] c"point\00" @.str4185 = private unnamed_addr constant [5 x i8] c"tint\00" @.str4186 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str4187 = private unnamed_addr constant [4 x i8] c", 0\00" @.str4188 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4189 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4190 = private unnamed_addr constant [12 x i8] c", i32 65536\00" @.str4191 = private unnamed_addr constant [9 x i8] c"progress\00" @.str4192 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str4193 = private unnamed_addr constant [4 x i8] c", 0\00" @.str4194 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4195 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4196 = private unnamed_addr constant [12 x i8] c", i32 65536\00" @.str4197 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4198 = private unnamed_addr constant [4 x i8] c", 0\00" @.str4199 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4200 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str4201 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str4202 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str4203 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4204 = private unnamed_addr constant [18 x i8] c", i32 65536, i32 \00" @.str4205 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4206 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4207 = private unnamed_addr constant [12 x i8] c", i32 65536\00" @.str4208 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4209 = private unnamed_addr constant [5 x i8] c"loop\00" @.str4210 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str4211 = private unnamed_addr constant [8 x i8] c", 65535\00" @.str4212 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4213 = private unnamed_addr constant [5 x i8] c"yoyo\00" @.str4214 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4215 = private unnamed_addr constant [9 x i8] c", 131072\00" @.str4216 = private unnamed_addr constant [17 x i8] c"sub i32 131072, \00" @.str4217 = private unnamed_addr constant [14 x i8] c"icmp sle i32 \00" @.str4218 = private unnamed_addr constant [8 x i8] c", 65536\00" @.str4219 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4220 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4221 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4222 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4223 = private unnamed_addr constant [5 x i8] c"done\00" @.str4224 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str4225 = private unnamed_addr constant [3 x i8] c", \00" @.str4226 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str4227 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4228 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4229 = private unnamed_addr constant [5 x i8] c"ease\00" @.str4230 = private unnamed_addr constant [55 x i8] c"Tween.ease: the easing mode must be a literal int 0..6\00" @.str4231 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4232 = private unnamed_addr constant [7 x i8] c"number\00" @.str4233 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4234 = private unnamed_addr constant [6 x i8] c"round\00" @.str4235 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4236 = private unnamed_addr constant [3 x i8] c", \00" @.str4237 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4238 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4239 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4240 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4241 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4242 = private unnamed_addr constant [3 x i8] c", \00" @.str4243 = private unnamed_addr constant [9 x i8] c"add i64 \00" @.str4244 = private unnamed_addr constant [8 x i8] c", 32768\00" @.str4245 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str4246 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4247 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str4248 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4249 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4250 = private unnamed_addr constant [3 x i8] c", \00" @.str4251 = private unnamed_addr constant [4 x i8] c"int\00" @.str4252 = private unnamed_addr constant [6 x i8] c"point\00" @.str4253 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str4254 = private unnamed_addr constant [3 x i8] c"16\00" @.str4255 = private unnamed_addr constant [3 x i8] c"16\00" @.str4256 = private unnamed_addr constant [2 x i8] c"8\00" @.str4257 = private unnamed_addr constant [2 x i8] c"8\00" @.str4258 = private unnamed_addr constant [2 x i8] c"0\00" @.str4259 = private unnamed_addr constant [2 x i8] c"0\00" @.str4260 = private unnamed_addr constant [4 x i8] c"int\00" @.str4261 = private unnamed_addr constant [6 x i8] c"rects\00" @.str4262 = private unnamed_addr constant [11 x i8] c"point_rect\00" @.str4263 = private unnamed_addr constant [8 x i8] c"circles\00" @.str4264 = private unnamed_addr constant [12 x i8] c"rect_circle\00" @.str4265 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4266 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4267 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4268 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4269 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4270 = private unnamed_addr constant [3 x i8] c", \00" @.str4271 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4272 = private unnamed_addr constant [3 x i8] c", \00" @.str4273 = private unnamed_addr constant [9 x i8] c"add i64 \00" @.str4274 = private unnamed_addr constant [3 x i8] c", \00" @.str4275 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4276 = private unnamed_addr constant [3 x i8] c", \00" @.str4277 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4278 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4279 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4280 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" @.str4281 = private unnamed_addr constant [3 x i8] c", \00" @.str4282 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4283 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4284 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4285 = private unnamed_addr constant [6 x i8] c"rects\00" @.str4286 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4287 = private unnamed_addr constant [3 x i8] c", \00" @.str4288 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4289 = private unnamed_addr constant [3 x i8] c", \00" @.str4290 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4291 = private unnamed_addr constant [3 x i8] c", \00" @.str4292 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4293 = private unnamed_addr constant [3 x i8] c", \00" @.str4294 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4295 = private unnamed_addr constant [3 x i8] c", \00" @.str4296 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4297 = private unnamed_addr constant [3 x i8] c", \00" @.str4298 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4299 = private unnamed_addr constant [3 x i8] c", \00" @.str4300 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4301 = private unnamed_addr constant [3 x i8] c", \00" @.str4302 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str4303 = private unnamed_addr constant [3 x i8] c", \00" @.str4304 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str4305 = private unnamed_addr constant [3 x i8] c", \00" @.str4306 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str4307 = private unnamed_addr constant [3 x i8] c", \00" @.str4308 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str4309 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4310 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4311 = private unnamed_addr constant [11 x i8] c"point_rect\00" @.str4312 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4313 = private unnamed_addr constant [3 x i8] c", \00" @.str4314 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4315 = private unnamed_addr constant [3 x i8] c", \00" @.str4316 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str4317 = private unnamed_addr constant [3 x i8] c", \00" @.str4318 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4319 = private unnamed_addr constant [3 x i8] c", \00" @.str4320 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str4321 = private unnamed_addr constant [3 x i8] c", \00" @.str4322 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str4323 = private unnamed_addr constant [3 x i8] c", \00" @.str4324 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str4325 = private unnamed_addr constant [3 x i8] c", \00" @.str4326 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str4327 = private unnamed_addr constant [3 x i8] c", \00" @.str4328 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str4329 = private unnamed_addr constant [3 x i8] c", \00" @.str4330 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str4331 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4332 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4333 = private unnamed_addr constant [8 x i8] c"circles\00" @.str4334 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4335 = private unnamed_addr constant [3 x i8] c", \00" @.str4336 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4337 = private unnamed_addr constant [3 x i8] c", \00" @.str4338 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4339 = private unnamed_addr constant [3 x i8] c", \00" @.str4340 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4341 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4342 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4343 = private unnamed_addr constant [3 x i8] c", \00" @.str4344 = private unnamed_addr constant [14 x i8] c"icmp sle i64 \00" @.str4345 = private unnamed_addr constant [3 x i8] c", \00" @.str4346 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str4347 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4348 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4349 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4350 = private unnamed_addr constant [3 x i8] c", \00" @.str4351 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4352 = private unnamed_addr constant [3 x i8] c", \00" @.str4353 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4354 = private unnamed_addr constant [3 x i8] c", \00" @.str4355 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4356 = private unnamed_addr constant [3 x i8] c", \00" @.str4357 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str4358 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4359 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str4360 = private unnamed_addr constant [3 x i8] c", \00" @.str4361 = private unnamed_addr constant [14 x i8] c"icmp sle i64 \00" @.str4362 = private unnamed_addr constant [3 x i8] c", \00" @.str4363 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str4364 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4365 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4366 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str4367 = private unnamed_addr constant [6 x i8] c"words\00" @.str4368 = private unnamed_addr constant [5 x i8] c"copy\00" @.str4369 = private unnamed_addr constant [5 x i8] c"fill\00" @.str4370 = private unnamed_addr constant [5 x i8] c"peek\00" @.str4371 = private unnamed_addr constant [5 x i8] c"poke\00" @.str4372 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str4373 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str4374 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4375 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str4376 = private unnamed_addr constant [2 x i8] c")\00" @.str4377 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str4378 = private unnamed_addr constant [6 x i8] c"words\00" @.str4379 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4380 = private unnamed_addr constant [4 x i8] c", 4\00" @.str4381 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str4382 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4383 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str4384 = private unnamed_addr constant [2 x i8] c")\00" @.str4385 = private unnamed_addr constant [6 x i8] c"words\00" @.str4386 = private unnamed_addr constant [5 x i8] c"copy\00" @.str4387 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str4388 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4389 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str4390 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4391 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str4392 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str4393 = private unnamed_addr constant [2 x i8] c"0\00" @.str4394 = private unnamed_addr constant [5 x i8] c"void\00" @.str4395 = private unnamed_addr constant [5 x i8] c"fill\00" @.str4396 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str4397 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str4398 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" @.str4399 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4400 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str4401 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str4402 = private unnamed_addr constant [2 x i8] c"0\00" @.str4403 = private unnamed_addr constant [5 x i8] c"void\00" @.str4404 = private unnamed_addr constant [5 x i8] c"peek\00" @.str4405 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str4406 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4407 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str4408 = private unnamed_addr constant [9 x i8] c"zext i8 \00" @.str4409 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4410 = private unnamed_addr constant [4 x i8] c"int\00" @.str4411 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" @.str4412 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4413 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" @.str4414 = private unnamed_addr constant [7 x i8] c" to i8\00" @.str4415 = private unnamed_addr constant [12 x i8] c" store i8 \00" @.str4416 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4417 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str4418 = private unnamed_addr constant [2 x i8] c"0\00" @.str4419 = private unnamed_addr constant [5 x i8] c"void\00" @.str4420 = private unnamed_addr constant [6 x i8] c"frame\00" @.str4421 = private unnamed_addr constant [6 x i8] c"delta\00" @.str4422 = private unnamed_addr constant [8 x i8] c"elapsed\00" @.str4423 = private unnamed_addr constant [4 x i8] c"now\00" @.str4424 = private unnamed_addr constant [6 x i8] c"since\00" @.str4425 = private unnamed_addr constant [6 x i8] c"frame\00" @.str4426 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_frame\00" @.str4427 = private unnamed_addr constant [4 x i8] c"int\00" @.str4428 = private unnamed_addr constant [6 x i8] c"delta\00" @.str4429 = private unnamed_addr constant [5 x i8] c"1092\00" @.str4430 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4431 = private unnamed_addr constant [8 x i8] c"elapsed\00" @.str4432 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_frame\00" @.str4433 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4434 = private unnamed_addr constant [7 x i8] c", 1092\00" @.str4435 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str4436 = private unnamed_addr constant [6 x i8] c"since\00" @.str4437 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" @.str4438 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str4439 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4440 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4441 = private unnamed_addr constant [3 x i8] c", \00" @.str4442 = private unnamed_addr constant [4 x i8] c"int\00" @.str4443 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" @.str4444 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str4445 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4446 = private unnamed_addr constant [4 x i8] c"int\00" @.str4447 = private unnamed_addr constant [8 x i8] c"seconds\00" @.str4448 = private unnamed_addr constant [8 x i8] c"minutes\00" @.str4449 = private unnamed_addr constant [6 x i8] c"hours\00" @.str4450 = private unnamed_addr constant [5 x i8] c"days\00" @.str4451 = private unnamed_addr constant [11 x i8] c"as_seconds\00" @.str4452 = private unnamed_addr constant [11 x i8] c"as_minutes\00" @.str4453 = private unnamed_addr constant [9 x i8] c"as_hours\00" @.str4454 = private unnamed_addr constant [8 x i8] c"as_days\00" @.str4455 = private unnamed_addr constant [8 x i8] c"seconds\00" @.str4456 = private unnamed_addr constant [4 x i8] c"int\00" @.str4457 = private unnamed_addr constant [8 x i8] c"minutes\00" @.str4458 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4459 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4460 = private unnamed_addr constant [4 x i8] c"int\00" @.str4461 = private unnamed_addr constant [6 x i8] c"hours\00" @.str4462 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4463 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4464 = private unnamed_addr constant [4 x i8] c"int\00" @.str4465 = private unnamed_addr constant [5 x i8] c"days\00" @.str4466 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4467 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4468 = private unnamed_addr constant [4 x i8] c"int\00" @.str4469 = private unnamed_addr constant [11 x i8] c"as_seconds\00" @.str4470 = private unnamed_addr constant [4 x i8] c"int\00" @.str4471 = private unnamed_addr constant [11 x i8] c"as_minutes\00" @.str4472 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4473 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4474 = private unnamed_addr constant [4 x i8] c"int\00" @.str4475 = private unnamed_addr constant [9 x i8] c"as_hours\00" @.str4476 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4477 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4478 = private unnamed_addr constant [4 x i8] c"int\00" @.str4479 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4480 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4481 = private unnamed_addr constant [4 x i8] c"int\00" @.str4482 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4483 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4484 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4485 = private unnamed_addr constant [37 x i8] c" call void @fn_civil_from_days(i32 \00" @.str4486 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4487 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4488 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4489 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str4490 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4491 = private unnamed_addr constant [4 x i8] c"new\00" @.str4492 = private unnamed_addr constant [5 x i8] c"year\00" @.str4493 = private unnamed_addr constant [6 x i8] c"month\00" @.str4494 = private unnamed_addr constant [4 x i8] c"day\00" @.str4495 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str4496 = private unnamed_addr constant [8 x i8] c"is_leap\00" @.str4497 = private unnamed_addr constant [14 x i8] c"days_in_month\00" @.str4498 = private unnamed_addr constant [9 x i8] c"to_epoch\00" @.str4499 = private unnamed_addr constant [9 x i8] c"add_days\00" @.str4500 = private unnamed_addr constant [10 x i8] c"diff_days\00" @.str4501 = private unnamed_addr constant [4 x i8] c"new\00" @.str4502 = private unnamed_addr constant [34 x i8] c"call i32 @fn_days_from_civil(i32 \00" @.str4503 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4504 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4505 = private unnamed_addr constant [2 x i8] c")\00" @.str4506 = private unnamed_addr constant [4 x i8] c"int\00" @.str4507 = private unnamed_addr constant [5 x i8] c"year\00" @.str4508 = private unnamed_addr constant [4 x i8] c"int\00" @.str4509 = private unnamed_addr constant [6 x i8] c"month\00" @.str4510 = private unnamed_addr constant [4 x i8] c"int\00" @.str4511 = private unnamed_addr constant [4 x i8] c"day\00" @.str4512 = private unnamed_addr constant [4 x i8] c"int\00" @.str4513 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str4514 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4515 = private unnamed_addr constant [4 x i8] c", 4\00" @.str4516 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4517 = private unnamed_addr constant [4 x i8] c", 7\00" @.str4518 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4519 = private unnamed_addr constant [4 x i8] c", 7\00" @.str4520 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4521 = private unnamed_addr constant [4 x i8] c", 7\00" @.str4522 = private unnamed_addr constant [4 x i8] c"int\00" @.str4523 = private unnamed_addr constant [8 x i8] c"is_leap\00" @.str4524 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4525 = private unnamed_addr constant [4 x i8] c", 4\00" @.str4526 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str4527 = private unnamed_addr constant [4 x i8] c", 0\00" @.str4528 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4529 = private unnamed_addr constant [6 x i8] c", 100\00" @.str4530 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str4531 = private unnamed_addr constant [4 x i8] c", 0\00" @.str4532 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4533 = private unnamed_addr constant [6 x i8] c", 400\00" @.str4534 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str4535 = private unnamed_addr constant [4 x i8] c", 0\00" @.str4536 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str4537 = private unnamed_addr constant [3 x i8] c", \00" @.str4538 = private unnamed_addr constant [7 x i8] c"or i1 \00" @.str4539 = private unnamed_addr constant [3 x i8] c", \00" @.str4540 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str4541 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str4542 = private unnamed_addr constant [5 x i8] c"bool\00" @.str4543 = private unnamed_addr constant [14 x i8] c"days_in_month\00" @.str4544 = private unnamed_addr constant [34 x i8] c"call i32 @fn_days_from_civil(i32 \00" @.str4545 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4546 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str4547 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str4548 = private unnamed_addr constant [5 x i8] c", 12\00" @.str4549 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4550 = private unnamed_addr constant [4 x i8] c", 1\00" @.str4551 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4552 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4553 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4554 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4555 = private unnamed_addr constant [4 x i8] c", 1\00" @.str4556 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4557 = private unnamed_addr constant [14 x i8] c", i32 1, i32 \00" @.str4558 = private unnamed_addr constant [34 x i8] c"call i32 @fn_days_from_civil(i32 \00" @.str4559 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4560 = private unnamed_addr constant [9 x i8] c", i32 1)\00" @.str4561 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4562 = private unnamed_addr constant [3 x i8] c", \00" @.str4563 = private unnamed_addr constant [4 x i8] c"int\00" @.str4564 = private unnamed_addr constant [9 x i8] c"to_epoch\00" @.str4565 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4566 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4567 = private unnamed_addr constant [4 x i8] c"int\00" @.str4568 = private unnamed_addr constant [9 x i8] c"add_days\00" @.str4569 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4570 = private unnamed_addr constant [3 x i8] c", \00" @.str4571 = private unnamed_addr constant [4 x i8] c"int\00" @.str4572 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4573 = private unnamed_addr constant [3 x i8] c", \00" @.str4574 = private unnamed_addr constant [4 x i8] c"int\00" @.str4575 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4576 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4577 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4578 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4579 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4580 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4581 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4582 = private unnamed_addr constant [3 x i8] c", \00" @.str4583 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4584 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4585 = private unnamed_addr constant [5 x i8] c"from\00" @.str4586 = private unnamed_addr constant [5 x i8] c"date\00" @.str4587 = private unnamed_addr constant [4 x i8] c"add\00" @.str4588 = private unnamed_addr constant [5 x i8] c"year\00" @.str4589 = private unnamed_addr constant [6 x i8] c"month\00" @.str4590 = private unnamed_addr constant [4 x i8] c"day\00" @.str4591 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str4592 = private unnamed_addr constant [5 x i8] c"hour\00" @.str4593 = private unnamed_addr constant [7 x i8] c"minute\00" @.str4594 = private unnamed_addr constant [7 x i8] c"second\00" @.str4595 = private unnamed_addr constant [7 x i8] c"format\00" @.str4596 = private unnamed_addr constant [6 x i8] c"parse\00" @.str4597 = private unnamed_addr constant [29 x i8] c"call ptr @fn_str_concat(ptr \00" @.str4598 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4599 = private unnamed_addr constant [2 x i8] c")\00" @.str4600 = private unnamed_addr constant [47 x i8] c"DateTime.format needs a string-literal pattern\00" @.str4601 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4602 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4603 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4604 = private unnamed_addr constant [37 x i8] c" call void @fn_civil_from_days(i32 \00" @.str4605 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4606 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4607 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4608 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str4609 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4610 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4611 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4612 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4613 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4614 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4615 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4616 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4617 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4618 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4619 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4620 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4621 = private unnamed_addr constant [6 x i8] c", 100\00" @.str4622 = private unnamed_addr constant [1 x i8] c"\00" @.str4623 = private unnamed_addr constant [5 x i8] c"YYYY\00" @.str4624 = private unnamed_addr constant [3 x i8] c"YY\00" @.str4625 = private unnamed_addr constant [3 x i8] c"MM\00" @.str4626 = private unnamed_addr constant [3 x i8] c"DD\00" @.str4627 = private unnamed_addr constant [3 x i8] c"HH\00" @.str4628 = private unnamed_addr constant [3 x i8] c"mm\00" @.str4629 = private unnamed_addr constant [3 x i8] c"ss\00" @.str4630 = private unnamed_addr constant [26 x i8] c"call ptr @fn_dt_pad0(i32 \00" @.str4631 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4632 = private unnamed_addr constant [2 x i8] c")\00" @.str4633 = private unnamed_addr constant [7 x i8] c"string\00" @.str4634 = private unnamed_addr constant [46 x i8] c"DateTime.parse needs a string-literal pattern\00" @.str4635 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4636 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4637 = private unnamed_addr constant [2 x i8] c"0\00" @.str4638 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4639 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4640 = private unnamed_addr constant [5 x i8] c"1970\00" @.str4641 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4642 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4643 = private unnamed_addr constant [2 x i8] c"1\00" @.str4644 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4645 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4646 = private unnamed_addr constant [2 x i8] c"1\00" @.str4647 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4648 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4649 = private unnamed_addr constant [2 x i8] c"0\00" @.str4650 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4651 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4652 = private unnamed_addr constant [2 x i8] c"0\00" @.str4653 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4654 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4655 = private unnamed_addr constant [2 x i8] c"0\00" @.str4656 = private unnamed_addr constant [5 x i8] c"YYYY\00" @.str4657 = private unnamed_addr constant [3 x i8] c"MM\00" @.str4658 = private unnamed_addr constant [3 x i8] c"DD\00" @.str4659 = private unnamed_addr constant [3 x i8] c"HH\00" @.str4660 = private unnamed_addr constant [3 x i8] c"mm\00" @.str4661 = private unnamed_addr constant [3 x i8] c"ss\00" @.str4662 = private unnamed_addr constant [24 x i8] c"call i32 @fn_dt_rd(ptr \00" @.str4663 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4664 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4665 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str4666 = private unnamed_addr constant [2 x i8] c")\00" @.str4667 = private unnamed_addr constant [4 x i8] c"i32\00" @.str4668 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4669 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4670 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4671 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4672 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4673 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4674 = private unnamed_addr constant [34 x i8] c"call i32 @fn_days_from_civil(i32 \00" @.str4675 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4676 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4677 = private unnamed_addr constant [2 x i8] c")\00" @.str4678 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4679 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4680 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4681 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4682 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4683 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4684 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4685 = private unnamed_addr constant [3 x i8] c", \00" @.str4686 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4687 = private unnamed_addr constant [3 x i8] c", \00" @.str4688 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4689 = private unnamed_addr constant [3 x i8] c", \00" @.str4690 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str4691 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str4692 = private unnamed_addr constant [4 x i8] c", 0\00" @.str4693 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str4694 = private unnamed_addr constant [15 x i8] c", i32 -1, i32 \00" @.str4695 = private unnamed_addr constant [4 x i8] c"int\00" @.str4696 = private unnamed_addr constant [7 x i8] c"format\00" @.str4697 = private unnamed_addr constant [6 x i8] c"parse\00" @.str4698 = private unnamed_addr constant [5 x i8] c"from\00" @.str4699 = private unnamed_addr constant [34 x i8] c"call i32 @fn_days_from_civil(i32 \00" @.str4700 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4701 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str4702 = private unnamed_addr constant [2 x i8] c")\00" @.str4703 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4704 = private unnamed_addr constant [8 x i8] c", 86400\00" @.str4705 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4706 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4707 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4708 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4709 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4710 = private unnamed_addr constant [3 x i8] c", \00" @.str4711 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4712 = private unnamed_addr constant [3 x i8] c", \00" @.str4713 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4714 = private unnamed_addr constant [3 x i8] c", \00" @.str4715 = private unnamed_addr constant [4 x i8] c"int\00" @.str4716 = private unnamed_addr constant [5 x i8] c"date\00" @.str4717 = private unnamed_addr constant [4 x i8] c"int\00" @.str4718 = private unnamed_addr constant [4 x i8] c"add\00" @.str4719 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4720 = private unnamed_addr constant [3 x i8] c", \00" @.str4721 = private unnamed_addr constant [4 x i8] c"int\00" @.str4722 = private unnamed_addr constant [5 x i8] c"year\00" @.str4723 = private unnamed_addr constant [4 x i8] c"int\00" @.str4724 = private unnamed_addr constant [6 x i8] c"month\00" @.str4725 = private unnamed_addr constant [4 x i8] c"int\00" @.str4726 = private unnamed_addr constant [4 x i8] c"day\00" @.str4727 = private unnamed_addr constant [4 x i8] c"int\00" @.str4728 = private unnamed_addr constant [8 x i8] c"weekday\00" @.str4729 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4730 = private unnamed_addr constant [4 x i8] c", 4\00" @.str4731 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4732 = private unnamed_addr constant [4 x i8] c", 7\00" @.str4733 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4734 = private unnamed_addr constant [4 x i8] c", 7\00" @.str4735 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4736 = private unnamed_addr constant [4 x i8] c", 7\00" @.str4737 = private unnamed_addr constant [4 x i8] c"int\00" @.str4738 = private unnamed_addr constant [5 x i8] c"hour\00" @.str4739 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4740 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4741 = private unnamed_addr constant [4 x i8] c"int\00" @.str4742 = private unnamed_addr constant [7 x i8] c"minute\00" @.str4743 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4744 = private unnamed_addr constant [7 x i8] c", 3600\00" @.str4745 = private unnamed_addr constant [10 x i8] c"sdiv i32 \00" @.str4746 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4747 = private unnamed_addr constant [4 x i8] c"int\00" @.str4748 = private unnamed_addr constant [10 x i8] c"srem i32 \00" @.str4749 = private unnamed_addr constant [5 x i8] c", 60\00" @.str4750 = private unnamed_addr constant [4 x i8] c"int\00" @.str4751 = private unnamed_addr constant [59 x i8] c"define i32 @fn_days_from_civil(i32 %y0, i32 %m, i32 %d) {\0A\00" @.str4752 = private unnamed_addr constant [30 x i8] c" %mle2 = icmp sle i32 %m, 2\0A\00" @.str4753 = private unnamed_addr constant [41 x i8] c" %ysub = select i1 %mle2, i32 1, i32 0\0A\00" @.str4754 = private unnamed_addr constant [27 x i8] c" %y = sub i32 %y0, %ysub\0A\00" @.str4755 = private unnamed_addr constant [30 x i8] c" %yneg = icmp slt i32 %y, 0\0A\00" @.str4756 = private unnamed_addr constant [28 x i8] c" %ym399 = sub i32 %y, 399\0A\00" @.str4757 = private unnamed_addr constant [47 x i8] c" %enum = select i1 %yneg, i32 %ym399, i32 %y\0A\00" @.str4758 = private unnamed_addr constant [30 x i8] c" %era = sdiv i32 %enum, 400\0A\00" @.str4759 = private unnamed_addr constant [31 x i8] c" %era400 = mul i32 %era, 400\0A\00" @.str4760 = private unnamed_addr constant [30 x i8] c" %yoe = sub i32 %y, %era400\0A\00" @.str4761 = private unnamed_addr constant [30 x i8] c" %mgt2 = icmp sgt i32 %m, 2\0A\00" @.str4762 = private unnamed_addr constant [44 x i8] c" %mshift = select i1 %mgt2, i32 -3, i32 9\0A\00" @.str4763 = private unnamed_addr constant [29 x i8] c" %mm = add i32 %m, %mshift\0A\00" @.str4764 = private unnamed_addr constant [28 x i8] c" %t153 = mul i32 153, %mm\0A\00" @.str4765 = private unnamed_addr constant [29 x i8] c" %t153b = add i32 %t153, 2\0A\00" @.str4766 = private unnamed_addr constant [30 x i8] c" %doy0 = sdiv i32 %t153b, 5\0A\00" @.str4767 = private unnamed_addr constant [29 x i8] c" %doy1 = add i32 %doy0, %d\0A\00" @.str4768 = private unnamed_addr constant [27 x i8] c" %doy = sub i32 %doy1, 1\0A\00" @.str4769 = private unnamed_addr constant [31 x i8] c" %yoe365 = mul i32 %yoe, 365\0A\00" @.str4770 = private unnamed_addr constant [28 x i8] c" %yoe4 = sdiv i32 %yoe, 4\0A\00" @.str4771 = private unnamed_addr constant [32 x i8] c" %yoe100 = sdiv i32 %yoe, 100\0A\00" @.str4772 = private unnamed_addr constant [34 x i8] c" %doe0 = add i32 %yoe365, %yoe4\0A\00" @.str4773 = private unnamed_addr constant [34 x i8] c" %doe1 = sub i32 %doe0, %yoe100\0A\00" @.str4774 = private unnamed_addr constant [30 x i8] c" %doe = add i32 %doe1, %doy\0A\00" @.str4775 = private unnamed_addr constant [35 x i8] c" %e146097 = mul i32 %era, 146097\0A\00" @.str4776 = private unnamed_addr constant [32 x i8] c" %r0 = add i32 %e146097, %doe\0A\00" @.str4777 = private unnamed_addr constant [28 x i8] c" %r = sub i32 %r0, 719468\0A\00" @.str4778 = private unnamed_addr constant [14 x i8] c" ret i32 %r\0A\00" @.str4779 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4780 = private unnamed_addr constant [71 x i8] c"define void @fn_civil_from_days(i32 %z0, ptr %yp, ptr %mp, ptr %dp) {\0A\00" @.str4781 = private unnamed_addr constant [28 x i8] c" %z = add i32 %z0, 719468\0A\00" @.str4782 = private unnamed_addr constant [30 x i8] c" %zneg = icmp slt i32 %z, 0\0A\00" @.str4783 = private unnamed_addr constant [28 x i8] c" %zm = sub i32 %z, 146096\0A\00" @.str4784 = private unnamed_addr constant [44 x i8] c" %enum = select i1 %zneg, i32 %zm, i32 %z\0A\00" @.str4785 = private unnamed_addr constant [33 x i8] c" %era = sdiv i32 %enum, 146097\0A\00" @.str4786 = private unnamed_addr constant [37 x i8] c" %era146097 = mul i32 %era, 146097\0A\00" @.str4787 = private unnamed_addr constant [33 x i8] c" %doe = sub i32 %z, %era146097\0A\00" @.str4788 = private unnamed_addr constant [32 x i8] c" %d1460 = sdiv i32 %doe, 1460\0A\00" @.str4789 = private unnamed_addr constant [34 x i8] c" %d36524 = sdiv i32 %doe, 36524\0A\00" @.str4790 = private unnamed_addr constant [36 x i8] c" %d146096 = sdiv i32 %doe, 146096\0A\00" @.str4791 = private unnamed_addr constant [30 x i8] c" %ya = sub i32 %doe, %d1460\0A\00" @.str4792 = private unnamed_addr constant [30 x i8] c" %yb = add i32 %ya, %d36524\0A\00" @.str4793 = private unnamed_addr constant [31 x i8] c" %yc = sub i32 %yb, %d146096\0A\00" @.str4794 = private unnamed_addr constant [28 x i8] c" %yoe = sdiv i32 %yc, 365\0A\00" @.str4795 = private unnamed_addr constant [31 x i8] c" %era400 = mul i32 %era, 400\0A\00" @.str4796 = private unnamed_addr constant [31 x i8] c" %yy = add i32 %yoe, %era400\0A\00" @.str4797 = private unnamed_addr constant [31 x i8] c" %yoe365 = mul i32 %yoe, 365\0A\00" @.str4798 = private unnamed_addr constant [28 x i8] c" %yoe4 = sdiv i32 %yoe, 4\0A\00" @.str4799 = private unnamed_addr constant [32 x i8] c" %yoe100 = sdiv i32 %yoe, 100\0A\00" @.str4800 = private unnamed_addr constant [34 x i8] c" %sub0 = add i32 %yoe365, %yoe4\0A\00" @.str4801 = private unnamed_addr constant [34 x i8] c" %sub1 = sub i32 %sub0, %yoe100\0A\00" @.str4802 = private unnamed_addr constant [30 x i8] c" %doy = sub i32 %doe, %sub1\0A\00" @.str4803 = private unnamed_addr constant [30 x i8] c" %fivedoy = mul i32 5, %doy\0A\00" @.str4804 = private unnamed_addr constant [35 x i8] c" %fivedoy2 = add i32 %fivedoy, 2\0A\00" @.str4805 = private unnamed_addr constant [34 x i8] c" %mpv = sdiv i32 %fivedoy2, 153\0A\00" @.str4806 = private unnamed_addr constant [29 x i8] c" %m153 = mul i32 153, %mpv\0A\00" @.str4807 = private unnamed_addr constant [29 x i8] c" %m153b = add i32 %m153, 2\0A\00" @.str4808 = private unnamed_addr constant [31 x i8] c" %m153c = sdiv i32 %m153b, 5\0A\00" @.str4809 = private unnamed_addr constant [31 x i8] c" %dd0 = sub i32 %doy, %m153c\0A\00" @.str4810 = private unnamed_addr constant [25 x i8] c" %dd = add i32 %dd0, 1\0A\00" @.str4811 = private unnamed_addr constant [35 x i8] c" %mplt10 = icmp slt i32 %mpv, 10\0A\00" @.str4812 = private unnamed_addr constant [29 x i8] c" %mplus3 = add i32 %mpv, 3\0A\00" @.str4813 = private unnamed_addr constant [30 x i8] c" %mminus9 = sub i32 %mpv, 9\0A\00" @.str4814 = private unnamed_addr constant [56 x i8] c" %mfin = select i1 %mplt10, i32 %mplus3, i32 %mminus9\0A\00" @.str4815 = private unnamed_addr constant [34 x i8] c" %mmle2 = icmp sle i32 %mfin, 2\0A\00" @.str4816 = private unnamed_addr constant [42 x i8] c" %yinc = select i1 %mmle2, i32 1, i32 0\0A\00" @.str4817 = private unnamed_addr constant [30 x i8] c" %yfin = add i32 %yy, %yinc\0A\00" @.str4818 = private unnamed_addr constant [28 x i8] c" store i32 %yfin, ptr %yp\0A\00" @.str4819 = private unnamed_addr constant [28 x i8] c" store i32 %mfin, ptr %mp\0A\00" @.str4820 = private unnamed_addr constant [26 x i8] c" store i32 %dd, ptr %dp\0A\00" @.str4821 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str4822 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str4823 = private unnamed_addr constant [42 x i8] c"define ptr @fn_dt_pad0(i32 %v, i32 %w) {\0A\00" @.str4824 = private unnamed_addr constant [28 x i8] c" %we = zext i32 %w to i64\0A\00" @.str4825 = private unnamed_addr constant [24 x i8] c" %sz = add i64 %we, 1\0A\00" @.str4826 = private unnamed_addr constant [36 x i8] c" %buf = call ptr @malloc(i64 %sz)\0A\00" @.str4827 = private unnamed_addr constant [46 x i8] c" %endp = getelementptr i8, ptr %buf, i32 %w\0A\00" @.str4828 = private unnamed_addr constant [25 x i8] c" store i8 0, ptr %endp\0A\00" @.str4829 = private unnamed_addr constant [39 x i8] c" %kp = alloca i32\0A %vp = alloca i32\0A\00" @.str4830 = 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" @.str4831 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str4832 = 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" @.str4833 = 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" @.str4834 = private unnamed_addr constant [69 x i8] c" %cp = getelementptr i8, ptr %buf, i32 %k\0A store i8 %ch8, ptr %cp\0A\00" @.str4835 = 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" @.str4836 = private unnamed_addr constant [24 x i8] c"done:\0A ret ptr %buf\0A}\0A\00" @.str4837 = private unnamed_addr constant [62 x i8] c"define i32 @fn_dt_rd(ptr %s, i32 %off, i32 %w, ptr %failp) {\0A\00" @.str4838 = 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" @.str4839 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str4840 = 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" @.str4841 = 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" @.str4842 = private unnamed_addr constant [70 x i8] c" %zero = icmp eq i32 %c, 0\0A br i1 %zero, label %stop, label %digit\0A\00" @.str4843 = private unnamed_addr constant [50 x i8] c"stop:\0A store i32 1, ptr %failp\0A br label %done\0A\00" @.str4844 = 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" @.str4845 = private unnamed_addr constant [50 x i8] c"fail:\0A store i32 1, ptr %failp\0A br label %next\0A\00" @.str4846 = 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" @.str4847 = 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" @.str4848 = private unnamed_addr constant [49 x i8] c"done:\0A %r = load i32, ptr %accp\0A ret i32 %r\0A}\0A\00" @.str4849 = private unnamed_addr constant [4 x i8] c"now\00" @.str4850 = private unnamed_addr constant [4 x i8] c"set\00" @.str4851 = private unnamed_addr constant [8 x i8] c"advance\00" @.str4852 = private unnamed_addr constant [6 x i8] c"reset\00" @.str4853 = private unnamed_addr constant [4 x i8] c"now\00" @.str4854 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_clock\00" @.str4855 = private unnamed_addr constant [4 x i8] c"int\00" @.str4856 = private unnamed_addr constant [6 x i8] c"reset\00" @.str4857 = private unnamed_addr constant [29 x i8] c" store i32 0, ptr @L_clock\0A\00" @.str4858 = private unnamed_addr constant [2 x i8] c"0\00" @.str4859 = private unnamed_addr constant [5 x i8] c"void\00" @.str4860 = private unnamed_addr constant [4 x i8] c"set\00" @.str4861 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str4862 = private unnamed_addr constant [16 x i8] c", ptr @L_clock\0A\00" @.str4863 = private unnamed_addr constant [2 x i8] c"0\00" @.str4864 = private unnamed_addr constant [5 x i8] c"void\00" @.str4865 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_clock\00" @.str4866 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4867 = private unnamed_addr constant [3 x i8] c", \00" @.str4868 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str4869 = private unnamed_addr constant [16 x i8] c", ptr @L_clock\0A\00" @.str4870 = private unnamed_addr constant [2 x i8] c"0\00" @.str4871 = private unnamed_addr constant [5 x i8] c"void\00" @.str4872 = private unnamed_addr constant [4 x i8] c"rgb\00" @.str4873 = private unnamed_addr constant [5 x i8] c"rgba\00" @.str4874 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str4875 = private unnamed_addr constant [7 x i8] c"darken\00" @.str4876 = private unnamed_addr constant [8 x i8] c"lighten\00" @.str4877 = private unnamed_addr constant [11 x i8] c"with_alpha\00" @.str4878 = private unnamed_addr constant [10 x i8] c"lshr i32 \00" @.str4879 = private unnamed_addr constant [3 x i8] c", \00" @.str4880 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str4881 = private unnamed_addr constant [6 x i8] c", 255\00" @.str4882 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str4883 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4884 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str4885 = private unnamed_addr constant [4 x i8] c", 8\00" @.str4886 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str4887 = private unnamed_addr constant [3 x i8] c", \00" @.str4888 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str4889 = private unnamed_addr constant [3 x i8] c", \00" @.str4890 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str4891 = private unnamed_addr constant [3 x i8] c", \00" @.str4892 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4893 = private unnamed_addr constant [3 x i8] c", \00" @.str4894 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4895 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4896 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4897 = private unnamed_addr constant [3 x i8] c", \00" @.str4898 = private unnamed_addr constant [4 x i8] c"rgb\00" @.str4899 = private unnamed_addr constant [4 x i8] c"int\00" @.str4900 = private unnamed_addr constant [5 x i8] c"rgba\00" @.str4901 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str4902 = private unnamed_addr constant [5 x i8] c", 24\00" @.str4903 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str4904 = private unnamed_addr constant [3 x i8] c", \00" @.str4905 = private unnamed_addr constant [4 x i8] c"int\00" @.str4906 = private unnamed_addr constant [11 x i8] c"with_alpha\00" @.str4907 = private unnamed_addr constant [9 x i8] c"and i32 \00" @.str4908 = private unnamed_addr constant [11 x i8] c", 16777215\00" @.str4909 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str4910 = private unnamed_addr constant [5 x i8] c", 24\00" @.str4911 = private unnamed_addr constant [8 x i8] c"or i32 \00" @.str4912 = private unnamed_addr constant [3 x i8] c", \00" @.str4913 = private unnamed_addr constant [4 x i8] c"int\00" @.str4914 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str4915 = private unnamed_addr constant [3 x i8] c"16\00" @.str4916 = private unnamed_addr constant [3 x i8] c"16\00" @.str4917 = private unnamed_addr constant [2 x i8] c"8\00" @.str4918 = private unnamed_addr constant [2 x i8] c"8\00" @.str4919 = private unnamed_addr constant [2 x i8] c"0\00" @.str4920 = private unnamed_addr constant [2 x i8] c"0\00" @.str4921 = private unnamed_addr constant [4 x i8] c"int\00" @.str4922 = private unnamed_addr constant [7 x i8] c"darken\00" @.str4923 = private unnamed_addr constant [16 x i8] c"sub i32 65536, \00" @.str4924 = private unnamed_addr constant [3 x i8] c"16\00" @.str4925 = private unnamed_addr constant [2 x i8] c"8\00" @.str4926 = private unnamed_addr constant [2 x i8] c"0\00" @.str4927 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4928 = private unnamed_addr constant [3 x i8] c", \00" @.str4929 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4930 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4931 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4932 = private unnamed_addr constant [3 x i8] c", \00" @.str4933 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4934 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4935 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4936 = private unnamed_addr constant [3 x i8] c", \00" @.str4937 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4938 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4939 = private unnamed_addr constant [4 x i8] c"int\00" @.str4940 = private unnamed_addr constant [3 x i8] c"16\00" @.str4941 = private unnamed_addr constant [2 x i8] c"8\00" @.str4942 = private unnamed_addr constant [2 x i8] c"0\00" @.str4943 = private unnamed_addr constant [14 x i8] c"sub i32 255, \00" @.str4944 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4945 = private unnamed_addr constant [3 x i8] c", \00" @.str4946 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4947 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4948 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4949 = private unnamed_addr constant [3 x i8] c", \00" @.str4950 = private unnamed_addr constant [14 x i8] c"sub i32 255, \00" @.str4951 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4952 = private unnamed_addr constant [3 x i8] c", \00" @.str4953 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4954 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4955 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4956 = private unnamed_addr constant [3 x i8] c", \00" @.str4957 = private unnamed_addr constant [14 x i8] c"sub i32 255, \00" @.str4958 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str4959 = private unnamed_addr constant [3 x i8] c", \00" @.str4960 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str4961 = private unnamed_addr constant [5 x i8] c", 16\00" @.str4962 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str4963 = private unnamed_addr constant [3 x i8] c", \00" @.str4964 = private unnamed_addr constant [4 x i8] c"int\00" @.str4965 = private unnamed_addr constant [6 x i8] c"White\00" @.str4966 = private unnamed_addr constant [5 x i8] c"Snow\00" @.str4967 = private unnamed_addr constant [6 x i8] c"Ivory\00" @.str4968 = private unnamed_addr constant [14 x i8] c"EggShellWhite\00" @.str4969 = private unnamed_addr constant [12 x i8] c"FloralWhite\00" @.str4970 = private unnamed_addr constant [9 x i8] c"SeaShell\00" @.str4971 = private unnamed_addr constant [6 x i8] c"Linen\00" @.str4972 = private unnamed_addr constant [13 x i8] c"AntiqueWhite\00" @.str4973 = private unnamed_addr constant [8 x i8] c"OldLace\00" @.str4974 = private unnamed_addr constant [6 x i8] c"Beige\00" @.str4975 = private unnamed_addr constant [6 x i8] c"Cream\00" @.str4976 = private unnamed_addr constant [9 x i8] c"Honeydew\00" @.str4977 = private unnamed_addr constant [10 x i8] c"MintCream\00" @.str4978 = private unnamed_addr constant [6 x i8] c"Azure\00" @.str4979 = private unnamed_addr constant [10 x i8] c"AliceBlue\00" @.str4980 = private unnamed_addr constant [11 x i8] c"GhostWhite\00" @.str4981 = private unnamed_addr constant [11 x i8] c"WhiteSmoke\00" @.str4982 = private unnamed_addr constant [9 x i8] c"Lavender\00" @.str4983 = private unnamed_addr constant [5 x i8] c"Bone\00" @.str4984 = private unnamed_addr constant [10 x i8] c"Parchment\00" @.str4985 = private unnamed_addr constant [10 x i8] c"Gainsboro\00" @.str4986 = private unnamed_addr constant [10 x i8] c"LightGray\00" @.str4987 = private unnamed_addr constant [7 x i8] c"Silver\00" @.str4988 = private unnamed_addr constant [4 x i8] c"Ash\00" @.str4989 = private unnamed_addr constant [9 x i8] c"DarkGray\00" @.str4990 = private unnamed_addr constant [5 x i8] c"Gray\00" @.str4991 = private unnamed_addr constant [8 x i8] c"DimGray\00" @.str4992 = private unnamed_addr constant [7 x i8] c"Nickel\00" @.str4993 = private unnamed_addr constant [6 x i8] c"Slate\00" @.str4994 = private unnamed_addr constant [10 x i8] c"SlateGray\00" @.str4995 = private unnamed_addr constant [15 x i8] c"LightSlateGray\00" @.str4996 = private unnamed_addr constant [9 x i8] c"Gunmetal\00" @.str4997 = private unnamed_addr constant [9 x i8] c"Charcoal\00" @.str4998 = private unnamed_addr constant [9 x i8] c"Graphite\00" @.str4999 = private unnamed_addr constant [5 x i8] c"Onyx\00" @.str5000 = private unnamed_addr constant [4 x i8] c"Jet\00" @.str5001 = private unnamed_addr constant [6 x i8] c"Black\00" @.str5002 = private unnamed_addr constant [11 x i8] c"EerieBlack\00" @.str5003 = private unnamed_addr constant [12 x i8] c"RaisinBlack\00" @.str5004 = private unnamed_addr constant [6 x i8] c"Ebony\00" @.str5005 = private unnamed_addr constant [4 x i8] c"Red\00" @.str5006 = private unnamed_addr constant [8 x i8] c"Crimson\00" @.str5007 = private unnamed_addr constant [8 x i8] c"Scarlet\00" @.str5008 = private unnamed_addr constant [10 x i8] c"Vermilion\00" @.str5009 = private unnamed_addr constant [10 x i8] c"FireBrick\00" @.str5010 = private unnamed_addr constant [9 x i8] c"Cinnabar\00" @.str5011 = private unnamed_addr constant [8 x i8] c"DarkRed\00" @.str5012 = private unnamed_addr constant [7 x i8] c"Maroon\00" @.str5013 = private unnamed_addr constant [5 x i8] c"Ruby\00" @.str5014 = private unnamed_addr constant [9 x i8] c"Cardinal\00" @.str5015 = private unnamed_addr constant [10 x i8] c"IndianRed\00" @.str5016 = private unnamed_addr constant [5 x i8] c"Rust\00" @.str5017 = private unnamed_addr constant [8 x i8] c"Sangria\00" @.str5018 = private unnamed_addr constant [8 x i8] c"Redwood\00" @.str5019 = private unnamed_addr constant [7 x i8] c"Cerise\00" @.str5020 = private unnamed_addr constant [9 x i8] c"Amaranth\00" @.str5021 = private unnamed_addr constant [8 x i8] c"Carmine\00" @.str5022 = private unnamed_addr constant [9 x i8] c"Chestnut\00" @.str5023 = private unnamed_addr constant [6 x i8] c"Brick\00" @.str5024 = private unnamed_addr constant [11 x i8] c"TerraCotta\00" @.str5025 = private unnamed_addr constant [5 x i8] c"Pink\00" @.str5026 = private unnamed_addr constant [10 x i8] c"LightPink\00" @.str5027 = private unnamed_addr constant [8 x i8] c"HotPink\00" @.str5028 = private unnamed_addr constant [9 x i8] c"DeepPink\00" @.str5029 = private unnamed_addr constant [14 x i8] c"PaleVioletRed\00" @.str5030 = private unnamed_addr constant [5 x i8] c"Rose\00" @.str5031 = private unnamed_addr constant [6 x i8] c"Blush\00" @.str5032 = private unnamed_addr constant [7 x i8] c"Salmon\00" @.str5033 = private unnamed_addr constant [12 x i8] c"LightSalmon\00" @.str5034 = private unnamed_addr constant [11 x i8] c"DarkSalmon\00" @.str5035 = private unnamed_addr constant [6 x i8] c"Coral\00" @.str5036 = private unnamed_addr constant [11 x i8] c"Watermelon\00" @.str5037 = private unnamed_addr constant [9 x i8] c"Flamingo\00" @.str5038 = private unnamed_addr constant [10 x i8] c"Bubblegum\00" @.str5039 = private unnamed_addr constant [8 x i8] c"Fuchsia\00" @.str5040 = private unnamed_addr constant [8 x i8] c"Magenta\00" @.str5041 = private unnamed_addr constant [6 x i8] c"Mauve\00" @.str5042 = private unnamed_addr constant [5 x i8] c"Puce\00" @.str5043 = private unnamed_addr constant [8 x i8] c"Thistle\00" @.str5044 = private unnamed_addr constant [7 x i8] c"Orchid\00" @.str5045 = private unnamed_addr constant [7 x i8] c"Orange\00" @.str5046 = private unnamed_addr constant [11 x i8] c"DarkOrange\00" @.str5047 = private unnamed_addr constant [10 x i8] c"Tangerine\00" @.str5048 = private unnamed_addr constant [8 x i8] c"Pumpkin\00" @.str5049 = private unnamed_addr constant [8 x i8] c"Apricot\00" @.str5050 = private unnamed_addr constant [6 x i8] c"Peach\00" @.str5051 = private unnamed_addr constant [11 x i8] c"Cantaloupe\00" @.str5052 = private unnamed_addr constant [6 x i8] c"Amber\00" @.str5053 = private unnamed_addr constant [7 x i8] c"Bronze\00" @.str5054 = private unnamed_addr constant [7 x i8] c"Copper\00" @.str5055 = private unnamed_addr constant [9 x i8] c"Marigold\00" @.str5056 = private unnamed_addr constant [7 x i8] c"Carrot\00" @.str5057 = private unnamed_addr constant [10 x i8] c"Persimmon\00" @.str5058 = private unnamed_addr constant [7 x i8] c"Papaya\00" @.str5059 = private unnamed_addr constant [7 x i8] c"Sunset\00" @.str5060 = private unnamed_addr constant [7 x i8] c"Yellow\00" @.str5061 = private unnamed_addr constant [12 x i8] c"LightYellow\00" @.str5062 = private unnamed_addr constant [5 x i8] c"Gold\00" @.str5063 = private unnamed_addr constant [10 x i8] c"Goldenrod\00" @.str5064 = private unnamed_addr constant [6 x i8] c"Lemon\00" @.str5065 = private unnamed_addr constant [7 x i8] c"Canary\00" @.str5066 = private unnamed_addr constant [8 x i8] c"Mustard\00" @.str5067 = private unnamed_addr constant [5 x i8] c"Flax\00" @.str5068 = private unnamed_addr constant [6 x i8] c"Wheat\00" @.str5069 = private unnamed_addr constant [5 x i8] c"Corn\00" @.str5070 = private unnamed_addr constant [10 x i8] c"Dandelion\00" @.str5071 = private unnamed_addr constant [8 x i8] c"Saffron\00" @.str5072 = private unnamed_addr constant [6 x i8] c"Khaki\00" @.str5073 = private unnamed_addr constant [10 x i8] c"DarkKhaki\00" @.str5074 = private unnamed_addr constant [6 x i8] c"Straw\00" @.str5075 = private unnamed_addr constant [6 x i8] c"Brown\00" @.str5076 = private unnamed_addr constant [12 x i8] c"SaddleBrown\00" @.str5077 = private unnamed_addr constant [7 x i8] c"Sienna\00" @.str5078 = private unnamed_addr constant [10 x i8] c"Chocolate\00" @.str5079 = private unnamed_addr constant [5 x i8] c"Peru\00" @.str5080 = private unnamed_addr constant [4 x i8] c"Tan\00" @.str5081 = private unnamed_addr constant [10 x i8] c"BurlyWood\00" @.str5082 = private unnamed_addr constant [5 x i8] c"Sand\00" @.str5083 = private unnamed_addr constant [7 x i8] c"Coffee\00" @.str5084 = private unnamed_addr constant [9 x i8] c"Espresso\00" @.str5085 = private unnamed_addr constant [9 x i8] c"Mahogany\00" @.str5086 = private unnamed_addr constant [7 x i8] c"Walnut\00" @.str5087 = private unnamed_addr constant [6 x i8] c"Umber\00" @.str5088 = private unnamed_addr constant [6 x i8] c"Sepia\00" @.str5089 = private unnamed_addr constant [6 x i8] c"Taupe\00" @.str5090 = private unnamed_addr constant [5 x i8] c"Fawn\00" @.str5091 = private unnamed_addr constant [8 x i8] c"Caramel\00" @.str5092 = private unnamed_addr constant [6 x i8] c"Cocoa\00" @.str5093 = private unnamed_addr constant [6 x i8] c"Hazel\00" @.str5094 = private unnamed_addr constant [6 x i8] c"Wenge\00" @.str5095 = private unnamed_addr constant [6 x i8] c"Green\00" @.str5096 = private unnamed_addr constant [5 x i8] c"Lime\00" @.str5097 = private unnamed_addr constant [10 x i8] c"LimeGreen\00" @.str5098 = private unnamed_addr constant [10 x i8] c"LawnGreen\00" @.str5099 = private unnamed_addr constant [11 x i8] c"Chartreuse\00" @.str5100 = private unnamed_addr constant [12 x i8] c"GreenYellow\00" @.str5101 = private unnamed_addr constant [12 x i8] c"SpringGreen\00" @.str5102 = private unnamed_addr constant [10 x i8] c"MintGreen\00" @.str5103 = private unnamed_addr constant [9 x i8] c"SeaGreen\00" @.str5104 = private unnamed_addr constant [15 x i8] c"MediumSeaGreen\00" @.str5105 = private unnamed_addr constant [12 x i8] c"ForestGreen\00" @.str5106 = private unnamed_addr constant [10 x i8] c"DarkGreen\00" @.str5107 = private unnamed_addr constant [10 x i8] c"OliveDrab\00" @.str5108 = private unnamed_addr constant [6 x i8] c"Olive\00" @.str5109 = private unnamed_addr constant [5 x i8] c"Moss\00" @.str5110 = private unnamed_addr constant [5 x i8] c"Fern\00" @.str5111 = private unnamed_addr constant [8 x i8] c"Emerald\00" @.str5112 = private unnamed_addr constant [5 x i8] c"Jade\00" @.str5113 = private unnamed_addr constant [10 x i8] c"Malachite\00" @.str5114 = private unnamed_addr constant [9 x i8] c"Shamrock\00" @.str5115 = private unnamed_addr constant [10 x i8] c"Pistachio\00" @.str5116 = private unnamed_addr constant [8 x i8] c"Avocado\00" @.str5117 = private unnamed_addr constant [5 x i8] c"Pine\00" @.str5118 = private unnamed_addr constant [5 x i8] c"Sage\00" @.str5119 = private unnamed_addr constant [6 x i8] c"Kelly\00" @.str5120 = private unnamed_addr constant [7 x i8] c"Hunter\00" @.str5121 = private unnamed_addr constant [6 x i8] c"Basil\00" @.str5122 = private unnamed_addr constant [7 x i8] c"Clover\00" @.str5123 = private unnamed_addr constant [8 x i8] c"Juniper\00" @.str5124 = private unnamed_addr constant [5 x i8] c"Neon\00" @.str5125 = private unnamed_addr constant [5 x i8] c"Cyan\00" @.str5126 = private unnamed_addr constant [5 x i8] c"Aqua\00" @.str5127 = private unnamed_addr constant [10 x i8] c"LightCyan\00" @.str5128 = private unnamed_addr constant [14 x i8] c"PaleTurquoise\00" @.str5129 = private unnamed_addr constant [11 x i8] c"Aquamarine\00" @.str5130 = private unnamed_addr constant [10 x i8] c"Turquoise\00" @.str5131 = private unnamed_addr constant [16 x i8] c"MediumTurquoise\00" @.str5132 = private unnamed_addr constant [14 x i8] c"DarkTurquoise\00" @.str5133 = private unnamed_addr constant [5 x i8] c"Teal\00" @.str5134 = private unnamed_addr constant [9 x i8] c"DarkCyan\00" @.str5135 = private unnamed_addr constant [10 x i8] c"CadetBlue\00" @.str5136 = private unnamed_addr constant [7 x i8] c"Lagoon\00" @.str5137 = private unnamed_addr constant [8 x i8] c"Seafoam\00" @.str5138 = private unnamed_addr constant [9 x i8] c"Cerulean\00" @.str5139 = private unnamed_addr constant [13 x i8] c"SkyBlueLight\00" @.str5140 = private unnamed_addr constant [6 x i8] c"Robin\00" @.str5141 = private unnamed_addr constant [10 x i8] c"Verdigris\00" @.str5142 = private unnamed_addr constant [8 x i8] c"Celadon\00" @.str5143 = private unnamed_addr constant [5 x i8] c"Blue\00" @.str5144 = private unnamed_addr constant [10 x i8] c"LightBlue\00" @.str5145 = private unnamed_addr constant [11 x i8] c"PowderBlue\00" @.str5146 = private unnamed_addr constant [8 x i8] c"SkyBlue\00" @.str5147 = private unnamed_addr constant [13 x i8] c"LightSkyBlue\00" @.str5148 = private unnamed_addr constant [12 x i8] c"DeepSkyBlue\00" @.str5149 = private unnamed_addr constant [11 x i8] c"DodgerBlue\00" @.str5150 = private unnamed_addr constant [15 x i8] c"CornflowerBlue\00" @.str5151 = private unnamed_addr constant [10 x i8] c"SteelBlue\00" @.str5152 = private unnamed_addr constant [10 x i8] c"RoyalBlue\00" @.str5153 = private unnamed_addr constant [11 x i8] c"MediumBlue\00" @.str5154 = private unnamed_addr constant [9 x i8] c"DarkBlue\00" @.str5155 = private unnamed_addr constant [5 x i8] c"Navy\00" @.str5156 = private unnamed_addr constant [13 x i8] c"MidnightBlue\00" @.str5157 = private unnamed_addr constant [7 x i8] c"Cobalt\00" @.str5158 = private unnamed_addr constant [9 x i8] c"Sapphire\00" @.str5159 = private unnamed_addr constant [6 x i8] c"Denim\00" @.str5160 = private unnamed_addr constant [7 x i8] c"Indigo\00" @.str5161 = private unnamed_addr constant [9 x i8] c"Prussian\00" @.str5162 = private unnamed_addr constant [12 x i8] c"Ultramarine\00" @.str5163 = private unnamed_addr constant [11 x i8] c"Periwinkle\00" @.str5164 = private unnamed_addr constant [5 x i8] c"Iris\00" @.str5165 = private unnamed_addr constant [9 x i8] c"Glaucous\00" @.str5166 = private unnamed_addr constant [7 x i8] c"Zaffre\00" @.str5167 = private unnamed_addr constant [6 x i8] c"Berry\00" @.str5168 = private unnamed_addr constant [7 x i8] c"Purple\00" @.str5169 = private unnamed_addr constant [7 x i8] c"Violet\00" @.str5170 = private unnamed_addr constant [11 x i8] c"DarkViolet\00" @.str5171 = private unnamed_addr constant [11 x i8] c"BlueViolet\00" @.str5172 = private unnamed_addr constant [13 x i8] c"MediumPurple\00" @.str5173 = private unnamed_addr constant [9 x i8] c"Amethyst\00" @.str5174 = private unnamed_addr constant [5 x i8] c"Plum\00" @.str5175 = private unnamed_addr constant [9 x i8] c"Eggplant\00" @.str5176 = private unnamed_addr constant [6 x i8] c"Grape\00" @.str5177 = private unnamed_addr constant [5 x i8] c"Wine\00" @.str5178 = private unnamed_addr constant [9 x i8] c"Mulberry\00" @.str5179 = private unnamed_addr constant [6 x i8] c"Lilac\00" @.str5180 = private unnamed_addr constant [9 x i8] c"Wisteria\00" @.str5181 = private unnamed_addr constant [11 x i8] c"Heliotrope\00" @.str5182 = private unnamed_addr constant [10 x i8] c"Byzantium\00" @.str5183 = private unnamed_addr constant [7 x i8] c"Tyrian\00" @.str5184 = private unnamed_addr constant [14 x i8] c"RebeccaPurple\00" @.str5185 = private unnamed_addr constant [8 x i8] c"Orchid2\00" @.str5186 = private unnamed_addr constant [15 x i8] c"getelementptr \00" @.str5187 = private unnamed_addr constant [18 x i8] c", ptr null, i32 1\00" @.str5188 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" @.str5189 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5190 = private unnamed_addr constant [27 x i8] c"unknown record type in new\00" @.str5191 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str5192 = private unnamed_addr constant [2 x i8] c")\00" @.str5193 = private unnamed_addr constant [3 x i8] c" \00" @.str5194 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str5195 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5196 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str5197 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5198 = private unnamed_addr constant [2 x i8] c"0\00" @.str5199 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str5200 = private unnamed_addr constant [5 x i8] c"null\00" @.str5201 = private unnamed_addr constant [9 x i8] c" store \00" @.str5202 = private unnamed_addr constant [2 x i8] c" \00" @.str5203 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5204 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5205 = private unnamed_addr constant [8 x i8] c"%LSlice\00" @.str5206 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str5207 = private unnamed_addr constant [2 x i8] c")\00" @.str5208 = private unnamed_addr constant [3 x i8] c" \00" @.str5209 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str5210 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" @.str5211 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00" @.str5212 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5213 = private unnamed_addr constant [3 x i8] c" \00" @.str5214 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str5215 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00" @.str5216 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str5217 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5218 = private unnamed_addr constant [3 x i8] c" \00" @.str5219 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str5220 = private unnamed_addr constant [16 x i8] c", i32 0, i32 2\0A\00" @.str5221 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str5222 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5223 = private unnamed_addr constant [3 x i8] c" \00" @.str5224 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" @.str5225 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str5226 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5227 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str5228 = private unnamed_addr constant [4 x i8] c"int\00" @.str5229 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" @.str5230 = private unnamed_addr constant [2 x i8] c")\00" @.str5231 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str5232 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5233 = private unnamed_addr constant [4 x i8] c"int\00" @.str5234 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str5235 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str5236 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" @.str5237 = private unnamed_addr constant [3 x i8] c", \00" @.str5238 = private unnamed_addr constant [5 x i8] c"grow\00" @.str5239 = private unnamed_addr constant [4 x i8] c"put\00" @.str5240 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str5241 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5242 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5243 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5244 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str5245 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str5246 = private unnamed_addr constant [4 x i8] c", 2\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 [11 x i8] c"select i1 \00" @.str5250 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" @.str5251 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str5252 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5253 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str5254 = private unnamed_addr constant [3 x i8] c", \00" @.str5255 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str5256 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" @.str5257 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str5258 = private unnamed_addr constant [2 x i8] c")\00" @.str5259 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str5260 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5261 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5262 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str5263 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5264 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5265 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str5266 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5267 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str5268 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str5269 = private unnamed_addr constant [3 x i8] c" \00" @.str5270 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" @.str5271 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5272 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5273 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5274 = private unnamed_addr constant [9 x i8] c" store \00" @.str5275 = private unnamed_addr constant [2 x i8] c" \00" @.str5276 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5277 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5278 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str5279 = private unnamed_addr constant [4 x i8] c", 1\00" @.str5280 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str5281 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5282 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5283 = private unnamed_addr constant [2 x i8] c"0\00" @.str5284 = private unnamed_addr constant [5 x i8] c"void\00" @.str5285 = private unnamed_addr constant [6 x i8] c"load \00" @.str5286 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5287 = private unnamed_addr constant [4 x i8] c"i32\00" @.str5288 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str5289 = private unnamed_addr constant [4 x i8] c", 0\00" @.str5290 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str5291 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5292 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str5293 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5294 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5295 = private unnamed_addr constant [3 x i8] c"sc\00" @.str5296 = private unnamed_addr constant [6 x i8] c"scend\00" @.str5297 = private unnamed_addr constant [4 x i8] c"and\00" @.str5298 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str5299 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5300 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5301 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5302 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str5303 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5304 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5305 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5306 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str5307 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str5308 = private unnamed_addr constant [4 x i8] c", 0\00" @.str5309 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str5310 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5311 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str5312 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5313 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5314 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str5315 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5316 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str5317 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str5318 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5319 = private unnamed_addr constant [2 x i8] c"<\00" @.str5320 = private unnamed_addr constant [4 x i8] c"slt\00" @.str5321 = private unnamed_addr constant [3 x i8] c"<=\00" @.str5322 = private unnamed_addr constant [4 x i8] c"sle\00" @.str5323 = private unnamed_addr constant [2 x i8] c">\00" @.str5324 = private unnamed_addr constant [4 x i8] c"sgt\00" @.str5325 = private unnamed_addr constant [3 x i8] c">=\00" @.str5326 = private unnamed_addr constant [4 x i8] c"sge\00" @.str5327 = private unnamed_addr constant [3 x i8] c"==\00" @.str5328 = private unnamed_addr constant [3 x i8] c"eq\00" @.str5329 = private unnamed_addr constant [3 x i8] c"ne\00" @.str5330 = private unnamed_addr constant [2 x i8] c"<\00" @.str5331 = private unnamed_addr constant [3 x i8] c"<=\00" @.str5332 = private unnamed_addr constant [2 x i8] c">\00" @.str5333 = private unnamed_addr constant [3 x i8] c">=\00" @.str5334 = private unnamed_addr constant [3 x i8] c"==\00" @.str5335 = private unnamed_addr constant [3 x i8] c"!=\00" @.str5336 = private unnamed_addr constant [2 x i8] c"+\00" @.str5337 = private unnamed_addr constant [4 x i8] c"add\00" @.str5338 = private unnamed_addr constant [2 x i8] c"-\00" @.str5339 = private unnamed_addr constant [4 x i8] c"sub\00" @.str5340 = private unnamed_addr constant [2 x i8] c"*\00" @.str5341 = private unnamed_addr constant [4 x i8] c"mul\00" @.str5342 = private unnamed_addr constant [2 x i8] c"/\00" @.str5343 = private unnamed_addr constant [5 x i8] c"sdiv\00" @.str5344 = private unnamed_addr constant [2 x i8] c"&\00" @.str5345 = private unnamed_addr constant [4 x i8] c"and\00" @.str5346 = private unnamed_addr constant [2 x i8] c"|\00" @.str5347 = private unnamed_addr constant [3 x i8] c"or\00" @.str5348 = private unnamed_addr constant [2 x i8] c"^\00" @.str5349 = private unnamed_addr constant [4 x i8] c"xor\00" @.str5350 = private unnamed_addr constant [3 x i8] c"<<\00" @.str5351 = private unnamed_addr constant [4 x i8] c"shl\00" @.str5352 = private unnamed_addr constant [3 x i8] c">>\00" @.str5353 = private unnamed_addr constant [5 x i8] c"lshr\00" @.str5354 = private unnamed_addr constant [5 x i8] c"srem\00" @.str5355 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str5356 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str5357 = private unnamed_addr constant [5 x i8] c", 16\00" @.str5358 = private unnamed_addr constant [4 x i8] c"i64\00" @.str5359 = private unnamed_addr constant [4 x i8] c"i32\00" @.str5360 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str5361 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5362 = private unnamed_addr constant [4 x i8] c"i32\00" @.str5363 = private unnamed_addr constant [4 x i8] c"i64\00" @.str5364 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str5365 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5366 = private unnamed_addr constant [4 x i8] c"i64\00" @.str5367 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str5368 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5369 = private unnamed_addr constant [2 x i8] c"+\00" @.str5370 = private unnamed_addr constant [29 x i8] c"call ptr @fn_str_concat(ptr \00" @.str5371 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5372 = private unnamed_addr constant [2 x i8] c")\00" @.str5373 = private unnamed_addr constant [7 x i8] c"string\00" @.str5374 = private unnamed_addr constant [25 x i8] c"call i32 @fn_str_eq(ptr \00" @.str5375 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5376 = private unnamed_addr constant [2 x i8] c")\00" @.str5377 = private unnamed_addr constant [3 x i8] c"!=\00" @.str5378 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str5379 = private unnamed_addr constant [4 x i8] c", 0\00" @.str5380 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str5381 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5382 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5383 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5384 = private unnamed_addr constant [4 x i8] c"and\00" @.str5385 = private unnamed_addr constant [3 x i8] c"or\00" @.str5386 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str5387 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str5388 = private unnamed_addr constant [2 x i8] c"+\00" @.str5389 = private unnamed_addr constant [2 x i8] c"+\00" @.str5390 = private unnamed_addr constant [3 x i8] c"==\00" @.str5391 = private unnamed_addr constant [3 x i8] c"!=\00" @.str5392 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str5393 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str5394 = private unnamed_addr constant [4 x i8] c"i64\00" @.str5395 = private unnamed_addr constant [4 x i8] c"i64\00" @.str5396 = private unnamed_addr constant [4 x i8] c"i32\00" @.str5397 = private unnamed_addr constant [4 x i8] c"i64\00" @.str5398 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str5399 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str5400 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str5401 = private unnamed_addr constant [6 x i8] c"icmp \00" @.str5402 = private unnamed_addr constant [2 x i8] c" \00" @.str5403 = private unnamed_addr constant [2 x i8] c" \00" @.str5404 = private unnamed_addr constant [3 x i8] c", \00" @.str5405 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str5406 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5407 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5408 = private unnamed_addr constant [6 x i8] c" i64 \00" @.str5409 = private unnamed_addr constant [3 x i8] c", \00" @.str5410 = private unnamed_addr constant [5 x i8] c"long\00" @.str5411 = private unnamed_addr constant [2 x i8] c"*\00" @.str5412 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str5413 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5414 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str5415 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5416 = private unnamed_addr constant [9 x i8] c"mul i64 \00" @.str5417 = private unnamed_addr constant [3 x i8] c", \00" @.str5418 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" @.str5419 = private unnamed_addr constant [5 x i8] c", 16\00" @.str5420 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str5421 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5422 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str5423 = private unnamed_addr constant [2 x i8] c"/\00" @.str5424 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str5425 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5426 = private unnamed_addr constant [9 x i8] c"shl i64 \00" @.str5427 = private unnamed_addr constant [5 x i8] c", 16\00" @.str5428 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str5429 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str5430 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" @.str5431 = private unnamed_addr constant [3 x i8] c", \00" @.str5432 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str5433 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str5434 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str5435 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str5436 = private unnamed_addr constant [3 x i8] c", \00" @.str5437 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str5438 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str5439 = private unnamed_addr constant [3 x i8] c", \00" @.str5440 = private unnamed_addr constant [4 x i8] c"int\00" @.str5441 = private unnamed_addr constant [59 x i8] c"named and positional arguments cannot be mixed in one call\00" @.str5442 = private unnamed_addr constant [26 x i8] c"wrong number of arguments\00" @.str5443 = private unnamed_addr constant [19 x i8] c"no argument named \00" @.str5444 = private unnamed_addr constant [5 x i8] c"exok\00" @.str5445 = private unnamed_addr constant [6 x i8] c"exbad\00" @.str5446 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str5447 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5448 = private unnamed_addr constant [10 x i8] c", label %\00" @.str5449 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5450 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str5451 = private unnamed_addr constant [33 x i8] c" store i32 1, ptr @L_test_fail\0A\00" @.str5452 = private unnamed_addr constant [1 x i8] c"\00" @.str5453 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str5454 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5455 = private unnamed_addr constant [53 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_expect, ptr \00" @.str5456 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5457 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5458 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5459 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str5460 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str5461 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str5462 = private unnamed_addr constant [5 x i8] c"Math\00" @.str5463 = private unnamed_addr constant [22 x i8] c"unknown builtin Math.\00" @.str5464 = private unnamed_addr constant [5 x i8] c"Text\00" @.str5465 = private unnamed_addr constant [22 x i8] c"unknown builtin Text.\00" @.str5466 = private unnamed_addr constant [5 x i8] c"List\00" @.str5467 = private unnamed_addr constant [22 x i8] c"unknown builtin List.\00" @.str5468 = private unnamed_addr constant [5 x i8] c"Ease\00" @.str5469 = private unnamed_addr constant [22 x i8] c"unknown builtin Ease.\00" @.str5470 = private unnamed_addr constant [5 x i8] c"Anim\00" @.str5471 = private unnamed_addr constant [22 x i8] c"unknown builtin Anim.\00" @.str5472 = private unnamed_addr constant [6 x i8] c"Tween\00" @.str5473 = private unnamed_addr constant [23 x i8] c"unknown builtin Tween.\00" @.str5474 = private unnamed_addr constant [10 x i8] c"Collision\00" @.str5475 = private unnamed_addr constant [27 x i8] c"unknown builtin Collision.\00" @.str5476 = private unnamed_addr constant [7 x i8] c"Memory\00" @.str5477 = private unnamed_addr constant [24 x i8] c"unknown builtin Memory.\00" @.str5478 = private unnamed_addr constant [6 x i8] c"Color\00" @.str5479 = private unnamed_addr constant [23 x i8] c"unknown builtin Color.\00" @.str5480 = private unnamed_addr constant [5 x i8] c"Time\00" @.str5481 = private unnamed_addr constant [22 x i8] c"unknown builtin Time.\00" @.str5482 = private unnamed_addr constant [5 x i8] c"Hash\00" @.str5483 = private unnamed_addr constant [22 x i8] c"unknown builtin Hash.\00" @.str5484 = private unnamed_addr constant [7 x i8] c"Crypto\00" @.str5485 = private unnamed_addr constant [24 x i8] c"unknown builtin Crypto.\00" @.str5486 = private unnamed_addr constant [5 x i8] c"Uuid\00" @.str5487 = private unnamed_addr constant [22 x i8] c"unknown builtin Uuid.\00" @.str5488 = private unnamed_addr constant [6 x i8] c"Noise\00" @.str5489 = private unnamed_addr constant [23 x i8] c"unknown builtin Noise.\00" @.str5490 = private unnamed_addr constant [4 x i8] c"Log\00" @.str5491 = private unnamed_addr constant [21 x i8] c"unknown builtin Log.\00" @.str5492 = private unnamed_addr constant [3 x i8] c"Os\00" @.str5493 = private unnamed_addr constant [20 x i8] c"unknown builtin Os.\00" @.str5494 = private unnamed_addr constant [8 x i8] c"Unicode\00" @.str5495 = private unnamed_addr constant [25 x i8] c"unknown builtin Unicode.\00" @.str5496 = private unnamed_addr constant [3 x i8] c"Fs\00" @.str5497 = private unnamed_addr constant [20 x i8] c"unknown builtin Fs.\00" @.str5498 = private unnamed_addr constant [5 x i8] c"Path\00" @.str5499 = private unnamed_addr constant [22 x i8] c"unknown builtin Path.\00" @.str5500 = private unnamed_addr constant [5 x i8] c"Mime\00" @.str5501 = private unnamed_addr constant [22 x i8] c"unknown builtin Mime.\00" @.str5502 = private unnamed_addr constant [7 x i8] c"Vector\00" @.str5503 = private unnamed_addr constant [24 x i8] c"unknown builtin Vector.\00" @.str5504 = private unnamed_addr constant [9 x i8] c"Duration\00" @.str5505 = private unnamed_addr constant [26 x i8] c"unknown builtin Duration.\00" @.str5506 = private unnamed_addr constant [5 x i8] c"Date\00" @.str5507 = private unnamed_addr constant [22 x i8] c"unknown builtin Date.\00" @.str5508 = private unnamed_addr constant [9 x i8] c"DateTime\00" @.str5509 = private unnamed_addr constant [26 x i8] c"unknown builtin DateTime.\00" @.str5510 = private unnamed_addr constant [6 x i8] c"Clock\00" @.str5511 = private unnamed_addr constant [23 x i8] c"unknown builtin Clock.\00" @.str5512 = private unnamed_addr constant [7 x i8] c"Screen\00" @.str5513 = private unnamed_addr constant [6 x i8] c"clear\00" @.str5514 = private unnamed_addr constant [6 x i8] c"clear\00" @.str5515 = private unnamed_addr constant [6 x i8] c"color\00" @.str5516 = private unnamed_addr constant [15 x i8] c"fill_rectangle\00" @.str5517 = private unnamed_addr constant [10 x i8] c"fill_rect\00" @.str5518 = private unnamed_addr constant [2 x i8] c"x\00" @.str5519 = private unnamed_addr constant [2 x i8] c"y\00" @.str5520 = private unnamed_addr constant [6 x i8] c"width\00" @.str5521 = private unnamed_addr constant [7 x i8] c"height\00" @.str5522 = private unnamed_addr constant [6 x i8] c"color\00" @.str5523 = private unnamed_addr constant [15 x i8] c"draw_rectangle\00" @.str5524 = private unnamed_addr constant [11 x i8] c"frame_rect\00" @.str5525 = private unnamed_addr constant [2 x i8] c"x\00" @.str5526 = private unnamed_addr constant [2 x i8] c"y\00" @.str5527 = private unnamed_addr constant [6 x i8] c"width\00" @.str5528 = private unnamed_addr constant [7 x i8] c"height\00" @.str5529 = private unnamed_addr constant [6 x i8] c"color\00" @.str5530 = private unnamed_addr constant [10 x i8] c"put_pixel\00" @.str5531 = private unnamed_addr constant [7 x i8] c"put_px\00" @.str5532 = private unnamed_addr constant [2 x i8] c"x\00" @.str5533 = private unnamed_addr constant [2 x i8] c"y\00" @.str5534 = private unnamed_addr constant [6 x i8] c"color\00" @.str5535 = private unnamed_addr constant [10 x i8] c"draw_text\00" @.str5536 = private unnamed_addr constant [5 x i8] c"text\00" @.str5537 = private unnamed_addr constant [2 x i8] c"x\00" @.str5538 = private unnamed_addr constant [2 x i8] c"y\00" @.str5539 = private unnamed_addr constant [5 x i8] c"text\00" @.str5540 = private unnamed_addr constant [6 x i8] c"color\00" @.str5541 = private unnamed_addr constant [6 x i8] c"scale\00" @.str5542 = private unnamed_addr constant [12 x i8] c"draw_number\00" @.str5543 = private unnamed_addr constant [9 x i8] c"text_int\00" @.str5544 = private unnamed_addr constant [2 x i8] c"x\00" @.str5545 = private unnamed_addr constant [2 x i8] c"y\00" @.str5546 = private unnamed_addr constant [6 x i8] c"value\00" @.str5547 = private unnamed_addr constant [6 x i8] c"color\00" @.str5548 = private unnamed_addr constant [6 x i8] c"scale\00" @.str5549 = private unnamed_addr constant [5 x i8] c"show\00" @.str5550 = private unnamed_addr constant [8 x i8] c"present\00" @.str5551 = private unnamed_addr constant [6 x i8] c"width\00" @.str5552 = private unnamed_addr constant [9 x i8] c"screen_w\00" @.str5553 = private unnamed_addr constant [7 x i8] c"height\00" @.str5554 = private unnamed_addr constant [9 x i8] c"screen_h\00" @.str5555 = private unnamed_addr constant [7 x i8] c"status\00" @.str5556 = private unnamed_addr constant [7 x i8] c"status\00" @.str5557 = private unnamed_addr constant [5 x i8] c"text\00" @.str5558 = private unnamed_addr constant [5 x i8] c"line\00" @.str5559 = private unnamed_addr constant [5 x i8] c"line\00" @.str5560 = private unnamed_addr constant [3 x i8] c"x1\00" @.str5561 = private unnamed_addr constant [3 x i8] c"y1\00" @.str5562 = private unnamed_addr constant [3 x i8] c"x2\00" @.str5563 = private unnamed_addr constant [3 x i8] c"y2\00" @.str5564 = private unnamed_addr constant [6 x i8] c"color\00" @.str5565 = private unnamed_addr constant [7 x i8] c"circle\00" @.str5566 = private unnamed_addr constant [7 x i8] c"circle\00" @.str5567 = private unnamed_addr constant [2 x i8] c"x\00" @.str5568 = private unnamed_addr constant [2 x i8] c"y\00" @.str5569 = private unnamed_addr constant [7 x i8] c"radius\00" @.str5570 = private unnamed_addr constant [6 x i8] c"color\00" @.str5571 = private unnamed_addr constant [12 x i8] c"fill_circle\00" @.str5572 = private unnamed_addr constant [12 x i8] c"fill_circle\00" @.str5573 = private unnamed_addr constant [2 x i8] c"x\00" @.str5574 = private unnamed_addr constant [2 x i8] c"y\00" @.str5575 = private unnamed_addr constant [7 x i8] c"radius\00" @.str5576 = private unnamed_addr constant [6 x i8] c"color\00" @.str5577 = private unnamed_addr constant [9 x i8] c"triangle\00" @.str5578 = private unnamed_addr constant [9 x i8] c"triangle\00" @.str5579 = private unnamed_addr constant [3 x i8] c"x1\00" @.str5580 = private unnamed_addr constant [3 x i8] c"y1\00" @.str5581 = private unnamed_addr constant [3 x i8] c"x2\00" @.str5582 = private unnamed_addr constant [3 x i8] c"y2\00" @.str5583 = private unnamed_addr constant [3 x i8] c"x3\00" @.str5584 = private unnamed_addr constant [3 x i8] c"y3\00" @.str5585 = private unnamed_addr constant [6 x i8] c"color\00" @.str5586 = private unnamed_addr constant [14 x i8] c"fill_triangle\00" @.str5587 = private unnamed_addr constant [14 x i8] c"fill_triangle\00" @.str5588 = private unnamed_addr constant [3 x i8] c"x1\00" @.str5589 = private unnamed_addr constant [3 x i8] c"y1\00" @.str5590 = private unnamed_addr constant [3 x i8] c"x2\00" @.str5591 = private unnamed_addr constant [3 x i8] c"y2\00" @.str5592 = private unnamed_addr constant [3 x i8] c"x3\00" @.str5593 = private unnamed_addr constant [3 x i8] c"y3\00" @.str5594 = private unnamed_addr constant [6 x i8] c"color\00" @.str5595 = private unnamed_addr constant [7 x i8] c"sprite\00" @.str5596 = private unnamed_addr constant [12 x i8] c"draw_sprite\00" @.str5597 = private unnamed_addr constant [3 x i8] c"id\00" @.str5598 = private unnamed_addr constant [2 x i8] c"x\00" @.str5599 = private unnamed_addr constant [2 x i8] c"y\00" @.str5600 = private unnamed_addr constant [14 x i8] c"sprite_scaled\00" @.str5601 = private unnamed_addr constant [19 x i8] c"draw_sprite_scaled\00" @.str5602 = private unnamed_addr constant [3 x i8] c"id\00" @.str5603 = private unnamed_addr constant [2 x i8] c"x\00" @.str5604 = private unnamed_addr constant [2 x i8] c"y\00" @.str5605 = private unnamed_addr constant [6 x i8] c"scale\00" @.str5606 = private unnamed_addr constant [5 x i8] c"oval\00" @.str5607 = private unnamed_addr constant [5 x i8] c"oval\00" @.str5608 = private unnamed_addr constant [2 x i8] c"x\00" @.str5609 = private unnamed_addr constant [2 x i8] c"y\00" @.str5610 = private unnamed_addr constant [3 x i8] c"rx\00" @.str5611 = private unnamed_addr constant [3 x i8] c"ry\00" @.str5612 = private unnamed_addr constant [6 x i8] c"color\00" @.str5613 = private unnamed_addr constant [7 x i8] c"camera\00" @.str5614 = private unnamed_addr constant [7 x i8] c"camera\00" @.str5615 = private unnamed_addr constant [2 x i8] c"x\00" @.str5616 = private unnamed_addr constant [2 x i8] c"y\00" @.str5617 = private unnamed_addr constant [5 x i8] c"clip\00" @.str5618 = private unnamed_addr constant [5 x i8] c"clip\00" @.str5619 = private unnamed_addr constant [2 x i8] c"x\00" @.str5620 = private unnamed_addr constant [2 x i8] c"y\00" @.str5621 = private unnamed_addr constant [6 x i8] c"width\00" @.str5622 = private unnamed_addr constant [7 x i8] c"height\00" @.str5623 = private unnamed_addr constant [11 x i8] c"clip_reset\00" @.str5624 = private unnamed_addr constant [11 x i8] c"clip_reset\00" @.str5625 = private unnamed_addr constant [11 x i8] c"blend_mode\00" @.str5626 = private unnamed_addr constant [11 x i8] c"blend_mode\00" @.str5627 = private unnamed_addr constant [5 x i8] c"mode\00" @.str5628 = private unnamed_addr constant [13 x i8] c"measure_text\00" @.str5629 = private unnamed_addr constant [13 x i8] c"measure_text\00" @.str5630 = private unnamed_addr constant [5 x i8] c"text\00" @.str5631 = private unnamed_addr constant [6 x i8] c"pixel\00" @.str5632 = private unnamed_addr constant [7 x i8] c"get_px\00" @.str5633 = private unnamed_addr constant [2 x i8] c"x\00" @.str5634 = private unnamed_addr constant [2 x i8] c"y\00" @.str5635 = private unnamed_addr constant [7 x i8] c"Camera\00" @.str5636 = private unnamed_addr constant [4 x i8] c"set\00" @.str5637 = private unnamed_addr constant [7 x i8] c"camera\00" @.str5638 = private unnamed_addr constant [2 x i8] c"x\00" @.str5639 = private unnamed_addr constant [2 x i8] c"y\00" @.str5640 = private unnamed_addr constant [7 x i8] c"follow\00" @.str5641 = private unnamed_addr constant [14 x i8] c"camera_follow\00" @.str5642 = private unnamed_addr constant [2 x i8] c"x\00" @.str5643 = private unnamed_addr constant [2 x i8] c"y\00" @.str5644 = private unnamed_addr constant [5 x i8] c"lerp\00" @.str5645 = private unnamed_addr constant [6 x i8] c"shake\00" @.str5646 = private unnamed_addr constant [13 x i8] c"camera_shake\00" @.str5647 = private unnamed_addr constant [7 x i8] c"amount\00" @.str5648 = private unnamed_addr constant [4 x i8] c"Map\00" @.str5649 = private unnamed_addr constant [5 x i8] c"size\00" @.str5650 = private unnamed_addr constant [9 x i8] c"map_size\00" @.str5651 = private unnamed_addr constant [6 x i8] c"width\00" @.str5652 = private unnamed_addr constant [7 x i8] c"height\00" @.str5653 = private unnamed_addr constant [4 x i8] c"row\00" @.str5654 = private unnamed_addr constant [8 x i8] c"map_row\00" @.str5655 = private unnamed_addr constant [2 x i8] c"y\00" @.str5656 = private unnamed_addr constant [6 x i8] c"cells\00" @.str5657 = private unnamed_addr constant [5 x i8] c"tile\00" @.str5658 = private unnamed_addr constant [5 x i8] c"tile\00" @.str5659 = private unnamed_addr constant [2 x i8] c"x\00" @.str5660 = private unnamed_addr constant [2 x i8] c"y\00" @.str5661 = private unnamed_addr constant [7 x i8] c"Random\00" @.str5662 = private unnamed_addr constant [6 x i8] c"range\00" @.str5663 = private unnamed_addr constant [10 x i8] c"rng_range\00" @.str5664 = private unnamed_addr constant [4 x i8] c"low\00" @.str5665 = private unnamed_addr constant [5 x i8] c"high\00" @.str5666 = private unnamed_addr constant [7 x i8] c"chance\00" @.str5667 = private unnamed_addr constant [11 x i8] c"rng_chance\00" @.str5668 = private unnamed_addr constant [8 x i8] c"percent\00" @.str5669 = private unnamed_addr constant [5 x i8] c"seed\00" @.str5670 = private unnamed_addr constant [5 x i8] c"seed\00" @.str5671 = private unnamed_addr constant [6 x i8] c"value\00" @.str5672 = private unnamed_addr constant [6 x i8] c"value\00" @.str5673 = private unnamed_addr constant [10 x i8] c"rng_value\00" @.str5674 = private unnamed_addr constant [4 x i8] c"int\00" @.str5675 = private unnamed_addr constant [8 x i8] c"rng_int\00" @.str5676 = private unnamed_addr constant [4 x i8] c"max\00" @.str5677 = private unnamed_addr constant [5 x i8] c"sign\00" @.str5678 = private unnamed_addr constant [9 x i8] c"rng_sign\00" @.str5679 = private unnamed_addr constant [6 x i8] c"Input\00" @.str5680 = private unnamed_addr constant [4 x i8] c"key\00" @.str5681 = private unnamed_addr constant [4 x i8] c"key\00" @.str5682 = private unnamed_addr constant [6 x i8] c"World\00" @.str5683 = private unnamed_addr constant [4 x i8] c"get\00" @.str5684 = private unnamed_addr constant [10 x i8] c"world_get\00" @.str5685 = private unnamed_addr constant [4 x i8] c"set\00" @.str5686 = private unnamed_addr constant [10 x i8] c"world_set\00" @.str5687 = private unnamed_addr constant [4 x i8] c"has\00" @.str5688 = private unnamed_addr constant [10 x i8] c"world_has\00" @.str5689 = private unnamed_addr constant [6 x i8] c"count\00" @.str5690 = private unnamed_addr constant [12 x i8] c"world_count\00" @.str5691 = private unnamed_addr constant [5 x i8] c"size\00" @.str5692 = private unnamed_addr constant [11 x i8] c"world_size\00" @.str5693 = private unnamed_addr constant [6 x i8] c"spawn\00" @.str5694 = private unnamed_addr constant [12 x i8] c"world_spawn\00" @.str5695 = private unnamed_addr constant [5 x i8] c"save\00" @.str5696 = private unnamed_addr constant [11 x i8] c"world_save\00" @.str5697 = private unnamed_addr constant [5 x i8] c"load\00" @.str5698 = private unnamed_addr constant [11 x i8] c"world_load\00" @.str5699 = private unnamed_addr constant [8 x i8] c"prop_id\00" @.str5700 = private unnamed_addr constant [14 x i8] c"world_prop_id\00" @.str5701 = private unnamed_addr constant [9 x i8] c"field_id\00" @.str5702 = private unnamed_addr constant [15 x i8] c"world_field_id\00" @.str5703 = private unnamed_addr constant [9 x i8] c"model_id\00" @.str5704 = private unnamed_addr constant [15 x i8] c"world_model_id\00" @.str5705 = private unnamed_addr constant [5 x i8] c"kind\00" @.str5706 = private unnamed_addr constant [11 x i8] c"world_kind\00" @.str5707 = private unnamed_addr constant [14 x i8] c"register_prop\00" @.str5708 = private unnamed_addr constant [20 x i8] c"world_register_prop\00" @.str5709 = private unnamed_addr constant [7 x i8] c"attach\00" @.str5710 = private unnamed_addr constant [17 x i8] c"world_attach_dyn\00" @.str5711 = private unnamed_addr constant [7 x i8] c"detach\00" @.str5712 = private unnamed_addr constant [17 x i8] c"world_detach_dyn\00" @.str5713 = private unnamed_addr constant [11 x i8] c"query_next\00" @.str5714 = private unnamed_addr constant [17 x i8] c"world_query_next\00" @.str5715 = private unnamed_addr constant [8 x i8] c"Network\00" @.str5716 = private unnamed_addr constant [5 x i8] c"send\00" @.str5717 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str5718 = private unnamed_addr constant [5 x i8] c"poll\00" @.str5719 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str5720 = private unnamed_addr constant [10 x i8] c"serialize\00" @.str5721 = private unnamed_addr constant [10 x i8] c"serialize\00" @.str5722 = private unnamed_addr constant [6 x i8] c"apply\00" @.str5723 = private unnamed_addr constant [6 x i8] c"apply\00" @.str5724 = private unnamed_addr constant [6 x i8] c"owner\00" @.str5725 = private unnamed_addr constant [6 x i8] c"owner\00" @.str5726 = private unnamed_addr constant [10 x i8] c"set_owner\00" @.str5727 = private unnamed_addr constant [10 x i8] c"set_owner\00" @.str5728 = private unnamed_addr constant [10 x i8] c"is_server\00" @.str5729 = private unnamed_addr constant [10 x i8] c"is_server\00" @.str5730 = private unnamed_addr constant [9 x i8] c"is_owner\00" @.str5731 = private unnamed_addr constant [9 x i8] c"is_owner\00" @.str5732 = private unnamed_addr constant [9 x i8] c"local_id\00" @.str5733 = private unnamed_addr constant [9 x i8] c"local_id\00" @.str5734 = private unnamed_addr constant [7 x i8] c"System\00" @.str5735 = private unnamed_addr constant [4 x i8] c"run\00" @.str5736 = private unnamed_addr constant [4 x i8] c"run\00" @.str5737 = private unnamed_addr constant [10 x i8] c"read_char\00" @.str5738 = private unnamed_addr constant [10 x i8] c"read_char\00" @.str5739 = private unnamed_addr constant [10 x i8] c"file_open\00" @.str5740 = private unnamed_addr constant [10 x i8] c"file_open\00" @.str5741 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str5742 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str5743 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str5744 = private unnamed_addr constant [11 x i8] c"file_write\00" @.str5745 = private unnamed_addr constant [10 x i8] c"file_seek\00" @.str5746 = private unnamed_addr constant [10 x i8] c"file_seek\00" @.str5747 = private unnamed_addr constant [10 x i8] c"file_tell\00" @.str5748 = private unnamed_addr constant [10 x i8] c"file_tell\00" @.str5749 = private unnamed_addr constant [11 x i8] c"file_close\00" @.str5750 = private unnamed_addr constant [11 x i8] c"file_close\00" @.str5751 = private unnamed_addr constant [5 x i8] c"Save\00" @.str5752 = private unnamed_addr constant [6 x i8] c"write\00" @.str5753 = private unnamed_addr constant [5 x i8] c"save\00" @.str5754 = private unnamed_addr constant [5 x i8] c"read\00" @.str5755 = private unnamed_addr constant [5 x i8] c"load\00" @.str5756 = private unnamed_addr constant [6 x i8] c"Regex\00" @.str5757 = private unnamed_addr constant [8 x i8] c"compile\00" @.str5758 = private unnamed_addr constant [14 x i8] c"regex_compile\00" @.str5759 = private unnamed_addr constant [8 x i8] c"pattern\00" @.str5760 = private unnamed_addr constant [6 x i8] c"valid\00" @.str5761 = private unnamed_addr constant [12 x i8] c"regex_valid\00" @.str5762 = private unnamed_addr constant [8 x i8] c"pattern\00" @.str5763 = private unnamed_addr constant [8 x i8] c"matches\00" @.str5764 = private unnamed_addr constant [14 x i8] c"regex_matches\00" @.str5765 = private unnamed_addr constant [5 x i8] c"text\00" @.str5766 = private unnamed_addr constant [8 x i8] c"pattern\00" @.str5767 = private unnamed_addr constant [5 x i8] c"test\00" @.str5768 = private unnamed_addr constant [11 x i8] c"regex_test\00" @.str5769 = private unnamed_addr constant [5 x i8] c"text\00" @.str5770 = private unnamed_addr constant [3 x i8] c"re\00" @.str5771 = private unnamed_addr constant [5 x i8] c"find\00" @.str5772 = private unnamed_addr constant [11 x i8] c"regex_find\00" @.str5773 = private unnamed_addr constant [5 x i8] c"text\00" @.str5774 = private unnamed_addr constant [8 x i8] c"pattern\00" @.str5775 = private unnamed_addr constant [5 x i8] c"exec\00" @.str5776 = private unnamed_addr constant [11 x i8] c"regex_exec\00" @.str5777 = private unnamed_addr constant [5 x i8] c"text\00" @.str5778 = private unnamed_addr constant [3 x i8] c"re\00" @.str5779 = private unnamed_addr constant [5 x i8] c"next\00" @.str5780 = private unnamed_addr constant [11 x i8] c"regex_next\00" @.str5781 = private unnamed_addr constant [5 x i8] c"text\00" @.str5782 = private unnamed_addr constant [3 x i8] c"re\00" @.str5783 = private unnamed_addr constant [5 x i8] c"from\00" @.str5784 = private unnamed_addr constant [8 x i8] c"replace\00" @.str5785 = private unnamed_addr constant [14 x i8] c"regex_replace\00" @.str5786 = private unnamed_addr constant [5 x i8] c"text\00" @.str5787 = private unnamed_addr constant [8 x i8] c"pattern\00" @.str5788 = private unnamed_addr constant [12 x i8] c"replacement\00" @.str5789 = private unnamed_addr constant [6 x i8] c"group\00" @.str5790 = private unnamed_addr constant [12 x i8] c"regex_group\00" @.str5791 = private unnamed_addr constant [6 x i8] c"match\00" @.str5792 = private unnamed_addr constant [2 x i8] c"n\00" @.str5793 = private unnamed_addr constant [12 x i8] c"group_count\00" @.str5794 = private unnamed_addr constant [18 x i8] c"regex_group_count\00" @.str5795 = private unnamed_addr constant [6 x i8] c"match\00" @.str5796 = private unnamed_addr constant [6 x i8] c"start\00" @.str5797 = private unnamed_addr constant [12 x i8] c"regex_start\00" @.str5798 = private unnamed_addr constant [6 x i8] c"match\00" @.str5799 = private unnamed_addr constant [2 x i8] c"n\00" @.str5800 = private unnamed_addr constant [4 x i8] c"end\00" @.str5801 = private unnamed_addr constant [10 x i8] c"regex_end\00" @.str5802 = private unnamed_addr constant [6 x i8] c"match\00" @.str5803 = private unnamed_addr constant [2 x i8] c"n\00" @.str5804 = private unnamed_addr constant [3 x i8] c"ok\00" @.str5805 = private unnamed_addr constant [9 x i8] c"regex_ok\00" @.str5806 = private unnamed_addr constant [6 x i8] c"match\00" @.str5807 = private unnamed_addr constant [5 x i8] c"Grid\00" @.str5808 = private unnamed_addr constant [5 x i8] c"line\00" @.str5809 = private unnamed_addr constant [10 x i8] c"grid_line\00" @.str5810 = private unnamed_addr constant [3 x i8] c"x0\00" @.str5811 = private unnamed_addr constant [3 x i8] c"y0\00" @.str5812 = private unnamed_addr constant [3 x i8] c"x1\00" @.str5813 = private unnamed_addr constant [3 x i8] c"y1\00" @.str5814 = private unnamed_addr constant [8 x i8] c"blocked\00" @.str5815 = private unnamed_addr constant [13 x i8] c"grid_blocked\00" @.str5816 = private unnamed_addr constant [2 x i8] c"x\00" @.str5817 = private unnamed_addr constant [2 x i8] c"y\00" @.str5818 = private unnamed_addr constant [5 x i8] c"wall\00" @.str5819 = private unnamed_addr constant [14 x i8] c"line_of_sight\00" @.str5820 = private unnamed_addr constant [19 x i8] c"grid_line_of_sight\00" @.str5821 = private unnamed_addr constant [3 x i8] c"x0\00" @.str5822 = private unnamed_addr constant [3 x i8] c"y0\00" @.str5823 = private unnamed_addr constant [3 x i8] c"x1\00" @.str5824 = private unnamed_addr constant [3 x i8] c"y1\00" @.str5825 = private unnamed_addr constant [5 x i8] c"wall\00" @.str5826 = private unnamed_addr constant [6 x i8] c"flood\00" @.str5827 = private unnamed_addr constant [11 x i8] c"grid_flood\00" @.str5828 = private unnamed_addr constant [2 x i8] c"x\00" @.str5829 = private unnamed_addr constant [2 x i8] c"y\00" @.str5830 = private unnamed_addr constant [5 x i8] c"wall\00" @.str5831 = private unnamed_addr constant [7 x i8] c"a_star\00" @.str5832 = private unnamed_addr constant [12 x i8] c"path_a_star\00" @.str5833 = private unnamed_addr constant [3 x i8] c"x0\00" @.str5834 = private unnamed_addr constant [3 x i8] c"y0\00" @.str5835 = private unnamed_addr constant [3 x i8] c"x1\00" @.str5836 = private unnamed_addr constant [3 x i8] c"y1\00" @.str5837 = private unnamed_addr constant [5 x i8] c"wall\00" @.str5838 = private unnamed_addr constant [6 x i8] c"Light\00" @.str5839 = private unnamed_addr constant [8 x i8] c"ambient\00" @.str5840 = private unnamed_addr constant [14 x i8] c"light_ambient\00" @.str5841 = private unnamed_addr constant [6 x i8] c"color\00" @.str5842 = private unnamed_addr constant [6 x i8] c"point\00" @.str5843 = private unnamed_addr constant [12 x i8] c"light_point\00" @.str5844 = private unnamed_addr constant [2 x i8] c"x\00" @.str5845 = private unnamed_addr constant [2 x i8] c"y\00" @.str5846 = private unnamed_addr constant [7 x i8] c"radius\00" @.str5847 = private unnamed_addr constant [6 x i8] c"color\00" @.str5848 = private unnamed_addr constant [7 x i8] c"energy\00" @.str5849 = private unnamed_addr constant [8 x i8] c"occlude\00" @.str5850 = private unnamed_addr constant [14 x i8] c"light_occlude\00" @.str5851 = private unnamed_addr constant [2 x i8] c"x\00" @.str5852 = private unnamed_addr constant [2 x i8] c"y\00" @.str5853 = private unnamed_addr constant [6 x i8] c"width\00" @.str5854 = private unnamed_addr constant [7 x i8] c"height\00" @.str5855 = private unnamed_addr constant [16 x i8] c"clear_occluders\00" @.str5856 = private unnamed_addr constant [22 x i8] c"light_clear_occluders\00" @.str5857 = private unnamed_addr constant [6 x i8] c"Query\00" @.str5858 = private unnamed_addr constant [6 x i8] c"count\00" @.str5859 = private unnamed_addr constant [12 x i8] c"query_count\00" @.str5860 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5861 = private unnamed_addr constant [6 x i8] c"first\00" @.str5862 = private unnamed_addr constant [12 x i8] c"query_first\00" @.str5863 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5864 = private unnamed_addr constant [8 x i8] c"nearest\00" @.str5865 = private unnamed_addr constant [14 x i8] c"query_nearest\00" @.str5866 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5867 = private unnamed_addr constant [4 x i8] c"pos\00" @.str5868 = private unnamed_addr constant [8 x i8] c"x_field\00" @.str5869 = private unnamed_addr constant [8 x i8] c"y_field\00" @.str5870 = private unnamed_addr constant [2 x i8] c"x\00" @.str5871 = private unnamed_addr constant [2 x i8] c"y\00" @.str5872 = private unnamed_addr constant [7 x i8] c"within\00" @.str5873 = private unnamed_addr constant [13 x i8] c"query_within\00" @.str5874 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5875 = private unnamed_addr constant [4 x i8] c"pos\00" @.str5876 = private unnamed_addr constant [2 x i8] c"x\00" @.str5877 = private unnamed_addr constant [2 x i8] c"y\00" @.str5878 = private unnamed_addr constant [7 x i8] c"radius\00" @.str5879 = private unnamed_addr constant [8 x i8] c"x_field\00" @.str5880 = private unnamed_addr constant [8 x i8] c"y_field\00" @.str5881 = private unnamed_addr constant [8 x i8] c"Reflect\00" @.str5882 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5883 = private unnamed_addr constant [14 x i8] c"world_prop_id\00" @.str5884 = private unnamed_addr constant [5 x i8] c"name\00" @.str5885 = private unnamed_addr constant [6 x i8] c"field\00" @.str5886 = private unnamed_addr constant [15 x i8] c"world_field_id\00" @.str5887 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5888 = private unnamed_addr constant [5 x i8] c"name\00" @.str5889 = private unnamed_addr constant [11 x i8] c"prop_count\00" @.str5890 = private unnamed_addr constant [17 x i8] c"world_prop_count\00" @.str5891 = private unnamed_addr constant [10 x i8] c"prop_name\00" @.str5892 = private unnamed_addr constant [16 x i8] c"world_prop_name\00" @.str5893 = private unnamed_addr constant [6 x i8] c"index\00" @.str5894 = private unnamed_addr constant [12 x i8] c"field_count\00" @.str5895 = private unnamed_addr constant [18 x i8] c"world_field_count\00" @.str5896 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5897 = private unnamed_addr constant [11 x i8] c"field_name\00" @.str5898 = private unnamed_addr constant [17 x i8] c"world_field_name\00" @.str5899 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5900 = private unnamed_addr constant [6 x i8] c"index\00" @.str5901 = private unnamed_addr constant [11 x i8] c"field_type\00" @.str5902 = private unnamed_addr constant [17 x i8] c"world_field_type\00" @.str5903 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5904 = private unnamed_addr constant [6 x i8] c"index\00" @.str5905 = private unnamed_addr constant [4 x i8] c"get\00" @.str5906 = private unnamed_addr constant [10 x i8] c"world_get\00" @.str5907 = private unnamed_addr constant [7 x i8] c"entity\00" @.str5908 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5909 = private unnamed_addr constant [6 x i8] c"field\00" @.str5910 = private unnamed_addr constant [4 x i8] c"set\00" @.str5911 = private unnamed_addr constant [10 x i8] c"world_set\00" @.str5912 = private unnamed_addr constant [7 x i8] c"entity\00" @.str5913 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5914 = private unnamed_addr constant [6 x i8] c"field\00" @.str5915 = private unnamed_addr constant [6 x i8] c"value\00" @.str5916 = private unnamed_addr constant [4 x i8] c"has\00" @.str5917 = private unnamed_addr constant [10 x i8] c"world_has\00" @.str5918 = private unnamed_addr constant [7 x i8] c"entity\00" @.str5919 = private unnamed_addr constant [5 x i8] c"prop\00" @.str5920 = private unnamed_addr constant [5 x i8] c"kind\00" @.str5921 = private unnamed_addr constant [11 x i8] c"world_kind\00" @.str5922 = private unnamed_addr constant [7 x i8] c"entity\00" @.str5923 = private unnamed_addr constant [6 x i8] c"model\00" @.str5924 = private unnamed_addr constant [15 x i8] c"world_model_id\00" @.str5925 = private unnamed_addr constant [5 x i8] c"name\00" @.str5926 = private unnamed_addr constant [17 x i8] c"unknown builtin \00" @.str5927 = private unnamed_addr constant [2 x i8] c".\00" @.str5928 = private unnamed_addr constant [30 x i8] c"call target is not a function\00" @.str5929 = private unnamed_addr constant [5 x i8] c"self\00" @.str5930 = private unnamed_addr constant [2 x i8] c"0\00" @.str5931 = private unnamed_addr constant [7 x i8] c"entity\00" @.str5932 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str5933 = private unnamed_addr constant [7 x i8] c"entity\00" @.str5934 = private unnamed_addr constant [4 x i8] c"key\00" @.str5935 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00" @.str5936 = private unnamed_addr constant [4 x i8] c"int\00" @.str5937 = private unnamed_addr constant [5 x i8] c"save\00" @.str5938 = private unnamed_addr constant [23 x i8] c" call void @L_save()\0A\00" @.str5939 = private unnamed_addr constant [2 x i8] c"0\00" @.str5940 = private unnamed_addr constant [5 x i8] c"void\00" @.str5941 = private unnamed_addr constant [9 x i8] c"ui_build\00" @.str5942 = private unnamed_addr constant [25 x i8] c" call void @ui_build()\0A\00" @.str5943 = private unnamed_addr constant [2 x i8] c"0\00" @.str5944 = private unnamed_addr constant [5 x i8] c"void\00" @.str5945 = private unnamed_addr constant [5 x i8] c"load\00" @.str5946 = private unnamed_addr constant [19 x i8] c"call i32 @L_load()\00" @.str5947 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5948 = private unnamed_addr constant [11 x i8] c"world_size\00" @.str5949 = private unnamed_addr constant [25 x i8] c"call i32 @L_world_size()\00" @.str5950 = private unnamed_addr constant [4 x i8] c"int\00" @.str5951 = private unnamed_addr constant [11 x i8] c"world_save\00" @.str5952 = private unnamed_addr constant [28 x i8] c"call i32 @L_world_save(ptr \00" @.str5953 = private unnamed_addr constant [2 x i8] c")\00" @.str5954 = private unnamed_addr constant [4 x i8] c"int\00" @.str5955 = private unnamed_addr constant [11 x i8] c"world_load\00" @.str5956 = private unnamed_addr constant [31 x i8] c" call void @L_world_load(ptr \00" @.str5957 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5958 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5959 = private unnamed_addr constant [2 x i8] c"0\00" @.str5960 = private unnamed_addr constant [5 x i8] c"void\00" @.str5961 = private unnamed_addr constant [5 x i8] c"quit\00" @.str5962 = private unnamed_addr constant [31 x i8] c" store i32 0, ptr @L_running\0A\00" @.str5963 = private unnamed_addr constant [2 x i8] c"0\00" @.str5964 = private unnamed_addr constant [5 x i8] c"void\00" @.str5965 = private unnamed_addr constant [10 x i8] c"serialize\00" @.str5966 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_serialize(i32 \00" @.str5967 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5968 = private unnamed_addr constant [2 x i8] c")\00" @.str5969 = private unnamed_addr constant [4 x i8] c"int\00" @.str5970 = private unnamed_addr constant [6 x i8] c"apply\00" @.str5971 = private unnamed_addr constant [30 x i8] c" call void @ludic_apply(i32 \00" @.str5972 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str5973 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5974 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5975 = private unnamed_addr constant [2 x i8] c"0\00" @.str5976 = private unnamed_addr constant [5 x i8] c"void\00" @.str5977 = private unnamed_addr constant [10 x i8] c"sync_size\00" @.str5978 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_sync_size(i32 \00" @.str5979 = private unnamed_addr constant [2 x i8] c")\00" @.str5980 = private unnamed_addr constant [4 x i8] c"int\00" @.str5981 = private unnamed_addr constant [6 x i8] c"owner\00" @.str5982 = private unnamed_addr constant [23 x i8] c"call i32 @L_owner(i32 \00" @.str5983 = private unnamed_addr constant [2 x i8] c")\00" @.str5984 = private unnamed_addr constant [4 x i8] c"int\00" @.str5985 = private unnamed_addr constant [10 x i8] c"set_owner\00" @.str5986 = private unnamed_addr constant [30 x i8] c" call void @L_set_owner(i32 \00" @.str5987 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str5988 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str5989 = private unnamed_addr constant [2 x i8] c"0\00" @.str5990 = private unnamed_addr constant [5 x i8] c"void\00" @.str5991 = private unnamed_addr constant [9 x i8] c"is_owner\00" @.str5992 = private unnamed_addr constant [26 x i8] c"call i32 @L_is_owner(i32 \00" @.str5993 = private unnamed_addr constant [2 x i8] c")\00" @.str5994 = private unnamed_addr constant [5 x i8] c"bool\00" @.str5995 = private unnamed_addr constant [10 x i8] c"is_server\00" @.str5996 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_role\00" @.str5997 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str5998 = private unnamed_addr constant [4 x i8] c", 1\00" @.str5999 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str6000 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str6001 = private unnamed_addr constant [5 x i8] c"bool\00" @.str6002 = private unnamed_addr constant [9 x i8] c"local_id\00" @.str6003 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_localid\00" @.str6004 = private unnamed_addr constant [4 x i8] c"int\00" @.str6005 = private unnamed_addr constant [9 x i8] c"net_pump\00" @.str6006 = private unnamed_addr constant [27 x i8] c" call void @L_net_pump()\0A\00" @.str6007 = private unnamed_addr constant [2 x i8] c"0\00" @.str6008 = private unnamed_addr constant [5 x i8] c"void\00" @.str6009 = private unnamed_addr constant [11 x i8] c"tick_fixed\00" @.str6010 = private unnamed_addr constant [29 x i8] c" call void @L_tick_fixed()\0A\00" @.str6011 = private unnamed_addr constant [2 x i8] c"0\00" @.str6012 = private unnamed_addr constant [5 x i8] c"void\00" @.str6013 = private unnamed_addr constant [12 x i8] c"tick_render\00" @.str6014 = private unnamed_addr constant [30 x i8] c" call void @L_tick_render()\0A\00" @.str6015 = private unnamed_addr constant [2 x i8] c"0\00" @.str6016 = private unnamed_addr constant [5 x i8] c"void\00" @.str6017 = private unnamed_addr constant [9 x i8] c"set_role\00" @.str6018 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6019 = private unnamed_addr constant [15 x i8] c", ptr @L_role\0A\00" @.str6020 = private unnamed_addr constant [2 x i8] c"0\00" @.str6021 = private unnamed_addr constant [5 x i8] c"void\00" @.str6022 = private unnamed_addr constant [13 x i8] c"set_local_id\00" @.str6023 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6024 = private unnamed_addr constant [18 x i8] c", ptr @L_localid\0A\00" @.str6025 = private unnamed_addr constant [2 x i8] c"0\00" @.str6026 = private unnamed_addr constant [5 x i8] c"void\00" @.str6027 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str6028 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str6029 = private unnamed_addr constant [29 x i8] c" call void @L_net_send(i32 \00" @.str6030 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6031 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6032 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6033 = private unnamed_addr constant [2 x i8] c"0\00" @.str6034 = private unnamed_addr constant [5 x i8] c"void\00" @.str6035 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str6036 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str6037 = private unnamed_addr constant [26 x i8] c"call i32 @L_net_poll(ptr \00" @.str6038 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6039 = private unnamed_addr constant [2 x i8] c")\00" @.str6040 = private unnamed_addr constant [4 x i8] c"int\00" @.str6041 = private unnamed_addr constant [4 x i8] c"len\00" @.str6042 = private unnamed_addr constant [5 x i8] c"push\00" @.str6043 = private unnamed_addr constant [7 x i8] c"string\00" @.str6044 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6045 = private unnamed_addr constant [4 x i8] c"i64\00" @.str6046 = private unnamed_addr constant [27 x i8] c"call ptr @fn_long_str(i64 \00" @.str6047 = private unnamed_addr constant [2 x i8] c")\00" @.str6048 = private unnamed_addr constant [7 x i8] c"string\00" @.str6049 = private unnamed_addr constant [26 x i8] c"call ptr @fn_int_str(i32 \00" @.str6050 = private unnamed_addr constant [2 x i8] c")\00" @.str6051 = private unnamed_addr constant [7 x i8] c"string\00" @.str6052 = private unnamed_addr constant [6 x i8] c"print\00" @.str6053 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6054 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str6055 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6056 = private unnamed_addr constant [4 x i8] c"i64\00" @.str6057 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_long, i64 \00" @.str6058 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6059 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_int, i32 \00" @.str6060 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6061 = private unnamed_addr constant [2 x i8] c"0\00" @.str6062 = private unnamed_addr constant [5 x i8] c"void\00" @.str6063 = private unnamed_addr constant [6 x i8] c"bytes\00" @.str6064 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str6065 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str6066 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str6067 = private unnamed_addr constant [2 x i8] c")\00" @.str6068 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str6069 = private unnamed_addr constant [6 x i8] c"words\00" @.str6070 = private unnamed_addr constant [9 x i8] c"mul i32 \00" @.str6071 = private unnamed_addr constant [4 x i8] c", 4\00" @.str6072 = private unnamed_addr constant [10 x i8] c"zext i32 \00" @.str6073 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str6074 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" @.str6075 = private unnamed_addr constant [2 x i8] c")\00" @.str6076 = private unnamed_addr constant [6 x i8] c"words\00" @.str6077 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str6078 = private unnamed_addr constant [9 x i8] c"shl i32 \00" @.str6079 = private unnamed_addr constant [5 x i8] c", 16\00" @.str6080 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str6081 = private unnamed_addr constant [6 x i8] c"floor\00" @.str6082 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" @.str6083 = private unnamed_addr constant [5 x i8] c", 16\00" @.str6084 = private unnamed_addr constant [4 x i8] c"int\00" @.str6085 = private unnamed_addr constant [7 x i8] c"expect\00" @.str6086 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6087 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6088 = private unnamed_addr constant [2 x i8] c":\00" @.str6089 = private unnamed_addr constant [16 x i8] c": expect failed\00" @.str6090 = private unnamed_addr constant [1 x i8] c"\00" @.str6091 = private unnamed_addr constant [1 x i8] c"\00" @.str6092 = private unnamed_addr constant [2 x i8] c"0\00" @.str6093 = private unnamed_addr constant [5 x i8] c"void\00" @.str6094 = private unnamed_addr constant [10 x i8] c"expect_eq\00" @.str6095 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6096 = private unnamed_addr constant [3 x i8] c", \00" @.str6097 = private unnamed_addr constant [2 x i8] c":\00" @.str6098 = private unnamed_addr constant [19 x i8] c": expect_eq failed\00" @.str6099 = private unnamed_addr constant [2 x i8] c"0\00" @.str6100 = private unnamed_addr constant [5 x i8] c"void\00" @.str6101 = private unnamed_addr constant [12 x i8] c"expect_near\00" @.str6102 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str6103 = private unnamed_addr constant [3 x i8] c", \00" @.str6104 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str6105 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6106 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6107 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str6108 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6109 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6110 = private unnamed_addr constant [14 x i8] c"icmp sle i32 \00" @.str6111 = private unnamed_addr constant [3 x i8] c", \00" @.str6112 = private unnamed_addr constant [2 x i8] c":\00" @.str6113 = private unnamed_addr constant [21 x i8] c": expect_near failed\00" @.str6114 = private unnamed_addr constant [2 x i8] c"0\00" @.str6115 = private unnamed_addr constant [5 x i8] c"void\00" @.str6116 = private unnamed_addr constant [14 x i8] c"world_prop_id\00" @.str6117 = private unnamed_addr constant [29 x i8] c"call i32 @ludic_prop_id(ptr \00" @.str6118 = private unnamed_addr constant [2 x i8] c")\00" @.str6119 = private unnamed_addr constant [4 x i8] c"int\00" @.str6120 = private unnamed_addr constant [15 x i8] c"world_field_id\00" @.str6121 = private unnamed_addr constant [30 x i8] c"call i32 @ludic_field_id(i32 \00" @.str6122 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6123 = private unnamed_addr constant [2 x i8] c")\00" @.str6124 = private unnamed_addr constant [4 x i8] c"int\00" @.str6125 = private unnamed_addr constant [10 x i8] c"world_get\00" @.str6126 = private unnamed_addr constant [25 x i8] c"call i64 @ludic_get(i32 \00" @.str6127 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6128 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6129 = private unnamed_addr constant [2 x i8] c")\00" @.str6130 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" @.str6131 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str6132 = private unnamed_addr constant [4 x i8] c"int\00" @.str6133 = private unnamed_addr constant [10 x i8] c"world_set\00" @.str6134 = private unnamed_addr constant [10 x i8] c"sext i32 \00" @.str6135 = private unnamed_addr constant [8 x i8] c" to i64\00" @.str6136 = private unnamed_addr constant [28 x i8] c" call void @ludic_set(i32 \00" @.str6137 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6138 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6139 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str6140 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6141 = private unnamed_addr constant [2 x i8] c"0\00" @.str6142 = private unnamed_addr constant [5 x i8] c"void\00" @.str6143 = private unnamed_addr constant [10 x i8] c"world_has\00" @.str6144 = private unnamed_addr constant [25 x i8] c"call i32 @ludic_has(i32 \00" @.str6145 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6146 = private unnamed_addr constant [2 x i8] c")\00" @.str6147 = private unnamed_addr constant [4 x i8] c"int\00" @.str6148 = private unnamed_addr constant [12 x i8] c"world_count\00" @.str6149 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_entity_count()\00" @.str6150 = private unnamed_addr constant [4 x i8] c"int\00" @.str6151 = private unnamed_addr constant [11 x i8] c"world_kind\00" @.str6152 = private unnamed_addr constant [26 x i8] c"call i32 @ludic_kind(i32 \00" @.str6153 = private unnamed_addr constant [2 x i8] c")\00" @.str6154 = private unnamed_addr constant [4 x i8] c"int\00" @.str6155 = private unnamed_addr constant [15 x i8] c"world_model_id\00" @.str6156 = private unnamed_addr constant [30 x i8] c"call i32 @ludic_model_id(ptr \00" @.str6157 = private unnamed_addr constant [2 x i8] c")\00" @.str6158 = private unnamed_addr constant [4 x i8] c"int\00" @.str6159 = private unnamed_addr constant [17 x i8] c"world_query_next\00" @.str6160 = private unnamed_addr constant [32 x i8] c"call i32 @ludic_query_next(i32 \00" @.str6161 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6162 = private unnamed_addr constant [2 x i8] c")\00" @.str6163 = private unnamed_addr constant [4 x i8] c"int\00" @.str6164 = private unnamed_addr constant [20 x i8] c"world_register_prop\00" @.str6165 = private unnamed_addr constant [35 x i8] c"call i32 @ludic_register_prop(ptr \00" @.str6166 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6167 = private unnamed_addr constant [2 x i8] c")\00" @.str6168 = private unnamed_addr constant [4 x i8] c"int\00" @.str6169 = private unnamed_addr constant [17 x i8] c"world_attach_dyn\00" @.str6170 = private unnamed_addr constant [35 x i8] c" call void @ludic_attach_dyn(i32 \00" @.str6171 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6172 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6173 = private unnamed_addr constant [2 x i8] c"0\00" @.str6174 = private unnamed_addr constant [5 x i8] c"void\00" @.str6175 = private unnamed_addr constant [17 x i8] c"world_detach_dyn\00" @.str6176 = private unnamed_addr constant [35 x i8] c" call void @ludic_detach_dyn(i32 \00" @.str6177 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6178 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6179 = private unnamed_addr constant [2 x i8] c"0\00" @.str6180 = private unnamed_addr constant [5 x i8] c"void\00" @.str6181 = private unnamed_addr constant [12 x i8] c"world_spawn\00" @.str6182 = private unnamed_addr constant [27 x i8] c"call i32 @ludic_spawn(i32 \00" @.str6183 = private unnamed_addr constant [2 x i8] c")\00" @.str6184 = private unnamed_addr constant [4 x i8] c"int\00" @.str6185 = private unnamed_addr constant [17 x i8] c"world_prop_count\00" @.str6186 = private unnamed_addr constant [29 x i8] c"call i32 @ludic_prop_count()\00" @.str6187 = private unnamed_addr constant [4 x i8] c"int\00" @.str6188 = private unnamed_addr constant [16 x i8] c"world_prop_name\00" @.str6189 = private unnamed_addr constant [31 x i8] c"call ptr @ludic_prop_name(i32 \00" @.str6190 = private unnamed_addr constant [2 x i8] c")\00" @.str6191 = private unnamed_addr constant [7 x i8] c"string\00" @.str6192 = private unnamed_addr constant [18 x i8] c"world_field_count\00" @.str6193 = private unnamed_addr constant [33 x i8] c"call i32 @ludic_field_count(i32 \00" @.str6194 = private unnamed_addr constant [2 x i8] c")\00" @.str6195 = private unnamed_addr constant [4 x i8] c"int\00" @.str6196 = private unnamed_addr constant [17 x i8] c"world_field_name\00" @.str6197 = private unnamed_addr constant [32 x i8] c"call ptr @ludic_field_name(i32 \00" @.str6198 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6199 = private unnamed_addr constant [2 x i8] c")\00" @.str6200 = private unnamed_addr constant [7 x i8] c"string\00" @.str6201 = private unnamed_addr constant [17 x i8] c"world_field_type\00" @.str6202 = private unnamed_addr constant [32 x i8] c"call ptr @ludic_field_type(i32 \00" @.str6203 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6204 = private unnamed_addr constant [2 x i8] c")\00" @.str6205 = private unnamed_addr constant [7 x i8] c"string\00" @.str6206 = private unnamed_addr constant [3 x i8] c" \00" @.str6207 = private unnamed_addr constant [2 x i8] c"0\00" @.str6208 = private unnamed_addr constant [5 x i8] c"void\00" @.str6209 = private unnamed_addr constant [4 x i8] c" = \00" @.str6210 = private unnamed_addr constant [6 x i8] c"call \00" @.str6211 = private unnamed_addr constant [3 x i8] c" @\00" @.str6212 = private unnamed_addr constant [2 x i8] c"(\00" @.str6213 = private unnamed_addr constant [3 x i8] c", \00" @.str6214 = private unnamed_addr constant [2 x i8] c" \00" @.str6215 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6216 = private unnamed_addr constant [4 x i8] c"rt_\00" @.str6217 = private unnamed_addr constant [18 x i8] c"unknown function \00" @.str6218 = private unnamed_addr constant [3 x i8] c" \00" @.str6219 = private unnamed_addr constant [2 x i8] c"0\00" @.str6220 = private unnamed_addr constant [5 x i8] c"void\00" @.str6221 = private unnamed_addr constant [4 x i8] c" = \00" @.str6222 = private unnamed_addr constant [6 x i8] c"call \00" @.str6223 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str6224 = private unnamed_addr constant [2 x i8] c"(\00" @.str6225 = private unnamed_addr constant [3 x i8] c", \00" @.str6226 = private unnamed_addr constant [2 x i8] c" \00" @.str6227 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6228 = private unnamed_addr constant [2 x i8] c"0\00" @.str6229 = private unnamed_addr constant [4 x i8] c"int\00" @.str6230 = private unnamed_addr constant [4 x i8] c"int\00" @.str6231 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str6232 = private unnamed_addr constant [5 x i8] c"bool\00" @.str6233 = private unnamed_addr constant [5 x i8] c"null\00" @.str6234 = private unnamed_addr constant [8 x i8] c"pointer\00" @.str6235 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_slice(ptr \00" @.str6236 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6237 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str6238 = private unnamed_addr constant [2 x i8] c")\00" @.str6239 = private unnamed_addr constant [7 x i8] c"string\00" @.str6240 = private unnamed_addr constant [7 x i8] c"string\00" @.str6241 = private unnamed_addr constant [4 x i8] c"int\00" @.str6242 = private unnamed_addr constant [6 x i8] c"load \00" @.str6243 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" @.str6244 = private unnamed_addr constant [4 x i8] c"int\00" @.str6245 = private unnamed_addr constant [20 x i8] c"unknown identifier \00" @.str6246 = private unnamed_addr constant [6 x i8] c"Color\00" @.str6247 = private unnamed_addr constant [21 x i8] c"unknown color Color.\00" @.str6248 = private unnamed_addr constant [4 x i8] c"int\00" @.str6249 = private unnamed_addr constant [4 x i8] c"int\00" @.str6250 = private unnamed_addr constant [5 x i8] c"byte\00" @.str6251 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str6252 = private unnamed_addr constant [9 x i8] c"zext i8 \00" @.str6253 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str6254 = private unnamed_addr constant [4 x i8] c"int\00" @.str6255 = private unnamed_addr constant [4 x i8] c"i64\00" @.str6256 = private unnamed_addr constant [2 x i8] c"-\00" @.str6257 = private unnamed_addr constant [12 x i8] c"sub i64 0, \00" @.str6258 = private unnamed_addr constant [5 x i8] c"long\00" @.str6259 = private unnamed_addr constant [2 x i8] c"~\00" @.str6260 = private unnamed_addr constant [9 x i8] c"xor i64 \00" @.str6261 = private unnamed_addr constant [5 x i8] c", -1\00" @.str6262 = private unnamed_addr constant [5 x i8] c"long\00" @.str6263 = private unnamed_addr constant [2 x i8] c"-\00" @.str6264 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str6265 = private unnamed_addr constant [4 x i8] c"int\00" @.str6266 = private unnamed_addr constant [2 x i8] c"~\00" @.str6267 = private unnamed_addr constant [9 x i8] c"xor i32 \00" @.str6268 = private unnamed_addr constant [5 x i8] c", -1\00" @.str6269 = private unnamed_addr constant [4 x i8] c"int\00" @.str6270 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6271 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6272 = private unnamed_addr constant [9 x i8] c"zext i1 \00" @.str6273 = private unnamed_addr constant [8 x i8] c" to i32\00" @.str6274 = private unnamed_addr constant [5 x i8] c"bool\00" @.str6275 = private unnamed_addr constant [23 x i8] c"cannot emit expression\00" @.str6276 = private unnamed_addr constant [2 x i8] c"0\00" @.str6277 = private unnamed_addr constant [4 x i8] c"int\00" @.str6278 = private unnamed_addr constant [9 x i8] c" store \00" @.str6279 = private unnamed_addr constant [2 x i8] c" \00" @.str6280 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6281 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6282 = private unnamed_addr constant [2 x i8] c"0\00" @.str6283 = private unnamed_addr constant [4 x i8] c"int\00" @.str6284 = private unnamed_addr constant [29 x i8] c"cannot assign to immutable '\00" @.str6285 = private unnamed_addr constant [41 x i8] c"' (declared with let; use var) \E2\80\94 line \00" @.str6286 = private unnamed_addr constant [19 x i8] c"assign to unknown \00" @.str6287 = private unnamed_addr constant [4 x i8] c"@g_\00" @.str6288 = private unnamed_addr constant [22 x i8] c"bad assignment target\00" @.str6289 = private unnamed_addr constant [3 x i8] c"i8\00" @.str6290 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" @.str6291 = private unnamed_addr constant [7 x i8] c" to i8\00" @.str6292 = private unnamed_addr constant [2 x i8] c"=\00" @.str6293 = private unnamed_addr constant [6 x i8] c"load \00" @.str6294 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6295 = private unnamed_addr constant [4 x i8] c"add\00" @.str6296 = private unnamed_addr constant [3 x i8] c"-=\00" @.str6297 = private unnamed_addr constant [4 x i8] c"sub\00" @.str6298 = private unnamed_addr constant [3 x i8] c"*=\00" @.str6299 = private unnamed_addr constant [4 x i8] c"mul\00" @.str6300 = private unnamed_addr constant [3 x i8] c"/=\00" @.str6301 = private unnamed_addr constant [5 x i8] c"sdiv\00" @.str6302 = private unnamed_addr constant [2 x i8] c" \00" @.str6303 = private unnamed_addr constant [2 x i8] c" \00" @.str6304 = private unnamed_addr constant [3 x i8] c", \00" @.str6305 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6306 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6307 = private unnamed_addr constant [5 x i8] c"then\00" @.str6308 = private unnamed_addr constant [5 x i8] c"else\00" @.str6309 = private unnamed_addr constant [6 x i8] c"ifend\00" @.str6310 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6311 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6312 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6313 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6314 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6315 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6316 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6317 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6318 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6319 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6320 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6321 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6322 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6323 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6324 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6325 = private unnamed_addr constant [6 x i8] c"wcond\00" @.str6326 = private unnamed_addr constant [6 x i8] c"wbody\00" @.str6327 = private unnamed_addr constant [5 x i8] c"wend\00" @.str6328 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6329 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6330 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6331 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6332 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6333 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6334 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6335 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6336 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6337 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6338 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6339 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6340 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6341 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6342 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6343 = private unnamed_addr constant [4 x i8] c"int\00" @.str6344 = private unnamed_addr constant [6 x i8] c"fcond\00" @.str6345 = private unnamed_addr constant [6 x i8] c"fbody\00" @.str6346 = private unnamed_addr constant [6 x i8] c"fcont\00" @.str6347 = private unnamed_addr constant [5 x i8] c"fend\00" @.str6348 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6349 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6350 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6351 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6352 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6353 = private unnamed_addr constant [3 x i8] c", \00" @.str6354 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6355 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6356 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6357 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6358 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6359 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6360 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6361 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6362 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6363 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6364 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6365 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6366 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6367 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6368 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6369 = private unnamed_addr constant [8 x i8] c"%retval\00" @.str6370 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str6371 = private unnamed_addr constant [2 x i8] c"_\00" @.str6372 = private unnamed_addr constant [5 x i8] c"mend\00" @.str6373 = private unnamed_addr constant [2 x i8] c"0\00" @.str6374 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6375 = private unnamed_addr constant [3 x i8] c", \00" @.str6376 = private unnamed_addr constant [7 x i8] c"or i1 \00" @.str6377 = private unnamed_addr constant [3 x i8] c", \00" @.str6378 = private unnamed_addr constant [6 x i8] c"mbody\00" @.str6379 = private unnamed_addr constant [5 x i8] c"marm\00" @.str6380 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6381 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6382 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6383 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6384 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6385 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6386 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6387 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6388 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6389 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6390 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6391 = private unnamed_addr constant [21 x i8] c"emit: unknown event \00" @.str6392 = private unnamed_addr constant [2 x i8] c"0\00" @.str6393 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6394 = private unnamed_addr constant [5 x i8] c"null\00" @.str6395 = private unnamed_addr constant [3 x i8] c" \00" @.str6396 = private unnamed_addr constant [53 x i8] c" = getelementptr inbounds i8, ptr @L_sendbuf, i32 0\0A\00" @.str6397 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6398 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6399 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6400 = private unnamed_addr constant [3 x i8] c" \00" @.str6401 = private unnamed_addr constant [51 x i8] c" = getelementptr inbounds i8, ptr @L_sendbuf, i32 \00" @.str6402 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6403 = private unnamed_addr constant [9 x i8] c" store \00" @.str6404 = private unnamed_addr constant [2 x i8] c" \00" @.str6405 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6406 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6407 = private unnamed_addr constant [2 x i8] c"0\00" @.str6408 = private unnamed_addr constant [10 x i8] c"toclients\00" @.str6409 = private unnamed_addr constant [3 x i8] c"-1\00" @.str6410 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str6411 = private unnamed_addr constant [14 x i8] c" call void @\00" @.str6412 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str6413 = private unnamed_addr constant [23 x i8] c", ptr @L_sendbuf, i32 \00" @.str6414 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6415 = private unnamed_addr constant [2 x i8] c"0\00" @.str6416 = private unnamed_addr constant [4 x i8] c"int\00" @.str6417 = private unnamed_addr constant [3 x i8] c", \00" @.str6418 = private unnamed_addr constant [2 x i8] c" \00" @.str6419 = private unnamed_addr constant [3 x i8] c" \00" @.str6420 = private unnamed_addr constant [17 x i8] c" = call i32 @ev_\00" @.str6421 = private unnamed_addr constant [2 x i8] c"(\00" @.str6422 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6423 = private unnamed_addr constant [4 x i8] c"int\00" @.str6424 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6425 = private unnamed_addr constant [2 x i8] c"(\00" @.str6426 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6427 = private unnamed_addr constant [2 x i8] c"0\00" @.str6428 = private unnamed_addr constant [4 x i8] c"int\00" @.str6429 = private unnamed_addr constant [2 x i8] c"0\00" @.str6430 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6431 = private unnamed_addr constant [5 x i8] c"null\00" @.str6432 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6433 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6434 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6435 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6436 = private unnamed_addr constant [44 x i8] c"cancel outside a cancellable event listener\00" @.str6437 = private unnamed_addr constant [20 x i8] c" store i32 1, ptr \00" @.str6438 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6439 = private unnamed_addr constant [22 x i8] c"cannot emit statement\00" @.str6440 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00" @.str6441 = private unnamed_addr constant [32 x i8] c"@L_key = internal global i32 0\0A\00" @.str6442 = private unnamed_addr constant [34 x i8] c"@L_frame = internal global i32 0\0A\00" @.str6443 = private unnamed_addr constant [34 x i8] c"@L_scene = internal global i32 0\0A\00" @.str6444 = private unnamed_addr constant [33 x i8] c"@L_entc = internal global i32 0\0A\00" @.str6445 = private unnamed_addr constant [29 x i8] c"@L_alive = internal global [\00" @.str6446 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str6447 = private unnamed_addr constant [28 x i8] c"@L_kind = internal global [\00" @.str6448 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str6449 = private unnamed_addr constant [32 x i8] c"@L_freelist = internal global [\00" @.str6450 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str6451 = private unnamed_addr constant [34 x i8] c"@L_freen = internal global i32 0\0A\00" @.str6452 = private unnamed_addr constant [33 x i8] c"@L_role = internal global i32 1\0A\00" @.str6453 = private unnamed_addr constant [36 x i8] c"@L_localid = internal global i32 0\0A\00" @.str6454 = private unnamed_addr constant [33 x i8] c"@L_owner_arr = internal global [\00" @.str6455 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str6456 = private unnamed_addr constant [4 x i8] c"@S_\00" @.str6457 = private unnamed_addr constant [21 x i8] c" = internal global [\00" @.str6458 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str6459 = private unnamed_addr constant [19 x i8] c"] zeroinitializer\0A\00" @.str6460 = private unnamed_addr constant [4 x i8] c"@H_\00" @.str6461 = private unnamed_addr constant [21 x i8] c" = internal global [\00" @.str6462 = private unnamed_addr constant [24 x i8] c" x i8] zeroinitializer\0A\00" @.str6463 = private unnamed_addr constant [5 x i8] c"@ME_\00" @.str6464 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" @.str6465 = private unnamed_addr constant [5 x i8] c"@HE_\00" @.str6466 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" @.str6467 = private unnamed_addr constant [5 x i8] c"@LE_\00" @.str6468 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" @.str6469 = private unnamed_addr constant [39 x i8] c"define void @L_reset(i32 %e) {\0Aentry:\0A\00" @.str6470 = private unnamed_addr constant [3 x i8] c"%h\00" @.str6471 = private unnamed_addr constant [3 x i8] c" \00" @.str6472 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6473 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str6474 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str6475 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" @.str6476 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6477 = private unnamed_addr constant [32 x i8] c" %k = getelementptr inbounds [\00" @.str6478 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" @.str6479 = private unnamed_addr constant [23 x i8] c" store i32 0, ptr %k\0A\00" @.str6480 = private unnamed_addr constant [33 x i8] c" %ow = getelementptr inbounds [\00" @.str6481 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A\00" @.str6482 = private unnamed_addr constant [25 x i8] c" store i32 -1, ptr %ow\0A\00" @.str6483 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str6484 = private unnamed_addr constant [32 x i8] c"define i32 @L_alloc() {\0Aentry:\0A\00" @.str6485 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" @.str6486 = private unnamed_addr constant [30 x i8] c" %has = icmp sgt i32 %fn, 0\0A\00" @.str6487 = private unnamed_addr constant [42 x i8] c" br i1 %has, label %reuse, label %fresh\0A\00" @.str6488 = private unnamed_addr constant [8 x i8] c"reuse:\0A\00" @.str6489 = private unnamed_addr constant [25 x i8] c" %fn1 = sub i32 %fn, 1\0A\00" @.str6490 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" @.str6491 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" @.str6492 = private unnamed_addr constant [43 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn1\0A\00" @.str6493 = private unnamed_addr constant [27 x i8] c" %re = load i32, ptr %fp\0A\00" @.str6494 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" @.str6495 = private unnamed_addr constant [8 x i8] c"fresh:\0A\00" @.str6496 = private unnamed_addr constant [31 x i8] c" %ec = load i32, ptr @L_entc\0A\00" @.str6497 = private unnamed_addr constant [25 x i8] c" %ec1 = add i32 %ec, 1\0A\00" @.str6498 = private unnamed_addr constant [31 x i8] c" store i32 %ec1, ptr @L_entc\0A\00" @.str6499 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" @.str6500 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str6501 = private unnamed_addr constant [49 x i8] c" %e = phi i32 [ %re, %reuse ], [ %ec, %fresh ]\0A\00" @.str6502 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" @.str6503 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" @.str6504 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" @.str6505 = private unnamed_addr constant [24 x i8] c" store i32 1, ptr %ap\0A\00" @.str6506 = private unnamed_addr constant [17 x i8] c" ret i32 %e\0A}\0A\0A\00" @.str6507 = private unnamed_addr constant [45 x i8] c"define void @L_free_entity(i32 %e) {\0Aentry:\0A\00" @.str6508 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" @.str6509 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" @.str6510 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %ap\0A\00" @.str6511 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" @.str6512 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" @.str6513 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" @.str6514 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn\0A\00" @.str6515 = private unnamed_addr constant [25 x i8] c" store i32 %e, ptr %fp\0A\00" @.str6516 = private unnamed_addr constant [25 x i8] c" %fn1 = add i32 %fn, 1\0A\00" @.str6517 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" @.str6518 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str6519 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6520 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6521 = private unnamed_addr constant [2 x i8] c"0\00" @.str6522 = private unnamed_addr constant [6 x i8] c"qcond\00" @.str6523 = private unnamed_addr constant [6 x i8] c"qbody\00" @.str6524 = private unnamed_addr constant [6 x i8] c"qnext\00" @.str6525 = private unnamed_addr constant [5 x i8] c"qend\00" @.str6526 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6527 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6528 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6529 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6530 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" @.str6531 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str6532 = private unnamed_addr constant [3 x i8] c", \00" @.str6533 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6534 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6535 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6536 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6537 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6538 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6539 = private unnamed_addr constant [3 x i8] c" \00" @.str6540 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6541 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" @.str6542 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6543 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6544 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6545 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6546 = private unnamed_addr constant [3 x i8] c"qa\00" @.str6547 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6548 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6549 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6550 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6551 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6552 = private unnamed_addr constant [2 x i8] c"0\00" @.str6553 = private unnamed_addr constant [3 x i8] c" \00" @.str6554 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6555 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" @.str6556 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6557 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6558 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6559 = private unnamed_addr constant [3 x i8] c", \00" @.str6560 = private unnamed_addr constant [19 x i8] c"load i32, ptr @ME_\00" @.str6561 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6562 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6563 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str6564 = private unnamed_addr constant [3 x i8] c", \00" @.str6565 = private unnamed_addr constant [3 x i8] c" \00" @.str6566 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6567 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str6568 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6569 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6570 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str6571 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" @.str6572 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6573 = private unnamed_addr constant [3 x i8] c"qt\00" @.str6574 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6575 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6576 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6577 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6578 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6579 = private unnamed_addr constant [3 x i8] c" \00" @.str6580 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6581 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str6582 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str6583 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6584 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6585 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6586 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str6587 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6588 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6589 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6590 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6591 = private unnamed_addr constant [3 x i8] c"qw\00" @.str6592 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6593 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6594 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6595 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6596 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6597 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6598 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6599 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6600 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6601 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str6602 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6603 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6604 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6605 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6606 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6607 = private unnamed_addr constant [25 x i8] c"spawn: unknown property \00" @.str6608 = private unnamed_addr constant [3 x i8] c" \00" @.str6609 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6610 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str6611 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6612 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6613 = private unnamed_addr constant [19 x i8] c" store i8 1, ptr \00" @.str6614 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6615 = private unnamed_addr constant [3 x i8] c" \00" @.str6616 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6617 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str6618 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str6619 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6620 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6621 = private unnamed_addr constant [3 x i8] c" \00" @.str6622 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str6623 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6624 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6625 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6626 = private unnamed_addr constant [2 x i8] c"0\00" @.str6627 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6628 = private unnamed_addr constant [5 x i8] c"null\00" @.str6629 = private unnamed_addr constant [9 x i8] c" store \00" @.str6630 = private unnamed_addr constant [2 x i8] c" \00" @.str6631 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6632 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6633 = private unnamed_addr constant [3 x i8] c" \00" @.str6634 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str6635 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6636 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6637 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6638 = private unnamed_addr constant [9 x i8] c" store \00" @.str6639 = private unnamed_addr constant [2 x i8] c" \00" @.str6640 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6641 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6642 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6643 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str6644 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6645 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6646 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str6647 = private unnamed_addr constant [8 x i8] c"_attach\00" @.str6648 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6649 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str6650 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6651 = private unnamed_addr constant [3 x i8] c" \00" @.str6652 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6653 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str6654 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str6655 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6656 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6657 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6658 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str6659 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6660 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6661 = private unnamed_addr constant [20 x i8] c"call i32 @L_alloc()\00" @.str6662 = private unnamed_addr constant [3 x i8] c" \00" @.str6663 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6664 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" @.str6665 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6666 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6667 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6668 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6669 = private unnamed_addr constant [7 x i8] c"model_\00" @.str6670 = private unnamed_addr constant [7 x i8] c"_spawn\00" @.str6671 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6672 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str6673 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6674 = private unnamed_addr constant [3 x i8] c" \00" @.str6675 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6676 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" @.str6677 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6678 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6679 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6680 = private unnamed_addr constant [3 x i8] c", \00" @.str6681 = private unnamed_addr constant [3 x i8] c"dh\00" @.str6682 = private unnamed_addr constant [4 x i8] c"dhn\00" @.str6683 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6684 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6685 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6686 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6687 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" @.str6688 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str6689 = private unnamed_addr constant [10 x i8] c", i32 0)\0A\00" @.str6690 = private unnamed_addr constant [7 x i8] c"model_\00" @.str6691 = private unnamed_addr constant [9 x i8] c"_despawn\00" @.str6692 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6693 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str6694 = private unnamed_addr constant [10 x i8] c", i32 0)\0A\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 [37 x i8] c" call void @ludic_sweep_entity(i32 \00" @.str6699 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6700 = private unnamed_addr constant [32 x i8] c" call void @L_free_entity(i32 \00" @.str6701 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6702 = private unnamed_addr constant [3 x i8] c" \00" @.str6703 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6704 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str6705 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6706 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6707 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str6708 = private unnamed_addr constant [12 x i8] c"icmp eq i8 \00" @.str6709 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6710 = private unnamed_addr constant [7 x i8] c"attach\00" @.str6711 = private unnamed_addr constant [8 x i8] c"attdone\00" @.str6712 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6713 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6714 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6715 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6716 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6717 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6718 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6719 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6720 = private unnamed_addr constant [3 x i8] c" \00" @.str6721 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6722 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str6723 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6724 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6725 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" @.str6726 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" @.str6727 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6728 = private unnamed_addr constant [7 x i8] c"detach\00" @.str6729 = private unnamed_addr constant [8 x i8] c"detdone\00" @.str6730 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6731 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6732 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6733 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6734 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6735 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" @.str6736 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6737 = private unnamed_addr constant [3 x i8] c" \00" @.str6738 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6739 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str6740 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str6741 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6742 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6743 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6744 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str6745 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6746 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6747 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str6748 = private unnamed_addr constant [8 x i8] c"_detach\00" @.str6749 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6750 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str6751 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6752 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6753 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6754 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6755 = private unnamed_addr constant [2 x i8] c"0\00" @.str6756 = private unnamed_addr constant [2 x i8] c"1\00" @.str6757 = private unnamed_addr constant [6 x i8] c"layer\00" @.str6758 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6759 = private unnamed_addr constant [11 x i8] c", ptr @LE_\00" @.str6760 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6761 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str6762 = private unnamed_addr constant [6 x i8] c"_hide\00" @.str6763 = private unnamed_addr constant [7 x i8] c"layer_\00" @.str6764 = private unnamed_addr constant [6 x i8] c"_show\00" @.str6765 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6766 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str6767 = private unnamed_addr constant [3 x i8] c" \00" @.str6768 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6769 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str6770 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6771 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6772 = private unnamed_addr constant [12 x i8] c" store i8 \00" @.str6773 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6774 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6775 = private unnamed_addr constant [3 x i8] c" \00" @.str6776 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str6777 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str6778 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str6779 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6780 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6781 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str6782 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str6783 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6784 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6785 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str6786 = private unnamed_addr constant [9 x i8] c"_disable\00" @.str6787 = private unnamed_addr constant [6 x i8] c"prop_\00" @.str6788 = private unnamed_addr constant [8 x i8] c"_enable\00" @.str6789 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6790 = private unnamed_addr constant [6 x i8] c"(i32 \00" @.str6791 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str6792 = private unnamed_addr constant [5 x i8] c"@HE_\00" @.str6793 = private unnamed_addr constant [5 x i8] c"@ME_\00" @.str6794 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str6795 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6796 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6797 = private unnamed_addr constant [5 x i8] c"void\00" @.str6798 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str6799 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str6800 = private unnamed_addr constant [18 x i8] c"define void @sys_\00" @.str6801 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str6802 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str6803 = private unnamed_addr constant [19 x i8] c"load i32, ptr @HE_\00" @.str6804 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6805 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6806 = private unnamed_addr constant [19 x i8] c"load i32, ptr @LE_\00" @.str6807 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str6808 = private unnamed_addr constant [4 x i8] c", 0\00" @.str6809 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str6810 = private unnamed_addr constant [3 x i8] c", \00" @.str6811 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_role\00" @.str6812 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6813 = private unnamed_addr constant [4 x i8] c", 1\00" @.str6814 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str6815 = private unnamed_addr constant [3 x i8] c", \00" @.str6816 = private unnamed_addr constant [5 x i8] c"hrun\00" @.str6817 = private unnamed_addr constant [6 x i8] c"hskip\00" @.str6818 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6819 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6820 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6821 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6822 = private unnamed_addr constant [20 x i8] c":\0A call void @sys_\00" @.str6823 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str6824 = private unnamed_addr constant [13 x i8] c" br 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 [23 x i8] c"load i32, ptr @L_scene\00" @.str6828 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str6829 = private unnamed_addr constant [3 x i8] c", \00" @.str6830 = private unnamed_addr constant [6 x i8] c"scrun\00" @.str6831 = private unnamed_addr constant [7 x i8] c"scskip\00" @.str6832 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str6833 = private unnamed_addr constant [10 x i8] c", label %\00" @.str6834 = private unnamed_addr constant [10 x i8] c", 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 [13 x i8] c" br label %\00" @.str6838 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6839 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6840 = private unnamed_addr constant [5 x i8] c"void\00" @.str6841 = private unnamed_addr constant [7 x i8] c"scene_\00" @.str6842 = private unnamed_addr constant [2 x i8] c"_\00" @.str6843 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6844 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str6845 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str6846 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str6847 = private unnamed_addr constant [20 x i8] c"define void @scene_\00" @.str6848 = private unnamed_addr constant [2 x i8] c"_\00" @.str6849 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str6850 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str6851 = private unnamed_addr constant [6 x i8] c"enter\00" @.str6852 = private unnamed_addr constant [5 x i8] c"exit\00" @.str6853 = private unnamed_addr constant [5 x i8] c"void\00" @.str6854 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6855 = private unnamed_addr constant [26 x i8] c" store i32 %reason, ptr \00" @.str6856 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6857 = private unnamed_addr constant [4 x i8] c"int\00" @.str6858 = private unnamed_addr constant [3 x i8] c"%e\00" @.str6859 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str6860 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str6861 = private unnamed_addr constant [25 x i8] c"define void @on_despawn_\00" @.str6862 = private unnamed_addr constant [32 x i8] c"(i32 %e, i32 %reason) {\0Aentry:\0A\00" @.str6863 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str6864 = private unnamed_addr constant [67 x i8] c"define void @L_despawn_all(i32 %reason) {\0Aentry:\0A br label %loop\0A\00" @.str6865 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00" @.str6866 = private unnamed_addr constant [58 x i8] c" %n = load i32, ptr @L_entc\0A %go = icmp slt i32 %i, %n\0A\00" @.str6867 = private unnamed_addr constant [38 x i8] c" br i1 %go, label %body, label %fin\0A\00" @.str6868 = private unnamed_addr constant [39 x i8] c"body:\0A %ap = getelementptr inbounds [\00" @.str6869 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %i\0A\00" @.str6870 = private unnamed_addr constant [55 x i8] c" %al = load i32, ptr %ap\0A %isa = icmp ne i32 %al, 0\0A\00" @.str6871 = private unnamed_addr constant [38 x i8] c" br i1 %isa, label %do, label %cont\0A\00" @.str6872 = private unnamed_addr constant [37 x i8] c"do:\0A %kp = getelementptr inbounds [\00" @.str6873 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %i\0A\00" @.str6874 = private unnamed_addr constant [26 x i8] c" %k = load i32, ptr %kp\0A\00" @.str6875 = private unnamed_addr constant [5 x i8] c" %c\00" @.str6876 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str6877 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6878 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str6879 = private unnamed_addr constant [13 x i8] c", label %hit\00" @.str6880 = private unnamed_addr constant [14 x i8] c", label %next\00" @.str6881 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6882 = private unnamed_addr constant [4 x i8] c"hit\00" @.str6883 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" @.str6884 = private unnamed_addr constant [23 x i8] c"(i32 %i, i32 %reason)\0A\00" @.str6885 = private unnamed_addr constant [7 x i8] c"model_\00" @.str6886 = private unnamed_addr constant [9 x i8] c"_despawn\00" @.str6887 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str6888 = private unnamed_addr constant [23 x i8] c"(i32 %i, i32 %reason)\0A\00" @.str6889 = private unnamed_addr constant [17 x i8] c" br label %next\00" @.str6890 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6891 = private unnamed_addr constant [5 x i8] c"next\00" @.str6892 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6893 = private unnamed_addr constant [18 x i8] c" br label %cont\0A\00" @.str6894 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" @.str6895 = private unnamed_addr constant [20 x i8] c"fin:\0A ret void\0A}\0A\0A\00" @.str6896 = private unnamed_addr constant [26 x i8] c"@ev_depth = global i32 0\0A\00" @.str6897 = private unnamed_addr constant [5 x i8] c"%Ev_\00" @.str6898 = private unnamed_addr constant [11 x i8] c" = type { \00" @.str6899 = private unnamed_addr constant [3 x i8] c", \00" @.str6900 = private unnamed_addr constant [3 x i8] c", \00" @.str6901 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6902 = private unnamed_addr constant [4 x i8] c" }\0A\00" @.str6903 = private unnamed_addr constant [6 x i8] c"@evL_\00" @.str6904 = private unnamed_addr constant [12 x i8] c" = global [\00" @.str6905 = private unnamed_addr constant [25 x i8] c" x ptr] zeroinitializer\0A\00" @.str6906 = private unnamed_addr constant [6 x i8] c"@evN_\00" @.str6907 = private unnamed_addr constant [17 x i8] c" = global i32 0\0A\00" @.str6908 = private unnamed_addr constant [6 x i8] c"@evO_\00" @.str6909 = private unnamed_addr constant [12 x i8] c" = global [\00" @.str6910 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" @.str6911 = private unnamed_addr constant [22 x i8] c"define i32 @ludic_on_\00" @.str6912 = private unnamed_addr constant [20 x i8] c"(ptr %cb) {\0Aentry:\0A\00" @.str6913 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00" @.str6914 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6915 = private unnamed_addr constant [28 x i8] c" %full = icmp slt i32 %n, \00" @.str6916 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6917 = private unnamed_addr constant [40 x i8] c" br i1 %full, label %add, label %drop\0A\00" @.str6918 = private unnamed_addr constant [40 x i8] c"add:\0A %slot = getelementptr inbounds [\00" @.str6919 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str6920 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str6921 = private unnamed_addr constant [28 x i8] c" store ptr %cb, ptr %slot\0A\00" @.str6922 = private unnamed_addr constant [36 x i8] c" %oslot = getelementptr inbounds [\00" @.str6923 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00" @.str6924 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str6925 = private unnamed_addr constant [28 x i8] c" store i32 -1, ptr %oslot\0A\00" @.str6926 = private unnamed_addr constant [49 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @evN_\00" @.str6927 = private unnamed_addr constant [15 x i8] c"\0A ret i32 %n\0A\00" @.str6928 = private unnamed_addr constant [23 x i8] c"drop:\0A ret i32 -1\0A}\0A\0A\00" @.str6929 = private unnamed_addr constant [29 x i8] c"define i32 @ludic_on_entity_\00" @.str6930 = private unnamed_addr constant [32 x i8] c"(i32 %owner, ptr %cb) {\0Aentry:\0A\00" @.str6931 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00" @.str6932 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6933 = private unnamed_addr constant [28 x i8] c" %full = icmp slt i32 %n, \00" @.str6934 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6935 = private unnamed_addr constant [40 x i8] c" br i1 %full, label %add, label %drop\0A\00" @.str6936 = private unnamed_addr constant [40 x i8] c"add:\0A %slot = getelementptr inbounds [\00" @.str6937 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str6938 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str6939 = private unnamed_addr constant [28 x i8] c" store ptr %cb, ptr %slot\0A\00" @.str6940 = private unnamed_addr constant [36 x i8] c" %oslot = getelementptr inbounds [\00" @.str6941 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00" @.str6942 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00" @.str6943 = private unnamed_addr constant [32 x i8] c" store i32 %owner, ptr %oslot\0A\00" @.str6944 = private unnamed_addr constant [49 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @evN_\00" @.str6945 = private unnamed_addr constant [15 x i8] c"\0A ret i32 %n\0A\00" @.str6946 = private unnamed_addr constant [23 x i8] c"drop:\0A ret i32 -1\0A}\0A\0A\00" @.str6947 = private unnamed_addr constant [24 x i8] c"define void @ludic_off_\00" @.str6948 = private unnamed_addr constant [21 x i8] c"(i32 %tok) {\0Aentry:\0A\00" @.str6949 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00" @.str6950 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6951 = 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" @.str6952 = private unnamed_addr constant [37 x i8] c" br i1 %ok, label %do, label %skip\0A\00" @.str6953 = private unnamed_addr constant [39 x i8] c"do:\0A %slot = getelementptr inbounds [\00" @.str6954 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str6955 = private unnamed_addr constant [19 x i8] c", i32 0, i32 %tok\0A\00" @.str6956 = private unnamed_addr constant [46 x i8] c" store ptr null, ptr %slot\0A br label %skip\0A\00" @.str6957 = private unnamed_addr constant [21 x i8] c"skip:\0A ret void\0A}\0A\0A\00" @.str6958 = private unnamed_addr constant [5 x i8] c"void\00" @.str6959 = private unnamed_addr constant [34 x i8] c" %evd = load i32, ptr @ev_depth\0A\00" @.str6960 = private unnamed_addr constant [32 x i8] c" %evover = icmp sge i32 %evd, \00" @.str6961 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6962 = private unnamed_addr constant [44 x i8] c" br i1 %evover, label %evcap, label %evgo\0A\00" @.str6963 = private unnamed_addr constant [8 x i8] c"evcap:\0A\00" @.str6964 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" @.str6965 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str6966 = private unnamed_addr constant [7 x i8] c"evgo:\0A\00" @.str6967 = private unnamed_addr constant [60 x i8] c" %evd1 = add i32 %evd, 1\0A store i32 %evd1, ptr @ev_depth\0A\00" @.str6968 = private unnamed_addr constant [5 x i8] c"%Ev_\00" @.str6969 = private unnamed_addr constant [3 x i8] c" \00" @.str6970 = private unnamed_addr constant [31 x i8] c" = getelementptr inbounds %Ev_\00" @.str6971 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6972 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6973 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6974 = private unnamed_addr constant [9 x i8] c" store \00" @.str6975 = private unnamed_addr constant [4 x i8] c" %p\00" @.str6976 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6977 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6978 = private unnamed_addr constant [9 x i8] c" store \00" @.str6979 = private unnamed_addr constant [4 x i8] c" %p\00" @.str6980 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6981 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6982 = private unnamed_addr constant [3 x i8] c" \00" @.str6983 = private unnamed_addr constant [31 x i8] c" = getelementptr inbounds %Ev_\00" @.str6984 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str6985 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str6986 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6987 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str6988 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6989 = private unnamed_addr constant [4 x i8] c"i32\00" @.str6990 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str6991 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6992 = private unnamed_addr constant [4 x i8] c"evl\00" @.str6993 = private unnamed_addr constant [4 x i8] c"evb\00" @.str6994 = private unnamed_addr constant [4 x i8] c"evd\00" @.str6995 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str6996 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str6997 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str6998 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str6999 = private unnamed_addr constant [20 x i8] c"load i32, ptr @evN_\00" @.str7000 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" @.str7001 = private unnamed_addr constant [3 x i8] c", \00" @.str7002 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str7003 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7004 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7005 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7006 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7007 = private unnamed_addr constant [3 x i8] c" \00" @.str7008 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7009 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str7010 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str7011 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7012 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" @.str7013 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" @.str7014 = private unnamed_addr constant [7 x i8] c", null\00" @.str7015 = private unnamed_addr constant [5 x i8] c"evdo\00" @.str7016 = private unnamed_addr constant [5 x i8] c"evsk\00" @.str7017 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str7018 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7019 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7020 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7021 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7022 = private unnamed_addr constant [13 x i8] c" call void \00" @.str7023 = private unnamed_addr constant [6 x i8] c"(ptr \00" @.str7024 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7025 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str7026 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7027 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7028 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7029 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7030 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7031 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7032 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7033 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str7034 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7035 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7036 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str7037 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" @.str7038 = 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" @.str7039 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" @.str7040 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str7041 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7042 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str7043 = private unnamed_addr constant [5 x i8] c"void\00" @.str7044 = private unnamed_addr constant [4 x i8] c"i32\00" @.str7045 = private unnamed_addr constant [8 x i8] c"define \00" @.str7046 = private unnamed_addr constant [6 x i8] c" @ev_\00" @.str7047 = private unnamed_addr constant [2 x i8] c"(\00" @.str7048 = private unnamed_addr constant [3 x i8] c", \00" @.str7049 = private unnamed_addr constant [4 x i8] c" %p\00" @.str7050 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" @.str7051 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str7052 = 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" @.str7053 = private unnamed_addr constant [3 x i8] c"sw\00" @.str7054 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7055 = private unnamed_addr constant [7 x i8] c" %swi\00" @.str7056 = private unnamed_addr constant [22 x i8] c" = load i32, ptr %ci\0A\00" @.str7057 = private unnamed_addr constant [7 x i8] c" %swn\00" @.str7058 = private unnamed_addr constant [23 x i8] c" = load i32, ptr @evN_\00" @.str7059 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7060 = private unnamed_addr constant [7 x i8] c" %swg\00" @.str7061 = private unnamed_addr constant [21 x i8] c" = icmp slt i32 %swi\00" @.str7062 = private unnamed_addr constant [7 x i8] c", %swn\00" @.str7063 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7064 = private unnamed_addr constant [13 x i8] c" br i1 %swg\00" @.str7065 = private unnamed_addr constant [13 x i8] c", label %swb\00" @.str7066 = private unnamed_addr constant [13 x i8] c", label %swd\00" @.str7067 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7068 = private unnamed_addr constant [4 x i8] c"swb\00" @.str7069 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7070 = private unnamed_addr constant [8 x i8] c" %swop\00" @.str7071 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7072 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00" @.str7073 = private unnamed_addr constant [18 x i8] c", i32 0, i32 %swi\00" @.str7074 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7075 = private unnamed_addr constant [8 x i8] c" %swov\00" @.str7076 = private unnamed_addr constant [23 x i8] c" = load i32, ptr %swop\00" @.str7077 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7078 = private unnamed_addr constant [7 x i8] c" %swm\00" @.str7079 = private unnamed_addr constant [21 x i8] c" = icmp eq i32 %swov\00" @.str7080 = private unnamed_addr constant [10 x i8] c", %owner\0A\00" @.str7081 = private unnamed_addr constant [13 x i8] c" br i1 %swm\00" @.str7082 = private unnamed_addr constant [13 x i8] c", label %swh\00" @.str7083 = private unnamed_addr constant [13 x i8] c", label %swx\00" @.str7084 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7085 = private unnamed_addr constant [4 x i8] c"swh\00" @.str7086 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7087 = private unnamed_addr constant [8 x i8] c" %swlp\00" @.str7088 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7089 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00" @.str7090 = private unnamed_addr constant [18 x i8] c", i32 0, i32 %swi\00" @.str7091 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7092 = private unnamed_addr constant [28 x i8] c" store ptr null, ptr %swlp\00" @.str7093 = private unnamed_addr constant [17 x i8] c"\0A br label %swx\00" @.str7094 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7095 = private unnamed_addr constant [4 x i8] c"swx\00" @.str7096 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7097 = private unnamed_addr constant [8 x i8] c" %swi1\00" @.str7098 = private unnamed_addr constant [16 x i8] c" = add i32 %swi\00" @.str7099 = private unnamed_addr constant [22 x i8] c", 1\0A store i32 %swi1\00" @.str7100 = private unnamed_addr constant [25 x i8] c", ptr %ci\0A br label %sw\00" @.str7101 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7102 = private unnamed_addr constant [4 x i8] c"swd\00" @.str7103 = private unnamed_addr constant [26 x i8] c":\0A store i32 0, ptr %ci\0A\00" @.str7104 = private unnamed_addr constant [15 x i8] c" br label %sw\00" @.str7105 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7106 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str7107 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str7108 = private unnamed_addr constant [31 x i8] c"declare i32 @strcmp(ptr, ptr)\0A\00" @.str7109 = private unnamed_addr constant [27 x i8] c"@dyn_count = global i32 0\0A\00" @.str7110 = private unnamed_addr constant [43 x i8] c"@dynS = global [32 x ptr] zeroinitializer\0A\00" @.str7111 = private unnamed_addr constant [43 x i8] c"@dynH = global [32 x ptr] zeroinitializer\0A\00" @.str7112 = private unnamed_addr constant [43 x i8] c"@dynF = global [32 x i32] zeroinitializer\0A\00" @.str7113 = private unnamed_addr constant [46 x i8] c"@dynName = global [32 x ptr] zeroinitializer\0A\00" @.str7114 = private unnamed_addr constant [47 x i8] c"define i32 @ludic_prop_id(ptr %name) {\0Aentry:\0A\00" @.str7115 = private unnamed_addr constant [5 x i8] c" %c\00" @.str7116 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00" @.str7117 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7118 = private unnamed_addr constant [5 x i8] c" %e\00" @.str7119 = private unnamed_addr constant [18 x i8] c" = icmp eq i32 %c\00" @.str7120 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str7121 = private unnamed_addr constant [11 x i8] c" br i1 %e\00" @.str7122 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str7123 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str7124 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7125 = private unnamed_addr constant [2 x i8] c"h\00" @.str7126 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str7127 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7128 = private unnamed_addr constant [2 x i8] c"n\00" @.str7129 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7130 = private unnamed_addr constant [61 x i8] c" %dpi = alloca i32\0A store i32 0, ptr %dpi\0A br label %dpl\0A\00" @.str7131 = 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" @.str7132 = 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" @.str7133 = private unnamed_addr constant [31 x i8] c"dphit:\0A %drid = add i32 %di, \00" @.str7134 = private unnamed_addr constant [18 x i8] c"\0A ret i32 %drid\0A\00" @.str7135 = 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" @.str7136 = private unnamed_addr constant [25 x i8] c"dpnone:\0A ret i32 -1\0A}\0A\0A\00" @.str7137 = private unnamed_addr constant [56 x i8] c"define i32 @ludic_field_id(i32 %p, ptr %name) {\0Aentry:\0A\00" @.str7138 = private unnamed_addr constant [6 x i8] c" %pm\00" @.str7139 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str7140 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7141 = private unnamed_addr constant [12 x i8] c" br i1 %pm\00" @.str7142 = private unnamed_addr constant [12 x i8] c", label %pk\00" @.str7143 = private unnamed_addr constant [12 x i8] c", label %pn\00" @.str7144 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7145 = private unnamed_addr constant [3 x i8] c"pk\00" @.str7146 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7147 = private unnamed_addr constant [2 x i8] c"_\00" @.str7148 = private unnamed_addr constant [6 x i8] c" %fc\00" @.str7149 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00" @.str7150 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7151 = private unnamed_addr constant [6 x i8] c" %fe\00" @.str7152 = private unnamed_addr constant [19 x i8] c" = icmp eq i32 %fc\00" @.str7153 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str7154 = private unnamed_addr constant [12 x i8] c" br i1 %fe\00" @.str7155 = private unnamed_addr constant [12 x i8] c", label %fh\00" @.str7156 = private unnamed_addr constant [12 x i8] c", label %fn\00" @.str7157 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7158 = private unnamed_addr constant [3 x i8] c"fh\00" @.str7159 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str7160 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7161 = private unnamed_addr constant [3 x i8] c"fn\00" @.str7162 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7163 = private unnamed_addr constant [14 x i8] c" ret i32 -1\0A\00" @.str7164 = private unnamed_addr constant [3 x i8] c"pn\00" @.str7165 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7166 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00" @.str7167 = private unnamed_addr constant [56 x i8] c"define i64 @ludic_get(i32 %e, i32 %p, i32 %f) {\0Aentry:\0A\00" @.str7168 = private unnamed_addr constant [5 x i8] c" %m\00" @.str7169 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str7170 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7171 = private unnamed_addr constant [11 x i8] c" br i1 %m\00" @.str7172 = private unnamed_addr constant [11 x i8] c", label %g\00" @.str7173 = private unnamed_addr constant [12 x i8] c", label %gn\00" @.str7174 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7175 = private unnamed_addr constant [2 x i8] c"g\00" @.str7176 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7177 = private unnamed_addr constant [5 x i8] c" %s\00" @.str7178 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7179 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str7180 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str7181 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str7182 = private unnamed_addr constant [2 x i8] c"_\00" @.str7183 = private unnamed_addr constant [6 x i8] c" %gm\00" @.str7184 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str7185 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7186 = private unnamed_addr constant [12 x i8] c" br i1 %gm\00" @.str7187 = private unnamed_addr constant [12 x i8] c", label %gf\00" @.str7188 = private unnamed_addr constant [12 x i8] c", label %gk\00" @.str7189 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7190 = private unnamed_addr constant [3 x i8] c"gf\00" @.str7191 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7192 = private unnamed_addr constant [6 x i8] c" %ga\00" @.str7193 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str7194 = private unnamed_addr constant [9 x i8] c", ptr %s\00" @.str7195 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str7196 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7197 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str7198 = private unnamed_addr constant [6 x i8] c" %gl\00" @.str7199 = private unnamed_addr constant [21 x i8] c" = load ptr, ptr %ga\00" @.str7200 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7201 = private unnamed_addr constant [6 x i8] c" %gr\00" @.str7202 = private unnamed_addr constant [20 x i8] c" = ptrtoint ptr %gl\00" @.str7203 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00" @.str7204 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7205 = private unnamed_addr constant [3 x i8] c"i8\00" @.str7206 = private unnamed_addr constant [6 x i8] c" %gl\00" @.str7207 = private unnamed_addr constant [20 x i8] c" = load i8, ptr %ga\00" @.str7208 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7209 = private unnamed_addr constant [6 x i8] c" %gr\00" @.str7210 = private unnamed_addr constant [15 x i8] c" = zext i8 %gl\00" @.str7211 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00" @.str7212 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7213 = private unnamed_addr constant [6 x i8] c" %gl\00" @.str7214 = private unnamed_addr constant [21 x i8] c" = load i32, ptr %ga\00" @.str7215 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7216 = private unnamed_addr constant [6 x i8] c" %gr\00" @.str7217 = private unnamed_addr constant [16 x i8] c" = sext i32 %gl\00" @.str7218 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00" @.str7219 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7220 = private unnamed_addr constant [3 x i8] c"gk\00" @.str7221 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7222 = private unnamed_addr constant [13 x i8] c" ret i64 0\0A\00" @.str7223 = private unnamed_addr constant [3 x i8] c"gn\00" @.str7224 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7225 = private unnamed_addr constant [23 x i8] c" %gdyn = sub i32 %p, \00" @.str7226 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7227 = 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" @.str7228 = 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" @.str7229 = 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" @.str7230 = 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" @.str7231 = private unnamed_addr constant [24 x i8] c"gdnone:\0A ret i64 0\0A}\0A\0A\00" @.str7232 = private unnamed_addr constant [67 x i8] c"define void @ludic_set(i32 %e, i32 %p, i32 %f, i64 %val) {\0Aentry:\0A\00" @.str7233 = private unnamed_addr constant [5 x i8] c" %m\00" @.str7234 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str7235 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7236 = private unnamed_addr constant [11 x i8] c" br i1 %m\00" @.str7237 = private unnamed_addr constant [11 x i8] c", label %g\00" @.str7238 = private unnamed_addr constant [12 x i8] c", label %gn\00" @.str7239 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7240 = private unnamed_addr constant [2 x i8] c"g\00" @.str7241 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7242 = private unnamed_addr constant [5 x i8] c" %s\00" @.str7243 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7244 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str7245 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str7246 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str7247 = private unnamed_addr constant [2 x i8] c"_\00" @.str7248 = private unnamed_addr constant [6 x i8] c" %sm\00" @.str7249 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str7250 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7251 = private unnamed_addr constant [12 x i8] c" br i1 %sm\00" @.str7252 = private unnamed_addr constant [12 x i8] c", label %sf\00" @.str7253 = private unnamed_addr constant [12 x i8] c", label %sk\00" @.str7254 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7255 = private unnamed_addr constant [3 x i8] c"sf\00" @.str7256 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7257 = private unnamed_addr constant [6 x i8] c" %sa\00" @.str7258 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str7259 = private unnamed_addr constant [9 x i8] c", ptr %s\00" @.str7260 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str7261 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7262 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str7263 = private unnamed_addr constant [6 x i8] c" %sp\00" @.str7264 = private unnamed_addr constant [29 x i8] c" = inttoptr i64 %val to ptr\0A\00" @.str7265 = private unnamed_addr constant [16 x i8] c" store ptr %sp\00" @.str7266 = private unnamed_addr constant [10 x i8] c", ptr %sa\00" @.str7267 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00" @.str7268 = private unnamed_addr constant [3 x i8] c"i8\00" @.str7269 = private unnamed_addr constant [6 x i8] c" %sb\00" @.str7270 = private unnamed_addr constant [25 x i8] c" = trunc i64 %val to i8\0A\00" @.str7271 = private unnamed_addr constant [15 x i8] c" store i8 %sb\00" @.str7272 = private unnamed_addr constant [10 x i8] c", ptr %sa\00" @.str7273 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00" @.str7274 = private unnamed_addr constant [6 x i8] c" %sw\00" @.str7275 = private unnamed_addr constant [26 x i8] c" = trunc i64 %val to i32\0A\00" @.str7276 = private unnamed_addr constant [16 x i8] c" store i32 %sw\00" @.str7277 = private unnamed_addr constant [10 x i8] c", ptr %sa\00" @.str7278 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00" @.str7279 = private unnamed_addr constant [3 x i8] c"sk\00" @.str7280 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7281 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str7282 = private unnamed_addr constant [3 x i8] c"gn\00" @.str7283 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7284 = private unnamed_addr constant [23 x i8] c" %sdyn = sub i32 %p, \00" @.str7285 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7286 = 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" @.str7287 = 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" @.str7288 = 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" @.str7289 = 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" @.str7290 = private unnamed_addr constant [23 x i8] c"sdnone:\0A ret void\0A}\0A\0A\00" @.str7291 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_has(i32 %e, i32 %p) {\0Aentry:\0A\00" @.str7292 = private unnamed_addr constant [5 x i8] c" %m\00" @.str7293 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str7294 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7295 = private unnamed_addr constant [11 x i8] c" br i1 %m\00" @.str7296 = private unnamed_addr constant [11 x i8] c", label %g\00" @.str7297 = private unnamed_addr constant [12 x i8] c", label %gn\00" @.str7298 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7299 = private unnamed_addr constant [2 x i8] c"g\00" @.str7300 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7301 = private unnamed_addr constant [6 x i8] c" %hp\00" @.str7302 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7303 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" @.str7304 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str7305 = private unnamed_addr constant [6 x i8] c" %hv\00" @.str7306 = private unnamed_addr constant [20 x i8] c" = load i8, ptr %hp\00" @.str7307 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7308 = private unnamed_addr constant [6 x i8] c" %hr\00" @.str7309 = private unnamed_addr constant [15 x i8] c" = zext i8 %hv\00" @.str7310 = private unnamed_addr constant [22 x i8] c" to i32\0A ret i32 %hr\00" @.str7311 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7312 = private unnamed_addr constant [3 x i8] c"gn\00" @.str7313 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7314 = private unnamed_addr constant [23 x i8] c" %hdyn = sub i32 %p, \00" @.str7315 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7316 = 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" @.str7317 = 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" @.str7318 = private unnamed_addr constant [24 x i8] c"hdnone:\0A ret i32 0\0A}\0A\0A\00" @.str7319 = private unnamed_addr constant [67 x i8] c"define i32 @ludic_register_prop(ptr %name, i32 %nfields) {\0Aentry:\0A\00" @.str7320 = 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" @.str7321 = private unnamed_addr constant [56 x i8] c"do:\0A %nf4 = mul i32 %nfields, 4\0A %sz = mul i32 %nf4, \00" @.str7322 = private unnamed_addr constant [31 x i8] c"\0A %szl = sext i32 %sz to i64\0A\00" @.str7323 = 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" @.str7324 = 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" @.str7325 = private unnamed_addr constant [32 x i8] c" %hbuf = call ptr @malloc(i64 \00" @.str7326 = private unnamed_addr constant [44 x i8] c")\0A call ptr @memset(ptr %hbuf, i32 0, i64 \00" @.str7327 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7328 = 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" @.str7329 = 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" @.str7330 = 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" @.str7331 = private unnamed_addr constant [22 x i8] c" %id = add i32 %dc, \00" @.str7332 = 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" @.str7333 = private unnamed_addr constant [22 x i8] c"rej:\0A ret i32 -1\0A}\0A\0A\00" @.str7334 = private unnamed_addr constant [56 x i8] c"define void @ludic_attach_dyn(i32 %e, i32 %p) {\0Aentry:\0A\00" @.str7335 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00" @.str7336 = 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" @.str7337 = private unnamed_addr constant [56 x i8] c"define void @ludic_detach_dyn(i32 %e, i32 %p) {\0Aentry:\0A\00" @.str7338 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00" @.str7339 = 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" @.str7340 = 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" @.str7341 = private unnamed_addr constant [41 x i8] c"define i32 @ludic_kind(i32 %e) {\0Aentry:\0A\00" @.str7342 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str7343 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" @.str7344 = private unnamed_addr constant [42 x i8] c" %k = load i32, ptr %kp\0A ret i32 %k\0A}\0A\0A\00" @.str7345 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_model_id(ptr %name) {\0Aentry:\0A\00" @.str7346 = private unnamed_addr constant [7 x i8] c" %mdc\00" @.str7347 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00" @.str7348 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7349 = private unnamed_addr constant [7 x i8] c" %mde\00" @.str7350 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %mdc\00" @.str7351 = private unnamed_addr constant [5 x i8] c", 0\0A\00" @.str7352 = private unnamed_addr constant [13 x i8] c" br i1 %mde\00" @.str7353 = private unnamed_addr constant [13 x i8] c", label %mdh\00" @.str7354 = private unnamed_addr constant [13 x i8] c", label %mdn\00" @.str7355 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7356 = private unnamed_addr constant [4 x i8] c"mdh\00" @.str7357 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str7358 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7359 = private unnamed_addr constant [4 x i8] c"mdn\00" @.str7360 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7361 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00" @.str7362 = private unnamed_addr constant [4 x i8] c"int\00" @.str7363 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str7364 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7365 = private unnamed_addr constant [25 x i8] c"define i32 @ludic_spawn_\00" @.str7366 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str7367 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str7368 = private unnamed_addr constant [42 x i8] c"define i32 @ludic_spawn(i32 %m) {\0Aentry:\0A\00" @.str7369 = private unnamed_addr constant [6 x i8] c" %sm\00" @.str7370 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %m, \00" @.str7371 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7372 = private unnamed_addr constant [12 x i8] c" br i1 %sm\00" @.str7373 = private unnamed_addr constant [12 x i8] c", label %sh\00" @.str7374 = private unnamed_addr constant [12 x i8] c", label %sn\00" @.str7375 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7376 = private unnamed_addr constant [3 x i8] c"sh\00" @.str7377 = private unnamed_addr constant [8 x i8] c":\0A %sr\00" @.str7378 = private unnamed_addr constant [26 x i8] c" = call i32 @ludic_spawn_\00" @.str7379 = private unnamed_addr constant [17 x i8] c"()\0A ret i32 %sr\00" @.str7380 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7381 = private unnamed_addr constant [3 x i8] c"sn\00" @.str7382 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7383 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00" @.str7384 = private unnamed_addr constant [58 x i8] c"define i32 @ludic_query_next(i32 %p, i32 %from) {\0Aentry:\0A\00" @.str7385 = private unnamed_addr constant [47 x i8] c" %n = load i32, ptr @L_entc\0A br label %loop\0A\00" @.str7386 = private unnamed_addr constant [56 x i8] c"loop:\0A %e = phi i32 [ %from, %entry ], [ %e1, %cont ]\0A\00" @.str7387 = private unnamed_addr constant [67 x i8] c" %go = icmp slt i32 %e, %n\0A br i1 %go, label %body, label %none\0A\00" @.str7388 = private unnamed_addr constant [39 x i8] c"body:\0A %ap = getelementptr inbounds [\00" @.str7389 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" @.str7390 = 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" @.str7391 = 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" @.str7392 = private unnamed_addr constant [20 x i8] c"hitb:\0A ret i32 %e\0A\00" @.str7393 = private unnamed_addr constant [46 x i8] c"cont:\0A %e1 = add i32 %e, 1\0A br label %loop\0A\00" @.str7394 = private unnamed_addr constant [23 x i8] c"none:\0A ret i32 -1\0A}\0A\0A\00" @.str7395 = private unnamed_addr constant [1 x i8] c"\00" @.str7396 = private unnamed_addr constant [4 x i8] c"int\00" @.str7397 = private unnamed_addr constant [41 x i8] c"define i32 @ludic_prop_count() {\0Aentry:\0A\00" @.str7398 = private unnamed_addr constant [52 x i8] c" %d = load i32, ptr @dyn_count\0A %n = add i32 %d, \00" @.str7399 = private unnamed_addr constant [18 x i8] c"\0A ret i32 %n\0A}\0A\0A\00" @.str7400 = private unnamed_addr constant [46 x i8] c"define ptr @ludic_prop_name(i32 %i) {\0Aentry:\0A\00" @.str7401 = private unnamed_addr constant [6 x i8] c" %pe\00" @.str7402 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %i, \00" @.str7403 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7404 = private unnamed_addr constant [12 x i8] c" br i1 %pe\00" @.str7405 = private unnamed_addr constant [12 x i8] c", label %ph\00" @.str7406 = private unnamed_addr constant [12 x i8] c", label %pn\00" @.str7407 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7408 = private unnamed_addr constant [3 x i8] c"ph\00" @.str7409 = private unnamed_addr constant [13 x i8] c":\0A ret ptr \00" @.str7410 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7411 = private unnamed_addr constant [3 x i8] c"pn\00" @.str7412 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7413 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %i, \00" @.str7414 = private unnamed_addr constant [35 x i8] c"\0A %dc = load i32, ptr @dyn_count\0A\00" @.str7415 = private unnamed_addr constant [70 x i8] c" %ib = icmp uge i32 %dyn, %dc\0A br i1 %ib, label %pbad, label %pdyn\0A\00" @.str7416 = 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" @.str7417 = private unnamed_addr constant [17 x i8] c"pbad:\0A ret ptr \00" @.str7418 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str7419 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_field_count(i32 %p) {\0Aentry:\0A\00" @.str7420 = private unnamed_addr constant [7 x i8] c" %fce\00" @.str7421 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str7422 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7423 = private unnamed_addr constant [13 x i8] c" br i1 %fce\00" @.str7424 = private unnamed_addr constant [13 x i8] c", label %fch\00" @.str7425 = private unnamed_addr constant [13 x i8] c", label %fcn\00" @.str7426 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7427 = private unnamed_addr constant [4 x i8] c"fch\00" @.str7428 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str7429 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7430 = private unnamed_addr constant [4 x i8] c"fcn\00" @.str7431 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7432 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00" @.str7433 = private unnamed_addr constant [35 x i8] c"\0A %dc = load i32, ptr @dyn_count\0A\00" @.str7434 = private unnamed_addr constant [72 x i8] c" %ib = icmp uge i32 %dyn, %dc\0A br i1 %ib, label %fcbad, label %fcdyn\0A\00" @.str7435 = 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" @.str7436 = private unnamed_addr constant [23 x i8] c"fcbad:\0A ret i32 0\0A}\0A\0A\00" @.str7437 = private unnamed_addr constant [55 x i8] c"define ptr @ludic_field_name(i32 %p, i32 %f) {\0Aentry:\0A\00" @.str7438 = private unnamed_addr constant [7 x i8] c" %fne\00" @.str7439 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str7440 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7441 = private unnamed_addr constant [13 x i8] c" br i1 %fne\00" @.str7442 = private unnamed_addr constant [13 x i8] c", label %fnk\00" @.str7443 = private unnamed_addr constant [13 x i8] c", label %fnn\00" @.str7444 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7445 = private unnamed_addr constant [4 x i8] c"fnk\00" @.str7446 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7447 = private unnamed_addr constant [2 x i8] c"_\00" @.str7448 = private unnamed_addr constant [8 x i8] c" %fnfe\00" @.str7449 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str7450 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7451 = private unnamed_addr constant [14 x i8] c" br i1 %fnfe\00" @.str7452 = private unnamed_addr constant [14 x i8] c", label %fnfh\00" @.str7453 = private unnamed_addr constant [14 x i8] c", label %fnfn\00" @.str7454 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7455 = private unnamed_addr constant [5 x i8] c"fnfh\00" @.str7456 = private unnamed_addr constant [13 x i8] c":\0A ret ptr \00" @.str7457 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7458 = private unnamed_addr constant [5 x i8] c"fnfn\00" @.str7459 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7460 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str7461 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7462 = private unnamed_addr constant [4 x i8] c"fnn\00" @.str7463 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7464 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str7465 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str7466 = private unnamed_addr constant [55 x i8] c"define ptr @ludic_field_type(i32 %p, i32 %f) {\0Aentry:\0A\00" @.str7467 = private unnamed_addr constant [7 x i8] c" %fte\00" @.str7468 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00" @.str7469 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7470 = private unnamed_addr constant [13 x i8] c" br i1 %fte\00" @.str7471 = private unnamed_addr constant [13 x i8] c", label %ftk\00" @.str7472 = private unnamed_addr constant [13 x i8] c", label %ftn\00" @.str7473 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7474 = private unnamed_addr constant [4 x i8] c"ftk\00" @.str7475 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7476 = private unnamed_addr constant [2 x i8] c"_\00" @.str7477 = private unnamed_addr constant [8 x i8] c" %ftfe\00" @.str7478 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00" @.str7479 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7480 = private unnamed_addr constant [14 x i8] c" br i1 %ftfe\00" @.str7481 = private unnamed_addr constant [14 x i8] c", label %ftfh\00" @.str7482 = private unnamed_addr constant [14 x i8] c", label %ftfn\00" @.str7483 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7484 = private unnamed_addr constant [5 x i8] c"ftfh\00" @.str7485 = private unnamed_addr constant [13 x i8] c":\0A ret ptr \00" @.str7486 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7487 = private unnamed_addr constant [5 x i8] c"ftfn\00" @.str7488 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7489 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str7490 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7491 = private unnamed_addr constant [4 x i8] c"ftn\00" @.str7492 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7493 = private unnamed_addr constant [11 x i8] c" ret ptr \00" @.str7494 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str7495 = private unnamed_addr constant [38 x i8] c"define void @L_tick_fixed() {\0Aentry:\0A\00" @.str7496 = private unnamed_addr constant [6 x i8] c"Input\00" @.str7497 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" @.str7498 = private unnamed_addr constant [7 x i8] c"Update\00" @.str7499 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" @.str7500 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str7501 = private unnamed_addr constant [39 x i8] c"define void @L_tick_render() {\0Aentry:\0A\00" @.str7502 = private unnamed_addr constant [7 x i8] c"Render\00" @.str7503 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str7504 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" @.str7505 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" @.str7506 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" @.str7507 = private unnamed_addr constant [8 x i8] c"rt_init\00" @.str7508 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00" @.str7509 = private unnamed_addr constant [6 x i8] c"Start\00" @.str7510 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7511 = private unnamed_addr constant [16 x i8] c", ptr @L_scene\0A\00" @.str7512 = private unnamed_addr constant [26 x i8] c" call void @scene_enter_\00" @.str7513 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str7514 = private unnamed_addr constant [14 x i8] c"program_start\00" @.str7515 = private unnamed_addr constant [33 x i8] c" call void @ev_program_start()\0A\00" @.str7516 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str7517 = private unnamed_addr constant [7 x i8] c"loop:\0A\00" @.str7518 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_running\00" @.str7519 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str7520 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7521 = private unnamed_addr constant [11 x i8] c"rt_running\00" @.str7522 = private unnamed_addr constant [26 x i8] c"call i32 @fn_rt_running()\00" @.str7523 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str7524 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7525 = private unnamed_addr constant [8 x i8] c"and i1 \00" @.str7526 = private unnamed_addr constant [3 x i8] c", \00" @.str7527 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str7528 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" @.str7529 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str7530 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" @.str7531 = private unnamed_addr constant [7 x i8] c"body:\0A\00" @.str7532 = private unnamed_addr constant [8 x i8] c"rt_poll\00" @.str7533 = private unnamed_addr constant [23 x i8] c"call i32 @fn_rt_poll()\00" @.str7534 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7535 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00" @.str7536 = private unnamed_addr constant [6 x i8] c"Input\00" @.str7537 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" @.str7538 = private unnamed_addr constant [7 x i8] c"Update\00" @.str7539 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" @.str7540 = private unnamed_addr constant [7 x i8] c"Render\00" @.str7541 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_frame\00" @.str7542 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7543 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7544 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7545 = private unnamed_addr constant [16 x i8] c", ptr @L_frame\0A\00" @.str7546 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str7547 = private unnamed_addr constant [7 x i8] c"done:\0A\00" @.str7548 = private unnamed_addr constant [35 x i8] c" call void @L_despawn_all(i32 2)\0A\00" @.str7549 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str7550 = private unnamed_addr constant [13 x i8] c"program_quit\00" @.str7551 = private unnamed_addr constant [32 x i8] c" call void @ev_program_quit()\0A\00" @.str7552 = private unnamed_addr constant [12 x i8] c"rt_shutdown\00" @.str7553 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_shutdown()\0A\00" @.str7554 = private unnamed_addr constant [15 x i8] c" ret i32 0\0A}\0A\00" @.str7555 = private unnamed_addr constant [1 x i8] c"\00" @.str7556 = private unnamed_addr constant [18 x i8] c"load i32, ptr @g_\00" @.str7557 = private unnamed_addr constant [25 x i8] c"call i32 @fn_rt_reg(i32 \00" @.str7558 = private unnamed_addr constant [2 x i8] c")\00" @.str7559 = private unnamed_addr constant [6 x i8] c"smend\00" @.str7560 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str7561 = private unnamed_addr constant [3 x i8] c", \00" @.str7562 = private unnamed_addr constant [6 x i8] c"sbody\00" @.str7563 = private unnamed_addr constant [5 x i8] c"sarm\00" @.str7564 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str7565 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7566 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7567 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7568 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7569 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str7570 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7571 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7572 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str7573 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7574 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7575 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7576 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" @.str7577 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7578 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_set_reg(i32 \00" @.str7579 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7580 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7581 = private unnamed_addr constant [27 x i8] c"become: no state or scene \00" @.str7582 = private unnamed_addr constant [25 x i8] c" call void @scene_exit_\00" @.str7583 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str7584 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7585 = private unnamed_addr constant [16 x i8] c", ptr @L_scene\0A\00" @.str7586 = private unnamed_addr constant [26 x i8] c" call void @scene_enter_\00" @.str7587 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str7588 = private unnamed_addr constant [5 x i8] c"file\00" @.str7589 = private unnamed_addr constant [4 x i8] c"%io\00" @.str7590 = private unnamed_addr constant [3 x i8] c" \00" @.str7591 = private unnamed_addr constant [14 x i8] c" = call i64 @\00" @.str7592 = private unnamed_addr constant [6 x i8] c"(ptr \00" @.str7593 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" @.str7594 = private unnamed_addr constant [11 x i8] c", ptr %f)\0A\00" @.str7595 = private unnamed_addr constant [5 x i8] c"size\00" @.str7596 = private unnamed_addr constant [6 x i8] c"%ioff\00" @.str7597 = private unnamed_addr constant [3 x i8] c" \00" @.str7598 = private unnamed_addr constant [12 x i8] c" = add i64 \00" @.str7599 = private unnamed_addr constant [3 x i8] c", \00" @.str7600 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7601 = private unnamed_addr constant [5 x i8] c"%ioa\00" @.str7602 = private unnamed_addr constant [3 x i8] c" \00" @.str7603 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i64 \00" @.str7604 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7605 = private unnamed_addr constant [5 x i8] c"save\00" @.str7606 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str7607 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7608 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str7609 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7610 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str7611 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7612 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str7613 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7614 = private unnamed_addr constant [6 x i8] c"%ioff\00" @.str7615 = private unnamed_addr constant [3 x i8] c" \00" @.str7616 = private unnamed_addr constant [12 x i8] c" = add i64 \00" @.str7617 = private unnamed_addr constant [3 x i8] c", \00" @.str7618 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7619 = private unnamed_addr constant [2 x i8] c"0\00" @.str7620 = private unnamed_addr constant [8 x i8] c"@L_entc\00" @.str7621 = private unnamed_addr constant [2 x i8] c"4\00" @.str7622 = private unnamed_addr constant [9 x i8] c"@L_freen\00" @.str7623 = private unnamed_addr constant [2 x i8] c"4\00" @.str7624 = private unnamed_addr constant [21 x i8] c" %nalive = mul i64 \00" @.str7625 = private unnamed_addr constant [5 x i8] c", 4\0A\00" @.str7626 = private unnamed_addr constant [9 x i8] c"@L_alive\00" @.str7627 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str7628 = private unnamed_addr constant [12 x i8] c"@L_freelist\00" @.str7629 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str7630 = private unnamed_addr constant [8 x i8] c"@L_kind\00" @.str7631 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str7632 = private unnamed_addr constant [13 x i8] c"@L_owner_arr\00" @.str7633 = private unnamed_addr constant [8 x i8] c"%nalive\00" @.str7634 = private unnamed_addr constant [4 x i8] c"@g_\00" @.str7635 = private unnamed_addr constant [2 x i8] c"4\00" @.str7636 = private unnamed_addr constant [5 x i8] c"%csz\00" @.str7637 = private unnamed_addr constant [3 x i8] c" \00" @.str7638 = private unnamed_addr constant [37 x i8] c" = ptrtoint ptr getelementptr (%Cmp_\00" @.str7639 = private unnamed_addr constant [17 x i8] c", ptr null, i32 \00" @.str7640 = private unnamed_addr constant [10 x i8] c") to i64\0A\00" @.str7641 = private unnamed_addr constant [4 x i8] c"@S_\00" @.str7642 = private unnamed_addr constant [4 x i8] c"@H_\00" @.str7643 = private unnamed_addr constant [5 x i8] c"file\00" @.str7644 = private unnamed_addr constant [70 x i8] c"@.sav_path = private unnamed_addr constant [10 x i8] c\22ludic.sav\5C00\22\0A\00" @.str7645 = private unnamed_addr constant [60 x i8] c"@.sav_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" @.str7646 = private unnamed_addr constant [60 x i8] c"@.sav_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" @.str7647 = private unnamed_addr constant [14 x i8] c"rt_save_state\00" @.str7648 = private unnamed_addr constant [14 x i8] c"rt_load_state\00" @.str7649 = private unnamed_addr constant [32 x i8] c"define void @L_save() {\0Aentry:\0A\00" @.str7650 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\0A\00" @.str7651 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" @.str7652 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %out, label %go\0Ago:\0A\00" @.str7653 = private unnamed_addr constant [7 x i8] c"fwrite\00" @.str7654 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_save_state(ptr %f)\0A\00" @.str7655 = 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" @.str7656 = private unnamed_addr constant [31 x i8] c"define i32 @L_load() {\0Aentry:\0A\00" @.str7657 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_rb)\0A\00" @.str7658 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" @.str7659 = private unnamed_addr constant [60 x i8] c" br i1 %bad, label %miss, label %go\0Amiss:\0A ret i32 0\0Ago:\0A\00" @.str7660 = private unnamed_addr constant [6 x i8] c"fread\00" @.str7661 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_load_state(ptr %f)\0A\00" @.str7662 = private unnamed_addr constant [48 x i8] c" %c = call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\0A\00" @.str7663 = private unnamed_addr constant [45 x i8] c"define i32 @L_world_save(ptr %buf) {\0Aentry:\0A\00" @.str7664 = private unnamed_addr constant [5 x i8] c"save\00" @.str7665 = private unnamed_addr constant [1 x i8] c"\00" @.str7666 = private unnamed_addr constant [5 x i8] c"%wsn\00" @.str7667 = private unnamed_addr constant [3 x i8] c" \00" @.str7668 = private unnamed_addr constant [14 x i8] c" = trunc i64 \00" @.str7669 = private unnamed_addr constant [9 x i8] c" to i32\0A\00" @.str7670 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str7671 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str7672 = private unnamed_addr constant [56 x i8] c"define void @L_world_load(ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str7673 = private unnamed_addr constant [5 x i8] c"load\00" @.str7674 = private unnamed_addr constant [1 x i8] c"\00" @.str7675 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str7676 = private unnamed_addr constant [37 x i8] c"define i32 @L_world_size() {\0Aentry:\0A\00" @.str7677 = private unnamed_addr constant [5 x i8] c"size\00" @.str7678 = private unnamed_addr constant [1 x i8] c"\00" @.str7679 = private unnamed_addr constant [5 x i8] c"%wzn\00" @.str7680 = private unnamed_addr constant [3 x i8] c" \00" @.str7681 = private unnamed_addr constant [14 x i8] c" = trunc i64 \00" @.str7682 = private unnamed_addr constant [9 x i8] c" to i32\0A\00" @.str7683 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str7684 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str7685 = private unnamed_addr constant [5 x i8] c"file\00" @.str7686 = private unnamed_addr constant [3 x i8] c"i8\00" @.str7687 = private unnamed_addr constant [3 x i8] c"i8\00" @.str7688 = private unnamed_addr constant [2 x i8] c"1\00" @.str7689 = private unnamed_addr constant [2 x i8] c"4\00" @.str7690 = private unnamed_addr constant [24 x i8] c"ludicc(self): warning: \00" @.str7691 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7692 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str7693 = private unnamed_addr constant [13 x i8] c"@Sync field \00" @.str7694 = private unnamed_addr constant [2 x i8] c".\00" @.str7695 = private unnamed_addr constant [68 x i8] c" is not a POD scalar (networked fields must be int/bool/fixed/byte)\00" @.str7696 = private unnamed_addr constant [7 x i8] c"model \00" @.str7697 = private unnamed_addr constant [9 x i8] c" @Syncs \00" @.str7698 = private unnamed_addr constant [51 x i8] c" but it has no @Sync fields \E2\80\94 nothing replicates\00" @.str7699 = private unnamed_addr constant [25 x i8] c"define i32 @L_serialize_\00" @.str7700 = private unnamed_addr constant [29 x i8] c"(i32 %e, ptr %buf) {\0Aentry:\0A\00" @.str7701 = private unnamed_addr constant [3 x i8] c" \00" @.str7702 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7703 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str7704 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str7705 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str7706 = private unnamed_addr constant [3 x i8] c" \00" @.str7707 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str7708 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7709 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str7710 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7711 = private unnamed_addr constant [3 x i8] c" \00" @.str7712 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i32 \00" @.str7713 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7714 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str7715 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7716 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str7717 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7718 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str7719 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00" @.str7720 = private unnamed_addr constant [22 x i8] c"define void @L_apply_\00" @.str7721 = private unnamed_addr constant [39 x i8] c"(i32 %e, ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str7722 = private unnamed_addr constant [3 x i8] c" \00" @.str7723 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" @.str7724 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" @.str7725 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" @.str7726 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" @.str7727 = private unnamed_addr constant [3 x i8] c" \00" @.str7728 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" @.str7729 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7730 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str7731 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7732 = private unnamed_addr constant [3 x i8] c" \00" @.str7733 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i32 \00" @.str7734 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7735 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" @.str7736 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7737 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str7738 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7739 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str7740 = private unnamed_addr constant [56 x i8] c"define i32 @ludic_serialize(i32 %e, ptr %buf) {\0Aentry:\0A\00" @.str7741 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str7742 = 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" @.str7743 = private unnamed_addr constant [5 x i8] c" %c\00" @.str7744 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str7745 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7746 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str7747 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str7748 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str7749 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7750 = private unnamed_addr constant [2 x i8] c"h\00" @.str7751 = private unnamed_addr constant [7 x i8] c":\0A %r\00" @.str7752 = private unnamed_addr constant [26 x i8] c" = call i32 @L_serialize_\00" @.str7753 = private unnamed_addr constant [32 x i8] c"(i32 %e, ptr %buf)\0A ret i32 %r\00" @.str7754 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7755 = private unnamed_addr constant [2 x i8] c"n\00" @.str7756 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7757 = private unnamed_addr constant [16 x i8] c" ret i32 0\0A}\0A\0A\00" @.str7758 = private unnamed_addr constant [63 x i8] c"define void @ludic_apply(i32 %e, ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str7759 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str7760 = 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" @.str7761 = private unnamed_addr constant [5 x i8] c" %c\00" @.str7762 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str7763 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7764 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str7765 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str7766 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str7767 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7768 = private unnamed_addr constant [2 x i8] c"h\00" @.str7769 = private unnamed_addr constant [24 x i8] c":\0A call void @L_apply_\00" @.str7770 = private unnamed_addr constant [41 x i8] c"(i32 %e, ptr %buf, i32 %len)\0A ret void\0A\00" @.str7771 = private unnamed_addr constant [2 x i8] c"n\00" @.str7772 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7773 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str7774 = private unnamed_addr constant [46 x i8] c"define i32 @ludic_sync_size(i32 %e) {\0Aentry:\0A\00" @.str7775 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00" @.str7776 = 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" @.str7777 = private unnamed_addr constant [5 x i8] c" %c\00" @.str7778 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00" @.str7779 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7780 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str7781 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str7782 = private unnamed_addr constant [11 x i8] c", label %n\00" @.str7783 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7784 = private unnamed_addr constant [2 x i8] c"h\00" @.str7785 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00" @.str7786 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7787 = private unnamed_addr constant [2 x i8] c"n\00" @.str7788 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7789 = private unnamed_addr constant [16 x i8] c" ret i32 0\0A}\0A\0A\00" @.str7790 = private unnamed_addr constant [38 x i8] c"define i32 @L_owner(i32 %e) {\0Aentry:\0A\00" @.str7791 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00" @.str7792 = 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" @.str7793 = private unnamed_addr constant [52 x i8] c"define void @L_set_owner(i32 %e, i32 %id) {\0Aentry:\0A\00" @.str7794 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00" @.str7795 = 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" @.str7796 = private unnamed_addr constant [41 x i8] c"define i32 @L_is_owner(i32 %e) {\0Aentry:\0A\00" @.str7797 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00" @.str7798 = 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" @.str7799 = 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" @.str7800 = private unnamed_addr constant [62 x i8] c"@L_netq = internal global [64 x [2048 x i8]] zeroinitializer\0A\00" @.str7801 = private unnamed_addr constant [56 x i8] c"@L_netlen = internal global [64 x i32] zeroinitializer\0A\00" @.str7802 = private unnamed_addr constant [36 x i8] c"@L_nethead = internal global i32 0\0A\00" @.str7803 = private unnamed_addr constant [36 x i8] c"@L_nettail = internal global i32 0\0A\00" @.str7804 = private unnamed_addr constant [65 x i8] c"define void @L_net_send(i32 %peer, ptr %buf, i32 %len) {\0Aentry:\0A\00" @.str7805 = 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" @.str7806 = 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" @.str7807 = private unnamed_addr constant [65 x i8] c" %t = load i32, ptr @L_nettail\0A %h = load i32, ptr @L_nethead\0A\00" @.str7808 = 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" @.str7809 = private unnamed_addr constant [39 x i8] c" br i1 %full, label %drop, label %go\0A\00" @.str7810 = private unnamed_addr constant [5 x i8] c"go:\0A\00" @.str7811 = 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" @.str7812 = 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" @.str7813 = 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" @.str7814 = private unnamed_addr constant [50 x i8] c" store i32 %tn, ptr @L_nettail\0A br label %drop\0A\00" @.str7815 = private unnamed_addr constant [21 x i8] c"drop:\0A ret void\0A}\0A\0A\00" @.str7816 = private unnamed_addr constant [53 x i8] c"define i32 @L_net_poll(ptr %buf, i32 %cap) {\0Aentry:\0A\00" @.str7817 = 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" @.str7818 = private unnamed_addr constant [40 x i8] c" br i1 %empty, label %none, label %go\0A\00" @.str7819 = private unnamed_addr constant [5 x i8] c"go:\0A\00" @.str7820 = 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" @.str7821 = 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" @.str7822 = 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" @.str7823 = 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" @.str7824 = 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" @.str7825 = private unnamed_addr constant [22 x i8] c"none:\0A ret i32 0\0A}\0A\0A\00" @.str7826 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str7827 = private unnamed_addr constant [11 x i8] c"L_net_send\00" @.str7828 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str7829 = private unnamed_addr constant [11 x i8] c"L_net_poll\00" @.str7830 = private unnamed_addr constant [58 x i8] c"@L_recvbuf = internal global [2048 x i8] zeroinitializer\0A\00" @.str7831 = private unnamed_addr constant [9 x i8] c"net_poll\00" @.str7832 = private unnamed_addr constant [53 x i8] c"define void @L_net_pump() {\0Aentry:\0A br label %loop\0A\00" @.str7833 = private unnamed_addr constant [24 x i8] c"loop:\0A %n = call i32 @\00" @.str7834 = private unnamed_addr constant [28 x i8] c"(ptr @L_recvbuf, i32 2048)\0A\00" @.str7835 = private unnamed_addr constant [68 x i8] c" %done = icmp eq i32 %n, 0\0A br i1 %done, label %fin, label %body\0A\00" @.str7836 = private unnamed_addr constant [41 x i8] c"body:\0A %eid = load i32, ptr @L_recvbuf\0A\00" @.str7837 = private unnamed_addr constant [5 x i8] c" %c\00" @.str7838 = private unnamed_addr constant [22 x i8] c" = icmp eq i32 %eid, \00" @.str7839 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7840 = private unnamed_addr constant [11 x i8] c" br i1 %c\00" @.str7841 = private unnamed_addr constant [11 x i8] c", label %h\00" @.str7842 = private unnamed_addr constant [11 x i8] c", label %x\00" @.str7843 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7844 = private unnamed_addr constant [2 x i8] c"h\00" @.str7845 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7846 = private unnamed_addr constant [2 x i8] c"_\00" @.str7847 = private unnamed_addr constant [6 x i8] c" %fa\00" @.str7848 = private unnamed_addr constant [51 x i8] c" = getelementptr inbounds i8, ptr @L_recvbuf, i32 \00" @.str7849 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7850 = private unnamed_addr constant [6 x i8] c" %fv\00" @.str7851 = private unnamed_addr constant [9 x i8] c" = load \00" @.str7852 = private unnamed_addr constant [10 x i8] c", ptr %fa\00" @.str7853 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7854 = private unnamed_addr constant [3 x i8] c", \00" @.str7855 = private unnamed_addr constant [5 x i8] c" %fv\00" @.str7856 = private unnamed_addr constant [17 x i8] c" call void @ev_\00" @.str7857 = private unnamed_addr constant [2 x i8] c"(\00" @.str7858 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7859 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str7860 = private unnamed_addr constant [2 x i8] c"x\00" @.str7861 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7862 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" @.str7863 = private unnamed_addr constant [20 x i8] c"fin:\0A ret void\0A}\0A\0A\00" @.str7864 = private unnamed_addr constant [58 x i8] c"@L_sendbuf = internal global [2048 x i8] zeroinitializer\0A\00" @.str7865 = private unnamed_addr constant [6 x i8] c"panel\00" @.str7866 = private unnamed_addr constant [4 x i8] c"col\00" @.str7867 = private unnamed_addr constant [4 x i8] c"row\00" @.str7868 = private unnamed_addr constant [6 x i8] c"label\00" @.str7869 = private unnamed_addr constant [7 x i8] c"button\00" @.str7870 = private unnamed_addr constant [6 x i8] c"image\00" @.str7871 = private unnamed_addr constant [7 x i8] c"spacer\00" @.str7872 = private unnamed_addr constant [3 x i8] c"id\00" @.str7873 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_set(i32 \00" @.str7874 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7875 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7876 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7877 = private unnamed_addr constant [2 x i8] c"w\00" @.str7878 = private unnamed_addr constant [2 x i8] c"h\00" @.str7879 = private unnamed_addr constant [2 x i8] c"x\00" @.str7880 = private unnamed_addr constant [2 x i8] c"y\00" @.str7881 = private unnamed_addr constant [4 x i8] c"pad\00" @.str7882 = private unnamed_addr constant [4 x i8] c"gap\00" @.str7883 = private unnamed_addr constant [3 x i8] c"bg\00" @.str7884 = private unnamed_addr constant [3 x i8] c"fg\00" @.str7885 = private unnamed_addr constant [7 x i8] c"border\00" @.str7886 = private unnamed_addr constant [5 x i8] c"grow\00" @.str7887 = private unnamed_addr constant [5 x i8] c"font\00" @.str7888 = private unnamed_addr constant [5 x i8] c"size\00" @.str7889 = private unnamed_addr constant [6 x i8] c"inset\00" @.str7890 = private unnamed_addr constant [6 x i8] c"focus\00" @.str7891 = private unnamed_addr constant [33 x i8] c" call void @fn_rt_ui_reset(i32 \00" @.str7892 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7893 = private unnamed_addr constant [2 x i8] c"1\00" @.str7894 = private unnamed_addr constant [3 x i8] c"id\00" @.str7895 = private unnamed_addr constant [5 x i8] c"text\00" @.str7896 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_ui_static_text(i32 \00" @.str7897 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7898 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7899 = private unnamed_addr constant [5 x i8] c"skin\00" @.str7900 = private unnamed_addr constant [6 x i8] c"image\00" @.str7901 = private unnamed_addr constant [32 x i8] c"call i32 @fn_rt_image_load(ptr \00" @.str7902 = private unnamed_addr constant [2 x i8] c")\00" @.str7903 = private unnamed_addr constant [5 x i8] c"skin\00" @.str7904 = private unnamed_addr constant [6 x i8] c"align\00" @.str7905 = private unnamed_addr constant [7 x i8] c"center\00" @.str7906 = private unnamed_addr constant [4 x i8] c"end\00" @.str7907 = private unnamed_addr constant [2 x i8] c"1\00" @.str7908 = private unnamed_addr constant [34 x i8] c"define void @ui_build() {\0Aentry:\0A\00" @.str7909 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" @.str7910 = private unnamed_addr constant [3 x i8] c", \00" @.str7911 = private unnamed_addr constant [7 x i8] c" %arg_\00" @.str7912 = private unnamed_addr constant [5 x i8] c"void\00" @.str7913 = private unnamed_addr constant [20 x i8] c" %retval = alloca \00" @.str7914 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7915 = private unnamed_addr constant [9 x i8] c" store \00" @.str7916 = private unnamed_addr constant [7 x i8] c" %arg_\00" @.str7917 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str7918 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7919 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str7920 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" @.str7921 = private unnamed_addr constant [5 x i8] c"void\00" @.str7922 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" @.str7923 = private unnamed_addr constant [6 x i8] c"load \00" @.str7924 = private unnamed_addr constant [14 x i8] c", ptr %retval\00" @.str7925 = private unnamed_addr constant [7 x i8] c" ret \00" @.str7926 = private unnamed_addr constant [2 x i8] c" \00" @.str7927 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7928 = private unnamed_addr constant [8 x i8] c"define \00" @.str7929 = private unnamed_addr constant [6 x i8] c" @fn_\00" @.str7930 = private unnamed_addr constant [2 x i8] c"(\00" @.str7931 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" @.str7932 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str7933 = private unnamed_addr constant [4 x i8] c"int\00" @.str7934 = private unnamed_addr constant [24 x i8] c" %retval = alloca i32\0A\00" @.str7935 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" @.str7936 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" @.str7937 = private unnamed_addr constant [28 x i8] c" store i32 0, ptr %retval\0A\00" @.str7938 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str7939 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" @.str7940 = private unnamed_addr constant [22 x i8] c"load i32, ptr %retval\00" @.str7941 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str7942 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7943 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" @.str7944 = private unnamed_addr constant [3 x i8] c"}\0A\00" @.str7945 = private unnamed_addr constant [5 x i8] c"void\00" @.str7946 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" @.str7947 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" @.str7948 = private unnamed_addr constant [23 x i8] c"define void @fn__test_\00" @.str7949 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" @.str7950 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" @.str7951 = private unnamed_addr constant [38 x i8] c"@L_test_fail = internal global i32 0\0A\00" @.str7952 = 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" @.str7953 = 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" @.str7954 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" @.str7955 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" @.str7956 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" @.str7957 = private unnamed_addr constant [51 x i8] c" %failed = alloca i32\0A store i32 0, ptr %failed\0A\00" @.str7958 = private unnamed_addr constant [24 x i8] c" call void @rt_init()\0A\00" @.str7959 = private unnamed_addr constant [8 x i8] c"ok - \00" @.str7960 = private unnamed_addr constant [8 x i8] c"FAIL - \00" @.str7961 = private unnamed_addr constant [33 x i8] c" store i32 0, ptr @L_test_fail\0A\00" @.str7962 = private unnamed_addr constant [23 x i8] c" call void @fn__test_\00" @.str7963 = private unnamed_addr constant [4 x i8] c"()\0A\00" @.str7964 = private unnamed_addr constant [27 x i8] c"load i32, ptr @L_test_fail\00" @.str7965 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" @.str7966 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7967 = private unnamed_addr constant [6 x i8] c"tpass\00" @.str7968 = private unnamed_addr constant [6 x i8] c"tfail\00" @.str7969 = private unnamed_addr constant [6 x i8] c"tdone\00" @.str7970 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str7971 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7972 = private unnamed_addr constant [10 x i8] c", label %\00" @.str7973 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7974 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7975 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str7976 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7977 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str7978 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7979 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7980 = private unnamed_addr constant [22 x i8] c"load i32, ptr %failed\00" @.str7981 = private unnamed_addr constant [9 x i8] c"add i32 \00" @.str7982 = private unnamed_addr constant [4 x i8] c", 1\00" @.str7983 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str7984 = private unnamed_addr constant [15 x i8] c", ptr %failed\0A\00" @.str7985 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" @.str7986 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7987 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str7988 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str7989 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str7990 = private unnamed_addr constant [22 x i8] c"load i32, ptr %failed\00" @.str7991 = private unnamed_addr constant [9 x i8] c"sub i32 \00" @.str7992 = private unnamed_addr constant [3 x i8] c", \00" @.str7993 = private unnamed_addr constant [55 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_test_sum, i32 \00" @.str7994 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str7995 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str7996 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" @.str7997 = private unnamed_addr constant [4 x i8] c", 0\00" @.str7998 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str7999 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" @.str8000 = private unnamed_addr constant [11 x i8] c" ret i32 \00" @.str8001 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" @.str8002 = private unnamed_addr constant [3 x i8] c"wb\00" @.str8003 = private unnamed_addr constant [7 x i8] c".ludic\00" @.str8004 = private unnamed_addr constant [2 x i8] c"/\00" @.str8005 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00" @.str8006 = private unnamed_addr constant [8 x i8] c"VERSION\00" @.str8007 = private unnamed_addr constant [24 x i8] c"ludic (version unknown)\00" @.str8008 = private unnamed_addr constant [7 x i8] c"ludic \00" @.str8009 = private unnamed_addr constant [6 x i8] c"ludic\00" @.str8010 = private unnamed_addr constant [10 x i8] c"--version\00" @.str8011 = private unnamed_addr constant [11 x i8] c"--windowed\00" @.str8012 = private unnamed_addr constant [11 x i8] c"--headless\00" @.str8013 = private unnamed_addr constant [12 x i8] c"--emit-llvm\00" @.str8014 = private unnamed_addr constant [6 x i8] c"--fmt\00" @.str8015 = private unnamed_addr constant [13 x i8] c"--save-temps\00" @.str8016 = private unnamed_addr constant [6 x i8] c"--run\00" @.str8017 = private unnamed_addr constant [3 x i8] c"-o\00" @.str8018 = private unnamed_addr constant [31 x i8] c"ludicc: ignoring unknown flag \00" @.str8019 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str8020 = private unnamed_addr constant [90 x i8] c"usage: ludicc [-o out] [--windowed|--headless] [--emit-llvm] [--save-temps]\0A\00" @.str8021 = private unnamed_addr constant [27 x i8] c"ludicc: cannot open input\0A\00" @.str8022 = private unnamed_addr constant [16 x i8] c"/tmp/ludic-run-\00" @.str8023 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" @.str8024 = private unnamed_addr constant [4 x i8] c".ll\00" @.str8025 = private unnamed_addr constant [25 x i8] c"ludicc: cannot write IR\0A\00" @.str8026 = private unnamed_addr constant [9 x i8] c"LUDIC_CC\00" @.str8027 = private unnamed_addr constant [6 x i8] c"clang\00" @.str8028 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00" @.str8029 = private unnamed_addr constant [27 x i8] c" -O2 -Wno-override-module \00" @.str8030 = private unnamed_addr constant [24 x i8] c"runtime/native/cocoa.ll\00" @.str8031 = private unnamed_addr constant [2 x i8] c" \00" @.str8032 = private unnamed_addr constant [42 x i8] c" -framework Cocoa -Wl,-rpath,@loader_path\00" @.str8033 = private unnamed_addr constant [5 x i8] c" -o \00" @.str8034 = private unnamed_addr constant [7 x i8] c"rm -f \00" @.str8035 = private unnamed_addr constant [21 x i8] c"ludicc: link failed\0A\00" define i32 @fn_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 @fn_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 @fn_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 @fn_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 } 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 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 ptr, ptr %t0 %t29 = getelementptr inbounds %Cmp_Buf, ptr %t28, i32 0, i32 2 %t30 = load i32, ptr %t29 %t31 = mul i32 %t30, 2 store i32 %t31, ptr %t27 br label %wcond3 wend5: %t32 = load ptr, ptr %t0 %t33 = getelementptr inbounds %Cmp_Buf, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Buf, ptr %t34, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = load ptr, ptr %t0 %t38 = getelementptr inbounds %Cmp_Buf, ptr %t37, i32 0, i32 2 %t39 = load i32, ptr %t38 %t40 = zext i32 %t39 to i64 %t41 = call ptr @realloc(ptr %t36, i64 %t40) store ptr %t41, ptr %t33 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 ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Buf, ptr %t14, i32 0, i32 1 %t16 = load i32, ptr %t15 %t17 = add i32 %t16, 1 store i32 %t17, 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 @fopen(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 %t13 = alloca ptr 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 store ptr %t3, ptr %t13 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0 %t16 = load i32, ptr %t0 store i32 %t16, ptr %t15 %t17 = load ptr, ptr %t13 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7 %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 %t18 %t25 = load ptr, ptr %t13 store ptr %t25, ptr %retval br label %ret ret: %t26 = load ptr, ptr %retval ret ptr %t26 } 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 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1 %t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2 %t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0 %t28 = load i32, ptr %t25 %t29 = load i32, ptr %t26 %t30 = icmp sge i32 %t28, %t29 br i1 %t30, label %grow0, label %put1 grow0: %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 %put1 put1: %t40 = load ptr, ptr %t11 %t41 = load ptr, ptr %t27 %t42 = getelementptr inbounds ptr, ptr %t41, i32 %t28 store ptr %t40, ptr %t42 %t43 = add i32 %t28, 1 store i32 %t43, ptr %t25 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 void @fn_lex(ptr %arg_src) { entry: %t0 = alloca ptr %t7 = alloca i32 %t8 = alloca i32 %t12 = alloca i32 %t23 = alloca i32 %t33 = alloca i32 %t34 = alloca i32 %t61 = alloca i32 %t88 = alloca i32 %t92 = alloca ptr %t93 = alloca i32 %t94 = alloca i32 %t126 = alloca i32 %t128 = alloca i32 %t180 = alloca ptr %t181 = alloca i32 %t182 = alloca i32 %t227 = alloca i32 %t242 = alloca i32 %t279 = alloca i32 %t297 = alloca i32 %t310 = alloca i32 %t311 = alloca i32 %t317 = alloca i32 %t332 = alloca i32 %t355 = alloca i32 %t356 = alloca i32 %t384 = alloca i32 %t385 = alloca i32 %t417 = alloca i32 %t418 = alloca i32 %t419 = alloca i32 %t463 = alloca i32 %t472 = alloca i32 %t473 = alloca i32 store ptr %arg_src, 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 @g_toks store i32 0, ptr %t7 store i32 1, ptr %t8 %t9 = load ptr, ptr %t0 %t10 = call i64 @strlen(ptr %t9) %t11 = trunc i64 %t10 to i32 store i32 %t11, ptr %t12 br label %wcond0 wcond0: %t13 = load i32, ptr %t7 %t14 = load i32, ptr %t12 %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 %t7 %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, 10 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then3, label %ifend5 then3: %t28 = load i32, ptr %t8 call void @fn_tok_push(i32 4, ptr null, i32 0, i32 %t28) %t29 = load i32, ptr %t8 %t30 = add i32 %t29, 1 store i32 %t30, ptr %t8 %t31 = load i32, ptr %t7 %t32 = add i32 %t31, 1 store i32 %t32, ptr %t7 br label %wcond0 ifend5: %t35 = load i32, ptr %t23 %t36 = icmp eq i32 %t35, 32 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t34 br i1 %t38, label %scend7, label %sc6 sc6: %t40 = load i32, ptr %t23 %t41 = icmp eq i32 %t40, 9 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t34 br label %scend7 scend7: %t45 = load i32, ptr %t34 %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t33 br i1 %t46, label %scend9, label %sc8 sc8: %t48 = load i32, ptr %t23 %t49 = icmp eq i32 %t48, 13 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 %t52 = zext i1 %t51 to i32 store i32 %t52, ptr %t33 br label %scend9 scend9: %t53 = load i32, ptr %t33 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then10, label %ifend12 then10: %t55 = load i32, ptr %t7 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t7 br label %wcond0 ifend12: %t57 = load i32, ptr %t23 %t58 = icmp eq i32 %t57, 35 %t59 = zext i1 %t58 to i32 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then13, label %ifend15 then13: br label %wcond16 wcond16: %t62 = load i32, ptr %t7 %t63 = load i32, ptr %t12 %t64 = icmp slt i32 %t62, %t63 %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t61 br i1 %t66, label %sc19, label %scend20 sc19: %t68 = load ptr, ptr %t0 %t69 = load i32, ptr %t7 %t70 = getelementptr inbounds i8, ptr %t68, i32 %t69 %t71 = load i8, ptr %t70 %t72 = zext i8 %t71 to i32 %t73 = icmp ne i32 %t72, 10 %t74 = zext i1 %t73 to i32 %t75 = icmp ne i32 %t74, 0 %t76 = zext i1 %t75 to i32 store i32 %t76, ptr %t61 br label %scend20 scend20: %t77 = load i32, ptr %t61 %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %wbody17, label %wend18 wbody17: %t79 = load i32, ptr %t7 %t80 = add i32 %t79, 1 store i32 %t80, ptr %t7 br label %wcond16 wend18: br label %wcond0 ifend15: %t81 = load i32, ptr %t23 %t82 = icmp eq i32 %t81, 34 %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then21, label %ifend23 then21: %t85 = load i32, ptr %t7 %t86 = add i32 %t85, 1 store i32 %t86, ptr %t7 %t87 = load i32, ptr %t7 store i32 %t87, ptr %t88 %t89 = load i32, ptr %t12 %t90 = zext i32 %t89 to i64 %t91 = call ptr @malloc(i64 %t90) store ptr %t91, ptr %t92 store i32 0, ptr %t93 br label %wcond24 wcond24: %t95 = load i32, ptr %t7 %t96 = load i32, ptr %t12 %t97 = icmp slt i32 %t95, %t96 %t98 = zext i1 %t97 to i32 %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t94 br i1 %t99, label %sc27, label %scend28 sc27: %t101 = load ptr, ptr %t0 %t102 = load i32, ptr %t7 %t103 = getelementptr inbounds i8, ptr %t101, i32 %t102 %t104 = load i8, ptr %t103 %t105 = zext i8 %t104 to i32 %t106 = icmp ne i32 %t105, 34 %t107 = zext i1 %t106 to i32 %t108 = icmp ne i32 %t107, 0 %t109 = zext i1 %t108 to i32 store i32 %t109, ptr %t94 br label %scend28 scend28: %t110 = load i32, ptr %t94 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %wbody25, label %wend26 wbody25: %t112 = load ptr, ptr %t0 %t113 = load i32, ptr %t7 %t114 = getelementptr inbounds i8, ptr %t112, i32 %t113 %t115 = load i8, ptr %t114 %t116 = zext i8 %t115 to i32 %t117 = icmp eq i32 %t116, 92 %t118 = zext i1 %t117 to i32 %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then29, label %else30 then29: %t120 = load ptr, ptr %t0 %t121 = load i32, ptr %t7 %t122 = add i32 %t121, 1 %t123 = getelementptr inbounds i8, ptr %t120, i32 %t122 %t124 = load i8, ptr %t123 %t125 = zext i8 %t124 to i32 store i32 %t125, ptr %t126 %t127 = load i32, ptr %t126 store i32 %t127, ptr %t128 %t129 = load i32, ptr %t126 %t130 = icmp eq i32 %t129, 110 %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then32, label %ifend34 then32: store i32 10, ptr %t128 br label %ifend34 ifend34: %t133 = load i32, ptr %t126 %t134 = icmp eq i32 %t133, 116 %t135 = zext i1 %t134 to i32 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then35, label %ifend37 then35: store i32 9, ptr %t128 br label %ifend37 ifend37: %t137 = load i32, ptr %t126 %t138 = icmp eq i32 %t137, 48 %t139 = zext i1 %t138 to i32 %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %then38, label %ifend40 then38: store i32 0, ptr %t128 br label %ifend40 ifend40: %t141 = load ptr, ptr %t92 %t142 = load i32, ptr %t93 %t143 = getelementptr inbounds i8, ptr %t141, i32 %t142 %t144 = load i32, ptr %t128 %t145 = trunc i32 %t144 to i8 store i8 %t145, ptr %t143 %t146 = load i32, ptr %t93 %t147 = add i32 %t146, 1 store i32 %t147, ptr %t93 %t148 = load i32, ptr %t7 %t149 = add i32 %t148, 2 store i32 %t149, ptr %t7 br label %ifend31 else30: %t150 = load ptr, ptr %t92 %t151 = load i32, ptr %t93 %t152 = getelementptr inbounds i8, ptr %t150, i32 %t151 %t153 = load ptr, ptr %t0 %t154 = load i32, ptr %t7 %t155 = getelementptr inbounds i8, ptr %t153, i32 %t154 %t156 = load i8, ptr %t155 %t157 = zext i8 %t156 to i32 %t158 = trunc i32 %t157 to i8 store i8 %t158, ptr %t152 %t159 = load i32, ptr %t93 %t160 = add i32 %t159, 1 store i32 %t160, ptr %t93 %t161 = load i32, ptr %t7 %t162 = add i32 %t161, 1 store i32 %t162, ptr %t7 br label %ifend31 ifend31: br label %wcond24 wend26: %t163 = load i32, ptr %t7 %t164 = add i32 %t163, 1 store i32 %t164, ptr %t7 %t165 = load ptr, ptr %t92 %t166 = load i32, ptr %t93 %t167 = getelementptr inbounds i8, ptr %t165, i32 %t166 %t168 = trunc i32 0 to i8 store i8 %t168, ptr %t167 %t169 = load ptr, ptr %t92 %t170 = load i32, ptr %t8 call void @fn_tok_push(i32 2, ptr %t169, i32 0, i32 %t170) br label %wcond0 ifend23: %t171 = load i32, ptr %t23 %t172 = icmp eq i32 %t171, 96 %t173 = zext i1 %t172 to i32 %t174 = icmp ne i32 %t173, 0 br i1 %t174, label %then41, label %ifend43 then41: %t175 = load i32, ptr %t7 %t176 = add i32 %t175, 1 store i32 %t176, ptr %t7 %t177 = load i32, ptr %t12 %t178 = zext i32 %t177 to i64 %t179 = call ptr @malloc(i64 %t178) store ptr %t179, ptr %t180 store i32 0, ptr %t181 br label %wcond44 wcond44: %t183 = load i32, ptr %t7 %t184 = load i32, ptr %t12 %t185 = icmp slt i32 %t183, %t184 %t186 = zext i1 %t185 to i32 %t187 = icmp ne i32 %t186, 0 %t188 = zext i1 %t187 to i32 store i32 %t188, ptr %t182 br i1 %t187, label %sc47, label %scend48 sc47: %t189 = load ptr, ptr %t0 %t190 = load i32, ptr %t7 %t191 = getelementptr inbounds i8, ptr %t189, i32 %t190 %t192 = load i8, ptr %t191 %t193 = zext i8 %t192 to i32 %t194 = icmp ne i32 %t193, 96 %t195 = zext i1 %t194 to i32 %t196 = icmp ne i32 %t195, 0 %t197 = zext i1 %t196 to i32 store i32 %t197, ptr %t182 br label %scend48 scend48: %t198 = load i32, ptr %t182 %t199 = icmp ne i32 %t198, 0 br i1 %t199, label %wbody45, label %wend46 wbody45: %t200 = load ptr, ptr %t180 %t201 = load i32, ptr %t181 %t202 = getelementptr inbounds i8, ptr %t200, i32 %t201 %t203 = load ptr, ptr %t0 %t204 = load i32, ptr %t7 %t205 = getelementptr inbounds i8, ptr %t203, i32 %t204 %t206 = load i8, ptr %t205 %t207 = zext i8 %t206 to i32 %t208 = trunc i32 %t207 to i8 store i8 %t208, ptr %t202 %t209 = load i32, ptr %t181 %t210 = add i32 %t209, 1 store i32 %t210, ptr %t181 %t211 = load i32, ptr %t7 %t212 = add i32 %t211, 1 store i32 %t212, ptr %t7 br label %wcond44 wend46: %t213 = load i32, ptr %t7 %t214 = add i32 %t213, 1 store i32 %t214, ptr %t7 %t215 = load ptr, ptr %t180 %t216 = load i32, ptr %t181 %t217 = getelementptr inbounds i8, ptr %t215, i32 %t216 %t218 = trunc i32 0 to i8 store i8 %t218, ptr %t217 %t219 = load ptr, ptr %t180 %t220 = load i32, ptr %t8 call void @fn_tok_push(i32 7, ptr %t219, i32 0, i32 %t220) br label %wcond0 ifend43: %t221 = load i32, ptr %t23 %t222 = icmp eq i32 %t221, 39 %t223 = zext i1 %t222 to i32 %t224 = icmp ne i32 %t223, 0 br i1 %t224, label %then49, label %ifend51 then49: %t225 = load i32, ptr %t7 %t226 = add i32 %t225, 1 store i32 %t226, ptr %t7 store i32 0, ptr %t227 %t228 = load ptr, ptr %t0 %t229 = load i32, ptr %t7 %t230 = getelementptr inbounds i8, ptr %t228, i32 %t229 %t231 = load i8, ptr %t230 %t232 = zext i8 %t231 to i32 %t233 = icmp eq i32 %t232, 92 %t234 = zext i1 %t233 to i32 %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %then52, label %else53 then52: %t236 = load ptr, ptr %t0 %t237 = load i32, ptr %t7 %t238 = add i32 %t237, 1 %t239 = getelementptr inbounds i8, ptr %t236, i32 %t238 %t240 = load i8, ptr %t239 %t241 = zext i8 %t240 to i32 store i32 %t241, ptr %t242 %t243 = load i32, ptr %t242 %t244 = icmp eq i32 %t243, 110 %t245 = zext i1 %t244 to i32 %t246 = icmp ne i32 %t245, 0 br i1 %t246, label %then55, label %ifend57 then55: store i32 10, ptr %t227 br label %ifend57 ifend57: %t247 = load i32, ptr %t242 %t248 = icmp eq i32 %t247, 116 %t249 = zext i1 %t248 to i32 %t250 = icmp ne i32 %t249, 0 br i1 %t250, label %then58, label %ifend60 then58: store i32 9, ptr %t227 br label %ifend60 ifend60: %t251 = load i32, ptr %t242 %t252 = icmp eq i32 %t251, 48 %t253 = zext i1 %t252 to i32 %t254 = icmp ne i32 %t253, 0 br i1 %t254, label %then61, label %ifend63 then61: store i32 0, ptr %t227 br label %ifend63 ifend63: %t255 = load i32, ptr %t7 %t256 = add i32 %t255, 2 store i32 %t256, ptr %t7 br label %ifend54 else53: %t257 = load ptr, ptr %t0 %t258 = load i32, ptr %t7 %t259 = getelementptr inbounds i8, ptr %t257, i32 %t258 %t260 = load i8, ptr %t259 %t261 = zext i8 %t260 to i32 store i32 %t261, ptr %t227 %t262 = load i32, ptr %t7 %t263 = add i32 %t262, 1 store i32 %t263, ptr %t7 br label %ifend54 ifend54: %t264 = load ptr, ptr %t0 %t265 = load i32, ptr %t7 %t266 = getelementptr inbounds i8, ptr %t264, i32 %t265 %t267 = load i8, ptr %t266 %t268 = zext i8 %t267 to i32 %t269 = icmp eq i32 %t268, 39 %t270 = zext i1 %t269 to i32 %t271 = icmp ne i32 %t270, 0 br i1 %t271, label %then64, label %ifend66 then64: %t272 = load i32, ptr %t7 %t273 = add i32 %t272, 1 store i32 %t273, ptr %t7 br label %ifend66 ifend66: %t274 = load i32, ptr %t227 %t275 = load i32, ptr %t8 call void @fn_tok_push(i32 1, ptr null, i32 %t274, i32 %t275) br label %wcond0 ifend51: %t276 = load i32, ptr %t23 %t277 = call i32 @fn_char_is_digit(i32 %t276) %t278 = icmp ne i32 %t277, 0 br i1 %t278, label %then67, label %ifend69 then67: %t280 = load i32, ptr %t23 %t281 = icmp eq i32 %t280, 48 %t282 = zext i1 %t281 to i32 %t283 = icmp ne i32 %t282, 0 %t284 = zext i1 %t283 to i32 store i32 %t284, ptr %t279 br i1 %t283, label %sc70, label %scend71 sc70: %t285 = load ptr, ptr %t0 %t286 = load i32, ptr %t7 %t287 = add i32 %t286, 1 %t288 = getelementptr inbounds i8, ptr %t285, i32 %t287 %t289 = load i8, ptr %t288 %t290 = zext i8 %t289 to i32 %t291 = icmp eq i32 %t290, 120 %t292 = zext i1 %t291 to i32 %t293 = icmp ne i32 %t292, 0 %t294 = zext i1 %t293 to i32 store i32 %t294, ptr %t279 br label %scend71 scend71: %t295 = load i32, ptr %t279 %t296 = icmp ne i32 %t295, 0 br i1 %t296, label %then72, label %ifend74 then72: store i32 0, ptr %t297 %t298 = load i32, ptr %t7 %t299 = add i32 %t298, 2 store i32 %t299, ptr %t7 br label %wcond75 wcond75: %t300 = load i32, ptr %t7 %t301 = load i32, ptr %t12 %t302 = icmp slt i32 %t300, %t301 %t303 = zext i1 %t302 to i32 %t304 = icmp ne i32 %t303, 0 br i1 %t304, label %wbody76, label %wend77 wbody76: %t305 = load ptr, ptr %t0 %t306 = load i32, ptr %t7 %t307 = getelementptr inbounds i8, ptr %t305, i32 %t306 %t308 = load i8, ptr %t307 %t309 = zext i8 %t308 to i32 store i32 %t309, ptr %t310 store i32 0, ptr %t311 %t312 = load i32, ptr %t310 %t313 = call i32 @fn_char_is_digit(i32 %t312) %t314 = icmp ne i32 %t313, 0 br i1 %t314, label %then78, label %else79 then78: %t315 = load i32, ptr %t310 %t316 = sub i32 %t315, 48 store i32 %t316, ptr %t311 br label %ifend80 else79: %t318 = load i32, ptr %t310 %t319 = icmp sge i32 %t318, 97 %t320 = zext i1 %t319 to i32 %t321 = icmp ne i32 %t320, 0 %t322 = zext i1 %t321 to i32 store i32 %t322, ptr %t317 br i1 %t321, label %sc81, label %scend82 sc81: %t323 = load i32, ptr %t310 %t324 = icmp sle i32 %t323, 102 %t325 = zext i1 %t324 to i32 %t326 = icmp ne i32 %t325, 0 %t327 = zext i1 %t326 to i32 store i32 %t327, ptr %t317 br label %scend82 scend82: %t328 = load i32, ptr %t317 %t329 = icmp ne i32 %t328, 0 br i1 %t329, label %then83, label %else84 then83: %t330 = load i32, ptr %t310 %t331 = sub i32 %t330, 87 store i32 %t331, ptr %t311 br label %ifend85 else84: %t333 = load i32, ptr %t310 %t334 = icmp sge i32 %t333, 65 %t335 = zext i1 %t334 to i32 %t336 = icmp ne i32 %t335, 0 %t337 = zext i1 %t336 to i32 store i32 %t337, ptr %t332 br i1 %t336, label %sc86, label %scend87 sc86: %t338 = load i32, ptr %t310 %t339 = icmp sle i32 %t338, 70 %t340 = zext i1 %t339 to i32 %t341 = icmp ne i32 %t340, 0 %t342 = zext i1 %t341 to i32 store i32 %t342, ptr %t332 br label %scend87 scend87: %t343 = load i32, ptr %t332 %t344 = icmp ne i32 %t343, 0 br i1 %t344, label %then88, label %else89 then88: %t345 = load i32, ptr %t310 %t346 = sub i32 %t345, 55 store i32 %t346, ptr %t311 br label %ifend90 else89: br label %wend77 ifend90: br label %ifend85 ifend85: br label %ifend80 ifend80: %t347 = load i32, ptr %t297 %t348 = mul i32 %t347, 16 %t349 = load i32, ptr %t311 %t350 = add i32 %t348, %t349 store i32 %t350, ptr %t297 %t351 = load i32, ptr %t7 %t352 = add i32 %t351, 1 store i32 %t352, ptr %t7 br label %wcond75 wend77: %t353 = load i32, ptr %t297 %t354 = load i32, ptr %t8 call void @fn_tok_push(i32 1, ptr null, i32 %t353, i32 %t354) br label %wcond0 ifend74: store i32 0, ptr %t355 br label %wcond91 wcond91: %t357 = load i32, ptr %t7 %t358 = load i32, ptr %t12 %t359 = icmp slt i32 %t357, %t358 %t360 = zext i1 %t359 to i32 %t361 = icmp ne i32 %t360, 0 %t362 = zext i1 %t361 to i32 store i32 %t362, ptr %t356 br i1 %t361, label %sc94, label %scend95 sc94: %t363 = load ptr, ptr %t0 %t364 = load i32, ptr %t7 %t365 = getelementptr inbounds i8, ptr %t363, i32 %t364 %t366 = load i8, ptr %t365 %t367 = zext i8 %t366 to i32 %t368 = call i32 @fn_char_is_digit(i32 %t367) %t369 = icmp ne i32 %t368, 0 %t370 = zext i1 %t369 to i32 store i32 %t370, ptr %t356 br label %scend95 scend95: %t371 = load i32, ptr %t356 %t372 = icmp ne i32 %t371, 0 br i1 %t372, label %wbody92, label %wend93 wbody92: %t373 = load i32, ptr %t355 %t374 = mul i32 %t373, 10 %t375 = load ptr, ptr %t0 %t376 = load i32, ptr %t7 %t377 = getelementptr inbounds i8, ptr %t375, i32 %t376 %t378 = load i8, ptr %t377 %t379 = zext i8 %t378 to i32 %t380 = sub i32 %t379, 48 %t381 = add i32 %t374, %t380 store i32 %t381, ptr %t355 %t382 = load i32, ptr %t7 %t383 = add i32 %t382, 1 store i32 %t383, ptr %t7 br label %wcond91 wend93: %t386 = load i32, ptr %t7 %t387 = load i32, ptr %t12 %t388 = icmp slt i32 %t386, %t387 %t389 = zext i1 %t388 to i32 %t390 = icmp ne i32 %t389, 0 %t391 = zext i1 %t390 to i32 store i32 %t391, ptr %t385 br i1 %t390, label %sc96, label %scend97 sc96: %t392 = load ptr, ptr %t0 %t393 = load i32, ptr %t7 %t394 = getelementptr inbounds i8, ptr %t392, i32 %t393 %t395 = load i8, ptr %t394 %t396 = zext i8 %t395 to i32 %t397 = icmp eq i32 %t396, 46 %t398 = zext i1 %t397 to i32 %t399 = icmp ne i32 %t398, 0 %t400 = zext i1 %t399 to i32 store i32 %t400, ptr %t385 br label %scend97 scend97: %t401 = load i32, ptr %t385 %t402 = icmp ne i32 %t401, 0 %t403 = zext i1 %t402 to i32 store i32 %t403, ptr %t384 br i1 %t402, label %sc98, label %scend99 sc98: %t404 = load ptr, ptr %t0 %t405 = load i32, ptr %t7 %t406 = add i32 %t405, 1 %t407 = getelementptr inbounds i8, ptr %t404, i32 %t406 %t408 = load i8, ptr %t407 %t409 = zext i8 %t408 to i32 %t410 = call i32 @fn_char_is_digit(i32 %t409) %t411 = icmp ne i32 %t410, 0 %t412 = zext i1 %t411 to i32 store i32 %t412, ptr %t384 br label %scend99 scend99: %t413 = load i32, ptr %t384 %t414 = icmp ne i32 %t413, 0 br i1 %t414, label %then100, label %ifend102 then100: %t415 = load i32, ptr %t7 %t416 = add i32 %t415, 1 store i32 %t416, ptr %t7 store i32 0, ptr %t417 store i32 1, ptr %t418 br label %wcond103 wcond103: %t420 = load i32, ptr %t7 %t421 = load i32, ptr %t12 %t422 = icmp slt i32 %t420, %t421 %t423 = zext i1 %t422 to i32 %t424 = icmp ne i32 %t423, 0 %t425 = zext i1 %t424 to i32 store i32 %t425, ptr %t419 br i1 %t424, label %sc106, label %scend107 sc106: %t426 = load ptr, ptr %t0 %t427 = load i32, ptr %t7 %t428 = getelementptr inbounds i8, ptr %t426, i32 %t427 %t429 = load i8, ptr %t428 %t430 = zext i8 %t429 to i32 %t431 = call i32 @fn_char_is_digit(i32 %t430) %t432 = icmp ne i32 %t431, 0 %t433 = zext i1 %t432 to i32 store i32 %t433, ptr %t419 br label %scend107 scend107: %t434 = load i32, ptr %t419 %t435 = icmp ne i32 %t434, 0 br i1 %t435, label %wbody104, label %wend105 wbody104: %t436 = load i32, ptr %t418 %t437 = icmp slt i32 %t436, 10000 %t438 = zext i1 %t437 to i32 %t439 = icmp ne i32 %t438, 0 br i1 %t439, label %then108, label %ifend110 then108: %t440 = load i32, ptr %t417 %t441 = mul i32 %t440, 10 %t442 = load ptr, ptr %t0 %t443 = load i32, ptr %t7 %t444 = getelementptr inbounds i8, ptr %t442, i32 %t443 %t445 = load i8, ptr %t444 %t446 = zext i8 %t445 to i32 %t447 = sub i32 %t446, 48 %t448 = add i32 %t441, %t447 store i32 %t448, ptr %t417 %t449 = load i32, ptr %t418 %t450 = mul i32 %t449, 10 store i32 %t450, ptr %t418 br label %ifend110 ifend110: %t451 = load i32, ptr %t7 %t452 = add i32 %t451, 1 store i32 %t452, ptr %t7 br label %wcond103 wend105: %t453 = load i32, ptr %t355 %t454 = shl i32 %t453, 16 %t455 = load i32, ptr %t417 %t456 = shl i32 %t455, 16 %t457 = load i32, ptr %t418 %t458 = lshr i32 %t457, 1 %t459 = add i32 %t456, %t458 %t460 = load i32, ptr %t418 %t461 = sdiv i32 %t459, %t460 %t462 = add i32 %t454, %t461 store i32 %t462, ptr %t463 %t464 = load i32, ptr %t463 %t465 = load i32, ptr %t8 call void @fn_tok_push(i32 6, ptr null, i32 %t464, i32 %t465) br label %wcond0 ifend102: %t466 = load i32, ptr %t355 %t467 = load i32, ptr %t8 call void @fn_tok_push(i32 1, ptr null, i32 %t466, i32 %t467) br label %wcond0 ifend69: %t468 = load i32, ptr %t23 %t469 = call i32 @fn_char_is_alpha(i32 %t468) %t470 = icmp ne i32 %t469, 0 br i1 %t470, label %then111, label %ifend113 then111: %t471 = load i32, ptr %t7 store i32 %t471, ptr %t472 br label %wcond114 wcond114: %t474 = load i32, ptr %t7 %t475 = load i32, ptr %t12 %t476 = icmp slt i32 %t474, %t475 %t477 = zext i1 %t476 to i32 %t478 = icmp ne i32 %t477, 0 %t479 = zext i1 %t478 to i32 store i32 %t479, ptr %t473 br i1 %t478, label %sc117, label %scend118 sc117: %t480 = load ptr, ptr %t0 %t481 = load i32, ptr %t7 %t482 = getelementptr inbounds i8, ptr %t480, i32 %t481 %t483 = load i8, ptr %t482 %t484 = zext i8 %t483 to i32 %t485 = call i32 @fn_char_is_alnum(i32 %t484) %t486 = icmp ne i32 %t485, 0 %t487 = zext i1 %t486 to i32 store i32 %t487, ptr %t473 br label %scend118 scend118: %t488 = load i32, ptr %t473 %t489 = icmp ne i32 %t488, 0 br i1 %t489, label %wbody115, label %wend116 wbody115: %t490 = load i32, ptr %t7 %t491 = add i32 %t490, 1 store i32 %t491, ptr %t7 br label %wcond114 wend116: %t492 = load ptr, ptr %t0 %t493 = load i32, ptr %t472 %t494 = load i32, ptr %t7 %t495 = call ptr @fn_str_slice(ptr %t492, i32 %t493, i32 %t494) %t496 = load i32, ptr %t8 call void @fn_tok_push(i32 0, ptr %t495, i32 0, i32 %t496) br label %wcond0 ifend113: %t497 = load i32, ptr %t23 %t498 = icmp eq i32 %t497, 59 %t499 = zext i1 %t498 to i32 %t500 = icmp ne i32 %t499, 0 br i1 %t500, label %then119, label %ifend121 then119: %t501 = load i32, ptr %t8 call void @fn_tok_push(i32 4, ptr null, i32 0, i32 %t501) %t502 = load i32, ptr %t7 %t503 = add i32 %t502, 1 store i32 %t503, ptr %t7 br label %wcond0 ifend121: %t504 = load ptr, ptr %t0 %t505 = load i32, ptr %t7 %t506 = call i32 @fn_two_at(ptr %t504, i32 %t505, i32 45, i32 62) %t507 = icmp ne i32 %t506, 0 br i1 %t507, label %then122, label %ifend124 then122: %t508 = load ptr, ptr %t0 %t509 = load i32, ptr %t7 %t510 = load i32, ptr %t7 %t511 = add i32 %t510, 2 %t512 = call ptr @fn_str_slice(ptr %t508, i32 %t509, i32 %t511) %t513 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t512, i32 0, i32 %t513) %t514 = load i32, ptr %t7 %t515 = add i32 %t514, 2 store i32 %t515, ptr %t7 br label %wcond0 ifend124: %t516 = load ptr, ptr %t0 %t517 = load i32, ptr %t7 %t518 = call i32 @fn_two_at(ptr %t516, i32 %t517, i32 61, i32 62) %t519 = icmp ne i32 %t518, 0 br i1 %t519, label %then125, label %ifend127 then125: %t520 = load ptr, ptr %t0 %t521 = load i32, ptr %t7 %t522 = load i32, ptr %t7 %t523 = add i32 %t522, 2 %t524 = call ptr @fn_str_slice(ptr %t520, i32 %t521, i32 %t523) %t525 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t524, i32 0, i32 %t525) %t526 = load i32, ptr %t7 %t527 = add i32 %t526, 2 store i32 %t527, ptr %t7 br label %wcond0 ifend127: %t528 = load ptr, ptr %t0 %t529 = load i32, ptr %t7 %t530 = call i32 @fn_two_at(ptr %t528, i32 %t529, i32 61, i32 61) %t531 = icmp ne i32 %t530, 0 br i1 %t531, label %then128, label %ifend130 then128: %t532 = load ptr, ptr %t0 %t533 = load i32, ptr %t7 %t534 = load i32, ptr %t7 %t535 = add i32 %t534, 2 %t536 = call ptr @fn_str_slice(ptr %t532, i32 %t533, i32 %t535) %t537 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t536, i32 0, i32 %t537) %t538 = load i32, ptr %t7 %t539 = add i32 %t538, 2 store i32 %t539, ptr %t7 br label %wcond0 ifend130: %t540 = load ptr, ptr %t0 %t541 = load i32, ptr %t7 %t542 = call i32 @fn_two_at(ptr %t540, i32 %t541, i32 33, i32 61) %t543 = icmp ne i32 %t542, 0 br i1 %t543, label %then131, label %ifend133 then131: %t544 = load ptr, ptr %t0 %t545 = load i32, ptr %t7 %t546 = load i32, ptr %t7 %t547 = add i32 %t546, 2 %t548 = call ptr @fn_str_slice(ptr %t544, i32 %t545, i32 %t547) %t549 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t548, i32 0, i32 %t549) %t550 = load i32, ptr %t7 %t551 = add i32 %t550, 2 store i32 %t551, ptr %t7 br label %wcond0 ifend133: %t552 = load ptr, ptr %t0 %t553 = load i32, ptr %t7 %t554 = call i32 @fn_two_at(ptr %t552, i32 %t553, i32 60, i32 61) %t555 = icmp ne i32 %t554, 0 br i1 %t555, label %then134, label %ifend136 then134: %t556 = load ptr, ptr %t0 %t557 = load i32, ptr %t7 %t558 = load i32, ptr %t7 %t559 = add i32 %t558, 2 %t560 = call ptr @fn_str_slice(ptr %t556, i32 %t557, i32 %t559) %t561 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t560, i32 0, i32 %t561) %t562 = load i32, ptr %t7 %t563 = add i32 %t562, 2 store i32 %t563, ptr %t7 br label %wcond0 ifend136: %t564 = load ptr, ptr %t0 %t565 = load i32, ptr %t7 %t566 = call i32 @fn_two_at(ptr %t564, i32 %t565, i32 62, i32 61) %t567 = icmp ne i32 %t566, 0 br i1 %t567, label %then137, label %ifend139 then137: %t568 = load ptr, ptr %t0 %t569 = load i32, ptr %t7 %t570 = load i32, ptr %t7 %t571 = add i32 %t570, 2 %t572 = call ptr @fn_str_slice(ptr %t568, i32 %t569, i32 %t571) %t573 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t572, i32 0, i32 %t573) %t574 = load i32, ptr %t7 %t575 = add i32 %t574, 2 store i32 %t575, ptr %t7 br label %wcond0 ifend139: %t576 = load ptr, ptr %t0 %t577 = load i32, ptr %t7 %t578 = call i32 @fn_two_at(ptr %t576, i32 %t577, i32 43, i32 61) %t579 = icmp ne i32 %t578, 0 br i1 %t579, label %then140, label %ifend142 then140: %t580 = load ptr, ptr %t0 %t581 = load i32, ptr %t7 %t582 = load i32, ptr %t7 %t583 = add i32 %t582, 2 %t584 = call ptr @fn_str_slice(ptr %t580, i32 %t581, i32 %t583) %t585 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t584, i32 0, i32 %t585) %t586 = load i32, ptr %t7 %t587 = add i32 %t586, 2 store i32 %t587, ptr %t7 br label %wcond0 ifend142: %t588 = load ptr, ptr %t0 %t589 = load i32, ptr %t7 %t590 = call i32 @fn_two_at(ptr %t588, i32 %t589, i32 45, i32 61) %t591 = icmp ne i32 %t590, 0 br i1 %t591, label %then143, label %ifend145 then143: %t592 = load ptr, ptr %t0 %t593 = load i32, ptr %t7 %t594 = load i32, ptr %t7 %t595 = add i32 %t594, 2 %t596 = call ptr @fn_str_slice(ptr %t592, i32 %t593, i32 %t595) %t597 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t596, i32 0, i32 %t597) %t598 = load i32, ptr %t7 %t599 = add i32 %t598, 2 store i32 %t599, ptr %t7 br label %wcond0 ifend145: %t600 = load ptr, ptr %t0 %t601 = load i32, ptr %t7 %t602 = call i32 @fn_two_at(ptr %t600, i32 %t601, i32 42, i32 61) %t603 = icmp ne i32 %t602, 0 br i1 %t603, label %then146, label %ifend148 then146: %t604 = load ptr, ptr %t0 %t605 = load i32, ptr %t7 %t606 = load i32, ptr %t7 %t607 = add i32 %t606, 2 %t608 = call ptr @fn_str_slice(ptr %t604, i32 %t605, i32 %t607) %t609 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t608, i32 0, i32 %t609) %t610 = load i32, ptr %t7 %t611 = add i32 %t610, 2 store i32 %t611, ptr %t7 br label %wcond0 ifend148: %t612 = load ptr, ptr %t0 %t613 = load i32, ptr %t7 %t614 = call i32 @fn_two_at(ptr %t612, i32 %t613, i32 47, i32 61) %t615 = icmp ne i32 %t614, 0 br i1 %t615, label %then149, label %ifend151 then149: %t616 = load ptr, ptr %t0 %t617 = load i32, ptr %t7 %t618 = load i32, ptr %t7 %t619 = add i32 %t618, 2 %t620 = call ptr @fn_str_slice(ptr %t616, i32 %t617, i32 %t619) %t621 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t620, i32 0, i32 %t621) %t622 = load i32, ptr %t7 %t623 = add i32 %t622, 2 store i32 %t623, ptr %t7 br label %wcond0 ifend151: %t624 = load ptr, ptr %t0 %t625 = load i32, ptr %t7 %t626 = call i32 @fn_two_at(ptr %t624, i32 %t625, i32 46, i32 46) %t627 = icmp ne i32 %t626, 0 br i1 %t627, label %then152, label %ifend154 then152: %t628 = load ptr, ptr %t0 %t629 = load i32, ptr %t7 %t630 = load i32, ptr %t7 %t631 = add i32 %t630, 2 %t632 = call ptr @fn_str_slice(ptr %t628, i32 %t629, i32 %t631) %t633 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t632, i32 0, i32 %t633) %t634 = load i32, ptr %t7 %t635 = add i32 %t634, 2 store i32 %t635, ptr %t7 br label %wcond0 ifend154: %t636 = load ptr, ptr %t0 %t637 = load i32, ptr %t7 %t638 = call i32 @fn_two_at(ptr %t636, i32 %t637, i32 60, i32 60) %t639 = icmp ne i32 %t638, 0 br i1 %t639, label %then155, label %ifend157 then155: %t640 = load ptr, ptr %t0 %t641 = load i32, ptr %t7 %t642 = load i32, ptr %t7 %t643 = add i32 %t642, 2 %t644 = call ptr @fn_str_slice(ptr %t640, i32 %t641, i32 %t643) %t645 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t644, i32 0, i32 %t645) %t646 = load i32, ptr %t7 %t647 = add i32 %t646, 2 store i32 %t647, ptr %t7 br label %wcond0 ifend157: %t648 = load ptr, ptr %t0 %t649 = load i32, ptr %t7 %t650 = call i32 @fn_two_at(ptr %t648, i32 %t649, i32 62, i32 62) %t651 = icmp ne i32 %t650, 0 br i1 %t651, label %then158, label %ifend160 then158: %t652 = load ptr, ptr %t0 %t653 = load i32, ptr %t7 %t654 = load i32, ptr %t7 %t655 = add i32 %t654, 2 %t656 = call ptr @fn_str_slice(ptr %t652, i32 %t653, i32 %t655) %t657 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t656, i32 0, i32 %t657) %t658 = load i32, ptr %t7 %t659 = add i32 %t658, 2 store i32 %t659, ptr %t7 br label %wcond0 ifend160: %t660 = load i32, ptr %t23 %t661 = call i32 @fn_is_op1(i32 %t660) %t662 = icmp ne i32 %t661, 0 br i1 %t662, label %then161, label %ifend163 then161: %t663 = load ptr, ptr %t0 %t664 = load i32, ptr %t7 %t665 = load i32, ptr %t7 %t666 = add i32 %t665, 1 %t667 = call ptr @fn_str_slice(ptr %t663, i32 %t664, i32 %t666) %t668 = load i32, ptr %t8 call void @fn_tok_push(i32 3, ptr %t667, i32 0, i32 %t668) %t669 = load i32, ptr %t7 %t670 = add i32 %t669, 1 store i32 %t670, ptr %t7 br label %wcond0 ifend163: %t671 = load i32, ptr %t7 %t672 = add i32 %t671, 1 store i32 %t672, ptr %t7 br label %wcond0 wend2: %t673 = load i32, ptr %t8 call void @fn_tok_push(i32 5, ptr null, i32 0, i32 %t673) br label %ret ret: ret void } define ptr @fn_cur() { entry: %retval = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t2 = load ptr, ptr %t1 %t3 = load i32, ptr @g_pi %t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3 %t5 = load ptr, ptr %t4 store ptr %t5, ptr %retval br label %ret ret: %t6 = load ptr, ptr %retval ret ptr %t6 } 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 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = load i32, ptr @g_pi %t5 = load i32, ptr %t0 %t6 = add i32 %t4, %t5 %t7 = getelementptr inbounds ptr, ptr %t3, i32 %t6 %t8 = load ptr, ptr %t7 store ptr %t8, ptr %retval br label %ret ret: %t9 = load ptr, ptr %retval ret ptr %t9 } define i32 @fn_is_op(ptr %arg_v) { entry: %retval = alloca i32 %t0 = alloca ptr %t7 = alloca ptr %t8 = alloca i32 store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr @g_toks %t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = load i32, ptr @g_pi %t5 = getelementptr inbounds ptr, ptr %t3, i32 %t4 %t6 = load ptr, ptr %t5 store ptr %t6, ptr %t7 %t9 = load ptr, ptr %t7 %t10 = getelementptr inbounds %Cmp_Tok, ptr %t9, i32 0, i32 0 %t11 = load i32, ptr %t10 %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 %t8 br i1 %t14, label %sc0, label %scend1 sc0: %t16 = load ptr, ptr %t7 %t17 = getelementptr inbounds %Cmp_Tok, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @fn_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t8 br label %scend1 scend1: %t23 = load i32, ptr %t8 store i32 %t23, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define i32 @fn_is_id(ptr %arg_v) { entry: %retval = alloca i32 %t0 = alloca ptr %t7 = alloca ptr %t8 = alloca i32 store ptr %arg_v, ptr %t0 %t1 = load ptr, ptr @g_toks %t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t3 = load ptr, ptr %t2 %t4 = load i32, ptr @g_pi %t5 = getelementptr inbounds ptr, ptr %t3, i32 %t4 %t6 = load ptr, ptr %t5 store ptr %t6, ptr %t7 %t9 = load ptr, ptr %t7 %t10 = getelementptr inbounds %Cmp_Tok, ptr %t9, i32 0, i32 0 %t11 = load i32, ptr %t10 %t12 = icmp eq 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 %t8 br i1 %t14, label %sc0, label %scend1 sc0: %t16 = load ptr, ptr %t7 %t17 = getelementptr inbounds %Cmp_Tok, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t0 %t20 = call i32 @fn_str_eq(ptr %t18, ptr %t19) %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t8 br label %scend1 scend1: %t23 = load i32, ptr %t8 store i32 %t23, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } 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 store ptr %arg_msg, ptr %t0 %t1 = load ptr, ptr @__stderrp store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t2 %t4 = zext i32 27 to i64 %t5 = call i64 @fwrite(ptr @.str1, 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 @.str2, i64 1, i64 %t16, ptr %t15) %t18 = trunc i64 %t17 to i32 call void @exit(i32 1) unreachable ret: ret void } 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 call void @fn_perr(ptr %t6) br label %ifend2 ifend2: %t7 = load i32, ptr @g_pi %t8 = add i32 %t7, 1 store i32 %t8, ptr @g_pi br label %ret ret: ret void } define ptr @fn_eat_id() { entry: %retval = alloca ptr %t6 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t2 = load ptr, ptr %t1 %t3 = load i32, ptr @g_pi %t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3 %t5 = load ptr, ptr %t4 store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Tok, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: call void @fn_perr(ptr @.str3) br label %ifend2 ifend2: %t13 = load i32, ptr @g_pi %t14 = add i32 %t13, 1 store i32 %t14, ptr @g_pi %t15 = load ptr, ptr %t6 %t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %retval br label %ret ret: %t18 = load ptr, ptr %retval ret ptr %t18 } define void @fn_skipnl() { entry: br label %wcond0 wcond0: %t0 = load ptr, ptr @g_toks %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t2 = load ptr, ptr %t1 %t3 = load i32, ptr @g_pi %t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Tok, ptr %t5, i32 0, i32 0 %t7 = load i32, ptr %t6 %t8 = icmp eq i32 %t7, 4 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = load i32, ptr @g_pi %t12 = add i32 %t11, 1 store i32 %t12, ptr @g_pi br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_ptype() { entry: %retval = alloca ptr %t5 = alloca ptr %t12 = alloca ptr %t19 = alloca i32 %t0 = call i32 @fn_is_op(ptr @.str4) %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 call void @fn_eat_op(ptr @.str5) %t4 = call ptr @fn_ptype() store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call i64 @strlen(ptr %t6) %t8 = trunc i64 %t7 to i32 %t9 = add i32 %t8, 3 %t10 = zext i32 %t9 to i64 %t11 = call ptr @malloc(i64 %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds i8, ptr %t13, i32 0 %t15 = trunc i32 91 to i8 store i8 %t15, ptr %t14 %t16 = load ptr, ptr %t12 %t17 = getelementptr inbounds i8, ptr %t16, i32 1 %t18 = trunc i32 93 to i8 store i8 %t18, ptr %t17 store i32 0, ptr %t19 br label %wcond3 wcond3: %t20 = load ptr, ptr %t5 %t21 = load i32, ptr %t19 %t22 = getelementptr inbounds i8, ptr %t20, i32 %t21 %t23 = load i8, ptr %t22 %t24 = zext i8 %t23 to i32 %t25 = icmp ne i32 %t24, 0 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %wbody4, label %wend5 wbody4: %t28 = load ptr, ptr %t12 %t29 = load i32, ptr %t19 %t30 = add i32 2, %t29 %t31 = getelementptr inbounds i8, ptr %t28, i32 %t30 %t32 = load ptr, ptr %t5 %t33 = load i32, ptr %t19 %t34 = getelementptr inbounds i8, ptr %t32, i32 %t33 %t35 = load i8, ptr %t34 %t36 = zext i8 %t35 to i32 %t37 = trunc i32 %t36 to i8 store i8 %t37, ptr %t31 %t38 = load i32, ptr %t19 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t19 br label %wcond3 wend5: %t40 = load ptr, ptr %t12 %t41 = load i32, ptr %t19 %t42 = add i32 2, %t41 %t43 = getelementptr inbounds i8, ptr %t40, i32 %t42 %t44 = trunc i32 0 to i8 store i8 %t44, ptr %t43 %t45 = load ptr, ptr %t12 store ptr %t45, ptr %retval br label %ret ifend2: %t46 = call ptr @fn_eat_id() store ptr %t46, ptr %retval br label %ret ret: %t47 = load ptr, ptr %retval ret ptr %t47 } 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 %t11 = alloca ptr %t19 = alloca ptr %t20 = alloca i32 %t21 = alloca i32 %t48 = alloca ptr store ptr %arg_call, ptr %t0 call void @fn_eat_op(ptr @.str6) call void @fn_skipnl() br label %wcond0 wcond0: %t1 = call i32 @fn_is_op(ptr @.str7) %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 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = load i32, ptr @g_pi %t9 = getelementptr inbounds ptr, ptr %t7, i32 %t8 %t10 = load ptr, ptr %t9 store ptr %t10, ptr %t11 %t12 = load ptr, ptr @g_toks %t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t14 = load ptr, ptr %t13 %t15 = load i32, ptr @g_pi %t16 = add i32 %t15, 1 %t17 = getelementptr inbounds ptr, ptr %t14, i32 %t16 %t18 = load ptr, ptr %t17 store ptr %t18, ptr %t19 %t22 = load ptr, ptr %t11 %t23 = getelementptr inbounds %Cmp_Tok, ptr %t22, i32 0, i32 0 %t24 = load i32, ptr %t23 %t25 = icmp eq i32 %t24, 0 %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 %sc3, label %scend4 sc3: %t29 = load ptr, ptr %t19 %t30 = getelementptr inbounds %Cmp_Tok, ptr %t29, i32 0, i32 0 %t31 = load i32, ptr %t30 %t32 = icmp eq i32 %t31, 3 %t33 = zext i1 %t32 to i32 %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t21 br label %scend4 scend4: %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 %sc5, label %scend6 sc5: %t39 = load ptr, ptr %t19 %t40 = getelementptr inbounds %Cmp_Tok, ptr %t39, i32 0, i32 1 %t41 = load ptr, ptr %t40 %t42 = call i32 @fn_str_eq(ptr %t41, ptr @.str8) %t43 = icmp ne i32 %t42, 0 %t44 = zext i1 %t43 to i32 store i32 %t44, ptr %t20 br label %scend6 scend6: %t45 = load i32, ptr %t20 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then7, label %else8 then7: %t47 = call ptr @fn_node(i32 42) store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1 %t51 = call ptr @fn_eat_id() store ptr %t51, ptr %t50 call void @fn_eat_op(ptr @.str9) call void @fn_skipnl() %t52 = load ptr, ptr %t48 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4 %t54 = call ptr @fn_expr() store ptr %t54, ptr %t53 %t55 = load ptr, ptr %t0 %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 1 %t59 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 2 %t60 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0 %t61 = load i32, ptr %t58 %t62 = load i32, ptr %t59 %t63 = icmp sge i32 %t61, %t62 br i1 %t63, label %grow10, label %put11 grow10: %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 %put11 put11: %t73 = load ptr, ptr %t48 %t74 = load ptr, ptr %t60 %t75 = getelementptr inbounds ptr, ptr %t74, i32 %t61 store ptr %t73, ptr %t75 %t76 = add i32 %t61, 1 store i32 %t76, ptr %t58 br label %ifend9 else8: %t77 = load ptr, ptr %t0 %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 1 %t81 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 2 %t82 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0 %t83 = load i32, ptr %t80 %t84 = load i32, ptr %t81 %t85 = icmp sge i32 %t83, %t84 br i1 %t85, label %grow12, label %put13 grow12: %t86 = mul i32 %t84, 2 %t87 = icmp eq i32 %t84, 0 %t88 = select i1 %t87, i32 8, i32 %t86 %t89 = getelementptr ptr, ptr null, i32 1 %t90 = ptrtoint ptr %t89 to i64 %t91 = zext i32 %t88 to i64 %t92 = mul i64 %t91, %t90 %t93 = load ptr, ptr %t82 %t94 = call ptr @realloc(ptr %t93, i64 %t92) store ptr %t94, ptr %t82 store i32 %t88, ptr %t81 br label %put13 put13: %t95 = call ptr @fn_expr() %t96 = load ptr, ptr %t82 %t97 = getelementptr inbounds ptr, ptr %t96, i32 %t83 store ptr %t95, ptr %t97 %t98 = add i32 %t83, 1 store i32 %t98, ptr %t80 br label %ifend9 ifend9: call void @fn_skipnl() %t99 = call i32 @fn_is_op(ptr @.str10) %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then14, label %ifend16 then14: %t101 = load i32, ptr @g_pi %t102 = add i32 %t101, 1 store i32 %t102, ptr @g_pi call void @fn_skipnl() br label %ifend16 ifend16: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str11) 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 @fn_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 @.str12, 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 @.str13, 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 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1 %t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 2 %t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0 %t16 = load i32, ptr %t13 %t17 = load i32, ptr %t14 %t18 = icmp sge i32 %t16, %t17 br i1 %t18, label %grow0, label %put1 grow0: %t19 = mul i32 %t17, 2 %t20 = icmp eq i32 %t17, 0 %t21 = select i1 %t20, i32 8, i32 %t19 %t22 = getelementptr ptr, ptr null, i32 1 %t23 = ptrtoint ptr %t22 to i64 %t24 = zext i32 %t21 to i64 %t25 = mul i64 %t24, %t23 %t26 = load ptr, ptr %t15 %t27 = call ptr @realloc(ptr %t26, i64 %t25) store ptr %t27, ptr %t15 store i32 %t21, ptr %t14 br label %put1 put1: %t28 = load ptr, ptr %t0 %t29 = load ptr, ptr %t15 %t30 = getelementptr inbounds ptr, ptr %t29, i32 %t16 store ptr %t28, ptr %t30 %t31 = add i32 %t16, 1 store i32 %t31, ptr %t13 %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 %t7 = 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 call void @fn_lex(ptr %t5) store i32 0, ptr @g_pi call void @fn_skipnl() %t6 = call ptr @fn_expr() store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t2 store ptr %t8, ptr @g_toks %t9 = load i32, ptr %t4 store i32 %t9, ptr @g_pi %t10 = load ptr, ptr %t7 store ptr %t10, ptr %retval br label %ret ret: %t11 = load ptr, ptr %retval ret ptr %t11 } 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 %t58 = alloca i32 %t59 = alloca i32 %t78 = alloca i32 %t107 = alloca i32 %t143 = alloca i32 %t145 = alloca i32 %t172 = 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 store i32 1, ptr %t58 br label %wcond12 wcond12: %t60 = load i32, ptr %t12 %t61 = load i32, ptr %t4 %t62 = icmp slt i32 %t60, %t61 %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 %t65 = zext i1 %t64 to i32 store i32 %t65, ptr %t59 br i1 %t64, label %sc15, label %scend16 sc15: %t66 = load i32, ptr %t58 %t67 = icmp sgt i32 %t66, 0 %t68 = zext i1 %t67 to i32 %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t59 br label %scend16 scend16: %t71 = load i32, ptr %t59 %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %wbody13, label %wend14 wbody13: %t73 = load ptr, ptr %t0 %t74 = load i32, ptr %t12 %t75 = getelementptr inbounds i8, ptr %t73, i32 %t74 %t76 = load i8, ptr %t75 %t77 = zext i8 %t76 to i32 store i32 %t77, ptr %t78 %t79 = load i32, ptr %t78 %t80 = icmp eq i32 %t79, 123 %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then17, label %else18 then17: %t83 = load i32, ptr %t58 %t84 = add i32 %t83, 1 store i32 %t84, ptr %t58 br label %ifend19 else18: %t85 = load i32, ptr %t78 %t86 = icmp eq i32 %t85, 125 %t87 = zext i1 %t86 to i32 %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then20, label %ifend22 then20: %t89 = load i32, ptr %t58 %t90 = sub i32 %t89, 1 store i32 %t90, ptr %t58 %t91 = load i32, ptr %t58 %t92 = icmp eq i32 %t91, 0 %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then23, label %ifend25 then23: br label %wend14 ifend25: br label %ifend22 ifend22: br label %ifend19 ifend19: %t95 = load i32, ptr %t12 %t96 = add i32 %t95, 1 store i32 %t96, ptr %t12 br label %wcond12 wend14: %t97 = load ptr, ptr %t5 %t98 = load ptr, ptr %t0 %t99 = load i32, ptr %t57 %t100 = load i32, ptr %t12 %t101 = call ptr @fn_str_slice(ptr %t98, i32 %t99, i32 %t100) %t102 = call ptr @fn_parse_hole(ptr %t101) %t103 = call ptr @fn_interp_str(ptr %t102) %t104 = call ptr @fn_interp_add(ptr %t97, ptr %t103) store ptr %t104, ptr %t5 %t105 = load i32, ptr %t12 %t106 = add i32 %t105, 1 store i32 %t106, ptr %t12 br label %ifend5 else4: %t108 = load i32, ptr %t23 %t109 = icmp eq i32 %t108, 125 %t110 = zext i1 %t109 to i32 %t111 = icmp ne i32 %t110, 0 %t112 = zext i1 %t111 to i32 store i32 %t112, ptr %t107 br i1 %t111, label %sc26, label %scend27 sc26: %t113 = load ptr, ptr %t0 %t114 = load i32, ptr %t12 %t115 = add i32 %t114, 1 %t116 = getelementptr inbounds i8, ptr %t113, i32 %t115 %t117 = load i8, ptr %t116 %t118 = zext i8 %t117 to i32 %t119 = icmp eq i32 %t118, 125 %t120 = zext i1 %t119 to i32 %t121 = icmp ne i32 %t120, 0 %t122 = zext i1 %t121 to i32 store i32 %t122, ptr %t107 br label %scend27 scend27: %t123 = load i32, ptr %t107 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then28, label %ifend30 then28: %t125 = load ptr, ptr %t10 %t126 = load i32, ptr %t11 %t127 = getelementptr inbounds i8, ptr %t125, i32 %t126 %t128 = trunc i32 125 to i8 store i8 %t128, ptr %t127 %t129 = load i32, ptr %t11 %t130 = add i32 %t129, 1 store i32 %t130, ptr %t11 %t131 = load i32, ptr %t12 %t132 = add i32 %t131, 2 store i32 %t132, ptr %t12 br label %wcond0 ifend30: %t133 = load i32, ptr %t23 %t134 = icmp eq i32 %t133, 92 %t135 = zext i1 %t134 to i32 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then31, label %ifend33 then31: %t137 = load ptr, ptr %t0 %t138 = load i32, ptr %t12 %t139 = add i32 %t138, 1 %t140 = getelementptr inbounds i8, ptr %t137, i32 %t139 %t141 = load i8, ptr %t140 %t142 = zext i8 %t141 to i32 store i32 %t142, ptr %t143 %t144 = load i32, ptr %t143 store i32 %t144, ptr %t145 %t146 = load i32, ptr %t143 %t147 = icmp eq i32 %t146, 110 %t148 = zext i1 %t147 to i32 %t149 = icmp ne i32 %t148, 0 br i1 %t149, label %then34, label %ifend36 then34: store i32 10, ptr %t145 br label %ifend36 ifend36: %t150 = load i32, ptr %t143 %t151 = icmp eq i32 %t150, 116 %t152 = zext i1 %t151 to i32 %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then37, label %ifend39 then37: store i32 9, ptr %t145 br label %ifend39 ifend39: %t154 = load ptr, ptr %t10 %t155 = load i32, ptr %t11 %t156 = getelementptr inbounds i8, ptr %t154, i32 %t155 %t157 = load i32, ptr %t145 %t158 = trunc i32 %t157 to i8 store i8 %t158, ptr %t156 %t159 = load i32, ptr %t11 %t160 = add i32 %t159, 1 store i32 %t160, ptr %t11 %t161 = load i32, ptr %t12 %t162 = add i32 %t161, 2 store i32 %t162, ptr %t12 br label %wcond0 ifend33: %t163 = load ptr, ptr %t10 %t164 = load i32, ptr %t11 %t165 = getelementptr inbounds i8, ptr %t163, i32 %t164 %t166 = load i32, ptr %t23 %t167 = trunc i32 %t166 to i8 store i8 %t167, ptr %t165 %t168 = load i32, ptr %t11 %t169 = add i32 %t168, 1 store i32 %t169, ptr %t11 %t170 = load i32, ptr %t12 %t171 = add i32 %t170, 1 store i32 %t171, ptr %t12 br label %ifend5 ifend5: br label %wcond0 wend2: %t173 = load i32, ptr %t11 %t174 = icmp sgt 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 %t172 br i1 %t176, label %scend41, label %sc40 sc40: %t178 = load ptr, ptr %t5 %t179 = icmp eq 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 %t172 br label %scend41 scend41: %t183 = load i32, ptr %t172 %t184 = icmp ne i32 %t183, 0 br i1 %t184, label %then42, label %ifend44 then42: %t185 = load ptr, ptr %t5 %t186 = load ptr, ptr %t10 %t187 = load i32, ptr %t11 %t188 = call ptr @fn_interp_lit(ptr %t186, i32 %t187) %t189 = call ptr @fn_interp_add(ptr %t185, ptr %t188) store ptr %t189, ptr %t5 br label %ifend44 ifend44: %t190 = load ptr, ptr %t5 store ptr %t190, ptr %retval br label %ret ret: %t191 = load ptr, ptr %retval ret ptr %t191 } 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 @.str14) call void @fn_skipnl() br label %wcond0 wcond0: %t9 = call i32 @fn_is_op(ptr @.str15) %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 @.str16) %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 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2 %t26 = getelementptr inbounds %LSlice, ptr %t23, 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 %t14 %t40 = load ptr, ptr %t26 %t41 = getelementptr inbounds ptr, ptr %t40, i32 %t27 store ptr %t39, ptr %t41 %t42 = add i32 %t27, 1 store i32 %t42, ptr %t24 call void @fn_skipnl() %t43 = call i32 @fn_is_op(ptr @.str17) %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 @.str18) %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_p_primary() { entry: %retval = alloca ptr %t6 = alloca ptr %t19 = alloca i32 %t20 = alloca i32 %t60 = alloca ptr %t76 = alloca ptr %t92 = alloca ptr %t113 = alloca ptr %t125 = alloca ptr %t147 = alloca ptr %t158 = alloca ptr %t172 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t2 = load ptr, ptr %t1 %t3 = load i32, ptr @g_pi %t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3 %t5 = load ptr, ptr %t4 store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Tok, ptr %t7, i32 0, i32 0 %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 %then0, label %ifend2 then0: %t13 = load i32, ptr @g_pi %t14 = add i32 %t13, 1 store i32 %t14, ptr @g_pi %t15 = load ptr, ptr %t6 %t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_parse_interp(ptr %t17) store ptr %t18, ptr %retval br label %ret ifend2: %t21 = load ptr, ptr %t6 %t22 = getelementptr inbounds %Cmp_Tok, ptr %t21, i32 0, i32 0 %t23 = load i32, ptr %t22 %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 %t20 br i1 %t26, label %sc3, label %scend4 sc3: %t28 = load ptr, ptr %t6 %t29 = getelementptr inbounds %Cmp_Tok, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str19) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t20 br label %scend4 scend4: %t34 = load i32, ptr %t20 %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t19 br i1 %t35, label %sc5, label %scend6 sc5: %t37 = load ptr, ptr @g_toks %t38 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = load i32, ptr @g_pi %t41 = add i32 %t40, 1 %t42 = getelementptr inbounds ptr, ptr %t39, i32 %t41 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Tok, ptr %t43, i32 0, i32 0 %t45 = load i32, 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 %t19 br label %scend6 scend6: %t50 = load i32, ptr %t19 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then7, label %ifend9 then7: %t52 = call ptr @fn_parse_emit() store ptr %t52, ptr %retval br label %ret ifend9: %t53 = load ptr, ptr %t6 %t54 = getelementptr inbounds %Cmp_Tok, ptr %t53, i32 0, i32 0 %t55 = load i32, ptr %t54 %t56 = icmp eq i32 %t55, 1 %t57 = zext i1 %t56 to i32 %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then10, label %ifend12 then10: %t59 = call ptr @fn_node(i32 30) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 2 %t63 = load ptr, ptr %t6 %t64 = getelementptr inbounds %Cmp_Tok, ptr %t63, i32 0, i32 2 %t65 = load i32, ptr %t64 store i32 %t65, ptr %t62 %t66 = load i32, ptr @g_pi %t67 = add i32 %t66, 1 store i32 %t67, ptr @g_pi %t68 = load ptr, ptr %t60 store ptr %t68, ptr %retval br label %ret ifend12: %t69 = load ptr, ptr %t6 %t70 = getelementptr inbounds %Cmp_Tok, ptr %t69, i32 0, i32 0 %t71 = load i32, ptr %t70 %t72 = icmp eq i32 %t71, 6 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then13, label %ifend15 then13: %t75 = call ptr @fn_node(i32 40) store ptr %t75, ptr %t76 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 2 %t79 = load ptr, ptr %t6 %t80 = getelementptr inbounds %Cmp_Tok, ptr %t79, i32 0, i32 2 %t81 = load i32, ptr %t80 store i32 %t81, ptr %t78 %t82 = load i32, ptr @g_pi %t83 = add i32 %t82, 1 store i32 %t83, ptr @g_pi %t84 = load ptr, ptr %t76 store ptr %t84, ptr %retval br label %ret ifend15: %t85 = load ptr, ptr %t6 %t86 = getelementptr inbounds %Cmp_Tok, ptr %t85, i32 0, i32 0 %t87 = load i32, ptr %t86 %t88 = icmp eq i32 %t87, 2 %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then16, label %ifend18 then16: %t91 = call ptr @fn_node(i32 31) store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t92 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 1 %t95 = load ptr, ptr %t6 %t96 = getelementptr inbounds %Cmp_Tok, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 store ptr %t97, ptr %t94 %t98 = load i32, ptr @g_pi %t99 = add i32 %t98, 1 store i32 %t99, ptr @g_pi %t100 = load ptr, ptr %t92 store ptr %t100, ptr %retval br label %ret ifend18: %t101 = load ptr, ptr %t6 %t102 = getelementptr inbounds %Cmp_Tok, ptr %t101, i32 0, i32 0 %t103 = load i32, ptr %t102 %t104 = icmp eq i32 %t103, 0 %t105 = zext i1 %t104 to i32 %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then19, label %ifend21 then19: %t107 = load ptr, ptr %t6 %t108 = getelementptr inbounds %Cmp_Tok, ptr %t107, i32 0, i32 1 %t109 = load ptr, ptr %t108 %t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str20) %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then22, label %ifend24 then22: %t112 = call ptr @fn_node(i32 32) store ptr %t112, ptr %t113 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 2 store i32 1, ptr %t115 %t116 = load i32, ptr @g_pi %t117 = add i32 %t116, 1 store i32 %t117, ptr @g_pi %t118 = load ptr, ptr %t113 store ptr %t118, ptr %retval br label %ret ifend24: %t119 = load ptr, ptr %t6 %t120 = getelementptr inbounds %Cmp_Tok, ptr %t119, i32 0, i32 1 %t121 = load ptr, ptr %t120 %t122 = call i32 @fn_str_eq(ptr %t121, ptr @.str21) %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then25, label %ifend27 then25: %t124 = call ptr @fn_node(i32 32) store ptr %t124, ptr %t125 %t126 = load ptr, ptr %t125 %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 2 store i32 0, ptr %t127 %t128 = load i32, ptr @g_pi %t129 = add i32 %t128, 1 store i32 %t129, ptr @g_pi %t130 = load ptr, ptr %t125 store ptr %t130, ptr %retval br label %ret ifend27: %t131 = load ptr, ptr %t6 %t132 = getelementptr inbounds %Cmp_Tok, ptr %t131, i32 0, i32 1 %t133 = load ptr, ptr %t132 %t134 = call i32 @fn_str_eq(ptr %t133, ptr @.str22) %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then28, label %ifend30 then28: %t136 = load i32, ptr @g_pi %t137 = add i32 %t136, 1 store i32 %t137, ptr @g_pi %t138 = call ptr @fn_node(i32 43) store ptr %t138, ptr %retval br label %ret ifend30: %t139 = load ptr, ptr %t6 %t140 = getelementptr inbounds %Cmp_Tok, ptr %t139, i32 0, i32 1 %t141 = load ptr, ptr %t140 %t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str23) %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %then31, label %ifend33 then31: %t144 = load i32, ptr @g_pi %t145 = add i32 %t144, 1 store i32 %t145, ptr @g_pi %t146 = call ptr @fn_node(i32 39) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t147 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 1 %t150 = call ptr @fn_ptype() store ptr %t150, ptr %t149 %t151 = call i32 @fn_is_op(ptr @.str24) %t152 = icmp ne i32 %t151, 0 br i1 %t152, label %then34, label %ifend36 then34: %t153 = load ptr, ptr %t147 %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 4 %t155 = call ptr @fn_record() store ptr %t155, ptr %t154 br label %ifend36 ifend36: %t156 = load ptr, ptr %t147 store ptr %t156, ptr %retval br label %ret ifend33: %t157 = call ptr @fn_node(i32 33) store ptr %t157, ptr %t158 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 1 %t161 = load ptr, ptr %t6 %t162 = getelementptr inbounds %Cmp_Tok, ptr %t161, i32 0, i32 1 %t163 = load ptr, ptr %t162 store ptr %t163, ptr %t160 %t164 = load i32, ptr @g_pi %t165 = add i32 %t164, 1 store i32 %t165, ptr @g_pi %t166 = load ptr, ptr %t158 store ptr %t166, ptr %retval br label %ret ifend21: %t167 = call i32 @fn_is_op(ptr @.str25) %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then37, label %ifend39 then37: %t169 = load i32, ptr @g_pi %t170 = add i32 %t169, 1 store i32 %t170, ptr @g_pi call void @fn_skipnl() %t171 = call ptr @fn_expr() store ptr %t171, ptr %t172 call void @fn_skipnl() call void @fn_eat_op(ptr @.str26) %t173 = load ptr, ptr %t172 store ptr %t173, ptr %retval br label %ret ifend39: call void @fn_perr(ptr @.str27) %t174 = call ptr @fn_node(i32 30) store ptr %t174, ptr %retval br label %ret ret: %t175 = load ptr, ptr %retval ret ptr %t175 } define ptr @fn_p_postfix() { entry: %retval = alloca ptr %t1 = alloca ptr %t8 = alloca ptr %t16 = alloca i32 %t36 = alloca i32 %t56 = alloca i32 %t76 = alloca i32 %t101 = alloca ptr %t107 = alloca ptr %t119 = alloca ptr %t130 = alloca ptr %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 @.str28) %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 @fn_str_eq(ptr %t30, ptr @.str29) %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 @fn_str_eq(ptr %t50, ptr @.str30) %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_query br label %ifend15 ifend15: %t57 = load ptr, ptr %t1 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 4 %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, 33 %t63 = zext i1 %t62 to i32 %t64 = icmp ne i32 %t63, 0 %t65 = zext i1 %t64 to i32 store i32 %t65, ptr %t56 br i1 %t64, label %sc16, label %scend17 sc16: %t66 = load ptr, ptr %t1 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 4 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 %t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str31) %t72 = icmp ne i32 %t71, 0 %t73 = zext i1 %t72 to i32 store i32 %t73, ptr %t56 br label %scend17 scend17: %t74 = load i32, ptr %t56 %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then18, label %ifend20 then18: store i32 1, ptr @g_g_uses_reflect br label %ifend20 ifend20: %t77 = load ptr, ptr %t1 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 4 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 0 %t81 = load i32, ptr %t80 %t82 = icmp eq i32 %t81, 33 %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t76 br i1 %t84, label %sc21, label %scend22 sc21: %t86 = load ptr, ptr %t1 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 4 %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 %t90 = load ptr, ptr %t89 %t91 = call i32 @fn_str_eq(ptr %t90, ptr @.str32) %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t76 br label %scend22 scend22: %t94 = load i32, ptr %t76 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then23, label %ifend25 then23: store i32 1, ptr @g_g_uses_light br label %ifend25 ifend25: br label %ifend5 else4: %t96 = call i32 @fn_is_op(ptr @.str33) %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then26, label %else27 then26: %t98 = load i32, ptr @g_pi %t99 = add i32 %t98, 1 store i32 %t99, ptr @g_pi %t100 = call ptr @fn_expr() store ptr %t100, ptr %t101 %t102 = call i32 @fn_is_op(ptr @.str34) %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then29, label %else30 then29: %t104 = load i32, ptr @g_pi %t105 = add i32 %t104, 1 store i32 %t105, ptr @g_pi %t106 = call ptr @fn_node(i32 44) store ptr %t106, ptr %t107 %t108 = load ptr, ptr %t107 %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 4 %t110 = load ptr, ptr %t1 store ptr %t110, ptr %t109 %t111 = load ptr, ptr %t107 %t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 5 %t113 = load ptr, ptr %t101 store ptr %t113, ptr %t112 %t114 = load ptr, ptr %t107 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 6 %t116 = call ptr @fn_expr() store ptr %t116, ptr %t115 call void @fn_eat_op(ptr @.str35) %t117 = load ptr, ptr %t107 store ptr %t117, ptr %t1 br label %ifend31 else30: %t118 = call ptr @fn_node(i32 36) store ptr %t118, ptr %t119 %t120 = load ptr, ptr %t119 %t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 4 %t122 = load ptr, ptr %t1 store ptr %t122, ptr %t121 %t123 = load ptr, ptr %t119 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 5 %t125 = load ptr, ptr %t101 store ptr %t125, ptr %t124 call void @fn_eat_op(ptr @.str36) %t126 = load ptr, ptr %t119 store ptr %t126, ptr %t1 br label %ifend31 ifend31: br label %ifend28 else27: %t127 = call i32 @fn_is_op(ptr @.str37) %t128 = icmp ne i32 %t127, 0 br i1 %t128, label %then32, label %else33 then32: %t129 = call ptr @fn_node(i32 34) store ptr %t129, ptr %t130 %t131 = load ptr, ptr %t130 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 4 %t133 = load ptr, ptr %t1 store ptr %t133, ptr %t132 %t134 = load ptr, ptr %t130 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 8 %t136 = load ptr, ptr @g_toks %t137 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 0 %t138 = load ptr, ptr %t137 %t139 = load i32, ptr @g_pi %t140 = getelementptr inbounds ptr, ptr %t138, i32 %t139 %t141 = load ptr, ptr %t140 %t142 = getelementptr inbounds %Cmp_Tok, ptr %t141, i32 0, i32 3 %t143 = load i32, ptr %t142 store i32 %t143, ptr %t135 %t144 = load ptr, ptr %t130 call void @fn_args_call(ptr %t144) %t145 = load ptr, ptr %t130 store ptr %t145, ptr %t1 br label %ifend34 else33: br label %wend2 ifend34: br label %ifend28 ifend28: br label %ifend5 ifend5: br label %wcond0 wend2: %t146 = load ptr, ptr %t1 store ptr %t146, ptr %retval br label %ret ret: %t147 = load ptr, ptr %retval ret ptr %t147 } 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 @.str38) %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 @.str39, 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 @.str40) %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 @.str41, 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 @.str42) %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 @.str43, 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 %t47 = alloca ptr %t0 = call ptr @fn_p_unary() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t7 = call i32 @fn_is_op(ptr @.str44) %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 @.str45) %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 @.str46) %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 @.str47) %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 @.str48) %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 @.str49) %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 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = load i32, ptr @g_pi %t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Tok, ptr %t44, i32 0, i32 1 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t47 %t48 = load i32, ptr @g_pi %t49 = add i32 %t48, 1 store i32 %t49, ptr @g_pi %t50 = load ptr, ptr %t47 %t51 = load ptr, ptr %t1 %t52 = call ptr @fn_p_unary() %t53 = call ptr @fn_mkbin(ptr %t50, ptr %t51, ptr %t52) store ptr %t53, ptr %t1 br label %wcond0 wend2: %t54 = load ptr, ptr %t1 store ptr %t54, ptr %retval br label %ret ret: %t55 = load ptr, ptr %retval ret ptr %t55 } define ptr @fn_p_add() { entry: %retval = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t33 = alloca ptr %t0 = call ptr @fn_p_mul() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t5 = call i32 @fn_is_op(ptr @.str50) %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 @.str51) %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 @.str52) %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 @.str53) %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 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = load i32, ptr @g_pi %t29 = getelementptr inbounds ptr, ptr %t27, i32 %t28 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %Cmp_Tok, ptr %t30, i32 0, i32 1 %t32 = load ptr, ptr %t31 store ptr %t32, ptr %t33 %t34 = load i32, ptr @g_pi %t35 = add i32 %t34, 1 store i32 %t35, ptr @g_pi %t36 = load ptr, ptr %t33 %t37 = load ptr, ptr %t1 %t38 = call ptr @fn_p_mul() %t39 = call ptr @fn_mkbin(ptr %t36, ptr %t37, ptr %t38) store ptr %t39, ptr %t1 br label %wcond0 wend2: %t40 = load ptr, ptr %t1 store ptr %t40, ptr %retval br label %ret ret: %t41 = load ptr, ptr %retval ret ptr %t41 } 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 %t47 = alloca ptr %t0 = call ptr @fn_p_add() store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t7 = call i32 @fn_is_op(ptr @.str54) %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 @.str55) %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 @.str56) %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 @.str57) %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 @.str58) %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 @.str59) %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 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = load i32, ptr @g_pi %t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Tok, ptr %t44, i32 0, i32 1 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t47 %t48 = load i32, ptr @g_pi %t49 = add i32 %t48, 1 store i32 %t49, ptr @g_pi %t50 = load ptr, ptr %t47 %t51 = load ptr, ptr %t1 %t52 = call ptr @fn_p_add() %t53 = call ptr @fn_mkbin(ptr %t50, ptr %t51, ptr %t52) store ptr %t53, ptr %t1 br label %wcond0 wend2: %t54 = load ptr, ptr %t1 store ptr %t54, ptr %retval br label %ret ret: %t55 = load ptr, ptr %retval ret ptr %t55 } 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 @.str60) %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 @.str61, 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 @.str62) %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 @.str63, 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 @.str64) %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 @.str65) %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 @.str66) %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 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1 %t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 2 %t18 = getelementptr inbounds %LSlice, ptr %t15, 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 %t6 %t32 = load ptr, ptr %t18 %t33 = getelementptr inbounds ptr, ptr %t32, i32 %t19 store ptr %t31, ptr %t33 %t34 = add i32 %t19, 1 store i32 %t34, ptr %t16 %t35 = call i32 @fn_is_op(ptr @.str67) %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 @.str68) %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 %t37 = alloca i32 call void @fn_skipnl() call void @fn_eat_op(ptr @.str69) %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 @.str70) %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 = 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 %grow6, label %put7 grow6: %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 %put7 put7: %t23 = call ptr @fn_stmt() %t24 = load ptr, ptr %t10 %t25 = getelementptr inbounds ptr, ptr %t24, i32 %t11 store ptr %t23, ptr %t25 %t26 = add i32 %t11, 1 store i32 %t26, ptr %t8 %t27 = load ptr, ptr @g_toks %t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = load i32, ptr @g_pi %t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Tok, ptr %t32, i32 0, i32 0 %t34 = load i32, ptr %t33 %t35 = icmp eq i32 %t34, 4 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t37 %t38 = call i32 @fn_is_op(ptr @.str71) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then8, label %ifend10 then8: store i32 1, ptr %t37 br label %ifend10 ifend10: %t40 = load i32, ptr %t37 %t41 = icmp eq i32 %t40, 0 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then11, label %ifend13 then11: call void @fn_perr(ptr @.str72) br label %ifend13 ifend13: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str73) %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_stmt() { entry: %retval = alloca ptr %t6 = alloca ptr %t13 = alloca i32 %t28 = alloca i32 %t37 = alloca ptr %t77 = alloca ptr %t78 = alloca i32 %t110 = alloca ptr %t118 = alloca i32 %t141 = alloca ptr %t160 = alloca ptr %t165 = alloca ptr %t190 = alloca ptr %t194 = alloca i32 %t199 = alloca ptr %t201 = alloca ptr %t213 = alloca ptr %t248 = alloca i32 %t279 = alloca ptr %t292 = alloca ptr %t297 = alloca i32 %t312 = alloca i32 %t321 = alloca ptr %t357 = alloca ptr %t384 = alloca ptr %t430 = alloca ptr %t438 = alloca ptr %t472 = alloca ptr %t522 = alloca ptr %t523 = alloca i32 %t524 = alloca i32 %t525 = alloca i32 %t526 = alloca i32 %t554 = alloca ptr %t585 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t2 = load ptr, ptr %t1 %t3 = load i32, ptr @g_pi %t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3 %t5 = load ptr, ptr %t4 store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Tok, ptr %t7, i32 0, i32 0 %t9 = load i32, 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: %t14 = load ptr, ptr %t6 %t15 = getelementptr inbounds %Cmp_Tok, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str74) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t13 br i1 %t18, label %scend4, label %sc3 sc3: %t20 = load ptr, ptr %t6 %t21 = getelementptr inbounds %Cmp_Tok, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str75) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t13 br label %scend4 scend4: %t26 = load i32, ptr %t13 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: store i32 0, ptr %t28 %t29 = load ptr, ptr %t6 %t30 = getelementptr inbounds %Cmp_Tok, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str76) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then8, label %ifend10 then8: store i32 1, ptr %t28 br label %ifend10 ifend10: %t34 = load i32, ptr @g_pi %t35 = add i32 %t34, 1 store i32 %t35, ptr @g_pi %t36 = call ptr @fn_node(i32 10) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 2 %t40 = load i32, ptr %t28 store i32 %t40, ptr %t39 %t41 = load ptr, ptr %t37 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 8 %t43 = load ptr, ptr @g_toks %t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = load i32, ptr @g_pi %t47 = getelementptr inbounds ptr, ptr %t45, i32 %t46 %t48 = load ptr, ptr %t47 %t49 = getelementptr inbounds %Cmp_Tok, ptr %t48, i32 0, i32 3 %t50 = load i32, ptr %t49 store i32 %t50, ptr %t42 %t51 = load ptr, ptr %t37 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1 %t53 = call ptr @fn_eat_id() store ptr %t53, ptr %t52 %t54 = call i32 @fn_is_op(ptr @.str77) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then11, label %ifend13 then11: %t56 = load i32, ptr @g_pi %t57 = add i32 %t56, 1 store i32 %t57, ptr @g_pi %t58 = load ptr, ptr %t37 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 3 %t60 = call ptr @fn_ptype() store ptr %t60, ptr %t59 br label %ifend13 ifend13: %t61 = call i32 @fn_is_op(ptr @.str78) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then14, label %ifend16 then14: %t63 = load i32, ptr @g_pi %t64 = add i32 %t63, 1 store i32 %t64, ptr @g_pi %t65 = load ptr, ptr %t37 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 4 %t67 = call ptr @fn_expr() store ptr %t67, ptr %t66 br label %ifend16 ifend16: %t68 = load ptr, ptr %t37 store ptr %t68, ptr %retval br label %ret ifend7: %t69 = load ptr, ptr %t6 %t70 = getelementptr inbounds %Cmp_Tok, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str79) %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 = call ptr @fn_node(i32 15) store ptr %t76, ptr %t77 %t79 = load ptr, ptr @g_toks %t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = load i32, ptr @g_pi %t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %Cmp_Tok, ptr %t84, i32 0, i32 0 %t86 = load i32, ptr %t85 %t87 = icmp ne i32 %t86, 4 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t78 br i1 %t89, label %sc20, label %scend21 sc20: %t91 = call i32 @fn_is_op(ptr @.str80) %t92 = icmp eq 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 %t78 br label %scend21 scend21: %t96 = load i32, ptr %t78 %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then22, label %ifend24 then22: %t98 = load ptr, ptr %t77 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 4 %t100 = call ptr @fn_expr() store ptr %t100, ptr %t99 br label %ifend24 ifend24: %t101 = load ptr, ptr %t77 store ptr %t101, ptr %retval br label %ret ifend19: %t102 = load ptr, ptr %t6 %t103 = getelementptr inbounds %Cmp_Tok, ptr %t102, i32 0, i32 1 %t104 = load ptr, ptr %t103 %t105 = call i32 @fn_str_eq(ptr %t104, ptr @.str81) %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then25, label %ifend27 then25: %t107 = load i32, ptr @g_pi %t108 = add i32 %t107, 1 store i32 %t108, ptr @g_pi %t109 = call ptr @fn_node(i32 12) store ptr %t109, ptr %t110 %t111 = load ptr, ptr %t110 %t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 4 %t113 = call ptr @fn_expr() store ptr %t113, ptr %t112 %t114 = load ptr, ptr %t110 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 5 %t116 = call ptr @fn_block() store ptr %t116, ptr %t115 %t117 = load i32, ptr @g_pi store i32 %t117, ptr %t118 call void @fn_skipnl() %t119 = call i32 @fn_is_id(ptr @.str82) %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then28, label %else29 then28: %t121 = load i32, ptr @g_pi %t122 = add i32 %t121, 1 store i32 %t122, ptr @g_pi call void @fn_skipnl() %t123 = call i32 @fn_is_id(ptr @.str83) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then31, label %else32 then31: %t125 = load ptr, ptr %t110 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 6 %t127 = call ptr @fn_stmt() store ptr %t127, ptr %t126 br label %ifend33 else32: %t128 = load ptr, ptr %t110 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 6 %t130 = call ptr @fn_block() store ptr %t130, ptr %t129 br label %ifend33 ifend33: br label %ifend30 else29: %t131 = load i32, ptr %t118 store i32 %t131, ptr @g_pi br label %ifend30 ifend30: %t132 = load ptr, ptr %t110 store ptr %t132, ptr %retval br label %ret ifend27: %t133 = load ptr, ptr %t6 %t134 = getelementptr inbounds %Cmp_Tok, ptr %t133, i32 0, i32 1 %t135 = load ptr, ptr %t134 %t136 = call i32 @fn_str_eq(ptr %t135, ptr @.str84) %t137 = icmp ne i32 %t136, 0 br i1 %t137, label %then34, label %ifend36 then34: %t138 = load i32, ptr @g_pi %t139 = add i32 %t138, 1 store i32 %t139, ptr @g_pi %t140 = call ptr @fn_node(i32 13) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t141 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 4 %t144 = call ptr @fn_expr() store ptr %t144, ptr %t143 %t145 = load ptr, ptr %t141 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 5 %t147 = call ptr @fn_block() store ptr %t147, ptr %t146 %t148 = load ptr, ptr %t141 store ptr %t148, ptr %retval br label %ret ifend36: %t149 = load ptr, ptr %t6 %t150 = getelementptr inbounds %Cmp_Tok, ptr %t149, i32 0, i32 1 %t151 = load ptr, ptr %t150 %t152 = call i32 @fn_str_eq(ptr %t151, ptr @.str85) %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then37, label %ifend39 then37: %t154 = load i32, ptr @g_pi %t155 = add i32 %t154, 1 store i32 %t155, ptr @g_pi %t156 = call i32 @fn_is_op(ptr @.str86) %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then40, label %ifend42 then40: %t158 = call ptr @fn_parse_query_for() store ptr %t158, ptr %retval br label %ret ifend42: %t159 = call ptr @fn_node(i32 14) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t160 %t162 = getelementptr inbounds %Cmp_Node, ptr %t161, i32 0, i32 1 %t163 = call ptr @fn_eat_id() store ptr %t163, ptr %t162 %t164 = call ptr @fn_eat_id() store ptr %t164, ptr %t165 %t166 = load ptr, ptr %t160 %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 4 %t168 = call ptr @fn_expr() store ptr %t168, ptr %t167 call void @fn_eat_op(ptr @.str87) %t169 = load ptr, ptr %t160 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 5 %t171 = call ptr @fn_expr() store ptr %t171, ptr %t170 %t172 = load ptr, ptr %t160 %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 6 %t174 = call ptr @fn_block() store ptr %t174, ptr %t173 %t175 = load ptr, ptr %t160 store ptr %t175, ptr %retval br label %ret ifend39: %t176 = load ptr, ptr %t6 %t177 = getelementptr inbounds %Cmp_Tok, ptr %t176, i32 0, i32 1 %t178 = load ptr, ptr %t177 %t179 = call i32 @fn_str_eq(ptr %t178, ptr @.str88) %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then43, label %ifend45 then43: %t181 = call ptr @fn_parse_spawn() store ptr %t181, ptr %retval br label %ret ifend45: %t182 = load ptr, ptr %t6 %t183 = getelementptr inbounds %Cmp_Tok, ptr %t182, i32 0, i32 1 %t184 = load ptr, ptr %t183 %t185 = call i32 @fn_str_eq(ptr %t184, ptr @.str89) %t186 = icmp ne i32 %t185, 0 br i1 %t186, label %then46, label %ifend48 then46: %t187 = load i32, ptr @g_pi %t188 = add i32 %t187, 1 store i32 %t188, ptr @g_pi %t189 = call ptr @fn_node(i32 24) store ptr %t189, ptr %t190 %t191 = load ptr, ptr %t190 %t192 = getelementptr inbounds %Cmp_Node, ptr %t191, i32 0, i32 4 %t193 = call ptr @fn_expr() store ptr %t193, ptr %t192 call void @fn_skipnl() call void @fn_eat_op(ptr @.str90) store i32 0, ptr %t194 br label %wcond49 wcond49: %t195 = icmp ne i32 1, 0 br i1 %t195, label %wbody50, label %wend51 wbody50: call void @fn_skipnl() %t196 = call i32 @fn_is_op(ptr @.str91) %t197 = icmp ne i32 %t196, 0 br i1 %t197, label %then52, label %ifend54 then52: br label %wend51 ifend54: %t198 = call ptr @fn_eat_id() store ptr %t198, ptr %t199 %t200 = call ptr @fn_node(i32 25) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t201 %t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 1 %t204 = call ptr @fn_eat_id() store ptr %t204, ptr %t203 %t205 = call i32 @fn_is_op(ptr @.str92) %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then55, label %else56 then55: %t207 = load i32, ptr @g_pi %t208 = add i32 %t207, 1 store i32 %t208, ptr @g_pi %t209 = load ptr, ptr %t201 %t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 5 %t211 = call ptr @fn_expr() store ptr %t211, ptr %t210 br label %ifend57 else56: %t212 = call ptr @fn_node(i32 30) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t213 %t215 = getelementptr inbounds %Cmp_Node, ptr %t214, i32 0, i32 2 %t216 = load i32, ptr %t194 store i32 %t216, ptr %t215 %t217 = load ptr, ptr %t201 %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 5 %t219 = load ptr, ptr %t213 store ptr %t219, ptr %t218 br label %ifend57 ifend57: call void @fn_skipnl() %t220 = load ptr, ptr %t201 %t221 = getelementptr inbounds %Cmp_Node, ptr %t220, i32 0, i32 4 %t222 = call ptr @fn_block() store ptr %t222, ptr %t221 %t223 = load ptr, ptr %t190 %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 1 %t227 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 2 %t228 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 0 %t229 = load i32, ptr %t226 %t230 = load i32, ptr %t227 %t231 = icmp sge i32 %t229, %t230 br i1 %t231, label %grow58, label %put59 grow58: %t232 = mul i32 %t230, 2 %t233 = icmp eq i32 %t230, 0 %t234 = select i1 %t233, i32 8, i32 %t232 %t235 = getelementptr ptr, ptr null, i32 1 %t236 = ptrtoint ptr %t235 to i64 %t237 = zext i32 %t234 to i64 %t238 = mul i64 %t237, %t236 %t239 = load ptr, ptr %t228 %t240 = call ptr @realloc(ptr %t239, i64 %t238) store ptr %t240, ptr %t228 store i32 %t234, ptr %t227 br label %put59 put59: %t241 = load ptr, ptr %t201 %t242 = load ptr, ptr %t228 %t243 = getelementptr inbounds ptr, ptr %t242, i32 %t229 store ptr %t241, ptr %t243 %t244 = add i32 %t229, 1 store i32 %t244, ptr %t226 %t245 = load i32, ptr %t194 %t246 = add i32 %t245, 1 store i32 %t246, ptr %t194 br label %wcond49 wend51: call void @fn_eat_op(ptr @.str93) %t247 = load ptr, ptr %t190 store ptr %t247, ptr %retval br label %ret ifend48: %t249 = load ptr, ptr %t6 %t250 = getelementptr inbounds %Cmp_Tok, ptr %t249, i32 0, i32 1 %t251 = load ptr, ptr %t250 %t252 = call i32 @fn_str_eq(ptr %t251, ptr @.str94) %t253 = icmp ne i32 %t252, 0 %t254 = zext i1 %t253 to i32 store i32 %t254, ptr %t248 br i1 %t253, label %sc60, label %scend61 sc60: %t255 = load ptr, ptr @g_toks %t256 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 0 %t257 = load ptr, ptr %t256 %t258 = load i32, ptr @g_pi %t259 = add i32 %t258, 1 %t260 = getelementptr inbounds ptr, ptr %t257, i32 %t259 %t261 = load ptr, ptr %t260 %t262 = getelementptr inbounds %Cmp_Tok, ptr %t261, i32 0, i32 0 %t263 = load i32, ptr %t262 %t264 = icmp eq i32 %t263, 0 %t265 = zext i1 %t264 to i32 %t266 = icmp ne i32 %t265, 0 %t267 = zext i1 %t266 to i32 store i32 %t267, ptr %t248 br label %scend61 scend61: %t268 = load i32, ptr %t248 %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then62, label %ifend64 then62: %t270 = call ptr @fn_parse_emit() store ptr %t270, ptr %retval br label %ret ifend64: %t271 = load ptr, ptr %t6 %t272 = getelementptr inbounds %Cmp_Tok, ptr %t271, i32 0, i32 1 %t273 = load ptr, ptr %t272 %t274 = call i32 @fn_str_eq(ptr %t273, ptr @.str95) %t275 = icmp ne i32 %t274, 0 br i1 %t275, label %then65, label %ifend67 then65: %t276 = load i32, ptr @g_pi %t277 = add i32 %t276, 1 store i32 %t277, ptr @g_pi %t278 = call ptr @fn_node(i32 26) store ptr %t278, ptr %t279 %t280 = load ptr, ptr %t279 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 1 %t282 = call ptr @fn_eat_id() store ptr %t282, ptr %t281 %t283 = load ptr, ptr %t279 store ptr %t283, ptr %retval br label %ret ifend67: %t284 = load ptr, ptr %t6 %t285 = getelementptr inbounds %Cmp_Tok, ptr %t284, i32 0, i32 1 %t286 = load ptr, ptr %t285 %t287 = call i32 @fn_str_eq(ptr %t286, ptr @.str96) %t288 = icmp ne i32 %t287, 0 br i1 %t288, label %then68, label %ifend70 then68: %t289 = load i32, ptr @g_pi %t290 = add i32 %t289, 1 store i32 %t290, ptr @g_pi %t291 = call ptr @fn_node(i32 23) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t292 %t294 = getelementptr inbounds %Cmp_Node, ptr %t293, i32 0, i32 4 %t295 = call ptr @fn_expr() store ptr %t295, ptr %t294 %t296 = load ptr, ptr %t292 store ptr %t296, ptr %retval br label %ret ifend70: %t298 = load ptr, ptr %t6 %t299 = getelementptr inbounds %Cmp_Tok, ptr %t298, i32 0, i32 1 %t300 = load ptr, ptr %t299 %t301 = call i32 @fn_str_eq(ptr %t300, ptr @.str97) %t302 = icmp ne i32 %t301, 0 %t303 = zext i1 %t302 to i32 store i32 %t303, ptr %t297 br i1 %t302, label %scend72, label %sc71 sc71: %t304 = load ptr, ptr %t6 %t305 = getelementptr inbounds %Cmp_Tok, ptr %t304, i32 0, i32 1 %t306 = load ptr, ptr %t305 %t307 = call i32 @fn_str_eq(ptr %t306, ptr @.str98) %t308 = icmp ne i32 %t307, 0 %t309 = zext i1 %t308 to i32 store i32 %t309, ptr %t297 br label %scend72 scend72: %t310 = load i32, ptr %t297 %t311 = icmp ne i32 %t310, 0 br i1 %t311, label %then73, label %ifend75 then73: store i32 0, ptr %t312 %t313 = load ptr, ptr %t6 %t314 = getelementptr inbounds %Cmp_Tok, ptr %t313, i32 0, i32 1 %t315 = load ptr, ptr %t314 %t316 = call i32 @fn_str_eq(ptr %t315, ptr @.str99) %t317 = icmp ne i32 %t316, 0 br i1 %t317, label %then76, label %ifend78 then76: store i32 1, ptr %t312 br label %ifend78 ifend78: %t318 = load i32, ptr @g_pi %t319 = add i32 %t318, 1 store i32 %t319, ptr @g_pi %t320 = call ptr @fn_node(i32 28) store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t321 %t323 = getelementptr inbounds %Cmp_Node, ptr %t322, i32 0, i32 2 %t324 = load i32, ptr %t312 store i32 %t324, ptr %t323 %t325 = call i32 @fn_is_id(ptr @.str100) %t326 = icmp ne i32 %t325, 0 br i1 %t326, label %then79, label %ifend81 then79: %t327 = load i32, ptr @g_pi %t328 = add i32 %t327, 1 store i32 %t328, ptr @g_pi %t329 = load ptr, ptr %t321 %t330 = getelementptr inbounds %Cmp_Node, ptr %t329, i32 0, i32 3 store ptr @.str101, ptr %t330 %t331 = load ptr, ptr %t321 %t332 = getelementptr inbounds %Cmp_Node, ptr %t331, i32 0, i32 1 %t333 = call ptr @fn_eat_id() store ptr %t333, ptr %t332 %t334 = load ptr, ptr %t321 %t335 = getelementptr inbounds %Cmp_Node, ptr %t334, i32 0, i32 1 %t336 = load ptr, ptr %t335 call void @fn_note_toggled_layer(ptr %t336) %t337 = load ptr, ptr %t321 store ptr %t337, ptr %retval br label %ret ifend81: %t338 = load ptr, ptr %t321 %t339 = getelementptr inbounds %Cmp_Node, ptr %t338, i32 0, i32 1 %t340 = call ptr @fn_eat_id() store ptr %t340, ptr %t339 %t341 = call i32 @fn_is_id(ptr @.str102) %t342 = icmp ne i32 %t341, 0 br i1 %t342, label %then82, label %ifend84 then82: %t343 = load i32, ptr @g_pi %t344 = add i32 %t343, 1 store i32 %t344, ptr @g_pi %t345 = load ptr, ptr %t321 %t346 = getelementptr inbounds %Cmp_Node, ptr %t345, i32 0, i32 4 %t347 = call ptr @fn_expr() store ptr %t347, ptr %t346 br label %ifend84 ifend84: %t348 = load ptr, ptr %t321 store ptr %t348, ptr %retval br label %ret ifend75: %t349 = load ptr, ptr %t6 %t350 = getelementptr inbounds %Cmp_Tok, ptr %t349, i32 0, i32 1 %t351 = load ptr, ptr %t350 %t352 = call i32 @fn_str_eq(ptr %t351, ptr @.str103) %t353 = icmp ne i32 %t352, 0 br i1 %t353, label %then85, label %ifend87 then85: %t354 = load i32, ptr @g_pi %t355 = add i32 %t354, 1 store i32 %t355, ptr @g_pi %t356 = call ptr @fn_node(i32 46) store ptr %t356, ptr %t357 %t358 = load ptr, ptr %t357 %t359 = getelementptr inbounds %Cmp_Node, ptr %t358, i32 0, i32 1 %t360 = call ptr @fn_eat_id() store ptr %t360, ptr %t359 %t361 = call i32 @fn_is_id(ptr @.str104) %t362 = icmp eq i32 %t361, 0 %t363 = zext i1 %t362 to i32 %t364 = icmp ne i32 %t363, 0 br i1 %t364, label %then88, label %ifend90 then88: call void @fn_perr(ptr @.str105) br label %ifend90 ifend90: %t365 = load i32, ptr @g_pi %t366 = add i32 %t365, 1 store i32 %t366, ptr @g_pi %t367 = load ptr, ptr %t357 %t368 = getelementptr inbounds %Cmp_Node, ptr %t367, i32 0, i32 4 %t369 = call ptr @fn_expr() store ptr %t369, ptr %t368 %t370 = call i32 @fn_is_op(ptr @.str106) %t371 = icmp ne i32 %t370, 0 br i1 %t371, label %then91, label %ifend93 then91: %t372 = load ptr, ptr %t357 %t373 = getelementptr inbounds %Cmp_Node, ptr %t372, i32 0, i32 5 %t374 = call ptr @fn_record() store ptr %t374, ptr %t373 br label %ifend93 ifend93: %t375 = load ptr, ptr %t357 store ptr %t375, ptr %retval br label %ret ifend87: %t376 = load ptr, ptr %t6 %t377 = getelementptr inbounds %Cmp_Tok, ptr %t376, i32 0, i32 1 %t378 = load ptr, ptr %t377 %t379 = call i32 @fn_str_eq(ptr %t378, ptr @.str107) %t380 = icmp ne i32 %t379, 0 br i1 %t380, label %then94, label %ifend96 then94: %t381 = load i32, ptr @g_pi %t382 = add i32 %t381, 1 store i32 %t382, ptr @g_pi %t383 = call ptr @fn_node(i32 47) store ptr %t383, ptr %t384 %t385 = load ptr, ptr %t384 %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 @.str108) %t389 = icmp eq i32 %t388, 0 %t390 = zext i1 %t389 to i32 %t391 = icmp ne i32 %t390, 0 br i1 %t391, label %then97, label %ifend99 then97: call void @fn_perr(ptr @.str109) br label %ifend99 ifend99: %t392 = load i32, ptr @g_pi %t393 = add i32 %t392, 1 store i32 %t393, ptr @g_pi %t394 = load ptr, ptr %t384 %t395 = getelementptr inbounds %Cmp_Node, ptr %t394, i32 0, i32 4 %t396 = call ptr @fn_expr() store ptr %t396, ptr %t395 %t397 = load ptr, ptr %t384 store ptr %t397, ptr %retval br label %ret ifend96: %t398 = load ptr, ptr %t6 %t399 = getelementptr inbounds %Cmp_Tok, ptr %t398, i32 0, i32 1 %t400 = load ptr, ptr %t399 %t401 = call i32 @fn_str_eq(ptr %t400, ptr @.str110) %t402 = icmp ne i32 %t401, 0 br i1 %t402, label %then100, label %ifend102 then100: %t403 = load i32, ptr @g_pi %t404 = add i32 %t403, 1 store i32 %t404, ptr @g_pi %t405 = call ptr @fn_node(i32 17) store ptr %t405, ptr %retval br label %ret ifend102: %t406 = load ptr, ptr %t6 %t407 = getelementptr inbounds %Cmp_Tok, ptr %t406, i32 0, i32 1 %t408 = load ptr, ptr %t407 %t409 = call i32 @fn_str_eq(ptr %t408, ptr @.str111) %t410 = icmp ne i32 %t409, 0 br i1 %t410, label %then103, label %ifend105 then103: %t411 = load i32, ptr @g_pi %t412 = add i32 %t411, 1 store i32 %t412, ptr @g_pi %t413 = call ptr @fn_node(i32 18) store ptr %t413, ptr %retval br label %ret ifend105: %t414 = load ptr, ptr %t6 %t415 = getelementptr inbounds %Cmp_Tok, ptr %t414, i32 0, i32 1 %t416 = load ptr, ptr %t415 %t417 = call i32 @fn_str_eq(ptr %t416, ptr @.str112) %t418 = icmp ne i32 %t417, 0 br i1 %t418, label %then106, label %ifend108 then106: %t419 = load i32, ptr @g_pi %t420 = add i32 %t419, 1 store i32 %t420, ptr @g_pi %t421 = call ptr @fn_node(i32 50) store ptr %t421, ptr %retval br label %ret ifend108: %t422 = load ptr, ptr %t6 %t423 = getelementptr inbounds %Cmp_Tok, ptr %t422, i32 0, i32 1 %t424 = load ptr, ptr %t423 %t425 = call i32 @fn_str_eq(ptr %t424, ptr @.str113) %t426 = icmp ne i32 %t425, 0 br i1 %t426, label %then109, label %ifend111 then109: %t427 = load i32, ptr @g_pi %t428 = add i32 %t427, 1 store i32 %t428, ptr @g_pi %t429 = call ptr @fn_node(i32 19) store ptr %t429, ptr %t430 %t431 = load ptr, ptr %t430 %t432 = getelementptr inbounds %Cmp_Node, ptr %t431, i32 0, i32 4 %t433 = call ptr @fn_expr() store ptr %t433, ptr %t432 call void @fn_skipnl() call void @fn_eat_op(ptr @.str114) br label %wcond112 wcond112: %t434 = icmp ne i32 1, 0 br i1 %t434, label %wbody113, label %wend114 wbody113: call void @fn_skipnl() %t435 = call i32 @fn_is_op(ptr @.str115) %t436 = icmp ne i32 %t435, 0 br i1 %t436, label %then115, label %ifend117 then115: br label %wend114 ifend117: %t437 = call ptr @fn_node(i32 20) store ptr %t437, ptr %t438 br label %wcond118 wcond118: %t439 = icmp ne i32 1, 0 br i1 %t439, label %wbody119, label %wend120 wbody119: %t440 = load ptr, ptr %t438 %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 1 %t444 = getelementptr inbounds %LSlice, ptr %t442, i32 0, i32 2 %t445 = getelementptr inbounds %LSlice, ptr %t442, i32 0, i32 0 %t446 = load i32, ptr %t443 %t447 = load i32, ptr %t444 %t448 = icmp sge i32 %t446, %t447 br i1 %t448, label %grow121, label %put122 grow121: %t449 = mul i32 %t447, 2 %t450 = icmp eq i32 %t447, 0 %t451 = select i1 %t450, i32 8, i32 %t449 %t452 = getelementptr ptr, ptr null, i32 1 %t453 = ptrtoint ptr %t452 to i64 %t454 = zext i32 %t451 to i64 %t455 = mul i64 %t454, %t453 %t456 = load ptr, ptr %t445 %t457 = call ptr @realloc(ptr %t456, i64 %t455) store ptr %t457, ptr %t445 store i32 %t451, ptr %t444 br label %put122 put122: %t458 = call ptr @fn_expr() %t459 = load ptr, ptr %t445 %t460 = getelementptr inbounds ptr, ptr %t459, i32 %t446 store ptr %t458, ptr %t460 %t461 = add i32 %t446, 1 store i32 %t461, ptr %t443 %t462 = call i32 @fn_is_op(ptr @.str116) %t463 = icmp ne i32 %t462, 0 br i1 %t463, label %then123, label %ifend125 then123: %t464 = load i32, ptr @g_pi %t465 = add i32 %t464, 1 store i32 %t465, ptr @g_pi call void @fn_skipnl() br label %wcond118 ifend125: br label %wend120 wend120: call void @fn_eat_op(ptr @.str117) call void @fn_skipnl() %t466 = call i32 @fn_is_op(ptr @.str118) %t467 = icmp ne i32 %t466, 0 br i1 %t467, label %then126, label %else127 then126: %t468 = load ptr, ptr %t438 %t469 = getelementptr inbounds %Cmp_Node, ptr %t468, i32 0, i32 4 %t470 = call ptr @fn_block() store ptr %t470, ptr %t469 br label %ifend128 else127: %t471 = call ptr @fn_node(i32 7) store ptr %t471, ptr %t472 %t473 = load ptr, ptr %t472 %t474 = getelementptr inbounds %Cmp_Node, ptr %t473, i32 0, i32 7 %t475 = load ptr, ptr %t474 %t476 = getelementptr inbounds %LSlice, ptr %t475, i32 0, i32 1 %t477 = getelementptr inbounds %LSlice, ptr %t475, i32 0, i32 2 %t478 = getelementptr inbounds %LSlice, ptr %t475, i32 0, i32 0 %t479 = load i32, ptr %t476 %t480 = load i32, ptr %t477 %t481 = icmp sge i32 %t479, %t480 br i1 %t481, label %grow129, label %put130 grow129: %t482 = mul i32 %t480, 2 %t483 = icmp eq i32 %t480, 0 %t484 = select i1 %t483, i32 8, i32 %t482 %t485 = getelementptr ptr, ptr null, i32 1 %t486 = ptrtoint ptr %t485 to i64 %t487 = zext i32 %t484 to i64 %t488 = mul i64 %t487, %t486 %t489 = load ptr, ptr %t478 %t490 = call ptr @realloc(ptr %t489, i64 %t488) store ptr %t490, ptr %t478 store i32 %t484, ptr %t477 br label %put130 put130: %t491 = call ptr @fn_stmt() %t492 = load ptr, ptr %t478 %t493 = getelementptr inbounds ptr, ptr %t492, i32 %t479 store ptr %t491, ptr %t493 %t494 = add i32 %t479, 1 store i32 %t494, ptr %t476 %t495 = load ptr, ptr %t438 %t496 = getelementptr inbounds %Cmp_Node, ptr %t495, i32 0, i32 4 %t497 = load ptr, ptr %t472 store ptr %t497, ptr %t496 br label %ifend128 ifend128: %t498 = load ptr, ptr %t430 %t499 = getelementptr inbounds %Cmp_Node, ptr %t498, i32 0, i32 7 %t500 = load ptr, ptr %t499 %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 %grow131, label %put132 grow131: %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 %put132 put132: %t516 = load ptr, ptr %t438 %t517 = load ptr, ptr %t503 %t518 = getelementptr inbounds ptr, ptr %t517, i32 %t504 store ptr %t516, ptr %t518 %t519 = add i32 %t504, 1 store i32 %t519, ptr %t501 br label %wcond112 wend114: call void @fn_eat_op(ptr @.str119) %t520 = load ptr, ptr %t430 store ptr %t520, ptr %retval br label %ret ifend111: br label %ifend2 ifend2: %t521 = call ptr @fn_expr() store ptr %t521, ptr %t522 %t527 = call i32 @fn_is_op(ptr @.str120) %t528 = icmp ne i32 %t527, 0 %t529 = zext i1 %t528 to i32 store i32 %t529, ptr %t526 br i1 %t528, label %scend134, label %sc133 sc133: %t530 = call i32 @fn_is_op(ptr @.str121) %t531 = icmp ne i32 %t530, 0 %t532 = zext i1 %t531 to i32 store i32 %t532, ptr %t526 br label %scend134 scend134: %t533 = load i32, ptr %t526 %t534 = icmp ne i32 %t533, 0 %t535 = zext i1 %t534 to i32 store i32 %t535, ptr %t525 br i1 %t534, label %scend136, label %sc135 sc135: %t536 = call i32 @fn_is_op(ptr @.str122) %t537 = icmp ne i32 %t536, 0 %t538 = zext i1 %t537 to i32 store i32 %t538, ptr %t525 br label %scend136 scend136: %t539 = load i32, ptr %t525 %t540 = icmp ne i32 %t539, 0 %t541 = zext i1 %t540 to i32 store i32 %t541, ptr %t524 br i1 %t540, label %scend138, label %sc137 sc137: %t542 = call i32 @fn_is_op(ptr @.str123) %t543 = icmp ne i32 %t542, 0 %t544 = zext i1 %t543 to i32 store i32 %t544, ptr %t524 br label %scend138 scend138: %t545 = load i32, ptr %t524 %t546 = icmp ne i32 %t545, 0 %t547 = zext i1 %t546 to i32 store i32 %t547, ptr %t523 br i1 %t546, label %scend140, label %sc139 sc139: %t548 = call i32 @fn_is_op(ptr @.str124) %t549 = icmp ne i32 %t548, 0 %t550 = zext i1 %t549 to i32 store i32 %t550, ptr %t523 br label %scend140 scend140: %t551 = load i32, ptr %t523 %t552 = icmp ne i32 %t551, 0 br i1 %t552, label %then141, label %ifend143 then141: %t553 = call ptr @fn_node(i32 11) store ptr %t553, ptr %t554 %t555 = load ptr, ptr %t554 %t556 = getelementptr inbounds %Cmp_Node, ptr %t555, i32 0, i32 8 %t557 = load ptr, ptr @g_toks %t558 = getelementptr inbounds %LSlice, ptr %t557, i32 0, i32 0 %t559 = load ptr, ptr %t558 %t560 = load i32, ptr @g_pi %t561 = getelementptr inbounds ptr, ptr %t559, i32 %t560 %t562 = load ptr, ptr %t561 %t563 = getelementptr inbounds %Cmp_Tok, ptr %t562, i32 0, i32 3 %t564 = load i32, ptr %t563 store i32 %t564, ptr %t556 %t565 = load ptr, ptr %t554 %t566 = getelementptr inbounds %Cmp_Node, ptr %t565, i32 0, i32 1 %t567 = load ptr, ptr @g_toks %t568 = getelementptr inbounds %LSlice, ptr %t567, i32 0, i32 0 %t569 = load ptr, ptr %t568 %t570 = load i32, ptr @g_pi %t571 = getelementptr inbounds ptr, ptr %t569, i32 %t570 %t572 = load ptr, ptr %t571 %t573 = getelementptr inbounds %Cmp_Tok, ptr %t572, i32 0, i32 1 %t574 = load ptr, ptr %t573 store ptr %t574, ptr %t566 %t575 = load i32, ptr @g_pi %t576 = add i32 %t575, 1 store i32 %t576, ptr @g_pi %t577 = load ptr, ptr %t554 %t578 = getelementptr inbounds %Cmp_Node, ptr %t577, i32 0, i32 4 %t579 = load ptr, ptr %t522 store ptr %t579, ptr %t578 %t580 = load ptr, ptr %t554 %t581 = getelementptr inbounds %Cmp_Node, ptr %t580, i32 0, i32 5 %t582 = call ptr @fn_expr() store ptr %t582, ptr %t581 %t583 = load ptr, ptr %t554 store ptr %t583, ptr %retval br label %ret ifend143: %t584 = call ptr @fn_node(i32 16) store ptr %t584, ptr %t585 %t586 = load ptr, ptr %t585 %t587 = getelementptr inbounds %Cmp_Node, ptr %t586, i32 0, i32 4 %t588 = load ptr, ptr %t522 store ptr %t588, ptr %t587 %t589 = load ptr, ptr %t585 store ptr %t589, ptr %retval br label %ret ret: %t590 = load ptr, ptr %retval ret ptr %t590 } 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 @.str125) %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 @.str126) %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 @.str127) %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 @.str128) %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 ptr @fn_parse_fn() { entry: %retval = alloca ptr %t3 = alloca ptr %t12 = 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 call void @fn_eat_op(ptr @.str129) br label %wcond0 wcond0: %t7 = call i32 @fn_is_op(ptr @.str130) %t8 = icmp eq i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %wbody1, label %wend2 wbody1: %t11 = call ptr @fn_node(i32 5) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 1 %t15 = call ptr @fn_eat_id() store ptr %t15, ptr %t14 call void @fn_eat_op(ptr @.str131) %t16 = load ptr, ptr %t12 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 %t18 = call ptr @fn_ptype() store ptr %t18, ptr %t17 %t19 = load ptr, ptr %t3 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 7 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 2 %t24 = getelementptr inbounds %LSlice, ptr %t21, 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 %t12 %t38 = load ptr, ptr %t24 %t39 = getelementptr inbounds ptr, ptr %t38, i32 %t25 store ptr %t37, ptr %t39 %t40 = add i32 %t25, 1 store i32 %t40, ptr %t22 %t41 = call i32 @fn_is_op(ptr @.str132) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then5, label %ifend7 then5: %t43 = load i32, ptr @g_pi %t44 = add i32 %t43, 1 store i32 %t44, ptr @g_pi br label %ifend7 ifend7: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str133) %t45 = load ptr, ptr %t3 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 3 store ptr @.str134, ptr %t46 %t47 = call i32 @fn_is_op(ptr @.str135) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then8, label %ifend10 then8: %t49 = load i32, ptr @g_pi %t50 = add i32 %t49, 1 store i32 %t50, ptr @g_pi %t51 = load ptr, ptr %t3 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3 %t53 = call ptr @fn_ptype() store ptr %t53, ptr %t52 br label %ifend10 ifend10: %t54 = load ptr, ptr %t3 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 4 %t56 = call ptr @fn_block() store ptr %t56, ptr %t55 %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_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 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 = icmp eq i32 %t16, 47 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load i32, ptr %t3 store i32 %t20, ptr %t2 br label %ifend5 ifend5: %t21 = load i32, ptr %t3 %t22 = add i32 %t21, 1 store i32 %t22, ptr %t3 br label %wcond0 wend2: %t23 = load i32, ptr %t2 %t24 = icmp slt i32 %t23, 0 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %ifend8 then6: store ptr @.str136, ptr %retval br label %ret ifend8: %t27 = load ptr, ptr %t0 %t28 = load i32, ptr %t2 %t29 = add i32 %t28, 1 %t30 = add i32 0, %t29 %t31 = call ptr @fn_str_slice(ptr %t27, i32 0, i32 %t30) store ptr %t31, ptr %retval br label %ret ret: %t32 = load ptr, ptr %retval ret ptr %t32 } define ptr @fn_path_join(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 = icmp eq i32 %t5, 47 %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 %t0 %t11 = load ptr, ptr %t1 %t12 = call ptr @fn_str_concat(ptr %t10, ptr %t11) store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = load ptr, ptr %t0 %t16 = call i32 @fn_str_eq(ptr %t14, ptr %t15) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t18 = load i32, ptr %t1 %t19 = add i32 %t18, 1 store i32 %t19, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t20 = load i32, ptr %retval ret i32 %t20 } 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 %t21 = alloca ptr %t92 = alloca i32 %t118 = alloca ptr %t128 = alloca ptr %t157 = alloca ptr %t169 = alloca ptr %t172 = alloca i32 %t216 = alloca ptr %t246 = alloca ptr %t367 = alloca ptr %t482 = 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 br label %wcond0 wcond0: %t16 = call i32 @fn_is_op(ptr @.str137) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %wbody1, label %wend2 wbody1: %t18 = load i32, ptr @g_pi %t19 = add i32 %t18, 1 store i32 %t19, ptr @g_pi %t20 = call ptr @fn_eat_id() store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str138) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then3, label %else4 then3: store i32 1, ptr %t0 br label %ifend5 else4: %t25 = load ptr, ptr %t21 %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str139) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %else7 then6: store i32 1, ptr %t10 br label %ifend8 else7: %t28 = load ptr, ptr %t21 %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str140) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %else10 then9: call void @fn_eat_op(ptr @.str141) %t31 = call ptr @fn_eat_id() store ptr %t31, ptr %t9 call void @fn_eat_op(ptr @.str142) br label %ifend11 else10: %t32 = load ptr, ptr %t21 %t33 = call i32 @fn_str_eq(ptr %t32, ptr @.str143) %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then12, label %else13 then12: %t35 = call ptr @fn_parse_queries_anno() store ptr %t35, ptr %t1 br label %ifend14 else13: %t36 = load ptr, ptr %t21 %t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str144) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then15, label %else16 then15: call void @fn_eat_op(ptr @.str145) %t39 = call ptr @fn_eat_id() store ptr %t39, ptr %t2 call void @fn_eat_op(ptr @.str146) br label %ifend17 else16: %t40 = load ptr, ptr %t21 %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str147) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then18, label %else19 then18: call void @fn_eat_op(ptr @.str148) %t43 = call ptr @fn_eat_id() store ptr %t43, ptr %t3 %t44 = call i32 @fn_is_op(ptr @.str149) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then21, label %ifend23 then21: %t46 = load i32, ptr @g_pi %t47 = add i32 %t46, 1 store i32 %t47, ptr @g_pi %t48 = call ptr @fn_eat_id() call void @fn_eat_op(ptr @.str150) %t49 = call ptr @fn_eat_id() store ptr %t49, ptr %t4 br label %ifend23 ifend23: call void @fn_eat_op(ptr @.str151) br label %ifend20 else19: %t50 = load ptr, ptr %t21 %t51 = call i32 @fn_str_eq(ptr %t50, ptr @.str152) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then24, label %else25 then24: call void @fn_eat_op(ptr @.str153) %t53 = call ptr @fn_eat_id() store ptr %t53, ptr %t5 call void @fn_eat_op(ptr @.str154) br label %ifend26 else25: %t54 = load ptr, ptr %t21 %t55 = call i32 @fn_str_eq(ptr %t54, ptr @.str155) %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then27, label %else28 then27: call void @fn_eat_op(ptr @.str156) %t57 = call ptr @fn_eat_id() store ptr %t57, ptr %t6 call void @fn_eat_op(ptr @.str157) br label %ifend29 else28: %t58 = load ptr, ptr %t21 %t59 = call i32 @fn_str_eq(ptr %t58, ptr @.str158) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then30, label %else31 then30: call void @fn_eat_op(ptr @.str159) %t61 = call ptr @fn_eat_id() store ptr %t61, ptr %t7 call void @fn_eat_op(ptr @.str160) br label %ifend32 else31: %t62 = load ptr, ptr %t21 %t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str161) %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then33, label %else34 then33: call void @fn_eat_op(ptr @.str162) %t65 = call ptr @fn_eat_id() store ptr %t65, ptr %t8 call void @fn_eat_op(ptr @.str163) br label %ifend35 else34: %t66 = load ptr, ptr %t21 %t67 = call i32 @fn_str_eq(ptr %t66, ptr @.str164) %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then36, label %else37 then36: store ptr @.str165, ptr %t11 br label %ifend38 else37: %t69 = load ptr, ptr %t21 %t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str166) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then39, label %else40 then39: store ptr @.str167, ptr %t11 br label %ifend41 else40: %t72 = load ptr, ptr %t21 %t73 = call i32 @fn_str_eq(ptr %t72, ptr @.str168) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then42, label %else43 then42: store i32 1, ptr %t12 br label %ifend44 else43: %t75 = load ptr, ptr %t21 %t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str169) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then45, label %else46 then45: store i32 1, ptr %t13 br label %ifend47 else46: %t78 = load ptr, ptr %t21 %t79 = call i32 @fn_str_eq(ptr %t78, ptr @.str170) %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then48, label %else49 then48: store ptr @.str171, ptr %t14 br label %ifend50 else49: %t81 = load ptr, ptr %t21 %t82 = call i32 @fn_str_eq(ptr %t81, ptr @.str172) %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then51, label %else52 then51: store ptr @.str173, ptr %t14 br label %ifend53 else52: %t84 = load ptr, ptr %t21 %t85 = call i32 @fn_str_eq(ptr %t84, ptr @.str174) %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then54, label %else55 then54: store ptr @.str175, ptr %t15 br label %ifend56 else55: %t87 = load ptr, ptr %t21 %t88 = call i32 @fn_str_eq(ptr %t87, ptr @.str176) %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then57, label %else58 then57: store ptr @.str177, ptr %t15 br label %ifend59 else58: %t90 = call i32 @fn_is_op(ptr @.str178) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then60, label %ifend62 then60: store i32 0, ptr %t92 br label %wcond63 wcond63: %t93 = icmp ne i32 1, 0 br i1 %t93, label %wbody64, label %wend65 wbody64: %t94 = call i32 @fn_is_op(ptr @.str179) %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then66, label %ifend68 then66: %t96 = load i32, ptr %t92 %t97 = add i32 %t96, 1 store i32 %t97, ptr %t92 br label %ifend68 ifend68: %t98 = call i32 @fn_is_op(ptr @.str180) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then69, label %ifend71 then69: %t100 = load i32, ptr %t92 %t101 = sub i32 %t100, 1 store i32 %t101, ptr %t92 br label %ifend71 ifend71: %t102 = load i32, ptr @g_pi %t103 = add i32 %t102, 1 store i32 %t103, ptr @g_pi %t104 = load i32, ptr %t92 %t105 = icmp eq i32 %t104, 0 %t106 = zext i1 %t105 to i32 %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then72, label %ifend74 then72: br label %wend65 ifend74: br label %wcond63 wend65: 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: %t108 = call i32 @fn_is_id(ptr @.str181) %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then75, label %ifend77 then75: %t110 = load i32, ptr @g_pi %t111 = add i32 %t110, 1 store i32 %t111, ptr @g_pi %t112 = load ptr, ptr @g_toks %t113 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t114 = load ptr, ptr %t113 %t115 = load i32, ptr @g_pi %t116 = getelementptr inbounds ptr, ptr %t114, i32 %t115 %t117 = load ptr, ptr %t116 store ptr %t117, ptr %t118 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds %Cmp_Tok, ptr %t119, i32 0, i32 0 %t121 = load i32, ptr %t120 %t122 = icmp ne i32 %t121, 2 %t123 = zext i1 %t122 to i32 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then78, label %ifend80 then78: call void @fn_perr(ptr @.str182) br label %ifend80 ifend80: %t125 = load ptr, ptr %t118 %t126 = getelementptr inbounds %Cmp_Tok, ptr %t125, i32 0, i32 1 %t127 = load ptr, ptr %t126 store ptr %t127, ptr %t128 %t129 = load i32, ptr @g_pi %t130 = add i32 %t129, 1 store i32 %t130, ptr @g_pi %t131 = load ptr, ptr %t128 call void @fn_do_import(ptr %t131) br label %ret ifend77: %t132 = call i32 @fn_is_id(ptr @.str183) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then81, label %ifend83 then81: %t134 = load ptr, ptr @g_prog %t135 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 1 %t136 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 2 %t137 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 0 %t138 = load i32, ptr %t135 %t139 = load i32, ptr %t136 %t140 = icmp sge i32 %t138, %t139 br i1 %t140, label %grow84, label %put85 grow84: %t141 = mul i32 %t139, 2 %t142 = icmp eq i32 %t139, 0 %t143 = select i1 %t142, i32 8, i32 %t141 %t144 = getelementptr ptr, ptr null, i32 1 %t145 = ptrtoint ptr %t144 to i64 %t146 = zext i32 %t143 to i64 %t147 = mul i64 %t146, %t145 %t148 = load ptr, ptr %t137 %t149 = call ptr @realloc(ptr %t148, i64 %t147) store ptr %t149, ptr %t137 store i32 %t143, ptr %t136 br label %put85 put85: %t150 = call ptr @fn_parse_enum() %t151 = load ptr, ptr %t137 %t152 = getelementptr inbounds ptr, ptr %t151, i32 %t138 store ptr %t150, ptr %t152 %t153 = add i32 %t138, 1 store i32 %t153, ptr %t135 br label %ret ifend83: %t154 = call i32 @fn_is_id(ptr @.str184) %t155 = icmp ne i32 %t154, 0 br i1 %t155, label %then86, label %ifend88 then86: %t156 = call ptr @fn_parse_event() store ptr %t156, ptr %t157 %t158 = load ptr, ptr %t15 %t159 = icmp ne ptr %t158, null %t160 = zext i1 %t159 to i32 %t161 = icmp ne i32 %t160, 0 br i1 %t161, label %then89, label %ifend91 then89: %t162 = load ptr, ptr %t157 %t163 = getelementptr inbounds %Cmp_Node, ptr %t162, i32 0, i32 3 %t164 = load ptr, ptr %t15 store ptr %t164, ptr %t163 br label %ifend91 ifend91: %t165 = load ptr, ptr %t157 call void @fn_register_event(ptr %t165) br label %ret ifend88: %t166 = call i32 @fn_is_id(ptr @.str185) %t167 = icmp ne i32 %t166, 0 br i1 %t167, label %then92, label %ifend94 then92: %t168 = call ptr @fn_parse_component() store ptr %t168, ptr %t169 %t170 = load i32, ptr %t12 %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then95, label %ifend97 then95: store i32 0, ptr %t172 br label %wcond98 wcond98: %t173 = load i32, ptr %t172 %t174 = load ptr, ptr %t169 %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 %wbody99, label %wend100 wbody99: %t182 = load ptr, ptr %t169 %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 = load i32, ptr %t172 %t188 = getelementptr inbounds ptr, ptr %t186, i32 %t187 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 2 store i32 1, ptr %t190 %t191 = load i32, ptr %t172 %t192 = add i32 %t191, 1 store i32 %t192, ptr %t172 br label %wcond98 wend100: br label %ifend97 ifend97: %t193 = load ptr, ptr @g_prog %t194 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 1 %t195 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 2 %t196 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 0 %t197 = load i32, ptr %t194 %t198 = load i32, ptr %t195 %t199 = icmp sge i32 %t197, %t198 br i1 %t199, label %grow101, label %put102 grow101: %t200 = mul i32 %t198, 2 %t201 = icmp eq i32 %t198, 0 %t202 = select i1 %t201, i32 8, i32 %t200 %t203 = getelementptr ptr, ptr null, i32 1 %t204 = ptrtoint ptr %t203 to i64 %t205 = zext i32 %t202 to i64 %t206 = mul i64 %t205, %t204 %t207 = load ptr, ptr %t196 %t208 = call ptr @realloc(ptr %t207, i64 %t206) store ptr %t208, ptr %t196 store i32 %t202, ptr %t195 br label %put102 put102: %t209 = load ptr, ptr %t169 %t210 = load ptr, ptr %t196 %t211 = getelementptr inbounds ptr, ptr %t210, i32 %t197 store ptr %t209, ptr %t211 %t212 = add i32 %t197, 1 store i32 %t212, ptr %t194 br label %ret ifend94: %t213 = call i32 @fn_is_id(ptr @.str186) %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %then103, label %ifend105 then103: %t215 = call ptr @fn_parse_archetype() store ptr %t215, ptr %t216 %t217 = load i32, ptr %t13 %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %then106, label %ifend108 then106: %t219 = load ptr, ptr %t216 %t220 = getelementptr inbounds %Cmp_Node, ptr %t219, i32 0, i32 2 store i32 1, ptr %t220 br label %ifend108 ifend108: %t221 = load ptr, ptr @g_prog %t222 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 1 %t223 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 2 %t224 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 0 %t225 = load i32, ptr %t222 %t226 = load i32, ptr %t223 %t227 = icmp sge i32 %t225, %t226 br i1 %t227, label %grow109, label %put110 grow109: %t228 = mul i32 %t226, 2 %t229 = icmp eq i32 %t226, 0 %t230 = select i1 %t229, i32 8, i32 %t228 %t231 = getelementptr ptr, ptr null, i32 1 %t232 = ptrtoint ptr %t231 to i64 %t233 = zext i32 %t230 to i64 %t234 = mul i64 %t233, %t232 %t235 = load ptr, ptr %t224 %t236 = call ptr @realloc(ptr %t235, i64 %t234) store ptr %t236, ptr %t224 store i32 %t230, ptr %t223 br label %put110 put110: %t237 = load ptr, ptr %t216 %t238 = load ptr, ptr %t224 %t239 = getelementptr inbounds ptr, ptr %t238, i32 %t225 store ptr %t237, ptr %t239 %t240 = add i32 %t225, 1 store i32 %t240, ptr %t222 br label %ret ifend105: %t241 = call i32 @fn_is_id(ptr @.str187) %t242 = icmp ne i32 %t241, 0 br i1 %t242, label %then111, label %ifend113 then111: call void @fn_parse_scene() br label %ret ifend113: %t243 = call i32 @fn_is_id(ptr @.str188) %t244 = icmp ne i32 %t243, 0 br i1 %t244, label %then114, label %ifend116 then114: %t245 = call ptr @fn_parse_system() store ptr %t245, ptr %t246 %t247 = load ptr, ptr %t14 %t248 = icmp ne ptr %t247, null %t249 = zext i1 %t248 to i32 %t250 = icmp ne i32 %t249, 0 br i1 %t250, label %then117, label %ifend119 then117: %t251 = load ptr, ptr %t14 %t252 = call i32 @fn_str_eq(ptr %t251, ptr @.str189) %t253 = icmp ne i32 %t252, 0 br i1 %t253, label %then120, label %else121 then120: %t254 = load ptr, ptr %t246 %t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 2 store i32 1, ptr %t255 br label %ifend122 else121: %t256 = load ptr, ptr %t246 %t257 = getelementptr inbounds %Cmp_Node, ptr %t256, i32 0, i32 2 store i32 2, ptr %t257 br label %ifend122 ifend122: br label %ifend119 ifend119: %t258 = load ptr, ptr %t9 %t259 = icmp ne ptr %t258, null %t260 = zext i1 %t259 to i32 %t261 = icmp ne i32 %t260, 0 br i1 %t261, label %then123, label %ifend125 then123: %t262 = load ptr, ptr %t9 %t263 = load ptr, ptr %t246 %t264 = getelementptr inbounds %Cmp_Node, ptr %t263, i32 0, i32 4 %t265 = load ptr, ptr %t264 call void @fn_register_onlisten(ptr %t262, ptr %t265) br label %ret ifend125: %t266 = load ptr, ptr %t2 %t267 = icmp ne ptr %t266, null %t268 = zext i1 %t267 to i32 %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then126, label %ifend128 then126: %t270 = load ptr, ptr %t2 %t271 = load ptr, ptr %t246 %t272 = getelementptr inbounds %Cmp_Node, ptr %t271, i32 0, i32 4 %t273 = load ptr, ptr %t272 call void @fn_register_onspawn(ptr %t270, ptr %t273) %t274 = load i32, ptr %t10 %t275 = icmp ne i32 %t274, 0 br i1 %t275, label %then129, label %ifend131 then129: %t276 = load ptr, ptr %t2 %t277 = call ptr @fn_str_concat(ptr @.str190, ptr %t276) %t278 = call ptr @fn_str_concat(ptr %t277, ptr @.str191) call void @fn_ensure_event(ptr %t278, i32 0) br label %ifend131 ifend131: br label %ret ifend128: %t279 = load ptr, ptr %t3 %t280 = icmp ne ptr %t279, null %t281 = zext i1 %t280 to i32 %t282 = icmp ne i32 %t281, 0 br i1 %t282, label %then132, label %ifend134 then132: %t283 = load ptr, ptr %t3 %t284 = load ptr, ptr %t246 %t285 = getelementptr inbounds %Cmp_Node, ptr %t284, i32 0, i32 4 %t286 = load ptr, ptr %t285 %t287 = load ptr, ptr %t4 call void @fn_register_ondespawn(ptr %t283, ptr %t286, ptr %t287) %t288 = load i32, ptr %t10 %t289 = icmp ne i32 %t288, 0 br i1 %t289, label %then135, label %ifend137 then135: %t290 = load ptr, ptr %t3 %t291 = call ptr @fn_str_concat(ptr @.str192, ptr %t290) %t292 = call ptr @fn_str_concat(ptr %t291, ptr @.str193) call void @fn_ensure_event(ptr %t292, i32 1) br label %ifend137 ifend137: br label %ret ifend134: %t293 = load ptr, ptr %t5 %t294 = icmp ne ptr %t293, null %t295 = zext i1 %t294 to i32 %t296 = icmp ne i32 %t295, 0 br i1 %t296, label %then138, label %ifend140 then138: %t297 = load ptr, ptr %t5 %t298 = load ptr, ptr %t246 %t299 = getelementptr inbounds %Cmp_Node, ptr %t298, i32 0, i32 4 %t300 = load ptr, ptr %t299 call void @fn_register_onattach(ptr %t297, ptr %t300) %t301 = load i32, ptr %t10 %t302 = icmp ne i32 %t301, 0 br i1 %t302, label %then141, label %ifend143 then141: %t303 = load ptr, ptr %t5 %t304 = call ptr @fn_str_concat(ptr @.str194, ptr %t303) %t305 = call ptr @fn_str_concat(ptr %t304, ptr @.str195) call void @fn_ensure_event(ptr %t305, i32 0) br label %ifend143 ifend143: br label %ret ifend140: %t306 = load ptr, ptr %t6 %t307 = icmp ne ptr %t306, null %t308 = zext i1 %t307 to i32 %t309 = icmp ne i32 %t308, 0 br i1 %t309, label %then144, label %ifend146 then144: %t310 = load ptr, ptr %t6 %t311 = load ptr, ptr %t246 %t312 = getelementptr inbounds %Cmp_Node, ptr %t311, i32 0, i32 4 %t313 = load ptr, ptr %t312 call void @fn_register_ondetach(ptr %t310, ptr %t313) %t314 = load i32, ptr %t10 %t315 = icmp ne i32 %t314, 0 br i1 %t315, label %then147, label %ifend149 then147: %t316 = load ptr, ptr %t6 %t317 = call ptr @fn_str_concat(ptr @.str196, ptr %t316) %t318 = call ptr @fn_str_concat(ptr %t317, ptr @.str197) call void @fn_ensure_event(ptr %t318, i32 0) br label %ifend149 ifend149: br label %ret ifend146: %t319 = load ptr, ptr %t7 %t320 = icmp ne ptr %t319, null %t321 = zext i1 %t320 to i32 %t322 = icmp ne i32 %t321, 0 br i1 %t322, label %then150, label %ifend152 then150: %t323 = load ptr, ptr %t7 %t324 = load ptr, ptr %t246 %t325 = getelementptr inbounds %Cmp_Node, ptr %t324, i32 0, i32 4 %t326 = load ptr, ptr %t325 call void @fn_register_onenable(ptr %t323, ptr %t326) %t327 = load i32, ptr %t10 %t328 = icmp ne i32 %t327, 0 br i1 %t328, label %then153, label %ifend155 then153: %t329 = load ptr, ptr %t7 %t330 = call ptr @fn_str_concat(ptr @.str198, ptr %t329) %t331 = call ptr @fn_str_concat(ptr %t330, ptr @.str199) call void @fn_ensure_event(ptr %t331, i32 0) br label %ifend155 ifend155: br label %ret ifend152: %t332 = load ptr, ptr %t8 %t333 = icmp ne ptr %t332, null %t334 = zext i1 %t333 to i32 %t335 = icmp ne i32 %t334, 0 br i1 %t335, label %then156, label %ifend158 then156: %t336 = load ptr, ptr %t8 %t337 = load ptr, ptr %t246 %t338 = getelementptr inbounds %Cmp_Node, ptr %t337, i32 0, i32 4 %t339 = load ptr, ptr %t338 call void @fn_register_ondisable(ptr %t336, ptr %t339) %t340 = load i32, ptr %t10 %t341 = icmp ne i32 %t340, 0 br i1 %t341, label %then159, label %ifend161 then159: %t342 = load ptr, ptr %t8 %t343 = call ptr @fn_str_concat(ptr @.str200, ptr %t342) %t344 = call ptr @fn_str_concat(ptr %t343, ptr @.str201) call void @fn_ensure_event(ptr %t344, i32 0) br label %ifend161 ifend161: br label %ret ifend158: %t345 = load ptr, ptr %t11 %t346 = icmp ne ptr %t345, null %t347 = zext i1 %t346 to i32 %t348 = icmp ne i32 %t347, 0 br i1 %t348, label %then162, label %ifend164 then162: %t349 = load ptr, ptr %t246 %t350 = getelementptr inbounds %Cmp_Node, ptr %t349, i32 0, i32 3 %t351 = load ptr, ptr %t11 store ptr %t351, ptr %t350 %t352 = load i32, ptr %t10 %t353 = icmp ne i32 %t352, 0 br i1 %t353, label %then165, label %ifend167 then165: %t354 = load ptr, ptr %t11 %t355 = call i32 @fn_str_eq(ptr %t354, ptr @.str202) %t356 = icmp ne i32 %t355, 0 br i1 %t356, label %then168, label %else169 then168: call void @fn_ensure_event_empty(ptr @.str203) br label %ifend170 else169: call void @fn_ensure_event_empty(ptr @.str204) br label %ifend170 ifend170: br label %ifend167 ifend167: br label %ifend164 ifend164: %t357 = load ptr, ptr %t1 %t358 = icmp ne ptr %t357, null %t359 = zext i1 %t358 to i32 %t360 = icmp ne i32 %t359, 0 br i1 %t360, label %then171, label %ifend173 then171: %t361 = load ptr, ptr %t1 %t362 = getelementptr inbounds %Cmp_Node, ptr %t361, i32 0, i32 4 %t363 = load ptr, ptr %t246 %t364 = getelementptr inbounds %Cmp_Node, ptr %t363, i32 0, i32 4 %t365 = load ptr, ptr %t364 store ptr %t365, ptr %t362 %t366 = call ptr @fn_node(i32 7) store ptr %t366, ptr %t367 %t368 = load ptr, ptr %t367 %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 1 %t372 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 2 %t373 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 0 %t374 = load i32, ptr %t371 %t375 = load i32, ptr %t372 %t376 = icmp sge i32 %t374, %t375 br i1 %t376, label %grow174, label %put175 grow174: %t377 = mul i32 %t375, 2 %t378 = icmp eq i32 %t375, 0 %t379 = select i1 %t378, i32 8, i32 %t377 %t380 = getelementptr ptr, ptr null, i32 1 %t381 = ptrtoint ptr %t380 to i64 %t382 = zext i32 %t379 to i64 %t383 = mul i64 %t382, %t381 %t384 = load ptr, ptr %t373 %t385 = call ptr @realloc(ptr %t384, i64 %t383) store ptr %t385, ptr %t373 store i32 %t379, ptr %t372 br label %put175 put175: %t386 = load ptr, ptr %t1 %t387 = load ptr, ptr %t373 %t388 = getelementptr inbounds ptr, ptr %t387, i32 %t374 store ptr %t386, ptr %t388 %t389 = add i32 %t374, 1 store i32 %t389, ptr %t371 %t390 = load ptr, ptr %t246 %t391 = getelementptr inbounds %Cmp_Node, ptr %t390, i32 0, i32 4 %t392 = load ptr, ptr %t367 store ptr %t392, ptr %t391 br label %ifend173 ifend173: %t393 = load ptr, ptr @g_prog %t394 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 1 %t395 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 2 %t396 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 0 %t397 = load i32, ptr %t394 %t398 = load i32, ptr %t395 %t399 = icmp sge i32 %t397, %t398 br i1 %t399, label %grow176, label %put177 grow176: %t400 = mul i32 %t398, 2 %t401 = icmp eq i32 %t398, 0 %t402 = select i1 %t401, i32 8, i32 %t400 %t403 = getelementptr ptr, ptr null, i32 1 %t404 = ptrtoint ptr %t403 to i64 %t405 = zext i32 %t402 to i64 %t406 = mul i64 %t405, %t404 %t407 = load ptr, ptr %t396 %t408 = call ptr @realloc(ptr %t407, i64 %t406) store ptr %t408, ptr %t396 store i32 %t402, ptr %t395 br label %put177 put177: %t409 = load ptr, ptr %t246 %t410 = load ptr, ptr %t396 %t411 = getelementptr inbounds ptr, ptr %t410, i32 %t397 store ptr %t409, ptr %t411 %t412 = add i32 %t397, 1 store i32 %t412, ptr %t394 br label %ret ifend116: %t413 = call i32 @fn_is_id(ptr @.str205) %t414 = icmp ne i32 %t413, 0 br i1 %t414, label %then178, label %ifend180 then178: %t415 = load ptr, ptr @g_prog %t416 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 1 %t417 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 2 %t418 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 0 %t419 = load i32, ptr %t416 %t420 = load i32, ptr %t417 %t421 = icmp sge i32 %t419, %t420 br i1 %t421, label %grow181, label %put182 grow181: %t422 = mul i32 %t420, 2 %t423 = icmp eq i32 %t420, 0 %t424 = select i1 %t423, i32 8, i32 %t422 %t425 = getelementptr ptr, ptr null, i32 1 %t426 = ptrtoint ptr %t425 to i64 %t427 = zext i32 %t424 to i64 %t428 = mul i64 %t427, %t426 %t429 = load ptr, ptr %t418 %t430 = call ptr @realloc(ptr %t429, i64 %t428) store ptr %t430, ptr %t418 store i32 %t424, ptr %t417 br label %put182 put182: %t431 = call ptr @fn_parse_ui() %t432 = load ptr, ptr %t418 %t433 = getelementptr inbounds ptr, ptr %t432, i32 %t419 store ptr %t431, ptr %t433 %t434 = add i32 %t419, 1 store i32 %t434, ptr %t416 br label %ret ifend180: %t435 = call i32 @fn_is_id(ptr @.str206) %t436 = icmp ne i32 %t435, 0 br i1 %t436, label %then183, label %ifend185 then183: %t437 = load ptr, ptr @g_prog %t438 = getelementptr inbounds %LSlice, ptr %t437, i32 0, i32 1 %t439 = getelementptr inbounds %LSlice, ptr %t437, i32 0, i32 2 %t440 = getelementptr inbounds %LSlice, ptr %t437, i32 0, i32 0 %t441 = load i32, ptr %t438 %t442 = load i32, ptr %t439 %t443 = icmp sge i32 %t441, %t442 br i1 %t443, label %grow186, label %put187 grow186: %t444 = mul i32 %t442, 2 %t445 = icmp eq i32 %t442, 0 %t446 = select i1 %t445, i32 8, i32 %t444 %t447 = getelementptr ptr, ptr null, i32 1 %t448 = ptrtoint ptr %t447 to i64 %t449 = zext i32 %t446 to i64 %t450 = mul i64 %t449, %t448 %t451 = load ptr, ptr %t440 %t452 = call ptr @realloc(ptr %t451, i64 %t450) store ptr %t452, ptr %t440 store i32 %t446, ptr %t439 br label %put187 put187: %t453 = call ptr @fn_parse_var() %t454 = load ptr, ptr %t440 %t455 = getelementptr inbounds ptr, ptr %t454, i32 %t441 store ptr %t453, ptr %t455 %t456 = add i32 %t441, 1 store i32 %t456, ptr %t438 br label %ret ifend185: %t457 = call i32 @fn_is_id(ptr @.str207) %t458 = icmp ne i32 %t457, 0 br i1 %t458, label %then188, label %ifend190 then188: %t459 = load ptr, ptr @g_prog %t460 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 1 %t461 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 2 %t462 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 0 %t463 = load i32, ptr %t460 %t464 = load i32, ptr %t461 %t465 = icmp sge i32 %t463, %t464 br i1 %t465, label %grow191, label %put192 grow191: %t466 = mul i32 %t464, 2 %t467 = icmp eq i32 %t464, 0 %t468 = select i1 %t467, i32 8, i32 %t466 %t469 = getelementptr ptr, ptr null, i32 1 %t470 = ptrtoint ptr %t469 to i64 %t471 = zext i32 %t468 to i64 %t472 = mul i64 %t471, %t470 %t473 = load ptr, ptr %t462 %t474 = call ptr @realloc(ptr %t473, i64 %t472) store ptr %t474, ptr %t462 store i32 %t468, ptr %t461 br label %put192 put192: %t475 = call ptr @fn_parse_const() %t476 = load ptr, ptr %t462 %t477 = getelementptr inbounds ptr, ptr %t476, i32 %t463 store ptr %t475, ptr %t477 %t478 = add i32 %t463, 1 store i32 %t478, ptr %t460 br label %ret ifend190: %t479 = call i32 @fn_is_id(ptr @.str208) %t480 = icmp ne i32 %t479, 0 br i1 %t480, label %then193, label %ifend195 then193: %t481 = call ptr @fn_parse_fn() store ptr %t481, ptr %t482 %t483 = load i32, ptr %t0 %t484 = icmp ne i32 %t483, 0 br i1 %t484, label %then196, label %ifend198 then196: %t485 = load ptr, ptr %t482 %t486 = getelementptr inbounds %Cmp_Node, ptr %t485, i32 0, i32 2 store i32 1, ptr %t486 br label %ifend198 ifend198: %t487 = load ptr, ptr @g_prog %t488 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 1 %t489 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 2 %t490 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 0 %t491 = load i32, ptr %t488 %t492 = load i32, ptr %t489 %t493 = icmp sge i32 %t491, %t492 br i1 %t493, label %grow199, label %put200 grow199: %t494 = mul i32 %t492, 2 %t495 = icmp eq i32 %t492, 0 %t496 = select i1 %t495, i32 8, i32 %t494 %t497 = getelementptr ptr, ptr null, i32 1 %t498 = ptrtoint ptr %t497 to i64 %t499 = zext i32 %t496 to i64 %t500 = mul i64 %t499, %t498 %t501 = load ptr, ptr %t490 %t502 = call ptr @realloc(ptr %t501, i64 %t500) store ptr %t502, ptr %t490 store i32 %t496, ptr %t489 br label %put200 put200: %t503 = load ptr, ptr %t482 %t504 = load ptr, ptr %t490 %t505 = getelementptr inbounds ptr, ptr %t504, i32 %t491 store ptr %t503, ptr %t505 %t506 = add i32 %t491, 1 store i32 %t506, ptr %t488 br label %ret ifend195: %t507 = call i32 @fn_is_id(ptr @.str209) %t508 = icmp ne i32 %t507, 0 br i1 %t508, label %then201, label %ifend203 then201: %t509 = load ptr, ptr @g_prog %t510 = getelementptr inbounds %LSlice, ptr %t509, i32 0, i32 1 %t511 = getelementptr inbounds %LSlice, ptr %t509, i32 0, i32 2 %t512 = getelementptr inbounds %LSlice, ptr %t509, i32 0, i32 0 %t513 = load i32, ptr %t510 %t514 = load i32, ptr %t511 %t515 = icmp sge i32 %t513, %t514 br i1 %t515, label %grow204, label %put205 grow204: %t516 = mul i32 %t514, 2 %t517 = icmp eq i32 %t514, 0 %t518 = select i1 %t517, i32 8, i32 %t516 %t519 = getelementptr ptr, ptr null, i32 1 %t520 = ptrtoint ptr %t519 to i64 %t521 = zext i32 %t518 to i64 %t522 = mul i64 %t521, %t520 %t523 = load ptr, ptr %t512 %t524 = call ptr @realloc(ptr %t523, i64 %t522) store ptr %t524, ptr %t512 store i32 %t518, ptr %t511 br label %put205 put205: %t525 = call ptr @fn_parse_extern() %t526 = load ptr, ptr %t512 %t527 = getelementptr inbounds ptr, ptr %t526, i32 %t513 store ptr %t525, ptr %t527 %t528 = add i32 %t513, 1 store i32 %t528, ptr %t510 br label %ret ifend203: %t529 = call i32 @fn_is_id(ptr @.str210) %t530 = icmp ne i32 %t529, 0 br i1 %t530, label %then206, label %ifend208 then206: %t531 = load ptr, ptr @g_prog %t532 = getelementptr inbounds %LSlice, ptr %t531, i32 0, i32 1 %t533 = getelementptr inbounds %LSlice, ptr %t531, i32 0, i32 2 %t534 = getelementptr inbounds %LSlice, ptr %t531, i32 0, i32 0 %t535 = load i32, ptr %t532 %t536 = load i32, ptr %t533 %t537 = icmp sge i32 %t535, %t536 br i1 %t537, label %grow209, label %put210 grow209: %t538 = mul i32 %t536, 2 %t539 = icmp eq i32 %t536, 0 %t540 = select i1 %t539, i32 8, i32 %t538 %t541 = getelementptr ptr, ptr null, i32 1 %t542 = ptrtoint ptr %t541 to i64 %t543 = zext i32 %t540 to i64 %t544 = mul i64 %t543, %t542 %t545 = load ptr, ptr %t534 %t546 = call ptr @realloc(ptr %t545, i64 %t544) store ptr %t546, ptr %t534 store i32 %t540, ptr %t533 br label %put210 put210: %t547 = call ptr @fn_parse_main() %t548 = load ptr, ptr %t534 %t549 = getelementptr inbounds ptr, ptr %t548, i32 %t535 store ptr %t547, ptr %t549 %t550 = add i32 %t535, 1 store i32 %t550, ptr %t532 br label %ret ifend208: %t551 = call i32 @fn_is_id(ptr @.str211) %t552 = icmp ne i32 %t551, 0 br i1 %t552, label %then211, label %ifend213 then211: %t553 = load ptr, ptr @g_g_tests %t554 = getelementptr inbounds %LSlice, ptr %t553, i32 0, i32 1 %t555 = getelementptr inbounds %LSlice, ptr %t553, i32 0, i32 2 %t556 = getelementptr inbounds %LSlice, ptr %t553, i32 0, i32 0 %t557 = load i32, ptr %t554 %t558 = load i32, ptr %t555 %t559 = icmp sge i32 %t557, %t558 br i1 %t559, label %grow214, label %put215 grow214: %t560 = mul i32 %t558, 2 %t561 = icmp eq i32 %t558, 0 %t562 = select i1 %t561, i32 8, i32 %t560 %t563 = getelementptr ptr, ptr null, i32 1 %t564 = ptrtoint ptr %t563 to i64 %t565 = zext i32 %t562 to i64 %t566 = mul i64 %t565, %t564 %t567 = load ptr, ptr %t556 %t568 = call ptr @realloc(ptr %t567, i64 %t566) store ptr %t568, ptr %t556 store i32 %t562, ptr %t555 br label %put215 put215: %t569 = call ptr @fn_parse_test() %t570 = load ptr, ptr %t556 %t571 = getelementptr inbounds ptr, ptr %t570, i32 %t557 store ptr %t569, ptr %t571 %t572 = add i32 %t557, 1 store i32 %t572, ptr %t554 br label %ret ifend213: call void @fn_perr(ptr @.str212) br label %ret ret: ret void } define ptr @fn_parse_test() { entry: %retval = alloca ptr %t8 = alloca i32 %t23 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t2 = load ptr, ptr %t1 %t3 = load i32, ptr @g_pi %t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3 %t5 = load ptr, ptr %t4 %t6 = getelementptr inbounds %Cmp_Tok, ptr %t5, i32 0, i32 3 %t7 = load i32, ptr %t6 store i32 %t7, ptr %t8 %t9 = load i32, ptr @g_pi %t10 = add i32 %t9, 1 store i32 %t10, ptr @g_pi %t11 = load ptr, ptr @g_toks %t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr @g_pi %t15 = getelementptr inbounds ptr, ptr %t13, i32 %t14 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Tok, ptr %t16, i32 0, i32 0 %t18 = load i32, ptr %t17 %t19 = icmp ne i32 %t18, 2 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then0, label %ifend2 then0: call void @fn_perr(ptr @.str213) br label %ifend2 ifend2: %t22 = call ptr @fn_node(i32 51) 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 @g_toks %t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0 %t28 = load ptr, ptr %t27 %t29 = load i32, ptr @g_pi %t30 = getelementptr inbounds ptr, ptr %t28, i32 %t29 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Tok, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 store ptr %t33, ptr %t25 %t34 = load ptr, ptr %t23 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 8 %t36 = load i32, ptr %t8 store i32 %t36, ptr %t35 %t37 = load i32, ptr @g_pi %t38 = add i32 %t37, 1 store i32 %t38, ptr @g_pi %t39 = load ptr, ptr %t23 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 4 %t41 = call ptr @fn_block() store ptr %t41, ptr %t40 %t42 = load ptr, ptr %t23 store ptr %t42, ptr %retval br label %ret ret: %t43 = load ptr, ptr %retval ret ptr %t43 } define void @fn_do_import(ptr %arg_rel) { entry: %t0 = alloca ptr %t4 = alloca ptr %t30 = alloca ptr %t38 = alloca ptr %t40 = alloca i32 %t42 = alloca ptr store ptr %arg_rel, ptr %t0 %t1 = load ptr, ptr @g_cur_dir %t2 = load ptr, ptr %t0 %t3 = call ptr @fn_path_join(ptr %t1, ptr %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 %t6 = call i32 @fn_already_loaded(ptr %t5) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: br label %ret ifend2: %t8 = load ptr, ptr @g_loaded_paths %t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1 %t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2 %t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t12 = load i32, ptr %t9 %t13 = load i32, ptr %t10 %t14 = icmp sge i32 %t12, %t13 br i1 %t14, label %grow3, label %put4 grow3: %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 %put4 put4: %t24 = load ptr, ptr %t4 %t25 = load ptr, ptr %t11 %t26 = getelementptr inbounds ptr, ptr %t25, i32 %t12 store ptr %t24, ptr %t26 %t27 = add i32 %t12, 1 store i32 %t27, ptr %t9 %t28 = load ptr, ptr %t4 %t29 = call ptr @fn_read_file(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = icmp eq 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 %t4 %t36 = call ptr @fn_str_concat(ptr @.str214, ptr %t35) call void @fn_perr(ptr %t36) br label %ifend7 ifend7: %t37 = load ptr, ptr @g_toks store ptr %t37, ptr %t38 %t39 = load i32, ptr @g_pi store i32 %t39, ptr %t40 %t41 = load ptr, ptr @g_cur_dir store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t4 %t44 = call ptr @fn_dir_of(ptr %t43) store ptr %t44, ptr @g_cur_dir %t45 = load ptr, ptr %t30 call void @fn_lex(ptr %t45) store i32 0, ptr @g_pi call void @fn_skipnl() br label %wcond8 wcond8: %t46 = load ptr, ptr @g_toks %t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = load i32, ptr @g_pi %t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Tok, ptr %t51, i32 0, i32 0 %t53 = load i32, ptr %t52 %t54 = icmp ne i32 %t53, 5 %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %wbody9, label %wend10 wbody9: call void @fn_parse_one_decl() call void @fn_skipnl() br label %wcond8 wend10: %t57 = load ptr, ptr %t38 store ptr %t57, ptr @g_toks %t58 = load i32, ptr %t40 store i32 %t58, ptr @g_pi %t59 = load ptr, ptr %t42 store ptr %t59, ptr @g_cur_dir br label %ret ret: ret void } define void @fn_maybe_splice_runtime() { entry: %t1 = alloca ptr %t0 = load ptr, ptr @g_cur_dir store ptr %t0, ptr %t1 %t2 = call i32 @fn_has_ecs() %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str215, ptr @g_cur_dir call void @fn_do_import(ptr @.str216) %t4 = load ptr, ptr %t1 store ptr %t4, ptr @g_cur_dir br label %ifend2 ifend2: %t5 = load i32, ptr @g_g_uses_regex %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str217, ptr @g_cur_dir call void @fn_do_import(ptr @.str218) call void @fn_do_import(ptr @.str219) %t7 = load ptr, ptr %t1 store ptr %t7, ptr @g_cur_dir br label %ifend5 ifend5: %t8 = load i32, ptr @g_g_uses_query %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str220, ptr @g_cur_dir call void @fn_do_import(ptr @.str221) %t10 = load ptr, ptr %t1 store ptr %t10, ptr @g_cur_dir br label %ifend8 ifend8: %t11 = load i32, ptr @g_g_uses_light %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store ptr @.str222, ptr @g_cur_dir call void @fn_do_import(ptr @.str223) %t13 = load ptr, ptr %t1 store ptr %t13, ptr @g_cur_dir br label %ifend11 ifend11: br label %ret ret: ret void } define void @fn_parse_program() { entry: %t94 = alloca ptr %t98 = alloca ptr %t107 = alloca ptr %t110 = 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_query store i32 0, ptr @g_g_uses_reflect store i32 0, ptr @g_g_uses_light %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_tests %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_loaded_paths call void @fn_skipnl() store ptr @.str224, ptr @g_g_game_name br label %wcond0 wcond0: %t84 = call i32 @fn_is_id(ptr @.str225) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %wbody1, label %wend2 wbody1: %t86 = load i32, ptr @g_pi %t87 = add i32 %t86, 1 store i32 %t87, ptr @g_pi %t88 = load ptr, ptr @g_toks %t89 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = load i32, ptr @g_pi %t92 = getelementptr inbounds ptr, ptr %t90, i32 %t91 %t93 = load ptr, ptr %t92 store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %Cmp_Tok, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 store ptr %t97, ptr %t98 %t99 = load i32, ptr @g_pi %t100 = add i32 %t99, 1 store i32 %t100, ptr @g_pi %t101 = load ptr, ptr %t98 call void @fn_do_import(ptr %t101) call void @fn_skipnl() br label %wcond0 wend2: br label %wcond3 wcond3: %t102 = call i32 @fn_is_op(ptr @.str226) %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %wbody4, label %wend5 wbody4: %t104 = load i32, ptr @g_pi %t105 = add i32 %t104, 1 store i32 %t105, ptr @g_pi %t106 = call ptr @fn_eat_id() store ptr %t106, ptr %t107 %t108 = call i32 @fn_is_op(ptr @.str227) %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then6, label %ifend8 then6: store i32 0, ptr %t110 br label %wcond9 wcond9: %t111 = icmp ne i32 1, 0 br i1 %t111, label %wbody10, label %wend11 wbody10: %t112 = call i32 @fn_is_op(ptr @.str228) %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then12, label %ifend14 then12: %t114 = load i32, ptr %t110 %t115 = add i32 %t114, 1 store i32 %t115, ptr %t110 br label %ifend14 ifend14: %t116 = call i32 @fn_is_op(ptr @.str229) %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then15, label %ifend17 then15: %t118 = load i32, ptr %t110 %t119 = sub i32 %t118, 1 store i32 %t119, ptr %t110 br label %ifend17 ifend17: %t120 = load i32, ptr @g_pi %t121 = add i32 %t120, 1 store i32 %t121, ptr @g_pi %t122 = load i32, ptr %t110 %t123 = icmp eq i32 %t122, 0 %t124 = zext i1 %t123 to i32 %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then18, label %ifend20 then18: br label %wend11 ifend20: br label %wcond9 wend11: br label %ifend8 ifend8: call void @fn_skipnl() br label %wcond3 wend5: %t126 = call i32 @fn_is_id(ptr @.str230) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then21, label %ifend23 then21: %t128 = load i32, ptr @g_pi %t129 = add i32 %t128, 1 store i32 %t129, ptr @g_pi %t130 = call ptr @fn_eat_id() store ptr %t130, ptr @g_g_game_name call void @fn_skipnl() call void @fn_eat_op(ptr @.str231) br label %ifend23 ifend23: br label %wcond24 wcond24: %t131 = icmp ne i32 1, 0 br i1 %t131, label %wbody25, label %wend26 wbody25: call void @fn_skipnl() %t132 = load ptr, ptr @g_toks %t133 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 0 %t134 = load ptr, ptr %t133 %t135 = load i32, ptr @g_pi %t136 = getelementptr inbounds ptr, ptr %t134, i32 %t135 %t137 = load ptr, ptr %t136 %t138 = getelementptr inbounds %Cmp_Tok, ptr %t137, i32 0, i32 0 %t139 = load i32, ptr %t138 %t140 = icmp eq i32 %t139, 5 %t141 = zext i1 %t140 to i32 %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then27, label %ifend29 then27: br label %wend26 ifend29: %t143 = call i32 @fn_is_op(ptr @.str232) %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %then30, label %ifend32 then30: br label %wend26 ifend32: call void @fn_parse_one_decl() br label %wcond24 wend26: br label %ret ret: ret void } define ptr @fn_parse_component() { entry: %retval = alloca ptr %t3 = alloca ptr %t10 = alloca i32 %t11 = alloca i32 %t17 = alloca ptr %t25 = 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 call void @fn_skipnl() call void @fn_eat_op(ptr @.str233) 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 @.str234) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: br label %wend2 ifend5: store i32 0, ptr %t10 store i32 0, ptr %t11 %t12 = call i32 @fn_is_op(ptr @.str235) %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 @fn_str_eq(ptr %t18, ptr @.str236) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then9, label %else10 then9: store i32 1, ptr %t10 br label %ifend11 else10: %t21 = load ptr, ptr %t17 %t22 = call i32 @fn_str_eq(ptr %t21, ptr @.str237) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then12, label %ifend14 then12: store i32 1, ptr %t11 br label %ifend14 ifend14: br label %ifend11 ifend11: call void @fn_skipnl() br label %ifend8 ifend8: %t24 = call ptr @fn_node(i32 1) store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = call ptr @fn_eat_id() store ptr %t28, ptr %t27 call void @fn_eat_op(ptr @.str238) %t29 = load ptr, ptr %t25 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 3 %t31 = call ptr @fn_ptype() store ptr %t31, ptr %t30 %t32 = call i32 @fn_is_op(ptr @.str239) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then15, label %ifend17 then15: %t34 = load i32, ptr @g_pi %t35 = add i32 %t34, 1 store i32 %t35, ptr @g_pi %t36 = load ptr, ptr %t25 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 4 %t38 = call ptr @fn_expr() store ptr %t38, ptr %t37 br label %ifend17 ifend17: %t39 = load i32, ptr %t11 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then18, label %ifend20 then18: %t41 = load ptr, ptr %t25 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 2 store i32 1, ptr %t42 br label %ifend20 ifend20: %t43 = load i32, ptr %t10 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then21, label %else22 then21: %t45 = load ptr, ptr %t3 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = load ptr, ptr %t25 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 1 %t50 = load ptr, ptr %t49 %t51 = load ptr, ptr %t25 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3 %t53 = load ptr, ptr %t52 %t54 = load ptr, ptr %t25 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 4 %t56 = load ptr, ptr %t55 call void @fn_register_computed(ptr %t47, ptr %t50, ptr %t53, ptr %t56) br label %ifend23 else22: %t57 = load ptr, ptr %t3 %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 1 %t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 2 %t62 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0 %t63 = load i32, ptr %t60 %t64 = load i32, ptr %t61 %t65 = icmp sge i32 %t63, %t64 br i1 %t65, label %grow24, label %put25 grow24: %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 %put25 put25: %t75 = load ptr, ptr %t25 %t76 = load ptr, ptr %t62 %t77 = getelementptr inbounds ptr, ptr %t76, i32 %t63 store ptr %t75, ptr %t77 %t78 = add i32 %t63, 1 store i32 %t78, ptr %t60 br label %ifend23 ifend23: %t79 = call i32 @fn_is_op(ptr @.str240) %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then26, label %ifend28 then26: %t81 = load i32, ptr @g_pi %t82 = add i32 %t81, 1 store i32 %t82, ptr @g_pi br label %ifend28 ifend28: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str241) %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_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 @.str242) %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 @.str243) 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 @.str244) %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 @.str245) %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 @.str246) %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 = 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 %grow12, label %put13 grow12: %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 %put13 put13: %t49 = load ptr, ptr %t17 %t50 = load ptr, ptr %t36 %t51 = getelementptr inbounds ptr, ptr %t50, i32 %t37 store ptr %t49, ptr %t51 %t52 = add i32 %t37, 1 store i32 %t52, ptr %t34 %t53 = call i32 @fn_is_op(ptr @.str247) %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 @.str248) %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 @.str249, 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 @.str250) %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 @.str251) %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 @.str252) %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 @.str253) %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 @.str254) %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 br label %wcond0 ifend23: br label %wend2 wend2: call void @fn_skipnl() %t41 = load ptr, ptr %t3 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 4 %t43 = call ptr @fn_block() store ptr %t43, ptr %t42 %t44 = load ptr, ptr %t3 store ptr %t44, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } 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 @.str255) %t0 = call ptr @fn_node(i32 7) store ptr %t0, ptr %t1 br label %wcond0 wcond0: %t2 = call i32 @fn_is_op(ptr @.str256) %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 @.str257) %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 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 2 %t22 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t23 = load i32, ptr %t20 %t24 = load i32, ptr %t21 %t25 = icmp sge i32 %t23, %t24 br i1 %t25, label %grow6, label %put7 grow6: %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 %put7 put7: %t35 = load ptr, ptr %t11 %t36 = load ptr, ptr %t22 %t37 = getelementptr inbounds ptr, ptr %t36, i32 %t23 store ptr %t35, ptr %t37 %t38 = add i32 %t23, 1 store i32 %t38, ptr %t20 call void @fn_eat_op(ptr @.str258) 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 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1 %t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 2 %t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0 %t52 = load i32, ptr %t49 %t53 = load i32, ptr %t50 %t54 = icmp sge i32 %t52, %t53 br i1 %t54, label %grow8, label %put9 grow8: %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 %put9 put9: %t64 = load ptr, ptr %t40 %t65 = load ptr, ptr %t51 %t66 = getelementptr inbounds ptr, ptr %t65, i32 %t52 store ptr %t64, ptr %t66 %t67 = add i32 %t52, 1 store i32 %t67, ptr %t49 br label %ifend5 ifend5: %t68 = call i32 @fn_is_op(ptr @.str259) %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 @.str260) %t72 = call i32 @fn_is_id(ptr @.str261) %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 @.str262) br label %wcond0 wcond0: %t2 = call i32 @fn_is_op(ptr @.str263) %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 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 2 %t16 = getelementptr inbounds %LSlice, ptr %t13, 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 %t7 %t30 = load ptr, ptr %t16 %t31 = getelementptr inbounds ptr, ptr %t30, i32 %t17 store ptr %t29, ptr %t31 %t32 = add i32 %t17, 1 store i32 %t32, ptr %t14 %t33 = call i32 @fn_is_op(ptr @.str264) %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 @.str265) %t37 = call ptr @fn_eat_id() store ptr %t37, ptr %t38 %t39 = call i32 @fn_is_id(ptr @.str266) %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 @.str267) 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 @.str268, 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 @.str269) %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 @.str270) %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 @.str271) %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 @.str272) %t13 = load ptr, ptr %t12 %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str273) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then6, label %else7 then6: call void @fn_eat_op(ptr @.str274) call void @fn_skipnl() br label %wcond9 wcond9: %t16 = call i32 @fn_is_op(ptr @.str275) %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 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1 %t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 2 %t32 = getelementptr inbounds %LSlice, ptr %t29, 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 %t23 %t46 = load ptr, ptr %t32 %t47 = getelementptr inbounds ptr, ptr %t46, i32 %t33 store ptr %t45, ptr %t47 %t48 = add i32 %t33, 1 store i32 %t48, ptr %t30 %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 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1 %t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2 %t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t62 = load i32, ptr %t59 %t63 = load i32, ptr %t60 %t64 = icmp sge i32 %t62, %t63 br i1 %t64, label %grow14, label %put15 grow14: %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 %put15 put15: %t74 = load ptr, ptr %t50 %t75 = load ptr, ptr %t61 %t76 = getelementptr inbounds ptr, ptr %t75, i32 %t62 store ptr %t74, ptr %t76 %t77 = add i32 %t62, 1 store i32 %t77, ptr %t59 %t78 = call i32 @fn_is_op(ptr @.str276) %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 @.str277) %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 @.str278) %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 @.str279) br label %ifend8 else7: %t98 = load ptr, ptr %t12 %t99 = call i32 @fn_str_eq(ptr %t98, ptr @.str280) %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 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1 %t114 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 2 %t115 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0 %t116 = load i32, ptr %t113 %t117 = load i32, ptr %t114 %t118 = icmp sge i32 %t116, %t117 br i1 %t118, label %grow25, label %put26 grow25: %t119 = mul i32 %t117, 2 %t120 = icmp eq i32 %t117, 0 %t121 = select i1 %t120, i32 8, i32 %t119 %t122 = getelementptr ptr, ptr null, i32 1 %t123 = ptrtoint ptr %t122 to i64 %t124 = zext i32 %t121 to i64 %t125 = mul i64 %t124, %t123 %t126 = load ptr, ptr %t115 %t127 = call ptr @realloc(ptr %t126, i64 %t125) store ptr %t127, ptr %t115 store i32 %t121, ptr %t114 br label %put26 put26: %t128 = load ptr, ptr %t104 %t129 = load ptr, ptr %t115 %t130 = getelementptr inbounds ptr, ptr %t129, i32 %t116 store ptr %t128, ptr %t130 %t131 = add i32 %t116, 1 store i32 %t131, ptr %t113 br label %ifend24 else23: %t132 = call ptr @fn_expr() br label %ifend24 ifend24: br label %ifend8 ifend8: %t133 = call i32 @fn_is_op(ptr @.str281) %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 @.str282) %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 %t11 = 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 @.str283) 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 @.str284) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: br label %wend2 ifend5: %t10 = call ptr @fn_node(i32 42) 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 4 %t17 = call ptr @fn_record() store ptr %t17, ptr %t16 %t18 = load ptr, ptr %t3 %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 1 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 %t23 = getelementptr inbounds %LSlice, ptr %t20, 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 %t11 %t37 = load ptr, ptr %t23 %t38 = getelementptr inbounds ptr, ptr %t37, i32 %t24 store ptr %t36, ptr %t38 %t39 = add i32 %t24, 1 store i32 %t39, ptr %t21 %t40 = call i32 @fn_is_op(ptr @.str285) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then8, label %ifend10 then8: %t42 = load i32, ptr @g_pi %t43 = add i32 %t42, 1 store i32 %t43, ptr @g_pi br label %ifend10 ifend10: br label %wcond0 wend2: call void @fn_eat_op(ptr @.str286) %t44 = load ptr, ptr %t3 store ptr %t44, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } define void @fn_parse_scene() { entry: %t3 = alloca ptr %t10 = alloca i32 %t11 = alloca i32 %t49 = alloca ptr %t67 = alloca ptr %t79 = alloca ptr %t91 = 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 br label %wcond0 wcond0: %t12 = call i32 @fn_is_id(ptr @.str287) %t13 = icmp ne i32 %t12, 0 %t14 = zext i1 %t13 to i32 store i32 %t14, ptr %t11 br i1 %t13, label %scend4, label %sc3 sc3: %t15 = call i32 @fn_is_id(ptr @.str288) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t11 br label %scend4 scend4: %t18 = load i32, ptr %t11 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %wbody1, label %wend2 wbody1: %t20 = call i32 @fn_is_id(ptr @.str289) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then5, label %else6 then5: %t22 = load i32, ptr @g_pi %t23 = add i32 %t22, 1 store i32 %t23, ptr @g_pi %t24 = load i32, ptr @g_g_scene_count store i32 %t24, ptr @g_g_start_scene br label %ifend7 else6: %t25 = load i32, ptr @g_pi %t26 = add i32 %t25, 1 store i32 %t26, ptr @g_pi store i32 1, ptr %t10 br label %ifend7 ifend7: br label %wcond0 wend2: %t27 = load i32, ptr @g_g_scene_count %t28 = add i32 %t27, 1 store i32 %t28, ptr @g_g_scene_count %t29 = load i32, ptr %t10 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then8, label %ifend10 then8: %t31 = load ptr, ptr %t3 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 %t34 = call ptr @fn_str_concat(ptr @.str290, ptr %t33) %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str291) call void @fn_ensure_event_empty(ptr %t35) %t36 = load ptr, ptr %t3 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_str_concat(ptr @.str292, ptr %t38) %t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str293) call void @fn_ensure_event_empty(ptr %t40) br label %ifend10 ifend10: call void @fn_skipnl() call void @fn_eat_op(ptr @.str294) br label %wcond11 wcond11: %t41 = icmp ne i32 1, 0 br i1 %t41, label %wbody12, label %wend13 wbody12: call void @fn_skipnl() %t42 = call i32 @fn_is_op(ptr @.str295) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then14, label %ifend16 then14: br label %wend13 ifend16: %t44 = call i32 @fn_is_id(ptr @.str296) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then17, label %ifend19 then17: %t46 = load i32, ptr @g_pi %t47 = add i32 %t46, 1 store i32 %t47, ptr @g_pi %t48 = call ptr @fn_eat_id() store ptr %t48, ptr %t49 call void @fn_skipnl() %t50 = load ptr, ptr %t49 %t51 = call i32 @fn_str_eq(ptr %t50, ptr @.str297) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then20, label %else21 then20: %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 br label %ifend22 else21: %t56 = load ptr, ptr %t49 %t57 = call i32 @fn_str_eq(ptr %t56, ptr @.str298) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then23, label %else24 then23: %t59 = load ptr, ptr %t3 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 5 %t61 = call ptr @fn_block() store ptr %t61, ptr %t60 br label %ifend25 else24: call void @fn_perr(ptr @.str299) br label %ifend25 ifend25: br label %ifend22 ifend22: br label %wcond11 ifend19: %t62 = call i32 @fn_is_id(ptr @.str300) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then26, label %ifend28 then26: %t64 = load i32, ptr @g_pi %t65 = add i32 %t64, 1 store i32 %t65, ptr @g_pi %t66 = call ptr @fn_eat_id() store ptr %t66, ptr %t67 %t68 = call i32 @fn_is_id(ptr @.str301) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then29, label %ifend31 then29: %t70 = load i32, ptr @g_pi %t71 = add i32 %t70, 1 store i32 %t71, ptr @g_pi %t72 = load ptr, ptr %t67 %t73 = call ptr @fn_str_concat(ptr @.str302, ptr %t72) %t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str303) call void @fn_ensure_event_empty(ptr %t74) %t75 = load ptr, ptr %t67 %t76 = call ptr @fn_str_concat(ptr @.str304, ptr %t75) %t77 = call ptr @fn_str_concat(ptr %t76, ptr @.str305) call void @fn_ensure_event_empty(ptr %t77) br label %ifend31 ifend31: call void @fn_skipnl() call void @fn_eat_op(ptr @.str306) %t78 = call ptr @fn_node(i32 33) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 1 %t82 = load ptr, ptr %t67 store ptr %t82, ptr %t81 br label %wcond32 wcond32: %t83 = icmp ne i32 1, 0 br i1 %t83, label %wbody33, label %wend34 wbody33: call void @fn_skipnl() %t84 = call i32 @fn_is_op(ptr @.str307) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then35, label %ifend37 then35: br label %wend34 ifend37: %t86 = call i32 @fn_is_id(ptr @.str308) %t87 = icmp eq i32 %t86, 0 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then38, label %ifend40 then38: call void @fn_perr(ptr @.str309) br label %ifend40 ifend40: %t90 = call ptr @fn_parse_system() store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 6 %t94 = load ptr, ptr %t3 store ptr %t94, ptr %t93 %t95 = load ptr, ptr %t91 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 5 %t97 = load ptr, ptr %t79 store ptr %t97, ptr %t96 %t98 = load ptr, ptr @g_prog %t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1 %t100 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 2 %t101 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 %t102 = load i32, ptr %t99 %t103 = load i32, ptr %t100 %t104 = icmp sge i32 %t102, %t103 br i1 %t104, label %grow41, label %put42 grow41: %t105 = mul i32 %t103, 2 %t106 = icmp eq i32 %t103, 0 %t107 = select i1 %t106, i32 8, i32 %t105 %t108 = getelementptr ptr, ptr null, i32 1 %t109 = ptrtoint ptr %t108 to i64 %t110 = zext i32 %t107 to i64 %t111 = mul i64 %t110, %t109 %t112 = load ptr, ptr %t101 %t113 = call ptr @realloc(ptr %t112, i64 %t111) store ptr %t113, ptr %t101 store i32 %t107, ptr %t100 br label %put42 put42: %t114 = load ptr, ptr %t91 %t115 = load ptr, ptr %t101 %t116 = getelementptr inbounds ptr, ptr %t115, i32 %t102 store ptr %t114, ptr %t116 %t117 = add i32 %t102, 1 store i32 %t117, ptr %t99 call void @fn_skipnl() br label %wcond32 wend34: call void @fn_eat_op(ptr @.str310) br label %wcond11 ifend28: call void @fn_perr(ptr @.str311) br label %wcond11 wend13: call void @fn_eat_op(ptr @.str312) %t118 = load ptr, ptr @g_g_scenes %t119 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 1 %t120 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 2 %t121 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 0 %t122 = load i32, ptr %t119 %t123 = load i32, ptr %t120 %t124 = icmp sge i32 %t122, %t123 br i1 %t124, label %grow43, label %put44 grow43: %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 %put44 put44: %t134 = load ptr, ptr %t3 %t135 = load ptr, ptr %t121 %t136 = getelementptr inbounds ptr, ptr %t135, i32 %t122 store ptr %t134, ptr %t136 %t137 = add i32 %t122, 1 store i32 %t137, ptr %t119 br label %ret ret: ret void } define ptr @fn_parse_enum() { entry: %retval = alloca ptr %t3 = alloca ptr %t11 = 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 @.str313) 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 @.str314) %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 = load ptr, ptr %t3 %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 = 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 %grow6, label %put7 grow6: %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 %put7 put7: %t33 = load ptr, ptr %t11 %t34 = load ptr, ptr %t20 %t35 = getelementptr inbounds ptr, ptr %t34, i32 %t21 store ptr %t33, ptr %t35 %t36 = add i32 %t21, 1 store i32 %t36, ptr %t18 %t37 = call i32 @fn_is_op(ptr @.str315) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then8, label %ifend10 then8: %t39 = load i32, ptr @g_pi %t40 = add i32 %t39, 1 store i32 %t40, ptr @g_pi br label %ifend10 ifend10: call void @fn_skipnl() br label %wcond0 wend2: call void @fn_eat_op(ptr @.str316) %t41 = load ptr, ptr %t3 store ptr %t41, ptr %retval br label %ret ret: %t42 = load ptr, ptr %retval ret ptr %t42 } 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 @.str317) 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 @.str318) %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 @.str319) %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 @fn_str_eq(ptr %t18, ptr @.str320) %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 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1 %t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 2 %t31 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t32 = load i32, ptr %t29 %t33 = load i32, ptr %t30 %t34 = icmp sge i32 %t32, %t33 br i1 %t34, label %grow12, label %put13 grow12: %t35 = mul i32 %t33, 2 %t36 = icmp eq i32 %t33, 0 %t37 = select i1 %t36, i32 8, i32 %t35 %t38 = getelementptr ptr, ptr null, i32 1 %t39 = ptrtoint ptr %t38 to i64 %t40 = zext i32 %t37 to i64 %t41 = mul i64 %t40, %t39 %t42 = load ptr, ptr %t31 %t43 = call ptr @realloc(ptr %t42, i64 %t41) store ptr %t43, ptr %t31 store i32 %t37, ptr %t30 br label %put13 put13: %t44 = load ptr, ptr %t11 %t45 = load ptr, ptr %t31 %t46 = getelementptr inbounds ptr, ptr %t45, i32 %t32 store ptr %t44, ptr %t46 %t47 = add i32 %t32, 1 store i32 %t47, ptr %t29 %t48 = call i32 @fn_is_op(ptr @.str321) %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 @.str322) %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 %t62 = 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 @.str323) br label %wcond0 wcond0: %t9 = call i32 @fn_is_op(ptr @.str324) %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 @.str325) %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 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1 %t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2 %t26 = getelementptr inbounds %LSlice, ptr %t23, 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 %t14 %t40 = load ptr, ptr %t26 %t41 = getelementptr inbounds ptr, ptr %t40, i32 %t27 store ptr %t39, ptr %t41 %t42 = add i32 %t27, 1 store i32 %t42, ptr %t24 %t43 = call i32 @fn_is_op(ptr @.str326) %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 @.str327) %t47 = load ptr, ptr %t5 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3 store ptr @.str328, ptr %t48 %t49 = call i32 @fn_is_op(ptr @.str329) %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 @.str330) %t56 = load ptr, ptr @g_toks %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = load i32, ptr @g_pi %t60 = getelementptr inbounds ptr, ptr %t58, i32 %t59 %t61 = load ptr, ptr %t60 store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t5 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 4 %t65 = call ptr @fn_node(i32 31) store ptr %t65, ptr %t64 %t66 = load ptr, ptr %t5 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 4 %t68 = load ptr, ptr %t67 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t62 %t71 = getelementptr inbounds %Cmp_Tok, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 store ptr %t72, ptr %t69 %t73 = load i32, ptr @g_pi %t74 = add i32 %t73, 1 store i32 %t74, ptr @g_pi %t75 = load ptr, ptr %t5 store ptr %t75, ptr %retval br label %ret ret: %t76 = load ptr, ptr %retval ret ptr %t76 } define ptr @fn_parse_widget() { entry: %retval = alloca ptr %t1 = alloca ptr %t8 = alloca i32 %t9 = alloca i32 %t53 = 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = load i32, ptr @g_pi %t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 0 %t17 = load i32, ptr %t16 %t18 = icmp eq 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 %t9 br i1 %t20, label %sc3, label %scend4 sc3: %t22 = load ptr, ptr @g_toks %t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = load i32, ptr @g_pi %t26 = add i32 %t25, 1 %t27 = getelementptr inbounds ptr, ptr %t24, i32 %t26 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds %Cmp_Tok, ptr %t28, i32 0, i32 0 %t30 = load i32, ptr %t29 %t31 = icmp eq i32 %t30, 3 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t9 br label %scend4 scend4: %t35 = load i32, ptr %t9 %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t8 br i1 %t36, label %sc5, label %scend6 sc5: %t38 = load ptr, ptr @g_toks %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = load i32, ptr @g_pi %t42 = add i32 %t41, 1 %t43 = getelementptr inbounds ptr, ptr %t40, i32 %t42 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Tok, ptr %t44, i32 0, i32 1 %t46 = load ptr, ptr %t45 %t47 = call i32 @fn_str_eq(ptr %t46, ptr @.str331) %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t8 br label %scend6 scend6: %t50 = load i32, ptr %t8 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %wbody1, label %wend2 wbody1: %t52 = call ptr @fn_node(i32 42) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = call ptr @fn_eat_id() store ptr %t56, ptr %t55 call void @fn_eat_op(ptr @.str332) %t57 = load ptr, ptr %t53 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 4 %t59 = call ptr @fn_expr() store ptr %t59, ptr %t58 %t60 = load ptr, ptr %t1 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 5 %t62 = load ptr, ptr %t61 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 7 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 1 %t66 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 2 %t67 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 %t68 = load i32, ptr %t65 %t69 = load i32, ptr %t66 %t70 = icmp sge i32 %t68, %t69 br i1 %t70, label %grow7, label %put8 grow7: %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 %put8 put8: %t80 = load ptr, ptr %t53 %t81 = load ptr, ptr %t67 %t82 = getelementptr inbounds ptr, ptr %t81, i32 %t68 store ptr %t80, ptr %t82 %t83 = add i32 %t68, 1 store i32 %t83, ptr %t65 br label %wcond0 wend2: call void @fn_skipnl() %t84 = call i32 @fn_is_op(ptr @.str333) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then9, label %ifend11 then9: %t86 = load i32, ptr @g_pi %t87 = add i32 %t86, 1 store i32 %t87, ptr @g_pi br label %wcond12 wcond12: %t88 = icmp ne i32 1, 0 br i1 %t88, label %wbody13, label %wend14 wbody13: call void @fn_skipnl() %t89 = call i32 @fn_is_op(ptr @.str334) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then15, label %ifend17 then15: br label %wend14 ifend17: %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 1 %t95 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 2 %t96 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0 %t97 = load i32, ptr %t94 %t98 = load i32, ptr %t95 %t99 = icmp sge i32 %t97, %t98 br i1 %t99, label %grow18, label %put19 grow18: %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 %put19 put19: %t109 = call ptr @fn_parse_widget() %t110 = load ptr, ptr %t96 %t111 = getelementptr inbounds ptr, ptr %t110, i32 %t97 store ptr %t109, ptr %t111 %t112 = add i32 %t97, 1 store i32 %t112, ptr %t94 br label %wcond12 wend14: call void @fn_eat_op(ptr @.str335) br label %ifend11 ifend11: %t113 = load ptr, ptr %t1 store ptr %t113, ptr %retval br label %ret ret: %t114 = load ptr, ptr %retval ret ptr %t114 } 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 @.str336) 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 @.str337) %t12 = load ptr, ptr %t3 store ptr %t12, ptr %retval br label %ret ret: %t13 = load ptr, ptr %retval ret ptr %t13 } define ptr @fn_val(ptr %arg_code, ptr %arg_ty) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t7 = 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 store ptr %t4, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = getelementptr inbounds %Cmp_Val, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t0 store ptr %t10, ptr %t9 %t11 = load ptr, ptr %t7 %t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 1 %t13 = load ptr, ptr %t1 store ptr %t13, ptr %t12 %t14 = load ptr, ptr %t7 store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_scenes %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 store ptr %t25, ptr %retval br label %ret ifend5: %t26 = load i32, ptr %t1 %t27 = add i32 %t26, 1 store i32 %t27, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } 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 @fn_str_concat(ptr @.str338, 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 @.str339) %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 @.str340) %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 @.str341) %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 @fn_str_concat(ptr @.str342, 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 @fn_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 %t37 = alloca i32 %t38 = alloca i32 store ptr %arg_t, ptr %t0 %t4 = load ptr, ptr %t0 %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str343) %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 @fn_str_eq(ptr %t8, ptr @.str344) %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 @fn_str_eq(ptr %t15, ptr @.str345) %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 @fn_str_eq(ptr %t22, ptr @.str346) %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 @.str347, ptr %retval br label %ret ifend8: %t28 = load ptr, ptr %t0 %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str348) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %ifend11 then9: store ptr @.str349, ptr %retval br label %ret ifend11: %t31 = load ptr, ptr %t0 %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str350) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then12, label %ifend14 then12: store ptr @.str351, ptr %retval br label %ret ifend14: %t34 = load ptr, ptr %t0 %t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str352) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then15, label %ifend17 then15: store ptr @.str353, ptr %retval br label %ret ifend17: %t39 = load ptr, ptr %t0 %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str354) %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t38 br i1 %t41, label %scend19, label %sc18 sc18: %t43 = load ptr, ptr %t0 %t44 = call i32 @fn_str_eq(ptr %t43, ptr @.str355) %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t38 br label %scend19 scend19: %t47 = load i32, ptr %t38 %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t37 br i1 %t48, label %scend21, label %sc20 sc20: %t50 = load ptr, ptr %t0 %t51 = call i32 @fn_str_eq(ptr %t50, ptr @.str356) %t52 = icmp ne i32 %t51, 0 %t53 = zext i1 %t52 to i32 store i32 %t53, ptr %t37 br label %scend21 scend21: %t54 = load i32, ptr %t37 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then22, label %ifend24 then22: store ptr @.str357, ptr %retval br label %ret ifend24: %t56 = load ptr, ptr %t0 %t57 = call i32 @fn_str_eq(ptr %t56, ptr @.str358) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then25, label %ifend27 then25: store ptr @.str359, ptr %retval br label %ret ifend27: store ptr @.str360, ptr %retval br label %ret ret: %t59 = load ptr, ptr %retval ret ptr %t59 } 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 @fn_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 %t15 = alloca ptr %t16 = 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t17 = load ptr, ptr %t15 %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 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t16 br i1 %t22, label %sc3, label %scend4 sc3: %t24 = load ptr, ptr %t15 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t16 br label %scend4 scend4: %t31 = load i32, ptr %t16 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t15 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 ptr @fn_find_comp(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t15 = alloca ptr %t16 = 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t17 = load ptr, ptr %t15 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 8 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t16 br i1 %t22, label %sc3, label %scend4 sc3: %t24 = load ptr, ptr %t15 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t16 br label %scend4 scend4: %t31 = load i32, ptr %t16 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t15 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 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 @fn_str_concat(ptr @.str361, 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 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = load i32, ptr %t2 %t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17 %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 @fn_str_eq(ptr %t21, ptr %t22) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then3, label %ifend5 then3: %t25 = load i32, ptr %t2 store i32 %t25, ptr %retval br label %ret ifend5: %t26 = load i32, ptr %t2 %t27 = add i32 %t26, 1 store i32 %t27, ptr %t2 br label %wcond0 wend2: %t28 = sub i32 0, 1 store i32 %t28, ptr %retval br label %ret ret: %t29 = load i32, ptr %retval ret i32 %t29 } 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 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = load i32, ptr %t2 %t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17 %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 @fn_str_eq(ptr %t21, ptr %t22) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then3, label %ifend5 then3: %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 = load i32, ptr %t2 %t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 3 %t34 = load ptr, ptr %t33 store ptr %t34, ptr %retval br label %ret ifend5: %t35 = load i32, ptr %t2 %t36 = add i32 %t35, 1 store i32 %t36, ptr %t2 br label %wcond0 wend2: store ptr @.str362, ptr %retval br label %ret ret: %t37 = load ptr, ptr %retval ret ptr %t37 } define ptr @fn_find_global(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t15 = alloca ptr %t16 = alloca i32 %t34 = 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t17 = load ptr, ptr %t15 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 2 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t16 br i1 %t22, label %sc3, label %scend4 sc3: %t24 = load ptr, ptr %t15 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t16 br label %scend4 scend4: %t31 = load i32, ptr %t16 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t15 store ptr %t33, ptr %retval br label %ret ifend7: %t35 = load ptr, ptr %t15 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 0 %t37 = load i32, ptr %t36 %t38 = icmp eq i32 %t37, 3 %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 %sc8, label %scend9 sc8: %t42 = load ptr, ptr %t15 %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 1 %t44 = load ptr, ptr %t43 %t45 = load ptr, ptr %t0 %t46 = call i32 @fn_str_eq(ptr %t44, ptr %t45) %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 %t15 store ptr %t51, ptr %retval br label %ret ifend12: %t52 = load i32, ptr %t1 %t53 = add i32 %t52, 1 store i32 %t53, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t54 = load ptr, ptr %retval ret ptr %t54 } define i32 @fn_enum_ordinal(ptr %arg_ename, ptr %arg_vname) { entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca i32 %t16 = alloca ptr %t17 = alloca i32 %t34 = 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = load i32, ptr %t2 %t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13 %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, 27 %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 %sc3, label %scend4 sc3: %t25 = load ptr, ptr %t16 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 %t28 = load ptr, ptr %t0 %t29 = call i32 @fn_str_eq(ptr %t27, ptr %t28) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t17 br label %scend4 scend4: %t32 = load i32, ptr %t17 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then5, label %ifend7 then5: store i32 0, ptr %t34 br label %wcond8 wcond8: %t35 = load i32, ptr %t34 %t36 = load ptr, ptr %t16 %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 ptr, ptr %t16 %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 = load i32, ptr %t34 %t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49 %t51 = load ptr, ptr %t50 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1 %t53 = load ptr, ptr %t52 %t54 = load ptr, ptr %t1 %t55 = call i32 @fn_str_eq(ptr %t53, ptr %t54) %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then11, label %ifend13 then11: %t57 = load i32, ptr %t34 store i32 %t57, ptr %retval br label %ret ifend13: %t58 = load i32, ptr %t34 %t59 = add i32 %t58, 1 store i32 %t59, ptr %t34 br label %wcond8 wend10: br label %ifend7 ifend7: %t60 = load i32, ptr %t2 %t61 = add i32 %t60, 1 store i32 %t61, ptr %t2 br label %wcond0 wend2: %t62 = load ptr, ptr %t0 %t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str363) %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then14, label %ifend16 then14: %t65 = load ptr, ptr %t1 %t66 = call i32 @fn_str_eq(ptr %t65, ptr @.str364) %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then17, label %ifend19 then17: store i32 0, ptr %retval br label %ret ifend19: %t68 = load ptr, ptr %t1 %t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str365) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then20, label %ifend22 then20: store i32 1, ptr %retval br label %ret ifend22: %t71 = load ptr, ptr %t1 %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str366) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then23, label %ifend25 then23: store i32 2, ptr %retval br label %ret ifend25: br label %ifend16 ifend16: %t74 = sub i32 0, 1 store i32 %t74, ptr %retval br label %ret ret: %t75 = load i32, ptr %retval ret i32 %t75 } define ptr @fn_find_fn(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t15 = alloca ptr %t16 = 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t17 = load ptr, ptr %t15 %t18 = getelementptr inbounds %Cmp_Node, 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 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t16 br i1 %t22, label %sc3, label %scend4 sc3: %t24 = load ptr, ptr %t15 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t16 br label %scend4 scend4: %t31 = load i32, ptr %t16 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t15 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 ptr @fn_find_extern(ptr %arg_name) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca i32 %t15 = alloca ptr %t16 = 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t17 = load ptr, ptr %t15 %t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0 %t19 = load i32, ptr %t18 %t20 = icmp eq i32 %t19, 11 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 %t23 = zext i1 %t22 to i32 store i32 %t23, ptr %t16 br i1 %t22, label %sc3, label %scend4 sc3: %t24 = load ptr, ptr %t15 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t0 %t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t16 br label %scend4 scend4: %t31 = load i32, ptr %t16 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then5, label %ifend7 then5: %t33 = load ptr, ptr %t15 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_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 @fn_str_concat(ptr %t8, ptr @.str367) %t10 = load ptr, ptr %t1 %t11 = call ptr @fn_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 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1 %t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 2 %t21 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t22 = load i32, ptr %t19 %t23 = load i32, ptr %t20 %t24 = icmp sge i32 %t22, %t23 br i1 %t24, label %grow0, label %put1 grow0: %t25 = mul i32 %t23, 2 %t26 = icmp eq i32 %t23, 0 %t27 = select i1 %t26, i32 8, i32 %t25 %t28 = getelementptr ptr, ptr null, i32 1 %t29 = ptrtoint ptr %t28 to i64 %t30 = zext i32 %t27 to i64 %t31 = mul i64 %t30, %t29 %t32 = load ptr, ptr %t21 %t33 = call ptr @realloc(ptr %t32, i64 %t31) store ptr %t33, ptr %t21 store i32 %t27, ptr %t20 br label %put1 put1: %t34 = load ptr, ptr %t5 %t35 = load ptr, ptr %t21 %t36 = getelementptr inbounds ptr, ptr %t35, i32 %t22 store ptr %t34, ptr %t36 %t37 = add i32 %t22, 1 store i32 %t37, ptr %t19 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 @fn_str_concat(ptr %t6, ptr @.str368) %t8 = load ptr, ptr %t1 %t9 = call ptr @fn_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 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t11 %t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1 %t26 = load ptr, ptr %t25 %t27 = load ptr, ptr %t10 %t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then6, label %ifend8 then6: %t30 = load ptr, ptr @g_g_computed %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = load i32, ptr %t11 %t34 = getelementptr inbounds ptr, ptr %t32, i32 %t33 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 4 %t37 = load ptr, ptr %t36 store ptr %t37, ptr %retval br label %ret ifend8: %t38 = load i32, ptr %t11 %t39 = add i32 %t38, 1 store i32 %t39, ptr %t11 br label %wcond3 wend5: store ptr null, ptr %retval br label %ret ret: %t40 = load ptr, ptr %retval ret ptr %t40 } define ptr @fn_static_type(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t11 = 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 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = load i32, ptr %t11 %t20 = getelementptr inbounds ptr, ptr %t18, i32 %t19 %t21 = load ptr, ptr %t20 store ptr %t21, ptr %retval br label %ret ifend5: br label %ifend2 ifend2: store ptr null, ptr %retval br label %ret ret: %t22 = load ptr, ptr %retval ret ptr %t22 } 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t14 = load i32, ptr %t11 %t15 = load i32, ptr %t12 %t16 = icmp sge i32 %t14, %t15 br i1 %t16, label %grow0, label %put1 grow0: %t17 = mul i32 %t15, 2 %t18 = icmp eq i32 %t15, 0 %t19 = select i1 %t18, i32 8, i32 %t17 %t20 = getelementptr ptr, ptr null, i32 1 %t21 = ptrtoint ptr %t20 to i64 %t22 = zext i32 %t19 to i64 %t23 = mul i64 %t22, %t21 %t24 = load ptr, ptr %t13 %t25 = call ptr @realloc(ptr %t24, i64 %t23) store ptr %t25, ptr %t13 store i32 %t19, ptr %t12 br label %put1 put1: %t26 = load ptr, ptr %t3 %t27 = load ptr, ptr %t13 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14 store ptr %t26, ptr %t28 %t29 = add i32 %t14, 1 store i32 %t29, ptr %t11 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_onspawn %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %retval br label %ret ifend5: %t28 = load i32, ptr %t1 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } 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 = 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 %t4 %t31 = load ptr, ptr %t17 %t32 = getelementptr inbounds ptr, ptr %t31, i32 %t18 store ptr %t30, ptr %t32 %t33 = add i32 %t18, 1 store i32 %t33, ptr %t15 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_ondespawn %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %retval br label %ret ifend5: %t28 = load i32, ptr %t1 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t14 = load i32, ptr %t11 %t15 = load i32, ptr %t12 %t16 = icmp sge i32 %t14, %t15 br i1 %t16, label %grow0, label %put1 grow0: %t17 = mul i32 %t15, 2 %t18 = icmp eq i32 %t15, 0 %t19 = select i1 %t18, i32 8, i32 %t17 %t20 = getelementptr ptr, ptr null, i32 1 %t21 = ptrtoint ptr %t20 to i64 %t22 = zext i32 %t19 to i64 %t23 = mul i64 %t22, %t21 %t24 = load ptr, ptr %t13 %t25 = call ptr @realloc(ptr %t24, i64 %t23) store ptr %t25, ptr %t13 store i32 %t19, ptr %t12 br label %put1 put1: %t26 = load ptr, ptr %t3 %t27 = load ptr, ptr %t13 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14 store ptr %t26, ptr %t28 %t29 = add i32 %t14, 1 store i32 %t29, ptr %t11 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_onattach %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %retval br label %ret ifend5: %t28 = load i32, ptr %t1 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t14 = load i32, ptr %t11 %t15 = load i32, ptr %t12 %t16 = icmp sge i32 %t14, %t15 br i1 %t16, label %grow0, label %put1 grow0: %t17 = mul i32 %t15, 2 %t18 = icmp eq i32 %t15, 0 %t19 = select i1 %t18, i32 8, i32 %t17 %t20 = getelementptr ptr, ptr null, i32 1 %t21 = ptrtoint ptr %t20 to i64 %t22 = zext i32 %t19 to i64 %t23 = mul i64 %t22, %t21 %t24 = load ptr, ptr %t13 %t25 = call ptr @realloc(ptr %t24, i64 %t23) store ptr %t25, ptr %t13 store i32 %t19, ptr %t12 br label %put1 put1: %t26 = load ptr, ptr %t3 %t27 = load ptr, ptr %t13 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14 store ptr %t26, ptr %t28 %t29 = add i32 %t14, 1 store i32 %t29, ptr %t11 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_ondetach %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %retval br label %ret ifend5: %t28 = load i32, ptr %t1 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t14 = load i32, ptr %t11 %t15 = load i32, ptr %t12 %t16 = icmp sge i32 %t14, %t15 br i1 %t16, label %grow0, label %put1 grow0: %t17 = mul i32 %t15, 2 %t18 = icmp eq i32 %t15, 0 %t19 = select i1 %t18, i32 8, i32 %t17 %t20 = getelementptr ptr, ptr null, i32 1 %t21 = ptrtoint ptr %t20 to i64 %t22 = zext i32 %t19 to i64 %t23 = mul i64 %t22, %t21 %t24 = load ptr, ptr %t13 %t25 = call ptr @realloc(ptr %t24, i64 %t23) store ptr %t25, ptr %t13 store i32 %t19, ptr %t12 br label %put1 put1: %t26 = load ptr, ptr %t3 %t27 = load ptr, ptr %t13 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14 store ptr %t26, ptr %t28 %t29 = add i32 %t14, 1 store i32 %t29, ptr %t11 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t14 = load i32, ptr %t11 %t15 = load i32, ptr %t12 %t16 = icmp sge i32 %t14, %t15 br i1 %t16, label %grow0, label %put1 grow0: %t17 = mul i32 %t15, 2 %t18 = icmp eq i32 %t15, 0 %t19 = select i1 %t18, i32 8, i32 %t17 %t20 = getelementptr ptr, ptr null, i32 1 %t21 = ptrtoint ptr %t20 to i64 %t22 = zext i32 %t19 to i64 %t23 = mul i64 %t22, %t21 %t24 = load ptr, ptr %t13 %t25 = call ptr @realloc(ptr %t24, i64 %t23) store ptr %t25, ptr %t13 store i32 %t19, ptr %t12 br label %put1 put1: %t26 = load ptr, ptr %t3 %t27 = load ptr, ptr %t13 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14 store ptr %t26, ptr %t28 %t29 = add i32 %t14, 1 store i32 %t29, ptr %t11 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_onenable %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %retval br label %ret ifend5: %t28 = load i32, ptr %t1 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_ondisable %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4 %t27 = load ptr, ptr %t26 store ptr %t27, ptr %retval br label %ret ifend5: %t28 = load i32, ptr %t1 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t30 = load ptr, ptr %retval ret ptr %t30 } 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 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1 %t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 2 %t4 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0 %t5 = load i32, ptr %t2 %t6 = load i32, ptr %t3 %t7 = icmp sge i32 %t5, %t6 br i1 %t7, label %grow0, label %put1 grow0: %t8 = mul i32 %t6, 2 %t9 = icmp eq i32 %t6, 0 %t10 = select i1 %t9, i32 8, i32 %t8 %t11 = getelementptr ptr, ptr null, i32 1 %t12 = ptrtoint ptr %t11 to i64 %t13 = zext i32 %t10 to i64 %t14 = mul i64 %t13, %t12 %t15 = load ptr, ptr %t4 %t16 = call ptr @realloc(ptr %t15, i64 %t14) store ptr %t16, ptr %t4 store i32 %t10, ptr %t3 br label %put1 put1: %t17 = load ptr, ptr %t0 %t18 = load ptr, ptr %t4 %t19 = getelementptr inbounds ptr, ptr %t18, i32 %t5 store ptr %t17, ptr %t19 %t20 = add i32 %t5, 1 store i32 %t20, ptr %t2 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load ptr, ptr @g_g_events %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t1 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 store ptr %t25, ptr %retval br label %ret ifend5: %t26 = load i32, ptr %t1 %t27 = add i32 %t26, 1 store i32 %t27, ptr %t1 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1 %t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2 %t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t14 = load i32, ptr %t11 %t15 = load i32, ptr %t12 %t16 = icmp sge i32 %t14, %t15 br i1 %t16, label %grow0, label %put1 grow0: %t17 = mul i32 %t15, 2 %t18 = icmp eq i32 %t15, 0 %t19 = select i1 %t18, i32 8, i32 %t17 %t20 = getelementptr ptr, ptr null, i32 1 %t21 = ptrtoint ptr %t20 to i64 %t22 = zext i32 %t19 to i64 %t23 = mul i64 %t22, %t21 %t24 = load ptr, ptr %t13 %t25 = call ptr @realloc(ptr %t24, i64 %t23) store ptr %t25, ptr %t13 store i32 %t19, ptr %t12 br label %put1 put1: %t26 = load ptr, ptr %t3 %t27 = load ptr, ptr %t13 %t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14 store ptr %t26, ptr %t28 %t29 = add i32 %t14, 1 store i32 %t29, ptr %t11 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 @.str369, ptr %t15 %t16 = load ptr, ptr %t13 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 store ptr @.str370, ptr %t17 %t18 = load ptr, ptr %t8 %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 1 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 %t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t24 = load i32, ptr %t21 %t25 = load i32, ptr %t22 %t26 = icmp sge i32 %t24, %t25 br i1 %t26, label %grow3, label %put4 grow3: %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 %put4 put4: %t36 = load ptr, ptr %t13 %t37 = load ptr, ptr %t23 %t38 = getelementptr inbounds ptr, ptr %t37, i32 %t24 store ptr %t36, ptr %t38 %t39 = add i32 %t24, 1 store i32 %t39, ptr %t21 %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 @.str371, ptr %t45 %t46 = load ptr, ptr %t43 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 3 store ptr @.str372, ptr %t47 %t48 = load ptr, ptr %t8 %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 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 2 %t53 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0 %t54 = load i32, ptr %t51 %t55 = load i32, ptr %t52 %t56 = icmp sge i32 %t54, %t55 br i1 %t56, label %grow8, label %put9 grow8: %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 %put9 put9: %t66 = load ptr, ptr %t43 %t67 = load ptr, ptr %t53 %t68 = getelementptr inbounds ptr, ptr %t67, i32 %t54 store ptr %t66, ptr %t68 %t69 = add i32 %t54, 1 store i32 %t69, ptr %t51 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = load ptr, ptr %t0 %t16 = call i32 @fn_str_eq(ptr %t14, ptr %t15) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then3, label %ifend5 then3: br label %ret ifend5: %t18 = load i32, ptr %t1 %t19 = add i32 %t18, 1 store i32 %t19, ptr %t1 br label %wcond0 wend2: %t20 = load ptr, ptr @g_g_toggled_layers %t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1 %t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2 %t23 = getelementptr inbounds %LSlice, ptr %t20, 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 %t0 %t37 = load ptr, ptr %t23 %t38 = getelementptr inbounds ptr, ptr %t37, i32 %t24 store ptr %t36, ptr %t38 %t39 = add i32 %t24, 1 store i32 %t39, ptr %t21 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = load ptr, ptr %t0 %t16 = call i32 @fn_str_eq(ptr %t14, ptr %t15) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t18 = load i32, ptr %t1 %t19 = add i32 %t18, 1 store i32 %t19, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t20 = load i32, ptr %retval ret i32 %t20 } 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 i32, ptr @g_nloc %t4 = load ptr, ptr @g_loc_name %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 %then0, label %else1 then0: %t10 = load ptr, ptr @g_loc_name %t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = load i32, ptr @g_nloc %t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13 %t15 = load ptr, ptr %t0 store ptr %t15, ptr %t14 %t16 = load ptr, ptr @g_loc_reg %t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = load i32, ptr @g_nloc %t20 = getelementptr inbounds ptr, ptr %t18, i32 %t19 %t21 = load ptr, ptr %t1 store ptr %t21, ptr %t20 %t22 = load ptr, ptr @g_loc_ty %t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = load i32, ptr @g_nloc %t26 = getelementptr inbounds ptr, ptr %t24, i32 %t25 %t27 = load ptr, ptr %t2 store ptr %t27, ptr %t26 %t28 = load ptr, ptr @g_loc_mut %t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = load i32, ptr @g_nloc %t32 = getelementptr inbounds i32, ptr %t30, i32 %t31 store i32 1, ptr %t32 br label %ifend2 else1: %t33 = load ptr, ptr @g_loc_name %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 %grow3, label %put4 grow3: %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 %put4 put4: %t49 = load ptr, ptr %t0 %t50 = load ptr, ptr %t36 %t51 = getelementptr inbounds ptr, ptr %t50, i32 %t37 store ptr %t49, ptr %t51 %t52 = add i32 %t37, 1 store i32 %t52, ptr %t34 %t53 = load ptr, ptr @g_loc_reg %t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t55 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 2 %t56 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0 %t57 = load i32, ptr %t54 %t58 = load i32, ptr %t55 %t59 = icmp sge i32 %t57, %t58 br i1 %t59, label %grow5, label %put6 grow5: %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 %put6 put6: %t69 = load ptr, ptr %t1 %t70 = load ptr, ptr %t56 %t71 = getelementptr inbounds ptr, ptr %t70, i32 %t57 store ptr %t69, ptr %t71 %t72 = add i32 %t57, 1 store i32 %t72, ptr %t54 %t73 = load ptr, ptr @g_loc_ty %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 %grow7, label %put8 grow7: %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 %put8 put8: %t89 = load ptr, ptr %t2 %t90 = load ptr, ptr %t76 %t91 = getelementptr inbounds ptr, ptr %t90, i32 %t77 store ptr %t89, ptr %t91 %t92 = add i32 %t77, 1 store i32 %t92, ptr %t74 %t93 = load ptr, ptr @g_loc_mut %t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1 %t95 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 2 %t96 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0 %t97 = load i32, ptr %t94 %t98 = load i32, ptr %t95 %t99 = icmp sge i32 %t97, %t98 br i1 %t99, label %grow9, label %put10 grow9: %t100 = mul i32 %t98, 2 %t101 = icmp eq i32 %t98, 0 %t102 = select i1 %t101, i32 8, i32 %t100 %t103 = getelementptr i32, 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 %put10 put10: %t109 = load ptr, ptr %t96 %t110 = getelementptr inbounds i32, ptr %t109, i32 %t97 store i32 1, ptr %t110 %t111 = add i32 %t97, 1 store i32 %t111, ptr %t94 br label %ifend2 ifend2: %t112 = load i32, ptr @g_nloc %t113 = add i32 %t112, 1 store i32 %t113, ptr @g_nloc 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 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = load i32, ptr @g_nloc %t9 = sub i32 %t8, 1 %t10 = getelementptr inbounds i32, ptr %t7, i32 %t9 %t11 = load i32, ptr %t0 store i32 %t11, ptr %t10 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t3 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %t13 = load ptr, ptr %t12 %t14 = load ptr, ptr %t0 %t15 = call i32 @fn_str_eq(ptr %t13, ptr %t14) %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then3, label %ifend5 then3: %t17 = load i32, ptr %t3 store i32 %t17, ptr %retval br label %ret ifend5: %t18 = load i32, ptr %t3 %t19 = sub i32 %t18, 1 store i32 %t19, ptr %t3 br label %wcond0 wend2: %t20 = sub i32 0, 1 store i32 %t20, ptr %retval br label %ret ret: %t21 = load i32, ptr %retval ret i32 %t21 } 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 %t15 = alloca i32 %t26 = alloca i32 %t27 = alloca i32 %t28 = alloca i32 %t29 = 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 @fn_str_concat(ptr @.str373, 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 @.str374) %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 @.str375) store i32 0, ptr %t15 br label %wcond0 wcond0: %t16 = load i32, ptr %t15 %t17 = load i32, ptr %t10 %t18 = icmp slt i32 %t16, %t17 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %wbody1, label %wend2 wbody1: %t21 = load ptr, ptr %t0 %t22 = load i32, ptr %t15 %t23 = getelementptr inbounds i8, ptr %t21, i32 %t22 %t24 = load i8, ptr %t23 %t25 = zext i8 %t24 to i32 store i32 %t25, ptr %t26 %t30 = load i32, ptr %t26 %t31 = icmp eq i32 %t30, 34 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t29 br i1 %t33, label %scend4, label %sc3 sc3: %t35 = load i32, ptr %t26 %t36 = icmp eq i32 %t35, 92 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 %t39 = zext i1 %t38 to i32 store i32 %t39, ptr %t29 br label %scend4 scend4: %t40 = load i32, ptr %t29 %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t28 br i1 %t41, label %scend6, label %sc5 sc5: %t43 = load i32, ptr %t26 %t44 = icmp slt i32 %t43, 32 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t28 br label %scend6 scend6: %t48 = load i32, ptr %t28 %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t27 br i1 %t49, label %scend8, label %sc7 sc7: %t51 = load i32, ptr %t26 %t52 = icmp sgt i32 %t51, 126 %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t27 br label %scend8 scend8: %t56 = load i32, ptr %t27 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then9, label %else10 then9: %t58 = load ptr, ptr @g_head call void @fn_buf_putc(ptr %t58, i32 92) %t59 = load ptr, ptr @g_head %t60 = load i32, ptr %t26 %t61 = sdiv i32 %t60, 16 %t62 = call i32 @fn_hexdig(i32 %t61) call void @fn_buf_putc(ptr %t59, i32 %t62) %t63 = load ptr, ptr @g_head %t64 = load i32, ptr %t26 %t65 = srem i32 %t64, 16 %t66 = call i32 @fn_hexdig(i32 %t65) call void @fn_buf_putc(ptr %t63, i32 %t66) br label %ifend11 else10: %t67 = load ptr, ptr @g_head %t68 = load i32, ptr %t26 call void @fn_buf_putc(ptr %t67, i32 %t68) br label %ifend11 ifend11: %t69 = load i32, ptr %t15 %t70 = add i32 %t69, 1 store i32 %t70, ptr %t15 br label %wcond0 wend2: call void @fn_emith(ptr @.str376) %t71 = load ptr, ptr %t4 store ptr %t71, ptr %retval br label %ret ret: %t72 = load ptr, ptr %retval ret ptr %t72 } define ptr @fn_global_init(ptr %arg_d) { entry: %retval = alloca ptr %t0 = alloca ptr %t16 = alloca ptr %t17 = alloca i32 %t18 = alloca i32 %t49 = alloca i32 %t50 = 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: %t7 = load ptr, ptr %t0 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_llty(ptr %t9) %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str377) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: store ptr @.str378, ptr %retval br label %ret ifend5: store ptr @.str379, ptr %retval br label %ret ifend2: %t13 = load ptr, ptr %t0 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 4 %t15 = load ptr, ptr %t14 store ptr %t15, ptr %t16 %t19 = load ptr, ptr %t16 %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 %t16 %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 %t16 %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 br i1 %t44, label %then10, label %ifend12 then10: %t45 = load ptr, ptr %t16 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 2 %t47 = load i32, ptr %t46 %t48 = call ptr @fn_itoa(i32 %t47) store ptr %t48, ptr %retval br label %ret ifend12: %t51 = load ptr, ptr %t16 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 0 %t53 = load i32, ptr %t52 %t54 = icmp eq i32 %t53, 38 %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 %t57 = zext i1 %t56 to i32 store i32 %t57, ptr %t50 br i1 %t56, label %sc13, label %scend14 sc13: %t58 = load ptr, ptr %t16 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 1 %t60 = load ptr, ptr %t59 %t61 = call i32 @fn_str_eq(ptr %t60, ptr @.str380) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t50 br label %scend14 scend14: %t64 = load i32, ptr %t50 %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t49 br i1 %t65, label %sc15, label %scend16 sc15: %t67 = load ptr, ptr %t16 %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, 30 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t49 br label %scend16 scend16: %t76 = load i32, ptr %t49 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then17, label %ifend19 then17: %t78 = load ptr, ptr %t16 %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 2 %t82 = load i32, ptr %t81 %t83 = call ptr @fn_itoa(i32 %t82) %t84 = call ptr @fn_str_concat(ptr @.str381, ptr %t83) store ptr %t84, ptr %retval br label %ret ifend19: %t85 = load ptr, ptr %t0 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 3 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_llty(ptr %t87) %t89 = call i32 @fn_str_eq(ptr %t88, ptr @.str382) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then20, label %ifend22 then20: store ptr @.str383, ptr %retval br label %ret ifend22: store ptr @.str384, ptr %retval br label %ret ret: %t91 = load ptr, ptr %retval ret ptr %t91 } define void @fn_emit_header() { entry: %t6 = alloca i32 %t20 = alloca ptr %t39 = alloca i32 %t81 = alloca ptr call void @fn_emith(ptr @.str385) call void @fn_emith(ptr @.str386) call void @fn_emith(ptr @.str387) call void @fn_emith(ptr @.str388) call void @fn_emith(ptr @.str389) call void @fn_emith(ptr @.str390) call void @fn_emith(ptr @.str391) call void @fn_emith(ptr @.str392) call void @fn_emith(ptr @.str393) call void @fn_emith(ptr @.str394) call void @fn_emith(ptr @.str395) call void @fn_emith(ptr @.str396) call void @fn_emith(ptr @.str397) call void @fn_emith(ptr @.str398) call void @fn_emith(ptr @.str399) call void @fn_emith(ptr @.str400) call void @fn_emith(ptr @.str401) call void @fn_emith(ptr @.str402) call void @fn_emith(ptr @.str403) call void @fn_emith(ptr @.str404) call void @fn_emith(ptr @.str405) call void @fn_emith(ptr @.str406) call void @fn_emith(ptr @.str407) call void @fn_emith(ptr @.str408) call void @fn_emith(ptr @.str409) call void @fn_emith(ptr @.str410) call void @fn_emith(ptr @.str411) call void @fn_emith(ptr @.str412) call void @fn_emith(ptr @.str413) call void @fn_emith(ptr @.str414) call void @fn_emith(ptr @.str415) call void @fn_emith(ptr @.str416) call void @fn_emith(ptr @.str417) call void @fn_emith(ptr @.str418) call void @fn_emith(ptr @.str419) call void @fn_emith(ptr @.str420) call void @fn_emith(ptr @.str421) %t0 = load ptr, ptr @g_g_game_name %t1 = call i64 @strlen(ptr %t0) %t2 = trunc i64 %t1 to i32 %t3 = add i32 %t2, 1 %t4 = call ptr @fn_itoa(i32 %t3) call void @fn_emith(ptr %t4) call void @fn_emith(ptr @.str422) %t5 = load ptr, ptr @g_g_game_name call void @fn_emith(ptr %t5) call void @fn_emith(ptr @.str423) call void @fn_emith(ptr @.str424) 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 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = load i32, ptr %t6 %t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17 %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, 8 %t25 = zext i1 %t24 to i32 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then3, label %ifend5 then3: %t27 = load ptr, ptr %t20 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_layout_ty(ptr %t29) call void @fn_emith(ptr %t30) call void @fn_emith(ptr @.str425) %t31 = load ptr, ptr %t20 %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 1 %t35 = load i32, ptr %t34 %t36 = icmp eq i32 %t35, 0 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then6, label %ifend8 then6: call void @fn_emith(ptr @.str426) br label %ifend8 ifend8: store i32 0, ptr %t39 br label %wcond9 wcond9: %t40 = load i32, ptr %t39 %t41 = load ptr, ptr %t20 %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 1 %t45 = load i32, ptr %t44 %t46 = icmp slt i32 %t40, %t45 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %wbody10, label %wend11 wbody10: %t49 = load i32, ptr %t39 %t50 = icmp sgt i32 %t49, 0 %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then12, label %ifend14 then12: call void @fn_emith(ptr @.str427) br label %ifend14 ifend14: %t53 = load ptr, ptr %t20 %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 = load i32, ptr %t39 %t59 = getelementptr inbounds ptr, ptr %t57, i32 %t58 %t60 = load ptr, ptr %t59 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 3 %t62 = load ptr, ptr %t61 %t63 = call ptr @fn_llty(ptr %t62) call void @fn_emith(ptr %t63) %t64 = load i32, ptr %t39 %t65 = add i32 %t64, 1 store i32 %t65, ptr %t39 br label %wcond9 wend11: call void @fn_emith(ptr @.str428) br label %ifend5 ifend5: %t66 = load i32, ptr %t6 %t67 = add i32 %t66, 1 store i32 %t67, ptr %t6 br label %wcond0 wend2: store i32 0, ptr %t6 br label %wcond15 wcond15: %t68 = load i32, ptr %t6 %t69 = load ptr, ptr @g_prog %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t71 = load i32, ptr %t70 %t72 = icmp slt i32 %t68, %t71 %t73 = zext i1 %t72 to i32 %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %wbody16, label %wend17 wbody16: %t75 = load ptr, ptr @g_prog %t76 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = load i32, ptr %t6 %t79 = getelementptr inbounds ptr, ptr %t77, i32 %t78 %t80 = load ptr, ptr %t79 store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t81 %t83 = getelementptr inbounds %Cmp_Node, ptr %t82, i32 0, i32 0 %t84 = load i32, ptr %t83 %t85 = icmp eq i32 %t84, 2 %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then18, label %ifend20 then18: call void @fn_emith(ptr @.str429) %t88 = load ptr, ptr %t81 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 %t90 = load ptr, ptr %t89 call void @fn_emith(ptr %t90) call void @fn_emith(ptr @.str430) %t91 = load ptr, ptr %t81 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 3 %t93 = load ptr, ptr %t92 %t94 = call ptr @fn_llty(ptr %t93) call void @fn_emith(ptr %t94) call void @fn_emith(ptr @.str431) %t95 = load ptr, ptr %t81 %t96 = call ptr @fn_global_init(ptr %t95) call void @fn_emith(ptr %t96) call void @fn_emith(ptr @.str432) br label %ifend20 ifend20: %t97 = load i32, ptr %t6 %t98 = add i32 %t97, 1 store i32 %t98, ptr %t6 br label %wcond15 wend17: br label %ret ret: ret void } define void @fn_emit_extern_decls() { entry: %t0 = alloca i32 %t14 = alloca ptr %t30 = 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %t13 = load ptr, ptr %t12 store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 0 %t17 = load i32, ptr %t16 %t18 = icmp eq i32 %t17, 11 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: call void @fn_emith(ptr @.str433) %t21 = load ptr, ptr %t14 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 3 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_llty(ptr %t23) call void @fn_emith(ptr %t24) call void @fn_emith(ptr @.str434) %t25 = load ptr, ptr %t14 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 %t29 = load ptr, ptr %t28 call void @fn_emith(ptr %t29) call void @fn_emith(ptr @.str435) store i32 0, ptr %t30 br label %wcond6 wcond6: %t31 = load i32, ptr %t30 %t32 = load ptr, ptr %t14 %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 %wbody7, label %wend8 wbody7: %t40 = load i32, ptr %t30 %t41 = icmp sgt i32 %t40, 0 %t42 = zext i1 %t41 to i32 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then9, label %ifend11 then9: call void @fn_emith(ptr @.str436) br label %ifend11 ifend11: %t44 = load ptr, ptr %t14 %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 = load i32, ptr %t30 %t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49 %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 %t30 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t30 br label %wcond6 wend8: call void @fn_emith(ptr @.str437) br label %ifend5 ifend5: %t57 = load i32, ptr %t0 %t58 = add i32 %t57, 1 store i32 %t58, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_emit_str_prelude() { entry: call void @fn_emith(ptr @.str438) call void @fn_emith(ptr @.str439) call void @fn_emith(ptr @.str440) call void @fn_emith(ptr @.str441) call void @fn_emith(ptr @.str442) call void @fn_emith(ptr @.str443) call void @fn_emith(ptr @.str444) call void @fn_emith(ptr @.str445) call void @fn_emith(ptr @.str446) call void @fn_emith(ptr @.str447) call void @fn_emith(ptr @.str448) call void @fn_emith(ptr @.str449) call void @fn_emith(ptr @.str450) call void @fn_emith(ptr @.str451) call void @fn_emith(ptr @.str452) call void @fn_emith(ptr @.str453) call void @fn_emith(ptr @.str454) call void @fn_emith(ptr @.str455) call void @fn_emith(ptr @.str456) call void @fn_emith(ptr @.str457) call void @fn_emith(ptr @.str458) call void @fn_emith(ptr @.str459) call void @fn_emith(ptr @.str460) call void @fn_emith(ptr @.str461) call void @fn_emith(ptr @.str462) call void @fn_emith(ptr @.str463) call void @fn_emith(ptr @.str464) call void @fn_emith(ptr @.str465) call void @fn_emith(ptr @.str466) call void @fn_emith(ptr @.str467) call void @fn_emith(ptr @.str468) call void @fn_emith(ptr @.str469) call void @fn_emith(ptr @.str470) call void @fn_emith(ptr @.str471) call void @fn_emith(ptr @.str472) br label %ret ret: ret void } define void @fn_emit_int_str() { entry: call void @fn_emith(ptr @.str473) call void @fn_emith(ptr @.str474) call void @fn_emith(ptr @.str475) call void @fn_emith(ptr @.str476) call void @fn_emith(ptr @.str477) call void @fn_emith(ptr @.str478) call void @fn_emith(ptr @.str479) call void @fn_emith(ptr @.str480) call void @fn_emith(ptr @.str481) call void @fn_emith(ptr @.str482) call void @fn_emith(ptr @.str483) call void @fn_emith(ptr @.str484) call void @fn_emith(ptr @.str485) call void @fn_emith(ptr @.str486) call void @fn_emith(ptr @.str487) call void @fn_emith(ptr @.str488) call void @fn_emith(ptr @.str489) br label %ret ret: ret void } define void @fn_emit_long_str() { entry: call void @fn_emith(ptr @.str490) call void @fn_emith(ptr @.str491) call void @fn_emith(ptr @.str492) call void @fn_emith(ptr @.str493) call void @fn_emith(ptr @.str494) call void @fn_emith(ptr @.str495) call void @fn_emith(ptr @.str496) call void @fn_emith(ptr @.str497) call void @fn_emith(ptr @.str498) call void @fn_emith(ptr @.str499) call void @fn_emith(ptr @.str500) call void @fn_emith(ptr @.str501) call void @fn_emith(ptr @.str502) call void @fn_emith(ptr @.str503) call void @fn_emith(ptr @.str504) call void @fn_emith(ptr @.str505) call void @fn_emith(ptr @.str506) br label %ret ret: ret void } define void @fn_emit_str_slice() { entry: call void @fn_emith(ptr @.str507) call void @fn_emith(ptr @.str508) call void @fn_emith(ptr @.str509) call void @fn_emith(ptr @.str510) call void @fn_emith(ptr @.str511) call void @fn_emith(ptr @.str512) call void @fn_emith(ptr @.str513) call void @fn_emith(ptr @.str514) 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 @fn_str_concat(ptr @.str515, 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 @fn_str_concat(ptr @.str516, 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 @.str517) %t40 = load ptr, ptr %t39 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str518) %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 @.str519) %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 @.str520) %t48 = load i32, ptr %t24 %t49 = call ptr @fn_itoa(i32 %t48) call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str521) %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 %t67 = alloca ptr %t79 = alloca ptr %t85 = alloca ptr %t88 = alloca ptr %t94 = alloca ptr %t101 = alloca ptr %t103 = 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 @fn_str_eq(ptr %t20, ptr @.str522) %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 @fn_str_concat(ptr @.str523, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str524) %t28 = load ptr, ptr %t17 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_str_concat(ptr %t27, ptr %t30) %t32 = call ptr @fn_emit_bind(ptr %t31) store ptr %t32, ptr %t33 store ptr @.str525, 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 @fn_str_eq(ptr %t37, ptr @.str526) %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 @fn_str_concat(ptr @.str527, ptr %t42) %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str528) %t45 = load ptr, ptr %t17 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = call ptr @fn_str_concat(ptr %t44, ptr %t47) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 store ptr @.str529, ptr @g_g_addr_ty %t51 = load ptr, ptr %t50 store ptr %t51, ptr %retval br label %ret ifend8: %t52 = load ptr, ptr %t5 %t53 = getelementptr inbounds %Cmp_Val, ptr %t52, i32 0, i32 1 %t54 = load ptr, ptr %t53 %t55 = call i32 @fn_str_eq(ptr %t54, ptr @.str530) %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then9, label %ifend11 then9: %t57 = load ptr, ptr %t5 %t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0 %t59 = load ptr, ptr %t58 %t60 = call ptr @fn_str_concat(ptr @.str531, ptr %t59) %t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str532) %t62 = load ptr, ptr %t17 %t63 = getelementptr inbounds %Cmp_Val, ptr %t62, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = call ptr @fn_str_concat(ptr %t61, ptr %t64) %t66 = call ptr @fn_emit_bind(ptr %t65) store ptr %t66, ptr %t67 store ptr @.str533, ptr @g_g_addr_ty %t68 = load ptr, ptr %t67 store ptr %t68, ptr %retval br label %ret ifend11: %t69 = load ptr, ptr %t5 %t70 = getelementptr inbounds %Cmp_Val, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = call ptr @fn_str_concat(ptr @.str534, ptr %t71) %t73 = call ptr @fn_str_concat(ptr %t72, ptr @.str535) %t74 = load ptr, ptr %t17 %t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0 %t76 = load ptr, ptr %t75 %t77 = call ptr @fn_str_concat(ptr %t73, ptr %t76) %t78 = call ptr @fn_emit_bind(ptr %t77) store ptr %t78, ptr %t79 store ptr @.str536, ptr @g_g_addr_ty %t80 = load ptr, ptr %t79 store ptr %t80, ptr %retval br label %ret ifend2: %t81 = load ptr, ptr %t5 %t82 = getelementptr inbounds %Cmp_Val, ptr %t81, i32 0, i32 1 %t83 = load ptr, ptr %t82 %t84 = call ptr @fn_slice_elem(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 store ptr %t86, ptr @g_g_addr_ty %t87 = call ptr @fn_nreg() store ptr %t87, ptr %t88 call void @fn_emit(ptr @.str537) %t89 = load ptr, ptr %t88 call void @fn_emit(ptr %t89) call void @fn_emit(ptr @.str538) %t90 = load ptr, ptr %t5 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str539) %t93 = call ptr @fn_nreg() store ptr %t93, ptr %t94 call void @fn_emit(ptr @.str540) %t95 = load ptr, ptr %t94 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str541) %t96 = load ptr, ptr %t88 call void @fn_emit(ptr %t96) call void @fn_emit(ptr @.str542) %t97 = load ptr, ptr %t0 %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 5 %t99 = load ptr, ptr %t98 %t100 = call ptr @fn_emit_expr(ptr %t99) store ptr %t100, ptr %t101 %t102 = call ptr @fn_nreg() store ptr %t102, ptr %t103 call void @fn_emit(ptr @.str543) %t104 = load ptr, ptr %t103 call void @fn_emit(ptr %t104) call void @fn_emit(ptr @.str544) %t105 = load ptr, ptr %t85 %t106 = call ptr @fn_llty(ptr %t105) call void @fn_emit(ptr %t106) call void @fn_emit(ptr @.str545) %t107 = load ptr, ptr %t94 call void @fn_emit(ptr %t107) call void @fn_emit(ptr @.str546) %t108 = load ptr, ptr %t101 %t109 = getelementptr inbounds %Cmp_Val, ptr %t108, i32 0, i32 0 %t110 = load ptr, ptr %t109 call void @fn_emit(ptr %t110) call void @fn_emit(ptr @.str547) %t111 = load ptr, ptr %t103 store ptr %t111, ptr %retval br label %ret ret: %t112 = load ptr, ptr %retval ret ptr %t112 } 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 @fn_str_eq(ptr %t1, ptr @.str548) %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_eq(ptr %t6, ptr @.str549) %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_eq(ptr %t10, ptr @.str550) %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_eq(ptr %t17, ptr @.str551) %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 @fn_str_eq(ptr %t25, ptr @.str552) %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 @fn_str_eq(ptr %t29, ptr @.str553) %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 @fn_str_eq(ptr %t36, ptr @.str554) %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 @fn_str_eq(ptr %t44, ptr @.str555) %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 @fn_str_eq(ptr %t48, ptr @.str556) %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 @fn_str_eq(ptr %t55, ptr @.str557) %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 @fn_str_eq(ptr %t62, ptr @.str558) %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 @fn_str_eq(ptr %t66, ptr @.str559) %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 @fn_str_eq(ptr %t73, ptr @.str560) %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 @fn_str_eq(ptr %t77, ptr @.str561) %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: store i32 0, ptr %retval br label %ret ret: %t83 = load i32, ptr %retval ret i32 %t83 } 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 @.str562) %t3 = load ptr, ptr %t2 call void @fn_emit(ptr %t3) call void @fn_emit(ptr @.str563) %t4 = load ptr, ptr %t0 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str564) %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 %t11 = 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 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0 %t6 = load ptr, ptr %t5 %t7 = load i32, ptr %t1 %t8 = getelementptr inbounds ptr, ptr %t6, i32 %t7 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_emit_expr(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = getelementptr inbounds %Cmp_Val, ptr %t12, i32 0, i32 0 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %retval br label %ret ret: %t15 = load ptr, ptr %retval ret ptr %t15 } 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 %t57 = alloca ptr %t60 = alloca ptr %t65 = alloca ptr %t66 = alloca ptr %t83 = alloca ptr %t94 = alloca ptr %t97 = alloca ptr %t100 = alloca ptr %t105 = alloca ptr %t122 = alloca ptr %t127 = alloca ptr %t138 = alloca ptr %t151 = alloca ptr %t153 = alloca ptr %t160 = alloca ptr %t170 = alloca ptr %t188 = alloca ptr %t199 = 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 @fn_str_eq(ptr %t2, ptr @.str565) %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 @fn_str_concat(ptr @.str566, ptr %t11) %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str567) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t7 %t17 = call ptr @fn_str_concat(ptr @.str568, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str569) %t19 = load ptr, ptr %t15 %t20 = call ptr @fn_str_concat(ptr %t18, ptr %t19) %t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str570) %t22 = call ptr @fn_emit_bind(ptr %t21) %t23 = call ptr @fn_val(ptr %t22, ptr @.str571) store ptr %t23, ptr %retval br label %ret ifend2: %t24 = load ptr, ptr %t0 %t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str572) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then3, label %ifend5 then3: %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 @fn_str_concat(ptr @.str573, ptr %t33) %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str574) %t36 = load ptr, ptr %t32 %t37 = call ptr @fn_str_concat(ptr %t35, ptr %t36) %t38 = call ptr @fn_str_concat(ptr %t37, ptr @.str575) %t39 = call ptr @fn_emit_bind(ptr %t38) %t40 = call ptr @fn_val(ptr %t39, ptr @.str576) store ptr %t40, ptr %retval br label %ret ifend5: %t42 = load ptr, ptr %t0 %t43 = call i32 @fn_str_eq(ptr %t42, ptr @.str577) %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 @fn_str_eq(ptr %t46, ptr @.str578) %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 = call ptr @fn_arg_code(ptr %t55, i32 1) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t1 %t59 = call ptr @fn_arg_code(ptr %t58, i32 2) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_str_concat(ptr @.str579, ptr %t61) %t63 = call ptr @fn_str_concat(ptr %t62, ptr @.str580) %t64 = call ptr @fn_emit_bind(ptr %t63) store ptr %t64, ptr %t65 store ptr @.str581, ptr %t66 %t67 = load ptr, ptr %t0 %t68 = call i32 @fn_str_eq(ptr %t67, ptr @.str582) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then11, label %ifend13 then11: store ptr @.str583, ptr %t66 br label %ifend13 ifend13: %t70 = load ptr, ptr %t66 %t71 = call ptr @fn_str_concat(ptr @.str584, ptr %t70) %t72 = call ptr @fn_str_concat(ptr %t71, ptr @.str585) %t73 = load ptr, ptr %t57 %t74 = call ptr @fn_str_concat(ptr %t72, ptr %t73) %t75 = call ptr @fn_str_concat(ptr %t74, ptr @.str586) %t76 = load ptr, ptr %t65 %t77 = call ptr @fn_str_concat(ptr %t75, ptr %t76) %t78 = call ptr @fn_str_concat(ptr %t77, ptr @.str587) %t79 = load ptr, ptr %t54 %t80 = call ptr @fn_str_concat(ptr %t78, ptr %t79) %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str588) %t82 = call ptr @fn_emit_bind(ptr %t81) store ptr %t82, ptr %t83 %t84 = load ptr, ptr %t83 %t85 = call ptr @fn_str_concat(ptr @.str589, ptr %t84) %t86 = call ptr @fn_str_concat(ptr %t85, ptr @.str590) %t87 = call ptr @fn_emit_bind(ptr %t86) %t88 = call ptr @fn_val(ptr %t87, ptr @.str591) store ptr %t88, ptr %retval br label %ret ifend10: %t89 = load ptr, ptr %t0 %t90 = call i32 @fn_str_eq(ptr %t89, ptr @.str592) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then14, label %ifend16 then14: %t92 = load ptr, ptr %t1 %t93 = call ptr @fn_arg_code(ptr %t92, i32 0) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t1 %t96 = call ptr @fn_arg_code(ptr %t95, i32 1) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t1 %t99 = call ptr @fn_arg_code(ptr %t98, i32 2) store ptr %t99, ptr %t100 %t101 = load ptr, ptr %t97 %t102 = call ptr @fn_str_concat(ptr @.str593, ptr %t101) %t103 = call ptr @fn_str_concat(ptr %t102, ptr @.str594) %t104 = call ptr @fn_emit_bind(ptr %t103) store ptr %t104, ptr %t105 %t106 = load ptr, ptr %t94 %t107 = call ptr @fn_str_concat(ptr @.str595, ptr %t106) %t108 = call ptr @fn_str_concat(ptr %t107, ptr @.str596) %t109 = load ptr, ptr %t105 %t110 = call ptr @fn_str_concat(ptr %t108, ptr %t109) %t111 = call ptr @fn_str_concat(ptr %t110, ptr @.str597) %t112 = load ptr, ptr %t100 %t113 = call ptr @fn_str_concat(ptr %t111, ptr %t112) %t114 = call ptr @fn_str_concat(ptr %t113, ptr @.str598) %t115 = call ptr @fn_emit_bind(ptr %t114) %t116 = call ptr @fn_val(ptr %t115, ptr @.str599) store ptr %t116, ptr %retval br label %ret ifend16: %t117 = load ptr, ptr %t0 %t118 = call i32 @fn_str_eq(ptr %t117, ptr @.str600) %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then17, label %ifend19 then17: %t120 = load ptr, ptr %t1 %t121 = call ptr @fn_arg_code(ptr %t120, i32 0) store ptr %t121, ptr %t122 %t123 = load ptr, ptr %t122 %t124 = call ptr @fn_str_concat(ptr @.str601, ptr %t123) %t125 = call ptr @fn_str_concat(ptr %t124, ptr @.str602) %t126 = call ptr @fn_emit_bind(ptr %t125) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t127 %t129 = call ptr @fn_str_concat(ptr @.str603, ptr %t128) %t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str604) %t131 = call ptr @fn_emit_bind(ptr %t130) %t132 = call ptr @fn_val(ptr %t131, ptr @.str605) store ptr %t132, ptr %retval br label %ret ifend19: %t133 = load ptr, ptr %t0 %t134 = call i32 @fn_str_eq(ptr %t133, ptr @.str606) %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then20, label %ifend22 then20: %t136 = load ptr, ptr %t1 %t137 = call ptr @fn_arg_code(ptr %t136, i32 0) store ptr %t137, ptr %t138 call void @fn_emit(ptr @.str607) %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str608) %t140 = call ptr @fn_val(ptr @.str609, ptr @.str610) store ptr %t140, ptr %retval br label %ret ifend22: %t141 = load ptr, ptr %t0 %t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str611) %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %then23, label %ifend25 then23: %t144 = call ptr @fn_emit_bind(ptr @.str612) %t145 = call ptr @fn_val(ptr %t144, ptr @.str613) store ptr %t145, ptr %retval br label %ret ifend25: %t146 = load ptr, ptr %t0 %t147 = call i32 @fn_str_eq(ptr %t146, ptr @.str614) %t148 = icmp ne i32 %t147, 0 br i1 %t148, label %then26, label %ifend28 then26: %t149 = load ptr, ptr %t1 %t150 = call ptr @fn_arg_code(ptr %t149, i32 0) store ptr %t150, ptr %t151 %t152 = call ptr @fn_emit_bind(ptr @.str615) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_str_concat(ptr @.str616, ptr %t154) %t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str617) %t157 = load ptr, ptr %t151 %t158 = call ptr @fn_str_concat(ptr %t156, ptr %t157) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t160 %t162 = call ptr @fn_str_concat(ptr @.str618, ptr %t161) %t163 = call ptr @fn_emit_bind(ptr %t162) %t164 = call ptr @fn_val(ptr %t163, ptr @.str619) store ptr %t164, ptr %retval br label %ret ifend28: %t165 = load ptr, ptr %t0 %t166 = call i32 @fn_str_eq(ptr %t165, ptr @.str620) %t167 = icmp ne i32 %t166, 0 br i1 %t167, label %then29, label %ifend31 then29: %t168 = load ptr, ptr %t1 %t169 = call ptr @fn_arg_code(ptr %t168, i32 0) store ptr %t169, ptr %t170 call void @fn_emit(ptr @.str621) %t171 = load ptr, ptr %t170 call void @fn_emit(ptr %t171) call void @fn_emit(ptr @.str622) call void @fn_emit(ptr @.str623) store i32 1, ptr @g_g_term %t172 = call ptr @fn_val(ptr @.str624, ptr @.str625) store ptr %t172, ptr %retval br label %ret ifend31: %t173 = load ptr, ptr %t0 %t174 = call i32 @fn_str_eq(ptr %t173, ptr @.str626) %t175 = icmp ne i32 %t174, 0 br i1 %t175, label %then32, label %ifend34 then32: %t176 = call ptr @fn_emit_bind(ptr @.str627) %t177 = call ptr @fn_val(ptr %t176, ptr @.str628) store ptr %t177, ptr %retval br label %ret ifend34: %t178 = load ptr, ptr %t0 %t179 = call i32 @fn_str_eq(ptr %t178, ptr @.str629) %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then35, label %ifend37 then35: %t181 = call ptr @fn_emit_bind(ptr @.str630) %t182 = call ptr @fn_val(ptr %t181, ptr @.str631) store ptr %t182, ptr %retval br label %ret ifend37: %t183 = load ptr, ptr %t0 %t184 = call i32 @fn_str_eq(ptr %t183, ptr @.str632) %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then38, label %ifend40 then38: %t186 = load ptr, ptr %t1 %t187 = call ptr @fn_arg_code(ptr %t186, i32 0) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t188 %t190 = call ptr @fn_str_concat(ptr @.str633, ptr %t189) %t191 = call ptr @fn_str_concat(ptr %t190, ptr @.str634) %t192 = call ptr @fn_emit_bind(ptr %t191) %t193 = call ptr @fn_val(ptr %t192, ptr @.str635) store ptr %t193, ptr %retval br label %ret ifend40: %t194 = load ptr, ptr %t0 %t195 = call i32 @fn_str_eq(ptr %t194, ptr @.str636) %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %then41, label %ifend43 then41: %t197 = load ptr, ptr %t1 %t198 = call ptr @fn_arg_code(ptr %t197, i32 0) store ptr %t198, ptr %t199 %t200 = load ptr, ptr %t199 %t201 = call ptr @fn_str_concat(ptr @.str637, ptr %t200) %t202 = call ptr @fn_str_concat(ptr %t201, ptr @.str638) %t203 = call ptr @fn_emit_bind(ptr %t202) %t204 = call ptr @fn_val(ptr %t203, ptr @.str639) store ptr %t204, ptr %retval br label %ret ifend43: store i32 0, ptr @g_g_intrin_ok %t205 = call ptr @fn_val(ptr @.str640, ptr @.str641) store ptr %t205, ptr %retval br label %ret ret: %t206 = load ptr, ptr %retval ret ptr %t206 } 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 store ptr %arg_name, ptr %t0 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str642) %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 @fn_str_eq(ptr %t6, ptr @.str643) %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 @fn_str_eq(ptr %t13, ptr @.str644) %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 @fn_str_eq(ptr %t17, ptr @.str645) %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 @fn_str_eq(ptr %t24, ptr @.str646) %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 @fn_str_eq(ptr %t28, ptr @.str647) %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 @fn_str_eq(ptr %t35, ptr @.str648) %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 @fn_str_eq(ptr %t39, ptr @.str649) %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 @fn_str_eq(ptr %t47, ptr @.str650) %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 @fn_str_eq(ptr %t51, ptr @.str651) %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 @fn_str_eq(ptr %t58, ptr @.str652) %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 @fn_str_eq(ptr %t65, ptr @.str653) %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_str_eq(ptr %t69, ptr @.str654) %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: store i32 0, ptr %retval br label %ret ret: %t75 = load i32, ptr %retval ret i32 %t75 } define ptr @fn_emit_intrinsic2(ptr %arg_name, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t7 = alloca ptr %t15 = alloca ptr %t18 = alloca ptr %t21 = alloca ptr %t26 = alloca ptr %t36 = alloca ptr %t39 = alloca ptr %t41 = alloca ptr %t63 = alloca ptr %t79 = alloca ptr %t110 = alloca ptr %t113 = alloca ptr %t116 = alloca ptr %t119 = alloca ptr %t130 = alloca ptr %t133 = alloca ptr %t136 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str655) %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 call void @fn_emit(ptr @.str656) %t8 = load ptr, ptr %t7 call void @fn_emit(ptr %t8) call void @fn_emit(ptr @.str657) %t9 = call ptr @fn_val(ptr @.str658, ptr @.str659) store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str660) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: %t13 = load ptr, ptr %t1 %t14 = call ptr @fn_arg_code(ptr %t13, i32 0) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t1 %t17 = call ptr @fn_arg_code(ptr %t16, i32 1) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t1 %t20 = call ptr @fn_arg_code(ptr %t19, i32 2) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call ptr @fn_str_concat(ptr @.str661, ptr %t22) %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str662) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 call void @fn_emit(ptr @.str663) %t27 = load ptr, ptr %t15 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str664) %t28 = load ptr, ptr %t18 call void @fn_emit(ptr %t28) call void @fn_emit(ptr @.str665) %t29 = load ptr, ptr %t26 call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str666) %t30 = call ptr @fn_val(ptr @.str667, ptr @.str668) store ptr %t30, ptr %retval br label %ret ifend5: %t31 = load ptr, ptr %t0 %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str669) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then6, label %ifend8 then6: %t34 = load ptr, ptr %t1 %t35 = call ptr @fn_arg_code(ptr %t34, i32 0) store ptr %t35, ptr %t36 %t37 = load ptr, ptr %t1 %t38 = call ptr @fn_arg_code(ptr %t37, i32 1) store ptr %t38, ptr %t39 %t40 = call ptr @fn_nreg() store ptr %t40, ptr %t41 call void @fn_emit(ptr @.str670) %t42 = load ptr, ptr %t41 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str671) %t43 = load ptr, ptr %t36 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str672) %t44 = load ptr, ptr %t39 call void @fn_emit(ptr %t44) call void @fn_emit(ptr @.str673) %t45 = load ptr, ptr %t41 %t46 = call ptr @fn_val(ptr %t45, ptr @.str674) store ptr %t46, ptr %retval br label %ret ifend8: %t47 = load ptr, ptr %t0 %t48 = call i32 @fn_str_eq(ptr %t47, ptr @.str675) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then9, label %ifend11 then9: %t50 = call ptr @fn_emit_bind(ptr @.str676) %t51 = call ptr @fn_val(ptr %t50, ptr @.str677) store ptr %t51, ptr %retval br label %ret ifend11: %t52 = load ptr, ptr %t0 %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str678) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then12, label %ifend14 then12: %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 ptr, ptr %t59, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_emit_expr(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_val(ptr %t66, ptr @.str679) store ptr %t67, ptr %retval br label %ret ifend14: %t68 = load ptr, ptr %t0 %t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str680) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then15, label %ifend17 then15: %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 ptr, ptr %t75, 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_val(ptr %t82, ptr @.str681) store ptr %t83, ptr %retval br label %ret ifend17: %t84 = load ptr, ptr %t0 %t85 = call i32 @fn_str_eq(ptr %t84, ptr @.str682) %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then18, label %ifend20 then18: %t87 = load i32, ptr @g_g_windowed %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then21, label %ifend23 then21: %t89 = call ptr @fn_val(ptr @.str683, ptr @.str684) store ptr %t89, ptr %retval br label %ret ifend23: %t90 = call ptr @fn_val(ptr @.str685, ptr @.str686) store ptr %t90, ptr %retval br label %ret ifend20: %t91 = load ptr, ptr %t0 %t92 = call i32 @fn_str_eq(ptr %t91, ptr @.str687) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then24, label %ifend26 then24: %t94 = call ptr @fn_val(ptr @.str688, ptr @.str689) store ptr %t94, ptr %retval br label %ret ifend26: %t95 = load ptr, ptr %t0 %t96 = call i32 @fn_str_eq(ptr %t95, ptr @.str690) %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then27, label %ifend29 then27: %t98 = call ptr @fn_emit_bind(ptr @.str691) %t99 = call ptr @fn_val(ptr %t98, ptr @.str692) store ptr %t99, ptr %retval br label %ret ifend29: %t100 = load ptr, ptr %t0 %t101 = call i32 @fn_str_eq(ptr %t100, ptr @.str693) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then30, label %ifend32 then30: %t103 = call ptr @fn_emit_bind(ptr @.str694) %t104 = call ptr @fn_val(ptr %t103, ptr @.str695) store ptr %t104, ptr %retval br label %ret ifend32: %t105 = load ptr, ptr %t0 %t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str696) %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then33, label %ifend35 then33: %t108 = load ptr, ptr %t1 %t109 = call ptr @fn_arg_code(ptr %t108, i32 0) store ptr %t109, ptr %t110 %t111 = load ptr, ptr %t1 %t112 = call ptr @fn_arg_code(ptr %t111, i32 1) store ptr %t112, ptr %t113 %t114 = load ptr, ptr %t1 %t115 = call ptr @fn_arg_code(ptr %t114, i32 2) store ptr %t115, ptr %t116 %t117 = load ptr, ptr %t1 %t118 = call ptr @fn_arg_code(ptr %t117, i32 3) store ptr %t118, ptr %t119 call void @fn_emit(ptr @.str697) %t120 = load ptr, ptr %t110 call void @fn_emit(ptr %t120) call void @fn_emit(ptr @.str698) %t121 = load ptr, ptr %t113 call void @fn_emit(ptr %t121) call void @fn_emit(ptr @.str699) %t122 = load ptr, ptr %t116 call void @fn_emit(ptr %t122) call void @fn_emit(ptr @.str700) %t123 = load ptr, ptr %t119 call void @fn_emit(ptr %t123) call void @fn_emit(ptr @.str701) %t124 = call ptr @fn_val(ptr @.str702, ptr @.str703) store ptr %t124, ptr %retval br label %ret ifend35: %t125 = load ptr, ptr %t0 %t126 = call i32 @fn_str_eq(ptr %t125, ptr @.str704) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then36, label %ifend38 then36: %t128 = load ptr, ptr %t1 %t129 = call ptr @fn_arg_code(ptr %t128, i32 0) store ptr %t129, ptr %t130 %t131 = load ptr, ptr %t1 %t132 = call ptr @fn_arg_code(ptr %t131, i32 1) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t1 %t135 = call ptr @fn_arg_code(ptr %t134, i32 2) store ptr %t135, ptr %t136 call void @fn_emit(ptr @.str705) %t137 = load ptr, ptr %t130 call void @fn_emit(ptr %t137) call void @fn_emit(ptr @.str706) %t138 = load ptr, ptr %t133 call void @fn_emit(ptr %t138) call void @fn_emit(ptr @.str707) %t139 = load ptr, ptr %t136 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str708) %t140 = call ptr @fn_val(ptr @.str709, ptr @.str710) store ptr %t140, ptr %retval br label %ret ifend38: %t141 = load ptr, ptr %t0 %t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str711) %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %then39, label %ifend41 then39: call void @fn_emit(ptr @.str712) %t144 = call ptr @fn_val(ptr @.str713, ptr @.str714) store ptr %t144, ptr %retval br label %ret ifend41: %t145 = call ptr @fn_val(ptr @.str715, ptr @.str716) store ptr %t145, ptr %retval br label %ret ret: %t146 = load ptr, ptr %retval ret ptr %t146 } 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 @fn_str_eq(ptr %t4, ptr @.str717) %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 @fn_str_eq(ptr %t8, ptr @.str718) %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 @fn_str_eq(ptr %t15, ptr @.str719) %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 @fn_str_eq(ptr %t22, ptr @.str720) %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 %t13 = alloca ptr %t20 = alloca ptr %t26 = alloca ptr %t42 = alloca i32 %t61 = alloca ptr %t70 = alloca ptr %t71 = alloca ptr %t88 = alloca ptr %t114 = alloca ptr %t123 = alloca ptr %t132 = alloca ptr %t143 = alloca ptr %t157 = alloca ptr %t166 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str721) %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 ptr, ptr %t9, 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 = call ptr @fn_str_concat(ptr @.str722, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str723) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t13 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_str_concat(ptr @.str724, ptr %t23) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t20 %t28 = call ptr @fn_str_concat(ptr @.str725, ptr %t27) %t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str726) %t30 = load ptr, ptr %t26 %t31 = call ptr @fn_str_concat(ptr %t29, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str727) %t33 = load ptr, ptr %t13 %t34 = getelementptr inbounds %Cmp_Val, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_str_concat(ptr %t32, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) %t38 = load ptr, ptr %t13 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 1 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_val(ptr %t37, ptr %t40) store ptr %t41, ptr %retval br label %ret ifend2: %t43 = load ptr, ptr %t0 %t44 = call i32 @fn_str_eq(ptr %t43, ptr @.str728) %t45 = icmp ne i32 %t44, 0 %t46 = zext i1 %t45 to i32 store i32 %t46, ptr %t42 br i1 %t45, label %scend4, label %sc3 sc3: %t47 = load ptr, ptr %t0 %t48 = call i32 @fn_str_eq(ptr %t47, ptr @.str729) %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t42 br label %scend4 scend4: %t51 = load i32, ptr %t42 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then5, label %ifend7 then5: %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 ptr, ptr %t57, i32 0 %t59 = load ptr, ptr %t58 %t60 = call ptr @fn_emit_expr(ptr %t59) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t1 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 7 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds ptr, ptr %t66, i32 1 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_emit_expr(ptr %t68) store ptr %t69, ptr %t70 store ptr @.str730, ptr %t71 %t72 = load ptr, ptr %t0 %t73 = call i32 @fn_str_eq(ptr %t72, ptr @.str731) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then8, label %ifend10 then8: store ptr @.str732, ptr %t71 br label %ifend10 ifend10: %t75 = load ptr, ptr %t71 %t76 = call ptr @fn_str_concat(ptr @.str733, ptr %t75) %t77 = call ptr @fn_str_concat(ptr %t76, ptr @.str734) %t78 = load ptr, ptr %t61 %t79 = getelementptr inbounds %Cmp_Val, ptr %t78, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = call ptr @fn_str_concat(ptr %t77, ptr %t80) %t82 = call ptr @fn_str_concat(ptr %t81, ptr @.str735) %t83 = load ptr, ptr %t70 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_str_concat(ptr %t82, ptr %t85) %t87 = call ptr @fn_emit_bind(ptr %t86) store ptr %t87, ptr %t88 %t89 = load ptr, ptr %t88 %t90 = call ptr @fn_str_concat(ptr @.str736, ptr %t89) %t91 = call ptr @fn_str_concat(ptr %t90, ptr @.str737) %t92 = load ptr, ptr %t61 %t93 = getelementptr inbounds %Cmp_Val, ptr %t92, i32 0, i32 0 %t94 = load ptr, ptr %t93 %t95 = call ptr @fn_str_concat(ptr %t91, ptr %t94) %t96 = call ptr @fn_str_concat(ptr %t95, ptr @.str738) %t97 = load ptr, ptr %t70 %t98 = getelementptr inbounds %Cmp_Val, ptr %t97, i32 0, i32 0 %t99 = load ptr, ptr %t98 %t100 = call ptr @fn_str_concat(ptr %t96, ptr %t99) %t101 = call ptr @fn_emit_bind(ptr %t100) %t102 = load ptr, ptr %t61 %t103 = getelementptr inbounds %Cmp_Val, ptr %t102, i32 0, i32 1 %t104 = load ptr, ptr %t103 %t105 = call ptr @fn_val(ptr %t101, ptr %t104) store ptr %t105, ptr %retval br label %ret ifend7: %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 ptr, ptr %t110, i32 0 %t112 = load ptr, ptr %t111 %t113 = call ptr @fn_emit_expr(ptr %t112) store ptr %t113, ptr %t114 %t115 = load ptr, ptr %t1 %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 0 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds ptr, ptr %t119, i32 1 %t121 = load ptr, ptr %t120 %t122 = call ptr @fn_emit_expr(ptr %t121) store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t1 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 7 %t126 = load ptr, ptr %t125 %t127 = getelementptr inbounds %LSlice, ptr %t126, i32 0, i32 0 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds ptr, ptr %t128, i32 2 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_emit_expr(ptr %t130) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t114 %t134 = getelementptr inbounds %Cmp_Val, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 %t136 = call ptr @fn_str_concat(ptr @.str739, ptr %t135) %t137 = call ptr @fn_str_concat(ptr %t136, ptr @.str740) %t138 = load ptr, ptr %t132 %t139 = getelementptr inbounds %Cmp_Val, ptr %t138, i32 0, i32 0 %t140 = load ptr, ptr %t139 %t141 = call ptr @fn_str_concat(ptr %t137, ptr %t140) %t142 = call ptr @fn_emit_bind(ptr %t141) store ptr %t142, ptr %t143 %t144 = load ptr, ptr %t143 %t145 = call ptr @fn_str_concat(ptr @.str741, ptr %t144) %t146 = call ptr @fn_str_concat(ptr %t145, ptr @.str742) %t147 = load ptr, ptr %t114 %t148 = getelementptr inbounds %Cmp_Val, ptr %t147, i32 0, i32 0 %t149 = load ptr, ptr %t148 %t150 = call ptr @fn_str_concat(ptr %t146, ptr %t149) %t151 = call ptr @fn_str_concat(ptr %t150, ptr @.str743) %t152 = load ptr, ptr %t132 %t153 = getelementptr inbounds %Cmp_Val, ptr %t152, i32 0, i32 0 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_str_concat(ptr %t151, ptr %t154) %t156 = call ptr @fn_emit_bind(ptr %t155) store ptr %t156, ptr %t157 %t158 = load ptr, ptr %t123 %t159 = getelementptr inbounds %Cmp_Val, ptr %t158, i32 0, i32 0 %t160 = load ptr, ptr %t159 %t161 = call ptr @fn_str_concat(ptr @.str744, ptr %t160) %t162 = call ptr @fn_str_concat(ptr %t161, ptr @.str745) %t163 = load ptr, ptr %t157 %t164 = call ptr @fn_str_concat(ptr %t162, ptr %t163) %t165 = call ptr @fn_emit_bind(ptr %t164) store ptr %t165, ptr %t166 %t167 = load ptr, ptr %t166 %t168 = call ptr @fn_str_concat(ptr @.str746, ptr %t167) %t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str747) %t170 = load ptr, ptr %t123 %t171 = getelementptr inbounds %Cmp_Val, ptr %t170, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = call ptr @fn_str_concat(ptr %t169, ptr %t172) %t174 = call ptr @fn_str_concat(ptr %t173, ptr @.str748) %t175 = load ptr, ptr %t157 %t176 = call ptr @fn_str_concat(ptr %t174, ptr %t175) %t177 = call ptr @fn_emit_bind(ptr %t176) %t178 = load ptr, ptr %t114 %t179 = getelementptr inbounds %Cmp_Val, ptr %t178, i32 0, i32 1 %t180 = load ptr, ptr %t179 %t181 = call ptr @fn_val(ptr %t177, ptr %t180) store ptr %t181, ptr %retval br label %ret ret: %t182 = load ptr, ptr %retval ret ptr %t182 } 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 @fn_str_concat(ptr @.str749, ptr %t2) %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str750) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t1 %t8 = call ptr @fn_str_concat(ptr @.str751, ptr %t7) %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str752) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t6 %t13 = call ptr @fn_str_concat(ptr @.str753, ptr %t12) %t14 = call ptr @fn_str_concat(ptr %t13, ptr @.str754) %t15 = load ptr, ptr %t11 %t16 = call ptr @fn_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 @fn_str_concat(ptr @.str755, ptr %t19) %t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str756) %t22 = call ptr @fn_emit_bind(ptr %t21) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_str_concat(ptr @.str757, ptr %t24) %t26 = call ptr @fn_str_concat(ptr %t25, ptr @.str758) %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 @fn_str_concat(ptr @.str759, ptr %t2) %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str760) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_str_concat(ptr @.str761, ptr %t7) %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str762) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t1 %t13 = call ptr @fn_str_concat(ptr @.str763, ptr %t12) %t14 = call ptr @fn_str_concat(ptr %t13, ptr @.str764) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t11 %t18 = call ptr @fn_str_concat(ptr @.str765, ptr %t17) %t19 = call ptr @fn_str_concat(ptr %t18, ptr @.str766) %t20 = load ptr, ptr %t16 %t21 = call ptr @fn_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 @fn_str_concat(ptr @.str767, ptr %t24) %t26 = call ptr @fn_str_concat(ptr %t25, ptr @.str768) %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 @fn_str_concat(ptr @.str769, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str770) %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_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 @fn_str_concat(ptr @.str771, ptr %t14) %t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str772) %t17 = load ptr, ptr %t13 %t18 = call ptr @fn_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 @fn_str_concat(ptr @.str773, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str774) %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_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 @fn_str_concat(ptr @.str775, ptr %t10) %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str776) %t13 = load ptr, ptr %t0 %t14 = call ptr @fn_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 @fn_str_eq(ptr %t4, ptr @.str777) %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 @fn_str_eq(ptr %t8, ptr @.str778) %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 @fn_str_eq(ptr %t15, ptr @.str779) %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 @fn_str_eq(ptr %t22, ptr @.str780) %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 @fn_str_eq(ptr %t31, ptr @.str781) %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 @fn_str_eq(ptr %t35, ptr @.str782) %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 @fn_str_eq(ptr %t42, ptr @.str783) %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 @fn_str_eq(ptr %t49, ptr @.str784) %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 @fn_str_eq(ptr %t57, ptr @.str785) %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 @fn_str_eq(ptr %t61, ptr @.str786) %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 @fn_str_eq(ptr %t68, ptr @.str787) %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 @fn_str_eq(ptr %t78, ptr @.str788) %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 @fn_str_eq(ptr %t82, ptr @.str789) %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 @fn_str_eq(ptr %t89, ptr @.str790) %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 @fn_str_eq(ptr %t96, ptr @.str791) %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 @fn_str_eq(ptr %t103, ptr @.str792) %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 @fn_str_eq(ptr %t111, ptr @.str793) %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 @fn_str_eq(ptr %t115, ptr @.str794) %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 @fn_str_eq(ptr %t122, ptr @.str795) %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 @fn_str_eq(ptr %t131, ptr @.str796) %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 @fn_str_eq(ptr %t135, ptr @.str797) %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 @fn_str_eq(ptr %t142, ptr @.str798) %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 @fn_str_eq(ptr %t149, ptr @.str799) %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 @fn_str_eq(ptr %t158, ptr @.str800) %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 @fn_str_eq(ptr %t162, ptr @.str801) %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 @fn_str_eq(ptr %t169, ptr @.str802) %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 @fn_str_eq(ptr %t176, ptr @.str803) %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 @fn_str_eq(ptr %t183, ptr @.str804) %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 @fn_str_eq(ptr %t187, ptr @.str805) %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 @fn_str_eq(ptr %t195, ptr @.str806) %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 @fn_str_eq(ptr %t199, ptr @.str807) %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 @fn_str_eq(ptr %t206, ptr @.str808) %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_emit_math_ns(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 %t43 = alloca ptr %t50 = alloca ptr %t57 = alloca ptr %t62 = alloca ptr %t81 = alloca ptr %t100 = alloca ptr %t107 = alloca ptr %t124 = alloca ptr %t131 = alloca ptr %t148 = alloca ptr %t157 = alloca ptr %t166 = alloca ptr %t189 = alloca ptr %t198 = alloca ptr %t207 = alloca ptr %t230 = alloca ptr %t249 = alloca ptr %t268 = alloca ptr %t275 = alloca ptr %t292 = alloca ptr %t299 = alloca ptr %t306 = alloca ptr %t311 = alloca ptr %t327 = alloca ptr %t336 = alloca ptr %t360 = alloca ptr %t368 = alloca ptr %t372 = alloca ptr %t377 = alloca ptr %t399 = alloca ptr %t407 = alloca ptr %t411 = alloca ptr %t416 = alloca ptr %t438 = alloca ptr %t447 = alloca ptr %t455 = alloca ptr %t463 = alloca ptr %t470 = alloca ptr %t487 = alloca ptr %t496 = alloca ptr %t505 = alloca ptr %t514 = alloca ptr %t525 = alloca ptr %t536 = alloca ptr %t540 = alloca ptr %t544 = alloca ptr %t563 = alloca ptr %t572 = alloca ptr %t581 = alloca ptr %t590 = alloca ptr %t601 = alloca ptr %t612 = alloca ptr %t616 = alloca ptr %t620 = alloca ptr %t627 = alloca ptr %t644 = alloca ptr %t649 = alloca ptr %t666 = alloca ptr %t673 = alloca ptr %t688 = alloca ptr %t697 = alloca ptr %t704 = alloca ptr %t710 = alloca ptr %t727 = alloca ptr %t744 = alloca ptr %t761 = alloca ptr %t770 = alloca ptr %t781 = alloca ptr %t790 = alloca ptr %t811 = alloca ptr %t820 = alloca ptr %t829 = alloca ptr %t840 = alloca ptr %t851 = alloca ptr %t858 = alloca ptr %t865 = alloca ptr %t872 = alloca ptr %t893 = alloca ptr %t902 = alloca ptr %t909 = alloca ptr %t918 = alloca ptr %t925 = alloca ptr %t932 = alloca ptr %t941 = alloca ptr %t945 = alloca ptr %t950 = alloca ptr %t960 = alloca ptr %t981 = alloca ptr %t990 = alloca ptr %t998 = alloca ptr %t1003 = alloca ptr %t1008 = alloca ptr %t1029 = alloca ptr %t1038 = alloca ptr %t1047 = alloca ptr %t1058 = alloca ptr %t1062 = alloca ptr %t1067 = alloca ptr %t1077 = alloca ptr %t1082 = alloca ptr %t1087 = alloca ptr %t1092 = alloca ptr %t1099 = alloca ptr %t1108 = alloca ptr %t1117 = alloca ptr %t1126 = alloca ptr %t1150 = alloca ptr %t1159 = alloca ptr %t1168 = alloca ptr %t1179 = alloca ptr %t1184 = alloca ptr %t1191 = alloca ptr %t1196 = alloca ptr %t1203 = alloca ptr %t1208 = alloca ptr %t1212 = alloca ptr %t1216 = alloca ptr %t1229 = alloca ptr %t1238 = alloca ptr %t1247 = alloca ptr %t1256 = alloca ptr %t1265 = alloca ptr %t1276 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t5 = load ptr, ptr %t0 %t6 = call i32 @fn_str_eq(ptr %t5, ptr @.str809) %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 @fn_str_eq(ptr %t9, ptr @.str810) %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 @fn_str_eq(ptr %t16, ptr @.str811) %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 @fn_str_eq(ptr %t23, ptr @.str812) %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(ptr %t29, ptr %t30) store ptr %t31, ptr %retval br label %ret ifend8: %t32 = load ptr, ptr %t0 %t33 = call i32 @fn_str_eq(ptr %t32, ptr @.str813) %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 ptr, ptr %t39, i32 0 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_emit_expr(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Val, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_str_concat(ptr @.str814, ptr %t46) %t48 = call ptr @fn_str_concat(ptr %t47, ptr @.str815) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t43 %t52 = getelementptr inbounds %Cmp_Val, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_str_concat(ptr @.str816, ptr %t53) %t55 = call ptr @fn_str_concat(ptr %t54, ptr @.str817) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t57 %t59 = call ptr @fn_str_concat(ptr @.str818, ptr %t58) %t60 = call ptr @fn_str_concat(ptr %t59, ptr @.str819) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t50 %t64 = call ptr @fn_str_concat(ptr @.str820, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str821) %t66 = load ptr, ptr %t62 %t67 = call ptr @fn_str_concat(ptr %t65, ptr %t66) %t68 = call ptr @fn_emit_bind(ptr %t67) %t69 = call ptr @fn_val(ptr %t68, ptr @.str822) store ptr %t69, ptr %retval br label %ret ifend11: %t70 = load ptr, ptr %t0 %t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str823) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then12, label %ifend14 then12: %t73 = load ptr, ptr %t1 %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 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds ptr, ptr %t77, 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 @fn_str_concat(ptr @.str824, ptr %t84) %t86 = call ptr @fn_str_concat(ptr %t85, ptr @.str825) %t87 = call ptr @fn_emit_bind(ptr %t86) %t88 = call ptr @fn_val(ptr %t87, ptr @.str826) store ptr %t88, ptr %retval br label %ret ifend14: %t89 = load ptr, ptr %t0 %t90 = call i32 @fn_str_eq(ptr %t89, ptr @.str827) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then15, label %ifend17 then15: %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 ptr, ptr %t96, i32 0 %t98 = load ptr, ptr %t97 %t99 = call ptr @fn_emit_expr(ptr %t98) store ptr %t99, ptr %t100 %t101 = load ptr, ptr %t100 %t102 = getelementptr inbounds %Cmp_Val, ptr %t101, i32 0, i32 0 %t103 = load ptr, ptr %t102 %t104 = call ptr @fn_str_concat(ptr @.str828, ptr %t103) %t105 = call ptr @fn_str_concat(ptr %t104, ptr @.str829) %t106 = call ptr @fn_emit_bind(ptr %t105) store ptr %t106, ptr %t107 %t108 = load ptr, ptr %t107 %t109 = call ptr @fn_str_concat(ptr @.str830, ptr %t108) %t110 = call ptr @fn_str_concat(ptr %t109, ptr @.str831) %t111 = call ptr @fn_emit_bind(ptr %t110) %t112 = call ptr @fn_val(ptr %t111, ptr @.str832) store ptr %t112, ptr %retval br label %ret ifend17: %t113 = load ptr, ptr %t0 %t114 = call i32 @fn_str_eq(ptr %t113, ptr @.str833) %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then18, label %ifend20 then18: %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 ptr, ptr %t120, i32 0 %t122 = load ptr, ptr %t121 %t123 = call ptr @fn_emit_expr(ptr %t122) store ptr %t123, ptr %t124 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %Cmp_Val, ptr %t125, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = call ptr @fn_str_concat(ptr @.str834, ptr %t127) %t129 = call ptr @fn_str_concat(ptr %t128, ptr @.str835) %t130 = call ptr @fn_emit_bind(ptr %t129) store ptr %t130, ptr %t131 %t132 = load ptr, ptr %t131 %t133 = call ptr @fn_str_concat(ptr @.str836, ptr %t132) %t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str837) %t135 = call ptr @fn_emit_bind(ptr %t134) %t136 = call ptr @fn_val(ptr %t135, ptr @.str838) store ptr %t136, ptr %retval br label %ret ifend20: %t137 = load ptr, ptr %t0 %t138 = call i32 @fn_str_eq(ptr %t137, ptr @.str839) %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then21, label %ifend23 then21: %t140 = load ptr, ptr %t1 %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 ptr, ptr %t144, i32 0 %t146 = load ptr, ptr %t145 %t147 = call ptr @fn_emit_expr(ptr %t146) store ptr %t147, ptr %t148 %t149 = load ptr, ptr %t1 %t150 = getelementptr inbounds %Cmp_Node, ptr %t149, i32 0, i32 7 %t151 = load ptr, ptr %t150 %t152 = getelementptr inbounds %LSlice, ptr %t151, i32 0, i32 0 %t153 = load ptr, ptr %t152 %t154 = getelementptr inbounds ptr, ptr %t153, i32 1 %t155 = load ptr, ptr %t154 %t156 = call ptr @fn_emit_expr(ptr %t155) store ptr %t156, ptr %t157 %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 ptr, ptr %t162, i32 2 %t164 = load ptr, ptr %t163 %t165 = call ptr @fn_emit_expr(ptr %t164) store ptr %t165, ptr %t166 %t167 = load ptr, ptr %t148 %t168 = getelementptr inbounds %Cmp_Val, ptr %t167, i32 0, i32 0 %t169 = load ptr, ptr %t168 %t170 = load ptr, ptr %t157 %t171 = getelementptr inbounds %Cmp_Val, ptr %t170, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = load ptr, ptr %t166 %t174 = getelementptr inbounds %Cmp_Val, ptr %t173, i32 0, i32 0 %t175 = load ptr, ptr %t174 %t176 = call ptr @fn_fx_lerp_code(ptr %t169, ptr %t172, ptr %t175) %t177 = call ptr @fn_val(ptr %t176, ptr @.str840) store ptr %t177, ptr %retval br label %ret ifend23: %t178 = load ptr, ptr %t0 %t179 = call i32 @fn_str_eq(ptr %t178, ptr @.str841) %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then24, label %ifend26 then24: %t181 = load ptr, ptr %t1 %t182 = getelementptr inbounds %Cmp_Node, ptr %t181, i32 0, i32 7 %t183 = load ptr, ptr %t182 %t184 = getelementptr inbounds %LSlice, ptr %t183, i32 0, i32 0 %t185 = load ptr, ptr %t184 %t186 = getelementptr inbounds ptr, ptr %t185, i32 0 %t187 = load ptr, ptr %t186 %t188 = call ptr @fn_emit_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 ptr, ptr %t194, i32 1 %t196 = load ptr, ptr %t195 %t197 = call ptr @fn_emit_expr(ptr %t196) store ptr %t197, ptr %t198 %t199 = load ptr, ptr %t1 %t200 = getelementptr inbounds %Cmp_Node, ptr %t199, i32 0, i32 7 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 0 %t203 = load ptr, ptr %t202 %t204 = getelementptr inbounds ptr, ptr %t203, i32 2 %t205 = load ptr, ptr %t204 %t206 = call ptr @fn_emit_expr(ptr %t205) store ptr %t206, ptr %t207 %t208 = load ptr, ptr %t189 %t209 = getelementptr inbounds %Cmp_Val, ptr %t208, i32 0, i32 0 %t210 = load ptr, ptr %t209 %t211 = load ptr, ptr %t198 %t212 = getelementptr inbounds %Cmp_Val, ptr %t211, i32 0, i32 0 %t213 = load ptr, ptr %t212 %t214 = load ptr, ptr %t207 %t215 = getelementptr inbounds %Cmp_Val, ptr %t214, i32 0, i32 0 %t216 = load ptr, ptr %t215 %t217 = call ptr @fn_fx_inv_lerp_code(ptr %t210, ptr %t213, ptr %t216) %t218 = call ptr @fn_val(ptr %t217, ptr @.str842) store ptr %t218, ptr %retval br label %ret ifend26: %t219 = load ptr, ptr %t0 %t220 = call i32 @fn_str_eq(ptr %t219, ptr @.str843) %t221 = icmp ne i32 %t220, 0 br i1 %t221, label %then27, label %ifend29 then27: store i32 1, ptr @g_g_uses_mathrt %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 ptr, ptr %t226, i32 0 %t228 = load ptr, ptr %t227 %t229 = call ptr @fn_emit_expr(ptr %t228) store ptr %t229, ptr %t230 %t231 = load ptr, ptr %t230 %t232 = getelementptr inbounds %Cmp_Val, ptr %t231, i32 0, i32 0 %t233 = load ptr, ptr %t232 %t234 = call ptr @fn_str_concat(ptr @.str844, ptr %t233) %t235 = call ptr @fn_str_concat(ptr %t234, ptr @.str845) %t236 = call ptr @fn_emit_bind(ptr %t235) %t237 = call ptr @fn_val(ptr %t236, ptr @.str846) store ptr %t237, ptr %retval br label %ret ifend29: %t238 = load ptr, ptr %t0 %t239 = call i32 @fn_str_eq(ptr %t238, ptr @.str847) %t240 = icmp ne i32 %t239, 0 br i1 %t240, label %then30, label %ifend32 then30: store i32 1, ptr @g_g_uses_mathrt %t241 = load ptr, ptr %t1 %t242 = getelementptr inbounds %Cmp_Node, ptr %t241, i32 0, i32 7 %t243 = load ptr, ptr %t242 %t244 = getelementptr inbounds %LSlice, ptr %t243, i32 0, i32 0 %t245 = load ptr, ptr %t244 %t246 = getelementptr inbounds ptr, ptr %t245, i32 0 %t247 = load ptr, ptr %t246 %t248 = call ptr @fn_emit_expr(ptr %t247) store ptr %t248, ptr %t249 %t250 = load ptr, ptr %t249 %t251 = getelementptr inbounds %Cmp_Val, ptr %t250, i32 0, i32 0 %t252 = load ptr, ptr %t251 %t253 = call ptr @fn_str_concat(ptr @.str848, ptr %t252) %t254 = call ptr @fn_str_concat(ptr %t253, ptr @.str849) %t255 = call ptr @fn_emit_bind(ptr %t254) %t256 = call ptr @fn_val(ptr %t255, ptr @.str850) store ptr %t256, ptr %retval br label %ret ifend32: %t257 = load ptr, ptr %t0 %t258 = call i32 @fn_str_eq(ptr %t257, ptr @.str851) %t259 = icmp ne i32 %t258, 0 br i1 %t259, label %then33, label %ifend35 then33: store i32 1, ptr @g_g_uses_mathrt %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 ptr, ptr %t264, i32 0 %t266 = load ptr, ptr %t265 %t267 = call ptr @fn_emit_expr(ptr %t266) store ptr %t267, ptr %t268 %t269 = load ptr, ptr %t268 %t270 = getelementptr inbounds %Cmp_Val, ptr %t269, i32 0, i32 0 %t271 = load ptr, ptr %t270 %t272 = call ptr @fn_str_concat(ptr @.str852, ptr %t271) %t273 = call ptr @fn_str_concat(ptr %t272, ptr @.str853) %t274 = call ptr @fn_emit_bind(ptr %t273) store ptr %t274, ptr %t275 %t276 = load ptr, ptr %t275 %t277 = call ptr @fn_str_concat(ptr @.str854, ptr %t276) %t278 = call ptr @fn_str_concat(ptr %t277, ptr @.str855) %t279 = call ptr @fn_emit_bind(ptr %t278) %t280 = call ptr @fn_val(ptr %t279, ptr @.str856) store ptr %t280, ptr %retval br label %ret ifend35: %t281 = load ptr, ptr %t0 %t282 = call i32 @fn_str_eq(ptr %t281, ptr @.str857) %t283 = icmp ne i32 %t282, 0 br i1 %t283, label %then36, label %ifend38 then36: store i32 1, ptr @g_g_uses_mathrt %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 ptr, ptr %t288, i32 0 %t290 = load ptr, ptr %t289 %t291 = call ptr @fn_emit_expr(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t292 %t294 = getelementptr inbounds %Cmp_Val, ptr %t293, i32 0, i32 0 %t295 = load ptr, ptr %t294 %t296 = call ptr @fn_str_concat(ptr @.str858, ptr %t295) %t297 = call ptr @fn_str_concat(ptr %t296, ptr @.str859) %t298 = call ptr @fn_emit_bind(ptr %t297) store ptr %t298, ptr %t299 %t300 = load ptr, ptr %t292 %t301 = getelementptr inbounds %Cmp_Val, ptr %t300, i32 0, i32 0 %t302 = load ptr, ptr %t301 %t303 = call ptr @fn_str_concat(ptr @.str860, ptr %t302) %t304 = call ptr @fn_str_concat(ptr %t303, ptr @.str861) %t305 = call ptr @fn_emit_bind(ptr %t304) store ptr %t305, ptr %t306 %t307 = load ptr, ptr %t306 %t308 = call ptr @fn_str_concat(ptr @.str862, ptr %t307) %t309 = call ptr @fn_str_concat(ptr %t308, ptr @.str863) %t310 = call ptr @fn_emit_bind(ptr %t309) store ptr %t310, ptr %t311 %t312 = load ptr, ptr %t299 %t313 = load ptr, ptr %t311 %t314 = call ptr @fn_fx_div_code(ptr %t312, ptr %t313) %t315 = call ptr @fn_val(ptr %t314, ptr @.str864) store ptr %t315, ptr %retval br label %ret ifend38: %t316 = load ptr, ptr %t0 %t317 = call i32 @fn_str_eq(ptr %t316, ptr @.str865) %t318 = icmp ne i32 %t317, 0 br i1 %t318, label %then39, label %ifend41 then39: store i32 1, ptr @g_g_uses_mathrt %t319 = load ptr, ptr %t1 %t320 = getelementptr inbounds %Cmp_Node, ptr %t319, i32 0, i32 7 %t321 = load ptr, ptr %t320 %t322 = getelementptr inbounds %LSlice, ptr %t321, i32 0, i32 0 %t323 = load ptr, ptr %t322 %t324 = getelementptr inbounds ptr, ptr %t323, i32 0 %t325 = load ptr, ptr %t324 %t326 = call ptr @fn_emit_expr(ptr %t325) store ptr %t326, ptr %t327 %t328 = load ptr, ptr %t1 %t329 = getelementptr inbounds %Cmp_Node, ptr %t328, i32 0, i32 7 %t330 = load ptr, ptr %t329 %t331 = getelementptr inbounds %LSlice, ptr %t330, i32 0, i32 0 %t332 = load ptr, ptr %t331 %t333 = getelementptr inbounds ptr, ptr %t332, i32 1 %t334 = load ptr, ptr %t333 %t335 = call ptr @fn_emit_expr(ptr %t334) store ptr %t335, ptr %t336 %t337 = load ptr, ptr %t327 %t338 = getelementptr inbounds %Cmp_Val, ptr %t337, i32 0, i32 0 %t339 = load ptr, ptr %t338 %t340 = call ptr @fn_str_concat(ptr @.str866, ptr %t339) %t341 = call ptr @fn_str_concat(ptr %t340, ptr @.str867) %t342 = load ptr, ptr %t336 %t343 = getelementptr inbounds %Cmp_Val, ptr %t342, i32 0, i32 0 %t344 = load ptr, ptr %t343 %t345 = call ptr @fn_str_concat(ptr %t341, ptr %t344) %t346 = call ptr @fn_str_concat(ptr %t345, ptr @.str868) %t347 = call ptr @fn_emit_bind(ptr %t346) %t348 = call ptr @fn_val(ptr %t347, ptr @.str869) store ptr %t348, ptr %retval br label %ret ifend41: %t349 = load ptr, ptr %t0 %t350 = call i32 @fn_str_eq(ptr %t349, ptr @.str870) %t351 = icmp ne i32 %t350, 0 br i1 %t351, label %then42, label %ifend44 then42: store i32 1, ptr @g_g_uses_mathrt %t352 = load ptr, ptr %t1 %t353 = getelementptr inbounds %Cmp_Node, ptr %t352, i32 0, i32 7 %t354 = load ptr, ptr %t353 %t355 = getelementptr inbounds %LSlice, ptr %t354, i32 0, i32 0 %t356 = load ptr, ptr %t355 %t357 = getelementptr inbounds ptr, ptr %t356, i32 0 %t358 = load ptr, ptr %t357 %t359 = call ptr @fn_emit_expr(ptr %t358) store ptr %t359, ptr %t360 %t361 = load ptr, ptr %t360 %t362 = getelementptr inbounds %Cmp_Val, ptr %t361, i32 0, i32 0 %t363 = load ptr, ptr %t362 %t364 = load ptr, ptr %t360 %t365 = getelementptr inbounds %Cmp_Val, ptr %t364, i32 0, i32 0 %t366 = load ptr, ptr %t365 %t367 = call ptr @fn_fx_mul_code(ptr %t363, ptr %t366) store ptr %t367, ptr %t368 %t369 = load ptr, ptr %t368 %t370 = call ptr @fn_str_concat(ptr @.str871, ptr %t369) %t371 = call ptr @fn_emit_bind(ptr %t370) store ptr %t371, ptr %t372 %t373 = load ptr, ptr %t372 %t374 = call ptr @fn_str_concat(ptr @.str872, ptr %t373) %t375 = call ptr @fn_str_concat(ptr %t374, ptr @.str873) %t376 = call ptr @fn_emit_bind(ptr %t375) store ptr %t376, ptr %t377 %t378 = load ptr, ptr %t360 %t379 = getelementptr inbounds %Cmp_Val, ptr %t378, i32 0, i32 0 %t380 = load ptr, ptr %t379 %t381 = call ptr @fn_str_concat(ptr @.str874, ptr %t380) %t382 = call ptr @fn_str_concat(ptr %t381, ptr @.str875) %t383 = load ptr, ptr %t377 %t384 = call ptr @fn_str_concat(ptr %t382, ptr %t383) %t385 = call ptr @fn_str_concat(ptr %t384, ptr @.str876) %t386 = call ptr @fn_emit_bind(ptr %t385) %t387 = call ptr @fn_val(ptr %t386, ptr @.str877) store ptr %t387, ptr %retval br label %ret ifend44: %t388 = load ptr, ptr %t0 %t389 = call i32 @fn_str_eq(ptr %t388, ptr @.str878) %t390 = icmp ne i32 %t389, 0 br i1 %t390, label %then45, label %ifend47 then45: store i32 1, ptr @g_g_uses_mathrt %t391 = load ptr, ptr %t1 %t392 = getelementptr inbounds %Cmp_Node, ptr %t391, i32 0, i32 7 %t393 = load ptr, ptr %t392 %t394 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 0 %t395 = load ptr, ptr %t394 %t396 = getelementptr inbounds ptr, ptr %t395, i32 0 %t397 = load ptr, ptr %t396 %t398 = call ptr @fn_emit_expr(ptr %t397) store ptr %t398, ptr %t399 %t400 = load ptr, ptr %t399 %t401 = getelementptr inbounds %Cmp_Val, ptr %t400, i32 0, i32 0 %t402 = load ptr, ptr %t401 %t403 = load ptr, ptr %t399 %t404 = getelementptr inbounds %Cmp_Val, ptr %t403, i32 0, i32 0 %t405 = load ptr, ptr %t404 %t406 = call ptr @fn_fx_mul_code(ptr %t402, ptr %t405) store ptr %t406, ptr %t407 %t408 = load ptr, ptr %t407 %t409 = call ptr @fn_str_concat(ptr @.str879, ptr %t408) %t410 = call ptr @fn_emit_bind(ptr %t409) store ptr %t410, ptr %t411 %t412 = load ptr, ptr %t411 %t413 = call ptr @fn_str_concat(ptr @.str880, ptr %t412) %t414 = call ptr @fn_str_concat(ptr %t413, ptr @.str881) %t415 = call ptr @fn_emit_bind(ptr %t414) store ptr %t415, ptr %t416 %t417 = load ptr, ptr %t416 %t418 = call ptr @fn_str_concat(ptr @.str882, ptr %t417) %t419 = call ptr @fn_str_concat(ptr %t418, ptr @.str883) %t420 = load ptr, ptr %t399 %t421 = getelementptr inbounds %Cmp_Val, ptr %t420, i32 0, i32 0 %t422 = load ptr, ptr %t421 %t423 = call ptr @fn_str_concat(ptr %t419, ptr %t422) %t424 = call ptr @fn_str_concat(ptr %t423, ptr @.str884) %t425 = call ptr @fn_emit_bind(ptr %t424) %t426 = call ptr @fn_val(ptr %t425, ptr @.str885) store ptr %t426, ptr %retval br label %ret ifend47: %t427 = load ptr, ptr %t0 %t428 = call i32 @fn_str_eq(ptr %t427, ptr @.str886) %t429 = icmp ne i32 %t428, 0 br i1 %t429, label %then48, label %ifend50 then48: store i32 1, ptr @g_g_uses_mathrt %t430 = load ptr, ptr %t1 %t431 = getelementptr inbounds %Cmp_Node, ptr %t430, i32 0, i32 7 %t432 = load ptr, ptr %t431 %t433 = getelementptr inbounds %LSlice, ptr %t432, i32 0, i32 0 %t434 = load ptr, ptr %t433 %t435 = getelementptr inbounds ptr, ptr %t434, i32 0 %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 ptr, ptr %t443, i32 1 %t445 = load ptr, ptr %t444 %t446 = call ptr @fn_emit_expr(ptr %t445) store ptr %t446, ptr %t447 %t448 = load ptr, ptr %t438 %t449 = getelementptr inbounds %Cmp_Val, ptr %t448, i32 0, i32 0 %t450 = load ptr, ptr %t449 %t451 = load ptr, ptr %t438 %t452 = getelementptr inbounds %Cmp_Val, ptr %t451, i32 0, i32 0 %t453 = load ptr, ptr %t452 %t454 = call ptr @fn_fx_mul_code(ptr %t450, ptr %t453) store ptr %t454, ptr %t455 %t456 = load ptr, ptr %t447 %t457 = getelementptr inbounds %Cmp_Val, ptr %t456, i32 0, i32 0 %t458 = load ptr, ptr %t457 %t459 = load ptr, ptr %t447 %t460 = getelementptr inbounds %Cmp_Val, ptr %t459, i32 0, i32 0 %t461 = load ptr, ptr %t460 %t462 = call ptr @fn_fx_mul_code(ptr %t458, ptr %t461) store ptr %t462, ptr %t463 %t464 = load ptr, ptr %t455 %t465 = call ptr @fn_str_concat(ptr @.str887, ptr %t464) %t466 = call ptr @fn_str_concat(ptr %t465, ptr @.str888) %t467 = load ptr, ptr %t463 %t468 = call ptr @fn_str_concat(ptr %t466, ptr %t467) %t469 = call ptr @fn_emit_bind(ptr %t468) store ptr %t469, ptr %t470 %t471 = load ptr, ptr %t470 %t472 = call ptr @fn_str_concat(ptr @.str889, ptr %t471) %t473 = call ptr @fn_str_concat(ptr %t472, ptr @.str890) %t474 = call ptr @fn_emit_bind(ptr %t473) %t475 = call ptr @fn_val(ptr %t474, ptr @.str891) store ptr %t475, ptr %retval br label %ret ifend50: %t476 = load ptr, ptr %t0 %t477 = call i32 @fn_str_eq(ptr %t476, ptr @.str892) %t478 = icmp ne i32 %t477, 0 br i1 %t478, label %then51, label %ifend53 then51: %t479 = load ptr, ptr %t1 %t480 = getelementptr inbounds %Cmp_Node, ptr %t479, i32 0, i32 7 %t481 = load ptr, ptr %t480 %t482 = getelementptr inbounds %LSlice, ptr %t481, i32 0, i32 0 %t483 = load ptr, ptr %t482 %t484 = getelementptr inbounds ptr, ptr %t483, i32 0 %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 ptr, ptr %t492, i32 1 %t494 = load ptr, ptr %t493 %t495 = call ptr @fn_emit_expr(ptr %t494) store ptr %t495, ptr %t496 %t497 = load ptr, ptr %t1 %t498 = getelementptr inbounds %Cmp_Node, ptr %t497, i32 0, i32 7 %t499 = load ptr, ptr %t498 %t500 = getelementptr inbounds %LSlice, ptr %t499, i32 0, i32 0 %t501 = load ptr, ptr %t500 %t502 = getelementptr inbounds ptr, ptr %t501, i32 2 %t503 = load ptr, ptr %t502 %t504 = call ptr @fn_emit_expr(ptr %t503) store ptr %t504, ptr %t505 %t506 = load ptr, ptr %t1 %t507 = getelementptr inbounds %Cmp_Node, ptr %t506, i32 0, i32 7 %t508 = load ptr, ptr %t507 %t509 = getelementptr inbounds %LSlice, ptr %t508, i32 0, i32 0 %t510 = load ptr, ptr %t509 %t511 = getelementptr inbounds ptr, ptr %t510, i32 3 %t512 = load ptr, ptr %t511 %t513 = call ptr @fn_emit_expr(ptr %t512) store ptr %t513, ptr %t514 %t515 = load ptr, ptr %t505 %t516 = getelementptr inbounds %Cmp_Val, ptr %t515, i32 0, i32 0 %t517 = load ptr, ptr %t516 %t518 = call ptr @fn_str_concat(ptr @.str893, ptr %t517) %t519 = call ptr @fn_str_concat(ptr %t518, ptr @.str894) %t520 = load ptr, ptr %t487 %t521 = getelementptr inbounds %Cmp_Val, ptr %t520, i32 0, i32 0 %t522 = load ptr, ptr %t521 %t523 = call ptr @fn_str_concat(ptr %t519, ptr %t522) %t524 = call ptr @fn_emit_bind(ptr %t523) store ptr %t524, ptr %t525 %t526 = load ptr, ptr %t514 %t527 = getelementptr inbounds %Cmp_Val, ptr %t526, i32 0, i32 0 %t528 = load ptr, ptr %t527 %t529 = call ptr @fn_str_concat(ptr @.str895, ptr %t528) %t530 = call ptr @fn_str_concat(ptr %t529, ptr @.str896) %t531 = load ptr, ptr %t496 %t532 = getelementptr inbounds %Cmp_Val, ptr %t531, i32 0, i32 0 %t533 = load ptr, ptr %t532 %t534 = call ptr @fn_str_concat(ptr %t530, ptr %t533) %t535 = call ptr @fn_emit_bind(ptr %t534) store ptr %t535, ptr %t536 %t537 = load ptr, ptr %t525 %t538 = load ptr, ptr %t525 %t539 = call ptr @fn_fx_mul_code(ptr %t537, ptr %t538) store ptr %t539, ptr %t540 %t541 = load ptr, ptr %t536 %t542 = load ptr, ptr %t536 %t543 = call ptr @fn_fx_mul_code(ptr %t541, ptr %t542) store ptr %t543, ptr %t544 %t545 = load ptr, ptr %t540 %t546 = call ptr @fn_str_concat(ptr @.str897, ptr %t545) %t547 = call ptr @fn_str_concat(ptr %t546, ptr @.str898) %t548 = load ptr, ptr %t544 %t549 = call ptr @fn_str_concat(ptr %t547, ptr %t548) %t550 = call ptr @fn_emit_bind(ptr %t549) %t551 = call ptr @fn_val(ptr %t550, ptr @.str899) store ptr %t551, ptr %retval br label %ret ifend53: %t552 = load ptr, ptr %t0 %t553 = call i32 @fn_str_eq(ptr %t552, ptr @.str900) %t554 = icmp ne i32 %t553, 0 br i1 %t554, label %then54, label %ifend56 then54: store i32 1, ptr @g_g_uses_mathrt %t555 = load ptr, ptr %t1 %t556 = getelementptr inbounds %Cmp_Node, ptr %t555, i32 0, i32 7 %t557 = load ptr, ptr %t556 %t558 = getelementptr inbounds %LSlice, ptr %t557, i32 0, i32 0 %t559 = load ptr, ptr %t558 %t560 = getelementptr inbounds ptr, ptr %t559, i32 0 %t561 = load ptr, ptr %t560 %t562 = call ptr @fn_emit_expr(ptr %t561) store ptr %t562, ptr %t563 %t564 = load ptr, ptr %t1 %t565 = getelementptr inbounds %Cmp_Node, ptr %t564, i32 0, i32 7 %t566 = load ptr, ptr %t565 %t567 = getelementptr inbounds %LSlice, ptr %t566, i32 0, i32 0 %t568 = load ptr, ptr %t567 %t569 = getelementptr inbounds ptr, ptr %t568, i32 1 %t570 = load ptr, ptr %t569 %t571 = call ptr @fn_emit_expr(ptr %t570) store ptr %t571, ptr %t572 %t573 = load ptr, ptr %t1 %t574 = getelementptr inbounds %Cmp_Node, ptr %t573, i32 0, i32 7 %t575 = load ptr, ptr %t574 %t576 = getelementptr inbounds %LSlice, ptr %t575, i32 0, i32 0 %t577 = load ptr, ptr %t576 %t578 = getelementptr inbounds ptr, ptr %t577, i32 2 %t579 = load ptr, ptr %t578 %t580 = call ptr @fn_emit_expr(ptr %t579) store ptr %t580, ptr %t581 %t582 = load ptr, ptr %t1 %t583 = getelementptr inbounds %Cmp_Node, ptr %t582, i32 0, i32 7 %t584 = load ptr, ptr %t583 %t585 = getelementptr inbounds %LSlice, ptr %t584, i32 0, i32 0 %t586 = load ptr, ptr %t585 %t587 = getelementptr inbounds ptr, ptr %t586, i32 3 %t588 = load ptr, ptr %t587 %t589 = call ptr @fn_emit_expr(ptr %t588) store ptr %t589, ptr %t590 %t591 = load ptr, ptr %t581 %t592 = getelementptr inbounds %Cmp_Val, ptr %t591, i32 0, i32 0 %t593 = load ptr, ptr %t592 %t594 = call ptr @fn_str_concat(ptr @.str901, ptr %t593) %t595 = call ptr @fn_str_concat(ptr %t594, ptr @.str902) %t596 = load ptr, ptr %t563 %t597 = getelementptr inbounds %Cmp_Val, ptr %t596, i32 0, i32 0 %t598 = load ptr, ptr %t597 %t599 = call ptr @fn_str_concat(ptr %t595, ptr %t598) %t600 = call ptr @fn_emit_bind(ptr %t599) store ptr %t600, ptr %t601 %t602 = load ptr, ptr %t590 %t603 = getelementptr inbounds %Cmp_Val, ptr %t602, i32 0, i32 0 %t604 = load ptr, ptr %t603 %t605 = call ptr @fn_str_concat(ptr @.str903, ptr %t604) %t606 = call ptr @fn_str_concat(ptr %t605, ptr @.str904) %t607 = load ptr, ptr %t572 %t608 = getelementptr inbounds %Cmp_Val, ptr %t607, i32 0, i32 0 %t609 = load ptr, ptr %t608 %t610 = call ptr @fn_str_concat(ptr %t606, ptr %t609) %t611 = call ptr @fn_emit_bind(ptr %t610) store ptr %t611, ptr %t612 %t613 = load ptr, ptr %t601 %t614 = load ptr, ptr %t601 %t615 = call ptr @fn_fx_mul_code(ptr %t613, ptr %t614) store ptr %t615, ptr %t616 %t617 = load ptr, ptr %t612 %t618 = load ptr, ptr %t612 %t619 = call ptr @fn_fx_mul_code(ptr %t617, ptr %t618) store ptr %t619, ptr %t620 %t621 = load ptr, ptr %t616 %t622 = call ptr @fn_str_concat(ptr @.str905, ptr %t621) %t623 = call ptr @fn_str_concat(ptr %t622, ptr @.str906) %t624 = load ptr, ptr %t620 %t625 = call ptr @fn_str_concat(ptr %t623, ptr %t624) %t626 = call ptr @fn_emit_bind(ptr %t625) store ptr %t626, ptr %t627 %t628 = load ptr, ptr %t627 %t629 = call ptr @fn_str_concat(ptr @.str907, ptr %t628) %t630 = call ptr @fn_str_concat(ptr %t629, ptr @.str908) %t631 = call ptr @fn_emit_bind(ptr %t630) %t632 = call ptr @fn_val(ptr %t631, ptr @.str909) store ptr %t632, ptr %retval br label %ret ifend56: %t633 = load ptr, ptr %t0 %t634 = call i32 @fn_str_eq(ptr %t633, ptr @.str910) %t635 = icmp ne i32 %t634, 0 br i1 %t635, label %then57, label %ifend59 then57: store i32 1, ptr @g_g_uses_mathrt %t636 = load ptr, ptr %t1 %t637 = getelementptr inbounds %Cmp_Node, ptr %t636, i32 0, i32 7 %t638 = load ptr, ptr %t637 %t639 = getelementptr inbounds %LSlice, ptr %t638, i32 0, i32 0 %t640 = load ptr, ptr %t639 %t641 = getelementptr inbounds ptr, ptr %t640, i32 0 %t642 = load ptr, ptr %t641 %t643 = call ptr @fn_emit_expr(ptr %t642) store ptr %t643, ptr %t644 %t645 = load ptr, ptr %t644 %t646 = getelementptr inbounds %Cmp_Val, ptr %t645, i32 0, i32 0 %t647 = load ptr, ptr %t646 %t648 = call ptr @fn_fx_mul_code(ptr %t647, ptr @.str911) store ptr %t648, ptr %t649 %t650 = load ptr, ptr %t649 %t651 = call ptr @fn_str_concat(ptr @.str912, ptr %t650) %t652 = call ptr @fn_str_concat(ptr %t651, ptr @.str913) %t653 = call ptr @fn_emit_bind(ptr %t652) %t654 = call ptr @fn_val(ptr %t653, ptr @.str914) store ptr %t654, ptr %retval br label %ret ifend59: %t655 = load ptr, ptr %t0 %t656 = call i32 @fn_str_eq(ptr %t655, ptr @.str915) %t657 = icmp ne i32 %t656, 0 br i1 %t657, label %then60, label %ifend62 then60: store i32 1, ptr @g_g_uses_mathrt %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 ptr, ptr %t662, i32 0 %t664 = load ptr, ptr %t663 %t665 = call ptr @fn_emit_expr(ptr %t664) store ptr %t665, ptr %t666 %t667 = load ptr, ptr %t666 %t668 = getelementptr inbounds %Cmp_Val, ptr %t667, i32 0, i32 0 %t669 = load ptr, ptr %t668 %t670 = call ptr @fn_str_concat(ptr @.str916, ptr %t669) %t671 = call ptr @fn_str_concat(ptr %t670, ptr @.str917) %t672 = call ptr @fn_emit_bind(ptr %t671) store ptr %t672, ptr %t673 %t674 = load ptr, ptr %t673 %t675 = call ptr @fn_fx_mul_code(ptr %t674, ptr @.str918) %t676 = call ptr @fn_val(ptr %t675, ptr @.str919) store ptr %t676, ptr %retval br label %ret ifend62: %t677 = load ptr, ptr %t0 %t678 = call i32 @fn_str_eq(ptr %t677, ptr @.str920) %t679 = icmp ne i32 %t678, 0 br i1 %t679, label %then63, label %ifend65 then63: store i32 1, ptr @g_g_uses_mathrt %t680 = load ptr, ptr %t1 %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 ptr, ptr %t684, i32 0 %t686 = load ptr, ptr %t685 %t687 = call ptr @fn_emit_expr(ptr %t686) store ptr %t687, ptr %t688 %t689 = load ptr, ptr %t1 %t690 = getelementptr inbounds %Cmp_Node, ptr %t689, i32 0, i32 7 %t691 = load ptr, ptr %t690 %t692 = getelementptr inbounds %LSlice, ptr %t691, i32 0, i32 0 %t693 = load ptr, ptr %t692 %t694 = getelementptr inbounds ptr, ptr %t693, i32 1 %t695 = load ptr, ptr %t694 %t696 = call ptr @fn_emit_expr(ptr %t695) store ptr %t696, ptr %t697 %t698 = load ptr, ptr %t688 %t699 = getelementptr inbounds %Cmp_Val, ptr %t698, i32 0, i32 0 %t700 = load ptr, ptr %t699 %t701 = call ptr @fn_str_concat(ptr @.str921, ptr %t700) %t702 = call ptr @fn_str_concat(ptr %t701, ptr @.str922) %t703 = call ptr @fn_emit_bind(ptr %t702) store ptr %t703, ptr %t704 %t705 = load ptr, ptr %t697 %t706 = getelementptr inbounds %Cmp_Val, ptr %t705, i32 0, i32 0 %t707 = load ptr, ptr %t706 %t708 = load ptr, ptr %t704 %t709 = call ptr @fn_fx_mul_code(ptr %t707, ptr %t708) store ptr %t709, ptr %t710 %t711 = load ptr, ptr %t710 %t712 = call ptr @fn_str_concat(ptr @.str923, ptr %t711) %t713 = call ptr @fn_str_concat(ptr %t712, ptr @.str924) %t714 = call ptr @fn_emit_bind(ptr %t713) %t715 = call ptr @fn_val(ptr %t714, ptr @.str925) store ptr %t715, ptr %retval br label %ret ifend65: %t716 = load ptr, ptr %t0 %t717 = call i32 @fn_str_eq(ptr %t716, ptr @.str926) %t718 = icmp ne i32 %t717, 0 br i1 %t718, label %then66, label %ifend68 then66: %t719 = load ptr, ptr %t1 %t720 = getelementptr inbounds %Cmp_Node, ptr %t719, i32 0, i32 7 %t721 = load ptr, ptr %t720 %t722 = getelementptr inbounds %LSlice, ptr %t721, i32 0, i32 0 %t723 = load ptr, ptr %t722 %t724 = getelementptr inbounds ptr, ptr %t723, i32 0 %t725 = load ptr, ptr %t724 %t726 = call ptr @fn_emit_expr(ptr %t725) store ptr %t726, ptr %t727 %t728 = load ptr, ptr %t727 %t729 = getelementptr inbounds %Cmp_Val, ptr %t728, i32 0, i32 0 %t730 = load ptr, ptr %t729 %t731 = call ptr @fn_fx_mul_code(ptr %t730, ptr @.str927) %t732 = call ptr @fn_val(ptr %t731, ptr @.str928) store ptr %t732, ptr %retval br label %ret ifend68: %t733 = load ptr, ptr %t0 %t734 = call i32 @fn_str_eq(ptr %t733, ptr @.str929) %t735 = icmp ne i32 %t734, 0 br i1 %t735, label %then69, label %ifend71 then69: %t736 = load ptr, ptr %t1 %t737 = getelementptr inbounds %Cmp_Node, ptr %t736, i32 0, i32 7 %t738 = load ptr, ptr %t737 %t739 = getelementptr inbounds %LSlice, ptr %t738, i32 0, i32 0 %t740 = load ptr, ptr %t739 %t741 = getelementptr inbounds ptr, ptr %t740, i32 0 %t742 = load ptr, ptr %t741 %t743 = call ptr @fn_emit_expr(ptr %t742) store ptr %t743, ptr %t744 %t745 = load ptr, ptr %t744 %t746 = getelementptr inbounds %Cmp_Val, ptr %t745, i32 0, i32 0 %t747 = load ptr, ptr %t746 %t748 = call ptr @fn_fx_mul_code(ptr %t747, ptr @.str930) %t749 = call ptr @fn_val(ptr %t748, ptr @.str931) store ptr %t749, ptr %retval br label %ret ifend71: %t750 = load ptr, ptr %t0 %t751 = call i32 @fn_str_eq(ptr %t750, ptr @.str932) %t752 = icmp ne i32 %t751, 0 br i1 %t752, label %then72, label %ifend74 then72: %t753 = load ptr, ptr %t1 %t754 = getelementptr inbounds %Cmp_Node, ptr %t753, i32 0, i32 7 %t755 = load ptr, ptr %t754 %t756 = getelementptr inbounds %LSlice, ptr %t755, i32 0, i32 0 %t757 = load ptr, ptr %t756 %t758 = getelementptr inbounds ptr, ptr %t757, i32 0 %t759 = load ptr, ptr %t758 %t760 = call ptr @fn_emit_expr(ptr %t759) store ptr %t760, ptr %t761 %t762 = load ptr, ptr %t1 %t763 = getelementptr inbounds %Cmp_Node, ptr %t762, i32 0, i32 7 %t764 = load ptr, ptr %t763 %t765 = getelementptr inbounds %LSlice, ptr %t764, i32 0, i32 0 %t766 = load ptr, ptr %t765 %t767 = getelementptr inbounds ptr, ptr %t766, i32 1 %t768 = load ptr, ptr %t767 %t769 = call ptr @fn_emit_expr(ptr %t768) store ptr %t769, ptr %t770 %t771 = load ptr, ptr %t761 %t772 = getelementptr inbounds %Cmp_Val, ptr %t771, i32 0, i32 0 %t773 = load ptr, ptr %t772 %t774 = call ptr @fn_str_concat(ptr @.str933, ptr %t773) %t775 = call ptr @fn_str_concat(ptr %t774, ptr @.str934) %t776 = load ptr, ptr %t770 %t777 = getelementptr inbounds %Cmp_Val, ptr %t776, i32 0, i32 0 %t778 = load ptr, ptr %t777 %t779 = call ptr @fn_str_concat(ptr %t775, ptr %t778) %t780 = call ptr @fn_emit_bind(ptr %t779) store ptr %t780, ptr %t781 %t782 = load ptr, ptr %t781 %t783 = call ptr @fn_str_concat(ptr @.str935, ptr %t782) %t784 = call ptr @fn_str_concat(ptr %t783, ptr @.str936) %t785 = load ptr, ptr %t770 %t786 = getelementptr inbounds %Cmp_Val, ptr %t785, i32 0, i32 0 %t787 = load ptr, ptr %t786 %t788 = call ptr @fn_str_concat(ptr %t784, ptr %t787) %t789 = call ptr @fn_emit_bind(ptr %t788) store ptr %t789, ptr %t790 %t791 = load ptr, ptr %t790 %t792 = call ptr @fn_str_concat(ptr @.str937, ptr %t791) %t793 = call ptr @fn_str_concat(ptr %t792, ptr @.str938) %t794 = load ptr, ptr %t770 %t795 = getelementptr inbounds %Cmp_Val, ptr %t794, i32 0, i32 0 %t796 = load ptr, ptr %t795 %t797 = call ptr @fn_str_concat(ptr %t793, ptr %t796) %t798 = call ptr @fn_emit_bind(ptr %t797) %t799 = call ptr @fn_val(ptr %t798, ptr @.str939) store ptr %t799, ptr %retval br label %ret ifend74: %t800 = load ptr, ptr %t0 %t801 = call i32 @fn_str_eq(ptr %t800, ptr @.str940) %t802 = icmp ne i32 %t801, 0 br i1 %t802, label %then75, label %ifend77 then75: %t803 = load ptr, ptr %t1 %t804 = getelementptr inbounds %Cmp_Node, ptr %t803, i32 0, i32 7 %t805 = load ptr, ptr %t804 %t806 = getelementptr inbounds %LSlice, ptr %t805, i32 0, i32 0 %t807 = load ptr, ptr %t806 %t808 = getelementptr inbounds ptr, ptr %t807, i32 0 %t809 = load ptr, ptr %t808 %t810 = call ptr @fn_emit_expr(ptr %t809) store ptr %t810, ptr %t811 %t812 = load ptr, ptr %t1 %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 ptr, ptr %t816, i32 1 %t818 = load ptr, ptr %t817 %t819 = call ptr @fn_emit_expr(ptr %t818) store ptr %t819, ptr %t820 %t821 = load ptr, ptr %t1 %t822 = getelementptr inbounds %Cmp_Node, ptr %t821, i32 0, i32 7 %t823 = load ptr, ptr %t822 %t824 = getelementptr inbounds %LSlice, ptr %t823, i32 0, i32 0 %t825 = load ptr, ptr %t824 %t826 = getelementptr inbounds ptr, ptr %t825, i32 2 %t827 = load ptr, ptr %t826 %t828 = call ptr @fn_emit_expr(ptr %t827) store ptr %t828, ptr %t829 %t830 = load ptr, ptr %t829 %t831 = getelementptr inbounds %Cmp_Val, ptr %t830, i32 0, i32 0 %t832 = load ptr, ptr %t831 %t833 = call ptr @fn_str_concat(ptr @.str941, ptr %t832) %t834 = call ptr @fn_str_concat(ptr %t833, ptr @.str942) %t835 = load ptr, ptr %t820 %t836 = getelementptr inbounds %Cmp_Val, ptr %t835, i32 0, i32 0 %t837 = load ptr, ptr %t836 %t838 = call ptr @fn_str_concat(ptr %t834, ptr %t837) %t839 = call ptr @fn_emit_bind(ptr %t838) store ptr %t839, ptr %t840 %t841 = load ptr, ptr %t811 %t842 = getelementptr inbounds %Cmp_Val, ptr %t841, i32 0, i32 0 %t843 = load ptr, ptr %t842 %t844 = call ptr @fn_str_concat(ptr @.str943, ptr %t843) %t845 = call ptr @fn_str_concat(ptr %t844, ptr @.str944) %t846 = load ptr, ptr %t820 %t847 = getelementptr inbounds %Cmp_Val, ptr %t846, i32 0, i32 0 %t848 = load ptr, ptr %t847 %t849 = call ptr @fn_str_concat(ptr %t845, ptr %t848) %t850 = call ptr @fn_emit_bind(ptr %t849) store ptr %t850, ptr %t851 %t852 = load ptr, ptr %t851 %t853 = call ptr @fn_str_concat(ptr @.str945, ptr %t852) %t854 = call ptr @fn_str_concat(ptr %t853, ptr @.str946) %t855 = load ptr, ptr %t840 %t856 = call ptr @fn_str_concat(ptr %t854, ptr %t855) %t857 = call ptr @fn_emit_bind(ptr %t856) store ptr %t857, ptr %t858 %t859 = load ptr, ptr %t858 %t860 = call ptr @fn_str_concat(ptr @.str947, ptr %t859) %t861 = call ptr @fn_str_concat(ptr %t860, ptr @.str948) %t862 = load ptr, ptr %t840 %t863 = call ptr @fn_str_concat(ptr %t861, ptr %t862) %t864 = call ptr @fn_emit_bind(ptr %t863) store ptr %t864, ptr %t865 %t866 = load ptr, ptr %t865 %t867 = call ptr @fn_str_concat(ptr @.str949, ptr %t866) %t868 = call ptr @fn_str_concat(ptr %t867, ptr @.str950) %t869 = load ptr, ptr %t840 %t870 = call ptr @fn_str_concat(ptr %t868, ptr %t869) %t871 = call ptr @fn_emit_bind(ptr %t870) store ptr %t871, ptr %t872 %t873 = load ptr, ptr %t820 %t874 = getelementptr inbounds %Cmp_Val, ptr %t873, i32 0, i32 0 %t875 = load ptr, ptr %t874 %t876 = call ptr @fn_str_concat(ptr @.str951, ptr %t875) %t877 = call ptr @fn_str_concat(ptr %t876, ptr @.str952) %t878 = load ptr, ptr %t872 %t879 = call ptr @fn_str_concat(ptr %t877, ptr %t878) %t880 = call ptr @fn_emit_bind(ptr %t879) %t881 = call ptr @fn_val(ptr %t880, ptr @.str953) store ptr %t881, ptr %retval br label %ret ifend77: %t882 = load ptr, ptr %t0 %t883 = call i32 @fn_str_eq(ptr %t882, ptr @.str954) %t884 = icmp ne i32 %t883, 0 br i1 %t884, label %then78, label %ifend80 then78: %t885 = load ptr, ptr %t1 %t886 = getelementptr inbounds %Cmp_Node, ptr %t885, i32 0, i32 7 %t887 = load ptr, ptr %t886 %t888 = getelementptr inbounds %LSlice, ptr %t887, i32 0, i32 0 %t889 = load ptr, ptr %t888 %t890 = getelementptr inbounds ptr, ptr %t889, i32 0 %t891 = load ptr, ptr %t890 %t892 = call ptr @fn_emit_expr(ptr %t891) store ptr %t892, ptr %t893 %t894 = load ptr, ptr %t1 %t895 = getelementptr inbounds %Cmp_Node, ptr %t894, i32 0, i32 7 %t896 = load ptr, ptr %t895 %t897 = getelementptr inbounds %LSlice, ptr %t896, i32 0, i32 0 %t898 = load ptr, ptr %t897 %t899 = getelementptr inbounds ptr, ptr %t898, i32 1 %t900 = load ptr, ptr %t899 %t901 = call ptr @fn_emit_expr(ptr %t900) store ptr %t901, ptr %t902 %t903 = load ptr, ptr %t902 %t904 = getelementptr inbounds %Cmp_Val, ptr %t903, i32 0, i32 0 %t905 = load ptr, ptr %t904 %t906 = call ptr @fn_str_concat(ptr @.str955, ptr %t905) %t907 = call ptr @fn_str_concat(ptr %t906, ptr @.str956) %t908 = call ptr @fn_emit_bind(ptr %t907) store ptr %t908, ptr %t909 %t910 = load ptr, ptr %t893 %t911 = getelementptr inbounds %Cmp_Val, ptr %t910, i32 0, i32 0 %t912 = load ptr, ptr %t911 %t913 = call ptr @fn_str_concat(ptr @.str957, ptr %t912) %t914 = call ptr @fn_str_concat(ptr %t913, ptr @.str958) %t915 = load ptr, ptr %t909 %t916 = call ptr @fn_str_concat(ptr %t914, ptr %t915) %t917 = call ptr @fn_emit_bind(ptr %t916) store ptr %t917, ptr %t918 %t919 = load ptr, ptr %t918 %t920 = call ptr @fn_str_concat(ptr @.str959, ptr %t919) %t921 = call ptr @fn_str_concat(ptr %t920, ptr @.str960) %t922 = load ptr, ptr %t909 %t923 = call ptr @fn_str_concat(ptr %t921, ptr %t922) %t924 = call ptr @fn_emit_bind(ptr %t923) store ptr %t924, ptr %t925 %t926 = load ptr, ptr %t925 %t927 = call ptr @fn_str_concat(ptr @.str961, ptr %t926) %t928 = call ptr @fn_str_concat(ptr %t927, ptr @.str962) %t929 = load ptr, ptr %t909 %t930 = call ptr @fn_str_concat(ptr %t928, ptr %t929) %t931 = call ptr @fn_emit_bind(ptr %t930) store ptr %t931, ptr %t932 %t933 = load ptr, ptr %t932 %t934 = call ptr @fn_str_concat(ptr @.str963, ptr %t933) %t935 = call ptr @fn_str_concat(ptr %t934, ptr @.str964) %t936 = load ptr, ptr %t902 %t937 = getelementptr inbounds %Cmp_Val, ptr %t936, i32 0, i32 0 %t938 = load ptr, ptr %t937 %t939 = call ptr @fn_str_concat(ptr %t935, ptr %t938) %t940 = call ptr @fn_emit_bind(ptr %t939) store ptr %t940, ptr %t941 %t942 = load ptr, ptr %t941 %t943 = call ptr @fn_str_concat(ptr @.str965, ptr %t942) %t944 = call ptr @fn_emit_bind(ptr %t943) store ptr %t944, ptr %t945 %t946 = load ptr, ptr %t941 %t947 = call ptr @fn_str_concat(ptr @.str966, ptr %t946) %t948 = call ptr @fn_str_concat(ptr %t947, ptr @.str967) %t949 = call ptr @fn_emit_bind(ptr %t948) store ptr %t949, ptr %t950 %t951 = load ptr, ptr %t950 %t952 = call ptr @fn_str_concat(ptr @.str968, ptr %t951) %t953 = call ptr @fn_str_concat(ptr %t952, ptr @.str969) %t954 = load ptr, ptr %t945 %t955 = call ptr @fn_str_concat(ptr %t953, ptr %t954) %t956 = call ptr @fn_str_concat(ptr %t955, ptr @.str970) %t957 = load ptr, ptr %t941 %t958 = call ptr @fn_str_concat(ptr %t956, ptr %t957) %t959 = call ptr @fn_emit_bind(ptr %t958) store ptr %t959, ptr %t960 %t961 = load ptr, ptr %t902 %t962 = getelementptr inbounds %Cmp_Val, ptr %t961, i32 0, i32 0 %t963 = load ptr, ptr %t962 %t964 = call ptr @fn_str_concat(ptr @.str971, ptr %t963) %t965 = call ptr @fn_str_concat(ptr %t964, ptr @.str972) %t966 = load ptr, ptr %t960 %t967 = call ptr @fn_str_concat(ptr %t965, ptr %t966) %t968 = call ptr @fn_emit_bind(ptr %t967) %t969 = call ptr @fn_val(ptr %t968, ptr @.str973) store ptr %t969, ptr %retval br label %ret ifend80: %t970 = load ptr, ptr %t0 %t971 = call i32 @fn_str_eq(ptr %t970, ptr @.str974) %t972 = icmp ne i32 %t971, 0 br i1 %t972, label %then81, label %ifend83 then81: %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 ptr, ptr %t977, i32 0 %t979 = load ptr, ptr %t978 %t980 = call ptr @fn_emit_expr(ptr %t979) store ptr %t980, ptr %t981 %t982 = load ptr, ptr %t1 %t983 = getelementptr inbounds %Cmp_Node, ptr %t982, i32 0, i32 7 %t984 = load ptr, ptr %t983 %t985 = getelementptr inbounds %LSlice, ptr %t984, i32 0, i32 0 %t986 = load ptr, ptr %t985 %t987 = getelementptr inbounds ptr, ptr %t986, i32 1 %t988 = load ptr, ptr %t987 %t989 = call ptr @fn_emit_expr(ptr %t988) store ptr %t989, ptr %t990 %t991 = load ptr, ptr %t981 %t992 = getelementptr inbounds %Cmp_Val, ptr %t991, i32 0, i32 0 %t993 = load ptr, ptr %t992 %t994 = load ptr, ptr %t990 %t995 = getelementptr inbounds %Cmp_Val, ptr %t994, i32 0, i32 0 %t996 = load ptr, ptr %t995 %t997 = call ptr @fn_fx_div_code(ptr %t993, ptr %t996) store ptr %t997, ptr %t998 %t999 = load ptr, ptr %t998 %t1000 = call ptr @fn_str_concat(ptr @.str975, ptr %t999) %t1001 = call ptr @fn_str_concat(ptr %t1000, ptr @.str976) %t1002 = call ptr @fn_emit_bind(ptr %t1001) store ptr %t1002, ptr %t1003 %t1004 = load ptr, ptr %t1003 %t1005 = call ptr @fn_str_concat(ptr @.str977, ptr %t1004) %t1006 = call ptr @fn_str_concat(ptr %t1005, ptr @.str978) %t1007 = call ptr @fn_emit_bind(ptr %t1006) store ptr %t1007, ptr %t1008 %t1009 = load ptr, ptr %t1008 %t1010 = call ptr @fn_str_concat(ptr @.str979, ptr %t1009) %t1011 = call ptr @fn_str_concat(ptr %t1010, ptr @.str980) %t1012 = load ptr, ptr %t990 %t1013 = getelementptr inbounds %Cmp_Val, ptr %t1012, i32 0, i32 0 %t1014 = load ptr, ptr %t1013 %t1015 = call ptr @fn_str_concat(ptr %t1011, ptr %t1014) %t1016 = call ptr @fn_emit_bind(ptr %t1015) %t1017 = call ptr @fn_val(ptr %t1016, ptr @.str981) store ptr %t1017, ptr %retval br label %ret ifend83: %t1018 = load ptr, ptr %t0 %t1019 = call i32 @fn_str_eq(ptr %t1018, ptr @.str982) %t1020 = icmp ne i32 %t1019, 0 br i1 %t1020, label %then84, label %ifend86 then84: %t1021 = load ptr, ptr %t1 %t1022 = getelementptr inbounds %Cmp_Node, ptr %t1021, i32 0, i32 7 %t1023 = load ptr, ptr %t1022 %t1024 = getelementptr inbounds %LSlice, ptr %t1023, i32 0, i32 0 %t1025 = load ptr, ptr %t1024 %t1026 = getelementptr inbounds ptr, ptr %t1025, i32 0 %t1027 = load ptr, ptr %t1026 %t1028 = call ptr @fn_emit_expr(ptr %t1027) store ptr %t1028, ptr %t1029 %t1030 = load ptr, ptr %t1 %t1031 = getelementptr inbounds %Cmp_Node, ptr %t1030, i32 0, i32 7 %t1032 = load ptr, ptr %t1031 %t1033 = getelementptr inbounds %LSlice, ptr %t1032, i32 0, i32 0 %t1034 = load ptr, ptr %t1033 %t1035 = getelementptr inbounds ptr, ptr %t1034, i32 1 %t1036 = load ptr, ptr %t1035 %t1037 = call ptr @fn_emit_expr(ptr %t1036) store ptr %t1037, ptr %t1038 %t1039 = load ptr, ptr %t1 %t1040 = getelementptr inbounds %Cmp_Node, ptr %t1039, i32 0, i32 7 %t1041 = load ptr, ptr %t1040 %t1042 = getelementptr inbounds %LSlice, ptr %t1041, i32 0, i32 0 %t1043 = load ptr, ptr %t1042 %t1044 = getelementptr inbounds ptr, ptr %t1043, i32 2 %t1045 = load ptr, ptr %t1044 %t1046 = call ptr @fn_emit_expr(ptr %t1045) store ptr %t1046, ptr %t1047 %t1048 = load ptr, ptr %t1038 %t1049 = getelementptr inbounds %Cmp_Val, ptr %t1048, i32 0, i32 0 %t1050 = load ptr, ptr %t1049 %t1051 = call ptr @fn_str_concat(ptr @.str983, ptr %t1050) %t1052 = call ptr @fn_str_concat(ptr %t1051, ptr @.str984) %t1053 = load ptr, ptr %t1029 %t1054 = getelementptr inbounds %Cmp_Val, ptr %t1053, i32 0, i32 0 %t1055 = load ptr, ptr %t1054 %t1056 = call ptr @fn_str_concat(ptr %t1052, ptr %t1055) %t1057 = call ptr @fn_emit_bind(ptr %t1056) store ptr %t1057, ptr %t1058 %t1059 = load ptr, ptr %t1058 %t1060 = call ptr @fn_str_concat(ptr @.str985, ptr %t1059) %t1061 = call ptr @fn_emit_bind(ptr %t1060) store ptr %t1061, ptr %t1062 %t1063 = load ptr, ptr %t1058 %t1064 = call ptr @fn_str_concat(ptr @.str986, ptr %t1063) %t1065 = call ptr @fn_str_concat(ptr %t1064, ptr @.str987) %t1066 = call ptr @fn_emit_bind(ptr %t1065) store ptr %t1066, ptr %t1067 %t1068 = load ptr, ptr %t1067 %t1069 = call ptr @fn_str_concat(ptr @.str988, ptr %t1068) %t1070 = call ptr @fn_str_concat(ptr %t1069, ptr @.str989) %t1071 = load ptr, ptr %t1062 %t1072 = call ptr @fn_str_concat(ptr %t1070, ptr %t1071) %t1073 = call ptr @fn_str_concat(ptr %t1072, ptr @.str990) %t1074 = load ptr, ptr %t1058 %t1075 = call ptr @fn_str_concat(ptr %t1073, ptr %t1074) %t1076 = call ptr @fn_emit_bind(ptr %t1075) store ptr %t1076, ptr %t1077 %t1078 = load ptr, ptr %t1058 %t1079 = call ptr @fn_str_concat(ptr @.str991, ptr %t1078) %t1080 = call ptr @fn_str_concat(ptr %t1079, ptr @.str992) %t1081 = call ptr @fn_emit_bind(ptr %t1080) store ptr %t1081, ptr %t1082 %t1083 = load ptr, ptr %t1058 %t1084 = call ptr @fn_str_concat(ptr @.str993, ptr %t1083) %t1085 = call ptr @fn_str_concat(ptr %t1084, ptr @.str994) %t1086 = call ptr @fn_emit_bind(ptr %t1085) store ptr %t1086, ptr %t1087 %t1088 = load ptr, ptr %t1087 %t1089 = call ptr @fn_str_concat(ptr @.str995, ptr %t1088) %t1090 = call ptr @fn_str_concat(ptr %t1089, ptr @.str996) %t1091 = call ptr @fn_emit_bind(ptr %t1090) store ptr %t1091, ptr %t1092 %t1093 = load ptr, ptr %t1082 %t1094 = call ptr @fn_str_concat(ptr @.str997, ptr %t1093) %t1095 = call ptr @fn_str_concat(ptr %t1094, ptr @.str998) %t1096 = load ptr, ptr %t1092 %t1097 = call ptr @fn_str_concat(ptr %t1095, ptr %t1096) %t1098 = call ptr @fn_emit_bind(ptr %t1097) store ptr %t1098, ptr %t1099 %t1100 = load ptr, ptr %t1099 %t1101 = call ptr @fn_str_concat(ptr @.str999, ptr %t1100) %t1102 = call ptr @fn_str_concat(ptr %t1101, ptr @.str1000) %t1103 = load ptr, ptr %t1047 %t1104 = getelementptr inbounds %Cmp_Val, ptr %t1103, i32 0, i32 0 %t1105 = load ptr, ptr %t1104 %t1106 = call ptr @fn_str_concat(ptr %t1102, ptr %t1105) %t1107 = call ptr @fn_emit_bind(ptr %t1106) store ptr %t1107, ptr %t1108 %t1109 = load ptr, ptr %t1029 %t1110 = getelementptr inbounds %Cmp_Val, ptr %t1109, i32 0, i32 0 %t1111 = load ptr, ptr %t1110 %t1112 = call ptr @fn_str_concat(ptr @.str1001, ptr %t1111) %t1113 = call ptr @fn_str_concat(ptr %t1112, ptr @.str1002) %t1114 = load ptr, ptr %t1108 %t1115 = call ptr @fn_str_concat(ptr %t1113, ptr %t1114) %t1116 = call ptr @fn_emit_bind(ptr %t1115) store ptr %t1116, ptr %t1117 %t1118 = load ptr, ptr %t1077 %t1119 = call ptr @fn_str_concat(ptr @.str1003, ptr %t1118) %t1120 = call ptr @fn_str_concat(ptr %t1119, ptr @.str1004) %t1121 = load ptr, ptr %t1047 %t1122 = getelementptr inbounds %Cmp_Val, ptr %t1121, i32 0, i32 0 %t1123 = load ptr, ptr %t1122 %t1124 = call ptr @fn_str_concat(ptr %t1120, ptr %t1123) %t1125 = call ptr @fn_emit_bind(ptr %t1124) store ptr %t1125, ptr %t1126 %t1127 = load ptr, ptr %t1126 %t1128 = call ptr @fn_str_concat(ptr @.str1005, ptr %t1127) %t1129 = call ptr @fn_str_concat(ptr %t1128, ptr @.str1006) %t1130 = load ptr, ptr %t1038 %t1131 = getelementptr inbounds %Cmp_Val, ptr %t1130, i32 0, i32 0 %t1132 = load ptr, ptr %t1131 %t1133 = call ptr @fn_str_concat(ptr %t1129, ptr %t1132) %t1134 = call ptr @fn_str_concat(ptr %t1133, ptr @.str1007) %t1135 = load ptr, ptr %t1117 %t1136 = call ptr @fn_str_concat(ptr %t1134, ptr %t1135) %t1137 = call ptr @fn_emit_bind(ptr %t1136) %t1138 = call ptr @fn_val(ptr %t1137, ptr @.str1008) store ptr %t1138, ptr %retval br label %ret ifend86: %t1139 = load ptr, ptr %t0 %t1140 = call i32 @fn_str_eq(ptr %t1139, ptr @.str1009) %t1141 = icmp ne i32 %t1140, 0 br i1 %t1141, label %then87, label %ifend89 then87: %t1142 = load ptr, ptr %t1 %t1143 = getelementptr inbounds %Cmp_Node, ptr %t1142, i32 0, i32 7 %t1144 = load ptr, ptr %t1143 %t1145 = getelementptr inbounds %LSlice, ptr %t1144, i32 0, i32 0 %t1146 = load ptr, ptr %t1145 %t1147 = getelementptr inbounds ptr, ptr %t1146, i32 0 %t1148 = load ptr, ptr %t1147 %t1149 = call ptr @fn_emit_expr(ptr %t1148) store ptr %t1149, ptr %t1150 %t1151 = load ptr, ptr %t1 %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 ptr, ptr %t1155, i32 1 %t1157 = load ptr, ptr %t1156 %t1158 = call ptr @fn_emit_expr(ptr %t1157) store ptr %t1158, ptr %t1159 %t1160 = load ptr, ptr %t1 %t1161 = getelementptr inbounds %Cmp_Node, ptr %t1160, i32 0, i32 7 %t1162 = load ptr, ptr %t1161 %t1163 = getelementptr inbounds %LSlice, ptr %t1162, i32 0, i32 0 %t1164 = load ptr, ptr %t1163 %t1165 = getelementptr inbounds ptr, ptr %t1164, i32 2 %t1166 = load ptr, ptr %t1165 %t1167 = call ptr @fn_emit_expr(ptr %t1166) store ptr %t1167, ptr %t1168 %t1169 = load ptr, ptr %t1150 %t1170 = getelementptr inbounds %Cmp_Val, ptr %t1169, i32 0, i32 0 %t1171 = load ptr, ptr %t1170 %t1172 = load ptr, ptr %t1159 %t1173 = getelementptr inbounds %Cmp_Val, ptr %t1172, i32 0, i32 0 %t1174 = load ptr, ptr %t1173 %t1175 = load ptr, ptr %t1168 %t1176 = getelementptr inbounds %Cmp_Val, ptr %t1175, i32 0, i32 0 %t1177 = load ptr, ptr %t1176 %t1178 = call ptr @fn_fx_inv_lerp_code(ptr %t1171, ptr %t1174, ptr %t1177) store ptr %t1178, ptr %t1179 %t1180 = load ptr, ptr %t1179 %t1181 = call ptr @fn_str_concat(ptr @.str1010, ptr %t1180) %t1182 = call ptr @fn_str_concat(ptr %t1181, ptr @.str1011) %t1183 = call ptr @fn_emit_bind(ptr %t1182) store ptr %t1183, ptr %t1184 %t1185 = load ptr, ptr %t1184 %t1186 = call ptr @fn_str_concat(ptr @.str1012, ptr %t1185) %t1187 = call ptr @fn_str_concat(ptr %t1186, ptr @.str1013) %t1188 = load ptr, ptr %t1179 %t1189 = call ptr @fn_str_concat(ptr %t1187, ptr %t1188) %t1190 = call ptr @fn_emit_bind(ptr %t1189) store ptr %t1190, ptr %t1191 %t1192 = load ptr, ptr %t1191 %t1193 = call ptr @fn_str_concat(ptr @.str1014, ptr %t1192) %t1194 = call ptr @fn_str_concat(ptr %t1193, ptr @.str1015) %t1195 = call ptr @fn_emit_bind(ptr %t1194) store ptr %t1195, ptr %t1196 %t1197 = load ptr, ptr %t1196 %t1198 = call ptr @fn_str_concat(ptr @.str1016, ptr %t1197) %t1199 = call ptr @fn_str_concat(ptr %t1198, ptr @.str1017) %t1200 = load ptr, ptr %t1191 %t1201 = call ptr @fn_str_concat(ptr %t1199, ptr %t1200) %t1202 = call ptr @fn_emit_bind(ptr %t1201) store ptr %t1202, ptr %t1203 %t1204 = load ptr, ptr %t1203 %t1205 = call ptr @fn_str_concat(ptr @.str1018, ptr %t1204) %t1206 = call ptr @fn_str_concat(ptr %t1205, ptr @.str1019) %t1207 = call ptr @fn_emit_bind(ptr %t1206) store ptr %t1207, ptr %t1208 %t1209 = load ptr, ptr %t1208 %t1210 = call ptr @fn_str_concat(ptr @.str1020, ptr %t1209) %t1211 = call ptr @fn_emit_bind(ptr %t1210) store ptr %t1211, ptr %t1212 %t1213 = load ptr, ptr %t1203 %t1214 = load ptr, ptr %t1203 %t1215 = call ptr @fn_fx_mul_code(ptr %t1213, ptr %t1214) store ptr %t1215, ptr %t1216 %t1217 = load ptr, ptr %t1216 %t1218 = load ptr, ptr %t1212 %t1219 = call ptr @fn_fx_mul_code(ptr %t1217, ptr %t1218) %t1220 = call ptr @fn_val(ptr %t1219, ptr @.str1021) store ptr %t1220, ptr %retval br label %ret ifend89: %t1221 = load ptr, ptr %t1 %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 ptr, ptr %t1225, i32 0 %t1227 = load ptr, ptr %t1226 %t1228 = call ptr @fn_emit_expr(ptr %t1227) store ptr %t1228, ptr %t1229 %t1230 = load ptr, ptr %t1 %t1231 = getelementptr inbounds %Cmp_Node, ptr %t1230, i32 0, i32 7 %t1232 = load ptr, ptr %t1231 %t1233 = getelementptr inbounds %LSlice, ptr %t1232, i32 0, i32 0 %t1234 = load ptr, ptr %t1233 %t1235 = getelementptr inbounds ptr, ptr %t1234, i32 1 %t1236 = load ptr, ptr %t1235 %t1237 = call ptr @fn_emit_expr(ptr %t1236) store ptr %t1237, ptr %t1238 %t1239 = load ptr, ptr %t1 %t1240 = getelementptr inbounds %Cmp_Node, ptr %t1239, i32 0, i32 7 %t1241 = load ptr, ptr %t1240 %t1242 = getelementptr inbounds %LSlice, ptr %t1241, i32 0, i32 0 %t1243 = load ptr, ptr %t1242 %t1244 = getelementptr inbounds ptr, ptr %t1243, i32 2 %t1245 = load ptr, ptr %t1244 %t1246 = call ptr @fn_emit_expr(ptr %t1245) store ptr %t1246, ptr %t1247 %t1248 = load ptr, ptr %t1 %t1249 = getelementptr inbounds %Cmp_Node, ptr %t1248, i32 0, i32 7 %t1250 = load ptr, ptr %t1249 %t1251 = getelementptr inbounds %LSlice, ptr %t1250, i32 0, i32 0 %t1252 = load ptr, ptr %t1251 %t1253 = getelementptr inbounds ptr, ptr %t1252, i32 3 %t1254 = load ptr, ptr %t1253 %t1255 = call ptr @fn_emit_expr(ptr %t1254) store ptr %t1255, ptr %t1256 %t1257 = load ptr, ptr %t1 %t1258 = getelementptr inbounds %Cmp_Node, ptr %t1257, i32 0, i32 7 %t1259 = load ptr, ptr %t1258 %t1260 = getelementptr inbounds %LSlice, ptr %t1259, i32 0, i32 0 %t1261 = load ptr, ptr %t1260 %t1262 = getelementptr inbounds ptr, ptr %t1261, i32 4 %t1263 = load ptr, ptr %t1262 %t1264 = call ptr @fn_emit_expr(ptr %t1263) store ptr %t1264, ptr %t1265 %t1266 = load ptr, ptr %t1238 %t1267 = getelementptr inbounds %Cmp_Val, ptr %t1266, i32 0, i32 0 %t1268 = load ptr, ptr %t1267 %t1269 = load ptr, ptr %t1247 %t1270 = getelementptr inbounds %Cmp_Val, ptr %t1269, i32 0, i32 0 %t1271 = load ptr, ptr %t1270 %t1272 = load ptr, ptr %t1229 %t1273 = getelementptr inbounds %Cmp_Val, ptr %t1272, i32 0, i32 0 %t1274 = load ptr, ptr %t1273 %t1275 = call ptr @fn_fx_inv_lerp_code(ptr %t1268, ptr %t1271, ptr %t1274) store ptr %t1275, ptr %t1276 %t1277 = load ptr, ptr %t1256 %t1278 = getelementptr inbounds %Cmp_Val, ptr %t1277, i32 0, i32 0 %t1279 = load ptr, ptr %t1278 %t1280 = load ptr, ptr %t1265 %t1281 = getelementptr inbounds %Cmp_Val, ptr %t1280, i32 0, i32 0 %t1282 = load ptr, ptr %t1281 %t1283 = load ptr, ptr %t1276 %t1284 = call ptr @fn_fx_lerp_code(ptr %t1279, ptr %t1282, ptr %t1283) %t1285 = call ptr @fn_val(ptr %t1284, ptr @.str1022) store ptr %t1285, ptr %retval br label %ret ret: %t1286 = load ptr, ptr %retval ret ptr %t1286 } define void @fn_emit_math_prelude() { entry: call void @fn_emith(ptr @.str1023) call void @fn_emith(ptr @.str1024) call void @fn_emith(ptr @.str1025) call void @fn_emith(ptr @.str1026) call void @fn_emith(ptr @.str1027) call void @fn_emith(ptr @.str1028) call void @fn_emith(ptr @.str1029) call void @fn_emith(ptr @.str1030) call void @fn_emith(ptr @.str1031) call void @fn_emith(ptr @.str1032) call void @fn_emith(ptr @.str1033) call void @fn_emith(ptr @.str1034) call void @fn_emith(ptr @.str1035) call void @fn_emith(ptr @.str1036) call void @fn_emith(ptr @.str1037) call void @fn_emith(ptr @.str1038) call void @fn_emith(ptr @.str1039) call void @fn_emith(ptr @.str1040) call void @fn_emith(ptr @.str1041) call void @fn_emith(ptr @.str1042) call void @fn_emith(ptr @.str1043) call void @fn_emith(ptr @.str1044) call void @fn_emith(ptr @.str1045) call void @fn_emith(ptr @.str1046) call void @fn_emith(ptr @.str1047) call void @fn_emith(ptr @.str1048) call void @fn_emith(ptr @.str1049) call void @fn_emith(ptr @.str1050) call void @fn_emith(ptr @.str1051) call void @fn_emith(ptr @.str1052) call void @fn_emith(ptr @.str1053) call void @fn_emith(ptr @.str1054) call void @fn_emith(ptr @.str1055) call void @fn_emith(ptr @.str1056) call void @fn_emith(ptr @.str1057) call void @fn_emith(ptr @.str1058) call void @fn_emith(ptr @.str1059) call void @fn_emith(ptr @.str1060) call void @fn_emith(ptr @.str1061) call void @fn_emith(ptr @.str1062) call void @fn_emith(ptr @.str1063) call void @fn_emith(ptr @.str1064) call void @fn_emith(ptr @.str1065) call void @fn_emith(ptr @.str1066) call void @fn_emith(ptr @.str1067) call void @fn_emith(ptr @.str1068) call void @fn_emith(ptr @.str1069) call void @fn_emith(ptr @.str1070) call void @fn_emith(ptr @.str1071) call void @fn_emith(ptr @.str1072) call void @fn_emith(ptr @.str1073) call void @fn_emith(ptr @.str1074) call void @fn_emith(ptr @.str1075) call void @fn_emith(ptr @.str1076) call void @fn_emith(ptr @.str1077) call void @fn_emith(ptr @.str1078) call void @fn_emith(ptr @.str1079) call void @fn_emith(ptr @.str1080) call void @fn_emith(ptr @.str1081) call void @fn_emith(ptr @.str1082) call void @fn_emith(ptr @.str1083) call void @fn_emith(ptr @.str1084) call void @fn_emith(ptr @.str1085) call void @fn_emith(ptr @.str1086) call void @fn_emith(ptr @.str1087) call void @fn_emith(ptr @.str1088) call void @fn_emith(ptr @.str1089) call void @fn_emith(ptr @.str1090) call void @fn_emith(ptr @.str1091) call void @fn_emith(ptr @.str1092) call void @fn_emith(ptr @.str1093) call void @fn_emith(ptr @.str1094) call void @fn_emith(ptr @.str1095) call void @fn_emith(ptr @.str1096) call void @fn_emith(ptr @.str1097) call void @fn_emith(ptr @.str1098) call void @fn_emith(ptr @.str1099) call void @fn_emith(ptr @.str1100) call void @fn_emith(ptr @.str1101) call void @fn_emith(ptr @.str1102) call void @fn_emith(ptr @.str1103) call void @fn_emith(ptr @.str1104) call void @fn_emith(ptr @.str1105) call void @fn_emith(ptr @.str1106) call void @fn_emith(ptr @.str1107) call void @fn_emith(ptr @.str1108) call void @fn_emith(ptr @.str1109) call void @fn_emith(ptr @.str1110) call void @fn_emith(ptr @.str1111) call void @fn_emith(ptr @.str1112) call void @fn_emith(ptr @.str1113) call void @fn_emith(ptr @.str1114) call void @fn_emith(ptr @.str1115) call void @fn_emith(ptr @.str1116) call void @fn_emith(ptr @.str1117) call void @fn_emith(ptr @.str1118) call void @fn_emith(ptr @.str1119) call void @fn_emith(ptr @.str1120) call void @fn_emith(ptr @.str1121) call void @fn_emith(ptr @.str1122) call void @fn_emith(ptr @.str1123) call void @fn_emith(ptr @.str1124) call void @fn_emith(ptr @.str1125) call void @fn_emith(ptr @.str1126) call void @fn_emith(ptr @.str1127) call void @fn_emith(ptr @.str1128) call void @fn_emith(ptr @.str1129) call void @fn_emith(ptr @.str1130) call void @fn_emith(ptr @.str1131) 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 @fn_str_concat(ptr @.str1132, ptr %t2) %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str1133) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_str_concat(ptr @.str1134, ptr %t7) %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str1135) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t1 %t13 = call ptr @fn_str_concat(ptr @.str1136, ptr %t12) %t14 = call ptr @fn_str_concat(ptr %t13, ptr @.str1137) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t11 %t18 = call ptr @fn_str_concat(ptr @.str1138, ptr %t17) %t19 = call ptr @fn_str_concat(ptr %t18, ptr @.str1139) %t20 = load ptr, ptr %t16 %t21 = call ptr @fn_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 @fn_str_concat(ptr @.str1140, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str1141) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @fn_str_concat(ptr @.str1142, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str1143) %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 @fn_str_concat(ptr @.str1144, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str1145) %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 @fn_str_eq(ptr %t4, ptr @.str1146) %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 @fn_str_eq(ptr %t8, ptr @.str1147) %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 @fn_str_eq(ptr %t15, ptr @.str1148) %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 @fn_str_eq(ptr %t22, ptr @.str1149) %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 @fn_str_eq(ptr %t31, ptr @.str1150) %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 @fn_str_eq(ptr %t35, ptr @.str1151) %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 @fn_str_eq(ptr %t42, ptr @.str1152) %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 @fn_str_eq(ptr %t49, ptr @.str1153) %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 @fn_str_eq(ptr %t58, ptr @.str1154) %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 @fn_str_eq(ptr %t62, ptr @.str1155) %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 @fn_str_eq(ptr %t69, ptr @.str1156) %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 @fn_str_eq(ptr %t76, ptr @.str1157) %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 @fn_str_eq(ptr %t84, ptr @.str1158) %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 @fn_str_eq(ptr %t88, ptr @.str1159) %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 @fn_str_eq(ptr %t95, ptr @.str1160) %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 %t17 = alloca ptr %t26 = alloca ptr %t46 = alloca ptr %t63 = alloca ptr %t80 = alloca ptr %t89 = alloca ptr %t94 = alloca ptr %t99 = alloca ptr %t104 = alloca ptr %t109 = alloca ptr %t116 = alloca ptr %t123 = alloca ptr %t139 = alloca ptr %t148 = alloca ptr %t153 = alloca ptr %t158 = alloca ptr %t163 = alloca ptr %t168 = alloca ptr %t175 = alloca ptr %t182 = alloca ptr %t198 = alloca ptr %t207 = alloca ptr %t212 = alloca ptr %t217 = alloca ptr %t223 = alloca ptr %t229 = alloca ptr %t245 = alloca ptr %t254 = alloca ptr %t259 = alloca ptr %t264 = alloca ptr %t269 = alloca ptr %t274 = alloca ptr %t278 = alloca ptr %t282 = alloca ptr %t301 = alloca ptr %t306 = alloca ptr %t311 = alloca ptr %t315 = alloca ptr %t319 = alloca ptr %t326 = alloca ptr %t343 = alloca ptr %t352 = alloca ptr %t357 = alloca ptr %t362 = alloca ptr %t367 = alloca ptr %t372 = alloca ptr %t379 = alloca ptr %t386 = alloca ptr %t390 = alloca ptr %t394 = alloca ptr %t401 = alloca ptr %t418 = alloca ptr %t423 = alloca ptr %t428 = alloca ptr %t432 = alloca ptr %t436 = alloca ptr %t443 = alloca ptr %t448 = alloca ptr %t453 = alloca ptr %t460 = alloca ptr %t463 = alloca ptr %t467 = alloca ptr %t471 = alloca ptr %t487 = alloca ptr %t496 = alloca ptr %t503 = alloca ptr %t510 = alloca ptr %t515 = alloca ptr %t520 = alloca ptr %t525 = alloca ptr %t529 = alloca ptr %t533 = alloca ptr %t537 = alloca ptr %t541 = alloca ptr %t548 = alloca ptr %t555 = alloca ptr %t571 = alloca ptr %t576 = alloca ptr %t581 = alloca ptr %t601 = alloca ptr %t608 = alloca ptr %t615 = alloca ptr %t620 = alloca ptr %t633 = alloca ptr %t642 = alloca ptr %t651 = alloca ptr %t656 = alloca ptr %t661 = alloca ptr %t666 = alloca ptr %t671 = alloca ptr %t678 = alloca ptr %t685 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str1161) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_val(ptr @.str1162, ptr @.str1163) store ptr %t5, ptr %retval br label %ret ifend2: %t6 = load ptr, ptr %t0 %t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str1164) %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 ptr, ptr %t13, 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 ptr, ptr %t22, i32 1 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_emit_expr(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t17 %t28 = getelementptr inbounds %Cmp_Val, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = load ptr, ptr %t26 %t31 = getelementptr inbounds %Cmp_Val, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_vec_pack(ptr %t29, ptr %t32) %t34 = call ptr @fn_val(ptr %t33, ptr @.str1165) store ptr %t34, ptr %retval br label %ret ifend5: %t35 = load ptr, ptr %t0 %t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str1166) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then6, label %ifend8 then6: %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 ptr, ptr %t42, i32 0 %t44 = load ptr, ptr %t43 %t45 = call ptr @fn_emit_expr(ptr %t44) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_vec_x(ptr %t49) %t51 = call ptr @fn_val(ptr %t50, ptr @.str1167) store ptr %t51, ptr %retval br label %ret ifend8: %t52 = load ptr, ptr %t0 %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str1168) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then9, label %ifend11 then9: %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 ptr, ptr %t59, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_emit_expr(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_vec_y(ptr %t66) %t68 = call ptr @fn_val(ptr %t67, ptr @.str1169) store ptr %t68, ptr %retval br label %ret ifend11: %t69 = load ptr, ptr %t0 %t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str1170) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then12, label %ifend14 then12: %t72 = load ptr, ptr %t1 %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 0 %t76 = load ptr, ptr %t75 %t77 = getelementptr inbounds ptr, ptr %t76, i32 0 %t78 = load ptr, ptr %t77 %t79 = call ptr @fn_emit_expr(ptr %t78) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t1 %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 0 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds ptr, ptr %t85, i32 1 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_emit_expr(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t80 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_vec_x(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t80 %t96 = getelementptr inbounds %Cmp_Val, ptr %t95, i32 0, i32 0 %t97 = load ptr, ptr %t96 %t98 = call ptr @fn_vec_y(ptr %t97) store ptr %t98, ptr %t99 %t100 = load ptr, ptr %t89 %t101 = getelementptr inbounds %Cmp_Val, ptr %t100, i32 0, i32 0 %t102 = load ptr, ptr %t101 %t103 = call ptr @fn_vec_x(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t89 %t106 = getelementptr inbounds %Cmp_Val, ptr %t105, i32 0, i32 0 %t107 = load ptr, ptr %t106 %t108 = call ptr @fn_vec_y(ptr %t107) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t94 %t111 = call ptr @fn_str_concat(ptr @.str1171, ptr %t110) %t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str1172) %t113 = load ptr, ptr %t104 %t114 = call ptr @fn_str_concat(ptr %t112, ptr %t113) %t115 = call ptr @fn_emit_bind(ptr %t114) store ptr %t115, ptr %t116 %t117 = load ptr, ptr %t99 %t118 = call ptr @fn_str_concat(ptr @.str1173, ptr %t117) %t119 = call ptr @fn_str_concat(ptr %t118, ptr @.str1174) %t120 = load ptr, ptr %t109 %t121 = call ptr @fn_str_concat(ptr %t119, ptr %t120) %t122 = call ptr @fn_emit_bind(ptr %t121) store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t116 %t125 = load ptr, ptr %t123 %t126 = call ptr @fn_vec_pack(ptr %t124, ptr %t125) %t127 = call ptr @fn_val(ptr %t126, ptr @.str1175) store ptr %t127, ptr %retval br label %ret ifend14: %t128 = load ptr, ptr %t0 %t129 = call i32 @fn_str_eq(ptr %t128, ptr @.str1176) %t130 = icmp ne i32 %t129, 0 br i1 %t130, label %then15, label %ifend17 then15: %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 ptr, ptr %t135, i32 0 %t137 = load ptr, ptr %t136 %t138 = call ptr @fn_emit_expr(ptr %t137) store 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 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = getelementptr inbounds ptr, ptr %t144, i32 1 %t146 = load ptr, ptr %t145 %t147 = call ptr @fn_emit_expr(ptr %t146) store ptr %t147, ptr %t148 %t149 = load ptr, ptr %t139 %t150 = getelementptr inbounds %Cmp_Val, ptr %t149, i32 0, i32 0 %t151 = load ptr, ptr %t150 %t152 = call ptr @fn_vec_x(ptr %t151) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t139 %t155 = getelementptr inbounds %Cmp_Val, ptr %t154, i32 0, i32 0 %t156 = load ptr, ptr %t155 %t157 = call ptr @fn_vec_y(ptr %t156) store ptr %t157, ptr %t158 %t159 = load ptr, ptr %t148 %t160 = getelementptr inbounds %Cmp_Val, ptr %t159, i32 0, i32 0 %t161 = load ptr, ptr %t160 %t162 = call ptr @fn_vec_x(ptr %t161) store ptr %t162, ptr %t163 %t164 = load ptr, ptr %t148 %t165 = getelementptr inbounds %Cmp_Val, ptr %t164, i32 0, i32 0 %t166 = load ptr, ptr %t165 %t167 = call ptr @fn_vec_y(ptr %t166) store ptr %t167, ptr %t168 %t169 = load ptr, ptr %t153 %t170 = call ptr @fn_str_concat(ptr @.str1177, ptr %t169) %t171 = call ptr @fn_str_concat(ptr %t170, ptr @.str1178) %t172 = load ptr, ptr %t163 %t173 = call ptr @fn_str_concat(ptr %t171, ptr %t172) %t174 = call ptr @fn_emit_bind(ptr %t173) store ptr %t174, ptr %t175 %t176 = load ptr, ptr %t158 %t177 = call ptr @fn_str_concat(ptr @.str1179, ptr %t176) %t178 = call ptr @fn_str_concat(ptr %t177, ptr @.str1180) %t179 = load ptr, ptr %t168 %t180 = call ptr @fn_str_concat(ptr %t178, ptr %t179) %t181 = call ptr @fn_emit_bind(ptr %t180) store ptr %t181, ptr %t182 %t183 = load ptr, ptr %t175 %t184 = load ptr, ptr %t182 %t185 = call ptr @fn_vec_pack(ptr %t183, ptr %t184) %t186 = call ptr @fn_val(ptr %t185, ptr @.str1181) store ptr %t186, ptr %retval br label %ret ifend17: %t187 = load ptr, ptr %t0 %t188 = call i32 @fn_str_eq(ptr %t187, ptr @.str1182) %t189 = icmp ne i32 %t188, 0 br i1 %t189, label %then18, label %ifend20 then18: %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 ptr, ptr %t194, i32 0 %t196 = load ptr, ptr %t195 %t197 = call ptr @fn_emit_expr(ptr %t196) store ptr %t197, ptr %t198 %t199 = load ptr, ptr %t1 %t200 = getelementptr inbounds %Cmp_Node, ptr %t199, i32 0, i32 7 %t201 = load ptr, ptr %t200 %t202 = getelementptr inbounds %LSlice, ptr %t201, i32 0, i32 0 %t203 = load ptr, ptr %t202 %t204 = getelementptr inbounds ptr, ptr %t203, i32 1 %t205 = load ptr, ptr %t204 %t206 = call ptr @fn_emit_expr(ptr %t205) store ptr %t206, ptr %t207 %t208 = load ptr, ptr %t198 %t209 = getelementptr inbounds %Cmp_Val, ptr %t208, i32 0, i32 0 %t210 = load ptr, ptr %t209 %t211 = call ptr @fn_vec_x(ptr %t210) store ptr %t211, ptr %t212 %t213 = load ptr, ptr %t198 %t214 = getelementptr inbounds %Cmp_Val, ptr %t213, i32 0, i32 0 %t215 = load ptr, ptr %t214 %t216 = call ptr @fn_vec_y(ptr %t215) store ptr %t216, ptr %t217 %t218 = load ptr, ptr %t212 %t219 = load ptr, ptr %t207 %t220 = getelementptr inbounds %Cmp_Val, ptr %t219, i32 0, i32 0 %t221 = load ptr, ptr %t220 %t222 = call ptr @fn_fx_mul_code(ptr %t218, ptr %t221) store ptr %t222, ptr %t223 %t224 = load ptr, ptr %t217 %t225 = load ptr, ptr %t207 %t226 = getelementptr inbounds %Cmp_Val, ptr %t225, i32 0, i32 0 %t227 = load ptr, ptr %t226 %t228 = call ptr @fn_fx_mul_code(ptr %t224, ptr %t227) store ptr %t228, ptr %t229 %t230 = load ptr, ptr %t223 %t231 = load ptr, ptr %t229 %t232 = call ptr @fn_vec_pack(ptr %t230, ptr %t231) %t233 = call ptr @fn_val(ptr %t232, ptr @.str1183) store ptr %t233, ptr %retval br label %ret ifend20: %t234 = load ptr, ptr %t0 %t235 = call i32 @fn_str_eq(ptr %t234, ptr @.str1184) %t236 = icmp ne i32 %t235, 0 br i1 %t236, label %then21, label %ifend23 then21: %t237 = load ptr, ptr %t1 %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 ptr, ptr %t241, i32 0 %t243 = load ptr, ptr %t242 %t244 = call ptr @fn_emit_expr(ptr %t243) store ptr %t244, ptr %t245 %t246 = load ptr, ptr %t1 %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 0 %t250 = load ptr, ptr %t249 %t251 = getelementptr inbounds ptr, ptr %t250, i32 1 %t252 = load ptr, ptr %t251 %t253 = call ptr @fn_emit_expr(ptr %t252) store ptr %t253, ptr %t254 %t255 = load ptr, ptr %t245 %t256 = getelementptr inbounds %Cmp_Val, ptr %t255, i32 0, i32 0 %t257 = load ptr, ptr %t256 %t258 = call ptr @fn_vec_x(ptr %t257) store ptr %t258, ptr %t259 %t260 = load ptr, ptr %t245 %t261 = getelementptr inbounds %Cmp_Val, ptr %t260, i32 0, i32 0 %t262 = load ptr, ptr %t261 %t263 = call ptr @fn_vec_y(ptr %t262) store ptr %t263, ptr %t264 %t265 = load ptr, ptr %t254 %t266 = getelementptr inbounds %Cmp_Val, ptr %t265, i32 0, i32 0 %t267 = load ptr, ptr %t266 %t268 = call ptr @fn_vec_x(ptr %t267) store ptr %t268, ptr %t269 %t270 = load ptr, ptr %t254 %t271 = getelementptr inbounds %Cmp_Val, ptr %t270, i32 0, i32 0 %t272 = load ptr, ptr %t271 %t273 = call ptr @fn_vec_y(ptr %t272) store ptr %t273, ptr %t274 %t275 = load ptr, ptr %t259 %t276 = load ptr, ptr %t269 %t277 = call ptr @fn_fx_mul_code(ptr %t275, ptr %t276) store ptr %t277, ptr %t278 %t279 = load ptr, ptr %t264 %t280 = load ptr, ptr %t274 %t281 = call ptr @fn_fx_mul_code(ptr %t279, ptr %t280) store ptr %t281, ptr %t282 %t283 = load ptr, ptr %t278 %t284 = call ptr @fn_str_concat(ptr @.str1185, ptr %t283) %t285 = call ptr @fn_str_concat(ptr %t284, ptr @.str1186) %t286 = load ptr, ptr %t282 %t287 = call ptr @fn_str_concat(ptr %t285, ptr %t286) %t288 = call ptr @fn_emit_bind(ptr %t287) %t289 = call ptr @fn_val(ptr %t288, ptr @.str1187) store ptr %t289, ptr %retval br label %ret ifend23: %t290 = load ptr, ptr %t0 %t291 = call i32 @fn_str_eq(ptr %t290, ptr @.str1188) %t292 = icmp ne i32 %t291, 0 br i1 %t292, label %then24, label %ifend26 then24: store i32 1, ptr @g_g_uses_mathrt %t293 = load ptr, ptr %t1 %t294 = getelementptr inbounds %Cmp_Node, ptr %t293, i32 0, i32 7 %t295 = load ptr, ptr %t294 %t296 = getelementptr inbounds %LSlice, ptr %t295, i32 0, i32 0 %t297 = load ptr, ptr %t296 %t298 = getelementptr inbounds ptr, ptr %t297, i32 0 %t299 = load ptr, ptr %t298 %t300 = call ptr @fn_emit_expr(ptr %t299) store ptr %t300, ptr %t301 %t302 = load ptr, ptr %t301 %t303 = getelementptr inbounds %Cmp_Val, ptr %t302, i32 0, i32 0 %t304 = load ptr, ptr %t303 %t305 = call ptr @fn_vec_x(ptr %t304) store ptr %t305, ptr %t306 %t307 = load ptr, ptr %t301 %t308 = getelementptr inbounds %Cmp_Val, ptr %t307, i32 0, i32 0 %t309 = load ptr, ptr %t308 %t310 = call ptr @fn_vec_y(ptr %t309) store ptr %t310, ptr %t311 %t312 = load ptr, ptr %t306 %t313 = load ptr, ptr %t306 %t314 = call ptr @fn_fx_mul_code(ptr %t312, ptr %t313) store ptr %t314, ptr %t315 %t316 = load ptr, ptr %t311 %t317 = load ptr, ptr %t311 %t318 = call ptr @fn_fx_mul_code(ptr %t316, ptr %t317) store ptr %t318, ptr %t319 %t320 = load ptr, ptr %t315 %t321 = call ptr @fn_str_concat(ptr @.str1189, ptr %t320) %t322 = call ptr @fn_str_concat(ptr %t321, ptr @.str1190) %t323 = load ptr, ptr %t319 %t324 = call ptr @fn_str_concat(ptr %t322, ptr %t323) %t325 = call ptr @fn_emit_bind(ptr %t324) store ptr %t325, ptr %t326 %t327 = load ptr, ptr %t326 %t328 = call ptr @fn_str_concat(ptr @.str1191, ptr %t327) %t329 = call ptr @fn_str_concat(ptr %t328, ptr @.str1192) %t330 = call ptr @fn_emit_bind(ptr %t329) %t331 = call ptr @fn_val(ptr %t330, ptr @.str1193) store ptr %t331, ptr %retval br label %ret ifend26: %t332 = load ptr, ptr %t0 %t333 = call i32 @fn_str_eq(ptr %t332, ptr @.str1194) %t334 = icmp ne i32 %t333, 0 br i1 %t334, label %then27, label %ifend29 then27: store i32 1, ptr @g_g_uses_mathrt %t335 = load ptr, ptr %t1 %t336 = getelementptr inbounds %Cmp_Node, ptr %t335, i32 0, i32 7 %t337 = load ptr, ptr %t336 %t338 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 0 %t339 = load ptr, ptr %t338 %t340 = getelementptr inbounds ptr, ptr %t339, i32 0 %t341 = load ptr, ptr %t340 %t342 = call ptr @fn_emit_expr(ptr %t341) store ptr %t342, ptr %t343 %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 ptr, ptr %t348, i32 1 %t350 = load ptr, ptr %t349 %t351 = call ptr @fn_emit_expr(ptr %t350) store ptr %t351, ptr %t352 %t353 = load ptr, ptr %t343 %t354 = getelementptr inbounds %Cmp_Val, ptr %t353, i32 0, i32 0 %t355 = load ptr, ptr %t354 %t356 = call ptr @fn_vec_x(ptr %t355) store ptr %t356, ptr %t357 %t358 = load ptr, ptr %t343 %t359 = getelementptr inbounds %Cmp_Val, ptr %t358, i32 0, i32 0 %t360 = load ptr, ptr %t359 %t361 = call ptr @fn_vec_y(ptr %t360) store ptr %t361, ptr %t362 %t363 = load ptr, ptr %t352 %t364 = getelementptr inbounds %Cmp_Val, ptr %t363, i32 0, i32 0 %t365 = load ptr, ptr %t364 %t366 = call ptr @fn_vec_x(ptr %t365) store ptr %t366, ptr %t367 %t368 = load ptr, ptr %t352 %t369 = getelementptr inbounds %Cmp_Val, ptr %t368, i32 0, i32 0 %t370 = load ptr, ptr %t369 %t371 = call ptr @fn_vec_y(ptr %t370) store ptr %t371, ptr %t372 %t373 = load ptr, ptr %t357 %t374 = call ptr @fn_str_concat(ptr @.str1195, ptr %t373) %t375 = call ptr @fn_str_concat(ptr %t374, ptr @.str1196) %t376 = load ptr, ptr %t367 %t377 = call ptr @fn_str_concat(ptr %t375, ptr %t376) %t378 = call ptr @fn_emit_bind(ptr %t377) store ptr %t378, ptr %t379 %t380 = load ptr, ptr %t362 %t381 = call ptr @fn_str_concat(ptr @.str1197, ptr %t380) %t382 = call ptr @fn_str_concat(ptr %t381, ptr @.str1198) %t383 = load ptr, ptr %t372 %t384 = call ptr @fn_str_concat(ptr %t382, ptr %t383) %t385 = call ptr @fn_emit_bind(ptr %t384) store ptr %t385, ptr %t386 %t387 = load ptr, ptr %t379 %t388 = load ptr, ptr %t379 %t389 = call ptr @fn_fx_mul_code(ptr %t387, ptr %t388) store ptr %t389, ptr %t390 %t391 = load ptr, ptr %t386 %t392 = load ptr, ptr %t386 %t393 = call ptr @fn_fx_mul_code(ptr %t391, ptr %t392) store ptr %t393, ptr %t394 %t395 = load ptr, ptr %t390 %t396 = call ptr @fn_str_concat(ptr @.str1199, ptr %t395) %t397 = call ptr @fn_str_concat(ptr %t396, ptr @.str1200) %t398 = load ptr, ptr %t394 %t399 = call ptr @fn_str_concat(ptr %t397, ptr %t398) %t400 = call ptr @fn_emit_bind(ptr %t399) store ptr %t400, ptr %t401 %t402 = load ptr, ptr %t401 %t403 = call ptr @fn_str_concat(ptr @.str1201, ptr %t402) %t404 = call ptr @fn_str_concat(ptr %t403, ptr @.str1202) %t405 = call ptr @fn_emit_bind(ptr %t404) %t406 = call ptr @fn_val(ptr %t405, ptr @.str1203) store ptr %t406, ptr %retval br label %ret ifend29: %t407 = load ptr, ptr %t0 %t408 = call i32 @fn_str_eq(ptr %t407, ptr @.str1204) %t409 = icmp ne i32 %t408, 0 br i1 %t409, label %then30, label %ifend32 then30: store i32 1, ptr @g_g_uses_mathrt %t410 = load ptr, ptr %t1 %t411 = getelementptr inbounds %Cmp_Node, ptr %t410, i32 0, i32 7 %t412 = load ptr, ptr %t411 %t413 = getelementptr inbounds %LSlice, ptr %t412, i32 0, i32 0 %t414 = load ptr, ptr %t413 %t415 = getelementptr inbounds ptr, ptr %t414, i32 0 %t416 = load ptr, ptr %t415 %t417 = call ptr @fn_emit_expr(ptr %t416) store ptr %t417, ptr %t418 %t419 = load ptr, ptr %t418 %t420 = getelementptr inbounds %Cmp_Val, ptr %t419, i32 0, i32 0 %t421 = load ptr, ptr %t420 %t422 = call ptr @fn_vec_x(ptr %t421) store ptr %t422, ptr %t423 %t424 = load ptr, ptr %t418 %t425 = getelementptr inbounds %Cmp_Val, ptr %t424, i32 0, i32 0 %t426 = load ptr, ptr %t425 %t427 = call ptr @fn_vec_y(ptr %t426) store ptr %t427, ptr %t428 %t429 = load ptr, ptr %t423 %t430 = load ptr, ptr %t423 %t431 = call ptr @fn_fx_mul_code(ptr %t429, ptr %t430) store ptr %t431, ptr %t432 %t433 = load ptr, ptr %t428 %t434 = load ptr, ptr %t428 %t435 = call ptr @fn_fx_mul_code(ptr %t433, ptr %t434) store ptr %t435, ptr %t436 %t437 = load ptr, ptr %t432 %t438 = call ptr @fn_str_concat(ptr @.str1205, ptr %t437) %t439 = call ptr @fn_str_concat(ptr %t438, ptr @.str1206) %t440 = load ptr, ptr %t436 %t441 = call ptr @fn_str_concat(ptr %t439, ptr %t440) %t442 = call ptr @fn_emit_bind(ptr %t441) store ptr %t442, ptr %t443 %t444 = load ptr, ptr %t443 %t445 = call ptr @fn_str_concat(ptr @.str1207, ptr %t444) %t446 = call ptr @fn_str_concat(ptr %t445, ptr @.str1208) %t447 = call ptr @fn_emit_bind(ptr %t446) store ptr %t447, ptr %t448 %t449 = load ptr, ptr %t448 %t450 = call ptr @fn_str_concat(ptr @.str1209, ptr %t449) %t451 = call ptr @fn_str_concat(ptr %t450, ptr @.str1210) %t452 = call ptr @fn_emit_bind(ptr %t451) store ptr %t452, ptr %t453 %t454 = load ptr, ptr %t453 %t455 = call ptr @fn_str_concat(ptr @.str1211, ptr %t454) %t456 = call ptr @fn_str_concat(ptr %t455, ptr @.str1212) %t457 = load ptr, ptr %t448 %t458 = call ptr @fn_str_concat(ptr %t456, ptr %t457) %t459 = call ptr @fn_emit_bind(ptr %t458) store ptr %t459, ptr %t460 %t461 = load ptr, ptr %t460 %t462 = call ptr @fn_fx_div_code(ptr @.str1213, ptr %t461) store ptr %t462, ptr %t463 %t464 = load ptr, ptr %t423 %t465 = load ptr, ptr %t463 %t466 = call ptr @fn_fx_mul_code(ptr %t464, ptr %t465) store ptr %t466, ptr %t467 %t468 = load ptr, ptr %t428 %t469 = load ptr, ptr %t463 %t470 = call ptr @fn_fx_mul_code(ptr %t468, ptr %t469) store ptr %t470, ptr %t471 %t472 = load ptr, ptr %t467 %t473 = load ptr, ptr %t471 %t474 = call ptr @fn_vec_pack(ptr %t472, ptr %t473) %t475 = call ptr @fn_val(ptr %t474, ptr @.str1214) store ptr %t475, ptr %retval br label %ret ifend32: %t476 = load ptr, ptr %t0 %t477 = call i32 @fn_str_eq(ptr %t476, ptr @.str1215) %t478 = icmp ne i32 %t477, 0 br i1 %t478, label %then33, label %ifend35 then33: store i32 1, ptr @g_g_uses_mathrt %t479 = load ptr, ptr %t1 %t480 = getelementptr inbounds %Cmp_Node, ptr %t479, i32 0, i32 7 %t481 = load ptr, ptr %t480 %t482 = getelementptr inbounds %LSlice, ptr %t481, i32 0, i32 0 %t483 = load ptr, ptr %t482 %t484 = getelementptr inbounds ptr, ptr %t483, i32 0 %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 ptr, ptr %t492, i32 1 %t494 = load ptr, ptr %t493 %t495 = call ptr @fn_emit_expr(ptr %t494) store ptr %t495, ptr %t496 %t497 = load ptr, ptr %t496 %t498 = getelementptr inbounds %Cmp_Val, ptr %t497, i32 0, i32 0 %t499 = load ptr, ptr %t498 %t500 = call ptr @fn_str_concat(ptr @.str1216, ptr %t499) %t501 = call ptr @fn_str_concat(ptr %t500, ptr @.str1217) %t502 = call ptr @fn_emit_bind(ptr %t501) store ptr %t502, ptr %t503 %t504 = load ptr, ptr %t496 %t505 = getelementptr inbounds %Cmp_Val, ptr %t504, i32 0, i32 0 %t506 = load ptr, ptr %t505 %t507 = call ptr @fn_str_concat(ptr @.str1218, ptr %t506) %t508 = call ptr @fn_str_concat(ptr %t507, ptr @.str1219) %t509 = call ptr @fn_emit_bind(ptr %t508) store ptr %t509, ptr %t510 %t511 = load ptr, ptr %t510 %t512 = call ptr @fn_str_concat(ptr @.str1220, ptr %t511) %t513 = call ptr @fn_str_concat(ptr %t512, ptr @.str1221) %t514 = call ptr @fn_emit_bind(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_x(ptr %t518) store ptr %t519, ptr %t520 %t521 = load ptr, ptr %t487 %t522 = getelementptr inbounds %Cmp_Val, ptr %t521, i32 0, i32 0 %t523 = load ptr, ptr %t522 %t524 = call ptr @fn_vec_y(ptr %t523) store ptr %t524, ptr %t525 %t526 = load ptr, ptr %t520 %t527 = load ptr, ptr %t515 %t528 = call ptr @fn_fx_mul_code(ptr %t526, ptr %t527) store ptr %t528, ptr %t529 %t530 = load ptr, ptr %t525 %t531 = load ptr, ptr %t503 %t532 = call ptr @fn_fx_mul_code(ptr %t530, ptr %t531) store ptr %t532, ptr %t533 %t534 = load ptr, ptr %t520 %t535 = load ptr, ptr %t503 %t536 = call ptr @fn_fx_mul_code(ptr %t534, ptr %t535) store ptr %t536, ptr %t537 %t538 = load ptr, ptr %t525 %t539 = load ptr, ptr %t515 %t540 = call ptr @fn_fx_mul_code(ptr %t538, ptr %t539) store ptr %t540, ptr %t541 %t542 = load ptr, ptr %t529 %t543 = call ptr @fn_str_concat(ptr @.str1222, ptr %t542) %t544 = call ptr @fn_str_concat(ptr %t543, ptr @.str1223) %t545 = load ptr, ptr %t533 %t546 = call ptr @fn_str_concat(ptr %t544, ptr %t545) %t547 = call ptr @fn_emit_bind(ptr %t546) store ptr %t547, ptr %t548 %t549 = load ptr, ptr %t537 %t550 = call ptr @fn_str_concat(ptr @.str1224, ptr %t549) %t551 = call ptr @fn_str_concat(ptr %t550, ptr @.str1225) %t552 = load ptr, ptr %t541 %t553 = call ptr @fn_str_concat(ptr %t551, ptr %t552) %t554 = call ptr @fn_emit_bind(ptr %t553) store ptr %t554, ptr %t555 %t556 = load ptr, ptr %t548 %t557 = load ptr, ptr %t555 %t558 = call ptr @fn_vec_pack(ptr %t556, ptr %t557) %t559 = call ptr @fn_val(ptr %t558, ptr @.str1226) store ptr %t559, ptr %retval br label %ret ifend35: %t560 = load ptr, ptr %t0 %t561 = call i32 @fn_str_eq(ptr %t560, ptr @.str1227) %t562 = icmp ne i32 %t561, 0 br i1 %t562, label %then36, label %ifend38 then36: store i32 1, ptr @g_g_uses_mathrt %t563 = load ptr, ptr %t1 %t564 = getelementptr inbounds %Cmp_Node, ptr %t563, i32 0, i32 7 %t565 = load ptr, ptr %t564 %t566 = getelementptr inbounds %LSlice, ptr %t565, i32 0, i32 0 %t567 = load ptr, ptr %t566 %t568 = getelementptr inbounds ptr, ptr %t567, i32 0 %t569 = load ptr, ptr %t568 %t570 = call ptr @fn_emit_expr(ptr %t569) store ptr %t570, ptr %t571 %t572 = load ptr, ptr %t571 %t573 = getelementptr inbounds %Cmp_Val, ptr %t572, i32 0, i32 0 %t574 = load ptr, ptr %t573 %t575 = call ptr @fn_vec_x(ptr %t574) store ptr %t575, ptr %t576 %t577 = load ptr, ptr %t571 %t578 = getelementptr inbounds %Cmp_Val, ptr %t577, i32 0, i32 0 %t579 = load ptr, ptr %t578 %t580 = call ptr @fn_vec_y(ptr %t579) store ptr %t580, ptr %t581 %t582 = load ptr, ptr %t581 %t583 = call ptr @fn_str_concat(ptr @.str1228, ptr %t582) %t584 = call ptr @fn_str_concat(ptr %t583, ptr @.str1229) %t585 = load ptr, ptr %t576 %t586 = call ptr @fn_str_concat(ptr %t584, ptr %t585) %t587 = call ptr @fn_str_concat(ptr %t586, ptr @.str1230) %t588 = call ptr @fn_emit_bind(ptr %t587) %t589 = call ptr @fn_val(ptr %t588, ptr @.str1231) store ptr %t589, ptr %retval br label %ret ifend38: %t590 = load ptr, ptr %t0 %t591 = call i32 @fn_str_eq(ptr %t590, ptr @.str1232) %t592 = icmp ne i32 %t591, 0 br i1 %t592, label %then39, label %ifend41 then39: store i32 1, ptr @g_g_uses_mathrt %t593 = load ptr, ptr %t1 %t594 = getelementptr inbounds %Cmp_Node, ptr %t593, i32 0, i32 7 %t595 = load ptr, ptr %t594 %t596 = getelementptr inbounds %LSlice, ptr %t595, i32 0, i32 0 %t597 = load ptr, ptr %t596 %t598 = getelementptr inbounds ptr, ptr %t597, i32 0 %t599 = load ptr, ptr %t598 %t600 = call ptr @fn_emit_expr(ptr %t599) store ptr %t600, ptr %t601 %t602 = load ptr, ptr %t601 %t603 = getelementptr inbounds %Cmp_Val, ptr %t602, i32 0, i32 0 %t604 = load ptr, ptr %t603 %t605 = call ptr @fn_str_concat(ptr @.str1233, ptr %t604) %t606 = call ptr @fn_str_concat(ptr %t605, ptr @.str1234) %t607 = call ptr @fn_emit_bind(ptr %t606) store ptr %t607, ptr %t608 %t609 = load ptr, ptr %t601 %t610 = getelementptr inbounds %Cmp_Val, ptr %t609, i32 0, i32 0 %t611 = load ptr, ptr %t610 %t612 = call ptr @fn_str_concat(ptr @.str1235, ptr %t611) %t613 = call ptr @fn_str_concat(ptr %t612, ptr @.str1236) %t614 = call ptr @fn_emit_bind(ptr %t613) store ptr %t614, ptr %t615 %t616 = load ptr, ptr %t615 %t617 = call ptr @fn_str_concat(ptr @.str1237, ptr %t616) %t618 = call ptr @fn_str_concat(ptr %t617, ptr @.str1238) %t619 = call ptr @fn_emit_bind(ptr %t618) store ptr %t619, ptr %t620 %t621 = load ptr, ptr %t620 %t622 = load ptr, ptr %t608 %t623 = call ptr @fn_vec_pack(ptr %t621, ptr %t622) %t624 = call ptr @fn_val(ptr %t623, ptr @.str1239) store ptr %t624, ptr %retval br label %ret ifend41: %t625 = load ptr, ptr %t1 %t626 = getelementptr inbounds %Cmp_Node, ptr %t625, i32 0, i32 7 %t627 = load ptr, ptr %t626 %t628 = getelementptr inbounds %LSlice, ptr %t627, i32 0, i32 0 %t629 = load ptr, ptr %t628 %t630 = getelementptr inbounds ptr, ptr %t629, i32 0 %t631 = load ptr, ptr %t630 %t632 = call ptr @fn_emit_expr(ptr %t631) store ptr %t632, ptr %t633 %t634 = load ptr, ptr %t1 %t635 = getelementptr inbounds %Cmp_Node, ptr %t634, i32 0, i32 7 %t636 = load ptr, ptr %t635 %t637 = getelementptr inbounds %LSlice, ptr %t636, i32 0, i32 0 %t638 = load ptr, ptr %t637 %t639 = getelementptr inbounds ptr, ptr %t638, i32 1 %t640 = load ptr, ptr %t639 %t641 = call ptr @fn_emit_expr(ptr %t640) store ptr %t641, ptr %t642 %t643 = load ptr, ptr %t1 %t644 = getelementptr inbounds %Cmp_Node, ptr %t643, i32 0, i32 7 %t645 = load ptr, ptr %t644 %t646 = getelementptr inbounds %LSlice, ptr %t645, i32 0, i32 0 %t647 = load ptr, ptr %t646 %t648 = getelementptr inbounds ptr, ptr %t647, i32 2 %t649 = load ptr, ptr %t648 %t650 = call ptr @fn_emit_expr(ptr %t649) store ptr %t650, ptr %t651 %t652 = load ptr, ptr %t633 %t653 = getelementptr inbounds %Cmp_Val, ptr %t652, i32 0, i32 0 %t654 = load ptr, ptr %t653 %t655 = call ptr @fn_vec_x(ptr %t654) store ptr %t655, ptr %t656 %t657 = load ptr, ptr %t633 %t658 = getelementptr inbounds %Cmp_Val, ptr %t657, i32 0, i32 0 %t659 = load ptr, ptr %t658 %t660 = call ptr @fn_vec_y(ptr %t659) store ptr %t660, ptr %t661 %t662 = load ptr, ptr %t642 %t663 = getelementptr inbounds %Cmp_Val, ptr %t662, i32 0, i32 0 %t664 = load ptr, ptr %t663 %t665 = call ptr @fn_vec_x(ptr %t664) store ptr %t665, ptr %t666 %t667 = load ptr, ptr %t642 %t668 = getelementptr inbounds %Cmp_Val, ptr %t667, i32 0, i32 0 %t669 = load ptr, ptr %t668 %t670 = call ptr @fn_vec_y(ptr %t669) store ptr %t670, ptr %t671 %t672 = load ptr, ptr %t656 %t673 = load ptr, ptr %t666 %t674 = load ptr, ptr %t651 %t675 = getelementptr inbounds %Cmp_Val, ptr %t674, i32 0, i32 0 %t676 = load ptr, ptr %t675 %t677 = call ptr @fn_fx_lerp_code(ptr %t672, ptr %t673, ptr %t676) store ptr %t677, ptr %t678 %t679 = load ptr, ptr %t661 %t680 = load ptr, ptr %t671 %t681 = load ptr, ptr %t651 %t682 = getelementptr inbounds %Cmp_Val, ptr %t681, i32 0, i32 0 %t683 = load ptr, ptr %t682 %t684 = call ptr @fn_fx_lerp_code(ptr %t679, ptr %t680, ptr %t683) store ptr %t684, ptr %t685 %t686 = load ptr, ptr %t678 %t687 = load ptr, ptr %t685 %t688 = call ptr @fn_vec_pack(ptr %t686, ptr %t687) %t689 = call ptr @fn_val(ptr %t688, ptr @.str1240) store ptr %t689, ptr %retval br label %ret ret: %t690 = load ptr, ptr %retval ret ptr %t690 } 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 %t47 = alloca i32 %t58 = alloca i32 %t69 = alloca i32 %t70 = alloca i32 %t71 = alloca i32 %t96 = alloca i32 %t107 = alloca i32 %t108 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str1241) %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_str_eq(ptr %t7, ptr @.str1242) %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_str_eq(ptr %t14, ptr @.str1243) %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 @fn_str_eq(ptr %t23, ptr @.str1244) %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 @fn_str_eq(ptr %t27, ptr @.str1245) %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 @fn_str_eq(ptr %t34, ptr @.str1246) %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 @fn_str_eq(ptr %t41, ptr @.str1247) %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: %t48 = load ptr, ptr %t0 %t49 = call i32 @fn_str_eq(ptr %t48, ptr @.str1248) %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 @fn_str_eq(ptr %t52, ptr @.str1249) %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: %t59 = load ptr, ptr %t0 %t60 = call i32 @fn_str_eq(ptr %t59, ptr @.str1250) %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t58 br i1 %t61, label %scend22, label %sc21 sc21: %t63 = load ptr, ptr %t0 %t64 = call i32 @fn_str_eq(ptr %t63, ptr @.str1251) %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t58 br label %scend22 scend22: %t67 = load i32, ptr %t58 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then23, label %ifend25 then23: store i32 1, ptr %retval br label %ret ifend25: %t72 = load ptr, ptr %t0 %t73 = call i32 @fn_str_eq(ptr %t72, ptr @.str1252) %t74 = icmp ne i32 %t73, 0 %t75 = zext i1 %t74 to i32 store i32 %t75, ptr %t71 br i1 %t74, label %scend27, label %sc26 sc26: %t76 = load ptr, ptr %t0 %t77 = call i32 @fn_str_eq(ptr %t76, ptr @.str1253) %t78 = icmp ne i32 %t77, 0 %t79 = zext i1 %t78 to i32 store i32 %t79, ptr %t71 br label %scend27 scend27: %t80 = load i32, ptr %t71 %t81 = icmp ne i32 %t80, 0 %t82 = zext i1 %t81 to i32 store i32 %t82, ptr %t70 br i1 %t81, label %scend29, label %sc28 sc28: %t83 = load ptr, ptr %t0 %t84 = call i32 @fn_str_eq(ptr %t83, ptr @.str1254) %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t70 br label %scend29 scend29: %t87 = load i32, ptr %t70 %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t69 br i1 %t88, label %scend31, label %sc30 sc30: %t90 = load ptr, ptr %t0 %t91 = call i32 @fn_str_eq(ptr %t90, ptr @.str1255) %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t69 br label %scend31 scend31: %t94 = load i32, ptr %t69 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then32, label %ifend34 then32: store i32 1, ptr %retval br label %ret ifend34: %t97 = load ptr, ptr %t0 %t98 = call i32 @fn_str_eq(ptr %t97, ptr @.str1256) %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t96 br i1 %t99, label %scend36, label %sc35 sc35: %t101 = load ptr, ptr %t0 %t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str1257) %t103 = icmp ne i32 %t102, 0 %t104 = zext i1 %t103 to i32 store i32 %t104, ptr %t96 br label %scend36 scend36: %t105 = load i32, ptr %t96 %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then37, label %ifend39 then37: store i32 1, ptr %retval br label %ret ifend39: %t109 = load ptr, ptr %t0 %t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str1258) %t111 = icmp ne i32 %t110, 0 %t112 = zext i1 %t111 to i32 store i32 %t112, ptr %t108 br i1 %t111, label %scend41, label %sc40 sc40: %t113 = load ptr, ptr %t0 %t114 = call i32 @fn_str_eq(ptr %t113, ptr @.str1259) %t115 = icmp ne i32 %t114, 0 %t116 = zext i1 %t115 to i32 store i32 %t116, ptr %t108 br label %scend41 scend41: %t117 = load i32, ptr %t108 %t118 = icmp ne i32 %t117, 0 %t119 = zext i1 %t118 to i32 store i32 %t119, ptr %t107 br i1 %t118, label %scend43, label %sc42 sc42: %t120 = load ptr, ptr %t0 %t121 = call i32 @fn_str_eq(ptr %t120, ptr @.str1260) %t122 = icmp ne i32 %t121, 0 %t123 = zext i1 %t122 to i32 store i32 %t123, ptr %t107 br label %scend43 scend43: %t124 = load i32, ptr %t107 %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then44, label %ifend46 then44: store i32 1, ptr %retval br label %ret ifend46: store i32 0, ptr %retval br label %ret ret: %t126 = load i32, ptr %retval ret i32 %t126 } define ptr @fn_emit_text_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t13 = alloca ptr %t32 = alloca ptr %t41 = alloca ptr %t50 = alloca ptr %t79 = alloca ptr %t88 = alloca ptr %t112 = alloca ptr %t121 = alloca ptr %t142 = alloca ptr %t152 = alloca ptr %t169 = alloca ptr %t180 = alloca ptr %t184 = alloca ptr %t241 = alloca ptr %t265 = alloca ptr %t289 = alloca ptr %t313 = alloca ptr %t322 = alloca ptr %t351 = alloca ptr %t375 = alloca ptr %t388 = alloca i32 %t407 = alloca ptr %t419 = alloca ptr %t427 = alloca ptr %t437 = alloca ptr %t442 = alloca ptr %t449 = alloca ptr %t456 = alloca ptr %t461 = alloca ptr %t477 = alloca ptr %t484 = alloca ptr %t502 = alloca ptr %t507 = alloca ptr %t519 = alloca ptr %t526 = alloca ptr %t528 = alloca ptr %t534 = alloca ptr %t536 = alloca ptr %t538 = alloca ptr %t551 = alloca ptr %t564 = alloca ptr %t569 = alloca ptr %t574 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str1261) %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 ptr, ptr %t9, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 store i32 1, ptr @g_g_uses_intstr %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_str_concat(ptr @.str1262, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str1263) %t19 = call ptr @fn_emit_bind(ptr %t18) %t20 = call ptr @fn_val(ptr %t19, ptr @.str1264) store ptr %t20, ptr %retval br label %ret ifend2: %t21 = load ptr, ptr %t0 %t22 = call i32 @fn_str_eq(ptr %t21, ptr @.str1265) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %ifend5 then3: %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 ptr, ptr %t28, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_emit_expr(ptr %t30) store ptr %t31, ptr %t32 %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 ptr, ptr %t37, i32 1 %t39 = load ptr, ptr %t38 %t40 = call ptr @fn_emit_expr(ptr %t39) store ptr %t40, ptr %t41 %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 ptr, ptr %t46, i32 2 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_emit_expr(ptr %t48) store ptr %t49, ptr %t50 store i32 1, ptr @g_g_uses_strslice %t51 = load ptr, ptr %t32 %t52 = getelementptr inbounds %Cmp_Val, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_str_concat(ptr @.str1266, ptr %t53) %t55 = call ptr @fn_str_concat(ptr %t54, ptr @.str1267) %t56 = load ptr, ptr %t41 %t57 = getelementptr inbounds %Cmp_Val, ptr %t56, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = call ptr @fn_str_concat(ptr %t55, ptr %t58) %t60 = call ptr @fn_str_concat(ptr %t59, ptr @.str1268) %t61 = load ptr, ptr %t50 %t62 = getelementptr inbounds %Cmp_Val, ptr %t61, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_str_concat(ptr %t60, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1269) %t66 = call ptr @fn_emit_bind(ptr %t65) %t67 = call ptr @fn_val(ptr %t66, ptr @.str1270) store ptr %t67, ptr %retval br label %ret ifend5: %t68 = load ptr, ptr %t0 %t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str1271) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then6, label %ifend8 then6: %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 ptr, ptr %t75, 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 ptr, ptr %t84, i32 1 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_emit_expr(ptr %t86) store ptr %t87, ptr %t88 store i32 1, ptr @g_g_uses_str %t89 = load ptr, ptr %t79 %t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = call ptr @fn_str_concat(ptr @.str1272, ptr %t91) %t93 = call ptr @fn_str_concat(ptr %t92, ptr @.str1273) %t94 = load ptr, ptr %t88 %t95 = getelementptr inbounds %Cmp_Val, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_str_concat(ptr %t93, ptr %t96) %t98 = call ptr @fn_str_concat(ptr %t97, ptr @.str1274) %t99 = call ptr @fn_emit_bind(ptr %t98) %t100 = call ptr @fn_val(ptr %t99, ptr @.str1275) store ptr %t100, ptr %retval br label %ret ifend8: %t101 = load ptr, ptr %t0 %t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str1276) %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then9, label %ifend11 then9: %t104 = load ptr, ptr %t1 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 7 %t106 = load ptr, ptr %t105 %t107 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 0 %t108 = load ptr, ptr %t107 %t109 = getelementptr inbounds ptr, ptr %t108, i32 0 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_emit_expr(ptr %t110) store ptr %t111, ptr %t112 %t113 = load ptr, ptr %t1 %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 7 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 0 %t117 = load ptr, ptr %t116 %t118 = getelementptr inbounds ptr, ptr %t117, i32 1 %t119 = load ptr, ptr %t118 %t120 = call ptr @fn_emit_expr(ptr %t119) store ptr %t120, ptr %t121 store i32 1, ptr @g_g_uses_str %t122 = load ptr, ptr %t112 %t123 = getelementptr inbounds %Cmp_Val, ptr %t122, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_str_concat(ptr @.str1277, ptr %t124) %t126 = call ptr @fn_str_concat(ptr %t125, ptr @.str1278) %t127 = load ptr, ptr %t121 %t128 = getelementptr inbounds %Cmp_Val, ptr %t127, i32 0, i32 0 %t129 = load ptr, ptr %t128 %t130 = call ptr @fn_str_concat(ptr %t126, ptr %t129) %t131 = call ptr @fn_str_concat(ptr %t130, ptr @.str1279) %t132 = call ptr @fn_emit_bind(ptr %t131) %t133 = call ptr @fn_val(ptr %t132, ptr @.str1280) store ptr %t133, ptr %retval br label %ret ifend11: %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 ptr, ptr %t138, 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 = call i32 @fn_str_eq(ptr %t143, ptr @.str1281) %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then12, label %ifend14 then12: %t146 = load ptr, ptr %t142 %t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0 %t148 = load ptr, ptr %t147 %t149 = call ptr @fn_str_concat(ptr @.str1282, ptr %t148) %t150 = call ptr @fn_str_concat(ptr %t149, ptr @.str1283) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t152 %t154 = call ptr @fn_str_concat(ptr @.str1284, ptr %t153) %t155 = call ptr @fn_str_concat(ptr %t154, ptr @.str1285) %t156 = call ptr @fn_emit_bind(ptr %t155) %t157 = call ptr @fn_val(ptr %t156, ptr @.str1286) store ptr %t157, ptr %retval br label %ret ifend14: %t158 = load ptr, ptr %t0 %t159 = call i32 @fn_str_eq(ptr %t158, ptr @.str1287) %t160 = icmp ne i32 %t159, 0 br i1 %t160, label %then15, label %ifend17 then15: %t161 = load ptr, ptr %t1 %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 0 %t165 = load ptr, ptr %t164 %t166 = getelementptr inbounds ptr, ptr %t165, i32 1 %t167 = load ptr, ptr %t166 %t168 = call ptr @fn_emit_expr(ptr %t167) store ptr %t168, ptr %t169 %t170 = load ptr, ptr %t142 %t171 = getelementptr inbounds %Cmp_Val, ptr %t170, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = call ptr @fn_str_concat(ptr @.str1288, ptr %t172) %t174 = call ptr @fn_str_concat(ptr %t173, ptr @.str1289) %t175 = load ptr, ptr %t169 %t176 = getelementptr inbounds %Cmp_Val, ptr %t175, i32 0, i32 0 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_str_concat(ptr %t174, ptr %t177) %t179 = call ptr @fn_emit_bind(ptr %t178) store ptr %t179, ptr %t180 %t181 = load ptr, ptr %t180 %t182 = call ptr @fn_str_concat(ptr @.str1290, ptr %t181) %t183 = call ptr @fn_emit_bind(ptr %t182) store ptr %t183, ptr %t184 %t185 = load ptr, ptr %t184 %t186 = call ptr @fn_str_concat(ptr @.str1291, ptr %t185) %t187 = call ptr @fn_str_concat(ptr %t186, ptr @.str1292) %t188 = call ptr @fn_emit_bind(ptr %t187) %t189 = call ptr @fn_val(ptr %t188, ptr @.str1293) store ptr %t189, ptr %retval br label %ret ifend17: %t190 = load ptr, ptr %t0 %t191 = call i32 @fn_str_eq(ptr %t190, ptr @.str1294) %t192 = icmp ne i32 %t191, 0 br i1 %t192, label %then18, label %ifend20 then18: %t193 = load ptr, ptr %t142 %t194 = getelementptr inbounds %Cmp_Val, ptr %t193, i32 0, i32 0 %t195 = load ptr, ptr %t194 %t196 = call ptr @fn_str_concat(ptr @.str1295, ptr %t195) %t197 = call ptr @fn_str_concat(ptr %t196, ptr @.str1296) %t198 = call ptr @fn_emit_bind(ptr %t197) %t199 = call ptr @fn_val(ptr %t198, ptr @.str1297) store ptr %t199, ptr %retval br label %ret ifend20: %t200 = load ptr, ptr %t0 %t201 = call i32 @fn_str_eq(ptr %t200, ptr @.str1298) %t202 = icmp ne i32 %t201, 0 br i1 %t202, label %then21, label %ifend23 then21: store i32 1, ptr @g_g_uses_textrt %t203 = load ptr, ptr %t142 %t204 = getelementptr inbounds %Cmp_Val, ptr %t203, i32 0, i32 0 %t205 = load ptr, ptr %t204 %t206 = call ptr @fn_str_concat(ptr @.str1299, ptr %t205) %t207 = call ptr @fn_str_concat(ptr %t206, ptr @.str1300) %t208 = call ptr @fn_emit_bind(ptr %t207) %t209 = call ptr @fn_val(ptr %t208, ptr @.str1301) store ptr %t209, ptr %retval br label %ret ifend23: %t210 = load ptr, ptr %t0 %t211 = call i32 @fn_str_eq(ptr %t210, ptr @.str1302) %t212 = icmp ne i32 %t211, 0 br i1 %t212, label %then24, label %ifend26 then24: store i32 1, ptr @g_g_uses_textrt %t213 = load ptr, ptr %t142 %t214 = getelementptr inbounds %Cmp_Val, ptr %t213, i32 0, i32 0 %t215 = load ptr, ptr %t214 %t216 = call ptr @fn_str_concat(ptr @.str1303, ptr %t215) %t217 = call ptr @fn_str_concat(ptr %t216, ptr @.str1304) %t218 = call ptr @fn_emit_bind(ptr %t217) %t219 = call ptr @fn_val(ptr %t218, ptr @.str1305) store ptr %t219, ptr %retval br label %ret ifend26: %t220 = load ptr, ptr %t0 %t221 = call i32 @fn_str_eq(ptr %t220, ptr @.str1306) %t222 = icmp ne i32 %t221, 0 br i1 %t222, label %then27, label %ifend29 then27: store i32 1, ptr @g_g_uses_textrt %t223 = load ptr, ptr %t142 %t224 = getelementptr inbounds %Cmp_Val, ptr %t223, i32 0, i32 0 %t225 = load ptr, ptr %t224 %t226 = call ptr @fn_str_concat(ptr @.str1307, ptr %t225) %t227 = call ptr @fn_str_concat(ptr %t226, ptr @.str1308) %t228 = call ptr @fn_emit_bind(ptr %t227) %t229 = call ptr @fn_val(ptr %t228, ptr @.str1309) store ptr %t229, ptr %retval br label %ret ifend29: %t230 = load ptr, ptr %t0 %t231 = call i32 @fn_str_eq(ptr %t230, ptr @.str1310) %t232 = icmp ne i32 %t231, 0 br i1 %t232, label %then30, label %ifend32 then30: store i32 1, ptr @g_g_uses_textrt %t233 = load ptr, ptr %t1 %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 0 %t237 = load ptr, ptr %t236 %t238 = getelementptr inbounds ptr, ptr %t237, i32 1 %t239 = load ptr, ptr %t238 %t240 = call ptr @fn_emit_expr(ptr %t239) store ptr %t240, ptr %t241 %t242 = load ptr, ptr %t142 %t243 = getelementptr inbounds %Cmp_Val, ptr %t242, i32 0, i32 0 %t244 = load ptr, ptr %t243 %t245 = call ptr @fn_str_concat(ptr @.str1311, ptr %t244) %t246 = call ptr @fn_str_concat(ptr %t245, ptr @.str1312) %t247 = load ptr, ptr %t241 %t248 = getelementptr inbounds %Cmp_Val, ptr %t247, i32 0, i32 0 %t249 = load ptr, ptr %t248 %t250 = call ptr @fn_str_concat(ptr %t246, ptr %t249) %t251 = call ptr @fn_str_concat(ptr %t250, ptr @.str1313) %t252 = call ptr @fn_emit_bind(ptr %t251) %t253 = call ptr @fn_val(ptr %t252, ptr @.str1314) store ptr %t253, ptr %retval br label %ret ifend32: %t254 = load ptr, ptr %t0 %t255 = call i32 @fn_str_eq(ptr %t254, ptr @.str1315) %t256 = icmp ne i32 %t255, 0 br i1 %t256, label %then33, label %ifend35 then33: store i32 1, ptr @g_g_uses_textrt %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 ptr, ptr %t261, i32 1 %t263 = load ptr, ptr %t262 %t264 = call ptr @fn_emit_expr(ptr %t263) store ptr %t264, ptr %t265 %t266 = load ptr, ptr %t142 %t267 = getelementptr inbounds %Cmp_Val, ptr %t266, i32 0, i32 0 %t268 = load ptr, ptr %t267 %t269 = call ptr @fn_str_concat(ptr @.str1316, ptr %t268) %t270 = call ptr @fn_str_concat(ptr %t269, ptr @.str1317) %t271 = load ptr, ptr %t265 %t272 = getelementptr inbounds %Cmp_Val, ptr %t271, i32 0, i32 0 %t273 = load ptr, ptr %t272 %t274 = call ptr @fn_str_concat(ptr %t270, ptr %t273) %t275 = call ptr @fn_str_concat(ptr %t274, ptr @.str1318) %t276 = call ptr @fn_emit_bind(ptr %t275) %t277 = call ptr @fn_val(ptr %t276, ptr @.str1319) store ptr %t277, ptr %retval br label %ret ifend35: %t278 = load ptr, ptr %t0 %t279 = call i32 @fn_str_eq(ptr %t278, ptr @.str1320) %t280 = icmp ne i32 %t279, 0 br i1 %t280, label %then36, label %ifend38 then36: store i32 1, ptr @g_g_uses_textrt %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 0 %t285 = load ptr, ptr %t284 %t286 = getelementptr inbounds ptr, ptr %t285, i32 1 %t287 = load ptr, ptr %t286 %t288 = call ptr @fn_emit_expr(ptr %t287) store ptr %t288, ptr %t289 %t290 = load ptr, ptr %t142 %t291 = getelementptr inbounds %Cmp_Val, ptr %t290, i32 0, i32 0 %t292 = load ptr, ptr %t291 %t293 = call ptr @fn_str_concat(ptr @.str1321, ptr %t292) %t294 = call ptr @fn_str_concat(ptr %t293, ptr @.str1322) %t295 = load ptr, ptr %t289 %t296 = getelementptr inbounds %Cmp_Val, ptr %t295, i32 0, i32 0 %t297 = load ptr, ptr %t296 %t298 = call ptr @fn_str_concat(ptr %t294, ptr %t297) %t299 = call ptr @fn_str_concat(ptr %t298, ptr @.str1323) %t300 = call ptr @fn_emit_bind(ptr %t299) %t301 = call ptr @fn_val(ptr %t300, ptr @.str1324) store ptr %t301, ptr %retval br label %ret ifend38: %t302 = load ptr, ptr %t0 %t303 = call i32 @fn_str_eq(ptr %t302, ptr @.str1325) %t304 = icmp ne i32 %t303, 0 br i1 %t304, label %then39, label %ifend41 then39: store i32 1, ptr @g_g_uses_textrt2 %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 ptr, ptr %t309, 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 ptr, ptr %t318, i32 2 %t320 = load ptr, ptr %t319 %t321 = call ptr @fn_emit_expr(ptr %t320) store ptr %t321, ptr %t322 %t323 = load ptr, ptr %t142 %t324 = getelementptr inbounds %Cmp_Val, ptr %t323, i32 0, i32 0 %t325 = load ptr, ptr %t324 %t326 = call ptr @fn_str_concat(ptr @.str1326, ptr %t325) %t327 = call ptr @fn_str_concat(ptr %t326, ptr @.str1327) %t328 = load ptr, ptr %t313 %t329 = getelementptr inbounds %Cmp_Val, ptr %t328, i32 0, i32 0 %t330 = load ptr, ptr %t329 %t331 = call ptr @fn_str_concat(ptr %t327, ptr %t330) %t332 = call ptr @fn_str_concat(ptr %t331, ptr @.str1328) %t333 = load ptr, ptr %t322 %t334 = getelementptr inbounds %Cmp_Val, ptr %t333, i32 0, i32 0 %t335 = load ptr, ptr %t334 %t336 = call ptr @fn_str_concat(ptr %t332, ptr %t335) %t337 = call ptr @fn_str_concat(ptr %t336, ptr @.str1329) %t338 = call ptr @fn_emit_bind(ptr %t337) %t339 = call ptr @fn_val(ptr %t338, ptr @.str1330) store ptr %t339, ptr %retval br label %ret ifend41: %t340 = load ptr, ptr %t0 %t341 = call i32 @fn_str_eq(ptr %t340, ptr @.str1331) %t342 = icmp ne i32 %t341, 0 br i1 %t342, label %then42, label %ifend44 then42: store i32 1, ptr @g_g_uses_textrt2 %t343 = load ptr, ptr %t1 %t344 = getelementptr inbounds %Cmp_Node, ptr %t343, i32 0, i32 7 %t345 = load ptr, ptr %t344 %t346 = getelementptr inbounds %LSlice, ptr %t345, i32 0, i32 0 %t347 = load ptr, ptr %t346 %t348 = getelementptr inbounds ptr, ptr %t347, i32 1 %t349 = load ptr, ptr %t348 %t350 = call ptr @fn_emit_expr(ptr %t349) store ptr %t350, ptr %t351 %t352 = load ptr, ptr %t142 %t353 = getelementptr inbounds %Cmp_Val, ptr %t352, i32 0, i32 0 %t354 = load ptr, ptr %t353 %t355 = call ptr @fn_str_concat(ptr @.str1332, ptr %t354) %t356 = call ptr @fn_str_concat(ptr %t355, ptr @.str1333) %t357 = load ptr, ptr %t351 %t358 = getelementptr inbounds %Cmp_Val, ptr %t357, i32 0, i32 0 %t359 = load ptr, ptr %t358 %t360 = call ptr @fn_str_concat(ptr %t356, ptr %t359) %t361 = call ptr @fn_str_concat(ptr %t360, ptr @.str1334) %t362 = call ptr @fn_emit_bind(ptr %t361) %t363 = call ptr @fn_val(ptr %t362, ptr @.str1335) store ptr %t363, ptr %retval br label %ret ifend44: %t364 = load ptr, ptr %t0 %t365 = call i32 @fn_str_eq(ptr %t364, ptr @.str1336) %t366 = icmp ne i32 %t365, 0 br i1 %t366, label %then45, label %ifend47 then45: store i32 1, ptr @g_g_uses_textrt2 %t367 = load ptr, ptr %t1 %t368 = getelementptr inbounds %Cmp_Node, ptr %t367, i32 0, i32 7 %t369 = load ptr, ptr %t368 %t370 = getelementptr inbounds %LSlice, ptr %t369, i32 0, i32 0 %t371 = load ptr, ptr %t370 %t372 = getelementptr inbounds ptr, ptr %t371, i32 1 %t373 = load ptr, ptr %t372 %t374 = call ptr @fn_emit_expr(ptr %t373) store ptr %t374, ptr %t375 %t376 = load ptr, ptr %t142 %t377 = getelementptr inbounds %Cmp_Val, ptr %t376, i32 0, i32 0 %t378 = load ptr, ptr %t377 %t379 = call ptr @fn_str_concat(ptr @.str1337, ptr %t378) %t380 = call ptr @fn_str_concat(ptr %t379, ptr @.str1338) %t381 = load ptr, ptr %t375 %t382 = getelementptr inbounds %Cmp_Val, ptr %t381, i32 0, i32 0 %t383 = load ptr, ptr %t382 %t384 = call ptr @fn_str_concat(ptr %t380, ptr %t383) %t385 = call ptr @fn_str_concat(ptr %t384, ptr @.str1339) %t386 = call ptr @fn_emit_bind(ptr %t385) %t387 = call ptr @fn_val(ptr %t386, ptr @.str1340) store ptr %t387, ptr %retval br label %ret ifend47: %t389 = load ptr, ptr %t0 %t390 = call i32 @fn_str_eq(ptr %t389, ptr @.str1341) %t391 = icmp ne i32 %t390, 0 %t392 = zext i1 %t391 to i32 store i32 %t392, ptr %t388 br i1 %t391, label %scend49, label %sc48 sc48: %t393 = load ptr, ptr %t0 %t394 = call i32 @fn_str_eq(ptr %t393, ptr @.str1342) %t395 = icmp ne i32 %t394, 0 %t396 = zext i1 %t395 to i32 store i32 %t396, ptr %t388 br label %scend49 scend49: %t397 = load i32, ptr %t388 %t398 = icmp ne i32 %t397, 0 br i1 %t398, label %then50, label %ifend52 then50: %t399 = load ptr, ptr %t1 %t400 = getelementptr inbounds %Cmp_Node, ptr %t399, i32 0, i32 7 %t401 = load ptr, ptr %t400 %t402 = getelementptr inbounds %LSlice, ptr %t401, i32 0, i32 0 %t403 = load ptr, ptr %t402 %t404 = getelementptr inbounds ptr, ptr %t403, i32 1 %t405 = load ptr, ptr %t404 %t406 = call ptr @fn_emit_expr(ptr %t405) store ptr %t406, ptr %t407 %t408 = load ptr, ptr %t142 %t409 = getelementptr inbounds %Cmp_Val, ptr %t408, i32 0, i32 0 %t410 = load ptr, ptr %t409 %t411 = call ptr @fn_str_concat(ptr @.str1343, ptr %t410) %t412 = call ptr @fn_str_concat(ptr %t411, ptr @.str1344) %t413 = load ptr, ptr %t407 %t414 = getelementptr inbounds %Cmp_Val, ptr %t413, i32 0, i32 0 %t415 = load ptr, ptr %t414 %t416 = call ptr @fn_str_concat(ptr %t412, ptr %t415) %t417 = call ptr @fn_str_concat(ptr %t416, ptr @.str1345) %t418 = call ptr @fn_emit_bind(ptr %t417) store ptr %t418, ptr %t419 %t420 = load ptr, ptr %t0 %t421 = call i32 @fn_str_eq(ptr %t420, ptr @.str1346) %t422 = icmp ne i32 %t421, 0 br i1 %t422, label %then53, label %ifend55 then53: %t423 = load ptr, ptr %t419 %t424 = call ptr @fn_str_concat(ptr @.str1347, ptr %t423) %t425 = call ptr @fn_str_concat(ptr %t424, ptr @.str1348) %t426 = call ptr @fn_emit_bind(ptr %t425) store ptr %t426, ptr %t427 %t428 = load ptr, ptr %t427 %t429 = call ptr @fn_str_concat(ptr @.str1349, ptr %t428) %t430 = call ptr @fn_str_concat(ptr %t429, ptr @.str1350) %t431 = call ptr @fn_emit_bind(ptr %t430) %t432 = call ptr @fn_val(ptr %t431, ptr @.str1351) store ptr %t432, ptr %retval br label %ret ifend55: %t433 = load ptr, ptr %t419 %t434 = call ptr @fn_str_concat(ptr @.str1352, ptr %t433) %t435 = call ptr @fn_str_concat(ptr %t434, ptr @.str1353) %t436 = call ptr @fn_emit_bind(ptr %t435) store ptr %t436, ptr %t437 %t438 = load ptr, ptr %t419 %t439 = call ptr @fn_str_concat(ptr @.str1354, ptr %t438) %t440 = call ptr @fn_str_concat(ptr %t439, ptr @.str1355) %t441 = call ptr @fn_emit_bind(ptr %t440) store ptr %t441, ptr %t442 %t443 = load ptr, ptr %t142 %t444 = getelementptr inbounds %Cmp_Val, ptr %t443, i32 0, i32 0 %t445 = load ptr, ptr %t444 %t446 = call ptr @fn_str_concat(ptr @.str1356, ptr %t445) %t447 = call ptr @fn_str_concat(ptr %t446, ptr @.str1357) %t448 = call ptr @fn_emit_bind(ptr %t447) store ptr %t448, ptr %t449 %t450 = load ptr, ptr %t442 %t451 = call ptr @fn_str_concat(ptr @.str1358, ptr %t450) %t452 = call ptr @fn_str_concat(ptr %t451, ptr @.str1359) %t453 = load ptr, ptr %t449 %t454 = call ptr @fn_str_concat(ptr %t452, ptr %t453) %t455 = call ptr @fn_emit_bind(ptr %t454) store ptr %t455, ptr %t456 %t457 = load ptr, ptr %t456 %t458 = call ptr @fn_str_concat(ptr @.str1360, ptr %t457) %t459 = call ptr @fn_str_concat(ptr %t458, ptr @.str1361) %t460 = call ptr @fn_emit_bind(ptr %t459) store ptr %t460, ptr %t461 %t462 = load ptr, ptr %t437 %t463 = call ptr @fn_str_concat(ptr @.str1362, ptr %t462) %t464 = call ptr @fn_str_concat(ptr %t463, ptr @.str1363) %t465 = load ptr, ptr %t461 %t466 = call ptr @fn_str_concat(ptr %t464, ptr %t465) %t467 = call ptr @fn_emit_bind(ptr %t466) %t468 = call ptr @fn_val(ptr %t467, ptr @.str1364) store ptr %t468, ptr %retval br label %ret ifend52: %t469 = load ptr, ptr %t1 %t470 = getelementptr inbounds %Cmp_Node, ptr %t469, i32 0, i32 7 %t471 = load ptr, ptr %t470 %t472 = getelementptr inbounds %LSlice, ptr %t471, i32 0, i32 0 %t473 = load ptr, ptr %t472 %t474 = getelementptr inbounds ptr, ptr %t473, i32 1 %t475 = load ptr, ptr %t474 %t476 = call ptr @fn_emit_expr(ptr %t475) store ptr %t476, ptr %t477 %t478 = load ptr, ptr %t477 %t479 = getelementptr inbounds %Cmp_Val, ptr %t478, i32 0, i32 0 %t480 = load ptr, ptr %t479 %t481 = call ptr @fn_str_concat(ptr @.str1365, ptr %t480) %t482 = call ptr @fn_str_concat(ptr %t481, ptr @.str1366) %t483 = call ptr @fn_emit_bind(ptr %t482) store ptr %t483, ptr %t484 %t485 = load ptr, ptr %t0 %t486 = call i32 @fn_str_eq(ptr %t485, ptr @.str1367) %t487 = icmp ne i32 %t486, 0 br i1 %t487, label %then56, label %ifend58 then56: %t488 = load ptr, ptr %t142 %t489 = getelementptr inbounds %Cmp_Val, ptr %t488, i32 0, i32 0 %t490 = load ptr, ptr %t489 %t491 = call ptr @fn_str_concat(ptr @.str1368, ptr %t490) %t492 = call ptr @fn_str_concat(ptr %t491, ptr @.str1369) %t493 = load ptr, ptr %t477 %t494 = getelementptr inbounds %Cmp_Val, ptr %t493, i32 0, i32 0 %t495 = load ptr, ptr %t494 %t496 = call ptr @fn_str_concat(ptr %t492, ptr %t495) %t497 = call ptr @fn_str_concat(ptr %t496, ptr @.str1370) %t498 = load ptr, ptr %t484 %t499 = call ptr @fn_str_concat(ptr %t497, ptr %t498) %t500 = call ptr @fn_str_concat(ptr %t499, ptr @.str1371) %t501 = call ptr @fn_emit_bind(ptr %t500) store ptr %t501, ptr %t502 %t503 = load ptr, ptr %t502 %t504 = call ptr @fn_str_concat(ptr @.str1372, ptr %t503) %t505 = call ptr @fn_str_concat(ptr %t504, ptr @.str1373) %t506 = call ptr @fn_emit_bind(ptr %t505) store ptr %t506, ptr %t507 %t508 = load ptr, ptr %t507 %t509 = call ptr @fn_str_concat(ptr @.str1374, ptr %t508) %t510 = call ptr @fn_str_concat(ptr %t509, ptr @.str1375) %t511 = call ptr @fn_emit_bind(ptr %t510) %t512 = call ptr @fn_val(ptr %t511, ptr @.str1376) store ptr %t512, ptr %retval br label %ret ifend58: %t513 = load ptr, ptr %t142 %t514 = getelementptr inbounds %Cmp_Val, ptr %t513, i32 0, i32 0 %t515 = load ptr, ptr %t514 %t516 = call ptr @fn_str_concat(ptr @.str1377, ptr %t515) %t517 = call ptr @fn_str_concat(ptr %t516, ptr @.str1378) %t518 = call ptr @fn_emit_bind(ptr %t517) store ptr %t518, ptr %t519 %t520 = load ptr, ptr %t519 %t521 = call ptr @fn_str_concat(ptr @.str1379, ptr %t520) %t522 = call ptr @fn_str_concat(ptr %t521, ptr @.str1380) %t523 = load ptr, ptr %t484 %t524 = call ptr @fn_str_concat(ptr %t522, ptr %t523) %t525 = call ptr @fn_emit_bind(ptr %t524) store ptr %t525, ptr %t526 %t527 = call ptr @fn_emit_alloca(ptr @.str1381) store ptr %t527, ptr %t528 %t529 = load ptr, ptr %t528 call void @fn_store_at(ptr @.str1382, ptr @.str1383, ptr %t529) %t530 = load ptr, ptr %t526 %t531 = call ptr @fn_str_concat(ptr @.str1384, ptr %t530) %t532 = call ptr @fn_str_concat(ptr %t531, ptr @.str1385) %t533 = call ptr @fn_emit_bind(ptr %t532) store ptr %t533, ptr %t534 %t535 = call ptr @fn_lbl(ptr @.str1386) store ptr %t535, ptr %t536 %t537 = call ptr @fn_lbl(ptr @.str1387) store ptr %t537, ptr %t538 call void @fn_emit(ptr @.str1388) %t539 = load ptr, ptr %t534 call void @fn_emit(ptr %t539) call void @fn_emit(ptr @.str1389) %t540 = load ptr, ptr %t538 call void @fn_emit(ptr %t540) call void @fn_emit(ptr @.str1390) %t541 = load ptr, ptr %t536 call void @fn_emit(ptr %t541) call void @fn_emit(ptr @.str1391) %t542 = load ptr, ptr %t536 call void @fn_emit(ptr %t542) call void @fn_emit(ptr @.str1392) %t543 = load ptr, ptr %t142 %t544 = getelementptr inbounds %Cmp_Val, ptr %t543, i32 0, i32 0 %t545 = load ptr, ptr %t544 %t546 = call ptr @fn_str_concat(ptr @.str1393, ptr %t545) %t547 = call ptr @fn_str_concat(ptr %t546, ptr @.str1394) %t548 = load ptr, ptr %t526 %t549 = call ptr @fn_str_concat(ptr %t547, ptr %t548) %t550 = call ptr @fn_emit_bind(ptr %t549) store ptr %t550, ptr %t551 %t552 = load ptr, ptr %t551 %t553 = call ptr @fn_str_concat(ptr @.str1395, ptr %t552) %t554 = call ptr @fn_str_concat(ptr %t553, ptr @.str1396) %t555 = load ptr, ptr %t477 %t556 = getelementptr inbounds %Cmp_Val, ptr %t555, i32 0, i32 0 %t557 = load ptr, ptr %t556 %t558 = call ptr @fn_str_concat(ptr %t554, ptr %t557) %t559 = call ptr @fn_str_concat(ptr %t558, ptr @.str1397) %t560 = load ptr, ptr %t484 %t561 = call ptr @fn_str_concat(ptr %t559, ptr %t560) %t562 = call ptr @fn_str_concat(ptr %t561, ptr @.str1398) %t563 = call ptr @fn_emit_bind(ptr %t562) store ptr %t563, ptr %t564 %t565 = load ptr, ptr %t564 %t566 = call ptr @fn_str_concat(ptr @.str1399, ptr %t565) %t567 = call ptr @fn_str_concat(ptr %t566, ptr @.str1400) %t568 = call ptr @fn_emit_bind(ptr %t567) store ptr %t568, ptr %t569 %t570 = load ptr, ptr %t569 %t571 = call ptr @fn_str_concat(ptr @.str1401, ptr %t570) %t572 = call ptr @fn_str_concat(ptr %t571, ptr @.str1402) %t573 = call ptr @fn_emit_bind(ptr %t572) store ptr %t573, ptr %t574 %t575 = load ptr, ptr %t574 %t576 = load ptr, ptr %t528 call void @fn_store_at(ptr @.str1403, ptr %t575, ptr %t576) call void @fn_emit(ptr @.str1404) %t577 = load ptr, ptr %t538 call void @fn_emit(ptr %t577) call void @fn_emit(ptr @.str1405) %t578 = load ptr, ptr %t538 call void @fn_emit(ptr %t578) call void @fn_emit(ptr @.str1406) %t579 = load ptr, ptr %t528 %t580 = call ptr @fn_str_concat(ptr @.str1407, ptr %t579) %t581 = call ptr @fn_emit_bind(ptr %t580) %t582 = call ptr @fn_val(ptr %t581, ptr @.str1408) store ptr %t582, ptr %retval br label %ret ret: %t583 = load ptr, ptr %retval ret ptr %t583 } define void @fn_emit_text_prelude() { entry: call void @fn_emith(ptr @.str1409) call void @fn_emith(ptr @.str1410) call void @fn_emith(ptr @.str1411) call void @fn_emith(ptr @.str1412) call void @fn_emith(ptr @.str1413) call void @fn_emith(ptr @.str1414) call void @fn_emith(ptr @.str1415) call void @fn_emith(ptr @.str1416) call void @fn_emith(ptr @.str1417) call void @fn_emith(ptr @.str1418) call void @fn_emith(ptr @.str1419) call void @fn_emith(ptr @.str1420) call void @fn_emith(ptr @.str1421) call void @fn_emith(ptr @.str1422) call void @fn_emith(ptr @.str1423) call void @fn_emith(ptr @.str1424) call void @fn_emith(ptr @.str1425) call void @fn_emith(ptr @.str1426) call void @fn_emith(ptr @.str1427) call void @fn_emith(ptr @.str1428) call void @fn_emith(ptr @.str1429) call void @fn_emith(ptr @.str1430) call void @fn_emith(ptr @.str1431) call void @fn_emith(ptr @.str1432) call void @fn_emith(ptr @.str1433) call void @fn_emith(ptr @.str1434) call void @fn_emith(ptr @.str1435) call void @fn_emith(ptr @.str1436) call void @fn_emith(ptr @.str1437) call void @fn_emith(ptr @.str1438) call void @fn_emith(ptr @.str1439) call void @fn_emith(ptr @.str1440) call void @fn_emith(ptr @.str1441) call void @fn_emith(ptr @.str1442) call void @fn_emith(ptr @.str1443) call void @fn_emith(ptr @.str1444) call void @fn_emith(ptr @.str1445) call void @fn_emith(ptr @.str1446) call void @fn_emith(ptr @.str1447) call void @fn_emith(ptr @.str1448) call void @fn_emith(ptr @.str1449) call void @fn_emith(ptr @.str1450) call void @fn_emith(ptr @.str1451) call void @fn_emith(ptr @.str1452) call void @fn_emith(ptr @.str1453) call void @fn_emith(ptr @.str1454) call void @fn_emith(ptr @.str1455) call void @fn_emith(ptr @.str1456) call void @fn_emith(ptr @.str1457) call void @fn_emith(ptr @.str1458) call void @fn_emith(ptr @.str1459) call void @fn_emith(ptr @.str1460) call void @fn_emith(ptr @.str1461) call void @fn_emith(ptr @.str1462) call void @fn_emith(ptr @.str1463) call void @fn_emith(ptr @.str1464) call void @fn_emith(ptr @.str1465) call void @fn_emith(ptr @.str1466) call void @fn_emith(ptr @.str1467) call void @fn_emith(ptr @.str1468) call void @fn_emith(ptr @.str1469) call void @fn_emith(ptr @.str1470) call void @fn_emith(ptr @.str1471) call void @fn_emith(ptr @.str1472) call void @fn_emith(ptr @.str1473) call void @fn_emith(ptr @.str1474) call void @fn_emith(ptr @.str1475) call void @fn_emith(ptr @.str1476) call void @fn_emith(ptr @.str1477) call void @fn_emith(ptr @.str1478) call void @fn_emith(ptr @.str1479) call void @fn_emith(ptr @.str1480) call void @fn_emith(ptr @.str1481) call void @fn_emith(ptr @.str1482) call void @fn_emith(ptr @.str1483) call void @fn_emith(ptr @.str1484) call void @fn_emith(ptr @.str1485) call void @fn_emith(ptr @.str1486) call void @fn_emith(ptr @.str1487) call void @fn_emith(ptr @.str1488) call void @fn_emith(ptr @.str1489) call void @fn_emith(ptr @.str1490) call void @fn_emith(ptr @.str1491) call void @fn_emith(ptr @.str1492) call void @fn_emith(ptr @.str1493) call void @fn_emith(ptr @.str1494) call void @fn_emith(ptr @.str1495) call void @fn_emith(ptr @.str1496) call void @fn_emith(ptr @.str1497) call void @fn_emith(ptr @.str1498) call void @fn_emith(ptr @.str1499) call void @fn_emith(ptr @.str1500) call void @fn_emith(ptr @.str1501) call void @fn_emith(ptr @.str1502) call void @fn_emith(ptr @.str1503) call void @fn_emith(ptr @.str1504) call void @fn_emith(ptr @.str1505) call void @fn_emith(ptr @.str1506) call void @fn_emith(ptr @.str1507) call void @fn_emith(ptr @.str1508) call void @fn_emith(ptr @.str1509) call void @fn_emith(ptr @.str1510) call void @fn_emith(ptr @.str1511) call void @fn_emith(ptr @.str1512) call void @fn_emith(ptr @.str1513) call void @fn_emith(ptr @.str1514) call void @fn_emith(ptr @.str1515) call void @fn_emith(ptr @.str1516) call void @fn_emith(ptr @.str1517) call void @fn_emith(ptr @.str1518) call void @fn_emith(ptr @.str1519) call void @fn_emith(ptr @.str1520) call void @fn_emith(ptr @.str1521) call void @fn_emith(ptr @.str1522) call void @fn_emith(ptr @.str1523) call void @fn_emith(ptr @.str1524) call void @fn_emith(ptr @.str1525) call void @fn_emith(ptr @.str1526) call void @fn_emith(ptr @.str1527) call void @fn_emith(ptr @.str1528) call void @fn_emith(ptr @.str1529) call void @fn_emith(ptr @.str1530) call void @fn_emith(ptr @.str1531) call void @fn_emith(ptr @.str1532) call void @fn_emith(ptr @.str1533) call void @fn_emith(ptr @.str1534) call void @fn_emith(ptr @.str1535) call void @fn_emith(ptr @.str1536) call void @fn_emith(ptr @.str1537) call void @fn_emith(ptr @.str1538) call void @fn_emith(ptr @.str1539) call void @fn_emith(ptr @.str1540) call void @fn_emith(ptr @.str1541) call void @fn_emith(ptr @.str1542) call void @fn_emith(ptr @.str1543) call void @fn_emith(ptr @.str1544) call void @fn_emith(ptr @.str1545) call void @fn_emith(ptr @.str1546) call void @fn_emith(ptr @.str1547) call void @fn_emith(ptr @.str1548) call void @fn_emith(ptr @.str1549) call void @fn_emith(ptr @.str1550) call void @fn_emith(ptr @.str1551) call void @fn_emith(ptr @.str1552) call void @fn_emith(ptr @.str1553) call void @fn_emith(ptr @.str1554) call void @fn_emith(ptr @.str1555) call void @fn_emith(ptr @.str1556) call void @fn_emith(ptr @.str1557) call void @fn_emith(ptr @.str1558) call void @fn_emith(ptr @.str1559) call void @fn_emith(ptr @.str1560) call void @fn_emith(ptr @.str1561) call void @fn_emith(ptr @.str1562) call void @fn_emith(ptr @.str1563) call void @fn_emith(ptr @.str1564) call void @fn_emith(ptr @.str1565) call void @fn_emith(ptr @.str1566) call void @fn_emith(ptr @.str1567) call void @fn_emith(ptr @.str1568) call void @fn_emith(ptr @.str1569) call void @fn_emith(ptr @.str1570) call void @fn_emith(ptr @.str1571) call void @fn_emith(ptr @.str1572) call void @fn_emith(ptr @.str1573) call void @fn_emith(ptr @.str1574) call void @fn_emith(ptr @.str1575) call void @fn_emith(ptr @.str1576) call void @fn_emith(ptr @.str1577) call void @fn_emith(ptr @.str1578) call void @fn_emith(ptr @.str1579) call void @fn_emith(ptr @.str1580) call void @fn_emith(ptr @.str1581) call void @fn_emith(ptr @.str1582) call void @fn_emith(ptr @.str1583) call void @fn_emith(ptr @.str1584) call void @fn_emith(ptr @.str1585) call void @fn_emith(ptr @.str1586) call void @fn_emith(ptr @.str1587) call void @fn_emith(ptr @.str1588) call void @fn_emith(ptr @.str1589) call void @fn_emith(ptr @.str1590) call void @fn_emith(ptr @.str1591) call void @fn_emith(ptr @.str1592) call void @fn_emith(ptr @.str1593) call void @fn_emith(ptr @.str1594) call void @fn_emith(ptr @.str1595) call void @fn_emith(ptr @.str1596) call void @fn_emith(ptr @.str1597) call void @fn_emith(ptr @.str1598) call void @fn_emith(ptr @.str1599) call void @fn_emith(ptr @.str1600) call void @fn_emith(ptr @.str1601) call void @fn_emith(ptr @.str1602) call void @fn_emith(ptr @.str1603) call void @fn_emith(ptr @.str1604) call void @fn_emith(ptr @.str1605) call void @fn_emith(ptr @.str1606) br label %ret ret: ret void } define void @fn_emit_text2_prelude() { entry: call void @fn_emith(ptr @.str1607) call void @fn_emith(ptr @.str1608) call void @fn_emith(ptr @.str1609) call void @fn_emith(ptr @.str1610) call void @fn_emith(ptr @.str1611) call void @fn_emith(ptr @.str1612) call void @fn_emith(ptr @.str1613) call void @fn_emith(ptr @.str1614) call void @fn_emith(ptr @.str1615) call void @fn_emith(ptr @.str1616) call void @fn_emith(ptr @.str1617) call void @fn_emith(ptr @.str1618) call void @fn_emith(ptr @.str1619) call void @fn_emith(ptr @.str1620) call void @fn_emith(ptr @.str1621) call void @fn_emith(ptr @.str1622) call void @fn_emith(ptr @.str1623) call void @fn_emith(ptr @.str1624) call void @fn_emith(ptr @.str1625) call void @fn_emith(ptr @.str1626) call void @fn_emith(ptr @.str1627) call void @fn_emith(ptr @.str1628) call void @fn_emith(ptr @.str1629) call void @fn_emith(ptr @.str1630) call void @fn_emith(ptr @.str1631) call void @fn_emith(ptr @.str1632) call void @fn_emith(ptr @.str1633) call void @fn_emith(ptr @.str1634) call void @fn_emith(ptr @.str1635) call void @fn_emith(ptr @.str1636) call void @fn_emith(ptr @.str1637) call void @fn_emith(ptr @.str1638) call void @fn_emith(ptr @.str1639) call void @fn_emith(ptr @.str1640) call void @fn_emith(ptr @.str1641) call void @fn_emith(ptr @.str1642) call void @fn_emith(ptr @.str1643) call void @fn_emith(ptr @.str1644) call void @fn_emith(ptr @.str1645) call void @fn_emith(ptr @.str1646) call void @fn_emith(ptr @.str1647) call void @fn_emith(ptr @.str1648) call void @fn_emith(ptr @.str1649) call void @fn_emith(ptr @.str1650) call void @fn_emith(ptr @.str1651) call void @fn_emith(ptr @.str1652) call void @fn_emith(ptr @.str1653) call void @fn_emith(ptr @.str1654) call void @fn_emith(ptr @.str1655) call void @fn_emith(ptr @.str1656) call void @fn_emith(ptr @.str1657) call void @fn_emith(ptr @.str1658) call void @fn_emith(ptr @.str1659) call void @fn_emith(ptr @.str1660) call void @fn_emith(ptr @.str1661) call void @fn_emith(ptr @.str1662) call void @fn_emith(ptr @.str1663) call void @fn_emith(ptr @.str1664) call void @fn_emith(ptr @.str1665) call void @fn_emith(ptr @.str1666) call void @fn_emith(ptr @.str1667) call void @fn_emith(ptr @.str1668) call void @fn_emith(ptr @.str1669) call void @fn_emith(ptr @.str1670) call void @fn_emith(ptr @.str1671) call void @fn_emith(ptr @.str1672) call void @fn_emith(ptr @.str1673) call void @fn_emith(ptr @.str1674) call void @fn_emith(ptr @.str1675) call void @fn_emith(ptr @.str1676) call void @fn_emith(ptr @.str1677) call void @fn_emith(ptr @.str1678) call void @fn_emith(ptr @.str1679) call void @fn_emith(ptr @.str1680) call void @fn_emith(ptr @.str1681) call void @fn_emith(ptr @.str1682) call void @fn_emith(ptr @.str1683) call void @fn_emith(ptr @.str1684) call void @fn_emith(ptr @.str1685) call void @fn_emith(ptr @.str1686) call void @fn_emith(ptr @.str1687) call void @fn_emith(ptr @.str1688) call void @fn_emith(ptr @.str1689) call void @fn_emith(ptr @.str1690) call void @fn_emith(ptr @.str1691) call void @fn_emith(ptr @.str1692) call void @fn_emith(ptr @.str1693) call void @fn_emith(ptr @.str1694) call void @fn_emith(ptr @.str1695) call void @fn_emith(ptr @.str1696) call void @fn_emith(ptr @.str1697) call void @fn_emith(ptr @.str1698) call void @fn_emith(ptr @.str1699) call void @fn_emith(ptr @.str1700) call void @fn_emith(ptr @.str1701) call void @fn_emith(ptr @.str1702) call void @fn_emith(ptr @.str1703) call void @fn_emith(ptr @.str1704) call void @fn_emith(ptr @.str1705) call void @fn_emith(ptr @.str1706) call void @fn_emith(ptr @.str1707) call void @fn_emith(ptr @.str1708) call void @fn_emith(ptr @.str1709) call void @fn_emith(ptr @.str1710) call void @fn_emith(ptr @.str1711) call void @fn_emith(ptr @.str1712) call void @fn_emith(ptr @.str1713) call void @fn_emith(ptr @.str1714) call void @fn_emith(ptr @.str1715) call void @fn_emith(ptr @.str1716) call void @fn_emith(ptr @.str1717) call void @fn_emith(ptr @.str1718) call void @fn_emith(ptr @.str1719) call void @fn_emith(ptr @.str1720) call void @fn_emith(ptr @.str1721) call void @fn_emith(ptr @.str1722) call void @fn_emith(ptr @.str1723) call void @fn_emith(ptr @.str1724) call void @fn_emith(ptr @.str1725) call void @fn_emith(ptr @.str1726) call void @fn_emith(ptr @.str1727) call void @fn_emith(ptr @.str1728) call void @fn_emith(ptr @.str1729) call void @fn_emith(ptr @.str1730) call void @fn_emith(ptr @.str1731) call void @fn_emith(ptr @.str1732) call void @fn_emith(ptr @.str1733) call void @fn_emith(ptr @.str1734) call void @fn_emith(ptr @.str1735) call void @fn_emith(ptr @.str1736) call void @fn_emith(ptr @.str1737) call void @fn_emith(ptr @.str1738) call void @fn_emith(ptr @.str1739) call void @fn_emith(ptr @.str1740) call void @fn_emith(ptr @.str1741) call void @fn_emith(ptr @.str1742) call void @fn_emith(ptr @.str1743) call void @fn_emith(ptr @.str1744) call void @fn_emith(ptr @.str1745) call void @fn_emith(ptr @.str1746) call void @fn_emith(ptr @.str1747) call void @fn_emith(ptr @.str1748) call void @fn_emith(ptr @.str1749) call void @fn_emith(ptr @.str1750) call void @fn_emith(ptr @.str1751) call void @fn_emith(ptr @.str1752) call void @fn_emith(ptr @.str1753) call void @fn_emith(ptr @.str1754) call void @fn_emith(ptr @.str1755) call void @fn_emith(ptr @.str1756) call void @fn_emith(ptr @.str1757) call void @fn_emith(ptr @.str1758) call void @fn_emith(ptr @.str1759) call void @fn_emith(ptr @.str1760) call void @fn_emith(ptr @.str1761) call void @fn_emith(ptr @.str1762) call void @fn_emith(ptr @.str1763) call void @fn_emith(ptr @.str1764) call void @fn_emith(ptr @.str1765) call void @fn_emith(ptr @.str1766) call void @fn_emith(ptr @.str1767) call void @fn_emith(ptr @.str1768) call void @fn_emith(ptr @.str1769) call void @fn_emith(ptr @.str1770) call void @fn_emith(ptr @.str1771) call void @fn_emith(ptr @.str1772) call void @fn_emith(ptr @.str1773) call void @fn_emith(ptr @.str1774) call void @fn_emith(ptr @.str1775) call void @fn_emith(ptr @.str1776) call void @fn_emith(ptr @.str1777) call void @fn_emith(ptr @.str1778) call void @fn_emith(ptr @.str1779) call void @fn_emith(ptr @.str1780) call void @fn_emith(ptr @.str1781) call void @fn_emith(ptr @.str1782) call void @fn_emith(ptr @.str1783) call void @fn_emith(ptr @.str1784) call void @fn_emith(ptr @.str1785) call void @fn_emith(ptr @.str1786) call void @fn_emith(ptr @.str1787) call void @fn_emith(ptr @.str1788) call void @fn_emith(ptr @.str1789) call void @fn_emith(ptr @.str1790) call void @fn_emith(ptr @.str1791) call void @fn_emith(ptr @.str1792) 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) call void @fn_emith(ptr @.str1802) call void @fn_emith(ptr @.str1803) call void @fn_emith(ptr @.str1804) call void @fn_emith(ptr @.str1805) 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) 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 @fn_str_eq(ptr %t3, ptr @.str1818) %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_str_eq(ptr %t7, ptr @.str1819) %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_str_eq(ptr %t14, ptr @.str1820) %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 @fn_str_eq(ptr %t21, ptr @.str1821) %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 @fn_str_eq(ptr %t25, ptr @.str1822) %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 @fn_str_eq(ptr %t33, ptr @.str1823) %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 @fn_str_eq(ptr %t37, ptr @.str1824) %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 @fn_str_eq(ptr %t44, ptr @.str1825) %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 @fn_str_concat(ptr @.str1826, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str1827) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_str_concat(ptr @.str1828, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str1829) %t9 = load ptr, ptr %t5 %t10 = call ptr @fn_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 @fn_str_concat(ptr @.str1830, ptr %t13) %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str1831) %t16 = call ptr @fn_emit_bind(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = call ptr @fn_str_concat(ptr @.str1832, ptr %t18) %t20 = call ptr @fn_str_concat(ptr %t19, ptr @.str1833) %t21 = call ptr @fn_emit_bind(ptr %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t17 %t24 = call ptr @fn_str_concat(ptr @.str1834, ptr %t23) %t25 = call ptr @fn_str_concat(ptr %t24, ptr @.str1835) %t26 = load ptr, ptr %t22 %t27 = call ptr @fn_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 @fn_str_concat(ptr @.str1836, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str1837) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_str_concat(ptr @.str1838, ptr %t35) %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str1839) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t34 %t41 = call ptr @fn_str_concat(ptr @.str1840, ptr %t40) %t42 = call ptr @fn_str_concat(ptr %t41, ptr @.str1841) %t43 = load ptr, ptr %t39 %t44 = call ptr @fn_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 @fn_str_concat(ptr @.str1842, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str1843) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_str_concat(ptr @.str1844, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str1845) %t9 = load ptr, ptr %t5 %t10 = call ptr @fn_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 @fn_str_concat(ptr @.str1846, ptr %t13) %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str1847) %t16 = call ptr @fn_emit_bind(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = call ptr @fn_str_concat(ptr @.str1848, ptr %t18) %t20 = call ptr @fn_str_concat(ptr %t19, ptr @.str1849) %t21 = call ptr @fn_emit_bind(ptr %t20) store ptr %t21, ptr %t22 %t23 = load ptr, ptr %t17 %t24 = call ptr @fn_str_concat(ptr @.str1850, ptr %t23) %t25 = call ptr @fn_str_concat(ptr %t24, ptr @.str1851) %t26 = load ptr, ptr %t22 %t27 = call ptr @fn_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 @fn_str_concat(ptr @.str1852, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str1853) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_str_concat(ptr @.str1854, ptr %t35) %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str1855) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t34 %t41 = call ptr @fn_str_concat(ptr @.str1856, ptr %t40) %t42 = call ptr @fn_str_concat(ptr %t41, ptr @.str1857) %t43 = load ptr, ptr %t39 %t44 = call ptr @fn_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 %t21 = alloca ptr %t29 = alloca i32 %t48 = alloca ptr %t67 = alloca ptr %t83 = alloca ptr %t102 = alloca ptr %t108 = alloca ptr %t109 = alloca i32 %t128 = alloca ptr %t135 = alloca ptr %t140 = alloca ptr %t145 = alloca ptr %t152 = alloca ptr %t159 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t3 = load ptr, ptr %t0 %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str1858) %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_str_eq(ptr %t7, ptr @.str1859) %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 ptr, ptr %t17, i32 0 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_emit_expr(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Val, ptr %t22, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_str_concat(ptr @.str1860, ptr %t24) %t26 = call ptr @fn_str_concat(ptr %t25, ptr @.str1861) %t27 = call ptr @fn_emit_bind(ptr %t26) %t28 = call ptr @fn_val(ptr %t27, ptr @.str1862) store ptr %t28, ptr %retval br label %ret ifend4: %t30 = load ptr, ptr %t0 %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str1863) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t29 br i1 %t32, label %scend6, label %sc5 sc5: %t34 = load ptr, ptr %t0 %t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str1864) %t36 = icmp ne i32 %t35, 0 %t37 = zext i1 %t36 to i32 store i32 %t37, ptr %t29 br label %scend6 scend6: %t38 = load i32, ptr %t29 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then7, label %ifend9 then7: store i32 1, ptr @g_g_uses_hashrt %t40 = load ptr, ptr %t1 %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 0 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds ptr, ptr %t44, 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 @fn_str_concat(ptr @.str1865, ptr %t51) %t53 = call ptr @fn_str_concat(ptr %t52, ptr @.str1866) %t54 = call ptr @fn_emit_bind(ptr %t53) %t55 = call ptr @fn_val(ptr %t54, ptr @.str1867) store ptr %t55, ptr %retval br label %ret ifend9: %t56 = load ptr, ptr %t0 %t57 = call i32 @fn_str_eq(ptr %t56, ptr @.str1868) %t58 = icmp ne i32 %t57, 0 br i1 %t58, label %then10, label %ifend12 then10: %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 ptr, ptr %t63, i32 0 %t65 = load ptr, ptr %t64 %t66 = call ptr @fn_emit_expr(ptr %t65) store ptr %t66, ptr %t67 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_to_long(ptr %t68) %t70 = call ptr @fn_hash_mix64_code(ptr %t69) %t71 = call ptr @fn_val(ptr %t70, ptr @.str1869) store ptr %t71, ptr %retval br label %ret ifend12: %t72 = load ptr, ptr %t0 %t73 = call i32 @fn_str_eq(ptr %t72, ptr @.str1870) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then13, label %ifend15 then13: store i32 1, ptr @g_g_uses_hashrt %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 ptr, ptr %t79, i32 0 %t81 = load ptr, ptr %t80 %t82 = call ptr @fn_emit_expr(ptr %t81) store ptr %t82, ptr %t83 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %Cmp_Val, ptr %t84, i32 0, i32 0 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_str_concat(ptr @.str1871, ptr %t86) %t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str1872) %t89 = call ptr @fn_emit_bind(ptr %t88) %t90 = call ptr @fn_val(ptr %t89, ptr @.str1873) store ptr %t90, ptr %retval br label %ret ifend15: %t91 = load ptr, ptr %t0 %t92 = call i32 @fn_str_eq(ptr %t91, ptr @.str1874) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then16, label %ifend18 then16: %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 ptr, ptr %t98, i32 0 %t100 = load ptr, ptr %t99 %t101 = call ptr @fn_emit_expr(ptr %t100) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t102 %t104 = getelementptr inbounds %Cmp_Val, ptr %t103, i32 0, i32 0 %t105 = load ptr, ptr %t104 %t106 = call ptr @fn_hash_mix_code(ptr %t105) %t107 = call ptr @fn_val(ptr %t106, ptr @.str1875) store ptr %t107, ptr %retval br label %ret ifend18: store ptr @.str1876, ptr %t108 store i32 0, ptr %t109 br label %wcond19 wcond19: %t110 = load i32, ptr %t109 %t111 = load ptr, ptr %t1 %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 %wbody20, label %wend21 wbody20: %t119 = load ptr, ptr %t1 %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 0 %t123 = load ptr, ptr %t122 %t124 = load i32, ptr %t109 %t125 = getelementptr inbounds ptr, ptr %t123, i32 %t124 %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_str_concat(ptr @.str1877, ptr %t131) %t133 = call ptr @fn_str_concat(ptr %t132, ptr @.str1878) %t134 = call ptr @fn_emit_bind(ptr %t133) store ptr %t134, ptr %t135 %t136 = load ptr, ptr %t108 %t137 = call ptr @fn_str_concat(ptr @.str1879, ptr %t136) %t138 = call ptr @fn_str_concat(ptr %t137, ptr @.str1880) %t139 = call ptr @fn_emit_bind(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t108 %t142 = call ptr @fn_str_concat(ptr @.str1881, ptr %t141) %t143 = call ptr @fn_str_concat(ptr %t142, ptr @.str1882) %t144 = call ptr @fn_emit_bind(ptr %t143) store ptr %t144, ptr %t145 %t146 = load ptr, ptr %t135 %t147 = call ptr @fn_str_concat(ptr @.str1883, ptr %t146) %t148 = call ptr @fn_str_concat(ptr %t147, ptr @.str1884) %t149 = load ptr, ptr %t140 %t150 = call ptr @fn_str_concat(ptr %t148, ptr %t149) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t152 %t154 = call ptr @fn_str_concat(ptr @.str1885, ptr %t153) %t155 = call ptr @fn_str_concat(ptr %t154, ptr @.str1886) %t156 = load ptr, ptr %t145 %t157 = call ptr @fn_str_concat(ptr %t155, ptr %t156) %t158 = call ptr @fn_emit_bind(ptr %t157) store ptr %t158, ptr %t159 %t160 = load ptr, ptr %t108 %t161 = call ptr @fn_str_concat(ptr @.str1887, ptr %t160) %t162 = call ptr @fn_str_concat(ptr %t161, ptr @.str1888) %t163 = load ptr, ptr %t159 %t164 = call ptr @fn_str_concat(ptr %t162, ptr %t163) %t165 = call ptr @fn_emit_bind(ptr %t164) store ptr %t165, ptr %t108 %t166 = load i32, ptr %t109 %t167 = add i32 %t166, 1 store i32 %t167, ptr %t109 br label %wcond19 wend21: %t168 = load ptr, ptr %t108 %t169 = call ptr @fn_val(ptr %t168, ptr @.str1889) store ptr %t169, ptr %retval br label %ret ret: %t170 = load ptr, ptr %retval ret ptr %t170 } define void @fn_emit_hash_prelude() { entry: 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) 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) 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) 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) call void @fn_emith(ptr @.str1966) call void @fn_emith(ptr @.str1967) call void @fn_emith(ptr @.str1968) call void @fn_emith(ptr @.str1969) call void @fn_emith(ptr @.str1970) call void @fn_emith(ptr @.str1971) call void @fn_emith(ptr @.str1972) call void @fn_emith(ptr @.str1973) call void @fn_emith(ptr @.str1974) call void @fn_emith(ptr @.str1975) call void @fn_emith(ptr @.str1976) call void @fn_emith(ptr @.str1977) call void @fn_emith(ptr @.str1978) call void @fn_emith(ptr @.str1979) call void @fn_emith(ptr @.str1980) call void @fn_emith(ptr @.str1981) call void @fn_emith(ptr @.str1982) call void @fn_emith(ptr @.str1983) call void @fn_emith(ptr @.str1984) call void @fn_emith(ptr @.str1985) call void @fn_emith(ptr @.str1986) 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 @fn_str_eq(ptr %t3, ptr @.str1987) %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_str_eq(ptr %t7, ptr @.str1988) %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_str_eq(ptr %t14, ptr @.str1989) %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 @fn_str_eq(ptr %t21, ptr @.str1990) %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 @fn_str_eq(ptr %t25, ptr @.str1991) %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 @fn_str_eq(ptr %t33, ptr @.str1992) %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 @fn_str_eq(ptr %t37, ptr @.str1993) %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 @fn_str_eq(ptr %t44, ptr @.str1994) %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 @fn_str_eq(ptr %t50, ptr @.str1995) %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 %t13 = alloca ptr %t32 = alloca ptr %t41 = alloca ptr %t65 = alloca ptr %t84 = alloca ptr %t93 = alloca ptr %t106 = alloca i32 %t125 = alloca ptr %t132 = alloca ptr %t154 = alloca ptr %t170 = alloca ptr %t179 = alloca ptr %t188 = alloca ptr %t200 = 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 @fn_str_eq(ptr %t2, ptr @.str1996) %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 ptr, ptr %t9, 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 = call ptr @fn_str_concat(ptr @.str1997, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str1998) %t19 = call ptr @fn_emit_bind(ptr %t18) %t20 = call ptr @fn_val(ptr %t19, ptr @.str1999) store ptr %t20, ptr %retval br label %ret ifend2: %t21 = load ptr, ptr %t0 %t22 = call i32 @fn_str_eq(ptr %t21, ptr @.str2000) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %ifend5 then3: %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 ptr, ptr %t28, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_emit_expr(ptr %t30) store ptr %t31, ptr %t32 %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 ptr, ptr %t37, i32 1 %t39 = load ptr, ptr %t38 %t40 = call ptr @fn_emit_expr(ptr %t39) store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t32 %t43 = getelementptr inbounds %Cmp_Val, ptr %t42, i32 0, i32 0 %t44 = load ptr, ptr %t43 %t45 = call ptr @fn_str_concat(ptr @.str2001, ptr %t44) %t46 = call ptr @fn_str_concat(ptr %t45, ptr @.str2002) %t47 = load ptr, ptr %t41 %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_str_concat(ptr %t46, ptr %t49) %t51 = call ptr @fn_str_concat(ptr %t50, ptr @.str2003) %t52 = call ptr @fn_emit_bind(ptr %t51) %t53 = call ptr @fn_val(ptr %t52, ptr @.str2004) store ptr %t53, ptr %retval br label %ret ifend5: %t54 = load ptr, ptr %t0 %t55 = call i32 @fn_str_eq(ptr %t54, ptr @.str2005) %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then6, label %ifend8 then6: %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 ptr, ptr %t61, i32 0 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_emit_expr(ptr %t63) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %Cmp_Val, ptr %t66, i32 0, i32 0 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_str_concat(ptr @.str2006, ptr %t68) %t70 = call ptr @fn_str_concat(ptr %t69, ptr @.str2007) %t71 = call ptr @fn_emit_bind(ptr %t70) %t72 = call ptr @fn_val(ptr %t71, ptr @.str2008) store ptr %t72, ptr %retval br label %ret ifend8: %t73 = load ptr, ptr %t0 %t74 = call i32 @fn_str_eq(ptr %t73, ptr @.str2009) %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then9, label %ifend11 then9: %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 ptr, ptr %t80, i32 0 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_emit_expr(ptr %t82) store ptr %t83, ptr %t84 %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 ptr, ptr %t89, i32 1 %t91 = load ptr, ptr %t90 %t92 = call ptr @fn_emit_expr(ptr %t91) store ptr %t92, ptr %t93 %t94 = load ptr, ptr %t84 %t95 = getelementptr inbounds %Cmp_Val, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_str_concat(ptr @.str2010, ptr %t96) %t98 = call ptr @fn_str_concat(ptr %t97, ptr @.str2011) %t99 = load ptr, ptr %t93 %t100 = getelementptr inbounds %Cmp_Val, ptr %t99, i32 0, i32 0 %t101 = load ptr, ptr %t100 %t102 = call ptr @fn_str_concat(ptr %t98, ptr %t101) %t103 = call ptr @fn_str_concat(ptr %t102, ptr @.str2012) %t104 = call ptr @fn_emit_bind(ptr %t103) %t105 = call ptr @fn_val(ptr %t104, ptr @.str2013) store ptr %t105, ptr %retval br label %ret ifend11: %t107 = load ptr, ptr %t0 %t108 = call i32 @fn_str_eq(ptr %t107, ptr @.str2014) %t109 = icmp ne i32 %t108, 0 %t110 = zext i1 %t109 to i32 store i32 %t110, ptr %t106 br i1 %t109, label %scend13, label %sc12 sc12: %t111 = load ptr, ptr %t0 %t112 = call i32 @fn_str_eq(ptr %t111, ptr @.str2015) %t113 = icmp ne i32 %t112, 0 %t114 = zext i1 %t113 to i32 store i32 %t114, ptr %t106 br label %scend13 scend13: %t115 = load i32, ptr %t106 %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then14, label %ifend16 then14: %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 ptr, ptr %t121, i32 0 %t123 = load ptr, ptr %t122 %t124 = call ptr @fn_emit_expr(ptr %t123) store ptr %t124, ptr %t125 %t126 = load ptr, ptr %t125 %t127 = getelementptr inbounds %Cmp_Val, ptr %t126, i32 0, i32 0 %t128 = load ptr, ptr %t127 %t129 = call ptr @fn_str_concat(ptr @.str2016, ptr %t128) %t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str2017) %t131 = call ptr @fn_emit_bind(ptr %t130) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t132 %t134 = call ptr @fn_str_concat(ptr @.str2018, ptr %t133) %t135 = call ptr @fn_str_concat(ptr %t134, ptr @.str2019) %t136 = call ptr @fn_emit_bind(ptr %t135) %t137 = call ptr @fn_val(ptr %t136, ptr @.str2020) store ptr %t137, ptr %retval br label %ret ifend16: %t138 = load ptr, ptr %t0 %t139 = call i32 @fn_str_eq(ptr %t138, ptr @.str2021) %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %then17, label %ifend19 then17: %t141 = call ptr @fn_emit_bind(ptr @.str2022) %t142 = call ptr @fn_val(ptr %t141, ptr @.str2023) store ptr %t142, ptr %retval br label %ret ifend19: %t143 = load ptr, ptr %t0 %t144 = call i32 @fn_str_eq(ptr %t143, ptr @.str2024) %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then20, label %ifend22 then20: %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 ptr, ptr %t150, i32 0 %t152 = load ptr, ptr %t151 %t153 = call ptr @fn_emit_expr(ptr %t152) store ptr %t153, ptr %t154 %t155 = load ptr, ptr %t154 %t156 = getelementptr inbounds %Cmp_Val, ptr %t155, i32 0, i32 0 %t157 = load ptr, ptr %t156 %t158 = call ptr @fn_str_concat(ptr @.str2025, ptr %t157) %t159 = call ptr @fn_str_concat(ptr %t158, ptr @.str2026) %t160 = call ptr @fn_emit_bind(ptr %t159) %t161 = call ptr @fn_val(ptr %t160, ptr @.str2027) store ptr %t161, ptr %retval br label %ret ifend22: %t162 = load ptr, ptr %t1 %t163 = getelementptr inbounds %Cmp_Node, ptr %t162, i32 0, i32 7 %t164 = load ptr, ptr %t163 %t165 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 0 %t166 = load ptr, ptr %t165 %t167 = getelementptr inbounds ptr, ptr %t166, i32 0 %t168 = load ptr, ptr %t167 %t169 = call ptr @fn_emit_expr(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t1 %t172 = getelementptr inbounds %Cmp_Node, ptr %t171, i32 0, i32 7 %t173 = load ptr, ptr %t172 %t174 = getelementptr inbounds %LSlice, ptr %t173, i32 0, i32 0 %t175 = load ptr, ptr %t174 %t176 = getelementptr inbounds ptr, ptr %t175, 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 ptr, ptr %t184, i32 2 %t186 = load ptr, ptr %t185 %t187 = call ptr @fn_emit_expr(ptr %t186) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t170 %t190 = getelementptr inbounds %Cmp_Val, ptr %t189, i32 0, i32 0 %t191 = load ptr, ptr %t190 %t192 = call ptr @fn_str_concat(ptr @.str2028, ptr %t191) %t193 = call ptr @fn_str_concat(ptr %t192, ptr @.str2029) %t194 = load ptr, ptr %t179 %t195 = getelementptr inbounds %Cmp_Val, ptr %t194, i32 0, i32 0 %t196 = load ptr, ptr %t195 %t197 = call ptr @fn_str_concat(ptr %t193, ptr %t196) %t198 = call ptr @fn_str_concat(ptr %t197, ptr @.str2030) %t199 = call ptr @fn_emit_bind(ptr %t198) store ptr %t199, ptr %t200 %t201 = load ptr, ptr %t200 %t202 = call ptr @fn_str_concat(ptr @.str2031, ptr %t201) %t203 = call ptr @fn_str_concat(ptr %t202, ptr @.str2032) %t204 = load ptr, ptr %t188 %t205 = getelementptr inbounds %Cmp_Val, ptr %t204, i32 0, i32 0 %t206 = load ptr, ptr %t205 %t207 = call ptr @fn_str_concat(ptr %t203, ptr %t206) %t208 = call ptr @fn_str_concat(ptr %t207, ptr @.str2033) %t209 = call ptr @fn_emit_bind(ptr %t208) %t210 = call ptr @fn_val(ptr %t209, ptr @.str2034) store ptr %t210, ptr %retval br label %ret ret: %t211 = load ptr, ptr %retval ret ptr %t211 } define void @fn_emit_crypto_prelude() { entry: call void @fn_emith(ptr @.str2035) call void @fn_emith(ptr @.str2036) call void @fn_emith(ptr @.str2037) call void @fn_emith(ptr @.str2038) call void @fn_emith(ptr @.str2039) call void @fn_emith(ptr @.str2040) call void @fn_emith(ptr @.str2041) call void @fn_emith(ptr @.str2042) call void @fn_emith(ptr @.str2043) call void @fn_emith(ptr @.str2044) call void @fn_emith(ptr @.str2045) call void @fn_emith(ptr @.str2046) call void @fn_emith(ptr @.str2047) call void @fn_emith(ptr @.str2048) call void @fn_emith(ptr @.str2049) call void @fn_emith(ptr @.str2050) call void @fn_emith(ptr @.str2051) call void @fn_emith(ptr @.str2052) call void @fn_emith(ptr @.str2053) call void @fn_emith(ptr @.str2054) call void @fn_emith(ptr @.str2055) call void @fn_emith(ptr @.str2056) call void @fn_emith(ptr @.str2057) call void @fn_emith(ptr @.str2058) call void @fn_emith(ptr @.str2059) call void @fn_emith(ptr @.str2060) call void @fn_emith(ptr @.str2061) call void @fn_emith(ptr @.str2062) call void @fn_emith(ptr @.str2063) call void @fn_emith(ptr @.str2064) call void @fn_emith(ptr @.str2065) call void @fn_emith(ptr @.str2066) call void @fn_emith(ptr @.str2067) call void @fn_emith(ptr @.str2068) call void @fn_emith(ptr @.str2069) call void @fn_emith(ptr @.str2070) call void @fn_emith(ptr @.str2071) call void @fn_emith(ptr @.str2072) call void @fn_emith(ptr @.str2073) call void @fn_emith(ptr @.str2074) call void @fn_emith(ptr @.str2075) call void @fn_emith(ptr @.str2076) call void @fn_emith(ptr @.str2077) call void @fn_emith(ptr @.str2078) call void @fn_emith(ptr @.str2079) call void @fn_emith(ptr @.str2080) call void @fn_emith(ptr @.str2081) call void @fn_emith(ptr @.str2082) call void @fn_emith(ptr @.str2083) call void @fn_emith(ptr @.str2084) call void @fn_emith(ptr @.str2085) call void @fn_emith(ptr @.str2086) call void @fn_emith(ptr @.str2087) call void @fn_emith(ptr @.str2088) call void @fn_emith(ptr @.str2089) call void @fn_emith(ptr @.str2090) call void @fn_emith(ptr @.str2091) call void @fn_emith(ptr @.str2092) call void @fn_emith(ptr @.str2093) call void @fn_emith(ptr @.str2094) call void @fn_emith(ptr @.str2095) call void @fn_emith(ptr @.str2096) call void @fn_emith(ptr @.str2097) call void @fn_emith(ptr @.str2098) call void @fn_emith(ptr @.str2099) call void @fn_emith(ptr @.str2100) call void @fn_emith(ptr @.str2101) call void @fn_emith(ptr @.str2102) call void @fn_emith(ptr @.str2103) call void @fn_emith(ptr @.str2104) call void @fn_emith(ptr @.str2105) call void @fn_emith(ptr @.str2106) call void @fn_emith(ptr @.str2107) call void @fn_emith(ptr @.str2108) call void @fn_emith(ptr @.str2109) call void @fn_emith(ptr @.str2110) call void @fn_emith(ptr @.str2111) call void @fn_emith(ptr @.str2112) call void @fn_emith(ptr @.str2113) call void @fn_emith(ptr @.str2114) call void @fn_emith(ptr @.str2115) call void @fn_emith(ptr @.str2116) call void @fn_emith(ptr @.str2117) call void @fn_emith(ptr @.str2118) call void @fn_emith(ptr @.str2119) call void @fn_emith(ptr @.str2120) call void @fn_emith(ptr @.str2121) call void @fn_emith(ptr @.str2122) call void @fn_emith(ptr @.str2123) call void @fn_emith(ptr @.str2124) call void @fn_emith(ptr @.str2125) call void @fn_emith(ptr @.str2126) call void @fn_emith(ptr @.str2127) call void @fn_emith(ptr @.str2128) call void @fn_emith(ptr @.str2129) call void @fn_emith(ptr @.str2130) call void @fn_emith(ptr @.str2131) call void @fn_emith(ptr @.str2132) call void @fn_emith(ptr @.str2133) call void @fn_emith(ptr @.str2134) call void @fn_emith(ptr @.str2135) call void @fn_emith(ptr @.str2136) call void @fn_emith(ptr @.str2137) call void @fn_emith(ptr @.str2138) call void @fn_emith(ptr @.str2139) call void @fn_emith(ptr @.str2140) call void @fn_emith(ptr @.str2141) call void @fn_emith(ptr @.str2142) call void @fn_emith(ptr @.str2143) call void @fn_emith(ptr @.str2144) call void @fn_emith(ptr @.str2145) call void @fn_emith(ptr @.str2146) call void @fn_emith(ptr @.str2147) call void @fn_emith(ptr @.str2148) call void @fn_emith(ptr @.str2149) call void @fn_emith(ptr @.str2150) call void @fn_emith(ptr @.str2151) call void @fn_emith(ptr @.str2152) call void @fn_emith(ptr @.str2153) call void @fn_emith(ptr @.str2154) call void @fn_emith(ptr @.str2155) call void @fn_emith(ptr @.str2156) call void @fn_emith(ptr @.str2157) call void @fn_emith(ptr @.str2158) call void @fn_emith(ptr @.str2159) call void @fn_emith(ptr @.str2160) call void @fn_emith(ptr @.str2161) call void @fn_emith(ptr @.str2162) call void @fn_emith(ptr @.str2163) call void @fn_emith(ptr @.str2164) call void @fn_emith(ptr @.str2165) call void @fn_emith(ptr @.str2166) call void @fn_emith(ptr @.str2167) call void @fn_emith(ptr @.str2168) call void @fn_emith(ptr @.str2169) call void @fn_emith(ptr @.str2170) call void @fn_emith(ptr @.str2171) call void @fn_emith(ptr @.str2172) call void @fn_emith(ptr @.str2173) call void @fn_emith(ptr @.str2174) call void @fn_emith(ptr @.str2175) call void @fn_emith(ptr @.str2176) call void @fn_emith(ptr @.str2177) call void @fn_emith(ptr @.str2178) call void @fn_emith(ptr @.str2179) call void @fn_emith(ptr @.str2180) call void @fn_emith(ptr @.str2181) call void @fn_emith(ptr @.str2182) call void @fn_emith(ptr @.str2183) call void @fn_emith(ptr @.str2184) call void @fn_emith(ptr @.str2185) call void @fn_emith(ptr @.str2186) 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 @.str2187) call void @fn_emith(ptr @.str2188) call void @fn_emith(ptr @.str2189) call void @fn_emith(ptr @.str2190) call void @fn_emith(ptr @.str2191) call void @fn_emith(ptr @.str2192) call void @fn_emith(ptr @.str2193) call void @fn_emith(ptr @.str2194) call void @fn_emith(ptr @.str2195) call void @fn_emith(ptr @.str2196) call void @fn_emith(ptr @.str2197) call void @fn_emith(ptr @.str2198) call void @fn_emith(ptr @.str2199) call void @fn_emith(ptr @.str2200) call void @fn_emith(ptr @.str2201) call void @fn_emith(ptr @.str2202) call void @fn_emith(ptr @.str2203) call void @fn_emith(ptr @.str2204) call void @fn_emith(ptr @.str2205) call void @fn_emith(ptr @.str2206) call void @fn_emith(ptr @.str2207) call void @fn_emith(ptr @.str2208) call void @fn_emith(ptr @.str2209) call void @fn_emith(ptr @.str2210) call void @fn_emith(ptr @.str2211) call void @fn_emith(ptr @.str2212) call void @fn_emith(ptr @.str2213) call void @fn_emith(ptr @.str2214) call void @fn_emith(ptr @.str2215) call void @fn_emith(ptr @.str2216) call void @fn_emith(ptr @.str2217) call void @fn_emith(ptr @.str2218) call void @fn_emith(ptr @.str2219) call void @fn_emith(ptr @.str2220) call void @fn_emith(ptr @.str2221) call void @fn_emith(ptr @.str2222) call void @fn_emith(ptr @.str2223) call void @fn_emith(ptr @.str2224) call void @fn_emith(ptr @.str2225) call void @fn_emith(ptr @.str2226) call void @fn_emith(ptr @.str2227) call void @fn_emith(ptr @.str2228) call void @fn_emith(ptr @.str2229) call void @fn_emith(ptr @.str2230) call void @fn_emith(ptr @.str2231) call void @fn_emith(ptr @.str2232) call void @fn_emith(ptr @.str2233) call void @fn_emith(ptr @.str2234) 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 @fn_str_eq(ptr %t4, ptr @.str2235) %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 @fn_str_eq(ptr %t8, ptr @.str2236) %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 @fn_str_eq(ptr %t15, ptr @.str2237) %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 @fn_str_eq(ptr %t22, ptr @.str2238) %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 @fn_str_eq(ptr %t30, ptr @.str2239) %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 @fn_str_eq(ptr %t34, ptr @.str2240) %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 @fn_str_eq(ptr %t41, ptr @.str2241) %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 @fn_str_eq(ptr %t48, ptr @.str2242) %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 @fn_str_eq(ptr %t52, ptr @.str2243) %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 %t44 = alloca ptr %t63 = alloca ptr %t79 = alloca ptr %t88 = alloca ptr %t109 = 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 @fn_str_eq(ptr %t3, ptr @.str2244) %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_str_eq(ptr %t7, ptr @.str2245) %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 @.str2246) %t14 = call ptr @fn_val(ptr %t13, ptr @.str2247) store ptr %t14, ptr %retval br label %ret ifend4: %t16 = load ptr, ptr %t0 %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str2248) %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 @fn_str_eq(ptr %t20, ptr @.str2249) %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 @.str2250) %t27 = call ptr @fn_val(ptr %t26, ptr @.str2251) store ptr %t27, ptr %retval br label %ret ifend9: %t28 = load ptr, ptr %t0 %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str2252) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then10, label %ifend12 then10: %t31 = call ptr @fn_emit_bind(ptr @.str2253) %t32 = call ptr @fn_val(ptr %t31, ptr @.str2254) store ptr %t32, ptr %retval br label %ret ifend12: %t33 = load ptr, ptr %t0 %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str2255) %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 ptr, ptr %t40, i32 0 %t42 = load ptr, ptr %t41 %t43 = call ptr @fn_emit_expr(ptr %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = call ptr @fn_str_concat(ptr @.str2256, ptr %t47) %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str2257) %t50 = call ptr @fn_emit_bind(ptr %t49) %t51 = call ptr @fn_val(ptr %t50, ptr @.str2258) store ptr %t51, ptr %retval br label %ret ifend15: %t52 = load ptr, ptr %t0 %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str2259) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then16, label %ifend18 then16: %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 ptr, ptr %t59, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_emit_expr(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_val(ptr %t66, ptr @.str2260) store ptr %t67, ptr %retval br label %ret ifend18: %t68 = load ptr, ptr %t0 %t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str2261) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then19, label %ifend21 then19: %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 ptr, ptr %t75, 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 ptr, ptr %t84, i32 1 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_emit_expr(ptr %t86) store ptr %t87, ptr %t88 %t89 = load ptr, ptr %t79 %t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = call ptr @fn_str_concat(ptr @.str2262, ptr %t91) %t93 = call ptr @fn_str_concat(ptr %t92, ptr @.str2263) %t94 = load ptr, ptr %t88 %t95 = getelementptr inbounds %Cmp_Val, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_str_concat(ptr %t93, ptr %t96) %t98 = call ptr @fn_str_concat(ptr %t97, ptr @.str2264) %t99 = call ptr @fn_emit_bind(ptr %t98) %t100 = call ptr @fn_val(ptr %t99, ptr @.str2265) store ptr %t100, ptr %retval br label %ret ifend21: %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 ptr, ptr %t105, i32 0 %t107 = load ptr, ptr %t106 %t108 = call ptr @fn_emit_expr(ptr %t107) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t109 %t111 = getelementptr inbounds %Cmp_Val, ptr %t110, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = call ptr @fn_str_concat(ptr @.str2266, ptr %t112) %t114 = call ptr @fn_str_concat(ptr %t113, ptr @.str2267) %t115 = call ptr @fn_emit_bind(ptr %t114) %t116 = call ptr @fn_val(ptr %t115, ptr @.str2268) store ptr %t116, ptr %retval br label %ret ret: %t117 = load ptr, ptr %retval ret ptr %t117 } define void @fn_emit_uuid_prelude() { entry: call void @fn_emith(ptr @.str2269) call void @fn_emith(ptr @.str2270) call void @fn_emith(ptr @.str2271) call void @fn_emith(ptr @.str2272) call void @fn_emith(ptr @.str2273) call void @fn_emith(ptr @.str2274) call void @fn_emith(ptr @.str2275) call void @fn_emith(ptr @.str2276) call void @fn_emith(ptr @.str2277) call void @fn_emith(ptr @.str2278) call void @fn_emith(ptr @.str2279) call void @fn_emith(ptr @.str2280) call void @fn_emith(ptr @.str2281) call void @fn_emith(ptr @.str2282) call void @fn_emith(ptr @.str2283) call void @fn_emith(ptr @.str2284) call void @fn_emith(ptr @.str2285) call void @fn_emith(ptr @.str2286) call void @fn_emith(ptr @.str2287) call void @fn_emith(ptr @.str2288) call void @fn_emith(ptr @.str2289) call void @fn_emith(ptr @.str2290) call void @fn_emith(ptr @.str2291) call void @fn_emith(ptr @.str2292) call void @fn_emith(ptr @.str2293) call void @fn_emith(ptr @.str2294) call void @fn_emith(ptr @.str2295) call void @fn_emith(ptr @.str2296) call void @fn_emith(ptr @.str2297) call void @fn_emith(ptr @.str2298) call void @fn_emith(ptr @.str2299) call void @fn_emith(ptr @.str2300) call void @fn_emith(ptr @.str2301) call void @fn_emith(ptr @.str2302) call void @fn_emith(ptr @.str2303) call void @fn_emith(ptr @.str2304) call void @fn_emith(ptr @.str2305) call void @fn_emith(ptr @.str2306) call void @fn_emith(ptr @.str2307) call void @fn_emith(ptr @.str2308) call void @fn_emith(ptr @.str2309) call void @fn_emith(ptr @.str2310) call void @fn_emith(ptr @.str2311) call void @fn_emith(ptr @.str2312) call void @fn_emith(ptr @.str2313) call void @fn_emith(ptr @.str2314) call void @fn_emith(ptr @.str2315) call void @fn_emith(ptr @.str2316) call void @fn_emith(ptr @.str2317) call void @fn_emith(ptr @.str2318) call void @fn_emith(ptr @.str2319) call void @fn_emith(ptr @.str2320) call void @fn_emith(ptr @.str2321) call void @fn_emith(ptr @.str2322) call void @fn_emith(ptr @.str2323) call void @fn_emith(ptr @.str2324) call void @fn_emith(ptr @.str2325) call void @fn_emith(ptr @.str2326) call void @fn_emith(ptr @.str2327) call void @fn_emith(ptr @.str2328) call void @fn_emith(ptr @.str2329) call void @fn_emith(ptr @.str2330) call void @fn_emith(ptr @.str2331) call void @fn_emith(ptr @.str2332) call void @fn_emith(ptr @.str2333) call void @fn_emith(ptr @.str2334) call void @fn_emith(ptr @.str2335) call void @fn_emith(ptr @.str2336) call void @fn_emith(ptr @.str2337) call void @fn_emith(ptr @.str2338) call void @fn_emith(ptr @.str2339) call void @fn_emith(ptr @.str2340) call void @fn_emith(ptr @.str2341) call void @fn_emith(ptr @.str2342) 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 @fn_str_eq(ptr %t3, ptr @.str2343) %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_str_eq(ptr %t7, ptr @.str2344) %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_str_eq(ptr %t14, ptr @.str2345) %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 @fn_str_eq(ptr %t22, ptr @.str2346) %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 @fn_str_eq(ptr %t26, ptr @.str2347) %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 @fn_str_eq(ptr %t33, ptr @.str2348) %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 @fn_str_eq(ptr %t39, ptr @.str2349) %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 %t13 = alloca ptr %t20 = alloca ptr %t37 = alloca ptr %t46 = alloca ptr %t55 = alloca ptr %t84 = alloca ptr %t93 = alloca ptr %t102 = alloca ptr %t131 = alloca ptr %t140 = alloca ptr %t149 = alloca ptr %t178 = alloca ptr %t187 = alloca ptr %t196 = alloca ptr %t205 = alloca ptr %t239 = alloca ptr %t248 = alloca ptr %t257 = alloca ptr %t283 = alloca ptr %t292 = alloca ptr %t301 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str2350) %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 ptr, ptr %t9, 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 = call ptr @fn_str_concat(ptr @.str2351, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str2352) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = call ptr @fn_str_concat(ptr @.str2353, ptr %t21) %t23 = call ptr @fn_str_concat(ptr %t22, ptr @.str2354) %t24 = call ptr @fn_emit_bind(ptr %t23) %t25 = call ptr @fn_val(ptr %t24, ptr @.str2355) store ptr %t25, ptr %retval br label %ret ifend2: store i32 1, ptr @g_g_uses_noisert %t26 = load ptr, ptr %t0 %t27 = call i32 @fn_str_eq(ptr %t26, ptr @.str2356) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then3, label %ifend5 then3: %t29 = load ptr, ptr %t1 %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 0 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds ptr, ptr %t33, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_emit_expr(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 ptr, ptr %t42, i32 1 %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 ptr, ptr %t51, i32 2 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_emit_expr(ptr %t53) store ptr %t54, ptr %t55 %t56 = load ptr, ptr %t37 %t57 = getelementptr inbounds %Cmp_Val, ptr %t56, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = call ptr @fn_str_concat(ptr @.str2357, ptr %t58) %t60 = call ptr @fn_str_concat(ptr %t59, ptr @.str2358) %t61 = load ptr, ptr %t46 %t62 = getelementptr inbounds %Cmp_Val, ptr %t61, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_str_concat(ptr %t60, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str2359) %t66 = load ptr, ptr %t55 %t67 = getelementptr inbounds %Cmp_Val, ptr %t66, i32 0, i32 0 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_str_concat(ptr %t65, ptr %t68) %t70 = call ptr @fn_str_concat(ptr %t69, ptr @.str2360) %t71 = call ptr @fn_emit_bind(ptr %t70) %t72 = call ptr @fn_val(ptr %t71, ptr @.str2361) store ptr %t72, ptr %retval br label %ret ifend5: %t73 = load ptr, ptr %t0 %t74 = call i32 @fn_str_eq(ptr %t73, ptr @.str2362) %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then6, label %ifend8 then6: %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 ptr, ptr %t80, i32 0 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_emit_expr(ptr %t82) store ptr %t83, ptr %t84 %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 ptr, ptr %t89, i32 1 %t91 = load ptr, ptr %t90 %t92 = call ptr @fn_emit_expr(ptr %t91) store ptr %t92, ptr %t93 %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 ptr, ptr %t98, i32 2 %t100 = load ptr, ptr %t99 %t101 = call ptr @fn_emit_expr(ptr %t100) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t84 %t104 = getelementptr inbounds %Cmp_Val, ptr %t103, i32 0, i32 0 %t105 = load ptr, ptr %t104 %t106 = call ptr @fn_str_concat(ptr @.str2363, ptr %t105) %t107 = call ptr @fn_str_concat(ptr %t106, ptr @.str2364) %t108 = load ptr, ptr %t93 %t109 = getelementptr inbounds %Cmp_Val, ptr %t108, i32 0, i32 0 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_str_concat(ptr %t107, ptr %t110) %t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str2365) %t113 = load ptr, ptr %t102 %t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = call ptr @fn_str_concat(ptr %t112, ptr %t115) %t117 = call ptr @fn_str_concat(ptr %t116, ptr @.str2366) %t118 = call ptr @fn_emit_bind(ptr %t117) %t119 = call ptr @fn_val(ptr %t118, ptr @.str2367) store ptr %t119, ptr %retval br label %ret ifend8: %t120 = load ptr, ptr %t0 %t121 = call i32 @fn_str_eq(ptr %t120, ptr @.str2368) %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %then9, label %ifend11 then9: %t123 = load ptr, ptr %t1 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 7 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = getelementptr inbounds ptr, ptr %t127, i32 0 %t129 = load ptr, ptr %t128 %t130 = call ptr @fn_emit_expr(ptr %t129) store ptr %t130, ptr %t131 %t132 = load ptr, ptr %t1 %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 0 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds ptr, ptr %t136, i32 1 %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 ptr, ptr %t145, i32 2 %t147 = load ptr, ptr %t146 %t148 = call ptr @fn_emit_expr(ptr %t147) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t131 %t151 = getelementptr inbounds %Cmp_Val, ptr %t150, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = call ptr @fn_str_concat(ptr @.str2369, ptr %t152) %t154 = call ptr @fn_str_concat(ptr %t153, ptr @.str2370) %t155 = load ptr, ptr %t140 %t156 = getelementptr inbounds %Cmp_Val, ptr %t155, i32 0, i32 0 %t157 = load ptr, ptr %t156 %t158 = call ptr @fn_str_concat(ptr %t154, ptr %t157) %t159 = call ptr @fn_str_concat(ptr %t158, ptr @.str2371) %t160 = load ptr, ptr %t149 %t161 = getelementptr inbounds %Cmp_Val, ptr %t160, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = call ptr @fn_str_concat(ptr %t159, ptr %t162) %t164 = call ptr @fn_str_concat(ptr %t163, ptr @.str2372) %t165 = call ptr @fn_emit_bind(ptr %t164) %t166 = call ptr @fn_val(ptr %t165, ptr @.str2373) store ptr %t166, ptr %retval br label %ret ifend11: %t167 = load ptr, ptr %t0 %t168 = call i32 @fn_str_eq(ptr %t167, ptr @.str2374) %t169 = icmp ne i32 %t168, 0 br i1 %t169, label %then12, label %ifend14 then12: store i32 1, ptr @g_g_uses_mathrt %t170 = load ptr, ptr %t1 %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 ptr, ptr %t174, i32 0 %t176 = load ptr, ptr %t175 %t177 = call ptr @fn_emit_expr(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t1 %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 0 %t183 = load ptr, ptr %t182 %t184 = getelementptr inbounds ptr, ptr %t183, i32 1 %t185 = load ptr, ptr %t184 %t186 = call ptr @fn_emit_expr(ptr %t185) store ptr %t186, ptr %t187 %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 ptr, ptr %t192, i32 2 %t194 = load ptr, ptr %t193 %t195 = call ptr @fn_emit_expr(ptr %t194) store ptr %t195, ptr %t196 %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 ptr, ptr %t201, i32 3 %t203 = load ptr, ptr %t202 %t204 = call ptr @fn_emit_expr(ptr %t203) store ptr %t204, ptr %t205 %t206 = load ptr, ptr %t178 %t207 = getelementptr inbounds %Cmp_Val, ptr %t206, i32 0, i32 0 %t208 = load ptr, ptr %t207 %t209 = call ptr @fn_str_concat(ptr @.str2375, ptr %t208) %t210 = call ptr @fn_str_concat(ptr %t209, ptr @.str2376) %t211 = load ptr, ptr %t187 %t212 = getelementptr inbounds %Cmp_Val, ptr %t211, i32 0, i32 0 %t213 = load ptr, ptr %t212 %t214 = call ptr @fn_str_concat(ptr %t210, ptr %t213) %t215 = call ptr @fn_str_concat(ptr %t214, ptr @.str2377) %t216 = load ptr, ptr %t196 %t217 = getelementptr inbounds %Cmp_Val, ptr %t216, i32 0, i32 0 %t218 = load ptr, ptr %t217 %t219 = call ptr @fn_str_concat(ptr %t215, ptr %t218) %t220 = call ptr @fn_str_concat(ptr %t219, ptr @.str2378) %t221 = load ptr, ptr %t205 %t222 = getelementptr inbounds %Cmp_Val, ptr %t221, i32 0, i32 0 %t223 = load ptr, ptr %t222 %t224 = call ptr @fn_str_concat(ptr %t220, ptr %t223) %t225 = call ptr @fn_str_concat(ptr %t224, ptr @.str2379) %t226 = call ptr @fn_emit_bind(ptr %t225) %t227 = call ptr @fn_val(ptr %t226, ptr @.str2380) store ptr %t227, ptr %retval br label %ret ifend14: %t228 = load ptr, ptr %t0 %t229 = call i32 @fn_str_eq(ptr %t228, ptr @.str2381) %t230 = icmp ne i32 %t229, 0 br i1 %t230, label %then15, label %ifend17 then15: store i32 1, ptr @g_g_uses_mathrt %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 ptr, ptr %t235, i32 0 %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 ptr, ptr %t244, 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 ptr, ptr %t253, i32 2 %t255 = load ptr, ptr %t254 %t256 = call ptr @fn_emit_expr(ptr %t255) store ptr %t256, ptr %t257 %t258 = load ptr, ptr %t239 %t259 = getelementptr inbounds %Cmp_Val, ptr %t258, i32 0, i32 0 %t260 = load ptr, ptr %t259 %t261 = call ptr @fn_str_concat(ptr @.str2382, ptr %t260) %t262 = call ptr @fn_str_concat(ptr %t261, ptr @.str2383) %t263 = load ptr, ptr %t248 %t264 = getelementptr inbounds %Cmp_Val, ptr %t263, i32 0, i32 0 %t265 = load ptr, ptr %t264 %t266 = call ptr @fn_str_concat(ptr %t262, ptr %t265) %t267 = call ptr @fn_str_concat(ptr %t266, ptr @.str2384) %t268 = load ptr, ptr %t257 %t269 = getelementptr inbounds %Cmp_Val, ptr %t268, i32 0, i32 0 %t270 = load ptr, ptr %t269 %t271 = call ptr @fn_str_concat(ptr %t267, ptr %t270) %t272 = call ptr @fn_str_concat(ptr %t271, ptr @.str2385) %t273 = call ptr @fn_emit_bind(ptr %t272) %t274 = call ptr @fn_val(ptr %t273, ptr @.str2386) store ptr %t274, ptr %retval br label %ret ifend17: %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 ptr, ptr %t279, 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 ptr, ptr %t288, i32 1 %t290 = load ptr, ptr %t289 %t291 = call ptr @fn_emit_expr(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t1 %t294 = getelementptr inbounds %Cmp_Node, ptr %t293, i32 0, i32 7 %t295 = load ptr, ptr %t294 %t296 = getelementptr inbounds %LSlice, ptr %t295, i32 0, i32 0 %t297 = load ptr, ptr %t296 %t298 = getelementptr inbounds ptr, ptr %t297, i32 2 %t299 = load ptr, ptr %t298 %t300 = call ptr @fn_emit_expr(ptr %t299) store ptr %t300, ptr %t301 %t302 = load ptr, ptr %t283 %t303 = getelementptr inbounds %Cmp_Val, ptr %t302, i32 0, i32 0 %t304 = load ptr, ptr %t303 %t305 = call ptr @fn_str_concat(ptr @.str2387, ptr %t304) %t306 = call ptr @fn_str_concat(ptr %t305, ptr @.str2388) %t307 = load ptr, ptr %t292 %t308 = getelementptr inbounds %Cmp_Val, ptr %t307, i32 0, i32 0 %t309 = load ptr, ptr %t308 %t310 = call ptr @fn_str_concat(ptr %t306, ptr %t309) %t311 = call ptr @fn_str_concat(ptr %t310, ptr @.str2389) %t312 = load ptr, ptr %t301 %t313 = getelementptr inbounds %Cmp_Val, ptr %t312, i32 0, i32 0 %t314 = load ptr, ptr %t313 %t315 = call ptr @fn_str_concat(ptr %t311, ptr %t314) %t316 = call ptr @fn_str_concat(ptr %t315, ptr @.str2390) %t317 = call ptr @fn_emit_bind(ptr %t316) %t318 = call ptr @fn_val(ptr %t317, ptr @.str2391) store ptr %t318, ptr %retval br label %ret ret: %t319 = load ptr, ptr %retval ret ptr %t319 } define void @fn_emit_noise_prelude() { entry: call void @fn_emith(ptr @.str2392) call void @fn_emith(ptr @.str2393) call void @fn_emith(ptr @.str2394) call void @fn_emith(ptr @.str2395) call void @fn_emith(ptr @.str2396) call void @fn_emith(ptr @.str2397) call void @fn_emith(ptr @.str2398) call void @fn_emith(ptr @.str2399) call void @fn_emith(ptr @.str2400) call void @fn_emith(ptr @.str2401) call void @fn_emith(ptr @.str2402) call void @fn_emith(ptr @.str2403) call void @fn_emith(ptr @.str2404) call void @fn_emith(ptr @.str2405) call void @fn_emith(ptr @.str2406) call void @fn_emith(ptr @.str2407) call void @fn_emith(ptr @.str2408) call void @fn_emith(ptr @.str2409) call void @fn_emith(ptr @.str2410) call void @fn_emith(ptr @.str2411) call void @fn_emith(ptr @.str2412) call void @fn_emith(ptr @.str2413) call void @fn_emith(ptr @.str2414) call void @fn_emith(ptr @.str2415) call void @fn_emith(ptr @.str2416) call void @fn_emith(ptr @.str2417) call void @fn_emith(ptr @.str2418) call void @fn_emith(ptr @.str2419) call void @fn_emith(ptr @.str2420) call void @fn_emith(ptr @.str2421) call void @fn_emith(ptr @.str2422) call void @fn_emith(ptr @.str2423) call void @fn_emith(ptr @.str2424) call void @fn_emith(ptr @.str2425) call void @fn_emith(ptr @.str2426) call void @fn_emith(ptr @.str2427) call void @fn_emith(ptr @.str2428) call void @fn_emith(ptr @.str2429) call void @fn_emith(ptr @.str2430) call void @fn_emith(ptr @.str2431) call void @fn_emith(ptr @.str2432) call void @fn_emith(ptr @.str2433) call void @fn_emith(ptr @.str2434) call void @fn_emith(ptr @.str2435) call void @fn_emith(ptr @.str2436) call void @fn_emith(ptr @.str2437) call void @fn_emith(ptr @.str2438) call void @fn_emith(ptr @.str2439) call void @fn_emith(ptr @.str2440) call void @fn_emith(ptr @.str2441) call void @fn_emith(ptr @.str2442) call void @fn_emith(ptr @.str2443) call void @fn_emith(ptr @.str2444) call void @fn_emith(ptr @.str2445) call void @fn_emith(ptr @.str2446) call void @fn_emith(ptr @.str2447) call void @fn_emith(ptr @.str2448) call void @fn_emith(ptr @.str2449) call void @fn_emith(ptr @.str2450) call void @fn_emith(ptr @.str2451) call void @fn_emith(ptr @.str2452) call void @fn_emith(ptr @.str2453) call void @fn_emith(ptr @.str2454) call void @fn_emith(ptr @.str2455) call void @fn_emith(ptr @.str2456) call void @fn_emith(ptr @.str2457) call void @fn_emith(ptr @.str2458) call void @fn_emith(ptr @.str2459) call void @fn_emith(ptr @.str2460) call void @fn_emith(ptr @.str2461) call void @fn_emith(ptr @.str2462) call void @fn_emith(ptr @.str2463) call void @fn_emith(ptr @.str2464) call void @fn_emith(ptr @.str2465) call void @fn_emith(ptr @.str2466) call void @fn_emith(ptr @.str2467) call void @fn_emith(ptr @.str2468) call void @fn_emith(ptr @.str2469) call void @fn_emith(ptr @.str2470) call void @fn_emith(ptr @.str2471) call void @fn_emith(ptr @.str2472) call void @fn_emith(ptr @.str2473) call void @fn_emith(ptr @.str2474) call void @fn_emith(ptr @.str2475) call void @fn_emit_noise_cellular() br label %ret ret: ret void } define void @fn_emit_noise_cellular() { entry: call void @fn_emith(ptr @.str2476) call void @fn_emith(ptr @.str2477) call void @fn_emith(ptr @.str2478) call void @fn_emith(ptr @.str2479) call void @fn_emith(ptr @.str2480) call void @fn_emith(ptr @.str2481) call void @fn_emith(ptr @.str2482) call void @fn_emith(ptr @.str2483) call void @fn_emith(ptr @.str2484) call void @fn_emith(ptr @.str2485) call void @fn_emith(ptr @.str2486) call void @fn_emith(ptr @.str2487) call void @fn_emith(ptr @.str2488) call void @fn_emith(ptr @.str2489) call void @fn_emith(ptr @.str2490) call void @fn_emith(ptr @.str2491) call void @fn_emith(ptr @.str2492) call void @fn_emith(ptr @.str2493) call void @fn_emith(ptr @.str2494) call void @fn_emith(ptr @.str2495) call void @fn_emith(ptr @.str2496) call void @fn_emith(ptr @.str2497) call void @fn_emith(ptr @.str2498) call void @fn_emith(ptr @.str2499) br label %ret ret: ret void } 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 @fn_str_eq(ptr %t3, ptr @.str2500) %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_str_eq(ptr %t7, ptr @.str2501) %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_str_eq(ptr %t14, ptr @.str2502) %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 @fn_str_eq(ptr %t21, ptr @.str2503) %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 @fn_str_eq(ptr %t25, ptr @.str2504) %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 @fn_str_eq(ptr %t32, ptr @.str2505) %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 @fn_str_eq(ptr %t36, ptr @.str2506) %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 @fn_str_eq(ptr %t4, ptr @.str2507) %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 @fn_str_eq(ptr %t13, ptr @.str2508) %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 @fn_str_concat(ptr @.str2509, ptr %t18) %t20 = call ptr @fn_str_concat(ptr %t19, ptr @.str2510) %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 @fn_str_concat(ptr @.str2511, ptr %t24) %t26 = call ptr @fn_str_concat(ptr %t25, ptr @.str2512) %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 %t13 = alloca ptr %t25 = alloca ptr %t26 = alloca ptr %t42 = alloca ptr %t51 = alloca ptr %t57 = alloca i32 %t77 = alloca ptr %t88 = 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 @fn_str_eq(ptr %t2, ptr @.str2513) %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 ptr, ptr %t9, 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 = call ptr @fn_str_concat(ptr @.str2514, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str2515) call void @fn_emit(ptr %t18) %t19 = call ptr @fn_val(ptr @.str2516, ptr @.str2517) store ptr %t19, ptr %retval br label %ret ifend2: %t20 = load ptr, ptr %t0 %t21 = call i32 @fn_str_eq(ptr %t20, ptr @.str2518) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then3, label %ifend5 then3: %t23 = call ptr @fn_emit_bind(ptr @.str2519) %t24 = call ptr @fn_val(ptr %t23, ptr @.str2520) store ptr %t24, ptr %retval br label %ret ifend5: store ptr @.str2521, ptr %t25 store ptr @.str2522, ptr %t26 %t27 = load ptr, ptr %t0 %t28 = call i32 @fn_str_eq(ptr %t27, ptr @.str2523) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then6, label %ifend8 then6: store ptr @.str2524, ptr %t25 store ptr @.str2525, ptr %t26 br label %ifend8 ifend8: %t30 = load ptr, ptr %t0 %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str2526) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then9, label %ifend11 then9: store ptr @.str2527, ptr %t25 store ptr @.str2528, ptr %t26 br label %ifend11 ifend11: %t33 = load ptr, ptr %t0 %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str2529) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then12, label %ifend14 then12: store ptr @.str2530, ptr %t25 store ptr @.str2531, ptr %t26 br label %ifend14 ifend14: %t36 = load ptr, ptr %t0 %t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str2532) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then15, label %ifend17 then15: store ptr @.str2533, ptr %t25 store ptr @.str2534, ptr %t26 br label %ifend17 ifend17: store i32 1, ptr @g_g_uses_str %t39 = load ptr, ptr %t26 %t40 = call ptr @fn_emit_str_const(ptr %t39) %t41 = call ptr @fn_val(ptr %t40, ptr @.str2535) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t1 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 7 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = getelementptr inbounds ptr, ptr %t47, i32 0 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_emit_expr(ptr %t49) store ptr %t50, ptr %t51 %t52 = load ptr, ptr %t42 %t53 = load ptr, ptr %t51 %t54 = call ptr @fn_log_stringify(ptr %t53) %t55 = call ptr @fn_val(ptr %t54, ptr @.str2537) %t56 = call ptr @fn_emit_str_op(ptr @.str2536, ptr %t52, ptr %t55) store ptr %t56, ptr %t42 store i32 1, ptr %t57 br label %wcond18 wcond18: %t58 = load i32, ptr %t57 %t59 = add i32 %t58, 1 %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 %wbody19, label %wend20 wbody19: %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 = load i32, ptr %t57 %t74 = getelementptr inbounds ptr, ptr %t72, i32 %t73 %t75 = load ptr, ptr %t74 %t76 = call ptr @fn_emit_expr(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t1 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 7 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 0 %t82 = load ptr, ptr %t81 %t83 = load i32, ptr %t57 %t84 = add i32 %t83, 1 %t85 = getelementptr inbounds ptr, ptr %t82, i32 %t84 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_emit_expr(ptr %t86) store ptr %t87, ptr %t88 %t89 = load ptr, ptr %t42 %t90 = call ptr @fn_emit_str_const(ptr @.str2539) %t91 = call ptr @fn_val(ptr %t90, ptr @.str2540) %t92 = call ptr @fn_emit_str_op(ptr @.str2538, ptr %t89, ptr %t91) store ptr %t92, ptr %t42 %t93 = load ptr, ptr %t42 %t94 = load ptr, ptr %t77 %t95 = call ptr @fn_log_stringify(ptr %t94) %t96 = call ptr @fn_val(ptr %t95, ptr @.str2542) %t97 = call ptr @fn_emit_str_op(ptr @.str2541, ptr %t93, ptr %t96) store ptr %t97, ptr %t42 %t98 = load ptr, ptr %t42 %t99 = call ptr @fn_emit_str_const(ptr @.str2544) %t100 = call ptr @fn_val(ptr %t99, ptr @.str2545) %t101 = call ptr @fn_emit_str_op(ptr @.str2543, ptr %t98, ptr %t100) store ptr %t101, ptr %t42 %t102 = load ptr, ptr %t42 %t103 = load ptr, ptr %t88 %t104 = call ptr @fn_log_stringify(ptr %t103) %t105 = call ptr @fn_val(ptr %t104, ptr @.str2547) %t106 = call ptr @fn_emit_str_op(ptr @.str2546, ptr %t102, ptr %t105) store ptr %t106, ptr %t42 %t107 = load i32, ptr %t57 %t108 = add i32 %t107, 2 store i32 %t108, ptr %t57 br label %wcond18 wend20: %t109 = load ptr, ptr %t25 %t110 = call ptr @fn_str_concat(ptr @.str2548, ptr %t109) %t111 = call ptr @fn_str_concat(ptr %t110, ptr @.str2549) %t112 = load ptr, ptr %t42 %t113 = getelementptr inbounds %Cmp_Val, ptr %t112, i32 0, i32 0 %t114 = load ptr, ptr %t113 %t115 = call ptr @fn_str_concat(ptr %t111, ptr %t114) %t116 = call ptr @fn_str_concat(ptr %t115, ptr @.str2550) call void @fn_emit(ptr %t116) %t117 = call ptr @fn_val(ptr @.str2551, ptr @.str2552) store ptr %t117, ptr %retval br label %ret ret: %t118 = load ptr, ptr %retval ret ptr %t118 } define void @fn_emit_log_prelude() { entry: call void @fn_emith(ptr @.str2553) call void @fn_emith(ptr @.str2554) call void @fn_emith(ptr @.str2555) call void @fn_emith(ptr @.str2556) call void @fn_emith(ptr @.str2557) call void @fn_emith(ptr @.str2558) call void @fn_emith(ptr @.str2559) 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 %t69 = alloca i32 %t80 = alloca i32 %t81 = alloca i32 %t82 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str2560) %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_str_eq(ptr %t7, ptr @.str2561) %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_str_eq(ptr %t14, ptr @.str2562) %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 @fn_str_eq(ptr %t22, ptr @.str2563) %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 @fn_str_eq(ptr %t26, ptr @.str2564) %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 @fn_str_eq(ptr %t33, ptr @.str2565) %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 @fn_str_eq(ptr %t40, ptr @.str2566) %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 @fn_str_eq(ptr %t44, ptr @.str2567) %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: %t52 = load ptr, ptr %t0 %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str2568) %t54 = icmp ne i32 %t53, 0 %t55 = zext i1 %t54 to i32 store i32 %t55, ptr %t51 br i1 %t54, label %scend20, label %sc19 sc19: %t56 = load ptr, ptr %t0 %t57 = call i32 @fn_str_eq(ptr %t56, ptr @.str2569) %t58 = icmp ne i32 %t57, 0 %t59 = zext i1 %t58 to i32 store i32 %t59, ptr %t51 br label %scend20 scend20: %t60 = load i32, ptr %t51 %t61 = icmp ne i32 %t60, 0 %t62 = zext i1 %t61 to i32 store i32 %t62, ptr %t50 br i1 %t61, label %scend22, label %sc21 sc21: %t63 = load ptr, ptr %t0 %t64 = call i32 @fn_str_eq(ptr %t63, ptr @.str2570) %t65 = icmp ne i32 %t64, 0 %t66 = zext i1 %t65 to i32 store i32 %t66, ptr %t50 br label %scend22 scend22: %t67 = load i32, ptr %t50 %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then23, label %ifend25 then23: store i32 1, ptr %retval br label %ret ifend25: %t70 = load ptr, ptr %t0 %t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str2571) %t72 = icmp ne i32 %t71, 0 %t73 = zext i1 %t72 to i32 store i32 %t73, ptr %t69 br i1 %t72, label %scend27, label %sc26 sc26: %t74 = load ptr, ptr %t0 %t75 = call i32 @fn_str_eq(ptr %t74, ptr @.str2572) %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t69 br label %scend27 scend27: %t78 = load i32, ptr %t69 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then28, label %ifend30 then28: store i32 1, ptr %retval br label %ret ifend30: %t83 = load ptr, ptr %t0 %t84 = call i32 @fn_str_eq(ptr %t83, ptr @.str2573) %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t82 br i1 %t85, label %scend32, label %sc31 sc31: %t87 = load ptr, ptr %t0 %t88 = call i32 @fn_str_eq(ptr %t87, ptr @.str2574) %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t82 br label %scend32 scend32: %t91 = load i32, ptr %t82 %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t81 br i1 %t92, label %scend34, label %sc33 sc33: %t94 = load ptr, ptr %t0 %t95 = call i32 @fn_str_eq(ptr %t94, ptr @.str2575) %t96 = icmp ne i32 %t95, 0 %t97 = zext i1 %t96 to i32 store i32 %t97, ptr %t81 br label %scend34 scend34: %t98 = load i32, ptr %t81 %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t80 br i1 %t99, label %scend36, label %sc35 sc35: %t101 = load ptr, ptr %t0 %t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str2576) %t103 = icmp ne i32 %t102, 0 %t104 = zext i1 %t103 to i32 store i32 %t104, ptr %t80 br label %scend36 scend36: %t105 = load i32, ptr %t80 %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then37, label %ifend39 then37: store i32 1, ptr %retval br label %ret ifend39: store i32 0, ptr %retval br label %ret ret: %t107 = load i32, ptr %retval ret i32 %t107 } define ptr @fn_emit_os_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t18 = alloca ptr %t20 = alloca ptr %t29 = alloca ptr %t45 = alloca ptr %t63 = alloca ptr %t82 = alloca ptr %t89 = alloca ptr %t94 = alloca ptr %t100 = alloca i32 %t111 = alloca ptr %t123 = alloca ptr %t127 = alloca ptr %t134 = alloca ptr %t163 = alloca ptr %t172 = alloca ptr %t196 = alloca ptr %t205 = alloca ptr %t217 = alloca ptr %t222 = alloca ptr %t239 = alloca ptr %t246 = alloca ptr %t251 = alloca ptr %t278 = alloca ptr %t297 = alloca ptr %t316 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str2577) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_emit_bind(ptr @.str2578) %t6 = call ptr @fn_val(ptr %t5, ptr @.str2579) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str2580) %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 ptr, ptr %t14, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_emit_expr(ptr %t16) store ptr %t17, ptr %t18 %t19 = call ptr @fn_emit_bind(ptr @.str2581) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = call ptr @fn_str_concat(ptr @.str2582, ptr %t21) %t23 = call ptr @fn_str_concat(ptr %t22, ptr @.str2583) %t24 = load ptr, ptr %t18 %t25 = getelementptr inbounds %Cmp_Val, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = call ptr @fn_str_concat(ptr %t23, ptr %t26) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_str_concat(ptr @.str2584, ptr %t30) %t32 = call ptr @fn_emit_bind(ptr %t31) %t33 = call ptr @fn_val(ptr %t32, ptr @.str2585) store ptr %t33, ptr %retval br label %ret ifend5: %t34 = load ptr, ptr %t0 %t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str2586) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then6, label %ifend8 then6: %t37 = load ptr, ptr %t1 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 7 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds ptr, ptr %t41, 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 @fn_str_concat(ptr @.str2587, ptr %t48) %t50 = call ptr @fn_str_concat(ptr %t49, ptr @.str2588) call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str2589) store i32 1, ptr @g_g_term %t51 = call ptr @fn_val(ptr @.str2590, ptr @.str2591) store ptr %t51, ptr %retval br label %ret ifend8: %t52 = load ptr, ptr %t0 %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str2592) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then9, label %ifend11 then9: %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 ptr, ptr %t59, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_emit_expr(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_str_concat(ptr @.str2593, ptr %t66) %t68 = call ptr @fn_str_concat(ptr %t67, ptr @.str2594) %t69 = call ptr @fn_emit_bind(ptr %t68) %t70 = call ptr @fn_val(ptr %t69, ptr @.str2595) store ptr %t70, ptr %retval br label %ret ifend11: %t71 = load ptr, ptr %t0 %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str2596) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then12, label %ifend14 then12: %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 ptr, ptr %t78, i32 0 %t80 = load ptr, ptr %t79 %t81 = call ptr @fn_emit_expr(ptr %t80) store ptr %t81, ptr %t82 %t83 = load ptr, ptr %t82 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_str_concat(ptr @.str2597, ptr %t85) %t87 = call ptr @fn_str_concat(ptr %t86, ptr @.str2598) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_str_concat(ptr @.str2599, ptr %t90) %t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str2600) %t93 = call ptr @fn_emit_bind(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_str_concat(ptr @.str2601, ptr %t95) %t97 = call ptr @fn_str_concat(ptr %t96, ptr @.str2602) %t98 = call ptr @fn_emit_bind(ptr %t97) %t99 = call ptr @fn_val(ptr %t98, ptr @.str2603) store ptr %t99, ptr %retval br label %ret ifend14: %t101 = load ptr, ptr %t0 %t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str2604) %t103 = icmp ne i32 %t102, 0 %t104 = zext i1 %t103 to i32 store i32 %t104, ptr %t100 br i1 %t103, label %scend16, label %sc15 sc15: %t105 = load ptr, ptr %t0 %t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str2605) %t107 = icmp ne i32 %t106, 0 %t108 = zext i1 %t107 to i32 store i32 %t108, ptr %t100 br label %scend16 scend16: %t109 = load i32, ptr %t100 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %then17, label %ifend19 then17: store ptr @.str2606, ptr %t111 %t112 = load ptr, ptr %t0 %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str2607) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then20, label %ifend22 then20: store ptr @.str2608, ptr %t111 br label %ifend22 ifend22: %t115 = load ptr, ptr %t1 %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 0 %t119 = load ptr, ptr %t118 %t120 = getelementptr inbounds ptr, ptr %t119, i32 0 %t121 = load ptr, ptr %t120 %t122 = call ptr @fn_emit_expr(ptr %t121) store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t111 %t125 = call ptr @fn_str_concat(ptr @.str2609, ptr %t124) %t126 = call ptr @fn_emit_bind(ptr %t125) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t123 %t129 = getelementptr inbounds %Cmp_Val, ptr %t128, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_str_concat(ptr @.str2610, ptr %t130) %t132 = call ptr @fn_str_concat(ptr %t131, ptr @.str2611) %t133 = call ptr @fn_emit_bind(ptr %t132) store ptr %t133, ptr %t134 %t135 = load ptr, ptr %t123 %t136 = getelementptr inbounds %Cmp_Val, ptr %t135, i32 0, i32 0 %t137 = load ptr, ptr %t136 %t138 = call ptr @fn_str_concat(ptr @.str2612, ptr %t137) %t139 = call ptr @fn_str_concat(ptr %t138, ptr @.str2613) %t140 = load ptr, ptr %t134 %t141 = call ptr @fn_str_concat(ptr %t139, ptr %t140) %t142 = call ptr @fn_str_concat(ptr %t141, ptr @.str2614) %t143 = load ptr, ptr %t127 %t144 = call ptr @fn_str_concat(ptr %t142, ptr %t143) %t145 = call ptr @fn_str_concat(ptr %t144, ptr @.str2615) call void @fn_emit(ptr %t145) %t146 = call ptr @fn_val(ptr @.str2616, ptr @.str2617) store ptr %t146, ptr %retval br label %ret ifend19: store i32 1, ptr @g_g_uses_osrt %t147 = load ptr, ptr %t0 %t148 = call i32 @fn_str_eq(ptr %t147, ptr @.str2618) %t149 = icmp ne i32 %t148, 0 br i1 %t149, label %then23, label %ifend25 then23: %t150 = call ptr @fn_emit_bind(ptr @.str2619) %t151 = call ptr @fn_val(ptr %t150, ptr @.str2620) store ptr %t151, ptr %retval br label %ret ifend25: %t152 = load ptr, ptr %t0 %t153 = call i32 @fn_str_eq(ptr %t152, ptr @.str2621) %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then26, label %ifend28 then26: %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 ptr, ptr %t159, i32 0 %t161 = load ptr, ptr %t160 %t162 = call ptr @fn_emit_expr(ptr %t161) store ptr %t162, ptr %t163 %t164 = load ptr, ptr %t1 %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 7 %t166 = load ptr, ptr %t165 %t167 = getelementptr inbounds %LSlice, ptr %t166, i32 0, i32 0 %t168 = load ptr, ptr %t167 %t169 = getelementptr inbounds ptr, ptr %t168, i32 1 %t170 = load ptr, ptr %t169 %t171 = call ptr @fn_emit_expr(ptr %t170) store ptr %t171, ptr %t172 %t173 = load ptr, ptr %t163 %t174 = getelementptr inbounds %Cmp_Val, ptr %t173, i32 0, i32 0 %t175 = load ptr, ptr %t174 %t176 = call ptr @fn_str_concat(ptr @.str2622, ptr %t175) %t177 = call ptr @fn_str_concat(ptr %t176, ptr @.str2623) %t178 = load ptr, ptr %t172 %t179 = getelementptr inbounds %Cmp_Val, ptr %t178, i32 0, i32 0 %t180 = load ptr, ptr %t179 %t181 = call ptr @fn_str_concat(ptr %t177, ptr %t180) %t182 = call ptr @fn_str_concat(ptr %t181, ptr @.str2624) %t183 = call ptr @fn_emit_bind(ptr %t182) %t184 = call ptr @fn_val(ptr %t183, ptr @.str2625) store ptr %t184, ptr %retval br label %ret ifend28: %t185 = load ptr, ptr %t0 %t186 = call i32 @fn_str_eq(ptr %t185, ptr @.str2626) %t187 = icmp ne i32 %t186, 0 br i1 %t187, label %then29, label %ifend31 then29: %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 ptr, ptr %t192, i32 0 %t194 = load ptr, ptr %t193 %t195 = call ptr @fn_emit_expr(ptr %t194) store ptr %t195, ptr %t196 %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 ptr, ptr %t201, i32 1 %t203 = load ptr, ptr %t202 %t204 = call ptr @fn_emit_expr(ptr %t203) store ptr %t204, ptr %t205 %t206 = load ptr, ptr %t196 %t207 = getelementptr inbounds %Cmp_Val, ptr %t206, i32 0, i32 0 %t208 = load ptr, ptr %t207 %t209 = call ptr @fn_str_concat(ptr @.str2627, ptr %t208) %t210 = call ptr @fn_str_concat(ptr %t209, ptr @.str2628) %t211 = load ptr, ptr %t205 %t212 = getelementptr inbounds %Cmp_Val, ptr %t211, i32 0, i32 0 %t213 = load ptr, ptr %t212 %t214 = call ptr @fn_str_concat(ptr %t210, ptr %t213) %t215 = call ptr @fn_str_concat(ptr %t214, ptr @.str2629) %t216 = call ptr @fn_emit_bind(ptr %t215) store ptr %t216, ptr %t217 %t218 = load ptr, ptr %t217 %t219 = call ptr @fn_str_concat(ptr @.str2630, ptr %t218) %t220 = call ptr @fn_str_concat(ptr %t219, ptr @.str2631) %t221 = call ptr @fn_emit_bind(ptr %t220) store ptr %t221, ptr %t222 %t223 = load ptr, ptr %t222 %t224 = call ptr @fn_str_concat(ptr @.str2632, ptr %t223) %t225 = call ptr @fn_str_concat(ptr %t224, ptr @.str2633) %t226 = call ptr @fn_emit_bind(ptr %t225) %t227 = call ptr @fn_val(ptr %t226, ptr @.str2634) store ptr %t227, ptr %retval br label %ret ifend31: %t228 = load ptr, ptr %t0 %t229 = call i32 @fn_str_eq(ptr %t228, ptr @.str2635) %t230 = icmp ne i32 %t229, 0 br i1 %t230, label %then32, label %ifend34 then32: %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 ptr, ptr %t235, 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 @fn_str_concat(ptr @.str2636, ptr %t242) %t244 = call ptr @fn_str_concat(ptr %t243, ptr @.str2637) %t245 = call ptr @fn_emit_bind(ptr %t244) store ptr %t245, ptr %t246 %t247 = load ptr, ptr %t246 %t248 = call ptr @fn_str_concat(ptr @.str2638, ptr %t247) %t249 = call ptr @fn_str_concat(ptr %t248, ptr @.str2639) %t250 = call ptr @fn_emit_bind(ptr %t249) store ptr %t250, ptr %t251 %t252 = load ptr, ptr %t251 %t253 = call ptr @fn_str_concat(ptr @.str2640, ptr %t252) %t254 = call ptr @fn_str_concat(ptr %t253, ptr @.str2641) %t255 = call ptr @fn_emit_bind(ptr %t254) %t256 = call ptr @fn_val(ptr %t255, ptr @.str2642) store ptr %t256, ptr %retval br label %ret ifend34: %t257 = load ptr, ptr %t0 %t258 = call i32 @fn_str_eq(ptr %t257, ptr @.str2643) %t259 = icmp ne i32 %t258, 0 br i1 %t259, label %then35, label %ifend37 then35: %t260 = call ptr @fn_emit_bind(ptr @.str2644) %t261 = call ptr @fn_val(ptr %t260, ptr @.str2645) store ptr %t261, ptr %retval br label %ret ifend37: %t262 = load ptr, ptr %t0 %t263 = call i32 @fn_str_eq(ptr %t262, ptr @.str2646) %t264 = icmp ne i32 %t263, 0 br i1 %t264, label %then38, label %ifend40 then38: %t265 = call ptr @fn_emit_bind(ptr @.str2647) %t266 = call ptr @fn_val(ptr %t265, ptr @.str2648) store ptr %t266, ptr %retval br label %ret ifend40: %t267 = load ptr, ptr %t0 %t268 = call i32 @fn_str_eq(ptr %t267, ptr @.str2649) %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then41, label %ifend43 then41: %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 ptr, ptr %t274, i32 0 %t276 = load ptr, ptr %t275 %t277 = call ptr @fn_emit_expr(ptr %t276) store ptr %t277, ptr %t278 %t279 = load ptr, ptr %t278 %t280 = getelementptr inbounds %Cmp_Val, ptr %t279, i32 0, i32 0 %t281 = load ptr, ptr %t280 %t282 = call ptr @fn_str_concat(ptr @.str2650, ptr %t281) %t283 = call ptr @fn_str_concat(ptr %t282, ptr @.str2651) %t284 = call ptr @fn_emit_bind(ptr %t283) %t285 = call ptr @fn_val(ptr %t284, ptr @.str2652) store ptr %t285, ptr %retval br label %ret ifend43: %t286 = load ptr, ptr %t0 %t287 = call i32 @fn_str_eq(ptr %t286, ptr @.str2653) %t288 = icmp ne i32 %t287, 0 br i1 %t288, label %then44, label %ifend46 then44: %t289 = load ptr, ptr %t1 %t290 = getelementptr inbounds %Cmp_Node, ptr %t289, i32 0, i32 7 %t291 = load ptr, ptr %t290 %t292 = getelementptr inbounds %LSlice, ptr %t291, i32 0, i32 0 %t293 = load ptr, ptr %t292 %t294 = getelementptr inbounds ptr, ptr %t293, 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 @fn_str_concat(ptr @.str2654, ptr %t300) %t302 = call ptr @fn_str_concat(ptr %t301, ptr @.str2655) %t303 = call ptr @fn_emit_bind(ptr %t302) %t304 = call ptr @fn_val(ptr %t303, ptr @.str2656) store ptr %t304, ptr %retval br label %ret ifend46: %t305 = load ptr, ptr %t0 %t306 = call i32 @fn_str_eq(ptr %t305, ptr @.str2657) %t307 = icmp ne i32 %t306, 0 br i1 %t307, label %then47, label %ifend49 then47: %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 ptr, ptr %t312, i32 0 %t314 = load ptr, ptr %t313 %t315 = call ptr @fn_emit_expr(ptr %t314) store ptr %t315, ptr %t316 %t317 = load ptr, ptr %t316 %t318 = getelementptr inbounds %Cmp_Val, ptr %t317, i32 0, i32 0 %t319 = load ptr, ptr %t318 %t320 = call ptr @fn_str_concat(ptr @.str2658, ptr %t319) %t321 = call ptr @fn_str_concat(ptr %t320, ptr @.str2659) %t322 = call ptr @fn_emit_bind(ptr %t321) %t323 = call ptr @fn_val(ptr %t322, ptr @.str2660) store ptr %t323, ptr %retval br label %ret ifend49: %t324 = call ptr @fn_emit_bind(ptr @.str2661) %t325 = call ptr @fn_val(ptr %t324, ptr @.str2662) store ptr %t325, ptr %retval br label %ret ret: %t326 = load ptr, ptr %retval ret ptr %t326 } define void @fn_emit_os_prelude() { entry: %t1 = alloca ptr %t3 = alloca ptr %t5 = alloca ptr %t7 = alloca ptr %t9 = alloca ptr %t11 = alloca ptr %t13 = alloca ptr %t15 = alloca ptr %t17 = alloca ptr %t19 = alloca ptr call void @fn_emith(ptr @.str2663) call void @fn_emith(ptr @.str2664) call void @fn_emith(ptr @.str2665) %t0 = call ptr @fn_emit_str_const(ptr @.str2666) store ptr %t0, ptr %t1 %t2 = call ptr @fn_emit_str_const(ptr @.str2667) store ptr %t2, ptr %t3 %t4 = call ptr @fn_emit_str_const(ptr @.str2668) store ptr %t4, ptr %t5 %t6 = call ptr @fn_emit_str_const(ptr @.str2669) store ptr %t6, ptr %t7 %t8 = call ptr @fn_emit_str_const(ptr @.str2670) store ptr %t8, ptr %t9 %t10 = call ptr @fn_emit_str_const(ptr @.str2671) store ptr %t10, ptr %t11 %t12 = call ptr @fn_emit_str_const(ptr @.str2672) store ptr %t12, ptr %t13 %t14 = call ptr @fn_emit_str_const(ptr @.str2673) store ptr %t14, ptr %t15 %t16 = call ptr @fn_emit_str_const(ptr @.str2674) store ptr %t16, ptr %t17 %t18 = call ptr @fn_emit_str_const(ptr @.str2675) store ptr %t18, ptr %t19 call void @fn_emith(ptr @.str2676) call void @fn_emith(ptr @.str2677) call void @fn_emith(ptr @.str2678) call void @fn_emith(ptr @.str2679) call void @fn_emith(ptr @.str2680) call void @fn_emith(ptr @.str2681) call void @fn_emith(ptr @.str2682) call void @fn_emith(ptr @.str2683) call void @fn_emith(ptr @.str2684) call void @fn_emith(ptr @.str2685) call void @fn_emith(ptr @.str2686) call void @fn_emith(ptr @.str2687) %t20 = load ptr, ptr %t1 %t21 = call ptr @fn_str_concat(ptr @.str2688, ptr %t20) %t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str2689) %t23 = load ptr, ptr %t3 %t24 = call ptr @fn_str_concat(ptr %t22, ptr %t23) %t25 = call ptr @fn_str_concat(ptr %t24, ptr @.str2690) call void @fn_emith(ptr %t25) %t26 = load ptr, ptr %t5 %t27 = call ptr @fn_str_concat(ptr @.str2691, ptr %t26) %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str2692) call void @fn_emith(ptr %t28) %t29 = load ptr, ptr %t5 %t30 = call ptr @fn_str_concat(ptr @.str2693, ptr %t29) %t31 = call ptr @fn_str_concat(ptr %t30, ptr @.str2694) call void @fn_emith(ptr %t31) %t32 = load ptr, ptr %t7 %t33 = call ptr @fn_str_concat(ptr @.str2695, ptr %t32) %t34 = call ptr @fn_str_concat(ptr %t33, ptr @.str2696) call void @fn_emith(ptr %t34) %t35 = load ptr, ptr %t9 %t36 = call ptr @fn_str_concat(ptr @.str2697, ptr %t35) %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str2698) %t38 = load ptr, ptr %t11 %t39 = call ptr @fn_str_concat(ptr %t37, ptr %t38) %t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str2699) call void @fn_emith(ptr %t40) call void @fn_emith(ptr @.str2700) call void @fn_emith(ptr @.str2701) call void @fn_emith(ptr @.str2702) call void @fn_emith(ptr @.str2703) call void @fn_emith(ptr @.str2704) call void @fn_emith(ptr @.str2705) call void @fn_emith(ptr @.str2706) call void @fn_emith(ptr @.str2707) call void @fn_emith(ptr @.str2708) %t41 = load ptr, ptr %t13 %t42 = call ptr @fn_str_concat(ptr @.str2709, ptr %t41) %t43 = call ptr @fn_str_concat(ptr %t42, ptr @.str2710) call void @fn_emith(ptr %t43) %t44 = load ptr, ptr %t15 %t45 = call ptr @fn_str_concat(ptr @.str2711, ptr %t44) %t46 = call ptr @fn_str_concat(ptr %t45, ptr @.str2712) call void @fn_emith(ptr %t46) %t47 = load ptr, ptr %t17 %t48 = call ptr @fn_str_concat(ptr @.str2713, ptr %t47) %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str2714) call void @fn_emith(ptr %t49) %t50 = load ptr, ptr %t19 %t51 = call ptr @fn_str_concat(ptr @.str2715, ptr %t50) %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str2716) call void @fn_emith(ptr %t52) call void @fn_emith(ptr @.str2717) call void @fn_emith(ptr @.str2718) call void @fn_emith(ptr @.str2719) call void @fn_emith(ptr @.str2720) 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 @fn_str_eq(ptr %t3, ptr @.str2721) %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_str_eq(ptr %t7, ptr @.str2722) %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_str_eq(ptr %t14, ptr @.str2723) %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 @fn_str_eq(ptr %t21, ptr @.str2724) %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 @fn_str_eq(ptr %t25, ptr @.str2725) %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 @fn_str_eq(ptr %t33, ptr @.str2726) %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 @fn_str_eq(ptr %t37, ptr @.str2727) %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 @fn_str_eq(ptr %t44, ptr @.str2728) %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 @fn_str_eq(ptr %t50, ptr @.str2729) %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 %t13 = alloca ptr %t20 = alloca ptr %t37 = alloca ptr %t56 = alloca ptr %t75 = alloca ptr %t84 = alloca ptr %t108 = alloca ptr %t127 = alloca ptr %t146 = alloca ptr %t165 = alloca ptr %t174 = alloca ptr %t195 = 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 @fn_str_eq(ptr %t2, ptr @.str2730) %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 ptr, ptr %t9, 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 = call ptr @fn_str_concat(ptr @.str2731, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str2732) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = call ptr @fn_str_concat(ptr @.str2733, ptr %t21) %t23 = call ptr @fn_str_concat(ptr %t22, ptr @.str2734) %t24 = call ptr @fn_emit_bind(ptr %t23) %t25 = call ptr @fn_val(ptr %t24, ptr @.str2735) store ptr %t25, ptr %retval br label %ret ifend2: %t26 = load ptr, ptr %t0 %t27 = call i32 @fn_str_eq(ptr %t26, ptr @.str2736) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then3, label %ifend5 then3: %t29 = load ptr, ptr %t1 %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 0 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds ptr, ptr %t33, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_emit_expr(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_str_concat(ptr @.str2737, ptr %t40) %t42 = call ptr @fn_str_concat(ptr %t41, ptr @.str2738) %t43 = call ptr @fn_emit_bind(ptr %t42) %t44 = call ptr @fn_val(ptr %t43, ptr @.str2739) store ptr %t44, ptr %retval br label %ret ifend5: %t45 = load ptr, ptr %t0 %t46 = call i32 @fn_str_eq(ptr %t45, ptr @.str2740) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then6, label %ifend8 then6: %t48 = load ptr, ptr %t1 %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 0 %t52 = load ptr, ptr %t51 %t53 = getelementptr inbounds ptr, ptr %t52, 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 @fn_str_concat(ptr @.str2741, ptr %t59) %t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str2742) %t62 = call ptr @fn_emit_bind(ptr %t61) %t63 = call ptr @fn_val(ptr %t62, ptr @.str2743) store ptr %t63, ptr %retval br label %ret ifend8: %t64 = load ptr, ptr %t0 %t65 = call i32 @fn_str_eq(ptr %t64, ptr @.str2744) %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 ptr, ptr %t71, i32 0 %t73 = load ptr, ptr %t72 %t74 = call ptr @fn_emit_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 ptr, ptr %t80, i32 1 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_emit_expr(ptr %t82) store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t75 %t86 = getelementptr inbounds %Cmp_Val, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_str_concat(ptr @.str2745, ptr %t87) %t89 = call ptr @fn_str_concat(ptr %t88, ptr @.str2746) %t90 = load ptr, ptr %t84 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_str_concat(ptr %t89, ptr %t92) %t94 = call ptr @fn_str_concat(ptr %t93, ptr @.str2747) %t95 = call ptr @fn_emit_bind(ptr %t94) %t96 = call ptr @fn_val(ptr %t95, ptr @.str2748) store ptr %t96, ptr %retval br label %ret ifend11: %t97 = load ptr, ptr %t0 %t98 = call i32 @fn_str_eq(ptr %t97, ptr @.str2749) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then12, label %ifend14 then12: %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 ptr, ptr %t104, i32 0 %t106 = load ptr, ptr %t105 %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 0 %t111 = load ptr, ptr %t110 %t112 = call ptr @fn_str_concat(ptr @.str2750, ptr %t111) %t113 = call ptr @fn_str_concat(ptr %t112, ptr @.str2751) %t114 = call ptr @fn_emit_bind(ptr %t113) %t115 = call ptr @fn_val(ptr %t114, ptr @.str2752) store ptr %t115, ptr %retval br label %ret ifend14: %t116 = load ptr, ptr %t0 %t117 = call i32 @fn_str_eq(ptr %t116, ptr @.str2753) %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then15, label %ifend17 then15: %t119 = load ptr, ptr %t1 %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 0 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds ptr, ptr %t123, i32 0 %t125 = load ptr, ptr %t124 %t126 = call ptr @fn_emit_expr(ptr %t125) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %Cmp_Val, ptr %t128, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_str_concat(ptr @.str2754, ptr %t130) %t132 = call ptr @fn_str_concat(ptr %t131, ptr @.str2755) %t133 = call ptr @fn_emit_bind(ptr %t132) %t134 = call ptr @fn_val(ptr %t133, ptr @.str2756) store ptr %t134, ptr %retval br label %ret ifend17: %t135 = load ptr, ptr %t0 %t136 = call i32 @fn_str_eq(ptr %t135, ptr @.str2757) %t137 = icmp ne i32 %t136, 0 br i1 %t137, label %then18, label %ifend20 then18: %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 ptr, ptr %t142, i32 0 %t144 = load ptr, ptr %t143 %t145 = call ptr @fn_emit_expr(ptr %t144) store ptr %t145, ptr %t146 %t147 = load ptr, ptr %t146 %t148 = getelementptr inbounds %Cmp_Val, ptr %t147, i32 0, i32 0 %t149 = load ptr, ptr %t148 %t150 = call ptr @fn_str_concat(ptr @.str2758, ptr %t149) %t151 = call ptr @fn_str_concat(ptr %t150, ptr @.str2759) %t152 = call ptr @fn_emit_bind(ptr %t151) %t153 = call ptr @fn_val(ptr %t152, ptr @.str2760) store ptr %t153, ptr %retval br label %ret ifend20: %t154 = load ptr, ptr %t0 %t155 = call i32 @fn_str_eq(ptr %t154, ptr @.str2761) %t156 = icmp ne i32 %t155, 0 br i1 %t156, label %then21, label %ifend23 then21: %t157 = load ptr, ptr %t1 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 7 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 0 %t161 = load ptr, ptr %t160 %t162 = getelementptr inbounds ptr, ptr %t161, i32 0 %t163 = load ptr, ptr %t162 %t164 = call ptr @fn_emit_expr(ptr %t163) store ptr %t164, ptr %t165 %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 ptr, ptr %t170, i32 1 %t172 = load ptr, ptr %t171 %t173 = call ptr @fn_emit_expr(ptr %t172) store ptr %t173, ptr %t174 %t175 = load ptr, ptr %t165 %t176 = getelementptr inbounds %Cmp_Val, ptr %t175, i32 0, i32 0 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_str_concat(ptr @.str2762, ptr %t177) %t179 = call ptr @fn_str_concat(ptr %t178, ptr @.str2763) %t180 = load ptr, ptr %t174 %t181 = getelementptr inbounds %Cmp_Val, ptr %t180, i32 0, i32 0 %t182 = load ptr, ptr %t181 %t183 = call ptr @fn_str_concat(ptr %t179, ptr %t182) %t184 = call ptr @fn_str_concat(ptr %t183, ptr @.str2764) %t185 = call ptr @fn_emit_bind(ptr %t184) %t186 = call ptr @fn_val(ptr %t185, ptr @.str2765) store ptr %t186, ptr %retval br label %ret ifend23: %t187 = load ptr, ptr %t1 %t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 7 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %LSlice, ptr %t189, i32 0, i32 0 %t191 = load ptr, ptr %t190 %t192 = getelementptr inbounds ptr, ptr %t191, i32 0 %t193 = load ptr, ptr %t192 %t194 = call ptr @fn_emit_expr(ptr %t193) store ptr %t194, ptr %t195 %t196 = load ptr, ptr %t195 %t197 = getelementptr inbounds %Cmp_Val, ptr %t196, i32 0, i32 0 %t198 = load ptr, ptr %t197 %t199 = call ptr @fn_str_concat(ptr @.str2766, ptr %t198) %t200 = call ptr @fn_str_concat(ptr %t199, ptr @.str2767) %t201 = call ptr @fn_emit_bind(ptr %t200) %t202 = call ptr @fn_val(ptr %t201, ptr @.str2768) store ptr %t202, ptr %retval br label %ret ret: %t203 = load ptr, ptr %retval ret ptr %t203 } 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 @.str2769) call void @fn_emith(ptr @.str2770) call void @fn_emith(ptr @.str2771) call void @fn_emith(ptr @.str2772) call void @fn_emith(ptr @.str2773) call void @fn_emith(ptr @.str2774) call void @fn_emith(ptr @.str2775) call void @fn_emith(ptr @.str2776) call void @fn_emith(ptr @.str2777) call void @fn_emith(ptr @.str2778) call void @fn_emith(ptr @.str2779) call void @fn_emith(ptr @.str2780) call void @fn_emith(ptr @.str2781) call void @fn_emith(ptr @.str2782) call void @fn_emith(ptr @.str2783) call void @fn_emith(ptr @.str2784) call void @fn_emith(ptr @.str2785) call void @fn_emith(ptr @.str2786) call void @fn_emith(ptr @.str2787) call void @fn_emith(ptr @.str2788) call void @fn_emith(ptr @.str2789) call void @fn_emith(ptr @.str2790) call void @fn_emith(ptr @.str2791) call void @fn_emith(ptr @.str2792) call void @fn_emith(ptr @.str2793) call void @fn_emith(ptr @.str2794) call void @fn_emith(ptr @.str2795) call void @fn_emith(ptr @.str2796) call void @fn_emith(ptr @.str2797) call void @fn_emith(ptr @.str2798) call void @fn_emith(ptr @.str2799) call void @fn_emith(ptr @.str2800) call void @fn_emith(ptr @.str2801) call void @fn_emith(ptr @.str2802) call void @fn_emith(ptr @.str2803) call void @fn_emith(ptr @.str2804) call void @fn_emith(ptr @.str2805) call void @fn_emith(ptr @.str2806) call void @fn_emith(ptr @.str2807) call void @fn_emith(ptr @.str2808) call void @fn_emith(ptr @.str2809) call void @fn_emith(ptr @.str2810) call void @fn_emith(ptr @.str2811) call void @fn_emith(ptr @.str2812) call void @fn_emith(ptr @.str2813) call void @fn_emith(ptr @.str2814) call void @fn_emith(ptr @.str2815) call void @fn_emith(ptr @.str2816) call void @fn_emith(ptr @.str2817) call void @fn_emith(ptr @.str2818) call void @fn_emith(ptr @.str2819) call void @fn_emith(ptr @.str2820) call void @fn_emith(ptr @.str2821) call void @fn_emith(ptr @.str2822) call void @fn_emith(ptr @.str2823) call void @fn_emith(ptr @.str2824) call void @fn_emith(ptr @.str2825) call void @fn_emith(ptr @.str2826) call void @fn_emith(ptr @.str2827) call void @fn_emith(ptr @.str2828) call void @fn_emith(ptr @.str2829) call void @fn_emith(ptr @.str2830) call void @fn_emith(ptr @.str2831) call void @fn_emith(ptr @.str2832) call void @fn_emith(ptr @.str2833) call void @fn_emith(ptr @.str2834) call void @fn_emith(ptr @.str2835) call void @fn_emith(ptr @.str2836) call void @fn_emith(ptr @.str2837) call void @fn_emith(ptr @.str2838) call void @fn_emith(ptr @.str2839) call void @fn_emith(ptr @.str2840) call void @fn_emith(ptr @.str2841) br label %ret ret: ret void } define void @fn_emit_uni_case_fns() { entry: call void @fn_emith(ptr @.str2842) call void @fn_emith(ptr @.str2843) call void @fn_emith(ptr @.str2844) call void @fn_emith(ptr @.str2845) call void @fn_emith(ptr @.str2846) call void @fn_emith(ptr @.str2847) call void @fn_emith(ptr @.str2848) call void @fn_emith(ptr @.str2849) call void @fn_emith(ptr @.str2850) call void @fn_emith(ptr @.str2851) call void @fn_emith(ptr @.str2852) call void @fn_emith(ptr @.str2853) call void @fn_emith(ptr @.str2854) call void @fn_emith(ptr @.str2855) call void @fn_emith(ptr @.str2856) call void @fn_emith(ptr @.str2857) call void @fn_emith(ptr @.str2858) call void @fn_emith(ptr @.str2859) call void @fn_emith(ptr @.str2860) call void @fn_emith(ptr @.str2861) call void @fn_emith(ptr @.str2862) call void @fn_emith(ptr @.str2863) call void @fn_emith(ptr @.str2864) call void @fn_emith(ptr @.str2865) call void @fn_emith(ptr @.str2866) call void @fn_emith(ptr @.str2867) call void @fn_emith(ptr @.str2868) call void @fn_emith(ptr @.str2869) call void @fn_emith(ptr @.str2870) call void @fn_emith(ptr @.str2871) call void @fn_emith(ptr @.str2872) call void @fn_emith(ptr @.str2873) call void @fn_emith(ptr @.str2874) call void @fn_emith(ptr @.str2875) call void @fn_emith(ptr @.str2876) call void @fn_emith(ptr @.str2877) call void @fn_emith(ptr @.str2878) call void @fn_emith(ptr @.str2879) call void @fn_emith(ptr @.str2880) call void @fn_emith(ptr @.str2881) br label %ret ret: ret void } define void @fn_emit_uni_str_fns() { entry: call void @fn_emith(ptr @.str2882) call void @fn_emith(ptr @.str2883) call void @fn_emith(ptr @.str2884) call void @fn_emith(ptr @.str2885) call void @fn_emith(ptr @.str2886) call void @fn_emith(ptr @.str2887) call void @fn_emith(ptr @.str2888) call void @fn_emith(ptr @.str2889) call void @fn_emith(ptr @.str2890) call void @fn_emith(ptr @.str2891) call void @fn_emith(ptr @.str2892) call void @fn_emith(ptr @.str2893) call void @fn_emith(ptr @.str2894) call void @fn_emith(ptr @.str2895) call void @fn_emith(ptr @.str2896) call void @fn_emith(ptr @.str2897) call void @fn_emith(ptr @.str2898) call void @fn_emith(ptr @.str2899) call void @fn_emith(ptr @.str2900) call void @fn_emith(ptr @.str2901) call void @fn_emith(ptr @.str2902) call void @fn_emith(ptr @.str2903) call void @fn_emith(ptr @.str2904) call void @fn_emith(ptr @.str2905) call void @fn_emith(ptr @.str2906) call void @fn_emith(ptr @.str2907) call void @fn_emith(ptr @.str2908) call void @fn_emith(ptr @.str2909) call void @fn_emith(ptr @.str2910) call void @fn_emith(ptr @.str2911) call void @fn_emith(ptr @.str2912) call void @fn_emith(ptr @.str2913) call void @fn_emith(ptr @.str2914) call void @fn_emith(ptr @.str2915) call void @fn_emith(ptr @.str2916) call void @fn_emith(ptr @.str2917) call void @fn_emith(ptr @.str2918) call void @fn_emit_uni_grapheme() br label %ret ret: ret void } define void @fn_emit_uni_grapheme() { entry: call void @fn_emith(ptr @.str2919) call void @fn_emith(ptr @.str2920) call void @fn_emith(ptr @.str2921) call void @fn_emith(ptr @.str2922) call void @fn_emith(ptr @.str2923) call void @fn_emith(ptr @.str2924) call void @fn_emith(ptr @.str2925) call void @fn_emith(ptr @.str2926) call void @fn_emith(ptr @.str2927) call void @fn_emith(ptr @.str2928) call void @fn_emith(ptr @.str2929) call void @fn_emith(ptr @.str2930) call void @fn_emith(ptr @.str2931) call void @fn_emith(ptr @.str2932) call void @fn_emith(ptr @.str2933) call void @fn_emith(ptr @.str2934) call void @fn_emith(ptr @.str2935) call void @fn_emith(ptr @.str2936) call void @fn_emith(ptr @.str2937) 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 @fn_str_eq(ptr %t3, ptr @.str2938) %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_str_eq(ptr %t7, ptr @.str2939) %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_str_eq(ptr %t14, ptr @.str2940) %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 @fn_str_eq(ptr %t22, ptr @.str2941) %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 @fn_str_eq(ptr %t26, ptr @.str2942) %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 @fn_str_eq(ptr %t33, ptr @.str2943) %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 @fn_str_eq(ptr %t42, ptr @.str2944) %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 @fn_str_eq(ptr %t46, ptr @.str2945) %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 @fn_str_eq(ptr %t53, ptr @.str2946) %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 @fn_str_eq(ptr %t60, ptr @.str2947) %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 @fn_str_eq(ptr %t3, ptr @.str2948) %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_str_eq(ptr %t7, ptr @.str2949) %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_str_eq(ptr %t14, ptr @.str2950) %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 @fn_str_eq(ptr %t22, ptr @.str2951) %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 @fn_str_eq(ptr %t26, ptr @.str2952) %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 @fn_str_eq(ptr %t33, ptr @.str2953) %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 @fn_str_eq(ptr %t2, ptr @.str2954) %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 @fn_str_eq(ptr %t6, ptr @.str2955) %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 %t10 = alloca ptr %t89 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_uses_fsrt %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 ptr, ptr %t6, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_emit_expr(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str2956) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t10 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_str_concat(ptr @.str2957, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str2958) %t19 = call ptr @fn_emit_bind(ptr %t18) %t20 = call ptr @fn_val(ptr %t19, ptr @.str2959) store ptr %t20, ptr %retval br label %ret ifend2: %t21 = load ptr, ptr %t0 %t22 = call i32 @fn_str_eq(ptr %t21, ptr @.str2960) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %ifend5 then3: %t24 = load ptr, ptr %t10 %t25 = getelementptr inbounds %Cmp_Val, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = call ptr @fn_str_concat(ptr @.str2961, ptr %t26) %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str2962) %t29 = call ptr @fn_emit_bind(ptr %t28) %t30 = call ptr @fn_val(ptr %t29, ptr @.str2963) store ptr %t30, ptr %retval br label %ret ifend5: %t31 = load ptr, ptr %t0 %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str2964) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then6, label %ifend8 then6: %t34 = load ptr, ptr %t10 %t35 = getelementptr inbounds %Cmp_Val, ptr %t34, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_str_concat(ptr @.str2965, ptr %t36) %t38 = call ptr @fn_str_concat(ptr %t37, ptr @.str2966) %t39 = call ptr @fn_emit_bind(ptr %t38) %t40 = call ptr @fn_val(ptr %t39, ptr @.str2967) store ptr %t40, ptr %retval br label %ret ifend8: %t41 = load ptr, ptr %t0 %t42 = call i32 @fn_str_eq(ptr %t41, ptr @.str2968) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then9, label %ifend11 then9: %t44 = load ptr, ptr %t10 %t45 = getelementptr inbounds %Cmp_Val, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_str_concat(ptr @.str2969, ptr %t46) %t48 = call ptr @fn_str_concat(ptr %t47, ptr @.str2970) %t49 = call ptr @fn_emit_bind(ptr %t48) %t50 = call ptr @fn_val(ptr %t49, ptr @.str2971) store ptr %t50, ptr %retval br label %ret ifend11: %t51 = load ptr, ptr %t0 %t52 = call i32 @fn_str_eq(ptr %t51, ptr @.str2972) %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then12, label %ifend14 then12: %t54 = load ptr, ptr %t10 %t55 = getelementptr inbounds %Cmp_Val, ptr %t54, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_str_concat(ptr @.str2973, ptr %t56) %t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str2974) %t59 = call ptr @fn_emit_bind(ptr %t58) %t60 = call ptr @fn_val(ptr %t59, ptr @.str2975) store ptr %t60, ptr %retval br label %ret ifend14: %t61 = load ptr, ptr %t0 %t62 = call i32 @fn_str_eq(ptr %t61, ptr @.str2976) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then15, label %ifend17 then15: %t64 = load ptr, ptr %t10 %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_str_concat(ptr @.str2977, ptr %t66) %t68 = call ptr @fn_str_concat(ptr %t67, ptr @.str2978) %t69 = call ptr @fn_emit_bind(ptr %t68) %t70 = call ptr @fn_val(ptr %t69, ptr @.str2979) store ptr %t70, ptr %retval br label %ret ifend17: %t71 = load ptr, ptr %t0 %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str2980) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then18, label %ifend20 then18: %t74 = load ptr, ptr %t10 %t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0 %t76 = load ptr, ptr %t75 %t77 = call ptr @fn_str_concat(ptr @.str2981, ptr %t76) %t78 = call ptr @fn_str_concat(ptr %t77, ptr @.str2982) %t79 = call ptr @fn_emit_bind(ptr %t78) %t80 = call ptr @fn_val(ptr %t79, ptr @.str2983) store ptr %t80, ptr %retval br label %ret ifend20: %t81 = load ptr, ptr %t1 %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 0 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds ptr, ptr %t85, i32 1 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_emit_expr(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t0 %t91 = call i32 @fn_str_eq(ptr %t90, ptr @.str2984) %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then21, label %ifend23 then21: %t93 = load ptr, ptr %t10 %t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 0 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_str_concat(ptr @.str2985, ptr %t95) %t97 = call ptr @fn_str_concat(ptr %t96, ptr @.str2986) %t98 = load ptr, ptr %t89 %t99 = getelementptr inbounds %Cmp_Val, ptr %t98, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = call ptr @fn_str_concat(ptr %t97, ptr %t100) %t102 = call ptr @fn_str_concat(ptr %t101, ptr @.str2987) %t103 = call ptr @fn_emit_bind(ptr %t102) %t104 = call ptr @fn_val(ptr %t103, ptr @.str2988) store ptr %t104, ptr %retval br label %ret ifend23: %t105 = load ptr, ptr %t0 %t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str2989) %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then24, label %ifend26 then24: %t108 = load ptr, ptr %t10 %t109 = getelementptr inbounds %Cmp_Val, ptr %t108, i32 0, i32 0 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_str_concat(ptr @.str2990, ptr %t110) %t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str2991) %t113 = load ptr, ptr %t89 %t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 0 %t115 = load ptr, ptr %t114 %t116 = call ptr @fn_str_concat(ptr %t112, ptr %t115) %t117 = call ptr @fn_str_concat(ptr %t116, ptr @.str2992) %t118 = call ptr @fn_emit_bind(ptr %t117) %t119 = call ptr @fn_val(ptr %t118, ptr @.str2993) store ptr %t119, ptr %retval br label %ret ifend26: %t120 = load ptr, ptr %t10 %t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = call ptr @fn_str_concat(ptr @.str2994, ptr %t122) %t124 = call ptr @fn_str_concat(ptr %t123, ptr @.str2995) %t125 = load ptr, ptr %t89 %t126 = getelementptr inbounds %Cmp_Val, ptr %t125, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = call ptr @fn_str_concat(ptr %t124, ptr %t127) %t129 = call ptr @fn_str_concat(ptr %t128, ptr @.str2996) %t130 = call ptr @fn_emit_bind(ptr %t129) %t131 = call ptr @fn_val(ptr %t130, ptr @.str2997) store ptr %t131, ptr %retval br label %ret ret: %t132 = load ptr, ptr %retval ret ptr %t132 } define ptr @fn_emit_path_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t10 = alloca ptr %t69 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_uses_fsrt %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 ptr, ptr %t6, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_emit_expr(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str2998) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t10 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_str_concat(ptr @.str2999, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str3000) %t19 = call ptr @fn_emit_bind(ptr %t18) %t20 = call ptr @fn_val(ptr %t19, ptr @.str3001) store ptr %t20, ptr %retval br label %ret ifend2: %t21 = load ptr, ptr %t0 %t22 = call i32 @fn_str_eq(ptr %t21, ptr @.str3002) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %ifend5 then3: %t24 = load ptr, ptr %t10 %t25 = getelementptr inbounds %Cmp_Val, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = call ptr @fn_str_concat(ptr @.str3003, ptr %t26) %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str3004) %t29 = call ptr @fn_emit_bind(ptr %t28) %t30 = call ptr @fn_val(ptr %t29, ptr @.str3005) store ptr %t30, ptr %retval br label %ret ifend5: %t31 = load ptr, ptr %t0 %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str3006) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then6, label %ifend8 then6: %t34 = load ptr, ptr %t10 %t35 = getelementptr inbounds %Cmp_Val, ptr %t34, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_str_concat(ptr @.str3007, ptr %t36) %t38 = call ptr @fn_str_concat(ptr %t37, ptr @.str3008) %t39 = call ptr @fn_emit_bind(ptr %t38) %t40 = call ptr @fn_val(ptr %t39, ptr @.str3009) store ptr %t40, ptr %retval br label %ret ifend8: %t41 = load ptr, ptr %t0 %t42 = call i32 @fn_str_eq(ptr %t41, ptr @.str3010) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then9, label %ifend11 then9: %t44 = load ptr, ptr %t10 %t45 = getelementptr inbounds %Cmp_Val, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_str_concat(ptr @.str3011, ptr %t46) %t48 = call ptr @fn_str_concat(ptr %t47, ptr @.str3012) %t49 = call ptr @fn_emit_bind(ptr %t48) %t50 = call ptr @fn_val(ptr %t49, ptr @.str3013) store ptr %t50, ptr %retval br label %ret ifend11: %t51 = load ptr, ptr %t0 %t52 = call i32 @fn_str_eq(ptr %t51, ptr @.str3014) %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then12, label %ifend14 then12: %t54 = load ptr, ptr %t10 %t55 = getelementptr inbounds %Cmp_Val, ptr %t54, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_str_concat(ptr @.str3015, ptr %t56) %t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str3016) %t59 = call ptr @fn_emit_bind(ptr %t58) %t60 = call ptr @fn_val(ptr %t59, ptr @.str3017) store ptr %t60, ptr %retval br label %ret ifend14: %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 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds ptr, ptr %t65, i32 1 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_emit_expr(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t10 %t71 = getelementptr inbounds %Cmp_Val, ptr %t70, i32 0, i32 0 %t72 = load ptr, ptr %t71 %t73 = call ptr @fn_str_concat(ptr @.str3018, ptr %t72) %t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str3019) %t75 = load ptr, ptr %t69 %t76 = getelementptr inbounds %Cmp_Val, ptr %t75, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_str_concat(ptr %t74, ptr %t77) %t79 = call ptr @fn_str_concat(ptr %t78, ptr @.str3020) %t80 = call ptr @fn_emit_bind(ptr %t79) %t81 = call ptr @fn_val(ptr %t80, ptr @.str3021) store ptr %t81, ptr %retval br label %ret ret: %t82 = load ptr, ptr %retval ret ptr %t82 } define ptr @fn_emit_mime_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t10 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_uses_fsrt %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 ptr, ptr %t6, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_emit_expr(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str3022) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t10 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_str_concat(ptr @.str3023, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str3024) %t19 = call ptr @fn_emit_bind(ptr %t18) %t20 = call ptr @fn_val(ptr %t19, ptr @.str3025) store ptr %t20, ptr %retval br label %ret ifend2: %t21 = load ptr, ptr %t10 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_str_concat(ptr @.str3026, ptr %t23) %t25 = call ptr @fn_str_concat(ptr %t24, ptr @.str3027) %t26 = call ptr @fn_emit_bind(ptr %t25) %t27 = call ptr @fn_val(ptr %t26, ptr @.str3028) store ptr %t27, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } define void @fn_emit_fs_prelude() { entry: call void @fn_emith(ptr @.str3029) call void @fn_emith(ptr @.str3030) call void @fn_emith(ptr @.str3031) call void @fn_emith(ptr @.str3032) call void @fn_emith(ptr @.str3033) call void @fn_emith(ptr @.str3034) call void @fn_emith(ptr @.str3035) call void @fn_emith(ptr @.str3036) 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 @.str3037) call void @fn_emith(ptr @.str3038) call void @fn_emith(ptr @.str3039) call void @fn_emith(ptr @.str3040) call void @fn_emith(ptr @.str3041) call void @fn_emith(ptr @.str3042) call void @fn_emith(ptr @.str3043) call void @fn_emith(ptr @.str3044) call void @fn_emith(ptr @.str3045) call void @fn_emith(ptr @.str3046) call void @fn_emith(ptr @.str3047) call void @fn_emith(ptr @.str3048) call void @fn_emith(ptr @.str3049) br label %ret ret: ret void } define void @fn_emit_fs_path() { entry: call void @fn_emith(ptr @.str3050) call void @fn_emith(ptr @.str3051) call void @fn_emith(ptr @.str3052) call void @fn_emith(ptr @.str3053) call void @fn_emith(ptr @.str3054) call void @fn_emith(ptr @.str3055) call void @fn_emith(ptr @.str3056) call void @fn_emith(ptr @.str3057) call void @fn_emith(ptr @.str3058) call void @fn_emith(ptr @.str3059) call void @fn_emith(ptr @.str3060) call void @fn_emith(ptr @.str3061) call void @fn_emith(ptr @.str3062) call void @fn_emith(ptr @.str3063) call void @fn_emith(ptr @.str3064) call void @fn_emith(ptr @.str3065) call void @fn_emith(ptr @.str3066) call void @fn_emith(ptr @.str3067) call void @fn_emith(ptr @.str3068) call void @fn_emith(ptr @.str3069) call void @fn_emith(ptr @.str3070) call void @fn_emith(ptr @.str3071) call void @fn_emith(ptr @.str3072) call void @fn_emith(ptr @.str3073) call void @fn_emith(ptr @.str3074) call void @fn_emith(ptr @.str3075) call void @fn_emith(ptr @.str3076) call void @fn_emith(ptr @.str3077) call void @fn_emith(ptr @.str3078) call void @fn_emith(ptr @.str3079) call void @fn_emith(ptr @.str3080) call void @fn_emith(ptr @.str3081) call void @fn_emith(ptr @.str3082) call void @fn_emith(ptr @.str3083) call void @fn_emith(ptr @.str3084) call void @fn_emith(ptr @.str3085) call void @fn_emith(ptr @.str3086) call void @fn_emith(ptr @.str3087) call void @fn_emith(ptr @.str3088) call void @fn_emith(ptr @.str3089) call void @fn_emith(ptr @.str3090) call void @fn_emith(ptr @.str3091) call void @fn_emit_fs_normalize() br label %ret ret: ret void } define void @fn_emit_fs_normalize() { entry: call void @fn_emith(ptr @.str3092) call void @fn_emith(ptr @.str3093) call void @fn_emith(ptr @.str3094) call void @fn_emith(ptr @.str3095) call void @fn_emith(ptr @.str3096) call void @fn_emith(ptr @.str3097) call void @fn_emith(ptr @.str3098) call void @fn_emith(ptr @.str3099) call void @fn_emith(ptr @.str3100) call void @fn_emith(ptr @.str3101) call void @fn_emith(ptr @.str3102) call void @fn_emith(ptr @.str3103) call void @fn_emith(ptr @.str3104) call void @fn_emith(ptr @.str3105) call void @fn_emith(ptr @.str3106) call void @fn_emith(ptr @.str3107) call void @fn_emith(ptr @.str3108) call void @fn_emith(ptr @.str3109) call void @fn_emith(ptr @.str3110) call void @fn_emith(ptr @.str3111) call void @fn_emith(ptr @.str3112) call void @fn_emith(ptr @.str3113) call void @fn_emith(ptr @.str3114) call void @fn_emith(ptr @.str3115) call void @fn_emith(ptr @.str3116) call void @fn_emith(ptr @.str3117) call void @fn_emith(ptr @.str3118) call void @fn_emith(ptr @.str3119) call void @fn_emith(ptr @.str3120) call void @fn_emith(ptr @.str3121) call void @fn_emith(ptr @.str3122) call void @fn_emith(ptr @.str3123) call void @fn_emith(ptr @.str3124) call void @fn_emith(ptr @.str3125) call void @fn_emith(ptr @.str3126) call void @fn_emith(ptr @.str3127) call void @fn_emith(ptr @.str3128) br label %ret ret: ret void } define void @fn_emit_fs_io() { entry: call void @fn_emith(ptr @.str3129) call void @fn_emith(ptr @.str3130) call void @fn_emith(ptr @.str3131) call void @fn_emith(ptr @.str3132) call void @fn_emith(ptr @.str3133) call void @fn_emith(ptr @.str3134) call void @fn_emith(ptr @.str3135) call void @fn_emith(ptr @.str3136) call void @fn_emith(ptr @.str3137) call void @fn_emith(ptr @.str3138) call void @fn_emith(ptr @.str3139) call void @fn_emith(ptr @.str3140) call void @fn_emith(ptr @.str3141) call void @fn_emith(ptr @.str3142) call void @fn_emith(ptr @.str3143) call void @fn_emith(ptr @.str3144) call void @fn_emith(ptr @.str3145) call void @fn_emith(ptr @.str3146) call void @fn_emith(ptr @.str3147) call void @fn_emith(ptr @.str3148) call void @fn_emith(ptr @.str3149) call void @fn_emith(ptr @.str3150) call void @fn_emith(ptr @.str3151) call void @fn_emith(ptr @.str3152) call void @fn_emith(ptr @.str3153) call void @fn_emith(ptr @.str3154) call void @fn_emith(ptr @.str3155) call void @fn_emith(ptr @.str3156) call void @fn_emith(ptr @.str3157) call void @fn_emith(ptr @.str3158) call void @fn_emith(ptr @.str3159) call void @fn_emith(ptr @.str3160) call void @fn_emith(ptr @.str3161) call void @fn_emith(ptr @.str3162) call void @fn_emith(ptr @.str3163) call void @fn_emith(ptr @.str3164) call void @fn_emith(ptr @.str3165) call void @fn_emith(ptr @.str3166) call void @fn_emith(ptr @.str3167) call void @fn_emith(ptr @.str3168) call void @fn_emith(ptr @.str3169) call void @fn_emith(ptr @.str3170) call void @fn_emith(ptr @.str3171) call void @fn_emith(ptr @.str3172) br label %ret ret: ret void } define void @fn_emit_fs_dir() { entry: call void @fn_emith(ptr @.str3173) call void @fn_emith(ptr @.str3174) call void @fn_emith(ptr @.str3175) call void @fn_emith(ptr @.str3176) call void @fn_emith(ptr @.str3177) call void @fn_emith(ptr @.str3178) call void @fn_emith(ptr @.str3179) call void @fn_emith(ptr @.str3180) call void @fn_emith(ptr @.str3181) call void @fn_emith(ptr @.str3182) call void @fn_emith(ptr @.str3183) call void @fn_emith(ptr @.str3184) call void @fn_emith(ptr @.str3185) call void @fn_emith(ptr @.str3186) call void @fn_emith(ptr @.str3187) call void @fn_emith(ptr @.str3188) call void @fn_emith(ptr @.str3189) call void @fn_emith(ptr @.str3190) call void @fn_emith(ptr @.str3191) call void @fn_emith(ptr @.str3192) call void @fn_emith(ptr @.str3193) call void @fn_emith(ptr @.str3194) call void @fn_emith(ptr @.str3195) call void @fn_emith(ptr @.str3196) 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 %t1003 = alloca ptr %t1007 = 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 @.str3197, 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 @.str3198, 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 @.str3199, 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 @.str3200, 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 @.str3201, 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 @.str3202, 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 @.str3203, 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 @.str3204, 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 @.str3205, 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 @.str3206, 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 @.str3207, 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 @.str3208, 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 @.str3209, 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 @.str3210, 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 @.str3211, 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 @.str3212, 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 @.str3213, 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 @.str3214, 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 @.str3215, 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 @.str3216, 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 @.str3217, 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 @.str3218, 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 @.str3219, 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 @.str3220, 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 @.str3221, 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 @.str3222, 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 @.str3223, 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 @.str3224, 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 @.str3225, 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 @.str3226, 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 @.str3227, 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 @.str3228, 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 @.str3229, 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 @.str3230, 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 @.str3231, 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 @.str3232, 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 @.str3233, 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 @.str3234, 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 @.str3235, 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 @.str3236, 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 @.str3237, 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 @.str3238, 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 @.str3239, 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 @.str3240, 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 @.str3241, 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 @.str3242, 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 @.str3243, 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 @.str3244, 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 = getelementptr inbounds %LSlice, ptr %t948, i32 0, i32 1 %t950 = getelementptr inbounds %LSlice, ptr %t948, i32 0, i32 2 %t951 = getelementptr inbounds %LSlice, ptr %t948, i32 0, i32 0 %t952 = load i32, ptr %t949 %t953 = load i32, ptr %t950 %t954 = icmp sge i32 %t952, %t953 br i1 %t954, label %grow99, label %put100 grow99: %t955 = mul i32 %t953, 2 %t956 = icmp eq i32 %t953, 0 %t957 = select i1 %t956, i32 8, i32 %t955 %t958 = getelementptr ptr, ptr null, i32 1 %t959 = ptrtoint ptr %t958 to i64 %t960 = zext i32 %t957 to i64 %t961 = mul i64 %t960, %t959 %t962 = load ptr, ptr %t951 %t963 = call ptr @realloc(ptr %t962, i64 %t961) store ptr %t963, ptr %t951 store i32 %t957, ptr %t950 br label %put100 put100: %t964 = load ptr, ptr %t6 %t965 = getelementptr inbounds %LSlice, ptr %t964, i32 0, i32 0 %t966 = load ptr, ptr %t965 %t967 = load i32, ptr %t940 %t968 = getelementptr inbounds ptr, ptr %t966, i32 %t967 %t969 = load ptr, ptr %t968 %t970 = call ptr @fn_emit_str_const(ptr %t969) %t971 = load ptr, ptr %t951 %t972 = getelementptr inbounds ptr, ptr %t971, i32 %t952 store ptr %t970, ptr %t972 %t973 = add i32 %t952, 1 store i32 %t973, ptr %t949 %t974 = load ptr, ptr %t939 %t975 = getelementptr inbounds %LSlice, ptr %t974, i32 0, i32 1 %t976 = getelementptr inbounds %LSlice, ptr %t974, i32 0, i32 2 %t977 = getelementptr inbounds %LSlice, ptr %t974, i32 0, i32 0 %t978 = load i32, ptr %t975 %t979 = load i32, ptr %t976 %t980 = icmp sge i32 %t978, %t979 br i1 %t980, label %grow101, label %put102 grow101: %t981 = mul i32 %t979, 2 %t982 = icmp eq i32 %t979, 0 %t983 = select i1 %t982, i32 8, i32 %t981 %t984 = getelementptr ptr, ptr null, i32 1 %t985 = ptrtoint ptr %t984 to i64 %t986 = zext i32 %t983 to i64 %t987 = mul i64 %t986, %t985 %t988 = load ptr, ptr %t977 %t989 = call ptr @realloc(ptr %t988, i64 %t987) store ptr %t989, ptr %t977 store i32 %t983, ptr %t976 br label %put102 put102: %t990 = load ptr, ptr %t13 %t991 = getelementptr inbounds %LSlice, ptr %t990, i32 0, i32 0 %t992 = load ptr, ptr %t991 %t993 = load i32, ptr %t940 %t994 = getelementptr inbounds ptr, ptr %t992, i32 %t993 %t995 = load ptr, ptr %t994 %t996 = call ptr @fn_emit_str_const(ptr %t995) %t997 = load ptr, ptr %t977 %t998 = getelementptr inbounds ptr, ptr %t997, i32 %t978 store ptr %t996, ptr %t998 %t999 = add i32 %t978, 1 store i32 %t999, ptr %t975 %t1000 = load i32, ptr %t940 %t1001 = add i32 %t1000, 1 store i32 %t1001, ptr %t940 br label %wcond96 wend98: %t1002 = call ptr @fn_emit_str_const(ptr @.str3245) store ptr %t1002, ptr %t1003 %t1004 = load ptr, ptr %t6 %t1005 = getelementptr inbounds %LSlice, ptr %t1004, i32 0, i32 1 %t1006 = load i32, ptr %t1005 store i32 %t1006, ptr %t1007 %t1008 = load i32, ptr %t1007 %t1009 = call ptr @fn_itoa(i32 %t1008) %t1010 = call ptr @fn_str_concat(ptr @.str3246, ptr %t1009) %t1011 = call ptr @fn_str_concat(ptr %t1010, ptr @.str3247) call void @fn_emith(ptr %t1011) store i32 0, ptr %t940 br label %wcond103 wcond103: %t1012 = load i32, ptr %t940 %t1013 = load ptr, ptr %t6 %t1014 = getelementptr inbounds %LSlice, ptr %t1013, i32 0, i32 1 %t1015 = load i32, ptr %t1014 %t1016 = icmp slt i32 %t1012, %t1015 %t1017 = zext i1 %t1016 to i32 %t1018 = icmp ne i32 %t1017, 0 br i1 %t1018, label %wbody104, label %wend105 wbody104: %t1019 = load i32, ptr %t940 %t1020 = icmp sgt i32 %t1019, 0 %t1021 = zext i1 %t1020 to i32 %t1022 = icmp ne i32 %t1021, 0 br i1 %t1022, label %then106, label %ifend108 then106: call void @fn_emith(ptr @.str3248) br label %ifend108 ifend108: %t1023 = load ptr, ptr %t932 %t1024 = getelementptr inbounds %LSlice, ptr %t1023, i32 0, i32 0 %t1025 = load ptr, ptr %t1024 %t1026 = load i32, ptr %t940 %t1027 = getelementptr inbounds ptr, ptr %t1025, i32 %t1026 %t1028 = load ptr, ptr %t1027 %t1029 = call ptr @fn_str_concat(ptr @.str3249, ptr %t1028) %t1030 = call ptr @fn_str_concat(ptr %t1029, ptr @.str3250) %t1031 = load ptr, ptr %t939 %t1032 = getelementptr inbounds %LSlice, ptr %t1031, i32 0, i32 0 %t1033 = load ptr, ptr %t1032 %t1034 = load i32, ptr %t940 %t1035 = getelementptr inbounds ptr, ptr %t1033, i32 %t1034 %t1036 = load ptr, ptr %t1035 %t1037 = call ptr @fn_str_concat(ptr %t1030, ptr %t1036) %t1038 = call ptr @fn_str_concat(ptr %t1037, ptr @.str3251) call void @fn_emith(ptr %t1038) %t1039 = load i32, ptr %t940 %t1040 = add i32 %t1039, 1 store i32 %t1040, ptr %t940 br label %wcond103 wend105: call void @fn_emith(ptr @.str3252) call void @fn_emith(ptr @.str3253) call void @fn_emith(ptr @.str3254) %t1041 = load i32, ptr %t1007 %t1042 = call ptr @fn_itoa(i32 %t1041) %t1043 = call ptr @fn_str_concat(ptr @.str3255, ptr %t1042) %t1044 = call ptr @fn_str_concat(ptr %t1043, ptr @.str3256) call void @fn_emith(ptr %t1044) %t1045 = load i32, ptr %t1007 %t1046 = call ptr @fn_itoa(i32 %t1045) %t1047 = call ptr @fn_str_concat(ptr @.str3257, ptr %t1046) %t1048 = call ptr @fn_str_concat(ptr %t1047, ptr @.str3258) call void @fn_emith(ptr %t1048) %t1049 = load i32, ptr %t1007 %t1050 = call ptr @fn_itoa(i32 %t1049) %t1051 = call ptr @fn_str_concat(ptr @.str3259, ptr %t1050) %t1052 = call ptr @fn_str_concat(ptr %t1051, ptr @.str3260) call void @fn_emith(ptr %t1052) call void @fn_emith(ptr @.str3261) %t1053 = load ptr, ptr %t1003 %t1054 = call ptr @fn_str_concat(ptr @.str3262, ptr %t1053) %t1055 = call ptr @fn_str_concat(ptr %t1054, ptr @.str3263) call void @fn_emith(ptr %t1055) 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_emit_fs_sniff() br label %ret ret: ret void } define void @fn_emit_fs_sniff() { entry: 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) 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 @fn_str_concat(ptr @.str3295, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t1 %t11 = call ptr @fn_str_concat(ptr @.str3296, ptr %t10) %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str3297) %t13 = load ptr, ptr %t9 %t14 = call ptr @fn_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str3298) %t16 = load ptr, ptr %t2 %t17 = call ptr @fn_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 %t20 = alloca i32 %t21 = alloca i32 %t22 = alloca i32 %t47 = alloca i32 %t48 = alloca i32 %t66 = alloca i32 %t67 = alloca i32 %t68 = alloca i32 %t93 = alloca i32 %t94 = alloca i32 store ptr %arg_meth, ptr %t0 %t3 = load ptr, ptr %t0 %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str3299) %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_str_eq(ptr %t7, ptr @.str3300) %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_str_eq(ptr %t14, ptr @.str3301) %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 @fn_str_eq(ptr %t23, ptr @.str3302) %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 @fn_str_eq(ptr %t27, ptr @.str3303) %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 @fn_str_eq(ptr %t34, ptr @.str3304) %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 @fn_str_eq(ptr %t41, ptr @.str3305) %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 @fn_str_eq(ptr %t49, ptr @.str3306) %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 @fn_str_eq(ptr %t53, ptr @.str3307) %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 @fn_str_eq(ptr %t60, ptr @.str3308) %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: %t69 = load ptr, ptr %t0 %t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str3309) %t71 = icmp ne i32 %t70, 0 %t72 = zext i1 %t71 to i32 store i32 %t72, ptr %t68 br i1 %t71, label %scend24, label %sc23 sc23: %t73 = load ptr, ptr %t0 %t74 = call i32 @fn_str_eq(ptr %t73, ptr @.str3310) %t75 = icmp ne i32 %t74, 0 %t76 = zext i1 %t75 to i32 store i32 %t76, ptr %t68 br label %scend24 scend24: %t77 = load i32, ptr %t68 %t78 = icmp ne i32 %t77, 0 %t79 = zext i1 %t78 to i32 store i32 %t79, ptr %t67 br i1 %t78, label %scend26, label %sc25 sc25: %t80 = load ptr, ptr %t0 %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str3311) %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t67 br label %scend26 scend26: %t84 = load i32, ptr %t67 %t85 = icmp ne i32 %t84, 0 %t86 = zext i1 %t85 to i32 store i32 %t86, ptr %t66 br i1 %t85, label %scend28, label %sc27 sc27: %t87 = load ptr, ptr %t0 %t88 = call i32 @fn_str_eq(ptr %t87, ptr @.str3312) %t89 = icmp ne i32 %t88, 0 %t90 = zext i1 %t89 to i32 store i32 %t90, ptr %t66 br label %scend28 scend28: %t91 = load i32, ptr %t66 %t92 = icmp ne i32 %t91, 0 br i1 %t92, label %then29, label %ifend31 then29: store i32 1, ptr %retval br label %ret ifend31: %t95 = load ptr, ptr %t0 %t96 = call i32 @fn_str_eq(ptr %t95, ptr @.str3313) %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t94 br i1 %t97, label %scend33, label %sc32 sc32: %t99 = load ptr, ptr %t0 %t100 = call i32 @fn_str_eq(ptr %t99, ptr @.str3314) %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t94 br label %scend33 scend33: %t103 = load i32, ptr %t94 %t104 = icmp ne i32 %t103, 0 %t105 = zext i1 %t104 to i32 store i32 %t105, ptr %t93 br i1 %t104, label %scend35, label %sc34 sc34: %t106 = load ptr, ptr %t0 %t107 = call i32 @fn_str_eq(ptr %t106, ptr @.str3315) %t108 = icmp ne i32 %t107, 0 %t109 = zext i1 %t108 to i32 store i32 %t109, ptr %t93 br label %scend35 scend35: %t110 = load i32, ptr %t93 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then36, label %ifend38 then36: store i32 1, ptr %retval br label %ret ifend38: store i32 0, ptr %retval br label %ret ret: %t112 = load i32, ptr %retval ret i32 %t112 } 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 @fn_str_concat(ptr @.str3316, ptr %t11) %t13 = call ptr @fn_emit_bind(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t7 %t16 = call ptr @fn_str_concat(ptr @.str3317, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 %t19 = load ptr, ptr %t14 %t20 = call ptr @fn_str_concat(ptr @.str3318, ptr %t19) %t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str3319) %t22 = load ptr, ptr %t18 %t23 = call ptr @fn_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 @.str3320) store ptr %t26, ptr %t27 %t28 = call ptr @fn_lbl(ptr @.str3321) store ptr %t28, ptr %t29 call void @fn_emit(ptr @.str3322) %t30 = load ptr, ptr %t25 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str3323) %t31 = load ptr, ptr %t27 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str3324) %t32 = load ptr, ptr %t29 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str3325) %t33 = load ptr, ptr %t27 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str3326) %t34 = load ptr, ptr %t18 %t35 = call ptr @fn_str_concat(ptr @.str3327, ptr %t34) %t36 = call ptr @fn_str_concat(ptr %t35, ptr @.str3328) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t18 %t40 = call ptr @fn_str_concat(ptr @.str3329, ptr %t39) %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str3330) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = call ptr @fn_str_concat(ptr @.str3331, ptr %t44) %t46 = call ptr @fn_str_concat(ptr %t45, ptr @.str3332) %t47 = load ptr, ptr %t38 %t48 = call ptr @fn_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 @fn_str_concat(ptr @.str3333, ptr %t54) %t56 = call ptr @fn_str_concat(ptr %t55, ptr @.str3334) %t57 = call ptr @fn_emit_bind(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = call ptr @fn_str_concat(ptr @.str3335, ptr %t59) %t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str3336) %t62 = load ptr, ptr %t53 %t63 = call ptr @fn_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 @fn_str_concat(ptr @.str3337, ptr %t66) %t68 = call ptr @fn_emit_bind(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_str_concat(ptr @.str3338, ptr %t70) %t72 = call ptr @fn_str_concat(ptr %t71, ptr @.str3339) %t73 = load ptr, ptr %t65 %t74 = call ptr @fn_str_concat(ptr %t72, ptr %t73) %t75 = call ptr @fn_str_concat(ptr %t74, ptr @.str3340) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 call void @fn_emit(ptr @.str3341) %t78 = load ptr, ptr %t77 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str3342) %t79 = load ptr, ptr %t10 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str3343) call void @fn_emit(ptr @.str3344) %t80 = load ptr, ptr %t50 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str3345) %t81 = load ptr, ptr %t7 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str3346) call void @fn_emit(ptr @.str3347) %t82 = load ptr, ptr %t29 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str3348) %t83 = load ptr, ptr %t29 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str3349) 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 @fn_str_concat(ptr @.str3350, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str3351) %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str3352) %t9 = load ptr, ptr %t2 %t10 = call ptr @fn_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 @fn_str_concat(ptr @.str3353, ptr %t10) %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str3354) %t13 = load ptr, ptr %t5 %t14 = call ptr @fn_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str3355) %t16 = load ptr, ptr %t4 %t17 = call ptr @fn_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 @fn_str_concat(ptr @.str3356, ptr %t23) %t25 = call ptr @fn_str_concat(ptr %t24, ptr @.str3357) %t26 = load ptr, ptr %t0 %t27 = call ptr @fn_str_concat(ptr %t25, ptr %t26) %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str3358) %t29 = load ptr, ptr %t4 %t30 = call ptr @fn_str_concat(ptr %t28, ptr %t29) %t31 = call ptr @fn_str_concat(ptr %t30, ptr @.str3359) %t32 = load ptr, ptr %t0 %t33 = call ptr @fn_str_concat(ptr %t31, ptr %t32) %t34 = call ptr @fn_str_concat(ptr %t33, ptr @.str3360) %t35 = load ptr, ptr %t5 %t36 = call ptr @fn_str_concat(ptr %t34, ptr %t35) %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str3361) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_str_concat(ptr @.str3362, ptr %t40) %t42 = call ptr @fn_str_concat(ptr %t41, ptr @.str3363) %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 @fn_str_concat(ptr @.str3364, ptr %t44) %t46 = call ptr @fn_str_concat(ptr %t45, ptr @.str3365) %t47 = load ptr, ptr %t2 %t48 = call ptr @fn_str_concat(ptr %t46, ptr %t47) %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str3366) %t50 = load ptr, ptr %t0 %t51 = call ptr @fn_str_concat(ptr %t49, ptr %t50) %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str3367) %t53 = load ptr, ptr %t4 %t54 = call ptr @fn_str_concat(ptr %t52, ptr %t53) %t55 = call ptr @fn_str_concat(ptr %t54, ptr @.str3368) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t3 %t59 = call ptr @fn_str_concat(ptr @.str3369, ptr %t58) %t60 = call ptr @fn_str_concat(ptr %t59, ptr @.str3370) %t61 = load ptr, ptr %t2 %t62 = call ptr @fn_str_concat(ptr %t60, ptr %t61) %t63 = call ptr @fn_str_concat(ptr %t62, ptr @.str3371) %t64 = load ptr, ptr %t0 %t65 = call ptr @fn_str_concat(ptr %t63, ptr %t64) %t66 = call ptr @fn_str_concat(ptr %t65, ptr @.str3372) %t67 = load ptr, ptr %t5 %t68 = call ptr @fn_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @fn_str_concat(ptr %t68, ptr @.str3373) %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 @fn_str_concat(ptr @.str3374, ptr %t76) %t78 = call ptr @fn_str_concat(ptr %t77, ptr @.str3375) %t79 = load ptr, ptr %t57 %t80 = call ptr @fn_str_concat(ptr %t78, ptr %t79) %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str3376) %t82 = load ptr, ptr %t71 %t83 = call ptr @fn_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 @fn_str_concat(ptr @.str3377, ptr %t85) %t87 = call ptr @fn_str_concat(ptr %t86, ptr @.str3378) %t88 = load ptr, ptr %t57 %t89 = call ptr @fn_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @fn_str_concat(ptr %t89, ptr @.str3379) %t91 = load ptr, ptr %t71 %t92 = call ptr @fn_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 @fn_str_concat(ptr @.str3380, 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 @fn_str_concat(ptr @.str3381, 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 @fn_str_concat(ptr @.str3382, ptr %t22) %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str3383) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t26 %t28 = call ptr @fn_str_concat(ptr @.str3384, ptr %t27) %t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str3385) %t30 = load ptr, ptr %t21 %t31 = call ptr @fn_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 @fn_str_concat(ptr @.str3386, ptr %t34) %t36 = call ptr @fn_str_concat(ptr %t35, ptr @.str3387) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = call ptr @fn_emit_alloca(ptr @.str3388) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 call void @fn_store_at(ptr @.str3389, ptr @.str3390, ptr %t41) %t42 = call ptr @fn_lbl(ptr @.str3391) store ptr %t42, ptr %t43 %t44 = call ptr @fn_lbl(ptr @.str3392) store ptr %t44, ptr %t45 %t46 = call ptr @fn_lbl(ptr @.str3393) store ptr %t46, ptr %t47 call void @fn_emit(ptr @.str3394) %t48 = load ptr, ptr %t43 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str3395) %t49 = load ptr, ptr %t43 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str3396) %t50 = load ptr, ptr %t40 %t51 = call ptr @fn_str_concat(ptr @.str3397, ptr %t50) %t52 = call ptr @fn_emit_bind(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t53 %t55 = call ptr @fn_str_concat(ptr @.str3398, ptr %t54) %t56 = call ptr @fn_str_concat(ptr %t55, ptr @.str3399) %t57 = load ptr, ptr %t18 %t58 = call ptr @fn_str_concat(ptr %t56, ptr %t57) %t59 = call ptr @fn_emit_bind(ptr %t58) store ptr %t59, ptr %t60 call void @fn_emit(ptr @.str3400) %t61 = load ptr, ptr %t60 call void @fn_emit(ptr %t61) call void @fn_emit(ptr @.str3401) %t62 = load ptr, ptr %t45 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str3402) %t63 = load ptr, ptr %t47 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str3403) %t64 = load ptr, ptr %t45 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str3404) %t65 = load ptr, ptr %t53 %t66 = call ptr @fn_str_concat(ptr @.str3405, ptr %t65) %t67 = call ptr @fn_str_concat(ptr %t66, ptr @.str3406) %t68 = call ptr @fn_emit_bind(ptr %t67) store ptr %t68, ptr %t69 %t70 = call ptr @fn_emit_alloca(ptr @.str3407) store ptr %t70, ptr %t71 %t72 = load ptr, ptr %t71 call void @fn_store_at(ptr @.str3408, ptr @.str3409, ptr %t72) %t73 = call ptr @fn_lbl(ptr @.str3410) store ptr %t73, ptr %t74 %t75 = call ptr @fn_lbl(ptr @.str3411) store ptr %t75, ptr %t76 %t77 = call ptr @fn_lbl(ptr @.str3412) store ptr %t77, ptr %t78 call void @fn_emit(ptr @.str3413) %t79 = load ptr, ptr %t74 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str3414) %t80 = load ptr, ptr %t74 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str3415) %t81 = load ptr, ptr %t71 %t82 = call ptr @fn_str_concat(ptr @.str3416, ptr %t81) %t83 = call ptr @fn_emit_bind(ptr %t82) store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_str_concat(ptr @.str3417, ptr %t85) %t87 = call ptr @fn_str_concat(ptr %t86, ptr @.str3418) %t88 = load ptr, ptr %t18 %t89 = call ptr @fn_str_concat(ptr %t87, ptr %t88) %t90 = call ptr @fn_emit_bind(ptr %t89) store ptr %t90, ptr %t91 call void @fn_emit(ptr @.str3419) %t92 = load ptr, ptr %t91 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str3420) %t93 = load ptr, ptr %t76 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str3421) %t94 = load ptr, ptr %t78 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str3422) %t95 = load ptr, ptr %t76 call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str3423) %t96 = load ptr, ptr %t84 %t97 = call ptr @fn_str_concat(ptr @.str3424, ptr %t96) %t98 = call ptr @fn_str_concat(ptr %t97, ptr @.str3425) %t99 = load ptr, ptr %t53 %t100 = call ptr @fn_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 @fn_str_concat(ptr @.str3426, ptr %t103) %t105 = call ptr @fn_str_concat(ptr %t104, ptr @.str3427) %t106 = load ptr, ptr %t18 %t107 = call ptr @fn_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 @fn_str_concat(ptr @.str3428, ptr %t110) %t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str3429) %t113 = load ptr, ptr %t102 %t114 = call ptr @fn_str_concat(ptr %t112, ptr %t113) %t115 = call ptr @fn_str_concat(ptr %t114, ptr @.str3430) %t116 = load ptr, ptr %t18 %t117 = call ptr @fn_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 @fn_str_concat(ptr @.str3431, ptr %t120) %t122 = call ptr @fn_str_concat(ptr %t121, ptr @.str3432) %t123 = load ptr, ptr %t69 %t124 = call ptr @fn_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 @fn_str_concat(ptr @.str3433, ptr %t127) %t129 = call ptr @fn_str_concat(ptr %t128, ptr @.str3434) %t130 = load ptr, ptr %t18 %t131 = call ptr @fn_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 @fn_str_concat(ptr @.str3435, ptr %t134) %t136 = call ptr @fn_str_concat(ptr %t135, ptr @.str3436) %t137 = load ptr, ptr %t126 %t138 = call ptr @fn_str_concat(ptr %t136, ptr %t137) %t139 = call ptr @fn_str_concat(ptr %t138, ptr @.str3437) %t140 = load ptr, ptr %t18 %t141 = call ptr @fn_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 @.str3438) store ptr %t144, ptr %t145 %t146 = load ptr, ptr %t84 %t147 = load ptr, ptr %t145 call void @fn_store_at(ptr @.str3439, ptr %t146, ptr %t147) %t148 = call ptr @fn_emit_alloca(ptr @.str3440) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t119 %t151 = load ptr, ptr %t149 call void @fn_store_at(ptr @.str3441, ptr %t150, ptr %t151) %t152 = call ptr @fn_emit_alloca(ptr @.str3442) store ptr %t152, ptr %t153 %t154 = load ptr, ptr %t84 %t155 = load ptr, ptr %t153 call void @fn_store_at(ptr @.str3443, ptr %t154, ptr %t155) %t156 = call ptr @fn_lbl(ptr @.str3444) store ptr %t156, ptr %t157 %t158 = call ptr @fn_lbl(ptr @.str3445) store ptr %t158, ptr %t159 %t160 = call ptr @fn_lbl(ptr @.str3446) store ptr %t160, ptr %t161 call void @fn_emit(ptr @.str3447) %t162 = load ptr, ptr %t157 call void @fn_emit(ptr %t162) call void @fn_emit(ptr @.str3448) %t163 = load ptr, ptr %t157 call void @fn_emit(ptr %t163) call void @fn_emit(ptr @.str3449) %t164 = load ptr, ptr %t145 %t165 = call ptr @fn_str_concat(ptr @.str3450, ptr %t164) %t166 = call ptr @fn_emit_bind(ptr %t165) store ptr %t166, ptr %t167 %t168 = load ptr, ptr %t149 %t169 = call ptr @fn_str_concat(ptr @.str3451, ptr %t168) %t170 = call ptr @fn_emit_bind(ptr %t169) store ptr %t170, ptr %t171 %t172 = load ptr, ptr %t167 %t173 = call ptr @fn_str_concat(ptr @.str3452, ptr %t172) %t174 = call ptr @fn_str_concat(ptr %t173, ptr @.str3453) %t175 = load ptr, ptr %t119 %t176 = call ptr @fn_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 @fn_str_concat(ptr @.str3454, ptr %t179) %t181 = call ptr @fn_str_concat(ptr %t180, ptr @.str3455) %t182 = load ptr, ptr %t143 %t183 = call ptr @fn_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 @fn_str_concat(ptr @.str3456, ptr %t186) %t188 = call ptr @fn_str_concat(ptr %t187, ptr @.str3457) %t189 = load ptr, ptr %t185 %t190 = call ptr @fn_str_concat(ptr %t188, ptr %t189) %t191 = call ptr @fn_emit_bind(ptr %t190) store ptr %t191, ptr %t192 call void @fn_emit(ptr @.str3458) %t193 = load ptr, ptr %t192 call void @fn_emit(ptr %t193) call void @fn_emit(ptr @.str3459) %t194 = load ptr, ptr %t159 call void @fn_emit(ptr %t194) call void @fn_emit(ptr @.str3460) %t195 = load ptr, ptr %t161 call void @fn_emit(ptr %t195) call void @fn_emit(ptr @.str3461) %t196 = load ptr, ptr %t159 call void @fn_emit(ptr %t196) call void @fn_emit(ptr @.str3462) %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 @fn_str_concat(ptr @.str3463, ptr %t202) %t204 = call ptr @fn_str_concat(ptr %t203, ptr @.str3464) %t205 = load ptr, ptr %t201 %t206 = call ptr @fn_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 @fn_str_concat(ptr @.str3465, ptr %t214) %t216 = call ptr @fn_str_concat(ptr %t215, ptr @.str3466) %t217 = load ptr, ptr %t213 %t218 = call ptr @fn_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 @fn_str_concat(ptr @.str3467, 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 @.str3468) store ptr %t238, ptr %t239 %t240 = call ptr @fn_lbl(ptr @.str3469) store ptr %t240, ptr %t241 %t242 = call ptr @fn_lbl(ptr @.str3470) store ptr %t242, ptr %t243 call void @fn_emit(ptr @.str3471) %t244 = load ptr, ptr %t228 call void @fn_emit(ptr %t244) call void @fn_emit(ptr @.str3472) %t245 = load ptr, ptr %t239 call void @fn_emit(ptr %t245) call void @fn_emit(ptr @.str3473) %t246 = load ptr, ptr %t241 call void @fn_emit(ptr %t246) call void @fn_emit(ptr @.str3474) %t247 = load ptr, ptr %t239 call void @fn_emit(ptr %t247) call void @fn_emit(ptr @.str3475) call void @fn_emit(ptr @.str3476) %t248 = load ptr, ptr %t1 call void @fn_emit(ptr %t248) call void @fn_emit(ptr @.str3477) %t249 = load ptr, ptr %t220 call void @fn_emit(ptr %t249) call void @fn_emit(ptr @.str3478) %t250 = load ptr, ptr %t237 call void @fn_emit(ptr %t250) call void @fn_emit(ptr @.str3479) %t251 = load ptr, ptr %t171 %t252 = call ptr @fn_str_concat(ptr @.str3480, ptr %t251) %t253 = call ptr @fn_str_concat(ptr %t252, ptr @.str3481) %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 @.str3482, ptr %t256, ptr %t257) call void @fn_emit(ptr @.str3483) %t258 = load ptr, ptr %t243 call void @fn_emit(ptr %t258) call void @fn_emit(ptr @.str3484) %t259 = load ptr, ptr %t241 call void @fn_emit(ptr %t259) call void @fn_emit(ptr @.str3485) call void @fn_emit(ptr @.str3486) %t260 = load ptr, ptr %t1 call void @fn_emit(ptr %t260) call void @fn_emit(ptr @.str3487) %t261 = load ptr, ptr %t208 call void @fn_emit(ptr %t261) call void @fn_emit(ptr @.str3488) %t262 = load ptr, ptr %t237 call void @fn_emit(ptr %t262) call void @fn_emit(ptr @.str3489) %t263 = load ptr, ptr %t167 %t264 = call ptr @fn_str_concat(ptr @.str3490, ptr %t263) %t265 = call ptr @fn_str_concat(ptr %t264, ptr @.str3491) %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 @.str3492, ptr %t268, ptr %t269) call void @fn_emit(ptr @.str3493) %t270 = load ptr, ptr %t243 call void @fn_emit(ptr %t270) call void @fn_emit(ptr @.str3494) %t271 = load ptr, ptr %t243 call void @fn_emit(ptr %t271) call void @fn_emit(ptr @.str3495) %t272 = load ptr, ptr %t232 %t273 = call ptr @fn_str_concat(ptr @.str3496, ptr %t272) %t274 = call ptr @fn_str_concat(ptr %t273, ptr @.str3497) %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 @.str3498, ptr %t277, ptr %t278) call void @fn_emit(ptr @.str3499) %t279 = load ptr, ptr %t157 call void @fn_emit(ptr %t279) call void @fn_emit(ptr @.str3500) %t280 = load ptr, ptr %t161 call void @fn_emit(ptr %t280) call void @fn_emit(ptr @.str3501) %t281 = call ptr @fn_lbl(ptr @.str3502) store ptr %t281, ptr %t282 %t283 = call ptr @fn_lbl(ptr @.str3503) store ptr %t283, ptr %t284 %t285 = call ptr @fn_lbl(ptr @.str3504) store ptr %t285, ptr %t286 call void @fn_emit(ptr @.str3505) %t287 = load ptr, ptr %t282 call void @fn_emit(ptr %t287) call void @fn_emit(ptr @.str3506) %t288 = load ptr, ptr %t282 call void @fn_emit(ptr %t288) call void @fn_emit(ptr @.str3507) %t289 = load ptr, ptr %t145 %t290 = call ptr @fn_str_concat(ptr @.str3508, ptr %t289) %t291 = call ptr @fn_emit_bind(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t292 %t294 = call ptr @fn_str_concat(ptr @.str3509, ptr %t293) %t295 = call ptr @fn_str_concat(ptr %t294, ptr @.str3510) %t296 = load ptr, ptr %t119 %t297 = call ptr @fn_str_concat(ptr %t295, ptr %t296) %t298 = call ptr @fn_emit_bind(ptr %t297) store ptr %t298, ptr %t299 call void @fn_emit(ptr @.str3511) %t300 = load ptr, ptr %t299 call void @fn_emit(ptr %t300) call void @fn_emit(ptr @.str3512) %t301 = load ptr, ptr %t284 call void @fn_emit(ptr %t301) call void @fn_emit(ptr @.str3513) %t302 = load ptr, ptr %t286 call void @fn_emit(ptr %t302) call void @fn_emit(ptr @.str3514) %t303 = load ptr, ptr %t284 call void @fn_emit(ptr %t303) call void @fn_emit(ptr @.str3515) %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 @fn_str_concat(ptr @.str3516, ptr %t309) %t311 = call ptr @fn_str_concat(ptr %t310, ptr @.str3517) %t312 = load ptr, ptr %t308 %t313 = call ptr @fn_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 @fn_str_concat(ptr @.str3518, 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 @.str3519) %t325 = load ptr, ptr %t1 call void @fn_emit(ptr %t325) call void @fn_emit(ptr @.str3520) %t326 = load ptr, ptr %t315 call void @fn_emit(ptr %t326) call void @fn_emit(ptr @.str3521) %t327 = load ptr, ptr %t324 call void @fn_emit(ptr %t327) call void @fn_emit(ptr @.str3522) %t328 = load ptr, ptr %t292 %t329 = call ptr @fn_str_concat(ptr @.str3523, ptr %t328) %t330 = call ptr @fn_str_concat(ptr %t329, ptr @.str3524) %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 @.str3525, ptr %t333, ptr %t334) %t335 = load ptr, ptr %t319 %t336 = call ptr @fn_str_concat(ptr @.str3526, ptr %t335) %t337 = call ptr @fn_str_concat(ptr %t336, ptr @.str3527) %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 @.str3528, ptr %t340, ptr %t341) call void @fn_emit(ptr @.str3529) %t342 = load ptr, ptr %t282 call void @fn_emit(ptr %t342) call void @fn_emit(ptr @.str3530) %t343 = load ptr, ptr %t286 call void @fn_emit(ptr %t343) call void @fn_emit(ptr @.str3531) %t344 = call ptr @fn_lbl(ptr @.str3532) store ptr %t344, ptr %t345 %t346 = call ptr @fn_lbl(ptr @.str3533) store ptr %t346, ptr %t347 %t348 = call ptr @fn_lbl(ptr @.str3534) store ptr %t348, ptr %t349 call void @fn_emit(ptr @.str3535) %t350 = load ptr, ptr %t345 call void @fn_emit(ptr %t350) call void @fn_emit(ptr @.str3536) %t351 = load ptr, ptr %t345 call void @fn_emit(ptr %t351) call void @fn_emit(ptr @.str3537) %t352 = load ptr, ptr %t149 %t353 = call ptr @fn_str_concat(ptr @.str3538, ptr %t352) %t354 = call ptr @fn_emit_bind(ptr %t353) store ptr %t354, ptr %t355 %t356 = load ptr, ptr %t355 %t357 = call ptr @fn_str_concat(ptr @.str3539, ptr %t356) %t358 = call ptr @fn_str_concat(ptr %t357, ptr @.str3540) %t359 = load ptr, ptr %t143 %t360 = call ptr @fn_str_concat(ptr %t358, ptr %t359) %t361 = call ptr @fn_emit_bind(ptr %t360) store ptr %t361, ptr %t362 call void @fn_emit(ptr @.str3541) %t363 = load ptr, ptr %t362 call void @fn_emit(ptr %t363) call void @fn_emit(ptr @.str3542) %t364 = load ptr, ptr %t347 call void @fn_emit(ptr %t364) call void @fn_emit(ptr @.str3543) %t365 = load ptr, ptr %t349 call void @fn_emit(ptr %t365) call void @fn_emit(ptr @.str3544) %t366 = load ptr, ptr %t347 call void @fn_emit(ptr %t366) call void @fn_emit(ptr @.str3545) %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 @fn_str_concat(ptr @.str3546, ptr %t372) %t374 = call ptr @fn_str_concat(ptr %t373, ptr @.str3547) %t375 = load ptr, ptr %t371 %t376 = call ptr @fn_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 @fn_str_concat(ptr @.str3548, 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 @.str3549) %t388 = load ptr, ptr %t1 call void @fn_emit(ptr %t388) call void @fn_emit(ptr @.str3550) %t389 = load ptr, ptr %t378 call void @fn_emit(ptr %t389) call void @fn_emit(ptr @.str3551) %t390 = load ptr, ptr %t387 call void @fn_emit(ptr %t390) call void @fn_emit(ptr @.str3552) %t391 = load ptr, ptr %t355 %t392 = call ptr @fn_str_concat(ptr @.str3553, ptr %t391) %t393 = call ptr @fn_str_concat(ptr %t392, ptr @.str3554) %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 @.str3555, ptr %t396, ptr %t397) %t398 = load ptr, ptr %t382 %t399 = call ptr @fn_str_concat(ptr @.str3556, ptr %t398) %t400 = call ptr @fn_str_concat(ptr %t399, ptr @.str3557) %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 @.str3558, ptr %t403, ptr %t404) call void @fn_emit(ptr @.str3559) %t405 = load ptr, ptr %t345 call void @fn_emit(ptr %t405) call void @fn_emit(ptr @.str3560) %t406 = load ptr, ptr %t349 call void @fn_emit(ptr %t406) call void @fn_emit(ptr @.str3561) %t407 = call ptr @fn_emit_alloca(ptr @.str3562) store ptr %t407, ptr %t408 %t409 = load ptr, ptr %t84 %t410 = load ptr, ptr %t408 call void @fn_store_at(ptr @.str3563, ptr %t409, ptr %t410) %t411 = call ptr @fn_lbl(ptr @.str3564) store ptr %t411, ptr %t412 %t413 = call ptr @fn_lbl(ptr @.str3565) store ptr %t413, ptr %t414 %t415 = call ptr @fn_lbl(ptr @.str3566) store ptr %t415, ptr %t416 call void @fn_emit(ptr @.str3567) %t417 = load ptr, ptr %t412 call void @fn_emit(ptr %t417) call void @fn_emit(ptr @.str3568) %t418 = load ptr, ptr %t412 call void @fn_emit(ptr %t418) call void @fn_emit(ptr @.str3569) %t419 = load ptr, ptr %t408 %t420 = call ptr @fn_str_concat(ptr @.str3570, ptr %t419) %t421 = call ptr @fn_emit_bind(ptr %t420) store ptr %t421, ptr %t422 %t423 = load ptr, ptr %t422 %t424 = call ptr @fn_str_concat(ptr @.str3571, ptr %t423) %t425 = call ptr @fn_str_concat(ptr %t424, ptr @.str3572) %t426 = load ptr, ptr %t143 %t427 = call ptr @fn_str_concat(ptr %t425, ptr %t426) %t428 = call ptr @fn_emit_bind(ptr %t427) store ptr %t428, ptr %t429 call void @fn_emit(ptr @.str3573) %t430 = load ptr, ptr %t429 call void @fn_emit(ptr %t430) call void @fn_emit(ptr @.str3574) %t431 = load ptr, ptr %t414 call void @fn_emit(ptr %t431) call void @fn_emit(ptr @.str3575) %t432 = load ptr, ptr %t416 call void @fn_emit(ptr %t432) call void @fn_emit(ptr @.str3576) %t433 = load ptr, ptr %t414 call void @fn_emit(ptr %t433) call void @fn_emit(ptr @.str3577) %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 @fn_str_concat(ptr @.str3578, ptr %t439) %t441 = call ptr @fn_str_concat(ptr %t440, ptr @.str3579) %t442 = load ptr, ptr %t438 %t443 = call ptr @fn_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 @.str3580) %t451 = load ptr, ptr %t1 call void @fn_emit(ptr %t451) call void @fn_emit(ptr @.str3581) %t452 = load ptr, ptr %t445 call void @fn_emit(ptr %t452) call void @fn_emit(ptr @.str3582) %t453 = load ptr, ptr %t450 call void @fn_emit(ptr %t453) call void @fn_emit(ptr @.str3583) %t454 = load ptr, ptr %t422 %t455 = call ptr @fn_str_concat(ptr @.str3584, ptr %t454) %t456 = call ptr @fn_str_concat(ptr %t455, ptr @.str3585) %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 @.str3586, ptr %t459, ptr %t460) call void @fn_emit(ptr @.str3587) %t461 = load ptr, ptr %t412 call void @fn_emit(ptr %t461) call void @fn_emit(ptr @.str3588) %t462 = load ptr, ptr %t416 call void @fn_emit(ptr %t462) call void @fn_emit(ptr @.str3589) %t463 = load ptr, ptr %t84 %t464 = call ptr @fn_str_concat(ptr @.str3590, ptr %t463) %t465 = call ptr @fn_str_concat(ptr %t464, ptr @.str3591) %t466 = load ptr, ptr %t69 %t467 = call ptr @fn_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 @.str3592, ptr %t470, ptr %t471) call void @fn_emit(ptr @.str3593) %t472 = load ptr, ptr %t74 call void @fn_emit(ptr %t472) call void @fn_emit(ptr @.str3594) %t473 = load ptr, ptr %t78 call void @fn_emit(ptr %t473) call void @fn_emit(ptr @.str3595) %t474 = load ptr, ptr %t69 %t475 = load ptr, ptr %t40 call void @fn_store_at(ptr @.str3596, ptr %t474, ptr %t475) call void @fn_emit(ptr @.str3597) %t476 = load ptr, ptr %t43 call void @fn_emit(ptr %t476) call void @fn_emit(ptr @.str3598) %t477 = load ptr, ptr %t47 call void @fn_emit(ptr %t477) call void @fn_emit(ptr @.str3599) call void @fn_emit(ptr @.str3600) %t478 = load ptr, ptr %t38 call void @fn_emit(ptr %t478) call void @fn_emit(ptr @.str3601) 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 %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 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 @fn_str_concat(ptr @.str3602, ptr %t10) %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str3603) 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 ptr, ptr %t17, i32 1 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0 %t21 = load i32, ptr %t20 %t22 = icmp ne i32 %t21, 33 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then3, label %ifend5 then3: %t25 = load ptr, ptr %t0 %t26 = call ptr @fn_str_concat(ptr @.str3604, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str3605) call void @fn_perr(ptr %t27) br label %ifend5 ifend5: %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 ptr, ptr %t32, i32 1 %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t35 store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_find_fn(ptr %t38) %t40 = icmp eq ptr %t39, null %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then6, label %ifend8 then6: %t43 = load ptr, ptr %t0 %t44 = call ptr @fn_str_concat(ptr @.str3606, ptr %t43) %t45 = call ptr @fn_str_concat(ptr %t44, ptr @.str3607) %t46 = load ptr, ptr %t37 %t47 = call ptr @fn_str_concat(ptr %t45, ptr %t46) %t48 = call ptr @fn_str_concat(ptr %t47, ptr @.str3608) call void @fn_perr(ptr %t48) br label %ifend8 ifend8: %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_list_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t20 = alloca ptr %t35 = alloca ptr %t38 = alloca ptr %t42 = alloca ptr %t45 = alloca ptr %t57 = alloca ptr %t72 = alloca ptr %t77 = alloca ptr %t82 = alloca ptr %t97 = alloca ptr %t102 = alloca ptr %t107 = alloca ptr %t114 = alloca ptr %t131 = alloca ptr %t140 = alloca ptr %t147 = alloca ptr %t154 = alloca ptr %t161 = alloca ptr %t168 = alloca ptr %t176 = alloca i32 %t195 = alloca ptr %t199 = alloca ptr %t201 = alloca ptr %t204 = alloca ptr %t207 = alloca ptr %t209 = alloca ptr %t211 = alloca ptr %t213 = alloca ptr %t215 = alloca ptr %t221 = alloca ptr %t228 = alloca ptr %t237 = alloca ptr %t244 = alloca ptr %t256 = alloca ptr %t269 = alloca ptr %t277 = alloca ptr %t287 = alloca ptr %t304 = alloca ptr %t313 = alloca ptr %t319 = alloca ptr %t321 = alloca ptr %t325 = alloca ptr %t327 = alloca ptr %t329 = alloca ptr %t335 = alloca ptr %t344 = alloca ptr %t353 = alloca ptr %t358 = alloca ptr %t365 = alloca ptr %t370 = alloca ptr %t384 = alloca ptr %t394 = alloca ptr %t409 = alloca ptr %t413 = alloca ptr %t418 = alloca ptr %t420 = alloca ptr %t426 = alloca ptr %t428 = alloca ptr %t430 = alloca ptr %t436 = alloca ptr %t443 = alloca ptr %t452 = alloca ptr %t457 = alloca ptr %t464 = alloca ptr %t469 = alloca ptr %t491 = alloca ptr %t495 = alloca ptr %t497 = alloca ptr %t500 = alloca ptr %t503 = alloca ptr %t505 = alloca ptr %t507 = alloca ptr %t509 = alloca ptr %t511 = alloca ptr %t517 = alloca ptr %t524 = alloca ptr %t528 = alloca ptr %t533 = alloca ptr %t540 = alloca ptr %t549 = alloca ptr %t556 = alloca ptr %t568 = alloca ptr %t581 = alloca ptr %t589 = alloca ptr %t594 = alloca ptr %t596 = alloca ptr %t598 = alloca ptr %t607 = alloca ptr %t609 = alloca ptr %t613 = alloca ptr %t615 = alloca ptr %t617 = alloca ptr %t623 = alloca ptr %t630 = alloca ptr %t639 = alloca ptr %t644 = alloca ptr %t651 = alloca ptr %t656 = alloca ptr %t675 = alloca ptr %t680 = alloca ptr %t682 = alloca ptr %t684 = alloca ptr %t686 = alloca ptr %t694 = alloca ptr %t696 = alloca ptr %t699 = alloca ptr %t701 = alloca ptr %t703 = alloca ptr %t709 = alloca ptr %t716 = alloca ptr %t725 = alloca ptr %t732 = alloca ptr %t734 = alloca ptr %t739 = alloca ptr %t743 = alloca ptr %t745 = alloca ptr %t747 = alloca ptr %t753 = alloca ptr %t758 = alloca ptr %t763 = alloca ptr %t770 = alloca ptr %t780 = alloca ptr %t787 = alloca ptr %t796 = alloca ptr %t801 = alloca ptr %t809 = alloca ptr %t817 = alloca ptr %t822 = alloca ptr %t827 = alloca ptr %t835 = alloca ptr %t853 = alloca ptr %t869 = alloca i32 %t883 = alloca ptr %t886 = alloca ptr %t904 = alloca ptr %t905 = alloca i32 %t922 = alloca i32 %t935 = alloca ptr %t937 = alloca ptr %t940 = alloca ptr %t945 = alloca ptr %t949 = alloca ptr %t951 = alloca ptr %t953 = alloca ptr %t959 = alloca ptr %t963 = alloca ptr %t970 = alloca ptr %t979 = alloca ptr %t984 = alloca ptr %t991 = alloca ptr %t998 = alloca ptr %t1009 = alloca ptr %t1016 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str3609) %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 @fn_str_eq(ptr %t7, ptr @.str3610) %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 %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 0 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds ptr, ptr %t16, i32 0 %t18 = load ptr, ptr %t17 %t19 = call ptr @fn_emit_expr(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 1 %t23 = load ptr, ptr %t22 %t24 = call i32 @fn_is_slice_ty(ptr %t23) %t25 = icmp eq i32 %t24, 0 %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: %t28 = load ptr, ptr %t0 %t29 = call ptr @fn_str_concat(ptr @.str3611, ptr %t28) %t30 = call ptr @fn_str_concat(ptr %t29, ptr @.str3612) call void @fn_perr(ptr %t30) br label %ifend8 ifend8: %t31 = load ptr, ptr %t20 %t32 = getelementptr inbounds %Cmp_Val, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 %t34 = call ptr @fn_slice_elem(ptr %t33) store ptr %t34, ptr %t35 %t36 = load ptr, ptr %t35 %t37 = call ptr @fn_llty(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t20 %t40 = getelementptr inbounds %Cmp_Val, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_slice_field(ptr %t43, i32 1) store ptr %t44, ptr %t45 %t46 = load ptr, ptr %t0 %t47 = call i32 @fn_str_eq(ptr %t46, ptr @.str3613) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then9, label %ifend11 then9: call void @fn_emit(ptr @.str3614) %t49 = load ptr, ptr %t45 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str3615) %t50 = call ptr @fn_val(ptr @.str3616, ptr @.str3617) store ptr %t50, ptr %retval br label %ret ifend11: %t51 = load ptr, ptr %t0 %t52 = call i32 @fn_str_eq(ptr %t51, ptr @.str3618) %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then12, label %ifend14 then12: %t54 = load ptr, ptr %t42 %t55 = load ptr, ptr %t38 %t56 = call ptr @fn_list_elem_addr(ptr %t54, ptr %t55, ptr @.str3619) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t38 %t59 = call ptr @fn_str_concat(ptr @.str3620, ptr %t58) %t60 = call ptr @fn_str_concat(ptr %t59, ptr @.str3621) %t61 = load ptr, ptr %t57 %t62 = call ptr @fn_str_concat(ptr %t60, ptr %t61) %t63 = call ptr @fn_emit_bind(ptr %t62) %t64 = load ptr, ptr %t35 %t65 = call ptr @fn_val(ptr %t63, ptr %t64) store ptr %t65, ptr %retval br label %ret ifend14: %t66 = load ptr, ptr %t0 %t67 = call i32 @fn_str_eq(ptr %t66, ptr @.str3622) %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then15, label %ifend17 then15: %t69 = load ptr, ptr %t45 %t70 = call ptr @fn_str_concat(ptr @.str3623, ptr %t69) %t71 = call ptr @fn_emit_bind(ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t72 %t74 = call ptr @fn_str_concat(ptr @.str3624, ptr %t73) %t75 = call ptr @fn_str_concat(ptr %t74, ptr @.str3625) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t42 %t79 = load ptr, ptr %t38 %t80 = load ptr, ptr %t77 %t81 = call ptr @fn_list_elem_addr(ptr %t78, ptr %t79, ptr %t80) store ptr %t81, ptr %t82 %t83 = load ptr, ptr %t38 %t84 = call ptr @fn_str_concat(ptr @.str3626, ptr %t83) %t85 = call ptr @fn_str_concat(ptr %t84, ptr @.str3627) %t86 = load ptr, ptr %t82 %t87 = call ptr @fn_str_concat(ptr %t85, ptr %t86) %t88 = call ptr @fn_emit_bind(ptr %t87) %t89 = load ptr, ptr %t35 %t90 = call ptr @fn_val(ptr %t88, ptr %t89) store ptr %t90, ptr %retval br label %ret ifend17: %t91 = load ptr, ptr %t0 %t92 = call i32 @fn_str_eq(ptr %t91, ptr @.str3628) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then18, label %ifend20 then18: %t94 = load ptr, ptr %t45 %t95 = call ptr @fn_str_concat(ptr @.str3629, ptr %t94) %t96 = call ptr @fn_emit_bind(ptr %t95) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t97 %t99 = call ptr @fn_str_concat(ptr @.str3630, ptr %t98) %t100 = call ptr @fn_str_concat(ptr %t99, ptr @.str3631) %t101 = call ptr @fn_emit_bind(ptr %t100) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t42 %t104 = load ptr, ptr %t38 %t105 = load ptr, ptr %t102 %t106 = call ptr @fn_list_elem_addr(ptr %t103, ptr %t104, ptr %t105) store ptr %t106, ptr %t107 %t108 = load ptr, ptr %t38 %t109 = call ptr @fn_str_concat(ptr @.str3632, ptr %t108) %t110 = call ptr @fn_str_concat(ptr %t109, ptr @.str3633) %t111 = load ptr, ptr %t107 %t112 = call ptr @fn_str_concat(ptr %t110, ptr %t111) %t113 = call ptr @fn_emit_bind(ptr %t112) store ptr %t113, ptr %t114 call void @fn_emit(ptr @.str3634) %t115 = load ptr, ptr %t102 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str3635) %t116 = load ptr, ptr %t45 call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str3636) %t117 = load ptr, ptr %t114 %t118 = load ptr, ptr %t35 %t119 = call ptr @fn_val(ptr %t117, ptr %t118) store ptr %t119, ptr %retval br label %ret ifend20: %t120 = load ptr, ptr %t0 %t121 = call i32 @fn_str_eq(ptr %t120, ptr @.str3637) %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %then21, label %ifend23 then21: %t123 = load ptr, ptr %t1 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 7 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds %LSlice, ptr %t125, i32 0, i32 0 %t127 = load ptr, ptr %t126 %t128 = getelementptr inbounds ptr, ptr %t127, i32 1 %t129 = load ptr, ptr %t128 %t130 = call ptr @fn_emit_expr(ptr %t129) store ptr %t130, ptr %t131 %t132 = load ptr, ptr %t1 %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 0 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds ptr, ptr %t136, i32 2 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_emit_expr(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t42 %t142 = load ptr, ptr %t38 %t143 = load ptr, ptr %t131 %t144 = getelementptr inbounds %Cmp_Val, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = call ptr @fn_list_elem_addr(ptr %t141, ptr %t142, ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t42 %t149 = load ptr, ptr %t38 %t150 = load ptr, ptr %t140 %t151 = getelementptr inbounds %Cmp_Val, ptr %t150, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = call ptr @fn_list_elem_addr(ptr %t148, ptr %t149, ptr %t152) store ptr %t153, ptr %t154 %t155 = load ptr, ptr %t38 %t156 = call ptr @fn_str_concat(ptr @.str3638, ptr %t155) %t157 = call ptr @fn_str_concat(ptr %t156, ptr @.str3639) %t158 = load ptr, ptr %t147 %t159 = call ptr @fn_str_concat(ptr %t157, ptr %t158) %t160 = call ptr @fn_emit_bind(ptr %t159) store ptr %t160, ptr %t161 %t162 = load ptr, ptr %t38 %t163 = call ptr @fn_str_concat(ptr @.str3640, ptr %t162) %t164 = call ptr @fn_str_concat(ptr %t163, ptr @.str3641) %t165 = load ptr, ptr %t154 %t166 = call ptr @fn_str_concat(ptr %t164, ptr %t165) %t167 = call ptr @fn_emit_bind(ptr %t166) store ptr %t167, ptr %t168 call void @fn_emit(ptr @.str3642) %t169 = load ptr, ptr %t38 call void @fn_emit(ptr %t169) call void @fn_emit(ptr @.str3643) %t170 = load ptr, ptr %t168 call void @fn_emit(ptr %t170) call void @fn_emit(ptr @.str3644) %t171 = load ptr, ptr %t147 call void @fn_emit(ptr %t171) call void @fn_emit(ptr @.str3645) call void @fn_emit(ptr @.str3646) %t172 = load ptr, ptr %t38 call void @fn_emit(ptr %t172) call void @fn_emit(ptr @.str3647) %t173 = load ptr, ptr %t161 call void @fn_emit(ptr %t173) call void @fn_emit(ptr @.str3648) %t174 = load ptr, ptr %t154 call void @fn_emit(ptr %t174) call void @fn_emit(ptr @.str3649) %t175 = call ptr @fn_val(ptr @.str3650, ptr @.str3651) store ptr %t175, ptr %retval br label %ret ifend23: %t177 = load ptr, ptr %t0 %t178 = call i32 @fn_str_eq(ptr %t177, ptr @.str3652) %t179 = icmp ne i32 %t178, 0 %t180 = zext i1 %t179 to i32 store i32 %t180, ptr %t176 br i1 %t179, label %scend25, label %sc24 sc24: %t181 = load ptr, ptr %t0 %t182 = call i32 @fn_str_eq(ptr %t181, ptr @.str3653) %t183 = icmp ne i32 %t182, 0 %t184 = zext i1 %t183 to i32 store i32 %t184, ptr %t176 br label %scend25 scend25: %t185 = load i32, ptr %t176 %t186 = icmp ne i32 %t185, 0 br i1 %t186, label %then26, label %ifend28 then26: %t187 = load ptr, ptr %t1 %t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 7 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %LSlice, ptr %t189, i32 0, i32 0 %t191 = load ptr, ptr %t190 %t192 = getelementptr inbounds ptr, ptr %t191, i32 1 %t193 = load ptr, ptr %t192 %t194 = call ptr @fn_emit_expr(ptr %t193) store ptr %t194, ptr %t195 %t196 = load ptr, ptr %t45 %t197 = call ptr @fn_str_concat(ptr @.str3654, ptr %t196) %t198 = call ptr @fn_emit_bind(ptr %t197) store ptr %t198, ptr %t199 %t200 = call ptr @fn_emit_alloca(ptr @.str3655) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t201 call void @fn_store_at(ptr @.str3656, ptr @.str3657, ptr %t202) %t203 = call ptr @fn_emit_alloca(ptr @.str3658) store ptr %t203, ptr %t204 %t205 = load ptr, ptr %t204 call void @fn_store_at(ptr @.str3659, ptr @.str3660, ptr %t205) %t206 = call ptr @fn_lbl(ptr @.str3661) store ptr %t206, ptr %t207 %t208 = call ptr @fn_lbl(ptr @.str3662) store ptr %t208, ptr %t209 %t210 = call ptr @fn_lbl(ptr @.str3663) store ptr %t210, ptr %t211 %t212 = call ptr @fn_lbl(ptr @.str3664) store ptr %t212, ptr %t213 %t214 = call ptr @fn_lbl(ptr @.str3665) store ptr %t214, ptr %t215 call void @fn_emit(ptr @.str3666) %t216 = load ptr, ptr %t207 call void @fn_emit(ptr %t216) call void @fn_emit(ptr @.str3667) %t217 = load ptr, ptr %t207 call void @fn_emit(ptr %t217) call void @fn_emit(ptr @.str3668) %t218 = load ptr, ptr %t204 %t219 = call ptr @fn_str_concat(ptr @.str3669, ptr %t218) %t220 = call ptr @fn_emit_bind(ptr %t219) store ptr %t220, ptr %t221 %t222 = load ptr, ptr %t221 %t223 = call ptr @fn_str_concat(ptr @.str3670, ptr %t222) %t224 = call ptr @fn_str_concat(ptr %t223, ptr @.str3671) %t225 = load ptr, ptr %t199 %t226 = call ptr @fn_str_concat(ptr %t224, ptr %t225) %t227 = call ptr @fn_emit_bind(ptr %t226) store ptr %t227, ptr %t228 call void @fn_emit(ptr @.str3672) %t229 = load ptr, ptr %t228 call void @fn_emit(ptr %t229) call void @fn_emit(ptr @.str3673) %t230 = load ptr, ptr %t209 call void @fn_emit(ptr %t230) call void @fn_emit(ptr @.str3674) %t231 = load ptr, ptr %t215 call void @fn_emit(ptr %t231) call void @fn_emit(ptr @.str3675) %t232 = load ptr, ptr %t209 call void @fn_emit(ptr %t232) call void @fn_emit(ptr @.str3676) %t233 = load ptr, ptr %t42 %t234 = load ptr, ptr %t38 %t235 = load ptr, ptr %t221 %t236 = call ptr @fn_list_elem_addr(ptr %t233, ptr %t234, ptr %t235) store ptr %t236, ptr %t237 %t238 = load ptr, ptr %t38 %t239 = call ptr @fn_str_concat(ptr @.str3677, ptr %t238) %t240 = call ptr @fn_str_concat(ptr %t239, ptr @.str3678) %t241 = load ptr, ptr %t237 %t242 = call ptr @fn_str_concat(ptr %t240, ptr %t241) %t243 = call ptr @fn_emit_bind(ptr %t242) store ptr %t243, ptr %t244 %t245 = load ptr, ptr %t38 %t246 = call ptr @fn_str_concat(ptr @.str3679, ptr %t245) %t247 = call ptr @fn_str_concat(ptr %t246, ptr @.str3680) %t248 = load ptr, ptr %t244 %t249 = call ptr @fn_str_concat(ptr %t247, ptr %t248) %t250 = call ptr @fn_str_concat(ptr %t249, ptr @.str3681) %t251 = load ptr, ptr %t195 %t252 = getelementptr inbounds %Cmp_Val, ptr %t251, i32 0, i32 0 %t253 = load ptr, ptr %t252 %t254 = call ptr @fn_str_concat(ptr %t250, ptr %t253) %t255 = call ptr @fn_emit_bind(ptr %t254) store ptr %t255, ptr %t256 call void @fn_emit(ptr @.str3682) %t257 = load ptr, ptr %t256 call void @fn_emit(ptr %t257) call void @fn_emit(ptr @.str3683) %t258 = load ptr, ptr %t211 call void @fn_emit(ptr %t258) call void @fn_emit(ptr @.str3684) %t259 = load ptr, ptr %t213 call void @fn_emit(ptr %t259) call void @fn_emit(ptr @.str3685) %t260 = load ptr, ptr %t211 call void @fn_emit(ptr %t260) call void @fn_emit(ptr @.str3686) %t261 = load ptr, ptr %t221 %t262 = load ptr, ptr %t201 call void @fn_store_at(ptr @.str3687, ptr %t261, ptr %t262) call void @fn_emit(ptr @.str3688) %t263 = load ptr, ptr %t215 call void @fn_emit(ptr %t263) call void @fn_emit(ptr @.str3689) %t264 = load ptr, ptr %t213 call void @fn_emit(ptr %t264) call void @fn_emit(ptr @.str3690) %t265 = load ptr, ptr %t221 %t266 = call ptr @fn_str_concat(ptr @.str3691, ptr %t265) %t267 = call ptr @fn_str_concat(ptr %t266, ptr @.str3692) %t268 = call ptr @fn_emit_bind(ptr %t267) store ptr %t268, ptr %t269 %t270 = load ptr, ptr %t269 %t271 = load ptr, ptr %t204 call void @fn_store_at(ptr @.str3693, ptr %t270, ptr %t271) call void @fn_emit(ptr @.str3694) %t272 = load ptr, ptr %t207 call void @fn_emit(ptr %t272) call void @fn_emit(ptr @.str3695) %t273 = load ptr, ptr %t215 call void @fn_emit(ptr %t273) call void @fn_emit(ptr @.str3696) %t274 = load ptr, ptr %t201 %t275 = call ptr @fn_str_concat(ptr @.str3697, ptr %t274) %t276 = call ptr @fn_emit_bind(ptr %t275) store ptr %t276, ptr %t277 %t278 = load ptr, ptr %t0 %t279 = call i32 @fn_str_eq(ptr %t278, ptr @.str3698) %t280 = icmp ne i32 %t279, 0 br i1 %t280, label %then29, label %ifend31 then29: %t281 = load ptr, ptr %t277 %t282 = call ptr @fn_val(ptr %t281, ptr @.str3699) store ptr %t282, ptr %retval br label %ret ifend31: %t283 = load ptr, ptr %t277 %t284 = call ptr @fn_str_concat(ptr @.str3700, ptr %t283) %t285 = call ptr @fn_str_concat(ptr %t284, ptr @.str3701) %t286 = call ptr @fn_emit_bind(ptr %t285) store ptr %t286, ptr %t287 %t288 = load ptr, ptr %t287 %t289 = call ptr @fn_str_concat(ptr @.str3702, ptr %t288) %t290 = call ptr @fn_str_concat(ptr %t289, ptr @.str3703) %t291 = call ptr @fn_emit_bind(ptr %t290) %t292 = call ptr @fn_val(ptr %t291, ptr @.str3704) store ptr %t292, ptr %retval br label %ret ifend28: %t293 = load ptr, ptr %t0 %t294 = call i32 @fn_str_eq(ptr %t293, ptr @.str3705) %t295 = icmp ne i32 %t294, 0 br i1 %t295, label %then32, label %ifend34 then32: %t296 = load ptr, ptr %t1 %t297 = getelementptr inbounds %Cmp_Node, ptr %t296, i32 0, i32 7 %t298 = load ptr, ptr %t297 %t299 = getelementptr inbounds %LSlice, ptr %t298, i32 0, i32 0 %t300 = load ptr, ptr %t299 %t301 = getelementptr inbounds ptr, ptr %t300, i32 1 %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 ptr, ptr %t309, i32 2 %t311 = load ptr, ptr %t310 %t312 = call ptr @fn_emit_expr(ptr %t311) store ptr %t312, ptr %t313 %t314 = load ptr, ptr %t42 %t315 = load ptr, ptr %t38 call void @fn_list_grow_if_full(ptr %t314, ptr %t315) %t316 = load ptr, ptr %t45 %t317 = call ptr @fn_str_concat(ptr @.str3706, ptr %t316) %t318 = call ptr @fn_emit_bind(ptr %t317) store ptr %t318, ptr %t319 %t320 = call ptr @fn_emit_alloca(ptr @.str3707) store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t319 %t323 = load ptr, ptr %t321 call void @fn_store_at(ptr @.str3708, ptr %t322, ptr %t323) %t324 = call ptr @fn_lbl(ptr @.str3709) store ptr %t324, ptr %t325 %t326 = call ptr @fn_lbl(ptr @.str3710) store ptr %t326, ptr %t327 %t328 = call ptr @fn_lbl(ptr @.str3711) store ptr %t328, ptr %t329 call void @fn_emit(ptr @.str3712) %t330 = load ptr, ptr %t325 call void @fn_emit(ptr %t330) call void @fn_emit(ptr @.str3713) %t331 = load ptr, ptr %t325 call void @fn_emit(ptr %t331) call void @fn_emit(ptr @.str3714) %t332 = load ptr, ptr %t321 %t333 = call ptr @fn_str_concat(ptr @.str3715, ptr %t332) %t334 = call ptr @fn_emit_bind(ptr %t333) store ptr %t334, ptr %t335 %t336 = load ptr, ptr %t335 %t337 = call ptr @fn_str_concat(ptr @.str3716, ptr %t336) %t338 = call ptr @fn_str_concat(ptr %t337, ptr @.str3717) %t339 = load ptr, ptr %t304 %t340 = getelementptr inbounds %Cmp_Val, ptr %t339, i32 0, i32 0 %t341 = load ptr, ptr %t340 %t342 = call ptr @fn_str_concat(ptr %t338, ptr %t341) %t343 = call ptr @fn_emit_bind(ptr %t342) store ptr %t343, ptr %t344 call void @fn_emit(ptr @.str3718) %t345 = load ptr, ptr %t344 call void @fn_emit(ptr %t345) call void @fn_emit(ptr @.str3719) %t346 = load ptr, ptr %t327 call void @fn_emit(ptr %t346) call void @fn_emit(ptr @.str3720) %t347 = load ptr, ptr %t329 call void @fn_emit(ptr %t347) call void @fn_emit(ptr @.str3721) %t348 = load ptr, ptr %t327 call void @fn_emit(ptr %t348) call void @fn_emit(ptr @.str3722) %t349 = load ptr, ptr %t335 %t350 = call ptr @fn_str_concat(ptr @.str3723, ptr %t349) %t351 = call ptr @fn_str_concat(ptr %t350, ptr @.str3724) %t352 = call ptr @fn_emit_bind(ptr %t351) store ptr %t352, ptr %t353 %t354 = load ptr, ptr %t42 %t355 = load ptr, ptr %t38 %t356 = load ptr, ptr %t353 %t357 = call ptr @fn_list_elem_addr(ptr %t354, ptr %t355, ptr %t356) store ptr %t357, ptr %t358 %t359 = load ptr, ptr %t38 %t360 = call ptr @fn_str_concat(ptr @.str3725, ptr %t359) %t361 = call ptr @fn_str_concat(ptr %t360, ptr @.str3726) %t362 = load ptr, ptr %t358 %t363 = call ptr @fn_str_concat(ptr %t361, ptr %t362) %t364 = call ptr @fn_emit_bind(ptr %t363) store ptr %t364, ptr %t365 %t366 = load ptr, ptr %t42 %t367 = load ptr, ptr %t38 %t368 = load ptr, ptr %t335 %t369 = call ptr @fn_list_elem_addr(ptr %t366, ptr %t367, ptr %t368) store ptr %t369, ptr %t370 call void @fn_emit(ptr @.str3727) %t371 = load ptr, ptr %t38 call void @fn_emit(ptr %t371) call void @fn_emit(ptr @.str3728) %t372 = load ptr, ptr %t365 call void @fn_emit(ptr %t372) call void @fn_emit(ptr @.str3729) %t373 = load ptr, ptr %t370 call void @fn_emit(ptr %t373) call void @fn_emit(ptr @.str3730) %t374 = load ptr, ptr %t353 %t375 = load ptr, ptr %t321 call void @fn_store_at(ptr @.str3731, ptr %t374, ptr %t375) call void @fn_emit(ptr @.str3732) %t376 = load ptr, ptr %t325 call void @fn_emit(ptr %t376) call void @fn_emit(ptr @.str3733) %t377 = load ptr, ptr %t329 call void @fn_emit(ptr %t377) call void @fn_emit(ptr @.str3734) %t378 = load ptr, ptr %t42 %t379 = load ptr, ptr %t38 %t380 = load ptr, ptr %t304 %t381 = getelementptr inbounds %Cmp_Val, ptr %t380, i32 0, i32 0 %t382 = load ptr, ptr %t381 %t383 = call ptr @fn_list_elem_addr(ptr %t378, ptr %t379, ptr %t382) store ptr %t383, ptr %t384 call void @fn_emit(ptr @.str3735) %t385 = load ptr, ptr %t38 call void @fn_emit(ptr %t385) call void @fn_emit(ptr @.str3736) %t386 = load ptr, ptr %t313 %t387 = getelementptr inbounds %Cmp_Val, ptr %t386, i32 0, i32 0 %t388 = load ptr, ptr %t387 call void @fn_emit(ptr %t388) call void @fn_emit(ptr @.str3737) %t389 = load ptr, ptr %t384 call void @fn_emit(ptr %t389) call void @fn_emit(ptr @.str3738) %t390 = load ptr, ptr %t319 %t391 = call ptr @fn_str_concat(ptr @.str3739, ptr %t390) %t392 = call ptr @fn_str_concat(ptr %t391, ptr @.str3740) %t393 = call ptr @fn_emit_bind(ptr %t392) store ptr %t393, ptr %t394 call void @fn_emit(ptr @.str3741) %t395 = load ptr, ptr %t394 call void @fn_emit(ptr %t395) call void @fn_emit(ptr @.str3742) %t396 = load ptr, ptr %t45 call void @fn_emit(ptr %t396) call void @fn_emit(ptr @.str3743) %t397 = call ptr @fn_val(ptr @.str3744, ptr @.str3745) store ptr %t397, ptr %retval br label %ret ifend34: %t398 = load ptr, ptr %t0 %t399 = call i32 @fn_str_eq(ptr %t398, ptr @.str3746) %t400 = icmp ne i32 %t399, 0 br i1 %t400, label %then35, label %ifend37 then35: %t401 = load ptr, ptr %t1 %t402 = getelementptr inbounds %Cmp_Node, ptr %t401, i32 0, i32 7 %t403 = load ptr, ptr %t402 %t404 = getelementptr inbounds %LSlice, ptr %t403, i32 0, i32 0 %t405 = load ptr, ptr %t404 %t406 = getelementptr inbounds ptr, ptr %t405, i32 1 %t407 = load ptr, ptr %t406 %t408 = call ptr @fn_emit_expr(ptr %t407) store ptr %t408, ptr %t409 %t410 = load ptr, ptr %t45 %t411 = call ptr @fn_str_concat(ptr @.str3747, ptr %t410) %t412 = call ptr @fn_emit_bind(ptr %t411) store ptr %t412, ptr %t413 %t414 = load ptr, ptr %t413 %t415 = call ptr @fn_str_concat(ptr @.str3748, ptr %t414) %t416 = call ptr @fn_str_concat(ptr %t415, ptr @.str3749) %t417 = call ptr @fn_emit_bind(ptr %t416) store ptr %t417, ptr %t418 %t419 = call ptr @fn_emit_alloca(ptr @.str3750) store ptr %t419, ptr %t420 %t421 = load ptr, ptr %t409 %t422 = getelementptr inbounds %Cmp_Val, ptr %t421, i32 0, i32 0 %t423 = load ptr, ptr %t422 %t424 = load ptr, ptr %t420 call void @fn_store_at(ptr @.str3751, ptr %t423, ptr %t424) %t425 = call ptr @fn_lbl(ptr @.str3752) store ptr %t425, ptr %t426 %t427 = call ptr @fn_lbl(ptr @.str3753) store ptr %t427, ptr %t428 %t429 = call ptr @fn_lbl(ptr @.str3754) store ptr %t429, ptr %t430 call void @fn_emit(ptr @.str3755) %t431 = load ptr, ptr %t426 call void @fn_emit(ptr %t431) call void @fn_emit(ptr @.str3756) %t432 = load ptr, ptr %t426 call void @fn_emit(ptr %t432) call void @fn_emit(ptr @.str3757) %t433 = load ptr, ptr %t420 %t434 = call ptr @fn_str_concat(ptr @.str3758, ptr %t433) %t435 = call ptr @fn_emit_bind(ptr %t434) store ptr %t435, ptr %t436 %t437 = load ptr, ptr %t436 %t438 = call ptr @fn_str_concat(ptr @.str3759, ptr %t437) %t439 = call ptr @fn_str_concat(ptr %t438, ptr @.str3760) %t440 = load ptr, ptr %t418 %t441 = call ptr @fn_str_concat(ptr %t439, ptr %t440) %t442 = call ptr @fn_emit_bind(ptr %t441) store ptr %t442, ptr %t443 call void @fn_emit(ptr @.str3761) %t444 = load ptr, ptr %t443 call void @fn_emit(ptr %t444) call void @fn_emit(ptr @.str3762) %t445 = load ptr, ptr %t428 call void @fn_emit(ptr %t445) call void @fn_emit(ptr @.str3763) %t446 = load ptr, ptr %t430 call void @fn_emit(ptr %t446) call void @fn_emit(ptr @.str3764) %t447 = load ptr, ptr %t428 call void @fn_emit(ptr %t447) call void @fn_emit(ptr @.str3765) %t448 = load ptr, ptr %t436 %t449 = call ptr @fn_str_concat(ptr @.str3766, ptr %t448) %t450 = call ptr @fn_str_concat(ptr %t449, ptr @.str3767) %t451 = call ptr @fn_emit_bind(ptr %t450) store ptr %t451, ptr %t452 %t453 = load ptr, ptr %t42 %t454 = load ptr, ptr %t38 %t455 = load ptr, ptr %t452 %t456 = call ptr @fn_list_elem_addr(ptr %t453, ptr %t454, ptr %t455) store ptr %t456, ptr %t457 %t458 = load ptr, ptr %t38 %t459 = call ptr @fn_str_concat(ptr @.str3768, ptr %t458) %t460 = call ptr @fn_str_concat(ptr %t459, ptr @.str3769) %t461 = load ptr, ptr %t457 %t462 = call ptr @fn_str_concat(ptr %t460, ptr %t461) %t463 = call ptr @fn_emit_bind(ptr %t462) store ptr %t463, ptr %t464 %t465 = load ptr, ptr %t42 %t466 = load ptr, ptr %t38 %t467 = load ptr, ptr %t436 %t468 = call ptr @fn_list_elem_addr(ptr %t465, ptr %t466, ptr %t467) store ptr %t468, ptr %t469 call void @fn_emit(ptr @.str3770) %t470 = load ptr, ptr %t38 call void @fn_emit(ptr %t470) call void @fn_emit(ptr @.str3771) %t471 = load ptr, ptr %t464 call void @fn_emit(ptr %t471) call void @fn_emit(ptr @.str3772) %t472 = load ptr, ptr %t469 call void @fn_emit(ptr %t472) call void @fn_emit(ptr @.str3773) %t473 = load ptr, ptr %t452 %t474 = load ptr, ptr %t420 call void @fn_store_at(ptr @.str3774, ptr %t473, ptr %t474) call void @fn_emit(ptr @.str3775) %t475 = load ptr, ptr %t426 call void @fn_emit(ptr %t475) call void @fn_emit(ptr @.str3776) %t476 = load ptr, ptr %t430 call void @fn_emit(ptr %t476) call void @fn_emit(ptr @.str3777) call void @fn_emit(ptr @.str3778) %t477 = load ptr, ptr %t418 call void @fn_emit(ptr %t477) call void @fn_emit(ptr @.str3779) %t478 = load ptr, ptr %t45 call void @fn_emit(ptr %t478) call void @fn_emit(ptr @.str3780) %t479 = call ptr @fn_val(ptr @.str3781, ptr @.str3782) store ptr %t479, ptr %retval br label %ret ifend37: %t480 = load ptr, ptr %t0 %t481 = call i32 @fn_str_eq(ptr %t480, ptr @.str3783) %t482 = icmp ne i32 %t481, 0 br i1 %t482, label %then38, label %ifend40 then38: %t483 = load ptr, ptr %t1 %t484 = getelementptr inbounds %Cmp_Node, ptr %t483, i32 0, i32 7 %t485 = load ptr, ptr %t484 %t486 = getelementptr inbounds %LSlice, ptr %t485, i32 0, i32 0 %t487 = load ptr, ptr %t486 %t488 = getelementptr inbounds ptr, ptr %t487, i32 1 %t489 = load ptr, ptr %t488 %t490 = call ptr @fn_emit_expr(ptr %t489) store ptr %t490, ptr %t491 %t492 = load ptr, ptr %t45 %t493 = call ptr @fn_str_concat(ptr @.str3784, ptr %t492) %t494 = call ptr @fn_emit_bind(ptr %t493) store ptr %t494, ptr %t495 %t496 = call ptr @fn_emit_alloca(ptr @.str3785) store ptr %t496, ptr %t497 %t498 = load ptr, ptr %t497 call void @fn_store_at(ptr @.str3786, ptr @.str3787, ptr %t498) %t499 = call ptr @fn_emit_alloca(ptr @.str3788) store ptr %t499, ptr %t500 %t501 = load ptr, ptr %t500 call void @fn_store_at(ptr @.str3789, ptr @.str3790, ptr %t501) %t502 = call ptr @fn_lbl(ptr @.str3791) store ptr %t502, ptr %t503 %t504 = call ptr @fn_lbl(ptr @.str3792) store ptr %t504, ptr %t505 %t506 = call ptr @fn_lbl(ptr @.str3793) store ptr %t506, ptr %t507 %t508 = call ptr @fn_lbl(ptr @.str3794) store ptr %t508, ptr %t509 %t510 = call ptr @fn_lbl(ptr @.str3795) store ptr %t510, ptr %t511 call void @fn_emit(ptr @.str3796) %t512 = load ptr, ptr %t503 call void @fn_emit(ptr %t512) call void @fn_emit(ptr @.str3797) %t513 = load ptr, ptr %t503 call void @fn_emit(ptr %t513) call void @fn_emit(ptr @.str3798) %t514 = load ptr, ptr %t500 %t515 = call ptr @fn_str_concat(ptr @.str3799, ptr %t514) %t516 = call ptr @fn_emit_bind(ptr %t515) store ptr %t516, ptr %t517 %t518 = load ptr, ptr %t517 %t519 = call ptr @fn_str_concat(ptr @.str3800, ptr %t518) %t520 = call ptr @fn_str_concat(ptr %t519, ptr @.str3801) %t521 = load ptr, ptr %t495 %t522 = call ptr @fn_str_concat(ptr %t520, ptr %t521) %t523 = call ptr @fn_emit_bind(ptr %t522) store ptr %t523, ptr %t524 %t525 = load ptr, ptr %t497 %t526 = call ptr @fn_str_concat(ptr @.str3802, ptr %t525) %t527 = call ptr @fn_emit_bind(ptr %t526) store ptr %t527, ptr %t528 %t529 = load ptr, ptr %t528 %t530 = call ptr @fn_str_concat(ptr @.str3803, ptr %t529) %t531 = call ptr @fn_str_concat(ptr %t530, ptr @.str3804) %t532 = call ptr @fn_emit_bind(ptr %t531) store ptr %t532, ptr %t533 %t534 = load ptr, ptr %t524 %t535 = call ptr @fn_str_concat(ptr @.str3805, ptr %t534) %t536 = call ptr @fn_str_concat(ptr %t535, ptr @.str3806) %t537 = load ptr, ptr %t533 %t538 = call ptr @fn_str_concat(ptr %t536, ptr %t537) %t539 = call ptr @fn_emit_bind(ptr %t538) store ptr %t539, ptr %t540 call void @fn_emit(ptr @.str3807) %t541 = load ptr, ptr %t540 call void @fn_emit(ptr %t541) call void @fn_emit(ptr @.str3808) %t542 = load ptr, ptr %t505 call void @fn_emit(ptr %t542) call void @fn_emit(ptr @.str3809) %t543 = load ptr, ptr %t511 call void @fn_emit(ptr %t543) call void @fn_emit(ptr @.str3810) %t544 = load ptr, ptr %t505 call void @fn_emit(ptr %t544) call void @fn_emit(ptr @.str3811) %t545 = load ptr, ptr %t42 %t546 = load ptr, ptr %t38 %t547 = load ptr, ptr %t517 %t548 = call ptr @fn_list_elem_addr(ptr %t545, ptr %t546, ptr %t547) store ptr %t548, ptr %t549 %t550 = load ptr, ptr %t38 %t551 = call ptr @fn_str_concat(ptr @.str3812, ptr %t550) %t552 = call ptr @fn_str_concat(ptr %t551, ptr @.str3813) %t553 = load ptr, ptr %t549 %t554 = call ptr @fn_str_concat(ptr %t552, ptr %t553) %t555 = call ptr @fn_emit_bind(ptr %t554) store ptr %t555, ptr %t556 %t557 = load ptr, ptr %t38 %t558 = call ptr @fn_str_concat(ptr @.str3814, ptr %t557) %t559 = call ptr @fn_str_concat(ptr %t558, ptr @.str3815) %t560 = load ptr, ptr %t556 %t561 = call ptr @fn_str_concat(ptr %t559, ptr %t560) %t562 = call ptr @fn_str_concat(ptr %t561, ptr @.str3816) %t563 = load ptr, ptr %t491 %t564 = getelementptr inbounds %Cmp_Val, ptr %t563, i32 0, i32 0 %t565 = load ptr, ptr %t564 %t566 = call ptr @fn_str_concat(ptr %t562, ptr %t565) %t567 = call ptr @fn_emit_bind(ptr %t566) store ptr %t567, ptr %t568 call void @fn_emit(ptr @.str3817) %t569 = load ptr, ptr %t568 call void @fn_emit(ptr %t569) call void @fn_emit(ptr @.str3818) %t570 = load ptr, ptr %t507 call void @fn_emit(ptr %t570) call void @fn_emit(ptr @.str3819) %t571 = load ptr, ptr %t509 call void @fn_emit(ptr %t571) call void @fn_emit(ptr @.str3820) %t572 = load ptr, ptr %t507 call void @fn_emit(ptr %t572) call void @fn_emit(ptr @.str3821) %t573 = load ptr, ptr %t517 %t574 = load ptr, ptr %t497 call void @fn_store_at(ptr @.str3822, ptr %t573, ptr %t574) call void @fn_emit(ptr @.str3823) %t575 = load ptr, ptr %t503 call void @fn_emit(ptr %t575) call void @fn_emit(ptr @.str3824) %t576 = load ptr, ptr %t509 call void @fn_emit(ptr %t576) call void @fn_emit(ptr @.str3825) %t577 = load ptr, ptr %t517 %t578 = call ptr @fn_str_concat(ptr @.str3826, ptr %t577) %t579 = call ptr @fn_str_concat(ptr %t578, ptr @.str3827) %t580 = call ptr @fn_emit_bind(ptr %t579) store ptr %t580, ptr %t581 %t582 = load ptr, ptr %t581 %t583 = load ptr, ptr %t500 call void @fn_store_at(ptr @.str3828, ptr %t582, ptr %t583) call void @fn_emit(ptr @.str3829) %t584 = load ptr, ptr %t503 call void @fn_emit(ptr %t584) call void @fn_emit(ptr @.str3830) %t585 = load ptr, ptr %t511 call void @fn_emit(ptr %t585) call void @fn_emit(ptr @.str3831) %t586 = load ptr, ptr %t497 %t587 = call ptr @fn_str_concat(ptr @.str3832, ptr %t586) %t588 = call ptr @fn_emit_bind(ptr %t587) store ptr %t588, ptr %t589 %t590 = load ptr, ptr %t589 %t591 = call ptr @fn_str_concat(ptr @.str3833, ptr %t590) %t592 = call ptr @fn_str_concat(ptr %t591, ptr @.str3834) %t593 = call ptr @fn_emit_bind(ptr %t592) store ptr %t593, ptr %t594 %t595 = call ptr @fn_lbl(ptr @.str3835) store ptr %t595, ptr %t596 %t597 = call ptr @fn_lbl(ptr @.str3836) store ptr %t597, ptr %t598 call void @fn_emit(ptr @.str3837) %t599 = load ptr, ptr %t594 call void @fn_emit(ptr %t599) call void @fn_emit(ptr @.str3838) %t600 = load ptr, ptr %t596 call void @fn_emit(ptr %t600) call void @fn_emit(ptr @.str3839) %t601 = load ptr, ptr %t598 call void @fn_emit(ptr %t601) call void @fn_emit(ptr @.str3840) %t602 = load ptr, ptr %t596 call void @fn_emit(ptr %t602) call void @fn_emit(ptr @.str3841) %t603 = load ptr, ptr %t495 %t604 = call ptr @fn_str_concat(ptr @.str3842, ptr %t603) %t605 = call ptr @fn_str_concat(ptr %t604, ptr @.str3843) %t606 = call ptr @fn_emit_bind(ptr %t605) store ptr %t606, ptr %t607 %t608 = call ptr @fn_emit_alloca(ptr @.str3844) store ptr %t608, ptr %t609 %t610 = load ptr, ptr %t589 %t611 = load ptr, ptr %t609 call void @fn_store_at(ptr @.str3845, ptr %t610, ptr %t611) %t612 = call ptr @fn_lbl(ptr @.str3846) store ptr %t612, ptr %t613 %t614 = call ptr @fn_lbl(ptr @.str3847) store ptr %t614, ptr %t615 %t616 = call ptr @fn_lbl(ptr @.str3848) store ptr %t616, ptr %t617 call void @fn_emit(ptr @.str3849) %t618 = load ptr, ptr %t613 call void @fn_emit(ptr %t618) call void @fn_emit(ptr @.str3850) %t619 = load ptr, ptr %t613 call void @fn_emit(ptr %t619) call void @fn_emit(ptr @.str3851) %t620 = load ptr, ptr %t609 %t621 = call ptr @fn_str_concat(ptr @.str3852, ptr %t620) %t622 = call ptr @fn_emit_bind(ptr %t621) store ptr %t622, ptr %t623 %t624 = load ptr, ptr %t623 %t625 = call ptr @fn_str_concat(ptr @.str3853, ptr %t624) %t626 = call ptr @fn_str_concat(ptr %t625, ptr @.str3854) %t627 = load ptr, ptr %t607 %t628 = call ptr @fn_str_concat(ptr %t626, ptr %t627) %t629 = call ptr @fn_emit_bind(ptr %t628) store ptr %t629, ptr %t630 call void @fn_emit(ptr @.str3855) %t631 = load ptr, ptr %t630 call void @fn_emit(ptr %t631) call void @fn_emit(ptr @.str3856) %t632 = load ptr, ptr %t615 call void @fn_emit(ptr %t632) call void @fn_emit(ptr @.str3857) %t633 = load ptr, ptr %t617 call void @fn_emit(ptr %t633) call void @fn_emit(ptr @.str3858) %t634 = load ptr, ptr %t615 call void @fn_emit(ptr %t634) call void @fn_emit(ptr @.str3859) %t635 = load ptr, ptr %t623 %t636 = call ptr @fn_str_concat(ptr @.str3860, ptr %t635) %t637 = call ptr @fn_str_concat(ptr %t636, ptr @.str3861) %t638 = call ptr @fn_emit_bind(ptr %t637) store ptr %t638, ptr %t639 %t640 = load ptr, ptr %t42 %t641 = load ptr, ptr %t38 %t642 = load ptr, ptr %t639 %t643 = call ptr @fn_list_elem_addr(ptr %t640, ptr %t641, ptr %t642) store ptr %t643, ptr %t644 %t645 = load ptr, ptr %t38 %t646 = call ptr @fn_str_concat(ptr @.str3862, ptr %t645) %t647 = call ptr @fn_str_concat(ptr %t646, ptr @.str3863) %t648 = load ptr, ptr %t644 %t649 = call ptr @fn_str_concat(ptr %t647, ptr %t648) %t650 = call ptr @fn_emit_bind(ptr %t649) store ptr %t650, ptr %t651 %t652 = load ptr, ptr %t42 %t653 = load ptr, ptr %t38 %t654 = load ptr, ptr %t623 %t655 = call ptr @fn_list_elem_addr(ptr %t652, ptr %t653, ptr %t654) store ptr %t655, ptr %t656 call void @fn_emit(ptr @.str3864) %t657 = load ptr, ptr %t38 call void @fn_emit(ptr %t657) call void @fn_emit(ptr @.str3865) %t658 = load ptr, ptr %t651 call void @fn_emit(ptr %t658) call void @fn_emit(ptr @.str3866) %t659 = load ptr, ptr %t656 call void @fn_emit(ptr %t659) call void @fn_emit(ptr @.str3867) %t660 = load ptr, ptr %t639 %t661 = load ptr, ptr %t609 call void @fn_store_at(ptr @.str3868, ptr %t660, ptr %t661) call void @fn_emit(ptr @.str3869) %t662 = load ptr, ptr %t613 call void @fn_emit(ptr %t662) call void @fn_emit(ptr @.str3870) %t663 = load ptr, ptr %t617 call void @fn_emit(ptr %t663) call void @fn_emit(ptr @.str3871) call void @fn_emit(ptr @.str3872) %t664 = load ptr, ptr %t607 call void @fn_emit(ptr %t664) call void @fn_emit(ptr @.str3873) %t665 = load ptr, ptr %t45 call void @fn_emit(ptr %t665) call void @fn_emit(ptr @.str3874) call void @fn_emit(ptr @.str3875) %t666 = load ptr, ptr %t598 call void @fn_emit(ptr %t666) call void @fn_emit(ptr @.str3876) %t667 = load ptr, ptr %t598 call void @fn_emit(ptr %t667) call void @fn_emit(ptr @.str3877) %t668 = call ptr @fn_val(ptr @.str3878, ptr @.str3879) store ptr %t668, ptr %retval br label %ret ifend40: %t669 = load ptr, ptr %t0 %t670 = call i32 @fn_str_eq(ptr %t669, ptr @.str3880) %t671 = icmp ne i32 %t670, 0 br i1 %t671, label %then41, label %ifend43 then41: %t672 = load ptr, ptr %t45 %t673 = call ptr @fn_str_concat(ptr @.str3881, ptr %t672) %t674 = call ptr @fn_emit_bind(ptr %t673) store ptr %t674, ptr %t675 %t676 = load ptr, ptr %t675 %t677 = call ptr @fn_str_concat(ptr @.str3882, ptr %t676) %t678 = call ptr @fn_str_concat(ptr %t677, ptr @.str3883) %t679 = call ptr @fn_emit_bind(ptr %t678) store ptr %t679, ptr %t680 %t681 = call ptr @fn_lbl(ptr @.str3884) store ptr %t681, ptr %t682 %t683 = call ptr @fn_lbl(ptr @.str3885) store ptr %t683, ptr %t684 %t685 = call ptr @fn_lbl(ptr @.str3886) store ptr %t685, ptr %t686 call void @fn_emit(ptr @.str3887) %t687 = load ptr, ptr %t680 call void @fn_emit(ptr %t687) call void @fn_emit(ptr @.str3888) %t688 = load ptr, ptr %t682 call void @fn_emit(ptr %t688) call void @fn_emit(ptr @.str3889) %t689 = load ptr, ptr %t684 call void @fn_emit(ptr %t689) call void @fn_emit(ptr @.str3890) %t690 = load ptr, ptr %t682 call void @fn_emit(ptr %t690) call void @fn_emit(ptr @.str3891) %t691 = load ptr, ptr %t45 %t692 = call ptr @fn_str_concat(ptr @.str3892, ptr %t691) %t693 = call ptr @fn_emit_bind(ptr %t692) store ptr %t693, ptr %t694 %t695 = call ptr @fn_emit_alloca(ptr @.str3893) store ptr %t695, ptr %t696 %t697 = load ptr, ptr %t696 call void @fn_store_at(ptr @.str3894, ptr @.str3895, ptr %t697) %t698 = call ptr @fn_lbl(ptr @.str3896) store ptr %t698, ptr %t699 %t700 = call ptr @fn_lbl(ptr @.str3897) store ptr %t700, ptr %t701 %t702 = call ptr @fn_lbl(ptr @.str3898) store ptr %t702, ptr %t703 call void @fn_emit(ptr @.str3899) %t704 = load ptr, ptr %t699 call void @fn_emit(ptr %t704) call void @fn_emit(ptr @.str3900) %t705 = load ptr, ptr %t699 call void @fn_emit(ptr %t705) call void @fn_emit(ptr @.str3901) %t706 = load ptr, ptr %t696 %t707 = call ptr @fn_str_concat(ptr @.str3902, ptr %t706) %t708 = call ptr @fn_emit_bind(ptr %t707) store ptr %t708, ptr %t709 %t710 = load ptr, ptr %t709 %t711 = call ptr @fn_str_concat(ptr @.str3903, ptr %t710) %t712 = call ptr @fn_str_concat(ptr %t711, ptr @.str3904) %t713 = load ptr, ptr %t694 %t714 = call ptr @fn_str_concat(ptr %t712, ptr %t713) %t715 = call ptr @fn_emit_bind(ptr %t714) store ptr %t715, ptr %t716 call void @fn_emit(ptr @.str3905) %t717 = load ptr, ptr %t716 call void @fn_emit(ptr %t717) call void @fn_emit(ptr @.str3906) %t718 = load ptr, ptr %t701 call void @fn_emit(ptr %t718) call void @fn_emit(ptr @.str3907) %t719 = load ptr, ptr %t703 call void @fn_emit(ptr %t719) call void @fn_emit(ptr @.str3908) %t720 = load ptr, ptr %t701 call void @fn_emit(ptr %t720) call void @fn_emit(ptr @.str3909) %t721 = load ptr, ptr %t42 %t722 = load ptr, ptr %t38 %t723 = load ptr, ptr %t709 %t724 = call ptr @fn_list_elem_addr(ptr %t721, ptr %t722, ptr %t723) store ptr %t724, ptr %t725 %t726 = load ptr, ptr %t38 %t727 = call ptr @fn_str_concat(ptr @.str3910, ptr %t726) %t728 = call ptr @fn_str_concat(ptr %t727, ptr @.str3911) %t729 = load ptr, ptr %t725 %t730 = call ptr @fn_str_concat(ptr %t728, ptr %t729) %t731 = call ptr @fn_emit_bind(ptr %t730) store ptr %t731, ptr %t732 %t733 = call ptr @fn_emit_alloca(ptr @.str3912) store ptr %t733, ptr %t734 %t735 = load ptr, ptr %t709 %t736 = call ptr @fn_str_concat(ptr @.str3913, ptr %t735) %t737 = call ptr @fn_str_concat(ptr %t736, ptr @.str3914) %t738 = call ptr @fn_emit_bind(ptr %t737) store ptr %t738, ptr %t739 %t740 = load ptr, ptr %t739 %t741 = load ptr, ptr %t734 call void @fn_store_at(ptr @.str3915, ptr %t740, ptr %t741) %t742 = call ptr @fn_lbl(ptr @.str3916) store ptr %t742, ptr %t743 %t744 = call ptr @fn_lbl(ptr @.str3917) store ptr %t744, ptr %t745 %t746 = call ptr @fn_lbl(ptr @.str3918) store ptr %t746, ptr %t747 call void @fn_emit(ptr @.str3919) %t748 = load ptr, ptr %t743 call void @fn_emit(ptr %t748) call void @fn_emit(ptr @.str3920) %t749 = load ptr, ptr %t743 call void @fn_emit(ptr %t749) call void @fn_emit(ptr @.str3921) %t750 = load ptr, ptr %t734 %t751 = call ptr @fn_str_concat(ptr @.str3922, ptr %t750) %t752 = call ptr @fn_emit_bind(ptr %t751) store ptr %t752, ptr %t753 %t754 = load ptr, ptr %t753 %t755 = call ptr @fn_str_concat(ptr @.str3923, ptr %t754) %t756 = call ptr @fn_str_concat(ptr %t755, ptr @.str3924) %t757 = call ptr @fn_emit_bind(ptr %t756) store ptr %t757, ptr %t758 %t759 = load ptr, ptr %t42 %t760 = load ptr, ptr %t38 %t761 = load ptr, ptr %t753 %t762 = call ptr @fn_list_elem_addr(ptr %t759, ptr %t760, ptr %t761) store ptr %t762, ptr %t763 %t764 = load ptr, ptr %t38 %t765 = call ptr @fn_str_concat(ptr @.str3925, ptr %t764) %t766 = call ptr @fn_str_concat(ptr %t765, ptr @.str3926) %t767 = load ptr, ptr %t763 %t768 = call ptr @fn_str_concat(ptr %t766, ptr %t767) %t769 = call ptr @fn_emit_bind(ptr %t768) store ptr %t769, ptr %t770 %t771 = load ptr, ptr %t38 %t772 = call ptr @fn_str_concat(ptr @.str3927, ptr %t771) %t773 = call ptr @fn_str_concat(ptr %t772, ptr @.str3928) %t774 = load ptr, ptr %t770 %t775 = call ptr @fn_str_concat(ptr %t773, ptr %t774) %t776 = call ptr @fn_str_concat(ptr %t775, ptr @.str3929) %t777 = load ptr, ptr %t732 %t778 = call ptr @fn_str_concat(ptr %t776, ptr %t777) %t779 = call ptr @fn_emit_bind(ptr %t778) store ptr %t779, ptr %t780 %t781 = load ptr, ptr %t758 %t782 = call ptr @fn_str_concat(ptr @.str3930, ptr %t781) %t783 = call ptr @fn_str_concat(ptr %t782, ptr @.str3931) %t784 = load ptr, ptr %t780 %t785 = call ptr @fn_str_concat(ptr %t783, ptr %t784) %t786 = call ptr @fn_emit_bind(ptr %t785) store ptr %t786, ptr %t787 call void @fn_emit(ptr @.str3932) %t788 = load ptr, ptr %t787 call void @fn_emit(ptr %t788) call void @fn_emit(ptr @.str3933) %t789 = load ptr, ptr %t745 call void @fn_emit(ptr %t789) call void @fn_emit(ptr @.str3934) %t790 = load ptr, ptr %t747 call void @fn_emit(ptr %t790) call void @fn_emit(ptr @.str3935) %t791 = load ptr, ptr %t745 call void @fn_emit(ptr %t791) call void @fn_emit(ptr @.str3936) %t792 = load ptr, ptr %t753 %t793 = call ptr @fn_str_concat(ptr @.str3937, ptr %t792) %t794 = call ptr @fn_str_concat(ptr %t793, ptr @.str3938) %t795 = call ptr @fn_emit_bind(ptr %t794) store ptr %t795, ptr %t796 %t797 = load ptr, ptr %t42 %t798 = load ptr, ptr %t38 %t799 = load ptr, ptr %t796 %t800 = call ptr @fn_list_elem_addr(ptr %t797, ptr %t798, ptr %t799) store ptr %t800, ptr %t801 call void @fn_emit(ptr @.str3939) %t802 = load ptr, ptr %t38 call void @fn_emit(ptr %t802) call void @fn_emit(ptr @.str3940) %t803 = load ptr, ptr %t770 call void @fn_emit(ptr %t803) call void @fn_emit(ptr @.str3941) %t804 = load ptr, ptr %t801 call void @fn_emit(ptr %t804) call void @fn_emit(ptr @.str3942) %t805 = load ptr, ptr %t753 %t806 = call ptr @fn_str_concat(ptr @.str3943, ptr %t805) %t807 = call ptr @fn_str_concat(ptr %t806, ptr @.str3944) %t808 = call ptr @fn_emit_bind(ptr %t807) store ptr %t808, ptr %t809 %t810 = load ptr, ptr %t809 %t811 = load ptr, ptr %t734 call void @fn_store_at(ptr @.str3945, ptr %t810, ptr %t811) call void @fn_emit(ptr @.str3946) %t812 = load ptr, ptr %t743 call void @fn_emit(ptr %t812) call void @fn_emit(ptr @.str3947) %t813 = load ptr, ptr %t747 call void @fn_emit(ptr %t813) call void @fn_emit(ptr @.str3948) %t814 = load ptr, ptr %t734 %t815 = call ptr @fn_str_concat(ptr @.str3949, ptr %t814) %t816 = call ptr @fn_emit_bind(ptr %t815) store ptr %t816, ptr %t817 %t818 = load ptr, ptr %t817 %t819 = call ptr @fn_str_concat(ptr @.str3950, ptr %t818) %t820 = call ptr @fn_str_concat(ptr %t819, ptr @.str3951) %t821 = call ptr @fn_emit_bind(ptr %t820) store ptr %t821, ptr %t822 %t823 = load ptr, ptr %t42 %t824 = load ptr, ptr %t38 %t825 = load ptr, ptr %t822 %t826 = call ptr @fn_list_elem_addr(ptr %t823, ptr %t824, ptr %t825) store ptr %t826, ptr %t827 call void @fn_emit(ptr @.str3952) %t828 = load ptr, ptr %t38 call void @fn_emit(ptr %t828) call void @fn_emit(ptr @.str3953) %t829 = load ptr, ptr %t732 call void @fn_emit(ptr %t829) call void @fn_emit(ptr @.str3954) %t830 = load ptr, ptr %t827 call void @fn_emit(ptr %t830) call void @fn_emit(ptr @.str3955) %t831 = load ptr, ptr %t709 %t832 = call ptr @fn_str_concat(ptr @.str3956, ptr %t831) %t833 = call ptr @fn_str_concat(ptr %t832, ptr @.str3957) %t834 = call ptr @fn_emit_bind(ptr %t833) store ptr %t834, ptr %t835 %t836 = load ptr, ptr %t835 %t837 = load ptr, ptr %t696 call void @fn_store_at(ptr @.str3958, ptr %t836, ptr %t837) call void @fn_emit(ptr @.str3959) %t838 = load ptr, ptr %t699 call void @fn_emit(ptr %t838) call void @fn_emit(ptr @.str3960) %t839 = load ptr, ptr %t703 call void @fn_emit(ptr %t839) call void @fn_emit(ptr @.str3961) call void @fn_emit(ptr @.str3962) %t840 = load ptr, ptr %t686 call void @fn_emit(ptr %t840) call void @fn_emit(ptr @.str3963) %t841 = load ptr, ptr %t684 call void @fn_emit(ptr %t841) call void @fn_emit(ptr @.str3964) %t842 = load ptr, ptr %t42 %t843 = load ptr, ptr %t38 call void @fn_emit_merge_sort(ptr %t842, ptr %t843, i32 3, ptr @.str3965, ptr @.str3966) call void @fn_emit(ptr @.str3967) %t844 = load ptr, ptr %t686 call void @fn_emit(ptr %t844) call void @fn_emit(ptr @.str3968) %t845 = load ptr, ptr %t686 call void @fn_emit(ptr %t845) call void @fn_emit(ptr @.str3969) %t846 = call ptr @fn_val(ptr @.str3970, ptr @.str3971) store ptr %t846, ptr %retval br label %ret ifend43: %t847 = load ptr, ptr %t0 %t848 = call i32 @fn_str_eq(ptr %t847, ptr @.str3972) %t849 = icmp ne i32 %t848, 0 br i1 %t849, label %then44, label %ifend46 then44: %t850 = load ptr, ptr %t0 %t851 = load ptr, ptr %t1 %t852 = call ptr @fn_sort_fn_arg(ptr %t850, ptr %t851) store ptr %t852, ptr %t853 %t854 = load ptr, ptr %t853 %t855 = call ptr @fn_find_fn(ptr %t854) %t856 = call ptr @fn_param_types(ptr %t855) %t857 = getelementptr inbounds %LSlice, ptr %t856, i32 0, i32 1 %t858 = load i32, ptr %t857 %t859 = icmp ne i32 %t858, 2 %t860 = zext i1 %t859 to i32 %t861 = icmp ne i32 %t860, 0 br i1 %t861, label %then47, label %ifend49 then47: %t862 = load ptr, ptr %t853 %t863 = call ptr @fn_str_concat(ptr @.str3973, ptr %t862) %t864 = call ptr @fn_str_concat(ptr %t863, ptr @.str3974) call void @fn_perr(ptr %t864) br label %ifend49 ifend49: %t865 = load ptr, ptr %t42 %t866 = load ptr, ptr %t38 %t867 = load ptr, ptr %t853 call void @fn_emit_merge_sort(ptr %t865, ptr %t866, i32 0, ptr %t867, ptr @.str3975) %t868 = call ptr @fn_val(ptr @.str3976, ptr @.str3977) store ptr %t868, ptr %retval br label %ret ifend46: %t870 = load ptr, ptr %t0 %t871 = call i32 @fn_str_eq(ptr %t870, ptr @.str3978) %t872 = icmp ne i32 %t871, 0 %t873 = zext i1 %t872 to i32 store i32 %t873, ptr %t869 br i1 %t872, label %scend51, label %sc50 sc50: %t874 = load ptr, ptr %t0 %t875 = call i32 @fn_str_eq(ptr %t874, ptr @.str3979) %t876 = icmp ne i32 %t875, 0 %t877 = zext i1 %t876 to i32 store i32 %t877, ptr %t869 br label %scend51 scend51: %t878 = load i32, ptr %t869 %t879 = icmp ne i32 %t878, 0 br i1 %t879, label %then52, label %ifend54 then52: %t880 = load ptr, ptr %t0 %t881 = load ptr, ptr %t1 %t882 = call ptr @fn_sort_fn_arg(ptr %t880, ptr %t881) store ptr %t882, ptr %t883 %t884 = load ptr, ptr %t883 %t885 = call ptr @fn_find_fn(ptr %t884) store ptr %t885, ptr %t886 %t887 = load ptr, ptr %t886 %t888 = call ptr @fn_param_types(ptr %t887) %t889 = getelementptr inbounds %LSlice, ptr %t888, i32 0, i32 1 %t890 = load i32, ptr %t889 %t891 = icmp ne i32 %t890, 1 %t892 = zext i1 %t891 to i32 %t893 = icmp ne i32 %t892, 0 br i1 %t893, label %then55, label %ifend57 then55: %t894 = load ptr, ptr %t0 %t895 = call ptr @fn_str_concat(ptr @.str3980, ptr %t894) %t896 = call ptr @fn_str_concat(ptr %t895, ptr @.str3981) %t897 = load ptr, ptr %t883 %t898 = call ptr @fn_str_concat(ptr %t896, ptr %t897) %t899 = call ptr @fn_str_concat(ptr %t898, ptr @.str3982) call void @fn_perr(ptr %t899) br label %ifend57 ifend57: %t900 = load ptr, ptr %t886 %t901 = getelementptr inbounds %Cmp_Node, ptr %t900, i32 0, i32 3 %t902 = load ptr, ptr %t901 %t903 = call ptr @fn_llty(ptr %t902) store ptr %t903, ptr %t904 %t906 = load ptr, ptr %t904 %t907 = call i32 @fn_str_eq(ptr %t906, ptr @.str3983) %t908 = icmp ne i32 %t907, 0 %t909 = zext i1 %t908 to i32 store i32 %t909, ptr %t905 br i1 %t908, label %scend59, label %sc58 sc58: %t910 = load ptr, ptr %t904 %t911 = call i32 @fn_str_eq(ptr %t910, ptr @.str3984) %t912 = icmp ne i32 %t911, 0 %t913 = zext i1 %t912 to i32 store i32 %t913, ptr %t905 br label %scend59 scend59: %t914 = load i32, ptr %t905 %t915 = icmp ne i32 %t914, 0 br i1 %t915, label %then60, label %ifend62 then60: %t916 = load ptr, ptr %t0 %t917 = call ptr @fn_str_concat(ptr @.str3985, ptr %t916) %t918 = call ptr @fn_str_concat(ptr %t917, ptr @.str3986) %t919 = load ptr, ptr %t883 %t920 = call ptr @fn_str_concat(ptr %t918, ptr %t919) %t921 = call ptr @fn_str_concat(ptr %t920, ptr @.str3987) call void @fn_perr(ptr %t921) br label %ifend62 ifend62: store i32 1, ptr %t922 %t923 = load ptr, ptr %t0 %t924 = call i32 @fn_str_eq(ptr %t923, ptr @.str3988) %t925 = icmp ne i32 %t924, 0 br i1 %t925, label %then63, label %ifend65 then63: store i32 2, ptr %t922 br label %ifend65 ifend65: %t926 = load ptr, ptr %t42 %t927 = load ptr, ptr %t38 %t928 = load i32, ptr %t922 %t929 = load ptr, ptr %t883 %t930 = load ptr, ptr %t904 call void @fn_emit_merge_sort(ptr %t926, ptr %t927, i32 %t928, ptr %t929, ptr %t930) %t931 = call ptr @fn_val(ptr @.str3989, ptr @.str3990) store ptr %t931, ptr %retval br label %ret ifend54: %t932 = load ptr, ptr %t45 %t933 = call ptr @fn_str_concat(ptr @.str3991, ptr %t932) %t934 = call ptr @fn_emit_bind(ptr %t933) store ptr %t934, ptr %t935 %t936 = call ptr @fn_emit_alloca(ptr @.str3992) store ptr %t936, ptr %t937 %t938 = load ptr, ptr %t937 call void @fn_store_at(ptr @.str3993, ptr @.str3994, ptr %t938) %t939 = call ptr @fn_emit_alloca(ptr @.str3995) store ptr %t939, ptr %t940 %t941 = load ptr, ptr %t935 %t942 = call ptr @fn_str_concat(ptr @.str3996, ptr %t941) %t943 = call ptr @fn_str_concat(ptr %t942, ptr @.str3997) %t944 = call ptr @fn_emit_bind(ptr %t943) store ptr %t944, ptr %t945 %t946 = load ptr, ptr %t945 %t947 = load ptr, ptr %t940 call void @fn_store_at(ptr @.str3998, ptr %t946, ptr %t947) %t948 = call ptr @fn_lbl(ptr @.str3999) store ptr %t948, ptr %t949 %t950 = call ptr @fn_lbl(ptr @.str4000) store ptr %t950, ptr %t951 %t952 = call ptr @fn_lbl(ptr @.str4001) store ptr %t952, ptr %t953 call void @fn_emit(ptr @.str4002) %t954 = load ptr, ptr %t949 call void @fn_emit(ptr %t954) call void @fn_emit(ptr @.str4003) %t955 = load ptr, ptr %t949 call void @fn_emit(ptr %t955) call void @fn_emit(ptr @.str4004) %t956 = load ptr, ptr %t937 %t957 = call ptr @fn_str_concat(ptr @.str4005, ptr %t956) %t958 = call ptr @fn_emit_bind(ptr %t957) store ptr %t958, ptr %t959 %t960 = load ptr, ptr %t940 %t961 = call ptr @fn_str_concat(ptr @.str4006, ptr %t960) %t962 = call ptr @fn_emit_bind(ptr %t961) store ptr %t962, ptr %t963 %t964 = load ptr, ptr %t959 %t965 = call ptr @fn_str_concat(ptr @.str4007, ptr %t964) %t966 = call ptr @fn_str_concat(ptr %t965, ptr @.str4008) %t967 = load ptr, ptr %t963 %t968 = call ptr @fn_str_concat(ptr %t966, ptr %t967) %t969 = call ptr @fn_emit_bind(ptr %t968) store ptr %t969, ptr %t970 call void @fn_emit(ptr @.str4009) %t971 = load ptr, ptr %t970 call void @fn_emit(ptr %t971) call void @fn_emit(ptr @.str4010) %t972 = load ptr, ptr %t951 call void @fn_emit(ptr %t972) call void @fn_emit(ptr @.str4011) %t973 = load ptr, ptr %t953 call void @fn_emit(ptr %t973) call void @fn_emit(ptr @.str4012) %t974 = load ptr, ptr %t951 call void @fn_emit(ptr %t974) call void @fn_emit(ptr @.str4013) %t975 = load ptr, ptr %t42 %t976 = load ptr, ptr %t38 %t977 = load ptr, ptr %t959 %t978 = call ptr @fn_list_elem_addr(ptr %t975, ptr %t976, ptr %t977) store ptr %t978, ptr %t979 %t980 = load ptr, ptr %t42 %t981 = load ptr, ptr %t38 %t982 = load ptr, ptr %t963 %t983 = call ptr @fn_list_elem_addr(ptr %t980, ptr %t981, ptr %t982) store ptr %t983, ptr %t984 %t985 = load ptr, ptr %t38 %t986 = call ptr @fn_str_concat(ptr @.str4014, ptr %t985) %t987 = call ptr @fn_str_concat(ptr %t986, ptr @.str4015) %t988 = load ptr, ptr %t979 %t989 = call ptr @fn_str_concat(ptr %t987, ptr %t988) %t990 = call ptr @fn_emit_bind(ptr %t989) store ptr %t990, ptr %t991 %t992 = load ptr, ptr %t38 %t993 = call ptr @fn_str_concat(ptr @.str4016, ptr %t992) %t994 = call ptr @fn_str_concat(ptr %t993, ptr @.str4017) %t995 = load ptr, ptr %t984 %t996 = call ptr @fn_str_concat(ptr %t994, ptr %t995) %t997 = call ptr @fn_emit_bind(ptr %t996) store ptr %t997, ptr %t998 call void @fn_emit(ptr @.str4018) %t999 = load ptr, ptr %t38 call void @fn_emit(ptr %t999) call void @fn_emit(ptr @.str4019) %t1000 = load ptr, ptr %t998 call void @fn_emit(ptr %t1000) call void @fn_emit(ptr @.str4020) %t1001 = load ptr, ptr %t979 call void @fn_emit(ptr %t1001) call void @fn_emit(ptr @.str4021) call void @fn_emit(ptr @.str4022) %t1002 = load ptr, ptr %t38 call void @fn_emit(ptr %t1002) call void @fn_emit(ptr @.str4023) %t1003 = load ptr, ptr %t991 call void @fn_emit(ptr %t1003) call void @fn_emit(ptr @.str4024) %t1004 = load ptr, ptr %t984 call void @fn_emit(ptr %t1004) call void @fn_emit(ptr @.str4025) %t1005 = load ptr, ptr %t959 %t1006 = call ptr @fn_str_concat(ptr @.str4026, ptr %t1005) %t1007 = call ptr @fn_str_concat(ptr %t1006, ptr @.str4027) %t1008 = call ptr @fn_emit_bind(ptr %t1007) store ptr %t1008, ptr %t1009 %t1010 = load ptr, ptr %t1009 %t1011 = load ptr, ptr %t937 call void @fn_store_at(ptr @.str4028, ptr %t1010, ptr %t1011) %t1012 = load ptr, ptr %t963 %t1013 = call ptr @fn_str_concat(ptr @.str4029, ptr %t1012) %t1014 = call ptr @fn_str_concat(ptr %t1013, ptr @.str4030) %t1015 = call ptr @fn_emit_bind(ptr %t1014) store ptr %t1015, ptr %t1016 %t1017 = load ptr, ptr %t1016 %t1018 = load ptr, ptr %t940 call void @fn_store_at(ptr @.str4031, ptr %t1017, ptr %t1018) call void @fn_emit(ptr @.str4032) %t1019 = load ptr, ptr %t949 call void @fn_emit(ptr %t1019) call void @fn_emit(ptr @.str4033) %t1020 = load ptr, ptr %t953 call void @fn_emit(ptr %t1020) call void @fn_emit(ptr @.str4034) %t1021 = call ptr @fn_val(ptr @.str4035, ptr @.str4036) store ptr %t1021, ptr %retval br label %ret ret: %t1022 = load ptr, ptr %retval ret ptr %t1022 } 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 @fn_str_eq(ptr %t3, ptr @.str4037) %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_str_eq(ptr %t7, ptr @.str4038) %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_str_eq(ptr %t14, ptr @.str4039) %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 @fn_str_eq(ptr %t22, ptr @.str4040) %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 @fn_str_eq(ptr %t26, ptr @.str4041) %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 @fn_str_eq(ptr %t33, ptr @.str4042) %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 @.str4043) 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 @fn_str_concat(ptr @.str4044, ptr %t4) %t6 = call ptr @fn_str_concat(ptr %t5, ptr @.str4045) %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 @fn_str_concat(ptr @.str4046, ptr %t12) %t14 = call ptr @fn_str_concat(ptr %t13, ptr @.str4047) %t15 = call ptr @fn_emit_bind(ptr %t14) store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t0 %t18 = call ptr @fn_str_concat(ptr @.str4048, ptr %t17) %t19 = call ptr @fn_str_concat(ptr %t18, ptr @.str4049) %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 @fn_str_concat(ptr @.str4050, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str4051) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 %t31 = call ptr @fn_str_concat(ptr @.str4052, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str4053) %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 @fn_str_concat(ptr @.str4054, ptr %t38) %t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str4055) %t41 = call ptr @fn_emit_bind(ptr %t40) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t0 %t44 = call ptr @fn_str_concat(ptr @.str4056, ptr %t43) %t45 = call ptr @fn_str_concat(ptr %t44, ptr @.str4057) %t46 = call ptr @fn_emit_bind(ptr %t45) store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_str_concat(ptr @.str4058, ptr %t48) %t50 = call ptr @fn_str_concat(ptr %t49, ptr @.str4059) %t51 = load ptr, ptr %t29 %t52 = call ptr @fn_str_concat(ptr %t50, ptr %t51) %t53 = call ptr @fn_str_concat(ptr %t52, ptr @.str4060) %t54 = load ptr, ptr %t42 %t55 = call ptr @fn_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 @fn_str_concat(ptr @.str4061, ptr %t58) %t60 = call ptr @fn_str_concat(ptr %t59, ptr @.str4062) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_str_concat(ptr @.str4063, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str4064) %t66 = load ptr, ptr %t16 %t67 = call ptr @fn_str_concat(ptr %t65, ptr %t66) %t68 = call ptr @fn_str_concat(ptr %t67, ptr @.str4065) %t69 = load ptr, ptr %t57 %t70 = call ptr @fn_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 @fn_str_concat(ptr @.str4066, ptr %t73) %t75 = call ptr @fn_str_concat(ptr %t74, ptr @.str4067) %t76 = call ptr @fn_emit_bind(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t77 %t79 = call ptr @fn_str_concat(ptr @.str4068, ptr %t78) %t80 = call ptr @fn_str_concat(ptr %t79, ptr @.str4069) %t81 = load ptr, ptr %t3 %t82 = call ptr @fn_str_concat(ptr %t80, ptr %t81) %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str4070) %t84 = load ptr, ptr %t72 %t85 = call ptr @fn_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 @fn_str_concat(ptr @.str4071, 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 @fn_str_concat(ptr @.str4072, ptr %t37) %t39 = call ptr @fn_str_concat(ptr %t38, ptr @.str4073) %t40 = call ptr @fn_emit_bind(ptr %t39) store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t36 %t43 = call ptr @fn_str_concat(ptr @.str4074, ptr %t42) %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str4075) %t45 = call ptr @fn_emit_bind(ptr %t44) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t41 %t48 = call ptr @fn_str_concat(ptr @.str4076, ptr %t47) %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str4077) %t50 = load ptr, ptr %t46 %t51 = call ptr @fn_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 @.str4078) store ptr %t66, ptr %t67 %t68 = load ptr, ptr %t60 %t69 = call ptr @fn_fx_mul_code(ptr %t68, ptr @.str4079) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t67 %t72 = call ptr @fn_str_concat(ptr @.str4080, ptr %t71) %t73 = call ptr @fn_str_concat(ptr %t72, ptr @.str4081) %t74 = load ptr, ptr %t70 %t75 = call ptr @fn_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 @fn_str_concat(ptr @.str4082, ptr %t81) %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str4083) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_str_concat(ptr @.str4084, ptr %t86) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_str_concat(ptr @.str4085, ptr %t90) %t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str4086) %t93 = call ptr @fn_emit_bind(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t85 %t96 = call ptr @fn_str_concat(ptr @.str4087, ptr %t95) %t97 = call ptr @fn_str_concat(ptr %t96, ptr @.str4088) %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 @.str4089) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t102 %t104 = call ptr @fn_str_concat(ptr @.str4090, ptr %t103) %t105 = call ptr @fn_str_concat(ptr %t104, ptr @.str4091) %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 @fn_str_concat(ptr @.str4092, ptr %t112) %t114 = call ptr @fn_str_concat(ptr %t113, ptr @.str4093) %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 %t10 = 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 ptr, ptr %t6, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_emit_expr(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str4094) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t10 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_ease_eval(i32 1, ptr %t16) %t18 = call ptr @fn_val(ptr %t17, ptr @.str4095) store ptr %t18, ptr %retval br label %ret ifend2: %t19 = load ptr, ptr %t0 %t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str4096) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then3, label %ifend5 then3: %t22 = load ptr, ptr %t10 %t23 = getelementptr inbounds %Cmp_Val, ptr %t22, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_ease_eval(i32 2, ptr %t24) %t26 = call ptr @fn_val(ptr %t25, ptr @.str4097) store ptr %t26, ptr %retval br label %ret ifend5: %t27 = load ptr, ptr %t0 %t28 = call i32 @fn_str_eq(ptr %t27, ptr @.str4098) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then6, label %ifend8 then6: %t30 = load ptr, ptr %t10 %t31 = getelementptr inbounds %Cmp_Val, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = call ptr @fn_ease_eval(i32 3, ptr %t32) %t34 = call ptr @fn_val(ptr %t33, ptr @.str4099) store ptr %t34, ptr %retval br label %ret ifend8: %t35 = load ptr, ptr %t0 %t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str4100) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then9, label %ifend11 then9: %t38 = load ptr, ptr %t10 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_ease_eval(i32 4, ptr %t40) %t42 = call ptr @fn_val(ptr %t41, ptr @.str4101) store ptr %t42, ptr %retval br label %ret ifend11: %t43 = load ptr, ptr %t0 %t44 = call i32 @fn_str_eq(ptr %t43, ptr @.str4102) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then12, label %ifend14 then12: %t46 = load ptr, ptr %t10 %t47 = getelementptr inbounds %Cmp_Val, ptr %t46, i32 0, i32 0 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_ease_eval(i32 5, ptr %t48) %t50 = call ptr @fn_val(ptr %t49, ptr @.str4103) store ptr %t50, ptr %retval br label %ret ifend14: %t51 = load ptr, ptr %t10 %t52 = getelementptr inbounds %Cmp_Val, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_ease_eval(i32 6, ptr %t53) %t55 = call ptr @fn_val(ptr %t54, ptr @.str4104) store ptr %t55, ptr %retval br label %ret ret: %t56 = load ptr, ptr %retval ret ptr %t56 } 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 @fn_str_eq(ptr %t3, ptr @.str4105) %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_str_eq(ptr %t7, ptr @.str4106) %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_str_eq(ptr %t14, ptr @.str4107) %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 @fn_str_eq(ptr %t21, ptr @.str4108) %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 @fn_str_eq(ptr %t25, ptr @.str4109) %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 @fn_str_eq(ptr %t32, ptr @.str4110) %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 @fn_str_eq(ptr %t36, ptr @.str4111) %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 @fn_str_concat(ptr @.str4112, ptr %t2) %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str4113) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t1 %t8 = call ptr @fn_str_concat(ptr @.str4114, ptr %t7) %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str4115) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t6 %t13 = call ptr @fn_str_concat(ptr @.str4116, ptr %t12) %t14 = call ptr @fn_str_concat(ptr %t13, ptr @.str4117) %t15 = load ptr, ptr %t11 %t16 = call ptr @fn_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 @fn_str_concat(ptr @.str4118, ptr %t19) %t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str4119) %t22 = call ptr @fn_emit_bind(ptr %t21) store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_str_concat(ptr @.str4120, ptr %t24) %t26 = call ptr @fn_str_concat(ptr %t25, ptr @.str4121) %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 @fn_str_concat(ptr @.str4122, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str4123) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @fn_str_concat(ptr @.str4124, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str4125) %t9 = load ptr, ptr %t0 %t10 = call ptr @fn_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 %t13 = alloca ptr %t22 = alloca ptr %t31 = alloca ptr %t39 = alloca ptr %t44 = alloca ptr %t63 = alloca ptr %t72 = alloca ptr %t81 = alloca ptr %t89 = alloca ptr %t96 = alloca ptr %t103 = alloca ptr %t125 = alloca ptr %t134 = alloca ptr %t143 = alloca ptr %t151 = alloca ptr %t158 = alloca ptr %t163 = alloca ptr %t166 = alloca ptr %t173 = alloca ptr %t180 = alloca ptr %t189 = alloca ptr %t211 = alloca ptr %t220 = alloca ptr %t229 = alloca ptr %t237 = alloca ptr %t246 = alloca ptr %t263 = alloca ptr %t272 = alloca ptr %t279 = alloca ptr %t284 = alloca ptr %t303 = alloca ptr %t312 = alloca ptr %t321 = alloca ptr %t326 = alloca ptr %t335 = alloca ptr %t353 = alloca ptr %t362 = alloca ptr %t371 = alloca ptr %t376 = alloca ptr %t385 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4126) %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 ptr, ptr %t9, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %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 ptr, ptr %t18, i32 1 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_emit_expr(ptr %t20) store ptr %t21, ptr %t22 %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 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds ptr, ptr %t27, i32 2 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_emit_expr(ptr %t29) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t13 %t33 = getelementptr inbounds %Cmp_Val, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = load ptr, ptr %t22 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = call ptr @fn_anim_elapsed(ptr %t34, ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t31 %t41 = getelementptr inbounds %Cmp_Val, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = call ptr @fn_anim_atleast1(ptr %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t39 %t46 = call ptr @fn_str_concat(ptr @.str4127, ptr %t45) %t47 = call ptr @fn_str_concat(ptr %t46, ptr @.str4128) %t48 = load ptr, ptr %t44 %t49 = call ptr @fn_str_concat(ptr %t47, ptr %t48) %t50 = call ptr @fn_emit_bind(ptr %t49) %t51 = call ptr @fn_val(ptr %t50, ptr @.str4129) store ptr %t51, ptr %retval br label %ret ifend2: %t52 = load ptr, ptr %t0 %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str4130) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then3, label %ifend5 then3: %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 ptr, ptr %t59, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_emit_expr(ptr %t61) store ptr %t62, ptr %t63 %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 ptr, ptr %t68, i32 1 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_emit_expr(ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t1 %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 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds ptr, ptr %t77, i32 2 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_emit_expr(ptr %t79) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t63 %t83 = getelementptr inbounds %Cmp_Val, ptr %t82, i32 0, i32 0 %t84 = load ptr, ptr %t83 %t85 = load ptr, ptr %t72 %t86 = getelementptr inbounds %Cmp_Val, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_anim_elapsed(ptr %t84, ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t81 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_str_concat(ptr @.str4131, ptr %t92) %t94 = call ptr @fn_str_concat(ptr %t93, ptr @.str4132) %t95 = call ptr @fn_emit_bind(ptr %t94) store ptr %t95, ptr %t96 %t97 = load ptr, ptr %t89 %t98 = call ptr @fn_str_concat(ptr @.str4133, ptr %t97) %t99 = call ptr @fn_str_concat(ptr %t98, ptr @.str4134) %t100 = load ptr, ptr %t96 %t101 = call ptr @fn_str_concat(ptr %t99, ptr %t100) %t102 = call ptr @fn_emit_bind(ptr %t101) store ptr %t102, ptr %t103 %t104 = load ptr, ptr %t103 %t105 = call ptr @fn_str_concat(ptr @.str4135, ptr %t104) %t106 = call ptr @fn_str_concat(ptr %t105, ptr @.str4136) %t107 = load ptr, ptr %t89 %t108 = call ptr @fn_str_concat(ptr %t106, ptr %t107) %t109 = call ptr @fn_str_concat(ptr %t108, ptr @.str4137) %t110 = load ptr, ptr %t96 %t111 = call ptr @fn_str_concat(ptr %t109, ptr %t110) %t112 = call ptr @fn_emit_bind(ptr %t111) %t113 = call ptr @fn_val(ptr %t112, ptr @.str4138) store ptr %t113, ptr %retval br label %ret ifend5: %t114 = load ptr, ptr %t0 %t115 = call i32 @fn_str_eq(ptr %t114, ptr @.str4139) %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then6, label %ifend8 then6: %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 ptr, ptr %t121, i32 0 %t123 = load ptr, ptr %t122 %t124 = call ptr @fn_emit_expr(ptr %t123) store ptr %t124, ptr %t125 %t126 = load ptr, ptr %t1 %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 7 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %LSlice, ptr %t128, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = getelementptr inbounds ptr, ptr %t130, i32 1 %t132 = load ptr, ptr %t131 %t133 = call ptr @fn_emit_expr(ptr %t132) store ptr %t133, ptr %t134 %t135 = load ptr, ptr %t1 %t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 7 %t137 = load ptr, ptr %t136 %t138 = getelementptr inbounds %LSlice, ptr %t137, i32 0, i32 0 %t139 = load ptr, ptr %t138 %t140 = getelementptr inbounds ptr, ptr %t139, i32 2 %t141 = load ptr, ptr %t140 %t142 = call ptr @fn_emit_expr(ptr %t141) store ptr %t142, ptr %t143 %t144 = load ptr, ptr %t125 %t145 = getelementptr inbounds %Cmp_Val, ptr %t144, i32 0, i32 0 %t146 = load ptr, ptr %t145 %t147 = load ptr, ptr %t134 %t148 = getelementptr inbounds %Cmp_Val, ptr %t147, i32 0, i32 0 %t149 = load ptr, ptr %t148 %t150 = call ptr @fn_anim_elapsed(ptr %t146, ptr %t149) store ptr %t150, ptr %t151 %t152 = load ptr, ptr %t143 %t153 = getelementptr inbounds %Cmp_Val, ptr %t152, i32 0, i32 0 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_str_concat(ptr @.str4140, ptr %t154) %t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str4141) %t157 = call ptr @fn_emit_bind(ptr %t156) store ptr %t157, ptr %t158 %t159 = load ptr, ptr %t158 %t160 = call ptr @fn_str_concat(ptr @.str4142, ptr %t159) %t161 = call ptr @fn_str_concat(ptr %t160, ptr @.str4143) %t162 = call ptr @fn_emit_bind(ptr %t161) store ptr %t162, ptr %t163 %t164 = load ptr, ptr %t163 %t165 = call ptr @fn_anim_atleast1(ptr %t164) store ptr %t165, ptr %t166 %t167 = load ptr, ptr %t151 %t168 = call ptr @fn_str_concat(ptr @.str4144, ptr %t167) %t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str4145) %t170 = load ptr, ptr %t166 %t171 = call ptr @fn_str_concat(ptr %t169, ptr %t170) %t172 = call ptr @fn_emit_bind(ptr %t171) store ptr %t172, ptr %t173 %t174 = load ptr, ptr %t166 %t175 = call ptr @fn_str_concat(ptr @.str4146, ptr %t174) %t176 = call ptr @fn_str_concat(ptr %t175, ptr @.str4147) %t177 = load ptr, ptr %t173 %t178 = call ptr @fn_str_concat(ptr %t176, ptr %t177) %t179 = call ptr @fn_emit_bind(ptr %t178) store ptr %t179, ptr %t180 %t181 = load ptr, ptr %t173 %t182 = call ptr @fn_str_concat(ptr @.str4148, ptr %t181) %t183 = call ptr @fn_str_concat(ptr %t182, ptr @.str4149) %t184 = load ptr, ptr %t143 %t185 = getelementptr inbounds %Cmp_Val, ptr %t184, i32 0, i32 0 %t186 = load ptr, ptr %t185 %t187 = call ptr @fn_str_concat(ptr %t183, ptr %t186) %t188 = call ptr @fn_emit_bind(ptr %t187) store ptr %t188, ptr %t189 %t190 = load ptr, ptr %t189 %t191 = call ptr @fn_str_concat(ptr @.str4150, ptr %t190) %t192 = call ptr @fn_str_concat(ptr %t191, ptr @.str4151) %t193 = load ptr, ptr %t173 %t194 = call ptr @fn_str_concat(ptr %t192, ptr %t193) %t195 = call ptr @fn_str_concat(ptr %t194, ptr @.str4152) %t196 = load ptr, ptr %t180 %t197 = call ptr @fn_str_concat(ptr %t195, ptr %t196) %t198 = call ptr @fn_emit_bind(ptr %t197) %t199 = call ptr @fn_val(ptr %t198, ptr @.str4153) store ptr %t199, ptr %retval br label %ret ifend8: %t200 = load ptr, ptr %t0 %t201 = call i32 @fn_str_eq(ptr %t200, ptr @.str4154) %t202 = icmp ne i32 %t201, 0 br i1 %t202, label %then9, label %ifend11 then9: %t203 = load ptr, ptr %t1 %t204 = getelementptr inbounds %Cmp_Node, ptr %t203, i32 0, i32 7 %t205 = load ptr, ptr %t204 %t206 = getelementptr inbounds %LSlice, ptr %t205, i32 0, i32 0 %t207 = load ptr, ptr %t206 %t208 = getelementptr inbounds ptr, ptr %t207, i32 0 %t209 = load ptr, ptr %t208 %t210 = call ptr @fn_emit_expr(ptr %t209) store ptr %t210, ptr %t211 %t212 = load ptr, ptr %t1 %t213 = getelementptr inbounds %Cmp_Node, ptr %t212, i32 0, i32 7 %t214 = load ptr, ptr %t213 %t215 = getelementptr inbounds %LSlice, ptr %t214, i32 0, i32 0 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds ptr, ptr %t216, i32 1 %t218 = load ptr, ptr %t217 %t219 = call ptr @fn_emit_expr(ptr %t218) store ptr %t219, ptr %t220 %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 ptr, ptr %t225, i32 2 %t227 = load ptr, ptr %t226 %t228 = call ptr @fn_emit_expr(ptr %t227) store ptr %t228, ptr %t229 %t230 = load ptr, ptr %t211 %t231 = getelementptr inbounds %Cmp_Val, ptr %t230, i32 0, i32 0 %t232 = load ptr, ptr %t231 %t233 = load ptr, ptr %t220 %t234 = getelementptr inbounds %Cmp_Val, ptr %t233, i32 0, i32 0 %t235 = load ptr, ptr %t234 %t236 = call ptr @fn_anim_elapsed(ptr %t232, ptr %t235) store ptr %t236, ptr %t237 %t238 = load ptr, ptr %t237 %t239 = call ptr @fn_str_concat(ptr @.str4155, ptr %t238) %t240 = call ptr @fn_str_concat(ptr %t239, ptr @.str4156) %t241 = load ptr, ptr %t229 %t242 = getelementptr inbounds %Cmp_Val, ptr %t241, i32 0, i32 0 %t243 = load ptr, ptr %t242 %t244 = call ptr @fn_str_concat(ptr %t240, ptr %t243) %t245 = call ptr @fn_emit_bind(ptr %t244) store ptr %t245, ptr %t246 %t247 = load ptr, ptr %t246 %t248 = call ptr @fn_str_concat(ptr @.str4157, ptr %t247) %t249 = call ptr @fn_str_concat(ptr %t248, ptr @.str4158) %t250 = call ptr @fn_emit_bind(ptr %t249) %t251 = call ptr @fn_val(ptr %t250, ptr @.str4159) store ptr %t251, ptr %retval br label %ret ifend11: %t252 = load ptr, ptr %t0 %t253 = call i32 @fn_str_eq(ptr %t252, ptr @.str4160) %t254 = icmp ne i32 %t253, 0 br i1 %t254, label %then12, label %ifend14 then12: %t255 = load ptr, ptr %t1 %t256 = getelementptr inbounds %Cmp_Node, ptr %t255, i32 0, i32 7 %t257 = load ptr, ptr %t256 %t258 = getelementptr inbounds %LSlice, ptr %t257, i32 0, i32 0 %t259 = load ptr, ptr %t258 %t260 = getelementptr inbounds ptr, ptr %t259, i32 0 %t261 = load ptr, ptr %t260 %t262 = call ptr @fn_emit_expr(ptr %t261) store ptr %t262, ptr %t263 %t264 = load ptr, ptr %t1 %t265 = getelementptr inbounds %Cmp_Node, ptr %t264, i32 0, i32 7 %t266 = load ptr, ptr %t265 %t267 = getelementptr inbounds %LSlice, ptr %t266, i32 0, i32 0 %t268 = load ptr, ptr %t267 %t269 = getelementptr inbounds ptr, ptr %t268, i32 1 %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_str_concat(ptr @.str4161, ptr %t275) %t277 = call ptr @fn_str_concat(ptr %t276, ptr @.str4162) %t278 = call ptr @fn_emit_bind(ptr %t277) store ptr %t278, ptr %t279 %t280 = load ptr, ptr %t263 %t281 = getelementptr inbounds %Cmp_Val, ptr %t280, i32 0, i32 0 %t282 = load ptr, ptr %t281 %t283 = call ptr @fn_anim_atleast1(ptr %t282) store ptr %t283, ptr %t284 %t285 = load ptr, ptr %t279 %t286 = call ptr @fn_str_concat(ptr @.str4163, ptr %t285) %t287 = call ptr @fn_str_concat(ptr %t286, ptr @.str4164) %t288 = load ptr, ptr %t284 %t289 = call ptr @fn_str_concat(ptr %t287, ptr %t288) %t290 = call ptr @fn_emit_bind(ptr %t289) %t291 = call ptr @fn_val(ptr %t290, ptr @.str4165) store ptr %t291, ptr %retval br label %ret ifend14: %t292 = load ptr, ptr %t0 %t293 = call i32 @fn_str_eq(ptr %t292, ptr @.str4166) %t294 = icmp ne i32 %t293, 0 br i1 %t294, label %then15, label %ifend17 then15: %t295 = load ptr, ptr %t1 %t296 = getelementptr inbounds %Cmp_Node, ptr %t295, i32 0, i32 7 %t297 = load ptr, ptr %t296 %t298 = getelementptr inbounds %LSlice, ptr %t297, i32 0, i32 0 %t299 = load ptr, ptr %t298 %t300 = getelementptr inbounds ptr, ptr %t299, i32 0 %t301 = load ptr, ptr %t300 %t302 = call ptr @fn_emit_expr(ptr %t301) store ptr %t302, ptr %t303 %t304 = load ptr, ptr %t1 %t305 = getelementptr inbounds %Cmp_Node, ptr %t304, i32 0, i32 7 %t306 = load ptr, ptr %t305 %t307 = getelementptr inbounds %LSlice, ptr %t306, i32 0, i32 0 %t308 = load ptr, ptr %t307 %t309 = getelementptr inbounds ptr, ptr %t308, i32 1 %t310 = load ptr, ptr %t309 %t311 = call ptr @fn_emit_expr(ptr %t310) store ptr %t311, ptr %t312 %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 ptr, ptr %t317, i32 2 %t319 = load ptr, ptr %t318 %t320 = call ptr @fn_emit_expr(ptr %t319) store ptr %t320, ptr %t321 %t322 = load ptr, ptr %t312 %t323 = getelementptr inbounds %Cmp_Val, ptr %t322, i32 0, i32 0 %t324 = load ptr, ptr %t323 %t325 = call ptr @fn_anim_atleast1(ptr %t324) store ptr %t325, ptr %t326 %t327 = load ptr, ptr %t303 %t328 = getelementptr inbounds %Cmp_Val, ptr %t327, i32 0, i32 0 %t329 = load ptr, ptr %t328 %t330 = call ptr @fn_str_concat(ptr @.str4167, ptr %t329) %t331 = call ptr @fn_str_concat(ptr %t330, ptr @.str4168) %t332 = load ptr, ptr %t326 %t333 = call ptr @fn_str_concat(ptr %t331, ptr %t332) %t334 = call ptr @fn_emit_bind(ptr %t333) store ptr %t334, ptr %t335 %t336 = load ptr, ptr %t335 %t337 = call ptr @fn_str_concat(ptr @.str4169, ptr %t336) %t338 = call ptr @fn_str_concat(ptr %t337, ptr @.str4170) %t339 = load ptr, ptr %t321 %t340 = getelementptr inbounds %Cmp_Val, ptr %t339, i32 0, i32 0 %t341 = load ptr, ptr %t340 %t342 = call ptr @fn_str_concat(ptr %t338, ptr %t341) %t343 = call ptr @fn_emit_bind(ptr %t342) %t344 = call ptr @fn_val(ptr %t343, ptr @.str4171) store ptr %t344, ptr %retval br label %ret ifend17: %t345 = load ptr, ptr %t1 %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 ptr, ptr %t349, i32 0 %t351 = load ptr, ptr %t350 %t352 = call ptr @fn_emit_expr(ptr %t351) store ptr %t352, ptr %t353 %t354 = load ptr, ptr %t1 %t355 = getelementptr inbounds %Cmp_Node, ptr %t354, i32 0, i32 7 %t356 = load ptr, ptr %t355 %t357 = getelementptr inbounds %LSlice, ptr %t356, i32 0, i32 0 %t358 = load ptr, ptr %t357 %t359 = getelementptr inbounds ptr, ptr %t358, i32 1 %t360 = load ptr, ptr %t359 %t361 = call ptr @fn_emit_expr(ptr %t360) store ptr %t361, ptr %t362 %t363 = load ptr, ptr %t1 %t364 = getelementptr inbounds %Cmp_Node, ptr %t363, i32 0, i32 7 %t365 = load ptr, ptr %t364 %t366 = getelementptr inbounds %LSlice, ptr %t365, i32 0, i32 0 %t367 = load ptr, ptr %t366 %t368 = getelementptr inbounds ptr, ptr %t367, i32 2 %t369 = load ptr, ptr %t368 %t370 = call ptr @fn_emit_expr(ptr %t369) store ptr %t370, ptr %t371 %t372 = load ptr, ptr %t362 %t373 = getelementptr inbounds %Cmp_Val, ptr %t372, i32 0, i32 0 %t374 = load ptr, ptr %t373 %t375 = call ptr @fn_anim_atleast1(ptr %t374) store ptr %t375, ptr %t376 %t377 = load ptr, ptr %t353 %t378 = getelementptr inbounds %Cmp_Val, ptr %t377, i32 0, i32 0 %t379 = load ptr, ptr %t378 %t380 = call ptr @fn_str_concat(ptr @.str4172, ptr %t379) %t381 = call ptr @fn_str_concat(ptr %t380, ptr @.str4173) %t382 = load ptr, ptr %t376 %t383 = call ptr @fn_str_concat(ptr %t381, ptr %t382) %t384 = call ptr @fn_emit_bind(ptr %t383) store ptr %t384, ptr %t385 %t386 = load ptr, ptr %t385 %t387 = call ptr @fn_str_concat(ptr @.str4174, ptr %t386) %t388 = call ptr @fn_str_concat(ptr %t387, ptr @.str4175) %t389 = load ptr, ptr %t371 %t390 = getelementptr inbounds %Cmp_Val, ptr %t389, i32 0, i32 0 %t391 = load ptr, ptr %t390 %t392 = call ptr @fn_str_concat(ptr %t388, ptr %t391) %t393 = call ptr @fn_emit_bind(ptr %t392) %t394 = call ptr @fn_val(ptr %t393, ptr @.str4176) store ptr %t394, ptr %retval br label %ret ret: %t395 = load ptr, ptr %retval ret ptr %t395 } 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 @fn_str_eq(ptr %t4, ptr @.str4177) %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 @fn_str_eq(ptr %t8, ptr @.str4178) %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 @fn_str_eq(ptr %t15, ptr @.str4179) %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 @fn_str_eq(ptr %t22, ptr @.str4180) %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 @fn_str_eq(ptr %t30, ptr @.str4181) %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 @fn_str_eq(ptr %t34, ptr @.str4182) %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 @fn_str_eq(ptr %t41, ptr @.str4183) %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 @fn_str_eq(ptr %t48, ptr @.str4184) %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 @fn_str_eq(ptr %t52, ptr @.str4185) %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 @fn_str_concat(ptr @.str4186, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str4187) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @fn_str_concat(ptr @.str4188, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str4189) %t9 = load ptr, ptr %t0 %t10 = call ptr @fn_str_concat(ptr %t8, ptr %t9) %t11 = call ptr @fn_str_concat(ptr %t10, ptr @.str4190) %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 %t13 = alloca ptr %t22 = alloca ptr %t29 = alloca ptr %t39 = alloca ptr %t45 = alloca ptr %t50 = alloca ptr %t57 = alloca ptr %t62 = alloca ptr %t69 = alloca ptr %t89 = alloca ptr %t98 = alloca ptr %t103 = alloca ptr %t109 = alloca ptr %t126 = alloca ptr %t135 = alloca ptr %t140 = alloca ptr %t146 = alloca ptr %t151 = alloca ptr %t155 = alloca ptr %t160 = alloca ptr %t182 = alloca ptr %t191 = alloca ptr %t202 = alloca ptr %t219 = alloca ptr %t227 = alloca ptr %t253 = alloca ptr %t262 = alloca ptr %t271 = alloca ptr %t294 = alloca ptr %t303 = alloca ptr %t312 = alloca ptr %t323 = alloca ptr %t328 = alloca ptr %t335 = alloca ptr %t342 = alloca ptr %t347 = alloca ptr %t352 = alloca ptr %t357 = alloca ptr %t378 = alloca ptr %t387 = alloca ptr %t396 = alloca ptr %t401 = alloca ptr %t406 = alloca ptr %t411 = alloca ptr %t416 = alloca ptr %t423 = alloca ptr %t430 = alloca ptr %t443 = alloca ptr %t452 = alloca ptr %t461 = alloca ptr %t474 = alloca ptr %t487 = alloca ptr %t500 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4191) %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 ptr, ptr %t9, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %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 ptr, ptr %t18, i32 1 %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 @fn_str_concat(ptr @.str4192, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str4193) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_str_concat(ptr @.str4194, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str4195) %t33 = load ptr, ptr %t22 %t34 = getelementptr inbounds %Cmp_Val, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_str_concat(ptr %t32, ptr %t35) %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str4196) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t13 %t41 = getelementptr inbounds %Cmp_Val, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = load ptr, ptr %t39 %t44 = call ptr @fn_fx_div_code(ptr %t42, ptr %t43) store ptr %t44, ptr %t45 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_str_concat(ptr @.str4197, ptr %t46) %t48 = call ptr @fn_str_concat(ptr %t47, ptr @.str4198) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t50 %t52 = call ptr @fn_str_concat(ptr @.str4199, ptr %t51) %t53 = call ptr @fn_str_concat(ptr %t52, ptr @.str4200) %t54 = load ptr, ptr %t45 %t55 = call ptr @fn_str_concat(ptr %t53, ptr %t54) %t56 = call ptr @fn_emit_bind(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t57 %t59 = call ptr @fn_str_concat(ptr @.str4201, ptr %t58) %t60 = call ptr @fn_str_concat(ptr %t59, ptr @.str4202) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_str_concat(ptr @.str4203, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str4204) %t66 = load ptr, ptr %t57 %t67 = call ptr @fn_str_concat(ptr %t65, ptr %t66) %t68 = call ptr @fn_emit_bind(ptr %t67) store ptr %t68, ptr %t69 %t70 = load ptr, ptr %t29 %t71 = call ptr @fn_str_concat(ptr @.str4205, ptr %t70) %t72 = call ptr @fn_str_concat(ptr %t71, ptr @.str4206) %t73 = load ptr, ptr %t69 %t74 = call ptr @fn_str_concat(ptr %t72, ptr %t73) %t75 = call ptr @fn_str_concat(ptr %t74, ptr @.str4207) %t76 = call ptr @fn_emit_bind(ptr %t75) %t77 = call ptr @fn_val(ptr %t76, ptr @.str4208) store ptr %t77, ptr %retval br label %ret ifend2: %t78 = load ptr, ptr %t0 %t79 = call i32 @fn_str_eq(ptr %t78, ptr @.str4209) %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then3, label %ifend5 then3: %t81 = load ptr, ptr %t1 %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 0 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds ptr, ptr %t85, i32 0 %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 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 0 %t94 = load ptr, ptr %t93 %t95 = getelementptr inbounds ptr, ptr %t94, i32 1 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_emit_expr(ptr %t96) store ptr %t97, ptr %t98 %t99 = load ptr, ptr %t98 %t100 = getelementptr inbounds %Cmp_Val, ptr %t99, i32 0, i32 0 %t101 = load ptr, ptr %t100 %t102 = call ptr @fn_tween_den(ptr %t101) store ptr %t102, ptr %t103 %t104 = load ptr, ptr %t89 %t105 = getelementptr inbounds %Cmp_Val, ptr %t104, i32 0, i32 0 %t106 = load ptr, ptr %t105 %t107 = load ptr, ptr %t103 %t108 = call ptr @fn_fx_div_code(ptr %t106, ptr %t107) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_str_concat(ptr @.str4210, ptr %t110) %t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str4211) %t113 = call ptr @fn_emit_bind(ptr %t112) %t114 = call ptr @fn_val(ptr %t113, ptr @.str4212) store ptr %t114, ptr %retval br label %ret ifend5: %t115 = load ptr, ptr %t0 %t116 = call i32 @fn_str_eq(ptr %t115, ptr @.str4213) %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then6, label %ifend8 then6: %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 ptr, ptr %t122, i32 0 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_emit_expr(ptr %t124) store ptr %t125, ptr %t126 %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 ptr, ptr %t131, i32 1 %t133 = load ptr, ptr %t132 %t134 = call ptr @fn_emit_expr(ptr %t133) store ptr %t134, ptr %t135 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %Cmp_Val, ptr %t136, i32 0, i32 0 %t138 = load ptr, ptr %t137 %t139 = call ptr @fn_tween_den(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t126 %t142 = getelementptr inbounds %Cmp_Val, ptr %t141, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = load ptr, ptr %t140 %t145 = call ptr @fn_fx_div_code(ptr %t143, ptr %t144) store ptr %t145, ptr %t146 %t147 = load ptr, ptr %t146 %t148 = call ptr @fn_str_concat(ptr @.str4214, ptr %t147) %t149 = call ptr @fn_str_concat(ptr %t148, ptr @.str4215) %t150 = call ptr @fn_emit_bind(ptr %t149) store ptr %t150, ptr %t151 %t152 = load ptr, ptr %t151 %t153 = call ptr @fn_str_concat(ptr @.str4216, ptr %t152) %t154 = call ptr @fn_emit_bind(ptr %t153) store ptr %t154, ptr %t155 %t156 = load ptr, ptr %t151 %t157 = call ptr @fn_str_concat(ptr @.str4217, ptr %t156) %t158 = call ptr @fn_str_concat(ptr %t157, ptr @.str4218) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t160 %t162 = call ptr @fn_str_concat(ptr @.str4219, ptr %t161) %t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str4220) %t164 = load ptr, ptr %t151 %t165 = call ptr @fn_str_concat(ptr %t163, ptr %t164) %t166 = call ptr @fn_str_concat(ptr %t165, ptr @.str4221) %t167 = load ptr, ptr %t155 %t168 = call ptr @fn_str_concat(ptr %t166, ptr %t167) %t169 = call ptr @fn_emit_bind(ptr %t168) %t170 = call ptr @fn_val(ptr %t169, ptr @.str4222) store ptr %t170, ptr %retval br label %ret ifend8: %t171 = load ptr, ptr %t0 %t172 = call i32 @fn_str_eq(ptr %t171, ptr @.str4223) %t173 = icmp ne i32 %t172, 0 br i1 %t173, label %then9, label %ifend11 then9: %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 ptr, ptr %t178, i32 0 %t180 = load ptr, ptr %t179 %t181 = call ptr @fn_emit_expr(ptr %t180) store ptr %t181, ptr %t182 %t183 = load ptr, ptr %t1 %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 ptr, ptr %t187, i32 1 %t189 = load ptr, ptr %t188 %t190 = call ptr @fn_emit_expr(ptr %t189) store ptr %t190, ptr %t191 %t192 = load ptr, ptr %t182 %t193 = getelementptr inbounds %Cmp_Val, ptr %t192, i32 0, i32 0 %t194 = load ptr, ptr %t193 %t195 = call ptr @fn_str_concat(ptr @.str4224, ptr %t194) %t196 = call ptr @fn_str_concat(ptr %t195, ptr @.str4225) %t197 = load ptr, ptr %t191 %t198 = getelementptr inbounds %Cmp_Val, ptr %t197, i32 0, i32 0 %t199 = load ptr, ptr %t198 %t200 = call ptr @fn_str_concat(ptr %t196, ptr %t199) %t201 = call ptr @fn_emit_bind(ptr %t200) store ptr %t201, ptr %t202 %t203 = load ptr, ptr %t202 %t204 = call ptr @fn_str_concat(ptr @.str4226, ptr %t203) %t205 = call ptr @fn_str_concat(ptr %t204, ptr @.str4227) %t206 = call ptr @fn_emit_bind(ptr %t205) %t207 = call ptr @fn_val(ptr %t206, ptr @.str4228) store ptr %t207, ptr %retval br label %ret ifend11: %t208 = load ptr, ptr %t0 %t209 = call i32 @fn_str_eq(ptr %t208, ptr @.str4229) %t210 = icmp ne i32 %t209, 0 br i1 %t210, label %then12, label %ifend14 then12: %t211 = load ptr, ptr %t1 %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 ptr, ptr %t215, i32 0 %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 ptr, ptr %t224, i32 1 %t226 = load ptr, ptr %t225 store ptr %t226, ptr %t227 %t228 = load ptr, ptr %t227 %t229 = getelementptr inbounds %Cmp_Node, ptr %t228, i32 0, i32 0 %t230 = load i32, ptr %t229 %t231 = icmp ne i32 %t230, 30 %t232 = zext i1 %t231 to i32 %t233 = icmp ne i32 %t232, 0 br i1 %t233, label %then15, label %ifend17 then15: call void @fn_perr(ptr @.str4230) br label %ifend17 ifend17: %t234 = load ptr, ptr %t227 %t235 = getelementptr inbounds %Cmp_Node, ptr %t234, i32 0, i32 2 %t236 = load i32, ptr %t235 %t237 = load ptr, ptr %t219 %t238 = getelementptr inbounds %Cmp_Val, ptr %t237, i32 0, i32 0 %t239 = load ptr, ptr %t238 %t240 = call ptr @fn_ease_eval(i32 %t236, ptr %t239) %t241 = call ptr @fn_val(ptr %t240, ptr @.str4231) store ptr %t241, ptr %retval br label %ret ifend14: %t242 = load ptr, ptr %t0 %t243 = call i32 @fn_str_eq(ptr %t242, ptr @.str4232) %t244 = icmp ne i32 %t243, 0 br i1 %t244, label %then18, label %ifend20 then18: %t245 = load ptr, ptr %t1 %t246 = getelementptr inbounds %Cmp_Node, ptr %t245, i32 0, i32 7 %t247 = load ptr, ptr %t246 %t248 = getelementptr inbounds %LSlice, ptr %t247, i32 0, i32 0 %t249 = load ptr, ptr %t248 %t250 = getelementptr inbounds ptr, ptr %t249, i32 0 %t251 = load ptr, ptr %t250 %t252 = call ptr @fn_emit_expr(ptr %t251) store ptr %t252, ptr %t253 %t254 = load ptr, ptr %t1 %t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 7 %t256 = load ptr, ptr %t255 %t257 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 0 %t258 = load ptr, ptr %t257 %t259 = getelementptr inbounds ptr, ptr %t258, i32 1 %t260 = load ptr, ptr %t259 %t261 = call ptr @fn_emit_expr(ptr %t260) store ptr %t261, ptr %t262 %t263 = load ptr, ptr %t1 %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 ptr, ptr %t267, i32 2 %t269 = load ptr, ptr %t268 %t270 = call ptr @fn_emit_expr(ptr %t269) store ptr %t270, ptr %t271 %t272 = load ptr, ptr %t253 %t273 = getelementptr inbounds %Cmp_Val, ptr %t272, i32 0, i32 0 %t274 = load ptr, ptr %t273 %t275 = load ptr, ptr %t262 %t276 = getelementptr inbounds %Cmp_Val, ptr %t275, i32 0, i32 0 %t277 = load ptr, ptr %t276 %t278 = load ptr, ptr %t271 %t279 = getelementptr inbounds %Cmp_Val, ptr %t278, i32 0, i32 0 %t280 = load ptr, ptr %t279 %t281 = call ptr @fn_fx_lerp_code(ptr %t274, ptr %t277, ptr %t280) %t282 = call ptr @fn_val(ptr %t281, ptr @.str4233) store ptr %t282, ptr %retval br label %ret ifend20: %t283 = load ptr, ptr %t0 %t284 = call i32 @fn_str_eq(ptr %t283, ptr @.str4234) %t285 = icmp ne i32 %t284, 0 br i1 %t285, label %then21, label %ifend23 then21: %t286 = load ptr, ptr %t1 %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 ptr, ptr %t290, i32 0 %t292 = load ptr, ptr %t291 %t293 = call ptr @fn_emit_expr(ptr %t292) store ptr %t293, ptr %t294 %t295 = load ptr, ptr %t1 %t296 = getelementptr inbounds %Cmp_Node, ptr %t295, i32 0, i32 7 %t297 = load ptr, ptr %t296 %t298 = getelementptr inbounds %LSlice, ptr %t297, i32 0, i32 0 %t299 = load ptr, ptr %t298 %t300 = getelementptr inbounds ptr, ptr %t299, i32 1 %t301 = load ptr, ptr %t300 %t302 = call ptr @fn_emit_expr(ptr %t301) store ptr %t302, ptr %t303 %t304 = load ptr, ptr %t1 %t305 = getelementptr inbounds %Cmp_Node, ptr %t304, i32 0, i32 7 %t306 = load ptr, ptr %t305 %t307 = getelementptr inbounds %LSlice, ptr %t306, i32 0, i32 0 %t308 = load ptr, ptr %t307 %t309 = getelementptr inbounds ptr, ptr %t308, i32 2 %t310 = load ptr, ptr %t309 %t311 = call ptr @fn_emit_expr(ptr %t310) store ptr %t311, ptr %t312 %t313 = load ptr, ptr %t303 %t314 = getelementptr inbounds %Cmp_Val, ptr %t313, i32 0, i32 0 %t315 = load ptr, ptr %t314 %t316 = call ptr @fn_str_concat(ptr @.str4235, ptr %t315) %t317 = call ptr @fn_str_concat(ptr %t316, ptr @.str4236) %t318 = load ptr, ptr %t294 %t319 = getelementptr inbounds %Cmp_Val, ptr %t318, i32 0, i32 0 %t320 = load ptr, ptr %t319 %t321 = call ptr @fn_str_concat(ptr %t317, ptr %t320) %t322 = call ptr @fn_emit_bind(ptr %t321) store ptr %t322, ptr %t323 %t324 = load ptr, ptr %t323 %t325 = call ptr @fn_str_concat(ptr @.str4237, ptr %t324) %t326 = call ptr @fn_str_concat(ptr %t325, ptr @.str4238) %t327 = call ptr @fn_emit_bind(ptr %t326) store ptr %t327, ptr %t328 %t329 = load ptr, ptr %t312 %t330 = getelementptr inbounds %Cmp_Val, ptr %t329, i32 0, i32 0 %t331 = load ptr, ptr %t330 %t332 = call ptr @fn_str_concat(ptr @.str4239, ptr %t331) %t333 = call ptr @fn_str_concat(ptr %t332, ptr @.str4240) %t334 = call ptr @fn_emit_bind(ptr %t333) store ptr %t334, ptr %t335 %t336 = load ptr, ptr %t328 %t337 = call ptr @fn_str_concat(ptr @.str4241, ptr %t336) %t338 = call ptr @fn_str_concat(ptr %t337, ptr @.str4242) %t339 = load ptr, ptr %t335 %t340 = call ptr @fn_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_str_concat(ptr @.str4243, ptr %t343) %t345 = call ptr @fn_str_concat(ptr %t344, ptr @.str4244) %t346 = call ptr @fn_emit_bind(ptr %t345) store ptr %t346, ptr %t347 %t348 = load ptr, ptr %t347 %t349 = call ptr @fn_str_concat(ptr @.str4245, ptr %t348) %t350 = call ptr @fn_str_concat(ptr %t349, ptr @.str4246) %t351 = call ptr @fn_emit_bind(ptr %t350) store ptr %t351, ptr %t352 %t353 = load ptr, ptr %t352 %t354 = call ptr @fn_str_concat(ptr @.str4247, ptr %t353) %t355 = call ptr @fn_str_concat(ptr %t354, ptr @.str4248) %t356 = call ptr @fn_emit_bind(ptr %t355) store ptr %t356, ptr %t357 %t358 = load ptr, ptr %t294 %t359 = getelementptr inbounds %Cmp_Val, ptr %t358, i32 0, i32 0 %t360 = load ptr, ptr %t359 %t361 = call ptr @fn_str_concat(ptr @.str4249, ptr %t360) %t362 = call ptr @fn_str_concat(ptr %t361, ptr @.str4250) %t363 = load ptr, ptr %t357 %t364 = call ptr @fn_str_concat(ptr %t362, ptr %t363) %t365 = call ptr @fn_emit_bind(ptr %t364) %t366 = call ptr @fn_val(ptr %t365, ptr @.str4251) store ptr %t366, ptr %retval br label %ret ifend23: %t367 = load ptr, ptr %t0 %t368 = call i32 @fn_str_eq(ptr %t367, ptr @.str4252) %t369 = icmp ne i32 %t368, 0 br i1 %t369, label %then24, label %ifend26 then24: %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 ptr, ptr %t374, 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 ptr, ptr %t383, i32 1 %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 ptr, ptr %t392, i32 2 %t394 = load ptr, ptr %t393 %t395 = call ptr @fn_emit_expr(ptr %t394) store ptr %t395, ptr %t396 %t397 = load ptr, ptr %t378 %t398 = getelementptr inbounds %Cmp_Val, ptr %t397, i32 0, i32 0 %t399 = load ptr, ptr %t398 %t400 = call ptr @fn_vec_x(ptr %t399) store ptr %t400, ptr %t401 %t402 = load ptr, ptr %t378 %t403 = getelementptr inbounds %Cmp_Val, ptr %t402, i32 0, i32 0 %t404 = load ptr, ptr %t403 %t405 = call ptr @fn_vec_y(ptr %t404) store ptr %t405, ptr %t406 %t407 = load ptr, ptr %t387 %t408 = getelementptr inbounds %Cmp_Val, ptr %t407, i32 0, i32 0 %t409 = load ptr, ptr %t408 %t410 = call ptr @fn_vec_x(ptr %t409) store ptr %t410, ptr %t411 %t412 = load ptr, ptr %t387 %t413 = getelementptr inbounds %Cmp_Val, ptr %t412, i32 0, i32 0 %t414 = load ptr, ptr %t413 %t415 = call ptr @fn_vec_y(ptr %t414) store ptr %t415, ptr %t416 %t417 = load ptr, ptr %t401 %t418 = load ptr, ptr %t411 %t419 = load ptr, ptr %t396 %t420 = getelementptr inbounds %Cmp_Val, ptr %t419, i32 0, i32 0 %t421 = load ptr, ptr %t420 %t422 = call ptr @fn_fx_lerp_code(ptr %t417, ptr %t418, ptr %t421) store ptr %t422, ptr %t423 %t424 = load ptr, ptr %t406 %t425 = load ptr, ptr %t416 %t426 = load ptr, ptr %t396 %t427 = getelementptr inbounds %Cmp_Val, ptr %t426, i32 0, i32 0 %t428 = load ptr, ptr %t427 %t429 = call ptr @fn_fx_lerp_code(ptr %t424, ptr %t425, ptr %t428) store ptr %t429, ptr %t430 %t431 = load ptr, ptr %t423 %t432 = load ptr, ptr %t430 %t433 = call ptr @fn_vec_pack(ptr %t431, ptr %t432) %t434 = call ptr @fn_val(ptr %t433, ptr @.str4253) store ptr %t434, ptr %retval br label %ret ifend26: %t435 = load ptr, ptr %t1 %t436 = getelementptr inbounds %Cmp_Node, ptr %t435, i32 0, i32 7 %t437 = load ptr, ptr %t436 %t438 = getelementptr inbounds %LSlice, ptr %t437, i32 0, i32 0 %t439 = load ptr, ptr %t438 %t440 = getelementptr inbounds ptr, ptr %t439, i32 0 %t441 = load ptr, ptr %t440 %t442 = call ptr @fn_emit_expr(ptr %t441) store ptr %t442, ptr %t443 %t444 = load ptr, ptr %t1 %t445 = getelementptr inbounds %Cmp_Node, ptr %t444, i32 0, i32 7 %t446 = load ptr, ptr %t445 %t447 = getelementptr inbounds %LSlice, ptr %t446, i32 0, i32 0 %t448 = load ptr, ptr %t447 %t449 = getelementptr inbounds ptr, ptr %t448, i32 1 %t450 = load ptr, ptr %t449 %t451 = call ptr @fn_emit_expr(ptr %t450) store ptr %t451, ptr %t452 %t453 = load ptr, ptr %t1 %t454 = getelementptr inbounds %Cmp_Node, ptr %t453, i32 0, i32 7 %t455 = load ptr, ptr %t454 %t456 = getelementptr inbounds %LSlice, ptr %t455, i32 0, i32 0 %t457 = load ptr, ptr %t456 %t458 = getelementptr inbounds ptr, ptr %t457, i32 2 %t459 = load ptr, ptr %t458 %t460 = call ptr @fn_emit_expr(ptr %t459) store ptr %t460, ptr %t461 %t462 = load ptr, ptr %t443 %t463 = getelementptr inbounds %Cmp_Val, ptr %t462, i32 0, i32 0 %t464 = load ptr, ptr %t463 %t465 = call ptr @fn_color_ch(ptr %t464, ptr @.str4254) %t466 = load ptr, ptr %t452 %t467 = getelementptr inbounds %Cmp_Val, ptr %t466, i32 0, i32 0 %t468 = load ptr, ptr %t467 %t469 = call ptr @fn_color_ch(ptr %t468, ptr @.str4255) %t470 = load ptr, ptr %t461 %t471 = getelementptr inbounds %Cmp_Val, ptr %t470, i32 0, i32 0 %t472 = load ptr, ptr %t471 %t473 = call ptr @fn_color_lerp_ch(ptr %t465, ptr %t469, ptr %t472) store ptr %t473, ptr %t474 %t475 = load ptr, ptr %t443 %t476 = getelementptr inbounds %Cmp_Val, ptr %t475, i32 0, i32 0 %t477 = load ptr, ptr %t476 %t478 = call ptr @fn_color_ch(ptr %t477, ptr @.str4256) %t479 = load ptr, ptr %t452 %t480 = getelementptr inbounds %Cmp_Val, ptr %t479, i32 0, i32 0 %t481 = load ptr, ptr %t480 %t482 = call ptr @fn_color_ch(ptr %t481, ptr @.str4257) %t483 = load ptr, ptr %t461 %t484 = getelementptr inbounds %Cmp_Val, ptr %t483, i32 0, i32 0 %t485 = load ptr, ptr %t484 %t486 = call ptr @fn_color_lerp_ch(ptr %t478, ptr %t482, ptr %t485) store ptr %t486, ptr %t487 %t488 = load ptr, ptr %t443 %t489 = getelementptr inbounds %Cmp_Val, ptr %t488, i32 0, i32 0 %t490 = load ptr, ptr %t489 %t491 = call ptr @fn_color_ch(ptr %t490, ptr @.str4258) %t492 = load ptr, ptr %t452 %t493 = getelementptr inbounds %Cmp_Val, ptr %t492, i32 0, i32 0 %t494 = load ptr, ptr %t493 %t495 = call ptr @fn_color_ch(ptr %t494, ptr @.str4259) %t496 = load ptr, ptr %t461 %t497 = getelementptr inbounds %Cmp_Val, ptr %t496, i32 0, i32 0 %t498 = load ptr, ptr %t497 %t499 = call ptr @fn_color_lerp_ch(ptr %t491, ptr %t495, ptr %t498) store ptr %t499, ptr %t500 %t501 = load ptr, ptr %t474 %t502 = load ptr, ptr %t487 %t503 = load ptr, ptr %t500 %t504 = call ptr @fn_color_pack(ptr %t501, ptr %t502, ptr %t503) %t505 = call ptr @fn_val(ptr %t504, ptr @.str4260) store ptr %t505, ptr %retval br label %ret ret: %t506 = load ptr, ptr %retval ret ptr %t506 } 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 @fn_str_eq(ptr %t2, ptr @.str4261) %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 @fn_str_eq(ptr %t6, ptr @.str4262) %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 @fn_str_eq(ptr %t13, ptr @.str4263) %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 @fn_str_eq(ptr %t17, ptr @.str4264) %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 @fn_str_concat(ptr @.str4265, ptr %t2) %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str4266) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t1 %t8 = call ptr @fn_str_concat(ptr @.str4267, ptr %t7) %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str4268) %t10 = call ptr @fn_emit_bind(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t6 %t13 = call ptr @fn_str_concat(ptr @.str4269, ptr %t12) %t14 = call ptr @fn_str_concat(ptr %t13, ptr @.str4270) %t15 = load ptr, ptr %t6 %t16 = call ptr @fn_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 @fn_str_concat(ptr @.str4271, ptr %t19) %t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str4272) %t22 = load ptr, ptr %t11 %t23 = call ptr @fn_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 @fn_str_concat(ptr @.str4273, ptr %t26) %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str4274) %t29 = load ptr, ptr %t25 %t30 = call ptr @fn_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 @fn_str_concat(ptr @.str4275, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str4276) %t6 = load ptr, ptr %t2 %t7 = call ptr @fn_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 @fn_str_concat(ptr @.str4277, ptr %t10) %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str4278) %t13 = load ptr, ptr %t0 %t14 = call ptr @fn_str_concat(ptr %t12, ptr %t13) %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str4279) %t16 = load ptr, ptr %t2 %t17 = call ptr @fn_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 @fn_str_concat(ptr @.str4280, ptr %t20) %t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str4281) %t23 = load ptr, ptr %t19 %t24 = call ptr @fn_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 @fn_str_concat(ptr @.str4282, ptr %t27) %t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str4283) %t30 = load ptr, ptr %t1 %t31 = call ptr @fn_str_concat(ptr %t29, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str4284) %t33 = load ptr, ptr %t19 %t34 = call ptr @fn_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 %t13 = alloca ptr %t22 = alloca ptr %t31 = alloca ptr %t40 = alloca ptr %t49 = alloca ptr %t58 = alloca ptr %t67 = alloca ptr %t76 = alloca ptr %t87 = alloca ptr %t98 = alloca ptr %t109 = alloca ptr %t120 = alloca ptr %t129 = alloca ptr %t138 = alloca ptr %t147 = alloca ptr %t156 = alloca ptr %t163 = alloca ptr %t170 = alloca ptr %t177 = alloca ptr %t194 = alloca ptr %t203 = alloca ptr %t212 = alloca ptr %t221 = alloca ptr %t230 = alloca ptr %t239 = alloca ptr %t250 = alloca ptr %t261 = alloca ptr %t272 = alloca ptr %t281 = alloca ptr %t292 = alloca ptr %t301 = alloca ptr %t308 = alloca ptr %t315 = alloca ptr %t322 = alloca ptr %t339 = alloca ptr %t348 = alloca ptr %t357 = alloca ptr %t366 = alloca ptr %t375 = alloca ptr %t384 = alloca ptr %t395 = alloca ptr %t406 = alloca ptr %t410 = alloca ptr %t421 = alloca ptr %t426 = alloca ptr %t433 = alloca ptr %t440 = alloca ptr %t454 = alloca ptr %t463 = alloca ptr %t472 = alloca ptr %t481 = alloca ptr %t490 = alloca ptr %t499 = alloca ptr %t508 = alloca ptr %t519 = alloca ptr %t530 = alloca ptr %t539 = alloca ptr %t548 = alloca ptr %t557 = alloca ptr %t566 = alloca ptr %t570 = alloca ptr %t577 = alloca ptr %t584 = alloca ptr %t591 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4285) %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 ptr, ptr %t9, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %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 ptr, ptr %t18, i32 1 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_emit_expr(ptr %t20) store ptr %t21, ptr %t22 %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 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds ptr, ptr %t27, i32 2 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_emit_expr(ptr %t29) store ptr %t30, ptr %t31 %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 ptr, ptr %t36, i32 3 %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 ptr, ptr %t45, i32 4 %t47 = load ptr, ptr %t46 %t48 = call ptr @fn_emit_expr(ptr %t47) store ptr %t48, ptr %t49 %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 0 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds ptr, ptr %t54, i32 5 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_emit_expr(ptr %t56) store ptr %t57, ptr %t58 %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 ptr, ptr %t63, i32 6 %t65 = load ptr, ptr %t64 %t66 = call ptr @fn_emit_expr(ptr %t65) store ptr %t66, ptr %t67 %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 ptr, ptr %t72, i32 7 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_emit_expr(ptr %t74) store ptr %t75, ptr %t76 %t77 = load ptr, ptr %t13 %t78 = getelementptr inbounds %Cmp_Val, ptr %t77, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_str_concat(ptr @.str4286, ptr %t79) %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str4287) %t82 = load ptr, ptr %t31 %t83 = getelementptr inbounds %Cmp_Val, ptr %t82, i32 0, i32 0 %t84 = load ptr, ptr %t83 %t85 = call ptr @fn_str_concat(ptr %t81, ptr %t84) %t86 = call ptr @fn_emit_bind(ptr %t85) store ptr %t86, ptr %t87 %t88 = load ptr, ptr %t49 %t89 = getelementptr inbounds %Cmp_Val, ptr %t88, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_str_concat(ptr @.str4288, ptr %t90) %t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str4289) %t93 = load ptr, ptr %t67 %t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 0 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_str_concat(ptr %t92, ptr %t95) %t97 = call ptr @fn_emit_bind(ptr %t96) store ptr %t97, ptr %t98 %t99 = load ptr, ptr %t22 %t100 = getelementptr inbounds %Cmp_Val, ptr %t99, i32 0, i32 0 %t101 = load ptr, ptr %t100 %t102 = call ptr @fn_str_concat(ptr @.str4290, ptr %t101) %t103 = call ptr @fn_str_concat(ptr %t102, ptr @.str4291) %t104 = load ptr, ptr %t40 %t105 = getelementptr inbounds %Cmp_Val, ptr %t104, i32 0, i32 0 %t106 = load ptr, ptr %t105 %t107 = call ptr @fn_str_concat(ptr %t103, ptr %t106) %t108 = call ptr @fn_emit_bind(ptr %t107) store ptr %t108, ptr %t109 %t110 = load ptr, ptr %t58 %t111 = getelementptr inbounds %Cmp_Val, ptr %t110, i32 0, i32 0 %t112 = load ptr, ptr %t111 %t113 = call ptr @fn_str_concat(ptr @.str4292, ptr %t112) %t114 = call ptr @fn_str_concat(ptr %t113, ptr @.str4293) %t115 = load ptr, ptr %t76 %t116 = getelementptr inbounds %Cmp_Val, ptr %t115, i32 0, i32 0 %t117 = load ptr, ptr %t116 %t118 = call ptr @fn_str_concat(ptr %t114, ptr %t117) %t119 = call ptr @fn_emit_bind(ptr %t118) store ptr %t119, ptr %t120 %t121 = load ptr, ptr %t13 %t122 = getelementptr inbounds %Cmp_Val, ptr %t121, i32 0, i32 0 %t123 = load ptr, ptr %t122 %t124 = call ptr @fn_str_concat(ptr @.str4294, ptr %t123) %t125 = call ptr @fn_str_concat(ptr %t124, ptr @.str4295) %t126 = load ptr, ptr %t98 %t127 = call ptr @fn_str_concat(ptr %t125, ptr %t126) %t128 = call ptr @fn_emit_bind(ptr %t127) store ptr %t128, ptr %t129 %t130 = load ptr, ptr %t49 %t131 = getelementptr inbounds %Cmp_Val, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 %t133 = call ptr @fn_str_concat(ptr @.str4296, ptr %t132) %t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str4297) %t135 = load ptr, ptr %t87 %t136 = call ptr @fn_str_concat(ptr %t134, ptr %t135) %t137 = call ptr @fn_emit_bind(ptr %t136) store ptr %t137, ptr %t138 %t139 = load ptr, ptr %t22 %t140 = getelementptr inbounds %Cmp_Val, ptr %t139, i32 0, i32 0 %t141 = load ptr, ptr %t140 %t142 = call ptr @fn_str_concat(ptr @.str4298, ptr %t141) %t143 = call ptr @fn_str_concat(ptr %t142, ptr @.str4299) %t144 = load ptr, ptr %t120 %t145 = call ptr @fn_str_concat(ptr %t143, ptr %t144) %t146 = call ptr @fn_emit_bind(ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t58 %t149 = getelementptr inbounds %Cmp_Val, ptr %t148, i32 0, i32 0 %t150 = load ptr, ptr %t149 %t151 = call ptr @fn_str_concat(ptr @.str4300, ptr %t150) %t152 = call ptr @fn_str_concat(ptr %t151, ptr @.str4301) %t153 = load ptr, ptr %t109 %t154 = call ptr @fn_str_concat(ptr %t152, ptr %t153) %t155 = call ptr @fn_emit_bind(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t129 %t158 = call ptr @fn_str_concat(ptr @.str4302, ptr %t157) %t159 = call ptr @fn_str_concat(ptr %t158, ptr @.str4303) %t160 = load ptr, ptr %t138 %t161 = call ptr @fn_str_concat(ptr %t159, ptr %t160) %t162 = call ptr @fn_emit_bind(ptr %t161) store ptr %t162, ptr %t163 %t164 = load ptr, ptr %t147 %t165 = call ptr @fn_str_concat(ptr @.str4304, ptr %t164) %t166 = call ptr @fn_str_concat(ptr %t165, ptr @.str4305) %t167 = load ptr, ptr %t156 %t168 = call ptr @fn_str_concat(ptr %t166, ptr %t167) %t169 = call ptr @fn_emit_bind(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t163 %t172 = call ptr @fn_str_concat(ptr @.str4306, ptr %t171) %t173 = call ptr @fn_str_concat(ptr %t172, ptr @.str4307) %t174 = load ptr, ptr %t170 %t175 = call ptr @fn_str_concat(ptr %t173, ptr %t174) %t176 = call ptr @fn_emit_bind(ptr %t175) store ptr %t176, ptr %t177 %t178 = load ptr, ptr %t177 %t179 = call ptr @fn_str_concat(ptr @.str4308, ptr %t178) %t180 = call ptr @fn_str_concat(ptr %t179, ptr @.str4309) %t181 = call ptr @fn_emit_bind(ptr %t180) %t182 = call ptr @fn_val(ptr %t181, ptr @.str4310) store ptr %t182, ptr %retval br label %ret ifend2: %t183 = load ptr, ptr %t0 %t184 = call i32 @fn_str_eq(ptr %t183, ptr @.str4311) %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then3, label %ifend5 then3: %t186 = load ptr, ptr %t1 %t187 = getelementptr inbounds %Cmp_Node, ptr %t186, i32 0, i32 7 %t188 = load ptr, ptr %t187 %t189 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 0 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds ptr, ptr %t190, i32 0 %t192 = load ptr, ptr %t191 %t193 = call ptr @fn_emit_expr(ptr %t192) store ptr %t193, ptr %t194 %t195 = load ptr, ptr %t1 %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 0 %t199 = load ptr, ptr %t198 %t200 = getelementptr inbounds ptr, ptr %t199, i32 1 %t201 = load ptr, ptr %t200 %t202 = call ptr @fn_emit_expr(ptr %t201) store ptr %t202, ptr %t203 %t204 = load ptr, ptr %t1 %t205 = getelementptr inbounds %Cmp_Node, ptr %t204, i32 0, i32 7 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 0 %t208 = load ptr, ptr %t207 %t209 = getelementptr inbounds ptr, ptr %t208, i32 2 %t210 = load ptr, ptr %t209 %t211 = call ptr @fn_emit_expr(ptr %t210) store ptr %t211, ptr %t212 %t213 = load ptr, ptr %t1 %t214 = getelementptr inbounds %Cmp_Node, ptr %t213, i32 0, i32 7 %t215 = load ptr, ptr %t214 %t216 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 0 %t217 = load ptr, ptr %t216 %t218 = getelementptr inbounds ptr, ptr %t217, i32 3 %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 ptr, ptr %t226, i32 4 %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 ptr, ptr %t235, i32 5 %t237 = load ptr, ptr %t236 %t238 = call ptr @fn_emit_expr(ptr %t237) store ptr %t238, ptr %t239 %t240 = load ptr, ptr %t212 %t241 = getelementptr inbounds %Cmp_Val, ptr %t240, i32 0, i32 0 %t242 = load ptr, ptr %t241 %t243 = call ptr @fn_str_concat(ptr @.str4312, ptr %t242) %t244 = call ptr @fn_str_concat(ptr %t243, ptr @.str4313) %t245 = load ptr, ptr %t230 %t246 = getelementptr inbounds %Cmp_Val, ptr %t245, i32 0, i32 0 %t247 = load ptr, ptr %t246 %t248 = call ptr @fn_str_concat(ptr %t244, ptr %t247) %t249 = call ptr @fn_emit_bind(ptr %t248) store ptr %t249, ptr %t250 %t251 = load ptr, ptr %t221 %t252 = getelementptr inbounds %Cmp_Val, ptr %t251, i32 0, i32 0 %t253 = load ptr, ptr %t252 %t254 = call ptr @fn_str_concat(ptr @.str4314, ptr %t253) %t255 = call ptr @fn_str_concat(ptr %t254, ptr @.str4315) %t256 = load ptr, ptr %t239 %t257 = getelementptr inbounds %Cmp_Val, ptr %t256, i32 0, i32 0 %t258 = load ptr, ptr %t257 %t259 = call ptr @fn_str_concat(ptr %t255, ptr %t258) %t260 = call ptr @fn_emit_bind(ptr %t259) store ptr %t260, ptr %t261 %t262 = load ptr, ptr %t194 %t263 = getelementptr inbounds %Cmp_Val, ptr %t262, i32 0, i32 0 %t264 = load ptr, ptr %t263 %t265 = call ptr @fn_str_concat(ptr @.str4316, ptr %t264) %t266 = call ptr @fn_str_concat(ptr %t265, ptr @.str4317) %t267 = load ptr, ptr %t212 %t268 = getelementptr inbounds %Cmp_Val, ptr %t267, i32 0, i32 0 %t269 = load ptr, ptr %t268 %t270 = call ptr @fn_str_concat(ptr %t266, ptr %t269) %t271 = call ptr @fn_emit_bind(ptr %t270) store ptr %t271, ptr %t272 %t273 = load ptr, ptr %t194 %t274 = getelementptr inbounds %Cmp_Val, ptr %t273, i32 0, i32 0 %t275 = load ptr, ptr %t274 %t276 = call ptr @fn_str_concat(ptr @.str4318, ptr %t275) %t277 = call ptr @fn_str_concat(ptr %t276, ptr @.str4319) %t278 = load ptr, ptr %t250 %t279 = call ptr @fn_str_concat(ptr %t277, ptr %t278) %t280 = call ptr @fn_emit_bind(ptr %t279) store ptr %t280, ptr %t281 %t282 = load ptr, ptr %t203 %t283 = getelementptr inbounds %Cmp_Val, ptr %t282, i32 0, i32 0 %t284 = load ptr, ptr %t283 %t285 = call ptr @fn_str_concat(ptr @.str4320, ptr %t284) %t286 = call ptr @fn_str_concat(ptr %t285, ptr @.str4321) %t287 = load ptr, ptr %t221 %t288 = getelementptr inbounds %Cmp_Val, ptr %t287, i32 0, i32 0 %t289 = load ptr, ptr %t288 %t290 = call ptr @fn_str_concat(ptr %t286, ptr %t289) %t291 = call ptr @fn_emit_bind(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr %t203 %t294 = getelementptr inbounds %Cmp_Val, ptr %t293, i32 0, i32 0 %t295 = load ptr, ptr %t294 %t296 = call ptr @fn_str_concat(ptr @.str4322, ptr %t295) %t297 = call ptr @fn_str_concat(ptr %t296, ptr @.str4323) %t298 = load ptr, ptr %t261 %t299 = call ptr @fn_str_concat(ptr %t297, ptr %t298) %t300 = call ptr @fn_emit_bind(ptr %t299) store ptr %t300, ptr %t301 %t302 = load ptr, ptr %t272 %t303 = call ptr @fn_str_concat(ptr @.str4324, ptr %t302) %t304 = call ptr @fn_str_concat(ptr %t303, ptr @.str4325) %t305 = load ptr, ptr %t281 %t306 = call ptr @fn_str_concat(ptr %t304, ptr %t305) %t307 = call ptr @fn_emit_bind(ptr %t306) store ptr %t307, ptr %t308 %t309 = load ptr, ptr %t292 %t310 = call ptr @fn_str_concat(ptr @.str4326, ptr %t309) %t311 = call ptr @fn_str_concat(ptr %t310, ptr @.str4327) %t312 = load ptr, ptr %t301 %t313 = call ptr @fn_str_concat(ptr %t311, ptr %t312) %t314 = call ptr @fn_emit_bind(ptr %t313) store ptr %t314, ptr %t315 %t316 = load ptr, ptr %t308 %t317 = call ptr @fn_str_concat(ptr @.str4328, ptr %t316) %t318 = call ptr @fn_str_concat(ptr %t317, ptr @.str4329) %t319 = load ptr, ptr %t315 %t320 = call ptr @fn_str_concat(ptr %t318, ptr %t319) %t321 = call ptr @fn_emit_bind(ptr %t320) store ptr %t321, ptr %t322 %t323 = load ptr, ptr %t322 %t324 = call ptr @fn_str_concat(ptr @.str4330, ptr %t323) %t325 = call ptr @fn_str_concat(ptr %t324, ptr @.str4331) %t326 = call ptr @fn_emit_bind(ptr %t325) %t327 = call ptr @fn_val(ptr %t326, ptr @.str4332) store ptr %t327, ptr %retval br label %ret ifend5: %t328 = load ptr, ptr %t0 %t329 = call i32 @fn_str_eq(ptr %t328, ptr @.str4333) %t330 = icmp ne i32 %t329, 0 br i1 %t330, label %then6, label %ifend8 then6: %t331 = load ptr, ptr %t1 %t332 = getelementptr inbounds %Cmp_Node, ptr %t331, i32 0, i32 7 %t333 = load ptr, ptr %t332 %t334 = getelementptr inbounds %LSlice, ptr %t333, i32 0, i32 0 %t335 = load ptr, ptr %t334 %t336 = getelementptr inbounds ptr, ptr %t335, i32 0 %t337 = load ptr, ptr %t336 %t338 = call ptr @fn_emit_expr(ptr %t337) store ptr %t338, ptr %t339 %t340 = load ptr, ptr %t1 %t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 7 %t342 = load ptr, ptr %t341 %t343 = getelementptr inbounds %LSlice, ptr %t342, i32 0, i32 0 %t344 = load ptr, ptr %t343 %t345 = getelementptr inbounds ptr, ptr %t344, i32 1 %t346 = load ptr, ptr %t345 %t347 = call ptr @fn_emit_expr(ptr %t346) store ptr %t347, ptr %t348 %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 ptr, ptr %t353, i32 2 %t355 = load ptr, ptr %t354 %t356 = call ptr @fn_emit_expr(ptr %t355) store ptr %t356, ptr %t357 %t358 = load ptr, ptr %t1 %t359 = getelementptr inbounds %Cmp_Node, ptr %t358, i32 0, i32 7 %t360 = load ptr, ptr %t359 %t361 = getelementptr inbounds %LSlice, ptr %t360, i32 0, i32 0 %t362 = load ptr, ptr %t361 %t363 = getelementptr inbounds ptr, ptr %t362, i32 3 %t364 = load ptr, ptr %t363 %t365 = call ptr @fn_emit_expr(ptr %t364) store ptr %t365, ptr %t366 %t367 = load ptr, ptr %t1 %t368 = getelementptr inbounds %Cmp_Node, ptr %t367, i32 0, i32 7 %t369 = load ptr, ptr %t368 %t370 = getelementptr inbounds %LSlice, ptr %t369, i32 0, i32 0 %t371 = load ptr, ptr %t370 %t372 = getelementptr inbounds ptr, ptr %t371, i32 4 %t373 = load ptr, ptr %t372 %t374 = call ptr @fn_emit_expr(ptr %t373) store ptr %t374, ptr %t375 %t376 = load ptr, ptr %t1 %t377 = getelementptr inbounds %Cmp_Node, ptr %t376, i32 0, i32 7 %t378 = load ptr, ptr %t377 %t379 = getelementptr inbounds %LSlice, ptr %t378, i32 0, i32 0 %t380 = load ptr, ptr %t379 %t381 = getelementptr inbounds ptr, ptr %t380, i32 5 %t382 = load ptr, ptr %t381 %t383 = call ptr @fn_emit_expr(ptr %t382) store ptr %t383, ptr %t384 %t385 = load ptr, ptr %t339 %t386 = getelementptr inbounds %Cmp_Val, ptr %t385, i32 0, i32 0 %t387 = load ptr, ptr %t386 %t388 = call ptr @fn_str_concat(ptr @.str4334, ptr %t387) %t389 = call ptr @fn_str_concat(ptr %t388, ptr @.str4335) %t390 = load ptr, ptr %t366 %t391 = getelementptr inbounds %Cmp_Val, ptr %t390, i32 0, i32 0 %t392 = load ptr, ptr %t391 %t393 = call ptr @fn_str_concat(ptr %t389, ptr %t392) %t394 = call ptr @fn_emit_bind(ptr %t393) store ptr %t394, ptr %t395 %t396 = load ptr, ptr %t348 %t397 = getelementptr inbounds %Cmp_Val, ptr %t396, i32 0, i32 0 %t398 = load ptr, ptr %t397 %t399 = call ptr @fn_str_concat(ptr @.str4336, ptr %t398) %t400 = call ptr @fn_str_concat(ptr %t399, ptr @.str4337) %t401 = load ptr, ptr %t375 %t402 = getelementptr inbounds %Cmp_Val, ptr %t401, i32 0, i32 0 %t403 = load ptr, ptr %t402 %t404 = call ptr @fn_str_concat(ptr %t400, ptr %t403) %t405 = call ptr @fn_emit_bind(ptr %t404) store ptr %t405, ptr %t406 %t407 = load ptr, ptr %t395 %t408 = load ptr, ptr %t406 %t409 = call ptr @fn_coll_sq_sum(ptr %t407, ptr %t408) store ptr %t409, ptr %t410 %t411 = load ptr, ptr %t357 %t412 = getelementptr inbounds %Cmp_Val, ptr %t411, i32 0, i32 0 %t413 = load ptr, ptr %t412 %t414 = call ptr @fn_str_concat(ptr @.str4338, ptr %t413) %t415 = call ptr @fn_str_concat(ptr %t414, ptr @.str4339) %t416 = load ptr, ptr %t384 %t417 = getelementptr inbounds %Cmp_Val, ptr %t416, i32 0, i32 0 %t418 = load ptr, ptr %t417 %t419 = call ptr @fn_str_concat(ptr %t415, ptr %t418) %t420 = call ptr @fn_emit_bind(ptr %t419) store ptr %t420, ptr %t421 %t422 = load ptr, ptr %t421 %t423 = call ptr @fn_str_concat(ptr @.str4340, ptr %t422) %t424 = call ptr @fn_str_concat(ptr %t423, ptr @.str4341) %t425 = call ptr @fn_emit_bind(ptr %t424) store ptr %t425, ptr %t426 %t427 = load ptr, ptr %t426 %t428 = call ptr @fn_str_concat(ptr @.str4342, ptr %t427) %t429 = call ptr @fn_str_concat(ptr %t428, ptr @.str4343) %t430 = load ptr, ptr %t426 %t431 = call ptr @fn_str_concat(ptr %t429, ptr %t430) %t432 = call ptr @fn_emit_bind(ptr %t431) store ptr %t432, ptr %t433 %t434 = load ptr, ptr %t410 %t435 = call ptr @fn_str_concat(ptr @.str4344, ptr %t434) %t436 = call ptr @fn_str_concat(ptr %t435, ptr @.str4345) %t437 = load ptr, ptr %t433 %t438 = call ptr @fn_str_concat(ptr %t436, ptr %t437) %t439 = call ptr @fn_emit_bind(ptr %t438) store ptr %t439, ptr %t440 %t441 = load ptr, ptr %t440 %t442 = call ptr @fn_str_concat(ptr @.str4346, ptr %t441) %t443 = call ptr @fn_str_concat(ptr %t442, ptr @.str4347) %t444 = call ptr @fn_emit_bind(ptr %t443) %t445 = call ptr @fn_val(ptr %t444, ptr @.str4348) store ptr %t445, ptr %retval br label %ret ifend8: %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 ptr, ptr %t450, i32 0 %t452 = load ptr, ptr %t451 %t453 = call ptr @fn_emit_expr(ptr %t452) store ptr %t453, ptr %t454 %t455 = load ptr, ptr %t1 %t456 = getelementptr inbounds %Cmp_Node, ptr %t455, i32 0, i32 7 %t457 = load ptr, ptr %t456 %t458 = getelementptr inbounds %LSlice, ptr %t457, i32 0, i32 0 %t459 = load ptr, ptr %t458 %t460 = getelementptr inbounds ptr, ptr %t459, i32 1 %t461 = load ptr, ptr %t460 %t462 = call ptr @fn_emit_expr(ptr %t461) store ptr %t462, ptr %t463 %t464 = load ptr, ptr %t1 %t465 = getelementptr inbounds %Cmp_Node, ptr %t464, i32 0, i32 7 %t466 = load ptr, ptr %t465 %t467 = getelementptr inbounds %LSlice, ptr %t466, i32 0, i32 0 %t468 = load ptr, ptr %t467 %t469 = getelementptr inbounds ptr, ptr %t468, i32 2 %t470 = load ptr, ptr %t469 %t471 = call ptr @fn_emit_expr(ptr %t470) store ptr %t471, ptr %t472 %t473 = load ptr, ptr %t1 %t474 = getelementptr inbounds %Cmp_Node, ptr %t473, i32 0, i32 7 %t475 = load ptr, ptr %t474 %t476 = getelementptr inbounds %LSlice, ptr %t475, i32 0, i32 0 %t477 = load ptr, ptr %t476 %t478 = getelementptr inbounds ptr, ptr %t477, i32 3 %t479 = load ptr, ptr %t478 %t480 = call ptr @fn_emit_expr(ptr %t479) store ptr %t480, ptr %t481 %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 ptr, ptr %t486, i32 4 %t488 = load ptr, ptr %t487 %t489 = call ptr @fn_emit_expr(ptr %t488) store ptr %t489, ptr %t490 %t491 = load ptr, ptr %t1 %t492 = getelementptr inbounds %Cmp_Node, ptr %t491, i32 0, i32 7 %t493 = load ptr, ptr %t492 %t494 = getelementptr inbounds %LSlice, ptr %t493, i32 0, i32 0 %t495 = load ptr, ptr %t494 %t496 = getelementptr inbounds ptr, ptr %t495, i32 5 %t497 = load ptr, ptr %t496 %t498 = call ptr @fn_emit_expr(ptr %t497) store ptr %t498, ptr %t499 %t500 = load ptr, ptr %t1 %t501 = getelementptr inbounds %Cmp_Node, ptr %t500, i32 0, i32 7 %t502 = load ptr, ptr %t501 %t503 = getelementptr inbounds %LSlice, ptr %t502, i32 0, i32 0 %t504 = load ptr, ptr %t503 %t505 = getelementptr inbounds ptr, ptr %t504, i32 6 %t506 = load ptr, ptr %t505 %t507 = call ptr @fn_emit_expr(ptr %t506) store ptr %t507, ptr %t508 %t509 = load ptr, ptr %t454 %t510 = getelementptr inbounds %Cmp_Val, ptr %t509, i32 0, i32 0 %t511 = load ptr, ptr %t510 %t512 = call ptr @fn_str_concat(ptr @.str4349, ptr %t511) %t513 = call ptr @fn_str_concat(ptr %t512, ptr @.str4350) %t514 = load ptr, ptr %t472 %t515 = getelementptr inbounds %Cmp_Val, ptr %t514, i32 0, i32 0 %t516 = load ptr, ptr %t515 %t517 = call ptr @fn_str_concat(ptr %t513, ptr %t516) %t518 = call ptr @fn_emit_bind(ptr %t517) store ptr %t518, ptr %t519 %t520 = load ptr, ptr %t463 %t521 = getelementptr inbounds %Cmp_Val, ptr %t520, i32 0, i32 0 %t522 = load ptr, ptr %t521 %t523 = call ptr @fn_str_concat(ptr @.str4351, ptr %t522) %t524 = call ptr @fn_str_concat(ptr %t523, ptr @.str4352) %t525 = load ptr, ptr %t481 %t526 = getelementptr inbounds %Cmp_Val, ptr %t525, i32 0, i32 0 %t527 = load ptr, ptr %t526 %t528 = call ptr @fn_str_concat(ptr %t524, ptr %t527) %t529 = call ptr @fn_emit_bind(ptr %t528) store ptr %t529, ptr %t530 %t531 = load ptr, ptr %t490 %t532 = getelementptr inbounds %Cmp_Val, ptr %t531, i32 0, i32 0 %t533 = load ptr, ptr %t532 %t534 = load ptr, ptr %t454 %t535 = getelementptr inbounds %Cmp_Val, ptr %t534, i32 0, i32 0 %t536 = load ptr, ptr %t535 %t537 = load ptr, ptr %t519 %t538 = call ptr @fn_coll_clamp(ptr %t533, ptr %t536, ptr %t537) store ptr %t538, ptr %t539 %t540 = load ptr, ptr %t499 %t541 = getelementptr inbounds %Cmp_Val, ptr %t540, i32 0, i32 0 %t542 = load ptr, ptr %t541 %t543 = load ptr, ptr %t463 %t544 = getelementptr inbounds %Cmp_Val, ptr %t543, i32 0, i32 0 %t545 = load ptr, ptr %t544 %t546 = load ptr, ptr %t530 %t547 = call ptr @fn_coll_clamp(ptr %t542, ptr %t545, ptr %t546) store ptr %t547, ptr %t548 %t549 = load ptr, ptr %t490 %t550 = getelementptr inbounds %Cmp_Val, ptr %t549, i32 0, i32 0 %t551 = load ptr, ptr %t550 %t552 = call ptr @fn_str_concat(ptr @.str4353, ptr %t551) %t553 = call ptr @fn_str_concat(ptr %t552, ptr @.str4354) %t554 = load ptr, ptr %t539 %t555 = call ptr @fn_str_concat(ptr %t553, ptr %t554) %t556 = call ptr @fn_emit_bind(ptr %t555) store ptr %t556, ptr %t557 %t558 = load ptr, ptr %t499 %t559 = getelementptr inbounds %Cmp_Val, ptr %t558, i32 0, i32 0 %t560 = load ptr, ptr %t559 %t561 = call ptr @fn_str_concat(ptr @.str4355, ptr %t560) %t562 = call ptr @fn_str_concat(ptr %t561, ptr @.str4356) %t563 = load ptr, ptr %t548 %t564 = call ptr @fn_str_concat(ptr %t562, ptr %t563) %t565 = call ptr @fn_emit_bind(ptr %t564) store ptr %t565, ptr %t566 %t567 = load ptr, ptr %t557 %t568 = load ptr, ptr %t566 %t569 = call ptr @fn_coll_sq_sum(ptr %t567, ptr %t568) store ptr %t569, ptr %t570 %t571 = load ptr, ptr %t508 %t572 = getelementptr inbounds %Cmp_Val, ptr %t571, i32 0, i32 0 %t573 = load ptr, ptr %t572 %t574 = call ptr @fn_str_concat(ptr @.str4357, ptr %t573) %t575 = call ptr @fn_str_concat(ptr %t574, ptr @.str4358) %t576 = call ptr @fn_emit_bind(ptr %t575) store ptr %t576, ptr %t577 %t578 = load ptr, ptr %t577 %t579 = call ptr @fn_str_concat(ptr @.str4359, ptr %t578) %t580 = call ptr @fn_str_concat(ptr %t579, ptr @.str4360) %t581 = load ptr, ptr %t577 %t582 = call ptr @fn_str_concat(ptr %t580, ptr %t581) %t583 = call ptr @fn_emit_bind(ptr %t582) store ptr %t583, ptr %t584 %t585 = load ptr, ptr %t570 %t586 = call ptr @fn_str_concat(ptr @.str4361, ptr %t585) %t587 = call ptr @fn_str_concat(ptr %t586, ptr @.str4362) %t588 = load ptr, ptr %t584 %t589 = call ptr @fn_str_concat(ptr %t587, ptr %t588) %t590 = call ptr @fn_emit_bind(ptr %t589) store ptr %t590, ptr %t591 %t592 = load ptr, ptr %t591 %t593 = call ptr @fn_str_concat(ptr @.str4363, ptr %t592) %t594 = call ptr @fn_str_concat(ptr %t593, ptr @.str4364) %t595 = call ptr @fn_emit_bind(ptr %t594) %t596 = call ptr @fn_val(ptr %t595, ptr @.str4365) store ptr %t596, ptr %retval br label %ret ret: %t597 = load ptr, ptr %retval ret ptr %t597 } 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 @fn_str_eq(ptr %t2, ptr @.str4366) %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 @fn_str_eq(ptr %t6, ptr @.str4367) %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 @fn_str_eq(ptr %t15, ptr @.str4368) %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 @fn_str_eq(ptr %t19, ptr @.str4369) %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 @fn_str_eq(ptr %t26, ptr @.str4370) %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 @fn_str_eq(ptr %t33, ptr @.str4371) %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 %t13 = alloca ptr %t20 = alloca ptr %t37 = alloca ptr %t44 = alloca ptr %t49 = alloca ptr %t66 = alloca ptr %t75 = alloca ptr %t84 = alloca ptr %t91 = alloca ptr %t111 = alloca ptr %t120 = alloca ptr %t129 = alloca ptr %t136 = alloca ptr %t156 = alloca ptr %t165 = alloca ptr %t176 = alloca ptr %t180 = alloca ptr %t194 = alloca ptr %t203 = alloca ptr %t212 = alloca ptr %t223 = alloca ptr %t230 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4372) %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 ptr, ptr %t9, 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 = call ptr @fn_str_concat(ptr @.str4373, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str4374) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t20 %t22 = call ptr @fn_str_concat(ptr @.str4375, ptr %t21) %t23 = call ptr @fn_str_concat(ptr %t22, ptr @.str4376) %t24 = call ptr @fn_emit_bind(ptr %t23) %t25 = call ptr @fn_val(ptr %t24, ptr @.str4377) store ptr %t25, ptr %retval br label %ret ifend2: %t26 = load ptr, ptr %t0 %t27 = call i32 @fn_str_eq(ptr %t26, ptr @.str4378) %t28 = icmp ne i32 %t27, 0 br i1 %t28, label %then3, label %ifend5 then3: %t29 = load ptr, ptr %t1 %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 0 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds ptr, ptr %t33, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_emit_expr(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_str_concat(ptr @.str4379, ptr %t40) %t42 = call ptr @fn_str_concat(ptr %t41, ptr @.str4380) %t43 = call ptr @fn_emit_bind(ptr %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_str_concat(ptr @.str4381, ptr %t45) %t47 = call ptr @fn_str_concat(ptr %t46, ptr @.str4382) %t48 = call ptr @fn_emit_bind(ptr %t47) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 %t51 = call ptr @fn_str_concat(ptr @.str4383, ptr %t50) %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str4384) %t53 = call ptr @fn_emit_bind(ptr %t52) %t54 = call ptr @fn_val(ptr %t53, ptr @.str4385) store ptr %t54, ptr %retval br label %ret ifend5: %t55 = load ptr, ptr %t0 %t56 = call i32 @fn_str_eq(ptr %t55, ptr @.str4386) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then6, label %ifend8 then6: %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 ptr, ptr %t62, i32 0 %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 ptr, ptr %t71, i32 1 %t73 = load ptr, ptr %t72 %t74 = call ptr @fn_emit_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 ptr, ptr %t80, i32 2 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_emit_expr(ptr %t82) store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %Cmp_Val, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_str_concat(ptr @.str4387, ptr %t87) %t89 = call ptr @fn_str_concat(ptr %t88, ptr @.str4388) %t90 = call ptr @fn_emit_bind(ptr %t89) store ptr %t90, ptr %t91 call void @fn_emit(ptr @.str4389) %t92 = load ptr, ptr %t66 %t93 = getelementptr inbounds %Cmp_Val, ptr %t92, i32 0, i32 0 %t94 = load ptr, ptr %t93 call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str4390) %t95 = load ptr, ptr %t75 %t96 = getelementptr inbounds %Cmp_Val, ptr %t95, i32 0, i32 0 %t97 = load ptr, ptr %t96 call void @fn_emit(ptr %t97) call void @fn_emit(ptr @.str4391) %t98 = load ptr, ptr %t91 call void @fn_emit(ptr %t98) call void @fn_emit(ptr @.str4392) %t99 = call ptr @fn_val(ptr @.str4393, ptr @.str4394) store ptr %t99, ptr %retval br label %ret ifend8: %t100 = load ptr, ptr %t0 %t101 = call i32 @fn_str_eq(ptr %t100, ptr @.str4395) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then9, label %ifend11 then9: %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 0 %t107 = load ptr, ptr %t106 %t108 = getelementptr inbounds ptr, ptr %t107, i32 0 %t109 = load ptr, ptr %t108 %t110 = call ptr @fn_emit_expr(ptr %t109) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t1 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 7 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 0 %t116 = load ptr, ptr %t115 %t117 = getelementptr inbounds ptr, ptr %t116, i32 1 %t118 = load ptr, ptr %t117 %t119 = call ptr @fn_emit_expr(ptr %t118) store ptr %t119, ptr %t120 %t121 = load ptr, ptr %t1 %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 0 %t125 = load ptr, ptr %t124 %t126 = getelementptr inbounds ptr, ptr %t125, i32 2 %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 @fn_str_concat(ptr @.str4396, ptr %t132) %t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str4397) %t135 = call ptr @fn_emit_bind(ptr %t134) store ptr %t135, ptr %t136 call void @fn_emit(ptr @.str4398) %t137 = load ptr, ptr %t111 %t138 = getelementptr inbounds %Cmp_Val, ptr %t137, i32 0, i32 0 %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str4399) %t140 = load ptr, ptr %t120 %t141 = getelementptr inbounds %Cmp_Val, ptr %t140, i32 0, i32 0 %t142 = load ptr, ptr %t141 call void @fn_emit(ptr %t142) call void @fn_emit(ptr @.str4400) %t143 = load ptr, ptr %t136 call void @fn_emit(ptr %t143) call void @fn_emit(ptr @.str4401) %t144 = call ptr @fn_val(ptr @.str4402, ptr @.str4403) store ptr %t144, ptr %retval br label %ret ifend11: %t145 = load ptr, ptr %t0 %t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str4404) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then12, label %ifend14 then12: %t148 = load ptr, ptr %t1 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 7 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %LSlice, ptr %t150, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = getelementptr inbounds ptr, ptr %t152, i32 0 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_emit_expr(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t1 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 7 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 0 %t161 = load ptr, ptr %t160 %t162 = getelementptr inbounds ptr, ptr %t161, i32 1 %t163 = load ptr, ptr %t162 %t164 = call ptr @fn_emit_expr(ptr %t163) store ptr %t164, ptr %t165 %t166 = load ptr, ptr %t156 %t167 = getelementptr inbounds %Cmp_Val, ptr %t166, i32 0, i32 0 %t168 = load ptr, ptr %t167 %t169 = call ptr @fn_str_concat(ptr @.str4405, ptr %t168) %t170 = call ptr @fn_str_concat(ptr %t169, ptr @.str4406) %t171 = load ptr, ptr %t165 %t172 = getelementptr inbounds %Cmp_Val, ptr %t171, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = call ptr @fn_str_concat(ptr %t170, ptr %t173) %t175 = call ptr @fn_emit_bind(ptr %t174) store ptr %t175, ptr %t176 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_str_concat(ptr @.str4407, ptr %t177) %t179 = call ptr @fn_emit_bind(ptr %t178) store ptr %t179, ptr %t180 %t181 = load ptr, ptr %t180 %t182 = call ptr @fn_str_concat(ptr @.str4408, ptr %t181) %t183 = call ptr @fn_str_concat(ptr %t182, ptr @.str4409) %t184 = call ptr @fn_emit_bind(ptr %t183) %t185 = call ptr @fn_val(ptr %t184, ptr @.str4410) store ptr %t185, ptr %retval br label %ret ifend14: %t186 = load ptr, ptr %t1 %t187 = getelementptr inbounds %Cmp_Node, ptr %t186, i32 0, i32 7 %t188 = load ptr, ptr %t187 %t189 = getelementptr inbounds %LSlice, ptr %t188, i32 0, i32 0 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds ptr, ptr %t190, i32 0 %t192 = load ptr, ptr %t191 %t193 = call ptr @fn_emit_expr(ptr %t192) store ptr %t193, ptr %t194 %t195 = load ptr, ptr %t1 %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 0 %t199 = load ptr, ptr %t198 %t200 = getelementptr inbounds ptr, ptr %t199, i32 1 %t201 = load ptr, ptr %t200 %t202 = call ptr @fn_emit_expr(ptr %t201) store ptr %t202, ptr %t203 %t204 = load ptr, ptr %t1 %t205 = getelementptr inbounds %Cmp_Node, ptr %t204, i32 0, i32 7 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 0 %t208 = load ptr, ptr %t207 %t209 = getelementptr inbounds ptr, ptr %t208, i32 2 %t210 = load ptr, ptr %t209 %t211 = call ptr @fn_emit_expr(ptr %t210) store ptr %t211, ptr %t212 %t213 = load ptr, ptr %t194 %t214 = getelementptr inbounds %Cmp_Val, ptr %t213, i32 0, i32 0 %t215 = load ptr, ptr %t214 %t216 = call ptr @fn_str_concat(ptr @.str4411, ptr %t215) %t217 = call ptr @fn_str_concat(ptr %t216, ptr @.str4412) %t218 = load ptr, ptr %t203 %t219 = getelementptr inbounds %Cmp_Val, ptr %t218, i32 0, i32 0 %t220 = load ptr, ptr %t219 %t221 = call ptr @fn_str_concat(ptr %t217, ptr %t220) %t222 = call ptr @fn_emit_bind(ptr %t221) store ptr %t222, ptr %t223 %t224 = load ptr, ptr %t212 %t225 = getelementptr inbounds %Cmp_Val, ptr %t224, i32 0, i32 0 %t226 = load ptr, ptr %t225 %t227 = call ptr @fn_str_concat(ptr @.str4413, ptr %t226) %t228 = call ptr @fn_str_concat(ptr %t227, ptr @.str4414) %t229 = call ptr @fn_emit_bind(ptr %t228) store ptr %t229, ptr %t230 call void @fn_emit(ptr @.str4415) %t231 = load ptr, ptr %t230 call void @fn_emit(ptr %t231) call void @fn_emit(ptr @.str4416) %t232 = load ptr, ptr %t223 call void @fn_emit(ptr %t232) call void @fn_emit(ptr @.str4417) %t233 = call ptr @fn_val(ptr @.str4418, ptr @.str4419) store ptr %t233, ptr %retval br label %ret ret: %t234 = load ptr, ptr %retval ret ptr %t234 } 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 @fn_str_eq(ptr %t4, ptr @.str4420) %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 @fn_str_eq(ptr %t8, ptr @.str4421) %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 @fn_str_eq(ptr %t15, ptr @.str4422) %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 @fn_str_eq(ptr %t22, ptr @.str4423) %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 @fn_str_eq(ptr %t28, ptr @.str4424) %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 %t32 = alloca ptr %t34 = alloca ptr %t39 = alloca ptr %t50 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4425) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_emit_bind(ptr @.str4426) %t6 = call ptr @fn_val(ptr %t5, ptr @.str4427) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str4428) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: %t10 = call ptr @fn_val(ptr @.str4429, ptr @.str4430) store ptr %t10, ptr %retval br label %ret ifend5: %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str4431) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: %t14 = call ptr @fn_emit_bind(ptr @.str4432) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_str_concat(ptr @.str4433, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str4434) %t19 = call ptr @fn_emit_bind(ptr %t18) %t20 = call ptr @fn_val(ptr %t19, ptr @.str4435) store ptr %t20, ptr %retval br label %ret ifend8: %t21 = load ptr, ptr %t0 %t22 = call i32 @fn_str_eq(ptr %t21, ptr @.str4436) %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 ptr, ptr %t28, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_emit_expr(ptr %t30) store ptr %t31, ptr %t32 %t33 = call ptr @fn_emit_bind(ptr @.str4437) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_str_concat(ptr @.str4438, ptr %t35) %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str4439) %t38 = call ptr @fn_emit_bind(ptr %t37) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_str_concat(ptr @.str4440, ptr %t40) %t42 = call ptr @fn_str_concat(ptr %t41, ptr @.str4441) %t43 = load ptr, ptr %t32 %t44 = getelementptr inbounds %Cmp_Val, ptr %t43, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_str_concat(ptr %t42, ptr %t45) %t47 = call ptr @fn_emit_bind(ptr %t46) %t48 = call ptr @fn_val(ptr %t47, ptr @.str4442) store ptr %t48, ptr %retval br label %ret ifend11: %t49 = call ptr @fn_emit_bind(ptr @.str4443) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t50 %t52 = call ptr @fn_str_concat(ptr @.str4444, ptr %t51) %t53 = call ptr @fn_str_concat(ptr %t52, ptr @.str4445) %t54 = call ptr @fn_emit_bind(ptr %t53) %t55 = call ptr @fn_val(ptr %t54, ptr @.str4446) store ptr %t55, ptr %retval br label %ret ret: %t56 = load ptr, ptr %retval ret ptr %t56 } 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 @fn_str_eq(ptr %t4, ptr @.str4447) %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 @fn_str_eq(ptr %t8, ptr @.str4448) %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 @fn_str_eq(ptr %t15, ptr @.str4449) %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 @fn_str_eq(ptr %t22, ptr @.str4450) %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 @fn_str_eq(ptr %t31, ptr @.str4451) %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 @fn_str_eq(ptr %t35, ptr @.str4452) %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 @fn_str_eq(ptr %t42, ptr @.str4453) %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 @fn_str_eq(ptr %t49, ptr @.str4454) %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 %t10 = 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 ptr, ptr %t6, i32 0 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_emit_expr(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str4455) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t10 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = call ptr @fn_val(ptr %t16, ptr @.str4456) store ptr %t17, ptr %retval br label %ret ifend2: %t18 = load ptr, ptr %t0 %t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str4457) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load ptr, ptr %t10 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = call ptr @fn_str_concat(ptr @.str4458, ptr %t23) %t25 = call ptr @fn_str_concat(ptr %t24, ptr @.str4459) %t26 = call ptr @fn_emit_bind(ptr %t25) %t27 = call ptr @fn_val(ptr %t26, ptr @.str4460) store ptr %t27, ptr %retval br label %ret ifend5: %t28 = load ptr, ptr %t0 %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str4461) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then6, label %ifend8 then6: %t31 = load ptr, ptr %t10 %t32 = getelementptr inbounds %Cmp_Val, ptr %t31, i32 0, i32 0 %t33 = load ptr, ptr %t32 %t34 = call ptr @fn_str_concat(ptr @.str4462, ptr %t33) %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str4463) %t36 = call ptr @fn_emit_bind(ptr %t35) %t37 = call ptr @fn_val(ptr %t36, ptr @.str4464) store ptr %t37, ptr %retval br label %ret ifend8: %t38 = load ptr, ptr %t0 %t39 = call i32 @fn_str_eq(ptr %t38, ptr @.str4465) %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then9, label %ifend11 then9: %t41 = load ptr, ptr %t10 %t42 = getelementptr inbounds %Cmp_Val, ptr %t41, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_str_concat(ptr @.str4466, ptr %t43) %t45 = call ptr @fn_str_concat(ptr %t44, ptr @.str4467) %t46 = call ptr @fn_emit_bind(ptr %t45) %t47 = call ptr @fn_val(ptr %t46, ptr @.str4468) store ptr %t47, ptr %retval br label %ret ifend11: %t48 = load ptr, ptr %t0 %t49 = call i32 @fn_str_eq(ptr %t48, ptr @.str4469) %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then12, label %ifend14 then12: %t51 = load ptr, ptr %t10 %t52 = getelementptr inbounds %Cmp_Val, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_val(ptr %t53, ptr @.str4470) store ptr %t54, ptr %retval br label %ret ifend14: %t55 = load ptr, ptr %t0 %t56 = call i32 @fn_str_eq(ptr %t55, ptr @.str4471) %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %then15, label %ifend17 then15: %t58 = load ptr, ptr %t10 %t59 = getelementptr inbounds %Cmp_Val, ptr %t58, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = call ptr @fn_str_concat(ptr @.str4472, ptr %t60) %t62 = call ptr @fn_str_concat(ptr %t61, ptr @.str4473) %t63 = call ptr @fn_emit_bind(ptr %t62) %t64 = call ptr @fn_val(ptr %t63, ptr @.str4474) store ptr %t64, ptr %retval br label %ret ifend17: %t65 = load ptr, ptr %t0 %t66 = call i32 @fn_str_eq(ptr %t65, ptr @.str4475) %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then18, label %ifend20 then18: %t68 = load ptr, ptr %t10 %t69 = getelementptr inbounds %Cmp_Val, ptr %t68, i32 0, i32 0 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_str_concat(ptr @.str4476, ptr %t70) %t72 = call ptr @fn_str_concat(ptr %t71, ptr @.str4477) %t73 = call ptr @fn_emit_bind(ptr %t72) %t74 = call ptr @fn_val(ptr %t73, ptr @.str4478) store ptr %t74, ptr %retval br label %ret ifend20: %t75 = load ptr, ptr %t10 %t76 = getelementptr inbounds %Cmp_Val, ptr %t75, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_str_concat(ptr @.str4479, ptr %t77) %t79 = call ptr @fn_str_concat(ptr %t78, ptr @.str4480) %t80 = call ptr @fn_emit_bind(ptr %t79) %t81 = call ptr @fn_val(ptr %t80, ptr @.str4481) store ptr %t81, ptr %retval br label %ret ret: %t82 = load ptr, ptr %retval ret ptr %t82 } 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 @.str4482) store ptr %t2, ptr %t3 %t4 = call ptr @fn_emit_alloca(ptr @.str4483) store ptr %t4, ptr %t5 %t6 = call ptr @fn_emit_alloca(ptr @.str4484) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t0 %t9 = call ptr @fn_str_concat(ptr @.str4485, ptr %t8) %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str4486) %t11 = load ptr, ptr %t3 %t12 = call ptr @fn_str_concat(ptr %t10, ptr %t11) %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str4487) %t14 = load ptr, ptr %t5 %t15 = call ptr @fn_str_concat(ptr %t13, ptr %t14) %t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str4488) %t17 = load ptr, ptr %t7 %t18 = call ptr @fn_str_concat(ptr %t16, ptr %t17) %t19 = call ptr @fn_str_concat(ptr %t18, ptr @.str4489) 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 @fn_str_concat(ptr @.str4490, 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 @fn_str_eq(ptr %t4, ptr @.str4491) %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 @fn_str_eq(ptr %t8, ptr @.str4492) %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 @fn_str_eq(ptr %t15, ptr @.str4493) %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 @fn_str_eq(ptr %t22, ptr @.str4494) %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 @fn_str_eq(ptr %t30, ptr @.str4495) %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 @fn_str_eq(ptr %t34, ptr @.str4496) %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 @fn_str_eq(ptr %t41, ptr @.str4497) %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 @fn_str_eq(ptr %t49, ptr @.str4498) %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 @fn_str_eq(ptr %t53, ptr @.str4499) %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 @fn_str_eq(ptr %t60, ptr @.str4500) %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 %t13 = alloca ptr %t22 = alloca ptr %t31 = alloca ptr %t60 = alloca ptr %t77 = alloca ptr %t94 = alloca ptr %t111 = alloca ptr %t118 = alloca ptr %t123 = alloca ptr %t128 = alloca ptr %t145 = alloca ptr %t152 = alloca ptr %t157 = alloca ptr %t164 = alloca ptr %t169 = alloca ptr %t176 = alloca ptr %t181 = alloca ptr %t188 = alloca ptr %t195 = alloca ptr %t212 = alloca ptr %t221 = alloca ptr %t233 = alloca ptr %t240 = alloca ptr %t247 = alloca ptr %t259 = alloca ptr %t266 = alloca ptr %t273 = alloca ptr %t281 = alloca ptr %t300 = alloca ptr %t319 = alloca ptr %t328 = alloca ptr %t348 = alloca ptr %t357 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4501) %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 ptr, ptr %t9, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %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 ptr, ptr %t18, i32 1 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_emit_expr(ptr %t20) store ptr %t21, ptr %t22 %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 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds ptr, ptr %t27, i32 2 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_emit_expr(ptr %t29) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t13 %t33 = getelementptr inbounds %Cmp_Val, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = call ptr @fn_str_concat(ptr @.str4502, ptr %t34) %t36 = call ptr @fn_str_concat(ptr %t35, ptr @.str4503) %t37 = load ptr, ptr %t22 %t38 = getelementptr inbounds %Cmp_Val, ptr %t37, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = call ptr @fn_str_concat(ptr %t36, ptr %t39) %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str4504) %t42 = load ptr, ptr %t31 %t43 = getelementptr inbounds %Cmp_Val, ptr %t42, i32 0, i32 0 %t44 = load ptr, ptr %t43 %t45 = call ptr @fn_str_concat(ptr %t41, ptr %t44) %t46 = call ptr @fn_str_concat(ptr %t45, ptr @.str4505) %t47 = call ptr @fn_emit_bind(ptr %t46) %t48 = call ptr @fn_val(ptr %t47, ptr @.str4506) store ptr %t48, ptr %retval br label %ret ifend2: %t49 = load ptr, ptr %t0 %t50 = call i32 @fn_str_eq(ptr %t49, ptr @.str4507) %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then3, label %ifend5 then3: %t52 = load ptr, ptr %t1 %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 0 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds ptr, ptr %t56, i32 0 %t58 = load ptr, ptr %t57 %t59 = call ptr @fn_emit_expr(ptr %t58) store ptr %t59, ptr %t60 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %Cmp_Val, ptr %t61, i32 0, i32 0 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_date_component(ptr %t63, i32 0) %t65 = call ptr @fn_val(ptr %t64, ptr @.str4508) store ptr %t65, ptr %retval br label %ret ifend5: %t66 = load ptr, ptr %t0 %t67 = call i32 @fn_str_eq(ptr %t66, ptr @.str4509) %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then6, label %ifend8 then6: %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 ptr, ptr %t73, i32 0 %t75 = load ptr, ptr %t74 %t76 = call ptr @fn_emit_expr(ptr %t75) store ptr %t76, ptr %t77 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %Cmp_Val, ptr %t78, i32 0, i32 0 %t80 = load ptr, ptr %t79 %t81 = call ptr @fn_date_component(ptr %t80, i32 1) %t82 = call ptr @fn_val(ptr %t81, ptr @.str4510) store ptr %t82, ptr %retval br label %ret ifend8: %t83 = load ptr, ptr %t0 %t84 = call i32 @fn_str_eq(ptr %t83, ptr @.str4511) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then9, label %ifend11 then9: %t86 = load ptr, ptr %t1 %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 0 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds ptr, ptr %t90, i32 0 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_emit_expr(ptr %t92) store ptr %t93, ptr %t94 %t95 = load ptr, ptr %t94 %t96 = getelementptr inbounds %Cmp_Val, ptr %t95, i32 0, i32 0 %t97 = load ptr, ptr %t96 %t98 = call ptr @fn_date_component(ptr %t97, i32 2) %t99 = call ptr @fn_val(ptr %t98, ptr @.str4512) store ptr %t99, ptr %retval br label %ret ifend11: %t100 = load ptr, ptr %t0 %t101 = call i32 @fn_str_eq(ptr %t100, ptr @.str4513) %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then12, label %ifend14 then12: %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 0 %t107 = load ptr, ptr %t106 %t108 = getelementptr inbounds ptr, ptr %t107, i32 0 %t109 = load ptr, ptr %t108 %t110 = call ptr @fn_emit_expr(ptr %t109) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %Cmp_Val, ptr %t112, i32 0, i32 0 %t114 = load ptr, ptr %t113 %t115 = call ptr @fn_str_concat(ptr @.str4514, ptr %t114) %t116 = call ptr @fn_str_concat(ptr %t115, ptr @.str4515) %t117 = call ptr @fn_emit_bind(ptr %t116) store ptr %t117, ptr %t118 %t119 = load ptr, ptr %t118 %t120 = call ptr @fn_str_concat(ptr @.str4516, ptr %t119) %t121 = call ptr @fn_str_concat(ptr %t120, ptr @.str4517) %t122 = call ptr @fn_emit_bind(ptr %t121) store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_str_concat(ptr @.str4518, ptr %t124) %t126 = call ptr @fn_str_concat(ptr %t125, ptr @.str4519) %t127 = call ptr @fn_emit_bind(ptr %t126) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t128 %t130 = call ptr @fn_str_concat(ptr @.str4520, ptr %t129) %t131 = call ptr @fn_str_concat(ptr %t130, ptr @.str4521) %t132 = call ptr @fn_emit_bind(ptr %t131) %t133 = call ptr @fn_val(ptr %t132, ptr @.str4522) store ptr %t133, ptr %retval br label %ret ifend14: %t134 = load ptr, ptr %t0 %t135 = call i32 @fn_str_eq(ptr %t134, ptr @.str4523) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then15, label %ifend17 then15: %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 ptr, ptr %t141, i32 0 %t143 = load ptr, ptr %t142 %t144 = call ptr @fn_emit_expr(ptr %t143) store ptr %t144, ptr %t145 %t146 = load ptr, ptr %t145 %t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0 %t148 = load ptr, ptr %t147 %t149 = call ptr @fn_str_concat(ptr @.str4524, ptr %t148) %t150 = call ptr @fn_str_concat(ptr %t149, ptr @.str4525) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t152 %t154 = call ptr @fn_str_concat(ptr @.str4526, ptr %t153) %t155 = call ptr @fn_str_concat(ptr %t154, ptr @.str4527) %t156 = call ptr @fn_emit_bind(ptr %t155) store ptr %t156, ptr %t157 %t158 = load ptr, ptr %t145 %t159 = getelementptr inbounds %Cmp_Val, ptr %t158, i32 0, i32 0 %t160 = load ptr, ptr %t159 %t161 = call ptr @fn_str_concat(ptr @.str4528, ptr %t160) %t162 = call ptr @fn_str_concat(ptr %t161, ptr @.str4529) %t163 = call ptr @fn_emit_bind(ptr %t162) store ptr %t163, ptr %t164 %t165 = load ptr, ptr %t164 %t166 = call ptr @fn_str_concat(ptr @.str4530, ptr %t165) %t167 = call ptr @fn_str_concat(ptr %t166, ptr @.str4531) %t168 = call ptr @fn_emit_bind(ptr %t167) store ptr %t168, ptr %t169 %t170 = load ptr, ptr %t145 %t171 = getelementptr inbounds %Cmp_Val, ptr %t170, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = call ptr @fn_str_concat(ptr @.str4532, ptr %t172) %t174 = call ptr @fn_str_concat(ptr %t173, ptr @.str4533) %t175 = call ptr @fn_emit_bind(ptr %t174) store ptr %t175, ptr %t176 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_str_concat(ptr @.str4534, ptr %t177) %t179 = call ptr @fn_str_concat(ptr %t178, ptr @.str4535) %t180 = call ptr @fn_emit_bind(ptr %t179) store ptr %t180, ptr %t181 %t182 = load ptr, ptr %t157 %t183 = call ptr @fn_str_concat(ptr @.str4536, ptr %t182) %t184 = call ptr @fn_str_concat(ptr %t183, ptr @.str4537) %t185 = load ptr, ptr %t169 %t186 = call ptr @fn_str_concat(ptr %t184, ptr %t185) %t187 = call ptr @fn_emit_bind(ptr %t186) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t188 %t190 = call ptr @fn_str_concat(ptr @.str4538, ptr %t189) %t191 = call ptr @fn_str_concat(ptr %t190, ptr @.str4539) %t192 = load ptr, ptr %t181 %t193 = call ptr @fn_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 @fn_str_concat(ptr @.str4540, ptr %t196) %t198 = call ptr @fn_str_concat(ptr %t197, ptr @.str4541) %t199 = call ptr @fn_emit_bind(ptr %t198) %t200 = call ptr @fn_val(ptr %t199, ptr @.str4542) store ptr %t200, ptr %retval br label %ret ifend17: %t201 = load ptr, ptr %t0 %t202 = call i32 @fn_str_eq(ptr %t201, ptr @.str4543) %t203 = icmp ne i32 %t202, 0 br i1 %t203, label %then18, label %ifend20 then18: store i32 1, ptr @g_g_uses_datert %t204 = load ptr, ptr %t1 %t205 = getelementptr inbounds %Cmp_Node, ptr %t204, i32 0, i32 7 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds %LSlice, ptr %t206, i32 0, i32 0 %t208 = load ptr, ptr %t207 %t209 = getelementptr inbounds ptr, ptr %t208, i32 0 %t210 = load ptr, ptr %t209 %t211 = call ptr @fn_emit_expr(ptr %t210) store ptr %t211, ptr %t212 %t213 = load ptr, ptr %t1 %t214 = getelementptr inbounds %Cmp_Node, ptr %t213, i32 0, i32 7 %t215 = load ptr, ptr %t214 %t216 = getelementptr inbounds %LSlice, ptr %t215, i32 0, i32 0 %t217 = load ptr, ptr %t216 %t218 = getelementptr inbounds ptr, ptr %t217, i32 1 %t219 = load ptr, ptr %t218 %t220 = call ptr @fn_emit_expr(ptr %t219) store ptr %t220, ptr %t221 %t222 = load ptr, ptr %t212 %t223 = getelementptr inbounds %Cmp_Val, ptr %t222, i32 0, i32 0 %t224 = load ptr, ptr %t223 %t225 = call ptr @fn_str_concat(ptr @.str4544, ptr %t224) %t226 = call ptr @fn_str_concat(ptr %t225, ptr @.str4545) %t227 = load ptr, ptr %t221 %t228 = getelementptr inbounds %Cmp_Val, ptr %t227, i32 0, i32 0 %t229 = load ptr, ptr %t228 %t230 = call ptr @fn_str_concat(ptr %t226, ptr %t229) %t231 = call ptr @fn_str_concat(ptr %t230, ptr @.str4546) %t232 = call ptr @fn_emit_bind(ptr %t231) store ptr %t232, ptr %t233 %t234 = load ptr, ptr %t221 %t235 = getelementptr inbounds %Cmp_Val, ptr %t234, i32 0, i32 0 %t236 = load ptr, ptr %t235 %t237 = call ptr @fn_str_concat(ptr @.str4547, ptr %t236) %t238 = call ptr @fn_str_concat(ptr %t237, ptr @.str4548) %t239 = call ptr @fn_emit_bind(ptr %t238) store ptr %t239, ptr %t240 %t241 = load ptr, ptr %t212 %t242 = getelementptr inbounds %Cmp_Val, ptr %t241, i32 0, i32 0 %t243 = load ptr, ptr %t242 %t244 = call ptr @fn_str_concat(ptr @.str4549, ptr %t243) %t245 = call ptr @fn_str_concat(ptr %t244, ptr @.str4550) %t246 = call ptr @fn_emit_bind(ptr %t245) store ptr %t246, ptr %t247 %t248 = load ptr, ptr %t240 %t249 = call ptr @fn_str_concat(ptr @.str4551, ptr %t248) %t250 = call ptr @fn_str_concat(ptr %t249, ptr @.str4552) %t251 = load ptr, ptr %t247 %t252 = call ptr @fn_str_concat(ptr %t250, ptr %t251) %t253 = call ptr @fn_str_concat(ptr %t252, ptr @.str4553) %t254 = load ptr, ptr %t212 %t255 = getelementptr inbounds %Cmp_Val, ptr %t254, i32 0, i32 0 %t256 = load ptr, ptr %t255 %t257 = call ptr @fn_str_concat(ptr %t253, ptr %t256) %t258 = call ptr @fn_emit_bind(ptr %t257) store ptr %t258, ptr %t259 %t260 = load ptr, ptr %t221 %t261 = getelementptr inbounds %Cmp_Val, ptr %t260, i32 0, i32 0 %t262 = load ptr, ptr %t261 %t263 = call ptr @fn_str_concat(ptr @.str4554, ptr %t262) %t264 = call ptr @fn_str_concat(ptr %t263, ptr @.str4555) %t265 = call ptr @fn_emit_bind(ptr %t264) store ptr %t265, ptr %t266 %t267 = load ptr, ptr %t240 %t268 = call ptr @fn_str_concat(ptr @.str4556, ptr %t267) %t269 = call ptr @fn_str_concat(ptr %t268, ptr @.str4557) %t270 = load ptr, ptr %t266 %t271 = call ptr @fn_str_concat(ptr %t269, ptr %t270) %t272 = call ptr @fn_emit_bind(ptr %t271) store ptr %t272, ptr %t273 %t274 = load ptr, ptr %t259 %t275 = call ptr @fn_str_concat(ptr @.str4558, ptr %t274) %t276 = call ptr @fn_str_concat(ptr %t275, ptr @.str4559) %t277 = load ptr, ptr %t273 %t278 = call ptr @fn_str_concat(ptr %t276, ptr %t277) %t279 = call ptr @fn_str_concat(ptr %t278, ptr @.str4560) %t280 = call ptr @fn_emit_bind(ptr %t279) store ptr %t280, ptr %t281 %t282 = load ptr, ptr %t281 %t283 = call ptr @fn_str_concat(ptr @.str4561, ptr %t282) %t284 = call ptr @fn_str_concat(ptr %t283, ptr @.str4562) %t285 = load ptr, ptr %t233 %t286 = call ptr @fn_str_concat(ptr %t284, ptr %t285) %t287 = call ptr @fn_emit_bind(ptr %t286) %t288 = call ptr @fn_val(ptr %t287, ptr @.str4563) store ptr %t288, ptr %retval br label %ret ifend20: %t289 = load ptr, ptr %t0 %t290 = call i32 @fn_str_eq(ptr %t289, ptr @.str4564) %t291 = icmp ne i32 %t290, 0 br i1 %t291, label %then21, label %ifend23 then21: %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 ptr, ptr %t296, i32 0 %t298 = load ptr, ptr %t297 %t299 = call ptr @fn_emit_expr(ptr %t298) store ptr %t299, ptr %t300 %t301 = load ptr, ptr %t300 %t302 = getelementptr inbounds %Cmp_Val, ptr %t301, i32 0, i32 0 %t303 = load ptr, ptr %t302 %t304 = call ptr @fn_str_concat(ptr @.str4565, ptr %t303) %t305 = call ptr @fn_str_concat(ptr %t304, ptr @.str4566) %t306 = call ptr @fn_emit_bind(ptr %t305) %t307 = call ptr @fn_val(ptr %t306, ptr @.str4567) store ptr %t307, ptr %retval br label %ret ifend23: %t308 = load ptr, ptr %t0 %t309 = call i32 @fn_str_eq(ptr %t308, ptr @.str4568) %t310 = icmp ne i32 %t309, 0 br i1 %t310, label %then24, label %ifend26 then24: %t311 = load ptr, ptr %t1 %t312 = getelementptr inbounds %Cmp_Node, ptr %t311, i32 0, i32 7 %t313 = load ptr, ptr %t312 %t314 = getelementptr inbounds %LSlice, ptr %t313, i32 0, i32 0 %t315 = load ptr, ptr %t314 %t316 = getelementptr inbounds ptr, ptr %t315, i32 0 %t317 = load ptr, ptr %t316 %t318 = call ptr @fn_emit_expr(ptr %t317) store ptr %t318, ptr %t319 %t320 = load ptr, ptr %t1 %t321 = getelementptr inbounds %Cmp_Node, ptr %t320, i32 0, i32 7 %t322 = load ptr, ptr %t321 %t323 = getelementptr inbounds %LSlice, ptr %t322, i32 0, i32 0 %t324 = load ptr, ptr %t323 %t325 = getelementptr inbounds ptr, ptr %t324, i32 1 %t326 = load ptr, ptr %t325 %t327 = call ptr @fn_emit_expr(ptr %t326) store ptr %t327, ptr %t328 %t329 = load ptr, ptr %t319 %t330 = getelementptr inbounds %Cmp_Val, ptr %t329, i32 0, i32 0 %t331 = load ptr, ptr %t330 %t332 = call ptr @fn_str_concat(ptr @.str4569, ptr %t331) %t333 = call ptr @fn_str_concat(ptr %t332, ptr @.str4570) %t334 = load ptr, ptr %t328 %t335 = getelementptr inbounds %Cmp_Val, ptr %t334, i32 0, i32 0 %t336 = load ptr, ptr %t335 %t337 = call ptr @fn_str_concat(ptr %t333, ptr %t336) %t338 = call ptr @fn_emit_bind(ptr %t337) %t339 = call ptr @fn_val(ptr %t338, ptr @.str4571) store ptr %t339, ptr %retval br label %ret ifend26: %t340 = load ptr, ptr %t1 %t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 7 %t342 = load ptr, ptr %t341 %t343 = getelementptr inbounds %LSlice, ptr %t342, i32 0, i32 0 %t344 = load ptr, ptr %t343 %t345 = getelementptr inbounds ptr, ptr %t344, i32 0 %t346 = load ptr, ptr %t345 %t347 = call ptr @fn_emit_expr(ptr %t346) store ptr %t347, ptr %t348 %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 ptr, ptr %t353, i32 1 %t355 = load ptr, ptr %t354 %t356 = call ptr @fn_emit_expr(ptr %t355) store ptr %t356, ptr %t357 %t358 = load ptr, ptr %t348 %t359 = getelementptr inbounds %Cmp_Val, ptr %t358, i32 0, i32 0 %t360 = load ptr, ptr %t359 %t361 = call ptr @fn_str_concat(ptr @.str4572, ptr %t360) %t362 = call ptr @fn_str_concat(ptr %t361, ptr @.str4573) %t363 = load ptr, ptr %t357 %t364 = getelementptr inbounds %Cmp_Val, ptr %t363, i32 0, i32 0 %t365 = load ptr, ptr %t364 %t366 = call ptr @fn_str_concat(ptr %t362, ptr %t365) %t367 = call ptr @fn_emit_bind(ptr %t366) %t368 = call ptr @fn_val(ptr %t367, ptr @.str4574) store ptr %t368, ptr %retval br label %ret ret: %t369 = load ptr, ptr %retval ret ptr %t369 } 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 @fn_str_concat(ptr @.str4575, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str4576) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @fn_str_concat(ptr @.str4577, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str4578) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %t10 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_str_concat(ptr @.str4579, ptr %t11) %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str4580) %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 @fn_str_concat(ptr @.str4581, ptr %t4) %t6 = call ptr @fn_str_concat(ptr %t5, ptr @.str4582) %t7 = load ptr, ptr %t3 %t8 = call ptr @fn_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 @fn_str_concat(ptr @.str4583, ptr %t11) %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str4584) %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 @fn_str_eq(ptr %t3, ptr @.str4585) %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_str_eq(ptr %t7, ptr @.str4586) %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_str_eq(ptr %t14, ptr @.str4587) %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 @fn_str_eq(ptr %t23, ptr @.str4588) %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 @fn_str_eq(ptr %t27, ptr @.str4589) %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 @fn_str_eq(ptr %t34, ptr @.str4590) %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 @fn_str_eq(ptr %t41, ptr @.str4591) %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 @fn_str_eq(ptr %t49, ptr @.str4592) %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 @fn_str_eq(ptr %t53, ptr @.str4593) %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 @fn_str_eq(ptr %t60, ptr @.str4594) %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 @fn_str_eq(ptr %t67, ptr @.str4595) %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 @fn_str_eq(ptr %t71, ptr @.str4596) %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 @fn_str_concat(ptr @.str4597, ptr %t2) %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str4598) %t5 = load ptr, ptr %t1 %t6 = call ptr @fn_str_concat(ptr %t4, ptr %t5) %t7 = call ptr @fn_str_concat(ptr %t6, ptr @.str4599) %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 %t21 = alloca ptr %t31 = alloca ptr %t35 = alloca i32 %t40 = alloca ptr %t42 = alloca ptr %t44 = alloca ptr %t46 = alloca ptr %t62 = alloca ptr %t66 = alloca ptr %t70 = alloca ptr %t75 = alloca ptr %t80 = alloca ptr %t85 = alloca ptr %t90 = alloca ptr %t95 = alloca ptr %t100 = alloca ptr %t102 = alloca ptr %t104 = alloca ptr %t105 = alloca i32 %t111 = alloca ptr %t112 = alloca i32 %t113 = alloca i32 %t170 = alloca ptr %t189 = alloca ptr %t200 = 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 ptr, ptr %t5, i32 1 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 %t10 = icmp ne i32 %t9, 31 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: call void @fn_perr(ptr @.str4600) br label %ifend2 ifend2: %t13 = load ptr, ptr %t0 %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 ptr, ptr %t17, i32 0 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_emit_expr(ptr %t19) store ptr %t20, ptr %t21 %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 ptr, ptr %t26, i32 1 %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 %t31 %t32 = load ptr, ptr %t31 %t33 = call i64 @strlen(ptr %t32) %t34 = trunc i64 %t33 to i32 store i32 %t34, ptr %t35 %t36 = load ptr, ptr %t21 %t37 = getelementptr inbounds %Cmp_Val, ptr %t36, i32 0, i32 0 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_dt_epochday(ptr %t38) store ptr %t39, ptr %t40 %t41 = call ptr @fn_emit_alloca(ptr @.str4601) store ptr %t41, ptr %t42 %t43 = call ptr @fn_emit_alloca(ptr @.str4602) store ptr %t43, ptr %t44 %t45 = call ptr @fn_emit_alloca(ptr @.str4603) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t40 %t48 = call ptr @fn_str_concat(ptr @.str4604, ptr %t47) %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str4605) %t50 = load ptr, ptr %t42 %t51 = call ptr @fn_str_concat(ptr %t49, ptr %t50) %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str4606) %t53 = load ptr, ptr %t44 %t54 = call ptr @fn_str_concat(ptr %t52, ptr %t53) %t55 = call ptr @fn_str_concat(ptr %t54, ptr @.str4607) %t56 = load ptr, ptr %t46 %t57 = call ptr @fn_str_concat(ptr %t55, ptr %t56) %t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str4608) call void @fn_emit(ptr %t58) %t59 = load ptr, ptr %t42 %t60 = call ptr @fn_str_concat(ptr @.str4609, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t44 %t64 = call ptr @fn_str_concat(ptr @.str4610, ptr %t63) %t65 = call ptr @fn_emit_bind(ptr %t64) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t46 %t68 = call ptr @fn_str_concat(ptr @.str4611, ptr %t67) %t69 = call ptr @fn_emit_bind(ptr %t68) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t21 %t72 = getelementptr inbounds %Cmp_Val, ptr %t71, i32 0, i32 0 %t73 = load ptr, ptr %t72 %t74 = call ptr @fn_dt_secofday(ptr %t73) store ptr %t74, ptr %t75 %t76 = load ptr, ptr %t75 %t77 = call ptr @fn_str_concat(ptr @.str4612, ptr %t76) %t78 = call ptr @fn_str_concat(ptr %t77, ptr @.str4613) %t79 = call ptr @fn_emit_bind(ptr %t78) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t75 %t82 = call ptr @fn_str_concat(ptr @.str4614, ptr %t81) %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str4615) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_str_concat(ptr @.str4616, ptr %t86) %t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str4617) %t89 = call ptr @fn_emit_bind(ptr %t88) store ptr %t89, ptr %t90 %t91 = load ptr, ptr %t75 %t92 = call ptr @fn_str_concat(ptr @.str4618, ptr %t91) %t93 = call ptr @fn_str_concat(ptr %t92, ptr @.str4619) %t94 = call ptr @fn_emit_bind(ptr %t93) store ptr %t94, ptr %t95 %t96 = load ptr, ptr %t62 %t97 = call ptr @fn_str_concat(ptr @.str4620, ptr %t96) %t98 = call ptr @fn_str_concat(ptr %t97, ptr @.str4621) %t99 = call ptr @fn_emit_bind(ptr %t98) store ptr %t99, ptr %t100 %t101 = call ptr @fn_emit_str_const(ptr @.str4622) store ptr %t101, ptr %t102 %t103 = call ptr @fn_buf_new() store ptr %t103, ptr %t104 store i32 0, ptr %t105 br label %wcond3 wcond3: %t106 = load i32, ptr %t105 %t107 = load i32, ptr %t35 %t108 = icmp slt i32 %t106, %t107 %t109 = zext i1 %t108 to i32 %t110 = icmp ne i32 %t109, 0 br i1 %t110, label %wbody4, label %wend5 wbody4: store ptr null, ptr %t111 store i32 0, ptr %t112 store i32 0, ptr %t113 %t114 = load ptr, ptr %t31 %t115 = load i32, ptr %t35 %t116 = load i32, ptr %t105 %t117 = call i32 @fn_dt_tok_at(ptr %t114, i32 %t115, i32 %t116, ptr @.str4623, i32 4) %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then6, label %else7 then6: %t119 = load ptr, ptr %t62 store ptr %t119, ptr %t111 store i32 4, ptr %t112 store i32 4, ptr %t113 br label %ifend8 else7: %t120 = load ptr, ptr %t31 %t121 = load i32, ptr %t35 %t122 = load i32, ptr %t105 %t123 = call i32 @fn_dt_tok_at(ptr %t120, i32 %t121, i32 %t122, ptr @.str4624, i32 2) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then9, label %else10 then9: %t125 = load ptr, ptr %t100 store ptr %t125, ptr %t111 store i32 2, ptr %t112 store i32 2, ptr %t113 br label %ifend11 else10: %t126 = load ptr, ptr %t31 %t127 = load i32, ptr %t35 %t128 = load i32, ptr %t105 %t129 = call i32 @fn_dt_tok_at(ptr %t126, i32 %t127, i32 %t128, ptr @.str4625, i32 2) %t130 = icmp ne i32 %t129, 0 br i1 %t130, label %then12, label %else13 then12: %t131 = load ptr, ptr %t66 store ptr %t131, ptr %t111 store i32 2, ptr %t112 store i32 2, ptr %t113 br label %ifend14 else13: %t132 = load ptr, ptr %t31 %t133 = load i32, ptr %t35 %t134 = load i32, ptr %t105 %t135 = call i32 @fn_dt_tok_at(ptr %t132, i32 %t133, i32 %t134, ptr @.str4626, i32 2) %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then15, label %else16 then15: %t137 = load ptr, ptr %t70 store ptr %t137, ptr %t111 store i32 2, ptr %t112 store i32 2, ptr %t113 br label %ifend17 else16: %t138 = load ptr, ptr %t31 %t139 = load i32, ptr %t35 %t140 = load i32, ptr %t105 %t141 = call i32 @fn_dt_tok_at(ptr %t138, i32 %t139, i32 %t140, ptr @.str4627, i32 2) %t142 = icmp ne i32 %t141, 0 br i1 %t142, label %then18, label %else19 then18: %t143 = load ptr, ptr %t80 store ptr %t143, ptr %t111 store i32 2, ptr %t112 store i32 2, ptr %t113 br label %ifend20 else19: %t144 = load ptr, ptr %t31 %t145 = load i32, ptr %t35 %t146 = load i32, ptr %t105 %t147 = call i32 @fn_dt_tok_at(ptr %t144, i32 %t145, i32 %t146, ptr @.str4628, i32 2) %t148 = icmp ne i32 %t147, 0 br i1 %t148, label %then21, label %else22 then21: %t149 = load ptr, ptr %t90 store ptr %t149, ptr %t111 store i32 2, ptr %t112 store i32 2, ptr %t113 br label %ifend23 else22: %t150 = load ptr, ptr %t31 %t151 = load i32, ptr %t35 %t152 = load i32, ptr %t105 %t153 = call i32 @fn_dt_tok_at(ptr %t150, i32 %t151, i32 %t152, ptr @.str4629, i32 2) %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then24, label %ifend26 then24: %t155 = load ptr, ptr %t95 store ptr %t155, ptr %t111 store i32 2, ptr %t112 store i32 2, ptr %t113 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: %t156 = load ptr, ptr %t111 %t157 = icmp eq ptr %t156, null %t158 = zext i1 %t157 to i32 %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then27, label %else28 then27: %t160 = load ptr, ptr %t104 %t161 = load ptr, ptr %t31 %t162 = load i32, ptr %t105 %t163 = getelementptr inbounds i8, ptr %t161, i32 %t162 %t164 = load i8, ptr %t163 %t165 = zext i8 %t164 to i32 call void @fn_buf_putc(ptr %t160, i32 %t165) %t166 = load i32, ptr %t105 %t167 = add i32 %t166, 1 store i32 %t167, ptr %t105 br label %ifend29 else28: %t168 = load ptr, ptr %t104 %t169 = call ptr @fn_buf_str(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t170 %t172 = call i64 @strlen(ptr %t171) %t173 = trunc i64 %t172 to i32 %t174 = icmp sgt i32 %t173, 0 %t175 = zext i1 %t174 to i32 %t176 = icmp ne i32 %t175, 0 br i1 %t176, label %then30, label %ifend32 then30: %t177 = load ptr, ptr %t102 %t178 = load ptr, ptr %t170 %t179 = call ptr @fn_emit_str_const(ptr %t178) %t180 = call ptr @fn_dt_concat(ptr %t177, ptr %t179) store ptr %t180, ptr %t102 br label %ifend32 ifend32: %t181 = load ptr, ptr %t111 %t182 = call ptr @fn_str_concat(ptr @.str4630, ptr %t181) %t183 = call ptr @fn_str_concat(ptr %t182, ptr @.str4631) %t184 = load i32, ptr %t112 %t185 = call ptr @fn_int_str(i32 %t184) %t186 = call ptr @fn_str_concat(ptr %t183, ptr %t185) %t187 = call ptr @fn_str_concat(ptr %t186, ptr @.str4632) %t188 = call ptr @fn_emit_bind(ptr %t187) store ptr %t188, ptr %t189 %t190 = load ptr, ptr %t102 %t191 = load ptr, ptr %t189 %t192 = call ptr @fn_dt_concat(ptr %t190, ptr %t191) store ptr %t192, ptr %t102 %t193 = load ptr, ptr %t104 %t194 = getelementptr inbounds %Cmp_Buf, ptr %t193, i32 0, i32 1 store i32 0, ptr %t194 %t195 = load i32, ptr %t105 %t196 = load i32, ptr %t113 %t197 = add i32 %t195, %t196 store i32 %t197, ptr %t105 br label %ifend29 ifend29: br label %wcond3 wend5: %t198 = load ptr, ptr %t104 %t199 = call ptr @fn_buf_str(ptr %t198) store ptr %t199, ptr %t200 %t201 = load ptr, ptr %t200 %t202 = call i64 @strlen(ptr %t201) %t203 = trunc i64 %t202 to i32 %t204 = icmp sgt i32 %t203, 0 %t205 = zext i1 %t204 to i32 %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then33, label %ifend35 then33: %t207 = load ptr, ptr %t102 %t208 = load ptr, ptr %t200 %t209 = call ptr @fn_emit_str_const(ptr %t208) %t210 = call ptr @fn_dt_concat(ptr %t207, ptr %t209) store ptr %t210, ptr %t102 br label %ifend35 ifend35: %t211 = load ptr, ptr %t102 %t212 = call ptr @fn_val(ptr %t211, ptr @.str4633) store ptr %t212, ptr %retval br label %ret ret: %t213 = load ptr, ptr %retval ret ptr %t213 } define ptr @fn_emit_datetime_parse(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t21 = alloca ptr %t31 = alloca ptr %t35 = alloca i32 %t37 = alloca ptr %t40 = alloca ptr %t43 = alloca ptr %t46 = alloca ptr %t49 = alloca ptr %t52 = alloca ptr %t55 = alloca ptr %t57 = alloca i32 %t58 = alloca i32 %t64 = alloca ptr %t65 = alloca i32 %t66 = alloca i32 %t128 = alloca ptr %t140 = alloca ptr %t144 = alloca ptr %t148 = alloca ptr %t152 = alloca ptr %t156 = alloca ptr %t160 = alloca ptr %t171 = alloca ptr %t176 = alloca ptr %t181 = alloca ptr %t186 = alloca ptr %t193 = alloca ptr %t200 = alloca ptr %t207 = alloca ptr %t211 = alloca ptr %t216 = 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 ptr, ptr %t5, i32 1 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 %t10 = icmp ne i32 %t9, 31 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: call void @fn_perr(ptr @.str4634) br label %ifend2 ifend2: %t13 = load ptr, ptr %t0 %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 ptr, ptr %t17, i32 0 %t19 = load ptr, ptr %t18 %t20 = call ptr @fn_emit_expr(ptr %t19) store ptr %t20, ptr %t21 %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 ptr, ptr %t26, i32 1 %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 %t31 %t32 = load ptr, ptr %t31 %t33 = call i64 @strlen(ptr %t32) %t34 = trunc i64 %t33 to i32 store i32 %t34, ptr %t35 %t36 = call ptr @fn_emit_alloca(ptr @.str4635) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 call void @fn_store_at(ptr @.str4636, ptr @.str4637, ptr %t38) %t39 = call ptr @fn_emit_alloca(ptr @.str4638) store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 call void @fn_store_at(ptr @.str4639, ptr @.str4640, ptr %t41) %t42 = call ptr @fn_emit_alloca(ptr @.str4641) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 call void @fn_store_at(ptr @.str4642, ptr @.str4643, ptr %t44) %t45 = call ptr @fn_emit_alloca(ptr @.str4644) store ptr %t45, ptr %t46 %t47 = load ptr, ptr %t46 call void @fn_store_at(ptr @.str4645, ptr @.str4646, ptr %t47) %t48 = call ptr @fn_emit_alloca(ptr @.str4647) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 call void @fn_store_at(ptr @.str4648, ptr @.str4649, ptr %t50) %t51 = call ptr @fn_emit_alloca(ptr @.str4650) store ptr %t51, ptr %t52 %t53 = load ptr, ptr %t52 call void @fn_store_at(ptr @.str4651, ptr @.str4652, ptr %t53) %t54 = call ptr @fn_emit_alloca(ptr @.str4653) store ptr %t54, ptr %t55 %t56 = load ptr, ptr %t55 call void @fn_store_at(ptr @.str4654, ptr @.str4655, ptr %t56) store i32 0, ptr %t57 store i32 0, ptr %t58 br label %wcond3 wcond3: %t59 = load i32, ptr %t58 %t60 = load i32, ptr %t35 %t61 = icmp slt i32 %t59, %t60 %t62 = zext i1 %t61 to i32 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %wbody4, label %wend5 wbody4: store ptr null, ptr %t64 store i32 0, ptr %t65 store i32 0, ptr %t66 %t67 = load ptr, ptr %t31 %t68 = load i32, ptr %t35 %t69 = load i32, ptr %t58 %t70 = call i32 @fn_dt_tok_at(ptr %t67, i32 %t68, i32 %t69, ptr @.str4656, i32 4) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then6, label %else7 then6: %t72 = load ptr, ptr %t40 store ptr %t72, ptr %t64 store i32 4, ptr %t65 store i32 4, ptr %t66 br label %ifend8 else7: %t73 = load ptr, ptr %t31 %t74 = load i32, ptr %t35 %t75 = load i32, ptr %t58 %t76 = call i32 @fn_dt_tok_at(ptr %t73, i32 %t74, i32 %t75, ptr @.str4657, i32 2) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then9, label %else10 then9: %t78 = load ptr, ptr %t43 store ptr %t78, ptr %t64 store i32 2, ptr %t65 store i32 2, ptr %t66 br label %ifend11 else10: %t79 = load ptr, ptr %t31 %t80 = load i32, ptr %t35 %t81 = load i32, ptr %t58 %t82 = call i32 @fn_dt_tok_at(ptr %t79, i32 %t80, i32 %t81, ptr @.str4658, i32 2) %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then12, label %else13 then12: %t84 = load ptr, ptr %t46 store ptr %t84, ptr %t64 store i32 2, ptr %t65 store i32 2, ptr %t66 br label %ifend14 else13: %t85 = load ptr, ptr %t31 %t86 = load i32, ptr %t35 %t87 = load i32, ptr %t58 %t88 = call i32 @fn_dt_tok_at(ptr %t85, i32 %t86, i32 %t87, ptr @.str4659, i32 2) %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then15, label %else16 then15: %t90 = load ptr, ptr %t49 store ptr %t90, ptr %t64 store i32 2, ptr %t65 store i32 2, ptr %t66 br label %ifend17 else16: %t91 = load ptr, ptr %t31 %t92 = load i32, ptr %t35 %t93 = load i32, ptr %t58 %t94 = call i32 @fn_dt_tok_at(ptr %t91, i32 %t92, i32 %t93, ptr @.str4660, i32 2) %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then18, label %else19 then18: %t96 = load ptr, ptr %t52 store ptr %t96, ptr %t64 store i32 2, ptr %t65 store i32 2, ptr %t66 br label %ifend20 else19: %t97 = load ptr, ptr %t31 %t98 = load i32, ptr %t35 %t99 = load i32, ptr %t58 %t100 = call i32 @fn_dt_tok_at(ptr %t97, i32 %t98, i32 %t99, ptr @.str4661, i32 2) %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then21, label %ifend23 then21: %t102 = load ptr, ptr %t55 store ptr %t102, ptr %t64 store i32 2, ptr %t65 store i32 2, ptr %t66 br label %ifend23 ifend23: br label %ifend20 ifend20: br label %ifend17 ifend17: br label %ifend14 ifend14: br label %ifend11 ifend11: br label %ifend8 ifend8: %t103 = load ptr, ptr %t64 %t104 = icmp eq ptr %t103, null %t105 = zext i1 %t104 to i32 %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then24, label %else25 then24: %t107 = load i32, ptr %t57 %t108 = add i32 %t107, 1 store i32 %t108, ptr %t57 %t109 = load i32, ptr %t58 %t110 = add i32 %t109, 1 store i32 %t110, ptr %t58 br label %ifend26 else25: %t111 = load ptr, ptr %t21 %t112 = getelementptr inbounds %Cmp_Val, ptr %t111, i32 0, i32 0 %t113 = load ptr, ptr %t112 %t114 = call ptr @fn_str_concat(ptr @.str4662, ptr %t113) %t115 = call ptr @fn_str_concat(ptr %t114, ptr @.str4663) %t116 = load i32, ptr %t57 %t117 = call ptr @fn_itoa(i32 %t116) %t118 = call ptr @fn_str_concat(ptr %t115, ptr %t117) %t119 = call ptr @fn_str_concat(ptr %t118, ptr @.str4664) %t120 = load i32, ptr %t65 %t121 = call ptr @fn_int_str(i32 %t120) %t122 = call ptr @fn_str_concat(ptr %t119, ptr %t121) %t123 = call ptr @fn_str_concat(ptr %t122, ptr @.str4665) %t124 = load ptr, ptr %t37 %t125 = call ptr @fn_str_concat(ptr %t123, ptr %t124) %t126 = call ptr @fn_str_concat(ptr %t125, ptr @.str4666) %t127 = call ptr @fn_emit_bind(ptr %t126) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t128 %t130 = load ptr, ptr %t64 call void @fn_store_at(ptr @.str4667, ptr %t129, ptr %t130) %t131 = load i32, ptr %t57 %t132 = load i32, ptr %t65 %t133 = add i32 %t131, %t132 store i32 %t133, ptr %t57 %t134 = load i32, ptr %t58 %t135 = load i32, ptr %t66 %t136 = add i32 %t134, %t135 store i32 %t136, ptr %t58 br label %ifend26 ifend26: br label %wcond3 wend5: %t137 = load ptr, ptr %t40 %t138 = call ptr @fn_str_concat(ptr @.str4668, ptr %t137) %t139 = call ptr @fn_emit_bind(ptr %t138) store ptr %t139, ptr %t140 %t141 = load ptr, ptr %t43 %t142 = call ptr @fn_str_concat(ptr @.str4669, ptr %t141) %t143 = call ptr @fn_emit_bind(ptr %t142) store ptr %t143, ptr %t144 %t145 = load ptr, ptr %t46 %t146 = call ptr @fn_str_concat(ptr @.str4670, ptr %t145) %t147 = call ptr @fn_emit_bind(ptr %t146) store ptr %t147, ptr %t148 %t149 = load ptr, ptr %t49 %t150 = call ptr @fn_str_concat(ptr @.str4671, ptr %t149) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t52 %t154 = call ptr @fn_str_concat(ptr @.str4672, ptr %t153) %t155 = call ptr @fn_emit_bind(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t55 %t158 = call ptr @fn_str_concat(ptr @.str4673, ptr %t157) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t140 %t162 = call ptr @fn_str_concat(ptr @.str4674, ptr %t161) %t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str4675) %t164 = load ptr, ptr %t144 %t165 = call ptr @fn_str_concat(ptr %t163, ptr %t164) %t166 = call ptr @fn_str_concat(ptr %t165, ptr @.str4676) %t167 = load ptr, ptr %t148 %t168 = call ptr @fn_str_concat(ptr %t166, ptr %t167) %t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str4677) %t170 = call ptr @fn_emit_bind(ptr %t169) store ptr %t170, ptr %t171 %t172 = load ptr, ptr %t171 %t173 = call ptr @fn_str_concat(ptr @.str4678, ptr %t172) %t174 = call ptr @fn_str_concat(ptr %t173, ptr @.str4679) %t175 = call ptr @fn_emit_bind(ptr %t174) store ptr %t175, ptr %t176 %t177 = load ptr, ptr %t152 %t178 = call ptr @fn_str_concat(ptr @.str4680, ptr %t177) %t179 = call ptr @fn_str_concat(ptr %t178, ptr @.str4681) %t180 = call ptr @fn_emit_bind(ptr %t179) store ptr %t180, ptr %t181 %t182 = load ptr, ptr %t156 %t183 = call ptr @fn_str_concat(ptr @.str4682, ptr %t182) %t184 = call ptr @fn_str_concat(ptr %t183, ptr @.str4683) %t185 = call ptr @fn_emit_bind(ptr %t184) store ptr %t185, ptr %t186 %t187 = load ptr, ptr %t176 %t188 = call ptr @fn_str_concat(ptr @.str4684, ptr %t187) %t189 = call ptr @fn_str_concat(ptr %t188, ptr @.str4685) %t190 = load ptr, ptr %t181 %t191 = call ptr @fn_str_concat(ptr %t189, ptr %t190) %t192 = call ptr @fn_emit_bind(ptr %t191) store ptr %t192, ptr %t193 %t194 = load ptr, ptr %t193 %t195 = call ptr @fn_str_concat(ptr @.str4686, ptr %t194) %t196 = call ptr @fn_str_concat(ptr %t195, ptr @.str4687) %t197 = load ptr, ptr %t186 %t198 = call ptr @fn_str_concat(ptr %t196, ptr %t197) %t199 = call ptr @fn_emit_bind(ptr %t198) store ptr %t199, ptr %t200 %t201 = load ptr, ptr %t200 %t202 = call ptr @fn_str_concat(ptr @.str4688, ptr %t201) %t203 = call ptr @fn_str_concat(ptr %t202, ptr @.str4689) %t204 = load ptr, ptr %t160 %t205 = call ptr @fn_str_concat(ptr %t203, ptr %t204) %t206 = call ptr @fn_emit_bind(ptr %t205) store ptr %t206, ptr %t207 %t208 = load ptr, ptr %t37 %t209 = call ptr @fn_str_concat(ptr @.str4690, ptr %t208) %t210 = call ptr @fn_emit_bind(ptr %t209) store ptr %t210, ptr %t211 %t212 = load ptr, ptr %t211 %t213 = call ptr @fn_str_concat(ptr @.str4691, ptr %t212) %t214 = call ptr @fn_str_concat(ptr %t213, ptr @.str4692) %t215 = call ptr @fn_emit_bind(ptr %t214) store ptr %t215, ptr %t216 %t217 = load ptr, ptr %t216 %t218 = call ptr @fn_str_concat(ptr @.str4693, ptr %t217) %t219 = call ptr @fn_str_concat(ptr %t218, ptr @.str4694) %t220 = load ptr, ptr %t207 %t221 = call ptr @fn_str_concat(ptr %t219, ptr %t220) %t222 = call ptr @fn_emit_bind(ptr %t221) %t223 = call ptr @fn_val(ptr %t222, ptr @.str4695) store ptr %t223, ptr %retval br label %ret ret: %t224 = load ptr, ptr %retval ret ptr %t224 } define ptr @fn_emit_datetime_ns(ptr %arg_meth, ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr %t23 = alloca ptr %t32 = alloca ptr %t41 = alloca ptr %t50 = alloca ptr %t59 = alloca ptr %t68 = alloca ptr %t85 = alloca ptr %t90 = alloca ptr %t97 = alloca ptr %t104 = alloca ptr %t111 = alloca ptr %t118 = alloca ptr %t139 = alloca ptr %t156 = alloca ptr %t165 = alloca ptr %t188 = alloca ptr %t206 = alloca ptr %t224 = alloca ptr %t242 = alloca ptr %t247 = alloca ptr %t252 = alloca ptr %t257 = alloca ptr %t262 = alloca ptr %t279 = alloca ptr %t284 = alloca ptr %t301 = alloca ptr %t306 = alloca ptr %t311 = alloca ptr %t325 = alloca ptr %t330 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4696) %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 @fn_str_eq(ptr %t7, ptr @.str4697) %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 @fn_str_eq(ptr %t12, ptr @.str4698) %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 ptr, ptr %t19, i32 0 %t21 = load ptr, ptr %t20 %t22 = call ptr @fn_emit_expr(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 0 %t28 = load ptr, ptr %t27 %t29 = getelementptr inbounds ptr, ptr %t28, i32 1 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_emit_expr(ptr %t30) store ptr %t31, ptr %t32 %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 ptr, ptr %t37, i32 2 %t39 = load ptr, ptr %t38 %t40 = call ptr @fn_emit_expr(ptr %t39) store ptr %t40, ptr %t41 %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 ptr, ptr %t46, i32 3 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_emit_expr(ptr %t48) store ptr %t49, ptr %t50 %t51 = load ptr, ptr %t1 %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 0 %t55 = load ptr, ptr %t54 %t56 = getelementptr inbounds ptr, ptr %t55, i32 4 %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 ptr, ptr %t64, i32 5 %t66 = load ptr, ptr %t65 %t67 = call ptr @fn_emit_expr(ptr %t66) store ptr %t67, ptr %t68 %t69 = load ptr, ptr %t23 %t70 = getelementptr inbounds %Cmp_Val, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 %t72 = call ptr @fn_str_concat(ptr @.str4699, ptr %t71) %t73 = call ptr @fn_str_concat(ptr %t72, ptr @.str4700) %t74 = load ptr, ptr %t32 %t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0 %t76 = load ptr, ptr %t75 %t77 = call ptr @fn_str_concat(ptr %t73, ptr %t76) %t78 = call ptr @fn_str_concat(ptr %t77, ptr @.str4701) %t79 = load ptr, ptr %t41 %t80 = getelementptr inbounds %Cmp_Val, ptr %t79, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = call ptr @fn_str_concat(ptr %t78, ptr %t81) %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str4702) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_str_concat(ptr @.str4703, ptr %t86) %t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str4704) %t89 = call ptr @fn_emit_bind(ptr %t88) store ptr %t89, ptr %t90 %t91 = load ptr, ptr %t50 %t92 = getelementptr inbounds %Cmp_Val, ptr %t91, i32 0, i32 0 %t93 = load ptr, ptr %t92 %t94 = call ptr @fn_str_concat(ptr @.str4705, ptr %t93) %t95 = call ptr @fn_str_concat(ptr %t94, ptr @.str4706) %t96 = call ptr @fn_emit_bind(ptr %t95) store ptr %t96, ptr %t97 %t98 = load ptr, ptr %t59 %t99 = getelementptr inbounds %Cmp_Val, ptr %t98, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = call ptr @fn_str_concat(ptr @.str4707, ptr %t100) %t102 = call ptr @fn_str_concat(ptr %t101, ptr @.str4708) %t103 = call ptr @fn_emit_bind(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t90 %t106 = call ptr @fn_str_concat(ptr @.str4709, ptr %t105) %t107 = call ptr @fn_str_concat(ptr %t106, ptr @.str4710) %t108 = load ptr, ptr %t97 %t109 = call ptr @fn_str_concat(ptr %t107, ptr %t108) %t110 = call ptr @fn_emit_bind(ptr %t109) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t111 %t113 = call ptr @fn_str_concat(ptr @.str4711, ptr %t112) %t114 = call ptr @fn_str_concat(ptr %t113, ptr @.str4712) %t115 = load ptr, ptr %t104 %t116 = call ptr @fn_str_concat(ptr %t114, ptr %t115) %t117 = call ptr @fn_emit_bind(ptr %t116) store ptr %t117, ptr %t118 %t119 = load ptr, ptr %t118 %t120 = call ptr @fn_str_concat(ptr @.str4713, ptr %t119) %t121 = call ptr @fn_str_concat(ptr %t120, ptr @.str4714) %t122 = load ptr, ptr %t68 %t123 = getelementptr inbounds %Cmp_Val, ptr %t122, i32 0, i32 0 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_str_concat(ptr %t121, ptr %t124) %t126 = call ptr @fn_emit_bind(ptr %t125) %t127 = call ptr @fn_val(ptr %t126, ptr @.str4715) store ptr %t127, ptr %retval br label %ret ifend8: %t128 = load ptr, ptr %t0 %t129 = call i32 @fn_str_eq(ptr %t128, ptr @.str4716) %t130 = icmp ne i32 %t129, 0 br i1 %t130, label %then9, label %ifend11 then9: %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 ptr, ptr %t135, 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 @fn_dt_epochday(ptr %t142) %t144 = call ptr @fn_val(ptr %t143, ptr @.str4717) store ptr %t144, ptr %retval br label %ret ifend11: %t145 = load ptr, ptr %t0 %t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str4718) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then12, label %ifend14 then12: %t148 = load ptr, ptr %t1 %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 7 %t150 = load ptr, ptr %t149 %t151 = getelementptr inbounds %LSlice, ptr %t150, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = getelementptr inbounds ptr, ptr %t152, i32 0 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_emit_expr(ptr %t154) store ptr %t155, ptr %t156 %t157 = load ptr, ptr %t1 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 7 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 0 %t161 = load ptr, ptr %t160 %t162 = getelementptr inbounds ptr, ptr %t161, i32 1 %t163 = load ptr, ptr %t162 %t164 = call ptr @fn_emit_expr(ptr %t163) store ptr %t164, ptr %t165 %t166 = load ptr, ptr %t156 %t167 = getelementptr inbounds %Cmp_Val, ptr %t166, i32 0, i32 0 %t168 = load ptr, ptr %t167 %t169 = call ptr @fn_str_concat(ptr @.str4719, ptr %t168) %t170 = call ptr @fn_str_concat(ptr %t169, ptr @.str4720) %t171 = load ptr, ptr %t165 %t172 = getelementptr inbounds %Cmp_Val, ptr %t171, i32 0, i32 0 %t173 = load ptr, ptr %t172 %t174 = call ptr @fn_str_concat(ptr %t170, ptr %t173) %t175 = call ptr @fn_emit_bind(ptr %t174) %t176 = call ptr @fn_val(ptr %t175, ptr @.str4721) store ptr %t176, ptr %retval br label %ret ifend14: %t177 = load ptr, ptr %t0 %t178 = call i32 @fn_str_eq(ptr %t177, ptr @.str4722) %t179 = icmp ne i32 %t178, 0 br i1 %t179, label %then15, label %ifend17 then15: %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 ptr, ptr %t184, i32 0 %t186 = load ptr, ptr %t185 %t187 = call ptr @fn_emit_expr(ptr %t186) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %Cmp_Val, ptr %t189, i32 0, i32 0 %t191 = load ptr, ptr %t190 %t192 = call ptr @fn_dt_epochday(ptr %t191) %t193 = call ptr @fn_date_component(ptr %t192, i32 0) %t194 = call ptr @fn_val(ptr %t193, ptr @.str4723) store ptr %t194, ptr %retval br label %ret ifend17: %t195 = load ptr, ptr %t0 %t196 = call i32 @fn_str_eq(ptr %t195, ptr @.str4724) %t197 = icmp ne i32 %t196, 0 br i1 %t197, label %then18, label %ifend20 then18: %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 0 %t202 = load ptr, ptr %t201 %t203 = getelementptr inbounds ptr, ptr %t202, i32 0 %t204 = load ptr, ptr %t203 %t205 = call ptr @fn_emit_expr(ptr %t204) store ptr %t205, ptr %t206 %t207 = load ptr, ptr %t206 %t208 = getelementptr inbounds %Cmp_Val, ptr %t207, i32 0, i32 0 %t209 = load ptr, ptr %t208 %t210 = call ptr @fn_dt_epochday(ptr %t209) %t211 = call ptr @fn_date_component(ptr %t210, i32 1) %t212 = call ptr @fn_val(ptr %t211, ptr @.str4725) store ptr %t212, ptr %retval br label %ret ifend20: %t213 = load ptr, ptr %t0 %t214 = call i32 @fn_str_eq(ptr %t213, ptr @.str4726) %t215 = icmp ne i32 %t214, 0 br i1 %t215, label %then21, label %ifend23 then21: %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 ptr, ptr %t220, i32 0 %t222 = load ptr, ptr %t221 %t223 = call ptr @fn_emit_expr(ptr %t222) store ptr %t223, ptr %t224 %t225 = load ptr, ptr %t224 %t226 = getelementptr inbounds %Cmp_Val, ptr %t225, i32 0, i32 0 %t227 = load ptr, ptr %t226 %t228 = call ptr @fn_dt_epochday(ptr %t227) %t229 = call ptr @fn_date_component(ptr %t228, i32 2) %t230 = call ptr @fn_val(ptr %t229, ptr @.str4727) store ptr %t230, ptr %retval br label %ret ifend23: %t231 = load ptr, ptr %t0 %t232 = call i32 @fn_str_eq(ptr %t231, ptr @.str4728) %t233 = icmp ne i32 %t232, 0 br i1 %t233, label %then24, label %ifend26 then24: %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 ptr, ptr %t238, i32 0 %t240 = load ptr, ptr %t239 %t241 = call ptr @fn_emit_expr(ptr %t240) store ptr %t241, ptr %t242 %t243 = load ptr, ptr %t242 %t244 = getelementptr inbounds %Cmp_Val, ptr %t243, i32 0, i32 0 %t245 = load ptr, ptr %t244 %t246 = call ptr @fn_dt_epochday(ptr %t245) store ptr %t246, ptr %t247 %t248 = load ptr, ptr %t247 %t249 = call ptr @fn_str_concat(ptr @.str4729, ptr %t248) %t250 = call ptr @fn_str_concat(ptr %t249, ptr @.str4730) %t251 = call ptr @fn_emit_bind(ptr %t250) store ptr %t251, ptr %t252 %t253 = load ptr, ptr %t252 %t254 = call ptr @fn_str_concat(ptr @.str4731, ptr %t253) %t255 = call ptr @fn_str_concat(ptr %t254, ptr @.str4732) %t256 = call ptr @fn_emit_bind(ptr %t255) store ptr %t256, ptr %t257 %t258 = load ptr, ptr %t257 %t259 = call ptr @fn_str_concat(ptr @.str4733, ptr %t258) %t260 = call ptr @fn_str_concat(ptr %t259, ptr @.str4734) %t261 = call ptr @fn_emit_bind(ptr %t260) store ptr %t261, ptr %t262 %t263 = load ptr, ptr %t262 %t264 = call ptr @fn_str_concat(ptr @.str4735, ptr %t263) %t265 = call ptr @fn_str_concat(ptr %t264, ptr @.str4736) %t266 = call ptr @fn_emit_bind(ptr %t265) %t267 = call ptr @fn_val(ptr %t266, ptr @.str4737) store ptr %t267, ptr %retval br label %ret ifend26: %t268 = load ptr, ptr %t0 %t269 = call i32 @fn_str_eq(ptr %t268, ptr @.str4738) %t270 = icmp ne i32 %t269, 0 br i1 %t270, label %then27, label %ifend29 then27: %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 ptr, ptr %t275, i32 0 %t277 = load ptr, ptr %t276 %t278 = call ptr @fn_emit_expr(ptr %t277) store ptr %t278, ptr %t279 %t280 = load ptr, ptr %t279 %t281 = getelementptr inbounds %Cmp_Val, ptr %t280, i32 0, i32 0 %t282 = load ptr, ptr %t281 %t283 = call ptr @fn_dt_secofday(ptr %t282) store ptr %t283, ptr %t284 %t285 = load ptr, ptr %t284 %t286 = call ptr @fn_str_concat(ptr @.str4739, ptr %t285) %t287 = call ptr @fn_str_concat(ptr %t286, ptr @.str4740) %t288 = call ptr @fn_emit_bind(ptr %t287) %t289 = call ptr @fn_val(ptr %t288, ptr @.str4741) store ptr %t289, ptr %retval br label %ret ifend29: %t290 = load ptr, ptr %t0 %t291 = call i32 @fn_str_eq(ptr %t290, ptr @.str4742) %t292 = icmp ne i32 %t291, 0 br i1 %t292, label %then30, label %ifend32 then30: %t293 = load ptr, ptr %t1 %t294 = getelementptr inbounds %Cmp_Node, ptr %t293, i32 0, i32 7 %t295 = load ptr, ptr %t294 %t296 = getelementptr inbounds %LSlice, ptr %t295, i32 0, i32 0 %t297 = load ptr, ptr %t296 %t298 = getelementptr inbounds ptr, ptr %t297, i32 0 %t299 = load ptr, ptr %t298 %t300 = call ptr @fn_emit_expr(ptr %t299) store ptr %t300, ptr %t301 %t302 = load ptr, ptr %t301 %t303 = getelementptr inbounds %Cmp_Val, ptr %t302, i32 0, i32 0 %t304 = load ptr, ptr %t303 %t305 = call ptr @fn_dt_secofday(ptr %t304) store ptr %t305, ptr %t306 %t307 = load ptr, ptr %t306 %t308 = call ptr @fn_str_concat(ptr @.str4743, ptr %t307) %t309 = call ptr @fn_str_concat(ptr %t308, ptr @.str4744) %t310 = call ptr @fn_emit_bind(ptr %t309) store ptr %t310, ptr %t311 %t312 = load ptr, ptr %t311 %t313 = call ptr @fn_str_concat(ptr @.str4745, ptr %t312) %t314 = call ptr @fn_str_concat(ptr %t313, ptr @.str4746) %t315 = call ptr @fn_emit_bind(ptr %t314) %t316 = call ptr @fn_val(ptr %t315, ptr @.str4747) store ptr %t316, ptr %retval br label %ret ifend32: %t317 = load ptr, ptr %t1 %t318 = getelementptr inbounds %Cmp_Node, ptr %t317, i32 0, i32 7 %t319 = load ptr, ptr %t318 %t320 = getelementptr inbounds %LSlice, ptr %t319, i32 0, i32 0 %t321 = load ptr, ptr %t320 %t322 = getelementptr inbounds ptr, ptr %t321, i32 0 %t323 = load ptr, ptr %t322 %t324 = call ptr @fn_emit_expr(ptr %t323) store ptr %t324, ptr %t325 %t326 = load ptr, ptr %t325 %t327 = getelementptr inbounds %Cmp_Val, ptr %t326, i32 0, i32 0 %t328 = load ptr, ptr %t327 %t329 = call ptr @fn_dt_secofday(ptr %t328) store ptr %t329, ptr %t330 %t331 = load ptr, ptr %t330 %t332 = call ptr @fn_str_concat(ptr @.str4748, ptr %t331) %t333 = call ptr @fn_str_concat(ptr %t332, ptr @.str4749) %t334 = call ptr @fn_emit_bind(ptr %t333) %t335 = call ptr @fn_val(ptr %t334, ptr @.str4750) store ptr %t335, ptr %retval br label %ret ret: %t336 = load ptr, ptr %retval ret ptr %t336 } define void @fn_emit_datetime_prelude() { entry: 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) 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) 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) call void @fn_emith(ptr @.str4801) call void @fn_emith(ptr @.str4802) call void @fn_emith(ptr @.str4803) call void @fn_emith(ptr @.str4804) call void @fn_emith(ptr @.str4805) call void @fn_emith(ptr @.str4806) call void @fn_emith(ptr @.str4807) call void @fn_emith(ptr @.str4808) call void @fn_emith(ptr @.str4809) call void @fn_emith(ptr @.str4810) call void @fn_emith(ptr @.str4811) call void @fn_emith(ptr @.str4812) call void @fn_emith(ptr @.str4813) call void @fn_emith(ptr @.str4814) call void @fn_emith(ptr @.str4815) call void @fn_emith(ptr @.str4816) call void @fn_emith(ptr @.str4817) call void @fn_emith(ptr @.str4818) call void @fn_emith(ptr @.str4819) call void @fn_emith(ptr @.str4820) call void @fn_emith(ptr @.str4821) call void @fn_emith(ptr @.str4822) call void @fn_emith(ptr @.str4823) call void @fn_emith(ptr @.str4824) call void @fn_emith(ptr @.str4825) call void @fn_emith(ptr @.str4826) call void @fn_emith(ptr @.str4827) call void @fn_emith(ptr @.str4828) call void @fn_emith(ptr @.str4829) call void @fn_emith(ptr @.str4830) call void @fn_emith(ptr @.str4831) call void @fn_emith(ptr @.str4832) call void @fn_emith(ptr @.str4833) call void @fn_emith(ptr @.str4834) call void @fn_emith(ptr @.str4835) call void @fn_emith(ptr @.str4836) call void @fn_emith(ptr @.str4837) call void @fn_emith(ptr @.str4838) call void @fn_emith(ptr @.str4839) 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) 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 @fn_str_eq(ptr %t4, ptr @.str4849) %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 @fn_str_eq(ptr %t8, ptr @.str4850) %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 @fn_str_eq(ptr %t15, ptr @.str4851) %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 @fn_str_eq(ptr %t22, ptr @.str4852) %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 %t22 = alloca ptr %t37 = alloca ptr %t39 = alloca ptr %t48 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4853) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: %t5 = call ptr @fn_emit_bind(ptr @.str4854) %t6 = call ptr @fn_val(ptr %t5, ptr @.str4855) store ptr %t6, ptr %retval br label %ret ifend2: %t7 = load ptr, ptr %t0 %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str4856) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str4857) %t10 = call ptr @fn_val(ptr @.str4858, ptr @.str4859) store ptr %t10, ptr %retval br label %ret ifend5: %t11 = load ptr, ptr %t0 %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str4860) %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 ptr, ptr %t18, i32 0 %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 @fn_str_concat(ptr @.str4861, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str4862) call void @fn_emit(ptr %t27) %t28 = call ptr @fn_val(ptr @.str4863, ptr @.str4864) store ptr %t28, ptr %retval br label %ret ifend8: %t29 = load ptr, ptr %t1 %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 0 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds ptr, ptr %t33, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_emit_expr(ptr %t35) store ptr %t36, ptr %t37 %t38 = call ptr @fn_emit_bind(ptr @.str4865) store ptr %t38, ptr %t39 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_str_concat(ptr @.str4866, ptr %t40) %t42 = call ptr @fn_str_concat(ptr %t41, ptr @.str4867) %t43 = load ptr, ptr %t37 %t44 = getelementptr inbounds %Cmp_Val, ptr %t43, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_str_concat(ptr %t42, ptr %t45) %t47 = call ptr @fn_emit_bind(ptr %t46) store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_str_concat(ptr @.str4868, ptr %t49) %t51 = call ptr @fn_str_concat(ptr %t50, ptr @.str4869) call void @fn_emit(ptr %t51) %t52 = call ptr @fn_val(ptr @.str4870, ptr @.str4871) store ptr %t52, ptr %retval br label %ret ret: %t53 = load ptr, ptr %retval ret ptr %t53 } 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 @fn_str_eq(ptr %t3, ptr @.str4872) %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_str_eq(ptr %t7, ptr @.str4873) %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_str_eq(ptr %t14, ptr @.str4874) %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 @fn_str_eq(ptr %t22, ptr @.str4875) %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 @fn_str_eq(ptr %t26, ptr @.str4876) %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 @fn_str_eq(ptr %t33, ptr @.str4877) %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 @fn_str_concat(ptr @.str4878, ptr %t2) %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str4879) %t5 = load ptr, ptr %t1 %t6 = call ptr @fn_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 @fn_str_concat(ptr @.str4880, ptr %t9) %t11 = call ptr @fn_str_concat(ptr %t10, ptr @.str4881) %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 @fn_str_concat(ptr @.str4882, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str4883) %t6 = call ptr @fn_emit_bind(ptr %t5) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t1 %t9 = call ptr @fn_str_concat(ptr @.str4884, ptr %t8) %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str4885) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t7 %t14 = call ptr @fn_str_concat(ptr @.str4886, ptr %t13) %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str4887) %t16 = load ptr, ptr %t12 %t17 = call ptr @fn_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 @fn_str_concat(ptr @.str4888, ptr %t20) %t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str4889) %t23 = load ptr, ptr %t2 %t24 = call ptr @fn_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 @fn_str_concat(ptr @.str4890, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str4891) %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_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 @fn_str_concat(ptr @.str4892, ptr %t10) %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str4893) %t13 = load ptr, ptr %t2 %t14 = call ptr @fn_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 @fn_str_concat(ptr @.str4894, ptr %t17) %t19 = call ptr @fn_str_concat(ptr %t18, ptr @.str4895) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t0 %t23 = call ptr @fn_str_concat(ptr @.str4896, ptr %t22) %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str4897) %t25 = load ptr, ptr %t21 %t26 = call ptr @fn_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 %t13 = alloca ptr %t22 = alloca ptr %t31 = alloca ptr %t54 = alloca ptr %t63 = alloca ptr %t72 = alloca ptr %t81 = alloca ptr %t92 = alloca ptr %t99 = alloca ptr %t118 = alloca ptr %t127 = alloca ptr %t134 = alloca ptr %t141 = alloca ptr %t160 = alloca ptr %t169 = alloca ptr %t178 = alloca ptr %t191 = alloca ptr %t204 = alloca ptr %t217 = alloca ptr %t234 = alloca ptr %t243 = alloca ptr %t249 = alloca ptr %t254 = alloca ptr %t259 = alloca ptr %t264 = alloca ptr %t271 = alloca ptr %t276 = alloca ptr %t283 = alloca ptr %t288 = alloca ptr %t295 = alloca ptr %t300 = alloca ptr %t314 = alloca ptr %t323 = alloca ptr %t328 = alloca ptr %t333 = alloca ptr %t338 = alloca ptr %t342 = alloca ptr %t351 = alloca ptr %t356 = alloca ptr %t363 = alloca ptr %t367 = alloca ptr %t376 = alloca ptr %t381 = alloca ptr %t388 = alloca ptr %t392 = alloca ptr %t401 = alloca ptr %t406 = alloca ptr %t413 = alloca ptr store ptr %arg_meth, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str4898) %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 ptr, ptr %t9, i32 0 %t11 = load ptr, ptr %t10 %t12 = call ptr @fn_emit_expr(ptr %t11) store ptr %t12, ptr %t13 %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 ptr, ptr %t18, i32 1 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_emit_expr(ptr %t20) store ptr %t21, ptr %t22 %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 0 %t27 = load ptr, ptr %t26 %t28 = getelementptr inbounds ptr, ptr %t27, i32 2 %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_emit_expr(ptr %t29) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t13 %t33 = getelementptr inbounds %Cmp_Val, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = load ptr, ptr %t22 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t31 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_color_pack(ptr %t34, ptr %t37, ptr %t40) %t42 = call ptr @fn_val(ptr %t41, ptr @.str4899) store ptr %t42, ptr %retval br label %ret ifend2: %t43 = load ptr, ptr %t0 %t44 = call i32 @fn_str_eq(ptr %t43, ptr @.str4900) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then3, label %ifend5 then3: %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 ptr, ptr %t50, i32 0 %t52 = load ptr, ptr %t51 %t53 = call ptr @fn_emit_expr(ptr %t52) 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 ptr, ptr %t59, i32 1 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_emit_expr(ptr %t61) store ptr %t62, ptr %t63 %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 ptr, ptr %t68, i32 2 %t70 = load ptr, ptr %t69 %t71 = call ptr @fn_emit_expr(ptr %t70) store ptr %t71, ptr %t72 %t73 = load ptr, ptr %t1 %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 0 %t77 = load ptr, ptr %t76 %t78 = getelementptr inbounds ptr, ptr %t77, i32 3 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_emit_expr(ptr %t79) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t54 %t83 = getelementptr inbounds %Cmp_Val, ptr %t82, i32 0, i32 0 %t84 = load ptr, ptr %t83 %t85 = load ptr, ptr %t63 %t86 = getelementptr inbounds %Cmp_Val, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = load ptr, ptr %t72 %t89 = getelementptr inbounds %Cmp_Val, ptr %t88, i32 0, i32 0 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_color_pack(ptr %t84, ptr %t87, ptr %t90) store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t81 %t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 0 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_str_concat(ptr @.str4901, ptr %t95) %t97 = call ptr @fn_str_concat(ptr %t96, ptr @.str4902) %t98 = call ptr @fn_emit_bind(ptr %t97) store ptr %t98, ptr %t99 %t100 = load ptr, ptr %t92 %t101 = call ptr @fn_str_concat(ptr @.str4903, ptr %t100) %t102 = call ptr @fn_str_concat(ptr %t101, ptr @.str4904) %t103 = load ptr, ptr %t99 %t104 = call ptr @fn_str_concat(ptr %t102, ptr %t103) %t105 = call ptr @fn_emit_bind(ptr %t104) %t106 = call ptr @fn_val(ptr %t105, ptr @.str4905) store ptr %t106, ptr %retval br label %ret ifend5: %t107 = load ptr, ptr %t0 %t108 = call i32 @fn_str_eq(ptr %t107, ptr @.str4906) %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then6, label %ifend8 then6: %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 ptr, ptr %t114, i32 0 %t116 = load ptr, ptr %t115 %t117 = call ptr @fn_emit_expr(ptr %t116) store ptr %t117, ptr %t118 %t119 = load ptr, ptr %t1 %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 0 %t123 = load ptr, ptr %t122 %t124 = getelementptr inbounds ptr, ptr %t123, i32 1 %t125 = load ptr, ptr %t124 %t126 = call ptr @fn_emit_expr(ptr %t125) store ptr %t126, ptr %t127 %t128 = load ptr, ptr %t118 %t129 = getelementptr inbounds %Cmp_Val, ptr %t128, i32 0, i32 0 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_str_concat(ptr @.str4907, ptr %t130) %t132 = call ptr @fn_str_concat(ptr %t131, ptr @.str4908) %t133 = call ptr @fn_emit_bind(ptr %t132) store ptr %t133, ptr %t134 %t135 = load ptr, ptr %t127 %t136 = getelementptr inbounds %Cmp_Val, ptr %t135, i32 0, i32 0 %t137 = load ptr, ptr %t136 %t138 = call ptr @fn_str_concat(ptr @.str4909, ptr %t137) %t139 = call ptr @fn_str_concat(ptr %t138, ptr @.str4910) %t140 = call ptr @fn_emit_bind(ptr %t139) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t134 %t143 = call ptr @fn_str_concat(ptr @.str4911, ptr %t142) %t144 = call ptr @fn_str_concat(ptr %t143, ptr @.str4912) %t145 = load ptr, ptr %t141 %t146 = call ptr @fn_str_concat(ptr %t144, ptr %t145) %t147 = call ptr @fn_emit_bind(ptr %t146) %t148 = call ptr @fn_val(ptr %t147, ptr @.str4913) store ptr %t148, ptr %retval br label %ret ifend8: %t149 = load ptr, ptr %t0 %t150 = call i32 @fn_str_eq(ptr %t149, ptr @.str4914) %t151 = icmp ne i32 %t150, 0 br i1 %t151, label %then9, label %ifend11 then9: %t152 = load ptr, ptr %t1 %t153 = getelementptr inbounds %Cmp_Node, ptr %t152, i32 0, i32 7 %t154 = load ptr, ptr %t153 %t155 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 0 %t156 = load ptr, ptr %t155 %t157 = getelementptr inbounds ptr, ptr %t156, i32 0 %t158 = load ptr, ptr %t157 %t159 = call ptr @fn_emit_expr(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t1 %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 0 %t165 = load ptr, ptr %t164 %t166 = getelementptr inbounds ptr, ptr %t165, i32 1 %t167 = load ptr, ptr %t166 %t168 = call ptr @fn_emit_expr(ptr %t167) store ptr %t168, ptr %t169 %t170 = load ptr, ptr %t1 %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 ptr, ptr %t174, i32 2 %t176 = load ptr, ptr %t175 %t177 = call ptr @fn_emit_expr(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t160 %t180 = getelementptr inbounds %Cmp_Val, ptr %t179, i32 0, i32 0 %t181 = load ptr, ptr %t180 %t182 = call ptr @fn_color_ch(ptr %t181, ptr @.str4915) %t183 = load ptr, ptr %t169 %t184 = getelementptr inbounds %Cmp_Val, ptr %t183, i32 0, i32 0 %t185 = load ptr, ptr %t184 %t186 = call ptr @fn_color_ch(ptr %t185, ptr @.str4916) %t187 = load ptr, ptr %t178 %t188 = getelementptr inbounds %Cmp_Val, ptr %t187, i32 0, i32 0 %t189 = load ptr, ptr %t188 %t190 = call ptr @fn_color_lerp_ch(ptr %t182, ptr %t186, ptr %t189) store ptr %t190, ptr %t191 %t192 = load ptr, ptr %t160 %t193 = getelementptr inbounds %Cmp_Val, ptr %t192, i32 0, i32 0 %t194 = load ptr, ptr %t193 %t195 = call ptr @fn_color_ch(ptr %t194, ptr @.str4917) %t196 = load ptr, ptr %t169 %t197 = getelementptr inbounds %Cmp_Val, ptr %t196, i32 0, i32 0 %t198 = load ptr, ptr %t197 %t199 = call ptr @fn_color_ch(ptr %t198, ptr @.str4918) %t200 = load ptr, ptr %t178 %t201 = getelementptr inbounds %Cmp_Val, ptr %t200, i32 0, i32 0 %t202 = load ptr, ptr %t201 %t203 = call ptr @fn_color_lerp_ch(ptr %t195, ptr %t199, ptr %t202) store ptr %t203, ptr %t204 %t205 = load ptr, ptr %t160 %t206 = getelementptr inbounds %Cmp_Val, ptr %t205, i32 0, i32 0 %t207 = load ptr, ptr %t206 %t208 = call ptr @fn_color_ch(ptr %t207, ptr @.str4919) %t209 = load ptr, ptr %t169 %t210 = getelementptr inbounds %Cmp_Val, ptr %t209, i32 0, i32 0 %t211 = load ptr, ptr %t210 %t212 = call ptr @fn_color_ch(ptr %t211, ptr @.str4920) %t213 = load ptr, ptr %t178 %t214 = getelementptr inbounds %Cmp_Val, ptr %t213, i32 0, i32 0 %t215 = load ptr, ptr %t214 %t216 = call ptr @fn_color_lerp_ch(ptr %t208, ptr %t212, ptr %t215) store ptr %t216, ptr %t217 %t218 = load ptr, ptr %t191 %t219 = load ptr, ptr %t204 %t220 = load ptr, ptr %t217 %t221 = call ptr @fn_color_pack(ptr %t218, ptr %t219, ptr %t220) %t222 = call ptr @fn_val(ptr %t221, ptr @.str4921) store ptr %t222, ptr %retval br label %ret ifend11: %t223 = load ptr, ptr %t0 %t224 = call i32 @fn_str_eq(ptr %t223, ptr @.str4922) %t225 = icmp ne i32 %t224, 0 br i1 %t225, label %then12, label %ifend14 then12: %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 ptr, ptr %t230, 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 ptr, ptr %t239, i32 1 %t241 = load ptr, ptr %t240 %t242 = call ptr @fn_emit_expr(ptr %t241) store ptr %t242, ptr %t243 %t244 = load ptr, ptr %t243 %t245 = getelementptr inbounds %Cmp_Val, ptr %t244, i32 0, i32 0 %t246 = load ptr, ptr %t245 %t247 = call ptr @fn_str_concat(ptr @.str4923, ptr %t246) %t248 = call ptr @fn_emit_bind(ptr %t247) store ptr %t248, ptr %t249 %t250 = load ptr, ptr %t234 %t251 = getelementptr inbounds %Cmp_Val, ptr %t250, i32 0, i32 0 %t252 = load ptr, ptr %t251 %t253 = call ptr @fn_color_ch(ptr %t252, ptr @.str4924) store ptr %t253, ptr %t254 %t255 = load ptr, ptr %t234 %t256 = getelementptr inbounds %Cmp_Val, ptr %t255, i32 0, i32 0 %t257 = load ptr, ptr %t256 %t258 = call ptr @fn_color_ch(ptr %t257, ptr @.str4925) store ptr %t258, ptr %t259 %t260 = load ptr, ptr %t234 %t261 = getelementptr inbounds %Cmp_Val, ptr %t260, i32 0, i32 0 %t262 = load ptr, ptr %t261 %t263 = call ptr @fn_color_ch(ptr %t262, ptr @.str4926) store ptr %t263, ptr %t264 %t265 = load ptr, ptr %t254 %t266 = call ptr @fn_str_concat(ptr @.str4927, ptr %t265) %t267 = call ptr @fn_str_concat(ptr %t266, ptr @.str4928) %t268 = load ptr, ptr %t249 %t269 = call ptr @fn_str_concat(ptr %t267, ptr %t268) %t270 = call ptr @fn_emit_bind(ptr %t269) store ptr %t270, ptr %t271 %t272 = load ptr, ptr %t271 %t273 = call ptr @fn_str_concat(ptr @.str4929, ptr %t272) %t274 = call ptr @fn_str_concat(ptr %t273, ptr @.str4930) %t275 = call ptr @fn_emit_bind(ptr %t274) store ptr %t275, ptr %t276 %t277 = load ptr, ptr %t259 %t278 = call ptr @fn_str_concat(ptr @.str4931, ptr %t277) %t279 = call ptr @fn_str_concat(ptr %t278, ptr @.str4932) %t280 = load ptr, ptr %t249 %t281 = call ptr @fn_str_concat(ptr %t279, ptr %t280) %t282 = call ptr @fn_emit_bind(ptr %t281) store ptr %t282, ptr %t283 %t284 = load ptr, ptr %t283 %t285 = call ptr @fn_str_concat(ptr @.str4933, ptr %t284) %t286 = call ptr @fn_str_concat(ptr %t285, ptr @.str4934) %t287 = call ptr @fn_emit_bind(ptr %t286) store ptr %t287, ptr %t288 %t289 = load ptr, ptr %t264 %t290 = call ptr @fn_str_concat(ptr @.str4935, ptr %t289) %t291 = call ptr @fn_str_concat(ptr %t290, ptr @.str4936) %t292 = load ptr, ptr %t249 %t293 = call ptr @fn_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 @fn_str_concat(ptr @.str4937, ptr %t296) %t298 = call ptr @fn_str_concat(ptr %t297, ptr @.str4938) %t299 = call ptr @fn_emit_bind(ptr %t298) store ptr %t299, ptr %t300 %t301 = load ptr, ptr %t276 %t302 = load ptr, ptr %t288 %t303 = load ptr, ptr %t300 %t304 = call ptr @fn_color_pack(ptr %t301, ptr %t302, ptr %t303) %t305 = call ptr @fn_val(ptr %t304, ptr @.str4939) store ptr %t305, ptr %retval br label %ret ifend14: %t306 = load ptr, ptr %t1 %t307 = getelementptr inbounds %Cmp_Node, ptr %t306, i32 0, i32 7 %t308 = load ptr, ptr %t307 %t309 = getelementptr inbounds %LSlice, ptr %t308, i32 0, i32 0 %t310 = load ptr, ptr %t309 %t311 = getelementptr inbounds ptr, ptr %t310, i32 0 %t312 = load ptr, ptr %t311 %t313 = call ptr @fn_emit_expr(ptr %t312) store ptr %t313, ptr %t314 %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 ptr, ptr %t319, i32 1 %t321 = load ptr, ptr %t320 %t322 = call ptr @fn_emit_expr(ptr %t321) store ptr %t322, ptr %t323 %t324 = load ptr, ptr %t314 %t325 = getelementptr inbounds %Cmp_Val, ptr %t324, i32 0, i32 0 %t326 = load ptr, ptr %t325 %t327 = call ptr @fn_color_ch(ptr %t326, ptr @.str4940) store ptr %t327, ptr %t328 %t329 = load ptr, ptr %t314 %t330 = getelementptr inbounds %Cmp_Val, ptr %t329, i32 0, i32 0 %t331 = load ptr, ptr %t330 %t332 = call ptr @fn_color_ch(ptr %t331, ptr @.str4941) store ptr %t332, ptr %t333 %t334 = load ptr, ptr %t314 %t335 = getelementptr inbounds %Cmp_Val, ptr %t334, i32 0, i32 0 %t336 = load ptr, ptr %t335 %t337 = call ptr @fn_color_ch(ptr %t336, ptr @.str4942) store ptr %t337, ptr %t338 %t339 = load ptr, ptr %t328 %t340 = call ptr @fn_str_concat(ptr @.str4943, ptr %t339) %t341 = call ptr @fn_emit_bind(ptr %t340) store ptr %t341, ptr %t342 %t343 = load ptr, ptr %t342 %t344 = call ptr @fn_str_concat(ptr @.str4944, ptr %t343) %t345 = call ptr @fn_str_concat(ptr %t344, ptr @.str4945) %t346 = load ptr, ptr %t323 %t347 = getelementptr inbounds %Cmp_Val, ptr %t346, i32 0, i32 0 %t348 = load ptr, ptr %t347 %t349 = call ptr @fn_str_concat(ptr %t345, ptr %t348) %t350 = call ptr @fn_emit_bind(ptr %t349) store ptr %t350, ptr %t351 %t352 = load ptr, ptr %t351 %t353 = call ptr @fn_str_concat(ptr @.str4946, ptr %t352) %t354 = call ptr @fn_str_concat(ptr %t353, ptr @.str4947) %t355 = call ptr @fn_emit_bind(ptr %t354) store ptr %t355, ptr %t356 %t357 = load ptr, ptr %t328 %t358 = call ptr @fn_str_concat(ptr @.str4948, ptr %t357) %t359 = call ptr @fn_str_concat(ptr %t358, ptr @.str4949) %t360 = load ptr, ptr %t356 %t361 = call ptr @fn_str_concat(ptr %t359, ptr %t360) %t362 = call ptr @fn_emit_bind(ptr %t361) store ptr %t362, ptr %t363 %t364 = load ptr, ptr %t333 %t365 = call ptr @fn_str_concat(ptr @.str4950, ptr %t364) %t366 = call ptr @fn_emit_bind(ptr %t365) store ptr %t366, ptr %t367 %t368 = load ptr, ptr %t367 %t369 = call ptr @fn_str_concat(ptr @.str4951, ptr %t368) %t370 = call ptr @fn_str_concat(ptr %t369, ptr @.str4952) %t371 = load ptr, ptr %t323 %t372 = getelementptr inbounds %Cmp_Val, ptr %t371, i32 0, i32 0 %t373 = load ptr, ptr %t372 %t374 = call ptr @fn_str_concat(ptr %t370, ptr %t373) %t375 = call ptr @fn_emit_bind(ptr %t374) store ptr %t375, ptr %t376 %t377 = load ptr, ptr %t376 %t378 = call ptr @fn_str_concat(ptr @.str4953, ptr %t377) %t379 = call ptr @fn_str_concat(ptr %t378, ptr @.str4954) %t380 = call ptr @fn_emit_bind(ptr %t379) store ptr %t380, ptr %t381 %t382 = load ptr, ptr %t333 %t383 = call ptr @fn_str_concat(ptr @.str4955, ptr %t382) %t384 = call ptr @fn_str_concat(ptr %t383, ptr @.str4956) %t385 = load ptr, ptr %t381 %t386 = call ptr @fn_str_concat(ptr %t384, ptr %t385) %t387 = call ptr @fn_emit_bind(ptr %t386) store ptr %t387, ptr %t388 %t389 = load ptr, ptr %t338 %t390 = call ptr @fn_str_concat(ptr @.str4957, ptr %t389) %t391 = call ptr @fn_emit_bind(ptr %t390) store ptr %t391, ptr %t392 %t393 = load ptr, ptr %t392 %t394 = call ptr @fn_str_concat(ptr @.str4958, ptr %t393) %t395 = call ptr @fn_str_concat(ptr %t394, ptr @.str4959) %t396 = load ptr, ptr %t323 %t397 = getelementptr inbounds %Cmp_Val, ptr %t396, i32 0, i32 0 %t398 = load ptr, ptr %t397 %t399 = call ptr @fn_str_concat(ptr %t395, ptr %t398) %t400 = call ptr @fn_emit_bind(ptr %t399) store ptr %t400, ptr %t401 %t402 = load ptr, ptr %t401 %t403 = call ptr @fn_str_concat(ptr @.str4960, ptr %t402) %t404 = call ptr @fn_str_concat(ptr %t403, ptr @.str4961) %t405 = call ptr @fn_emit_bind(ptr %t404) store ptr %t405, ptr %t406 %t407 = load ptr, ptr %t338 %t408 = call ptr @fn_str_concat(ptr @.str4962, ptr %t407) %t409 = call ptr @fn_str_concat(ptr %t408, ptr @.str4963) %t410 = load ptr, ptr %t406 %t411 = call ptr @fn_str_concat(ptr %t409, ptr %t410) %t412 = call ptr @fn_emit_bind(ptr %t411) store ptr %t412, ptr %t413 %t414 = load ptr, ptr %t363 %t415 = load ptr, ptr %t388 %t416 = load ptr, ptr %t413 %t417 = call ptr @fn_color_pack(ptr %t414, ptr %t415, ptr %t416) %t418 = call ptr @fn_val(ptr %t417, ptr @.str4964) store ptr %t418, ptr %retval br label %ret ret: %t419 = load ptr, ptr %retval ret ptr %t419 } 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 @fn_str_eq(ptr %t1, ptr @.str4965) %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 @fn_str_eq(ptr %t4, ptr @.str4966) %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 @fn_str_eq(ptr %t7, ptr @.str4967) %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 @fn_str_eq(ptr %t10, ptr @.str4968) %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 @fn_str_eq(ptr %t13, ptr @.str4969) %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 @fn_str_eq(ptr %t16, ptr @.str4970) %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 @fn_str_eq(ptr %t19, ptr @.str4971) %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 @fn_str_eq(ptr %t22, ptr @.str4972) %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 @fn_str_eq(ptr %t25, ptr @.str4973) %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 @fn_str_eq(ptr %t28, ptr @.str4974) %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 @fn_str_eq(ptr %t31, ptr @.str4975) %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 @fn_str_eq(ptr %t34, ptr @.str4976) %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 @fn_str_eq(ptr %t37, ptr @.str4977) %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 @fn_str_eq(ptr %t40, ptr @.str4978) %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 @fn_str_eq(ptr %t43, ptr @.str4979) %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 @fn_str_eq(ptr %t46, ptr @.str4980) %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 @fn_str_eq(ptr %t49, ptr @.str4981) %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 @fn_str_eq(ptr %t52, ptr @.str4982) %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 @fn_str_eq(ptr %t55, ptr @.str4983) %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 @fn_str_eq(ptr %t58, ptr @.str4984) %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 @fn_str_eq(ptr %t61, ptr @.str4985) %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 @fn_str_eq(ptr %t64, ptr @.str4986) %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 @fn_str_eq(ptr %t67, ptr @.str4987) %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 @fn_str_eq(ptr %t70, ptr @.str4988) %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 @fn_str_eq(ptr %t73, ptr @.str4989) %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 @fn_str_eq(ptr %t76, ptr @.str4990) %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 @fn_str_eq(ptr %t79, ptr @.str4991) %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 @fn_str_eq(ptr %t82, ptr @.str4992) %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 @fn_str_eq(ptr %t85, ptr @.str4993) %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 @fn_str_eq(ptr %t88, ptr @.str4994) %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 @fn_str_eq(ptr %t91, ptr @.str4995) %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 @fn_str_eq(ptr %t94, ptr @.str4996) %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 @fn_str_eq(ptr %t97, ptr @.str4997) %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 @fn_str_eq(ptr %t100, ptr @.str4998) %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 @fn_str_eq(ptr %t103, ptr @.str4999) %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 @fn_str_eq(ptr %t106, ptr @.str5000) %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 @fn_str_eq(ptr %t109, ptr @.str5001) %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 @fn_str_eq(ptr %t112, ptr @.str5002) %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 @fn_str_eq(ptr %t115, ptr @.str5003) %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 @fn_str_eq(ptr %t118, ptr @.str5004) %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 @fn_str_eq(ptr %t121, ptr @.str5005) %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 @fn_str_eq(ptr %t124, ptr @.str5006) %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 @fn_str_eq(ptr %t127, ptr @.str5007) %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 @fn_str_eq(ptr %t130, ptr @.str5008) %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 @fn_str_eq(ptr %t133, ptr @.str5009) %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 @fn_str_eq(ptr %t136, ptr @.str5010) %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 @fn_str_eq(ptr %t139, ptr @.str5011) %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 @fn_str_eq(ptr %t142, ptr @.str5012) %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 @fn_str_eq(ptr %t145, ptr @.str5013) %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 @fn_str_eq(ptr %t148, ptr @.str5014) %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 @fn_str_eq(ptr %t151, ptr @.str5015) %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 @fn_str_eq(ptr %t154, ptr @.str5016) %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 @fn_str_eq(ptr %t157, ptr @.str5017) %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 @fn_str_eq(ptr %t160, ptr @.str5018) %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 @fn_str_eq(ptr %t163, ptr @.str5019) %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 @fn_str_eq(ptr %t166, ptr @.str5020) %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 @fn_str_eq(ptr %t169, ptr @.str5021) %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 @fn_str_eq(ptr %t172, ptr @.str5022) %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 @fn_str_eq(ptr %t175, ptr @.str5023) %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 @fn_str_eq(ptr %t178, ptr @.str5024) %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 @fn_str_eq(ptr %t181, ptr @.str5025) %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 @fn_str_eq(ptr %t184, ptr @.str5026) %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 @fn_str_eq(ptr %t187, ptr @.str5027) %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 @fn_str_eq(ptr %t190, ptr @.str5028) %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 @fn_str_eq(ptr %t193, ptr @.str5029) %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 @fn_str_eq(ptr %t196, ptr @.str5030) %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 @fn_str_eq(ptr %t199, ptr @.str5031) %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 @fn_str_eq(ptr %t202, ptr @.str5032) %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 @fn_str_eq(ptr %t205, ptr @.str5033) %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 @fn_str_eq(ptr %t208, ptr @.str5034) %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 @fn_str_eq(ptr %t211, ptr @.str5035) %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 @fn_str_eq(ptr %t214, ptr @.str5036) %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 @fn_str_eq(ptr %t217, ptr @.str5037) %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 @fn_str_eq(ptr %t220, ptr @.str5038) %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 @fn_str_eq(ptr %t223, ptr @.str5039) %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 @fn_str_eq(ptr %t226, ptr @.str5040) %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 @fn_str_eq(ptr %t229, ptr @.str5041) %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 @fn_str_eq(ptr %t232, ptr @.str5042) %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 @fn_str_eq(ptr %t235, ptr @.str5043) %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 @fn_str_eq(ptr %t238, ptr @.str5044) %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 @fn_str_eq(ptr %t241, ptr @.str5045) %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 @fn_str_eq(ptr %t244, ptr @.str5046) %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 @fn_str_eq(ptr %t247, ptr @.str5047) %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 @fn_str_eq(ptr %t250, ptr @.str5048) %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 @fn_str_eq(ptr %t253, ptr @.str5049) %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 @fn_str_eq(ptr %t256, ptr @.str5050) %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 @fn_str_eq(ptr %t259, ptr @.str5051) %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 @fn_str_eq(ptr %t262, ptr @.str5052) %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 @fn_str_eq(ptr %t265, ptr @.str5053) %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 @fn_str_eq(ptr %t268, ptr @.str5054) %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 @fn_str_eq(ptr %t271, ptr @.str5055) %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 @fn_str_eq(ptr %t274, ptr @.str5056) %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 @fn_str_eq(ptr %t277, ptr @.str5057) %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 @fn_str_eq(ptr %t280, ptr @.str5058) %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 @fn_str_eq(ptr %t283, ptr @.str5059) %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 @fn_str_eq(ptr %t286, ptr @.str5060) %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 @fn_str_eq(ptr %t289, ptr @.str5061) %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 @fn_str_eq(ptr %t292, ptr @.str5062) %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 @fn_str_eq(ptr %t295, ptr @.str5063) %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 @fn_str_eq(ptr %t298, ptr @.str5064) %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 @fn_str_eq(ptr %t301, ptr @.str5065) %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 @fn_str_eq(ptr %t304, ptr @.str5066) %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 @fn_str_eq(ptr %t307, ptr @.str5067) %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 @fn_str_eq(ptr %t310, ptr @.str5068) %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 @fn_str_eq(ptr %t313, ptr @.str5069) %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 @fn_str_eq(ptr %t316, ptr @.str5070) %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 @fn_str_eq(ptr %t319, ptr @.str5071) %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 @fn_str_eq(ptr %t322, ptr @.str5072) %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 @fn_str_eq(ptr %t325, ptr @.str5073) %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 @fn_str_eq(ptr %t328, ptr @.str5074) %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 @fn_str_eq(ptr %t331, ptr @.str5075) %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 @fn_str_eq(ptr %t334, ptr @.str5076) %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 @fn_str_eq(ptr %t337, ptr @.str5077) %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 @fn_str_eq(ptr %t340, ptr @.str5078) %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 @fn_str_eq(ptr %t343, ptr @.str5079) %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 @fn_str_eq(ptr %t346, ptr @.str5080) %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 @fn_str_eq(ptr %t349, ptr @.str5081) %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 @fn_str_eq(ptr %t352, ptr @.str5082) %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 @fn_str_eq(ptr %t355, ptr @.str5083) %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 @fn_str_eq(ptr %t358, ptr @.str5084) %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 @fn_str_eq(ptr %t361, ptr @.str5085) %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 @fn_str_eq(ptr %t364, ptr @.str5086) %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 @fn_str_eq(ptr %t367, ptr @.str5087) %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 @fn_str_eq(ptr %t370, ptr @.str5088) %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 @fn_str_eq(ptr %t373, ptr @.str5089) %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 @fn_str_eq(ptr %t376, ptr @.str5090) %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 @fn_str_eq(ptr %t379, ptr @.str5091) %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 @fn_str_eq(ptr %t382, ptr @.str5092) %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 @fn_str_eq(ptr %t385, ptr @.str5093) %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 @fn_str_eq(ptr %t388, ptr @.str5094) %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 @fn_str_eq(ptr %t391, ptr @.str5095) %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 @fn_str_eq(ptr %t394, ptr @.str5096) %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 @fn_str_eq(ptr %t397, ptr @.str5097) %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 @fn_str_eq(ptr %t400, ptr @.str5098) %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 @fn_str_eq(ptr %t403, ptr @.str5099) %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 @fn_str_eq(ptr %t406, ptr @.str5100) %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 @fn_str_eq(ptr %t409, ptr @.str5101) %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 @fn_str_eq(ptr %t412, ptr @.str5102) %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 @fn_str_eq(ptr %t415, ptr @.str5103) %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 @fn_str_eq(ptr %t418, ptr @.str5104) %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 @fn_str_eq(ptr %t421, ptr @.str5105) %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 @fn_str_eq(ptr %t424, ptr @.str5106) %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 @fn_str_eq(ptr %t427, ptr @.str5107) %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 @fn_str_eq(ptr %t430, ptr @.str5108) %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 @fn_str_eq(ptr %t433, ptr @.str5109) %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 @fn_str_eq(ptr %t436, ptr @.str5110) %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 @fn_str_eq(ptr %t439, ptr @.str5111) %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 @fn_str_eq(ptr %t442, ptr @.str5112) %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 @fn_str_eq(ptr %t445, ptr @.str5113) %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 @fn_str_eq(ptr %t448, ptr @.str5114) %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 @fn_str_eq(ptr %t451, ptr @.str5115) %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 @fn_str_eq(ptr %t454, ptr @.str5116) %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 @fn_str_eq(ptr %t457, ptr @.str5117) %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 @fn_str_eq(ptr %t460, ptr @.str5118) %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 @fn_str_eq(ptr %t463, ptr @.str5119) %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 @fn_str_eq(ptr %t466, ptr @.str5120) %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 @fn_str_eq(ptr %t469, ptr @.str5121) %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 @fn_str_eq(ptr %t472, ptr @.str5122) %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 @fn_str_eq(ptr %t475, ptr @.str5123) %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 @fn_str_eq(ptr %t478, ptr @.str5124) %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 @fn_str_eq(ptr %t481, ptr @.str5125) %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 @fn_str_eq(ptr %t484, ptr @.str5126) %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 @fn_str_eq(ptr %t487, ptr @.str5127) %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 @fn_str_eq(ptr %t490, ptr @.str5128) %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 @fn_str_eq(ptr %t493, ptr @.str5129) %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 @fn_str_eq(ptr %t496, ptr @.str5130) %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 @fn_str_eq(ptr %t499, ptr @.str5131) %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 @fn_str_eq(ptr %t502, ptr @.str5132) %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 @fn_str_eq(ptr %t505, ptr @.str5133) %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 @fn_str_eq(ptr %t508, ptr @.str5134) %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 @fn_str_eq(ptr %t511, ptr @.str5135) %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 @fn_str_eq(ptr %t514, ptr @.str5136) %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 @fn_str_eq(ptr %t517, ptr @.str5137) %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 @fn_str_eq(ptr %t520, ptr @.str5138) %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 @fn_str_eq(ptr %t523, ptr @.str5139) %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 @fn_str_eq(ptr %t526, ptr @.str5140) %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 @fn_str_eq(ptr %t529, ptr @.str5141) %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 @fn_str_eq(ptr %t532, ptr @.str5142) %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 @fn_str_eq(ptr %t535, ptr @.str5143) %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 @fn_str_eq(ptr %t538, ptr @.str5144) %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 @fn_str_eq(ptr %t541, ptr @.str5145) %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 @fn_str_eq(ptr %t544, ptr @.str5146) %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 @fn_str_eq(ptr %t547, ptr @.str5147) %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 @fn_str_eq(ptr %t550, ptr @.str5148) %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 @fn_str_eq(ptr %t553, ptr @.str5149) %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 @fn_str_eq(ptr %t556, ptr @.str5150) %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 @fn_str_eq(ptr %t559, ptr @.str5151) %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 @fn_str_eq(ptr %t562, ptr @.str5152) %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 @fn_str_eq(ptr %t565, ptr @.str5153) %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 @fn_str_eq(ptr %t568, ptr @.str5154) %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 @fn_str_eq(ptr %t571, ptr @.str5155) %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 @fn_str_eq(ptr %t574, ptr @.str5156) %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 @fn_str_eq(ptr %t577, ptr @.str5157) %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 @fn_str_eq(ptr %t580, ptr @.str5158) %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 @fn_str_eq(ptr %t583, ptr @.str5159) %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 @fn_str_eq(ptr %t586, ptr @.str5160) %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 @fn_str_eq(ptr %t589, ptr @.str5161) %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 @fn_str_eq(ptr %t592, ptr @.str5162) %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 @fn_str_eq(ptr %t595, ptr @.str5163) %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 @fn_str_eq(ptr %t598, ptr @.str5164) %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 @fn_str_eq(ptr %t601, ptr @.str5165) %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 @fn_str_eq(ptr %t604, ptr @.str5166) %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 @fn_str_eq(ptr %t607, ptr @.str5167) %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 @fn_str_eq(ptr %t610, ptr @.str5168) %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 @fn_str_eq(ptr %t613, ptr @.str5169) %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 @fn_str_eq(ptr %t616, ptr @.str5170) %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 @fn_str_eq(ptr %t619, ptr @.str5171) %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 @fn_str_eq(ptr %t622, ptr @.str5172) %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 @fn_str_eq(ptr %t625, ptr @.str5173) %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 @fn_str_eq(ptr %t628, ptr @.str5174) %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 @fn_str_eq(ptr %t631, ptr @.str5175) %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 @fn_str_eq(ptr %t634, ptr @.str5176) %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 @fn_str_eq(ptr %t637, ptr @.str5177) %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 @fn_str_eq(ptr %t640, ptr @.str5178) %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 @fn_str_eq(ptr %t643, ptr @.str5179) %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 @fn_str_eq(ptr %t646, ptr @.str5180) %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 @fn_str_eq(ptr %t649, ptr @.str5181) %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 @fn_str_eq(ptr %t652, ptr @.str5182) %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 @fn_str_eq(ptr %t655, ptr @.str5183) %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 @fn_str_eq(ptr %t658, ptr @.str5184) %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 @fn_str_eq(ptr %t661, ptr @.str5185) %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 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 @fn_str_concat(ptr @.str5186, ptr %t1) %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str5187) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = call ptr @fn_str_concat(ptr @.str5188, ptr %t6) %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str5189) %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 %t24 = 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 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t6 %t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 %t28 = load ptr, ptr %t1 %t29 = call i32 @fn_str_eq(ptr %t27, ptr %t28) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then6, label %ifend8 then6: %t31 = load ptr, ptr %t24 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 4 %t33 = load ptr, ptr %t32 store ptr %t33, ptr %retval br label %ret ifend8: %t34 = load i32, ptr %t6 %t35 = add i32 %t34, 1 store i32 %t35, ptr %t6 br label %wcond3 wend5: store ptr null, ptr %retval br label %ret ret: %t36 = load ptr, ptr %retval ret ptr %t36 } 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 %t11 = alloca ptr %t14 = alloca ptr %t19 = alloca ptr %t20 = alloca i32 %t38 = alloca ptr %t40 = alloca ptr %t50 = alloca ptr %t51 = alloca ptr %t65 = alloca ptr %t74 = alloca ptr %t81 = 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 %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: call void @fn_perr(ptr @.str5190) br label %ifend2 ifend2: %t9 = load ptr, ptr %t0 %t10 = call ptr @fn_layout_ty(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_emit_sizeof(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_str_concat(ptr @.str5191, ptr %t15) %t17 = call ptr @fn_str_concat(ptr %t16, ptr @.str5192) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 store i32 0, ptr %t20 br label %wcond3 wcond3: %t21 = load i32, ptr %t20 %t22 = load ptr, ptr %t4 %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 slt i32 %t21, %t26 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %wbody4, label %wend5 wbody4: %t30 = load ptr, ptr %t4 %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 = load i32, ptr %t20 %t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35 %t37 = load ptr, ptr %t36 store ptr %t37, ptr %t38 %t39 = call ptr @fn_nreg() store ptr %t39, ptr %t40 call void @fn_emit(ptr @.str5193) %t41 = load ptr, ptr %t40 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str5194) %t42 = load ptr, ptr %t11 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str5195) %t43 = load ptr, ptr %t19 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str5196) %t44 = load i32, ptr %t20 %t45 = call ptr @fn_itoa(i32 %t44) call void @fn_emit(ptr %t45) call void @fn_emit(ptr @.str5197) %t46 = load ptr, ptr %t38 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 3 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_llty(ptr %t48) store ptr %t49, ptr %t50 store ptr @.str5198, ptr %t51 %t52 = load ptr, ptr %t50 %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str5199) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then6, label %ifend8 then6: store ptr @.str5200, ptr %t51 br label %ifend8 ifend8: %t55 = load ptr, ptr %t38 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 4 %t57 = load ptr, ptr %t56 %t58 = icmp ne ptr %t57, null %t59 = zext i1 %t58 to i32 %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then9, label %ifend11 then9: %t61 = load ptr, ptr %t38 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 4 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_emit_expr(ptr %t63) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %Cmp_Val, ptr %t66, i32 0, i32 0 %t68 = load ptr, ptr %t67 store ptr %t68, ptr %t51 br label %ifend11 ifend11: %t69 = load ptr, ptr %t1 %t70 = load ptr, ptr %t38 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 %t73 = call ptr @fn_rec_field(ptr %t69, ptr %t72) store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t74 %t76 = icmp ne ptr %t75, null %t77 = zext i1 %t76 to i32 %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then12, label %ifend14 then12: %t79 = load ptr, ptr %t74 %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 store ptr %t84, ptr %t51 br label %ifend14 ifend14: call void @fn_emit(ptr @.str5201) %t85 = load ptr, ptr %t50 call void @fn_emit(ptr %t85) call void @fn_emit(ptr @.str5202) %t86 = load ptr, ptr %t51 call void @fn_emit(ptr %t86) call void @fn_emit(ptr @.str5203) %t87 = load ptr, ptr %t40 call void @fn_emit(ptr %t87) call void @fn_emit(ptr @.str5204) %t88 = load i32, ptr %t20 %t89 = add i32 %t88, 1 store i32 %t89, ptr %t20 br label %wcond3 wend5: %t90 = load ptr, ptr %t19 %t91 = load ptr, ptr %t0 %t92 = call ptr @fn_val(ptr %t90, ptr %t91) store ptr %t92, ptr %retval br label %ret ret: %t93 = load ptr, ptr %retval ret ptr %t93 } 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 @.str5205) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_str_concat(ptr @.str5206, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str5207) %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 @.str5208) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) call void @fn_emit(ptr @.str5209) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) call void @fn_emit(ptr @.str5210) call void @fn_emit(ptr @.str5211) %t12 = load ptr, ptr %t9 call void @fn_emit(ptr %t12) call void @fn_emit(ptr @.str5212) %t13 = call ptr @fn_nreg() store ptr %t13, ptr %t14 call void @fn_emit(ptr @.str5213) %t15 = load ptr, ptr %t14 call void @fn_emit(ptr %t15) call void @fn_emit(ptr @.str5214) %t16 = load ptr, ptr %t7 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str5215) call void @fn_emit(ptr @.str5216) %t17 = load ptr, ptr %t14 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str5217) %t18 = call ptr @fn_nreg() store ptr %t18, ptr %t19 call void @fn_emit(ptr @.str5218) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str5219) %t21 = load ptr, ptr %t7 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str5220) call void @fn_emit(ptr @.str5221) %t22 = load ptr, ptr %t19 call void @fn_emit(ptr %t22) call void @fn_emit(ptr @.str5222) %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_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 @.str5223) %t4 = load ptr, ptr %t3 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str5224) %t5 = load ptr, ptr %t0 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str5225) %t6 = load i32, ptr %t1 %t7 = call ptr @fn_itoa(i32 %t6) call void @fn_emit(ptr %t7) call void @fn_emit(ptr @.str5226) %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 %t9 = alloca ptr %t19 = alloca ptr %t30 = 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 ptr, ptr %t5, i32 0 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_emit_expr(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr %t11 %t13 = call i32 @fn_is_slice_ty(ptr %t12) %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then0, label %ifend2 then0: %t15 = load ptr, ptr %t9 %t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_slice_field(ptr %t17, i32 1) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t19 %t21 = call ptr @fn_str_concat(ptr @.str5227, ptr %t20) %t22 = call ptr @fn_emit_bind(ptr %t21) %t23 = call ptr @fn_val(ptr %t22, ptr @.str5228) store ptr %t23, ptr %retval br label %ret ifend2: %t24 = load ptr, ptr %t9 %t25 = getelementptr inbounds %Cmp_Val, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 %t27 = call ptr @fn_str_concat(ptr @.str5229, ptr %t26) %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str5230) %t29 = call ptr @fn_emit_bind(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 %t32 = call ptr @fn_str_concat(ptr @.str5231, ptr %t31) %t33 = call ptr @fn_str_concat(ptr %t32, ptr @.str5232) %t34 = call ptr @fn_emit_bind(ptr %t33) %t35 = call ptr @fn_val(ptr %t34, ptr @.str5233) store ptr %t35, ptr %retval br label %ret ret: %t36 = load ptr, ptr %retval ret ptr %t36 } define ptr @fn_emit_push(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t9 = alloca ptr %t14 = alloca ptr %t17 = alloca ptr %t21 = alloca ptr %t24 = alloca ptr %t27 = alloca ptr %t30 = alloca ptr %t34 = alloca ptr %t38 = alloca ptr %t45 = alloca ptr %t47 = alloca ptr %t49 = alloca ptr %t58 = alloca ptr %t63 = alloca ptr %t70 = alloca ptr %t73 = alloca ptr %t78 = alloca ptr %t85 = alloca ptr %t89 = alloca ptr %t97 = alloca ptr %t112 = alloca ptr %t116 = alloca ptr %t118 = alloca ptr %t132 = 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 ptr, ptr %t5, i32 0 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_emit_expr(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 %t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 1 %t12 = load ptr, ptr %t11 %t13 = call ptr @fn_slice_elem(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_llty(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t9 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call ptr @fn_slice_field(ptr %t22, i32 1) store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t21 %t26 = call ptr @fn_slice_field(ptr %t25, i32 2) store ptr %t26, ptr %t27 %t28 = load ptr, ptr %t21 %t29 = call ptr @fn_slice_field(ptr %t28, i32 0) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t24 %t32 = call ptr @fn_str_concat(ptr @.str5234, ptr %t31) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t27 %t36 = call ptr @fn_str_concat(ptr @.str5235, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t34 %t40 = call ptr @fn_str_concat(ptr @.str5236, ptr %t39) %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str5237) %t42 = load ptr, ptr %t38 %t43 = call ptr @fn_str_concat(ptr %t41, ptr %t42) %t44 = call ptr @fn_emit_bind(ptr %t43) store ptr %t44, ptr %t45 %t46 = call ptr @fn_lbl(ptr @.str5238) store ptr %t46, ptr %t47 %t48 = call ptr @fn_lbl(ptr @.str5239) store ptr %t48, ptr %t49 call void @fn_emit(ptr @.str5240) %t50 = load ptr, ptr %t45 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str5241) %t51 = load ptr, ptr %t47 call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str5242) %t52 = load ptr, ptr %t49 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str5243) %t53 = load ptr, ptr %t47 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str5244) %t54 = load ptr, ptr %t38 %t55 = call ptr @fn_str_concat(ptr @.str5245, ptr %t54) %t56 = call ptr @fn_str_concat(ptr %t55, ptr @.str5246) %t57 = call ptr @fn_emit_bind(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t38 %t60 = call ptr @fn_str_concat(ptr @.str5247, ptr %t59) %t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str5248) %t62 = call ptr @fn_emit_bind(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 %t65 = call ptr @fn_str_concat(ptr @.str5249, ptr %t64) %t66 = call ptr @fn_str_concat(ptr %t65, ptr @.str5250) %t67 = load ptr, ptr %t58 %t68 = call ptr @fn_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @fn_emit_bind(ptr %t68) store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t17 %t72 = call ptr @fn_emit_sizeof(ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t70 %t75 = call ptr @fn_str_concat(ptr @.str5251, ptr %t74) %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str5252) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_str_concat(ptr @.str5253, ptr %t79) %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str5254) %t82 = load ptr, ptr %t73 %t83 = call ptr @fn_str_concat(ptr %t81, ptr %t82) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t30 %t87 = call ptr @fn_str_concat(ptr @.str5255, ptr %t86) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = call ptr @fn_str_concat(ptr @.str5256, ptr %t90) %t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str5257) %t93 = load ptr, ptr %t85 %t94 = call ptr @fn_str_concat(ptr %t92, ptr %t93) %t95 = call ptr @fn_str_concat(ptr %t94, ptr @.str5258) %t96 = call ptr @fn_emit_bind(ptr %t95) store ptr %t96, ptr %t97 call void @fn_emit(ptr @.str5259) %t98 = load ptr, ptr %t97 call void @fn_emit(ptr %t98) call void @fn_emit(ptr @.str5260) %t99 = load ptr, ptr %t30 call void @fn_emit(ptr %t99) call void @fn_emit(ptr @.str5261) call void @fn_emit(ptr @.str5262) %t100 = load ptr, ptr %t70 call void @fn_emit(ptr %t100) call void @fn_emit(ptr @.str5263) %t101 = load ptr, ptr %t27 call void @fn_emit(ptr %t101) call void @fn_emit(ptr @.str5264) call void @fn_emit(ptr @.str5265) %t102 = load ptr, ptr %t49 call void @fn_emit(ptr %t102) call void @fn_emit(ptr @.str5266) %t103 = load ptr, ptr %t49 call void @fn_emit(ptr %t103) call void @fn_emit(ptr @.str5267) %t104 = load ptr, ptr %t0 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 7 %t106 = load ptr, ptr %t105 %t107 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 0 %t108 = load ptr, ptr %t107 %t109 = getelementptr inbounds ptr, ptr %t108, i32 1 %t110 = load ptr, ptr %t109 %t111 = call ptr @fn_emit_expr(ptr %t110) store ptr %t111, ptr %t112 %t113 = load ptr, ptr %t30 %t114 = call ptr @fn_str_concat(ptr @.str5268, ptr %t113) %t115 = call ptr @fn_emit_bind(ptr %t114) store ptr %t115, ptr %t116 %t117 = call ptr @fn_nreg() store ptr %t117, ptr %t118 call void @fn_emit(ptr @.str5269) %t119 = load ptr, ptr %t118 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str5270) %t120 = load ptr, ptr %t17 call void @fn_emit(ptr %t120) call void @fn_emit(ptr @.str5271) %t121 = load ptr, ptr %t116 call void @fn_emit(ptr %t121) call void @fn_emit(ptr @.str5272) %t122 = load ptr, ptr %t34 call void @fn_emit(ptr %t122) call void @fn_emit(ptr @.str5273) call void @fn_emit(ptr @.str5274) %t123 = load ptr, ptr %t17 call void @fn_emit(ptr %t123) call void @fn_emit(ptr @.str5275) %t124 = load ptr, ptr %t112 %t125 = getelementptr inbounds %Cmp_Val, ptr %t124, i32 0, i32 0 %t126 = load ptr, ptr %t125 call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str5276) %t127 = load ptr, ptr %t118 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str5277) %t128 = load ptr, ptr %t34 %t129 = call ptr @fn_str_concat(ptr @.str5278, ptr %t128) %t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str5279) %t131 = call ptr @fn_emit_bind(ptr %t130) store ptr %t131, ptr %t132 call void @fn_emit(ptr @.str5280) %t133 = load ptr, ptr %t132 call void @fn_emit(ptr %t133) call void @fn_emit(ptr @.str5281) %t134 = load ptr, ptr %t24 call void @fn_emit(ptr %t134) call void @fn_emit(ptr @.str5282) %t135 = call ptr @fn_val(ptr @.str5283, ptr @.str5284) store ptr %t135, ptr %retval br label %ret ret: %t136 = load ptr, ptr %retval ret ptr %t136 } 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 @fn_str_concat(ptr @.str5285, ptr %t3) %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str5286) %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_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 @.str5287) 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 @fn_str_concat(ptr @.str5288, ptr %t10) %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str5289) %t13 = call ptr @fn_emit_bind(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = call ptr @fn_str_concat(ptr @.str5290, ptr %t15) %t17 = call ptr @fn_str_concat(ptr %t16, ptr @.str5291) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 call void @fn_emit(ptr @.str5292) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str5293) %t21 = load ptr, ptr %t2 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str5294) %t22 = call ptr @fn_lbl(ptr @.str5295) store ptr %t22, ptr %t23 %t24 = call ptr @fn_lbl(ptr @.str5296) 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 @fn_str_eq(ptr %t28, ptr @.str5297) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then0, label %else1 then0: call void @fn_emit(ptr @.str5298) %t31 = load ptr, ptr %t14 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str5299) %t32 = load ptr, ptr %t23 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str5300) %t33 = load ptr, ptr %t25 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str5301) br label %ifend2 else1: call void @fn_emit(ptr @.str5302) %t34 = load ptr, ptr %t14 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str5303) %t35 = load ptr, ptr %t25 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str5304) %t36 = load ptr, ptr %t23 call void @fn_emit(ptr %t36) call void @fn_emit(ptr @.str5305) br label %ifend2 ifend2: %t37 = load ptr, ptr %t23 call void @fn_emit(ptr %t37) call void @fn_emit(ptr @.str5306) %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 @fn_str_concat(ptr @.str5307, ptr %t45) %t47 = call ptr @fn_str_concat(ptr %t46, ptr @.str5308) %t48 = call ptr @fn_emit_bind(ptr %t47) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 %t51 = call ptr @fn_str_concat(ptr @.str5309, ptr %t50) %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str5310) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 call void @fn_emit(ptr @.str5311) %t55 = load ptr, ptr %t54 call void @fn_emit(ptr %t55) call void @fn_emit(ptr @.str5312) %t56 = load ptr, ptr %t2 call void @fn_emit(ptr %t56) call void @fn_emit(ptr @.str5313) call void @fn_emit(ptr @.str5314) %t57 = load ptr, ptr %t25 call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str5315) %t58 = load ptr, ptr %t25 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str5316) %t59 = load ptr, ptr %t2 %t60 = call ptr @fn_str_concat(ptr @.str5317, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) %t62 = call ptr @fn_val(ptr %t61, ptr @.str5318) 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 @fn_str_eq(ptr %t1, ptr @.str5319) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str5320, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str5321) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str5322, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str5323) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str5324, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str5325) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store ptr @.str5326, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str5327) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store ptr @.str5328, ptr %retval br label %ret ifend14: store ptr @.str5329, 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 @fn_str_eq(ptr %t6, ptr @.str5330) %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 @fn_str_eq(ptr %t10, ptr @.str5331) %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 @fn_str_eq(ptr %t17, ptr @.str5332) %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 @fn_str_eq(ptr %t24, ptr @.str5333) %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 @fn_str_eq(ptr %t31, ptr @.str5334) %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 @fn_str_eq(ptr %t38, ptr @.str5335) %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 @fn_str_eq(ptr %t1, ptr @.str5336) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: store ptr @.str5337, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str5338) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: store ptr @.str5339, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str5340) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: store ptr @.str5341, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str5342) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: store ptr @.str5343, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str5344) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: store ptr @.str5345, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str5346) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: store ptr @.str5347, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 %t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str5348) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: store ptr @.str5349, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str5350) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: store ptr @.str5351, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str5352) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: store ptr @.str5353, ptr %retval br label %ret ifend26: store ptr @.str5354, 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 @fn_str_eq(ptr %t3, ptr @.str5355) %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 @fn_str_concat(ptr @.str5356, ptr %t11) %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str5357) %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 %t4 = alloca ptr %t9 = alloca ptr %t17 = alloca i32 %t34 = alloca i32 store ptr %arg_v, ptr %t0 store ptr %arg_target, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = call ptr @fn_llty(ptr %t2) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t0 %t6 = getelementptr inbounds %Cmp_Val, ptr %t5, i32 0, i32 1 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_llty(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t4 %t11 = load ptr, ptr %t9 %t12 = call i32 @fn_str_eq(ptr %t10, ptr %t11) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: %t14 = load ptr, ptr %t0 %t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 store ptr %t16, ptr %retval br label %ret ifend2: %t18 = load ptr, ptr %t4 %t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str5358) %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t17 br i1 %t20, label %sc3, label %scend4 sc3: %t22 = load ptr, ptr %t9 %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str5359) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t17 br label %scend4 scend4: %t26 = load i32, ptr %t17 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then5, label %ifend7 then5: %t28 = load ptr, ptr %t0 %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_str_concat(ptr @.str5360, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str5361) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %retval br label %ret ifend7: %t35 = load ptr, ptr %t4 %t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str5362) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t34 br i1 %t37, label %sc8, label %scend9 sc8: %t39 = load ptr, ptr %t9 %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str5363) %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t34 br label %scend9 scend9: %t43 = load i32, ptr %t34 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then10, label %ifend12 then10: %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0 %t47 = load ptr, ptr %t46 %t48 = call ptr @fn_str_concat(ptr @.str5364, ptr %t47) %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str5365) %t50 = call ptr @fn_emit_bind(ptr %t49) store ptr %t50, ptr %retval br label %ret ifend12: %t51 = load ptr, ptr %t0 %t52 = getelementptr inbounds %Cmp_Val, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 store ptr %t53, ptr %retval br label %ret ret: %t54 = load ptr, ptr %retval ret ptr %t54 } 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 @fn_str_eq(ptr %t4, ptr @.str5366) %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 @fn_str_concat(ptr @.str5367, ptr %t12) %t14 = call ptr @fn_str_concat(ptr %t13, ptr @.str5368) %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 @fn_str_eq(ptr %t3, ptr @.str5369) %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 @fn_str_concat(ptr @.str5370, ptr %t8) %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str5371) %t11 = load ptr, ptr %t2 %t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = call ptr @fn_str_concat(ptr %t10, ptr %t13) %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str5372) %t16 = call ptr @fn_emit_bind(ptr %t15) %t17 = call ptr @fn_val(ptr %t16, ptr @.str5373) 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 @fn_str_concat(ptr @.str5374, ptr %t20) %t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str5375) %t23 = load ptr, ptr %t2 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @fn_str_concat(ptr %t22, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str5376) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str5377) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then3, label %ifend5 then3: %t33 = load ptr, ptr %t29 %t34 = call ptr @fn_str_concat(ptr @.str5378, ptr %t33) %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str5379) %t36 = call ptr @fn_emit_bind(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_str_concat(ptr @.str5380, ptr %t38) %t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str5381) %t41 = call ptr @fn_emit_bind(ptr %t40) %t42 = call ptr @fn_val(ptr %t41, ptr @.str5382) store ptr %t42, ptr %retval br label %ret ifend5: %t43 = load ptr, ptr %t29 %t44 = call ptr @fn_val(ptr %t43, ptr @.str5383) store ptr %t44, ptr %retval br label %ret ret: %t45 = load ptr, ptr %retval ret ptr %t45 } 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 %t44 = alloca i32 %t45 = alloca i32 %t65 = alloca i32 %t76 = alloca i32 %t77 = alloca i32 %t106 = alloca i32 %t120 = alloca i32 %t121 = alloca i32 %t122 = alloca i32 %t123 = alloca i32 %t155 = alloca i32 %t164 = alloca ptr %t168 = alloca ptr %t169 = alloca ptr %t182 = alloca i32 %t214 = alloca ptr %t224 = alloca ptr %t227 = alloca ptr %t244 = alloca ptr %t247 = alloca ptr %t257 = alloca ptr %t262 = alloca ptr %t269 = alloca ptr %t274 = alloca ptr %t289 = alloca ptr %t294 = alloca ptr %t299 = alloca ptr %t306 = alloca ptr %t323 = alloca ptr %t341 = alloca ptr 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 @fn_str_eq(ptr %t4, ptr @.str5384) %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 @fn_str_eq(ptr %t10, ptr @.str5385) %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 %t22 %t30 = getelementptr inbounds %Cmp_Val, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = call ptr @fn_llty(ptr %t31) %t33 = call i32 @fn_str_eq(ptr %t32, ptr @.str5386) %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 %t27 %t37 = getelementptr inbounds %Cmp_Val, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_llty(ptr %t38) %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str5387) %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 store i32 %t43, ptr %t44 %t46 = load ptr, ptr %t0 %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 0 %t50 = load i32, ptr %t49 %t51 = icmp eq i32 %t50, 43 %t52 = zext i1 %t51 to i32 %t53 = icmp ne i32 %t52, 0 %t54 = zext i1 %t53 to i32 store i32 %t54, ptr %t45 br i1 %t53, label %scend8, label %sc7 sc7: %t55 = load ptr, ptr %t0 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 5 %t57 = load ptr, ptr %t56 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 0 %t59 = load i32, ptr %t58 %t60 = icmp eq i32 %t59, 43 %t61 = zext i1 %t60 to i32 %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t45 br label %scend8 scend8: %t64 = load i32, ptr %t45 store i32 %t64, ptr %t65 %t66 = load i32, ptr %t44 %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %then9, label %ifend11 then9: %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 %t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str5388) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then12, label %ifend14 then12: %t73 = load ptr, ptr %t22 %t74 = load ptr, ptr %t27 %t75 = call ptr @fn_emit_str_op(ptr @.str5389, ptr %t73, ptr %t74) store ptr %t75, ptr %retval br label %ret ifend14: %t78 = load ptr, ptr %t0 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 1 %t80 = load ptr, ptr %t79 %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str5390) %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t77 br i1 %t82, label %scend16, label %sc15 sc15: %t84 = load ptr, ptr %t0 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 %t87 = call i32 @fn_str_eq(ptr %t86, ptr @.str5391) %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t77 br label %scend16 scend16: %t90 = load i32, ptr %t77 %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t76 br i1 %t91, label %sc17, label %scend18 sc17: %t93 = load i32, ptr %t65 %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 %t76 br label %scend18 scend18: %t98 = load i32, ptr %t76 %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then19, label %ifend21 then19: %t100 = load ptr, ptr %t0 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 1 %t102 = load ptr, ptr %t101 %t103 = load ptr, ptr %t22 %t104 = load ptr, ptr %t27 %t105 = call ptr @fn_emit_str_op(ptr %t102, ptr %t103, ptr %t104) store ptr %t105, ptr %retval br label %ret ifend21: br label %ifend11 ifend11: %t107 = load ptr, ptr %t22 %t108 = getelementptr inbounds %Cmp_Val, ptr %t107, i32 0, i32 1 %t109 = load ptr, ptr %t108 %t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str5392) %t111 = icmp ne i32 %t110, 0 %t112 = zext i1 %t111 to i32 store i32 %t112, ptr %t106 br i1 %t111, label %scend23, label %sc22 sc22: %t113 = load ptr, ptr %t27 %t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 1 %t115 = load ptr, ptr %t114 %t116 = call i32 @fn_str_eq(ptr %t115, ptr @.str5393) %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t106 br label %scend23 scend23: %t119 = load i32, ptr %t106 store i32 %t119, ptr %t120 %t124 = load ptr, ptr %t22 %t125 = getelementptr inbounds %Cmp_Val, ptr %t124, i32 0, i32 1 %t126 = load ptr, ptr %t125 %t127 = call ptr @fn_llty(ptr %t126) %t128 = call i32 @fn_str_eq(ptr %t127, ptr @.str5394) %t129 = icmp ne i32 %t128, 0 %t130 = zext i1 %t129 to i32 store i32 %t130, ptr %t123 br i1 %t129, label %scend25, label %sc24 sc24: %t131 = load ptr, ptr %t27 %t132 = getelementptr inbounds %Cmp_Val, ptr %t131, i32 0, i32 1 %t133 = load ptr, ptr %t132 %t134 = call ptr @fn_llty(ptr %t133) %t135 = call i32 @fn_str_eq(ptr %t134, ptr @.str5395) %t136 = icmp ne i32 %t135, 0 %t137 = zext i1 %t136 to i32 store i32 %t137, ptr %t123 br label %scend25 scend25: %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 %sc26, label %scend27 sc26: %t141 = load i32, ptr %t120 %t142 = icmp eq i32 %t141, 0 %t143 = zext i1 %t142 to i32 %t144 = icmp ne i32 %t143, 0 %t145 = zext i1 %t144 to i32 store i32 %t145, ptr %t122 br label %scend27 scend27: %t146 = load i32, ptr %t122 %t147 = icmp ne i32 %t146, 0 %t148 = zext i1 %t147 to i32 store i32 %t148, ptr %t121 br i1 %t147, label %sc28, label %scend29 sc28: %t149 = load i32, ptr %t44 %t150 = icmp eq i32 %t149, 0 %t151 = zext i1 %t150 to i32 %t152 = icmp ne i32 %t151, 0 %t153 = zext i1 %t152 to i32 store i32 %t153, ptr %t121 br label %scend29 scend29: %t154 = load i32, ptr %t121 store i32 %t154, ptr %t155 %t156 = load ptr, ptr %t0 %t157 = getelementptr inbounds %Cmp_Node, ptr %t156, i32 0, i32 1 %t158 = load ptr, ptr %t157 %t159 = call i32 @fn_is_cmp(ptr %t158) %t160 = icmp ne i32 %t159, 0 br i1 %t160, label %then30, label %ifend32 then30: %t161 = load ptr, ptr %t22 %t162 = getelementptr inbounds %Cmp_Val, ptr %t161, i32 0, i32 0 %t163 = load ptr, ptr %t162 store ptr %t163, ptr %t164 %t165 = load ptr, ptr %t27 %t166 = getelementptr inbounds %Cmp_Val, ptr %t165, i32 0, i32 0 %t167 = load ptr, ptr %t166 store ptr %t167, ptr %t168 store ptr @.str5396, ptr %t169 %t170 = load i32, ptr %t120 %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then33, label %else34 then33: %t172 = load ptr, ptr %t22 %t173 = call ptr @fn_to_fixed(ptr %t172) store ptr %t173, ptr %t164 %t174 = load ptr, ptr %t27 %t175 = call ptr @fn_to_fixed(ptr %t174) store ptr %t175, ptr %t168 br label %ifend35 else34: %t176 = load i32, ptr %t155 %t177 = icmp ne i32 %t176, 0 br i1 %t177, label %then36, label %else37 then36: store ptr @.str5397, ptr %t169 %t178 = load ptr, ptr %t22 %t179 = call ptr @fn_to_long(ptr %t178) store ptr %t179, ptr %t164 %t180 = load ptr, ptr %t27 %t181 = call ptr @fn_to_long(ptr %t180) store ptr %t181, ptr %t168 br label %ifend38 else37: %t183 = load ptr, ptr %t22 %t184 = getelementptr inbounds %Cmp_Val, ptr %t183, i32 0, i32 1 %t185 = load ptr, ptr %t184 %t186 = call ptr @fn_llty(ptr %t185) %t187 = call i32 @fn_str_eq(ptr %t186, ptr @.str5398) %t188 = icmp ne i32 %t187, 0 %t189 = zext i1 %t188 to i32 store i32 %t189, ptr %t182 br i1 %t188, label %scend40, label %sc39 sc39: %t190 = load ptr, ptr %t27 %t191 = getelementptr inbounds %Cmp_Val, ptr %t190, i32 0, i32 1 %t192 = load ptr, ptr %t191 %t193 = call ptr @fn_llty(ptr %t192) %t194 = call i32 @fn_str_eq(ptr %t193, ptr @.str5399) %t195 = icmp ne i32 %t194, 0 %t196 = zext i1 %t195 to i32 store i32 %t196, ptr %t182 br label %scend40 scend40: %t197 = load i32, ptr %t182 %t198 = icmp ne i32 %t197, 0 br i1 %t198, label %then41, label %ifend43 then41: store ptr @.str5400, ptr %t169 br label %ifend43 ifend43: br label %ifend38 ifend38: br label %ifend35 ifend35: %t199 = load ptr, ptr %t0 %t200 = getelementptr inbounds %Cmp_Node, ptr %t199, i32 0, i32 1 %t201 = load ptr, ptr %t200 %t202 = call ptr @fn_cmp_code(ptr %t201) %t203 = call ptr @fn_str_concat(ptr @.str5401, ptr %t202) %t204 = call ptr @fn_str_concat(ptr %t203, ptr @.str5402) %t205 = load ptr, ptr %t169 %t206 = call ptr @fn_str_concat(ptr %t204, ptr %t205) %t207 = call ptr @fn_str_concat(ptr %t206, ptr @.str5403) %t208 = load ptr, ptr %t164 %t209 = call ptr @fn_str_concat(ptr %t207, ptr %t208) %t210 = call ptr @fn_str_concat(ptr %t209, ptr @.str5404) %t211 = load ptr, ptr %t168 %t212 = call ptr @fn_str_concat(ptr %t210, ptr %t211) %t213 = call ptr @fn_emit_bind(ptr %t212) store ptr %t213, ptr %t214 %t215 = load ptr, ptr %t214 %t216 = call ptr @fn_str_concat(ptr @.str5405, ptr %t215) %t217 = call ptr @fn_str_concat(ptr %t216, ptr @.str5406) %t218 = call ptr @fn_emit_bind(ptr %t217) %t219 = call ptr @fn_val(ptr %t218, ptr @.str5407) store ptr %t219, ptr %retval br label %ret ifend32: %t220 = load i32, ptr %t155 %t221 = icmp ne i32 %t220, 0 br i1 %t221, label %then44, label %ifend46 then44: %t222 = load ptr, ptr %t22 %t223 = call ptr @fn_to_long(ptr %t222) store ptr %t223, ptr %t224 %t225 = load ptr, ptr %t27 %t226 = call ptr @fn_to_long(ptr %t225) store ptr %t226, ptr %t227 %t228 = load ptr, ptr %t0 %t229 = getelementptr inbounds %Cmp_Node, ptr %t228, i32 0, i32 1 %t230 = load ptr, ptr %t229 %t231 = call ptr @fn_arith_code(ptr %t230) %t232 = call ptr @fn_str_concat(ptr %t231, ptr @.str5408) %t233 = load ptr, ptr %t224 %t234 = call ptr @fn_str_concat(ptr %t232, ptr %t233) %t235 = call ptr @fn_str_concat(ptr %t234, ptr @.str5409) %t236 = load ptr, ptr %t227 %t237 = call ptr @fn_str_concat(ptr %t235, ptr %t236) %t238 = call ptr @fn_emit_bind(ptr %t237) %t239 = call ptr @fn_val(ptr %t238, ptr @.str5410) store ptr %t239, ptr %retval br label %ret ifend46: %t240 = load i32, ptr %t120 %t241 = icmp ne i32 %t240, 0 br i1 %t241, label %then47, label %ifend49 then47: %t242 = load ptr, ptr %t22 %t243 = call ptr @fn_to_fixed(ptr %t242) store ptr %t243, ptr %t244 %t245 = load ptr, ptr %t27 %t246 = call ptr @fn_to_fixed(ptr %t245) store ptr %t246, ptr %t247 %t248 = load ptr, ptr %t0 %t249 = getelementptr inbounds %Cmp_Node, ptr %t248, i32 0, i32 1 %t250 = load ptr, ptr %t249 %t251 = call i32 @fn_str_eq(ptr %t250, ptr @.str5411) %t252 = icmp ne i32 %t251, 0 br i1 %t252, label %then50, label %ifend52 then50: %t253 = load ptr, ptr %t244 %t254 = call ptr @fn_str_concat(ptr @.str5412, ptr %t253) %t255 = call ptr @fn_str_concat(ptr %t254, ptr @.str5413) %t256 = call ptr @fn_emit_bind(ptr %t255) store ptr %t256, ptr %t257 %t258 = load ptr, ptr %t247 %t259 = call ptr @fn_str_concat(ptr @.str5414, ptr %t258) %t260 = call ptr @fn_str_concat(ptr %t259, ptr @.str5415) %t261 = call ptr @fn_emit_bind(ptr %t260) store ptr %t261, ptr %t262 %t263 = load ptr, ptr %t257 %t264 = call ptr @fn_str_concat(ptr @.str5416, ptr %t263) %t265 = call ptr @fn_str_concat(ptr %t264, ptr @.str5417) %t266 = load ptr, ptr %t262 %t267 = call ptr @fn_str_concat(ptr %t265, ptr %t266) %t268 = call ptr @fn_emit_bind(ptr %t267) store ptr %t268, ptr %t269 %t270 = load ptr, ptr %t269 %t271 = call ptr @fn_str_concat(ptr @.str5418, ptr %t270) %t272 = call ptr @fn_str_concat(ptr %t271, ptr @.str5419) %t273 = call ptr @fn_emit_bind(ptr %t272) store ptr %t273, ptr %t274 %t275 = load ptr, ptr %t274 %t276 = call ptr @fn_str_concat(ptr @.str5420, ptr %t275) %t277 = call ptr @fn_str_concat(ptr %t276, ptr @.str5421) %t278 = call ptr @fn_emit_bind(ptr %t277) %t279 = call ptr @fn_val(ptr %t278, ptr @.str5422) store ptr %t279, ptr %retval br label %ret ifend52: %t280 = load ptr, ptr %t0 %t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 1 %t282 = load ptr, ptr %t281 %t283 = call i32 @fn_str_eq(ptr %t282, ptr @.str5423) %t284 = icmp ne i32 %t283, 0 br i1 %t284, label %then53, label %ifend55 then53: %t285 = load ptr, ptr %t244 %t286 = call ptr @fn_str_concat(ptr @.str5424, ptr %t285) %t287 = call ptr @fn_str_concat(ptr %t286, ptr @.str5425) %t288 = call ptr @fn_emit_bind(ptr %t287) store ptr %t288, ptr %t289 %t290 = load ptr, ptr %t289 %t291 = call ptr @fn_str_concat(ptr @.str5426, ptr %t290) %t292 = call ptr @fn_str_concat(ptr %t291, ptr @.str5427) %t293 = call ptr @fn_emit_bind(ptr %t292) store ptr %t293, ptr %t294 %t295 = load ptr, ptr %t247 %t296 = call ptr @fn_str_concat(ptr @.str5428, ptr %t295) %t297 = call ptr @fn_str_concat(ptr %t296, ptr @.str5429) %t298 = call ptr @fn_emit_bind(ptr %t297) store ptr %t298, ptr %t299 %t300 = load ptr, ptr %t294 %t301 = call ptr @fn_str_concat(ptr @.str5430, ptr %t300) %t302 = call ptr @fn_str_concat(ptr %t301, ptr @.str5431) %t303 = load ptr, ptr %t299 %t304 = call ptr @fn_str_concat(ptr %t302, ptr %t303) %t305 = call ptr @fn_emit_bind(ptr %t304) store ptr %t305, ptr %t306 %t307 = load ptr, ptr %t306 %t308 = call ptr @fn_str_concat(ptr @.str5432, ptr %t307) %t309 = call ptr @fn_str_concat(ptr %t308, ptr @.str5433) %t310 = call ptr @fn_emit_bind(ptr %t309) %t311 = call ptr @fn_val(ptr %t310, ptr @.str5434) store ptr %t311, ptr %retval br label %ret ifend55: %t312 = load ptr, ptr %t0 %t313 = getelementptr inbounds %Cmp_Node, ptr %t312, i32 0, i32 1 %t314 = load ptr, ptr %t313 %t315 = call ptr @fn_arith_code(ptr %t314) %t316 = call ptr @fn_str_concat(ptr %t315, ptr @.str5435) %t317 = load ptr, ptr %t244 %t318 = call ptr @fn_str_concat(ptr %t316, ptr %t317) %t319 = call ptr @fn_str_concat(ptr %t318, ptr @.str5436) %t320 = load ptr, ptr %t247 %t321 = call ptr @fn_str_concat(ptr %t319, ptr %t320) %t322 = call ptr @fn_emit_bind(ptr %t321) store ptr %t322, ptr %t323 %t324 = load ptr, ptr %t323 %t325 = call ptr @fn_val(ptr %t324, ptr @.str5437) store ptr %t325, ptr %retval br label %ret ifend49: %t326 = load ptr, ptr %t0 %t327 = getelementptr inbounds %Cmp_Node, ptr %t326, i32 0, i32 1 %t328 = load ptr, ptr %t327 %t329 = call ptr @fn_arith_code(ptr %t328) %t330 = call ptr @fn_str_concat(ptr %t329, ptr @.str5438) %t331 = load ptr, ptr %t22 %t332 = getelementptr inbounds %Cmp_Val, ptr %t331, i32 0, i32 0 %t333 = load ptr, ptr %t332 %t334 = call ptr @fn_str_concat(ptr %t330, ptr %t333) %t335 = call ptr @fn_str_concat(ptr %t334, ptr @.str5439) %t336 = load ptr, ptr %t27 %t337 = getelementptr inbounds %Cmp_Val, ptr %t336, i32 0, i32 0 %t338 = load ptr, ptr %t337 %t339 = call ptr @fn_str_concat(ptr %t335, ptr %t338) %t340 = call ptr @fn_emit_bind(ptr %t339) store ptr %t340, ptr %t341 %t342 = load ptr, ptr %t341 %t343 = call ptr @fn_val(ptr %t342, ptr @.str5440) store ptr %t343, ptr %retval br label %ret ret: %t344 = load ptr, ptr %retval ret ptr %t344 } 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 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = load i32, ptr %t1 %t17 = getelementptr inbounds ptr, ptr %t15, i32 %t16 %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, 42 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %ifend5 then3: store i32 1, ptr %retval br label %ret ifend5: %t24 = load i32, ptr %t1 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t26 = load i32, ptr %retval ret i32 %t26 } define void @fn_reorder_named(ptr %arg_e, ptr %arg_labels) { entry: %t0 = alloca ptr %t1 = alloca ptr %t7 = alloca i32 %t49 = alloca ptr %t50 = alloca i32 %t58 = alloca ptr %t59 = 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 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t7 %t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 0 %t26 = load i32, ptr %t25 %t27 = icmp ne i32 %t26, 42 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then6, label %ifend8 then6: call void @fn_perr(ptr @.str5441) br label %ifend8 ifend8: %t30 = load i32, ptr %t7 %t31 = add i32 %t30, 1 store i32 %t31, ptr %t7 br label %wcond3 wend5: %t32 = load ptr, ptr %t0 %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 = load ptr, ptr %t1 %t38 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1 %t39 = load i32, ptr %t38 %t40 = icmp ne i32 %t36, %t39 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then9, label %ifend11 then9: call void @fn_perr(ptr @.str5442) br label %ifend11 ifend11: %t43 = getelementptr %LSlice, ptr null, i32 1 %t44 = ptrtoint ptr %t43 to i64 %t45 = call ptr @malloc(i64 %t44) %t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 0 store ptr null, ptr %t46 %t47 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 store i32 0, ptr %t47 %t48 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 2 store i32 0, ptr %t48 store ptr %t45, ptr %t49 store i32 0, ptr %t50 br label %wcond12 wcond12: %t51 = load i32, ptr %t50 %t52 = load ptr, ptr %t1 %t53 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1 %t54 = load i32, ptr %t53 %t55 = icmp slt i32 %t51, %t54 %t56 = zext i1 %t55 to i32 %t57 = icmp ne i32 %t56, 0 br i1 %t57, label %wbody13, label %wend14 wbody13: store ptr null, ptr %t58 store i32 0, ptr %t59 br label %wcond15 wcond15: %t60 = load i32, ptr %t59 %t61 = load ptr, ptr %t0 %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 %wbody16, label %wend17 wbody16: %t69 = load ptr, ptr %t0 %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 = load i32, ptr %t59 %t75 = getelementptr inbounds ptr, ptr %t73, i32 %t74 %t76 = load ptr, ptr %t75 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 1 %t78 = load ptr, ptr %t77 %t79 = load ptr, ptr %t1 %t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0 %t81 = load ptr, ptr %t80 %t82 = load i32, ptr %t50 %t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82 %t84 = load ptr, ptr %t83 %t85 = call i32 @fn_str_eq(ptr %t78, ptr %t84) %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then18, label %ifend20 then18: %t87 = load ptr, ptr %t0 %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 = load i32, ptr %t59 %t93 = getelementptr inbounds ptr, ptr %t91, i32 %t92 %t94 = load ptr, ptr %t93 store ptr %t94, ptr %t58 br label %ifend20 ifend20: %t95 = load i32, ptr %t59 %t96 = add i32 %t95, 1 store i32 %t96, ptr %t59 br label %wcond15 wend17: %t97 = load ptr, ptr %t58 %t98 = icmp eq ptr %t97, null %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then21, label %ifend23 then21: %t101 = load ptr, ptr %t1 %t102 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 0 %t103 = load ptr, ptr %t102 %t104 = load i32, ptr %t50 %t105 = getelementptr inbounds ptr, ptr %t103, i32 %t104 %t106 = load ptr, ptr %t105 %t107 = call ptr @fn_str_concat(ptr @.str5443, ptr %t106) call void @fn_perr(ptr %t107) br label %ifend23 ifend23: %t108 = load ptr, ptr %t49 %t109 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2 %t111 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0 %t112 = load i32, ptr %t109 %t113 = load i32, ptr %t110 %t114 = icmp sge i32 %t112, %t113 br i1 %t114, label %grow24, label %put25 grow24: %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 %put25 put25: %t124 = load ptr, ptr %t58 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 4 %t126 = load ptr, ptr %t125 %t127 = load ptr, ptr %t111 %t128 = getelementptr inbounds ptr, ptr %t127, i32 %t112 store ptr %t126, ptr %t128 %t129 = add i32 %t112, 1 store i32 %t129, ptr %t109 %t130 = load i32, ptr %t50 %t131 = add i32 %t130, 1 store i32 %t131, ptr %t50 br label %wcond12 wend14: %t132 = load ptr, ptr %t0 %t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 7 %t134 = load ptr, ptr %t49 store ptr %t134, ptr %t133 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 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t8 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 0 %t27 = load i32, ptr %t26 %t28 = icmp eq i32 %t27, 5 %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 %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 2 %t34 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t35 = load i32, ptr %t32 %t36 = load i32, ptr %t33 %t37 = icmp sge i32 %t35, %t36 br i1 %t37, label %grow6, label %put7 grow6: %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 %put7 put7: %t47 = load ptr, ptr %t0 %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 = load i32, ptr %t8 %t53 = getelementptr inbounds ptr, ptr %t51, i32 %t52 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %t55 %t57 = load ptr, ptr %t34 %t58 = getelementptr inbounds ptr, ptr %t57, i32 %t35 store ptr %t56, ptr %t58 %t59 = add i32 %t35, 1 store i32 %t59, ptr %t32 br label %ifend5 ifend5: %t60 = load i32, ptr %t8 %t61 = add i32 %t60, 1 store i32 %t61, ptr %t8 br label %wcond0 wend2: %t62 = load ptr, ptr %t7 store ptr %t62, ptr %retval br label %ret ret: %t63 = load ptr, ptr %retval ret ptr %t63 } 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 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t8 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 0 %t27 = load i32, ptr %t26 %t28 = icmp eq i32 %t27, 5 %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 %t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1 %t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 2 %t34 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0 %t35 = load i32, ptr %t32 %t36 = load i32, ptr %t33 %t37 = icmp sge i32 %t35, %t36 br i1 %t37, label %grow6, label %put7 grow6: %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 %put7 put7: %t47 = load ptr, ptr %t0 %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 = load i32, ptr %t8 %t53 = getelementptr inbounds ptr, ptr %t51, i32 %t52 %t54 = load ptr, ptr %t53 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 3 %t56 = load ptr, ptr %t55 %t57 = load ptr, ptr %t34 %t58 = getelementptr inbounds ptr, ptr %t57, i32 %t35 store ptr %t56, ptr %t58 %t59 = add i32 %t35, 1 store i32 %t59, ptr %t32 br label %ifend5 ifend5: %t60 = load i32, ptr %t8 %t61 = add i32 %t60, 1 store i32 %t61, ptr %t8 br label %wcond0 wend2: %t62 = load ptr, ptr %t7 store ptr %t62, ptr %retval br label %ret ret: %t63 = load ptr, ptr %retval ret ptr %t63 } 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 @.str5444) store ptr %t4, ptr %t5 %t6 = call ptr @fn_lbl(ptr @.str5445) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t0 %t9 = call ptr @fn_str_concat(ptr @.str5446, ptr %t8) %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str5447) %t11 = load ptr, ptr %t5 %t12 = call ptr @fn_str_concat(ptr %t10, ptr %t11) %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str5448) %t14 = load ptr, ptr %t7 %t15 = call ptr @fn_str_concat(ptr %t13, ptr %t14) %t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str5449) call void @fn_emit(ptr %t16) %t17 = load ptr, ptr %t7 %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str5450) call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str5451) %t19 = load ptr, ptr %t2 %t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str5452) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then0, label %else1 then0: %t22 = load ptr, ptr %t1 %t23 = call ptr @fn_str_concat(ptr @.str5453, ptr %t22) %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str5454) call void @fn_emit(ptr %t24) br label %ifend2 else1: %t25 = load ptr, ptr %t1 %t26 = call ptr @fn_str_concat(ptr @.str5455, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str5456) %t28 = load ptr, ptr %t2 %t29 = call ptr @fn_str_concat(ptr %t27, ptr %t28) %t30 = call ptr @fn_str_concat(ptr %t29, ptr @.str5457) %t31 = load ptr, ptr %t3 %t32 = call ptr @fn_str_concat(ptr %t30, ptr %t31) %t33 = call ptr @fn_str_concat(ptr %t32, ptr @.str5458) call void @fn_emit(ptr %t33) br label %ifend2 ifend2: %t34 = load ptr, ptr %t5 %t35 = call ptr @fn_str_concat(ptr @.str5459, ptr %t34) %t36 = call ptr @fn_str_concat(ptr %t35, ptr @.str5460) call void @fn_emit(ptr %t36) %t37 = load ptr, ptr %t5 %t38 = call ptr @fn_str_concat(ptr %t37, ptr @.str5461) call void @fn_emit(ptr %t38) br label %ret ret: ret void } 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 %t278 = alloca ptr %t285 = alloca ptr %t4090 = alloca ptr store ptr %arg_ns, ptr %t0 store ptr %arg_meth, ptr %t1 store ptr %arg_e, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str5462) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 %t7 = call i32 @fn_is_math_ns(ptr %t6) %t8 = icmp ne i32 %t7, 0 br i1 %t8, label %then3, label %ifend5 then3: %t9 = load ptr, ptr %t1 %t10 = load ptr, ptr %t2 %t11 = call ptr @fn_emit_math_ns(ptr %t9, ptr %t10) store ptr %t11, ptr %retval br label %ret ifend5: %t12 = load ptr, ptr %t1 %t13 = call ptr @fn_str_concat(ptr @.str5463, ptr %t12) call void @fn_perr(ptr %t13) br label %ifend2 ifend2: %t14 = load ptr, ptr %t0 %t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str5464) %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then6, label %ifend8 then6: %t17 = load ptr, ptr %t1 %t18 = call i32 @fn_is_text_ns(ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then9, label %ifend11 then9: %t20 = load ptr, ptr %t1 %t21 = load ptr, ptr %t2 %t22 = call ptr @fn_emit_text_ns(ptr %t20, ptr %t21) store ptr %t22, ptr %retval br label %ret ifend11: %t23 = load ptr, ptr %t1 %t24 = call ptr @fn_str_concat(ptr @.str5465, ptr %t23) call void @fn_perr(ptr %t24) br label %ifend8 ifend8: %t25 = load ptr, ptr %t0 %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str5466) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then12, label %ifend14 then12: %t28 = load ptr, ptr %t1 %t29 = call i32 @fn_is_list_ns(ptr %t28) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then15, label %ifend17 then15: %t31 = load ptr, ptr %t1 %t32 = load ptr, ptr %t2 %t33 = call ptr @fn_emit_list_ns(ptr %t31, ptr %t32) store ptr %t33, ptr %retval br label %ret ifend17: %t34 = load ptr, ptr %t1 %t35 = call ptr @fn_str_concat(ptr @.str5467, ptr %t34) call void @fn_perr(ptr %t35) br label %ifend14 ifend14: %t36 = load ptr, ptr %t0 %t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str5468) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then18, label %ifend20 then18: %t39 = load ptr, ptr %t1 %t40 = call i32 @fn_is_ease_ns(ptr %t39) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then21, label %ifend23 then21: %t42 = load ptr, ptr %t1 %t43 = load ptr, ptr %t2 %t44 = call ptr @fn_emit_ease_ns(ptr %t42, ptr %t43) store ptr %t44, ptr %retval br label %ret ifend23: %t45 = load ptr, ptr %t1 %t46 = call ptr @fn_str_concat(ptr @.str5469, ptr %t45) call void @fn_perr(ptr %t46) br label %ifend20 ifend20: %t47 = load ptr, ptr %t0 %t48 = call i32 @fn_str_eq(ptr %t47, ptr @.str5470) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then24, label %ifend26 then24: %t50 = load ptr, ptr %t1 %t51 = call i32 @fn_is_anim_ns(ptr %t50) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then27, label %ifend29 then27: %t53 = load ptr, ptr %t1 %t54 = load ptr, ptr %t2 %t55 = call ptr @fn_emit_anim_ns(ptr %t53, ptr %t54) store ptr %t55, ptr %retval br label %ret ifend29: %t56 = load ptr, ptr %t1 %t57 = call ptr @fn_str_concat(ptr @.str5471, ptr %t56) call void @fn_perr(ptr %t57) br label %ifend26 ifend26: %t58 = load ptr, ptr %t0 %t59 = call i32 @fn_str_eq(ptr %t58, ptr @.str5472) %t60 = icmp ne i32 %t59, 0 br i1 %t60, label %then30, label %ifend32 then30: %t61 = load ptr, ptr %t1 %t62 = call i32 @fn_is_tween_ns(ptr %t61) %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then33, label %ifend35 then33: %t64 = load ptr, ptr %t1 %t65 = load ptr, ptr %t2 %t66 = call ptr @fn_emit_tween_ns(ptr %t64, ptr %t65) store ptr %t66, ptr %retval br label %ret ifend35: %t67 = load ptr, ptr %t1 %t68 = call ptr @fn_str_concat(ptr @.str5473, ptr %t67) call void @fn_perr(ptr %t68) br label %ifend32 ifend32: %t69 = load ptr, ptr %t0 %t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str5474) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then36, label %ifend38 then36: %t72 = load ptr, ptr %t1 %t73 = call i32 @fn_is_collide_ns(ptr %t72) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then39, label %ifend41 then39: %t75 = load ptr, ptr %t1 %t76 = load ptr, ptr %t2 %t77 = call ptr @fn_emit_collide_ns(ptr %t75, ptr %t76) store ptr %t77, ptr %retval br label %ret ifend41: %t78 = load ptr, ptr %t1 %t79 = call ptr @fn_str_concat(ptr @.str5475, ptr %t78) call void @fn_perr(ptr %t79) br label %ifend38 ifend38: %t80 = load ptr, ptr %t0 %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str5476) %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then42, label %ifend44 then42: %t83 = load ptr, ptr %t1 %t84 = call i32 @fn_is_mem_ns(ptr %t83) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then45, label %ifend47 then45: %t86 = load ptr, ptr %t1 %t87 = load ptr, ptr %t2 %t88 = call ptr @fn_emit_mem_ns(ptr %t86, ptr %t87) store ptr %t88, ptr %retval br label %ret ifend47: %t89 = load ptr, ptr %t1 %t90 = call ptr @fn_str_concat(ptr @.str5477, ptr %t89) call void @fn_perr(ptr %t90) br label %ifend44 ifend44: %t91 = load ptr, ptr %t0 %t92 = call i32 @fn_str_eq(ptr %t91, ptr @.str5478) %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then48, label %ifend50 then48: %t94 = load ptr, ptr %t1 %t95 = call i32 @fn_is_colorfn_ns(ptr %t94) %t96 = icmp ne i32 %t95, 0 br i1 %t96, label %then51, label %ifend53 then51: %t97 = load ptr, ptr %t1 %t98 = load ptr, ptr %t2 %t99 = call ptr @fn_emit_colorfn_ns(ptr %t97, ptr %t98) store ptr %t99, ptr %retval br label %ret ifend53: %t100 = load ptr, ptr %t1 %t101 = call ptr @fn_str_concat(ptr @.str5479, ptr %t100) call void @fn_perr(ptr %t101) br label %ifend50 ifend50: %t102 = load ptr, ptr %t0 %t103 = call i32 @fn_str_eq(ptr %t102, ptr @.str5480) %t104 = icmp ne i32 %t103, 0 br i1 %t104, label %then54, label %ifend56 then54: %t105 = load ptr, ptr %t1 %t106 = call i32 @fn_is_time_ns(ptr %t105) %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then57, label %ifend59 then57: %t108 = load ptr, ptr %t1 %t109 = load ptr, ptr %t2 %t110 = call ptr @fn_emit_time_ns(ptr %t108, ptr %t109) store ptr %t110, ptr %retval br label %ret ifend59: %t111 = load ptr, ptr %t1 %t112 = call ptr @fn_str_concat(ptr @.str5481, ptr %t111) call void @fn_perr(ptr %t112) br label %ifend56 ifend56: %t113 = load ptr, ptr %t0 %t114 = call i32 @fn_str_eq(ptr %t113, ptr @.str5482) %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then60, label %ifend62 then60: %t116 = load ptr, ptr %t1 %t117 = call i32 @fn_is_hash_ns(ptr %t116) %t118 = icmp ne i32 %t117, 0 br i1 %t118, label %then63, label %ifend65 then63: %t119 = load ptr, ptr %t1 %t120 = load ptr, ptr %t2 %t121 = call ptr @fn_emit_hash_ns(ptr %t119, ptr %t120) store ptr %t121, ptr %retval br label %ret ifend65: %t122 = load ptr, ptr %t1 %t123 = call ptr @fn_str_concat(ptr @.str5483, ptr %t122) call void @fn_perr(ptr %t123) br label %ifend62 ifend62: %t124 = load ptr, ptr %t0 %t125 = call i32 @fn_str_eq(ptr %t124, ptr @.str5484) %t126 = icmp ne i32 %t125, 0 br i1 %t126, label %then66, label %ifend68 then66: %t127 = load ptr, ptr %t1 %t128 = call i32 @fn_is_crypto_ns(ptr %t127) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then69, label %ifend71 then69: %t130 = load ptr, ptr %t1 %t131 = load ptr, ptr %t2 %t132 = call ptr @fn_emit_crypto_ns(ptr %t130, ptr %t131) store ptr %t132, ptr %retval br label %ret ifend71: %t133 = load ptr, ptr %t1 %t134 = call ptr @fn_str_concat(ptr @.str5485, ptr %t133) call void @fn_perr(ptr %t134) br label %ifend68 ifend68: %t135 = load ptr, ptr %t0 %t136 = call i32 @fn_str_eq(ptr %t135, ptr @.str5486) %t137 = icmp ne i32 %t136, 0 br i1 %t137, label %then72, label %ifend74 then72: %t138 = load ptr, ptr %t1 %t139 = call i32 @fn_is_uuid_ns(ptr %t138) %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %then75, label %ifend77 then75: %t141 = load ptr, ptr %t1 %t142 = load ptr, ptr %t2 %t143 = call ptr @fn_emit_uuid_ns(ptr %t141, ptr %t142) store ptr %t143, ptr %retval br label %ret ifend77: %t144 = load ptr, ptr %t1 %t145 = call ptr @fn_str_concat(ptr @.str5487, ptr %t144) call void @fn_perr(ptr %t145) br label %ifend74 ifend74: %t146 = load ptr, ptr %t0 %t147 = call i32 @fn_str_eq(ptr %t146, ptr @.str5488) %t148 = icmp ne i32 %t147, 0 br i1 %t148, label %then78, label %ifend80 then78: %t149 = load ptr, ptr %t1 %t150 = call i32 @fn_is_noise_ns(ptr %t149) %t151 = icmp ne i32 %t150, 0 br i1 %t151, label %then81, label %ifend83 then81: %t152 = load ptr, ptr %t1 %t153 = load ptr, ptr %t2 %t154 = call ptr @fn_emit_noise_ns(ptr %t152, ptr %t153) store ptr %t154, ptr %retval br label %ret ifend83: %t155 = load ptr, ptr %t1 %t156 = call ptr @fn_str_concat(ptr @.str5489, ptr %t155) call void @fn_perr(ptr %t156) br label %ifend80 ifend80: %t157 = load ptr, ptr %t0 %t158 = call i32 @fn_str_eq(ptr %t157, ptr @.str5490) %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then84, label %ifend86 then84: %t160 = load ptr, ptr %t1 %t161 = call i32 @fn_is_log_ns(ptr %t160) %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then87, label %ifend89 then87: %t163 = load ptr, ptr %t1 %t164 = load ptr, ptr %t2 %t165 = call ptr @fn_emit_log_ns(ptr %t163, ptr %t164) store ptr %t165, ptr %retval br label %ret ifend89: %t166 = load ptr, ptr %t1 %t167 = call ptr @fn_str_concat(ptr @.str5491, ptr %t166) call void @fn_perr(ptr %t167) br label %ifend86 ifend86: %t168 = load ptr, ptr %t0 %t169 = call i32 @fn_str_eq(ptr %t168, ptr @.str5492) %t170 = icmp ne i32 %t169, 0 br i1 %t170, label %then90, label %ifend92 then90: %t171 = load ptr, ptr %t1 %t172 = call i32 @fn_is_os_ns(ptr %t171) %t173 = icmp ne i32 %t172, 0 br i1 %t173, label %then93, label %ifend95 then93: %t174 = load ptr, ptr %t1 %t175 = load ptr, ptr %t2 %t176 = call ptr @fn_emit_os_ns(ptr %t174, ptr %t175) store ptr %t176, ptr %retval br label %ret ifend95: %t177 = load ptr, ptr %t1 %t178 = call ptr @fn_str_concat(ptr @.str5493, ptr %t177) call void @fn_perr(ptr %t178) br label %ifend92 ifend92: %t179 = load ptr, ptr %t0 %t180 = call i32 @fn_str_eq(ptr %t179, ptr @.str5494) %t181 = icmp ne i32 %t180, 0 br i1 %t181, label %then96, label %ifend98 then96: %t182 = load ptr, ptr %t1 %t183 = call i32 @fn_is_unicode_ns(ptr %t182) %t184 = icmp ne i32 %t183, 0 br i1 %t184, label %then99, label %ifend101 then99: %t185 = load ptr, ptr %t1 %t186 = load ptr, ptr %t2 %t187 = call ptr @fn_emit_unicode_ns(ptr %t185, ptr %t186) store ptr %t187, ptr %retval br label %ret ifend101: %t188 = load ptr, ptr %t1 %t189 = call ptr @fn_str_concat(ptr @.str5495, ptr %t188) call void @fn_perr(ptr %t189) br label %ifend98 ifend98: %t190 = load ptr, ptr %t0 %t191 = call i32 @fn_str_eq(ptr %t190, ptr @.str5496) %t192 = icmp ne i32 %t191, 0 br i1 %t192, label %then102, label %ifend104 then102: %t193 = load ptr, ptr %t1 %t194 = call i32 @fn_is_fs_ns(ptr %t193) %t195 = icmp ne i32 %t194, 0 br i1 %t195, label %then105, label %ifend107 then105: %t196 = load ptr, ptr %t1 %t197 = load ptr, ptr %t2 %t198 = call ptr @fn_emit_fs_ns(ptr %t196, ptr %t197) store ptr %t198, ptr %retval br label %ret ifend107: %t199 = load ptr, ptr %t1 %t200 = call ptr @fn_str_concat(ptr @.str5497, ptr %t199) call void @fn_perr(ptr %t200) br label %ifend104 ifend104: %t201 = load ptr, ptr %t0 %t202 = call i32 @fn_str_eq(ptr %t201, ptr @.str5498) %t203 = icmp ne i32 %t202, 0 br i1 %t203, label %then108, label %ifend110 then108: %t204 = load ptr, ptr %t1 %t205 = call i32 @fn_is_path_ns(ptr %t204) %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then111, label %ifend113 then111: %t207 = load ptr, ptr %t1 %t208 = load ptr, ptr %t2 %t209 = call ptr @fn_emit_path_ns(ptr %t207, ptr %t208) store ptr %t209, ptr %retval br label %ret ifend113: %t210 = load ptr, ptr %t1 %t211 = call ptr @fn_str_concat(ptr @.str5499, ptr %t210) call void @fn_perr(ptr %t211) br label %ifend110 ifend110: %t212 = load ptr, ptr %t0 %t213 = call i32 @fn_str_eq(ptr %t212, ptr @.str5500) %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %then114, label %ifend116 then114: %t215 = load ptr, ptr %t1 %t216 = call i32 @fn_is_mime_ns(ptr %t215) %t217 = icmp ne i32 %t216, 0 br i1 %t217, label %then117, label %ifend119 then117: %t218 = load ptr, ptr %t1 %t219 = load ptr, ptr %t2 %t220 = call ptr @fn_emit_mime_ns(ptr %t218, ptr %t219) store ptr %t220, ptr %retval br label %ret ifend119: %t221 = load ptr, ptr %t1 %t222 = call ptr @fn_str_concat(ptr @.str5501, ptr %t221) call void @fn_perr(ptr %t222) br label %ifend116 ifend116: %t223 = load ptr, ptr %t0 %t224 = call i32 @fn_str_eq(ptr %t223, ptr @.str5502) %t225 = icmp ne i32 %t224, 0 br i1 %t225, label %then120, label %ifend122 then120: %t226 = load ptr, ptr %t1 %t227 = call i32 @fn_is_vector_ns(ptr %t226) %t228 = icmp ne i32 %t227, 0 br i1 %t228, label %then123, label %ifend125 then123: %t229 = load ptr, ptr %t1 %t230 = load ptr, ptr %t2 %t231 = call ptr @fn_emit_vector_ns(ptr %t229, ptr %t230) store ptr %t231, ptr %retval br label %ret ifend125: %t232 = load ptr, ptr %t1 %t233 = call ptr @fn_str_concat(ptr @.str5503, ptr %t232) call void @fn_perr(ptr %t233) br label %ifend122 ifend122: %t234 = load ptr, ptr %t0 %t235 = call i32 @fn_str_eq(ptr %t234, ptr @.str5504) %t236 = icmp ne i32 %t235, 0 br i1 %t236, label %then126, label %ifend128 then126: %t237 = load ptr, ptr %t1 %t238 = call i32 @fn_is_duration_ns(ptr %t237) %t239 = icmp ne i32 %t238, 0 br i1 %t239, label %then129, label %ifend131 then129: %t240 = load ptr, ptr %t1 %t241 = load ptr, ptr %t2 %t242 = call ptr @fn_emit_duration_ns(ptr %t240, ptr %t241) store ptr %t242, ptr %retval br label %ret ifend131: %t243 = load ptr, ptr %t1 %t244 = call ptr @fn_str_concat(ptr @.str5505, ptr %t243) call void @fn_perr(ptr %t244) br label %ifend128 ifend128: %t245 = load ptr, ptr %t0 %t246 = call i32 @fn_str_eq(ptr %t245, ptr @.str5506) %t247 = icmp ne i32 %t246, 0 br i1 %t247, label %then132, label %ifend134 then132: %t248 = load ptr, ptr %t1 %t249 = call i32 @fn_is_date_ns(ptr %t248) %t250 = icmp ne i32 %t249, 0 br i1 %t250, label %then135, label %ifend137 then135: %t251 = load ptr, ptr %t1 %t252 = load ptr, ptr %t2 %t253 = call ptr @fn_emit_date_ns(ptr %t251, ptr %t252) store ptr %t253, ptr %retval br label %ret ifend137: %t254 = load ptr, ptr %t1 %t255 = call ptr @fn_str_concat(ptr @.str5507, ptr %t254) call void @fn_perr(ptr %t255) br label %ifend134 ifend134: %t256 = load ptr, ptr %t0 %t257 = call i32 @fn_str_eq(ptr %t256, ptr @.str5508) %t258 = icmp ne i32 %t257, 0 br i1 %t258, label %then138, label %ifend140 then138: %t259 = load ptr, ptr %t1 %t260 = call i32 @fn_is_datetime_ns(ptr %t259) %t261 = icmp ne i32 %t260, 0 br i1 %t261, label %then141, label %ifend143 then141: %t262 = load ptr, ptr %t1 %t263 = load ptr, ptr %t2 %t264 = call ptr @fn_emit_datetime_ns(ptr %t262, ptr %t263) store ptr %t264, ptr %retval br label %ret ifend143: %t265 = load ptr, ptr %t1 %t266 = call ptr @fn_str_concat(ptr @.str5509, ptr %t265) call void @fn_perr(ptr %t266) br label %ifend140 ifend140: %t267 = load ptr, ptr %t0 %t268 = call i32 @fn_str_eq(ptr %t267, ptr @.str5510) %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then144, label %ifend146 then144: %t270 = load ptr, ptr %t1 %t271 = call i32 @fn_is_clock_ns(ptr %t270) %t272 = icmp ne i32 %t271, 0 br i1 %t272, label %then147, label %ifend149 then147: %t273 = load ptr, ptr %t1 %t274 = load ptr, ptr %t2 %t275 = call ptr @fn_emit_clock_ns(ptr %t273, ptr %t274) store ptr %t275, ptr %retval br label %ret ifend149: %t276 = load ptr, ptr %t1 %t277 = call ptr @fn_str_concat(ptr @.str5511, ptr %t276) call void @fn_perr(ptr %t277) br label %ifend146 ifend146: store ptr null, ptr %t278 %t279 = getelementptr %LSlice, ptr null, i32 1 %t280 = ptrtoint ptr %t279 to i64 %t281 = call ptr @malloc(i64 %t280) %t282 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 0 store ptr null, ptr %t282 %t283 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 1 store i32 0, ptr %t283 %t284 = getelementptr inbounds %LSlice, ptr %t281, i32 0, i32 2 store i32 0, ptr %t284 store ptr %t281, ptr %t285 %t286 = load ptr, ptr %t0 %t287 = call i32 @fn_str_eq(ptr %t286, ptr @.str5512) %t288 = icmp ne i32 %t287, 0 br i1 %t288, label %then150, label %ifend152 then150: %t289 = load ptr, ptr %t1 %t290 = call i32 @fn_str_eq(ptr %t289, ptr @.str5513) %t291 = icmp ne i32 %t290, 0 br i1 %t291, label %then153, label %ifend155 then153: store ptr @.str5514, ptr %t278 %t292 = load ptr, ptr %t285 %t293 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 1 %t294 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 2 %t295 = getelementptr inbounds %LSlice, ptr %t292, i32 0, i32 0 %t296 = load i32, ptr %t293 %t297 = load i32, ptr %t294 %t298 = icmp sge i32 %t296, %t297 br i1 %t298, label %grow156, label %put157 grow156: %t299 = mul i32 %t297, 2 %t300 = icmp eq i32 %t297, 0 %t301 = select i1 %t300, i32 8, i32 %t299 %t302 = getelementptr ptr, ptr null, i32 1 %t303 = ptrtoint ptr %t302 to i64 %t304 = zext i32 %t301 to i64 %t305 = mul i64 %t304, %t303 %t306 = load ptr, ptr %t295 %t307 = call ptr @realloc(ptr %t306, i64 %t305) store ptr %t307, ptr %t295 store i32 %t301, ptr %t294 br label %put157 put157: %t308 = load ptr, ptr %t295 %t309 = getelementptr inbounds ptr, ptr %t308, i32 %t296 store ptr @.str5515, ptr %t309 %t310 = add i32 %t296, 1 store i32 %t310, ptr %t293 br label %ifend155 ifend155: %t311 = load ptr, ptr %t1 %t312 = call i32 @fn_str_eq(ptr %t311, ptr @.str5516) %t313 = icmp ne i32 %t312, 0 br i1 %t313, label %then158, label %ifend160 then158: store ptr @.str5517, ptr %t278 %t314 = load ptr, ptr %t285 %t315 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 1 %t316 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 2 %t317 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 0 %t318 = load i32, ptr %t315 %t319 = load i32, ptr %t316 %t320 = icmp sge i32 %t318, %t319 br i1 %t320, label %grow161, label %put162 grow161: %t321 = mul i32 %t319, 2 %t322 = icmp eq i32 %t319, 0 %t323 = select i1 %t322, i32 8, i32 %t321 %t324 = getelementptr ptr, ptr null, i32 1 %t325 = ptrtoint ptr %t324 to i64 %t326 = zext i32 %t323 to i64 %t327 = mul i64 %t326, %t325 %t328 = load ptr, ptr %t317 %t329 = call ptr @realloc(ptr %t328, i64 %t327) store ptr %t329, ptr %t317 store i32 %t323, ptr %t316 br label %put162 put162: %t330 = load ptr, ptr %t317 %t331 = getelementptr inbounds ptr, ptr %t330, i32 %t318 store ptr @.str5518, ptr %t331 %t332 = add i32 %t318, 1 store i32 %t332, ptr %t315 %t333 = load ptr, ptr %t285 %t334 = getelementptr inbounds %LSlice, ptr %t333, i32 0, i32 1 %t335 = getelementptr inbounds %LSlice, ptr %t333, i32 0, i32 2 %t336 = getelementptr inbounds %LSlice, ptr %t333, i32 0, i32 0 %t337 = load i32, ptr %t334 %t338 = load i32, ptr %t335 %t339 = icmp sge i32 %t337, %t338 br i1 %t339, label %grow163, label %put164 grow163: %t340 = mul i32 %t338, 2 %t341 = icmp eq i32 %t338, 0 %t342 = select i1 %t341, i32 8, i32 %t340 %t343 = getelementptr ptr, ptr null, i32 1 %t344 = ptrtoint ptr %t343 to i64 %t345 = zext i32 %t342 to i64 %t346 = mul i64 %t345, %t344 %t347 = load ptr, ptr %t336 %t348 = call ptr @realloc(ptr %t347, i64 %t346) store ptr %t348, ptr %t336 store i32 %t342, ptr %t335 br label %put164 put164: %t349 = load ptr, ptr %t336 %t350 = getelementptr inbounds ptr, ptr %t349, i32 %t337 store ptr @.str5519, ptr %t350 %t351 = add i32 %t337, 1 store i32 %t351, ptr %t334 %t352 = load ptr, ptr %t285 %t353 = getelementptr inbounds %LSlice, ptr %t352, i32 0, i32 1 %t354 = getelementptr inbounds %LSlice, ptr %t352, i32 0, i32 2 %t355 = getelementptr inbounds %LSlice, ptr %t352, i32 0, i32 0 %t356 = load i32, ptr %t353 %t357 = load i32, ptr %t354 %t358 = icmp sge i32 %t356, %t357 br i1 %t358, label %grow165, label %put166 grow165: %t359 = mul i32 %t357, 2 %t360 = icmp eq i32 %t357, 0 %t361 = select i1 %t360, i32 8, i32 %t359 %t362 = getelementptr ptr, ptr null, i32 1 %t363 = ptrtoint ptr %t362 to i64 %t364 = zext i32 %t361 to i64 %t365 = mul i64 %t364, %t363 %t366 = load ptr, ptr %t355 %t367 = call ptr @realloc(ptr %t366, i64 %t365) store ptr %t367, ptr %t355 store i32 %t361, ptr %t354 br label %put166 put166: %t368 = load ptr, ptr %t355 %t369 = getelementptr inbounds ptr, ptr %t368, i32 %t356 store ptr @.str5520, ptr %t369 %t370 = add i32 %t356, 1 store i32 %t370, ptr %t353 %t371 = load ptr, ptr %t285 %t372 = getelementptr inbounds %LSlice, ptr %t371, i32 0, i32 1 %t373 = getelementptr inbounds %LSlice, ptr %t371, i32 0, i32 2 %t374 = getelementptr inbounds %LSlice, ptr %t371, i32 0, i32 0 %t375 = load i32, ptr %t372 %t376 = load i32, ptr %t373 %t377 = icmp sge i32 %t375, %t376 br i1 %t377, label %grow167, label %put168 grow167: %t378 = mul i32 %t376, 2 %t379 = icmp eq i32 %t376, 0 %t380 = select i1 %t379, i32 8, i32 %t378 %t381 = getelementptr ptr, ptr null, i32 1 %t382 = ptrtoint ptr %t381 to i64 %t383 = zext i32 %t380 to i64 %t384 = mul i64 %t383, %t382 %t385 = load ptr, ptr %t374 %t386 = call ptr @realloc(ptr %t385, i64 %t384) store ptr %t386, ptr %t374 store i32 %t380, ptr %t373 br label %put168 put168: %t387 = load ptr, ptr %t374 %t388 = getelementptr inbounds ptr, ptr %t387, i32 %t375 store ptr @.str5521, ptr %t388 %t389 = add i32 %t375, 1 store i32 %t389, ptr %t372 %t390 = load ptr, ptr %t285 %t391 = getelementptr inbounds %LSlice, ptr %t390, i32 0, i32 1 %t392 = getelementptr inbounds %LSlice, ptr %t390, i32 0, i32 2 %t393 = getelementptr inbounds %LSlice, ptr %t390, i32 0, i32 0 %t394 = load i32, ptr %t391 %t395 = load i32, ptr %t392 %t396 = icmp sge i32 %t394, %t395 br i1 %t396, label %grow169, label %put170 grow169: %t397 = mul i32 %t395, 2 %t398 = icmp eq i32 %t395, 0 %t399 = select i1 %t398, i32 8, i32 %t397 %t400 = getelementptr ptr, ptr null, i32 1 %t401 = ptrtoint ptr %t400 to i64 %t402 = zext i32 %t399 to i64 %t403 = mul i64 %t402, %t401 %t404 = load ptr, ptr %t393 %t405 = call ptr @realloc(ptr %t404, i64 %t403) store ptr %t405, ptr %t393 store i32 %t399, ptr %t392 br label %put170 put170: %t406 = load ptr, ptr %t393 %t407 = getelementptr inbounds ptr, ptr %t406, i32 %t394 store ptr @.str5522, ptr %t407 %t408 = add i32 %t394, 1 store i32 %t408, ptr %t391 br label %ifend160 ifend160: %t409 = load ptr, ptr %t1 %t410 = call i32 @fn_str_eq(ptr %t409, ptr @.str5523) %t411 = icmp ne i32 %t410, 0 br i1 %t411, label %then171, label %ifend173 then171: store ptr @.str5524, ptr %t278 %t412 = load ptr, ptr %t285 %t413 = getelementptr inbounds %LSlice, ptr %t412, i32 0, i32 1 %t414 = getelementptr inbounds %LSlice, ptr %t412, i32 0, i32 2 %t415 = getelementptr inbounds %LSlice, ptr %t412, i32 0, i32 0 %t416 = load i32, ptr %t413 %t417 = load i32, ptr %t414 %t418 = icmp sge i32 %t416, %t417 br i1 %t418, label %grow174, label %put175 grow174: %t419 = mul i32 %t417, 2 %t420 = icmp eq i32 %t417, 0 %t421 = select i1 %t420, i32 8, i32 %t419 %t422 = getelementptr ptr, ptr null, i32 1 %t423 = ptrtoint ptr %t422 to i64 %t424 = zext i32 %t421 to i64 %t425 = mul i64 %t424, %t423 %t426 = load ptr, ptr %t415 %t427 = call ptr @realloc(ptr %t426, i64 %t425) store ptr %t427, ptr %t415 store i32 %t421, ptr %t414 br label %put175 put175: %t428 = load ptr, ptr %t415 %t429 = getelementptr inbounds ptr, ptr %t428, i32 %t416 store ptr @.str5525, ptr %t429 %t430 = add i32 %t416, 1 store i32 %t430, ptr %t413 %t431 = load ptr, ptr %t285 %t432 = getelementptr inbounds %LSlice, ptr %t431, i32 0, i32 1 %t433 = getelementptr inbounds %LSlice, ptr %t431, i32 0, i32 2 %t434 = getelementptr inbounds %LSlice, ptr %t431, i32 0, i32 0 %t435 = load i32, ptr %t432 %t436 = load i32, ptr %t433 %t437 = icmp sge i32 %t435, %t436 br i1 %t437, label %grow176, label %put177 grow176: %t438 = mul i32 %t436, 2 %t439 = icmp eq i32 %t436, 0 %t440 = select i1 %t439, i32 8, i32 %t438 %t441 = getelementptr ptr, ptr null, i32 1 %t442 = ptrtoint ptr %t441 to i64 %t443 = zext i32 %t440 to i64 %t444 = mul i64 %t443, %t442 %t445 = load ptr, ptr %t434 %t446 = call ptr @realloc(ptr %t445, i64 %t444) store ptr %t446, ptr %t434 store i32 %t440, ptr %t433 br label %put177 put177: %t447 = load ptr, ptr %t434 %t448 = getelementptr inbounds ptr, ptr %t447, i32 %t435 store ptr @.str5526, ptr %t448 %t449 = add i32 %t435, 1 store i32 %t449, ptr %t432 %t450 = load ptr, ptr %t285 %t451 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 1 %t452 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 2 %t453 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 0 %t454 = load i32, ptr %t451 %t455 = load i32, ptr %t452 %t456 = icmp sge i32 %t454, %t455 br i1 %t456, label %grow178, label %put179 grow178: %t457 = mul i32 %t455, 2 %t458 = icmp eq i32 %t455, 0 %t459 = select i1 %t458, i32 8, i32 %t457 %t460 = getelementptr ptr, ptr null, i32 1 %t461 = ptrtoint ptr %t460 to i64 %t462 = zext i32 %t459 to i64 %t463 = mul i64 %t462, %t461 %t464 = load ptr, ptr %t453 %t465 = call ptr @realloc(ptr %t464, i64 %t463) store ptr %t465, ptr %t453 store i32 %t459, ptr %t452 br label %put179 put179: %t466 = load ptr, ptr %t453 %t467 = getelementptr inbounds ptr, ptr %t466, i32 %t454 store ptr @.str5527, ptr %t467 %t468 = add i32 %t454, 1 store i32 %t468, ptr %t451 %t469 = load ptr, ptr %t285 %t470 = getelementptr inbounds %LSlice, ptr %t469, i32 0, i32 1 %t471 = getelementptr inbounds %LSlice, ptr %t469, i32 0, i32 2 %t472 = getelementptr inbounds %LSlice, ptr %t469, i32 0, i32 0 %t473 = load i32, ptr %t470 %t474 = load i32, ptr %t471 %t475 = icmp sge i32 %t473, %t474 br i1 %t475, label %grow180, label %put181 grow180: %t476 = mul i32 %t474, 2 %t477 = icmp eq i32 %t474, 0 %t478 = select i1 %t477, i32 8, i32 %t476 %t479 = getelementptr ptr, ptr null, i32 1 %t480 = ptrtoint ptr %t479 to i64 %t481 = zext i32 %t478 to i64 %t482 = mul i64 %t481, %t480 %t483 = load ptr, ptr %t472 %t484 = call ptr @realloc(ptr %t483, i64 %t482) store ptr %t484, ptr %t472 store i32 %t478, ptr %t471 br label %put181 put181: %t485 = load ptr, ptr %t472 %t486 = getelementptr inbounds ptr, ptr %t485, i32 %t473 store ptr @.str5528, ptr %t486 %t487 = add i32 %t473, 1 store i32 %t487, ptr %t470 %t488 = load ptr, ptr %t285 %t489 = getelementptr inbounds %LSlice, ptr %t488, i32 0, i32 1 %t490 = getelementptr inbounds %LSlice, ptr %t488, i32 0, i32 2 %t491 = getelementptr inbounds %LSlice, ptr %t488, i32 0, i32 0 %t492 = load i32, ptr %t489 %t493 = load i32, ptr %t490 %t494 = icmp sge i32 %t492, %t493 br i1 %t494, label %grow182, label %put183 grow182: %t495 = mul i32 %t493, 2 %t496 = icmp eq i32 %t493, 0 %t497 = select i1 %t496, i32 8, i32 %t495 %t498 = getelementptr ptr, ptr null, i32 1 %t499 = ptrtoint ptr %t498 to i64 %t500 = zext i32 %t497 to i64 %t501 = mul i64 %t500, %t499 %t502 = load ptr, ptr %t491 %t503 = call ptr @realloc(ptr %t502, i64 %t501) store ptr %t503, ptr %t491 store i32 %t497, ptr %t490 br label %put183 put183: %t504 = load ptr, ptr %t491 %t505 = getelementptr inbounds ptr, ptr %t504, i32 %t492 store ptr @.str5529, ptr %t505 %t506 = add i32 %t492, 1 store i32 %t506, ptr %t489 br label %ifend173 ifend173: %t507 = load ptr, ptr %t1 %t508 = call i32 @fn_str_eq(ptr %t507, ptr @.str5530) %t509 = icmp ne i32 %t508, 0 br i1 %t509, label %then184, label %ifend186 then184: store ptr @.str5531, ptr %t278 %t510 = load ptr, ptr %t285 %t511 = getelementptr inbounds %LSlice, ptr %t510, i32 0, i32 1 %t512 = getelementptr inbounds %LSlice, ptr %t510, i32 0, i32 2 %t513 = getelementptr inbounds %LSlice, ptr %t510, i32 0, i32 0 %t514 = load i32, ptr %t511 %t515 = load i32, ptr %t512 %t516 = icmp sge i32 %t514, %t515 br i1 %t516, label %grow187, label %put188 grow187: %t517 = mul i32 %t515, 2 %t518 = icmp eq i32 %t515, 0 %t519 = select i1 %t518, i32 8, i32 %t517 %t520 = getelementptr ptr, ptr null, i32 1 %t521 = ptrtoint ptr %t520 to i64 %t522 = zext i32 %t519 to i64 %t523 = mul i64 %t522, %t521 %t524 = load ptr, ptr %t513 %t525 = call ptr @realloc(ptr %t524, i64 %t523) store ptr %t525, ptr %t513 store i32 %t519, ptr %t512 br label %put188 put188: %t526 = load ptr, ptr %t513 %t527 = getelementptr inbounds ptr, ptr %t526, i32 %t514 store ptr @.str5532, ptr %t527 %t528 = add i32 %t514, 1 store i32 %t528, ptr %t511 %t529 = load ptr, ptr %t285 %t530 = getelementptr inbounds %LSlice, ptr %t529, i32 0, i32 1 %t531 = getelementptr inbounds %LSlice, ptr %t529, i32 0, i32 2 %t532 = getelementptr inbounds %LSlice, ptr %t529, i32 0, i32 0 %t533 = load i32, ptr %t530 %t534 = load i32, ptr %t531 %t535 = icmp sge i32 %t533, %t534 br i1 %t535, label %grow189, label %put190 grow189: %t536 = mul i32 %t534, 2 %t537 = icmp eq i32 %t534, 0 %t538 = select i1 %t537, i32 8, i32 %t536 %t539 = getelementptr ptr, ptr null, i32 1 %t540 = ptrtoint ptr %t539 to i64 %t541 = zext i32 %t538 to i64 %t542 = mul i64 %t541, %t540 %t543 = load ptr, ptr %t532 %t544 = call ptr @realloc(ptr %t543, i64 %t542) store ptr %t544, ptr %t532 store i32 %t538, ptr %t531 br label %put190 put190: %t545 = load ptr, ptr %t532 %t546 = getelementptr inbounds ptr, ptr %t545, i32 %t533 store ptr @.str5533, ptr %t546 %t547 = add i32 %t533, 1 store i32 %t547, ptr %t530 %t548 = load ptr, ptr %t285 %t549 = getelementptr inbounds %LSlice, ptr %t548, i32 0, i32 1 %t550 = getelementptr inbounds %LSlice, ptr %t548, i32 0, i32 2 %t551 = getelementptr inbounds %LSlice, ptr %t548, i32 0, i32 0 %t552 = load i32, ptr %t549 %t553 = load i32, ptr %t550 %t554 = icmp sge i32 %t552, %t553 br i1 %t554, label %grow191, label %put192 grow191: %t555 = mul i32 %t553, 2 %t556 = icmp eq i32 %t553, 0 %t557 = select i1 %t556, i32 8, i32 %t555 %t558 = getelementptr ptr, ptr null, i32 1 %t559 = ptrtoint ptr %t558 to i64 %t560 = zext i32 %t557 to i64 %t561 = mul i64 %t560, %t559 %t562 = load ptr, ptr %t551 %t563 = call ptr @realloc(ptr %t562, i64 %t561) store ptr %t563, ptr %t551 store i32 %t557, ptr %t550 br label %put192 put192: %t564 = load ptr, ptr %t551 %t565 = getelementptr inbounds ptr, ptr %t564, i32 %t552 store ptr @.str5534, ptr %t565 %t566 = add i32 %t552, 1 store i32 %t566, ptr %t549 br label %ifend186 ifend186: %t567 = load ptr, ptr %t1 %t568 = call i32 @fn_str_eq(ptr %t567, ptr @.str5535) %t569 = icmp ne i32 %t568, 0 br i1 %t569, label %then193, label %ifend195 then193: store ptr @.str5536, ptr %t278 %t570 = load ptr, ptr %t285 %t571 = getelementptr inbounds %LSlice, ptr %t570, i32 0, i32 1 %t572 = getelementptr inbounds %LSlice, ptr %t570, i32 0, i32 2 %t573 = getelementptr inbounds %LSlice, ptr %t570, i32 0, i32 0 %t574 = load i32, ptr %t571 %t575 = load i32, ptr %t572 %t576 = icmp sge i32 %t574, %t575 br i1 %t576, label %grow196, label %put197 grow196: %t577 = mul i32 %t575, 2 %t578 = icmp eq i32 %t575, 0 %t579 = select i1 %t578, i32 8, i32 %t577 %t580 = getelementptr ptr, ptr null, i32 1 %t581 = ptrtoint ptr %t580 to i64 %t582 = zext i32 %t579 to i64 %t583 = mul i64 %t582, %t581 %t584 = load ptr, ptr %t573 %t585 = call ptr @realloc(ptr %t584, i64 %t583) store ptr %t585, ptr %t573 store i32 %t579, ptr %t572 br label %put197 put197: %t586 = load ptr, ptr %t573 %t587 = getelementptr inbounds ptr, ptr %t586, i32 %t574 store ptr @.str5537, ptr %t587 %t588 = add i32 %t574, 1 store i32 %t588, ptr %t571 %t589 = load ptr, ptr %t285 %t590 = getelementptr inbounds %LSlice, ptr %t589, i32 0, i32 1 %t591 = getelementptr inbounds %LSlice, ptr %t589, i32 0, i32 2 %t592 = getelementptr inbounds %LSlice, ptr %t589, i32 0, i32 0 %t593 = load i32, ptr %t590 %t594 = load i32, ptr %t591 %t595 = icmp sge i32 %t593, %t594 br i1 %t595, label %grow198, label %put199 grow198: %t596 = mul i32 %t594, 2 %t597 = icmp eq i32 %t594, 0 %t598 = select i1 %t597, i32 8, i32 %t596 %t599 = getelementptr ptr, ptr null, i32 1 %t600 = ptrtoint ptr %t599 to i64 %t601 = zext i32 %t598 to i64 %t602 = mul i64 %t601, %t600 %t603 = load ptr, ptr %t592 %t604 = call ptr @realloc(ptr %t603, i64 %t602) store ptr %t604, ptr %t592 store i32 %t598, ptr %t591 br label %put199 put199: %t605 = load ptr, ptr %t592 %t606 = getelementptr inbounds ptr, ptr %t605, i32 %t593 store ptr @.str5538, ptr %t606 %t607 = add i32 %t593, 1 store i32 %t607, ptr %t590 %t608 = load ptr, ptr %t285 %t609 = getelementptr inbounds %LSlice, ptr %t608, i32 0, i32 1 %t610 = getelementptr inbounds %LSlice, ptr %t608, i32 0, i32 2 %t611 = getelementptr inbounds %LSlice, ptr %t608, i32 0, i32 0 %t612 = load i32, ptr %t609 %t613 = load i32, ptr %t610 %t614 = icmp sge i32 %t612, %t613 br i1 %t614, label %grow200, label %put201 grow200: %t615 = mul i32 %t613, 2 %t616 = icmp eq i32 %t613, 0 %t617 = select i1 %t616, i32 8, i32 %t615 %t618 = getelementptr ptr, ptr null, i32 1 %t619 = ptrtoint ptr %t618 to i64 %t620 = zext i32 %t617 to i64 %t621 = mul i64 %t620, %t619 %t622 = load ptr, ptr %t611 %t623 = call ptr @realloc(ptr %t622, i64 %t621) store ptr %t623, ptr %t611 store i32 %t617, ptr %t610 br label %put201 put201: %t624 = load ptr, ptr %t611 %t625 = getelementptr inbounds ptr, ptr %t624, i32 %t612 store ptr @.str5539, ptr %t625 %t626 = add i32 %t612, 1 store i32 %t626, ptr %t609 %t627 = load ptr, ptr %t285 %t628 = getelementptr inbounds %LSlice, ptr %t627, i32 0, i32 1 %t629 = getelementptr inbounds %LSlice, ptr %t627, i32 0, i32 2 %t630 = getelementptr inbounds %LSlice, ptr %t627, i32 0, i32 0 %t631 = load i32, ptr %t628 %t632 = load i32, ptr %t629 %t633 = icmp sge i32 %t631, %t632 br i1 %t633, label %grow202, label %put203 grow202: %t634 = mul i32 %t632, 2 %t635 = icmp eq i32 %t632, 0 %t636 = select i1 %t635, i32 8, i32 %t634 %t637 = getelementptr ptr, ptr null, i32 1 %t638 = ptrtoint ptr %t637 to i64 %t639 = zext i32 %t636 to i64 %t640 = mul i64 %t639, %t638 %t641 = load ptr, ptr %t630 %t642 = call ptr @realloc(ptr %t641, i64 %t640) store ptr %t642, ptr %t630 store i32 %t636, ptr %t629 br label %put203 put203: %t643 = load ptr, ptr %t630 %t644 = getelementptr inbounds ptr, ptr %t643, i32 %t631 store ptr @.str5540, ptr %t644 %t645 = add i32 %t631, 1 store i32 %t645, ptr %t628 %t646 = load ptr, ptr %t285 %t647 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 1 %t648 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 2 %t649 = getelementptr inbounds %LSlice, ptr %t646, i32 0, i32 0 %t650 = load i32, ptr %t647 %t651 = load i32, ptr %t648 %t652 = icmp sge i32 %t650, %t651 br i1 %t652, label %grow204, label %put205 grow204: %t653 = mul i32 %t651, 2 %t654 = icmp eq i32 %t651, 0 %t655 = select i1 %t654, i32 8, i32 %t653 %t656 = getelementptr ptr, ptr null, i32 1 %t657 = ptrtoint ptr %t656 to i64 %t658 = zext i32 %t655 to i64 %t659 = mul i64 %t658, %t657 %t660 = load ptr, ptr %t649 %t661 = call ptr @realloc(ptr %t660, i64 %t659) store ptr %t661, ptr %t649 store i32 %t655, ptr %t648 br label %put205 put205: %t662 = load ptr, ptr %t649 %t663 = getelementptr inbounds ptr, ptr %t662, i32 %t650 store ptr @.str5541, ptr %t663 %t664 = add i32 %t650, 1 store i32 %t664, ptr %t647 br label %ifend195 ifend195: %t665 = load ptr, ptr %t1 %t666 = call i32 @fn_str_eq(ptr %t665, ptr @.str5542) %t667 = icmp ne i32 %t666, 0 br i1 %t667, label %then206, label %ifend208 then206: store ptr @.str5543, ptr %t278 %t668 = load ptr, ptr %t285 %t669 = getelementptr inbounds %LSlice, ptr %t668, i32 0, i32 1 %t670 = getelementptr inbounds %LSlice, ptr %t668, i32 0, i32 2 %t671 = getelementptr inbounds %LSlice, ptr %t668, i32 0, i32 0 %t672 = load i32, ptr %t669 %t673 = load i32, ptr %t670 %t674 = icmp sge i32 %t672, %t673 br i1 %t674, label %grow209, label %put210 grow209: %t675 = mul i32 %t673, 2 %t676 = icmp eq i32 %t673, 0 %t677 = select i1 %t676, i32 8, i32 %t675 %t678 = getelementptr ptr, ptr null, i32 1 %t679 = ptrtoint ptr %t678 to i64 %t680 = zext i32 %t677 to i64 %t681 = mul i64 %t680, %t679 %t682 = load ptr, ptr %t671 %t683 = call ptr @realloc(ptr %t682, i64 %t681) store ptr %t683, ptr %t671 store i32 %t677, ptr %t670 br label %put210 put210: %t684 = load ptr, ptr %t671 %t685 = getelementptr inbounds ptr, ptr %t684, i32 %t672 store ptr @.str5544, ptr %t685 %t686 = add i32 %t672, 1 store i32 %t686, ptr %t669 %t687 = load ptr, ptr %t285 %t688 = getelementptr inbounds %LSlice, ptr %t687, i32 0, i32 1 %t689 = getelementptr inbounds %LSlice, ptr %t687, i32 0, i32 2 %t690 = getelementptr inbounds %LSlice, ptr %t687, i32 0, i32 0 %t691 = load i32, ptr %t688 %t692 = load i32, ptr %t689 %t693 = icmp sge i32 %t691, %t692 br i1 %t693, label %grow211, label %put212 grow211: %t694 = mul i32 %t692, 2 %t695 = icmp eq i32 %t692, 0 %t696 = select i1 %t695, i32 8, i32 %t694 %t697 = getelementptr ptr, ptr null, i32 1 %t698 = ptrtoint ptr %t697 to i64 %t699 = zext i32 %t696 to i64 %t700 = mul i64 %t699, %t698 %t701 = load ptr, ptr %t690 %t702 = call ptr @realloc(ptr %t701, i64 %t700) store ptr %t702, ptr %t690 store i32 %t696, ptr %t689 br label %put212 put212: %t703 = load ptr, ptr %t690 %t704 = getelementptr inbounds ptr, ptr %t703, i32 %t691 store ptr @.str5545, ptr %t704 %t705 = add i32 %t691, 1 store i32 %t705, ptr %t688 %t706 = load ptr, ptr %t285 %t707 = getelementptr inbounds %LSlice, ptr %t706, i32 0, i32 1 %t708 = getelementptr inbounds %LSlice, ptr %t706, i32 0, i32 2 %t709 = getelementptr inbounds %LSlice, ptr %t706, i32 0, i32 0 %t710 = load i32, ptr %t707 %t711 = load i32, ptr %t708 %t712 = icmp sge i32 %t710, %t711 br i1 %t712, label %grow213, label %put214 grow213: %t713 = mul i32 %t711, 2 %t714 = icmp eq i32 %t711, 0 %t715 = select i1 %t714, i32 8, i32 %t713 %t716 = getelementptr ptr, ptr null, i32 1 %t717 = ptrtoint ptr %t716 to i64 %t718 = zext i32 %t715 to i64 %t719 = mul i64 %t718, %t717 %t720 = load ptr, ptr %t709 %t721 = call ptr @realloc(ptr %t720, i64 %t719) store ptr %t721, ptr %t709 store i32 %t715, ptr %t708 br label %put214 put214: %t722 = load ptr, ptr %t709 %t723 = getelementptr inbounds ptr, ptr %t722, i32 %t710 store ptr @.str5546, ptr %t723 %t724 = add i32 %t710, 1 store i32 %t724, ptr %t707 %t725 = load ptr, ptr %t285 %t726 = getelementptr inbounds %LSlice, ptr %t725, i32 0, i32 1 %t727 = getelementptr inbounds %LSlice, ptr %t725, i32 0, i32 2 %t728 = getelementptr inbounds %LSlice, ptr %t725, i32 0, i32 0 %t729 = load i32, ptr %t726 %t730 = load i32, ptr %t727 %t731 = icmp sge i32 %t729, %t730 br i1 %t731, label %grow215, label %put216 grow215: %t732 = mul i32 %t730, 2 %t733 = icmp eq i32 %t730, 0 %t734 = select i1 %t733, i32 8, i32 %t732 %t735 = getelementptr ptr, ptr null, i32 1 %t736 = ptrtoint ptr %t735 to i64 %t737 = zext i32 %t734 to i64 %t738 = mul i64 %t737, %t736 %t739 = load ptr, ptr %t728 %t740 = call ptr @realloc(ptr %t739, i64 %t738) store ptr %t740, ptr %t728 store i32 %t734, ptr %t727 br label %put216 put216: %t741 = load ptr, ptr %t728 %t742 = getelementptr inbounds ptr, ptr %t741, i32 %t729 store ptr @.str5547, ptr %t742 %t743 = add i32 %t729, 1 store i32 %t743, ptr %t726 %t744 = load ptr, ptr %t285 %t745 = getelementptr inbounds %LSlice, ptr %t744, i32 0, i32 1 %t746 = getelementptr inbounds %LSlice, ptr %t744, i32 0, i32 2 %t747 = getelementptr inbounds %LSlice, ptr %t744, i32 0, i32 0 %t748 = load i32, ptr %t745 %t749 = load i32, ptr %t746 %t750 = icmp sge i32 %t748, %t749 br i1 %t750, label %grow217, label %put218 grow217: %t751 = mul i32 %t749, 2 %t752 = icmp eq i32 %t749, 0 %t753 = select i1 %t752, i32 8, i32 %t751 %t754 = getelementptr ptr, ptr null, i32 1 %t755 = ptrtoint ptr %t754 to i64 %t756 = zext i32 %t753 to i64 %t757 = mul i64 %t756, %t755 %t758 = load ptr, ptr %t747 %t759 = call ptr @realloc(ptr %t758, i64 %t757) store ptr %t759, ptr %t747 store i32 %t753, ptr %t746 br label %put218 put218: %t760 = load ptr, ptr %t747 %t761 = getelementptr inbounds ptr, ptr %t760, i32 %t748 store ptr @.str5548, ptr %t761 %t762 = add i32 %t748, 1 store i32 %t762, ptr %t745 br label %ifend208 ifend208: %t763 = load ptr, ptr %t1 %t764 = call i32 @fn_str_eq(ptr %t763, ptr @.str5549) %t765 = icmp ne i32 %t764, 0 br i1 %t765, label %then219, label %ifend221 then219: store ptr @.str5550, ptr %t278 br label %ifend221 ifend221: %t766 = load ptr, ptr %t1 %t767 = call i32 @fn_str_eq(ptr %t766, ptr @.str5551) %t768 = icmp ne i32 %t767, 0 br i1 %t768, label %then222, label %ifend224 then222: store ptr @.str5552, ptr %t278 br label %ifend224 ifend224: %t769 = load ptr, ptr %t1 %t770 = call i32 @fn_str_eq(ptr %t769, ptr @.str5553) %t771 = icmp ne i32 %t770, 0 br i1 %t771, label %then225, label %ifend227 then225: store ptr @.str5554, ptr %t278 br label %ifend227 ifend227: %t772 = load ptr, ptr %t1 %t773 = call i32 @fn_str_eq(ptr %t772, ptr @.str5555) %t774 = icmp ne i32 %t773, 0 br i1 %t774, label %then228, label %ifend230 then228: store ptr @.str5556, ptr %t278 %t775 = load ptr, ptr %t285 %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 %grow231, label %put232 grow231: %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 %put232 put232: %t791 = load ptr, ptr %t778 %t792 = getelementptr inbounds ptr, ptr %t791, i32 %t779 store ptr @.str5557, ptr %t792 %t793 = add i32 %t779, 1 store i32 %t793, ptr %t776 br label %ifend230 ifend230: %t794 = load ptr, ptr %t1 %t795 = call i32 @fn_str_eq(ptr %t794, ptr @.str5558) %t796 = icmp ne i32 %t795, 0 br i1 %t796, label %then233, label %ifend235 then233: store ptr @.str5559, ptr %t278 %t797 = load ptr, ptr %t285 %t798 = getelementptr inbounds %LSlice, ptr %t797, i32 0, i32 1 %t799 = getelementptr inbounds %LSlice, ptr %t797, i32 0, i32 2 %t800 = getelementptr inbounds %LSlice, ptr %t797, i32 0, i32 0 %t801 = load i32, ptr %t798 %t802 = load i32, ptr %t799 %t803 = icmp sge i32 %t801, %t802 br i1 %t803, label %grow236, label %put237 grow236: %t804 = mul i32 %t802, 2 %t805 = icmp eq i32 %t802, 0 %t806 = select i1 %t805, i32 8, i32 %t804 %t807 = getelementptr ptr, ptr null, i32 1 %t808 = ptrtoint ptr %t807 to i64 %t809 = zext i32 %t806 to i64 %t810 = mul i64 %t809, %t808 %t811 = load ptr, ptr %t800 %t812 = call ptr @realloc(ptr %t811, i64 %t810) store ptr %t812, ptr %t800 store i32 %t806, ptr %t799 br label %put237 put237: %t813 = load ptr, ptr %t800 %t814 = getelementptr inbounds ptr, ptr %t813, i32 %t801 store ptr @.str5560, ptr %t814 %t815 = add i32 %t801, 1 store i32 %t815, ptr %t798 %t816 = load ptr, ptr %t285 %t817 = getelementptr inbounds %LSlice, ptr %t816, i32 0, i32 1 %t818 = getelementptr inbounds %LSlice, ptr %t816, i32 0, i32 2 %t819 = getelementptr inbounds %LSlice, ptr %t816, i32 0, i32 0 %t820 = load i32, ptr %t817 %t821 = load i32, ptr %t818 %t822 = icmp sge i32 %t820, %t821 br i1 %t822, label %grow238, label %put239 grow238: %t823 = mul i32 %t821, 2 %t824 = icmp eq i32 %t821, 0 %t825 = select i1 %t824, i32 8, i32 %t823 %t826 = getelementptr ptr, ptr null, i32 1 %t827 = ptrtoint ptr %t826 to i64 %t828 = zext i32 %t825 to i64 %t829 = mul i64 %t828, %t827 %t830 = load ptr, ptr %t819 %t831 = call ptr @realloc(ptr %t830, i64 %t829) store ptr %t831, ptr %t819 store i32 %t825, ptr %t818 br label %put239 put239: %t832 = load ptr, ptr %t819 %t833 = getelementptr inbounds ptr, ptr %t832, i32 %t820 store ptr @.str5561, ptr %t833 %t834 = add i32 %t820, 1 store i32 %t834, ptr %t817 %t835 = load ptr, ptr %t285 %t836 = getelementptr inbounds %LSlice, ptr %t835, i32 0, i32 1 %t837 = getelementptr inbounds %LSlice, ptr %t835, i32 0, i32 2 %t838 = getelementptr inbounds %LSlice, ptr %t835, i32 0, i32 0 %t839 = load i32, ptr %t836 %t840 = load i32, ptr %t837 %t841 = icmp sge i32 %t839, %t840 br i1 %t841, label %grow240, label %put241 grow240: %t842 = mul i32 %t840, 2 %t843 = icmp eq i32 %t840, 0 %t844 = select i1 %t843, i32 8, i32 %t842 %t845 = getelementptr ptr, ptr null, i32 1 %t846 = ptrtoint ptr %t845 to i64 %t847 = zext i32 %t844 to i64 %t848 = mul i64 %t847, %t846 %t849 = load ptr, ptr %t838 %t850 = call ptr @realloc(ptr %t849, i64 %t848) store ptr %t850, ptr %t838 store i32 %t844, ptr %t837 br label %put241 put241: %t851 = load ptr, ptr %t838 %t852 = getelementptr inbounds ptr, ptr %t851, i32 %t839 store ptr @.str5562, ptr %t852 %t853 = add i32 %t839, 1 store i32 %t853, ptr %t836 %t854 = load ptr, ptr %t285 %t855 = getelementptr inbounds %LSlice, ptr %t854, i32 0, i32 1 %t856 = getelementptr inbounds %LSlice, ptr %t854, i32 0, i32 2 %t857 = getelementptr inbounds %LSlice, ptr %t854, i32 0, i32 0 %t858 = load i32, ptr %t855 %t859 = load i32, ptr %t856 %t860 = icmp sge i32 %t858, %t859 br i1 %t860, label %grow242, label %put243 grow242: %t861 = mul i32 %t859, 2 %t862 = icmp eq i32 %t859, 0 %t863 = select i1 %t862, i32 8, i32 %t861 %t864 = getelementptr ptr, ptr null, i32 1 %t865 = ptrtoint ptr %t864 to i64 %t866 = zext i32 %t863 to i64 %t867 = mul i64 %t866, %t865 %t868 = load ptr, ptr %t857 %t869 = call ptr @realloc(ptr %t868, i64 %t867) store ptr %t869, ptr %t857 store i32 %t863, ptr %t856 br label %put243 put243: %t870 = load ptr, ptr %t857 %t871 = getelementptr inbounds ptr, ptr %t870, i32 %t858 store ptr @.str5563, ptr %t871 %t872 = add i32 %t858, 1 store i32 %t872, ptr %t855 %t873 = load ptr, ptr %t285 %t874 = getelementptr inbounds %LSlice, ptr %t873, i32 0, i32 1 %t875 = getelementptr inbounds %LSlice, ptr %t873, i32 0, i32 2 %t876 = getelementptr inbounds %LSlice, ptr %t873, i32 0, i32 0 %t877 = load i32, ptr %t874 %t878 = load i32, ptr %t875 %t879 = icmp sge i32 %t877, %t878 br i1 %t879, label %grow244, label %put245 grow244: %t880 = mul i32 %t878, 2 %t881 = icmp eq i32 %t878, 0 %t882 = select i1 %t881, i32 8, i32 %t880 %t883 = getelementptr ptr, ptr null, i32 1 %t884 = ptrtoint ptr %t883 to i64 %t885 = zext i32 %t882 to i64 %t886 = mul i64 %t885, %t884 %t887 = load ptr, ptr %t876 %t888 = call ptr @realloc(ptr %t887, i64 %t886) store ptr %t888, ptr %t876 store i32 %t882, ptr %t875 br label %put245 put245: %t889 = load ptr, ptr %t876 %t890 = getelementptr inbounds ptr, ptr %t889, i32 %t877 store ptr @.str5564, ptr %t890 %t891 = add i32 %t877, 1 store i32 %t891, ptr %t874 br label %ifend235 ifend235: %t892 = load ptr, ptr %t1 %t893 = call i32 @fn_str_eq(ptr %t892, ptr @.str5565) %t894 = icmp ne i32 %t893, 0 br i1 %t894, label %then246, label %ifend248 then246: store ptr @.str5566, ptr %t278 %t895 = load ptr, ptr %t285 %t896 = getelementptr inbounds %LSlice, ptr %t895, i32 0, i32 1 %t897 = getelementptr inbounds %LSlice, ptr %t895, i32 0, i32 2 %t898 = getelementptr inbounds %LSlice, ptr %t895, i32 0, i32 0 %t899 = load i32, ptr %t896 %t900 = load i32, ptr %t897 %t901 = icmp sge i32 %t899, %t900 br i1 %t901, label %grow249, label %put250 grow249: %t902 = mul i32 %t900, 2 %t903 = icmp eq i32 %t900, 0 %t904 = select i1 %t903, i32 8, i32 %t902 %t905 = getelementptr ptr, ptr null, i32 1 %t906 = ptrtoint ptr %t905 to i64 %t907 = zext i32 %t904 to i64 %t908 = mul i64 %t907, %t906 %t909 = load ptr, ptr %t898 %t910 = call ptr @realloc(ptr %t909, i64 %t908) store ptr %t910, ptr %t898 store i32 %t904, ptr %t897 br label %put250 put250: %t911 = load ptr, ptr %t898 %t912 = getelementptr inbounds ptr, ptr %t911, i32 %t899 store ptr @.str5567, ptr %t912 %t913 = add i32 %t899, 1 store i32 %t913, ptr %t896 %t914 = load ptr, ptr %t285 %t915 = getelementptr inbounds %LSlice, ptr %t914, i32 0, i32 1 %t916 = getelementptr inbounds %LSlice, ptr %t914, i32 0, i32 2 %t917 = getelementptr inbounds %LSlice, ptr %t914, i32 0, i32 0 %t918 = load i32, ptr %t915 %t919 = load i32, ptr %t916 %t920 = icmp sge i32 %t918, %t919 br i1 %t920, label %grow251, label %put252 grow251: %t921 = mul i32 %t919, 2 %t922 = icmp eq i32 %t919, 0 %t923 = select i1 %t922, i32 8, i32 %t921 %t924 = getelementptr ptr, ptr null, i32 1 %t925 = ptrtoint ptr %t924 to i64 %t926 = zext i32 %t923 to i64 %t927 = mul i64 %t926, %t925 %t928 = load ptr, ptr %t917 %t929 = call ptr @realloc(ptr %t928, i64 %t927) store ptr %t929, ptr %t917 store i32 %t923, ptr %t916 br label %put252 put252: %t930 = load ptr, ptr %t917 %t931 = getelementptr inbounds ptr, ptr %t930, i32 %t918 store ptr @.str5568, ptr %t931 %t932 = add i32 %t918, 1 store i32 %t932, ptr %t915 %t933 = load ptr, ptr %t285 %t934 = getelementptr inbounds %LSlice, ptr %t933, i32 0, i32 1 %t935 = getelementptr inbounds %LSlice, ptr %t933, i32 0, i32 2 %t936 = getelementptr inbounds %LSlice, ptr %t933, i32 0, i32 0 %t937 = load i32, ptr %t934 %t938 = load i32, ptr %t935 %t939 = icmp sge i32 %t937, %t938 br i1 %t939, label %grow253, label %put254 grow253: %t940 = mul i32 %t938, 2 %t941 = icmp eq i32 %t938, 0 %t942 = select i1 %t941, i32 8, i32 %t940 %t943 = getelementptr ptr, ptr null, i32 1 %t944 = ptrtoint ptr %t943 to i64 %t945 = zext i32 %t942 to i64 %t946 = mul i64 %t945, %t944 %t947 = load ptr, ptr %t936 %t948 = call ptr @realloc(ptr %t947, i64 %t946) store ptr %t948, ptr %t936 store i32 %t942, ptr %t935 br label %put254 put254: %t949 = load ptr, ptr %t936 %t950 = getelementptr inbounds ptr, ptr %t949, i32 %t937 store ptr @.str5569, ptr %t950 %t951 = add i32 %t937, 1 store i32 %t951, ptr %t934 %t952 = load ptr, ptr %t285 %t953 = getelementptr inbounds %LSlice, ptr %t952, i32 0, i32 1 %t954 = getelementptr inbounds %LSlice, ptr %t952, i32 0, i32 2 %t955 = getelementptr inbounds %LSlice, ptr %t952, i32 0, i32 0 %t956 = load i32, ptr %t953 %t957 = load i32, ptr %t954 %t958 = icmp sge i32 %t956, %t957 br i1 %t958, label %grow255, label %put256 grow255: %t959 = mul i32 %t957, 2 %t960 = icmp eq i32 %t957, 0 %t961 = select i1 %t960, i32 8, i32 %t959 %t962 = getelementptr ptr, ptr null, i32 1 %t963 = ptrtoint ptr %t962 to i64 %t964 = zext i32 %t961 to i64 %t965 = mul i64 %t964, %t963 %t966 = load ptr, ptr %t955 %t967 = call ptr @realloc(ptr %t966, i64 %t965) store ptr %t967, ptr %t955 store i32 %t961, ptr %t954 br label %put256 put256: %t968 = load ptr, ptr %t955 %t969 = getelementptr inbounds ptr, ptr %t968, i32 %t956 store ptr @.str5570, ptr %t969 %t970 = add i32 %t956, 1 store i32 %t970, ptr %t953 br label %ifend248 ifend248: %t971 = load ptr, ptr %t1 %t972 = call i32 @fn_str_eq(ptr %t971, ptr @.str5571) %t973 = icmp ne i32 %t972, 0 br i1 %t973, label %then257, label %ifend259 then257: store ptr @.str5572, ptr %t278 %t974 = load ptr, ptr %t285 %t975 = getelementptr inbounds %LSlice, ptr %t974, i32 0, i32 1 %t976 = getelementptr inbounds %LSlice, ptr %t974, i32 0, i32 2 %t977 = getelementptr inbounds %LSlice, ptr %t974, i32 0, i32 0 %t978 = load i32, ptr %t975 %t979 = load i32, ptr %t976 %t980 = icmp sge i32 %t978, %t979 br i1 %t980, label %grow260, label %put261 grow260: %t981 = mul i32 %t979, 2 %t982 = icmp eq i32 %t979, 0 %t983 = select i1 %t982, i32 8, i32 %t981 %t984 = getelementptr ptr, ptr null, i32 1 %t985 = ptrtoint ptr %t984 to i64 %t986 = zext i32 %t983 to i64 %t987 = mul i64 %t986, %t985 %t988 = load ptr, ptr %t977 %t989 = call ptr @realloc(ptr %t988, i64 %t987) store ptr %t989, ptr %t977 store i32 %t983, ptr %t976 br label %put261 put261: %t990 = load ptr, ptr %t977 %t991 = getelementptr inbounds ptr, ptr %t990, i32 %t978 store ptr @.str5573, ptr %t991 %t992 = add i32 %t978, 1 store i32 %t992, ptr %t975 %t993 = load ptr, ptr %t285 %t994 = getelementptr inbounds %LSlice, ptr %t993, i32 0, i32 1 %t995 = getelementptr inbounds %LSlice, ptr %t993, i32 0, i32 2 %t996 = getelementptr inbounds %LSlice, ptr %t993, i32 0, i32 0 %t997 = load i32, ptr %t994 %t998 = load i32, ptr %t995 %t999 = icmp sge i32 %t997, %t998 br i1 %t999, label %grow262, label %put263 grow262: %t1000 = mul i32 %t998, 2 %t1001 = icmp eq i32 %t998, 0 %t1002 = select i1 %t1001, i32 8, i32 %t1000 %t1003 = getelementptr ptr, ptr null, i32 1 %t1004 = ptrtoint ptr %t1003 to i64 %t1005 = zext i32 %t1002 to i64 %t1006 = mul i64 %t1005, %t1004 %t1007 = load ptr, ptr %t996 %t1008 = call ptr @realloc(ptr %t1007, i64 %t1006) store ptr %t1008, ptr %t996 store i32 %t1002, ptr %t995 br label %put263 put263: %t1009 = load ptr, ptr %t996 %t1010 = getelementptr inbounds ptr, ptr %t1009, i32 %t997 store ptr @.str5574, ptr %t1010 %t1011 = add i32 %t997, 1 store i32 %t1011, ptr %t994 %t1012 = load ptr, ptr %t285 %t1013 = getelementptr inbounds %LSlice, ptr %t1012, i32 0, i32 1 %t1014 = getelementptr inbounds %LSlice, ptr %t1012, i32 0, i32 2 %t1015 = getelementptr inbounds %LSlice, ptr %t1012, i32 0, i32 0 %t1016 = load i32, ptr %t1013 %t1017 = load i32, ptr %t1014 %t1018 = icmp sge i32 %t1016, %t1017 br i1 %t1018, label %grow264, label %put265 grow264: %t1019 = mul i32 %t1017, 2 %t1020 = icmp eq i32 %t1017, 0 %t1021 = select i1 %t1020, i32 8, i32 %t1019 %t1022 = getelementptr ptr, ptr null, i32 1 %t1023 = ptrtoint ptr %t1022 to i64 %t1024 = zext i32 %t1021 to i64 %t1025 = mul i64 %t1024, %t1023 %t1026 = load ptr, ptr %t1015 %t1027 = call ptr @realloc(ptr %t1026, i64 %t1025) store ptr %t1027, ptr %t1015 store i32 %t1021, ptr %t1014 br label %put265 put265: %t1028 = load ptr, ptr %t1015 %t1029 = getelementptr inbounds ptr, ptr %t1028, i32 %t1016 store ptr @.str5575, ptr %t1029 %t1030 = add i32 %t1016, 1 store i32 %t1030, ptr %t1013 %t1031 = load ptr, ptr %t285 %t1032 = getelementptr inbounds %LSlice, ptr %t1031, i32 0, i32 1 %t1033 = getelementptr inbounds %LSlice, ptr %t1031, i32 0, i32 2 %t1034 = getelementptr inbounds %LSlice, ptr %t1031, i32 0, i32 0 %t1035 = load i32, ptr %t1032 %t1036 = load i32, ptr %t1033 %t1037 = icmp sge i32 %t1035, %t1036 br i1 %t1037, label %grow266, label %put267 grow266: %t1038 = mul i32 %t1036, 2 %t1039 = icmp eq i32 %t1036, 0 %t1040 = select i1 %t1039, i32 8, i32 %t1038 %t1041 = getelementptr ptr, ptr null, i32 1 %t1042 = ptrtoint ptr %t1041 to i64 %t1043 = zext i32 %t1040 to i64 %t1044 = mul i64 %t1043, %t1042 %t1045 = load ptr, ptr %t1034 %t1046 = call ptr @realloc(ptr %t1045, i64 %t1044) store ptr %t1046, ptr %t1034 store i32 %t1040, ptr %t1033 br label %put267 put267: %t1047 = load ptr, ptr %t1034 %t1048 = getelementptr inbounds ptr, ptr %t1047, i32 %t1035 store ptr @.str5576, ptr %t1048 %t1049 = add i32 %t1035, 1 store i32 %t1049, ptr %t1032 br label %ifend259 ifend259: %t1050 = load ptr, ptr %t1 %t1051 = call i32 @fn_str_eq(ptr %t1050, ptr @.str5577) %t1052 = icmp ne i32 %t1051, 0 br i1 %t1052, label %then268, label %ifend270 then268: store ptr @.str5578, ptr %t278 %t1053 = load ptr, ptr %t285 %t1054 = getelementptr inbounds %LSlice, ptr %t1053, i32 0, i32 1 %t1055 = getelementptr inbounds %LSlice, ptr %t1053, i32 0, i32 2 %t1056 = getelementptr inbounds %LSlice, ptr %t1053, i32 0, i32 0 %t1057 = load i32, ptr %t1054 %t1058 = load i32, ptr %t1055 %t1059 = icmp sge i32 %t1057, %t1058 br i1 %t1059, label %grow271, label %put272 grow271: %t1060 = mul i32 %t1058, 2 %t1061 = icmp eq i32 %t1058, 0 %t1062 = select i1 %t1061, i32 8, i32 %t1060 %t1063 = getelementptr ptr, ptr null, i32 1 %t1064 = ptrtoint ptr %t1063 to i64 %t1065 = zext i32 %t1062 to i64 %t1066 = mul i64 %t1065, %t1064 %t1067 = load ptr, ptr %t1056 %t1068 = call ptr @realloc(ptr %t1067, i64 %t1066) store ptr %t1068, ptr %t1056 store i32 %t1062, ptr %t1055 br label %put272 put272: %t1069 = load ptr, ptr %t1056 %t1070 = getelementptr inbounds ptr, ptr %t1069, i32 %t1057 store ptr @.str5579, ptr %t1070 %t1071 = add i32 %t1057, 1 store i32 %t1071, ptr %t1054 %t1072 = load ptr, ptr %t285 %t1073 = getelementptr inbounds %LSlice, ptr %t1072, i32 0, i32 1 %t1074 = getelementptr inbounds %LSlice, ptr %t1072, i32 0, i32 2 %t1075 = getelementptr inbounds %LSlice, ptr %t1072, i32 0, i32 0 %t1076 = load i32, ptr %t1073 %t1077 = load i32, ptr %t1074 %t1078 = icmp sge i32 %t1076, %t1077 br i1 %t1078, label %grow273, label %put274 grow273: %t1079 = mul i32 %t1077, 2 %t1080 = icmp eq i32 %t1077, 0 %t1081 = select i1 %t1080, i32 8, i32 %t1079 %t1082 = getelementptr ptr, ptr null, i32 1 %t1083 = ptrtoint ptr %t1082 to i64 %t1084 = zext i32 %t1081 to i64 %t1085 = mul i64 %t1084, %t1083 %t1086 = load ptr, ptr %t1075 %t1087 = call ptr @realloc(ptr %t1086, i64 %t1085) store ptr %t1087, ptr %t1075 store i32 %t1081, ptr %t1074 br label %put274 put274: %t1088 = load ptr, ptr %t1075 %t1089 = getelementptr inbounds ptr, ptr %t1088, i32 %t1076 store ptr @.str5580, ptr %t1089 %t1090 = add i32 %t1076, 1 store i32 %t1090, ptr %t1073 %t1091 = load ptr, ptr %t285 %t1092 = getelementptr inbounds %LSlice, ptr %t1091, i32 0, i32 1 %t1093 = getelementptr inbounds %LSlice, ptr %t1091, i32 0, i32 2 %t1094 = getelementptr inbounds %LSlice, ptr %t1091, i32 0, i32 0 %t1095 = load i32, ptr %t1092 %t1096 = load i32, ptr %t1093 %t1097 = icmp sge i32 %t1095, %t1096 br i1 %t1097, label %grow275, label %put276 grow275: %t1098 = mul i32 %t1096, 2 %t1099 = icmp eq i32 %t1096, 0 %t1100 = select i1 %t1099, i32 8, i32 %t1098 %t1101 = getelementptr ptr, ptr null, i32 1 %t1102 = ptrtoint ptr %t1101 to i64 %t1103 = zext i32 %t1100 to i64 %t1104 = mul i64 %t1103, %t1102 %t1105 = load ptr, ptr %t1094 %t1106 = call ptr @realloc(ptr %t1105, i64 %t1104) store ptr %t1106, ptr %t1094 store i32 %t1100, ptr %t1093 br label %put276 put276: %t1107 = load ptr, ptr %t1094 %t1108 = getelementptr inbounds ptr, ptr %t1107, i32 %t1095 store ptr @.str5581, ptr %t1108 %t1109 = add i32 %t1095, 1 store i32 %t1109, ptr %t1092 %t1110 = load ptr, ptr %t285 %t1111 = getelementptr inbounds %LSlice, ptr %t1110, i32 0, i32 1 %t1112 = getelementptr inbounds %LSlice, ptr %t1110, i32 0, i32 2 %t1113 = getelementptr inbounds %LSlice, ptr %t1110, i32 0, i32 0 %t1114 = load i32, ptr %t1111 %t1115 = load i32, ptr %t1112 %t1116 = icmp sge i32 %t1114, %t1115 br i1 %t1116, label %grow277, label %put278 grow277: %t1117 = mul i32 %t1115, 2 %t1118 = icmp eq i32 %t1115, 0 %t1119 = select i1 %t1118, i32 8, i32 %t1117 %t1120 = getelementptr ptr, ptr null, i32 1 %t1121 = ptrtoint ptr %t1120 to i64 %t1122 = zext i32 %t1119 to i64 %t1123 = mul i64 %t1122, %t1121 %t1124 = load ptr, ptr %t1113 %t1125 = call ptr @realloc(ptr %t1124, i64 %t1123) store ptr %t1125, ptr %t1113 store i32 %t1119, ptr %t1112 br label %put278 put278: %t1126 = load ptr, ptr %t1113 %t1127 = getelementptr inbounds ptr, ptr %t1126, i32 %t1114 store ptr @.str5582, ptr %t1127 %t1128 = add i32 %t1114, 1 store i32 %t1128, ptr %t1111 %t1129 = load ptr, ptr %t285 %t1130 = getelementptr inbounds %LSlice, ptr %t1129, i32 0, i32 1 %t1131 = getelementptr inbounds %LSlice, ptr %t1129, i32 0, i32 2 %t1132 = getelementptr inbounds %LSlice, ptr %t1129, i32 0, i32 0 %t1133 = load i32, ptr %t1130 %t1134 = load i32, ptr %t1131 %t1135 = icmp sge i32 %t1133, %t1134 br i1 %t1135, label %grow279, label %put280 grow279: %t1136 = mul i32 %t1134, 2 %t1137 = icmp eq i32 %t1134, 0 %t1138 = select i1 %t1137, i32 8, i32 %t1136 %t1139 = getelementptr ptr, ptr null, i32 1 %t1140 = ptrtoint ptr %t1139 to i64 %t1141 = zext i32 %t1138 to i64 %t1142 = mul i64 %t1141, %t1140 %t1143 = load ptr, ptr %t1132 %t1144 = call ptr @realloc(ptr %t1143, i64 %t1142) store ptr %t1144, ptr %t1132 store i32 %t1138, ptr %t1131 br label %put280 put280: %t1145 = load ptr, ptr %t1132 %t1146 = getelementptr inbounds ptr, ptr %t1145, i32 %t1133 store ptr @.str5583, ptr %t1146 %t1147 = add i32 %t1133, 1 store i32 %t1147, ptr %t1130 %t1148 = load ptr, ptr %t285 %t1149 = getelementptr inbounds %LSlice, ptr %t1148, i32 0, i32 1 %t1150 = getelementptr inbounds %LSlice, ptr %t1148, i32 0, i32 2 %t1151 = getelementptr inbounds %LSlice, ptr %t1148, i32 0, i32 0 %t1152 = load i32, ptr %t1149 %t1153 = load i32, ptr %t1150 %t1154 = icmp sge i32 %t1152, %t1153 br i1 %t1154, label %grow281, label %put282 grow281: %t1155 = mul i32 %t1153, 2 %t1156 = icmp eq i32 %t1153, 0 %t1157 = select i1 %t1156, i32 8, i32 %t1155 %t1158 = getelementptr ptr, ptr null, i32 1 %t1159 = ptrtoint ptr %t1158 to i64 %t1160 = zext i32 %t1157 to i64 %t1161 = mul i64 %t1160, %t1159 %t1162 = load ptr, ptr %t1151 %t1163 = call ptr @realloc(ptr %t1162, i64 %t1161) store ptr %t1163, ptr %t1151 store i32 %t1157, ptr %t1150 br label %put282 put282: %t1164 = load ptr, ptr %t1151 %t1165 = getelementptr inbounds ptr, ptr %t1164, i32 %t1152 store ptr @.str5584, ptr %t1165 %t1166 = add i32 %t1152, 1 store i32 %t1166, ptr %t1149 %t1167 = load ptr, ptr %t285 %t1168 = getelementptr inbounds %LSlice, ptr %t1167, i32 0, i32 1 %t1169 = getelementptr inbounds %LSlice, ptr %t1167, i32 0, i32 2 %t1170 = getelementptr inbounds %LSlice, ptr %t1167, i32 0, i32 0 %t1171 = load i32, ptr %t1168 %t1172 = load i32, ptr %t1169 %t1173 = icmp sge i32 %t1171, %t1172 br i1 %t1173, label %grow283, label %put284 grow283: %t1174 = mul i32 %t1172, 2 %t1175 = icmp eq i32 %t1172, 0 %t1176 = select i1 %t1175, i32 8, i32 %t1174 %t1177 = getelementptr ptr, ptr null, i32 1 %t1178 = ptrtoint ptr %t1177 to i64 %t1179 = zext i32 %t1176 to i64 %t1180 = mul i64 %t1179, %t1178 %t1181 = load ptr, ptr %t1170 %t1182 = call ptr @realloc(ptr %t1181, i64 %t1180) store ptr %t1182, ptr %t1170 store i32 %t1176, ptr %t1169 br label %put284 put284: %t1183 = load ptr, ptr %t1170 %t1184 = getelementptr inbounds ptr, ptr %t1183, i32 %t1171 store ptr @.str5585, ptr %t1184 %t1185 = add i32 %t1171, 1 store i32 %t1185, ptr %t1168 br label %ifend270 ifend270: %t1186 = load ptr, ptr %t1 %t1187 = call i32 @fn_str_eq(ptr %t1186, ptr @.str5586) %t1188 = icmp ne i32 %t1187, 0 br i1 %t1188, label %then285, label %ifend287 then285: store ptr @.str5587, ptr %t278 %t1189 = load ptr, ptr %t285 %t1190 = getelementptr inbounds %LSlice, ptr %t1189, i32 0, i32 1 %t1191 = getelementptr inbounds %LSlice, ptr %t1189, i32 0, i32 2 %t1192 = getelementptr inbounds %LSlice, ptr %t1189, i32 0, i32 0 %t1193 = load i32, ptr %t1190 %t1194 = load i32, ptr %t1191 %t1195 = icmp sge i32 %t1193, %t1194 br i1 %t1195, label %grow288, label %put289 grow288: %t1196 = mul i32 %t1194, 2 %t1197 = icmp eq i32 %t1194, 0 %t1198 = select i1 %t1197, i32 8, i32 %t1196 %t1199 = getelementptr ptr, ptr null, i32 1 %t1200 = ptrtoint ptr %t1199 to i64 %t1201 = zext i32 %t1198 to i64 %t1202 = mul i64 %t1201, %t1200 %t1203 = load ptr, ptr %t1192 %t1204 = call ptr @realloc(ptr %t1203, i64 %t1202) store ptr %t1204, ptr %t1192 store i32 %t1198, ptr %t1191 br label %put289 put289: %t1205 = load ptr, ptr %t1192 %t1206 = getelementptr inbounds ptr, ptr %t1205, i32 %t1193 store ptr @.str5588, ptr %t1206 %t1207 = add i32 %t1193, 1 store i32 %t1207, ptr %t1190 %t1208 = load ptr, ptr %t285 %t1209 = getelementptr inbounds %LSlice, ptr %t1208, i32 0, i32 1 %t1210 = getelementptr inbounds %LSlice, ptr %t1208, i32 0, i32 2 %t1211 = getelementptr inbounds %LSlice, ptr %t1208, i32 0, i32 0 %t1212 = load i32, ptr %t1209 %t1213 = load i32, ptr %t1210 %t1214 = icmp sge i32 %t1212, %t1213 br i1 %t1214, label %grow290, label %put291 grow290: %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 %put291 put291: %t1224 = load ptr, ptr %t1211 %t1225 = getelementptr inbounds ptr, ptr %t1224, i32 %t1212 store ptr @.str5589, ptr %t1225 %t1226 = add i32 %t1212, 1 store i32 %t1226, ptr %t1209 %t1227 = load ptr, ptr %t285 %t1228 = getelementptr inbounds %LSlice, ptr %t1227, i32 0, i32 1 %t1229 = getelementptr inbounds %LSlice, ptr %t1227, i32 0, i32 2 %t1230 = getelementptr inbounds %LSlice, ptr %t1227, i32 0, i32 0 %t1231 = load i32, ptr %t1228 %t1232 = load i32, ptr %t1229 %t1233 = icmp sge i32 %t1231, %t1232 br i1 %t1233, label %grow292, label %put293 grow292: %t1234 = mul i32 %t1232, 2 %t1235 = icmp eq i32 %t1232, 0 %t1236 = select i1 %t1235, i32 8, i32 %t1234 %t1237 = getelementptr ptr, ptr null, i32 1 %t1238 = ptrtoint ptr %t1237 to i64 %t1239 = zext i32 %t1236 to i64 %t1240 = mul i64 %t1239, %t1238 %t1241 = load ptr, ptr %t1230 %t1242 = call ptr @realloc(ptr %t1241, i64 %t1240) store ptr %t1242, ptr %t1230 store i32 %t1236, ptr %t1229 br label %put293 put293: %t1243 = load ptr, ptr %t1230 %t1244 = getelementptr inbounds ptr, ptr %t1243, i32 %t1231 store ptr @.str5590, ptr %t1244 %t1245 = add i32 %t1231, 1 store i32 %t1245, ptr %t1228 %t1246 = load ptr, ptr %t285 %t1247 = getelementptr inbounds %LSlice, ptr %t1246, i32 0, i32 1 %t1248 = getelementptr inbounds %LSlice, ptr %t1246, i32 0, i32 2 %t1249 = getelementptr inbounds %LSlice, ptr %t1246, i32 0, i32 0 %t1250 = load i32, ptr %t1247 %t1251 = load i32, ptr %t1248 %t1252 = icmp sge i32 %t1250, %t1251 br i1 %t1252, label %grow294, label %put295 grow294: %t1253 = mul i32 %t1251, 2 %t1254 = icmp eq i32 %t1251, 0 %t1255 = select i1 %t1254, i32 8, i32 %t1253 %t1256 = getelementptr ptr, ptr null, i32 1 %t1257 = ptrtoint ptr %t1256 to i64 %t1258 = zext i32 %t1255 to i64 %t1259 = mul i64 %t1258, %t1257 %t1260 = load ptr, ptr %t1249 %t1261 = call ptr @realloc(ptr %t1260, i64 %t1259) store ptr %t1261, ptr %t1249 store i32 %t1255, ptr %t1248 br label %put295 put295: %t1262 = load ptr, ptr %t1249 %t1263 = getelementptr inbounds ptr, ptr %t1262, i32 %t1250 store ptr @.str5591, ptr %t1263 %t1264 = add i32 %t1250, 1 store i32 %t1264, ptr %t1247 %t1265 = load ptr, ptr %t285 %t1266 = getelementptr inbounds %LSlice, ptr %t1265, i32 0, i32 1 %t1267 = getelementptr inbounds %LSlice, ptr %t1265, i32 0, i32 2 %t1268 = getelementptr inbounds %LSlice, ptr %t1265, i32 0, i32 0 %t1269 = load i32, ptr %t1266 %t1270 = load i32, ptr %t1267 %t1271 = icmp sge i32 %t1269, %t1270 br i1 %t1271, label %grow296, label %put297 grow296: %t1272 = mul i32 %t1270, 2 %t1273 = icmp eq i32 %t1270, 0 %t1274 = select i1 %t1273, i32 8, i32 %t1272 %t1275 = getelementptr ptr, ptr null, i32 1 %t1276 = ptrtoint ptr %t1275 to i64 %t1277 = zext i32 %t1274 to i64 %t1278 = mul i64 %t1277, %t1276 %t1279 = load ptr, ptr %t1268 %t1280 = call ptr @realloc(ptr %t1279, i64 %t1278) store ptr %t1280, ptr %t1268 store i32 %t1274, ptr %t1267 br label %put297 put297: %t1281 = load ptr, ptr %t1268 %t1282 = getelementptr inbounds ptr, ptr %t1281, i32 %t1269 store ptr @.str5592, ptr %t1282 %t1283 = add i32 %t1269, 1 store i32 %t1283, ptr %t1266 %t1284 = load ptr, ptr %t285 %t1285 = getelementptr inbounds %LSlice, ptr %t1284, i32 0, i32 1 %t1286 = getelementptr inbounds %LSlice, ptr %t1284, i32 0, i32 2 %t1287 = getelementptr inbounds %LSlice, ptr %t1284, i32 0, i32 0 %t1288 = load i32, ptr %t1285 %t1289 = load i32, ptr %t1286 %t1290 = icmp sge i32 %t1288, %t1289 br i1 %t1290, label %grow298, label %put299 grow298: %t1291 = mul i32 %t1289, 2 %t1292 = icmp eq i32 %t1289, 0 %t1293 = select i1 %t1292, i32 8, i32 %t1291 %t1294 = getelementptr ptr, ptr null, i32 1 %t1295 = ptrtoint ptr %t1294 to i64 %t1296 = zext i32 %t1293 to i64 %t1297 = mul i64 %t1296, %t1295 %t1298 = load ptr, ptr %t1287 %t1299 = call ptr @realloc(ptr %t1298, i64 %t1297) store ptr %t1299, ptr %t1287 store i32 %t1293, ptr %t1286 br label %put299 put299: %t1300 = load ptr, ptr %t1287 %t1301 = getelementptr inbounds ptr, ptr %t1300, i32 %t1288 store ptr @.str5593, ptr %t1301 %t1302 = add i32 %t1288, 1 store i32 %t1302, ptr %t1285 %t1303 = load ptr, ptr %t285 %t1304 = getelementptr inbounds %LSlice, ptr %t1303, i32 0, i32 1 %t1305 = getelementptr inbounds %LSlice, ptr %t1303, i32 0, i32 2 %t1306 = getelementptr inbounds %LSlice, ptr %t1303, i32 0, i32 0 %t1307 = load i32, ptr %t1304 %t1308 = load i32, ptr %t1305 %t1309 = icmp sge i32 %t1307, %t1308 br i1 %t1309, label %grow300, label %put301 grow300: %t1310 = mul i32 %t1308, 2 %t1311 = icmp eq i32 %t1308, 0 %t1312 = select i1 %t1311, i32 8, i32 %t1310 %t1313 = getelementptr ptr, ptr null, i32 1 %t1314 = ptrtoint ptr %t1313 to i64 %t1315 = zext i32 %t1312 to i64 %t1316 = mul i64 %t1315, %t1314 %t1317 = load ptr, ptr %t1306 %t1318 = call ptr @realloc(ptr %t1317, i64 %t1316) store ptr %t1318, ptr %t1306 store i32 %t1312, ptr %t1305 br label %put301 put301: %t1319 = load ptr, ptr %t1306 %t1320 = getelementptr inbounds ptr, ptr %t1319, i32 %t1307 store ptr @.str5594, ptr %t1320 %t1321 = add i32 %t1307, 1 store i32 %t1321, ptr %t1304 br label %ifend287 ifend287: %t1322 = load ptr, ptr %t1 %t1323 = call i32 @fn_str_eq(ptr %t1322, ptr @.str5595) %t1324 = icmp ne i32 %t1323, 0 br i1 %t1324, label %then302, label %ifend304 then302: store ptr @.str5596, ptr %t278 %t1325 = load ptr, ptr %t285 %t1326 = getelementptr inbounds %LSlice, ptr %t1325, i32 0, i32 1 %t1327 = getelementptr inbounds %LSlice, ptr %t1325, i32 0, i32 2 %t1328 = getelementptr inbounds %LSlice, ptr %t1325, i32 0, i32 0 %t1329 = load i32, ptr %t1326 %t1330 = load i32, ptr %t1327 %t1331 = icmp sge i32 %t1329, %t1330 br i1 %t1331, label %grow305, label %put306 grow305: %t1332 = mul i32 %t1330, 2 %t1333 = icmp eq i32 %t1330, 0 %t1334 = select i1 %t1333, i32 8, i32 %t1332 %t1335 = getelementptr ptr, ptr null, i32 1 %t1336 = ptrtoint ptr %t1335 to i64 %t1337 = zext i32 %t1334 to i64 %t1338 = mul i64 %t1337, %t1336 %t1339 = load ptr, ptr %t1328 %t1340 = call ptr @realloc(ptr %t1339, i64 %t1338) store ptr %t1340, ptr %t1328 store i32 %t1334, ptr %t1327 br label %put306 put306: %t1341 = load ptr, ptr %t1328 %t1342 = getelementptr inbounds ptr, ptr %t1341, i32 %t1329 store ptr @.str5597, ptr %t1342 %t1343 = add i32 %t1329, 1 store i32 %t1343, ptr %t1326 %t1344 = load ptr, ptr %t285 %t1345 = getelementptr inbounds %LSlice, ptr %t1344, i32 0, i32 1 %t1346 = getelementptr inbounds %LSlice, ptr %t1344, i32 0, i32 2 %t1347 = getelementptr inbounds %LSlice, ptr %t1344, i32 0, i32 0 %t1348 = load i32, ptr %t1345 %t1349 = load i32, ptr %t1346 %t1350 = icmp sge i32 %t1348, %t1349 br i1 %t1350, label %grow307, label %put308 grow307: %t1351 = mul i32 %t1349, 2 %t1352 = icmp eq i32 %t1349, 0 %t1353 = select i1 %t1352, i32 8, i32 %t1351 %t1354 = getelementptr ptr, ptr null, i32 1 %t1355 = ptrtoint ptr %t1354 to i64 %t1356 = zext i32 %t1353 to i64 %t1357 = mul i64 %t1356, %t1355 %t1358 = load ptr, ptr %t1347 %t1359 = call ptr @realloc(ptr %t1358, i64 %t1357) store ptr %t1359, ptr %t1347 store i32 %t1353, ptr %t1346 br label %put308 put308: %t1360 = load ptr, ptr %t1347 %t1361 = getelementptr inbounds ptr, ptr %t1360, i32 %t1348 store ptr @.str5598, ptr %t1361 %t1362 = add i32 %t1348, 1 store i32 %t1362, ptr %t1345 %t1363 = load ptr, ptr %t285 %t1364 = getelementptr inbounds %LSlice, ptr %t1363, i32 0, i32 1 %t1365 = getelementptr inbounds %LSlice, ptr %t1363, i32 0, i32 2 %t1366 = getelementptr inbounds %LSlice, ptr %t1363, i32 0, i32 0 %t1367 = load i32, ptr %t1364 %t1368 = load i32, ptr %t1365 %t1369 = icmp sge i32 %t1367, %t1368 br i1 %t1369, label %grow309, label %put310 grow309: %t1370 = mul i32 %t1368, 2 %t1371 = icmp eq i32 %t1368, 0 %t1372 = select i1 %t1371, i32 8, i32 %t1370 %t1373 = getelementptr ptr, ptr null, i32 1 %t1374 = ptrtoint ptr %t1373 to i64 %t1375 = zext i32 %t1372 to i64 %t1376 = mul i64 %t1375, %t1374 %t1377 = load ptr, ptr %t1366 %t1378 = call ptr @realloc(ptr %t1377, i64 %t1376) store ptr %t1378, ptr %t1366 store i32 %t1372, ptr %t1365 br label %put310 put310: %t1379 = load ptr, ptr %t1366 %t1380 = getelementptr inbounds ptr, ptr %t1379, i32 %t1367 store ptr @.str5599, ptr %t1380 %t1381 = add i32 %t1367, 1 store i32 %t1381, ptr %t1364 br label %ifend304 ifend304: %t1382 = load ptr, ptr %t1 %t1383 = call i32 @fn_str_eq(ptr %t1382, ptr @.str5600) %t1384 = icmp ne i32 %t1383, 0 br i1 %t1384, label %then311, label %ifend313 then311: store ptr @.str5601, ptr %t278 %t1385 = load ptr, ptr %t285 %t1386 = getelementptr inbounds %LSlice, ptr %t1385, i32 0, i32 1 %t1387 = getelementptr inbounds %LSlice, ptr %t1385, i32 0, i32 2 %t1388 = getelementptr inbounds %LSlice, ptr %t1385, i32 0, i32 0 %t1389 = load i32, ptr %t1386 %t1390 = load i32, ptr %t1387 %t1391 = icmp sge i32 %t1389, %t1390 br i1 %t1391, label %grow314, label %put315 grow314: %t1392 = mul i32 %t1390, 2 %t1393 = icmp eq i32 %t1390, 0 %t1394 = select i1 %t1393, i32 8, i32 %t1392 %t1395 = getelementptr ptr, ptr null, i32 1 %t1396 = ptrtoint ptr %t1395 to i64 %t1397 = zext i32 %t1394 to i64 %t1398 = mul i64 %t1397, %t1396 %t1399 = load ptr, ptr %t1388 %t1400 = call ptr @realloc(ptr %t1399, i64 %t1398) store ptr %t1400, ptr %t1388 store i32 %t1394, ptr %t1387 br label %put315 put315: %t1401 = load ptr, ptr %t1388 %t1402 = getelementptr inbounds ptr, ptr %t1401, i32 %t1389 store ptr @.str5602, ptr %t1402 %t1403 = add i32 %t1389, 1 store i32 %t1403, ptr %t1386 %t1404 = load ptr, ptr %t285 %t1405 = getelementptr inbounds %LSlice, ptr %t1404, i32 0, i32 1 %t1406 = getelementptr inbounds %LSlice, ptr %t1404, i32 0, i32 2 %t1407 = getelementptr inbounds %LSlice, ptr %t1404, i32 0, i32 0 %t1408 = load i32, ptr %t1405 %t1409 = load i32, ptr %t1406 %t1410 = icmp sge i32 %t1408, %t1409 br i1 %t1410, label %grow316, label %put317 grow316: %t1411 = mul i32 %t1409, 2 %t1412 = icmp eq i32 %t1409, 0 %t1413 = select i1 %t1412, i32 8, i32 %t1411 %t1414 = getelementptr ptr, ptr null, i32 1 %t1415 = ptrtoint ptr %t1414 to i64 %t1416 = zext i32 %t1413 to i64 %t1417 = mul i64 %t1416, %t1415 %t1418 = load ptr, ptr %t1407 %t1419 = call ptr @realloc(ptr %t1418, i64 %t1417) store ptr %t1419, ptr %t1407 store i32 %t1413, ptr %t1406 br label %put317 put317: %t1420 = load ptr, ptr %t1407 %t1421 = getelementptr inbounds ptr, ptr %t1420, i32 %t1408 store ptr @.str5603, ptr %t1421 %t1422 = add i32 %t1408, 1 store i32 %t1422, ptr %t1405 %t1423 = load ptr, ptr %t285 %t1424 = getelementptr inbounds %LSlice, ptr %t1423, i32 0, i32 1 %t1425 = getelementptr inbounds %LSlice, ptr %t1423, i32 0, i32 2 %t1426 = getelementptr inbounds %LSlice, ptr %t1423, i32 0, i32 0 %t1427 = load i32, ptr %t1424 %t1428 = load i32, ptr %t1425 %t1429 = icmp sge i32 %t1427, %t1428 br i1 %t1429, label %grow318, label %put319 grow318: %t1430 = mul i32 %t1428, 2 %t1431 = icmp eq i32 %t1428, 0 %t1432 = select i1 %t1431, i32 8, i32 %t1430 %t1433 = getelementptr ptr, ptr null, i32 1 %t1434 = ptrtoint ptr %t1433 to i64 %t1435 = zext i32 %t1432 to i64 %t1436 = mul i64 %t1435, %t1434 %t1437 = load ptr, ptr %t1426 %t1438 = call ptr @realloc(ptr %t1437, i64 %t1436) store ptr %t1438, ptr %t1426 store i32 %t1432, ptr %t1425 br label %put319 put319: %t1439 = load ptr, ptr %t1426 %t1440 = getelementptr inbounds ptr, ptr %t1439, i32 %t1427 store ptr @.str5604, ptr %t1440 %t1441 = add i32 %t1427, 1 store i32 %t1441, ptr %t1424 %t1442 = load ptr, ptr %t285 %t1443 = getelementptr inbounds %LSlice, ptr %t1442, i32 0, i32 1 %t1444 = getelementptr inbounds %LSlice, ptr %t1442, i32 0, i32 2 %t1445 = getelementptr inbounds %LSlice, ptr %t1442, i32 0, i32 0 %t1446 = load i32, ptr %t1443 %t1447 = load i32, ptr %t1444 %t1448 = icmp sge i32 %t1446, %t1447 br i1 %t1448, label %grow320, label %put321 grow320: %t1449 = mul i32 %t1447, 2 %t1450 = icmp eq i32 %t1447, 0 %t1451 = select i1 %t1450, i32 8, i32 %t1449 %t1452 = getelementptr ptr, ptr null, i32 1 %t1453 = ptrtoint ptr %t1452 to i64 %t1454 = zext i32 %t1451 to i64 %t1455 = mul i64 %t1454, %t1453 %t1456 = load ptr, ptr %t1445 %t1457 = call ptr @realloc(ptr %t1456, i64 %t1455) store ptr %t1457, ptr %t1445 store i32 %t1451, ptr %t1444 br label %put321 put321: %t1458 = load ptr, ptr %t1445 %t1459 = getelementptr inbounds ptr, ptr %t1458, i32 %t1446 store ptr @.str5605, ptr %t1459 %t1460 = add i32 %t1446, 1 store i32 %t1460, ptr %t1443 br label %ifend313 ifend313: %t1461 = load ptr, ptr %t1 %t1462 = call i32 @fn_str_eq(ptr %t1461, ptr @.str5606) %t1463 = icmp ne i32 %t1462, 0 br i1 %t1463, label %then322, label %ifend324 then322: store ptr @.str5607, ptr %t278 %t1464 = load ptr, ptr %t285 %t1465 = getelementptr inbounds %LSlice, ptr %t1464, i32 0, i32 1 %t1466 = getelementptr inbounds %LSlice, ptr %t1464, i32 0, i32 2 %t1467 = getelementptr inbounds %LSlice, ptr %t1464, i32 0, i32 0 %t1468 = load i32, ptr %t1465 %t1469 = load i32, ptr %t1466 %t1470 = icmp sge i32 %t1468, %t1469 br i1 %t1470, label %grow325, label %put326 grow325: %t1471 = mul i32 %t1469, 2 %t1472 = icmp eq i32 %t1469, 0 %t1473 = select i1 %t1472, i32 8, i32 %t1471 %t1474 = getelementptr ptr, ptr null, i32 1 %t1475 = ptrtoint ptr %t1474 to i64 %t1476 = zext i32 %t1473 to i64 %t1477 = mul i64 %t1476, %t1475 %t1478 = load ptr, ptr %t1467 %t1479 = call ptr @realloc(ptr %t1478, i64 %t1477) store ptr %t1479, ptr %t1467 store i32 %t1473, ptr %t1466 br label %put326 put326: %t1480 = load ptr, ptr %t1467 %t1481 = getelementptr inbounds ptr, ptr %t1480, i32 %t1468 store ptr @.str5608, ptr %t1481 %t1482 = add i32 %t1468, 1 store i32 %t1482, ptr %t1465 %t1483 = load ptr, ptr %t285 %t1484 = getelementptr inbounds %LSlice, ptr %t1483, i32 0, i32 1 %t1485 = getelementptr inbounds %LSlice, ptr %t1483, i32 0, i32 2 %t1486 = getelementptr inbounds %LSlice, ptr %t1483, i32 0, i32 0 %t1487 = load i32, ptr %t1484 %t1488 = load i32, ptr %t1485 %t1489 = icmp sge i32 %t1487, %t1488 br i1 %t1489, label %grow327, label %put328 grow327: %t1490 = mul i32 %t1488, 2 %t1491 = icmp eq i32 %t1488, 0 %t1492 = select i1 %t1491, i32 8, i32 %t1490 %t1493 = getelementptr ptr, ptr null, i32 1 %t1494 = ptrtoint ptr %t1493 to i64 %t1495 = zext i32 %t1492 to i64 %t1496 = mul i64 %t1495, %t1494 %t1497 = load ptr, ptr %t1486 %t1498 = call ptr @realloc(ptr %t1497, i64 %t1496) store ptr %t1498, ptr %t1486 store i32 %t1492, ptr %t1485 br label %put328 put328: %t1499 = load ptr, ptr %t1486 %t1500 = getelementptr inbounds ptr, ptr %t1499, i32 %t1487 store ptr @.str5609, ptr %t1500 %t1501 = add i32 %t1487, 1 store i32 %t1501, ptr %t1484 %t1502 = load ptr, ptr %t285 %t1503 = getelementptr inbounds %LSlice, ptr %t1502, i32 0, i32 1 %t1504 = getelementptr inbounds %LSlice, ptr %t1502, i32 0, i32 2 %t1505 = getelementptr inbounds %LSlice, ptr %t1502, i32 0, i32 0 %t1506 = load i32, ptr %t1503 %t1507 = load i32, ptr %t1504 %t1508 = icmp sge i32 %t1506, %t1507 br i1 %t1508, label %grow329, label %put330 grow329: %t1509 = mul i32 %t1507, 2 %t1510 = icmp eq i32 %t1507, 0 %t1511 = select i1 %t1510, i32 8, i32 %t1509 %t1512 = getelementptr ptr, ptr null, i32 1 %t1513 = ptrtoint ptr %t1512 to i64 %t1514 = zext i32 %t1511 to i64 %t1515 = mul i64 %t1514, %t1513 %t1516 = load ptr, ptr %t1505 %t1517 = call ptr @realloc(ptr %t1516, i64 %t1515) store ptr %t1517, ptr %t1505 store i32 %t1511, ptr %t1504 br label %put330 put330: %t1518 = load ptr, ptr %t1505 %t1519 = getelementptr inbounds ptr, ptr %t1518, i32 %t1506 store ptr @.str5610, ptr %t1519 %t1520 = add i32 %t1506, 1 store i32 %t1520, ptr %t1503 %t1521 = load ptr, ptr %t285 %t1522 = getelementptr inbounds %LSlice, ptr %t1521, i32 0, i32 1 %t1523 = getelementptr inbounds %LSlice, ptr %t1521, i32 0, i32 2 %t1524 = getelementptr inbounds %LSlice, ptr %t1521, i32 0, i32 0 %t1525 = load i32, ptr %t1522 %t1526 = load i32, ptr %t1523 %t1527 = icmp sge i32 %t1525, %t1526 br i1 %t1527, label %grow331, label %put332 grow331: %t1528 = mul i32 %t1526, 2 %t1529 = icmp eq i32 %t1526, 0 %t1530 = select i1 %t1529, i32 8, i32 %t1528 %t1531 = getelementptr ptr, ptr null, i32 1 %t1532 = ptrtoint ptr %t1531 to i64 %t1533 = zext i32 %t1530 to i64 %t1534 = mul i64 %t1533, %t1532 %t1535 = load ptr, ptr %t1524 %t1536 = call ptr @realloc(ptr %t1535, i64 %t1534) store ptr %t1536, ptr %t1524 store i32 %t1530, ptr %t1523 br label %put332 put332: %t1537 = load ptr, ptr %t1524 %t1538 = getelementptr inbounds ptr, ptr %t1537, i32 %t1525 store ptr @.str5611, ptr %t1538 %t1539 = add i32 %t1525, 1 store i32 %t1539, ptr %t1522 %t1540 = load ptr, ptr %t285 %t1541 = getelementptr inbounds %LSlice, ptr %t1540, i32 0, i32 1 %t1542 = getelementptr inbounds %LSlice, ptr %t1540, i32 0, i32 2 %t1543 = getelementptr inbounds %LSlice, ptr %t1540, i32 0, i32 0 %t1544 = load i32, ptr %t1541 %t1545 = load i32, ptr %t1542 %t1546 = icmp sge i32 %t1544, %t1545 br i1 %t1546, label %grow333, label %put334 grow333: %t1547 = mul i32 %t1545, 2 %t1548 = icmp eq i32 %t1545, 0 %t1549 = select i1 %t1548, i32 8, i32 %t1547 %t1550 = getelementptr ptr, ptr null, i32 1 %t1551 = ptrtoint ptr %t1550 to i64 %t1552 = zext i32 %t1549 to i64 %t1553 = mul i64 %t1552, %t1551 %t1554 = load ptr, ptr %t1543 %t1555 = call ptr @realloc(ptr %t1554, i64 %t1553) store ptr %t1555, ptr %t1543 store i32 %t1549, ptr %t1542 br label %put334 put334: %t1556 = load ptr, ptr %t1543 %t1557 = getelementptr inbounds ptr, ptr %t1556, i32 %t1544 store ptr @.str5612, ptr %t1557 %t1558 = add i32 %t1544, 1 store i32 %t1558, ptr %t1541 br label %ifend324 ifend324: %t1559 = load ptr, ptr %t1 %t1560 = call i32 @fn_str_eq(ptr %t1559, ptr @.str5613) %t1561 = icmp ne i32 %t1560, 0 br i1 %t1561, label %then335, label %ifend337 then335: store ptr @.str5614, ptr %t278 %t1562 = load ptr, ptr %t285 %t1563 = getelementptr inbounds %LSlice, ptr %t1562, i32 0, i32 1 %t1564 = getelementptr inbounds %LSlice, ptr %t1562, i32 0, i32 2 %t1565 = getelementptr inbounds %LSlice, ptr %t1562, i32 0, i32 0 %t1566 = load i32, ptr %t1563 %t1567 = load i32, ptr %t1564 %t1568 = icmp sge i32 %t1566, %t1567 br i1 %t1568, label %grow338, label %put339 grow338: %t1569 = mul i32 %t1567, 2 %t1570 = icmp eq i32 %t1567, 0 %t1571 = select i1 %t1570, i32 8, i32 %t1569 %t1572 = getelementptr ptr, ptr null, i32 1 %t1573 = ptrtoint ptr %t1572 to i64 %t1574 = zext i32 %t1571 to i64 %t1575 = mul i64 %t1574, %t1573 %t1576 = load ptr, ptr %t1565 %t1577 = call ptr @realloc(ptr %t1576, i64 %t1575) store ptr %t1577, ptr %t1565 store i32 %t1571, ptr %t1564 br label %put339 put339: %t1578 = load ptr, ptr %t1565 %t1579 = getelementptr inbounds ptr, ptr %t1578, i32 %t1566 store ptr @.str5615, ptr %t1579 %t1580 = add i32 %t1566, 1 store i32 %t1580, ptr %t1563 %t1581 = load ptr, ptr %t285 %t1582 = getelementptr inbounds %LSlice, ptr %t1581, i32 0, i32 1 %t1583 = getelementptr inbounds %LSlice, ptr %t1581, i32 0, i32 2 %t1584 = getelementptr inbounds %LSlice, ptr %t1581, i32 0, i32 0 %t1585 = load i32, ptr %t1582 %t1586 = load i32, ptr %t1583 %t1587 = icmp sge i32 %t1585, %t1586 br i1 %t1587, label %grow340, label %put341 grow340: %t1588 = mul i32 %t1586, 2 %t1589 = icmp eq i32 %t1586, 0 %t1590 = select i1 %t1589, i32 8, i32 %t1588 %t1591 = getelementptr ptr, ptr null, i32 1 %t1592 = ptrtoint ptr %t1591 to i64 %t1593 = zext i32 %t1590 to i64 %t1594 = mul i64 %t1593, %t1592 %t1595 = load ptr, ptr %t1584 %t1596 = call ptr @realloc(ptr %t1595, i64 %t1594) store ptr %t1596, ptr %t1584 store i32 %t1590, ptr %t1583 br label %put341 put341: %t1597 = load ptr, ptr %t1584 %t1598 = getelementptr inbounds ptr, ptr %t1597, i32 %t1585 store ptr @.str5616, ptr %t1598 %t1599 = add i32 %t1585, 1 store i32 %t1599, ptr %t1582 br label %ifend337 ifend337: %t1600 = load ptr, ptr %t1 %t1601 = call i32 @fn_str_eq(ptr %t1600, ptr @.str5617) %t1602 = icmp ne i32 %t1601, 0 br i1 %t1602, label %then342, label %ifend344 then342: store ptr @.str5618, ptr %t278 %t1603 = load ptr, ptr %t285 %t1604 = getelementptr inbounds %LSlice, ptr %t1603, i32 0, i32 1 %t1605 = getelementptr inbounds %LSlice, ptr %t1603, i32 0, i32 2 %t1606 = getelementptr inbounds %LSlice, ptr %t1603, i32 0, i32 0 %t1607 = load i32, ptr %t1604 %t1608 = load i32, ptr %t1605 %t1609 = icmp sge i32 %t1607, %t1608 br i1 %t1609, label %grow345, label %put346 grow345: %t1610 = mul i32 %t1608, 2 %t1611 = icmp eq i32 %t1608, 0 %t1612 = select i1 %t1611, i32 8, i32 %t1610 %t1613 = getelementptr ptr, ptr null, i32 1 %t1614 = ptrtoint ptr %t1613 to i64 %t1615 = zext i32 %t1612 to i64 %t1616 = mul i64 %t1615, %t1614 %t1617 = load ptr, ptr %t1606 %t1618 = call ptr @realloc(ptr %t1617, i64 %t1616) store ptr %t1618, ptr %t1606 store i32 %t1612, ptr %t1605 br label %put346 put346: %t1619 = load ptr, ptr %t1606 %t1620 = getelementptr inbounds ptr, ptr %t1619, i32 %t1607 store ptr @.str5619, ptr %t1620 %t1621 = add i32 %t1607, 1 store i32 %t1621, ptr %t1604 %t1622 = load ptr, ptr %t285 %t1623 = getelementptr inbounds %LSlice, ptr %t1622, i32 0, i32 1 %t1624 = getelementptr inbounds %LSlice, ptr %t1622, i32 0, i32 2 %t1625 = getelementptr inbounds %LSlice, ptr %t1622, i32 0, i32 0 %t1626 = load i32, ptr %t1623 %t1627 = load i32, ptr %t1624 %t1628 = icmp sge i32 %t1626, %t1627 br i1 %t1628, label %grow347, label %put348 grow347: %t1629 = mul i32 %t1627, 2 %t1630 = icmp eq i32 %t1627, 0 %t1631 = select i1 %t1630, i32 8, i32 %t1629 %t1632 = getelementptr ptr, ptr null, i32 1 %t1633 = ptrtoint ptr %t1632 to i64 %t1634 = zext i32 %t1631 to i64 %t1635 = mul i64 %t1634, %t1633 %t1636 = load ptr, ptr %t1625 %t1637 = call ptr @realloc(ptr %t1636, i64 %t1635) store ptr %t1637, ptr %t1625 store i32 %t1631, ptr %t1624 br label %put348 put348: %t1638 = load ptr, ptr %t1625 %t1639 = getelementptr inbounds ptr, ptr %t1638, i32 %t1626 store ptr @.str5620, ptr %t1639 %t1640 = add i32 %t1626, 1 store i32 %t1640, ptr %t1623 %t1641 = load ptr, ptr %t285 %t1642 = getelementptr inbounds %LSlice, ptr %t1641, i32 0, i32 1 %t1643 = getelementptr inbounds %LSlice, ptr %t1641, i32 0, i32 2 %t1644 = getelementptr inbounds %LSlice, ptr %t1641, i32 0, i32 0 %t1645 = load i32, ptr %t1642 %t1646 = load i32, ptr %t1643 %t1647 = icmp sge i32 %t1645, %t1646 br i1 %t1647, label %grow349, label %put350 grow349: %t1648 = mul i32 %t1646, 2 %t1649 = icmp eq i32 %t1646, 0 %t1650 = select i1 %t1649, i32 8, i32 %t1648 %t1651 = getelementptr ptr, ptr null, i32 1 %t1652 = ptrtoint ptr %t1651 to i64 %t1653 = zext i32 %t1650 to i64 %t1654 = mul i64 %t1653, %t1652 %t1655 = load ptr, ptr %t1644 %t1656 = call ptr @realloc(ptr %t1655, i64 %t1654) store ptr %t1656, ptr %t1644 store i32 %t1650, ptr %t1643 br label %put350 put350: %t1657 = load ptr, ptr %t1644 %t1658 = getelementptr inbounds ptr, ptr %t1657, i32 %t1645 store ptr @.str5621, ptr %t1658 %t1659 = add i32 %t1645, 1 store i32 %t1659, ptr %t1642 %t1660 = load ptr, ptr %t285 %t1661 = getelementptr inbounds %LSlice, ptr %t1660, i32 0, i32 1 %t1662 = getelementptr inbounds %LSlice, ptr %t1660, i32 0, i32 2 %t1663 = getelementptr inbounds %LSlice, ptr %t1660, i32 0, i32 0 %t1664 = load i32, ptr %t1661 %t1665 = load i32, ptr %t1662 %t1666 = icmp sge i32 %t1664, %t1665 br i1 %t1666, label %grow351, label %put352 grow351: %t1667 = mul i32 %t1665, 2 %t1668 = icmp eq i32 %t1665, 0 %t1669 = select i1 %t1668, i32 8, i32 %t1667 %t1670 = getelementptr ptr, ptr null, i32 1 %t1671 = ptrtoint ptr %t1670 to i64 %t1672 = zext i32 %t1669 to i64 %t1673 = mul i64 %t1672, %t1671 %t1674 = load ptr, ptr %t1663 %t1675 = call ptr @realloc(ptr %t1674, i64 %t1673) store ptr %t1675, ptr %t1663 store i32 %t1669, ptr %t1662 br label %put352 put352: %t1676 = load ptr, ptr %t1663 %t1677 = getelementptr inbounds ptr, ptr %t1676, i32 %t1664 store ptr @.str5622, ptr %t1677 %t1678 = add i32 %t1664, 1 store i32 %t1678, ptr %t1661 br label %ifend344 ifend344: %t1679 = load ptr, ptr %t1 %t1680 = call i32 @fn_str_eq(ptr %t1679, ptr @.str5623) %t1681 = icmp ne i32 %t1680, 0 br i1 %t1681, label %then353, label %ifend355 then353: store ptr @.str5624, ptr %t278 br label %ifend355 ifend355: %t1682 = load ptr, ptr %t1 %t1683 = call i32 @fn_str_eq(ptr %t1682, ptr @.str5625) %t1684 = icmp ne i32 %t1683, 0 br i1 %t1684, label %then356, label %ifend358 then356: store ptr @.str5626, ptr %t278 %t1685 = load ptr, ptr %t285 %t1686 = getelementptr inbounds %LSlice, ptr %t1685, i32 0, i32 1 %t1687 = getelementptr inbounds %LSlice, ptr %t1685, i32 0, i32 2 %t1688 = getelementptr inbounds %LSlice, ptr %t1685, i32 0, i32 0 %t1689 = load i32, ptr %t1686 %t1690 = load i32, ptr %t1687 %t1691 = icmp sge i32 %t1689, %t1690 br i1 %t1691, label %grow359, label %put360 grow359: %t1692 = mul i32 %t1690, 2 %t1693 = icmp eq i32 %t1690, 0 %t1694 = select i1 %t1693, i32 8, i32 %t1692 %t1695 = getelementptr ptr, ptr null, i32 1 %t1696 = ptrtoint ptr %t1695 to i64 %t1697 = zext i32 %t1694 to i64 %t1698 = mul i64 %t1697, %t1696 %t1699 = load ptr, ptr %t1688 %t1700 = call ptr @realloc(ptr %t1699, i64 %t1698) store ptr %t1700, ptr %t1688 store i32 %t1694, ptr %t1687 br label %put360 put360: %t1701 = load ptr, ptr %t1688 %t1702 = getelementptr inbounds ptr, ptr %t1701, i32 %t1689 store ptr @.str5627, ptr %t1702 %t1703 = add i32 %t1689, 1 store i32 %t1703, ptr %t1686 br label %ifend358 ifend358: %t1704 = load ptr, ptr %t1 %t1705 = call i32 @fn_str_eq(ptr %t1704, ptr @.str5628) %t1706 = icmp ne i32 %t1705, 0 br i1 %t1706, label %then361, label %ifend363 then361: store ptr @.str5629, ptr %t278 %t1707 = load ptr, ptr %t285 %t1708 = getelementptr inbounds %LSlice, ptr %t1707, i32 0, i32 1 %t1709 = getelementptr inbounds %LSlice, ptr %t1707, i32 0, i32 2 %t1710 = getelementptr inbounds %LSlice, ptr %t1707, i32 0, i32 0 %t1711 = load i32, ptr %t1708 %t1712 = load i32, ptr %t1709 %t1713 = icmp sge i32 %t1711, %t1712 br i1 %t1713, label %grow364, label %put365 grow364: %t1714 = mul i32 %t1712, 2 %t1715 = icmp eq i32 %t1712, 0 %t1716 = select i1 %t1715, i32 8, i32 %t1714 %t1717 = getelementptr ptr, ptr null, i32 1 %t1718 = ptrtoint ptr %t1717 to i64 %t1719 = zext i32 %t1716 to i64 %t1720 = mul i64 %t1719, %t1718 %t1721 = load ptr, ptr %t1710 %t1722 = call ptr @realloc(ptr %t1721, i64 %t1720) store ptr %t1722, ptr %t1710 store i32 %t1716, ptr %t1709 br label %put365 put365: %t1723 = load ptr, ptr %t1710 %t1724 = getelementptr inbounds ptr, ptr %t1723, i32 %t1711 store ptr @.str5630, ptr %t1724 %t1725 = add i32 %t1711, 1 store i32 %t1725, ptr %t1708 br label %ifend363 ifend363: %t1726 = load ptr, ptr %t1 %t1727 = call i32 @fn_str_eq(ptr %t1726, ptr @.str5631) %t1728 = icmp ne i32 %t1727, 0 br i1 %t1728, label %then366, label %ifend368 then366: store ptr @.str5632, ptr %t278 %t1729 = load ptr, ptr %t285 %t1730 = getelementptr inbounds %LSlice, ptr %t1729, i32 0, i32 1 %t1731 = getelementptr inbounds %LSlice, ptr %t1729, i32 0, i32 2 %t1732 = getelementptr inbounds %LSlice, ptr %t1729, i32 0, i32 0 %t1733 = load i32, ptr %t1730 %t1734 = load i32, ptr %t1731 %t1735 = icmp sge i32 %t1733, %t1734 br i1 %t1735, label %grow369, label %put370 grow369: %t1736 = mul i32 %t1734, 2 %t1737 = icmp eq i32 %t1734, 0 %t1738 = select i1 %t1737, i32 8, i32 %t1736 %t1739 = getelementptr ptr, ptr null, i32 1 %t1740 = ptrtoint ptr %t1739 to i64 %t1741 = zext i32 %t1738 to i64 %t1742 = mul i64 %t1741, %t1740 %t1743 = load ptr, ptr %t1732 %t1744 = call ptr @realloc(ptr %t1743, i64 %t1742) store ptr %t1744, ptr %t1732 store i32 %t1738, ptr %t1731 br label %put370 put370: %t1745 = load ptr, ptr %t1732 %t1746 = getelementptr inbounds ptr, ptr %t1745, i32 %t1733 store ptr @.str5633, ptr %t1746 %t1747 = add i32 %t1733, 1 store i32 %t1747, ptr %t1730 %t1748 = load ptr, ptr %t285 %t1749 = getelementptr inbounds %LSlice, ptr %t1748, i32 0, i32 1 %t1750 = getelementptr inbounds %LSlice, ptr %t1748, i32 0, i32 2 %t1751 = getelementptr inbounds %LSlice, ptr %t1748, i32 0, i32 0 %t1752 = load i32, ptr %t1749 %t1753 = load i32, ptr %t1750 %t1754 = icmp sge i32 %t1752, %t1753 br i1 %t1754, label %grow371, label %put372 grow371: %t1755 = mul i32 %t1753, 2 %t1756 = icmp eq i32 %t1753, 0 %t1757 = select i1 %t1756, i32 8, i32 %t1755 %t1758 = getelementptr ptr, ptr null, i32 1 %t1759 = ptrtoint ptr %t1758 to i64 %t1760 = zext i32 %t1757 to i64 %t1761 = mul i64 %t1760, %t1759 %t1762 = load ptr, ptr %t1751 %t1763 = call ptr @realloc(ptr %t1762, i64 %t1761) store ptr %t1763, ptr %t1751 store i32 %t1757, ptr %t1750 br label %put372 put372: %t1764 = load ptr, ptr %t1751 %t1765 = getelementptr inbounds ptr, ptr %t1764, i32 %t1752 store ptr @.str5634, ptr %t1765 %t1766 = add i32 %t1752, 1 store i32 %t1766, ptr %t1749 br label %ifend368 ifend368: br label %ifend152 ifend152: %t1767 = load ptr, ptr %t0 %t1768 = call i32 @fn_str_eq(ptr %t1767, ptr @.str5635) %t1769 = icmp ne i32 %t1768, 0 br i1 %t1769, label %then373, label %ifend375 then373: %t1770 = load ptr, ptr %t1 %t1771 = call i32 @fn_str_eq(ptr %t1770, ptr @.str5636) %t1772 = icmp ne i32 %t1771, 0 br i1 %t1772, label %then376, label %ifend378 then376: store ptr @.str5637, ptr %t278 %t1773 = load ptr, ptr %t285 %t1774 = getelementptr inbounds %LSlice, ptr %t1773, i32 0, i32 1 %t1775 = getelementptr inbounds %LSlice, ptr %t1773, i32 0, i32 2 %t1776 = getelementptr inbounds %LSlice, ptr %t1773, i32 0, i32 0 %t1777 = load i32, ptr %t1774 %t1778 = load i32, ptr %t1775 %t1779 = icmp sge i32 %t1777, %t1778 br i1 %t1779, label %grow379, label %put380 grow379: %t1780 = mul i32 %t1778, 2 %t1781 = icmp eq i32 %t1778, 0 %t1782 = select i1 %t1781, i32 8, i32 %t1780 %t1783 = getelementptr ptr, ptr null, i32 1 %t1784 = ptrtoint ptr %t1783 to i64 %t1785 = zext i32 %t1782 to i64 %t1786 = mul i64 %t1785, %t1784 %t1787 = load ptr, ptr %t1776 %t1788 = call ptr @realloc(ptr %t1787, i64 %t1786) store ptr %t1788, ptr %t1776 store i32 %t1782, ptr %t1775 br label %put380 put380: %t1789 = load ptr, ptr %t1776 %t1790 = getelementptr inbounds ptr, ptr %t1789, i32 %t1777 store ptr @.str5638, ptr %t1790 %t1791 = add i32 %t1777, 1 store i32 %t1791, ptr %t1774 %t1792 = load ptr, ptr %t285 %t1793 = getelementptr inbounds %LSlice, ptr %t1792, i32 0, i32 1 %t1794 = getelementptr inbounds %LSlice, ptr %t1792, i32 0, i32 2 %t1795 = getelementptr inbounds %LSlice, ptr %t1792, i32 0, i32 0 %t1796 = load i32, ptr %t1793 %t1797 = load i32, ptr %t1794 %t1798 = icmp sge i32 %t1796, %t1797 br i1 %t1798, label %grow381, label %put382 grow381: %t1799 = mul i32 %t1797, 2 %t1800 = icmp eq i32 %t1797, 0 %t1801 = select i1 %t1800, i32 8, i32 %t1799 %t1802 = getelementptr ptr, ptr null, i32 1 %t1803 = ptrtoint ptr %t1802 to i64 %t1804 = zext i32 %t1801 to i64 %t1805 = mul i64 %t1804, %t1803 %t1806 = load ptr, ptr %t1795 %t1807 = call ptr @realloc(ptr %t1806, i64 %t1805) store ptr %t1807, ptr %t1795 store i32 %t1801, ptr %t1794 br label %put382 put382: %t1808 = load ptr, ptr %t1795 %t1809 = getelementptr inbounds ptr, ptr %t1808, i32 %t1796 store ptr @.str5639, ptr %t1809 %t1810 = add i32 %t1796, 1 store i32 %t1810, ptr %t1793 br label %ifend378 ifend378: %t1811 = load ptr, ptr %t1 %t1812 = call i32 @fn_str_eq(ptr %t1811, ptr @.str5640) %t1813 = icmp ne i32 %t1812, 0 br i1 %t1813, label %then383, label %ifend385 then383: store ptr @.str5641, ptr %t278 %t1814 = load ptr, ptr %t285 %t1815 = getelementptr inbounds %LSlice, ptr %t1814, i32 0, i32 1 %t1816 = getelementptr inbounds %LSlice, ptr %t1814, i32 0, i32 2 %t1817 = getelementptr inbounds %LSlice, ptr %t1814, i32 0, i32 0 %t1818 = load i32, ptr %t1815 %t1819 = load i32, ptr %t1816 %t1820 = icmp sge i32 %t1818, %t1819 br i1 %t1820, label %grow386, label %put387 grow386: %t1821 = mul i32 %t1819, 2 %t1822 = icmp eq i32 %t1819, 0 %t1823 = select i1 %t1822, i32 8, i32 %t1821 %t1824 = getelementptr ptr, ptr null, i32 1 %t1825 = ptrtoint ptr %t1824 to i64 %t1826 = zext i32 %t1823 to i64 %t1827 = mul i64 %t1826, %t1825 %t1828 = load ptr, ptr %t1817 %t1829 = call ptr @realloc(ptr %t1828, i64 %t1827) store ptr %t1829, ptr %t1817 store i32 %t1823, ptr %t1816 br label %put387 put387: %t1830 = load ptr, ptr %t1817 %t1831 = getelementptr inbounds ptr, ptr %t1830, i32 %t1818 store ptr @.str5642, ptr %t1831 %t1832 = add i32 %t1818, 1 store i32 %t1832, ptr %t1815 %t1833 = load ptr, ptr %t285 %t1834 = getelementptr inbounds %LSlice, ptr %t1833, i32 0, i32 1 %t1835 = getelementptr inbounds %LSlice, ptr %t1833, i32 0, i32 2 %t1836 = getelementptr inbounds %LSlice, ptr %t1833, i32 0, i32 0 %t1837 = load i32, ptr %t1834 %t1838 = load i32, ptr %t1835 %t1839 = icmp sge i32 %t1837, %t1838 br i1 %t1839, label %grow388, label %put389 grow388: %t1840 = mul i32 %t1838, 2 %t1841 = icmp eq i32 %t1838, 0 %t1842 = select i1 %t1841, i32 8, i32 %t1840 %t1843 = getelementptr ptr, ptr null, i32 1 %t1844 = ptrtoint ptr %t1843 to i64 %t1845 = zext i32 %t1842 to i64 %t1846 = mul i64 %t1845, %t1844 %t1847 = load ptr, ptr %t1836 %t1848 = call ptr @realloc(ptr %t1847, i64 %t1846) store ptr %t1848, ptr %t1836 store i32 %t1842, ptr %t1835 br label %put389 put389: %t1849 = load ptr, ptr %t1836 %t1850 = getelementptr inbounds ptr, ptr %t1849, i32 %t1837 store ptr @.str5643, ptr %t1850 %t1851 = add i32 %t1837, 1 store i32 %t1851, ptr %t1834 %t1852 = load ptr, ptr %t285 %t1853 = getelementptr inbounds %LSlice, ptr %t1852, i32 0, i32 1 %t1854 = getelementptr inbounds %LSlice, ptr %t1852, i32 0, i32 2 %t1855 = getelementptr inbounds %LSlice, ptr %t1852, i32 0, i32 0 %t1856 = load i32, ptr %t1853 %t1857 = load i32, ptr %t1854 %t1858 = icmp sge i32 %t1856, %t1857 br i1 %t1858, label %grow390, label %put391 grow390: %t1859 = mul i32 %t1857, 2 %t1860 = icmp eq i32 %t1857, 0 %t1861 = select i1 %t1860, i32 8, i32 %t1859 %t1862 = getelementptr ptr, ptr null, i32 1 %t1863 = ptrtoint ptr %t1862 to i64 %t1864 = zext i32 %t1861 to i64 %t1865 = mul i64 %t1864, %t1863 %t1866 = load ptr, ptr %t1855 %t1867 = call ptr @realloc(ptr %t1866, i64 %t1865) store ptr %t1867, ptr %t1855 store i32 %t1861, ptr %t1854 br label %put391 put391: %t1868 = load ptr, ptr %t1855 %t1869 = getelementptr inbounds ptr, ptr %t1868, i32 %t1856 store ptr @.str5644, ptr %t1869 %t1870 = add i32 %t1856, 1 store i32 %t1870, ptr %t1853 br label %ifend385 ifend385: %t1871 = load ptr, ptr %t1 %t1872 = call i32 @fn_str_eq(ptr %t1871, ptr @.str5645) %t1873 = icmp ne i32 %t1872, 0 br i1 %t1873, label %then392, label %ifend394 then392: store ptr @.str5646, ptr %t278 %t1874 = load ptr, ptr %t285 %t1875 = getelementptr inbounds %LSlice, ptr %t1874, i32 0, i32 1 %t1876 = getelementptr inbounds %LSlice, ptr %t1874, i32 0, i32 2 %t1877 = getelementptr inbounds %LSlice, ptr %t1874, i32 0, i32 0 %t1878 = load i32, ptr %t1875 %t1879 = load i32, ptr %t1876 %t1880 = icmp sge i32 %t1878, %t1879 br i1 %t1880, label %grow395, label %put396 grow395: %t1881 = mul i32 %t1879, 2 %t1882 = icmp eq i32 %t1879, 0 %t1883 = select i1 %t1882, i32 8, i32 %t1881 %t1884 = getelementptr ptr, ptr null, i32 1 %t1885 = ptrtoint ptr %t1884 to i64 %t1886 = zext i32 %t1883 to i64 %t1887 = mul i64 %t1886, %t1885 %t1888 = load ptr, ptr %t1877 %t1889 = call ptr @realloc(ptr %t1888, i64 %t1887) store ptr %t1889, ptr %t1877 store i32 %t1883, ptr %t1876 br label %put396 put396: %t1890 = load ptr, ptr %t1877 %t1891 = getelementptr inbounds ptr, ptr %t1890, i32 %t1878 store ptr @.str5647, ptr %t1891 %t1892 = add i32 %t1878, 1 store i32 %t1892, ptr %t1875 br label %ifend394 ifend394: br label %ifend375 ifend375: %t1893 = load ptr, ptr %t0 %t1894 = call i32 @fn_str_eq(ptr %t1893, ptr @.str5648) %t1895 = icmp ne i32 %t1894, 0 br i1 %t1895, label %then397, label %ifend399 then397: %t1896 = load ptr, ptr %t1 %t1897 = call i32 @fn_str_eq(ptr %t1896, ptr @.str5649) %t1898 = icmp ne i32 %t1897, 0 br i1 %t1898, label %then400, label %ifend402 then400: store ptr @.str5650, ptr %t278 %t1899 = load ptr, ptr %t285 %t1900 = getelementptr inbounds %LSlice, ptr %t1899, i32 0, i32 1 %t1901 = getelementptr inbounds %LSlice, ptr %t1899, i32 0, i32 2 %t1902 = getelementptr inbounds %LSlice, ptr %t1899, i32 0, i32 0 %t1903 = load i32, ptr %t1900 %t1904 = load i32, ptr %t1901 %t1905 = icmp sge i32 %t1903, %t1904 br i1 %t1905, label %grow403, label %put404 grow403: %t1906 = mul i32 %t1904, 2 %t1907 = icmp eq i32 %t1904, 0 %t1908 = select i1 %t1907, i32 8, i32 %t1906 %t1909 = getelementptr ptr, ptr null, i32 1 %t1910 = ptrtoint ptr %t1909 to i64 %t1911 = zext i32 %t1908 to i64 %t1912 = mul i64 %t1911, %t1910 %t1913 = load ptr, ptr %t1902 %t1914 = call ptr @realloc(ptr %t1913, i64 %t1912) store ptr %t1914, ptr %t1902 store i32 %t1908, ptr %t1901 br label %put404 put404: %t1915 = load ptr, ptr %t1902 %t1916 = getelementptr inbounds ptr, ptr %t1915, i32 %t1903 store ptr @.str5651, ptr %t1916 %t1917 = add i32 %t1903, 1 store i32 %t1917, ptr %t1900 %t1918 = load ptr, ptr %t285 %t1919 = getelementptr inbounds %LSlice, ptr %t1918, i32 0, i32 1 %t1920 = getelementptr inbounds %LSlice, ptr %t1918, i32 0, i32 2 %t1921 = getelementptr inbounds %LSlice, ptr %t1918, i32 0, i32 0 %t1922 = load i32, ptr %t1919 %t1923 = load i32, ptr %t1920 %t1924 = icmp sge i32 %t1922, %t1923 br i1 %t1924, label %grow405, label %put406 grow405: %t1925 = mul i32 %t1923, 2 %t1926 = icmp eq i32 %t1923, 0 %t1927 = select i1 %t1926, i32 8, i32 %t1925 %t1928 = getelementptr ptr, ptr null, i32 1 %t1929 = ptrtoint ptr %t1928 to i64 %t1930 = zext i32 %t1927 to i64 %t1931 = mul i64 %t1930, %t1929 %t1932 = load ptr, ptr %t1921 %t1933 = call ptr @realloc(ptr %t1932, i64 %t1931) store ptr %t1933, ptr %t1921 store i32 %t1927, ptr %t1920 br label %put406 put406: %t1934 = load ptr, ptr %t1921 %t1935 = getelementptr inbounds ptr, ptr %t1934, i32 %t1922 store ptr @.str5652, ptr %t1935 %t1936 = add i32 %t1922, 1 store i32 %t1936, ptr %t1919 br label %ifend402 ifend402: %t1937 = load ptr, ptr %t1 %t1938 = call i32 @fn_str_eq(ptr %t1937, ptr @.str5653) %t1939 = icmp ne i32 %t1938, 0 br i1 %t1939, label %then407, label %ifend409 then407: store ptr @.str5654, ptr %t278 %t1940 = load ptr, ptr %t285 %t1941 = getelementptr inbounds %LSlice, ptr %t1940, i32 0, i32 1 %t1942 = getelementptr inbounds %LSlice, ptr %t1940, i32 0, i32 2 %t1943 = getelementptr inbounds %LSlice, ptr %t1940, i32 0, i32 0 %t1944 = load i32, ptr %t1941 %t1945 = load i32, ptr %t1942 %t1946 = icmp sge i32 %t1944, %t1945 br i1 %t1946, label %grow410, label %put411 grow410: %t1947 = mul i32 %t1945, 2 %t1948 = icmp eq i32 %t1945, 0 %t1949 = select i1 %t1948, i32 8, i32 %t1947 %t1950 = getelementptr ptr, ptr null, i32 1 %t1951 = ptrtoint ptr %t1950 to i64 %t1952 = zext i32 %t1949 to i64 %t1953 = mul i64 %t1952, %t1951 %t1954 = load ptr, ptr %t1943 %t1955 = call ptr @realloc(ptr %t1954, i64 %t1953) store ptr %t1955, ptr %t1943 store i32 %t1949, ptr %t1942 br label %put411 put411: %t1956 = load ptr, ptr %t1943 %t1957 = getelementptr inbounds ptr, ptr %t1956, i32 %t1944 store ptr @.str5655, ptr %t1957 %t1958 = add i32 %t1944, 1 store i32 %t1958, ptr %t1941 %t1959 = load ptr, ptr %t285 %t1960 = getelementptr inbounds %LSlice, ptr %t1959, i32 0, i32 1 %t1961 = getelementptr inbounds %LSlice, ptr %t1959, i32 0, i32 2 %t1962 = getelementptr inbounds %LSlice, ptr %t1959, i32 0, i32 0 %t1963 = load i32, ptr %t1960 %t1964 = load i32, ptr %t1961 %t1965 = icmp sge i32 %t1963, %t1964 br i1 %t1965, label %grow412, label %put413 grow412: %t1966 = mul i32 %t1964, 2 %t1967 = icmp eq i32 %t1964, 0 %t1968 = select i1 %t1967, i32 8, i32 %t1966 %t1969 = getelementptr ptr, ptr null, i32 1 %t1970 = ptrtoint ptr %t1969 to i64 %t1971 = zext i32 %t1968 to i64 %t1972 = mul i64 %t1971, %t1970 %t1973 = load ptr, ptr %t1962 %t1974 = call ptr @realloc(ptr %t1973, i64 %t1972) store ptr %t1974, ptr %t1962 store i32 %t1968, ptr %t1961 br label %put413 put413: %t1975 = load ptr, ptr %t1962 %t1976 = getelementptr inbounds ptr, ptr %t1975, i32 %t1963 store ptr @.str5656, ptr %t1976 %t1977 = add i32 %t1963, 1 store i32 %t1977, ptr %t1960 br label %ifend409 ifend409: %t1978 = load ptr, ptr %t1 %t1979 = call i32 @fn_str_eq(ptr %t1978, ptr @.str5657) %t1980 = icmp ne i32 %t1979, 0 br i1 %t1980, label %then414, label %ifend416 then414: store ptr @.str5658, ptr %t278 %t1981 = load ptr, ptr %t285 %t1982 = getelementptr inbounds %LSlice, ptr %t1981, i32 0, i32 1 %t1983 = getelementptr inbounds %LSlice, ptr %t1981, i32 0, i32 2 %t1984 = getelementptr inbounds %LSlice, ptr %t1981, i32 0, i32 0 %t1985 = load i32, ptr %t1982 %t1986 = load i32, ptr %t1983 %t1987 = icmp sge i32 %t1985, %t1986 br i1 %t1987, label %grow417, label %put418 grow417: %t1988 = mul i32 %t1986, 2 %t1989 = icmp eq i32 %t1986, 0 %t1990 = select i1 %t1989, i32 8, i32 %t1988 %t1991 = getelementptr ptr, ptr null, i32 1 %t1992 = ptrtoint ptr %t1991 to i64 %t1993 = zext i32 %t1990 to i64 %t1994 = mul i64 %t1993, %t1992 %t1995 = load ptr, ptr %t1984 %t1996 = call ptr @realloc(ptr %t1995, i64 %t1994) store ptr %t1996, ptr %t1984 store i32 %t1990, ptr %t1983 br label %put418 put418: %t1997 = load ptr, ptr %t1984 %t1998 = getelementptr inbounds ptr, ptr %t1997, i32 %t1985 store ptr @.str5659, ptr %t1998 %t1999 = add i32 %t1985, 1 store i32 %t1999, ptr %t1982 %t2000 = load ptr, ptr %t285 %t2001 = getelementptr inbounds %LSlice, ptr %t2000, i32 0, i32 1 %t2002 = getelementptr inbounds %LSlice, ptr %t2000, i32 0, i32 2 %t2003 = getelementptr inbounds %LSlice, ptr %t2000, i32 0, i32 0 %t2004 = load i32, ptr %t2001 %t2005 = load i32, ptr %t2002 %t2006 = icmp sge i32 %t2004, %t2005 br i1 %t2006, label %grow419, label %put420 grow419: %t2007 = mul i32 %t2005, 2 %t2008 = icmp eq i32 %t2005, 0 %t2009 = select i1 %t2008, i32 8, i32 %t2007 %t2010 = getelementptr ptr, ptr null, i32 1 %t2011 = ptrtoint ptr %t2010 to i64 %t2012 = zext i32 %t2009 to i64 %t2013 = mul i64 %t2012, %t2011 %t2014 = load ptr, ptr %t2003 %t2015 = call ptr @realloc(ptr %t2014, i64 %t2013) store ptr %t2015, ptr %t2003 store i32 %t2009, ptr %t2002 br label %put420 put420: %t2016 = load ptr, ptr %t2003 %t2017 = getelementptr inbounds ptr, ptr %t2016, i32 %t2004 store ptr @.str5660, ptr %t2017 %t2018 = add i32 %t2004, 1 store i32 %t2018, ptr %t2001 br label %ifend416 ifend416: br label %ifend399 ifend399: %t2019 = load ptr, ptr %t0 %t2020 = call i32 @fn_str_eq(ptr %t2019, ptr @.str5661) %t2021 = icmp ne i32 %t2020, 0 br i1 %t2021, label %then421, label %ifend423 then421: %t2022 = load ptr, ptr %t1 %t2023 = call i32 @fn_str_eq(ptr %t2022, ptr @.str5662) %t2024 = icmp ne i32 %t2023, 0 br i1 %t2024, label %then424, label %ifend426 then424: store ptr @.str5663, ptr %t278 %t2025 = load ptr, ptr %t285 %t2026 = getelementptr inbounds %LSlice, ptr %t2025, i32 0, i32 1 %t2027 = getelementptr inbounds %LSlice, ptr %t2025, i32 0, i32 2 %t2028 = getelementptr inbounds %LSlice, ptr %t2025, i32 0, i32 0 %t2029 = load i32, ptr %t2026 %t2030 = load i32, ptr %t2027 %t2031 = icmp sge i32 %t2029, %t2030 br i1 %t2031, label %grow427, label %put428 grow427: %t2032 = mul i32 %t2030, 2 %t2033 = icmp eq i32 %t2030, 0 %t2034 = select i1 %t2033, i32 8, i32 %t2032 %t2035 = getelementptr ptr, ptr null, i32 1 %t2036 = ptrtoint ptr %t2035 to i64 %t2037 = zext i32 %t2034 to i64 %t2038 = mul i64 %t2037, %t2036 %t2039 = load ptr, ptr %t2028 %t2040 = call ptr @realloc(ptr %t2039, i64 %t2038) store ptr %t2040, ptr %t2028 store i32 %t2034, ptr %t2027 br label %put428 put428: %t2041 = load ptr, ptr %t2028 %t2042 = getelementptr inbounds ptr, ptr %t2041, i32 %t2029 store ptr @.str5664, ptr %t2042 %t2043 = add i32 %t2029, 1 store i32 %t2043, ptr %t2026 %t2044 = load ptr, ptr %t285 %t2045 = getelementptr inbounds %LSlice, ptr %t2044, i32 0, i32 1 %t2046 = getelementptr inbounds %LSlice, ptr %t2044, i32 0, i32 2 %t2047 = getelementptr inbounds %LSlice, ptr %t2044, i32 0, i32 0 %t2048 = load i32, ptr %t2045 %t2049 = load i32, ptr %t2046 %t2050 = icmp sge i32 %t2048, %t2049 br i1 %t2050, label %grow429, label %put430 grow429: %t2051 = mul i32 %t2049, 2 %t2052 = icmp eq i32 %t2049, 0 %t2053 = select i1 %t2052, i32 8, i32 %t2051 %t2054 = getelementptr ptr, ptr null, i32 1 %t2055 = ptrtoint ptr %t2054 to i64 %t2056 = zext i32 %t2053 to i64 %t2057 = mul i64 %t2056, %t2055 %t2058 = load ptr, ptr %t2047 %t2059 = call ptr @realloc(ptr %t2058, i64 %t2057) store ptr %t2059, ptr %t2047 store i32 %t2053, ptr %t2046 br label %put430 put430: %t2060 = load ptr, ptr %t2047 %t2061 = getelementptr inbounds ptr, ptr %t2060, i32 %t2048 store ptr @.str5665, ptr %t2061 %t2062 = add i32 %t2048, 1 store i32 %t2062, ptr %t2045 br label %ifend426 ifend426: %t2063 = load ptr, ptr %t1 %t2064 = call i32 @fn_str_eq(ptr %t2063, ptr @.str5666) %t2065 = icmp ne i32 %t2064, 0 br i1 %t2065, label %then431, label %ifend433 then431: store ptr @.str5667, ptr %t278 %t2066 = load ptr, ptr %t285 %t2067 = getelementptr inbounds %LSlice, ptr %t2066, i32 0, i32 1 %t2068 = getelementptr inbounds %LSlice, ptr %t2066, i32 0, i32 2 %t2069 = getelementptr inbounds %LSlice, ptr %t2066, i32 0, i32 0 %t2070 = load i32, ptr %t2067 %t2071 = load i32, ptr %t2068 %t2072 = icmp sge i32 %t2070, %t2071 br i1 %t2072, label %grow434, label %put435 grow434: %t2073 = mul i32 %t2071, 2 %t2074 = icmp eq i32 %t2071, 0 %t2075 = select i1 %t2074, i32 8, i32 %t2073 %t2076 = getelementptr ptr, ptr null, i32 1 %t2077 = ptrtoint ptr %t2076 to i64 %t2078 = zext i32 %t2075 to i64 %t2079 = mul i64 %t2078, %t2077 %t2080 = load ptr, ptr %t2069 %t2081 = call ptr @realloc(ptr %t2080, i64 %t2079) store ptr %t2081, ptr %t2069 store i32 %t2075, ptr %t2068 br label %put435 put435: %t2082 = load ptr, ptr %t2069 %t2083 = getelementptr inbounds ptr, ptr %t2082, i32 %t2070 store ptr @.str5668, ptr %t2083 %t2084 = add i32 %t2070, 1 store i32 %t2084, ptr %t2067 br label %ifend433 ifend433: %t2085 = load ptr, ptr %t1 %t2086 = call i32 @fn_str_eq(ptr %t2085, ptr @.str5669) %t2087 = icmp ne i32 %t2086, 0 br i1 %t2087, label %then436, label %ifend438 then436: store ptr @.str5670, ptr %t278 %t2088 = load ptr, ptr %t285 %t2089 = getelementptr inbounds %LSlice, ptr %t2088, i32 0, i32 1 %t2090 = getelementptr inbounds %LSlice, ptr %t2088, i32 0, i32 2 %t2091 = getelementptr inbounds %LSlice, ptr %t2088, i32 0, i32 0 %t2092 = load i32, ptr %t2089 %t2093 = load i32, ptr %t2090 %t2094 = icmp sge i32 %t2092, %t2093 br i1 %t2094, label %grow439, label %put440 grow439: %t2095 = mul i32 %t2093, 2 %t2096 = icmp eq i32 %t2093, 0 %t2097 = select i1 %t2096, i32 8, i32 %t2095 %t2098 = getelementptr ptr, ptr null, i32 1 %t2099 = ptrtoint ptr %t2098 to i64 %t2100 = zext i32 %t2097 to i64 %t2101 = mul i64 %t2100, %t2099 %t2102 = load ptr, ptr %t2091 %t2103 = call ptr @realloc(ptr %t2102, i64 %t2101) store ptr %t2103, ptr %t2091 store i32 %t2097, ptr %t2090 br label %put440 put440: %t2104 = load ptr, ptr %t2091 %t2105 = getelementptr inbounds ptr, ptr %t2104, i32 %t2092 store ptr @.str5671, ptr %t2105 %t2106 = add i32 %t2092, 1 store i32 %t2106, ptr %t2089 br label %ifend438 ifend438: %t2107 = load ptr, ptr %t1 %t2108 = call i32 @fn_str_eq(ptr %t2107, ptr @.str5672) %t2109 = icmp ne i32 %t2108, 0 br i1 %t2109, label %then441, label %ifend443 then441: store ptr @.str5673, ptr %t278 br label %ifend443 ifend443: %t2110 = load ptr, ptr %t1 %t2111 = call i32 @fn_str_eq(ptr %t2110, ptr @.str5674) %t2112 = icmp ne i32 %t2111, 0 br i1 %t2112, label %then444, label %ifend446 then444: store ptr @.str5675, ptr %t278 %t2113 = load ptr, ptr %t285 %t2114 = getelementptr inbounds %LSlice, ptr %t2113, i32 0, i32 1 %t2115 = getelementptr inbounds %LSlice, ptr %t2113, i32 0, i32 2 %t2116 = getelementptr inbounds %LSlice, ptr %t2113, i32 0, i32 0 %t2117 = load i32, ptr %t2114 %t2118 = load i32, ptr %t2115 %t2119 = icmp sge i32 %t2117, %t2118 br i1 %t2119, label %grow447, label %put448 grow447: %t2120 = mul i32 %t2118, 2 %t2121 = icmp eq i32 %t2118, 0 %t2122 = select i1 %t2121, i32 8, i32 %t2120 %t2123 = getelementptr ptr, ptr null, i32 1 %t2124 = ptrtoint ptr %t2123 to i64 %t2125 = zext i32 %t2122 to i64 %t2126 = mul i64 %t2125, %t2124 %t2127 = load ptr, ptr %t2116 %t2128 = call ptr @realloc(ptr %t2127, i64 %t2126) store ptr %t2128, ptr %t2116 store i32 %t2122, ptr %t2115 br label %put448 put448: %t2129 = load ptr, ptr %t2116 %t2130 = getelementptr inbounds ptr, ptr %t2129, i32 %t2117 store ptr @.str5676, ptr %t2130 %t2131 = add i32 %t2117, 1 store i32 %t2131, ptr %t2114 br label %ifend446 ifend446: %t2132 = load ptr, ptr %t1 %t2133 = call i32 @fn_str_eq(ptr %t2132, ptr @.str5677) %t2134 = icmp ne i32 %t2133, 0 br i1 %t2134, label %then449, label %ifend451 then449: store ptr @.str5678, ptr %t278 br label %ifend451 ifend451: br label %ifend423 ifend423: %t2135 = load ptr, ptr %t0 %t2136 = call i32 @fn_str_eq(ptr %t2135, ptr @.str5679) %t2137 = icmp ne i32 %t2136, 0 br i1 %t2137, label %then452, label %ifend454 then452: %t2138 = load ptr, ptr %t1 %t2139 = call i32 @fn_str_eq(ptr %t2138, ptr @.str5680) %t2140 = icmp ne i32 %t2139, 0 br i1 %t2140, label %then455, label %ifend457 then455: store ptr @.str5681, ptr %t278 br label %ifend457 ifend457: br label %ifend454 ifend454: %t2141 = load ptr, ptr %t0 %t2142 = call i32 @fn_str_eq(ptr %t2141, ptr @.str5682) %t2143 = icmp ne i32 %t2142, 0 br i1 %t2143, label %then458, label %ifend460 then458: %t2144 = load ptr, ptr %t1 %t2145 = call i32 @fn_str_eq(ptr %t2144, ptr @.str5683) %t2146 = icmp ne i32 %t2145, 0 br i1 %t2146, label %then461, label %ifend463 then461: store ptr @.str5684, ptr %t278 br label %ifend463 ifend463: %t2147 = load ptr, ptr %t1 %t2148 = call i32 @fn_str_eq(ptr %t2147, ptr @.str5685) %t2149 = icmp ne i32 %t2148, 0 br i1 %t2149, label %then464, label %ifend466 then464: store ptr @.str5686, ptr %t278 br label %ifend466 ifend466: %t2150 = load ptr, ptr %t1 %t2151 = call i32 @fn_str_eq(ptr %t2150, ptr @.str5687) %t2152 = icmp ne i32 %t2151, 0 br i1 %t2152, label %then467, label %ifend469 then467: store ptr @.str5688, ptr %t278 br label %ifend469 ifend469: %t2153 = load ptr, ptr %t1 %t2154 = call i32 @fn_str_eq(ptr %t2153, ptr @.str5689) %t2155 = icmp ne i32 %t2154, 0 br i1 %t2155, label %then470, label %ifend472 then470: store ptr @.str5690, ptr %t278 br label %ifend472 ifend472: %t2156 = load ptr, ptr %t1 %t2157 = call i32 @fn_str_eq(ptr %t2156, ptr @.str5691) %t2158 = icmp ne i32 %t2157, 0 br i1 %t2158, label %then473, label %ifend475 then473: store ptr @.str5692, ptr %t278 br label %ifend475 ifend475: %t2159 = load ptr, ptr %t1 %t2160 = call i32 @fn_str_eq(ptr %t2159, ptr @.str5693) %t2161 = icmp ne i32 %t2160, 0 br i1 %t2161, label %then476, label %ifend478 then476: store ptr @.str5694, ptr %t278 br label %ifend478 ifend478: %t2162 = load ptr, ptr %t1 %t2163 = call i32 @fn_str_eq(ptr %t2162, ptr @.str5695) %t2164 = icmp ne i32 %t2163, 0 br i1 %t2164, label %then479, label %ifend481 then479: store ptr @.str5696, ptr %t278 br label %ifend481 ifend481: %t2165 = load ptr, ptr %t1 %t2166 = call i32 @fn_str_eq(ptr %t2165, ptr @.str5697) %t2167 = icmp ne i32 %t2166, 0 br i1 %t2167, label %then482, label %ifend484 then482: store ptr @.str5698, ptr %t278 br label %ifend484 ifend484: %t2168 = load ptr, ptr %t1 %t2169 = call i32 @fn_str_eq(ptr %t2168, ptr @.str5699) %t2170 = icmp ne i32 %t2169, 0 br i1 %t2170, label %then485, label %ifend487 then485: store ptr @.str5700, ptr %t278 br label %ifend487 ifend487: %t2171 = load ptr, ptr %t1 %t2172 = call i32 @fn_str_eq(ptr %t2171, ptr @.str5701) %t2173 = icmp ne i32 %t2172, 0 br i1 %t2173, label %then488, label %ifend490 then488: store ptr @.str5702, ptr %t278 br label %ifend490 ifend490: %t2174 = load ptr, ptr %t1 %t2175 = call i32 @fn_str_eq(ptr %t2174, ptr @.str5703) %t2176 = icmp ne i32 %t2175, 0 br i1 %t2176, label %then491, label %ifend493 then491: store ptr @.str5704, ptr %t278 br label %ifend493 ifend493: %t2177 = load ptr, ptr %t1 %t2178 = call i32 @fn_str_eq(ptr %t2177, ptr @.str5705) %t2179 = icmp ne i32 %t2178, 0 br i1 %t2179, label %then494, label %ifend496 then494: store ptr @.str5706, ptr %t278 br label %ifend496 ifend496: %t2180 = load ptr, ptr %t1 %t2181 = call i32 @fn_str_eq(ptr %t2180, ptr @.str5707) %t2182 = icmp ne i32 %t2181, 0 br i1 %t2182, label %then497, label %ifend499 then497: store ptr @.str5708, ptr %t278 br label %ifend499 ifend499: %t2183 = load ptr, ptr %t1 %t2184 = call i32 @fn_str_eq(ptr %t2183, ptr @.str5709) %t2185 = icmp ne i32 %t2184, 0 br i1 %t2185, label %then500, label %ifend502 then500: store ptr @.str5710, ptr %t278 br label %ifend502 ifend502: %t2186 = load ptr, ptr %t1 %t2187 = call i32 @fn_str_eq(ptr %t2186, ptr @.str5711) %t2188 = icmp ne i32 %t2187, 0 br i1 %t2188, label %then503, label %ifend505 then503: store ptr @.str5712, ptr %t278 br label %ifend505 ifend505: %t2189 = load ptr, ptr %t1 %t2190 = call i32 @fn_str_eq(ptr %t2189, ptr @.str5713) %t2191 = icmp ne i32 %t2190, 0 br i1 %t2191, label %then506, label %ifend508 then506: store ptr @.str5714, ptr %t278 br label %ifend508 ifend508: br label %ifend460 ifend460: %t2192 = load ptr, ptr %t0 %t2193 = call i32 @fn_str_eq(ptr %t2192, ptr @.str5715) %t2194 = icmp ne i32 %t2193, 0 br i1 %t2194, label %then509, label %ifend511 then509: %t2195 = load ptr, ptr %t1 %t2196 = call i32 @fn_str_eq(ptr %t2195, ptr @.str5716) %t2197 = icmp ne i32 %t2196, 0 br i1 %t2197, label %then512, label %ifend514 then512: store ptr @.str5717, ptr %t278 br label %ifend514 ifend514: %t2198 = load ptr, ptr %t1 %t2199 = call i32 @fn_str_eq(ptr %t2198, ptr @.str5718) %t2200 = icmp ne i32 %t2199, 0 br i1 %t2200, label %then515, label %ifend517 then515: store ptr @.str5719, ptr %t278 br label %ifend517 ifend517: %t2201 = load ptr, ptr %t1 %t2202 = call i32 @fn_str_eq(ptr %t2201, ptr @.str5720) %t2203 = icmp ne i32 %t2202, 0 br i1 %t2203, label %then518, label %ifend520 then518: store ptr @.str5721, ptr %t278 br label %ifend520 ifend520: %t2204 = load ptr, ptr %t1 %t2205 = call i32 @fn_str_eq(ptr %t2204, ptr @.str5722) %t2206 = icmp ne i32 %t2205, 0 br i1 %t2206, label %then521, label %ifend523 then521: store ptr @.str5723, ptr %t278 br label %ifend523 ifend523: %t2207 = load ptr, ptr %t1 %t2208 = call i32 @fn_str_eq(ptr %t2207, ptr @.str5724) %t2209 = icmp ne i32 %t2208, 0 br i1 %t2209, label %then524, label %ifend526 then524: store ptr @.str5725, ptr %t278 br label %ifend526 ifend526: %t2210 = load ptr, ptr %t1 %t2211 = call i32 @fn_str_eq(ptr %t2210, ptr @.str5726) %t2212 = icmp ne i32 %t2211, 0 br i1 %t2212, label %then527, label %ifend529 then527: store ptr @.str5727, ptr %t278 br label %ifend529 ifend529: %t2213 = load ptr, ptr %t1 %t2214 = call i32 @fn_str_eq(ptr %t2213, ptr @.str5728) %t2215 = icmp ne i32 %t2214, 0 br i1 %t2215, label %then530, label %ifend532 then530: store ptr @.str5729, ptr %t278 br label %ifend532 ifend532: %t2216 = load ptr, ptr %t1 %t2217 = call i32 @fn_str_eq(ptr %t2216, ptr @.str5730) %t2218 = icmp ne i32 %t2217, 0 br i1 %t2218, label %then533, label %ifend535 then533: store ptr @.str5731, ptr %t278 br label %ifend535 ifend535: %t2219 = load ptr, ptr %t1 %t2220 = call i32 @fn_str_eq(ptr %t2219, ptr @.str5732) %t2221 = icmp ne i32 %t2220, 0 br i1 %t2221, label %then536, label %ifend538 then536: store ptr @.str5733, ptr %t278 br label %ifend538 ifend538: br label %ifend511 ifend511: %t2222 = load ptr, ptr %t0 %t2223 = call i32 @fn_str_eq(ptr %t2222, ptr @.str5734) %t2224 = icmp ne i32 %t2223, 0 br i1 %t2224, label %then539, label %ifend541 then539: %t2225 = load ptr, ptr %t1 %t2226 = call i32 @fn_str_eq(ptr %t2225, ptr @.str5735) %t2227 = icmp ne i32 %t2226, 0 br i1 %t2227, label %then542, label %ifend544 then542: store ptr @.str5736, ptr %t278 br label %ifend544 ifend544: %t2228 = load ptr, ptr %t1 %t2229 = call i32 @fn_str_eq(ptr %t2228, ptr @.str5737) %t2230 = icmp ne i32 %t2229, 0 br i1 %t2230, label %then545, label %ifend547 then545: store ptr @.str5738, ptr %t278 br label %ifend547 ifend547: %t2231 = load ptr, ptr %t1 %t2232 = call i32 @fn_str_eq(ptr %t2231, ptr @.str5739) %t2233 = icmp ne i32 %t2232, 0 br i1 %t2233, label %then548, label %ifend550 then548: store ptr @.str5740, ptr %t278 br label %ifend550 ifend550: %t2234 = load ptr, ptr %t1 %t2235 = call i32 @fn_str_eq(ptr %t2234, ptr @.str5741) %t2236 = icmp ne i32 %t2235, 0 br i1 %t2236, label %then551, label %ifend553 then551: store ptr @.str5742, ptr %t278 br label %ifend553 ifend553: %t2237 = load ptr, ptr %t1 %t2238 = call i32 @fn_str_eq(ptr %t2237, ptr @.str5743) %t2239 = icmp ne i32 %t2238, 0 br i1 %t2239, label %then554, label %ifend556 then554: store ptr @.str5744, ptr %t278 br label %ifend556 ifend556: %t2240 = load ptr, ptr %t1 %t2241 = call i32 @fn_str_eq(ptr %t2240, ptr @.str5745) %t2242 = icmp ne i32 %t2241, 0 br i1 %t2242, label %then557, label %ifend559 then557: store ptr @.str5746, ptr %t278 br label %ifend559 ifend559: %t2243 = load ptr, ptr %t1 %t2244 = call i32 @fn_str_eq(ptr %t2243, ptr @.str5747) %t2245 = icmp ne i32 %t2244, 0 br i1 %t2245, label %then560, label %ifend562 then560: store ptr @.str5748, ptr %t278 br label %ifend562 ifend562: %t2246 = load ptr, ptr %t1 %t2247 = call i32 @fn_str_eq(ptr %t2246, ptr @.str5749) %t2248 = icmp ne i32 %t2247, 0 br i1 %t2248, label %then563, label %ifend565 then563: store ptr @.str5750, ptr %t278 br label %ifend565 ifend565: br label %ifend541 ifend541: %t2249 = load ptr, ptr %t0 %t2250 = call i32 @fn_str_eq(ptr %t2249, ptr @.str5751) %t2251 = icmp ne i32 %t2250, 0 br i1 %t2251, label %then566, label %ifend568 then566: %t2252 = load ptr, ptr %t1 %t2253 = call i32 @fn_str_eq(ptr %t2252, ptr @.str5752) %t2254 = icmp ne i32 %t2253, 0 br i1 %t2254, label %then569, label %ifend571 then569: store ptr @.str5753, ptr %t278 br label %ifend571 ifend571: %t2255 = load ptr, ptr %t1 %t2256 = call i32 @fn_str_eq(ptr %t2255, ptr @.str5754) %t2257 = icmp ne i32 %t2256, 0 br i1 %t2257, label %then572, label %ifend574 then572: store ptr @.str5755, ptr %t278 br label %ifend574 ifend574: br label %ifend568 ifend568: %t2258 = load ptr, ptr %t0 %t2259 = call i32 @fn_str_eq(ptr %t2258, ptr @.str5756) %t2260 = icmp ne i32 %t2259, 0 br i1 %t2260, label %then575, label %ifend577 then575: %t2261 = load ptr, ptr %t1 %t2262 = call i32 @fn_str_eq(ptr %t2261, ptr @.str5757) %t2263 = icmp ne i32 %t2262, 0 br i1 %t2263, label %then578, label %ifend580 then578: store ptr @.str5758, ptr %t278 %t2264 = load ptr, ptr %t285 %t2265 = getelementptr inbounds %LSlice, ptr %t2264, i32 0, i32 1 %t2266 = getelementptr inbounds %LSlice, ptr %t2264, i32 0, i32 2 %t2267 = getelementptr inbounds %LSlice, ptr %t2264, i32 0, i32 0 %t2268 = load i32, ptr %t2265 %t2269 = load i32, ptr %t2266 %t2270 = icmp sge i32 %t2268, %t2269 br i1 %t2270, label %grow581, label %put582 grow581: %t2271 = mul i32 %t2269, 2 %t2272 = icmp eq i32 %t2269, 0 %t2273 = select i1 %t2272, i32 8, i32 %t2271 %t2274 = getelementptr ptr, ptr null, i32 1 %t2275 = ptrtoint ptr %t2274 to i64 %t2276 = zext i32 %t2273 to i64 %t2277 = mul i64 %t2276, %t2275 %t2278 = load ptr, ptr %t2267 %t2279 = call ptr @realloc(ptr %t2278, i64 %t2277) store ptr %t2279, ptr %t2267 store i32 %t2273, ptr %t2266 br label %put582 put582: %t2280 = load ptr, ptr %t2267 %t2281 = getelementptr inbounds ptr, ptr %t2280, i32 %t2268 store ptr @.str5759, ptr %t2281 %t2282 = add i32 %t2268, 1 store i32 %t2282, ptr %t2265 br label %ifend580 ifend580: %t2283 = load ptr, ptr %t1 %t2284 = call i32 @fn_str_eq(ptr %t2283, ptr @.str5760) %t2285 = icmp ne i32 %t2284, 0 br i1 %t2285, label %then583, label %ifend585 then583: store ptr @.str5761, ptr %t278 %t2286 = load ptr, ptr %t285 %t2287 = getelementptr inbounds %LSlice, ptr %t2286, i32 0, i32 1 %t2288 = getelementptr inbounds %LSlice, ptr %t2286, i32 0, i32 2 %t2289 = getelementptr inbounds %LSlice, ptr %t2286, i32 0, i32 0 %t2290 = load i32, ptr %t2287 %t2291 = load i32, ptr %t2288 %t2292 = icmp sge i32 %t2290, %t2291 br i1 %t2292, label %grow586, label %put587 grow586: %t2293 = mul i32 %t2291, 2 %t2294 = icmp eq i32 %t2291, 0 %t2295 = select i1 %t2294, i32 8, i32 %t2293 %t2296 = getelementptr ptr, ptr null, i32 1 %t2297 = ptrtoint ptr %t2296 to i64 %t2298 = zext i32 %t2295 to i64 %t2299 = mul i64 %t2298, %t2297 %t2300 = load ptr, ptr %t2289 %t2301 = call ptr @realloc(ptr %t2300, i64 %t2299) store ptr %t2301, ptr %t2289 store i32 %t2295, ptr %t2288 br label %put587 put587: %t2302 = load ptr, ptr %t2289 %t2303 = getelementptr inbounds ptr, ptr %t2302, i32 %t2290 store ptr @.str5762, ptr %t2303 %t2304 = add i32 %t2290, 1 store i32 %t2304, ptr %t2287 br label %ifend585 ifend585: %t2305 = load ptr, ptr %t1 %t2306 = call i32 @fn_str_eq(ptr %t2305, ptr @.str5763) %t2307 = icmp ne i32 %t2306, 0 br i1 %t2307, label %then588, label %ifend590 then588: store ptr @.str5764, ptr %t278 %t2308 = load ptr, ptr %t285 %t2309 = getelementptr inbounds %LSlice, ptr %t2308, i32 0, i32 1 %t2310 = getelementptr inbounds %LSlice, ptr %t2308, i32 0, i32 2 %t2311 = getelementptr inbounds %LSlice, ptr %t2308, i32 0, i32 0 %t2312 = load i32, ptr %t2309 %t2313 = load i32, ptr %t2310 %t2314 = icmp sge i32 %t2312, %t2313 br i1 %t2314, label %grow591, label %put592 grow591: %t2315 = mul i32 %t2313, 2 %t2316 = icmp eq i32 %t2313, 0 %t2317 = select i1 %t2316, i32 8, i32 %t2315 %t2318 = getelementptr ptr, ptr null, i32 1 %t2319 = ptrtoint ptr %t2318 to i64 %t2320 = zext i32 %t2317 to i64 %t2321 = mul i64 %t2320, %t2319 %t2322 = load ptr, ptr %t2311 %t2323 = call ptr @realloc(ptr %t2322, i64 %t2321) store ptr %t2323, ptr %t2311 store i32 %t2317, ptr %t2310 br label %put592 put592: %t2324 = load ptr, ptr %t2311 %t2325 = getelementptr inbounds ptr, ptr %t2324, i32 %t2312 store ptr @.str5765, ptr %t2325 %t2326 = add i32 %t2312, 1 store i32 %t2326, ptr %t2309 %t2327 = load ptr, ptr %t285 %t2328 = getelementptr inbounds %LSlice, ptr %t2327, i32 0, i32 1 %t2329 = getelementptr inbounds %LSlice, ptr %t2327, i32 0, i32 2 %t2330 = getelementptr inbounds %LSlice, ptr %t2327, i32 0, i32 0 %t2331 = load i32, ptr %t2328 %t2332 = load i32, ptr %t2329 %t2333 = icmp sge i32 %t2331, %t2332 br i1 %t2333, label %grow593, label %put594 grow593: %t2334 = mul i32 %t2332, 2 %t2335 = icmp eq i32 %t2332, 0 %t2336 = select i1 %t2335, i32 8, i32 %t2334 %t2337 = getelementptr ptr, ptr null, i32 1 %t2338 = ptrtoint ptr %t2337 to i64 %t2339 = zext i32 %t2336 to i64 %t2340 = mul i64 %t2339, %t2338 %t2341 = load ptr, ptr %t2330 %t2342 = call ptr @realloc(ptr %t2341, i64 %t2340) store ptr %t2342, ptr %t2330 store i32 %t2336, ptr %t2329 br label %put594 put594: %t2343 = load ptr, ptr %t2330 %t2344 = getelementptr inbounds ptr, ptr %t2343, i32 %t2331 store ptr @.str5766, ptr %t2344 %t2345 = add i32 %t2331, 1 store i32 %t2345, ptr %t2328 br label %ifend590 ifend590: %t2346 = load ptr, ptr %t1 %t2347 = call i32 @fn_str_eq(ptr %t2346, ptr @.str5767) %t2348 = icmp ne i32 %t2347, 0 br i1 %t2348, label %then595, label %ifend597 then595: store ptr @.str5768, ptr %t278 %t2349 = load ptr, ptr %t285 %t2350 = getelementptr inbounds %LSlice, ptr %t2349, i32 0, i32 1 %t2351 = getelementptr inbounds %LSlice, ptr %t2349, i32 0, i32 2 %t2352 = getelementptr inbounds %LSlice, ptr %t2349, i32 0, i32 0 %t2353 = load i32, ptr %t2350 %t2354 = load i32, ptr %t2351 %t2355 = icmp sge i32 %t2353, %t2354 br i1 %t2355, label %grow598, label %put599 grow598: %t2356 = mul i32 %t2354, 2 %t2357 = icmp eq i32 %t2354, 0 %t2358 = select i1 %t2357, i32 8, i32 %t2356 %t2359 = getelementptr ptr, ptr null, i32 1 %t2360 = ptrtoint ptr %t2359 to i64 %t2361 = zext i32 %t2358 to i64 %t2362 = mul i64 %t2361, %t2360 %t2363 = load ptr, ptr %t2352 %t2364 = call ptr @realloc(ptr %t2363, i64 %t2362) store ptr %t2364, ptr %t2352 store i32 %t2358, ptr %t2351 br label %put599 put599: %t2365 = load ptr, ptr %t2352 %t2366 = getelementptr inbounds ptr, ptr %t2365, i32 %t2353 store ptr @.str5769, ptr %t2366 %t2367 = add i32 %t2353, 1 store i32 %t2367, ptr %t2350 %t2368 = load ptr, ptr %t285 %t2369 = getelementptr inbounds %LSlice, ptr %t2368, i32 0, i32 1 %t2370 = getelementptr inbounds %LSlice, ptr %t2368, i32 0, i32 2 %t2371 = getelementptr inbounds %LSlice, ptr %t2368, i32 0, i32 0 %t2372 = load i32, ptr %t2369 %t2373 = load i32, ptr %t2370 %t2374 = icmp sge i32 %t2372, %t2373 br i1 %t2374, label %grow600, label %put601 grow600: %t2375 = mul i32 %t2373, 2 %t2376 = icmp eq i32 %t2373, 0 %t2377 = select i1 %t2376, i32 8, i32 %t2375 %t2378 = getelementptr ptr, ptr null, i32 1 %t2379 = ptrtoint ptr %t2378 to i64 %t2380 = zext i32 %t2377 to i64 %t2381 = mul i64 %t2380, %t2379 %t2382 = load ptr, ptr %t2371 %t2383 = call ptr @realloc(ptr %t2382, i64 %t2381) store ptr %t2383, ptr %t2371 store i32 %t2377, ptr %t2370 br label %put601 put601: %t2384 = load ptr, ptr %t2371 %t2385 = getelementptr inbounds ptr, ptr %t2384, i32 %t2372 store ptr @.str5770, ptr %t2385 %t2386 = add i32 %t2372, 1 store i32 %t2386, ptr %t2369 br label %ifend597 ifend597: %t2387 = load ptr, ptr %t1 %t2388 = call i32 @fn_str_eq(ptr %t2387, ptr @.str5771) %t2389 = icmp ne i32 %t2388, 0 br i1 %t2389, label %then602, label %ifend604 then602: store ptr @.str5772, ptr %t278 %t2390 = load ptr, ptr %t285 %t2391 = getelementptr inbounds %LSlice, ptr %t2390, i32 0, i32 1 %t2392 = getelementptr inbounds %LSlice, ptr %t2390, i32 0, i32 2 %t2393 = getelementptr inbounds %LSlice, ptr %t2390, i32 0, i32 0 %t2394 = load i32, ptr %t2391 %t2395 = load i32, ptr %t2392 %t2396 = icmp sge i32 %t2394, %t2395 br i1 %t2396, label %grow605, label %put606 grow605: %t2397 = mul i32 %t2395, 2 %t2398 = icmp eq i32 %t2395, 0 %t2399 = select i1 %t2398, i32 8, i32 %t2397 %t2400 = getelementptr ptr, ptr null, i32 1 %t2401 = ptrtoint ptr %t2400 to i64 %t2402 = zext i32 %t2399 to i64 %t2403 = mul i64 %t2402, %t2401 %t2404 = load ptr, ptr %t2393 %t2405 = call ptr @realloc(ptr %t2404, i64 %t2403) store ptr %t2405, ptr %t2393 store i32 %t2399, ptr %t2392 br label %put606 put606: %t2406 = load ptr, ptr %t2393 %t2407 = getelementptr inbounds ptr, ptr %t2406, i32 %t2394 store ptr @.str5773, ptr %t2407 %t2408 = add i32 %t2394, 1 store i32 %t2408, ptr %t2391 %t2409 = load ptr, ptr %t285 %t2410 = getelementptr inbounds %LSlice, ptr %t2409, i32 0, i32 1 %t2411 = getelementptr inbounds %LSlice, ptr %t2409, i32 0, i32 2 %t2412 = getelementptr inbounds %LSlice, ptr %t2409, i32 0, i32 0 %t2413 = load i32, ptr %t2410 %t2414 = load i32, ptr %t2411 %t2415 = icmp sge i32 %t2413, %t2414 br i1 %t2415, label %grow607, label %put608 grow607: %t2416 = mul i32 %t2414, 2 %t2417 = icmp eq i32 %t2414, 0 %t2418 = select i1 %t2417, i32 8, i32 %t2416 %t2419 = getelementptr ptr, ptr null, i32 1 %t2420 = ptrtoint ptr %t2419 to i64 %t2421 = zext i32 %t2418 to i64 %t2422 = mul i64 %t2421, %t2420 %t2423 = load ptr, ptr %t2412 %t2424 = call ptr @realloc(ptr %t2423, i64 %t2422) store ptr %t2424, ptr %t2412 store i32 %t2418, ptr %t2411 br label %put608 put608: %t2425 = load ptr, ptr %t2412 %t2426 = getelementptr inbounds ptr, ptr %t2425, i32 %t2413 store ptr @.str5774, ptr %t2426 %t2427 = add i32 %t2413, 1 store i32 %t2427, ptr %t2410 br label %ifend604 ifend604: %t2428 = load ptr, ptr %t1 %t2429 = call i32 @fn_str_eq(ptr %t2428, ptr @.str5775) %t2430 = icmp ne i32 %t2429, 0 br i1 %t2430, label %then609, label %ifend611 then609: store ptr @.str5776, ptr %t278 %t2431 = load ptr, ptr %t285 %t2432 = getelementptr inbounds %LSlice, ptr %t2431, i32 0, i32 1 %t2433 = getelementptr inbounds %LSlice, ptr %t2431, i32 0, i32 2 %t2434 = getelementptr inbounds %LSlice, ptr %t2431, i32 0, i32 0 %t2435 = load i32, ptr %t2432 %t2436 = load i32, ptr %t2433 %t2437 = icmp sge i32 %t2435, %t2436 br i1 %t2437, label %grow612, label %put613 grow612: %t2438 = mul i32 %t2436, 2 %t2439 = icmp eq i32 %t2436, 0 %t2440 = select i1 %t2439, i32 8, i32 %t2438 %t2441 = getelementptr ptr, ptr null, i32 1 %t2442 = ptrtoint ptr %t2441 to i64 %t2443 = zext i32 %t2440 to i64 %t2444 = mul i64 %t2443, %t2442 %t2445 = load ptr, ptr %t2434 %t2446 = call ptr @realloc(ptr %t2445, i64 %t2444) store ptr %t2446, ptr %t2434 store i32 %t2440, ptr %t2433 br label %put613 put613: %t2447 = load ptr, ptr %t2434 %t2448 = getelementptr inbounds ptr, ptr %t2447, i32 %t2435 store ptr @.str5777, ptr %t2448 %t2449 = add i32 %t2435, 1 store i32 %t2449, ptr %t2432 %t2450 = load ptr, ptr %t285 %t2451 = getelementptr inbounds %LSlice, ptr %t2450, i32 0, i32 1 %t2452 = getelementptr inbounds %LSlice, ptr %t2450, i32 0, i32 2 %t2453 = getelementptr inbounds %LSlice, ptr %t2450, i32 0, i32 0 %t2454 = load i32, ptr %t2451 %t2455 = load i32, ptr %t2452 %t2456 = icmp sge i32 %t2454, %t2455 br i1 %t2456, label %grow614, label %put615 grow614: %t2457 = mul i32 %t2455, 2 %t2458 = icmp eq i32 %t2455, 0 %t2459 = select i1 %t2458, i32 8, i32 %t2457 %t2460 = getelementptr ptr, ptr null, i32 1 %t2461 = ptrtoint ptr %t2460 to i64 %t2462 = zext i32 %t2459 to i64 %t2463 = mul i64 %t2462, %t2461 %t2464 = load ptr, ptr %t2453 %t2465 = call ptr @realloc(ptr %t2464, i64 %t2463) store ptr %t2465, ptr %t2453 store i32 %t2459, ptr %t2452 br label %put615 put615: %t2466 = load ptr, ptr %t2453 %t2467 = getelementptr inbounds ptr, ptr %t2466, i32 %t2454 store ptr @.str5778, ptr %t2467 %t2468 = add i32 %t2454, 1 store i32 %t2468, ptr %t2451 br label %ifend611 ifend611: %t2469 = load ptr, ptr %t1 %t2470 = call i32 @fn_str_eq(ptr %t2469, ptr @.str5779) %t2471 = icmp ne i32 %t2470, 0 br i1 %t2471, label %then616, label %ifend618 then616: store ptr @.str5780, ptr %t278 %t2472 = load ptr, ptr %t285 %t2473 = getelementptr inbounds %LSlice, ptr %t2472, i32 0, i32 1 %t2474 = getelementptr inbounds %LSlice, ptr %t2472, i32 0, i32 2 %t2475 = getelementptr inbounds %LSlice, ptr %t2472, i32 0, i32 0 %t2476 = load i32, ptr %t2473 %t2477 = load i32, ptr %t2474 %t2478 = icmp sge i32 %t2476, %t2477 br i1 %t2478, label %grow619, label %put620 grow619: %t2479 = mul i32 %t2477, 2 %t2480 = icmp eq i32 %t2477, 0 %t2481 = select i1 %t2480, i32 8, i32 %t2479 %t2482 = getelementptr ptr, ptr null, i32 1 %t2483 = ptrtoint ptr %t2482 to i64 %t2484 = zext i32 %t2481 to i64 %t2485 = mul i64 %t2484, %t2483 %t2486 = load ptr, ptr %t2475 %t2487 = call ptr @realloc(ptr %t2486, i64 %t2485) store ptr %t2487, ptr %t2475 store i32 %t2481, ptr %t2474 br label %put620 put620: %t2488 = load ptr, ptr %t2475 %t2489 = getelementptr inbounds ptr, ptr %t2488, i32 %t2476 store ptr @.str5781, ptr %t2489 %t2490 = add i32 %t2476, 1 store i32 %t2490, ptr %t2473 %t2491 = load ptr, ptr %t285 %t2492 = getelementptr inbounds %LSlice, ptr %t2491, i32 0, i32 1 %t2493 = getelementptr inbounds %LSlice, ptr %t2491, i32 0, i32 2 %t2494 = getelementptr inbounds %LSlice, ptr %t2491, i32 0, i32 0 %t2495 = load i32, ptr %t2492 %t2496 = load i32, ptr %t2493 %t2497 = icmp sge i32 %t2495, %t2496 br i1 %t2497, label %grow621, label %put622 grow621: %t2498 = mul i32 %t2496, 2 %t2499 = icmp eq i32 %t2496, 0 %t2500 = select i1 %t2499, i32 8, i32 %t2498 %t2501 = getelementptr ptr, ptr null, i32 1 %t2502 = ptrtoint ptr %t2501 to i64 %t2503 = zext i32 %t2500 to i64 %t2504 = mul i64 %t2503, %t2502 %t2505 = load ptr, ptr %t2494 %t2506 = call ptr @realloc(ptr %t2505, i64 %t2504) store ptr %t2506, ptr %t2494 store i32 %t2500, ptr %t2493 br label %put622 put622: %t2507 = load ptr, ptr %t2494 %t2508 = getelementptr inbounds ptr, ptr %t2507, i32 %t2495 store ptr @.str5782, ptr %t2508 %t2509 = add i32 %t2495, 1 store i32 %t2509, ptr %t2492 %t2510 = load ptr, ptr %t285 %t2511 = getelementptr inbounds %LSlice, ptr %t2510, i32 0, i32 1 %t2512 = getelementptr inbounds %LSlice, ptr %t2510, i32 0, i32 2 %t2513 = getelementptr inbounds %LSlice, ptr %t2510, i32 0, i32 0 %t2514 = load i32, ptr %t2511 %t2515 = load i32, ptr %t2512 %t2516 = icmp sge i32 %t2514, %t2515 br i1 %t2516, label %grow623, label %put624 grow623: %t2517 = mul i32 %t2515, 2 %t2518 = icmp eq i32 %t2515, 0 %t2519 = select i1 %t2518, i32 8, i32 %t2517 %t2520 = getelementptr ptr, ptr null, i32 1 %t2521 = ptrtoint ptr %t2520 to i64 %t2522 = zext i32 %t2519 to i64 %t2523 = mul i64 %t2522, %t2521 %t2524 = load ptr, ptr %t2513 %t2525 = call ptr @realloc(ptr %t2524, i64 %t2523) store ptr %t2525, ptr %t2513 store i32 %t2519, ptr %t2512 br label %put624 put624: %t2526 = load ptr, ptr %t2513 %t2527 = getelementptr inbounds ptr, ptr %t2526, i32 %t2514 store ptr @.str5783, ptr %t2527 %t2528 = add i32 %t2514, 1 store i32 %t2528, ptr %t2511 br label %ifend618 ifend618: %t2529 = load ptr, ptr %t1 %t2530 = call i32 @fn_str_eq(ptr %t2529, ptr @.str5784) %t2531 = icmp ne i32 %t2530, 0 br i1 %t2531, label %then625, label %ifend627 then625: store ptr @.str5785, ptr %t278 %t2532 = load ptr, ptr %t285 %t2533 = getelementptr inbounds %LSlice, ptr %t2532, i32 0, i32 1 %t2534 = getelementptr inbounds %LSlice, ptr %t2532, i32 0, i32 2 %t2535 = getelementptr inbounds %LSlice, ptr %t2532, i32 0, i32 0 %t2536 = load i32, ptr %t2533 %t2537 = load i32, ptr %t2534 %t2538 = icmp sge i32 %t2536, %t2537 br i1 %t2538, label %grow628, label %put629 grow628: %t2539 = mul i32 %t2537, 2 %t2540 = icmp eq i32 %t2537, 0 %t2541 = select i1 %t2540, i32 8, i32 %t2539 %t2542 = getelementptr ptr, ptr null, i32 1 %t2543 = ptrtoint ptr %t2542 to i64 %t2544 = zext i32 %t2541 to i64 %t2545 = mul i64 %t2544, %t2543 %t2546 = load ptr, ptr %t2535 %t2547 = call ptr @realloc(ptr %t2546, i64 %t2545) store ptr %t2547, ptr %t2535 store i32 %t2541, ptr %t2534 br label %put629 put629: %t2548 = load ptr, ptr %t2535 %t2549 = getelementptr inbounds ptr, ptr %t2548, i32 %t2536 store ptr @.str5786, ptr %t2549 %t2550 = add i32 %t2536, 1 store i32 %t2550, ptr %t2533 %t2551 = load ptr, ptr %t285 %t2552 = getelementptr inbounds %LSlice, ptr %t2551, i32 0, i32 1 %t2553 = getelementptr inbounds %LSlice, ptr %t2551, i32 0, i32 2 %t2554 = getelementptr inbounds %LSlice, ptr %t2551, i32 0, i32 0 %t2555 = load i32, ptr %t2552 %t2556 = load i32, ptr %t2553 %t2557 = icmp sge i32 %t2555, %t2556 br i1 %t2557, label %grow630, label %put631 grow630: %t2558 = mul i32 %t2556, 2 %t2559 = icmp eq i32 %t2556, 0 %t2560 = select i1 %t2559, i32 8, i32 %t2558 %t2561 = getelementptr ptr, ptr null, i32 1 %t2562 = ptrtoint ptr %t2561 to i64 %t2563 = zext i32 %t2560 to i64 %t2564 = mul i64 %t2563, %t2562 %t2565 = load ptr, ptr %t2554 %t2566 = call ptr @realloc(ptr %t2565, i64 %t2564) store ptr %t2566, ptr %t2554 store i32 %t2560, ptr %t2553 br label %put631 put631: %t2567 = load ptr, ptr %t2554 %t2568 = getelementptr inbounds ptr, ptr %t2567, i32 %t2555 store ptr @.str5787, ptr %t2568 %t2569 = add i32 %t2555, 1 store i32 %t2569, ptr %t2552 %t2570 = load ptr, ptr %t285 %t2571 = getelementptr inbounds %LSlice, ptr %t2570, i32 0, i32 1 %t2572 = getelementptr inbounds %LSlice, ptr %t2570, i32 0, i32 2 %t2573 = getelementptr inbounds %LSlice, ptr %t2570, i32 0, i32 0 %t2574 = load i32, ptr %t2571 %t2575 = load i32, ptr %t2572 %t2576 = icmp sge i32 %t2574, %t2575 br i1 %t2576, label %grow632, label %put633 grow632: %t2577 = mul i32 %t2575, 2 %t2578 = icmp eq i32 %t2575, 0 %t2579 = select i1 %t2578, i32 8, i32 %t2577 %t2580 = getelementptr ptr, ptr null, i32 1 %t2581 = ptrtoint ptr %t2580 to i64 %t2582 = zext i32 %t2579 to i64 %t2583 = mul i64 %t2582, %t2581 %t2584 = load ptr, ptr %t2573 %t2585 = call ptr @realloc(ptr %t2584, i64 %t2583) store ptr %t2585, ptr %t2573 store i32 %t2579, ptr %t2572 br label %put633 put633: %t2586 = load ptr, ptr %t2573 %t2587 = getelementptr inbounds ptr, ptr %t2586, i32 %t2574 store ptr @.str5788, ptr %t2587 %t2588 = add i32 %t2574, 1 store i32 %t2588, ptr %t2571 br label %ifend627 ifend627: %t2589 = load ptr, ptr %t1 %t2590 = call i32 @fn_str_eq(ptr %t2589, ptr @.str5789) %t2591 = icmp ne i32 %t2590, 0 br i1 %t2591, label %then634, label %ifend636 then634: store ptr @.str5790, ptr %t278 %t2592 = load ptr, ptr %t285 %t2593 = getelementptr inbounds %LSlice, ptr %t2592, i32 0, i32 1 %t2594 = getelementptr inbounds %LSlice, ptr %t2592, i32 0, i32 2 %t2595 = getelementptr inbounds %LSlice, ptr %t2592, i32 0, i32 0 %t2596 = load i32, ptr %t2593 %t2597 = load i32, ptr %t2594 %t2598 = icmp sge i32 %t2596, %t2597 br i1 %t2598, label %grow637, label %put638 grow637: %t2599 = mul i32 %t2597, 2 %t2600 = icmp eq i32 %t2597, 0 %t2601 = select i1 %t2600, i32 8, i32 %t2599 %t2602 = getelementptr ptr, ptr null, i32 1 %t2603 = ptrtoint ptr %t2602 to i64 %t2604 = zext i32 %t2601 to i64 %t2605 = mul i64 %t2604, %t2603 %t2606 = load ptr, ptr %t2595 %t2607 = call ptr @realloc(ptr %t2606, i64 %t2605) store ptr %t2607, ptr %t2595 store i32 %t2601, ptr %t2594 br label %put638 put638: %t2608 = load ptr, ptr %t2595 %t2609 = getelementptr inbounds ptr, ptr %t2608, i32 %t2596 store ptr @.str5791, ptr %t2609 %t2610 = add i32 %t2596, 1 store i32 %t2610, ptr %t2593 %t2611 = load ptr, ptr %t285 %t2612 = getelementptr inbounds %LSlice, ptr %t2611, i32 0, i32 1 %t2613 = getelementptr inbounds %LSlice, ptr %t2611, i32 0, i32 2 %t2614 = getelementptr inbounds %LSlice, ptr %t2611, i32 0, i32 0 %t2615 = load i32, ptr %t2612 %t2616 = load i32, ptr %t2613 %t2617 = icmp sge i32 %t2615, %t2616 br i1 %t2617, label %grow639, label %put640 grow639: %t2618 = mul i32 %t2616, 2 %t2619 = icmp eq i32 %t2616, 0 %t2620 = select i1 %t2619, i32 8, i32 %t2618 %t2621 = getelementptr ptr, ptr null, i32 1 %t2622 = ptrtoint ptr %t2621 to i64 %t2623 = zext i32 %t2620 to i64 %t2624 = mul i64 %t2623, %t2622 %t2625 = load ptr, ptr %t2614 %t2626 = call ptr @realloc(ptr %t2625, i64 %t2624) store ptr %t2626, ptr %t2614 store i32 %t2620, ptr %t2613 br label %put640 put640: %t2627 = load ptr, ptr %t2614 %t2628 = getelementptr inbounds ptr, ptr %t2627, i32 %t2615 store ptr @.str5792, ptr %t2628 %t2629 = add i32 %t2615, 1 store i32 %t2629, ptr %t2612 br label %ifend636 ifend636: %t2630 = load ptr, ptr %t1 %t2631 = call i32 @fn_str_eq(ptr %t2630, ptr @.str5793) %t2632 = icmp ne i32 %t2631, 0 br i1 %t2632, label %then641, label %ifend643 then641: store ptr @.str5794, ptr %t278 %t2633 = load ptr, ptr %t285 %t2634 = getelementptr inbounds %LSlice, ptr %t2633, i32 0, i32 1 %t2635 = getelementptr inbounds %LSlice, ptr %t2633, i32 0, i32 2 %t2636 = getelementptr inbounds %LSlice, ptr %t2633, i32 0, i32 0 %t2637 = load i32, ptr %t2634 %t2638 = load i32, ptr %t2635 %t2639 = icmp sge i32 %t2637, %t2638 br i1 %t2639, label %grow644, label %put645 grow644: %t2640 = mul i32 %t2638, 2 %t2641 = icmp eq i32 %t2638, 0 %t2642 = select i1 %t2641, i32 8, i32 %t2640 %t2643 = getelementptr ptr, ptr null, i32 1 %t2644 = ptrtoint ptr %t2643 to i64 %t2645 = zext i32 %t2642 to i64 %t2646 = mul i64 %t2645, %t2644 %t2647 = load ptr, ptr %t2636 %t2648 = call ptr @realloc(ptr %t2647, i64 %t2646) store ptr %t2648, ptr %t2636 store i32 %t2642, ptr %t2635 br label %put645 put645: %t2649 = load ptr, ptr %t2636 %t2650 = getelementptr inbounds ptr, ptr %t2649, i32 %t2637 store ptr @.str5795, ptr %t2650 %t2651 = add i32 %t2637, 1 store i32 %t2651, ptr %t2634 br label %ifend643 ifend643: %t2652 = load ptr, ptr %t1 %t2653 = call i32 @fn_str_eq(ptr %t2652, ptr @.str5796) %t2654 = icmp ne i32 %t2653, 0 br i1 %t2654, label %then646, label %ifend648 then646: store ptr @.str5797, ptr %t278 %t2655 = load ptr, ptr %t285 %t2656 = getelementptr inbounds %LSlice, ptr %t2655, i32 0, i32 1 %t2657 = getelementptr inbounds %LSlice, ptr %t2655, i32 0, i32 2 %t2658 = getelementptr inbounds %LSlice, ptr %t2655, i32 0, i32 0 %t2659 = load i32, ptr %t2656 %t2660 = load i32, ptr %t2657 %t2661 = icmp sge i32 %t2659, %t2660 br i1 %t2661, label %grow649, label %put650 grow649: %t2662 = mul i32 %t2660, 2 %t2663 = icmp eq i32 %t2660, 0 %t2664 = select i1 %t2663, i32 8, i32 %t2662 %t2665 = getelementptr ptr, ptr null, i32 1 %t2666 = ptrtoint ptr %t2665 to i64 %t2667 = zext i32 %t2664 to i64 %t2668 = mul i64 %t2667, %t2666 %t2669 = load ptr, ptr %t2658 %t2670 = call ptr @realloc(ptr %t2669, i64 %t2668) store ptr %t2670, ptr %t2658 store i32 %t2664, ptr %t2657 br label %put650 put650: %t2671 = load ptr, ptr %t2658 %t2672 = getelementptr inbounds ptr, ptr %t2671, i32 %t2659 store ptr @.str5798, ptr %t2672 %t2673 = add i32 %t2659, 1 store i32 %t2673, ptr %t2656 %t2674 = load ptr, ptr %t285 %t2675 = getelementptr inbounds %LSlice, ptr %t2674, i32 0, i32 1 %t2676 = getelementptr inbounds %LSlice, ptr %t2674, i32 0, i32 2 %t2677 = getelementptr inbounds %LSlice, ptr %t2674, i32 0, i32 0 %t2678 = load i32, ptr %t2675 %t2679 = load i32, ptr %t2676 %t2680 = icmp sge i32 %t2678, %t2679 br i1 %t2680, label %grow651, label %put652 grow651: %t2681 = mul i32 %t2679, 2 %t2682 = icmp eq i32 %t2679, 0 %t2683 = select i1 %t2682, i32 8, i32 %t2681 %t2684 = getelementptr ptr, ptr null, i32 1 %t2685 = ptrtoint ptr %t2684 to i64 %t2686 = zext i32 %t2683 to i64 %t2687 = mul i64 %t2686, %t2685 %t2688 = load ptr, ptr %t2677 %t2689 = call ptr @realloc(ptr %t2688, i64 %t2687) store ptr %t2689, ptr %t2677 store i32 %t2683, ptr %t2676 br label %put652 put652: %t2690 = load ptr, ptr %t2677 %t2691 = getelementptr inbounds ptr, ptr %t2690, i32 %t2678 store ptr @.str5799, ptr %t2691 %t2692 = add i32 %t2678, 1 store i32 %t2692, ptr %t2675 br label %ifend648 ifend648: %t2693 = load ptr, ptr %t1 %t2694 = call i32 @fn_str_eq(ptr %t2693, ptr @.str5800) %t2695 = icmp ne i32 %t2694, 0 br i1 %t2695, label %then653, label %ifend655 then653: store ptr @.str5801, ptr %t278 %t2696 = load ptr, ptr %t285 %t2697 = getelementptr inbounds %LSlice, ptr %t2696, i32 0, i32 1 %t2698 = getelementptr inbounds %LSlice, ptr %t2696, i32 0, i32 2 %t2699 = getelementptr inbounds %LSlice, ptr %t2696, i32 0, i32 0 %t2700 = load i32, ptr %t2697 %t2701 = load i32, ptr %t2698 %t2702 = icmp sge i32 %t2700, %t2701 br i1 %t2702, label %grow656, label %put657 grow656: %t2703 = mul i32 %t2701, 2 %t2704 = icmp eq i32 %t2701, 0 %t2705 = select i1 %t2704, i32 8, i32 %t2703 %t2706 = getelementptr ptr, ptr null, i32 1 %t2707 = ptrtoint ptr %t2706 to i64 %t2708 = zext i32 %t2705 to i64 %t2709 = mul i64 %t2708, %t2707 %t2710 = load ptr, ptr %t2699 %t2711 = call ptr @realloc(ptr %t2710, i64 %t2709) store ptr %t2711, ptr %t2699 store i32 %t2705, ptr %t2698 br label %put657 put657: %t2712 = load ptr, ptr %t2699 %t2713 = getelementptr inbounds ptr, ptr %t2712, i32 %t2700 store ptr @.str5802, ptr %t2713 %t2714 = add i32 %t2700, 1 store i32 %t2714, ptr %t2697 %t2715 = load ptr, ptr %t285 %t2716 = getelementptr inbounds %LSlice, ptr %t2715, i32 0, i32 1 %t2717 = getelementptr inbounds %LSlice, ptr %t2715, i32 0, i32 2 %t2718 = getelementptr inbounds %LSlice, ptr %t2715, i32 0, i32 0 %t2719 = load i32, ptr %t2716 %t2720 = load i32, ptr %t2717 %t2721 = icmp sge i32 %t2719, %t2720 br i1 %t2721, label %grow658, label %put659 grow658: %t2722 = mul i32 %t2720, 2 %t2723 = icmp eq i32 %t2720, 0 %t2724 = select i1 %t2723, i32 8, i32 %t2722 %t2725 = getelementptr ptr, ptr null, i32 1 %t2726 = ptrtoint ptr %t2725 to i64 %t2727 = zext i32 %t2724 to i64 %t2728 = mul i64 %t2727, %t2726 %t2729 = load ptr, ptr %t2718 %t2730 = call ptr @realloc(ptr %t2729, i64 %t2728) store ptr %t2730, ptr %t2718 store i32 %t2724, ptr %t2717 br label %put659 put659: %t2731 = load ptr, ptr %t2718 %t2732 = getelementptr inbounds ptr, ptr %t2731, i32 %t2719 store ptr @.str5803, ptr %t2732 %t2733 = add i32 %t2719, 1 store i32 %t2733, ptr %t2716 br label %ifend655 ifend655: %t2734 = load ptr, ptr %t1 %t2735 = call i32 @fn_str_eq(ptr %t2734, ptr @.str5804) %t2736 = icmp ne i32 %t2735, 0 br i1 %t2736, label %then660, label %ifend662 then660: store ptr @.str5805, ptr %t278 %t2737 = load ptr, ptr %t285 %t2738 = getelementptr inbounds %LSlice, ptr %t2737, i32 0, i32 1 %t2739 = getelementptr inbounds %LSlice, ptr %t2737, i32 0, i32 2 %t2740 = getelementptr inbounds %LSlice, ptr %t2737, i32 0, i32 0 %t2741 = load i32, ptr %t2738 %t2742 = load i32, ptr %t2739 %t2743 = icmp sge i32 %t2741, %t2742 br i1 %t2743, label %grow663, label %put664 grow663: %t2744 = mul i32 %t2742, 2 %t2745 = icmp eq i32 %t2742, 0 %t2746 = select i1 %t2745, i32 8, i32 %t2744 %t2747 = getelementptr ptr, ptr null, i32 1 %t2748 = ptrtoint ptr %t2747 to i64 %t2749 = zext i32 %t2746 to i64 %t2750 = mul i64 %t2749, %t2748 %t2751 = load ptr, ptr %t2740 %t2752 = call ptr @realloc(ptr %t2751, i64 %t2750) store ptr %t2752, ptr %t2740 store i32 %t2746, ptr %t2739 br label %put664 put664: %t2753 = load ptr, ptr %t2740 %t2754 = getelementptr inbounds ptr, ptr %t2753, i32 %t2741 store ptr @.str5806, ptr %t2754 %t2755 = add i32 %t2741, 1 store i32 %t2755, ptr %t2738 br label %ifend662 ifend662: br label %ifend577 ifend577: %t2756 = load ptr, ptr %t0 %t2757 = call i32 @fn_str_eq(ptr %t2756, ptr @.str5807) %t2758 = icmp ne i32 %t2757, 0 br i1 %t2758, label %then665, label %ifend667 then665: %t2759 = load ptr, ptr %t1 %t2760 = call i32 @fn_str_eq(ptr %t2759, ptr @.str5808) %t2761 = icmp ne i32 %t2760, 0 br i1 %t2761, label %then668, label %ifend670 then668: store ptr @.str5809, ptr %t278 %t2762 = load ptr, ptr %t285 %t2763 = getelementptr inbounds %LSlice, ptr %t2762, i32 0, i32 1 %t2764 = getelementptr inbounds %LSlice, ptr %t2762, i32 0, i32 2 %t2765 = getelementptr inbounds %LSlice, ptr %t2762, i32 0, i32 0 %t2766 = load i32, ptr %t2763 %t2767 = load i32, ptr %t2764 %t2768 = icmp sge i32 %t2766, %t2767 br i1 %t2768, label %grow671, label %put672 grow671: %t2769 = mul i32 %t2767, 2 %t2770 = icmp eq i32 %t2767, 0 %t2771 = select i1 %t2770, i32 8, i32 %t2769 %t2772 = getelementptr ptr, ptr null, i32 1 %t2773 = ptrtoint ptr %t2772 to i64 %t2774 = zext i32 %t2771 to i64 %t2775 = mul i64 %t2774, %t2773 %t2776 = load ptr, ptr %t2765 %t2777 = call ptr @realloc(ptr %t2776, i64 %t2775) store ptr %t2777, ptr %t2765 store i32 %t2771, ptr %t2764 br label %put672 put672: %t2778 = load ptr, ptr %t2765 %t2779 = getelementptr inbounds ptr, ptr %t2778, i32 %t2766 store ptr @.str5810, ptr %t2779 %t2780 = add i32 %t2766, 1 store i32 %t2780, ptr %t2763 %t2781 = load ptr, ptr %t285 %t2782 = getelementptr inbounds %LSlice, ptr %t2781, i32 0, i32 1 %t2783 = getelementptr inbounds %LSlice, ptr %t2781, i32 0, i32 2 %t2784 = getelementptr inbounds %LSlice, ptr %t2781, i32 0, i32 0 %t2785 = load i32, ptr %t2782 %t2786 = load i32, ptr %t2783 %t2787 = icmp sge i32 %t2785, %t2786 br i1 %t2787, label %grow673, label %put674 grow673: %t2788 = mul i32 %t2786, 2 %t2789 = icmp eq i32 %t2786, 0 %t2790 = select i1 %t2789, i32 8, i32 %t2788 %t2791 = getelementptr ptr, ptr null, i32 1 %t2792 = ptrtoint ptr %t2791 to i64 %t2793 = zext i32 %t2790 to i64 %t2794 = mul i64 %t2793, %t2792 %t2795 = load ptr, ptr %t2784 %t2796 = call ptr @realloc(ptr %t2795, i64 %t2794) store ptr %t2796, ptr %t2784 store i32 %t2790, ptr %t2783 br label %put674 put674: %t2797 = load ptr, ptr %t2784 %t2798 = getelementptr inbounds ptr, ptr %t2797, i32 %t2785 store ptr @.str5811, ptr %t2798 %t2799 = add i32 %t2785, 1 store i32 %t2799, ptr %t2782 %t2800 = load ptr, ptr %t285 %t2801 = getelementptr inbounds %LSlice, ptr %t2800, i32 0, i32 1 %t2802 = getelementptr inbounds %LSlice, ptr %t2800, i32 0, i32 2 %t2803 = getelementptr inbounds %LSlice, ptr %t2800, i32 0, i32 0 %t2804 = load i32, ptr %t2801 %t2805 = load i32, ptr %t2802 %t2806 = icmp sge i32 %t2804, %t2805 br i1 %t2806, label %grow675, label %put676 grow675: %t2807 = mul i32 %t2805, 2 %t2808 = icmp eq i32 %t2805, 0 %t2809 = select i1 %t2808, i32 8, i32 %t2807 %t2810 = getelementptr ptr, ptr null, i32 1 %t2811 = ptrtoint ptr %t2810 to i64 %t2812 = zext i32 %t2809 to i64 %t2813 = mul i64 %t2812, %t2811 %t2814 = load ptr, ptr %t2803 %t2815 = call ptr @realloc(ptr %t2814, i64 %t2813) store ptr %t2815, ptr %t2803 store i32 %t2809, ptr %t2802 br label %put676 put676: %t2816 = load ptr, ptr %t2803 %t2817 = getelementptr inbounds ptr, ptr %t2816, i32 %t2804 store ptr @.str5812, ptr %t2817 %t2818 = add i32 %t2804, 1 store i32 %t2818, ptr %t2801 %t2819 = load ptr, ptr %t285 %t2820 = getelementptr inbounds %LSlice, ptr %t2819, i32 0, i32 1 %t2821 = getelementptr inbounds %LSlice, ptr %t2819, i32 0, i32 2 %t2822 = getelementptr inbounds %LSlice, ptr %t2819, i32 0, i32 0 %t2823 = load i32, ptr %t2820 %t2824 = load i32, ptr %t2821 %t2825 = icmp sge i32 %t2823, %t2824 br i1 %t2825, label %grow677, label %put678 grow677: %t2826 = mul i32 %t2824, 2 %t2827 = icmp eq i32 %t2824, 0 %t2828 = select i1 %t2827, i32 8, i32 %t2826 %t2829 = getelementptr ptr, ptr null, i32 1 %t2830 = ptrtoint ptr %t2829 to i64 %t2831 = zext i32 %t2828 to i64 %t2832 = mul i64 %t2831, %t2830 %t2833 = load ptr, ptr %t2822 %t2834 = call ptr @realloc(ptr %t2833, i64 %t2832) store ptr %t2834, ptr %t2822 store i32 %t2828, ptr %t2821 br label %put678 put678: %t2835 = load ptr, ptr %t2822 %t2836 = getelementptr inbounds ptr, ptr %t2835, i32 %t2823 store ptr @.str5813, ptr %t2836 %t2837 = add i32 %t2823, 1 store i32 %t2837, ptr %t2820 br label %ifend670 ifend670: %t2838 = load ptr, ptr %t1 %t2839 = call i32 @fn_str_eq(ptr %t2838, ptr @.str5814) %t2840 = icmp ne i32 %t2839, 0 br i1 %t2840, label %then679, label %ifend681 then679: store ptr @.str5815, ptr %t278 %t2841 = load ptr, ptr %t285 %t2842 = getelementptr inbounds %LSlice, ptr %t2841, i32 0, i32 1 %t2843 = getelementptr inbounds %LSlice, ptr %t2841, i32 0, i32 2 %t2844 = getelementptr inbounds %LSlice, ptr %t2841, i32 0, i32 0 %t2845 = load i32, ptr %t2842 %t2846 = load i32, ptr %t2843 %t2847 = icmp sge i32 %t2845, %t2846 br i1 %t2847, label %grow682, label %put683 grow682: %t2848 = mul i32 %t2846, 2 %t2849 = icmp eq i32 %t2846, 0 %t2850 = select i1 %t2849, i32 8, i32 %t2848 %t2851 = getelementptr ptr, ptr null, i32 1 %t2852 = ptrtoint ptr %t2851 to i64 %t2853 = zext i32 %t2850 to i64 %t2854 = mul i64 %t2853, %t2852 %t2855 = load ptr, ptr %t2844 %t2856 = call ptr @realloc(ptr %t2855, i64 %t2854) store ptr %t2856, ptr %t2844 store i32 %t2850, ptr %t2843 br label %put683 put683: %t2857 = load ptr, ptr %t2844 %t2858 = getelementptr inbounds ptr, ptr %t2857, i32 %t2845 store ptr @.str5816, ptr %t2858 %t2859 = add i32 %t2845, 1 store i32 %t2859, ptr %t2842 %t2860 = load ptr, ptr %t285 %t2861 = getelementptr inbounds %LSlice, ptr %t2860, i32 0, i32 1 %t2862 = getelementptr inbounds %LSlice, ptr %t2860, i32 0, i32 2 %t2863 = getelementptr inbounds %LSlice, ptr %t2860, i32 0, i32 0 %t2864 = load i32, ptr %t2861 %t2865 = load i32, ptr %t2862 %t2866 = icmp sge i32 %t2864, %t2865 br i1 %t2866, label %grow684, label %put685 grow684: %t2867 = mul i32 %t2865, 2 %t2868 = icmp eq i32 %t2865, 0 %t2869 = select i1 %t2868, i32 8, i32 %t2867 %t2870 = getelementptr ptr, ptr null, i32 1 %t2871 = ptrtoint ptr %t2870 to i64 %t2872 = zext i32 %t2869 to i64 %t2873 = mul i64 %t2872, %t2871 %t2874 = load ptr, ptr %t2863 %t2875 = call ptr @realloc(ptr %t2874, i64 %t2873) store ptr %t2875, ptr %t2863 store i32 %t2869, ptr %t2862 br label %put685 put685: %t2876 = load ptr, ptr %t2863 %t2877 = getelementptr inbounds ptr, ptr %t2876, i32 %t2864 store ptr @.str5817, ptr %t2877 %t2878 = add i32 %t2864, 1 store i32 %t2878, ptr %t2861 %t2879 = load ptr, ptr %t285 %t2880 = getelementptr inbounds %LSlice, ptr %t2879, i32 0, i32 1 %t2881 = getelementptr inbounds %LSlice, ptr %t2879, i32 0, i32 2 %t2882 = getelementptr inbounds %LSlice, ptr %t2879, i32 0, i32 0 %t2883 = load i32, ptr %t2880 %t2884 = load i32, ptr %t2881 %t2885 = icmp sge i32 %t2883, %t2884 br i1 %t2885, label %grow686, label %put687 grow686: %t2886 = mul i32 %t2884, 2 %t2887 = icmp eq i32 %t2884, 0 %t2888 = select i1 %t2887, i32 8, i32 %t2886 %t2889 = getelementptr ptr, ptr null, i32 1 %t2890 = ptrtoint ptr %t2889 to i64 %t2891 = zext i32 %t2888 to i64 %t2892 = mul i64 %t2891, %t2890 %t2893 = load ptr, ptr %t2882 %t2894 = call ptr @realloc(ptr %t2893, i64 %t2892) store ptr %t2894, ptr %t2882 store i32 %t2888, ptr %t2881 br label %put687 put687: %t2895 = load ptr, ptr %t2882 %t2896 = getelementptr inbounds ptr, ptr %t2895, i32 %t2883 store ptr @.str5818, ptr %t2896 %t2897 = add i32 %t2883, 1 store i32 %t2897, ptr %t2880 br label %ifend681 ifend681: %t2898 = load ptr, ptr %t1 %t2899 = call i32 @fn_str_eq(ptr %t2898, ptr @.str5819) %t2900 = icmp ne i32 %t2899, 0 br i1 %t2900, label %then688, label %ifend690 then688: store ptr @.str5820, ptr %t278 %t2901 = load ptr, ptr %t285 %t2902 = getelementptr inbounds %LSlice, ptr %t2901, i32 0, i32 1 %t2903 = getelementptr inbounds %LSlice, ptr %t2901, i32 0, i32 2 %t2904 = getelementptr inbounds %LSlice, ptr %t2901, i32 0, i32 0 %t2905 = load i32, ptr %t2902 %t2906 = load i32, ptr %t2903 %t2907 = icmp sge i32 %t2905, %t2906 br i1 %t2907, label %grow691, label %put692 grow691: %t2908 = mul i32 %t2906, 2 %t2909 = icmp eq i32 %t2906, 0 %t2910 = select i1 %t2909, i32 8, i32 %t2908 %t2911 = getelementptr ptr, ptr null, i32 1 %t2912 = ptrtoint ptr %t2911 to i64 %t2913 = zext i32 %t2910 to i64 %t2914 = mul i64 %t2913, %t2912 %t2915 = load ptr, ptr %t2904 %t2916 = call ptr @realloc(ptr %t2915, i64 %t2914) store ptr %t2916, ptr %t2904 store i32 %t2910, ptr %t2903 br label %put692 put692: %t2917 = load ptr, ptr %t2904 %t2918 = getelementptr inbounds ptr, ptr %t2917, i32 %t2905 store ptr @.str5821, ptr %t2918 %t2919 = add i32 %t2905, 1 store i32 %t2919, ptr %t2902 %t2920 = load ptr, ptr %t285 %t2921 = getelementptr inbounds %LSlice, ptr %t2920, i32 0, i32 1 %t2922 = getelementptr inbounds %LSlice, ptr %t2920, i32 0, i32 2 %t2923 = getelementptr inbounds %LSlice, ptr %t2920, i32 0, i32 0 %t2924 = load i32, ptr %t2921 %t2925 = load i32, ptr %t2922 %t2926 = icmp sge i32 %t2924, %t2925 br i1 %t2926, label %grow693, label %put694 grow693: %t2927 = mul i32 %t2925, 2 %t2928 = icmp eq i32 %t2925, 0 %t2929 = select i1 %t2928, i32 8, i32 %t2927 %t2930 = getelementptr ptr, ptr null, i32 1 %t2931 = ptrtoint ptr %t2930 to i64 %t2932 = zext i32 %t2929 to i64 %t2933 = mul i64 %t2932, %t2931 %t2934 = load ptr, ptr %t2923 %t2935 = call ptr @realloc(ptr %t2934, i64 %t2933) store ptr %t2935, ptr %t2923 store i32 %t2929, ptr %t2922 br label %put694 put694: %t2936 = load ptr, ptr %t2923 %t2937 = getelementptr inbounds ptr, ptr %t2936, i32 %t2924 store ptr @.str5822, ptr %t2937 %t2938 = add i32 %t2924, 1 store i32 %t2938, ptr %t2921 %t2939 = load ptr, ptr %t285 %t2940 = getelementptr inbounds %LSlice, ptr %t2939, i32 0, i32 1 %t2941 = getelementptr inbounds %LSlice, ptr %t2939, i32 0, i32 2 %t2942 = getelementptr inbounds %LSlice, ptr %t2939, i32 0, i32 0 %t2943 = load i32, ptr %t2940 %t2944 = load i32, ptr %t2941 %t2945 = icmp sge i32 %t2943, %t2944 br i1 %t2945, label %grow695, label %put696 grow695: %t2946 = mul i32 %t2944, 2 %t2947 = icmp eq i32 %t2944, 0 %t2948 = select i1 %t2947, i32 8, i32 %t2946 %t2949 = getelementptr ptr, ptr null, i32 1 %t2950 = ptrtoint ptr %t2949 to i64 %t2951 = zext i32 %t2948 to i64 %t2952 = mul i64 %t2951, %t2950 %t2953 = load ptr, ptr %t2942 %t2954 = call ptr @realloc(ptr %t2953, i64 %t2952) store ptr %t2954, ptr %t2942 store i32 %t2948, ptr %t2941 br label %put696 put696: %t2955 = load ptr, ptr %t2942 %t2956 = getelementptr inbounds ptr, ptr %t2955, i32 %t2943 store ptr @.str5823, ptr %t2956 %t2957 = add i32 %t2943, 1 store i32 %t2957, ptr %t2940 %t2958 = load ptr, ptr %t285 %t2959 = getelementptr inbounds %LSlice, ptr %t2958, i32 0, i32 1 %t2960 = getelementptr inbounds %LSlice, ptr %t2958, i32 0, i32 2 %t2961 = getelementptr inbounds %LSlice, ptr %t2958, i32 0, i32 0 %t2962 = load i32, ptr %t2959 %t2963 = load i32, ptr %t2960 %t2964 = icmp sge i32 %t2962, %t2963 br i1 %t2964, label %grow697, label %put698 grow697: %t2965 = mul i32 %t2963, 2 %t2966 = icmp eq i32 %t2963, 0 %t2967 = select i1 %t2966, i32 8, i32 %t2965 %t2968 = getelementptr ptr, ptr null, i32 1 %t2969 = ptrtoint ptr %t2968 to i64 %t2970 = zext i32 %t2967 to i64 %t2971 = mul i64 %t2970, %t2969 %t2972 = load ptr, ptr %t2961 %t2973 = call ptr @realloc(ptr %t2972, i64 %t2971) store ptr %t2973, ptr %t2961 store i32 %t2967, ptr %t2960 br label %put698 put698: %t2974 = load ptr, ptr %t2961 %t2975 = getelementptr inbounds ptr, ptr %t2974, i32 %t2962 store ptr @.str5824, ptr %t2975 %t2976 = add i32 %t2962, 1 store i32 %t2976, ptr %t2959 %t2977 = load ptr, ptr %t285 %t2978 = getelementptr inbounds %LSlice, ptr %t2977, i32 0, i32 1 %t2979 = getelementptr inbounds %LSlice, ptr %t2977, i32 0, i32 2 %t2980 = getelementptr inbounds %LSlice, ptr %t2977, i32 0, i32 0 %t2981 = load i32, ptr %t2978 %t2982 = load i32, ptr %t2979 %t2983 = icmp sge i32 %t2981, %t2982 br i1 %t2983, label %grow699, label %put700 grow699: %t2984 = mul i32 %t2982, 2 %t2985 = icmp eq i32 %t2982, 0 %t2986 = select i1 %t2985, i32 8, i32 %t2984 %t2987 = getelementptr ptr, ptr null, i32 1 %t2988 = ptrtoint ptr %t2987 to i64 %t2989 = zext i32 %t2986 to i64 %t2990 = mul i64 %t2989, %t2988 %t2991 = load ptr, ptr %t2980 %t2992 = call ptr @realloc(ptr %t2991, i64 %t2990) store ptr %t2992, ptr %t2980 store i32 %t2986, ptr %t2979 br label %put700 put700: %t2993 = load ptr, ptr %t2980 %t2994 = getelementptr inbounds ptr, ptr %t2993, i32 %t2981 store ptr @.str5825, ptr %t2994 %t2995 = add i32 %t2981, 1 store i32 %t2995, ptr %t2978 br label %ifend690 ifend690: %t2996 = load ptr, ptr %t1 %t2997 = call i32 @fn_str_eq(ptr %t2996, ptr @.str5826) %t2998 = icmp ne i32 %t2997, 0 br i1 %t2998, label %then701, label %ifend703 then701: store ptr @.str5827, ptr %t278 %t2999 = load ptr, ptr %t285 %t3000 = getelementptr inbounds %LSlice, ptr %t2999, i32 0, i32 1 %t3001 = getelementptr inbounds %LSlice, ptr %t2999, i32 0, i32 2 %t3002 = getelementptr inbounds %LSlice, ptr %t2999, i32 0, i32 0 %t3003 = load i32, ptr %t3000 %t3004 = load i32, ptr %t3001 %t3005 = icmp sge i32 %t3003, %t3004 br i1 %t3005, label %grow704, label %put705 grow704: %t3006 = mul i32 %t3004, 2 %t3007 = icmp eq i32 %t3004, 0 %t3008 = select i1 %t3007, i32 8, i32 %t3006 %t3009 = getelementptr ptr, ptr null, i32 1 %t3010 = ptrtoint ptr %t3009 to i64 %t3011 = zext i32 %t3008 to i64 %t3012 = mul i64 %t3011, %t3010 %t3013 = load ptr, ptr %t3002 %t3014 = call ptr @realloc(ptr %t3013, i64 %t3012) store ptr %t3014, ptr %t3002 store i32 %t3008, ptr %t3001 br label %put705 put705: %t3015 = load ptr, ptr %t3002 %t3016 = getelementptr inbounds ptr, ptr %t3015, i32 %t3003 store ptr @.str5828, ptr %t3016 %t3017 = add i32 %t3003, 1 store i32 %t3017, ptr %t3000 %t3018 = load ptr, ptr %t285 %t3019 = getelementptr inbounds %LSlice, ptr %t3018, i32 0, i32 1 %t3020 = getelementptr inbounds %LSlice, ptr %t3018, i32 0, i32 2 %t3021 = getelementptr inbounds %LSlice, ptr %t3018, i32 0, i32 0 %t3022 = load i32, ptr %t3019 %t3023 = load i32, ptr %t3020 %t3024 = icmp sge i32 %t3022, %t3023 br i1 %t3024, label %grow706, label %put707 grow706: %t3025 = mul i32 %t3023, 2 %t3026 = icmp eq i32 %t3023, 0 %t3027 = select i1 %t3026, i32 8, i32 %t3025 %t3028 = getelementptr ptr, ptr null, i32 1 %t3029 = ptrtoint ptr %t3028 to i64 %t3030 = zext i32 %t3027 to i64 %t3031 = mul i64 %t3030, %t3029 %t3032 = load ptr, ptr %t3021 %t3033 = call ptr @realloc(ptr %t3032, i64 %t3031) store ptr %t3033, ptr %t3021 store i32 %t3027, ptr %t3020 br label %put707 put707: %t3034 = load ptr, ptr %t3021 %t3035 = getelementptr inbounds ptr, ptr %t3034, i32 %t3022 store ptr @.str5829, ptr %t3035 %t3036 = add i32 %t3022, 1 store i32 %t3036, ptr %t3019 %t3037 = load ptr, ptr %t285 %t3038 = getelementptr inbounds %LSlice, ptr %t3037, i32 0, i32 1 %t3039 = getelementptr inbounds %LSlice, ptr %t3037, i32 0, i32 2 %t3040 = getelementptr inbounds %LSlice, ptr %t3037, i32 0, i32 0 %t3041 = load i32, ptr %t3038 %t3042 = load i32, ptr %t3039 %t3043 = icmp sge i32 %t3041, %t3042 br i1 %t3043, label %grow708, label %put709 grow708: %t3044 = mul i32 %t3042, 2 %t3045 = icmp eq i32 %t3042, 0 %t3046 = select i1 %t3045, i32 8, i32 %t3044 %t3047 = getelementptr ptr, ptr null, i32 1 %t3048 = ptrtoint ptr %t3047 to i64 %t3049 = zext i32 %t3046 to i64 %t3050 = mul i64 %t3049, %t3048 %t3051 = load ptr, ptr %t3040 %t3052 = call ptr @realloc(ptr %t3051, i64 %t3050) store ptr %t3052, ptr %t3040 store i32 %t3046, ptr %t3039 br label %put709 put709: %t3053 = load ptr, ptr %t3040 %t3054 = getelementptr inbounds ptr, ptr %t3053, i32 %t3041 store ptr @.str5830, ptr %t3054 %t3055 = add i32 %t3041, 1 store i32 %t3055, ptr %t3038 br label %ifend703 ifend703: %t3056 = load ptr, ptr %t1 %t3057 = call i32 @fn_str_eq(ptr %t3056, ptr @.str5831) %t3058 = icmp ne i32 %t3057, 0 br i1 %t3058, label %then710, label %ifend712 then710: store ptr @.str5832, ptr %t278 %t3059 = load ptr, ptr %t285 %t3060 = getelementptr inbounds %LSlice, ptr %t3059, i32 0, i32 1 %t3061 = getelementptr inbounds %LSlice, ptr %t3059, i32 0, i32 2 %t3062 = getelementptr inbounds %LSlice, ptr %t3059, i32 0, i32 0 %t3063 = load i32, ptr %t3060 %t3064 = load i32, ptr %t3061 %t3065 = icmp sge i32 %t3063, %t3064 br i1 %t3065, label %grow713, label %put714 grow713: %t3066 = mul i32 %t3064, 2 %t3067 = icmp eq i32 %t3064, 0 %t3068 = select i1 %t3067, i32 8, i32 %t3066 %t3069 = getelementptr ptr, ptr null, i32 1 %t3070 = ptrtoint ptr %t3069 to i64 %t3071 = zext i32 %t3068 to i64 %t3072 = mul i64 %t3071, %t3070 %t3073 = load ptr, ptr %t3062 %t3074 = call ptr @realloc(ptr %t3073, i64 %t3072) store ptr %t3074, ptr %t3062 store i32 %t3068, ptr %t3061 br label %put714 put714: %t3075 = load ptr, ptr %t3062 %t3076 = getelementptr inbounds ptr, ptr %t3075, i32 %t3063 store ptr @.str5833, ptr %t3076 %t3077 = add i32 %t3063, 1 store i32 %t3077, ptr %t3060 %t3078 = load ptr, ptr %t285 %t3079 = getelementptr inbounds %LSlice, ptr %t3078, i32 0, i32 1 %t3080 = getelementptr inbounds %LSlice, ptr %t3078, i32 0, i32 2 %t3081 = getelementptr inbounds %LSlice, ptr %t3078, i32 0, i32 0 %t3082 = load i32, ptr %t3079 %t3083 = load i32, ptr %t3080 %t3084 = icmp sge i32 %t3082, %t3083 br i1 %t3084, label %grow715, label %put716 grow715: %t3085 = mul i32 %t3083, 2 %t3086 = icmp eq i32 %t3083, 0 %t3087 = select i1 %t3086, i32 8, i32 %t3085 %t3088 = getelementptr ptr, ptr null, i32 1 %t3089 = ptrtoint ptr %t3088 to i64 %t3090 = zext i32 %t3087 to i64 %t3091 = mul i64 %t3090, %t3089 %t3092 = load ptr, ptr %t3081 %t3093 = call ptr @realloc(ptr %t3092, i64 %t3091) store ptr %t3093, ptr %t3081 store i32 %t3087, ptr %t3080 br label %put716 put716: %t3094 = load ptr, ptr %t3081 %t3095 = getelementptr inbounds ptr, ptr %t3094, i32 %t3082 store ptr @.str5834, ptr %t3095 %t3096 = add i32 %t3082, 1 store i32 %t3096, ptr %t3079 %t3097 = load ptr, ptr %t285 %t3098 = getelementptr inbounds %LSlice, ptr %t3097, i32 0, i32 1 %t3099 = getelementptr inbounds %LSlice, ptr %t3097, i32 0, i32 2 %t3100 = getelementptr inbounds %LSlice, ptr %t3097, i32 0, i32 0 %t3101 = load i32, ptr %t3098 %t3102 = load i32, ptr %t3099 %t3103 = icmp sge i32 %t3101, %t3102 br i1 %t3103, label %grow717, label %put718 grow717: %t3104 = mul i32 %t3102, 2 %t3105 = icmp eq i32 %t3102, 0 %t3106 = select i1 %t3105, i32 8, i32 %t3104 %t3107 = getelementptr ptr, ptr null, i32 1 %t3108 = ptrtoint ptr %t3107 to i64 %t3109 = zext i32 %t3106 to i64 %t3110 = mul i64 %t3109, %t3108 %t3111 = load ptr, ptr %t3100 %t3112 = call ptr @realloc(ptr %t3111, i64 %t3110) store ptr %t3112, ptr %t3100 store i32 %t3106, ptr %t3099 br label %put718 put718: %t3113 = load ptr, ptr %t3100 %t3114 = getelementptr inbounds ptr, ptr %t3113, i32 %t3101 store ptr @.str5835, ptr %t3114 %t3115 = add i32 %t3101, 1 store i32 %t3115, ptr %t3098 %t3116 = load ptr, ptr %t285 %t3117 = getelementptr inbounds %LSlice, ptr %t3116, i32 0, i32 1 %t3118 = getelementptr inbounds %LSlice, ptr %t3116, i32 0, i32 2 %t3119 = getelementptr inbounds %LSlice, ptr %t3116, i32 0, i32 0 %t3120 = load i32, ptr %t3117 %t3121 = load i32, ptr %t3118 %t3122 = icmp sge i32 %t3120, %t3121 br i1 %t3122, label %grow719, label %put720 grow719: %t3123 = mul i32 %t3121, 2 %t3124 = icmp eq i32 %t3121, 0 %t3125 = select i1 %t3124, i32 8, i32 %t3123 %t3126 = getelementptr ptr, ptr null, i32 1 %t3127 = ptrtoint ptr %t3126 to i64 %t3128 = zext i32 %t3125 to i64 %t3129 = mul i64 %t3128, %t3127 %t3130 = load ptr, ptr %t3119 %t3131 = call ptr @realloc(ptr %t3130, i64 %t3129) store ptr %t3131, ptr %t3119 store i32 %t3125, ptr %t3118 br label %put720 put720: %t3132 = load ptr, ptr %t3119 %t3133 = getelementptr inbounds ptr, ptr %t3132, i32 %t3120 store ptr @.str5836, ptr %t3133 %t3134 = add i32 %t3120, 1 store i32 %t3134, ptr %t3117 %t3135 = load ptr, ptr %t285 %t3136 = getelementptr inbounds %LSlice, ptr %t3135, i32 0, i32 1 %t3137 = getelementptr inbounds %LSlice, ptr %t3135, i32 0, i32 2 %t3138 = getelementptr inbounds %LSlice, ptr %t3135, i32 0, i32 0 %t3139 = load i32, ptr %t3136 %t3140 = load i32, ptr %t3137 %t3141 = icmp sge i32 %t3139, %t3140 br i1 %t3141, label %grow721, label %put722 grow721: %t3142 = mul i32 %t3140, 2 %t3143 = icmp eq i32 %t3140, 0 %t3144 = select i1 %t3143, i32 8, i32 %t3142 %t3145 = getelementptr ptr, ptr null, i32 1 %t3146 = ptrtoint ptr %t3145 to i64 %t3147 = zext i32 %t3144 to i64 %t3148 = mul i64 %t3147, %t3146 %t3149 = load ptr, ptr %t3138 %t3150 = call ptr @realloc(ptr %t3149, i64 %t3148) store ptr %t3150, ptr %t3138 store i32 %t3144, ptr %t3137 br label %put722 put722: %t3151 = load ptr, ptr %t3138 %t3152 = getelementptr inbounds ptr, ptr %t3151, i32 %t3139 store ptr @.str5837, ptr %t3152 %t3153 = add i32 %t3139, 1 store i32 %t3153, ptr %t3136 br label %ifend712 ifend712: br label %ifend667 ifend667: %t3154 = load ptr, ptr %t0 %t3155 = call i32 @fn_str_eq(ptr %t3154, ptr @.str5838) %t3156 = icmp ne i32 %t3155, 0 br i1 %t3156, label %then723, label %ifend725 then723: %t3157 = load ptr, ptr %t1 %t3158 = call i32 @fn_str_eq(ptr %t3157, ptr @.str5839) %t3159 = icmp ne i32 %t3158, 0 br i1 %t3159, label %then726, label %ifend728 then726: store ptr @.str5840, ptr %t278 %t3160 = load ptr, ptr %t285 %t3161 = getelementptr inbounds %LSlice, ptr %t3160, i32 0, i32 1 %t3162 = getelementptr inbounds %LSlice, ptr %t3160, i32 0, i32 2 %t3163 = getelementptr inbounds %LSlice, ptr %t3160, i32 0, i32 0 %t3164 = load i32, ptr %t3161 %t3165 = load i32, ptr %t3162 %t3166 = icmp sge i32 %t3164, %t3165 br i1 %t3166, label %grow729, label %put730 grow729: %t3167 = mul i32 %t3165, 2 %t3168 = icmp eq i32 %t3165, 0 %t3169 = select i1 %t3168, i32 8, i32 %t3167 %t3170 = getelementptr ptr, ptr null, i32 1 %t3171 = ptrtoint ptr %t3170 to i64 %t3172 = zext i32 %t3169 to i64 %t3173 = mul i64 %t3172, %t3171 %t3174 = load ptr, ptr %t3163 %t3175 = call ptr @realloc(ptr %t3174, i64 %t3173) store ptr %t3175, ptr %t3163 store i32 %t3169, ptr %t3162 br label %put730 put730: %t3176 = load ptr, ptr %t3163 %t3177 = getelementptr inbounds ptr, ptr %t3176, i32 %t3164 store ptr @.str5841, ptr %t3177 %t3178 = add i32 %t3164, 1 store i32 %t3178, ptr %t3161 br label %ifend728 ifend728: %t3179 = load ptr, ptr %t1 %t3180 = call i32 @fn_str_eq(ptr %t3179, ptr @.str5842) %t3181 = icmp ne i32 %t3180, 0 br i1 %t3181, label %then731, label %ifend733 then731: store ptr @.str5843, ptr %t278 %t3182 = load ptr, ptr %t285 %t3183 = getelementptr inbounds %LSlice, ptr %t3182, i32 0, i32 1 %t3184 = getelementptr inbounds %LSlice, ptr %t3182, i32 0, i32 2 %t3185 = getelementptr inbounds %LSlice, ptr %t3182, i32 0, i32 0 %t3186 = load i32, ptr %t3183 %t3187 = load i32, ptr %t3184 %t3188 = icmp sge i32 %t3186, %t3187 br i1 %t3188, label %grow734, label %put735 grow734: %t3189 = mul i32 %t3187, 2 %t3190 = icmp eq i32 %t3187, 0 %t3191 = select i1 %t3190, i32 8, i32 %t3189 %t3192 = getelementptr ptr, ptr null, i32 1 %t3193 = ptrtoint ptr %t3192 to i64 %t3194 = zext i32 %t3191 to i64 %t3195 = mul i64 %t3194, %t3193 %t3196 = load ptr, ptr %t3185 %t3197 = call ptr @realloc(ptr %t3196, i64 %t3195) store ptr %t3197, ptr %t3185 store i32 %t3191, ptr %t3184 br label %put735 put735: %t3198 = load ptr, ptr %t3185 %t3199 = getelementptr inbounds ptr, ptr %t3198, i32 %t3186 store ptr @.str5844, ptr %t3199 %t3200 = add i32 %t3186, 1 store i32 %t3200, ptr %t3183 %t3201 = load ptr, ptr %t285 %t3202 = getelementptr inbounds %LSlice, ptr %t3201, i32 0, i32 1 %t3203 = getelementptr inbounds %LSlice, ptr %t3201, i32 0, i32 2 %t3204 = getelementptr inbounds %LSlice, ptr %t3201, i32 0, i32 0 %t3205 = load i32, ptr %t3202 %t3206 = load i32, ptr %t3203 %t3207 = icmp sge i32 %t3205, %t3206 br i1 %t3207, label %grow736, label %put737 grow736: %t3208 = mul i32 %t3206, 2 %t3209 = icmp eq i32 %t3206, 0 %t3210 = select i1 %t3209, i32 8, i32 %t3208 %t3211 = getelementptr ptr, ptr null, i32 1 %t3212 = ptrtoint ptr %t3211 to i64 %t3213 = zext i32 %t3210 to i64 %t3214 = mul i64 %t3213, %t3212 %t3215 = load ptr, ptr %t3204 %t3216 = call ptr @realloc(ptr %t3215, i64 %t3214) store ptr %t3216, ptr %t3204 store i32 %t3210, ptr %t3203 br label %put737 put737: %t3217 = load ptr, ptr %t3204 %t3218 = getelementptr inbounds ptr, ptr %t3217, i32 %t3205 store ptr @.str5845, ptr %t3218 %t3219 = add i32 %t3205, 1 store i32 %t3219, ptr %t3202 %t3220 = load ptr, ptr %t285 %t3221 = getelementptr inbounds %LSlice, ptr %t3220, i32 0, i32 1 %t3222 = getelementptr inbounds %LSlice, ptr %t3220, i32 0, i32 2 %t3223 = getelementptr inbounds %LSlice, ptr %t3220, i32 0, i32 0 %t3224 = load i32, ptr %t3221 %t3225 = load i32, ptr %t3222 %t3226 = icmp sge i32 %t3224, %t3225 br i1 %t3226, label %grow738, label %put739 grow738: %t3227 = mul i32 %t3225, 2 %t3228 = icmp eq i32 %t3225, 0 %t3229 = select i1 %t3228, i32 8, i32 %t3227 %t3230 = getelementptr ptr, ptr null, i32 1 %t3231 = ptrtoint ptr %t3230 to i64 %t3232 = zext i32 %t3229 to i64 %t3233 = mul i64 %t3232, %t3231 %t3234 = load ptr, ptr %t3223 %t3235 = call ptr @realloc(ptr %t3234, i64 %t3233) store ptr %t3235, ptr %t3223 store i32 %t3229, ptr %t3222 br label %put739 put739: %t3236 = load ptr, ptr %t3223 %t3237 = getelementptr inbounds ptr, ptr %t3236, i32 %t3224 store ptr @.str5846, ptr %t3237 %t3238 = add i32 %t3224, 1 store i32 %t3238, ptr %t3221 %t3239 = load ptr, ptr %t285 %t3240 = getelementptr inbounds %LSlice, ptr %t3239, i32 0, i32 1 %t3241 = getelementptr inbounds %LSlice, ptr %t3239, i32 0, i32 2 %t3242 = getelementptr inbounds %LSlice, ptr %t3239, i32 0, i32 0 %t3243 = load i32, ptr %t3240 %t3244 = load i32, ptr %t3241 %t3245 = icmp sge i32 %t3243, %t3244 br i1 %t3245, label %grow740, label %put741 grow740: %t3246 = mul i32 %t3244, 2 %t3247 = icmp eq i32 %t3244, 0 %t3248 = select i1 %t3247, i32 8, i32 %t3246 %t3249 = getelementptr ptr, ptr null, i32 1 %t3250 = ptrtoint ptr %t3249 to i64 %t3251 = zext i32 %t3248 to i64 %t3252 = mul i64 %t3251, %t3250 %t3253 = load ptr, ptr %t3242 %t3254 = call ptr @realloc(ptr %t3253, i64 %t3252) store ptr %t3254, ptr %t3242 store i32 %t3248, ptr %t3241 br label %put741 put741: %t3255 = load ptr, ptr %t3242 %t3256 = getelementptr inbounds ptr, ptr %t3255, i32 %t3243 store ptr @.str5847, ptr %t3256 %t3257 = add i32 %t3243, 1 store i32 %t3257, ptr %t3240 %t3258 = load ptr, ptr %t285 %t3259 = getelementptr inbounds %LSlice, ptr %t3258, i32 0, i32 1 %t3260 = getelementptr inbounds %LSlice, ptr %t3258, i32 0, i32 2 %t3261 = getelementptr inbounds %LSlice, ptr %t3258, i32 0, i32 0 %t3262 = load i32, ptr %t3259 %t3263 = load i32, ptr %t3260 %t3264 = icmp sge i32 %t3262, %t3263 br i1 %t3264, label %grow742, label %put743 grow742: %t3265 = mul i32 %t3263, 2 %t3266 = icmp eq i32 %t3263, 0 %t3267 = select i1 %t3266, i32 8, i32 %t3265 %t3268 = getelementptr ptr, ptr null, i32 1 %t3269 = ptrtoint ptr %t3268 to i64 %t3270 = zext i32 %t3267 to i64 %t3271 = mul i64 %t3270, %t3269 %t3272 = load ptr, ptr %t3261 %t3273 = call ptr @realloc(ptr %t3272, i64 %t3271) store ptr %t3273, ptr %t3261 store i32 %t3267, ptr %t3260 br label %put743 put743: %t3274 = load ptr, ptr %t3261 %t3275 = getelementptr inbounds ptr, ptr %t3274, i32 %t3262 store ptr @.str5848, ptr %t3275 %t3276 = add i32 %t3262, 1 store i32 %t3276, ptr %t3259 br label %ifend733 ifend733: %t3277 = load ptr, ptr %t1 %t3278 = call i32 @fn_str_eq(ptr %t3277, ptr @.str5849) %t3279 = icmp ne i32 %t3278, 0 br i1 %t3279, label %then744, label %ifend746 then744: store ptr @.str5850, ptr %t278 %t3280 = load ptr, ptr %t285 %t3281 = getelementptr inbounds %LSlice, ptr %t3280, i32 0, i32 1 %t3282 = getelementptr inbounds %LSlice, ptr %t3280, i32 0, i32 2 %t3283 = getelementptr inbounds %LSlice, ptr %t3280, i32 0, i32 0 %t3284 = load i32, ptr %t3281 %t3285 = load i32, ptr %t3282 %t3286 = icmp sge i32 %t3284, %t3285 br i1 %t3286, label %grow747, label %put748 grow747: %t3287 = mul i32 %t3285, 2 %t3288 = icmp eq i32 %t3285, 0 %t3289 = select i1 %t3288, i32 8, i32 %t3287 %t3290 = getelementptr ptr, ptr null, i32 1 %t3291 = ptrtoint ptr %t3290 to i64 %t3292 = zext i32 %t3289 to i64 %t3293 = mul i64 %t3292, %t3291 %t3294 = load ptr, ptr %t3283 %t3295 = call ptr @realloc(ptr %t3294, i64 %t3293) store ptr %t3295, ptr %t3283 store i32 %t3289, ptr %t3282 br label %put748 put748: %t3296 = load ptr, ptr %t3283 %t3297 = getelementptr inbounds ptr, ptr %t3296, i32 %t3284 store ptr @.str5851, ptr %t3297 %t3298 = add i32 %t3284, 1 store i32 %t3298, ptr %t3281 %t3299 = load ptr, ptr %t285 %t3300 = getelementptr inbounds %LSlice, ptr %t3299, i32 0, i32 1 %t3301 = getelementptr inbounds %LSlice, ptr %t3299, i32 0, i32 2 %t3302 = getelementptr inbounds %LSlice, ptr %t3299, i32 0, i32 0 %t3303 = load i32, ptr %t3300 %t3304 = load i32, ptr %t3301 %t3305 = icmp sge i32 %t3303, %t3304 br i1 %t3305, label %grow749, label %put750 grow749: %t3306 = mul i32 %t3304, 2 %t3307 = icmp eq i32 %t3304, 0 %t3308 = select i1 %t3307, i32 8, i32 %t3306 %t3309 = getelementptr ptr, ptr null, i32 1 %t3310 = ptrtoint ptr %t3309 to i64 %t3311 = zext i32 %t3308 to i64 %t3312 = mul i64 %t3311, %t3310 %t3313 = load ptr, ptr %t3302 %t3314 = call ptr @realloc(ptr %t3313, i64 %t3312) store ptr %t3314, ptr %t3302 store i32 %t3308, ptr %t3301 br label %put750 put750: %t3315 = load ptr, ptr %t3302 %t3316 = getelementptr inbounds ptr, ptr %t3315, i32 %t3303 store ptr @.str5852, ptr %t3316 %t3317 = add i32 %t3303, 1 store i32 %t3317, ptr %t3300 %t3318 = load ptr, ptr %t285 %t3319 = getelementptr inbounds %LSlice, ptr %t3318, i32 0, i32 1 %t3320 = getelementptr inbounds %LSlice, ptr %t3318, i32 0, i32 2 %t3321 = getelementptr inbounds %LSlice, ptr %t3318, i32 0, i32 0 %t3322 = load i32, ptr %t3319 %t3323 = load i32, ptr %t3320 %t3324 = icmp sge i32 %t3322, %t3323 br i1 %t3324, label %grow751, label %put752 grow751: %t3325 = mul i32 %t3323, 2 %t3326 = icmp eq i32 %t3323, 0 %t3327 = select i1 %t3326, i32 8, i32 %t3325 %t3328 = getelementptr ptr, ptr null, i32 1 %t3329 = ptrtoint ptr %t3328 to i64 %t3330 = zext i32 %t3327 to i64 %t3331 = mul i64 %t3330, %t3329 %t3332 = load ptr, ptr %t3321 %t3333 = call ptr @realloc(ptr %t3332, i64 %t3331) store ptr %t3333, ptr %t3321 store i32 %t3327, ptr %t3320 br label %put752 put752: %t3334 = load ptr, ptr %t3321 %t3335 = getelementptr inbounds ptr, ptr %t3334, i32 %t3322 store ptr @.str5853, ptr %t3335 %t3336 = add i32 %t3322, 1 store i32 %t3336, ptr %t3319 %t3337 = load ptr, ptr %t285 %t3338 = getelementptr inbounds %LSlice, ptr %t3337, i32 0, i32 1 %t3339 = getelementptr inbounds %LSlice, ptr %t3337, i32 0, i32 2 %t3340 = getelementptr inbounds %LSlice, ptr %t3337, i32 0, i32 0 %t3341 = load i32, ptr %t3338 %t3342 = load i32, ptr %t3339 %t3343 = icmp sge i32 %t3341, %t3342 br i1 %t3343, label %grow753, label %put754 grow753: %t3344 = mul i32 %t3342, 2 %t3345 = icmp eq i32 %t3342, 0 %t3346 = select i1 %t3345, i32 8, i32 %t3344 %t3347 = getelementptr ptr, ptr null, i32 1 %t3348 = ptrtoint ptr %t3347 to i64 %t3349 = zext i32 %t3346 to i64 %t3350 = mul i64 %t3349, %t3348 %t3351 = load ptr, ptr %t3340 %t3352 = call ptr @realloc(ptr %t3351, i64 %t3350) store ptr %t3352, ptr %t3340 store i32 %t3346, ptr %t3339 br label %put754 put754: %t3353 = load ptr, ptr %t3340 %t3354 = getelementptr inbounds ptr, ptr %t3353, i32 %t3341 store ptr @.str5854, ptr %t3354 %t3355 = add i32 %t3341, 1 store i32 %t3355, ptr %t3338 br label %ifend746 ifend746: %t3356 = load ptr, ptr %t1 %t3357 = call i32 @fn_str_eq(ptr %t3356, ptr @.str5855) %t3358 = icmp ne i32 %t3357, 0 br i1 %t3358, label %then755, label %ifend757 then755: store ptr @.str5856, ptr %t278 br label %ifend757 ifend757: br label %ifend725 ifend725: %t3359 = load ptr, ptr %t0 %t3360 = call i32 @fn_str_eq(ptr %t3359, ptr @.str5857) %t3361 = icmp ne i32 %t3360, 0 br i1 %t3361, label %then758, label %ifend760 then758: %t3362 = load ptr, ptr %t1 %t3363 = call i32 @fn_str_eq(ptr %t3362, ptr @.str5858) %t3364 = icmp ne i32 %t3363, 0 br i1 %t3364, label %then761, label %ifend763 then761: store ptr @.str5859, ptr %t278 %t3365 = load ptr, ptr %t285 %t3366 = getelementptr inbounds %LSlice, ptr %t3365, i32 0, i32 1 %t3367 = getelementptr inbounds %LSlice, ptr %t3365, i32 0, i32 2 %t3368 = getelementptr inbounds %LSlice, ptr %t3365, i32 0, i32 0 %t3369 = load i32, ptr %t3366 %t3370 = load i32, ptr %t3367 %t3371 = icmp sge i32 %t3369, %t3370 br i1 %t3371, label %grow764, label %put765 grow764: %t3372 = mul i32 %t3370, 2 %t3373 = icmp eq i32 %t3370, 0 %t3374 = select i1 %t3373, i32 8, i32 %t3372 %t3375 = getelementptr ptr, ptr null, i32 1 %t3376 = ptrtoint ptr %t3375 to i64 %t3377 = zext i32 %t3374 to i64 %t3378 = mul i64 %t3377, %t3376 %t3379 = load ptr, ptr %t3368 %t3380 = call ptr @realloc(ptr %t3379, i64 %t3378) store ptr %t3380, ptr %t3368 store i32 %t3374, ptr %t3367 br label %put765 put765: %t3381 = load ptr, ptr %t3368 %t3382 = getelementptr inbounds ptr, ptr %t3381, i32 %t3369 store ptr @.str5860, ptr %t3382 %t3383 = add i32 %t3369, 1 store i32 %t3383, ptr %t3366 br label %ifend763 ifend763: %t3384 = load ptr, ptr %t1 %t3385 = call i32 @fn_str_eq(ptr %t3384, ptr @.str5861) %t3386 = icmp ne i32 %t3385, 0 br i1 %t3386, label %then766, label %ifend768 then766: store ptr @.str5862, ptr %t278 %t3387 = load ptr, ptr %t285 %t3388 = getelementptr inbounds %LSlice, ptr %t3387, i32 0, i32 1 %t3389 = getelementptr inbounds %LSlice, ptr %t3387, i32 0, i32 2 %t3390 = getelementptr inbounds %LSlice, ptr %t3387, i32 0, i32 0 %t3391 = load i32, ptr %t3388 %t3392 = load i32, ptr %t3389 %t3393 = icmp sge i32 %t3391, %t3392 br i1 %t3393, label %grow769, label %put770 grow769: %t3394 = mul i32 %t3392, 2 %t3395 = icmp eq i32 %t3392, 0 %t3396 = select i1 %t3395, i32 8, i32 %t3394 %t3397 = getelementptr ptr, ptr null, i32 1 %t3398 = ptrtoint ptr %t3397 to i64 %t3399 = zext i32 %t3396 to i64 %t3400 = mul i64 %t3399, %t3398 %t3401 = load ptr, ptr %t3390 %t3402 = call ptr @realloc(ptr %t3401, i64 %t3400) store ptr %t3402, ptr %t3390 store i32 %t3396, ptr %t3389 br label %put770 put770: %t3403 = load ptr, ptr %t3390 %t3404 = getelementptr inbounds ptr, ptr %t3403, i32 %t3391 store ptr @.str5863, ptr %t3404 %t3405 = add i32 %t3391, 1 store i32 %t3405, ptr %t3388 br label %ifend768 ifend768: %t3406 = load ptr, ptr %t1 %t3407 = call i32 @fn_str_eq(ptr %t3406, ptr @.str5864) %t3408 = icmp ne i32 %t3407, 0 br i1 %t3408, label %then771, label %ifend773 then771: store ptr @.str5865, ptr %t278 %t3409 = load ptr, ptr %t285 %t3410 = getelementptr inbounds %LSlice, ptr %t3409, i32 0, i32 1 %t3411 = getelementptr inbounds %LSlice, ptr %t3409, i32 0, i32 2 %t3412 = getelementptr inbounds %LSlice, ptr %t3409, i32 0, i32 0 %t3413 = load i32, ptr %t3410 %t3414 = load i32, ptr %t3411 %t3415 = icmp sge i32 %t3413, %t3414 br i1 %t3415, label %grow774, label %put775 grow774: %t3416 = mul i32 %t3414, 2 %t3417 = icmp eq i32 %t3414, 0 %t3418 = select i1 %t3417, i32 8, i32 %t3416 %t3419 = getelementptr ptr, ptr null, i32 1 %t3420 = ptrtoint ptr %t3419 to i64 %t3421 = zext i32 %t3418 to i64 %t3422 = mul i64 %t3421, %t3420 %t3423 = load ptr, ptr %t3412 %t3424 = call ptr @realloc(ptr %t3423, i64 %t3422) store ptr %t3424, ptr %t3412 store i32 %t3418, ptr %t3411 br label %put775 put775: %t3425 = load ptr, ptr %t3412 %t3426 = getelementptr inbounds ptr, ptr %t3425, i32 %t3413 store ptr @.str5866, ptr %t3426 %t3427 = add i32 %t3413, 1 store i32 %t3427, ptr %t3410 %t3428 = load ptr, ptr %t285 %t3429 = getelementptr inbounds %LSlice, ptr %t3428, i32 0, i32 1 %t3430 = getelementptr inbounds %LSlice, ptr %t3428, i32 0, i32 2 %t3431 = getelementptr inbounds %LSlice, ptr %t3428, i32 0, i32 0 %t3432 = load i32, ptr %t3429 %t3433 = load i32, ptr %t3430 %t3434 = icmp sge i32 %t3432, %t3433 br i1 %t3434, label %grow776, label %put777 grow776: %t3435 = mul i32 %t3433, 2 %t3436 = icmp eq i32 %t3433, 0 %t3437 = select i1 %t3436, i32 8, i32 %t3435 %t3438 = getelementptr ptr, ptr null, i32 1 %t3439 = ptrtoint ptr %t3438 to i64 %t3440 = zext i32 %t3437 to i64 %t3441 = mul i64 %t3440, %t3439 %t3442 = load ptr, ptr %t3431 %t3443 = call ptr @realloc(ptr %t3442, i64 %t3441) store ptr %t3443, ptr %t3431 store i32 %t3437, ptr %t3430 br label %put777 put777: %t3444 = load ptr, ptr %t3431 %t3445 = getelementptr inbounds ptr, ptr %t3444, i32 %t3432 store ptr @.str5867, ptr %t3445 %t3446 = add i32 %t3432, 1 store i32 %t3446, ptr %t3429 %t3447 = load ptr, ptr %t285 %t3448 = getelementptr inbounds %LSlice, ptr %t3447, i32 0, i32 1 %t3449 = getelementptr inbounds %LSlice, ptr %t3447, i32 0, i32 2 %t3450 = getelementptr inbounds %LSlice, ptr %t3447, i32 0, i32 0 %t3451 = load i32, ptr %t3448 %t3452 = load i32, ptr %t3449 %t3453 = icmp sge i32 %t3451, %t3452 br i1 %t3453, label %grow778, label %put779 grow778: %t3454 = mul i32 %t3452, 2 %t3455 = icmp eq i32 %t3452, 0 %t3456 = select i1 %t3455, i32 8, i32 %t3454 %t3457 = getelementptr ptr, ptr null, i32 1 %t3458 = ptrtoint ptr %t3457 to i64 %t3459 = zext i32 %t3456 to i64 %t3460 = mul i64 %t3459, %t3458 %t3461 = load ptr, ptr %t3450 %t3462 = call ptr @realloc(ptr %t3461, i64 %t3460) store ptr %t3462, ptr %t3450 store i32 %t3456, ptr %t3449 br label %put779 put779: %t3463 = load ptr, ptr %t3450 %t3464 = getelementptr inbounds ptr, ptr %t3463, i32 %t3451 store ptr @.str5868, ptr %t3464 %t3465 = add i32 %t3451, 1 store i32 %t3465, ptr %t3448 %t3466 = load ptr, ptr %t285 %t3467 = getelementptr inbounds %LSlice, ptr %t3466, i32 0, i32 1 %t3468 = getelementptr inbounds %LSlice, ptr %t3466, i32 0, i32 2 %t3469 = getelementptr inbounds %LSlice, ptr %t3466, i32 0, i32 0 %t3470 = load i32, ptr %t3467 %t3471 = load i32, ptr %t3468 %t3472 = icmp sge i32 %t3470, %t3471 br i1 %t3472, label %grow780, label %put781 grow780: %t3473 = mul i32 %t3471, 2 %t3474 = icmp eq i32 %t3471, 0 %t3475 = select i1 %t3474, i32 8, i32 %t3473 %t3476 = getelementptr ptr, ptr null, i32 1 %t3477 = ptrtoint ptr %t3476 to i64 %t3478 = zext i32 %t3475 to i64 %t3479 = mul i64 %t3478, %t3477 %t3480 = load ptr, ptr %t3469 %t3481 = call ptr @realloc(ptr %t3480, i64 %t3479) store ptr %t3481, ptr %t3469 store i32 %t3475, ptr %t3468 br label %put781 put781: %t3482 = load ptr, ptr %t3469 %t3483 = getelementptr inbounds ptr, ptr %t3482, i32 %t3470 store ptr @.str5869, ptr %t3483 %t3484 = add i32 %t3470, 1 store i32 %t3484, ptr %t3467 %t3485 = load ptr, ptr %t285 %t3486 = getelementptr inbounds %LSlice, ptr %t3485, i32 0, i32 1 %t3487 = getelementptr inbounds %LSlice, ptr %t3485, i32 0, i32 2 %t3488 = getelementptr inbounds %LSlice, ptr %t3485, i32 0, i32 0 %t3489 = load i32, ptr %t3486 %t3490 = load i32, ptr %t3487 %t3491 = icmp sge i32 %t3489, %t3490 br i1 %t3491, label %grow782, label %put783 grow782: %t3492 = mul i32 %t3490, 2 %t3493 = icmp eq i32 %t3490, 0 %t3494 = select i1 %t3493, i32 8, i32 %t3492 %t3495 = getelementptr ptr, ptr null, i32 1 %t3496 = ptrtoint ptr %t3495 to i64 %t3497 = zext i32 %t3494 to i64 %t3498 = mul i64 %t3497, %t3496 %t3499 = load ptr, ptr %t3488 %t3500 = call ptr @realloc(ptr %t3499, i64 %t3498) store ptr %t3500, ptr %t3488 store i32 %t3494, ptr %t3487 br label %put783 put783: %t3501 = load ptr, ptr %t3488 %t3502 = getelementptr inbounds ptr, ptr %t3501, i32 %t3489 store ptr @.str5870, ptr %t3502 %t3503 = add i32 %t3489, 1 store i32 %t3503, ptr %t3486 %t3504 = load ptr, ptr %t285 %t3505 = getelementptr inbounds %LSlice, ptr %t3504, i32 0, i32 1 %t3506 = getelementptr inbounds %LSlice, ptr %t3504, i32 0, i32 2 %t3507 = getelementptr inbounds %LSlice, ptr %t3504, i32 0, i32 0 %t3508 = load i32, ptr %t3505 %t3509 = load i32, ptr %t3506 %t3510 = icmp sge i32 %t3508, %t3509 br i1 %t3510, label %grow784, label %put785 grow784: %t3511 = mul i32 %t3509, 2 %t3512 = icmp eq i32 %t3509, 0 %t3513 = select i1 %t3512, i32 8, i32 %t3511 %t3514 = getelementptr ptr, ptr null, i32 1 %t3515 = ptrtoint ptr %t3514 to i64 %t3516 = zext i32 %t3513 to i64 %t3517 = mul i64 %t3516, %t3515 %t3518 = load ptr, ptr %t3507 %t3519 = call ptr @realloc(ptr %t3518, i64 %t3517) store ptr %t3519, ptr %t3507 store i32 %t3513, ptr %t3506 br label %put785 put785: %t3520 = load ptr, ptr %t3507 %t3521 = getelementptr inbounds ptr, ptr %t3520, i32 %t3508 store ptr @.str5871, ptr %t3521 %t3522 = add i32 %t3508, 1 store i32 %t3522, ptr %t3505 br label %ifend773 ifend773: %t3523 = load ptr, ptr %t1 %t3524 = call i32 @fn_str_eq(ptr %t3523, ptr @.str5872) %t3525 = icmp ne i32 %t3524, 0 br i1 %t3525, label %then786, label %ifend788 then786: store ptr @.str5873, ptr %t278 %t3526 = load ptr, ptr %t285 %t3527 = getelementptr inbounds %LSlice, ptr %t3526, i32 0, i32 1 %t3528 = getelementptr inbounds %LSlice, ptr %t3526, i32 0, i32 2 %t3529 = getelementptr inbounds %LSlice, ptr %t3526, i32 0, i32 0 %t3530 = load i32, ptr %t3527 %t3531 = load i32, ptr %t3528 %t3532 = icmp sge i32 %t3530, %t3531 br i1 %t3532, label %grow789, label %put790 grow789: %t3533 = mul i32 %t3531, 2 %t3534 = icmp eq i32 %t3531, 0 %t3535 = select i1 %t3534, i32 8, i32 %t3533 %t3536 = getelementptr ptr, ptr null, i32 1 %t3537 = ptrtoint ptr %t3536 to i64 %t3538 = zext i32 %t3535 to i64 %t3539 = mul i64 %t3538, %t3537 %t3540 = load ptr, ptr %t3529 %t3541 = call ptr @realloc(ptr %t3540, i64 %t3539) store ptr %t3541, ptr %t3529 store i32 %t3535, ptr %t3528 br label %put790 put790: %t3542 = load ptr, ptr %t3529 %t3543 = getelementptr inbounds ptr, ptr %t3542, i32 %t3530 store ptr @.str5874, ptr %t3543 %t3544 = add i32 %t3530, 1 store i32 %t3544, ptr %t3527 %t3545 = load ptr, ptr %t285 %t3546 = getelementptr inbounds %LSlice, ptr %t3545, i32 0, i32 1 %t3547 = getelementptr inbounds %LSlice, ptr %t3545, i32 0, i32 2 %t3548 = getelementptr inbounds %LSlice, ptr %t3545, i32 0, i32 0 %t3549 = load i32, ptr %t3546 %t3550 = load i32, ptr %t3547 %t3551 = icmp sge i32 %t3549, %t3550 br i1 %t3551, label %grow791, label %put792 grow791: %t3552 = mul i32 %t3550, 2 %t3553 = icmp eq i32 %t3550, 0 %t3554 = select i1 %t3553, i32 8, i32 %t3552 %t3555 = getelementptr ptr, ptr null, i32 1 %t3556 = ptrtoint ptr %t3555 to i64 %t3557 = zext i32 %t3554 to i64 %t3558 = mul i64 %t3557, %t3556 %t3559 = load ptr, ptr %t3548 %t3560 = call ptr @realloc(ptr %t3559, i64 %t3558) store ptr %t3560, ptr %t3548 store i32 %t3554, ptr %t3547 br label %put792 put792: %t3561 = load ptr, ptr %t3548 %t3562 = getelementptr inbounds ptr, ptr %t3561, i32 %t3549 store ptr @.str5875, ptr %t3562 %t3563 = add i32 %t3549, 1 store i32 %t3563, ptr %t3546 %t3564 = load ptr, ptr %t285 %t3565 = getelementptr inbounds %LSlice, ptr %t3564, i32 0, i32 1 %t3566 = getelementptr inbounds %LSlice, ptr %t3564, i32 0, i32 2 %t3567 = getelementptr inbounds %LSlice, ptr %t3564, i32 0, i32 0 %t3568 = load i32, ptr %t3565 %t3569 = load i32, ptr %t3566 %t3570 = icmp sge i32 %t3568, %t3569 br i1 %t3570, label %grow793, label %put794 grow793: %t3571 = mul i32 %t3569, 2 %t3572 = icmp eq i32 %t3569, 0 %t3573 = select i1 %t3572, i32 8, i32 %t3571 %t3574 = getelementptr ptr, ptr null, i32 1 %t3575 = ptrtoint ptr %t3574 to i64 %t3576 = zext i32 %t3573 to i64 %t3577 = mul i64 %t3576, %t3575 %t3578 = load ptr, ptr %t3567 %t3579 = call ptr @realloc(ptr %t3578, i64 %t3577) store ptr %t3579, ptr %t3567 store i32 %t3573, ptr %t3566 br label %put794 put794: %t3580 = load ptr, ptr %t3567 %t3581 = getelementptr inbounds ptr, ptr %t3580, i32 %t3568 store ptr @.str5876, ptr %t3581 %t3582 = add i32 %t3568, 1 store i32 %t3582, ptr %t3565 %t3583 = load ptr, ptr %t285 %t3584 = getelementptr inbounds %LSlice, ptr %t3583, i32 0, i32 1 %t3585 = getelementptr inbounds %LSlice, ptr %t3583, i32 0, i32 2 %t3586 = getelementptr inbounds %LSlice, ptr %t3583, i32 0, i32 0 %t3587 = load i32, ptr %t3584 %t3588 = load i32, ptr %t3585 %t3589 = icmp sge i32 %t3587, %t3588 br i1 %t3589, label %grow795, label %put796 grow795: %t3590 = mul i32 %t3588, 2 %t3591 = icmp eq i32 %t3588, 0 %t3592 = select i1 %t3591, i32 8, i32 %t3590 %t3593 = getelementptr ptr, ptr null, i32 1 %t3594 = ptrtoint ptr %t3593 to i64 %t3595 = zext i32 %t3592 to i64 %t3596 = mul i64 %t3595, %t3594 %t3597 = load ptr, ptr %t3586 %t3598 = call ptr @realloc(ptr %t3597, i64 %t3596) store ptr %t3598, ptr %t3586 store i32 %t3592, ptr %t3585 br label %put796 put796: %t3599 = load ptr, ptr %t3586 %t3600 = getelementptr inbounds ptr, ptr %t3599, i32 %t3587 store ptr @.str5877, ptr %t3600 %t3601 = add i32 %t3587, 1 store i32 %t3601, ptr %t3584 %t3602 = load ptr, ptr %t285 %t3603 = getelementptr inbounds %LSlice, ptr %t3602, i32 0, i32 1 %t3604 = getelementptr inbounds %LSlice, ptr %t3602, i32 0, i32 2 %t3605 = getelementptr inbounds %LSlice, ptr %t3602, i32 0, i32 0 %t3606 = load i32, ptr %t3603 %t3607 = load i32, ptr %t3604 %t3608 = icmp sge i32 %t3606, %t3607 br i1 %t3608, label %grow797, label %put798 grow797: %t3609 = mul i32 %t3607, 2 %t3610 = icmp eq i32 %t3607, 0 %t3611 = select i1 %t3610, i32 8, i32 %t3609 %t3612 = getelementptr ptr, ptr null, i32 1 %t3613 = ptrtoint ptr %t3612 to i64 %t3614 = zext i32 %t3611 to i64 %t3615 = mul i64 %t3614, %t3613 %t3616 = load ptr, ptr %t3605 %t3617 = call ptr @realloc(ptr %t3616, i64 %t3615) store ptr %t3617, ptr %t3605 store i32 %t3611, ptr %t3604 br label %put798 put798: %t3618 = load ptr, ptr %t3605 %t3619 = getelementptr inbounds ptr, ptr %t3618, i32 %t3606 store ptr @.str5878, ptr %t3619 %t3620 = add i32 %t3606, 1 store i32 %t3620, ptr %t3603 %t3621 = load ptr, ptr %t285 %t3622 = getelementptr inbounds %LSlice, ptr %t3621, i32 0, i32 1 %t3623 = getelementptr inbounds %LSlice, ptr %t3621, i32 0, i32 2 %t3624 = getelementptr inbounds %LSlice, ptr %t3621, i32 0, i32 0 %t3625 = load i32, ptr %t3622 %t3626 = load i32, ptr %t3623 %t3627 = icmp sge i32 %t3625, %t3626 br i1 %t3627, label %grow799, label %put800 grow799: %t3628 = mul i32 %t3626, 2 %t3629 = icmp eq i32 %t3626, 0 %t3630 = select i1 %t3629, i32 8, i32 %t3628 %t3631 = getelementptr ptr, ptr null, i32 1 %t3632 = ptrtoint ptr %t3631 to i64 %t3633 = zext i32 %t3630 to i64 %t3634 = mul i64 %t3633, %t3632 %t3635 = load ptr, ptr %t3624 %t3636 = call ptr @realloc(ptr %t3635, i64 %t3634) store ptr %t3636, ptr %t3624 store i32 %t3630, ptr %t3623 br label %put800 put800: %t3637 = load ptr, ptr %t3624 %t3638 = getelementptr inbounds ptr, ptr %t3637, i32 %t3625 store ptr @.str5879, ptr %t3638 %t3639 = add i32 %t3625, 1 store i32 %t3639, ptr %t3622 %t3640 = load ptr, ptr %t285 %t3641 = getelementptr inbounds %LSlice, ptr %t3640, i32 0, i32 1 %t3642 = getelementptr inbounds %LSlice, ptr %t3640, i32 0, i32 2 %t3643 = getelementptr inbounds %LSlice, ptr %t3640, i32 0, i32 0 %t3644 = load i32, ptr %t3641 %t3645 = load i32, ptr %t3642 %t3646 = icmp sge i32 %t3644, %t3645 br i1 %t3646, label %grow801, label %put802 grow801: %t3647 = mul i32 %t3645, 2 %t3648 = icmp eq i32 %t3645, 0 %t3649 = select i1 %t3648, i32 8, i32 %t3647 %t3650 = getelementptr ptr, ptr null, i32 1 %t3651 = ptrtoint ptr %t3650 to i64 %t3652 = zext i32 %t3649 to i64 %t3653 = mul i64 %t3652, %t3651 %t3654 = load ptr, ptr %t3643 %t3655 = call ptr @realloc(ptr %t3654, i64 %t3653) store ptr %t3655, ptr %t3643 store i32 %t3649, ptr %t3642 br label %put802 put802: %t3656 = load ptr, ptr %t3643 %t3657 = getelementptr inbounds ptr, ptr %t3656, i32 %t3644 store ptr @.str5880, ptr %t3657 %t3658 = add i32 %t3644, 1 store i32 %t3658, ptr %t3641 br label %ifend788 ifend788: br label %ifend760 ifend760: %t3659 = load ptr, ptr %t0 %t3660 = call i32 @fn_str_eq(ptr %t3659, ptr @.str5881) %t3661 = icmp ne i32 %t3660, 0 br i1 %t3661, label %then803, label %ifend805 then803: %t3662 = load ptr, ptr %t1 %t3663 = call i32 @fn_str_eq(ptr %t3662, ptr @.str5882) %t3664 = icmp ne i32 %t3663, 0 br i1 %t3664, label %then806, label %ifend808 then806: store ptr @.str5883, ptr %t278 %t3665 = load ptr, ptr %t285 %t3666 = getelementptr inbounds %LSlice, ptr %t3665, i32 0, i32 1 %t3667 = getelementptr inbounds %LSlice, ptr %t3665, i32 0, i32 2 %t3668 = getelementptr inbounds %LSlice, ptr %t3665, i32 0, i32 0 %t3669 = load i32, ptr %t3666 %t3670 = load i32, ptr %t3667 %t3671 = icmp sge i32 %t3669, %t3670 br i1 %t3671, label %grow809, label %put810 grow809: %t3672 = mul i32 %t3670, 2 %t3673 = icmp eq i32 %t3670, 0 %t3674 = select i1 %t3673, i32 8, i32 %t3672 %t3675 = getelementptr ptr, ptr null, i32 1 %t3676 = ptrtoint ptr %t3675 to i64 %t3677 = zext i32 %t3674 to i64 %t3678 = mul i64 %t3677, %t3676 %t3679 = load ptr, ptr %t3668 %t3680 = call ptr @realloc(ptr %t3679, i64 %t3678) store ptr %t3680, ptr %t3668 store i32 %t3674, ptr %t3667 br label %put810 put810: %t3681 = load ptr, ptr %t3668 %t3682 = getelementptr inbounds ptr, ptr %t3681, i32 %t3669 store ptr @.str5884, ptr %t3682 %t3683 = add i32 %t3669, 1 store i32 %t3683, ptr %t3666 br label %ifend808 ifend808: %t3684 = load ptr, ptr %t1 %t3685 = call i32 @fn_str_eq(ptr %t3684, ptr @.str5885) %t3686 = icmp ne i32 %t3685, 0 br i1 %t3686, label %then811, label %ifend813 then811: store ptr @.str5886, ptr %t278 %t3687 = load ptr, ptr %t285 %t3688 = getelementptr inbounds %LSlice, ptr %t3687, i32 0, i32 1 %t3689 = getelementptr inbounds %LSlice, ptr %t3687, i32 0, i32 2 %t3690 = getelementptr inbounds %LSlice, ptr %t3687, i32 0, i32 0 %t3691 = load i32, ptr %t3688 %t3692 = load i32, ptr %t3689 %t3693 = icmp sge i32 %t3691, %t3692 br i1 %t3693, label %grow814, label %put815 grow814: %t3694 = mul i32 %t3692, 2 %t3695 = icmp eq i32 %t3692, 0 %t3696 = select i1 %t3695, i32 8, i32 %t3694 %t3697 = getelementptr ptr, ptr null, i32 1 %t3698 = ptrtoint ptr %t3697 to i64 %t3699 = zext i32 %t3696 to i64 %t3700 = mul i64 %t3699, %t3698 %t3701 = load ptr, ptr %t3690 %t3702 = call ptr @realloc(ptr %t3701, i64 %t3700) store ptr %t3702, ptr %t3690 store i32 %t3696, ptr %t3689 br label %put815 put815: %t3703 = load ptr, ptr %t3690 %t3704 = getelementptr inbounds ptr, ptr %t3703, i32 %t3691 store ptr @.str5887, ptr %t3704 %t3705 = add i32 %t3691, 1 store i32 %t3705, ptr %t3688 %t3706 = load ptr, ptr %t285 %t3707 = getelementptr inbounds %LSlice, ptr %t3706, i32 0, i32 1 %t3708 = getelementptr inbounds %LSlice, ptr %t3706, i32 0, i32 2 %t3709 = getelementptr inbounds %LSlice, ptr %t3706, i32 0, i32 0 %t3710 = load i32, ptr %t3707 %t3711 = load i32, ptr %t3708 %t3712 = icmp sge i32 %t3710, %t3711 br i1 %t3712, label %grow816, label %put817 grow816: %t3713 = mul i32 %t3711, 2 %t3714 = icmp eq i32 %t3711, 0 %t3715 = select i1 %t3714, i32 8, i32 %t3713 %t3716 = getelementptr ptr, ptr null, i32 1 %t3717 = ptrtoint ptr %t3716 to i64 %t3718 = zext i32 %t3715 to i64 %t3719 = mul i64 %t3718, %t3717 %t3720 = load ptr, ptr %t3709 %t3721 = call ptr @realloc(ptr %t3720, i64 %t3719) store ptr %t3721, ptr %t3709 store i32 %t3715, ptr %t3708 br label %put817 put817: %t3722 = load ptr, ptr %t3709 %t3723 = getelementptr inbounds ptr, ptr %t3722, i32 %t3710 store ptr @.str5888, ptr %t3723 %t3724 = add i32 %t3710, 1 store i32 %t3724, ptr %t3707 br label %ifend813 ifend813: %t3725 = load ptr, ptr %t1 %t3726 = call i32 @fn_str_eq(ptr %t3725, ptr @.str5889) %t3727 = icmp ne i32 %t3726, 0 br i1 %t3727, label %then818, label %ifend820 then818: store ptr @.str5890, ptr %t278 br label %ifend820 ifend820: %t3728 = load ptr, ptr %t1 %t3729 = call i32 @fn_str_eq(ptr %t3728, ptr @.str5891) %t3730 = icmp ne i32 %t3729, 0 br i1 %t3730, label %then821, label %ifend823 then821: store ptr @.str5892, ptr %t278 %t3731 = load ptr, ptr %t285 %t3732 = getelementptr inbounds %LSlice, ptr %t3731, i32 0, i32 1 %t3733 = getelementptr inbounds %LSlice, ptr %t3731, i32 0, i32 2 %t3734 = getelementptr inbounds %LSlice, ptr %t3731, i32 0, i32 0 %t3735 = load i32, ptr %t3732 %t3736 = load i32, ptr %t3733 %t3737 = icmp sge i32 %t3735, %t3736 br i1 %t3737, label %grow824, label %put825 grow824: %t3738 = mul i32 %t3736, 2 %t3739 = icmp eq i32 %t3736, 0 %t3740 = select i1 %t3739, i32 8, i32 %t3738 %t3741 = getelementptr ptr, ptr null, i32 1 %t3742 = ptrtoint ptr %t3741 to i64 %t3743 = zext i32 %t3740 to i64 %t3744 = mul i64 %t3743, %t3742 %t3745 = load ptr, ptr %t3734 %t3746 = call ptr @realloc(ptr %t3745, i64 %t3744) store ptr %t3746, ptr %t3734 store i32 %t3740, ptr %t3733 br label %put825 put825: %t3747 = load ptr, ptr %t3734 %t3748 = getelementptr inbounds ptr, ptr %t3747, i32 %t3735 store ptr @.str5893, ptr %t3748 %t3749 = add i32 %t3735, 1 store i32 %t3749, ptr %t3732 br label %ifend823 ifend823: %t3750 = load ptr, ptr %t1 %t3751 = call i32 @fn_str_eq(ptr %t3750, ptr @.str5894) %t3752 = icmp ne i32 %t3751, 0 br i1 %t3752, label %then826, label %ifend828 then826: store ptr @.str5895, ptr %t278 %t3753 = load ptr, ptr %t285 %t3754 = getelementptr inbounds %LSlice, ptr %t3753, i32 0, i32 1 %t3755 = getelementptr inbounds %LSlice, ptr %t3753, i32 0, i32 2 %t3756 = getelementptr inbounds %LSlice, ptr %t3753, i32 0, i32 0 %t3757 = load i32, ptr %t3754 %t3758 = load i32, ptr %t3755 %t3759 = icmp sge i32 %t3757, %t3758 br i1 %t3759, label %grow829, label %put830 grow829: %t3760 = mul i32 %t3758, 2 %t3761 = icmp eq i32 %t3758, 0 %t3762 = select i1 %t3761, i32 8, i32 %t3760 %t3763 = getelementptr ptr, ptr null, i32 1 %t3764 = ptrtoint ptr %t3763 to i64 %t3765 = zext i32 %t3762 to i64 %t3766 = mul i64 %t3765, %t3764 %t3767 = load ptr, ptr %t3756 %t3768 = call ptr @realloc(ptr %t3767, i64 %t3766) store ptr %t3768, ptr %t3756 store i32 %t3762, ptr %t3755 br label %put830 put830: %t3769 = load ptr, ptr %t3756 %t3770 = getelementptr inbounds ptr, ptr %t3769, i32 %t3757 store ptr @.str5896, ptr %t3770 %t3771 = add i32 %t3757, 1 store i32 %t3771, ptr %t3754 br label %ifend828 ifend828: %t3772 = load ptr, ptr %t1 %t3773 = call i32 @fn_str_eq(ptr %t3772, ptr @.str5897) %t3774 = icmp ne i32 %t3773, 0 br i1 %t3774, label %then831, label %ifend833 then831: store ptr @.str5898, ptr %t278 %t3775 = load ptr, ptr %t285 %t3776 = getelementptr inbounds %LSlice, ptr %t3775, i32 0, i32 1 %t3777 = getelementptr inbounds %LSlice, ptr %t3775, i32 0, i32 2 %t3778 = getelementptr inbounds %LSlice, ptr %t3775, i32 0, i32 0 %t3779 = load i32, ptr %t3776 %t3780 = load i32, ptr %t3777 %t3781 = icmp sge i32 %t3779, %t3780 br i1 %t3781, label %grow834, label %put835 grow834: %t3782 = mul i32 %t3780, 2 %t3783 = icmp eq i32 %t3780, 0 %t3784 = select i1 %t3783, i32 8, i32 %t3782 %t3785 = getelementptr ptr, ptr null, i32 1 %t3786 = ptrtoint ptr %t3785 to i64 %t3787 = zext i32 %t3784 to i64 %t3788 = mul i64 %t3787, %t3786 %t3789 = load ptr, ptr %t3778 %t3790 = call ptr @realloc(ptr %t3789, i64 %t3788) store ptr %t3790, ptr %t3778 store i32 %t3784, ptr %t3777 br label %put835 put835: %t3791 = load ptr, ptr %t3778 %t3792 = getelementptr inbounds ptr, ptr %t3791, i32 %t3779 store ptr @.str5899, ptr %t3792 %t3793 = add i32 %t3779, 1 store i32 %t3793, ptr %t3776 %t3794 = load ptr, ptr %t285 %t3795 = getelementptr inbounds %LSlice, ptr %t3794, i32 0, i32 1 %t3796 = getelementptr inbounds %LSlice, ptr %t3794, i32 0, i32 2 %t3797 = getelementptr inbounds %LSlice, ptr %t3794, i32 0, i32 0 %t3798 = load i32, ptr %t3795 %t3799 = load i32, ptr %t3796 %t3800 = icmp sge i32 %t3798, %t3799 br i1 %t3800, label %grow836, label %put837 grow836: %t3801 = mul i32 %t3799, 2 %t3802 = icmp eq i32 %t3799, 0 %t3803 = select i1 %t3802, i32 8, i32 %t3801 %t3804 = getelementptr ptr, ptr null, i32 1 %t3805 = ptrtoint ptr %t3804 to i64 %t3806 = zext i32 %t3803 to i64 %t3807 = mul i64 %t3806, %t3805 %t3808 = load ptr, ptr %t3797 %t3809 = call ptr @realloc(ptr %t3808, i64 %t3807) store ptr %t3809, ptr %t3797 store i32 %t3803, ptr %t3796 br label %put837 put837: %t3810 = load ptr, ptr %t3797 %t3811 = getelementptr inbounds ptr, ptr %t3810, i32 %t3798 store ptr @.str5900, ptr %t3811 %t3812 = add i32 %t3798, 1 store i32 %t3812, ptr %t3795 br label %ifend833 ifend833: %t3813 = load ptr, ptr %t1 %t3814 = call i32 @fn_str_eq(ptr %t3813, ptr @.str5901) %t3815 = icmp ne i32 %t3814, 0 br i1 %t3815, label %then838, label %ifend840 then838: store ptr @.str5902, ptr %t278 %t3816 = load ptr, ptr %t285 %t3817 = getelementptr inbounds %LSlice, ptr %t3816, i32 0, i32 1 %t3818 = getelementptr inbounds %LSlice, ptr %t3816, i32 0, i32 2 %t3819 = getelementptr inbounds %LSlice, ptr %t3816, i32 0, i32 0 %t3820 = load i32, ptr %t3817 %t3821 = load i32, ptr %t3818 %t3822 = icmp sge i32 %t3820, %t3821 br i1 %t3822, label %grow841, label %put842 grow841: %t3823 = mul i32 %t3821, 2 %t3824 = icmp eq i32 %t3821, 0 %t3825 = select i1 %t3824, i32 8, i32 %t3823 %t3826 = getelementptr ptr, ptr null, i32 1 %t3827 = ptrtoint ptr %t3826 to i64 %t3828 = zext i32 %t3825 to i64 %t3829 = mul i64 %t3828, %t3827 %t3830 = load ptr, ptr %t3819 %t3831 = call ptr @realloc(ptr %t3830, i64 %t3829) store ptr %t3831, ptr %t3819 store i32 %t3825, ptr %t3818 br label %put842 put842: %t3832 = load ptr, ptr %t3819 %t3833 = getelementptr inbounds ptr, ptr %t3832, i32 %t3820 store ptr @.str5903, ptr %t3833 %t3834 = add i32 %t3820, 1 store i32 %t3834, ptr %t3817 %t3835 = load ptr, ptr %t285 %t3836 = getelementptr inbounds %LSlice, ptr %t3835, i32 0, i32 1 %t3837 = getelementptr inbounds %LSlice, ptr %t3835, i32 0, i32 2 %t3838 = getelementptr inbounds %LSlice, ptr %t3835, i32 0, i32 0 %t3839 = load i32, ptr %t3836 %t3840 = load i32, ptr %t3837 %t3841 = icmp sge i32 %t3839, %t3840 br i1 %t3841, label %grow843, label %put844 grow843: %t3842 = mul i32 %t3840, 2 %t3843 = icmp eq i32 %t3840, 0 %t3844 = select i1 %t3843, i32 8, i32 %t3842 %t3845 = getelementptr ptr, ptr null, i32 1 %t3846 = ptrtoint ptr %t3845 to i64 %t3847 = zext i32 %t3844 to i64 %t3848 = mul i64 %t3847, %t3846 %t3849 = load ptr, ptr %t3838 %t3850 = call ptr @realloc(ptr %t3849, i64 %t3848) store ptr %t3850, ptr %t3838 store i32 %t3844, ptr %t3837 br label %put844 put844: %t3851 = load ptr, ptr %t3838 %t3852 = getelementptr inbounds ptr, ptr %t3851, i32 %t3839 store ptr @.str5904, ptr %t3852 %t3853 = add i32 %t3839, 1 store i32 %t3853, ptr %t3836 br label %ifend840 ifend840: %t3854 = load ptr, ptr %t1 %t3855 = call i32 @fn_str_eq(ptr %t3854, ptr @.str5905) %t3856 = icmp ne i32 %t3855, 0 br i1 %t3856, label %then845, label %ifend847 then845: store ptr @.str5906, ptr %t278 %t3857 = load ptr, ptr %t285 %t3858 = getelementptr inbounds %LSlice, ptr %t3857, i32 0, i32 1 %t3859 = getelementptr inbounds %LSlice, ptr %t3857, i32 0, i32 2 %t3860 = getelementptr inbounds %LSlice, ptr %t3857, i32 0, i32 0 %t3861 = load i32, ptr %t3858 %t3862 = load i32, ptr %t3859 %t3863 = icmp sge i32 %t3861, %t3862 br i1 %t3863, label %grow848, label %put849 grow848: %t3864 = mul i32 %t3862, 2 %t3865 = icmp eq i32 %t3862, 0 %t3866 = select i1 %t3865, i32 8, i32 %t3864 %t3867 = getelementptr ptr, ptr null, i32 1 %t3868 = ptrtoint ptr %t3867 to i64 %t3869 = zext i32 %t3866 to i64 %t3870 = mul i64 %t3869, %t3868 %t3871 = load ptr, ptr %t3860 %t3872 = call ptr @realloc(ptr %t3871, i64 %t3870) store ptr %t3872, ptr %t3860 store i32 %t3866, ptr %t3859 br label %put849 put849: %t3873 = load ptr, ptr %t3860 %t3874 = getelementptr inbounds ptr, ptr %t3873, i32 %t3861 store ptr @.str5907, ptr %t3874 %t3875 = add i32 %t3861, 1 store i32 %t3875, ptr %t3858 %t3876 = load ptr, ptr %t285 %t3877 = getelementptr inbounds %LSlice, ptr %t3876, i32 0, i32 1 %t3878 = getelementptr inbounds %LSlice, ptr %t3876, i32 0, i32 2 %t3879 = getelementptr inbounds %LSlice, ptr %t3876, i32 0, i32 0 %t3880 = load i32, ptr %t3877 %t3881 = load i32, ptr %t3878 %t3882 = icmp sge i32 %t3880, %t3881 br i1 %t3882, label %grow850, label %put851 grow850: %t3883 = mul i32 %t3881, 2 %t3884 = icmp eq i32 %t3881, 0 %t3885 = select i1 %t3884, i32 8, i32 %t3883 %t3886 = getelementptr ptr, ptr null, i32 1 %t3887 = ptrtoint ptr %t3886 to i64 %t3888 = zext i32 %t3885 to i64 %t3889 = mul i64 %t3888, %t3887 %t3890 = load ptr, ptr %t3879 %t3891 = call ptr @realloc(ptr %t3890, i64 %t3889) store ptr %t3891, ptr %t3879 store i32 %t3885, ptr %t3878 br label %put851 put851: %t3892 = load ptr, ptr %t3879 %t3893 = getelementptr inbounds ptr, ptr %t3892, i32 %t3880 store ptr @.str5908, ptr %t3893 %t3894 = add i32 %t3880, 1 store i32 %t3894, ptr %t3877 %t3895 = load ptr, ptr %t285 %t3896 = getelementptr inbounds %LSlice, ptr %t3895, i32 0, i32 1 %t3897 = getelementptr inbounds %LSlice, ptr %t3895, i32 0, i32 2 %t3898 = getelementptr inbounds %LSlice, ptr %t3895, i32 0, i32 0 %t3899 = load i32, ptr %t3896 %t3900 = load i32, ptr %t3897 %t3901 = icmp sge i32 %t3899, %t3900 br i1 %t3901, label %grow852, label %put853 grow852: %t3902 = mul i32 %t3900, 2 %t3903 = icmp eq i32 %t3900, 0 %t3904 = select i1 %t3903, i32 8, i32 %t3902 %t3905 = getelementptr ptr, ptr null, i32 1 %t3906 = ptrtoint ptr %t3905 to i64 %t3907 = zext i32 %t3904 to i64 %t3908 = mul i64 %t3907, %t3906 %t3909 = load ptr, ptr %t3898 %t3910 = call ptr @realloc(ptr %t3909, i64 %t3908) store ptr %t3910, ptr %t3898 store i32 %t3904, ptr %t3897 br label %put853 put853: %t3911 = load ptr, ptr %t3898 %t3912 = getelementptr inbounds ptr, ptr %t3911, i32 %t3899 store ptr @.str5909, ptr %t3912 %t3913 = add i32 %t3899, 1 store i32 %t3913, ptr %t3896 br label %ifend847 ifend847: %t3914 = load ptr, ptr %t1 %t3915 = call i32 @fn_str_eq(ptr %t3914, ptr @.str5910) %t3916 = icmp ne i32 %t3915, 0 br i1 %t3916, label %then854, label %ifend856 then854: store ptr @.str5911, ptr %t278 %t3917 = load ptr, ptr %t285 %t3918 = getelementptr inbounds %LSlice, ptr %t3917, i32 0, i32 1 %t3919 = getelementptr inbounds %LSlice, ptr %t3917, i32 0, i32 2 %t3920 = getelementptr inbounds %LSlice, ptr %t3917, i32 0, i32 0 %t3921 = load i32, ptr %t3918 %t3922 = load i32, ptr %t3919 %t3923 = icmp sge i32 %t3921, %t3922 br i1 %t3923, label %grow857, label %put858 grow857: %t3924 = mul i32 %t3922, 2 %t3925 = icmp eq i32 %t3922, 0 %t3926 = select i1 %t3925, i32 8, i32 %t3924 %t3927 = getelementptr ptr, ptr null, i32 1 %t3928 = ptrtoint ptr %t3927 to i64 %t3929 = zext i32 %t3926 to i64 %t3930 = mul i64 %t3929, %t3928 %t3931 = load ptr, ptr %t3920 %t3932 = call ptr @realloc(ptr %t3931, i64 %t3930) store ptr %t3932, ptr %t3920 store i32 %t3926, ptr %t3919 br label %put858 put858: %t3933 = load ptr, ptr %t3920 %t3934 = getelementptr inbounds ptr, ptr %t3933, i32 %t3921 store ptr @.str5912, ptr %t3934 %t3935 = add i32 %t3921, 1 store i32 %t3935, ptr %t3918 %t3936 = load ptr, ptr %t285 %t3937 = getelementptr inbounds %LSlice, ptr %t3936, i32 0, i32 1 %t3938 = getelementptr inbounds %LSlice, ptr %t3936, i32 0, i32 2 %t3939 = getelementptr inbounds %LSlice, ptr %t3936, i32 0, i32 0 %t3940 = load i32, ptr %t3937 %t3941 = load i32, ptr %t3938 %t3942 = icmp sge i32 %t3940, %t3941 br i1 %t3942, label %grow859, label %put860 grow859: %t3943 = mul i32 %t3941, 2 %t3944 = icmp eq i32 %t3941, 0 %t3945 = select i1 %t3944, i32 8, i32 %t3943 %t3946 = getelementptr ptr, ptr null, i32 1 %t3947 = ptrtoint ptr %t3946 to i64 %t3948 = zext i32 %t3945 to i64 %t3949 = mul i64 %t3948, %t3947 %t3950 = load ptr, ptr %t3939 %t3951 = call ptr @realloc(ptr %t3950, i64 %t3949) store ptr %t3951, ptr %t3939 store i32 %t3945, ptr %t3938 br label %put860 put860: %t3952 = load ptr, ptr %t3939 %t3953 = getelementptr inbounds ptr, ptr %t3952, i32 %t3940 store ptr @.str5913, ptr %t3953 %t3954 = add i32 %t3940, 1 store i32 %t3954, ptr %t3937 %t3955 = load ptr, ptr %t285 %t3956 = getelementptr inbounds %LSlice, ptr %t3955, i32 0, i32 1 %t3957 = getelementptr inbounds %LSlice, ptr %t3955, i32 0, i32 2 %t3958 = getelementptr inbounds %LSlice, ptr %t3955, i32 0, i32 0 %t3959 = load i32, ptr %t3956 %t3960 = load i32, ptr %t3957 %t3961 = icmp sge i32 %t3959, %t3960 br i1 %t3961, label %grow861, label %put862 grow861: %t3962 = mul i32 %t3960, 2 %t3963 = icmp eq i32 %t3960, 0 %t3964 = select i1 %t3963, i32 8, i32 %t3962 %t3965 = getelementptr ptr, ptr null, i32 1 %t3966 = ptrtoint ptr %t3965 to i64 %t3967 = zext i32 %t3964 to i64 %t3968 = mul i64 %t3967, %t3966 %t3969 = load ptr, ptr %t3958 %t3970 = call ptr @realloc(ptr %t3969, i64 %t3968) store ptr %t3970, ptr %t3958 store i32 %t3964, ptr %t3957 br label %put862 put862: %t3971 = load ptr, ptr %t3958 %t3972 = getelementptr inbounds ptr, ptr %t3971, i32 %t3959 store ptr @.str5914, ptr %t3972 %t3973 = add i32 %t3959, 1 store i32 %t3973, ptr %t3956 %t3974 = load ptr, ptr %t285 %t3975 = getelementptr inbounds %LSlice, ptr %t3974, i32 0, i32 1 %t3976 = getelementptr inbounds %LSlice, ptr %t3974, i32 0, i32 2 %t3977 = getelementptr inbounds %LSlice, ptr %t3974, i32 0, i32 0 %t3978 = load i32, ptr %t3975 %t3979 = load i32, ptr %t3976 %t3980 = icmp sge i32 %t3978, %t3979 br i1 %t3980, label %grow863, label %put864 grow863: %t3981 = mul i32 %t3979, 2 %t3982 = icmp eq i32 %t3979, 0 %t3983 = select i1 %t3982, i32 8, i32 %t3981 %t3984 = getelementptr ptr, ptr null, i32 1 %t3985 = ptrtoint ptr %t3984 to i64 %t3986 = zext i32 %t3983 to i64 %t3987 = mul i64 %t3986, %t3985 %t3988 = load ptr, ptr %t3977 %t3989 = call ptr @realloc(ptr %t3988, i64 %t3987) store ptr %t3989, ptr %t3977 store i32 %t3983, ptr %t3976 br label %put864 put864: %t3990 = load ptr, ptr %t3977 %t3991 = getelementptr inbounds ptr, ptr %t3990, i32 %t3978 store ptr @.str5915, ptr %t3991 %t3992 = add i32 %t3978, 1 store i32 %t3992, ptr %t3975 br label %ifend856 ifend856: %t3993 = load ptr, ptr %t1 %t3994 = call i32 @fn_str_eq(ptr %t3993, ptr @.str5916) %t3995 = icmp ne i32 %t3994, 0 br i1 %t3995, label %then865, label %ifend867 then865: store ptr @.str5917, ptr %t278 %t3996 = load ptr, ptr %t285 %t3997 = getelementptr inbounds %LSlice, ptr %t3996, i32 0, i32 1 %t3998 = getelementptr inbounds %LSlice, ptr %t3996, i32 0, i32 2 %t3999 = getelementptr inbounds %LSlice, ptr %t3996, i32 0, i32 0 %t4000 = load i32, ptr %t3997 %t4001 = load i32, ptr %t3998 %t4002 = icmp sge i32 %t4000, %t4001 br i1 %t4002, label %grow868, label %put869 grow868: %t4003 = mul i32 %t4001, 2 %t4004 = icmp eq i32 %t4001, 0 %t4005 = select i1 %t4004, i32 8, i32 %t4003 %t4006 = getelementptr ptr, ptr null, i32 1 %t4007 = ptrtoint ptr %t4006 to i64 %t4008 = zext i32 %t4005 to i64 %t4009 = mul i64 %t4008, %t4007 %t4010 = load ptr, ptr %t3999 %t4011 = call ptr @realloc(ptr %t4010, i64 %t4009) store ptr %t4011, ptr %t3999 store i32 %t4005, ptr %t3998 br label %put869 put869: %t4012 = load ptr, ptr %t3999 %t4013 = getelementptr inbounds ptr, ptr %t4012, i32 %t4000 store ptr @.str5918, ptr %t4013 %t4014 = add i32 %t4000, 1 store i32 %t4014, ptr %t3997 %t4015 = load ptr, ptr %t285 %t4016 = getelementptr inbounds %LSlice, ptr %t4015, i32 0, i32 1 %t4017 = getelementptr inbounds %LSlice, ptr %t4015, i32 0, i32 2 %t4018 = getelementptr inbounds %LSlice, ptr %t4015, i32 0, i32 0 %t4019 = load i32, ptr %t4016 %t4020 = load i32, ptr %t4017 %t4021 = icmp sge i32 %t4019, %t4020 br i1 %t4021, label %grow870, label %put871 grow870: %t4022 = mul i32 %t4020, 2 %t4023 = icmp eq i32 %t4020, 0 %t4024 = select i1 %t4023, i32 8, i32 %t4022 %t4025 = getelementptr ptr, ptr null, i32 1 %t4026 = ptrtoint ptr %t4025 to i64 %t4027 = zext i32 %t4024 to i64 %t4028 = mul i64 %t4027, %t4026 %t4029 = load ptr, ptr %t4018 %t4030 = call ptr @realloc(ptr %t4029, i64 %t4028) store ptr %t4030, ptr %t4018 store i32 %t4024, ptr %t4017 br label %put871 put871: %t4031 = load ptr, ptr %t4018 %t4032 = getelementptr inbounds ptr, ptr %t4031, i32 %t4019 store ptr @.str5919, ptr %t4032 %t4033 = add i32 %t4019, 1 store i32 %t4033, ptr %t4016 br label %ifend867 ifend867: %t4034 = load ptr, ptr %t1 %t4035 = call i32 @fn_str_eq(ptr %t4034, ptr @.str5920) %t4036 = icmp ne i32 %t4035, 0 br i1 %t4036, label %then872, label %ifend874 then872: store ptr @.str5921, ptr %t278 %t4037 = load ptr, ptr %t285 %t4038 = getelementptr inbounds %LSlice, ptr %t4037, i32 0, i32 1 %t4039 = getelementptr inbounds %LSlice, ptr %t4037, i32 0, i32 2 %t4040 = getelementptr inbounds %LSlice, ptr %t4037, i32 0, i32 0 %t4041 = load i32, ptr %t4038 %t4042 = load i32, ptr %t4039 %t4043 = icmp sge i32 %t4041, %t4042 br i1 %t4043, label %grow875, label %put876 grow875: %t4044 = mul i32 %t4042, 2 %t4045 = icmp eq i32 %t4042, 0 %t4046 = select i1 %t4045, i32 8, i32 %t4044 %t4047 = getelementptr ptr, ptr null, i32 1 %t4048 = ptrtoint ptr %t4047 to i64 %t4049 = zext i32 %t4046 to i64 %t4050 = mul i64 %t4049, %t4048 %t4051 = load ptr, ptr %t4040 %t4052 = call ptr @realloc(ptr %t4051, i64 %t4050) store ptr %t4052, ptr %t4040 store i32 %t4046, ptr %t4039 br label %put876 put876: %t4053 = load ptr, ptr %t4040 %t4054 = getelementptr inbounds ptr, ptr %t4053, i32 %t4041 store ptr @.str5922, ptr %t4054 %t4055 = add i32 %t4041, 1 store i32 %t4055, ptr %t4038 br label %ifend874 ifend874: %t4056 = load ptr, ptr %t1 %t4057 = call i32 @fn_str_eq(ptr %t4056, ptr @.str5923) %t4058 = icmp ne i32 %t4057, 0 br i1 %t4058, label %then877, label %ifend879 then877: store ptr @.str5924, ptr %t278 %t4059 = load ptr, ptr %t285 %t4060 = getelementptr inbounds %LSlice, ptr %t4059, i32 0, i32 1 %t4061 = getelementptr inbounds %LSlice, ptr %t4059, i32 0, i32 2 %t4062 = getelementptr inbounds %LSlice, ptr %t4059, i32 0, i32 0 %t4063 = load i32, ptr %t4060 %t4064 = load i32, ptr %t4061 %t4065 = icmp sge i32 %t4063, %t4064 br i1 %t4065, label %grow880, label %put881 grow880: %t4066 = mul i32 %t4064, 2 %t4067 = icmp eq i32 %t4064, 0 %t4068 = select i1 %t4067, i32 8, i32 %t4066 %t4069 = getelementptr ptr, ptr null, i32 1 %t4070 = ptrtoint ptr %t4069 to i64 %t4071 = zext i32 %t4068 to i64 %t4072 = mul i64 %t4071, %t4070 %t4073 = load ptr, ptr %t4062 %t4074 = call ptr @realloc(ptr %t4073, i64 %t4072) store ptr %t4074, ptr %t4062 store i32 %t4068, ptr %t4061 br label %put881 put881: %t4075 = load ptr, ptr %t4062 %t4076 = getelementptr inbounds ptr, ptr %t4075, i32 %t4063 store ptr @.str5925, ptr %t4076 %t4077 = add i32 %t4063, 1 store i32 %t4077, ptr %t4060 br label %ifend879 ifend879: br label %ifend805 ifend805: %t4078 = load ptr, ptr %t278 %t4079 = icmp eq ptr %t4078, null %t4080 = zext i1 %t4079 to i32 %t4081 = icmp ne i32 %t4080, 0 br i1 %t4081, label %then882, label %ifend884 then882: %t4082 = load ptr, ptr %t0 %t4083 = call ptr @fn_str_concat(ptr @.str5926, ptr %t4082) %t4084 = call ptr @fn_str_concat(ptr %t4083, ptr @.str5927) %t4085 = load ptr, ptr %t1 %t4086 = call ptr @fn_str_concat(ptr %t4084, ptr %t4085) call void @fn_perr(ptr %t4086) br label %ifend884 ifend884: %t4087 = load ptr, ptr %t2 %t4088 = load ptr, ptr %t285 call void @fn_reorder_named(ptr %t4087, ptr %t4088) %t4089 = call ptr @fn_node(i32 33) store ptr %t4089, ptr %t4090 %t4091 = load ptr, ptr %t4090 %t4092 = getelementptr inbounds %Cmp_Node, ptr %t4091, i32 0, i32 1 %t4093 = load ptr, ptr %t278 store ptr %t4093, ptr %t4092 %t4094 = load ptr, ptr %t2 %t4095 = getelementptr inbounds %Cmp_Node, ptr %t4094, i32 0, i32 4 %t4096 = load ptr, ptr %t4090 store ptr %t4096, ptr %t4095 %t4097 = load ptr, ptr %t2 %t4098 = call ptr @fn_emit_call(ptr %t4097) store ptr %t4098, ptr %retval br label %ret ret: %t4099 = load ptr, ptr %retval ret ptr %t4099 } define ptr @fn_emit_call(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t38 = alloca ptr %t91 = alloca ptr %t110 = alloca ptr %t119 = alloca ptr %t142 = alloca ptr %t151 = alloca ptr %t175 = alloca ptr %t184 = alloca ptr %t193 = alloca ptr %t215 = alloca ptr %t234 = alloca ptr %t253 = alloca ptr %t262 = alloca ptr %t281 = alloca ptr %t293 = alloca ptr %t298 = alloca ptr %t332 = alloca ptr %t348 = alloca ptr %t353 = alloca i32 %t373 = alloca ptr %t382 = alloca ptr %t391 = alloca ptr %t402 = alloca i32 %t422 = alloca ptr %t431 = alloca ptr %t465 = alloca ptr %t504 = alloca ptr %t544 = alloca ptr %t551 = alloca ptr %t568 = alloca ptr %t575 = alloca ptr %t580 = alloca ptr %t597 = alloca ptr %t616 = alloca ptr %t635 = alloca ptr %t642 = alloca ptr %t652 = alloca ptr %t667 = alloca ptr %t676 = alloca ptr %t687 = alloca ptr %t697 = alloca ptr %t718 = alloca ptr %t727 = alloca ptr %t736 = alloca ptr %t747 = alloca ptr %t751 = alloca ptr %t756 = alloca ptr %t766 = alloca ptr %t775 = alloca ptr %t785 = alloca ptr %t806 = alloca ptr %t825 = alloca ptr %t834 = alloca ptr %t858 = alloca ptr %t867 = alloca ptr %t876 = alloca ptr %t893 = alloca ptr %t910 = alloca ptr %t919 = alloca ptr %t928 = alloca ptr %t937 = alloca ptr %t944 = alloca ptr %t967 = alloca ptr %t976 = alloca ptr %t1005 = alloca ptr %t1024 = alloca ptr %t1043 = alloca ptr %t1052 = alloca ptr %t1076 = alloca ptr %t1085 = alloca ptr %t1109 = alloca ptr %t1118 = alloca ptr %t1137 = alloca ptr %t1146 = alloca ptr %t1165 = alloca ptr %t1189 = alloca ptr %t1208 = alloca ptr %t1227 = alloca ptr %t1236 = alloca ptr %t1260 = alloca ptr %t1269 = alloca ptr %t1302 = alloca ptr %t1316 = alloca ptr %t1323 = alloca ptr %t1324 = alloca i32 %t1343 = alloca ptr %t1394 = alloca ptr %t1395 = alloca ptr %t1442 = alloca ptr %t1444 = alloca ptr %t1451 = alloca ptr %t1466 = alloca ptr %t1473 = alloca ptr %t1480 = alloca ptr %t1481 = alloca i32 %t1500 = alloca ptr %t1504 = alloca ptr %t1566 = alloca ptr %t1567 = 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 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 0 %t5 = load i32, ptr %t4 %t6 = icmp eq i32 %t5, 35 %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 4 %t11 = load ptr, ptr %t10 %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, 33 %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 1 %t25 = load ptr, ptr %t24 %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 %t31 = load ptr, ptr %t0 %t32 = call ptr @fn_emit_ns_call(ptr %t25, ptr %t30, ptr %t31) store ptr %t32, ptr %retval br label %ret ifend5: call void @fn_perr(ptr @.str5928) br label %ifend2 ifend2: %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str5929) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then6, label %ifend8 then6: %t42 = load i32, ptr @g_nself %t43 = icmp eq i32 %t42, 0 %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then9, label %ifend11 then9: %t46 = call ptr @fn_val(ptr @.str5930, ptr @.str5931) store ptr %t46, ptr %retval br label %ret ifend11: %t47 = load ptr, ptr @g_self_stk %t48 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = load i32, ptr @g_nself %t51 = sub i32 %t50, 1 %t52 = getelementptr inbounds ptr, ptr %t49, i32 %t51 %t53 = load ptr, ptr %t52 %t54 = call ptr @fn_str_concat(ptr @.str5932, ptr %t53) %t55 = call ptr @fn_emit_bind(ptr %t54) %t56 = call ptr @fn_val(ptr %t55, ptr @.str5933) store ptr %t56, ptr %retval br label %ret ifend8: %t57 = load ptr, ptr %t38 %t58 = call i32 @fn_str_eq(ptr %t57, ptr @.str5934) %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %then12, label %ifend14 then12: %t60 = call ptr @fn_emit_bind(ptr @.str5935) %t61 = call ptr @fn_val(ptr %t60, ptr @.str5936) store ptr %t61, ptr %retval br label %ret ifend14: %t62 = load ptr, ptr %t38 %t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str5937) %t64 = icmp ne i32 %t63, 0 br i1 %t64, label %then15, label %ifend17 then15: call void @fn_emit(ptr @.str5938) %t65 = call ptr @fn_val(ptr @.str5939, ptr @.str5940) store ptr %t65, ptr %retval br label %ret ifend17: %t66 = load ptr, ptr %t38 %t67 = call i32 @fn_str_eq(ptr %t66, ptr @.str5941) %t68 = icmp ne i32 %t67, 0 br i1 %t68, label %then18, label %ifend20 then18: call void @fn_emit(ptr @.str5942) %t69 = call ptr @fn_val(ptr @.str5943, ptr @.str5944) store ptr %t69, ptr %retval br label %ret ifend20: %t70 = load ptr, ptr %t38 %t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str5945) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then21, label %ifend23 then21: %t73 = call ptr @fn_emit_bind(ptr @.str5946) %t74 = call ptr @fn_val(ptr %t73, ptr @.str5947) store ptr %t74, ptr %retval br label %ret ifend23: %t75 = load ptr, ptr %t38 %t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str5948) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then24, label %ifend26 then24: %t78 = call ptr @fn_emit_bind(ptr @.str5949) %t79 = call ptr @fn_val(ptr %t78, ptr @.str5950) store ptr %t79, ptr %retval br label %ret ifend26: %t80 = load ptr, ptr %t38 %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str5951) %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then27, label %ifend29 then27: %t83 = load ptr, ptr %t0 %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 ptr, ptr %t87, i32 0 %t89 = load ptr, ptr %t88 %t90 = call ptr @fn_emit_expr(ptr %t89) store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t91 %t93 = getelementptr inbounds %Cmp_Val, ptr %t92, i32 0, i32 0 %t94 = load ptr, ptr %t93 %t95 = call ptr @fn_str_concat(ptr @.str5952, ptr %t94) %t96 = call ptr @fn_str_concat(ptr %t95, ptr @.str5953) %t97 = call ptr @fn_emit_bind(ptr %t96) %t98 = call ptr @fn_val(ptr %t97, ptr @.str5954) store ptr %t98, ptr %retval br label %ret ifend29: %t99 = load ptr, ptr %t38 %t100 = call i32 @fn_str_eq(ptr %t99, ptr @.str5955) %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then30, label %ifend32 then30: %t102 = load ptr, ptr %t0 %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 ptr, ptr %t106, i32 0 %t108 = load ptr, ptr %t107 %t109 = call ptr @fn_emit_expr(ptr %t108) store ptr %t109, ptr %t110 %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 0 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds ptr, ptr %t115, i32 1 %t117 = load ptr, ptr %t116 %t118 = call ptr @fn_emit_expr(ptr %t117) store ptr %t118, ptr %t119 call void @fn_emit(ptr @.str5956) %t120 = load ptr, ptr %t110 %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 @.str5957) %t123 = load ptr, ptr %t119 %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 @.str5958) %t126 = call ptr @fn_val(ptr @.str5959, ptr @.str5960) store ptr %t126, ptr %retval br label %ret ifend32: %t127 = load ptr, ptr %t38 %t128 = call i32 @fn_str_eq(ptr %t127, ptr @.str5961) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then33, label %ifend35 then33: call void @fn_emit(ptr @.str5962) %t130 = call ptr @fn_val(ptr @.str5963, ptr @.str5964) store ptr %t130, ptr %retval br label %ret ifend35: %t131 = load ptr, ptr %t38 %t132 = call i32 @fn_str_eq(ptr %t131, ptr @.str5965) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then36, label %ifend38 then36: %t134 = load ptr, ptr %t0 %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 ptr, ptr %t138, 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 ptr, ptr %t147, i32 1 %t149 = load ptr, ptr %t148 %t150 = call ptr @fn_emit_expr(ptr %t149) store ptr %t150, ptr %t151 %t152 = load ptr, ptr %t142 %t153 = getelementptr inbounds %Cmp_Val, ptr %t152, i32 0, i32 0 %t154 = load ptr, ptr %t153 %t155 = call ptr @fn_str_concat(ptr @.str5966, ptr %t154) %t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str5967) %t157 = load ptr, ptr %t151 %t158 = getelementptr inbounds %Cmp_Val, ptr %t157, i32 0, i32 0 %t159 = load ptr, ptr %t158 %t160 = call ptr @fn_str_concat(ptr %t156, ptr %t159) %t161 = call ptr @fn_str_concat(ptr %t160, ptr @.str5968) %t162 = call ptr @fn_emit_bind(ptr %t161) %t163 = call ptr @fn_val(ptr %t162, ptr @.str5969) store ptr %t163, ptr %retval br label %ret ifend38: %t164 = load ptr, ptr %t38 %t165 = call i32 @fn_str_eq(ptr %t164, ptr @.str5970) %t166 = icmp ne i32 %t165, 0 br i1 %t166, label %then39, label %ifend41 then39: %t167 = load ptr, ptr %t0 %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 ptr, ptr %t171, i32 0 %t173 = load ptr, ptr %t172 %t174 = call ptr @fn_emit_expr(ptr %t173) store ptr %t174, ptr %t175 %t176 = load ptr, ptr %t0 %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 ptr, ptr %t180, i32 1 %t182 = load ptr, ptr %t181 %t183 = call ptr @fn_emit_expr(ptr %t182) store ptr %t183, ptr %t184 %t185 = load ptr, ptr %t0 %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 ptr, ptr %t189, i32 2 %t191 = load ptr, ptr %t190 %t192 = call ptr @fn_emit_expr(ptr %t191) store ptr %t192, ptr %t193 call void @fn_emit(ptr @.str5971) %t194 = load ptr, ptr %t175 %t195 = getelementptr inbounds %Cmp_Val, ptr %t194, i32 0, i32 0 %t196 = load ptr, ptr %t195 call void @fn_emit(ptr %t196) call void @fn_emit(ptr @.str5972) %t197 = load ptr, ptr %t184 %t198 = getelementptr inbounds %Cmp_Val, ptr %t197, i32 0, i32 0 %t199 = load ptr, ptr %t198 call void @fn_emit(ptr %t199) call void @fn_emit(ptr @.str5973) %t200 = load ptr, ptr %t193 %t201 = getelementptr inbounds %Cmp_Val, ptr %t200, i32 0, i32 0 %t202 = load ptr, ptr %t201 call void @fn_emit(ptr %t202) call void @fn_emit(ptr @.str5974) %t203 = call ptr @fn_val(ptr @.str5975, ptr @.str5976) store ptr %t203, ptr %retval br label %ret ifend41: %t204 = load ptr, ptr %t38 %t205 = call i32 @fn_str_eq(ptr %t204, ptr @.str5977) %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then42, label %ifend44 then42: %t207 = load ptr, ptr %t0 %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 ptr, ptr %t211, i32 0 %t213 = load ptr, ptr %t212 %t214 = call ptr @fn_emit_expr(ptr %t213) store ptr %t214, ptr %t215 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds %Cmp_Val, ptr %t216, i32 0, i32 0 %t218 = load ptr, ptr %t217 %t219 = call ptr @fn_str_concat(ptr @.str5978, ptr %t218) %t220 = call ptr @fn_str_concat(ptr %t219, ptr @.str5979) %t221 = call ptr @fn_emit_bind(ptr %t220) %t222 = call ptr @fn_val(ptr %t221, ptr @.str5980) store ptr %t222, ptr %retval br label %ret ifend44: %t223 = load ptr, ptr %t38 %t224 = call i32 @fn_str_eq(ptr %t223, ptr @.str5981) %t225 = icmp ne i32 %t224, 0 br i1 %t225, label %then45, label %ifend47 then45: %t226 = load ptr, ptr %t0 %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 ptr, ptr %t230, i32 0 %t232 = load ptr, ptr %t231 %t233 = call ptr @fn_emit_expr(ptr %t232) store ptr %t233, ptr %t234 %t235 = load ptr, ptr %t234 %t236 = getelementptr inbounds %Cmp_Val, ptr %t235, i32 0, i32 0 %t237 = load ptr, ptr %t236 %t238 = call ptr @fn_str_concat(ptr @.str5982, ptr %t237) %t239 = call ptr @fn_str_concat(ptr %t238, ptr @.str5983) %t240 = call ptr @fn_emit_bind(ptr %t239) %t241 = call ptr @fn_val(ptr %t240, ptr @.str5984) store ptr %t241, ptr %retval br label %ret ifend47: %t242 = load ptr, ptr %t38 %t243 = call i32 @fn_str_eq(ptr %t242, ptr @.str5985) %t244 = icmp ne i32 %t243, 0 br i1 %t244, label %then48, label %ifend50 then48: %t245 = load ptr, ptr %t0 %t246 = getelementptr inbounds %Cmp_Node, ptr %t245, i32 0, i32 7 %t247 = load ptr, ptr %t246 %t248 = getelementptr inbounds %LSlice, ptr %t247, i32 0, i32 0 %t249 = load ptr, ptr %t248 %t250 = getelementptr inbounds ptr, ptr %t249, i32 0 %t251 = load ptr, ptr %t250 %t252 = call ptr @fn_emit_expr(ptr %t251) store ptr %t252, ptr %t253 %t254 = load ptr, ptr %t0 %t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 7 %t256 = load ptr, ptr %t255 %t257 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 0 %t258 = load ptr, ptr %t257 %t259 = getelementptr inbounds ptr, ptr %t258, i32 1 %t260 = load ptr, ptr %t259 %t261 = call ptr @fn_emit_expr(ptr %t260) store ptr %t261, ptr %t262 call void @fn_emit(ptr @.str5986) %t263 = load ptr, ptr %t253 %t264 = getelementptr inbounds %Cmp_Val, ptr %t263, i32 0, i32 0 %t265 = load ptr, ptr %t264 call void @fn_emit(ptr %t265) call void @fn_emit(ptr @.str5987) %t266 = load ptr, ptr %t262 %t267 = getelementptr inbounds %Cmp_Val, ptr %t266, i32 0, i32 0 %t268 = load ptr, ptr %t267 call void @fn_emit(ptr %t268) call void @fn_emit(ptr @.str5988) %t269 = call ptr @fn_val(ptr @.str5989, ptr @.str5990) store ptr %t269, ptr %retval br label %ret ifend50: %t270 = load ptr, ptr %t38 %t271 = call i32 @fn_str_eq(ptr %t270, ptr @.str5991) %t272 = icmp ne i32 %t271, 0 br i1 %t272, label %then51, label %ifend53 then51: %t273 = load ptr, ptr %t0 %t274 = getelementptr inbounds %Cmp_Node, ptr %t273, i32 0, i32 7 %t275 = load ptr, ptr %t274 %t276 = getelementptr inbounds %LSlice, ptr %t275, i32 0, i32 0 %t277 = load ptr, ptr %t276 %t278 = getelementptr inbounds ptr, ptr %t277, i32 0 %t279 = load ptr, ptr %t278 %t280 = call ptr @fn_emit_expr(ptr %t279) store ptr %t280, ptr %t281 %t282 = load ptr, ptr %t281 %t283 = getelementptr inbounds %Cmp_Val, ptr %t282, i32 0, i32 0 %t284 = load ptr, ptr %t283 %t285 = call ptr @fn_str_concat(ptr @.str5992, ptr %t284) %t286 = call ptr @fn_str_concat(ptr %t285, ptr @.str5993) %t287 = call ptr @fn_emit_bind(ptr %t286) %t288 = call ptr @fn_val(ptr %t287, ptr @.str5994) store ptr %t288, ptr %retval br label %ret ifend53: %t289 = load ptr, ptr %t38 %t290 = call i32 @fn_str_eq(ptr %t289, ptr @.str5995) %t291 = icmp ne i32 %t290, 0 br i1 %t291, label %then54, label %ifend56 then54: %t292 = call ptr @fn_emit_bind(ptr @.str5996) store ptr %t292, ptr %t293 %t294 = load ptr, ptr %t293 %t295 = call ptr @fn_str_concat(ptr @.str5997, ptr %t294) %t296 = call ptr @fn_str_concat(ptr %t295, ptr @.str5998) %t297 = call ptr @fn_emit_bind(ptr %t296) store ptr %t297, ptr %t298 %t299 = load ptr, ptr %t298 %t300 = call ptr @fn_str_concat(ptr @.str5999, ptr %t299) %t301 = call ptr @fn_str_concat(ptr %t300, ptr @.str6000) %t302 = call ptr @fn_emit_bind(ptr %t301) %t303 = call ptr @fn_val(ptr %t302, ptr @.str6001) store ptr %t303, ptr %retval br label %ret ifend56: %t304 = load ptr, ptr %t38 %t305 = call i32 @fn_str_eq(ptr %t304, ptr @.str6002) %t306 = icmp ne i32 %t305, 0 br i1 %t306, label %then57, label %ifend59 then57: %t307 = call ptr @fn_emit_bind(ptr @.str6003) %t308 = call ptr @fn_val(ptr %t307, ptr @.str6004) store ptr %t308, ptr %retval br label %ret ifend59: %t309 = load ptr, ptr %t38 %t310 = call i32 @fn_str_eq(ptr %t309, ptr @.str6005) %t311 = icmp ne i32 %t310, 0 br i1 %t311, label %then60, label %ifend62 then60: call void @fn_emit(ptr @.str6006) %t312 = call ptr @fn_val(ptr @.str6007, ptr @.str6008) store ptr %t312, ptr %retval br label %ret ifend62: %t313 = load ptr, ptr %t38 %t314 = call i32 @fn_str_eq(ptr %t313, ptr @.str6009) %t315 = icmp ne i32 %t314, 0 br i1 %t315, label %then63, label %ifend65 then63: call void @fn_emit(ptr @.str6010) %t316 = call ptr @fn_val(ptr @.str6011, ptr @.str6012) store ptr %t316, ptr %retval br label %ret ifend65: %t317 = load ptr, ptr %t38 %t318 = call i32 @fn_str_eq(ptr %t317, ptr @.str6013) %t319 = icmp ne i32 %t318, 0 br i1 %t319, label %then66, label %ifend68 then66: call void @fn_emit(ptr @.str6014) %t320 = call ptr @fn_val(ptr @.str6015, ptr @.str6016) store ptr %t320, ptr %retval br label %ret ifend68: %t321 = load ptr, ptr %t38 %t322 = call i32 @fn_str_eq(ptr %t321, ptr @.str6017) %t323 = icmp ne i32 %t322, 0 br i1 %t323, label %then69, label %ifend71 then69: %t324 = load ptr, ptr %t0 %t325 = getelementptr inbounds %Cmp_Node, ptr %t324, i32 0, i32 7 %t326 = load ptr, ptr %t325 %t327 = getelementptr inbounds %LSlice, ptr %t326, i32 0, i32 0 %t328 = load ptr, ptr %t327 %t329 = getelementptr inbounds ptr, ptr %t328, i32 0 %t330 = load ptr, ptr %t329 %t331 = call ptr @fn_emit_expr(ptr %t330) store ptr %t331, ptr %t332 call void @fn_emit(ptr @.str6018) %t333 = load ptr, ptr %t332 %t334 = getelementptr inbounds %Cmp_Val, ptr %t333, i32 0, i32 0 %t335 = load ptr, ptr %t334 call void @fn_emit(ptr %t335) call void @fn_emit(ptr @.str6019) %t336 = call ptr @fn_val(ptr @.str6020, ptr @.str6021) store ptr %t336, ptr %retval br label %ret ifend71: %t337 = load ptr, ptr %t38 %t338 = call i32 @fn_str_eq(ptr %t337, ptr @.str6022) %t339 = icmp ne i32 %t338, 0 br i1 %t339, label %then72, label %ifend74 then72: %t340 = load ptr, ptr %t0 %t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 7 %t342 = load ptr, ptr %t341 %t343 = getelementptr inbounds %LSlice, ptr %t342, i32 0, i32 0 %t344 = load ptr, ptr %t343 %t345 = getelementptr inbounds ptr, ptr %t344, i32 0 %t346 = load ptr, ptr %t345 %t347 = call ptr @fn_emit_expr(ptr %t346) store ptr %t347, ptr %t348 call void @fn_emit(ptr @.str6023) %t349 = load ptr, ptr %t348 %t350 = getelementptr inbounds %Cmp_Val, ptr %t349, i32 0, i32 0 %t351 = load ptr, ptr %t350 call void @fn_emit(ptr %t351) call void @fn_emit(ptr @.str6024) %t352 = call ptr @fn_val(ptr @.str6025, ptr @.str6026) store ptr %t352, ptr %retval br label %ret ifend74: %t354 = load ptr, ptr %t38 %t355 = call i32 @fn_str_eq(ptr %t354, ptr @.str6027) %t356 = icmp ne i32 %t355, 0 %t357 = zext i1 %t356 to i32 store i32 %t357, ptr %t353 br i1 %t356, label %sc75, label %scend76 sc75: %t358 = call ptr @fn_find_extern(ptr @.str6028) %t359 = icmp eq ptr %t358, null %t360 = zext i1 %t359 to i32 %t361 = icmp ne i32 %t360, 0 %t362 = zext i1 %t361 to i32 store i32 %t362, ptr %t353 br label %scend76 scend76: %t363 = load i32, ptr %t353 %t364 = icmp ne i32 %t363, 0 br i1 %t364, label %then77, label %ifend79 then77: store i32 1, ptr @g_g_uses_loopback %t365 = load ptr, ptr %t0 %t366 = getelementptr inbounds %Cmp_Node, ptr %t365, i32 0, i32 7 %t367 = load ptr, ptr %t366 %t368 = getelementptr inbounds %LSlice, ptr %t367, i32 0, i32 0 %t369 = load ptr, ptr %t368 %t370 = getelementptr inbounds ptr, ptr %t369, i32 0 %t371 = load ptr, ptr %t370 %t372 = call ptr @fn_emit_expr(ptr %t371) store ptr %t372, ptr %t373 %t374 = load ptr, ptr %t0 %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 ptr, ptr %t378, i32 1 %t380 = load ptr, ptr %t379 %t381 = call ptr @fn_emit_expr(ptr %t380) store ptr %t381, ptr %t382 %t383 = load ptr, ptr %t0 %t384 = getelementptr inbounds %Cmp_Node, ptr %t383, i32 0, i32 7 %t385 = load ptr, ptr %t384 %t386 = getelementptr inbounds %LSlice, ptr %t385, i32 0, i32 0 %t387 = load ptr, ptr %t386 %t388 = getelementptr inbounds ptr, ptr %t387, i32 2 %t389 = load ptr, ptr %t388 %t390 = call ptr @fn_emit_expr(ptr %t389) store ptr %t390, ptr %t391 call void @fn_emit(ptr @.str6029) %t392 = load ptr, ptr %t373 %t393 = getelementptr inbounds %Cmp_Val, ptr %t392, i32 0, i32 0 %t394 = load ptr, ptr %t393 call void @fn_emit(ptr %t394) call void @fn_emit(ptr @.str6030) %t395 = load ptr, ptr %t382 %t396 = getelementptr inbounds %Cmp_Val, ptr %t395, i32 0, i32 0 %t397 = load ptr, ptr %t396 call void @fn_emit(ptr %t397) call void @fn_emit(ptr @.str6031) %t398 = load ptr, ptr %t391 %t399 = getelementptr inbounds %Cmp_Val, ptr %t398, i32 0, i32 0 %t400 = load ptr, ptr %t399 call void @fn_emit(ptr %t400) call void @fn_emit(ptr @.str6032) %t401 = call ptr @fn_val(ptr @.str6033, ptr @.str6034) store ptr %t401, ptr %retval br label %ret ifend79: %t403 = load ptr, ptr %t38 %t404 = call i32 @fn_str_eq(ptr %t403, ptr @.str6035) %t405 = icmp ne i32 %t404, 0 %t406 = zext i1 %t405 to i32 store i32 %t406, ptr %t402 br i1 %t405, label %sc80, label %scend81 sc80: %t407 = call ptr @fn_find_extern(ptr @.str6036) %t408 = icmp eq ptr %t407, null %t409 = zext i1 %t408 to i32 %t410 = icmp ne i32 %t409, 0 %t411 = zext i1 %t410 to i32 store i32 %t411, ptr %t402 br label %scend81 scend81: %t412 = load i32, ptr %t402 %t413 = icmp ne i32 %t412, 0 br i1 %t413, label %then82, label %ifend84 then82: store i32 1, ptr @g_g_uses_loopback %t414 = load ptr, ptr %t0 %t415 = getelementptr inbounds %Cmp_Node, ptr %t414, i32 0, i32 7 %t416 = load ptr, ptr %t415 %t417 = getelementptr inbounds %LSlice, ptr %t416, i32 0, i32 0 %t418 = load ptr, ptr %t417 %t419 = getelementptr inbounds ptr, ptr %t418, i32 0 %t420 = load ptr, ptr %t419 %t421 = call ptr @fn_emit_expr(ptr %t420) store ptr %t421, ptr %t422 %t423 = load ptr, ptr %t0 %t424 = getelementptr inbounds %Cmp_Node, ptr %t423, i32 0, i32 7 %t425 = load ptr, ptr %t424 %t426 = getelementptr inbounds %LSlice, ptr %t425, i32 0, i32 0 %t427 = load ptr, ptr %t426 %t428 = getelementptr inbounds ptr, ptr %t427, i32 1 %t429 = load ptr, ptr %t428 %t430 = call ptr @fn_emit_expr(ptr %t429) store ptr %t430, ptr %t431 %t432 = load ptr, ptr %t422 %t433 = getelementptr inbounds %Cmp_Val, ptr %t432, i32 0, i32 0 %t434 = load ptr, ptr %t433 %t435 = call ptr @fn_str_concat(ptr @.str6037, ptr %t434) %t436 = call ptr @fn_str_concat(ptr %t435, ptr @.str6038) %t437 = load ptr, ptr %t431 %t438 = getelementptr inbounds %Cmp_Val, ptr %t437, i32 0, i32 0 %t439 = load ptr, ptr %t438 %t440 = call ptr @fn_str_concat(ptr %t436, ptr %t439) %t441 = call ptr @fn_str_concat(ptr %t440, ptr @.str6039) %t442 = call ptr @fn_emit_bind(ptr %t441) %t443 = call ptr @fn_val(ptr %t442, ptr @.str6040) store ptr %t443, ptr %retval br label %ret ifend84: %t444 = load ptr, ptr %t38 %t445 = call i32 @fn_str_eq(ptr %t444, ptr @.str6041) %t446 = icmp ne i32 %t445, 0 br i1 %t446, label %then85, label %ifend87 then85: %t447 = load ptr, ptr %t0 %t448 = call ptr @fn_emit_len(ptr %t447) store ptr %t448, ptr %retval br label %ret ifend87: %t449 = load ptr, ptr %t38 %t450 = call i32 @fn_str_eq(ptr %t449, ptr @.str6042) %t451 = icmp ne i32 %t450, 0 br i1 %t451, label %then88, label %ifend90 then88: %t452 = load ptr, ptr %t0 %t453 = call ptr @fn_emit_push(ptr %t452) store ptr %t453, ptr %retval br label %ret ifend90: %t454 = load ptr, ptr %t38 %t455 = call i32 @fn_str_eq(ptr %t454, ptr @.str6043) %t456 = icmp ne i32 %t455, 0 br i1 %t456, label %then91, label %ifend93 then91: %t457 = load ptr, ptr %t0 %t458 = getelementptr inbounds %Cmp_Node, ptr %t457, i32 0, i32 7 %t459 = load ptr, ptr %t458 %t460 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 0 %t461 = load ptr, ptr %t460 %t462 = getelementptr inbounds ptr, ptr %t461, i32 0 %t463 = load ptr, ptr %t462 %t464 = call ptr @fn_emit_expr(ptr %t463) store ptr %t464, ptr %t465 %t466 = load ptr, ptr %t465 %t467 = getelementptr inbounds %Cmp_Val, ptr %t466, i32 0, i32 1 %t468 = load ptr, ptr %t467 %t469 = call ptr @fn_llty(ptr %t468) %t470 = call i32 @fn_str_eq(ptr %t469, ptr @.str6044) %t471 = icmp ne i32 %t470, 0 br i1 %t471, label %then94, label %ifend96 then94: %t472 = load ptr, ptr %t465 store ptr %t472, ptr %retval br label %ret ifend96: %t473 = load ptr, ptr %t465 %t474 = getelementptr inbounds %Cmp_Val, ptr %t473, i32 0, i32 1 %t475 = load ptr, ptr %t474 %t476 = call ptr @fn_llty(ptr %t475) %t477 = call i32 @fn_str_eq(ptr %t476, ptr @.str6045) %t478 = icmp ne i32 %t477, 0 br i1 %t478, label %then97, label %ifend99 then97: store i32 1, ptr @g_g_uses_longstr %t479 = load ptr, ptr %t465 %t480 = getelementptr inbounds %Cmp_Val, ptr %t479, i32 0, i32 0 %t481 = load ptr, ptr %t480 %t482 = call ptr @fn_str_concat(ptr @.str6046, ptr %t481) %t483 = call ptr @fn_str_concat(ptr %t482, ptr @.str6047) %t484 = call ptr @fn_emit_bind(ptr %t483) %t485 = call ptr @fn_val(ptr %t484, ptr @.str6048) store ptr %t485, ptr %retval br label %ret ifend99: store i32 1, ptr @g_g_uses_intstr %t486 = load ptr, ptr %t465 %t487 = getelementptr inbounds %Cmp_Val, ptr %t486, i32 0, i32 0 %t488 = load ptr, ptr %t487 %t489 = call ptr @fn_str_concat(ptr @.str6049, ptr %t488) %t490 = call ptr @fn_str_concat(ptr %t489, ptr @.str6050) %t491 = call ptr @fn_emit_bind(ptr %t490) %t492 = call ptr @fn_val(ptr %t491, ptr @.str6051) store ptr %t492, ptr %retval br label %ret ifend93: %t493 = load ptr, ptr %t38 %t494 = call i32 @fn_str_eq(ptr %t493, ptr @.str6052) %t495 = icmp ne i32 %t494, 0 br i1 %t495, label %then100, label %ifend102 then100: %t496 = load ptr, ptr %t0 %t497 = getelementptr inbounds %Cmp_Node, ptr %t496, i32 0, i32 7 %t498 = load ptr, ptr %t497 %t499 = getelementptr inbounds %LSlice, ptr %t498, i32 0, i32 0 %t500 = load ptr, ptr %t499 %t501 = getelementptr inbounds ptr, ptr %t500, i32 0 %t502 = load ptr, ptr %t501 %t503 = call ptr @fn_emit_expr(ptr %t502) store ptr %t503, ptr %t504 %t505 = load ptr, ptr %t504 %t506 = getelementptr inbounds %Cmp_Val, ptr %t505, i32 0, i32 1 %t507 = load ptr, ptr %t506 %t508 = call ptr @fn_llty(ptr %t507) %t509 = call i32 @fn_str_eq(ptr %t508, ptr @.str6053) %t510 = icmp ne i32 %t509, 0 br i1 %t510, label %then103, label %else104 then103: %t511 = load ptr, ptr %t504 %t512 = getelementptr inbounds %Cmp_Val, ptr %t511, i32 0, i32 0 %t513 = load ptr, ptr %t512 %t514 = call ptr @fn_str_concat(ptr %t513, ptr @.str6055) %t515 = call ptr @fn_str_concat(ptr @.str6054, ptr %t514) call void @fn_emit(ptr %t515) br label %ifend105 else104: %t516 = load ptr, ptr %t504 %t517 = getelementptr inbounds %Cmp_Val, ptr %t516, i32 0, i32 1 %t518 = load ptr, ptr %t517 %t519 = call ptr @fn_llty(ptr %t518) %t520 = call i32 @fn_str_eq(ptr %t519, ptr @.str6056) %t521 = icmp ne i32 %t520, 0 br i1 %t521, label %then106, label %else107 then106: %t522 = load ptr, ptr %t504 %t523 = getelementptr inbounds %Cmp_Val, ptr %t522, i32 0, i32 0 %t524 = load ptr, ptr %t523 %t525 = call ptr @fn_str_concat(ptr %t524, ptr @.str6058) %t526 = call ptr @fn_str_concat(ptr @.str6057, ptr %t525) call void @fn_emit(ptr %t526) br label %ifend108 else107: %t527 = load ptr, ptr %t504 %t528 = getelementptr inbounds %Cmp_Val, ptr %t527, i32 0, i32 0 %t529 = load ptr, ptr %t528 %t530 = call ptr @fn_str_concat(ptr %t529, ptr @.str6060) %t531 = call ptr @fn_str_concat(ptr @.str6059, ptr %t530) call void @fn_emit(ptr %t531) br label %ifend108 ifend108: br label %ifend105 ifend105: %t532 = call ptr @fn_val(ptr @.str6061, ptr @.str6062) store ptr %t532, ptr %retval br label %ret ifend102: %t533 = load ptr, ptr %t38 %t534 = call i32 @fn_str_eq(ptr %t533, ptr @.str6063) %t535 = icmp ne i32 %t534, 0 br i1 %t535, label %then109, label %ifend111 then109: %t536 = load ptr, ptr %t0 %t537 = getelementptr inbounds %Cmp_Node, ptr %t536, i32 0, i32 7 %t538 = load ptr, ptr %t537 %t539 = getelementptr inbounds %LSlice, ptr %t538, i32 0, i32 0 %t540 = load ptr, ptr %t539 %t541 = getelementptr inbounds ptr, ptr %t540, i32 0 %t542 = load ptr, ptr %t541 %t543 = call ptr @fn_emit_expr(ptr %t542) store ptr %t543, ptr %t544 %t545 = load ptr, ptr %t544 %t546 = getelementptr inbounds %Cmp_Val, ptr %t545, i32 0, i32 0 %t547 = load ptr, ptr %t546 %t548 = call ptr @fn_str_concat(ptr @.str6064, ptr %t547) %t549 = call ptr @fn_str_concat(ptr %t548, ptr @.str6065) %t550 = call ptr @fn_emit_bind(ptr %t549) store ptr %t550, ptr %t551 %t552 = load ptr, ptr %t551 %t553 = call ptr @fn_str_concat(ptr @.str6066, ptr %t552) %t554 = call ptr @fn_str_concat(ptr %t553, ptr @.str6067) %t555 = call ptr @fn_emit_bind(ptr %t554) %t556 = call ptr @fn_val(ptr %t555, ptr @.str6068) store ptr %t556, ptr %retval br label %ret ifend111: %t557 = load ptr, ptr %t38 %t558 = call i32 @fn_str_eq(ptr %t557, ptr @.str6069) %t559 = icmp ne i32 %t558, 0 br i1 %t559, label %then112, label %ifend114 then112: %t560 = load ptr, ptr %t0 %t561 = getelementptr inbounds %Cmp_Node, ptr %t560, i32 0, i32 7 %t562 = load ptr, ptr %t561 %t563 = getelementptr inbounds %LSlice, ptr %t562, i32 0, i32 0 %t564 = load ptr, ptr %t563 %t565 = getelementptr inbounds ptr, ptr %t564, i32 0 %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 @fn_str_concat(ptr @.str6070, ptr %t571) %t573 = call ptr @fn_str_concat(ptr %t572, ptr @.str6071) %t574 = call ptr @fn_emit_bind(ptr %t573) store ptr %t574, ptr %t575 %t576 = load ptr, ptr %t575 %t577 = call ptr @fn_str_concat(ptr @.str6072, ptr %t576) %t578 = call ptr @fn_str_concat(ptr %t577, ptr @.str6073) %t579 = call ptr @fn_emit_bind(ptr %t578) store ptr %t579, ptr %t580 %t581 = load ptr, ptr %t580 %t582 = call ptr @fn_str_concat(ptr @.str6074, ptr %t581) %t583 = call ptr @fn_str_concat(ptr %t582, ptr @.str6075) %t584 = call ptr @fn_emit_bind(ptr %t583) %t585 = call ptr @fn_val(ptr %t584, ptr @.str6076) store ptr %t585, ptr %retval br label %ret ifend114: %t586 = load ptr, ptr %t38 %t587 = call i32 @fn_str_eq(ptr %t586, ptr @.str6077) %t588 = icmp ne i32 %t587, 0 br i1 %t588, label %then115, label %ifend117 then115: %t589 = load ptr, ptr %t0 %t590 = getelementptr inbounds %Cmp_Node, ptr %t589, i32 0, i32 7 %t591 = load ptr, ptr %t590 %t592 = getelementptr inbounds %LSlice, ptr %t591, i32 0, i32 0 %t593 = load ptr, ptr %t592 %t594 = getelementptr inbounds ptr, ptr %t593, i32 0 %t595 = load ptr, ptr %t594 %t596 = call ptr @fn_emit_expr(ptr %t595) store ptr %t596, ptr %t597 %t598 = load ptr, ptr %t597 %t599 = getelementptr inbounds %Cmp_Val, ptr %t598, i32 0, i32 0 %t600 = load ptr, ptr %t599 %t601 = call ptr @fn_str_concat(ptr @.str6078, ptr %t600) %t602 = call ptr @fn_str_concat(ptr %t601, ptr @.str6079) %t603 = call ptr @fn_emit_bind(ptr %t602) %t604 = call ptr @fn_val(ptr %t603, ptr @.str6080) store ptr %t604, ptr %retval br label %ret ifend117: %t605 = load ptr, ptr %t38 %t606 = call i32 @fn_str_eq(ptr %t605, ptr @.str6081) %t607 = icmp ne i32 %t606, 0 br i1 %t607, label %then118, label %ifend120 then118: %t608 = load ptr, ptr %t0 %t609 = getelementptr inbounds %Cmp_Node, ptr %t608, i32 0, i32 7 %t610 = load ptr, ptr %t609 %t611 = getelementptr inbounds %LSlice, ptr %t610, i32 0, i32 0 %t612 = load ptr, ptr %t611 %t613 = getelementptr inbounds ptr, ptr %t612, i32 0 %t614 = load ptr, ptr %t613 %t615 = call ptr @fn_emit_expr(ptr %t614) store ptr %t615, ptr %t616 %t617 = load ptr, ptr %t616 %t618 = getelementptr inbounds %Cmp_Val, ptr %t617, i32 0, i32 0 %t619 = load ptr, ptr %t618 %t620 = call ptr @fn_str_concat(ptr @.str6082, ptr %t619) %t621 = call ptr @fn_str_concat(ptr %t620, ptr @.str6083) %t622 = call ptr @fn_emit_bind(ptr %t621) %t623 = call ptr @fn_val(ptr %t622, ptr @.str6084) store ptr %t623, ptr %retval br label %ret ifend120: %t624 = load ptr, ptr %t38 %t625 = call i32 @fn_str_eq(ptr %t624, ptr @.str6085) %t626 = icmp ne i32 %t625, 0 br i1 %t626, label %then121, label %ifend123 then121: store i32 1, ptr @g_g_uses_expect %t627 = load ptr, ptr %t0 %t628 = getelementptr inbounds %Cmp_Node, ptr %t627, i32 0, i32 7 %t629 = load ptr, ptr %t628 %t630 = getelementptr inbounds %LSlice, ptr %t629, i32 0, i32 0 %t631 = load ptr, ptr %t630 %t632 = getelementptr inbounds ptr, ptr %t631, i32 0 %t633 = load ptr, ptr %t632 %t634 = call ptr @fn_emit_expr(ptr %t633) store ptr %t634, ptr %t635 %t636 = load ptr, ptr %t635 %t637 = getelementptr inbounds %Cmp_Val, ptr %t636, i32 0, i32 0 %t638 = load ptr, ptr %t637 %t639 = call ptr @fn_str_concat(ptr @.str6086, ptr %t638) %t640 = call ptr @fn_str_concat(ptr %t639, ptr @.str6087) %t641 = call ptr @fn_emit_bind(ptr %t640) store ptr %t641, ptr %t642 %t643 = load ptr, ptr @g_g_src_name %t644 = call ptr @fn_str_concat(ptr %t643, ptr @.str6088) %t645 = load ptr, ptr %t0 %t646 = getelementptr inbounds %Cmp_Node, ptr %t645, i32 0, i32 8 %t647 = load i32, ptr %t646 %t648 = call ptr @fn_itoa(i32 %t647) %t649 = call ptr @fn_str_concat(ptr %t644, ptr %t648) %t650 = call ptr @fn_str_concat(ptr %t649, ptr @.str6089) %t651 = call ptr @fn_emit_str_const(ptr %t650) store ptr %t651, ptr %t652 %t653 = load ptr, ptr %t642 %t654 = load ptr, ptr %t652 call void @fn_emit_expect_fail(ptr %t653, ptr %t654, ptr @.str6090, ptr @.str6091) %t655 = call ptr @fn_val(ptr @.str6092, ptr @.str6093) store ptr %t655, ptr %retval br label %ret ifend123: %t656 = load ptr, ptr %t38 %t657 = call i32 @fn_str_eq(ptr %t656, ptr @.str6094) %t658 = icmp ne i32 %t657, 0 br i1 %t658, label %then124, label %ifend126 then124: store i32 1, ptr @g_g_uses_expect %t659 = load ptr, ptr %t0 %t660 = getelementptr inbounds %Cmp_Node, ptr %t659, i32 0, i32 7 %t661 = load ptr, ptr %t660 %t662 = getelementptr inbounds %LSlice, ptr %t661, i32 0, i32 0 %t663 = load ptr, ptr %t662 %t664 = getelementptr inbounds ptr, ptr %t663, i32 0 %t665 = load ptr, ptr %t664 %t666 = call ptr @fn_emit_expr(ptr %t665) store ptr %t666, ptr %t667 %t668 = load ptr, ptr %t0 %t669 = getelementptr inbounds %Cmp_Node, ptr %t668, i32 0, i32 7 %t670 = load ptr, ptr %t669 %t671 = getelementptr inbounds %LSlice, ptr %t670, i32 0, i32 0 %t672 = load ptr, ptr %t671 %t673 = getelementptr inbounds ptr, ptr %t672, i32 1 %t674 = load ptr, ptr %t673 %t675 = call ptr @fn_emit_expr(ptr %t674) store ptr %t675, ptr %t676 %t677 = load ptr, ptr %t667 %t678 = getelementptr inbounds %Cmp_Val, ptr %t677, i32 0, i32 0 %t679 = load ptr, ptr %t678 %t680 = call ptr @fn_str_concat(ptr @.str6095, ptr %t679) %t681 = call ptr @fn_str_concat(ptr %t680, ptr @.str6096) %t682 = load ptr, ptr %t676 %t683 = getelementptr inbounds %Cmp_Val, ptr %t682, i32 0, i32 0 %t684 = load ptr, ptr %t683 %t685 = call ptr @fn_str_concat(ptr %t681, ptr %t684) %t686 = call ptr @fn_emit_bind(ptr %t685) store ptr %t686, ptr %t687 %t688 = load ptr, ptr @g_g_src_name %t689 = call ptr @fn_str_concat(ptr %t688, ptr @.str6097) %t690 = load ptr, ptr %t0 %t691 = getelementptr inbounds %Cmp_Node, ptr %t690, i32 0, i32 8 %t692 = load i32, ptr %t691 %t693 = call ptr @fn_itoa(i32 %t692) %t694 = call ptr @fn_str_concat(ptr %t689, ptr %t693) %t695 = call ptr @fn_str_concat(ptr %t694, ptr @.str6098) %t696 = call ptr @fn_emit_str_const(ptr %t695) store ptr %t696, ptr %t697 %t698 = load ptr, ptr %t687 %t699 = load ptr, ptr %t697 %t700 = load ptr, ptr %t667 %t701 = getelementptr inbounds %Cmp_Val, ptr %t700, i32 0, i32 0 %t702 = load ptr, ptr %t701 %t703 = load ptr, ptr %t676 %t704 = getelementptr inbounds %Cmp_Val, ptr %t703, i32 0, i32 0 %t705 = load ptr, ptr %t704 call void @fn_emit_expect_fail(ptr %t698, ptr %t699, ptr %t702, ptr %t705) %t706 = call ptr @fn_val(ptr @.str6099, ptr @.str6100) store ptr %t706, ptr %retval br label %ret ifend126: %t707 = load ptr, ptr %t38 %t708 = call i32 @fn_str_eq(ptr %t707, ptr @.str6101) %t709 = icmp ne i32 %t708, 0 br i1 %t709, label %then127, label %ifend129 then127: store i32 1, ptr @g_g_uses_expect %t710 = load ptr, ptr %t0 %t711 = getelementptr inbounds %Cmp_Node, ptr %t710, i32 0, i32 7 %t712 = load ptr, ptr %t711 %t713 = getelementptr inbounds %LSlice, ptr %t712, i32 0, i32 0 %t714 = load ptr, ptr %t713 %t715 = getelementptr inbounds ptr, ptr %t714, i32 0 %t716 = load ptr, ptr %t715 %t717 = call ptr @fn_emit_expr(ptr %t716) store ptr %t717, ptr %t718 %t719 = load ptr, ptr %t0 %t720 = getelementptr inbounds %Cmp_Node, ptr %t719, i32 0, i32 7 %t721 = load ptr, ptr %t720 %t722 = getelementptr inbounds %LSlice, ptr %t721, i32 0, i32 0 %t723 = load ptr, ptr %t722 %t724 = getelementptr inbounds ptr, ptr %t723, i32 1 %t725 = load ptr, ptr %t724 %t726 = call ptr @fn_emit_expr(ptr %t725) store ptr %t726, ptr %t727 %t728 = load ptr, ptr %t0 %t729 = getelementptr inbounds %Cmp_Node, ptr %t728, i32 0, i32 7 %t730 = load ptr, ptr %t729 %t731 = getelementptr inbounds %LSlice, ptr %t730, i32 0, i32 0 %t732 = load ptr, ptr %t731 %t733 = getelementptr inbounds ptr, ptr %t732, i32 2 %t734 = load ptr, ptr %t733 %t735 = call ptr @fn_emit_expr(ptr %t734) store ptr %t735, ptr %t736 %t737 = load ptr, ptr %t718 %t738 = getelementptr inbounds %Cmp_Val, ptr %t737, i32 0, i32 0 %t739 = load ptr, ptr %t738 %t740 = call ptr @fn_str_concat(ptr @.str6102, ptr %t739) %t741 = call ptr @fn_str_concat(ptr %t740, ptr @.str6103) %t742 = load ptr, ptr %t727 %t743 = getelementptr inbounds %Cmp_Val, ptr %t742, i32 0, i32 0 %t744 = load ptr, ptr %t743 %t745 = call ptr @fn_str_concat(ptr %t741, ptr %t744) %t746 = call ptr @fn_emit_bind(ptr %t745) store ptr %t746, ptr %t747 %t748 = load ptr, ptr %t747 %t749 = call ptr @fn_str_concat(ptr @.str6104, ptr %t748) %t750 = call ptr @fn_emit_bind(ptr %t749) store ptr %t750, ptr %t751 %t752 = load ptr, ptr %t747 %t753 = call ptr @fn_str_concat(ptr @.str6105, ptr %t752) %t754 = call ptr @fn_str_concat(ptr %t753, ptr @.str6106) %t755 = call ptr @fn_emit_bind(ptr %t754) store ptr %t755, ptr %t756 %t757 = load ptr, ptr %t756 %t758 = call ptr @fn_str_concat(ptr @.str6107, ptr %t757) %t759 = call ptr @fn_str_concat(ptr %t758, ptr @.str6108) %t760 = load ptr, ptr %t751 %t761 = call ptr @fn_str_concat(ptr %t759, ptr %t760) %t762 = call ptr @fn_str_concat(ptr %t761, ptr @.str6109) %t763 = load ptr, ptr %t747 %t764 = call ptr @fn_str_concat(ptr %t762, ptr %t763) %t765 = call ptr @fn_emit_bind(ptr %t764) store ptr %t765, ptr %t766 %t767 = load ptr, ptr %t766 %t768 = call ptr @fn_str_concat(ptr @.str6110, ptr %t767) %t769 = call ptr @fn_str_concat(ptr %t768, ptr @.str6111) %t770 = load ptr, ptr %t736 %t771 = getelementptr inbounds %Cmp_Val, ptr %t770, i32 0, i32 0 %t772 = load ptr, ptr %t771 %t773 = call ptr @fn_str_concat(ptr %t769, ptr %t772) %t774 = call ptr @fn_emit_bind(ptr %t773) store ptr %t774, ptr %t775 %t776 = load ptr, ptr @g_g_src_name %t777 = call ptr @fn_str_concat(ptr %t776, ptr @.str6112) %t778 = load ptr, ptr %t0 %t779 = getelementptr inbounds %Cmp_Node, ptr %t778, i32 0, i32 8 %t780 = load i32, ptr %t779 %t781 = call ptr @fn_itoa(i32 %t780) %t782 = call ptr @fn_str_concat(ptr %t777, ptr %t781) %t783 = call ptr @fn_str_concat(ptr %t782, ptr @.str6113) %t784 = call ptr @fn_emit_str_const(ptr %t783) store ptr %t784, ptr %t785 %t786 = load ptr, ptr %t775 %t787 = load ptr, ptr %t785 %t788 = load ptr, ptr %t718 %t789 = getelementptr inbounds %Cmp_Val, ptr %t788, i32 0, i32 0 %t790 = load ptr, ptr %t789 %t791 = load ptr, ptr %t727 %t792 = getelementptr inbounds %Cmp_Val, ptr %t791, i32 0, i32 0 %t793 = load ptr, ptr %t792 call void @fn_emit_expect_fail(ptr %t786, ptr %t787, ptr %t790, ptr %t793) %t794 = call ptr @fn_val(ptr @.str6114, ptr @.str6115) store ptr %t794, ptr %retval br label %ret ifend129: %t795 = load ptr, ptr %t38 %t796 = call i32 @fn_str_eq(ptr %t795, ptr @.str6116) %t797 = icmp ne i32 %t796, 0 br i1 %t797, label %then130, label %ifend132 then130: %t798 = load ptr, ptr %t0 %t799 = getelementptr inbounds %Cmp_Node, ptr %t798, i32 0, i32 7 %t800 = load ptr, ptr %t799 %t801 = getelementptr inbounds %LSlice, ptr %t800, i32 0, i32 0 %t802 = load ptr, ptr %t801 %t803 = getelementptr inbounds ptr, ptr %t802, i32 0 %t804 = load ptr, ptr %t803 %t805 = call ptr @fn_emit_expr(ptr %t804) store ptr %t805, ptr %t806 %t807 = load ptr, ptr %t806 %t808 = getelementptr inbounds %Cmp_Val, ptr %t807, i32 0, i32 0 %t809 = load ptr, ptr %t808 %t810 = call ptr @fn_str_concat(ptr @.str6117, ptr %t809) %t811 = call ptr @fn_str_concat(ptr %t810, ptr @.str6118) %t812 = call ptr @fn_emit_bind(ptr %t811) %t813 = call ptr @fn_val(ptr %t812, ptr @.str6119) store ptr %t813, ptr %retval br label %ret ifend132: %t814 = load ptr, ptr %t38 %t815 = call i32 @fn_str_eq(ptr %t814, ptr @.str6120) %t816 = icmp ne i32 %t815, 0 br i1 %t816, label %then133, label %ifend135 then133: %t817 = load ptr, ptr %t0 %t818 = getelementptr inbounds %Cmp_Node, ptr %t817, i32 0, i32 7 %t819 = load ptr, ptr %t818 %t820 = getelementptr inbounds %LSlice, ptr %t819, i32 0, i32 0 %t821 = load ptr, ptr %t820 %t822 = getelementptr inbounds ptr, ptr %t821, i32 0 %t823 = load ptr, ptr %t822 %t824 = call ptr @fn_emit_expr(ptr %t823) store ptr %t824, ptr %t825 %t826 = load ptr, ptr %t0 %t827 = getelementptr inbounds %Cmp_Node, ptr %t826, i32 0, i32 7 %t828 = load ptr, ptr %t827 %t829 = getelementptr inbounds %LSlice, ptr %t828, i32 0, i32 0 %t830 = load ptr, ptr %t829 %t831 = getelementptr inbounds ptr, ptr %t830, i32 1 %t832 = load ptr, ptr %t831 %t833 = call ptr @fn_emit_expr(ptr %t832) store ptr %t833, ptr %t834 %t835 = load ptr, ptr %t825 %t836 = getelementptr inbounds %Cmp_Val, ptr %t835, i32 0, i32 0 %t837 = load ptr, ptr %t836 %t838 = call ptr @fn_str_concat(ptr @.str6121, ptr %t837) %t839 = call ptr @fn_str_concat(ptr %t838, ptr @.str6122) %t840 = load ptr, ptr %t834 %t841 = getelementptr inbounds %Cmp_Val, ptr %t840, i32 0, i32 0 %t842 = load ptr, ptr %t841 %t843 = call ptr @fn_str_concat(ptr %t839, ptr %t842) %t844 = call ptr @fn_str_concat(ptr %t843, ptr @.str6123) %t845 = call ptr @fn_emit_bind(ptr %t844) %t846 = call ptr @fn_val(ptr %t845, ptr @.str6124) store ptr %t846, ptr %retval br label %ret ifend135: %t847 = load ptr, ptr %t38 %t848 = call i32 @fn_str_eq(ptr %t847, ptr @.str6125) %t849 = icmp ne i32 %t848, 0 br i1 %t849, label %then136, label %ifend138 then136: %t850 = load ptr, ptr %t0 %t851 = getelementptr inbounds %Cmp_Node, ptr %t850, i32 0, i32 7 %t852 = load ptr, ptr %t851 %t853 = getelementptr inbounds %LSlice, ptr %t852, i32 0, i32 0 %t854 = load ptr, ptr %t853 %t855 = getelementptr inbounds ptr, ptr %t854, i32 0 %t856 = load ptr, ptr %t855 %t857 = call ptr @fn_emit_expr(ptr %t856) store ptr %t857, ptr %t858 %t859 = load ptr, ptr %t0 %t860 = getelementptr inbounds %Cmp_Node, ptr %t859, i32 0, i32 7 %t861 = load ptr, ptr %t860 %t862 = getelementptr inbounds %LSlice, ptr %t861, i32 0, i32 0 %t863 = load ptr, ptr %t862 %t864 = getelementptr inbounds ptr, ptr %t863, i32 1 %t865 = load ptr, ptr %t864 %t866 = call ptr @fn_emit_expr(ptr %t865) store ptr %t866, ptr %t867 %t868 = load ptr, ptr %t0 %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 ptr, ptr %t872, i32 2 %t874 = load ptr, ptr %t873 %t875 = call ptr @fn_emit_expr(ptr %t874) store ptr %t875, ptr %t876 %t877 = load ptr, ptr %t858 %t878 = getelementptr inbounds %Cmp_Val, ptr %t877, i32 0, i32 0 %t879 = load ptr, ptr %t878 %t880 = call ptr @fn_str_concat(ptr @.str6126, ptr %t879) %t881 = call ptr @fn_str_concat(ptr %t880, ptr @.str6127) %t882 = load ptr, ptr %t867 %t883 = getelementptr inbounds %Cmp_Val, ptr %t882, i32 0, i32 0 %t884 = load ptr, ptr %t883 %t885 = call ptr @fn_str_concat(ptr %t881, ptr %t884) %t886 = call ptr @fn_str_concat(ptr %t885, ptr @.str6128) %t887 = load ptr, ptr %t876 %t888 = getelementptr inbounds %Cmp_Val, ptr %t887, i32 0, i32 0 %t889 = load ptr, ptr %t888 %t890 = call ptr @fn_str_concat(ptr %t886, ptr %t889) %t891 = call ptr @fn_str_concat(ptr %t890, ptr @.str6129) %t892 = call ptr @fn_emit_bind(ptr %t891) store ptr %t892, ptr %t893 %t894 = load ptr, ptr %t893 %t895 = call ptr @fn_str_concat(ptr @.str6130, ptr %t894) %t896 = call ptr @fn_str_concat(ptr %t895, ptr @.str6131) %t897 = call ptr @fn_emit_bind(ptr %t896) %t898 = call ptr @fn_val(ptr %t897, ptr @.str6132) store ptr %t898, ptr %retval br label %ret ifend138: %t899 = load ptr, ptr %t38 %t900 = call i32 @fn_str_eq(ptr %t899, ptr @.str6133) %t901 = icmp ne i32 %t900, 0 br i1 %t901, label %then139, label %ifend141 then139: %t902 = load ptr, ptr %t0 %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 ptr, ptr %t906, i32 0 %t908 = load ptr, ptr %t907 %t909 = call ptr @fn_emit_expr(ptr %t908) store ptr %t909, ptr %t910 %t911 = load ptr, ptr %t0 %t912 = getelementptr inbounds %Cmp_Node, ptr %t911, i32 0, i32 7 %t913 = load ptr, ptr %t912 %t914 = getelementptr inbounds %LSlice, ptr %t913, i32 0, i32 0 %t915 = load ptr, ptr %t914 %t916 = getelementptr inbounds ptr, ptr %t915, i32 1 %t917 = load ptr, ptr %t916 %t918 = call ptr @fn_emit_expr(ptr %t917) store ptr %t918, ptr %t919 %t920 = load ptr, ptr %t0 %t921 = getelementptr inbounds %Cmp_Node, ptr %t920, i32 0, i32 7 %t922 = load ptr, ptr %t921 %t923 = getelementptr inbounds %LSlice, ptr %t922, i32 0, i32 0 %t924 = load ptr, ptr %t923 %t925 = getelementptr inbounds ptr, ptr %t924, i32 2 %t926 = load ptr, ptr %t925 %t927 = call ptr @fn_emit_expr(ptr %t926) store ptr %t927, ptr %t928 %t929 = load ptr, ptr %t0 %t930 = getelementptr inbounds %Cmp_Node, ptr %t929, i32 0, i32 7 %t931 = load ptr, ptr %t930 %t932 = getelementptr inbounds %LSlice, ptr %t931, i32 0, i32 0 %t933 = load ptr, ptr %t932 %t934 = getelementptr inbounds ptr, ptr %t933, i32 3 %t935 = load ptr, ptr %t934 %t936 = call ptr @fn_emit_expr(ptr %t935) store ptr %t936, ptr %t937 %t938 = load ptr, ptr %t937 %t939 = getelementptr inbounds %Cmp_Val, ptr %t938, i32 0, i32 0 %t940 = load ptr, ptr %t939 %t941 = call ptr @fn_str_concat(ptr @.str6134, ptr %t940) %t942 = call ptr @fn_str_concat(ptr %t941, ptr @.str6135) %t943 = call ptr @fn_emit_bind(ptr %t942) store ptr %t943, ptr %t944 call void @fn_emit(ptr @.str6136) %t945 = load ptr, ptr %t910 %t946 = getelementptr inbounds %Cmp_Val, ptr %t945, i32 0, i32 0 %t947 = load ptr, ptr %t946 call void @fn_emit(ptr %t947) call void @fn_emit(ptr @.str6137) %t948 = load ptr, ptr %t919 %t949 = getelementptr inbounds %Cmp_Val, ptr %t948, i32 0, i32 0 %t950 = load ptr, ptr %t949 call void @fn_emit(ptr %t950) call void @fn_emit(ptr @.str6138) %t951 = load ptr, ptr %t928 %t952 = getelementptr inbounds %Cmp_Val, ptr %t951, i32 0, i32 0 %t953 = load ptr, ptr %t952 call void @fn_emit(ptr %t953) call void @fn_emit(ptr @.str6139) %t954 = load ptr, ptr %t944 call void @fn_emit(ptr %t954) call void @fn_emit(ptr @.str6140) %t955 = call ptr @fn_val(ptr @.str6141, ptr @.str6142) store ptr %t955, ptr %retval br label %ret ifend141: %t956 = load ptr, ptr %t38 %t957 = call i32 @fn_str_eq(ptr %t956, ptr @.str6143) %t958 = icmp ne i32 %t957, 0 br i1 %t958, label %then142, label %ifend144 then142: %t959 = load ptr, ptr %t0 %t960 = getelementptr inbounds %Cmp_Node, ptr %t959, i32 0, i32 7 %t961 = load ptr, ptr %t960 %t962 = getelementptr inbounds %LSlice, ptr %t961, i32 0, i32 0 %t963 = load ptr, ptr %t962 %t964 = getelementptr inbounds ptr, ptr %t963, i32 0 %t965 = load ptr, ptr %t964 %t966 = call ptr @fn_emit_expr(ptr %t965) store ptr %t966, ptr %t967 %t968 = load ptr, ptr %t0 %t969 = getelementptr inbounds %Cmp_Node, ptr %t968, i32 0, i32 7 %t970 = load ptr, ptr %t969 %t971 = getelementptr inbounds %LSlice, ptr %t970, i32 0, i32 0 %t972 = load ptr, ptr %t971 %t973 = getelementptr inbounds ptr, ptr %t972, i32 1 %t974 = load ptr, ptr %t973 %t975 = call ptr @fn_emit_expr(ptr %t974) store ptr %t975, ptr %t976 %t977 = load ptr, ptr %t967 %t978 = getelementptr inbounds %Cmp_Val, ptr %t977, i32 0, i32 0 %t979 = load ptr, ptr %t978 %t980 = call ptr @fn_str_concat(ptr @.str6144, ptr %t979) %t981 = call ptr @fn_str_concat(ptr %t980, ptr @.str6145) %t982 = load ptr, ptr %t976 %t983 = getelementptr inbounds %Cmp_Val, ptr %t982, i32 0, i32 0 %t984 = load ptr, ptr %t983 %t985 = call ptr @fn_str_concat(ptr %t981, ptr %t984) %t986 = call ptr @fn_str_concat(ptr %t985, ptr @.str6146) %t987 = call ptr @fn_emit_bind(ptr %t986) %t988 = call ptr @fn_val(ptr %t987, ptr @.str6147) store ptr %t988, ptr %retval br label %ret ifend144: %t989 = load ptr, ptr %t38 %t990 = call i32 @fn_str_eq(ptr %t989, ptr @.str6148) %t991 = icmp ne i32 %t990, 0 br i1 %t991, label %then145, label %ifend147 then145: %t992 = call ptr @fn_emit_bind(ptr @.str6149) %t993 = call ptr @fn_val(ptr %t992, ptr @.str6150) store ptr %t993, ptr %retval br label %ret ifend147: %t994 = load ptr, ptr %t38 %t995 = call i32 @fn_str_eq(ptr %t994, ptr @.str6151) %t996 = icmp ne i32 %t995, 0 br i1 %t996, label %then148, label %ifend150 then148: %t997 = load ptr, ptr %t0 %t998 = getelementptr inbounds %Cmp_Node, ptr %t997, i32 0, i32 7 %t999 = load ptr, ptr %t998 %t1000 = getelementptr inbounds %LSlice, ptr %t999, i32 0, i32 0 %t1001 = load ptr, ptr %t1000 %t1002 = getelementptr inbounds ptr, ptr %t1001, i32 0 %t1003 = load ptr, ptr %t1002 %t1004 = call ptr @fn_emit_expr(ptr %t1003) store ptr %t1004, ptr %t1005 %t1006 = load ptr, ptr %t1005 %t1007 = getelementptr inbounds %Cmp_Val, ptr %t1006, i32 0, i32 0 %t1008 = load ptr, ptr %t1007 %t1009 = call ptr @fn_str_concat(ptr @.str6152, ptr %t1008) %t1010 = call ptr @fn_str_concat(ptr %t1009, ptr @.str6153) %t1011 = call ptr @fn_emit_bind(ptr %t1010) %t1012 = call ptr @fn_val(ptr %t1011, ptr @.str6154) store ptr %t1012, ptr %retval br label %ret ifend150: %t1013 = load ptr, ptr %t38 %t1014 = call i32 @fn_str_eq(ptr %t1013, ptr @.str6155) %t1015 = icmp ne i32 %t1014, 0 br i1 %t1015, label %then151, label %ifend153 then151: %t1016 = load ptr, ptr %t0 %t1017 = getelementptr inbounds %Cmp_Node, ptr %t1016, i32 0, i32 7 %t1018 = load ptr, ptr %t1017 %t1019 = getelementptr inbounds %LSlice, ptr %t1018, i32 0, i32 0 %t1020 = load ptr, ptr %t1019 %t1021 = getelementptr inbounds ptr, ptr %t1020, i32 0 %t1022 = load ptr, ptr %t1021 %t1023 = call ptr @fn_emit_expr(ptr %t1022) store ptr %t1023, ptr %t1024 %t1025 = load ptr, ptr %t1024 %t1026 = getelementptr inbounds %Cmp_Val, ptr %t1025, i32 0, i32 0 %t1027 = load ptr, ptr %t1026 %t1028 = call ptr @fn_str_concat(ptr @.str6156, ptr %t1027) %t1029 = call ptr @fn_str_concat(ptr %t1028, ptr @.str6157) %t1030 = call ptr @fn_emit_bind(ptr %t1029) %t1031 = call ptr @fn_val(ptr %t1030, ptr @.str6158) store ptr %t1031, ptr %retval br label %ret ifend153: %t1032 = load ptr, ptr %t38 %t1033 = call i32 @fn_str_eq(ptr %t1032, ptr @.str6159) %t1034 = icmp ne i32 %t1033, 0 br i1 %t1034, label %then154, label %ifend156 then154: %t1035 = load ptr, ptr %t0 %t1036 = getelementptr inbounds %Cmp_Node, ptr %t1035, i32 0, i32 7 %t1037 = load ptr, ptr %t1036 %t1038 = getelementptr inbounds %LSlice, ptr %t1037, i32 0, i32 0 %t1039 = load ptr, ptr %t1038 %t1040 = getelementptr inbounds ptr, ptr %t1039, i32 0 %t1041 = load ptr, ptr %t1040 %t1042 = call ptr @fn_emit_expr(ptr %t1041) store ptr %t1042, ptr %t1043 %t1044 = load ptr, ptr %t0 %t1045 = getelementptr inbounds %Cmp_Node, ptr %t1044, i32 0, i32 7 %t1046 = load ptr, ptr %t1045 %t1047 = getelementptr inbounds %LSlice, ptr %t1046, i32 0, i32 0 %t1048 = load ptr, ptr %t1047 %t1049 = getelementptr inbounds ptr, ptr %t1048, i32 1 %t1050 = load ptr, ptr %t1049 %t1051 = call ptr @fn_emit_expr(ptr %t1050) store ptr %t1051, ptr %t1052 %t1053 = load ptr, ptr %t1043 %t1054 = getelementptr inbounds %Cmp_Val, ptr %t1053, i32 0, i32 0 %t1055 = load ptr, ptr %t1054 %t1056 = call ptr @fn_str_concat(ptr @.str6160, ptr %t1055) %t1057 = call ptr @fn_str_concat(ptr %t1056, ptr @.str6161) %t1058 = load ptr, ptr %t1052 %t1059 = getelementptr inbounds %Cmp_Val, ptr %t1058, i32 0, i32 0 %t1060 = load ptr, ptr %t1059 %t1061 = call ptr @fn_str_concat(ptr %t1057, ptr %t1060) %t1062 = call ptr @fn_str_concat(ptr %t1061, ptr @.str6162) %t1063 = call ptr @fn_emit_bind(ptr %t1062) %t1064 = call ptr @fn_val(ptr %t1063, ptr @.str6163) store ptr %t1064, ptr %retval br label %ret ifend156: %t1065 = load ptr, ptr %t38 %t1066 = call i32 @fn_str_eq(ptr %t1065, ptr @.str6164) %t1067 = icmp ne i32 %t1066, 0 br i1 %t1067, label %then157, label %ifend159 then157: %t1068 = load ptr, ptr %t0 %t1069 = getelementptr inbounds %Cmp_Node, ptr %t1068, i32 0, i32 7 %t1070 = load ptr, ptr %t1069 %t1071 = getelementptr inbounds %LSlice, ptr %t1070, i32 0, i32 0 %t1072 = load ptr, ptr %t1071 %t1073 = getelementptr inbounds ptr, ptr %t1072, i32 0 %t1074 = load ptr, ptr %t1073 %t1075 = call ptr @fn_emit_expr(ptr %t1074) store ptr %t1075, ptr %t1076 %t1077 = load ptr, ptr %t0 %t1078 = getelementptr inbounds %Cmp_Node, ptr %t1077, i32 0, i32 7 %t1079 = load ptr, ptr %t1078 %t1080 = getelementptr inbounds %LSlice, ptr %t1079, i32 0, i32 0 %t1081 = load ptr, ptr %t1080 %t1082 = getelementptr inbounds ptr, ptr %t1081, i32 1 %t1083 = load ptr, ptr %t1082 %t1084 = call ptr @fn_emit_expr(ptr %t1083) store ptr %t1084, ptr %t1085 %t1086 = load ptr, ptr %t1076 %t1087 = getelementptr inbounds %Cmp_Val, ptr %t1086, i32 0, i32 0 %t1088 = load ptr, ptr %t1087 %t1089 = call ptr @fn_str_concat(ptr @.str6165, ptr %t1088) %t1090 = call ptr @fn_str_concat(ptr %t1089, ptr @.str6166) %t1091 = load ptr, ptr %t1085 %t1092 = getelementptr inbounds %Cmp_Val, ptr %t1091, i32 0, i32 0 %t1093 = load ptr, ptr %t1092 %t1094 = call ptr @fn_str_concat(ptr %t1090, ptr %t1093) %t1095 = call ptr @fn_str_concat(ptr %t1094, ptr @.str6167) %t1096 = call ptr @fn_emit_bind(ptr %t1095) %t1097 = call ptr @fn_val(ptr %t1096, ptr @.str6168) store ptr %t1097, ptr %retval br label %ret ifend159: %t1098 = load ptr, ptr %t38 %t1099 = call i32 @fn_str_eq(ptr %t1098, ptr @.str6169) %t1100 = icmp ne i32 %t1099, 0 br i1 %t1100, label %then160, label %ifend162 then160: %t1101 = load ptr, ptr %t0 %t1102 = getelementptr inbounds %Cmp_Node, ptr %t1101, i32 0, i32 7 %t1103 = load ptr, ptr %t1102 %t1104 = getelementptr inbounds %LSlice, ptr %t1103, i32 0, i32 0 %t1105 = load ptr, ptr %t1104 %t1106 = getelementptr inbounds ptr, ptr %t1105, i32 0 %t1107 = load ptr, ptr %t1106 %t1108 = call ptr @fn_emit_expr(ptr %t1107) store ptr %t1108, ptr %t1109 %t1110 = load ptr, ptr %t0 %t1111 = getelementptr inbounds %Cmp_Node, ptr %t1110, i32 0, i32 7 %t1112 = load ptr, ptr %t1111 %t1113 = getelementptr inbounds %LSlice, ptr %t1112, i32 0, i32 0 %t1114 = load ptr, ptr %t1113 %t1115 = getelementptr inbounds ptr, ptr %t1114, i32 1 %t1116 = load ptr, ptr %t1115 %t1117 = call ptr @fn_emit_expr(ptr %t1116) store ptr %t1117, ptr %t1118 call void @fn_emit(ptr @.str6170) %t1119 = load ptr, ptr %t1109 %t1120 = getelementptr inbounds %Cmp_Val, ptr %t1119, i32 0, i32 0 %t1121 = load ptr, ptr %t1120 call void @fn_emit(ptr %t1121) call void @fn_emit(ptr @.str6171) %t1122 = load ptr, ptr %t1118 %t1123 = getelementptr inbounds %Cmp_Val, ptr %t1122, i32 0, i32 0 %t1124 = load ptr, ptr %t1123 call void @fn_emit(ptr %t1124) call void @fn_emit(ptr @.str6172) %t1125 = call ptr @fn_val(ptr @.str6173, ptr @.str6174) store ptr %t1125, ptr %retval br label %ret ifend162: %t1126 = load ptr, ptr %t38 %t1127 = call i32 @fn_str_eq(ptr %t1126, ptr @.str6175) %t1128 = icmp ne i32 %t1127, 0 br i1 %t1128, label %then163, label %ifend165 then163: %t1129 = load ptr, ptr %t0 %t1130 = getelementptr inbounds %Cmp_Node, ptr %t1129, i32 0, i32 7 %t1131 = load ptr, ptr %t1130 %t1132 = getelementptr inbounds %LSlice, ptr %t1131, i32 0, i32 0 %t1133 = load ptr, ptr %t1132 %t1134 = getelementptr inbounds ptr, ptr %t1133, i32 0 %t1135 = load ptr, ptr %t1134 %t1136 = call ptr @fn_emit_expr(ptr %t1135) store ptr %t1136, ptr %t1137 %t1138 = load ptr, ptr %t0 %t1139 = getelementptr inbounds %Cmp_Node, ptr %t1138, i32 0, i32 7 %t1140 = load ptr, ptr %t1139 %t1141 = getelementptr inbounds %LSlice, ptr %t1140, i32 0, i32 0 %t1142 = load ptr, ptr %t1141 %t1143 = getelementptr inbounds ptr, ptr %t1142, i32 1 %t1144 = load ptr, ptr %t1143 %t1145 = call ptr @fn_emit_expr(ptr %t1144) store ptr %t1145, ptr %t1146 call void @fn_emit(ptr @.str6176) %t1147 = load ptr, ptr %t1137 %t1148 = getelementptr inbounds %Cmp_Val, ptr %t1147, i32 0, i32 0 %t1149 = load ptr, ptr %t1148 call void @fn_emit(ptr %t1149) call void @fn_emit(ptr @.str6177) %t1150 = load ptr, ptr %t1146 %t1151 = getelementptr inbounds %Cmp_Val, ptr %t1150, i32 0, i32 0 %t1152 = load ptr, ptr %t1151 call void @fn_emit(ptr %t1152) call void @fn_emit(ptr @.str6178) %t1153 = call ptr @fn_val(ptr @.str6179, ptr @.str6180) store ptr %t1153, ptr %retval br label %ret ifend165: %t1154 = load ptr, ptr %t38 %t1155 = call i32 @fn_str_eq(ptr %t1154, ptr @.str6181) %t1156 = icmp ne i32 %t1155, 0 br i1 %t1156, label %then166, label %ifend168 then166: %t1157 = load ptr, ptr %t0 %t1158 = getelementptr inbounds %Cmp_Node, ptr %t1157, i32 0, i32 7 %t1159 = load ptr, ptr %t1158 %t1160 = getelementptr inbounds %LSlice, ptr %t1159, i32 0, i32 0 %t1161 = load ptr, ptr %t1160 %t1162 = getelementptr inbounds ptr, ptr %t1161, i32 0 %t1163 = load ptr, ptr %t1162 %t1164 = call ptr @fn_emit_expr(ptr %t1163) store ptr %t1164, ptr %t1165 %t1166 = load ptr, ptr %t1165 %t1167 = getelementptr inbounds %Cmp_Val, ptr %t1166, i32 0, i32 0 %t1168 = load ptr, ptr %t1167 %t1169 = call ptr @fn_str_concat(ptr @.str6182, ptr %t1168) %t1170 = call ptr @fn_str_concat(ptr %t1169, ptr @.str6183) %t1171 = call ptr @fn_emit_bind(ptr %t1170) %t1172 = call ptr @fn_val(ptr %t1171, ptr @.str6184) store ptr %t1172, ptr %retval br label %ret ifend168: %t1173 = load ptr, ptr %t38 %t1174 = call i32 @fn_str_eq(ptr %t1173, ptr @.str6185) %t1175 = icmp ne i32 %t1174, 0 br i1 %t1175, label %then169, label %ifend171 then169: %t1176 = call ptr @fn_emit_bind(ptr @.str6186) %t1177 = call ptr @fn_val(ptr %t1176, ptr @.str6187) store ptr %t1177, ptr %retval br label %ret ifend171: %t1178 = load ptr, ptr %t38 %t1179 = call i32 @fn_str_eq(ptr %t1178, ptr @.str6188) %t1180 = icmp ne i32 %t1179, 0 br i1 %t1180, label %then172, label %ifend174 then172: %t1181 = load ptr, ptr %t0 %t1182 = getelementptr inbounds %Cmp_Node, ptr %t1181, i32 0, i32 7 %t1183 = load ptr, ptr %t1182 %t1184 = getelementptr inbounds %LSlice, ptr %t1183, i32 0, i32 0 %t1185 = load ptr, ptr %t1184 %t1186 = getelementptr inbounds ptr, ptr %t1185, i32 0 %t1187 = load ptr, ptr %t1186 %t1188 = call ptr @fn_emit_expr(ptr %t1187) store ptr %t1188, ptr %t1189 %t1190 = load ptr, ptr %t1189 %t1191 = getelementptr inbounds %Cmp_Val, ptr %t1190, i32 0, i32 0 %t1192 = load ptr, ptr %t1191 %t1193 = call ptr @fn_str_concat(ptr @.str6189, ptr %t1192) %t1194 = call ptr @fn_str_concat(ptr %t1193, ptr @.str6190) %t1195 = call ptr @fn_emit_bind(ptr %t1194) %t1196 = call ptr @fn_val(ptr %t1195, ptr @.str6191) store ptr %t1196, ptr %retval br label %ret ifend174: %t1197 = load ptr, ptr %t38 %t1198 = call i32 @fn_str_eq(ptr %t1197, ptr @.str6192) %t1199 = icmp ne i32 %t1198, 0 br i1 %t1199, label %then175, label %ifend177 then175: %t1200 = load ptr, ptr %t0 %t1201 = getelementptr inbounds %Cmp_Node, ptr %t1200, i32 0, i32 7 %t1202 = load ptr, ptr %t1201 %t1203 = getelementptr inbounds %LSlice, ptr %t1202, i32 0, i32 0 %t1204 = load ptr, ptr %t1203 %t1205 = getelementptr inbounds ptr, ptr %t1204, i32 0 %t1206 = load ptr, ptr %t1205 %t1207 = call ptr @fn_emit_expr(ptr %t1206) store ptr %t1207, ptr %t1208 %t1209 = load ptr, ptr %t1208 %t1210 = getelementptr inbounds %Cmp_Val, ptr %t1209, i32 0, i32 0 %t1211 = load ptr, ptr %t1210 %t1212 = call ptr @fn_str_concat(ptr @.str6193, ptr %t1211) %t1213 = call ptr @fn_str_concat(ptr %t1212, ptr @.str6194) %t1214 = call ptr @fn_emit_bind(ptr %t1213) %t1215 = call ptr @fn_val(ptr %t1214, ptr @.str6195) store ptr %t1215, ptr %retval br label %ret ifend177: %t1216 = load ptr, ptr %t38 %t1217 = call i32 @fn_str_eq(ptr %t1216, ptr @.str6196) %t1218 = icmp ne i32 %t1217, 0 br i1 %t1218, label %then178, label %ifend180 then178: %t1219 = load ptr, ptr %t0 %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 ptr, ptr %t1223, i32 0 %t1225 = load ptr, ptr %t1224 %t1226 = call ptr @fn_emit_expr(ptr %t1225) store ptr %t1226, ptr %t1227 %t1228 = load ptr, ptr %t0 %t1229 = getelementptr inbounds %Cmp_Node, ptr %t1228, i32 0, i32 7 %t1230 = load ptr, ptr %t1229 %t1231 = getelementptr inbounds %LSlice, ptr %t1230, i32 0, i32 0 %t1232 = load ptr, ptr %t1231 %t1233 = getelementptr inbounds ptr, ptr %t1232, i32 1 %t1234 = load ptr, ptr %t1233 %t1235 = call ptr @fn_emit_expr(ptr %t1234) store ptr %t1235, ptr %t1236 %t1237 = load ptr, ptr %t1227 %t1238 = getelementptr inbounds %Cmp_Val, ptr %t1237, i32 0, i32 0 %t1239 = load ptr, ptr %t1238 %t1240 = call ptr @fn_str_concat(ptr @.str6197, ptr %t1239) %t1241 = call ptr @fn_str_concat(ptr %t1240, ptr @.str6198) %t1242 = load ptr, ptr %t1236 %t1243 = getelementptr inbounds %Cmp_Val, ptr %t1242, i32 0, i32 0 %t1244 = load ptr, ptr %t1243 %t1245 = call ptr @fn_str_concat(ptr %t1241, ptr %t1244) %t1246 = call ptr @fn_str_concat(ptr %t1245, ptr @.str6199) %t1247 = call ptr @fn_emit_bind(ptr %t1246) %t1248 = call ptr @fn_val(ptr %t1247, ptr @.str6200) store ptr %t1248, ptr %retval br label %ret ifend180: %t1249 = load ptr, ptr %t38 %t1250 = call i32 @fn_str_eq(ptr %t1249, ptr @.str6201) %t1251 = icmp ne i32 %t1250, 0 br i1 %t1251, label %then181, label %ifend183 then181: %t1252 = load ptr, ptr %t0 %t1253 = getelementptr inbounds %Cmp_Node, ptr %t1252, i32 0, i32 7 %t1254 = load ptr, ptr %t1253 %t1255 = getelementptr inbounds %LSlice, ptr %t1254, i32 0, i32 0 %t1256 = load ptr, ptr %t1255 %t1257 = getelementptr inbounds ptr, ptr %t1256, i32 0 %t1258 = load ptr, ptr %t1257 %t1259 = call ptr @fn_emit_expr(ptr %t1258) store ptr %t1259, ptr %t1260 %t1261 = load ptr, ptr %t0 %t1262 = getelementptr inbounds %Cmp_Node, ptr %t1261, i32 0, i32 7 %t1263 = load ptr, ptr %t1262 %t1264 = getelementptr inbounds %LSlice, ptr %t1263, i32 0, i32 0 %t1265 = load ptr, ptr %t1264 %t1266 = getelementptr inbounds ptr, ptr %t1265, i32 1 %t1267 = load ptr, ptr %t1266 %t1268 = call ptr @fn_emit_expr(ptr %t1267) store ptr %t1268, ptr %t1269 %t1270 = load ptr, ptr %t1260 %t1271 = getelementptr inbounds %Cmp_Val, ptr %t1270, i32 0, i32 0 %t1272 = load ptr, ptr %t1271 %t1273 = call ptr @fn_str_concat(ptr @.str6202, ptr %t1272) %t1274 = call ptr @fn_str_concat(ptr %t1273, ptr @.str6203) %t1275 = load ptr, ptr %t1269 %t1276 = getelementptr inbounds %Cmp_Val, ptr %t1275, i32 0, i32 0 %t1277 = load ptr, ptr %t1276 %t1278 = call ptr @fn_str_concat(ptr %t1274, ptr %t1277) %t1279 = call ptr @fn_str_concat(ptr %t1278, ptr @.str6204) %t1280 = call ptr @fn_emit_bind(ptr %t1279) %t1281 = call ptr @fn_val(ptr %t1280, ptr @.str6205) store ptr %t1281, ptr %retval br label %ret ifend183: %t1282 = load ptr, ptr %t38 %t1283 = call i32 @fn_is_intrinsic(ptr %t1282) %t1284 = icmp ne i32 %t1283, 0 br i1 %t1284, label %then184, label %ifend186 then184: %t1285 = load ptr, ptr %t38 %t1286 = load ptr, ptr %t0 %t1287 = call ptr @fn_emit_intrinsic(ptr %t1285, ptr %t1286) store ptr %t1287, ptr %retval br label %ret ifend186: %t1288 = load ptr, ptr %t38 %t1289 = call i32 @fn_is_intrinsic2(ptr %t1288) %t1290 = icmp ne i32 %t1289, 0 br i1 %t1290, label %then187, label %ifend189 then187: %t1291 = load ptr, ptr %t38 %t1292 = load ptr, ptr %t0 %t1293 = call ptr @fn_emit_intrinsic2(ptr %t1291, ptr %t1292) store ptr %t1293, ptr %retval br label %ret ifend189: %t1294 = load ptr, ptr %t38 %t1295 = call i32 @fn_is_math_builtin(ptr %t1294) %t1296 = icmp ne i32 %t1295, 0 br i1 %t1296, label %then190, label %ifend192 then190: %t1297 = load ptr, ptr %t38 %t1298 = load ptr, ptr %t0 %t1299 = call ptr @fn_emit_math_builtin(ptr %t1297, ptr %t1298) store ptr %t1299, ptr %retval br label %ret ifend192: %t1300 = load ptr, ptr %t38 %t1301 = call ptr @fn_find_extern(ptr %t1300) store ptr %t1301, ptr %t1302 %t1303 = load ptr, ptr %t1302 %t1304 = icmp ne ptr %t1303, null %t1305 = zext i1 %t1304 to i32 %t1306 = icmp ne i32 %t1305, 0 br i1 %t1306, label %then193, label %ifend195 then193: %t1307 = load ptr, ptr %t0 %t1308 = load ptr, ptr %t1302 %t1309 = call ptr @fn_param_labels(ptr %t1308) call void @fn_reorder_named(ptr %t1307, ptr %t1309) %t1310 = getelementptr %LSlice, ptr null, i32 1 %t1311 = ptrtoint ptr %t1310 to i64 %t1312 = call ptr @malloc(i64 %t1311) %t1313 = getelementptr inbounds %LSlice, ptr %t1312, i32 0, i32 0 store ptr null, ptr %t1313 %t1314 = getelementptr inbounds %LSlice, ptr %t1312, i32 0, i32 1 store i32 0, ptr %t1314 %t1315 = getelementptr inbounds %LSlice, ptr %t1312, i32 0, i32 2 store i32 0, ptr %t1315 store ptr %t1312, ptr %t1316 %t1317 = getelementptr %LSlice, ptr null, i32 1 %t1318 = ptrtoint ptr %t1317 to i64 %t1319 = call ptr @malloc(i64 %t1318) %t1320 = getelementptr inbounds %LSlice, ptr %t1319, i32 0, i32 0 store ptr null, ptr %t1320 %t1321 = getelementptr inbounds %LSlice, ptr %t1319, i32 0, i32 1 store i32 0, ptr %t1321 %t1322 = getelementptr inbounds %LSlice, ptr %t1319, i32 0, i32 2 store i32 0, ptr %t1322 store ptr %t1319, ptr %t1323 store i32 0, ptr %t1324 br label %wcond196 wcond196: %t1325 = load i32, ptr %t1324 %t1326 = load ptr, ptr %t0 %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 1 %t1330 = load i32, ptr %t1329 %t1331 = icmp slt i32 %t1325, %t1330 %t1332 = zext i1 %t1331 to i32 %t1333 = icmp ne i32 %t1332, 0 br i1 %t1333, label %wbody197, label %wend198 wbody197: %t1334 = load ptr, ptr %t0 %t1335 = getelementptr inbounds %Cmp_Node, ptr %t1334, i32 0, i32 7 %t1336 = load ptr, ptr %t1335 %t1337 = getelementptr inbounds %LSlice, ptr %t1336, i32 0, i32 0 %t1338 = load ptr, ptr %t1337 %t1339 = load i32, ptr %t1324 %t1340 = getelementptr inbounds ptr, ptr %t1338, i32 %t1339 %t1341 = load ptr, ptr %t1340 %t1342 = call ptr @fn_emit_expr(ptr %t1341) store ptr %t1342, ptr %t1343 %t1344 = load ptr, ptr %t1316 %t1345 = getelementptr inbounds %LSlice, ptr %t1344, i32 0, i32 1 %t1346 = getelementptr inbounds %LSlice, ptr %t1344, i32 0, i32 2 %t1347 = getelementptr inbounds %LSlice, ptr %t1344, i32 0, i32 0 %t1348 = load i32, ptr %t1345 %t1349 = load i32, ptr %t1346 %t1350 = icmp sge i32 %t1348, %t1349 br i1 %t1350, label %grow199, label %put200 grow199: %t1351 = mul i32 %t1349, 2 %t1352 = icmp eq i32 %t1349, 0 %t1353 = select i1 %t1352, i32 8, i32 %t1351 %t1354 = getelementptr ptr, ptr null, i32 1 %t1355 = ptrtoint ptr %t1354 to i64 %t1356 = zext i32 %t1353 to i64 %t1357 = mul i64 %t1356, %t1355 %t1358 = load ptr, ptr %t1347 %t1359 = call ptr @realloc(ptr %t1358, i64 %t1357) store ptr %t1359, ptr %t1347 store i32 %t1353, ptr %t1346 br label %put200 put200: %t1360 = load ptr, ptr %t1343 %t1361 = getelementptr inbounds %Cmp_Val, ptr %t1360, i32 0, i32 0 %t1362 = load ptr, ptr %t1361 %t1363 = load ptr, ptr %t1347 %t1364 = getelementptr inbounds ptr, ptr %t1363, i32 %t1348 store ptr %t1362, ptr %t1364 %t1365 = add i32 %t1348, 1 store i32 %t1365, ptr %t1345 %t1366 = load ptr, ptr %t1323 %t1367 = getelementptr inbounds %LSlice, ptr %t1366, i32 0, i32 1 %t1368 = getelementptr inbounds %LSlice, ptr %t1366, i32 0, i32 2 %t1369 = getelementptr inbounds %LSlice, ptr %t1366, i32 0, i32 0 %t1370 = load i32, ptr %t1367 %t1371 = load i32, ptr %t1368 %t1372 = icmp sge i32 %t1370, %t1371 br i1 %t1372, label %grow201, label %put202 grow201: %t1373 = mul i32 %t1371, 2 %t1374 = icmp eq i32 %t1371, 0 %t1375 = select i1 %t1374, i32 8, i32 %t1373 %t1376 = getelementptr ptr, ptr null, i32 1 %t1377 = ptrtoint ptr %t1376 to i64 %t1378 = zext i32 %t1375 to i64 %t1379 = mul i64 %t1378, %t1377 %t1380 = load ptr, ptr %t1369 %t1381 = call ptr @realloc(ptr %t1380, i64 %t1379) store ptr %t1381, ptr %t1369 store i32 %t1375, ptr %t1368 br label %put202 put202: %t1382 = load ptr, ptr %t1343 %t1383 = getelementptr inbounds %Cmp_Val, ptr %t1382, i32 0, i32 1 %t1384 = load ptr, ptr %t1383 %t1385 = load ptr, ptr %t1369 %t1386 = getelementptr inbounds ptr, ptr %t1385, i32 %t1370 store ptr %t1384, ptr %t1386 %t1387 = add i32 %t1370, 1 store i32 %t1387, ptr %t1367 %t1388 = load i32, ptr %t1324 %t1389 = add i32 %t1388, 1 store i32 %t1389, ptr %t1324 br label %wcond196 wend198: %t1390 = load ptr, ptr %t1302 %t1391 = getelementptr inbounds %Cmp_Node, ptr %t1390, i32 0, i32 3 %t1392 = load ptr, ptr %t1391 %t1393 = call ptr @fn_llty(ptr %t1392) store ptr %t1393, ptr %t1394 call void @fn_emit(ptr @.str6206) store ptr @.str6207, ptr %t1395 %t1396 = load ptr, ptr %t1394 %t1397 = call i32 @fn_str_eq(ptr %t1396, ptr @.str6208) %t1398 = icmp eq i32 %t1397, 0 %t1399 = zext i1 %t1398 to i32 %t1400 = icmp ne i32 %t1399, 0 br i1 %t1400, label %then203, label %ifend205 then203: %t1401 = call ptr @fn_nreg() store ptr %t1401, ptr %t1395 %t1402 = load ptr, ptr %t1395 call void @fn_emit(ptr %t1402) call void @fn_emit(ptr @.str6209) br label %ifend205 ifend205: call void @fn_emit(ptr @.str6210) %t1403 = load ptr, ptr %t1394 call void @fn_emit(ptr %t1403) call void @fn_emit(ptr @.str6211) %t1404 = load ptr, ptr %t1302 %t1405 = getelementptr inbounds %Cmp_Node, ptr %t1404, i32 0, i32 4 %t1406 = load ptr, ptr %t1405 %t1407 = getelementptr inbounds %Cmp_Node, ptr %t1406, i32 0, i32 1 %t1408 = load ptr, ptr %t1407 call void @fn_emit(ptr %t1408) call void @fn_emit(ptr @.str6212) store i32 0, ptr %t1324 br label %wcond206 wcond206: %t1409 = load i32, ptr %t1324 %t1410 = load ptr, ptr %t1316 %t1411 = getelementptr inbounds %LSlice, ptr %t1410, i32 0, i32 1 %t1412 = load i32, ptr %t1411 %t1413 = icmp slt i32 %t1409, %t1412 %t1414 = zext i1 %t1413 to i32 %t1415 = icmp ne i32 %t1414, 0 br i1 %t1415, label %wbody207, label %wend208 wbody207: %t1416 = load i32, ptr %t1324 %t1417 = icmp sgt i32 %t1416, 0 %t1418 = zext i1 %t1417 to i32 %t1419 = icmp ne i32 %t1418, 0 br i1 %t1419, label %then209, label %ifend211 then209: call void @fn_emit(ptr @.str6213) br label %ifend211 ifend211: %t1420 = load ptr, ptr %t1323 %t1421 = getelementptr inbounds %LSlice, ptr %t1420, i32 0, i32 0 %t1422 = load ptr, ptr %t1421 %t1423 = load i32, ptr %t1324 %t1424 = getelementptr inbounds ptr, ptr %t1422, i32 %t1423 %t1425 = load ptr, ptr %t1424 %t1426 = call ptr @fn_llty(ptr %t1425) call void @fn_emit(ptr %t1426) call void @fn_emit(ptr @.str6214) %t1427 = load ptr, ptr %t1316 %t1428 = getelementptr inbounds %LSlice, ptr %t1427, i32 0, i32 0 %t1429 = load ptr, ptr %t1428 %t1430 = load i32, ptr %t1324 %t1431 = getelementptr inbounds ptr, ptr %t1429, i32 %t1430 %t1432 = load ptr, ptr %t1431 call void @fn_emit(ptr %t1432) %t1433 = load i32, ptr %t1324 %t1434 = add i32 %t1433, 1 store i32 %t1434, ptr %t1324 br label %wcond206 wend208: call void @fn_emit(ptr @.str6215) %t1435 = load ptr, ptr %t1395 %t1436 = load ptr, ptr %t1302 %t1437 = getelementptr inbounds %Cmp_Node, ptr %t1436, i32 0, i32 3 %t1438 = load ptr, ptr %t1437 %t1439 = call ptr @fn_val(ptr %t1435, ptr %t1438) store ptr %t1439, ptr %retval br label %ret ifend195: %t1440 = load ptr, ptr %t38 %t1441 = call ptr @fn_find_fn(ptr %t1440) store ptr %t1441, ptr %t1442 %t1443 = load ptr, ptr %t38 store ptr %t1443, ptr %t1444 %t1445 = load ptr, ptr %t1442 %t1446 = icmp eq ptr %t1445, null %t1447 = zext i1 %t1446 to i32 %t1448 = icmp ne i32 %t1447, 0 br i1 %t1448, label %then212, label %ifend214 then212: %t1449 = load ptr, ptr %t38 %t1450 = call ptr @fn_str_concat(ptr @.str6216, ptr %t1449) store ptr %t1450, ptr %t1451 %t1452 = load ptr, ptr %t1451 %t1453 = call ptr @fn_find_fn(ptr %t1452) store ptr %t1453, ptr %t1442 %t1454 = load ptr, ptr %t1442 %t1455 = icmp eq ptr %t1454, null %t1456 = zext i1 %t1455 to i32 %t1457 = icmp ne i32 %t1456, 0 br i1 %t1457, label %then215, label %ifend217 then215: %t1458 = load ptr, ptr %t38 %t1459 = call ptr @fn_str_concat(ptr @.str6217, ptr %t1458) call void @fn_perr(ptr %t1459) br label %ifend217 ifend217: %t1460 = load ptr, ptr %t1451 store ptr %t1460, ptr %t1444 br label %ifend214 ifend214: %t1461 = load ptr, ptr %t0 %t1462 = load ptr, ptr %t1442 %t1463 = call ptr @fn_param_labels(ptr %t1462) call void @fn_reorder_named(ptr %t1461, ptr %t1463) %t1464 = load ptr, ptr %t1442 %t1465 = call ptr @fn_param_types(ptr %t1464) store ptr %t1465, ptr %t1466 %t1467 = getelementptr %LSlice, ptr null, i32 1 %t1468 = ptrtoint ptr %t1467 to i64 %t1469 = call ptr @malloc(i64 %t1468) %t1470 = getelementptr inbounds %LSlice, ptr %t1469, i32 0, i32 0 store ptr null, ptr %t1470 %t1471 = getelementptr inbounds %LSlice, ptr %t1469, i32 0, i32 1 store i32 0, ptr %t1471 %t1472 = getelementptr inbounds %LSlice, ptr %t1469, i32 0, i32 2 store i32 0, ptr %t1472 store ptr %t1469, ptr %t1473 %t1474 = getelementptr %LSlice, ptr null, i32 1 %t1475 = ptrtoint ptr %t1474 to i64 %t1476 = call ptr @malloc(i64 %t1475) %t1477 = getelementptr inbounds %LSlice, ptr %t1476, i32 0, i32 0 store ptr null, ptr %t1477 %t1478 = getelementptr inbounds %LSlice, ptr %t1476, i32 0, i32 1 store i32 0, ptr %t1478 %t1479 = getelementptr inbounds %LSlice, ptr %t1476, i32 0, i32 2 store i32 0, ptr %t1479 store ptr %t1476, ptr %t1480 store i32 0, ptr %t1481 br label %wcond218 wcond218: %t1482 = load i32, ptr %t1481 %t1483 = load ptr, ptr %t0 %t1484 = getelementptr inbounds %Cmp_Node, ptr %t1483, i32 0, i32 7 %t1485 = load ptr, ptr %t1484 %t1486 = getelementptr inbounds %LSlice, ptr %t1485, i32 0, i32 1 %t1487 = load i32, ptr %t1486 %t1488 = icmp slt i32 %t1482, %t1487 %t1489 = zext i1 %t1488 to i32 %t1490 = icmp ne i32 %t1489, 0 br i1 %t1490, label %wbody219, label %wend220 wbody219: %t1491 = load ptr, ptr %t0 %t1492 = getelementptr inbounds %Cmp_Node, ptr %t1491, i32 0, i32 7 %t1493 = load ptr, ptr %t1492 %t1494 = getelementptr inbounds %LSlice, ptr %t1493, i32 0, i32 0 %t1495 = load ptr, ptr %t1494 %t1496 = load i32, ptr %t1481 %t1497 = getelementptr inbounds ptr, ptr %t1495, i32 %t1496 %t1498 = load ptr, ptr %t1497 %t1499 = call ptr @fn_emit_expr(ptr %t1498) store ptr %t1499, ptr %t1500 %t1501 = load ptr, ptr %t1500 %t1502 = getelementptr inbounds %Cmp_Val, ptr %t1501, i32 0, i32 1 %t1503 = load ptr, ptr %t1502 store ptr %t1503, ptr %t1504 %t1505 = load i32, ptr %t1481 %t1506 = load ptr, ptr %t1466 %t1507 = getelementptr inbounds %LSlice, ptr %t1506, i32 0, i32 1 %t1508 = load i32, ptr %t1507 %t1509 = icmp slt i32 %t1505, %t1508 %t1510 = zext i1 %t1509 to i32 %t1511 = icmp ne i32 %t1510, 0 br i1 %t1511, label %then221, label %ifend223 then221: %t1512 = load ptr, ptr %t1466 %t1513 = getelementptr inbounds %LSlice, ptr %t1512, i32 0, i32 0 %t1514 = load ptr, ptr %t1513 %t1515 = load i32, ptr %t1481 %t1516 = getelementptr inbounds ptr, ptr %t1514, i32 %t1515 %t1517 = load ptr, ptr %t1516 store ptr %t1517, ptr %t1504 br label %ifend223 ifend223: %t1518 = load ptr, ptr %t1473 %t1519 = getelementptr inbounds %LSlice, ptr %t1518, i32 0, i32 1 %t1520 = getelementptr inbounds %LSlice, ptr %t1518, i32 0, i32 2 %t1521 = getelementptr inbounds %LSlice, ptr %t1518, i32 0, i32 0 %t1522 = load i32, ptr %t1519 %t1523 = load i32, ptr %t1520 %t1524 = icmp sge i32 %t1522, %t1523 br i1 %t1524, label %grow224, label %put225 grow224: %t1525 = mul i32 %t1523, 2 %t1526 = icmp eq i32 %t1523, 0 %t1527 = select i1 %t1526, i32 8, i32 %t1525 %t1528 = getelementptr ptr, ptr null, i32 1 %t1529 = ptrtoint ptr %t1528 to i64 %t1530 = zext i32 %t1527 to i64 %t1531 = mul i64 %t1530, %t1529 %t1532 = load ptr, ptr %t1521 %t1533 = call ptr @realloc(ptr %t1532, i64 %t1531) store ptr %t1533, ptr %t1521 store i32 %t1527, ptr %t1520 br label %put225 put225: %t1534 = load ptr, ptr %t1500 %t1535 = load ptr, ptr %t1504 %t1536 = call ptr @fn_coerce_code(ptr %t1534, ptr %t1535) %t1537 = load ptr, ptr %t1521 %t1538 = getelementptr inbounds ptr, ptr %t1537, i32 %t1522 store ptr %t1536, ptr %t1538 %t1539 = add i32 %t1522, 1 store i32 %t1539, ptr %t1519 %t1540 = load ptr, ptr %t1480 %t1541 = getelementptr inbounds %LSlice, ptr %t1540, i32 0, i32 1 %t1542 = getelementptr inbounds %LSlice, ptr %t1540, i32 0, i32 2 %t1543 = getelementptr inbounds %LSlice, ptr %t1540, i32 0, i32 0 %t1544 = load i32, ptr %t1541 %t1545 = load i32, ptr %t1542 %t1546 = icmp sge i32 %t1544, %t1545 br i1 %t1546, label %grow226, label %put227 grow226: %t1547 = mul i32 %t1545, 2 %t1548 = icmp eq i32 %t1545, 0 %t1549 = select i1 %t1548, i32 8, i32 %t1547 %t1550 = getelementptr ptr, ptr null, i32 1 %t1551 = ptrtoint ptr %t1550 to i64 %t1552 = zext i32 %t1549 to i64 %t1553 = mul i64 %t1552, %t1551 %t1554 = load ptr, ptr %t1543 %t1555 = call ptr @realloc(ptr %t1554, i64 %t1553) store ptr %t1555, ptr %t1543 store i32 %t1549, ptr %t1542 br label %put227 put227: %t1556 = load ptr, ptr %t1504 %t1557 = load ptr, ptr %t1543 %t1558 = getelementptr inbounds ptr, ptr %t1557, i32 %t1544 store ptr %t1556, ptr %t1558 %t1559 = add i32 %t1544, 1 store i32 %t1559, ptr %t1541 %t1560 = load i32, ptr %t1481 %t1561 = add i32 %t1560, 1 store i32 %t1561, ptr %t1481 br label %wcond218 wend220: %t1562 = load ptr, ptr %t1442 %t1563 = getelementptr inbounds %Cmp_Node, ptr %t1562, i32 0, i32 3 %t1564 = load ptr, ptr %t1563 %t1565 = call ptr @fn_llty(ptr %t1564) store ptr %t1565, ptr %t1566 call void @fn_emit(ptr @.str6218) store ptr @.str6219, ptr %t1567 %t1568 = load ptr, ptr %t1566 %t1569 = call i32 @fn_str_eq(ptr %t1568, ptr @.str6220) %t1570 = icmp eq i32 %t1569, 0 %t1571 = zext i1 %t1570 to i32 %t1572 = icmp ne i32 %t1571, 0 br i1 %t1572, label %then228, label %ifend230 then228: %t1573 = call ptr @fn_nreg() store ptr %t1573, ptr %t1567 %t1574 = load ptr, ptr %t1567 call void @fn_emit(ptr %t1574) call void @fn_emit(ptr @.str6221) br label %ifend230 ifend230: call void @fn_emit(ptr @.str6222) %t1575 = load ptr, ptr %t1566 call void @fn_emit(ptr %t1575) call void @fn_emit(ptr @.str6223) %t1576 = load ptr, ptr %t1444 call void @fn_emit(ptr %t1576) call void @fn_emit(ptr @.str6224) store i32 0, ptr %t1481 br label %wcond231 wcond231: %t1577 = load i32, ptr %t1481 %t1578 = load ptr, ptr %t1473 %t1579 = getelementptr inbounds %LSlice, ptr %t1578, i32 0, i32 1 %t1580 = load i32, ptr %t1579 %t1581 = icmp slt i32 %t1577, %t1580 %t1582 = zext i1 %t1581 to i32 %t1583 = icmp ne i32 %t1582, 0 br i1 %t1583, label %wbody232, label %wend233 wbody232: %t1584 = load i32, ptr %t1481 %t1585 = icmp sgt i32 %t1584, 0 %t1586 = zext i1 %t1585 to i32 %t1587 = icmp ne i32 %t1586, 0 br i1 %t1587, label %then234, label %ifend236 then234: call void @fn_emit(ptr @.str6225) br label %ifend236 ifend236: %t1588 = load ptr, ptr %t1480 %t1589 = getelementptr inbounds %LSlice, ptr %t1588, i32 0, i32 0 %t1590 = load ptr, ptr %t1589 %t1591 = load i32, ptr %t1481 %t1592 = getelementptr inbounds ptr, ptr %t1590, i32 %t1591 %t1593 = load ptr, ptr %t1592 %t1594 = call ptr @fn_llty(ptr %t1593) call void @fn_emit(ptr %t1594) call void @fn_emit(ptr @.str6226) %t1595 = load ptr, ptr %t1473 %t1596 = getelementptr inbounds %LSlice, ptr %t1595, i32 0, i32 0 %t1597 = load ptr, ptr %t1596 %t1598 = load i32, ptr %t1481 %t1599 = getelementptr inbounds ptr, ptr %t1597, i32 %t1598 %t1600 = load ptr, ptr %t1599 call void @fn_emit(ptr %t1600) %t1601 = load i32, ptr %t1481 %t1602 = add i32 %t1601, 1 store i32 %t1602, ptr %t1481 br label %wcond231 wend233: call void @fn_emit(ptr @.str6227) %t1603 = load ptr, ptr %t1567 %t1604 = load ptr, ptr %t1442 %t1605 = getelementptr inbounds %Cmp_Node, ptr %t1604, i32 0, i32 3 %t1606 = load ptr, ptr %t1605 %t1607 = call ptr @fn_val(ptr %t1603, ptr %t1606) store ptr %t1607, ptr %retval br label %ret ret: %t1608 = load ptr, ptr %retval ret ptr %t1608 } define ptr @fn_emit_expr(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr %t56 = alloca ptr %t61 = alloca ptr %t66 = alloca ptr %t127 = alloca i32 %t149 = alloca ptr %t178 = alloca ptr %t224 = alloca i32 %t245 = alloca i32 %t257 = alloca ptr %t267 = alloca ptr %t280 = alloca ptr %t292 = alloca ptr %t299 = alloca ptr %t342 = alloca ptr %t401 = 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 @.str6228, ptr @.str6229) 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 2 %t14 = load i32, ptr %t13 %t15 = call ptr @fn_itoa(i32 %t14) %t16 = call ptr @fn_val(ptr %t15, ptr @.str6230) store ptr %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, 40 %t21 = zext i1 %t20 to i32 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then6, label %ifend8 then6: %t23 = load ptr, ptr %t0 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 2 %t25 = load i32, ptr %t24 %t26 = call ptr @fn_itoa(i32 %t25) %t27 = call ptr @fn_val(ptr %t26, ptr @.str6231) store ptr %t27, ptr %retval br label %ret ifend8: %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, 32 %t32 = zext i1 %t31 to i32 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then9, label %ifend11 then9: %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2 %t36 = load i32, ptr %t35 %t37 = call ptr @fn_itoa(i32 %t36) %t38 = call ptr @fn_val(ptr %t37, ptr @.str6232) store ptr %t38, ptr %retval br label %ret ifend11: %t39 = load ptr, ptr %t0 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 0 %t41 = load i32, ptr %t40 %t42 = icmp eq i32 %t41, 43 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then12, label %ifend14 then12: %t45 = call ptr @fn_val(ptr @.str6233, ptr @.str6234) store ptr %t45, ptr %retval br label %ret ifend14: %t46 = load ptr, ptr %t0 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 0 %t48 = load i32, ptr %t47 %t49 = icmp eq i32 %t48, 44 %t50 = zext i1 %t49 to i32 %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then15, label %ifend17 then15: %t52 = load ptr, ptr %t0 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4 %t54 = load ptr, ptr %t53 %t55 = call ptr @fn_emit_expr(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t0 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 5 %t59 = load ptr, ptr %t58 %t60 = call ptr @fn_emit_expr(ptr %t59) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t0 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 6 %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 %t56 %t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0 %t69 = load ptr, ptr %t68 %t70 = call ptr @fn_str_concat(ptr @.str6235, ptr %t69) %t71 = call ptr @fn_str_concat(ptr %t70, ptr @.str6236) %t72 = load ptr, ptr %t61 %t73 = getelementptr inbounds %Cmp_Val, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_str_concat(ptr %t71, ptr %t74) %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str6237) %t77 = load ptr, ptr %t66 %t78 = getelementptr inbounds %Cmp_Val, ptr %t77, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_str_concat(ptr %t76, ptr %t79) %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str6238) %t82 = call ptr @fn_emit_bind(ptr %t81) %t83 = call ptr @fn_val(ptr %t82, ptr @.str6239) store ptr %t83, ptr %retval br label %ret ifend17: %t84 = load ptr, ptr %t0 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 0 %t86 = load i32, ptr %t85 %t87 = icmp eq i32 %t86, 31 %t88 = zext i1 %t87 to i32 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then18, label %ifend20 then18: %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_emit_str_const(ptr %t92) %t94 = call ptr @fn_val(ptr %t93, ptr @.str6240) store ptr %t94, ptr %retval br label %ret ifend20: %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, 39 %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then21, label %ifend23 then21: %t101 = load ptr, ptr %t0 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1 %t103 = load ptr, ptr %t102 %t104 = call i32 @fn_is_slice_ty(ptr %t103) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then24, label %ifend26 then24: %t106 = load ptr, ptr %t0 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 1 %t108 = load ptr, ptr %t107 %t109 = call ptr @fn_emit_new_slice(ptr %t108) store ptr %t109, ptr %retval br label %ret ifend26: %t110 = load ptr, ptr %t0 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1 %t112 = load ptr, ptr %t111 %t113 = load ptr, ptr %t0 %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 4 %t115 = load ptr, ptr %t114 %t116 = call ptr @fn_emit_new_struct(ptr %t112, ptr %t115) store ptr %t116, ptr %retval br label %ret ifend23: %t117 = load ptr, ptr %t0 %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 0 %t119 = load i32, ptr %t118 %t120 = icmp eq i32 %t119, 33 %t121 = zext i1 %t120 to i32 %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %then27, label %ifend29 then27: %t123 = load ptr, ptr %t0 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t124 %t126 = call i32 @fn_loc_find(ptr %t125) store i32 %t126, ptr %t127 %t128 = load i32, ptr %t127 %t129 = icmp sge i32 %t128, 0 %t130 = zext i1 %t129 to i32 %t131 = icmp ne i32 %t130, 0 br i1 %t131, label %then30, label %ifend32 then30: %t132 = load ptr, ptr @g_loc_reg %t133 = getelementptr inbounds %LSlice, ptr %t132, i32 0, i32 0 %t134 = load ptr, ptr %t133 %t135 = load i32, ptr %t127 %t136 = getelementptr inbounds ptr, ptr %t134, i32 %t135 %t137 = load ptr, ptr %t136 %t138 = load ptr, ptr @g_loc_ty %t139 = getelementptr inbounds %LSlice, ptr %t138, i32 0, i32 0 %t140 = load ptr, ptr %t139 %t141 = load i32, ptr %t127 %t142 = getelementptr inbounds ptr, ptr %t140, i32 %t141 %t143 = load ptr, ptr %t142 %t144 = call ptr @fn_emit_load_at(ptr %t137, ptr %t143) store ptr %t144, ptr %retval br label %ret ifend32: %t145 = load ptr, ptr %t0 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 1 %t147 = load ptr, ptr %t146 %t148 = call ptr @fn_find_global(ptr %t147) store ptr %t148, ptr %t149 %t150 = load ptr, ptr %t149 %t151 = icmp ne ptr %t150, null %t152 = zext i1 %t151 to i32 %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then33, label %ifend35 then33: %t154 = load ptr, ptr %t149 %t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 0 %t156 = load i32, ptr %t155 %t157 = icmp eq i32 %t156, 3 %t158 = zext i1 %t157 to i32 %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then36, label %ifend38 then36: %t160 = load ptr, ptr %t149 %t161 = getelementptr inbounds %Cmp_Node, ptr %t160, i32 0, i32 4 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds %Cmp_Node, ptr %t162, i32 0, i32 2 %t164 = load i32, ptr %t163 %t165 = call ptr @fn_itoa(i32 %t164) %t166 = call ptr @fn_val(ptr %t165, ptr @.str6241) store ptr %t166, ptr %retval br label %ret ifend38: %t167 = load ptr, ptr %t149 %t168 = getelementptr inbounds %Cmp_Node, ptr %t167, i32 0, i32 3 %t169 = load ptr, ptr %t168 %t170 = call ptr @fn_llty(ptr %t169) %t171 = call ptr @fn_str_concat(ptr @.str6242, ptr %t170) %t172 = call ptr @fn_str_concat(ptr %t171, ptr @.str6243) %t173 = load ptr, ptr %t0 %t174 = getelementptr inbounds %Cmp_Node, ptr %t173, i32 0, i32 1 %t175 = load ptr, ptr %t174 %t176 = call ptr @fn_str_concat(ptr %t172, ptr %t175) %t177 = call ptr @fn_emit_bind(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t178 %t180 = load ptr, ptr %t149 %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 3 %t182 = load ptr, ptr %t181 %t183 = call ptr @fn_val(ptr %t179, ptr %t182) store ptr %t183, ptr %retval br label %ret ifend35: %t184 = load ptr, ptr %t0 %t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 1 %t186 = load ptr, ptr %t185 %t187 = call i32 @fn_is_ui_ident(ptr %t186) %t188 = icmp ne i32 %t187, 0 br i1 %t188, label %then39, label %ifend41 then39: %t189 = load ptr, ptr %t0 %t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 1 %t191 = load ptr, ptr %t190 %t192 = call i32 @fn_ui_index_of(ptr %t191) %t193 = call ptr @fn_itoa(i32 %t192) %t194 = call ptr @fn_val(ptr %t193, ptr @.str6244) store ptr %t194, ptr %retval br label %ret ifend41: %t195 = load ptr, ptr %t0 %t196 = getelementptr inbounds %Cmp_Node, ptr %t195, i32 0, i32 1 %t197 = load ptr, ptr %t196 %t198 = call ptr @fn_str_concat(ptr @.str6245, ptr %t197) call void @fn_perr(ptr %t198) br label %ifend29 ifend29: %t199 = load ptr, ptr %t0 %t200 = getelementptr inbounds %Cmp_Node, ptr %t199, i32 0, i32 0 %t201 = load i32, ptr %t200 %t202 = icmp eq i32 %t201, 35 %t203 = zext i1 %t202 to i32 %t204 = icmp ne i32 %t203, 0 br i1 %t204, label %then42, label %ifend44 then42: %t205 = load ptr, ptr %t0 %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 br i1 %t212, label %then45, label %ifend47 then45: %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 1 %t217 = load ptr, ptr %t216 %t218 = call i32 @fn_str_eq(ptr %t217, ptr @.str6246) %t219 = icmp ne i32 %t218, 0 br i1 %t219, label %then48, label %ifend50 then48: %t220 = load ptr, ptr %t0 %t221 = getelementptr inbounds %Cmp_Node, ptr %t220, i32 0, i32 1 %t222 = load ptr, ptr %t221 %t223 = call i32 @fn_color_lookup(ptr %t222) store i32 %t223, ptr %t224 %t225 = load i32, ptr %t224 %t226 = icmp slt i32 %t225, 0 %t227 = zext i1 %t226 to i32 %t228 = icmp ne i32 %t227, 0 br i1 %t228, label %then51, label %ifend53 then51: %t229 = load ptr, ptr %t0 %t230 = getelementptr inbounds %Cmp_Node, ptr %t229, i32 0, i32 1 %t231 = load ptr, ptr %t230 %t232 = call ptr @fn_str_concat(ptr @.str6247, ptr %t231) call void @fn_perr(ptr %t232) br label %ifend53 ifend53: %t233 = load i32, ptr %t224 %t234 = call ptr @fn_itoa(i32 %t233) %t235 = call ptr @fn_val(ptr %t234, ptr @.str6248) store ptr %t235, ptr %retval br label %ret ifend50: %t236 = load ptr, ptr %t0 %t237 = getelementptr inbounds %Cmp_Node, ptr %t236, i32 0, i32 4 %t238 = load ptr, ptr %t237 %t239 = getelementptr inbounds %Cmp_Node, ptr %t238, i32 0, i32 1 %t240 = load ptr, ptr %t239 %t241 = load ptr, ptr %t0 %t242 = getelementptr inbounds %Cmp_Node, ptr %t241, i32 0, i32 1 %t243 = load ptr, ptr %t242 %t244 = call i32 @fn_enum_ordinal(ptr %t240, ptr %t243) store i32 %t244, ptr %t245 %t246 = load i32, ptr %t245 %t247 = icmp sge i32 %t246, 0 %t248 = zext i1 %t247 to i32 %t249 = icmp ne i32 %t248, 0 br i1 %t249, label %then54, label %ifend56 then54: %t250 = load i32, ptr %t245 %t251 = call ptr @fn_itoa(i32 %t250) %t252 = call ptr @fn_val(ptr %t251, ptr @.str6249) store ptr %t252, ptr %retval br label %ret ifend56: br label %ifend47 ifend47: %t253 = load ptr, ptr %t0 %t254 = getelementptr inbounds %Cmp_Node, ptr %t253, i32 0, i32 4 %t255 = load ptr, ptr %t254 %t256 = call ptr @fn_static_type(ptr %t255) store ptr %t256, ptr %t257 %t258 = load ptr, ptr %t257 %t259 = icmp ne ptr %t258, null %t260 = zext i1 %t259 to i32 %t261 = icmp ne i32 %t260, 0 br i1 %t261, label %then57, label %ifend59 then57: %t262 = load ptr, ptr %t257 %t263 = load ptr, ptr %t0 %t264 = getelementptr inbounds %Cmp_Node, ptr %t263, i32 0, i32 1 %t265 = load ptr, ptr %t264 %t266 = call ptr @fn_computed_expr(ptr %t262, 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 %then60, label %ifend62 then60: %t272 = load ptr, ptr %t267 %t273 = load ptr, ptr %t0 %t274 = getelementptr inbounds %Cmp_Node, ptr %t273, i32 0, i32 4 %t275 = load ptr, ptr %t274 %t276 = call ptr @fn_qualify_fields(ptr %t272, ptr %t275) %t277 = call ptr @fn_emit_expr(ptr %t276) store ptr %t277, ptr %retval br label %ret ifend62: br label %ifend59 ifend59: %t278 = load ptr, ptr %t0 %t279 = call ptr @fn_emit_member_addr(ptr %t278) store ptr %t279, ptr %t280 %t281 = load ptr, ptr %t280 %t282 = load ptr, ptr @g_g_addr_ty %t283 = call ptr @fn_emit_load_at(ptr %t281, ptr %t282) store ptr %t283, ptr %retval br label %ret ifend44: %t284 = load ptr, ptr %t0 %t285 = getelementptr inbounds %Cmp_Node, ptr %t284, i32 0, i32 0 %t286 = load i32, ptr %t285 %t287 = icmp eq i32 %t286, 36 %t288 = zext i1 %t287 to i32 %t289 = icmp ne i32 %t288, 0 br i1 %t289, label %then63, label %ifend65 then63: %t290 = load ptr, ptr %t0 %t291 = call ptr @fn_emit_index_addr(ptr %t290) store ptr %t291, ptr %t292 %t293 = load ptr, ptr @g_g_addr_ty %t294 = call i32 @fn_str_eq(ptr %t293, ptr @.str6250) %t295 = icmp ne i32 %t294, 0 br i1 %t295, label %then66, label %ifend68 then66: %t296 = load ptr, ptr %t292 %t297 = call ptr @fn_str_concat(ptr @.str6251, ptr %t296) %t298 = call ptr @fn_emit_bind(ptr %t297) store ptr %t298, ptr %t299 %t300 = load ptr, ptr %t299 %t301 = call ptr @fn_str_concat(ptr @.str6252, ptr %t300) %t302 = call ptr @fn_str_concat(ptr %t301, ptr @.str6253) %t303 = call ptr @fn_emit_bind(ptr %t302) %t304 = call ptr @fn_val(ptr %t303, ptr @.str6254) store ptr %t304, ptr %retval br label %ret ifend68: %t305 = load ptr, ptr %t292 %t306 = load ptr, ptr @g_g_addr_ty %t307 = call ptr @fn_emit_load_at(ptr %t305, ptr %t306) store ptr %t307, ptr %retval br label %ret ifend65: %t308 = load ptr, ptr %t0 %t309 = getelementptr inbounds %Cmp_Node, ptr %t308, i32 0, i32 0 %t310 = load i32, ptr %t309 %t311 = icmp eq i32 %t310, 49 %t312 = zext i1 %t311 to i32 %t313 = icmp ne i32 %t312, 0 br i1 %t313, label %then69, label %ifend71 then69: %t314 = load ptr, ptr %t0 %t315 = call ptr @fn_emit_emit(ptr %t314) store ptr %t315, ptr %retval br label %ret ifend71: %t316 = load ptr, ptr %t0 %t317 = getelementptr inbounds %Cmp_Node, ptr %t316, i32 0, i32 0 %t318 = load i32, ptr %t317 %t319 = icmp eq i32 %t318, 34 %t320 = zext i1 %t319 to i32 %t321 = icmp ne i32 %t320, 0 br i1 %t321, label %then72, label %ifend74 then72: %t322 = load ptr, ptr %t0 %t323 = call ptr @fn_emit_call(ptr %t322) store ptr %t323, ptr %retval br label %ret ifend74: %t324 = load ptr, ptr %t0 %t325 = getelementptr inbounds %Cmp_Node, ptr %t324, i32 0, i32 0 %t326 = load i32, ptr %t325 %t327 = icmp eq i32 %t326, 37 %t328 = zext i1 %t327 to i32 %t329 = icmp ne i32 %t328, 0 br i1 %t329, label %then75, label %ifend77 then75: %t330 = load ptr, ptr %t0 %t331 = call ptr @fn_emit_bin(ptr %t330) store ptr %t331, ptr %retval br label %ret ifend77: %t332 = load ptr, ptr %t0 %t333 = getelementptr inbounds %Cmp_Node, ptr %t332, i32 0, i32 0 %t334 = load i32, ptr %t333 %t335 = icmp eq i32 %t334, 38 %t336 = zext i1 %t335 to i32 %t337 = icmp ne i32 %t336, 0 br i1 %t337, label %then78, label %ifend80 then78: %t338 = load ptr, ptr %t0 %t339 = getelementptr inbounds %Cmp_Node, ptr %t338, i32 0, i32 4 %t340 = load ptr, ptr %t339 %t341 = call ptr @fn_emit_expr(ptr %t340) store ptr %t341, ptr %t342 %t343 = load ptr, ptr %t342 %t344 = getelementptr inbounds %Cmp_Val, ptr %t343, i32 0, i32 1 %t345 = load ptr, ptr %t344 %t346 = call ptr @fn_llty(ptr %t345) %t347 = call i32 @fn_str_eq(ptr %t346, ptr @.str6255) %t348 = icmp ne i32 %t347, 0 br i1 %t348, label %then81, label %ifend83 then81: %t349 = load ptr, ptr %t0 %t350 = getelementptr inbounds %Cmp_Node, ptr %t349, i32 0, i32 1 %t351 = load ptr, ptr %t350 %t352 = call i32 @fn_str_eq(ptr %t351, ptr @.str6256) %t353 = icmp ne i32 %t352, 0 br i1 %t353, label %then84, label %ifend86 then84: %t354 = load ptr, ptr %t342 %t355 = getelementptr inbounds %Cmp_Val, ptr %t354, i32 0, i32 0 %t356 = load ptr, ptr %t355 %t357 = call ptr @fn_str_concat(ptr @.str6257, ptr %t356) %t358 = call ptr @fn_emit_bind(ptr %t357) %t359 = call ptr @fn_val(ptr %t358, ptr @.str6258) store ptr %t359, ptr %retval br label %ret ifend86: %t360 = load ptr, ptr %t0 %t361 = getelementptr inbounds %Cmp_Node, ptr %t360, i32 0, i32 1 %t362 = load ptr, ptr %t361 %t363 = call i32 @fn_str_eq(ptr %t362, ptr @.str6259) %t364 = icmp ne i32 %t363, 0 br i1 %t364, label %then87, label %ifend89 then87: %t365 = load ptr, ptr %t342 %t366 = getelementptr inbounds %Cmp_Val, ptr %t365, i32 0, i32 0 %t367 = load ptr, ptr %t366 %t368 = call ptr @fn_str_concat(ptr @.str6260, ptr %t367) %t369 = call ptr @fn_str_concat(ptr %t368, ptr @.str6261) %t370 = call ptr @fn_emit_bind(ptr %t369) %t371 = call ptr @fn_val(ptr %t370, ptr @.str6262) store ptr %t371, ptr %retval br label %ret ifend89: br label %ifend83 ifend83: %t372 = load ptr, ptr %t0 %t373 = getelementptr inbounds %Cmp_Node, ptr %t372, i32 0, i32 1 %t374 = load ptr, ptr %t373 %t375 = call i32 @fn_str_eq(ptr %t374, ptr @.str6263) %t376 = icmp ne i32 %t375, 0 br i1 %t376, label %then90, label %ifend92 then90: %t377 = load ptr, ptr %t342 %t378 = getelementptr inbounds %Cmp_Val, ptr %t377, i32 0, i32 0 %t379 = load ptr, ptr %t378 %t380 = call ptr @fn_str_concat(ptr @.str6264, ptr %t379) %t381 = call ptr @fn_emit_bind(ptr %t380) %t382 = call ptr @fn_val(ptr %t381, ptr @.str6265) store ptr %t382, ptr %retval br label %ret ifend92: %t383 = load ptr, ptr %t0 %t384 = getelementptr inbounds %Cmp_Node, ptr %t383, i32 0, i32 1 %t385 = load ptr, ptr %t384 %t386 = call i32 @fn_str_eq(ptr %t385, ptr @.str6266) %t387 = icmp ne i32 %t386, 0 br i1 %t387, label %then93, label %ifend95 then93: %t388 = load ptr, ptr %t342 %t389 = getelementptr inbounds %Cmp_Val, ptr %t388, i32 0, i32 0 %t390 = load ptr, ptr %t389 %t391 = call ptr @fn_str_concat(ptr @.str6267, ptr %t390) %t392 = call ptr @fn_str_concat(ptr %t391, ptr @.str6268) %t393 = call ptr @fn_emit_bind(ptr %t392) %t394 = call ptr @fn_val(ptr %t393, ptr @.str6269) store ptr %t394, ptr %retval br label %ret ifend95: %t395 = load ptr, ptr %t342 %t396 = getelementptr inbounds %Cmp_Val, ptr %t395, i32 0, i32 0 %t397 = load ptr, ptr %t396 %t398 = call ptr @fn_str_concat(ptr @.str6270, ptr %t397) %t399 = call ptr @fn_str_concat(ptr %t398, ptr @.str6271) %t400 = call ptr @fn_emit_bind(ptr %t399) store ptr %t400, ptr %t401 %t402 = load ptr, ptr %t401 %t403 = call ptr @fn_str_concat(ptr @.str6272, ptr %t402) %t404 = call ptr @fn_str_concat(ptr %t403, ptr @.str6273) %t405 = call ptr @fn_emit_bind(ptr %t404) %t406 = call ptr @fn_val(ptr %t405, ptr @.str6274) store ptr %t406, ptr %retval br label %ret ifend80: call void @fn_perr(ptr @.str6275) %t407 = call ptr @fn_val(ptr @.str6276, ptr @.str6277) store ptr %t407, ptr %retval br label %ret ret: %t408 = load ptr, ptr %retval ret ptr %t408 } define void @fn_emit_block(ptr %arg_b) { entry: %t0 = alloca ptr %t1 = alloca i32 store ptr %arg_b, 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 @g_g_term %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: br label %ret ifend5: %t13 = load ptr, ptr %t0 %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 = load i32, ptr %t1 %t19 = getelementptr inbounds ptr, ptr %t17, i32 %t18 %t20 = load ptr, ptr %t19 call void @fn_emit_stmt(ptr %t20) %t21 = load i32, ptr %t1 %t22 = add i32 %t21, 1 store i32 %t22, ptr %t1 br label %wcond0 wend2: 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 @.str6278) %t3 = load ptr, ptr %t0 call void @fn_emit(ptr %t3) call void @fn_emit(ptr @.str6279) %t4 = load ptr, ptr %t1 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str6280) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str6281) br label %ret ret: ret void } define void @fn_emit_assign(ptr %arg_st) { entry: %t0 = alloca ptr %t4 = alloca ptr %t5 = alloca ptr %t6 = alloca ptr %t17 = alloca i32 %t57 = alloca ptr %t93 = alloca ptr %t98 = alloca ptr %t102 = alloca ptr %t123 = alloca ptr %t124 = 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 @.str6282, ptr %t5 store ptr @.str6283, 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 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = load i32, ptr %t17 %t26 = getelementptr inbounds i32, ptr %t24, i32 %t25 %t27 = load i32, ptr %t26 %t28 = icmp eq i32 %t27, 0 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then6, label %ifend8 then6: %t31 = load ptr, ptr %t4 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 %t34 = call ptr @fn_str_concat(ptr @.str6284, ptr %t33) %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str6285) %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 8 %t38 = load i32, ptr %t37 %t39 = call ptr @fn_itoa(i32 %t38) %t40 = call ptr @fn_str_concat(ptr %t35, ptr %t39) call void @fn_perr(ptr %t40) br label %ifend8 ifend8: %t41 = load ptr, ptr @g_loc_reg %t42 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = load i32, ptr %t17 %t45 = getelementptr inbounds ptr, ptr %t43, i32 %t44 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t5 %t47 = load ptr, ptr @g_loc_ty %t48 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0 %t49 = load ptr, ptr %t48 %t50 = load i32, ptr %t17 %t51 = getelementptr inbounds ptr, ptr %t49, i32 %t50 %t52 = load ptr, ptr %t51 store ptr %t52, ptr %t6 br label %ifend5 else4: %t53 = load ptr, ptr %t4 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 1 %t55 = load ptr, ptr %t54 %t56 = call ptr @fn_find_global(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t57 %t59 = icmp eq ptr %t58, null %t60 = zext i1 %t59 to i32 %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %then9, label %ifend11 then9: %t62 = load ptr, ptr %t4 %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 %t64 = load ptr, ptr %t63 %t65 = call ptr @fn_str_concat(ptr @.str6286, ptr %t64) call void @fn_perr(ptr %t65) br label %ifend11 ifend11: %t66 = load ptr, ptr %t4 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1 %t68 = load ptr, ptr %t67 %t69 = call ptr @fn_str_concat(ptr @.str6287, ptr %t68) store ptr %t69, ptr %t5 %t70 = load ptr, ptr %t57 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 3 %t72 = load ptr, ptr %t71 store ptr %t72, ptr %t6 br label %ifend5 ifend5: br label %ifend2 else1: %t73 = load ptr, ptr %t4 %t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 0 %t75 = load i32, ptr %t74 %t76 = icmp eq i32 %t75, 35 %t77 = zext i1 %t76 to i32 %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then12, label %else13 then12: %t79 = load ptr, ptr %t4 %t80 = call ptr @fn_emit_member_addr(ptr %t79) store ptr %t80, ptr %t5 %t81 = load ptr, ptr @g_g_addr_ty store ptr %t81, ptr %t6 br label %ifend14 else13: %t82 = load ptr, ptr %t4 %t83 = getelementptr inbounds %Cmp_Node, ptr %t82, i32 0, i32 0 %t84 = load i32, ptr %t83 %t85 = icmp eq i32 %t84, 36 %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then15, label %else16 then15: %t88 = load ptr, ptr %t4 %t89 = call ptr @fn_emit_index_addr(ptr %t88) store ptr %t89, ptr %t5 %t90 = load ptr, ptr @g_g_addr_ty store ptr %t90, ptr %t6 br label %ifend17 else16: call void @fn_perr(ptr @.str6288) br label %ifend17 ifend17: br label %ifend14 ifend14: br label %ifend2 ifend2: %t91 = load ptr, ptr %t6 %t92 = call ptr @fn_llty(ptr %t91) store ptr %t92, ptr %t93 %t94 = load ptr, ptr %t0 %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 5 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_emit_expr(ptr %t96) store ptr %t97, ptr %t98 %t99 = load ptr, ptr %t98 %t100 = load ptr, ptr %t6 %t101 = call ptr @fn_coerce_code(ptr %t99, ptr %t100) store ptr %t101, ptr %t102 %t103 = load ptr, ptr %t93 %t104 = call i32 @fn_str_eq(ptr %t103, ptr @.str6289) %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then18, label %ifend20 then18: %t106 = load ptr, ptr %t102 %t107 = call ptr @fn_str_concat(ptr @.str6290, ptr %t106) %t108 = call ptr @fn_str_concat(ptr %t107, ptr @.str6291) %t109 = call ptr @fn_emit_bind(ptr %t108) store ptr %t109, ptr %t102 br label %ifend20 ifend20: %t110 = load ptr, ptr %t0 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1 %t112 = load ptr, ptr %t111 %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str6292) %t114 = icmp eq i32 %t113, 0 %t115 = zext i1 %t114 to i32 %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %then21, label %ifend23 then21: %t117 = load ptr, ptr %t93 %t118 = call ptr @fn_str_concat(ptr @.str6293, ptr %t117) %t119 = call ptr @fn_str_concat(ptr %t118, ptr @.str6294) %t120 = load ptr, ptr %t5 %t121 = call ptr @fn_str_concat(ptr %t119, ptr %t120) %t122 = call ptr @fn_emit_bind(ptr %t121) store ptr %t122, ptr %t123 store ptr @.str6295, ptr %t124 %t125 = load ptr, ptr %t0 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 1 %t127 = load ptr, ptr %t126 %t128 = call i32 @fn_str_eq(ptr %t127, ptr @.str6296) %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %then24, label %ifend26 then24: store ptr @.str6297, ptr %t124 br label %ifend26 ifend26: %t130 = load ptr, ptr %t0 %t131 = getelementptr inbounds %Cmp_Node, ptr %t130, i32 0, i32 1 %t132 = load ptr, ptr %t131 %t133 = call i32 @fn_str_eq(ptr %t132, ptr @.str6298) %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then27, label %ifend29 then27: store ptr @.str6299, ptr %t124 br label %ifend29 ifend29: %t135 = load ptr, ptr %t0 %t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 1 %t137 = load ptr, ptr %t136 %t138 = call i32 @fn_str_eq(ptr %t137, ptr @.str6300) %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then30, label %ifend32 then30: store ptr @.str6301, ptr %t124 br label %ifend32 ifend32: %t140 = load ptr, ptr %t124 %t141 = call ptr @fn_str_concat(ptr %t140, ptr @.str6302) %t142 = load ptr, ptr %t93 %t143 = call ptr @fn_str_concat(ptr %t141, ptr %t142) %t144 = call ptr @fn_str_concat(ptr %t143, ptr @.str6303) %t145 = load ptr, ptr %t123 %t146 = call ptr @fn_str_concat(ptr %t144, ptr %t145) %t147 = call ptr @fn_str_concat(ptr %t146, ptr @.str6304) %t148 = load ptr, ptr %t102 %t149 = call ptr @fn_str_concat(ptr %t147, ptr %t148) %t150 = call ptr @fn_emit_bind(ptr %t149) store ptr %t150, ptr %t102 br label %ifend23 ifend23: %t151 = load ptr, ptr %t93 %t152 = load ptr, ptr %t102 %t153 = load ptr, ptr %t5 call void @fn_store_at(ptr %t151, ptr %t152, ptr %t153) 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 @fn_str_concat(ptr @.str6305, ptr %t8) %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str6306) %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 @.str6307) store ptr %t19, ptr %t20 %t21 = call ptr @fn_lbl(ptr @.str6308) store ptr %t21, ptr %t22 %t23 = call ptr @fn_lbl(ptr @.str6309) 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 @.str6310) %t27 = load ptr, ptr %t12 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str6311) %t28 = load ptr, ptr %t20 call void @fn_emit(ptr %t28) call void @fn_emit(ptr @.str6312) %t29 = load ptr, ptr %t22 call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str6313) br label %ifend2 else1: call void @fn_emit(ptr @.str6314) %t30 = load ptr, ptr %t12 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str6315) %t31 = load ptr, ptr %t20 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str6316) %t32 = load ptr, ptr %t24 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str6317) br label %ifend2 ifend2: %t33 = load ptr, ptr %t20 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str6318) 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 @.str6319) %t41 = load ptr, ptr %t24 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str6320) 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 @.str6321) 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 @.str6322) %t63 = load ptr, ptr %t24 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str6323) br label %ifend14 ifend14: br label %ifend8 ifend8: %t64 = load ptr, ptr %t24 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str6324) 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 @.str6325) store ptr %t1, ptr %t2 %t3 = call ptr @fn_lbl(ptr @.str6326) store ptr %t3, ptr %t4 %t5 = call ptr @fn_lbl(ptr @.str6327) store ptr %t5, ptr %t6 call void @fn_emit(ptr @.str6328) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) call void @fn_emit(ptr @.str6329) %t8 = load ptr, ptr %t2 call void @fn_emit(ptr %t8) call void @fn_emit(ptr @.str6330) %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 @fn_str_concat(ptr @.str6331, ptr %t16) %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str6332) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 call void @fn_emit(ptr @.str6333) %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str6334) %t22 = load ptr, ptr %t4 call void @fn_emit(ptr %t22) call void @fn_emit(ptr @.str6335) %t23 = load ptr, ptr %t6 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str6336) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str6337) 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 @.str6338) %t34 = load ptr, ptr %t2 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6339) br label %ifend2 ifend2: %t35 = load ptr, ptr %t6 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str6340) 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 @.str6341) 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 @.str6342, 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 @.str6343) %t16 = call ptr @fn_lbl(ptr @.str6344) store ptr %t16, ptr %t17 %t18 = call ptr @fn_lbl(ptr @.str6345) store ptr %t18, ptr %t19 %t20 = call ptr @fn_lbl(ptr @.str6346) store ptr %t20, ptr %t21 %t22 = call ptr @fn_lbl(ptr @.str6347) store ptr %t22, ptr %t23 call void @fn_emit(ptr @.str6348) %t24 = load ptr, ptr %t17 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str6349) %t25 = load ptr, ptr %t17 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str6350) %t26 = load ptr, ptr %t2 %t27 = call ptr @fn_str_concat(ptr @.str6351, 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 @fn_str_concat(ptr @.str6352, ptr %t35) %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str6353) %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_str_concat(ptr %t37, ptr %t40) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 call void @fn_emit(ptr @.str6354) %t44 = load ptr, ptr %t43 call void @fn_emit(ptr %t44) call void @fn_emit(ptr @.str6355) %t45 = load ptr, ptr %t19 call void @fn_emit(ptr %t45) call void @fn_emit(ptr @.str6356) %t46 = load ptr, ptr %t23 call void @fn_emit(ptr %t46) call void @fn_emit(ptr @.str6357) %t47 = load ptr, ptr %t19 call void @fn_emit(ptr %t47) call void @fn_emit(ptr @.str6358) 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 @.str6359) %t57 = load ptr, ptr %t21 call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str6360) br label %ifend2 ifend2: %t58 = load ptr, ptr %t21 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str6361) %t59 = load ptr, ptr %t2 %t60 = call ptr @fn_str_concat(ptr @.str6362, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_str_concat(ptr @.str6363, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str6364) %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 @.str6365, ptr %t68, ptr %t69) call void @fn_emit(ptr @.str6366) %t70 = load ptr, ptr %t17 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str6367) %t71 = load ptr, ptr %t23 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str6368) 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 %t11 = 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 = 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 4 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_emit_expr(ptr %t9) store ptr %t10, ptr %t11 %t12 = load ptr, ptr @g_ret_ty %t13 = call ptr @fn_llty(ptr %t12) %t14 = load ptr, ptr %t11 %t15 = load ptr, ptr @g_ret_ty %t16 = call ptr @fn_coerce_code(ptr %t14, ptr %t15) call void @fn_store_at(ptr %t13, ptr %t16, ptr @.str6369) br label %ifend2 ifend2: call void @fn_emit(ptr @.str6370) store i32 1, ptr @g_g_term br label %ret ret: ret void } 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 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = load i32, ptr %t1 %t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17 %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 %t11 br i1 %t24, label %sc3, label %scend4 sc3: %t26 = load ptr, ptr %t0 %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 = load i32, ptr %t1 %t32 = getelementptr inbounds ptr, ptr %t30, i32 %t31 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 %t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str6371) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t11 br label %scend4 scend4: %t39 = load i32, ptr %t11 %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret ifend7: %t41 = load i32, ptr %t1 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t43 = load i32, ptr %retval ret i32 %t43 } define void @fn_emit_match(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t7 = alloca ptr %t8 = alloca ptr %t9 = alloca i32 %t27 = alloca ptr %t32 = alloca ptr %t33 = alloca i32 %t34 = alloca i32 %t53 = alloca ptr %t64 = alloca ptr %t77 = alloca ptr %t79 = 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_lbl(ptr @.str6372) store ptr %t6, ptr %t7 store ptr null, ptr %t8 store i32 0, ptr %t9 br label %wcond0 wcond0: %t10 = load i32, ptr %t9 %t11 = load ptr, ptr %t0 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1 %t15 = load i32, ptr %t14 %t16 = icmp slt i32 %t10, %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 %t0 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 7 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = load i32, ptr %t9 %t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24 %t26 = load ptr, ptr %t25 store ptr %t26, ptr %t27 %t28 = load ptr, ptr %t27 %t29 = call i32 @fn_arm_is_default(ptr %t28) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then3, label %else4 then3: %t31 = load ptr, ptr %t27 store ptr %t31, ptr %t8 br label %ifend5 else4: store ptr @.str6373, ptr %t32 store i32 1, ptr %t33 store i32 0, ptr %t34 br label %wcond6 wcond6: %t35 = load i32, ptr %t34 %t36 = load ptr, ptr %t27 %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 %wbody7, label %wend8 wbody7: %t44 = load ptr, ptr %t27 %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 = load i32, ptr %t34 %t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49 %t51 = load ptr, ptr %t50 %t52 = call ptr @fn_emit_expr(ptr %t51) store ptr %t52, ptr %t53 %t54 = load ptr, ptr %t5 %t55 = getelementptr inbounds %Cmp_Val, ptr %t54, i32 0, i32 0 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_str_concat(ptr @.str6374, ptr %t56) %t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str6375) %t59 = load ptr, ptr %t53 %t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 %t62 = call ptr @fn_str_concat(ptr %t58, ptr %t61) %t63 = call ptr @fn_emit_bind(ptr %t62) store ptr %t63, ptr %t64 %t65 = load i32, ptr %t33 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then9, label %else10 then9: %t67 = load ptr, ptr %t64 store ptr %t67, ptr %t32 store i32 0, ptr %t33 br label %ifend11 else10: %t68 = load ptr, ptr %t32 %t69 = call ptr @fn_str_concat(ptr @.str6376, ptr %t68) %t70 = call ptr @fn_str_concat(ptr %t69, ptr @.str6377) %t71 = load ptr, ptr %t64 %t72 = call ptr @fn_str_concat(ptr %t70, ptr %t71) %t73 = call ptr @fn_emit_bind(ptr %t72) store ptr %t73, ptr %t32 br label %ifend11 ifend11: %t74 = load i32, ptr %t34 %t75 = add i32 %t74, 1 store i32 %t75, ptr %t34 br label %wcond6 wend8: %t76 = call ptr @fn_lbl(ptr @.str6378) store ptr %t76, ptr %t77 %t78 = call ptr @fn_lbl(ptr @.str6379) store ptr %t78, ptr %t79 call void @fn_emit(ptr @.str6380) %t80 = load ptr, ptr %t32 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str6381) %t81 = load ptr, ptr %t77 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str6382) %t82 = load ptr, ptr %t79 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str6383) %t83 = load ptr, ptr %t77 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str6384) store i32 0, ptr @g_g_term %t84 = load ptr, ptr %t27 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 4 %t86 = load ptr, ptr %t85 call void @fn_emit_block(ptr %t86) %t87 = load i32, ptr @g_g_term %t88 = icmp eq i32 %t87, 0 %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then12, label %ifend14 then12: call void @fn_emit(ptr @.str6385) %t91 = load ptr, ptr %t7 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str6386) br label %ifend14 ifend14: %t92 = load ptr, ptr %t79 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str6387) store i32 0, ptr @g_g_term br label %ifend5 ifend5: %t93 = load i32, ptr %t9 %t94 = add i32 %t93, 1 store i32 %t94, ptr %t9 br label %wcond0 wend2: %t95 = load ptr, ptr %t8 %t96 = icmp ne ptr %t95, null %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then15, label %ifend17 then15: %t99 = load ptr, ptr %t8 %t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 4 %t101 = load ptr, ptr %t100 call void @fn_emit_block(ptr %t101) br label %ifend17 ifend17: %t102 = load i32, ptr @g_g_term %t103 = icmp eq i32 %t102, 0 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then18, label %ifend20 then18: call void @fn_emit(ptr @.str6388) %t106 = load ptr, ptr %t7 call void @fn_emit(ptr %t106) call void @fn_emit(ptr @.str6389) br label %ifend20 ifend20: %t107 = load ptr, ptr %t7 call void @fn_emit(ptr %t107) call void @fn_emit(ptr @.str6390) 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 %t20 = alloca ptr %t27 = alloca ptr %t28 = alloca i32 %t46 = alloca ptr %t47 = alloca ptr %t48 = alloca i32 %t95 = alloca ptr %t96 = alloca ptr %t106 = alloca ptr %t120 = alloca ptr %t173 = alloca ptr %t181 = alloca i32 %t182 = alloca i32 %t193 = alloca ptr %t225 = alloca ptr %t241 = alloca ptr %t242 = alloca i32 %t279 = 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 @fn_str_concat(ptr @.str6391, ptr %t12) call void @fn_perr(ptr %t13) br label %ifend2 ifend2: %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 store i32 0, ptr %t28 br label %wcond3 wcond3: %t29 = load i32, ptr %t28 %t30 = load ptr, ptr %t5 %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 %t5 %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 = load i32, ptr %t28 %t44 = getelementptr inbounds ptr, ptr %t42, i32 %t43 %t45 = load ptr, ptr %t44 store ptr %t45, ptr %t46 store ptr null, ptr %t47 store i32 0, ptr %t48 br label %wcond6 wcond6: %t49 = load i32, ptr %t48 %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 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 %t49, %t56 %t58 = zext i1 %t57 to i32 %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %wbody7, label %wend8 wbody7: %t60 = load ptr, ptr %t0 %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 7 %t64 = load ptr, ptr %t63 %t65 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0 %t66 = load ptr, ptr %t65 %t67 = load i32, ptr %t48 %t68 = getelementptr inbounds ptr, ptr %t66, i32 %t67 %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 %t46 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 %t74 = load ptr, ptr %t73 %t75 = call i32 @fn_str_eq(ptr %t71, ptr %t74) %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then9, label %ifend11 then9: %t77 = load ptr, ptr %t0 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 4 %t79 = load ptr, ptr %t78 %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 = load i32, ptr %t48 %t85 = getelementptr inbounds ptr, ptr %t83, i32 %t84 %t86 = load ptr, ptr %t85 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 4 %t88 = load ptr, ptr %t87 store ptr %t88, ptr %t47 br label %ifend11 ifend11: %t89 = load i32, ptr %t48 %t90 = add i32 %t89, 1 store i32 %t90, ptr %t48 br label %wcond6 wend8: %t91 = load ptr, ptr %t46 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 3 %t93 = load ptr, ptr %t92 %t94 = call ptr @fn_llty(ptr %t93) store ptr %t94, ptr %t95 store ptr @.str6392, ptr %t96 %t97 = load ptr, ptr %t95 %t98 = call i32 @fn_str_eq(ptr %t97, ptr @.str6393) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then12, label %ifend14 then12: store ptr @.str6394, ptr %t96 br label %ifend14 ifend14: %t100 = load ptr, ptr %t47 %t101 = icmp ne ptr %t100, null %t102 = zext i1 %t101 to i32 %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then15, label %else16 then15: %t104 = load ptr, ptr %t47 %t105 = call ptr @fn_emit_expr(ptr %t104) store ptr %t105, ptr %t106 %t107 = load ptr, ptr %t106 %t108 = getelementptr inbounds %Cmp_Val, ptr %t107, i32 0, i32 0 %t109 = load ptr, ptr %t108 store ptr %t109, ptr %t96 br label %ifend17 else16: %t110 = load ptr, ptr %t46 %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 4 %t112 = load ptr, ptr %t111 %t113 = icmp ne ptr %t112, null %t114 = zext i1 %t113 to i32 %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then18, label %ifend20 then18: %t116 = load ptr, ptr %t46 %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 4 %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 store ptr %t123, ptr %t96 br label %ifend20 ifend20: br label %ifend17 ifend17: %t124 = load ptr, ptr %t20 %t125 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 1 %t126 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 2 %t127 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 0 %t128 = load i32, ptr %t125 %t129 = load i32, ptr %t126 %t130 = icmp sge i32 %t128, %t129 br i1 %t130, label %grow21, label %put22 grow21: %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 %put22 put22: %t140 = load ptr, ptr %t96 %t141 = load ptr, ptr %t127 %t142 = getelementptr inbounds ptr, ptr %t141, i32 %t128 store ptr %t140, ptr %t142 %t143 = add i32 %t128, 1 store i32 %t143, ptr %t125 %t144 = load ptr, ptr %t27 %t145 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 1 %t146 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 2 %t147 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 0 %t148 = load i32, ptr %t145 %t149 = load i32, ptr %t146 %t150 = icmp sge i32 %t148, %t149 br i1 %t150, label %grow23, label %put24 grow23: %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 %put24 put24: %t160 = load ptr, ptr %t95 %t161 = load ptr, ptr %t147 %t162 = getelementptr inbounds ptr, ptr %t161, i32 %t148 store ptr %t160, ptr %t162 %t163 = add i32 %t148, 1 store i32 %t163, ptr %t145 %t164 = load i32, ptr %t28 %t165 = add i32 %t164, 1 store i32 %t165, ptr %t28 br label %wcond3 wend5: %t166 = load ptr, ptr %t5 %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 3 %t168 = load ptr, ptr %t167 %t169 = icmp ne ptr %t168, null %t170 = zext i1 %t169 to i32 %t171 = icmp ne i32 %t170, 0 br i1 %t171, label %then25, label %ifend27 then25: %t172 = call ptr @fn_nreg() store ptr %t172, ptr %t173 call void @fn_emit(ptr @.str6395) %t174 = load ptr, ptr %t173 call void @fn_emit(ptr %t174) call void @fn_emit(ptr @.str6396) call void @fn_emit(ptr @.str6397) %t175 = load ptr, ptr %t0 %t176 = getelementptr inbounds %Cmp_Node, ptr %t175, i32 0, i32 1 %t177 = load ptr, ptr %t176 %t178 = call i32 @fn_net_event_id(ptr %t177) %t179 = call ptr @fn_itoa(i32 %t178) call void @fn_emit(ptr %t179) call void @fn_emit(ptr @.str6398) %t180 = load ptr, ptr %t173 call void @fn_emit(ptr %t180) call void @fn_emit(ptr @.str6399) store i32 4, ptr %t181 store i32 0, ptr %t182 br label %wcond28 wcond28: %t183 = load i32, ptr %t182 %t184 = load ptr, ptr %t5 %t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 7 %t186 = load ptr, ptr %t185 %t187 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 1 %t188 = load i32, ptr %t187 %t189 = icmp slt i32 %t183, %t188 %t190 = zext i1 %t189 to i32 %t191 = icmp ne i32 %t190, 0 br i1 %t191, label %wbody29, label %wend30 wbody29: %t192 = call ptr @fn_nreg() store ptr %t192, ptr %t193 call void @fn_emit(ptr @.str6400) %t194 = load ptr, ptr %t193 call void @fn_emit(ptr %t194) call void @fn_emit(ptr @.str6401) %t195 = load i32, ptr %t181 %t196 = call ptr @fn_itoa(i32 %t195) call void @fn_emit(ptr %t196) call void @fn_emit(ptr @.str6402) call void @fn_emit(ptr @.str6403) %t197 = load ptr, ptr %t27 %t198 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0 %t199 = load ptr, ptr %t198 %t200 = load i32, ptr %t182 %t201 = getelementptr inbounds ptr, ptr %t199, i32 %t200 %t202 = load ptr, ptr %t201 call void @fn_emit(ptr %t202) call void @fn_emit(ptr @.str6404) %t203 = load ptr, ptr %t20 %t204 = getelementptr inbounds %LSlice, ptr %t203, i32 0, i32 0 %t205 = load ptr, ptr %t204 %t206 = load i32, ptr %t182 %t207 = getelementptr inbounds ptr, ptr %t205, i32 %t206 %t208 = load ptr, ptr %t207 call void @fn_emit(ptr %t208) call void @fn_emit(ptr @.str6405) %t209 = load ptr, ptr %t193 call void @fn_emit(ptr %t209) call void @fn_emit(ptr @.str6406) %t210 = load i32, ptr %t181 %t211 = load ptr, ptr %t5 %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 = load i32, ptr %t182 %t217 = getelementptr inbounds ptr, ptr %t215, i32 %t216 %t218 = load ptr, ptr %t217 %t219 = getelementptr inbounds %Cmp_Node, ptr %t218, i32 0, i32 3 %t220 = load ptr, ptr %t219 %t221 = call i32 @fn_net_field_ibytes(ptr %t220) %t222 = add i32 %t210, %t221 store i32 %t222, ptr %t181 %t223 = load i32, ptr %t182 %t224 = add i32 %t223, 1 store i32 %t224, ptr %t182 br label %wcond28 wend30: store ptr @.str6407, ptr %t225 %t226 = load ptr, ptr %t5 %t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 3 %t228 = load ptr, ptr %t227 %t229 = call i32 @fn_str_eq(ptr %t228, ptr @.str6408) %t230 = icmp ne i32 %t229, 0 br i1 %t230, label %then31, label %ifend33 then31: store ptr @.str6409, ptr %t225 br label %ifend33 ifend33: %t231 = call ptr @fn_find_extern(ptr @.str6410) %t232 = icmp eq ptr %t231, null %t233 = zext i1 %t232 to i32 %t234 = icmp ne i32 %t233, 0 br i1 %t234, label %then34, label %ifend36 then34: store i32 1, ptr @g_g_uses_loopback br label %ifend36 ifend36: call void @fn_emit(ptr @.str6411) %t235 = call ptr @fn_net_send_sym() call void @fn_emit(ptr %t235) call void @fn_emit(ptr @.str6412) %t236 = load ptr, ptr %t225 call void @fn_emit(ptr %t236) call void @fn_emit(ptr @.str6413) %t237 = load i32, ptr %t181 %t238 = call ptr @fn_itoa(i32 %t237) call void @fn_emit(ptr %t238) call void @fn_emit(ptr @.str6414) %t239 = call ptr @fn_val(ptr @.str6415, ptr @.str6416) store ptr %t239, ptr %retval br label %ret ifend27: %t240 = call ptr @fn_buf_new() store ptr %t240, ptr %t241 store i32 0, ptr %t242 br label %wcond37 wcond37: %t243 = load i32, ptr %t242 %t244 = load ptr, ptr %t20 %t245 = getelementptr inbounds %LSlice, ptr %t244, i32 0, i32 1 %t246 = load i32, ptr %t245 %t247 = icmp slt i32 %t243, %t246 %t248 = zext i1 %t247 to i32 %t249 = icmp ne i32 %t248, 0 br i1 %t249, label %wbody38, label %wend39 wbody38: %t250 = load i32, ptr %t242 %t251 = icmp sgt i32 %t250, 0 %t252 = zext i1 %t251 to i32 %t253 = icmp ne i32 %t252, 0 br i1 %t253, label %then40, label %ifend42 then40: %t254 = load ptr, ptr %t241 call void @fn_buf_puts(ptr %t254, ptr @.str6417) br label %ifend42 ifend42: %t255 = load ptr, ptr %t241 %t256 = load ptr, ptr %t27 %t257 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 0 %t258 = load ptr, ptr %t257 %t259 = load i32, ptr %t242 %t260 = getelementptr inbounds ptr, ptr %t258, i32 %t259 %t261 = load ptr, ptr %t260 call void @fn_buf_puts(ptr %t255, ptr %t261) %t262 = load ptr, ptr %t241 call void @fn_buf_puts(ptr %t262, ptr @.str6418) %t263 = load ptr, ptr %t241 %t264 = load ptr, ptr %t20 %t265 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 0 %t266 = load ptr, ptr %t265 %t267 = load i32, ptr %t242 %t268 = getelementptr inbounds ptr, ptr %t266, i32 %t267 %t269 = load ptr, ptr %t268 call void @fn_buf_puts(ptr %t263, ptr %t269) %t270 = load i32, ptr %t242 %t271 = add i32 %t270, 1 store i32 %t271, ptr %t242 br label %wcond37 wend39: %t272 = load ptr, ptr %t5 %t273 = getelementptr inbounds %Cmp_Node, ptr %t272, i32 0, i32 2 %t274 = load i32, ptr %t273 %t275 = icmp eq i32 %t274, 1 %t276 = zext i1 %t275 to i32 %t277 = icmp ne i32 %t276, 0 br i1 %t277, label %then43, label %ifend45 then43: %t278 = call ptr @fn_nreg() store ptr %t278, ptr %t279 call void @fn_emit(ptr @.str6419) %t280 = load ptr, ptr %t279 call void @fn_emit(ptr %t280) call void @fn_emit(ptr @.str6420) %t281 = load ptr, ptr %t0 %t282 = getelementptr inbounds %Cmp_Node, ptr %t281, i32 0, i32 1 %t283 = load ptr, ptr %t282 call void @fn_emit(ptr %t283) call void @fn_emit(ptr @.str6421) %t284 = load ptr, ptr %t241 %t285 = call ptr @fn_buf_str(ptr %t284) call void @fn_emit(ptr %t285) call void @fn_emit(ptr @.str6422) %t286 = load ptr, ptr %t279 %t287 = call ptr @fn_val(ptr %t286, ptr @.str6423) store ptr %t287, ptr %retval br label %ret ifend45: call void @fn_emit(ptr @.str6424) %t288 = load ptr, ptr %t0 %t289 = getelementptr inbounds %Cmp_Node, ptr %t288, i32 0, i32 1 %t290 = load ptr, ptr %t289 call void @fn_emit(ptr %t290) call void @fn_emit(ptr @.str6425) %t291 = load ptr, ptr %t241 %t292 = call ptr @fn_buf_str(ptr %t291) call void @fn_emit(ptr %t292) call void @fn_emit(ptr @.str6426) %t293 = call ptr @fn_val(ptr @.str6427, ptr @.str6428) store ptr %t293, ptr %retval br label %ret ret: %t294 = load ptr, ptr %retval ret ptr %t294 } define void @fn_emit_stmt(ptr %arg_st) { entry: %t0 = alloca ptr %t10 = alloca ptr %t19 = alloca ptr %t26 = alloca ptr %t44 = alloca ptr %t51 = alloca ptr %t64 = alloca ptr %t162 = alloca ptr %t199 = alloca ptr %t235 = 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, 10 %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 3 %t9 = load ptr, 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 %then3, label %ifend5 then3: %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_emit_expr(ptr %t17) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t19 %t21 = getelementptr inbounds %Cmp_Val, ptr %t20, i32 0, i32 1 %t22 = load ptr, ptr %t21 store ptr %t22, ptr %t10 %t23 = load ptr, ptr %t10 %t24 = call ptr @fn_llty(ptr %t23) %t25 = call ptr @fn_emit_alloca(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t10 %t28 = call ptr @fn_llty(ptr %t27) %t29 = load ptr, ptr %t19 %t30 = getelementptr inbounds %Cmp_Val, ptr %t29, i32 0, i32 0 %t31 = load ptr, ptr %t30 %t32 = load ptr, ptr %t26 call void @fn_store_at(ptr %t28, ptr %t31, ptr %t32) %t33 = load ptr, ptr %t0 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 %t36 = load ptr, ptr %t26 %t37 = load ptr, ptr %t10 call void @fn_loc_push(ptr %t35, ptr %t36, ptr %t37) %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 2 %t40 = load i32, ptr %t39 call void @fn_loc_set_mut(i32 %t40) br label %ret ifend5: %t41 = load ptr, ptr %t10 %t42 = call ptr @fn_llty(ptr %t41) %t43 = call ptr @fn_emit_alloca(ptr %t42) store ptr %t43, ptr %t44 %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 4 %t47 = load ptr, ptr %t46 %t48 = icmp eq ptr %t47, null %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then6, label %else7 then6: store ptr @.str6429, ptr %t51 %t52 = load ptr, ptr %t10 %t53 = call ptr @fn_llty(ptr %t52) %t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str6430) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then9, label %ifend11 then9: store ptr @.str6431, ptr %t51 br label %ifend11 ifend11: %t56 = load ptr, ptr %t10 %t57 = call ptr @fn_llty(ptr %t56) %t58 = load ptr, ptr %t51 %t59 = load ptr, ptr %t44 call void @fn_store_at(ptr %t57, ptr %t58, ptr %t59) br label %ifend8 else7: %t60 = load ptr, ptr %t0 %t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4 %t62 = load ptr, ptr %t61 %t63 = call ptr @fn_emit_expr(ptr %t62) store ptr %t63, ptr %t64 %t65 = load ptr, ptr %t10 %t66 = call ptr @fn_llty(ptr %t65) %t67 = load ptr, ptr %t64 %t68 = load ptr, ptr %t10 %t69 = call ptr @fn_coerce_code(ptr %t67, ptr %t68) %t70 = load ptr, ptr %t44 call void @fn_store_at(ptr %t66, ptr %t69, ptr %t70) br label %ifend8 ifend8: %t71 = load ptr, ptr %t0 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 1 %t73 = load ptr, ptr %t72 %t74 = load ptr, ptr %t44 %t75 = load ptr, ptr %t10 call void @fn_loc_push(ptr %t73, ptr %t74, ptr %t75) %t76 = load ptr, ptr %t0 %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 2 %t78 = load i32, ptr %t77 call void @fn_loc_set_mut(i32 %t78) br label %ret ifend2: %t79 = load ptr, ptr %t0 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 0 %t81 = load i32, ptr %t80 %t82 = icmp eq i32 %t81, 11 %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then12, label %ifend14 then12: %t85 = load ptr, ptr %t0 call void @fn_emit_assign(ptr %t85) br label %ret ifend14: %t86 = load ptr, ptr %t0 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 0 %t88 = load i32, ptr %t87 %t89 = icmp eq i32 %t88, 12 %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then15, label %ifend17 then15: %t92 = load ptr, ptr %t0 call void @fn_emit_if(ptr %t92) br label %ret ifend17: %t93 = load ptr, ptr %t0 %t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 0 %t95 = load i32, ptr %t94 %t96 = icmp eq i32 %t95, 13 %t97 = zext i1 %t96 to i32 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then18, label %ifend20 then18: %t99 = load ptr, ptr %t0 call void @fn_emit_while(ptr %t99) br label %ret ifend20: %t100 = load ptr, ptr %t0 %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 0 %t102 = load i32, ptr %t101 %t103 = icmp eq i32 %t102, 14 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then21, label %ifend23 then21: %t106 = load ptr, ptr %t0 call void @fn_emit_for(ptr %t106) br label %ret ifend23: %t107 = load ptr, ptr %t0 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 0 %t109 = load i32, ptr %t108 %t110 = icmp eq i32 %t109, 15 %t111 = zext i1 %t110 to i32 %t112 = icmp ne i32 %t111, 0 br i1 %t112, label %then24, label %ifend26 then24: %t113 = load ptr, ptr %t0 call void @fn_emit_return(ptr %t113) br label %ret ifend26: %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, 17 %t118 = zext i1 %t117 to i32 %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then27, label %ifend29 then27: call void @fn_emit(ptr @.str6432) %t120 = load ptr, ptr @g_brk_lbl %t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 %t123 = load i32, ptr @g_nloop %t124 = sub i32 %t123, 1 %t125 = getelementptr inbounds ptr, ptr %t122, i32 %t124 %t126 = load ptr, ptr %t125 call void @fn_emit(ptr %t126) call void @fn_emit(ptr @.str6433) store i32 1, ptr @g_g_term br label %ret ifend29: %t127 = load ptr, ptr %t0 %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 0 %t129 = load i32, ptr %t128 %t130 = icmp eq i32 %t129, 18 %t131 = zext i1 %t130 to i32 %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then30, label %ifend32 then30: call void @fn_emit(ptr @.str6434) %t133 = load ptr, ptr @g_cnt_lbl %t134 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 %t136 = load i32, ptr @g_nloop %t137 = sub i32 %t136, 1 %t138 = getelementptr inbounds ptr, ptr %t135, i32 %t137 %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str6435) store i32 1, ptr @g_g_term br label %ret ifend32: %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, 19 %t144 = zext i1 %t143 to i32 %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then33, label %ifend35 then33: %t146 = load ptr, ptr %t0 call void @fn_emit_match(ptr %t146) br label %ret ifend35: %t147 = load ptr, ptr %t0 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 0 %t149 = load i32, ptr %t148 %t150 = icmp eq i32 %t149, 21 %t151 = zext i1 %t150 to i32 %t152 = icmp ne i32 %t151, 0 br i1 %t152, label %then36, label %ifend38 then36: %t153 = load ptr, ptr %t0 call void @fn_emit_query(ptr %t153) br label %ret ifend38: %t154 = load ptr, ptr %t0 %t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 0 %t156 = load i32, ptr %t155 %t157 = icmp eq i32 %t156, 22 %t158 = zext i1 %t157 to i32 %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then39, label %ifend41 then39: %t160 = load ptr, ptr %t0 %t161 = call ptr @fn_emit_spawn(ptr %t160) store ptr %t161, ptr %t162 br label %ret ifend41: %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, 23 %t167 = zext i1 %t166 to i32 %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %then42, label %ifend44 then42: %t169 = load ptr, ptr %t0 call void @fn_emit_despawn(ptr %t169) br label %ret ifend44: %t170 = load ptr, ptr %t0 %t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 0 %t172 = load i32, ptr %t171 %t173 = icmp eq i32 %t172, 28 %t174 = zext i1 %t173 to i32 %t175 = icmp ne i32 %t174, 0 br i1 %t175, label %then45, label %ifend47 then45: %t176 = load ptr, ptr %t0 call void @fn_emit_toggle(ptr %t176) br label %ret ifend47: %t177 = load ptr, ptr %t0 %t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 0 %t179 = load i32, ptr %t178 %t180 = icmp eq i32 %t179, 46 %t181 = zext i1 %t180 to i32 %t182 = icmp ne i32 %t181, 0 br i1 %t182, label %then48, label %ifend50 then48: %t183 = load ptr, ptr %t0 call void @fn_emit_attach(ptr %t183) br label %ret ifend50: %t184 = load ptr, ptr %t0 %t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 0 %t186 = load i32, ptr %t185 %t187 = icmp eq i32 %t186, 47 %t188 = zext i1 %t187 to i32 %t189 = icmp ne i32 %t188, 0 br i1 %t189, label %then51, label %ifend53 then51: %t190 = load ptr, ptr %t0 call void @fn_emit_detach(ptr %t190) br label %ret ifend53: %t191 = load ptr, ptr %t0 %t192 = getelementptr inbounds %Cmp_Node, ptr %t191, i32 0, i32 0 %t193 = load i32, ptr %t192 %t194 = icmp eq i32 %t193, 49 %t195 = zext i1 %t194 to i32 %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %then54, label %ifend56 then54: %t197 = load ptr, ptr %t0 %t198 = call ptr @fn_emit_emit(ptr %t197) store ptr %t198, ptr %t199 br label %ret ifend56: %t200 = load ptr, ptr %t0 %t201 = getelementptr inbounds %Cmp_Node, ptr %t200, i32 0, i32 0 %t202 = load i32, ptr %t201 %t203 = icmp eq i32 %t202, 50 %t204 = zext i1 %t203 to i32 %t205 = icmp ne i32 %t204, 0 br i1 %t205, label %then57, label %ifend59 then57: %t206 = load ptr, ptr @g_g_cancel_addr %t207 = icmp eq ptr %t206, null %t208 = zext i1 %t207 to i32 %t209 = icmp ne i32 %t208, 0 br i1 %t209, label %then60, label %ifend62 then60: call void @fn_perr(ptr @.str6436) br label %ifend62 ifend62: call void @fn_emit(ptr @.str6437) %t210 = load ptr, ptr @g_g_cancel_addr call void @fn_emit(ptr %t210) call void @fn_emit(ptr @.str6438) br label %ret ifend59: %t211 = load ptr, ptr %t0 %t212 = getelementptr inbounds %Cmp_Node, ptr %t211, i32 0, i32 0 %t213 = load i32, ptr %t212 %t214 = icmp eq i32 %t213, 24 %t215 = zext i1 %t214 to i32 %t216 = icmp ne i32 %t215, 0 br i1 %t216, label %then63, label %ifend65 then63: %t217 = load ptr, ptr %t0 call void @fn_emit_machine(ptr %t217) br label %ret ifend65: %t218 = load ptr, ptr %t0 %t219 = getelementptr inbounds %Cmp_Node, ptr %t218, i32 0, i32 0 %t220 = load i32, ptr %t219 %t221 = icmp eq i32 %t220, 26 %t222 = zext i1 %t221 to i32 %t223 = icmp ne i32 %t222, 0 br i1 %t223, label %then66, label %ifend68 then66: %t224 = load ptr, ptr %t0 call void @fn_emit_become(ptr %t224) br label %ret ifend68: %t225 = load ptr, ptr %t0 %t226 = getelementptr inbounds %Cmp_Node, ptr %t225, i32 0, i32 0 %t227 = load i32, ptr %t226 %t228 = icmp eq i32 %t227, 16 %t229 = zext i1 %t228 to i32 %t230 = icmp ne i32 %t229, 0 br i1 %t230, label %then69, label %ifend71 then69: %t231 = load ptr, ptr %t0 %t232 = getelementptr inbounds %Cmp_Node, ptr %t231, i32 0, i32 4 %t233 = load ptr, ptr %t232 %t234 = call ptr @fn_emit_expr(ptr %t233) store ptr %t234, ptr %t235 br label %ret ifend71: call void @fn_perr(ptr @.str6439) 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr @g_nloop %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t0 store ptr %t14, ptr %t13 %t15 = load ptr, ptr @g_brk_lbl %t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = load i32, ptr @g_nloop %t19 = getelementptr inbounds ptr, ptr %t17, i32 %t18 %t20 = load ptr, ptr %t1 store ptr %t20, ptr %t19 br label %ifend2 else1: %t21 = load ptr, ptr @g_cnt_lbl %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1 %t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 2 %t24 = getelementptr inbounds %LSlice, ptr %t21, 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 %t0 %t38 = load ptr, ptr %t24 %t39 = getelementptr inbounds ptr, ptr %t38, i32 %t25 store ptr %t37, ptr %t39 %t40 = add i32 %t25, 1 store i32 %t40, ptr %t22 %t41 = load ptr, ptr @g_brk_lbl %t42 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 1 %t43 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 2 %t44 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0 %t45 = load i32, ptr %t42 %t46 = load i32, ptr %t43 %t47 = icmp sge i32 %t45, %t46 br i1 %t47, label %grow5, label %put6 grow5: %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 %put6 put6: %t57 = load ptr, ptr %t1 %t58 = load ptr, ptr %t44 %t59 = getelementptr inbounds ptr, ptr %t58, i32 %t45 store ptr %t57, ptr %t59 %t60 = add i32 %t45, 1 store i32 %t60, ptr %t42 br label %ifend2 ifend2: %t61 = load i32, ptr @g_nloop %t62 = add i32 %t61, 1 store i32 %t62, 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %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, 9 %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 %t0 %t20 = add i32 %t19, 1 store i32 %t20, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t21 = load i32, ptr %retval ret i32 %t21 } 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %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, 10 %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 %t0 %t20 = add i32 %t19, 1 store i32 %t20, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t21 = load i32, ptr %retval ret i32 %t21 } 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %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, 6 %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 %t0 %t20 = add i32 %t19, 1 store i32 %t20, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t21 = load i32, ptr %retval ret i32 %t21 } 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 %t38 = alloca ptr %t90 = alloca i32 call void @fn_emith(ptr @.str6440) call void @fn_emith(ptr @.str6441) call void @fn_emith(ptr @.str6442) %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 @.str6443) br label %ifend2 ifend2: call void @fn_emith(ptr @.str6444) %t6 = call ptr @fn_itoa(i32 1024) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 %t9 = call ptr @fn_str_concat(ptr @.str6445, ptr %t8) %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str6446) call void @fn_emith(ptr %t10) %t11 = load ptr, ptr %t7 %t12 = call ptr @fn_str_concat(ptr @.str6447, ptr %t11) %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str6448) call void @fn_emith(ptr %t13) %t14 = load ptr, ptr %t7 %t15 = call ptr @fn_str_concat(ptr @.str6449, ptr %t14) %t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str6450) call void @fn_emith(ptr %t16) call void @fn_emith(ptr @.str6451) %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 @.str6452) call void @fn_emith(ptr @.str6453) 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 @fn_str_concat(ptr @.str6454, ptr %t21) %t23 = call ptr @fn_str_concat(ptr %t22, ptr @.str6455) 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 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = load i32, ptr %t24 %t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35 %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 0 %t41 = load i32, ptr %t40 %t42 = icmp eq i32 %t41, 8 %t43 = zext i1 %t42 to i32 %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then12, label %ifend14 then12: %t45 = load ptr, ptr %t38 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = call ptr @fn_str_concat(ptr @.str6456, ptr %t47) %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str6457) %t50 = load ptr, ptr %t7 %t51 = call ptr @fn_str_concat(ptr %t49, ptr %t50) %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str6458) %t53 = load ptr, ptr %t38 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 1 %t55 = load ptr, ptr %t54 %t56 = call ptr @fn_str_concat(ptr %t52, ptr %t55) %t57 = call ptr @fn_str_concat(ptr %t56, ptr @.str6459) call void @fn_emith(ptr %t57) %t58 = load ptr, ptr %t38 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 1 %t60 = load ptr, ptr %t59 %t61 = call ptr @fn_str_concat(ptr @.str6460, ptr %t60) %t62 = call ptr @fn_str_concat(ptr %t61, ptr @.str6461) %t63 = load ptr, ptr %t7 %t64 = call ptr @fn_str_concat(ptr %t62, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str6462) call void @fn_emith(ptr %t65) br label %ifend14 ifend14: %t66 = load ptr, ptr %t38 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 0 %t68 = load i32, ptr %t67 %t69 = icmp eq i32 %t68, 10 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then15, label %ifend17 then15: %t72 = load ptr, ptr %t38 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_str_concat(ptr @.str6463, ptr %t74) %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str6464) call void @fn_emith(ptr %t76) br label %ifend17 ifend17: %t77 = load ptr, ptr %t38 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 0 %t79 = load i32, ptr %t78 %t80 = icmp eq i32 %t79, 9 %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then18, label %ifend20 then18: %t83 = load ptr, ptr %t38 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_str_concat(ptr @.str6465, ptr %t85) %t87 = call ptr @fn_str_concat(ptr %t86, ptr @.str6466) call void @fn_emith(ptr %t87) br label %ifend20 ifend20: %t88 = load i32, ptr %t24 %t89 = add i32 %t88, 1 store i32 %t89, ptr %t24 br label %wcond9 wend11: store i32 0, ptr %t90 br label %wcond21 wcond21: %t91 = load i32, ptr %t90 %t92 = load ptr, ptr @g_g_toggled_layers %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 br i1 %t97, label %wbody22, label %wend23 wbody22: %t98 = load ptr, ptr @g_g_toggled_layers %t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0 %t100 = load ptr, ptr %t99 %t101 = load i32, ptr %t90 %t102 = getelementptr inbounds ptr, ptr %t100, i32 %t101 %t103 = load ptr, ptr %t102 %t104 = call ptr @fn_str_concat(ptr @.str6467, ptr %t103) %t105 = call ptr @fn_str_concat(ptr %t104, ptr @.str6468) call void @fn_emith(ptr %t105) %t106 = load i32, ptr %t90 %t107 = add i32 %t106, 1 store i32 %t107, ptr %t90 br label %wcond21 wend23: br label %ret ret: ret void } define void @fn_emit_ecs_allocator() { entry: %t1 = alloca ptr %t2 = alloca i32 %t24 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 call void @fn_emit(ptr @.str6469) 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = load i32, ptr %t2 %t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 0 %t17 = load i32, ptr %t16 %t18 = icmp eq i32 %t17, 8 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load i32, ptr %t2 %t22 = call ptr @fn_itoa(i32 %t21) %t23 = call ptr @fn_str_concat(ptr @.str6470, ptr %t22) store ptr %t23, ptr %t24 call void @fn_emit(ptr @.str6471) %t25 = load ptr, ptr %t24 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str6472) %t26 = load ptr, ptr %t1 call void @fn_emit(ptr %t26) call void @fn_emit(ptr @.str6473) %t27 = load ptr, ptr @g_prog %t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = load i32, ptr %t2 %t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6474) call void @fn_emit(ptr @.str6475) %t35 = load ptr, ptr %t24 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str6476) br label %ifend5 ifend5: %t36 = load i32, ptr %t2 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t2 br label %wcond0 wend2: call void @fn_emit(ptr @.str6477) %t38 = load ptr, ptr %t1 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str6478) call void @fn_emit(ptr @.str6479) %t39 = call i32 @fn_net_has_owned() %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then6, label %ifend8 then6: call void @fn_emit(ptr @.str6480) %t41 = load ptr, ptr %t1 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str6481) call void @fn_emit(ptr @.str6482) br label %ifend8 ifend8: call void @fn_emit(ptr @.str6483) call void @fn_emit(ptr @.str6484) call void @fn_emit(ptr @.str6485) call void @fn_emit(ptr @.str6486) call void @fn_emit(ptr @.str6487) call void @fn_emit(ptr @.str6488) call void @fn_emit(ptr @.str6489) call void @fn_emit(ptr @.str6490) call void @fn_emit(ptr @.str6491) %t42 = load ptr, ptr %t1 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str6492) call void @fn_emit(ptr @.str6493) call void @fn_emit(ptr @.str6494) call void @fn_emit(ptr @.str6495) call void @fn_emit(ptr @.str6496) call void @fn_emit(ptr @.str6497) call void @fn_emit(ptr @.str6498) call void @fn_emit(ptr @.str6499) call void @fn_emit(ptr @.str6500) call void @fn_emit(ptr @.str6501) call void @fn_emit(ptr @.str6502) call void @fn_emit(ptr @.str6503) %t43 = load ptr, ptr %t1 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str6504) call void @fn_emit(ptr @.str6505) call void @fn_emit(ptr @.str6506) call void @fn_emit(ptr @.str6507) call void @fn_emit(ptr @.str6508) %t44 = load ptr, ptr %t1 call void @fn_emit(ptr %t44) call void @fn_emit(ptr @.str6509) call void @fn_emit(ptr @.str6510) call void @fn_emit(ptr @.str6511) call void @fn_emit(ptr @.str6512) call void @fn_emit(ptr @.str6513) %t45 = load ptr, ptr %t1 call void @fn_emit(ptr %t45) call void @fn_emit(ptr @.str6514) call void @fn_emit(ptr @.str6515) call void @fn_emit(ptr @.str6516) call void @fn_emit(ptr @.str6517) call void @fn_emit(ptr @.str6518) 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 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0 %t12 = load ptr, ptr %t11 %t13 = load i32, ptr %t1 %t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 0 %t17 = load i32, ptr %t16 %t18 = icmp eq i32 %t17, 10 %t19 = zext i1 %t18 to i32 %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: %t21 = load ptr, ptr @g_prog %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = load i32, ptr %t1 %t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 %t29 = load ptr, ptr %t0 %t30 = call i32 @fn_str_eq(ptr %t28, ptr %t29) %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then6, label %ifend8 then6: %t32 = load i32, ptr %t2 store i32 %t32, ptr %retval br label %ret ifend8: %t33 = load i32, ptr %t2 %t34 = add i32 %t33, 1 store i32 %t34, ptr %t2 br label %ifend5 ifend5: %t35 = load i32, ptr %t1 %t36 = add i32 %t35, 1 store i32 %t36, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t37 = load i32, ptr %retval ret i32 %t37 } define void @fn_emit_query(ptr %arg_st) { entry: %t0 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t42 = alloca ptr %t44 = alloca ptr %t46 = alloca ptr %t48 = alloca ptr %t54 = alloca ptr %t56 = alloca ptr %t63 = alloca ptr %t71 = alloca ptr %t73 = alloca ptr %t80 = alloca ptr %t85 = alloca ptr %t87 = alloca ptr %t95 = alloca ptr %t96 = alloca i32 %t114 = alloca ptr %t119 = alloca i32 %t120 = alloca ptr %t126 = alloca ptr %t133 = alloca ptr %t141 = alloca ptr %t147 = alloca ptr %t152 = alloca ptr %t160 = alloca ptr %t170 = alloca ptr %t176 = alloca ptr %t184 = alloca i32 %t185 = alloca i32 %t203 = alloca ptr %t204 = alloca i32 %t232 = alloca ptr %t243 = alloca ptr %t274 = alloca ptr %t281 = alloca ptr %t283 = alloca ptr %t303 = alloca ptr %t308 = 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 @.str6519) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 call void @fn_store_at(ptr @.str6520, ptr @.str6521, 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 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = load i32, ptr @g_nself %t17 = getelementptr inbounds ptr, ptr %t15, i32 %t16 %t18 = load ptr, ptr %t4 store ptr %t18, ptr %t17 br label %ifend2 else1: %t19 = load ptr, ptr @g_self_stk %t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1 %t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 2 %t22 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t23 = load i32, ptr %t20 %t24 = load i32, ptr %t21 %t25 = icmp sge i32 %t23, %t24 br i1 %t25, label %grow3, label %put4 grow3: %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 %put4 put4: %t35 = load ptr, ptr %t4 %t36 = load ptr, ptr %t22 %t37 = getelementptr inbounds ptr, ptr %t36, i32 %t23 store ptr %t35, ptr %t37 %t38 = add i32 %t23, 1 store i32 %t38, ptr %t20 br label %ifend2 ifend2: %t39 = load i32, ptr @g_nself %t40 = add i32 %t39, 1 store i32 %t40, ptr @g_nself %t41 = call ptr @fn_lbl(ptr @.str6522) store ptr %t41, ptr %t42 %t43 = call ptr @fn_lbl(ptr @.str6523) store ptr %t43, ptr %t44 %t45 = call ptr @fn_lbl(ptr @.str6524) store ptr %t45, ptr %t46 %t47 = call ptr @fn_lbl(ptr @.str6525) store ptr %t47, ptr %t48 call void @fn_emit(ptr @.str6526) %t49 = load ptr, ptr %t42 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str6527) %t50 = load ptr, ptr %t42 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str6528) %t51 = load ptr, ptr %t4 %t52 = call ptr @fn_str_concat(ptr @.str6529, ptr %t51) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 %t55 = call ptr @fn_emit_bind(ptr @.str6530) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t54 %t58 = call ptr @fn_str_concat(ptr @.str6531, ptr %t57) %t59 = call ptr @fn_str_concat(ptr %t58, ptr @.str6532) %t60 = load ptr, ptr %t56 %t61 = call ptr @fn_str_concat(ptr %t59, ptr %t60) %t62 = call ptr @fn_emit_bind(ptr %t61) store ptr %t62, ptr %t63 call void @fn_emit(ptr @.str6533) %t64 = load ptr, ptr %t63 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str6534) %t65 = load ptr, ptr %t44 call void @fn_emit(ptr %t65) call void @fn_emit(ptr @.str6535) %t66 = load ptr, ptr %t48 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str6536) %t67 = load ptr, ptr %t44 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str6537) store i32 0, ptr @g_g_term %t68 = load ptr, ptr %t4 %t69 = call ptr @fn_str_concat(ptr @.str6538, ptr %t68) %t70 = call ptr @fn_emit_bind(ptr %t69) store ptr %t70, ptr %t71 %t72 = call ptr @fn_nreg() store ptr %t72, ptr %t73 call void @fn_emit(ptr @.str6539) %t74 = load ptr, ptr %t73 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str6540) %t75 = load ptr, ptr %t2 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str6541) %t76 = load ptr, ptr %t71 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str6542) %t77 = load ptr, ptr %t73 %t78 = call ptr @fn_str_concat(ptr @.str6543, ptr %t77) %t79 = call ptr @fn_emit_bind(ptr %t78) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t80 %t82 = call ptr @fn_str_concat(ptr @.str6544, ptr %t81) %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str6545) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = call ptr @fn_lbl(ptr @.str6546) store ptr %t86, ptr %t87 call void @fn_emit(ptr @.str6547) %t88 = load ptr, ptr %t85 call void @fn_emit(ptr %t88) call void @fn_emit(ptr @.str6548) %t89 = load ptr, ptr %t87 call void @fn_emit(ptr %t89) call void @fn_emit(ptr @.str6549) %t90 = load ptr, ptr %t46 call void @fn_emit(ptr %t90) call void @fn_emit(ptr @.str6550) %t91 = load ptr, ptr %t87 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str6551) %t92 = load ptr, ptr %t0 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 6 %t94 = load ptr, ptr %t93 store ptr %t94, ptr %t95 store i32 0, ptr %t96 br label %wcond5 wcond5: %t97 = load i32, ptr %t96 %t98 = load ptr, ptr %t95 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 7 %t100 = load ptr, ptr %t99 %t101 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1 %t102 = load i32, ptr %t101 %t103 = icmp slt i32 %t97, %t102 %t104 = zext i1 %t103 to i32 %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %wbody6, label %wend7 wbody6: %t106 = load ptr, ptr %t95 %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 = load i32, ptr %t96 %t112 = getelementptr inbounds ptr, ptr %t110, i32 %t111 %t113 = load ptr, ptr %t112 store ptr %t113, ptr %t114 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 1 %t117 = load ptr, ptr %t116 %t118 = call i32 @fn_find_arch_id(ptr %t117) store i32 %t118, ptr %t119 store ptr @.str6552, ptr %t120 %t121 = load i32, ptr %t119 %t122 = icmp sgt i32 %t121, 0 %t123 = zext i1 %t122 to i32 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then8, label %else9 then8: %t125 = call ptr @fn_nreg() store ptr %t125, ptr %t126 call void @fn_emit(ptr @.str6553) %t127 = load ptr, ptr %t126 call void @fn_emit(ptr %t127) call void @fn_emit(ptr @.str6554) %t128 = load ptr, ptr %t2 call void @fn_emit(ptr %t128) call void @fn_emit(ptr @.str6555) %t129 = load ptr, ptr %t71 call void @fn_emit(ptr %t129) call void @fn_emit(ptr @.str6556) %t130 = load ptr, ptr %t126 %t131 = call ptr @fn_str_concat(ptr @.str6557, ptr %t130) %t132 = call ptr @fn_emit_bind(ptr %t131) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t133 %t135 = call ptr @fn_str_concat(ptr @.str6558, ptr %t134) %t136 = call ptr @fn_str_concat(ptr %t135, ptr @.str6559) %t137 = load i32, ptr %t119 %t138 = call ptr @fn_itoa(i32 %t137) %t139 = call ptr @fn_str_concat(ptr %t136, ptr %t138) %t140 = call ptr @fn_emit_bind(ptr %t139) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t114 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 1 %t144 = load ptr, ptr %t143 %t145 = call ptr @fn_str_concat(ptr @.str6560, ptr %t144) %t146 = call ptr @fn_emit_bind(ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t147 %t149 = call ptr @fn_str_concat(ptr @.str6561, ptr %t148) %t150 = call ptr @fn_str_concat(ptr %t149, ptr @.str6562) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t141 %t154 = call ptr @fn_str_concat(ptr @.str6563, ptr %t153) %t155 = call ptr @fn_str_concat(ptr %t154, ptr @.str6564) %t156 = load ptr, ptr %t152 %t157 = call ptr @fn_str_concat(ptr %t155, ptr %t156) %t158 = call ptr @fn_emit_bind(ptr %t157) store ptr %t158, ptr %t120 br label %ifend10 else9: %t159 = call ptr @fn_nreg() store ptr %t159, ptr %t160 call void @fn_emit(ptr @.str6565) %t161 = load ptr, ptr %t160 call void @fn_emit(ptr %t161) call void @fn_emit(ptr @.str6566) %t162 = load ptr, ptr %t2 call void @fn_emit(ptr %t162) call void @fn_emit(ptr @.str6567) %t163 = load ptr, ptr %t114 %t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 1 %t165 = load ptr, ptr %t164 call void @fn_emit(ptr %t165) call void @fn_emit(ptr @.str6568) %t166 = load ptr, ptr %t71 call void @fn_emit(ptr %t166) call void @fn_emit(ptr @.str6569) %t167 = load ptr, ptr %t160 %t168 = call ptr @fn_str_concat(ptr @.str6570, ptr %t167) %t169 = call ptr @fn_emit_bind(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t170 %t172 = call ptr @fn_str_concat(ptr @.str6571, ptr %t171) %t173 = call ptr @fn_str_concat(ptr %t172, ptr @.str6572) %t174 = call ptr @fn_emit_bind(ptr %t173) store ptr %t174, ptr %t120 br label %ifend10 ifend10: %t175 = call ptr @fn_lbl(ptr @.str6573) store ptr %t175, ptr %t176 call void @fn_emit(ptr @.str6574) %t177 = load ptr, ptr %t120 call void @fn_emit(ptr %t177) call void @fn_emit(ptr @.str6575) %t178 = load ptr, ptr %t176 call void @fn_emit(ptr %t178) call void @fn_emit(ptr @.str6576) %t179 = load ptr, ptr %t46 call void @fn_emit(ptr %t179) call void @fn_emit(ptr @.str6577) %t180 = load ptr, ptr %t176 call void @fn_emit(ptr %t180) call void @fn_emit(ptr @.str6578) %t181 = load i32, ptr %t96 %t182 = add i32 %t181, 1 store i32 %t182, ptr %t96 br label %wcond5 wend7: %t183 = load i32, ptr @g_nloc store i32 %t183, ptr %t184 store i32 0, ptr %t185 store i32 0, ptr %t96 br label %wcond11 wcond11: %t186 = load i32, ptr %t96 %t187 = load ptr, ptr %t95 %t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 7 %t189 = load ptr, ptr %t188 %t190 = getelementptr inbounds %LSlice, ptr %t189, i32 0, i32 1 %t191 = load i32, ptr %t190 %t192 = icmp slt i32 %t186, %t191 %t193 = zext i1 %t192 to i32 %t194 = icmp ne i32 %t193, 0 br i1 %t194, label %wbody12, label %wend13 wbody12: %t195 = load ptr, ptr %t95 %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 0 %t199 = load ptr, ptr %t198 %t200 = load i32, ptr %t96 %t201 = getelementptr inbounds ptr, ptr %t199, i32 %t200 %t202 = load ptr, ptr %t201 store ptr %t202, ptr %t203 %t205 = load ptr, ptr %t203 %t206 = getelementptr inbounds %Cmp_Node, ptr %t205, i32 0, i32 2 %t207 = load i32, ptr %t206 %t208 = icmp eq i32 %t207, 0 %t209 = zext i1 %t208 to i32 %t210 = icmp ne i32 %t209, 0 %t211 = zext i1 %t210 to i32 store i32 %t211, ptr %t204 br i1 %t210, label %sc14, label %scend15 sc14: %t212 = load ptr, ptr %t203 %t213 = getelementptr inbounds %Cmp_Node, ptr %t212, i32 0, i32 1 %t214 = load ptr, ptr %t213 %t215 = call i32 @fn_find_arch_id(ptr %t214) %t216 = icmp eq i32 %t215, 0 %t217 = zext i1 %t216 to i32 %t218 = icmp ne i32 %t217, 0 %t219 = zext i1 %t218 to i32 store i32 %t219, ptr %t204 br label %scend15 scend15: %t220 = load i32, ptr %t204 %t221 = icmp ne i32 %t220, 0 br i1 %t221, label %then16, label %ifend18 then16: %t222 = load i32, ptr %t185 %t223 = load ptr, ptr %t0 %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 1 %t227 = load i32, ptr %t226 %t228 = icmp slt i32 %t222, %t227 %t229 = zext i1 %t228 to i32 %t230 = icmp ne i32 %t229, 0 br i1 %t230, label %then19, label %ifend21 then19: %t231 = call ptr @fn_nreg() store ptr %t231, ptr %t232 call void @fn_emit(ptr @.str6579) %t233 = load ptr, ptr %t232 call void @fn_emit(ptr %t233) call void @fn_emit(ptr @.str6580) %t234 = load ptr, ptr %t2 call void @fn_emit(ptr %t234) call void @fn_emit(ptr @.str6581) %t235 = load ptr, ptr %t203 %t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 1 %t237 = load ptr, ptr %t236 call void @fn_emit(ptr %t237) call void @fn_emit(ptr @.str6582) %t238 = load ptr, ptr %t203 %t239 = getelementptr inbounds %Cmp_Node, ptr %t238, i32 0, i32 1 %t240 = load ptr, ptr %t239 call void @fn_emit(ptr %t240) call void @fn_emit(ptr @.str6583) %t241 = load ptr, ptr %t71 call void @fn_emit(ptr %t241) call void @fn_emit(ptr @.str6584) %t242 = call ptr @fn_emit_alloca(ptr @.str6585) store ptr %t242, ptr %t243 call void @fn_emit(ptr @.str6586) %t244 = load ptr, ptr %t232 call void @fn_emit(ptr %t244) call void @fn_emit(ptr @.str6587) %t245 = load ptr, ptr %t243 call void @fn_emit(ptr %t245) call void @fn_emit(ptr @.str6588) %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 0 %t250 = load ptr, ptr %t249 %t251 = load i32, ptr %t185 %t252 = getelementptr inbounds ptr, ptr %t250, i32 %t251 %t253 = load ptr, ptr %t252 %t254 = getelementptr inbounds %Cmp_Node, ptr %t253, i32 0, i32 1 %t255 = load ptr, ptr %t254 %t256 = load ptr, ptr %t243 %t257 = load ptr, ptr %t203 %t258 = getelementptr inbounds %Cmp_Node, ptr %t257, i32 0, i32 1 %t259 = load ptr, ptr %t258 call void @fn_loc_push(ptr %t255, ptr %t256, ptr %t259) %t260 = load i32, ptr %t185 %t261 = add i32 %t260, 1 store i32 %t261, ptr %t185 br label %ifend21 ifend21: br label %ifend18 ifend18: %t262 = load i32, ptr %t96 %t263 = add i32 %t262, 1 store i32 %t263, ptr %t96 br label %wcond11 wend13: %t264 = load ptr, ptr %t0 %t265 = getelementptr inbounds %Cmp_Node, ptr %t264, i32 0, i32 5 %t266 = load ptr, ptr %t265 %t267 = icmp ne ptr %t266, null %t268 = zext i1 %t267 to i32 %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then22, label %ifend24 then22: %t270 = load ptr, ptr %t0 %t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 5 %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 @fn_str_concat(ptr @.str6589, ptr %t277) %t279 = call ptr @fn_str_concat(ptr %t278, ptr @.str6590) %t280 = call ptr @fn_emit_bind(ptr %t279) store ptr %t280, ptr %t281 %t282 = call ptr @fn_lbl(ptr @.str6591) store ptr %t282, ptr %t283 call void @fn_emit(ptr @.str6592) %t284 = load ptr, ptr %t281 call void @fn_emit(ptr %t284) call void @fn_emit(ptr @.str6593) %t285 = load ptr, ptr %t283 call void @fn_emit(ptr %t285) call void @fn_emit(ptr @.str6594) %t286 = load ptr, ptr %t46 call void @fn_emit(ptr %t286) call void @fn_emit(ptr @.str6595) %t287 = load ptr, ptr %t283 call void @fn_emit(ptr %t287) call void @fn_emit(ptr @.str6596) br label %ifend24 ifend24: %t288 = load ptr, ptr %t46 %t289 = load ptr, ptr %t48 call void @fn_loop_push(ptr %t288, ptr %t289) %t290 = load ptr, ptr %t0 %t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 4 %t292 = load ptr, ptr %t291 call void @fn_emit_block(ptr %t292) call void @fn_loop_pop() %t293 = load i32, ptr %t184 store i32 %t293, ptr @g_nloc %t294 = load i32, ptr @g_g_term %t295 = icmp eq i32 %t294, 0 %t296 = zext i1 %t295 to i32 %t297 = icmp ne i32 %t296, 0 br i1 %t297, label %then25, label %ifend27 then25: call void @fn_emit(ptr @.str6597) %t298 = load ptr, ptr %t46 call void @fn_emit(ptr %t298) call void @fn_emit(ptr @.str6598) br label %ifend27 ifend27: %t299 = load ptr, ptr %t46 call void @fn_emit(ptr %t299) call void @fn_emit(ptr @.str6599) %t300 = load ptr, ptr %t4 %t301 = call ptr @fn_str_concat(ptr @.str6600, ptr %t300) %t302 = call ptr @fn_emit_bind(ptr %t301) store ptr %t302, ptr %t303 %t304 = load ptr, ptr %t303 %t305 = call ptr @fn_str_concat(ptr @.str6601, ptr %t304) %t306 = call ptr @fn_str_concat(ptr %t305, ptr @.str6602) %t307 = call ptr @fn_emit_bind(ptr %t306) store ptr %t307, ptr %t308 %t309 = load ptr, ptr %t308 %t310 = load ptr, ptr %t4 call void @fn_store_at(ptr @.str6603, ptr %t309, ptr %t310) call void @fn_emit(ptr @.str6604) %t311 = load ptr, ptr %t42 call void @fn_emit(ptr %t311) call void @fn_emit(ptr @.str6605) %t312 = load ptr, ptr %t48 call void @fn_emit(ptr %t312) call void @fn_emit(ptr @.str6606) store i32 0, ptr @g_g_term %t313 = load i32, ptr @g_nself %t314 = sub i32 %t313, 1 store i32 %t314, 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 %t46 = alloca ptr %t48 = alloca ptr %t58 = alloca ptr %t59 = alloca ptr %t73 = alloca ptr %t86 = alloca i32 %t104 = alloca ptr %t110 = alloca i32 %t116 = alloca ptr %t126 = alloca ptr %t141 = alloca ptr %t147 = alloca i32 %t149 = alloca ptr %t160 = 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 @fn_str_concat(ptr @.str6607, 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 @.str6608) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str6609) %t17 = load ptr, ptr %t4 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str6610) %t18 = load ptr, ptr %t1 call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str6611) %t19 = load ptr, ptr %t0 call void @fn_emit(ptr %t19) call void @fn_emit(ptr @.str6612) call void @fn_emit(ptr @.str6613) %t20 = load ptr, ptr %t15 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str6614) %t21 = call ptr @fn_nreg() store ptr %t21, ptr %t22 call void @fn_emit(ptr @.str6615) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str6616) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str6617) %t25 = load ptr, ptr %t1 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str6618) %t26 = load ptr, ptr %t1 call void @fn_emit(ptr %t26) call void @fn_emit(ptr @.str6619) %t27 = load ptr, ptr %t0 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str6620) 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 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = load i32, ptr %t28 %t44 = getelementptr inbounds ptr, ptr %t42, i32 %t43 %t45 = load ptr, ptr %t44 store ptr %t45, ptr %t46 %t47 = call ptr @fn_nreg() store ptr %t47, ptr %t48 call void @fn_emit(ptr @.str6621) %t49 = load ptr, ptr %t48 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str6622) %t50 = load ptr, ptr %t1 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str6623) %t51 = load ptr, ptr %t22 call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str6624) %t52 = load i32, ptr %t28 %t53 = call ptr @fn_itoa(i32 %t52) call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str6625) %t54 = load ptr, ptr %t46 %t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 3 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_llty(ptr %t56) store ptr %t57, ptr %t58 store ptr @.str6626, ptr %t59 %t60 = load ptr, ptr %t58 %t61 = call i32 @fn_str_eq(ptr %t60, ptr @.str6627) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then6, label %ifend8 then6: store ptr @.str6628, ptr %t59 br label %ifend8 ifend8: %t63 = load ptr, ptr %t46 %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 4 %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 %then9, label %ifend11 then9: %t69 = load ptr, ptr %t46 %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 %t73 %t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0 %t76 = load ptr, ptr %t75 store ptr %t76, ptr %t59 br label %ifend11 ifend11: call void @fn_emit(ptr @.str6629) %t77 = load ptr, ptr %t58 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str6630) %t78 = load ptr, ptr %t59 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str6631) %t79 = load ptr, ptr %t48 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str6632) %t80 = load i32, ptr %t28 %t81 = add i32 %t80, 1 store i32 %t81, ptr %t28 br label %wcond3 wend5: %t82 = load ptr, ptr %t2 %t83 = icmp ne ptr %t82, null %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then12, label %ifend14 then12: store i32 0, ptr %t86 br label %wcond15 wcond15: %t87 = load i32, ptr %t86 %t88 = load ptr, ptr %t2 %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 %wbody16, label %wend17 wbody16: %t96 = load ptr, ptr %t2 %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 = load i32, ptr %t86 %t102 = getelementptr inbounds ptr, ptr %t100, i32 %t101 %t103 = load ptr, ptr %t102 store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t7 %t106 = load ptr, ptr %t104 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 1 %t108 = load ptr, ptr %t107 %t109 = call i32 @fn_field_index(ptr %t105, ptr %t108) store i32 %t109, ptr %t110 %t111 = load i32, ptr %t110 %t112 = icmp sge i32 %t111, 0 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then18, label %ifend20 then18: %t115 = call ptr @fn_nreg() store ptr %t115, ptr %t116 call void @fn_emit(ptr @.str6633) %t117 = load ptr, ptr %t116 call void @fn_emit(ptr %t117) call void @fn_emit(ptr @.str6634) %t118 = load ptr, ptr %t1 call void @fn_emit(ptr %t118) call void @fn_emit(ptr @.str6635) %t119 = load ptr, ptr %t22 call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str6636) %t120 = load i32, ptr %t110 %t121 = call ptr @fn_itoa(i32 %t120) call void @fn_emit(ptr %t121) call void @fn_emit(ptr @.str6637) %t122 = load ptr, ptr %t104 %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 4 %t124 = load ptr, ptr %t123 %t125 = call ptr @fn_emit_expr(ptr %t124) store ptr %t125, ptr %t126 call void @fn_emit(ptr @.str6638) %t127 = load ptr, ptr %t7 %t128 = load ptr, ptr %t104 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_field_type(ptr %t127, ptr %t130) %t132 = call ptr @fn_llty(ptr %t131) call void @fn_emit(ptr %t132) call void @fn_emit(ptr @.str6639) %t133 = load ptr, ptr %t126 %t134 = getelementptr inbounds %Cmp_Val, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 call void @fn_emit(ptr %t135) call void @fn_emit(ptr @.str6640) %t136 = load ptr, ptr %t116 call void @fn_emit(ptr %t136) call void @fn_emit(ptr @.str6641) br label %ifend20 ifend20: %t137 = load i32, ptr %t86 %t138 = add i32 %t137, 1 store i32 %t138, ptr %t86 br label %wcond15 wend17: br label %ifend14 ifend14: %t139 = load ptr, ptr %t1 %t140 = call ptr @fn_onattach_body(ptr %t139) store ptr %t140, ptr %t141 %t142 = load ptr, ptr %t141 %t143 = icmp ne ptr %t142, null %t144 = zext i1 %t143 to i32 %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then21, label %ifend23 then21: %t146 = load i32, ptr @g_nloc store i32 %t146, ptr %t147 %t148 = call ptr @fn_emit_alloca(ptr @.str6642) store ptr %t148, ptr %t149 call void @fn_emit(ptr @.str6643) %t150 = load ptr, ptr %t22 call void @fn_emit(ptr %t150) call void @fn_emit(ptr @.str6644) %t151 = load ptr, ptr %t149 call void @fn_emit(ptr %t151) call void @fn_emit(ptr @.str6645) %t152 = load ptr, ptr %t1 %t153 = load ptr, ptr %t149 %t154 = load ptr, ptr %t1 call void @fn_loc_push(ptr %t152, ptr %t153, ptr %t154) %t155 = load ptr, ptr %t141 call void @fn_emit_block(ptr %t155) %t156 = load i32, ptr %t147 store i32 %t156, ptr @g_nloc br label %ifend23 ifend23: %t157 = load ptr, ptr %t1 %t158 = call ptr @fn_str_concat(ptr @.str6646, ptr %t157) %t159 = call ptr @fn_str_concat(ptr %t158, ptr @.str6647) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t160 %t162 = call ptr @fn_find_event(ptr %t161) %t163 = icmp ne ptr %t162, null %t164 = zext i1 %t163 to i32 %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then24, label %ifend26 then24: call void @fn_emit(ptr @.str6648) %t166 = load ptr, ptr %t160 call void @fn_emit(ptr %t166) call void @fn_emit(ptr @.str6649) %t167 = load ptr, ptr %t0 call void @fn_emit(ptr %t167) call void @fn_emit(ptr @.str6650) br label %ifend26 ifend26: 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 %t24 = alloca ptr %t26 = alloca ptr %t33 = 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 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = load i32, ptr %t4 %t20 = getelementptr inbounds ptr, ptr %t18, i32 %t19 %t21 = load ptr, ptr %t20 %t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 1 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %t24 %t25 = call ptr @fn_nreg() store ptr %t25, ptr %t26 call void @fn_emit(ptr @.str6651) %t27 = load ptr, ptr %t26 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str6652) %t28 = load ptr, ptr %t3 call void @fn_emit(ptr %t28) call void @fn_emit(ptr @.str6653) %t29 = load ptr, ptr %t24 call void @fn_emit(ptr %t29) call void @fn_emit(ptr @.str6654) %t30 = load ptr, ptr %t24 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str6655) %t31 = load ptr, ptr %t1 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str6656) %t32 = call ptr @fn_emit_alloca(ptr @.str6657) store ptr %t32, ptr %t33 call void @fn_emit(ptr @.str6658) %t34 = load ptr, ptr %t26 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6659) %t35 = load ptr, ptr %t33 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str6660) %t36 = load ptr, ptr %t24 %t37 = load ptr, ptr %t33 %t38 = load ptr, ptr %t24 call void @fn_loc_push(ptr %t36, ptr %t37, ptr %t38) %t39 = load i32, ptr %t4 %t40 = add i32 %t39, 1 store i32 %t40, ptr %t4 br label %wcond0 wend2: br label %ret ret: ret void } define ptr @fn_emit_spawn(ptr %arg_st) { entry: %retval = alloca ptr %t0 = alloca ptr %t2 = alloca ptr %t7 = alloca i32 %t13 = alloca ptr %t15 = alloca ptr %t26 = alloca ptr %t27 = alloca i32 %t47 = alloca ptr %t48 = alloca ptr %t49 = alloca i32 %t93 = alloca ptr %t99 = alloca i32 %t109 = alloca ptr %t117 = alloca i32 store ptr %arg_st, ptr %t0 %t1 = call ptr @fn_emit_bind(ptr @.str6661) store ptr %t1, 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 i32 @fn_find_arch_id(ptr %t5) store i32 %t6, ptr %t7 %t8 = load i32, ptr %t7 %t9 = icmp sgt i32 %t8, 0 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %else1 then0: %t12 = call ptr @fn_itoa(i32 1024) store ptr %t12, ptr %t13 %t14 = call ptr @fn_nreg() store ptr %t14, ptr %t15 call void @fn_emit(ptr @.str6662) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str6663) %t17 = load ptr, ptr %t13 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str6664) %t18 = load ptr, ptr %t2 call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str6665) call void @fn_emit(ptr @.str6666) %t19 = load i32, ptr %t7 %t20 = call ptr @fn_itoa(i32 %t19) call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str6667) %t21 = load ptr, ptr %t15 call void @fn_emit(ptr %t21) call void @fn_emit(ptr @.str6668) %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_find_arch(ptr %t24) store ptr %t25, ptr %t26 store i32 0, ptr %t27 br label %wcond3 wcond3: %t28 = load i32, ptr %t27 %t29 = load ptr, ptr %t26 %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 slt i32 %t28, %t33 %t35 = zext i1 %t34 to i32 %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %wbody4, label %wend5 wbody4: %t37 = load ptr, ptr %t26 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 7 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = load i32, ptr %t27 %t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t47 store ptr null, ptr %t48 store i32 0, ptr %t49 br label %wcond6 wcond6: %t50 = load i32, ptr %t49 %t51 = load ptr, ptr %t0 %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 %wbody7, label %wend8 wbody7: %t59 = load ptr, ptr %t0 %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 = load i32, ptr %t49 %t65 = getelementptr inbounds ptr, ptr %t63, i32 %t64 %t66 = load ptr, ptr %t65 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1 %t68 = load ptr, ptr %t67 %t69 = load ptr, ptr %t47 %t70 = call i32 @fn_str_eq(ptr %t68, ptr %t69) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then9, label %ifend11 then9: %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 0 %t76 = load ptr, ptr %t75 %t77 = load i32, ptr %t49 %t78 = getelementptr inbounds ptr, ptr %t76, i32 %t77 %t79 = load ptr, ptr %t78 %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 4 %t81 = load ptr, ptr %t80 store ptr %t81, ptr %t48 br label %ifend11 ifend11: %t82 = load i32, ptr %t49 %t83 = add i32 %t82, 1 store i32 %t83, ptr %t49 br label %wcond6 wend8: %t84 = load ptr, ptr %t2 %t85 = load ptr, ptr %t47 %t86 = load ptr, ptr %t48 call void @fn_emit_init_component(ptr %t84, ptr %t85, ptr %t86) %t87 = load i32, ptr %t27 %t88 = add i32 %t87, 1 store i32 %t88, ptr %t27 br label %wcond3 wend5: %t89 = load ptr, ptr %t0 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 1 %t91 = load ptr, ptr %t90 %t92 = call ptr @fn_onspawn_body(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 %then12, label %ifend14 then12: %t98 = load i32, ptr @g_nloc store i32 %t98, ptr %t99 %t100 = load ptr, ptr %t26 %t101 = load ptr, ptr %t2 call void @fn_emit_bind_props(ptr %t100, ptr %t101) %t102 = load ptr, ptr %t93 call void @fn_emit_block(ptr %t102) %t103 = load i32, ptr %t99 store i32 %t103, ptr @g_nloc br label %ifend14 ifend14: %t104 = load ptr, ptr %t0 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 1 %t106 = load ptr, ptr %t105 %t107 = call ptr @fn_str_concat(ptr @.str6669, ptr %t106) %t108 = call ptr @fn_str_concat(ptr %t107, ptr @.str6670) 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 %then15, label %ifend17 then15: call void @fn_emit(ptr @.str6671) %t115 = load ptr, ptr %t109 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str6672) %t116 = load ptr, ptr %t2 call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str6673) br label %ifend17 ifend17: br label %ifend2 else1: store i32 0, ptr %t117 br label %wcond18 wcond18: %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 %wbody19, label %wend20 wbody19: %t127 = load ptr, ptr %t2 %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 = load i32, ptr %t117 %t134 = getelementptr inbounds ptr, ptr %t132, i32 %t133 %t135 = load ptr, ptr %t134 %t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 1 %t137 = load ptr, ptr %t136 %t138 = load ptr, ptr %t0 %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 = load i32, ptr %t117 %t144 = getelementptr inbounds ptr, ptr %t142, i32 %t143 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 4 %t147 = load ptr, ptr %t146 call void @fn_emit_init_component(ptr %t127, ptr %t137, ptr %t147) %t148 = load i32, ptr %t117 %t149 = add i32 %t148, 1 store i32 %t149, ptr %t117 br label %wcond18 wend20: br label %ifend2 ifend2: %t150 = load ptr, ptr %t2 store ptr %t150, ptr %retval br label %ret ret: %t151 = load ptr, ptr %retval ret ptr %t151 } define void @fn_emit_despawn(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t13 = alloca ptr %t15 = alloca ptr %t24 = alloca ptr %t25 = alloca i32 %t41 = alloca ptr %t50 = alloca ptr %t52 = alloca ptr %t54 = alloca ptr %t66 = 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 @g_g_ondespawn %t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = load i32, ptr %t7 %t9 = icmp sgt i32 %t8, 0 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: %t12 = call ptr @fn_itoa(i32 1024) store ptr %t12, ptr %t13 %t14 = call ptr @fn_nreg() store ptr %t14, ptr %t15 call void @fn_emit(ptr @.str6674) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str6675) %t17 = load ptr, ptr %t13 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str6676) %t18 = load ptr, ptr %t5 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str6677) %t21 = load ptr, ptr %t15 %t22 = call ptr @fn_str_concat(ptr @.str6678, ptr %t21) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 store i32 0, ptr %t25 br label %wcond3 wcond3: %t26 = load i32, ptr %t25 %t27 = load ptr, ptr @g_g_ondespawn %t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1 %t29 = load i32, ptr %t28 %t30 = icmp slt i32 %t26, %t29 %t31 = zext i1 %t30 to i32 %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %wbody4, label %wend5 wbody4: %t33 = load ptr, ptr @g_g_ondespawn %t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = load i32, ptr %t25 %t37 = getelementptr inbounds ptr, ptr %t35, i32 %t36 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 1 %t40 = load ptr, ptr %t39 store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t24 %t43 = call ptr @fn_str_concat(ptr @.str6679, ptr %t42) %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str6680) %t45 = load ptr, ptr %t41 %t46 = call i32 @fn_find_arch_id(ptr %t45) %t47 = call ptr @fn_itoa(i32 %t46) %t48 = call ptr @fn_str_concat(ptr %t44, ptr %t47) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 %t51 = call ptr @fn_lbl(ptr @.str6681) store ptr %t51, ptr %t52 %t53 = call ptr @fn_lbl(ptr @.str6682) store ptr %t53, ptr %t54 call void @fn_emit(ptr @.str6683) %t55 = load ptr, ptr %t50 call void @fn_emit(ptr %t55) call void @fn_emit(ptr @.str6684) %t56 = load ptr, ptr %t52 call void @fn_emit(ptr %t56) call void @fn_emit(ptr @.str6685) %t57 = load ptr, ptr %t54 call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str6686) %t58 = load ptr, ptr %t52 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str6687) %t59 = load ptr, ptr %t41 call void @fn_emit(ptr %t59) call void @fn_emit(ptr @.str6688) %t60 = load ptr, ptr %t5 %t61 = getelementptr inbounds %Cmp_Val, ptr %t60, i32 0, i32 0 %t62 = load ptr, ptr %t61 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str6689) %t63 = load ptr, ptr %t41 %t64 = call ptr @fn_str_concat(ptr @.str6690, ptr %t63) %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str6691) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t66 %t68 = call ptr @fn_find_event(ptr %t67) %t69 = icmp ne ptr %t68, null %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then6, label %ifend8 then6: call void @fn_emit(ptr @.str6692) %t72 = load ptr, ptr %t66 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str6693) %t73 = load ptr, ptr %t5 %t74 = getelementptr inbounds %Cmp_Val, ptr %t73, i32 0, i32 0 %t75 = load ptr, ptr %t74 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str6694) br label %ifend8 ifend8: call void @fn_emit(ptr @.str6695) %t76 = load ptr, ptr %t54 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str6696) %t77 = load ptr, ptr %t54 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str6697) %t78 = load i32, ptr %t25 %t79 = add i32 %t78, 1 store i32 %t79, ptr %t25 br label %wcond3 wend5: br label %ifend2 ifend2: %t80 = load ptr, ptr @g_g_events %t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 1 %t82 = load i32, ptr %t81 %t83 = icmp sgt i32 %t82, 0 %t84 = zext i1 %t83 to i32 %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then9, label %ifend11 then9: call void @fn_emit(ptr @.str6698) %t86 = load ptr, ptr %t5 %t87 = getelementptr inbounds %Cmp_Val, ptr %t86, i32 0, i32 0 %t88 = load ptr, ptr %t87 call void @fn_emit(ptr %t88) call void @fn_emit(ptr @.str6699) br label %ifend11 ifend11: call void @fn_emit(ptr @.str6700) %t89 = load ptr, ptr %t5 %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 @.str6701) 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 @.str6702) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) call void @fn_emit(ptr @.str6703) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) call void @fn_emit(ptr @.str6704) %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 @.str6705) %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 @.str6706) %t18 = load ptr, ptr %t9 %t19 = call ptr @fn_str_concat(ptr @.str6707, ptr %t18) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call ptr @fn_str_concat(ptr @.str6708, ptr %t22) %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str6709) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = call ptr @fn_lbl(ptr @.str6710) store ptr %t27, ptr %t28 %t29 = call ptr @fn_lbl(ptr @.str6711) store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str6712) %t31 = load ptr, ptr %t26 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str6713) %t32 = load ptr, ptr %t28 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str6714) %t33 = load ptr, ptr %t30 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str6715) %t34 = load ptr, ptr %t28 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6716) 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 @.str6717) %t48 = load ptr, ptr %t30 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str6718) br label %ifend2 ifend2: %t49 = load ptr, ptr %t30 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str6719) 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 @.str6720) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) call void @fn_emit(ptr @.str6721) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) call void @fn_emit(ptr @.str6722) %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 @.str6723) %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 @.str6724) %t18 = load ptr, ptr %t9 %t19 = call ptr @fn_str_concat(ptr @.str6725, ptr %t18) %t20 = call ptr @fn_emit_bind(ptr %t19) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = call ptr @fn_str_concat(ptr @.str6726, ptr %t22) %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str6727) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = call ptr @fn_lbl(ptr @.str6728) store ptr %t27, ptr %t28 %t29 = call ptr @fn_lbl(ptr @.str6729) store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str6730) %t31 = load ptr, ptr %t26 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str6731) %t32 = load ptr, ptr %t28 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str6732) %t33 = load ptr, ptr %t30 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str6733) %t34 = load ptr, ptr %t28 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6734) store i32 0, ptr @g_g_term call void @fn_emit(ptr @.str6735) %t35 = load ptr, ptr %t9 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str6736) %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 @.str6737) %t49 = load ptr, ptr %t48 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str6738) %t50 = load ptr, ptr %t7 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str6739) %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 @.str6740) %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 @.str6741) %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 @.str6742) %t60 = call ptr @fn_emit_alloca(ptr @.str6743) store ptr %t60, ptr %t61 call void @fn_emit(ptr @.str6744) %t62 = load ptr, ptr %t48 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str6745) %t63 = load ptr, ptr %t61 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str6746) %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 @fn_str_concat(ptr @.str6747, ptr %t75) %t77 = call ptr @fn_str_concat(ptr %t76, ptr @.str6748) 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 @.str6749) %t84 = load ptr, ptr %t78 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str6750) %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 @.str6751) 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 @.str6752) %t92 = load ptr, ptr %t30 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str6753) br label %ifend8 ifend8: %t93 = load ptr, ptr %t30 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str6754) store i32 0, ptr @g_g_term br label %ret ret: ret void } define void @fn_emit_toggle(ptr %arg_st) { entry: %t0 = alloca ptr %t1 = alloca ptr %t8 = alloca i32 %t33 = alloca ptr %t61 = alloca ptr %t63 = alloca ptr %t65 = alloca ptr %t76 = alloca ptr %t96 = alloca i32 %t98 = alloca ptr %t111 = alloca ptr %t128 = alloca ptr %t149 = alloca ptr store ptr %arg_st, ptr %t0 store ptr @.str6755, 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 @.str6756, 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 @fn_str_eq(ptr %t18, ptr @.str6757) %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: call void @fn_emit(ptr @.str6758) %t24 = load ptr, ptr %t1 call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str6759) %t25 = load ptr, ptr %t0 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %t26 call void @fn_emit(ptr %t27) call void @fn_emit(ptr @.str6760) %t28 = load ptr, ptr %t0 %t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %t29 %t31 = call ptr @fn_str_concat(ptr @.str6761, ptr %t30) %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str6762) store ptr %t32, ptr %t33 %t34 = load ptr, ptr %t0 %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 br i1 %t39, label %then8, label %ifend10 then8: %t40 = load ptr, ptr %t0 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 %t43 = call ptr @fn_str_concat(ptr @.str6763, ptr %t42) %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str6764) store ptr %t44, ptr %t33 br label %ifend10 ifend10: %t45 = load ptr, ptr %t33 %t46 = call ptr @fn_find_event(ptr %t45) %t47 = icmp ne ptr %t46, null %t48 = zext i1 %t47 to i32 %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then11, label %ifend13 then11: call void @fn_emit(ptr @.str6765) %t50 = load ptr, ptr %t33 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str6766) br label %ifend13 ifend13: br label %ret ifend7: %t51 = load ptr, ptr %t0 %t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 4 %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 %then14, label %else15 then14: %t57 = load ptr, ptr %t0 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 4 %t59 = load ptr, ptr %t58 %t60 = call ptr @fn_emit_expr(ptr %t59) store ptr %t60, ptr %t61 %t62 = call ptr @fn_itoa(i32 1024) store ptr %t62, ptr %t63 %t64 = call ptr @fn_nreg() store ptr %t64, ptr %t65 call void @fn_emit(ptr @.str6767) %t66 = load ptr, ptr %t65 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str6768) %t67 = load ptr, ptr %t63 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str6769) %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str6770) %t71 = load ptr, ptr %t61 %t72 = getelementptr inbounds %Cmp_Val, ptr %t71, i32 0, i32 0 %t73 = load ptr, ptr %t72 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str6771) call void @fn_emit(ptr @.str6772) %t74 = load ptr, ptr %t1 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str6773) %t75 = load ptr, ptr %t65 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str6774) store ptr null, ptr %t76 %t77 = load ptr, ptr %t0 %t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 2 %t79 = load i32, ptr %t78 %t80 = icmp eq i32 %t79, 1 %t81 = zext i1 %t80 to i32 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then17, label %else18 then17: %t83 = load ptr, ptr %t0 %t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1 %t85 = load ptr, ptr %t84 %t86 = call ptr @fn_onenable_body(ptr %t85) store ptr %t86, ptr %t76 br label %ifend19 else18: %t87 = load ptr, ptr %t0 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 1 %t89 = load ptr, ptr %t88 %t90 = call ptr @fn_ondisable_body(ptr %t89) store ptr %t90, ptr %t76 br label %ifend19 ifend19: %t91 = load ptr, ptr %t76 %t92 = icmp ne ptr %t91, null %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then20, label %ifend22 then20: %t95 = load i32, ptr @g_nloc store i32 %t95, ptr %t96 %t97 = call ptr @fn_nreg() store ptr %t97, ptr %t98 call void @fn_emit(ptr @.str6775) %t99 = load ptr, ptr %t98 call void @fn_emit(ptr %t99) call void @fn_emit(ptr @.str6776) %t100 = load ptr, ptr %t63 call void @fn_emit(ptr %t100) call void @fn_emit(ptr @.str6777) %t101 = load ptr, ptr %t0 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1 %t103 = load ptr, ptr %t102 call void @fn_emit(ptr %t103) call void @fn_emit(ptr @.str6778) %t104 = load ptr, ptr %t0 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 1 %t106 = load ptr, ptr %t105 call void @fn_emit(ptr %t106) call void @fn_emit(ptr @.str6779) %t107 = load ptr, ptr %t61 %t108 = getelementptr inbounds %Cmp_Val, ptr %t107, i32 0, i32 0 %t109 = load ptr, ptr %t108 call void @fn_emit(ptr %t109) call void @fn_emit(ptr @.str6780) %t110 = call ptr @fn_emit_alloca(ptr @.str6781) store ptr %t110, ptr %t111 call void @fn_emit(ptr @.str6782) %t112 = load ptr, ptr %t98 call void @fn_emit(ptr %t112) call void @fn_emit(ptr @.str6783) %t113 = load ptr, ptr %t111 call void @fn_emit(ptr %t113) call void @fn_emit(ptr @.str6784) %t114 = load ptr, ptr %t0 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 1 %t116 = load ptr, ptr %t115 %t117 = load ptr, ptr %t111 %t118 = load ptr, ptr %t0 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 1 %t120 = load ptr, ptr %t119 call void @fn_loc_push(ptr %t116, ptr %t117, ptr %t120) %t121 = load ptr, ptr %t76 call void @fn_emit_block(ptr %t121) %t122 = load i32, ptr %t96 store i32 %t122, ptr @g_nloc br label %ifend22 ifend22: %t123 = load ptr, ptr %t0 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t124 %t126 = call ptr @fn_str_concat(ptr @.str6785, ptr %t125) %t127 = call ptr @fn_str_concat(ptr %t126, ptr @.str6786) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t0 %t130 = getelementptr inbounds %Cmp_Node, ptr %t129, i32 0, i32 2 %t131 = load i32, ptr %t130 %t132 = icmp eq i32 %t131, 1 %t133 = zext i1 %t132 to i32 %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then23, label %ifend25 then23: %t135 = load ptr, ptr %t0 %t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 1 %t137 = load ptr, ptr %t136 %t138 = call ptr @fn_str_concat(ptr @.str6787, ptr %t137) %t139 = call ptr @fn_str_concat(ptr %t138, ptr @.str6788) store ptr %t139, ptr %t128 br label %ifend25 ifend25: %t140 = load ptr, ptr %t128 %t141 = call ptr @fn_find_event(ptr %t140) %t142 = icmp ne ptr %t141, null %t143 = zext i1 %t142 to i32 %t144 = icmp ne i32 %t143, 0 br i1 %t144, label %then26, label %ifend28 then26: call void @fn_emit(ptr @.str6789) %t145 = load ptr, ptr %t128 call void @fn_emit(ptr %t145) call void @fn_emit(ptr @.str6790) %t146 = load ptr, ptr %t61 %t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0 %t148 = load ptr, ptr %t147 call void @fn_emit(ptr %t148) call void @fn_emit(ptr @.str6791) br label %ifend28 ifend28: br label %ifend16 else15: store ptr @.str6792, ptr %t149 %t150 = load ptr, ptr %t0 %t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 1 %t152 = load ptr, ptr %t151 %t153 = call i32 @fn_is_model(ptr %t152) %t154 = icmp ne i32 %t153, 0 br i1 %t154, label %then29, label %ifend31 then29: store ptr @.str6793, ptr %t149 br label %ifend31 ifend31: call void @fn_emit(ptr @.str6794) %t155 = load ptr, ptr %t1 call void @fn_emit(ptr %t155) call void @fn_emit(ptr @.str6795) %t156 = load ptr, ptr %t149 call void @fn_emit(ptr %t156) %t157 = load ptr, ptr %t0 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 1 %t159 = load ptr, ptr %t158 call void @fn_emit(ptr %t159) call void @fn_emit(ptr @.str6796) br label %ifend16 ifend16: br label %ret ret: ret void } define void @fn_emit_system_fn(ptr %arg_sys) { entry: %t0 = alloca ptr %t5 = alloca ptr %t8 = alloca ptr store ptr %arg_sys, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 6 %t3 = load ptr, ptr %t2 store ptr %t3, 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 @.str6797, 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 %t10 = load ptr, ptr %t0 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4 %t12 = load ptr, ptr %t11 call void @fn_emit_block(ptr %t12) %t13 = load i32, ptr @g_g_term %t14 = icmp eq i32 %t13, 0 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str6798) br label %ifend2 ifend2: call void @fn_emit(ptr @.str6799) %t17 = load ptr, ptr %t8 store ptr %t17, ptr @g_code call void @fn_emit(ptr @.str6800) %t18 = load ptr, ptr %t0 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) call void @fn_emit(ptr @.str6801) %t21 = load ptr, ptr @g_falloc %t22 = call ptr @fn_buf_str(ptr %t21) call void @fn_emit(ptr %t22) %t23 = load ptr, ptr %t5 %t24 = call ptr @fn_buf_str(ptr %t23) call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str6802) 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 @fn_str_concat(ptr @.str6803, ptr %t3) %t5 = call ptr @fn_emit_bind(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_str_concat(ptr @.str6804, ptr %t7) %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str6805) %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 @fn_str_concat(ptr @.str6806, ptr %t34) %t36 = call ptr @fn_emit_bind(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_str_concat(ptr @.str6807, ptr %t38) %t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str6808) %t41 = call ptr @fn_emit_bind(ptr %t40) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t11 %t44 = call ptr @fn_str_concat(ptr @.str6809, ptr %t43) %t45 = call ptr @fn_str_concat(ptr %t44, ptr @.str6810) %t46 = load ptr, ptr %t42 %t47 = call ptr @fn_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 @.str6811) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t56 %t58 = call ptr @fn_str_concat(ptr @.str6812, ptr %t57) %t59 = call ptr @fn_str_concat(ptr %t58, ptr @.str6813) %t60 = call ptr @fn_emit_bind(ptr %t59) store ptr %t60, ptr %t61 %t62 = load ptr, ptr %t11 %t63 = call ptr @fn_str_concat(ptr @.str6814, ptr %t62) %t64 = call ptr @fn_str_concat(ptr %t63, ptr @.str6815) %t65 = load ptr, ptr %t61 %t66 = call ptr @fn_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 @.str6816) store ptr %t68, ptr %t69 %t70 = call ptr @fn_lbl(ptr @.str6817) store ptr %t70, ptr %t71 call void @fn_emit(ptr @.str6818) %t72 = load ptr, ptr %t11 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str6819) %t73 = load ptr, ptr %t69 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str6820) %t74 = load ptr, ptr %t71 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str6821) %t75 = load ptr, ptr %t69 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str6822) %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 @.str6823) call void @fn_emit(ptr @.str6824) %t79 = load ptr, ptr %t71 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str6825) %t80 = load ptr, ptr %t71 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str6826) br label %ret ret: ret void } define void @fn_emit_calls_for_phase(ptr %arg_phase) { entry: %t0 = alloca ptr %t1 = alloca i32 %t15 = alloca ptr %t16 = alloca i32 %t17 = alloca i32 %t47 = alloca i32 %t61 = alloca ptr %t62 = alloca i32 %t63 = alloca i32 %t97 = alloca ptr %t111 = alloca ptr %t112 = alloca i32 %t113 = alloca i32 %t151 = alloca ptr %t153 = alloca ptr %t155 = 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 store ptr %t14, ptr %t15 %t18 = load ptr, ptr %t15 %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 %t17 br i1 %t23, label %sc3, label %scend4 sc3: %t25 = load ptr, ptr %t15 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 3 %t27 = load ptr, ptr %t26 %t28 = load ptr, ptr %t0 %t29 = call i32 @fn_str_eq(ptr %t27, ptr %t28) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t17 br label %scend4 scend4: %t32 = load i32, ptr %t17 %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t16 br i1 %t33, label %sc5, label %scend6 sc5: %t35 = load ptr, ptr %t15 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 6 %t37 = load ptr, 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 %t16 br label %scend6 scend6: %t42 = load i32, ptr %t16 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then7, label %ifend9 then7: %t44 = load ptr, ptr %t15 call void @fn_emit_call_one(ptr %t44) br label %ifend9 ifend9: %t45 = load i32, ptr %t1 %t46 = add i32 %t45, 1 store i32 %t46, ptr %t1 br label %wcond0 wend2: store i32 0, ptr %t47 store i32 0, ptr %t1 br label %wcond10 wcond10: %t48 = load i32, ptr %t1 %t49 = load ptr, ptr @g_prog %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 %wbody11, label %wend12 wbody11: %t55 = load ptr, ptr @g_prog %t56 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0 %t57 = load ptr, ptr %t56 %t58 = load i32, ptr %t1 %t59 = getelementptr inbounds ptr, ptr %t57, i32 %t58 %t60 = load ptr, ptr %t59 store ptr %t60, ptr %t61 %t64 = load ptr, ptr %t61 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 0 %t66 = load i32, ptr %t65 %t67 = icmp eq i32 %t66, 9 %t68 = zext i1 %t67 to i32 %t69 = icmp ne i32 %t68, 0 %t70 = zext i1 %t69 to i32 store i32 %t70, ptr %t63 br i1 %t69, label %sc13, label %scend14 sc13: %t71 = load ptr, ptr %t61 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 3 %t73 = load ptr, ptr %t72 %t74 = load ptr, ptr %t0 %t75 = call i32 @fn_str_eq(ptr %t73, ptr %t74) %t76 = icmp ne i32 %t75, 0 %t77 = zext i1 %t76 to i32 store i32 %t77, ptr %t63 br label %scend14 scend14: %t78 = load i32, ptr %t63 %t79 = icmp ne i32 %t78, 0 %t80 = zext i1 %t79 to i32 store i32 %t80, ptr %t62 br i1 %t79, label %sc15, label %scend16 sc15: %t81 = load ptr, ptr %t61 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 6 %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 %t62 br label %scend16 scend16: %t88 = load i32, ptr %t62 %t89 = icmp ne i32 %t88, 0 br i1 %t89, label %then17, label %ifend19 then17: store i32 1, ptr %t47 br label %ifend19 ifend19: %t90 = load i32, ptr %t1 %t91 = add i32 %t90, 1 store i32 %t91, ptr %t1 br label %wcond10 wend12: %t92 = load i32, ptr %t47 %t93 = icmp eq i32 %t92, 0 %t94 = zext i1 %t93 to i32 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then20, label %ifend22 then20: br label %ret ifend22: %t96 = call ptr @fn_emit_bind(ptr @.str6827) store ptr %t96, ptr %t97 store i32 0, ptr %t1 br label %wcond23 wcond23: %t98 = load i32, ptr %t1 %t99 = load ptr, ptr @g_prog %t100 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1 %t101 = load i32, ptr %t100 %t102 = icmp slt i32 %t98, %t101 %t103 = zext i1 %t102 to i32 %t104 = icmp ne i32 %t103, 0 br i1 %t104, label %wbody24, label %wend25 wbody24: %t105 = load ptr, ptr @g_prog %t106 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 0 %t107 = load ptr, ptr %t106 %t108 = load i32, ptr %t1 %t109 = getelementptr inbounds ptr, ptr %t107, i32 %t108 %t110 = load ptr, ptr %t109 store ptr %t110, ptr %t111 %t114 = load ptr, ptr %t111 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 0 %t116 = load i32, ptr %t115 %t117 = icmp eq i32 %t116, 9 %t118 = zext i1 %t117 to i32 %t119 = icmp ne i32 %t118, 0 %t120 = zext i1 %t119 to i32 store i32 %t120, ptr %t113 br i1 %t119, label %sc26, label %scend27 sc26: %t121 = load ptr, ptr %t111 %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 3 %t123 = load ptr, ptr %t122 %t124 = load ptr, ptr %t0 %t125 = call i32 @fn_str_eq(ptr %t123, ptr %t124) %t126 = icmp ne i32 %t125, 0 %t127 = zext i1 %t126 to i32 store i32 %t127, ptr %t113 br label %scend27 scend27: %t128 = load i32, ptr %t113 %t129 = icmp ne i32 %t128, 0 %t130 = zext i1 %t129 to i32 store i32 %t130, ptr %t112 br i1 %t129, label %sc28, label %scend29 sc28: %t131 = load ptr, ptr %t111 %t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 6 %t133 = load ptr, ptr %t132 %t134 = icmp ne ptr %t133, null %t135 = zext i1 %t134 to i32 %t136 = icmp ne i32 %t135, 0 %t137 = zext i1 %t136 to i32 store i32 %t137, ptr %t112 br label %scend29 scend29: %t138 = load i32, ptr %t112 %t139 = icmp ne i32 %t138, 0 br i1 %t139, label %then30, label %ifend32 then30: %t140 = load ptr, ptr %t97 %t141 = call ptr @fn_str_concat(ptr @.str6828, ptr %t140) %t142 = call ptr @fn_str_concat(ptr %t141, ptr @.str6829) %t143 = load ptr, ptr %t111 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 6 %t145 = load ptr, ptr %t144 %t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 2 %t147 = load i32, ptr %t146 %t148 = call ptr @fn_itoa(i32 %t147) %t149 = call ptr @fn_str_concat(ptr %t142, ptr %t148) %t150 = call ptr @fn_emit_bind(ptr %t149) store ptr %t150, ptr %t151 %t152 = call ptr @fn_lbl(ptr @.str6830) store ptr %t152, ptr %t153 %t154 = call ptr @fn_lbl(ptr @.str6831) store ptr %t154, ptr %t155 call void @fn_emit(ptr @.str6832) %t156 = load ptr, ptr %t151 call void @fn_emit(ptr %t156) call void @fn_emit(ptr @.str6833) %t157 = load ptr, ptr %t153 call void @fn_emit(ptr %t157) call void @fn_emit(ptr @.str6834) %t158 = load ptr, ptr %t155 call void @fn_emit(ptr %t158) call void @fn_emit(ptr @.str6835) %t159 = load ptr, ptr %t153 call void @fn_emit(ptr %t159) call void @fn_emit(ptr @.str6836) %t160 = load ptr, ptr %t111 call void @fn_emit_call_one(ptr %t160) call void @fn_emit(ptr @.str6837) %t161 = load ptr, ptr %t155 call void @fn_emit(ptr %t161) call void @fn_emit(ptr @.str6838) %t162 = load ptr, ptr %t155 call void @fn_emit(ptr %t162) call void @fn_emit(ptr @.str6839) br label %ifend32 ifend32: %t163 = load i32, ptr %t1 %t164 = add i32 %t163, 1 store i32 %t164, ptr %t1 br label %wcond23 wend25: br label %ret ret: ret void } define void @fn_emit_scene_fn(ptr %arg_name, ptr %arg_kind, ptr %arg_body) { entry: %t0 = alloca ptr %t1 = alloca ptr %t2 = alloca ptr %t4 = alloca ptr %t7 = alloca ptr %t19 = alloca ptr %t20 = alloca i32 store ptr %arg_name, ptr %t0 store ptr %arg_kind, ptr %t1 store ptr %arg_body, ptr %t2 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 @.str6840, ptr @g_ret_ty %t3 = call ptr @fn_buf_new() store ptr %t3, ptr %t4 %t5 = call ptr @fn_buf_new() store ptr %t5, ptr @g_falloc %t6 = load ptr, ptr @g_code store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t4 store ptr %t8, ptr @g_code %t9 = load ptr, ptr %t2 %t10 = icmp ne ptr %t9, null %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: %t13 = load ptr, ptr %t2 call void @fn_emit_block(ptr %t13) br label %ifend2 ifend2: %t14 = load ptr, ptr %t0 %t15 = call ptr @fn_str_concat(ptr @.str6841, ptr %t14) %t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str6842) %t17 = load ptr, ptr %t1 %t18 = call ptr @fn_str_concat(ptr %t16, ptr %t17) store ptr %t18, ptr %t19 %t21 = load i32, ptr @g_g_term %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 %t20 br i1 %t24, label %sc3, label %scend4 sc3: %t26 = load ptr, ptr %t19 %t27 = call ptr @fn_find_event(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 %t20 br label %scend4 scend4: %t32 = load i32, ptr %t20 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then5, label %ifend7 then5: call void @fn_emit(ptr @.str6843) %t34 = load ptr, ptr %t19 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6844) br label %ifend7 ifend7: %t35 = load i32, ptr @g_g_term %t36 = icmp eq i32 %t35, 0 %t37 = zext i1 %t36 to i32 %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then8, label %ifend10 then8: call void @fn_emit(ptr @.str6845) br label %ifend10 ifend10: call void @fn_emit(ptr @.str6846) %t39 = load ptr, ptr %t7 store ptr %t39, ptr @g_code call void @fn_emit(ptr @.str6847) %t40 = load ptr, ptr %t1 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str6848) %t41 = load ptr, ptr %t0 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str6849) %t42 = load ptr, ptr @g_falloc %t43 = call ptr @fn_buf_str(ptr %t42) call void @fn_emit(ptr %t43) %t44 = load ptr, ptr %t4 %t45 = call ptr @fn_buf_str(ptr %t44) call void @fn_emit(ptr %t45) call void @fn_emit(ptr @.str6850) br label %ret ret: ret void } define void @fn_emit_scene_hooks() { entry: %t0 = alloca i32 %t14 = 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %t13 = load ptr, ptr %t12 store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 store ptr %t15, ptr @g_g_cur_scene %t16 = load ptr, ptr %t14 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %t17 %t19 = load ptr, ptr %t14 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 4 %t21 = load ptr, ptr %t20 call void @fn_emit_scene_fn(ptr %t18, ptr @.str6851, ptr %t21) %t22 = load ptr, ptr %t14 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 %t25 = load ptr, ptr %t14 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 5 %t27 = load ptr, ptr %t26 call void @fn_emit_scene_fn(ptr %t24, ptr @.str6852, ptr %t27) %t28 = load i32, ptr %t0 %t29 = add i32 %t28, 1 store i32 %t29, ptr %t0 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_emit_despawn_hooks() { entry: %t0 = alloca i32 %t14 = alloca ptr %t19 = alloca ptr %t21 = alloca ptr %t24 = alloca ptr %t33 = 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %t13 = load ptr, ptr %t12 store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 %t18 = call ptr @fn_find_arch(ptr %t17) store ptr %t18, ptr %t19 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 @.str6853, ptr @g_ret_ty %t20 = call ptr @fn_buf_new() store ptr %t20, ptr %t21 %t22 = call ptr @fn_buf_new() store ptr %t22, ptr @g_falloc %t23 = load ptr, ptr @g_code store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t21 store ptr %t25, ptr @g_code %t26 = load ptr, ptr %t14 %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 %then3, label %ifend5 then3: %t32 = call ptr @fn_emit_alloca(ptr @.str6854) store ptr %t32, ptr %t33 call void @fn_emit(ptr @.str6855) %t34 = load ptr, ptr %t33 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6856) %t35 = load ptr, ptr %t14 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 3 %t37 = load ptr, ptr %t36 %t38 = load ptr, ptr %t33 call void @fn_loc_push(ptr %t37, ptr %t38, ptr @.str6857) br label %ifend5 ifend5: %t39 = load ptr, ptr %t19 call void @fn_emit_bind_props(ptr %t39, ptr @.str6858) %t40 = load ptr, ptr %t14 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 4 %t42 = load ptr, ptr %t41 call void @fn_emit_block(ptr %t42) %t43 = load i32, ptr @g_g_term %t44 = icmp eq i32 %t43, 0 %t45 = zext i1 %t44 to i32 %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then6, label %ifend8 then6: call void @fn_emit(ptr @.str6859) br label %ifend8 ifend8: call void @fn_emit(ptr @.str6860) %t47 = load ptr, ptr %t24 store ptr %t47, ptr @g_code call void @fn_emit(ptr @.str6861) %t48 = load ptr, ptr %t14 %t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 1 %t50 = load ptr, ptr %t49 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str6862) %t51 = load ptr, ptr @g_falloc %t52 = call ptr @fn_buf_str(ptr %t51) call void @fn_emit(ptr %t52) %t53 = load ptr, ptr %t21 %t54 = call ptr @fn_buf_str(ptr %t53) call void @fn_emit(ptr %t54) call void @fn_emit(ptr @.str6863) %t55 = load i32, ptr %t0 %t56 = add i32 %t55, 1 store i32 %t56, ptr %t0 br label %wcond0 wend2: call void @fn_emit_despawn_all_fn() br label %ret ret: ret void } define void @fn_emit_despawn_all_fn() { entry: %t7 = alloca ptr %t10 = alloca i32 %t26 = alloca ptr %t29 = alloca ptr %t42 = 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 @.str6864) call void @fn_emit(ptr @.str6865) call void @fn_emit(ptr @.str6866) call void @fn_emit(ptr @.str6867) call void @fn_emit(ptr @.str6868) %t8 = load ptr, ptr %t7 call void @fn_emit(ptr %t8) call void @fn_emit(ptr @.str6869) call void @fn_emit(ptr @.str6870) call void @fn_emit(ptr @.str6871) call void @fn_emit(ptr @.str6872) %t9 = load ptr, ptr %t7 call void @fn_emit(ptr %t9) call void @fn_emit(ptr @.str6873) call void @fn_emit(ptr @.str6874) 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 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t10 %t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21 %t23 = load ptr, ptr %t22 %t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1 %t25 = load ptr, ptr %t24 store ptr %t25, ptr %t26 %t27 = load i32, ptr %t10 %t28 = call ptr @fn_itoa(i32 %t27) store ptr %t28, ptr %t29 call void @fn_emit(ptr @.str6875) %t30 = load ptr, ptr %t29 call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str6876) %t31 = load ptr, ptr %t26 %t32 = call i32 @fn_find_arch_id(ptr %t31) %t33 = call ptr @fn_itoa(i32 %t32) call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str6877) call void @fn_emit(ptr @.str6878) %t34 = load ptr, ptr %t29 call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str6879) %t35 = load ptr, ptr %t29 call void @fn_emit(ptr %t35) call void @fn_emit(ptr @.str6880) %t36 = load ptr, ptr %t29 call void @fn_emit(ptr %t36) call void @fn_emit(ptr @.str6881) call void @fn_emit(ptr @.str6882) %t37 = load ptr, ptr %t29 call void @fn_emit(ptr %t37) call void @fn_emit(ptr @.str6883) %t38 = load ptr, ptr %t26 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str6884) %t39 = load ptr, ptr %t26 %t40 = call ptr @fn_str_concat(ptr @.str6885, ptr %t39) %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str6886) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_find_event(ptr %t43) %t45 = icmp ne ptr %t44, null %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then6, label %ifend8 then6: call void @fn_emit(ptr @.str6887) %t48 = load ptr, ptr %t42 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str6888) br label %ifend8 ifend8: call void @fn_emit(ptr @.str6889) %t49 = load ptr, ptr %t29 call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str6890) call void @fn_emit(ptr @.str6891) %t50 = load ptr, ptr %t29 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str6892) %t51 = load i32, ptr %t10 %t52 = add i32 %t51, 1 store i32 %t52, ptr %t10 br label %wcond3 wend5: call void @fn_emit(ptr @.str6893) call void @fn_emit(ptr @.str6894) call void @fn_emit(ptr @.str6895) br label %ret ret: ret void } define void @fn_emit_event_fns() { entry: %t0 = alloca i32 %t14 = alloca ptr %t18 = alloca ptr %t20 = alloca ptr %t22 = alloca i32 %t89 = alloca ptr %t92 = alloca ptr %t104 = alloca ptr %t105 = alloca i32 %t123 = alloca ptr %t128 = alloca ptr %t130 = alloca ptr %t142 = alloca ptr %t156 = alloca ptr %t176 = alloca i32 %t177 = alloca i32 %t212 = alloca ptr %t215 = alloca ptr %t217 = alloca ptr %t219 = alloca ptr %t225 = alloca ptr %t229 = alloca ptr %t236 = alloca ptr %t242 = alloca ptr %t250 = alloca ptr %t255 = alloca ptr %t257 = alloca ptr %t259 = alloca ptr %t272 = alloca ptr %t286 = alloca ptr %t289 = alloca ptr %t298 = alloca i32 %t334 = alloca ptr %t335 = alloca i32 %t351 = alloca ptr %t354 = alloca ptr call void @fn_emith(ptr @.str6896) 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %t13 = load ptr, ptr %t12 store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 store ptr %t17, ptr %t18 %t19 = call ptr @fn_itoa(i32 16) store ptr %t19, ptr %t20 call void @fn_emith(ptr @.str6897) %t21 = load ptr, ptr %t18 call void @fn_emith(ptr %t21) call void @fn_emith(ptr @.str6898) store i32 0, ptr %t22 br label %wcond3 wcond3: %t23 = load i32, ptr %t22 %t24 = load ptr, ptr %t14 %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 = icmp slt i32 %t23, %t28 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %wbody4, label %wend5 wbody4: %t32 = load i32, ptr %t22 %t33 = icmp sgt i32 %t32, 0 %t34 = zext i1 %t33 to i32 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then6, label %ifend8 then6: call void @fn_emith(ptr @.str6899) br label %ifend8 ifend8: %t36 = load ptr, ptr %t14 %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 = load i32, ptr %t22 %t42 = getelementptr inbounds ptr, ptr %t40, i32 %t41 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 3 %t45 = load ptr, ptr %t44 %t46 = call ptr @fn_llty(ptr %t45) call void @fn_emith(ptr %t46) %t47 = load i32, ptr %t22 %t48 = add i32 %t47, 1 store i32 %t48, ptr %t22 br label %wcond3 wend5: %t49 = load ptr, ptr %t14 %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 %then9, label %ifend11 then9: %t55 = load ptr, ptr %t14 %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 1 %t59 = load i32, ptr %t58 %t60 = icmp sgt 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_emith(ptr @.str6900) br label %ifend14 ifend14: call void @fn_emith(ptr @.str6901) br label %ifend11 ifend11: call void @fn_emith(ptr @.str6902) call void @fn_emith(ptr @.str6903) %t63 = load ptr, ptr %t18 call void @fn_emith(ptr %t63) call void @fn_emith(ptr @.str6904) %t64 = load ptr, ptr %t20 call void @fn_emith(ptr %t64) call void @fn_emith(ptr @.str6905) call void @fn_emith(ptr @.str6906) %t65 = load ptr, ptr %t18 call void @fn_emith(ptr %t65) call void @fn_emith(ptr @.str6907) call void @fn_emith(ptr @.str6908) %t66 = load ptr, ptr %t18 call void @fn_emith(ptr %t66) call void @fn_emith(ptr @.str6909) %t67 = load ptr, ptr %t20 call void @fn_emith(ptr %t67) call void @fn_emith(ptr @.str6910) call void @fn_emit(ptr @.str6911) %t68 = load ptr, ptr %t18 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str6912) call void @fn_emit(ptr @.str6913) %t69 = load ptr, ptr %t18 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str6914) call void @fn_emit(ptr @.str6915) %t70 = load ptr, ptr %t20 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str6916) call void @fn_emit(ptr @.str6917) call void @fn_emit(ptr @.str6918) %t71 = load ptr, ptr %t20 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str6919) %t72 = load ptr, ptr %t18 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str6920) call void @fn_emit(ptr @.str6921) call void @fn_emit(ptr @.str6922) %t73 = load ptr, ptr %t20 call void @fn_emit(ptr %t73) call void @fn_emit(ptr @.str6923) %t74 = load ptr, ptr %t18 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str6924) call void @fn_emit(ptr @.str6925) call void @fn_emit(ptr @.str6926) %t75 = load ptr, ptr %t18 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str6927) call void @fn_emit(ptr @.str6928) call void @fn_emit(ptr @.str6929) %t76 = load ptr, ptr %t18 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str6930) call void @fn_emit(ptr @.str6931) %t77 = load ptr, ptr %t18 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str6932) call void @fn_emit(ptr @.str6933) %t78 = load ptr, ptr %t20 call void @fn_emit(ptr %t78) call void @fn_emit(ptr @.str6934) call void @fn_emit(ptr @.str6935) call void @fn_emit(ptr @.str6936) %t79 = load ptr, ptr %t20 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str6937) %t80 = load ptr, ptr %t18 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str6938) call void @fn_emit(ptr @.str6939) call void @fn_emit(ptr @.str6940) %t81 = load ptr, ptr %t20 call void @fn_emit(ptr %t81) call void @fn_emit(ptr @.str6941) %t82 = load ptr, ptr %t18 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str6942) call void @fn_emit(ptr @.str6943) call void @fn_emit(ptr @.str6944) %t83 = load ptr, ptr %t18 call void @fn_emit(ptr %t83) call void @fn_emit(ptr @.str6945) call void @fn_emit(ptr @.str6946) call void @fn_emit(ptr @.str6947) %t84 = load ptr, ptr %t18 call void @fn_emit(ptr %t84) call void @fn_emit(ptr @.str6948) call void @fn_emit(ptr @.str6949) %t85 = load ptr, ptr %t18 call void @fn_emit(ptr %t85) call void @fn_emit(ptr @.str6950) call void @fn_emit(ptr @.str6951) call void @fn_emit(ptr @.str6952) call void @fn_emit(ptr @.str6953) %t86 = load ptr, ptr %t20 call void @fn_emit(ptr %t86) call void @fn_emit(ptr @.str6954) %t87 = load ptr, ptr %t18 call void @fn_emit(ptr %t87) call void @fn_emit(ptr @.str6955) call void @fn_emit(ptr @.str6956) call void @fn_emit(ptr @.str6957) 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 @.str6958, ptr @g_ret_ty %t88 = call ptr @fn_buf_new() store ptr %t88, ptr %t89 %t90 = call ptr @fn_buf_new() store ptr %t90, ptr @g_falloc %t91 = load ptr, ptr @g_code store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t89 store ptr %t93, ptr @g_code call void @fn_emit(ptr @.str6959) call void @fn_emit(ptr @.str6960) %t94 = call ptr @fn_itoa(i32 32) call void @fn_emit(ptr %t94) call void @fn_emit(ptr @.str6961) call void @fn_emit(ptr @.str6962) call void @fn_emit(ptr @.str6963) %t95 = load ptr, ptr %t14 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 2 %t97 = load i32, ptr %t96 %t98 = icmp eq i32 %t97, 1 %t99 = zext i1 %t98 to i32 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then15, label %else16 then15: call void @fn_emit(ptr @.str6964) br label %ifend17 else16: call void @fn_emit(ptr @.str6965) br label %ifend17 ifend17: call void @fn_emit(ptr @.str6966) call void @fn_emit(ptr @.str6967) %t101 = load ptr, ptr %t18 %t102 = call ptr @fn_str_concat(ptr @.str6968, ptr %t101) %t103 = call ptr @fn_emit_alloca(ptr %t102) store ptr %t103, ptr %t104 store i32 0, ptr %t105 br label %wcond18 wcond18: %t106 = load i32, ptr %t105 %t107 = load ptr, ptr %t14 %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 1 %t111 = load i32, ptr %t110 %t112 = icmp slt i32 %t106, %t111 %t113 = zext i1 %t112 to i32 %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %wbody19, label %wend20 wbody19: %t115 = load ptr, ptr %t14 %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 0 %t119 = load ptr, ptr %t118 %t120 = load i32, ptr %t105 %t121 = getelementptr inbounds ptr, ptr %t119, i32 %t120 %t122 = load ptr, ptr %t121 store ptr %t122, ptr %t123 %t124 = load ptr, ptr %t123 %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 3 %t126 = load ptr, ptr %t125 %t127 = call ptr @fn_llty(ptr %t126) store ptr %t127, ptr %t128 %t129 = call ptr @fn_nreg() store ptr %t129, ptr %t130 call void @fn_emit(ptr @.str6969) %t131 = load ptr, ptr %t130 call void @fn_emit(ptr %t131) call void @fn_emit(ptr @.str6970) %t132 = load ptr, ptr %t18 call void @fn_emit(ptr %t132) call void @fn_emit(ptr @.str6971) %t133 = load ptr, ptr %t104 call void @fn_emit(ptr %t133) call void @fn_emit(ptr @.str6972) %t134 = load i32, ptr %t105 %t135 = call ptr @fn_itoa(i32 %t134) call void @fn_emit(ptr %t135) call void @fn_emit(ptr @.str6973) call void @fn_emit(ptr @.str6974) %t136 = load ptr, ptr %t128 call void @fn_emit(ptr %t136) call void @fn_emit(ptr @.str6975) %t137 = load i32, ptr %t105 %t138 = call ptr @fn_itoa(i32 %t137) call void @fn_emit(ptr %t138) call void @fn_emit(ptr @.str6976) %t139 = load ptr, ptr %t130 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str6977) %t140 = load ptr, ptr %t128 %t141 = call ptr @fn_emit_alloca(ptr %t140) store ptr %t141, ptr %t142 call void @fn_emit(ptr @.str6978) %t143 = load ptr, ptr %t128 call void @fn_emit(ptr %t143) call void @fn_emit(ptr @.str6979) %t144 = load i32, ptr %t105 %t145 = call ptr @fn_itoa(i32 %t144) call void @fn_emit(ptr %t145) call void @fn_emit(ptr @.str6980) %t146 = load ptr, ptr %t142 call void @fn_emit(ptr %t146) call void @fn_emit(ptr @.str6981) %t147 = load ptr, ptr %t123 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 1 %t149 = load ptr, ptr %t148 %t150 = load ptr, ptr %t142 %t151 = load ptr, ptr %t123 %t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 3 %t153 = load ptr, ptr %t152 call void @fn_loc_push(ptr %t149, ptr %t150, ptr %t153) %t154 = load i32, ptr %t105 %t155 = add i32 %t154, 1 store i32 %t155, ptr %t105 br label %wcond18 wend20: store ptr null, ptr %t156 %t157 = load ptr, ptr %t14 %t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 2 %t159 = load i32, ptr %t158 %t160 = icmp eq i32 %t159, 1 %t161 = zext i1 %t160 to i32 %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then21, label %ifend23 then21: %t163 = call ptr @fn_nreg() store ptr %t163, ptr %t156 call void @fn_emit(ptr @.str6982) %t164 = load ptr, ptr %t156 call void @fn_emit(ptr %t164) call void @fn_emit(ptr @.str6983) %t165 = load ptr, ptr %t18 call void @fn_emit(ptr %t165) call void @fn_emit(ptr @.str6984) %t166 = load ptr, ptr %t104 call void @fn_emit(ptr %t166) call void @fn_emit(ptr @.str6985) %t167 = load ptr, ptr %t14 %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 1 %t171 = load i32, ptr %t170 %t172 = call ptr @fn_itoa(i32 %t171) call void @fn_emit(ptr %t172) call void @fn_emit(ptr @.str6986) call void @fn_emit(ptr @.str6987) %t173 = load ptr, ptr %t156 call void @fn_emit(ptr %t173) call void @fn_emit(ptr @.str6988) %t174 = load ptr, ptr %t156 store ptr %t174, ptr @g_g_cancel_addr br label %ifend23 ifend23: %t175 = load i32, ptr @g_nloc store i32 %t175, ptr %t176 store i32 0, ptr %t177 br label %wcond24 wcond24: %t178 = load i32, ptr %t177 %t179 = load ptr, ptr @g_g_onlisten %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 %wbody25, label %wend26 wbody25: %t185 = load ptr, ptr @g_g_onlisten %t186 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 0 %t187 = load ptr, ptr %t186 %t188 = load i32, ptr %t177 %t189 = getelementptr inbounds ptr, ptr %t187, i32 %t188 %t190 = load ptr, ptr %t189 %t191 = getelementptr inbounds %Cmp_Node, ptr %t190, i32 0, i32 1 %t192 = load ptr, ptr %t191 %t193 = load ptr, ptr %t18 %t194 = call i32 @fn_str_eq(ptr %t192, ptr %t193) %t195 = icmp ne i32 %t194, 0 br i1 %t195, label %then27, label %ifend29 then27: %t196 = load i32, ptr %t176 store i32 %t196, ptr @g_nloc store i32 0, ptr @g_g_term %t197 = load ptr, ptr @g_g_onlisten %t198 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0 %t199 = load ptr, ptr %t198 %t200 = load i32, ptr %t177 %t201 = getelementptr inbounds ptr, ptr %t199, i32 %t200 %t202 = load ptr, ptr %t201 %t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 4 %t204 = load ptr, ptr %t203 call void @fn_emit_block(ptr %t204) br label %ifend29 ifend29: %t205 = load i32, ptr %t177 %t206 = add i32 %t205, 1 store i32 %t206, ptr %t177 br label %wcond24 wend26: %t207 = load i32, ptr @g_g_term %t208 = icmp eq i32 %t207, 0 %t209 = zext i1 %t208 to i32 %t210 = icmp ne i32 %t209, 0 br i1 %t210, label %then30, label %ifend32 then30: %t211 = call ptr @fn_emit_alloca(ptr @.str6989) store ptr %t211, ptr %t212 call void @fn_emit(ptr @.str6990) %t213 = load ptr, ptr %t212 call void @fn_emit(ptr %t213) call void @fn_emit(ptr @.str6991) %t214 = call ptr @fn_lbl(ptr @.str6992) store ptr %t214, ptr %t215 %t216 = call ptr @fn_lbl(ptr @.str6993) store ptr %t216, ptr %t217 %t218 = call ptr @fn_lbl(ptr @.str6994) store ptr %t218, ptr %t219 call void @fn_emit(ptr @.str6995) %t220 = load ptr, ptr %t215 call void @fn_emit(ptr %t220) call void @fn_emit(ptr @.str6996) %t221 = load ptr, ptr %t215 call void @fn_emit(ptr %t221) call void @fn_emit(ptr @.str6997) %t222 = load ptr, ptr %t212 %t223 = call ptr @fn_str_concat(ptr @.str6998, ptr %t222) %t224 = call ptr @fn_emit_bind(ptr %t223) store ptr %t224, ptr %t225 %t226 = load ptr, ptr %t18 %t227 = call ptr @fn_str_concat(ptr @.str6999, ptr %t226) %t228 = call ptr @fn_emit_bind(ptr %t227) store ptr %t228, ptr %t229 %t230 = load ptr, ptr %t225 %t231 = call ptr @fn_str_concat(ptr @.str7000, ptr %t230) %t232 = call ptr @fn_str_concat(ptr %t231, ptr @.str7001) %t233 = load ptr, ptr %t229 %t234 = call ptr @fn_str_concat(ptr %t232, ptr %t233) %t235 = call ptr @fn_emit_bind(ptr %t234) store ptr %t235, ptr %t236 call void @fn_emit(ptr @.str7002) %t237 = load ptr, ptr %t236 call void @fn_emit(ptr %t237) call void @fn_emit(ptr @.str7003) %t238 = load ptr, ptr %t217 call void @fn_emit(ptr %t238) call void @fn_emit(ptr @.str7004) %t239 = load ptr, ptr %t219 call void @fn_emit(ptr %t239) call void @fn_emit(ptr @.str7005) %t240 = load ptr, ptr %t217 call void @fn_emit(ptr %t240) call void @fn_emit(ptr @.str7006) %t241 = call ptr @fn_nreg() store ptr %t241, ptr %t242 call void @fn_emit(ptr @.str7007) %t243 = load ptr, ptr %t242 call void @fn_emit(ptr %t243) call void @fn_emit(ptr @.str7008) %t244 = load ptr, ptr %t20 call void @fn_emit(ptr %t244) call void @fn_emit(ptr @.str7009) %t245 = load ptr, ptr %t18 call void @fn_emit(ptr %t245) call void @fn_emit(ptr @.str7010) %t246 = load ptr, ptr %t225 call void @fn_emit(ptr %t246) call void @fn_emit(ptr @.str7011) %t247 = load ptr, ptr %t242 %t248 = call ptr @fn_str_concat(ptr @.str7012, ptr %t247) %t249 = call ptr @fn_emit_bind(ptr %t248) store ptr %t249, ptr %t250 %t251 = load ptr, ptr %t250 %t252 = call ptr @fn_str_concat(ptr @.str7013, ptr %t251) %t253 = call ptr @fn_str_concat(ptr %t252, ptr @.str7014) %t254 = call ptr @fn_emit_bind(ptr %t253) store ptr %t254, ptr %t255 %t256 = call ptr @fn_lbl(ptr @.str7015) store ptr %t256, ptr %t257 %t258 = call ptr @fn_lbl(ptr @.str7016) store ptr %t258, ptr %t259 call void @fn_emit(ptr @.str7017) %t260 = load ptr, ptr %t255 call void @fn_emit(ptr %t260) call void @fn_emit(ptr @.str7018) %t261 = load ptr, ptr %t259 call void @fn_emit(ptr %t261) call void @fn_emit(ptr @.str7019) %t262 = load ptr, ptr %t257 call void @fn_emit(ptr %t262) call void @fn_emit(ptr @.str7020) %t263 = load ptr, ptr %t257 call void @fn_emit(ptr %t263) call void @fn_emit(ptr @.str7021) call void @fn_emit(ptr @.str7022) %t264 = load ptr, ptr %t250 call void @fn_emit(ptr %t264) call void @fn_emit(ptr @.str7023) %t265 = load ptr, ptr %t104 call void @fn_emit(ptr %t265) call void @fn_emit(ptr @.str7024) call void @fn_emit(ptr @.str7025) %t266 = load ptr, ptr %t259 call void @fn_emit(ptr %t266) call void @fn_emit(ptr @.str7026) %t267 = load ptr, ptr %t259 call void @fn_emit(ptr %t267) call void @fn_emit(ptr @.str7027) %t268 = load ptr, ptr %t225 %t269 = call ptr @fn_str_concat(ptr @.str7028, ptr %t268) %t270 = call ptr @fn_str_concat(ptr %t269, ptr @.str7029) %t271 = call ptr @fn_emit_bind(ptr %t270) store ptr %t271, ptr %t272 call void @fn_emit(ptr @.str7030) %t273 = load ptr, ptr %t272 call void @fn_emit(ptr %t273) call void @fn_emit(ptr @.str7031) %t274 = load ptr, ptr %t212 call void @fn_emit(ptr %t274) call void @fn_emit(ptr @.str7032) call void @fn_emit(ptr @.str7033) %t275 = load ptr, ptr %t215 call void @fn_emit(ptr %t275) call void @fn_emit(ptr @.str7034) %t276 = load ptr, ptr %t219 call void @fn_emit(ptr %t276) call void @fn_emit(ptr @.str7035) call void @fn_emit(ptr @.str7036) br label %ifend32 ifend32: call void @fn_emit(ptr @.str7037) call void @fn_emit(ptr @.str7038) %t277 = load ptr, ptr %t14 %t278 = getelementptr inbounds %Cmp_Node, ptr %t277, i32 0, i32 2 %t279 = load i32, ptr %t278 %t280 = icmp eq i32 %t279, 1 %t281 = zext i1 %t280 to i32 %t282 = icmp ne i32 %t281, 0 br i1 %t282, label %then33, label %else34 then33: %t283 = load ptr, ptr %t156 %t284 = call ptr @fn_str_concat(ptr @.str7039, ptr %t283) %t285 = call ptr @fn_emit_bind(ptr %t284) store ptr %t285, ptr %t286 call void @fn_emit(ptr @.str7040) %t287 = load ptr, ptr %t286 call void @fn_emit(ptr %t287) call void @fn_emit(ptr @.str7041) br label %ifend35 else34: call void @fn_emit(ptr @.str7042) br label %ifend35 ifend35: store ptr null, ptr @g_g_cancel_addr %t288 = load ptr, ptr %t92 store ptr %t288, ptr @g_code store ptr @.str7043, ptr %t289 %t290 = load ptr, ptr %t14 %t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 2 %t292 = load i32, ptr %t291 %t293 = icmp eq i32 %t292, 1 %t294 = zext i1 %t293 to i32 %t295 = icmp ne i32 %t294, 0 br i1 %t295, label %then36, label %ifend38 then36: store ptr @.str7044, ptr %t289 br label %ifend38 ifend38: call void @fn_emit(ptr @.str7045) %t296 = load ptr, ptr %t289 call void @fn_emit(ptr %t296) call void @fn_emit(ptr @.str7046) %t297 = load ptr, ptr %t18 call void @fn_emit(ptr %t297) call void @fn_emit(ptr @.str7047) store i32 0, ptr %t298 br label %wcond39 wcond39: %t299 = load i32, ptr %t298 %t300 = load ptr, ptr %t14 %t301 = getelementptr inbounds %Cmp_Node, ptr %t300, i32 0, i32 7 %t302 = load ptr, ptr %t301 %t303 = getelementptr inbounds %LSlice, ptr %t302, i32 0, i32 1 %t304 = load i32, ptr %t303 %t305 = icmp slt i32 %t299, %t304 %t306 = zext i1 %t305 to i32 %t307 = icmp ne i32 %t306, 0 br i1 %t307, label %wbody40, label %wend41 wbody40: %t308 = load i32, ptr %t298 %t309 = icmp sgt i32 %t308, 0 %t310 = zext i1 %t309 to i32 %t311 = icmp ne i32 %t310, 0 br i1 %t311, label %then42, label %ifend44 then42: call void @fn_emit(ptr @.str7048) br label %ifend44 ifend44: %t312 = load ptr, ptr %t14 %t313 = getelementptr inbounds %Cmp_Node, ptr %t312, i32 0, i32 7 %t314 = load ptr, ptr %t313 %t315 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 0 %t316 = load ptr, ptr %t315 %t317 = load i32, ptr %t298 %t318 = getelementptr inbounds ptr, ptr %t316, i32 %t317 %t319 = load ptr, ptr %t318 %t320 = getelementptr inbounds %Cmp_Node, ptr %t319, i32 0, i32 3 %t321 = load ptr, ptr %t320 %t322 = call ptr @fn_llty(ptr %t321) call void @fn_emit(ptr %t322) call void @fn_emit(ptr @.str7049) %t323 = load i32, ptr %t298 %t324 = call ptr @fn_itoa(i32 %t323) call void @fn_emit(ptr %t324) %t325 = load i32, ptr %t298 %t326 = add i32 %t325, 1 store i32 %t326, ptr %t298 br label %wcond39 wend41: call void @fn_emit(ptr @.str7050) %t327 = load ptr, ptr @g_falloc %t328 = call ptr @fn_buf_str(ptr %t327) call void @fn_emit(ptr %t328) %t329 = load ptr, ptr %t89 %t330 = call ptr @fn_buf_str(ptr %t329) call void @fn_emit(ptr %t330) call void @fn_emit(ptr @.str7051) %t331 = load i32, ptr %t0 %t332 = add i32 %t331, 1 store i32 %t332, ptr %t0 br label %wcond0 wend2: %t333 = call ptr @fn_itoa(i32 16) store ptr %t333, ptr %t334 call void @fn_emit(ptr @.str7052) store i32 0, ptr %t335 br label %wcond45 wcond45: %t336 = load i32, ptr %t335 %t337 = load ptr, ptr @g_g_events %t338 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 1 %t339 = load i32, ptr %t338 %t340 = icmp slt i32 %t336, %t339 %t341 = zext i1 %t340 to i32 %t342 = icmp ne i32 %t341, 0 br i1 %t342, label %wbody46, label %wend47 wbody46: %t343 = load ptr, ptr @g_g_events %t344 = getelementptr inbounds %LSlice, ptr %t343, i32 0, i32 0 %t345 = load ptr, ptr %t344 %t346 = load i32, ptr %t335 %t347 = getelementptr inbounds ptr, ptr %t345, i32 %t346 %t348 = load ptr, ptr %t347 %t349 = getelementptr inbounds %Cmp_Node, ptr %t348, i32 0, i32 1 %t350 = load ptr, ptr %t349 store ptr %t350, ptr %t351 %t352 = load i32, ptr %t335 %t353 = call ptr @fn_itoa(i32 %t352) store ptr %t353, ptr %t354 call void @fn_emit(ptr @.str7053) %t355 = load ptr, ptr %t354 call void @fn_emit(ptr %t355) call void @fn_emit(ptr @.str7054) call void @fn_emit(ptr @.str7055) %t356 = load ptr, ptr %t354 call void @fn_emit(ptr %t356) call void @fn_emit(ptr @.str7056) call void @fn_emit(ptr @.str7057) %t357 = load ptr, ptr %t354 call void @fn_emit(ptr %t357) call void @fn_emit(ptr @.str7058) %t358 = load ptr, ptr %t351 call void @fn_emit(ptr %t358) call void @fn_emit(ptr @.str7059) call void @fn_emit(ptr @.str7060) %t359 = load ptr, ptr %t354 call void @fn_emit(ptr %t359) call void @fn_emit(ptr @.str7061) %t360 = load ptr, ptr %t354 call void @fn_emit(ptr %t360) call void @fn_emit(ptr @.str7062) %t361 = load ptr, ptr %t354 call void @fn_emit(ptr %t361) call void @fn_emit(ptr @.str7063) call void @fn_emit(ptr @.str7064) %t362 = load ptr, ptr %t354 call void @fn_emit(ptr %t362) call void @fn_emit(ptr @.str7065) %t363 = load ptr, ptr %t354 call void @fn_emit(ptr %t363) call void @fn_emit(ptr @.str7066) %t364 = load ptr, ptr %t354 call void @fn_emit(ptr %t364) call void @fn_emit(ptr @.str7067) call void @fn_emit(ptr @.str7068) %t365 = load ptr, ptr %t354 call void @fn_emit(ptr %t365) call void @fn_emit(ptr @.str7069) call void @fn_emit(ptr @.str7070) %t366 = load ptr, ptr %t354 call void @fn_emit(ptr %t366) call void @fn_emit(ptr @.str7071) %t367 = load ptr, ptr %t334 call void @fn_emit(ptr %t367) call void @fn_emit(ptr @.str7072) %t368 = load ptr, ptr %t351 call void @fn_emit(ptr %t368) call void @fn_emit(ptr @.str7073) %t369 = load ptr, ptr %t354 call void @fn_emit(ptr %t369) call void @fn_emit(ptr @.str7074) call void @fn_emit(ptr @.str7075) %t370 = load ptr, ptr %t354 call void @fn_emit(ptr %t370) call void @fn_emit(ptr @.str7076) %t371 = load ptr, ptr %t354 call void @fn_emit(ptr %t371) call void @fn_emit(ptr @.str7077) call void @fn_emit(ptr @.str7078) %t372 = load ptr, ptr %t354 call void @fn_emit(ptr %t372) call void @fn_emit(ptr @.str7079) %t373 = load ptr, ptr %t354 call void @fn_emit(ptr %t373) call void @fn_emit(ptr @.str7080) call void @fn_emit(ptr @.str7081) %t374 = load ptr, ptr %t354 call void @fn_emit(ptr %t374) call void @fn_emit(ptr @.str7082) %t375 = load ptr, ptr %t354 call void @fn_emit(ptr %t375) call void @fn_emit(ptr @.str7083) %t376 = load ptr, ptr %t354 call void @fn_emit(ptr %t376) call void @fn_emit(ptr @.str7084) call void @fn_emit(ptr @.str7085) %t377 = load ptr, ptr %t354 call void @fn_emit(ptr %t377) call void @fn_emit(ptr @.str7086) call void @fn_emit(ptr @.str7087) %t378 = load ptr, ptr %t354 call void @fn_emit(ptr %t378) call void @fn_emit(ptr @.str7088) %t379 = load ptr, ptr %t334 call void @fn_emit(ptr %t379) call void @fn_emit(ptr @.str7089) %t380 = load ptr, ptr %t351 call void @fn_emit(ptr %t380) call void @fn_emit(ptr @.str7090) %t381 = load ptr, ptr %t354 call void @fn_emit(ptr %t381) call void @fn_emit(ptr @.str7091) call void @fn_emit(ptr @.str7092) %t382 = load ptr, ptr %t354 call void @fn_emit(ptr %t382) call void @fn_emit(ptr @.str7093) %t383 = load ptr, ptr %t354 call void @fn_emit(ptr %t383) call void @fn_emit(ptr @.str7094) call void @fn_emit(ptr @.str7095) %t384 = load ptr, ptr %t354 call void @fn_emit(ptr %t384) call void @fn_emit(ptr @.str7096) call void @fn_emit(ptr @.str7097) %t385 = load ptr, ptr %t354 call void @fn_emit(ptr %t385) call void @fn_emit(ptr @.str7098) %t386 = load ptr, ptr %t354 call void @fn_emit(ptr %t386) call void @fn_emit(ptr @.str7099) %t387 = load ptr, ptr %t354 call void @fn_emit(ptr %t387) call void @fn_emit(ptr @.str7100) %t388 = load ptr, ptr %t354 call void @fn_emit(ptr %t388) call void @fn_emit(ptr @.str7101) call void @fn_emit(ptr @.str7102) %t389 = load ptr, ptr %t354 call void @fn_emit(ptr %t389) call void @fn_emit(ptr @.str7103) %t390 = load i32, ptr %t335 %t391 = add i32 %t390, 1 %t392 = load ptr, ptr @g_g_events %t393 = getelementptr inbounds %LSlice, ptr %t392, i32 0, i32 1 %t394 = load i32, ptr %t393 %t395 = icmp slt i32 %t391, %t394 %t396 = zext i1 %t395 to i32 %t397 = icmp ne i32 %t396, 0 br i1 %t397, label %then48, label %else49 then48: call void @fn_emit(ptr @.str7104) %t398 = load i32, ptr %t335 %t399 = add i32 %t398, 1 %t400 = call ptr @fn_itoa(i32 %t399) call void @fn_emit(ptr %t400) call void @fn_emit(ptr @.str7105) br label %ifend50 else49: call void @fn_emit(ptr @.str7106) br label %ifend50 ifend50: %t401 = load i32, ptr %t335 %t402 = add i32 %t401, 1 store i32 %t402, ptr %t335 br label %wcond45 wend47: call void @fn_emit(ptr @.str7107) br label %ret ret: ret void } define void @fn_emit_world_table() { entry: %t1 = alloca ptr %t2 = alloca i32 %t3 = alloca i32 %t28 = alloca ptr %t29 = alloca i32 %t30 = alloca i32 %t58 = alloca ptr %t61 = alloca ptr %t101 = alloca ptr %t104 = alloca ptr %t111 = alloca i32 %t132 = alloca ptr %t138 = alloca ptr %t181 = alloca ptr %t185 = alloca ptr %t188 = alloca ptr %t199 = alloca i32 %t220 = alloca ptr %t226 = alloca ptr %t293 = alloca ptr %t297 = alloca ptr %t300 = alloca ptr %t311 = alloca i32 %t332 = alloca ptr %t338 = alloca ptr %t401 = alloca ptr %t404 = alloca ptr %t459 = alloca ptr %t462 = alloca ptr %t512 = alloca ptr %t514 = alloca ptr %t517 = alloca ptr %t520 = alloca ptr %t526 = alloca ptr %t562 = alloca ptr %t565 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 call void @fn_emith(ptr @.str7108) 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 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr %t3 %t15 = getelementptr inbounds ptr, ptr %t13, i32 %t14 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0 %t18 = load i32, ptr %t17 %t19 = icmp eq i32 %t18, 8 %t20 = zext i1 %t19 to i32 %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then3, label %ifend5 then3: %t22 = load i32, ptr %t2 %t23 = add i32 %t22, 1 store i32 %t23, ptr %t2 br label %ifend5 ifend5: %t24 = load i32, ptr %t3 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t3 br label %wcond0 wend2: %t26 = load i32, ptr %t2 %t27 = call ptr @fn_itoa(i32 %t26) store ptr %t27, ptr %t28 call void @fn_emith(ptr @.str7109) call void @fn_emith(ptr @.str7110) call void @fn_emith(ptr @.str7111) call void @fn_emith(ptr @.str7112) call void @fn_emith(ptr @.str7113) call void @fn_emit(ptr @.str7114) store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond6 wcond6: %t31 = load i32, ptr %t30 %t32 = load ptr, ptr @g_prog %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1 %t34 = load i32, ptr %t33 %t35 = icmp slt i32 %t31, %t34 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %wbody7, label %wend8 wbody7: %t38 = load ptr, ptr @g_prog %t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = load i32, ptr %t30 %t42 = getelementptr inbounds ptr, ptr %t40, i32 %t41 %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 %then9, label %ifend11 then9: %t49 = load ptr, ptr @g_prog %t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0 %t51 = load ptr, ptr %t50 %t52 = load i32, ptr %t30 %t53 = getelementptr inbounds ptr, ptr %t51, i32 %t52 %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_emit_str_const(ptr %t56) store ptr %t57, ptr %t58 %t59 = load i32, ptr %t29 %t60 = call ptr @fn_itoa(i32 %t59) store ptr %t60, ptr %t61 call void @fn_emit(ptr @.str7115) %t62 = load ptr, ptr %t61 call void @fn_emit(ptr %t62) call void @fn_emit(ptr @.str7116) %t63 = load ptr, ptr %t58 call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str7117) call void @fn_emit(ptr @.str7118) %t64 = load ptr, ptr %t61 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str7119) %t65 = load ptr, ptr %t61 call void @fn_emit(ptr %t65) call void @fn_emit(ptr @.str7120) call void @fn_emit(ptr @.str7121) %t66 = load ptr, ptr %t61 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str7122) %t67 = load ptr, ptr %t61 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str7123) %t68 = load ptr, ptr %t61 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str7124) call void @fn_emit(ptr @.str7125) %t69 = load ptr, ptr %t61 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str7126) %t70 = load ptr, ptr %t61 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str7127) call void @fn_emit(ptr @.str7128) %t71 = load ptr, ptr %t61 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str7129) %t72 = load i32, ptr %t29 %t73 = add i32 %t72, 1 store i32 %t73, ptr %t29 br label %ifend11 ifend11: %t74 = load i32, ptr %t30 %t75 = add i32 %t74, 1 store i32 %t75, ptr %t30 br label %wcond6 wend8: call void @fn_emit(ptr @.str7130) call void @fn_emit(ptr @.str7131) call void @fn_emit(ptr @.str7132) call void @fn_emit(ptr @.str7133) %t76 = load ptr, ptr %t28 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str7134) call void @fn_emit(ptr @.str7135) call void @fn_emit(ptr @.str7136) call void @fn_emit(ptr @.str7137) store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond12 wcond12: %t77 = load i32, ptr %t30 %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 %wbody13, label %wend14 wbody13: %t84 = load ptr, ptr @g_prog %t85 = getelementptr inbounds %LSlice, ptr %t84, i32 0, i32 0 %t86 = load ptr, ptr %t85 %t87 = load i32, ptr %t30 %t88 = getelementptr inbounds ptr, ptr %t86, i32 %t87 %t89 = load ptr, ptr %t88 %t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 0 %t91 = load i32, ptr %t90 %t92 = icmp eq i32 %t91, 8 %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then15, label %ifend17 then15: %t95 = load ptr, ptr @g_prog %t96 = getelementptr inbounds %LSlice, ptr %t95, i32 0, i32 0 %t97 = load ptr, ptr %t96 %t98 = load i32, ptr %t30 %t99 = getelementptr inbounds ptr, ptr %t97, i32 %t98 %t100 = load ptr, ptr %t99 store ptr %t100, ptr %t101 %t102 = load i32, ptr %t29 %t103 = call ptr @fn_itoa(i32 %t102) store ptr %t103, ptr %t104 call void @fn_emit(ptr @.str7138) %t105 = load ptr, ptr %t104 call void @fn_emit(ptr %t105) call void @fn_emit(ptr @.str7139) %t106 = load ptr, ptr %t104 call void @fn_emit(ptr %t106) call void @fn_emit(ptr @.str7140) call void @fn_emit(ptr @.str7141) %t107 = load ptr, ptr %t104 call void @fn_emit(ptr %t107) call void @fn_emit(ptr @.str7142) %t108 = load ptr, ptr %t104 call void @fn_emit(ptr %t108) call void @fn_emit(ptr @.str7143) %t109 = load ptr, ptr %t104 call void @fn_emit(ptr %t109) call void @fn_emit(ptr @.str7144) call void @fn_emit(ptr @.str7145) %t110 = load ptr, ptr %t104 call void @fn_emit(ptr %t110) call void @fn_emit(ptr @.str7146) store i32 0, ptr %t111 br label %wcond18 wcond18: %t112 = load i32, ptr %t111 %t113 = load ptr, ptr %t101 %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 7 %t115 = load ptr, ptr %t114 %t116 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 1 %t117 = load i32, ptr %t116 %t118 = icmp slt i32 %t112, %t117 %t119 = zext i1 %t118 to i32 %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %wbody19, label %wend20 wbody19: %t121 = load ptr, ptr %t101 %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 0 %t125 = load ptr, ptr %t124 %t126 = load i32, ptr %t111 %t127 = getelementptr inbounds ptr, ptr %t125, i32 %t126 %t128 = load ptr, ptr %t127 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1 %t130 = load ptr, ptr %t129 %t131 = call ptr @fn_emit_str_const(ptr %t130) store ptr %t131, ptr %t132 %t133 = load ptr, ptr %t104 %t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str7147) %t135 = load i32, ptr %t111 %t136 = call ptr @fn_itoa(i32 %t135) %t137 = call ptr @fn_str_concat(ptr %t134, ptr %t136) store ptr %t137, ptr %t138 call void @fn_emit(ptr @.str7148) %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) call void @fn_emit(ptr @.str7149) %t140 = load ptr, ptr %t132 call void @fn_emit(ptr %t140) call void @fn_emit(ptr @.str7150) call void @fn_emit(ptr @.str7151) %t141 = load ptr, ptr %t138 call void @fn_emit(ptr %t141) call void @fn_emit(ptr @.str7152) %t142 = load ptr, ptr %t138 call void @fn_emit(ptr %t142) call void @fn_emit(ptr @.str7153) call void @fn_emit(ptr @.str7154) %t143 = load ptr, ptr %t138 call void @fn_emit(ptr %t143) call void @fn_emit(ptr @.str7155) %t144 = load ptr, ptr %t138 call void @fn_emit(ptr %t144) call void @fn_emit(ptr @.str7156) %t145 = load ptr, ptr %t138 call void @fn_emit(ptr %t145) call void @fn_emit(ptr @.str7157) call void @fn_emit(ptr @.str7158) %t146 = load ptr, ptr %t138 call void @fn_emit(ptr %t146) call void @fn_emit(ptr @.str7159) %t147 = load i32, ptr %t111 %t148 = call ptr @fn_itoa(i32 %t147) call void @fn_emit(ptr %t148) call void @fn_emit(ptr @.str7160) call void @fn_emit(ptr @.str7161) %t149 = load ptr, ptr %t138 call void @fn_emit(ptr %t149) call void @fn_emit(ptr @.str7162) %t150 = load i32, ptr %t111 %t151 = add i32 %t150, 1 store i32 %t151, ptr %t111 br label %wcond18 wend20: call void @fn_emit(ptr @.str7163) call void @fn_emit(ptr @.str7164) %t152 = load ptr, ptr %t104 call void @fn_emit(ptr %t152) call void @fn_emit(ptr @.str7165) %t153 = load i32, ptr %t29 %t154 = add i32 %t153, 1 store i32 %t154, ptr %t29 br label %ifend17 ifend17: %t155 = load i32, ptr %t30 %t156 = add i32 %t155, 1 store i32 %t156, ptr %t30 br label %wcond12 wend14: call void @fn_emit(ptr @.str7166) call void @fn_emit(ptr @.str7167) store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond21 wcond21: %t157 = load i32, ptr %t30 %t158 = load ptr, ptr @g_prog %t159 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1 %t160 = load i32, ptr %t159 %t161 = icmp slt i32 %t157, %t160 %t162 = zext i1 %t161 to i32 %t163 = icmp ne i32 %t162, 0 br i1 %t163, label %wbody22, label %wend23 wbody22: %t164 = load ptr, ptr @g_prog %t165 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 0 %t166 = load ptr, ptr %t165 %t167 = load i32, ptr %t30 %t168 = getelementptr inbounds ptr, ptr %t166, i32 %t167 %t169 = load ptr, ptr %t168 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 0 %t171 = load i32, ptr %t170 %t172 = icmp eq i32 %t171, 8 %t173 = zext i1 %t172 to i32 %t174 = icmp ne i32 %t173, 0 br i1 %t174, label %then24, label %ifend26 then24: %t175 = load ptr, ptr @g_prog %t176 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 0 %t177 = load ptr, ptr %t176 %t178 = load i32, ptr %t30 %t179 = getelementptr inbounds ptr, ptr %t177, i32 %t178 %t180 = load ptr, ptr %t179 store ptr %t180, ptr %t181 %t182 = load ptr, ptr %t181 %t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 1 %t184 = load ptr, ptr %t183 store ptr %t184, ptr %t185 %t186 = load i32, ptr %t29 %t187 = call ptr @fn_itoa(i32 %t186) store ptr %t187, ptr %t188 call void @fn_emit(ptr @.str7168) %t189 = load ptr, ptr %t188 call void @fn_emit(ptr %t189) call void @fn_emit(ptr @.str7169) %t190 = load ptr, ptr %t188 call void @fn_emit(ptr %t190) call void @fn_emit(ptr @.str7170) call void @fn_emit(ptr @.str7171) %t191 = load ptr, ptr %t188 call void @fn_emit(ptr %t191) call void @fn_emit(ptr @.str7172) %t192 = load ptr, ptr %t188 call void @fn_emit(ptr %t192) call void @fn_emit(ptr @.str7173) %t193 = load ptr, ptr %t188 call void @fn_emit(ptr %t193) call void @fn_emit(ptr @.str7174) call void @fn_emit(ptr @.str7175) %t194 = load ptr, ptr %t188 call void @fn_emit(ptr %t194) call void @fn_emit(ptr @.str7176) call void @fn_emit(ptr @.str7177) %t195 = load ptr, ptr %t188 call void @fn_emit(ptr %t195) call void @fn_emit(ptr @.str7178) %t196 = load ptr, ptr %t1 call void @fn_emit(ptr %t196) call void @fn_emit(ptr @.str7179) %t197 = load ptr, ptr %t185 call void @fn_emit(ptr %t197) call void @fn_emit(ptr @.str7180) %t198 = load ptr, ptr %t185 call void @fn_emit(ptr %t198) call void @fn_emit(ptr @.str7181) store i32 0, ptr %t199 br label %wcond27 wcond27: %t200 = load i32, ptr %t199 %t201 = load ptr, ptr %t181 %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 1 %t205 = load i32, ptr %t204 %t206 = icmp slt i32 %t200, %t205 %t207 = zext i1 %t206 to i32 %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %wbody28, label %wend29 wbody28: %t209 = load ptr, ptr %t181 %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 = load i32, ptr %t199 %t215 = getelementptr inbounds ptr, ptr %t213, i32 %t214 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds %Cmp_Node, ptr %t216, i32 0, i32 3 %t218 = load ptr, ptr %t217 %t219 = call ptr @fn_llty(ptr %t218) store ptr %t219, ptr %t220 %t221 = load ptr, ptr %t188 %t222 = call ptr @fn_str_concat(ptr %t221, ptr @.str7182) %t223 = load i32, ptr %t199 %t224 = call ptr @fn_itoa(i32 %t223) %t225 = call ptr @fn_str_concat(ptr %t222, ptr %t224) store ptr %t225, ptr %t226 call void @fn_emit(ptr @.str7183) %t227 = load ptr, ptr %t226 call void @fn_emit(ptr %t227) call void @fn_emit(ptr @.str7184) %t228 = load i32, ptr %t199 %t229 = call ptr @fn_itoa(i32 %t228) call void @fn_emit(ptr %t229) call void @fn_emit(ptr @.str7185) call void @fn_emit(ptr @.str7186) %t230 = load ptr, ptr %t226 call void @fn_emit(ptr %t230) call void @fn_emit(ptr @.str7187) %t231 = load ptr, ptr %t226 call void @fn_emit(ptr %t231) call void @fn_emit(ptr @.str7188) %t232 = load ptr, ptr %t226 call void @fn_emit(ptr %t232) call void @fn_emit(ptr @.str7189) call void @fn_emit(ptr @.str7190) %t233 = load ptr, ptr %t226 call void @fn_emit(ptr %t233) call void @fn_emit(ptr @.str7191) call void @fn_emit(ptr @.str7192) %t234 = load ptr, ptr %t226 call void @fn_emit(ptr %t234) call void @fn_emit(ptr @.str7193) %t235 = load ptr, ptr %t185 call void @fn_emit(ptr %t235) call void @fn_emit(ptr @.str7194) %t236 = load ptr, ptr %t188 call void @fn_emit(ptr %t236) call void @fn_emit(ptr @.str7195) %t237 = load i32, ptr %t199 %t238 = call ptr @fn_itoa(i32 %t237) call void @fn_emit(ptr %t238) call void @fn_emit(ptr @.str7196) %t239 = load ptr, ptr %t220 %t240 = call i32 @fn_str_eq(ptr %t239, ptr @.str7197) %t241 = icmp ne i32 %t240, 0 br i1 %t241, label %then30, label %else31 then30: call void @fn_emit(ptr @.str7198) %t242 = load ptr, ptr %t226 call void @fn_emit(ptr %t242) call void @fn_emit(ptr @.str7199) %t243 = load ptr, ptr %t226 call void @fn_emit(ptr %t243) call void @fn_emit(ptr @.str7200) call void @fn_emit(ptr @.str7201) %t244 = load ptr, ptr %t226 call void @fn_emit(ptr %t244) call void @fn_emit(ptr @.str7202) %t245 = load ptr, ptr %t226 call void @fn_emit(ptr %t245) call void @fn_emit(ptr @.str7203) %t246 = load ptr, ptr %t226 call void @fn_emit(ptr %t246) call void @fn_emit(ptr @.str7204) br label %ifend32 else31: %t247 = load ptr, ptr %t220 %t248 = call i32 @fn_str_eq(ptr %t247, ptr @.str7205) %t249 = icmp ne i32 %t248, 0 br i1 %t249, label %then33, label %else34 then33: call void @fn_emit(ptr @.str7206) %t250 = load ptr, ptr %t226 call void @fn_emit(ptr %t250) call void @fn_emit(ptr @.str7207) %t251 = load ptr, ptr %t226 call void @fn_emit(ptr %t251) call void @fn_emit(ptr @.str7208) call void @fn_emit(ptr @.str7209) %t252 = load ptr, ptr %t226 call void @fn_emit(ptr %t252) call void @fn_emit(ptr @.str7210) %t253 = load ptr, ptr %t226 call void @fn_emit(ptr %t253) call void @fn_emit(ptr @.str7211) %t254 = load ptr, ptr %t226 call void @fn_emit(ptr %t254) call void @fn_emit(ptr @.str7212) br label %ifend35 else34: call void @fn_emit(ptr @.str7213) %t255 = load ptr, ptr %t226 call void @fn_emit(ptr %t255) call void @fn_emit(ptr @.str7214) %t256 = load ptr, ptr %t226 call void @fn_emit(ptr %t256) call void @fn_emit(ptr @.str7215) call void @fn_emit(ptr @.str7216) %t257 = load ptr, ptr %t226 call void @fn_emit(ptr %t257) call void @fn_emit(ptr @.str7217) %t258 = load ptr, ptr %t226 call void @fn_emit(ptr %t258) call void @fn_emit(ptr @.str7218) %t259 = load ptr, ptr %t226 call void @fn_emit(ptr %t259) call void @fn_emit(ptr @.str7219) br label %ifend35 ifend35: br label %ifend32 ifend32: call void @fn_emit(ptr @.str7220) %t260 = load ptr, ptr %t226 call void @fn_emit(ptr %t260) call void @fn_emit(ptr @.str7221) %t261 = load i32, ptr %t199 %t262 = add i32 %t261, 1 store i32 %t262, ptr %t199 br label %wcond27 wend29: call void @fn_emit(ptr @.str7222) call void @fn_emit(ptr @.str7223) %t263 = load ptr, ptr %t188 call void @fn_emit(ptr %t263) call void @fn_emit(ptr @.str7224) %t264 = load i32, ptr %t29 %t265 = add i32 %t264, 1 store i32 %t265, ptr %t29 br label %ifend26 ifend26: %t266 = load i32, ptr %t30 %t267 = add i32 %t266, 1 store i32 %t267, ptr %t30 br label %wcond21 wend23: call void @fn_emit(ptr @.str7225) %t268 = load ptr, ptr %t28 call void @fn_emit(ptr %t268) call void @fn_emit(ptr @.str7226) call void @fn_emit(ptr @.str7227) call void @fn_emit(ptr @.str7228) call void @fn_emit(ptr @.str7229) call void @fn_emit(ptr @.str7230) call void @fn_emit(ptr @.str7231) call void @fn_emit(ptr @.str7232) store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond36 wcond36: %t269 = load i32, ptr %t30 %t270 = load ptr, ptr @g_prog %t271 = getelementptr inbounds %LSlice, ptr %t270, i32 0, i32 1 %t272 = load i32, ptr %t271 %t273 = icmp slt i32 %t269, %t272 %t274 = zext i1 %t273 to i32 %t275 = icmp ne i32 %t274, 0 br i1 %t275, label %wbody37, label %wend38 wbody37: %t276 = load ptr, ptr @g_prog %t277 = getelementptr inbounds %LSlice, ptr %t276, i32 0, i32 0 %t278 = load ptr, ptr %t277 %t279 = load i32, ptr %t30 %t280 = getelementptr inbounds ptr, ptr %t278, i32 %t279 %t281 = load ptr, ptr %t280 %t282 = getelementptr inbounds %Cmp_Node, ptr %t281, i32 0, i32 0 %t283 = load i32, ptr %t282 %t284 = icmp eq i32 %t283, 8 %t285 = zext i1 %t284 to i32 %t286 = icmp ne i32 %t285, 0 br i1 %t286, label %then39, label %ifend41 then39: %t287 = load ptr, ptr @g_prog %t288 = getelementptr inbounds %LSlice, ptr %t287, i32 0, i32 0 %t289 = load ptr, ptr %t288 %t290 = load i32, ptr %t30 %t291 = getelementptr inbounds ptr, ptr %t289, i32 %t290 %t292 = load ptr, ptr %t291 store ptr %t292, ptr %t293 %t294 = load ptr, ptr %t293 %t295 = getelementptr inbounds %Cmp_Node, ptr %t294, i32 0, i32 1 %t296 = load ptr, ptr %t295 store ptr %t296, ptr %t297 %t298 = load i32, ptr %t29 %t299 = call ptr @fn_itoa(i32 %t298) store ptr %t299, ptr %t300 call void @fn_emit(ptr @.str7233) %t301 = load ptr, ptr %t300 call void @fn_emit(ptr %t301) call void @fn_emit(ptr @.str7234) %t302 = load ptr, ptr %t300 call void @fn_emit(ptr %t302) call void @fn_emit(ptr @.str7235) call void @fn_emit(ptr @.str7236) %t303 = load ptr, ptr %t300 call void @fn_emit(ptr %t303) call void @fn_emit(ptr @.str7237) %t304 = load ptr, ptr %t300 call void @fn_emit(ptr %t304) call void @fn_emit(ptr @.str7238) %t305 = load ptr, ptr %t300 call void @fn_emit(ptr %t305) call void @fn_emit(ptr @.str7239) call void @fn_emit(ptr @.str7240) %t306 = load ptr, ptr %t300 call void @fn_emit(ptr %t306) call void @fn_emit(ptr @.str7241) call void @fn_emit(ptr @.str7242) %t307 = load ptr, ptr %t300 call void @fn_emit(ptr %t307) call void @fn_emit(ptr @.str7243) %t308 = load ptr, ptr %t1 call void @fn_emit(ptr %t308) call void @fn_emit(ptr @.str7244) %t309 = load ptr, ptr %t297 call void @fn_emit(ptr %t309) call void @fn_emit(ptr @.str7245) %t310 = load ptr, ptr %t297 call void @fn_emit(ptr %t310) call void @fn_emit(ptr @.str7246) store i32 0, ptr %t311 br label %wcond42 wcond42: %t312 = load i32, ptr %t311 %t313 = load ptr, ptr %t293 %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 1 %t317 = load i32, ptr %t316 %t318 = icmp slt i32 %t312, %t317 %t319 = zext i1 %t318 to i32 %t320 = icmp ne i32 %t319, 0 br i1 %t320, label %wbody43, label %wend44 wbody43: %t321 = load ptr, ptr %t293 %t322 = getelementptr inbounds %Cmp_Node, ptr %t321, i32 0, i32 7 %t323 = load ptr, ptr %t322 %t324 = getelementptr inbounds %LSlice, ptr %t323, i32 0, i32 0 %t325 = load ptr, ptr %t324 %t326 = load i32, ptr %t311 %t327 = getelementptr inbounds ptr, ptr %t325, i32 %t326 %t328 = load ptr, ptr %t327 %t329 = getelementptr inbounds %Cmp_Node, ptr %t328, i32 0, i32 3 %t330 = load ptr, ptr %t329 %t331 = call ptr @fn_llty(ptr %t330) store ptr %t331, ptr %t332 %t333 = load ptr, ptr %t300 %t334 = call ptr @fn_str_concat(ptr %t333, ptr @.str7247) %t335 = load i32, ptr %t311 %t336 = call ptr @fn_itoa(i32 %t335) %t337 = call ptr @fn_str_concat(ptr %t334, ptr %t336) store ptr %t337, ptr %t338 call void @fn_emit(ptr @.str7248) %t339 = load ptr, ptr %t338 call void @fn_emit(ptr %t339) call void @fn_emit(ptr @.str7249) %t340 = load i32, ptr %t311 %t341 = call ptr @fn_itoa(i32 %t340) call void @fn_emit(ptr %t341) call void @fn_emit(ptr @.str7250) call void @fn_emit(ptr @.str7251) %t342 = load ptr, ptr %t338 call void @fn_emit(ptr %t342) call void @fn_emit(ptr @.str7252) %t343 = load ptr, ptr %t338 call void @fn_emit(ptr %t343) call void @fn_emit(ptr @.str7253) %t344 = load ptr, ptr %t338 call void @fn_emit(ptr %t344) call void @fn_emit(ptr @.str7254) call void @fn_emit(ptr @.str7255) %t345 = load ptr, ptr %t338 call void @fn_emit(ptr %t345) call void @fn_emit(ptr @.str7256) call void @fn_emit(ptr @.str7257) %t346 = load ptr, ptr %t338 call void @fn_emit(ptr %t346) call void @fn_emit(ptr @.str7258) %t347 = load ptr, ptr %t297 call void @fn_emit(ptr %t347) call void @fn_emit(ptr @.str7259) %t348 = load ptr, ptr %t300 call void @fn_emit(ptr %t348) call void @fn_emit(ptr @.str7260) %t349 = load i32, ptr %t311 %t350 = call ptr @fn_itoa(i32 %t349) call void @fn_emit(ptr %t350) call void @fn_emit(ptr @.str7261) %t351 = load ptr, ptr %t332 %t352 = call i32 @fn_str_eq(ptr %t351, ptr @.str7262) %t353 = icmp ne i32 %t352, 0 br i1 %t353, label %then45, label %else46 then45: call void @fn_emit(ptr @.str7263) %t354 = load ptr, ptr %t338 call void @fn_emit(ptr %t354) call void @fn_emit(ptr @.str7264) call void @fn_emit(ptr @.str7265) %t355 = load ptr, ptr %t338 call void @fn_emit(ptr %t355) call void @fn_emit(ptr @.str7266) %t356 = load ptr, ptr %t338 call void @fn_emit(ptr %t356) call void @fn_emit(ptr @.str7267) br label %ifend47 else46: %t357 = load ptr, ptr %t332 %t358 = call i32 @fn_str_eq(ptr %t357, ptr @.str7268) %t359 = icmp ne i32 %t358, 0 br i1 %t359, label %then48, label %else49 then48: call void @fn_emit(ptr @.str7269) %t360 = load ptr, ptr %t338 call void @fn_emit(ptr %t360) call void @fn_emit(ptr @.str7270) call void @fn_emit(ptr @.str7271) %t361 = load ptr, ptr %t338 call void @fn_emit(ptr %t361) call void @fn_emit(ptr @.str7272) %t362 = load ptr, ptr %t338 call void @fn_emit(ptr %t362) call void @fn_emit(ptr @.str7273) br label %ifend50 else49: call void @fn_emit(ptr @.str7274) %t363 = load ptr, ptr %t338 call void @fn_emit(ptr %t363) call void @fn_emit(ptr @.str7275) call void @fn_emit(ptr @.str7276) %t364 = load ptr, ptr %t338 call void @fn_emit(ptr %t364) call void @fn_emit(ptr @.str7277) %t365 = load ptr, ptr %t338 call void @fn_emit(ptr %t365) call void @fn_emit(ptr @.str7278) br label %ifend50 ifend50: br label %ifend47 ifend47: call void @fn_emit(ptr @.str7279) %t366 = load ptr, ptr %t338 call void @fn_emit(ptr %t366) call void @fn_emit(ptr @.str7280) %t367 = load i32, ptr %t311 %t368 = add i32 %t367, 1 store i32 %t368, ptr %t311 br label %wcond42 wend44: call void @fn_emit(ptr @.str7281) call void @fn_emit(ptr @.str7282) %t369 = load ptr, ptr %t300 call void @fn_emit(ptr %t369) call void @fn_emit(ptr @.str7283) %t370 = load i32, ptr %t29 %t371 = add i32 %t370, 1 store i32 %t371, ptr %t29 br label %ifend41 ifend41: %t372 = load i32, ptr %t30 %t373 = add i32 %t372, 1 store i32 %t373, ptr %t30 br label %wcond36 wend38: call void @fn_emit(ptr @.str7284) %t374 = load ptr, ptr %t28 call void @fn_emit(ptr %t374) call void @fn_emit(ptr @.str7285) call void @fn_emit(ptr @.str7286) call void @fn_emit(ptr @.str7287) call void @fn_emit(ptr @.str7288) call void @fn_emit(ptr @.str7289) call void @fn_emit(ptr @.str7290) call void @fn_emit(ptr @.str7291) store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond51 wcond51: %t375 = load i32, ptr %t30 %t376 = load ptr, ptr @g_prog %t377 = getelementptr inbounds %LSlice, ptr %t376, i32 0, i32 1 %t378 = load i32, ptr %t377 %t379 = icmp slt i32 %t375, %t378 %t380 = zext i1 %t379 to i32 %t381 = icmp ne i32 %t380, 0 br i1 %t381, label %wbody52, label %wend53 wbody52: %t382 = load ptr, ptr @g_prog %t383 = getelementptr inbounds %LSlice, ptr %t382, i32 0, i32 0 %t384 = load ptr, ptr %t383 %t385 = load i32, ptr %t30 %t386 = getelementptr inbounds ptr, ptr %t384, i32 %t385 %t387 = load ptr, ptr %t386 %t388 = getelementptr inbounds %Cmp_Node, ptr %t387, i32 0, i32 0 %t389 = load i32, ptr %t388 %t390 = icmp eq i32 %t389, 8 %t391 = zext i1 %t390 to i32 %t392 = icmp ne i32 %t391, 0 br i1 %t392, label %then54, label %ifend56 then54: %t393 = load ptr, ptr @g_prog %t394 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 0 %t395 = load ptr, ptr %t394 %t396 = load i32, ptr %t30 %t397 = getelementptr inbounds ptr, ptr %t395, i32 %t396 %t398 = load ptr, ptr %t397 %t399 = getelementptr inbounds %Cmp_Node, ptr %t398, i32 0, i32 1 %t400 = load ptr, ptr %t399 store ptr %t400, ptr %t401 %t402 = load i32, ptr %t29 %t403 = call ptr @fn_itoa(i32 %t402) store ptr %t403, ptr %t404 call void @fn_emit(ptr @.str7292) %t405 = load ptr, ptr %t404 call void @fn_emit(ptr %t405) call void @fn_emit(ptr @.str7293) %t406 = load ptr, ptr %t404 call void @fn_emit(ptr %t406) call void @fn_emit(ptr @.str7294) call void @fn_emit(ptr @.str7295) %t407 = load ptr, ptr %t404 call void @fn_emit(ptr %t407) call void @fn_emit(ptr @.str7296) %t408 = load ptr, ptr %t404 call void @fn_emit(ptr %t408) call void @fn_emit(ptr @.str7297) %t409 = load ptr, ptr %t404 call void @fn_emit(ptr %t409) call void @fn_emit(ptr @.str7298) call void @fn_emit(ptr @.str7299) %t410 = load ptr, ptr %t404 call void @fn_emit(ptr %t410) call void @fn_emit(ptr @.str7300) call void @fn_emit(ptr @.str7301) %t411 = load ptr, ptr %t404 call void @fn_emit(ptr %t411) call void @fn_emit(ptr @.str7302) %t412 = load ptr, ptr %t1 call void @fn_emit(ptr %t412) call void @fn_emit(ptr @.str7303) %t413 = load ptr, ptr %t401 call void @fn_emit(ptr %t413) call void @fn_emit(ptr @.str7304) call void @fn_emit(ptr @.str7305) %t414 = load ptr, ptr %t404 call void @fn_emit(ptr %t414) call void @fn_emit(ptr @.str7306) %t415 = load ptr, ptr %t404 call void @fn_emit(ptr %t415) call void @fn_emit(ptr @.str7307) call void @fn_emit(ptr @.str7308) %t416 = load ptr, ptr %t404 call void @fn_emit(ptr %t416) call void @fn_emit(ptr @.str7309) %t417 = load ptr, ptr %t404 call void @fn_emit(ptr %t417) call void @fn_emit(ptr @.str7310) %t418 = load ptr, ptr %t404 call void @fn_emit(ptr %t418) call void @fn_emit(ptr @.str7311) call void @fn_emit(ptr @.str7312) %t419 = load ptr, ptr %t404 call void @fn_emit(ptr %t419) call void @fn_emit(ptr @.str7313) %t420 = load i32, ptr %t29 %t421 = add i32 %t420, 1 store i32 %t421, ptr %t29 br label %ifend56 ifend56: %t422 = load i32, ptr %t30 %t423 = add i32 %t422, 1 store i32 %t423, ptr %t30 br label %wcond51 wend53: call void @fn_emit(ptr @.str7314) %t424 = load ptr, ptr %t28 call void @fn_emit(ptr %t424) call void @fn_emit(ptr @.str7315) call void @fn_emit(ptr @.str7316) call void @fn_emit(ptr @.str7317) call void @fn_emit(ptr @.str7318) call void @fn_emit(ptr @.str7319) call void @fn_emit(ptr @.str7320) call void @fn_emit(ptr @.str7321) %t425 = load ptr, ptr %t1 call void @fn_emit(ptr %t425) call void @fn_emit(ptr @.str7322) call void @fn_emit(ptr @.str7323) call void @fn_emit(ptr @.str7324) call void @fn_emit(ptr @.str7325) %t426 = load ptr, ptr %t1 call void @fn_emit(ptr %t426) call void @fn_emit(ptr @.str7326) %t427 = load ptr, ptr %t1 call void @fn_emit(ptr %t427) call void @fn_emit(ptr @.str7327) call void @fn_emit(ptr @.str7328) call void @fn_emit(ptr @.str7329) call void @fn_emit(ptr @.str7330) call void @fn_emit(ptr @.str7331) %t428 = load ptr, ptr %t28 call void @fn_emit(ptr %t428) call void @fn_emit(ptr @.str7332) call void @fn_emit(ptr @.str7333) call void @fn_emit(ptr @.str7334) call void @fn_emit(ptr @.str7335) %t429 = load ptr, ptr %t28 call void @fn_emit(ptr %t429) call void @fn_emit(ptr @.str7336) call void @fn_emit(ptr @.str7337) call void @fn_emit(ptr @.str7338) %t430 = load ptr, ptr %t28 call void @fn_emit(ptr %t430) call void @fn_emit(ptr @.str7339) call void @fn_emit(ptr @.str7340) call void @fn_emit(ptr @.str7341) call void @fn_emit(ptr @.str7342) %t431 = load ptr, ptr %t1 call void @fn_emit(ptr %t431) call void @fn_emit(ptr @.str7343) call void @fn_emit(ptr @.str7344) call void @fn_emit(ptr @.str7345) store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond57 wcond57: %t432 = load i32, ptr %t30 %t433 = load ptr, ptr @g_prog %t434 = getelementptr inbounds %LSlice, ptr %t433, i32 0, i32 1 %t435 = load i32, ptr %t434 %t436 = icmp slt i32 %t432, %t435 %t437 = zext i1 %t436 to i32 %t438 = icmp ne i32 %t437, 0 br i1 %t438, label %wbody58, label %wend59 wbody58: %t439 = load ptr, ptr @g_prog %t440 = getelementptr inbounds %LSlice, ptr %t439, i32 0, i32 0 %t441 = load ptr, ptr %t440 %t442 = load i32, ptr %t30 %t443 = getelementptr inbounds ptr, ptr %t441, i32 %t442 %t444 = load ptr, ptr %t443 %t445 = getelementptr inbounds %Cmp_Node, ptr %t444, i32 0, i32 0 %t446 = load i32, ptr %t445 %t447 = icmp eq i32 %t446, 10 %t448 = zext i1 %t447 to i32 %t449 = icmp ne i32 %t448, 0 br i1 %t449, label %then60, label %ifend62 then60: %t450 = load ptr, ptr @g_prog %t451 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 0 %t452 = load ptr, ptr %t451 %t453 = load i32, ptr %t30 %t454 = getelementptr inbounds ptr, ptr %t452, i32 %t453 %t455 = load ptr, ptr %t454 %t456 = getelementptr inbounds %Cmp_Node, ptr %t455, i32 0, i32 1 %t457 = load ptr, ptr %t456 %t458 = call ptr @fn_emit_str_const(ptr %t457) store ptr %t458, ptr %t459 %t460 = load i32, ptr %t29 %t461 = call ptr @fn_itoa(i32 %t460) store ptr %t461, ptr %t462 call void @fn_emit(ptr @.str7346) %t463 = load ptr, ptr %t462 call void @fn_emit(ptr %t463) call void @fn_emit(ptr @.str7347) %t464 = load ptr, ptr %t459 call void @fn_emit(ptr %t464) call void @fn_emit(ptr @.str7348) call void @fn_emit(ptr @.str7349) %t465 = load ptr, ptr %t462 call void @fn_emit(ptr %t465) call void @fn_emit(ptr @.str7350) %t466 = load ptr, ptr %t462 call void @fn_emit(ptr %t466) call void @fn_emit(ptr @.str7351) call void @fn_emit(ptr @.str7352) %t467 = load ptr, ptr %t462 call void @fn_emit(ptr %t467) call void @fn_emit(ptr @.str7353) %t468 = load ptr, ptr %t462 call void @fn_emit(ptr %t468) call void @fn_emit(ptr @.str7354) %t469 = load ptr, ptr %t462 call void @fn_emit(ptr %t469) call void @fn_emit(ptr @.str7355) call void @fn_emit(ptr @.str7356) %t470 = load ptr, ptr %t462 call void @fn_emit(ptr %t470) call void @fn_emit(ptr @.str7357) %t471 = load ptr, ptr @g_prog %t472 = getelementptr inbounds %LSlice, ptr %t471, i32 0, i32 0 %t473 = load ptr, ptr %t472 %t474 = load i32, ptr %t30 %t475 = getelementptr inbounds ptr, ptr %t473, i32 %t474 %t476 = load ptr, ptr %t475 %t477 = getelementptr inbounds %Cmp_Node, ptr %t476, i32 0, i32 1 %t478 = load ptr, ptr %t477 %t479 = call i32 @fn_find_arch_id(ptr %t478) %t480 = call ptr @fn_itoa(i32 %t479) call void @fn_emit(ptr %t480) call void @fn_emit(ptr @.str7358) call void @fn_emit(ptr @.str7359) %t481 = load ptr, ptr %t462 call void @fn_emit(ptr %t481) call void @fn_emit(ptr @.str7360) %t482 = load i32, ptr %t29 %t483 = add i32 %t482, 1 store i32 %t483, ptr %t29 br label %ifend62 ifend62: %t484 = load i32, ptr %t30 %t485 = add i32 %t484, 1 store i32 %t485, ptr %t30 br label %wcond57 wend59: call void @fn_emit(ptr @.str7361) store i32 0, ptr %t30 br label %wcond63 wcond63: %t486 = load i32, ptr %t30 %t487 = load ptr, ptr @g_prog %t488 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 1 %t489 = load i32, ptr %t488 %t490 = icmp slt i32 %t486, %t489 %t491 = zext i1 %t490 to i32 %t492 = icmp ne i32 %t491, 0 br i1 %t492, label %wbody64, label %wend65 wbody64: %t493 = load ptr, ptr @g_prog %t494 = getelementptr inbounds %LSlice, ptr %t493, i32 0, i32 0 %t495 = load ptr, ptr %t494 %t496 = load i32, ptr %t30 %t497 = getelementptr inbounds ptr, ptr %t495, i32 %t496 %t498 = load ptr, ptr %t497 %t499 = getelementptr inbounds %Cmp_Node, ptr %t498, i32 0, i32 0 %t500 = load i32, ptr %t499 %t501 = icmp eq i32 %t500, 10 %t502 = zext i1 %t501 to i32 %t503 = icmp ne i32 %t502, 0 br i1 %t503, label %then66, label %ifend68 then66: %t504 = load ptr, ptr @g_prog %t505 = getelementptr inbounds %LSlice, ptr %t504, i32 0, i32 0 %t506 = load ptr, ptr %t505 %t507 = load i32, ptr %t30 %t508 = getelementptr inbounds ptr, ptr %t506, i32 %t507 %t509 = load ptr, ptr %t508 %t510 = getelementptr inbounds %Cmp_Node, ptr %t509, i32 0, i32 1 %t511 = load ptr, ptr %t510 store ptr %t511, ptr %t512 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 @.str7362, ptr @g_ret_ty %t513 = call ptr @fn_buf_new() store ptr %t513, ptr %t514 %t515 = call ptr @fn_buf_new() store ptr %t515, ptr @g_falloc %t516 = load ptr, ptr @g_code store ptr %t516, ptr %t517 %t518 = load ptr, ptr %t514 store ptr %t518, ptr @g_code %t519 = call ptr @fn_node(i32 22) store ptr %t519, ptr %t520 %t521 = load ptr, ptr %t520 %t522 = getelementptr inbounds %Cmp_Node, ptr %t521, i32 0, i32 1 %t523 = load ptr, ptr %t512 store ptr %t523, ptr %t522 %t524 = load ptr, ptr %t520 %t525 = call ptr @fn_emit_spawn(ptr %t524) store ptr %t525, ptr %t526 call void @fn_emit(ptr @.str7363) %t527 = load ptr, ptr %t526 call void @fn_emit(ptr %t527) call void @fn_emit(ptr @.str7364) %t528 = load ptr, ptr %t517 store ptr %t528, ptr @g_code call void @fn_emit(ptr @.str7365) %t529 = load ptr, ptr %t512 call void @fn_emit(ptr %t529) call void @fn_emit(ptr @.str7366) %t530 = load ptr, ptr @g_falloc %t531 = call ptr @fn_buf_str(ptr %t530) call void @fn_emit(ptr %t531) %t532 = load ptr, ptr %t514 %t533 = call ptr @fn_buf_str(ptr %t532) call void @fn_emit(ptr %t533) call void @fn_emit(ptr @.str7367) br label %ifend68 ifend68: %t534 = load i32, ptr %t30 %t535 = add i32 %t534, 1 store i32 %t535, ptr %t30 br label %wcond63 wend65: call void @fn_emit(ptr @.str7368) store i32 0, ptr %t29 store i32 0, ptr %t30 br label %wcond69 wcond69: %t536 = load i32, ptr %t30 %t537 = load ptr, ptr @g_prog %t538 = getelementptr inbounds %LSlice, ptr %t537, i32 0, i32 1 %t539 = load i32, ptr %t538 %t540 = icmp slt i32 %t536, %t539 %t541 = zext i1 %t540 to i32 %t542 = icmp ne i32 %t541, 0 br i1 %t542, label %wbody70, label %wend71 wbody70: %t543 = load ptr, ptr @g_prog %t544 = getelementptr inbounds %LSlice, ptr %t543, i32 0, i32 0 %t545 = load ptr, ptr %t544 %t546 = load i32, ptr %t30 %t547 = getelementptr inbounds ptr, ptr %t545, i32 %t546 %t548 = load ptr, ptr %t547 %t549 = getelementptr inbounds %Cmp_Node, ptr %t548, i32 0, i32 0 %t550 = load i32, ptr %t549 %t551 = icmp eq i32 %t550, 10 %t552 = zext i1 %t551 to i32 %t553 = icmp ne i32 %t552, 0 br i1 %t553, label %then72, label %ifend74 then72: %t554 = load ptr, ptr @g_prog %t555 = getelementptr inbounds %LSlice, ptr %t554, i32 0, i32 0 %t556 = load ptr, ptr %t555 %t557 = load i32, ptr %t30 %t558 = getelementptr inbounds ptr, ptr %t556, i32 %t557 %t559 = load ptr, ptr %t558 %t560 = getelementptr inbounds %Cmp_Node, ptr %t559, i32 0, i32 1 %t561 = load ptr, ptr %t560 store ptr %t561, ptr %t562 %t563 = load i32, ptr %t29 %t564 = call ptr @fn_itoa(i32 %t563) store ptr %t564, ptr %t565 call void @fn_emit(ptr @.str7369) %t566 = load ptr, ptr %t565 call void @fn_emit(ptr %t566) call void @fn_emit(ptr @.str7370) %t567 = load ptr, ptr %t562 %t568 = call i32 @fn_find_arch_id(ptr %t567) %t569 = call ptr @fn_itoa(i32 %t568) call void @fn_emit(ptr %t569) call void @fn_emit(ptr @.str7371) call void @fn_emit(ptr @.str7372) %t570 = load ptr, ptr %t565 call void @fn_emit(ptr %t570) call void @fn_emit(ptr @.str7373) %t571 = load ptr, ptr %t565 call void @fn_emit(ptr %t571) call void @fn_emit(ptr @.str7374) %t572 = load ptr, ptr %t565 call void @fn_emit(ptr %t572) call void @fn_emit(ptr @.str7375) call void @fn_emit(ptr @.str7376) %t573 = load ptr, ptr %t565 call void @fn_emit(ptr %t573) call void @fn_emit(ptr @.str7377) %t574 = load ptr, ptr %t565 call void @fn_emit(ptr %t574) call void @fn_emit(ptr @.str7378) %t575 = load ptr, ptr %t562 call void @fn_emit(ptr %t575) call void @fn_emit(ptr @.str7379) %t576 = load ptr, ptr %t565 call void @fn_emit(ptr %t576) call void @fn_emit(ptr @.str7380) call void @fn_emit(ptr @.str7381) %t577 = load ptr, ptr %t565 call void @fn_emit(ptr %t577) call void @fn_emit(ptr @.str7382) %t578 = load i32, ptr %t29 %t579 = add i32 %t578, 1 store i32 %t579, ptr %t29 br label %ifend74 ifend74: %t580 = load i32, ptr %t30 %t581 = add i32 %t580, 1 store i32 %t581, ptr %t30 br label %wcond69 wend71: call void @fn_emit(ptr @.str7383) call void @fn_emit(ptr @.str7384) call void @fn_emit(ptr @.str7385) call void @fn_emit(ptr @.str7386) call void @fn_emit(ptr @.str7387) call void @fn_emit(ptr @.str7388) %t582 = load ptr, ptr %t1 call void @fn_emit(ptr %t582) call void @fn_emit(ptr @.str7389) call void @fn_emit(ptr @.str7390) call void @fn_emit(ptr @.str7391) call void @fn_emit(ptr @.str7392) call void @fn_emit(ptr @.str7393) call void @fn_emit(ptr @.str7394) 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 %t30 = alloca ptr %t32 = alloca i32 %t60 = alloca ptr %t63 = alloca ptr %t102 = alloca ptr %t105 = alloca ptr %t148 = alloca ptr %t151 = alloca ptr %t158 = alloca i32 %t179 = alloca ptr %t185 = alloca ptr %t228 = alloca ptr %t231 = alloca ptr %t238 = alloca i32 %t259 = alloca ptr %t265 = alloca ptr %t0 = call ptr @fn_emit_str_const(ptr @.str7395) store ptr %t0, ptr %t1 %t2 = call ptr @fn_emit_str_const(ptr @.str7396) 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 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = load i32, ptr %t5 %t17 = getelementptr inbounds ptr, ptr %t15, i32 %t16 %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, 8 %t22 = zext i1 %t21 to i32 %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then3, label %ifend5 then3: %t24 = load i32, ptr %t4 %t25 = add i32 %t24, 1 store i32 %t25, ptr %t4 br label %ifend5 ifend5: %t26 = load i32, ptr %t5 %t27 = add i32 %t26, 1 store i32 %t27, ptr %t5 br label %wcond0 wend2: %t28 = load i32, ptr %t4 %t29 = call ptr @fn_itoa(i32 %t28) store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str7397) call void @fn_emit(ptr @.str7398) %t31 = load ptr, ptr %t30 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str7399) call void @fn_emit(ptr @.str7400) store i32 0, ptr %t32 store i32 0, ptr %t5 br label %wcond6 wcond6: %t33 = load i32, ptr %t5 %t34 = load ptr, ptr @g_prog %t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1 %t36 = load i32, ptr %t35 %t37 = icmp slt i32 %t33, %t36 %t38 = zext i1 %t37 to i32 %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %wbody7, label %wend8 wbody7: %t40 = load ptr, ptr @g_prog %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = load i32, ptr %t5 %t44 = getelementptr inbounds ptr, ptr %t42, i32 %t43 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 0 %t47 = load i32, ptr %t46 %t48 = icmp eq i32 %t47, 8 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then9, label %ifend11 then9: %t51 = load ptr, ptr @g_prog %t52 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = load i32, ptr %t5 %t55 = getelementptr inbounds ptr, ptr %t53, i32 %t54 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 %t59 = call ptr @fn_emit_str_const(ptr %t58) store ptr %t59, ptr %t60 %t61 = load i32, ptr %t32 %t62 = call ptr @fn_itoa(i32 %t61) store ptr %t62, ptr %t63 call void @fn_emit(ptr @.str7401) %t64 = load ptr, ptr %t63 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str7402) %t65 = load ptr, ptr %t63 call void @fn_emit(ptr %t65) call void @fn_emit(ptr @.str7403) call void @fn_emit(ptr @.str7404) %t66 = load ptr, ptr %t63 call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str7405) %t67 = load ptr, ptr %t63 call void @fn_emit(ptr %t67) call void @fn_emit(ptr @.str7406) %t68 = load ptr, ptr %t63 call void @fn_emit(ptr %t68) call void @fn_emit(ptr @.str7407) call void @fn_emit(ptr @.str7408) %t69 = load ptr, ptr %t63 call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str7409) %t70 = load ptr, ptr %t60 call void @fn_emit(ptr %t70) call void @fn_emit(ptr @.str7410) call void @fn_emit(ptr @.str7411) %t71 = load ptr, ptr %t63 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str7412) %t72 = load i32, ptr %t32 %t73 = add i32 %t72, 1 store i32 %t73, ptr %t32 br label %ifend11 ifend11: %t74 = load i32, ptr %t5 %t75 = add i32 %t74, 1 store i32 %t75, ptr %t5 br label %wcond6 wend8: call void @fn_emit(ptr @.str7413) %t76 = load ptr, ptr %t30 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str7414) call void @fn_emit(ptr @.str7415) call void @fn_emit(ptr @.str7416) call void @fn_emit(ptr @.str7417) %t77 = load ptr, ptr %t1 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str7418) call void @fn_emit(ptr @.str7419) store i32 0, ptr %t32 store i32 0, ptr %t5 br label %wcond12 wcond12: %t78 = load i32, ptr %t5 %t79 = load ptr, ptr @g_prog %t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp slt i32 %t78, %t81 %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %wbody13, label %wend14 wbody13: %t85 = load ptr, ptr @g_prog %t86 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = load i32, ptr %t5 %t89 = getelementptr inbounds ptr, ptr %t87, i32 %t88 %t90 = load ptr, ptr %t89 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 0 %t92 = load i32, ptr %t91 %t93 = icmp eq i32 %t92, 8 %t94 = zext i1 %t93 to i32 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then15, label %ifend17 then15: %t96 = load ptr, ptr @g_prog %t97 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t98 = load ptr, ptr %t97 %t99 = load i32, ptr %t5 %t100 = getelementptr inbounds ptr, ptr %t98, i32 %t99 %t101 = load ptr, ptr %t100 store ptr %t101, ptr %t102 %t103 = load i32, ptr %t32 %t104 = call ptr @fn_itoa(i32 %t103) store ptr %t104, ptr %t105 call void @fn_emit(ptr @.str7420) %t106 = load ptr, ptr %t105 call void @fn_emit(ptr %t106) call void @fn_emit(ptr @.str7421) %t107 = load ptr, ptr %t105 call void @fn_emit(ptr %t107) call void @fn_emit(ptr @.str7422) call void @fn_emit(ptr @.str7423) %t108 = load ptr, ptr %t105 call void @fn_emit(ptr %t108) call void @fn_emit(ptr @.str7424) %t109 = load ptr, ptr %t105 call void @fn_emit(ptr %t109) call void @fn_emit(ptr @.str7425) %t110 = load ptr, ptr %t105 call void @fn_emit(ptr %t110) call void @fn_emit(ptr @.str7426) call void @fn_emit(ptr @.str7427) %t111 = load ptr, ptr %t105 call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str7428) %t112 = load ptr, ptr %t102 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 7 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 1 %t116 = load i32, ptr %t115 %t117 = call ptr @fn_itoa(i32 %t116) call void @fn_emit(ptr %t117) call void @fn_emit(ptr @.str7429) call void @fn_emit(ptr @.str7430) %t118 = load ptr, ptr %t105 call void @fn_emit(ptr %t118) call void @fn_emit(ptr @.str7431) %t119 = load i32, ptr %t32 %t120 = add i32 %t119, 1 store i32 %t120, ptr %t32 br label %ifend17 ifend17: %t121 = load i32, ptr %t5 %t122 = add i32 %t121, 1 store i32 %t122, ptr %t5 br label %wcond12 wend14: call void @fn_emit(ptr @.str7432) %t123 = load ptr, ptr %t30 call void @fn_emit(ptr %t123) call void @fn_emit(ptr @.str7433) call void @fn_emit(ptr @.str7434) call void @fn_emit(ptr @.str7435) call void @fn_emit(ptr @.str7436) call void @fn_emit(ptr @.str7437) store i32 0, ptr %t32 store i32 0, ptr %t5 br label %wcond18 wcond18: %t124 = load i32, ptr %t5 %t125 = load ptr, ptr @g_prog %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 %wbody19, label %wend20 wbody19: %t131 = load ptr, ptr @g_prog %t132 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 0 %t133 = load ptr, ptr %t132 %t134 = load i32, ptr %t5 %t135 = getelementptr inbounds ptr, ptr %t133, i32 %t134 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 0 %t138 = load i32, ptr %t137 %t139 = icmp eq i32 %t138, 8 %t140 = zext i1 %t139 to i32 %t141 = icmp ne i32 %t140, 0 br i1 %t141, label %then21, label %ifend23 then21: %t142 = load ptr, ptr @g_prog %t143 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = load i32, ptr %t5 %t146 = getelementptr inbounds ptr, ptr %t144, i32 %t145 %t147 = load ptr, ptr %t146 store ptr %t147, ptr %t148 %t149 = load i32, ptr %t32 %t150 = call ptr @fn_itoa(i32 %t149) store ptr %t150, ptr %t151 call void @fn_emit(ptr @.str7438) %t152 = load ptr, ptr %t151 call void @fn_emit(ptr %t152) call void @fn_emit(ptr @.str7439) %t153 = load ptr, ptr %t151 call void @fn_emit(ptr %t153) call void @fn_emit(ptr @.str7440) call void @fn_emit(ptr @.str7441) %t154 = load ptr, ptr %t151 call void @fn_emit(ptr %t154) call void @fn_emit(ptr @.str7442) %t155 = load ptr, ptr %t151 call void @fn_emit(ptr %t155) call void @fn_emit(ptr @.str7443) %t156 = load ptr, ptr %t151 call void @fn_emit(ptr %t156) call void @fn_emit(ptr @.str7444) call void @fn_emit(ptr @.str7445) %t157 = load ptr, ptr %t151 call void @fn_emit(ptr %t157) call void @fn_emit(ptr @.str7446) store i32 0, ptr %t158 br label %wcond24 wcond24: %t159 = load i32, ptr %t158 %t160 = load ptr, ptr %t148 %t161 = getelementptr inbounds %Cmp_Node, ptr %t160, i32 0, i32 7 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds %LSlice, ptr %t162, i32 0, i32 1 %t164 = load i32, ptr %t163 %t165 = icmp slt i32 %t159, %t164 %t166 = zext i1 %t165 to i32 %t167 = icmp ne i32 %t166, 0 br i1 %t167, label %wbody25, label %wend26 wbody25: %t168 = load ptr, ptr %t148 %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 = load i32, ptr %t158 %t174 = getelementptr inbounds ptr, ptr %t172, i32 %t173 %t175 = load ptr, ptr %t174 %t176 = getelementptr inbounds %Cmp_Node, ptr %t175, i32 0, i32 1 %t177 = load ptr, ptr %t176 %t178 = call ptr @fn_emit_str_const(ptr %t177) store ptr %t178, ptr %t179 %t180 = load ptr, ptr %t151 %t181 = call ptr @fn_str_concat(ptr %t180, ptr @.str7447) %t182 = load i32, ptr %t158 %t183 = call ptr @fn_itoa(i32 %t182) %t184 = call ptr @fn_str_concat(ptr %t181, ptr %t183) store ptr %t184, ptr %t185 call void @fn_emit(ptr @.str7448) %t186 = load ptr, ptr %t185 call void @fn_emit(ptr %t186) call void @fn_emit(ptr @.str7449) %t187 = load i32, ptr %t158 %t188 = call ptr @fn_itoa(i32 %t187) call void @fn_emit(ptr %t188) call void @fn_emit(ptr @.str7450) call void @fn_emit(ptr @.str7451) %t189 = load ptr, ptr %t185 call void @fn_emit(ptr %t189) call void @fn_emit(ptr @.str7452) %t190 = load ptr, ptr %t185 call void @fn_emit(ptr %t190) call void @fn_emit(ptr @.str7453) %t191 = load ptr, ptr %t185 call void @fn_emit(ptr %t191) call void @fn_emit(ptr @.str7454) call void @fn_emit(ptr @.str7455) %t192 = load ptr, ptr %t185 call void @fn_emit(ptr %t192) call void @fn_emit(ptr @.str7456) %t193 = load ptr, ptr %t179 call void @fn_emit(ptr %t193) call void @fn_emit(ptr @.str7457) call void @fn_emit(ptr @.str7458) %t194 = load ptr, ptr %t185 call void @fn_emit(ptr %t194) call void @fn_emit(ptr @.str7459) %t195 = load i32, ptr %t158 %t196 = add i32 %t195, 1 store i32 %t196, ptr %t158 br label %wcond24 wend26: call void @fn_emit(ptr @.str7460) %t197 = load ptr, ptr %t1 call void @fn_emit(ptr %t197) call void @fn_emit(ptr @.str7461) call void @fn_emit(ptr @.str7462) %t198 = load ptr, ptr %t151 call void @fn_emit(ptr %t198) call void @fn_emit(ptr @.str7463) %t199 = load i32, ptr %t32 %t200 = add i32 %t199, 1 store i32 %t200, ptr %t32 br label %ifend23 ifend23: %t201 = load i32, ptr %t5 %t202 = add i32 %t201, 1 store i32 %t202, ptr %t5 br label %wcond18 wend20: call void @fn_emit(ptr @.str7464) %t203 = load ptr, ptr %t1 call void @fn_emit(ptr %t203) call void @fn_emit(ptr @.str7465) call void @fn_emit(ptr @.str7466) store i32 0, ptr %t32 store i32 0, ptr %t5 br label %wcond27 wcond27: %t204 = load i32, ptr %t5 %t205 = load ptr, ptr @g_prog %t206 = getelementptr inbounds %LSlice, ptr %t205, i32 0, i32 1 %t207 = load i32, ptr %t206 %t208 = icmp slt i32 %t204, %t207 %t209 = zext i1 %t208 to i32 %t210 = icmp ne i32 %t209, 0 br i1 %t210, label %wbody28, label %wend29 wbody28: %t211 = load ptr, ptr @g_prog %t212 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 0 %t213 = load ptr, ptr %t212 %t214 = load i32, ptr %t5 %t215 = getelementptr inbounds ptr, ptr %t213, i32 %t214 %t216 = load ptr, ptr %t215 %t217 = getelementptr inbounds %Cmp_Node, ptr %t216, i32 0, i32 0 %t218 = load i32, ptr %t217 %t219 = icmp eq i32 %t218, 8 %t220 = zext i1 %t219 to i32 %t221 = icmp ne i32 %t220, 0 br i1 %t221, label %then30, label %ifend32 then30: %t222 = load ptr, ptr @g_prog %t223 = getelementptr inbounds %LSlice, ptr %t222, i32 0, i32 0 %t224 = load ptr, ptr %t223 %t225 = load i32, ptr %t5 %t226 = getelementptr inbounds ptr, ptr %t224, i32 %t225 %t227 = load ptr, ptr %t226 store ptr %t227, ptr %t228 %t229 = load i32, ptr %t32 %t230 = call ptr @fn_itoa(i32 %t229) store ptr %t230, ptr %t231 call void @fn_emit(ptr @.str7467) %t232 = load ptr, ptr %t231 call void @fn_emit(ptr %t232) call void @fn_emit(ptr @.str7468) %t233 = load ptr, ptr %t231 call void @fn_emit(ptr %t233) call void @fn_emit(ptr @.str7469) call void @fn_emit(ptr @.str7470) %t234 = load ptr, ptr %t231 call void @fn_emit(ptr %t234) call void @fn_emit(ptr @.str7471) %t235 = load ptr, ptr %t231 call void @fn_emit(ptr %t235) call void @fn_emit(ptr @.str7472) %t236 = load ptr, ptr %t231 call void @fn_emit(ptr %t236) call void @fn_emit(ptr @.str7473) call void @fn_emit(ptr @.str7474) %t237 = load ptr, ptr %t231 call void @fn_emit(ptr %t237) call void @fn_emit(ptr @.str7475) store i32 0, ptr %t238 br label %wcond33 wcond33: %t239 = load i32, ptr %t238 %t240 = load ptr, ptr %t228 %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 slt i32 %t239, %t244 %t246 = zext i1 %t245 to i32 %t247 = icmp ne i32 %t246, 0 br i1 %t247, label %wbody34, label %wend35 wbody34: %t248 = load ptr, ptr %t228 %t249 = getelementptr inbounds %Cmp_Node, ptr %t248, i32 0, i32 7 %t250 = load ptr, ptr %t249 %t251 = getelementptr inbounds %LSlice, ptr %t250, i32 0, i32 0 %t252 = load ptr, ptr %t251 %t253 = load i32, ptr %t238 %t254 = getelementptr inbounds ptr, ptr %t252, i32 %t253 %t255 = load ptr, ptr %t254 %t256 = getelementptr inbounds %Cmp_Node, ptr %t255, i32 0, i32 3 %t257 = load ptr, ptr %t256 %t258 = call ptr @fn_emit_str_const(ptr %t257) store ptr %t258, ptr %t259 %t260 = load ptr, ptr %t231 %t261 = call ptr @fn_str_concat(ptr %t260, ptr @.str7476) %t262 = load i32, ptr %t238 %t263 = call ptr @fn_itoa(i32 %t262) %t264 = call ptr @fn_str_concat(ptr %t261, ptr %t263) store ptr %t264, ptr %t265 call void @fn_emit(ptr @.str7477) %t266 = load ptr, ptr %t265 call void @fn_emit(ptr %t266) call void @fn_emit(ptr @.str7478) %t267 = load i32, ptr %t238 %t268 = call ptr @fn_itoa(i32 %t267) call void @fn_emit(ptr %t268) call void @fn_emit(ptr @.str7479) call void @fn_emit(ptr @.str7480) %t269 = load ptr, ptr %t265 call void @fn_emit(ptr %t269) call void @fn_emit(ptr @.str7481) %t270 = load ptr, ptr %t265 call void @fn_emit(ptr %t270) call void @fn_emit(ptr @.str7482) %t271 = load ptr, ptr %t265 call void @fn_emit(ptr %t271) call void @fn_emit(ptr @.str7483) call void @fn_emit(ptr @.str7484) %t272 = load ptr, ptr %t265 call void @fn_emit(ptr %t272) call void @fn_emit(ptr @.str7485) %t273 = load ptr, ptr %t259 call void @fn_emit(ptr %t273) call void @fn_emit(ptr @.str7486) call void @fn_emit(ptr @.str7487) %t274 = load ptr, ptr %t265 call void @fn_emit(ptr %t274) call void @fn_emit(ptr @.str7488) %t275 = load i32, ptr %t238 %t276 = add i32 %t275, 1 store i32 %t276, ptr %t238 br label %wcond33 wend35: call void @fn_emit(ptr @.str7489) %t277 = load ptr, ptr %t3 call void @fn_emit(ptr %t277) call void @fn_emit(ptr @.str7490) call void @fn_emit(ptr @.str7491) %t278 = load ptr, ptr %t231 call void @fn_emit(ptr %t278) call void @fn_emit(ptr @.str7492) %t279 = load i32, ptr %t32 %t280 = add i32 %t279, 1 store i32 %t280, ptr %t32 br label %ifend32 ifend32: %t281 = load i32, ptr %t5 %t282 = add i32 %t281, 1 store i32 %t282, ptr %t5 br label %wcond27 wend29: call void @fn_emit(ptr @.str7493) %t283 = load ptr, ptr %t3 call void @fn_emit(ptr %t283) call void @fn_emit(ptr @.str7494) br label %ret ret: ret void } define void @fn_emit_tick_helpers() { entry: call void @fn_emit(ptr @.str7495) store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl call void @fn_emit_calls_for_phase(ptr @.str7496) call void @fn_emit_calls_for_phase(ptr @.str7497) call void @fn_emit_calls_for_phase(ptr @.str7498) call void @fn_emit_calls_for_phase(ptr @.str7499) call void @fn_emit(ptr @.str7500) call void @fn_emit(ptr @.str7501) store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl call void @fn_emit_calls_for_phase(ptr @.str7502) call void @fn_emit(ptr @.str7503) br label %ret ret: ret void } define void @fn_emit_game_defs() { entry: %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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %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, 9 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load ptr, ptr @g_prog %t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t0 %t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22 %t24 = load ptr, ptr %t23 call void @fn_emit_system_fn(ptr %t24) br label %ifend5 ifend5: %t25 = load i32, ptr %t0 %t26 = add i32 %t25, 1 store i32 %t26, ptr %t0 br label %wcond0 wend2: call void @fn_emit_despawn_hooks() call void @fn_emit_scene_hooks() call void @fn_emit_tick_helpers() br label %ret ret: ret void } define void @fn_emit_game_main() { entry: %t12 = alloca i32 %t47 = alloca ptr %t52 = alloca ptr %t58 = alloca ptr %t63 = alloca ptr %t70 = alloca ptr %t78 = alloca ptr %t81 = alloca ptr %t86 = alloca ptr call void @fn_emit_game_defs() call void @fn_emit(ptr @.str7504) call void @fn_emit(ptr @.str7505) call void @fn_emit(ptr @.str7506) %t0 = call ptr @fn_find_fn(ptr @.str7507) %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 @.str7508) br label %ifend2 ifend2: call void @fn_emit_calls_for_phase(ptr @.str7509) %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 @.str7510) %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 @.str7511) 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 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t12 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 2 %t27 = load i32, ptr %t26 %t28 = load i32, ptr @g_g_start_scene %t29 = icmp eq i32 %t27, %t28 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then9, label %ifend11 then9: call void @fn_emit(ptr @.str7512) %t32 = load ptr, ptr @g_g_scenes %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = load i32, ptr %t12 %t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str7513) br label %ifend11 ifend11: %t40 = load i32, ptr %t12 %t41 = add i32 %t40, 1 store i32 %t41, ptr %t12 br label %wcond6 wend8: br label %ifend5 ifend5: %t42 = call ptr @fn_find_event(ptr @.str7514) %t43 = icmp ne ptr %t42, null %t44 = zext i1 %t43 to i32 %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then12, label %ifend14 then12: call void @fn_emit(ptr @.str7515) br label %ifend14 ifend14: call void @fn_emit(ptr @.str7516) call void @fn_emit(ptr @.str7517) %t46 = call ptr @fn_emit_bind(ptr @.str7518) store ptr %t46, ptr %t47 %t48 = load ptr, ptr %t47 %t49 = call ptr @fn_str_concat(ptr @.str7519, ptr %t48) %t50 = call ptr @fn_str_concat(ptr %t49, ptr @.str7520) %t51 = call ptr @fn_emit_bind(ptr %t50) store ptr %t51, ptr %t52 %t53 = call ptr @fn_find_fn(ptr @.str7521) %t54 = icmp ne ptr %t53, null %t55 = zext i1 %t54 to i32 %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then15, label %else16 then15: %t57 = call ptr @fn_emit_bind(ptr @.str7522) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t58 %t60 = call ptr @fn_str_concat(ptr @.str7523, ptr %t59) %t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str7524) %t62 = call ptr @fn_emit_bind(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t52 %t65 = call ptr @fn_str_concat(ptr @.str7525, ptr %t64) %t66 = call ptr @fn_str_concat(ptr %t65, ptr @.str7526) %t67 = load ptr, ptr %t63 %t68 = call ptr @fn_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @fn_emit_bind(ptr %t68) store ptr %t69, ptr %t70 call void @fn_emit(ptr @.str7527) %t71 = load ptr, ptr %t70 call void @fn_emit(ptr %t71) call void @fn_emit(ptr @.str7528) br label %ifend17 else16: call void @fn_emit(ptr @.str7529) %t72 = load ptr, ptr %t52 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str7530) br label %ifend17 ifend17: call void @fn_emit(ptr @.str7531) %t73 = call ptr @fn_find_fn(ptr @.str7532) %t74 = icmp ne ptr %t73, null %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then18, label %ifend20 then18: %t77 = call ptr @fn_emit_bind(ptr @.str7533) store ptr %t77, ptr %t78 call void @fn_emit(ptr @.str7534) %t79 = load ptr, ptr %t78 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str7535) br label %ifend20 ifend20: call void @fn_emit_calls_for_phase(ptr @.str7536) call void @fn_emit_calls_for_phase(ptr @.str7537) call void @fn_emit_calls_for_phase(ptr @.str7538) call void @fn_emit_calls_for_phase(ptr @.str7539) call void @fn_emit_calls_for_phase(ptr @.str7540) %t80 = call ptr @fn_emit_bind(ptr @.str7541) store ptr %t80, ptr %t81 %t82 = load ptr, ptr %t81 %t83 = call ptr @fn_str_concat(ptr @.str7542, ptr %t82) %t84 = call ptr @fn_str_concat(ptr %t83, ptr @.str7543) %t85 = call ptr @fn_emit_bind(ptr %t84) store ptr %t85, ptr %t86 call void @fn_emit(ptr @.str7544) %t87 = load ptr, ptr %t86 call void @fn_emit(ptr %t87) call void @fn_emit(ptr @.str7545) call void @fn_emit(ptr @.str7546) call void @fn_emit(ptr @.str7547) %t88 = load ptr, ptr @g_g_ondespawn %t89 = getelementptr inbounds %LSlice, ptr %t88, i32 0, i32 1 %t90 = load i32, ptr %t89 %t91 = icmp sgt i32 %t90, 0 %t92 = zext i1 %t91 to i32 %t93 = icmp ne i32 %t92, 0 br i1 %t93, label %then21, label %ifend23 then21: call void @fn_emit(ptr @.str7548) br label %ifend23 ifend23: call void @fn_emit_calls_for_phase(ptr @.str7549) %t94 = call ptr @fn_find_event(ptr @.str7550) %t95 = icmp ne ptr %t94, null %t96 = zext i1 %t95 to i32 %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then24, label %ifend26 then24: call void @fn_emit(ptr @.str7551) br label %ifend26 ifend26: %t98 = call ptr @fn_find_fn(ptr @.str7552) %t99 = icmp ne ptr %t98, null %t100 = zext i1 %t99 to i32 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then27, label %ifend29 then27: call void @fn_emit(ptr @.str7553) br label %ifend29 ifend29: call void @fn_emit(ptr @.str7554) 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 void @fn_emit_machine(ptr %arg_st) { entry: %t0 = alloca ptr %t5 = alloca ptr %t6 = alloca ptr %t22 = alloca ptr %t65 = alloca ptr %t66 = alloca i32 %t84 = alloca ptr %t89 = alloca ptr %t98 = alloca ptr %t100 = alloca ptr %t102 = 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 @.str7555, 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 @fn_str_concat(ptr @.str7556, 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 @fn_str_concat(ptr @.str7557, ptr %t25) %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str7558) %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 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t38 = load ptr, ptr %t37 %t39 = load i32, ptr @g_nmach %t40 = getelementptr inbounds ptr, ptr %t38, i32 %t39 %t41 = load ptr, ptr %t0 store ptr %t41, ptr %t40 br label %ifend5 else4: %t42 = load ptr, ptr @g_mach_stk %t43 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1 %t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 2 %t45 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0 %t46 = load i32, ptr %t43 %t47 = load i32, ptr %t44 %t48 = icmp sge i32 %t46, %t47 br i1 %t48, label %grow6, label %put7 grow6: %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 %put7 put7: %t58 = load ptr, ptr %t0 %t59 = load ptr, ptr %t45 %t60 = getelementptr inbounds ptr, ptr %t59, i32 %t46 store ptr %t58, ptr %t60 %t61 = add i32 %t46, 1 store i32 %t61, ptr %t43 br label %ifend5 ifend5: %t62 = load i32, ptr @g_nmach %t63 = add i32 %t62, 1 store i32 %t63, ptr @g_nmach %t64 = call ptr @fn_lbl(ptr @.str7559) store ptr %t64, ptr %t65 store i32 0, ptr %t66 br label %wcond8 wcond8: %t67 = load i32, ptr %t66 %t68 = load ptr, ptr %t0 %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 %wbody9, label %wend10 wbody9: %t76 = load ptr, ptr %t0 %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 = load i32, ptr %t66 %t82 = getelementptr inbounds ptr, ptr %t80, i32 %t81 %t83 = load ptr, ptr %t82 store ptr %t83, ptr %t84 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 5 %t87 = load ptr, ptr %t86 %t88 = call ptr @fn_emit_expr(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t6 %t91 = call ptr @fn_str_concat(ptr @.str7560, ptr %t90) %t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str7561) %t93 = load ptr, ptr %t89 %t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 0 %t95 = load ptr, ptr %t94 %t96 = call ptr @fn_str_concat(ptr %t92, ptr %t95) %t97 = call ptr @fn_emit_bind(ptr %t96) store ptr %t97, ptr %t98 %t99 = call ptr @fn_lbl(ptr @.str7562) store ptr %t99, ptr %t100 %t101 = call ptr @fn_lbl(ptr @.str7563) store ptr %t101, ptr %t102 call void @fn_emit(ptr @.str7564) %t103 = load ptr, ptr %t98 call void @fn_emit(ptr %t103) call void @fn_emit(ptr @.str7565) %t104 = load ptr, ptr %t100 call void @fn_emit(ptr %t104) call void @fn_emit(ptr @.str7566) %t105 = load ptr, ptr %t102 call void @fn_emit(ptr %t105) call void @fn_emit(ptr @.str7567) %t106 = load ptr, ptr %t100 call void @fn_emit(ptr %t106) call void @fn_emit(ptr @.str7568) store i32 0, ptr @g_g_term %t107 = load ptr, ptr %t84 %t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 4 %t109 = load ptr, ptr %t108 call void @fn_emit_block(ptr %t109) %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 %then11, label %ifend13 then11: call void @fn_emit(ptr @.str7569) %t114 = load ptr, ptr %t65 call void @fn_emit(ptr %t114) call void @fn_emit(ptr @.str7570) br label %ifend13 ifend13: %t115 = load ptr, ptr %t102 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str7571) store i32 0, ptr @g_g_term %t116 = load i32, ptr %t66 %t117 = add i32 %t116, 1 store i32 %t117, ptr %t66 br label %wcond8 wend10: %t118 = load i32, ptr @g_g_term %t119 = icmp eq i32 %t118, 0 %t120 = zext i1 %t119 to i32 %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then14, label %ifend16 then14: call void @fn_emit(ptr @.str7572) %t122 = load ptr, ptr %t65 call void @fn_emit(ptr %t122) call void @fn_emit(ptr @.str7573) br label %ifend16 ifend16: %t123 = load ptr, ptr %t65 call void @fn_emit(ptr %t123) call void @fn_emit(ptr @.str7574) store i32 0, ptr @g_g_term %t124 = load i32, ptr @g_nmach %t125 = sub i32 %t124, 1 store i32 %t125, ptr @g_nmach br label %ret ret: ret void } define void @fn_emit_become(ptr %arg_st) { entry: %t0 = alloca ptr %t12 = alloca ptr %t13 = alloca ptr %t14 = alloca i32 %t57 = alloca ptr %t62 = alloca ptr %t79 = alloca ptr %t90 = 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 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = load i32, ptr @g_nmach %t9 = sub i32 %t8, 1 %t10 = getelementptr inbounds ptr, ptr %t7, i32 %t9 %t11 = load ptr, ptr %t10 store ptr %t11, ptr %t12 store ptr null, ptr %t13 store i32 0, ptr %t14 br label %wcond3 wcond3: %t15 = load i32, ptr %t14 %t16 = load ptr, ptr %t12 %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 %t12 %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 = load i32, ptr %t14 %t30 = getelementptr inbounds ptr, ptr %t28, i32 %t29 %t31 = load ptr, ptr %t30 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %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 %t37 = call i32 @fn_str_eq(ptr %t33, ptr %t36) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then6, label %ifend8 then6: %t39 = load ptr, ptr %t12 %t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 7 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0 %t43 = load ptr, ptr %t42 %t44 = load i32, ptr %t14 %t45 = getelementptr inbounds ptr, ptr %t43, i32 %t44 %t46 = load ptr, ptr %t45 store ptr %t46, ptr %t13 br label %ifend8 ifend8: %t47 = load i32, ptr %t14 %t48 = add i32 %t47, 1 store i32 %t48, ptr %t14 br label %wcond3 wend5: %t49 = load ptr, ptr %t13 %t50 = icmp ne ptr %t49, null %t51 = zext i1 %t50 to i32 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then9, label %ifend11 then9: %t53 = load ptr, ptr %t12 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 4 %t55 = load ptr, ptr %t54 %t56 = call ptr @fn_machine_var(ptr %t55) store ptr %t56, ptr %t57 %t58 = load ptr, ptr %t13 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 5 %t60 = load ptr, ptr %t59 %t61 = call ptr @fn_emit_expr(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t57 %t64 = icmp ne ptr %t63, null %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then12, label %else13 then12: call void @fn_emit(ptr @.str7575) %t67 = load ptr, ptr %t62 %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 @.str7576) %t70 = load ptr, ptr %t12 %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 %t73 call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str7577) br label %ifend14 else13: %t75 = load ptr, ptr %t12 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 4 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_emit_expr(ptr %t77) store ptr %t78, ptr %t79 call void @fn_emit(ptr @.str7578) %t80 = load ptr, ptr %t79 %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 @.str7579) %t83 = load ptr, ptr %t62 %t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0 %t85 = load ptr, ptr %t84 call void @fn_emit(ptr %t85) call void @fn_emit(ptr @.str7580) br label %ifend14 ifend14: br label %ret ifend11: br label %ifend2 ifend2: %t86 = load ptr, ptr %t0 %t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %t87 %t89 = call ptr @fn_find_scene(ptr %t88) store ptr %t89, ptr %t90 %t91 = load ptr, ptr %t90 %t92 = icmp eq ptr %t91, null %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 br i1 %t94, label %then15, label %ifend17 then15: %t95 = load ptr, ptr %t0 %t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 %t98 = call ptr @fn_str_concat(ptr @.str7581, ptr %t97) call void @fn_perr(ptr %t98) br label %ifend17 ifend17: %t99 = load ptr, ptr @g_g_cur_scene %t100 = icmp ne ptr %t99, null %t101 = zext i1 %t100 to i32 %t102 = icmp ne i32 %t101, 0 br i1 %t102, label %then18, label %ifend20 then18: call void @fn_emit(ptr @.str7582) %t103 = load ptr, ptr @g_g_cur_scene %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 1 %t105 = load ptr, ptr %t104 call void @fn_emit(ptr %t105) call void @fn_emit(ptr @.str7583) br label %ifend20 ifend20: call void @fn_emit(ptr @.str7584) %t106 = load ptr, ptr %t90 %t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 2 %t108 = load i32, ptr %t107 %t109 = call ptr @fn_itoa(i32 %t108) call void @fn_emit(ptr %t109) call void @fn_emit(ptr @.str7585) call void @fn_emit(ptr @.str7586) %t110 = load ptr, ptr %t90 %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 @.str7587) 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 @fn_str_eq(ptr %t3, ptr @.str7588) %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 @fn_str_concat(ptr @.str7589, 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 @.str7590) %t12 = load ptr, ptr %t9 call void @fn_emit(ptr %t12) call void @fn_emit(ptr @.str7591) %t13 = load ptr, ptr %t0 call void @fn_emit(ptr %t13) call void @fn_emit(ptr @.str7592) %t14 = load ptr, ptr %t1 call void @fn_emit(ptr %t14) call void @fn_emit(ptr @.str7593) %t15 = load ptr, ptr %t2 call void @fn_emit(ptr %t15) call void @fn_emit(ptr @.str7594) br label %ret ifend2: %t16 = load ptr, ptr @g_g_snap_mode %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str7595) %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 @fn_str_concat(ptr @.str7596, ptr %t20) store ptr %t21, ptr %t22 call void @fn_emit(ptr @.str7597) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str7598) %t24 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str7599) %t25 = load ptr, ptr %t2 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str7600) %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 @fn_str_concat(ptr @.str7601, ptr %t30) store ptr %t31, ptr %t32 call void @fn_emit(ptr @.str7602) %t33 = load ptr, ptr %t32 call void @fn_emit(ptr %t33) call void @fn_emit(ptr @.str7603) %t34 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t34) call void @fn_emit(ptr @.str7604) %t35 = load ptr, ptr @g_g_snap_mode %t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str7605) %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then6, label %else7 then6: call void @fn_emit(ptr @.str7606) %t38 = load ptr, ptr %t32 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str7607) %t39 = load ptr, ptr %t1 call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str7608) %t40 = load ptr, ptr %t2 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str7609) br label %ifend8 else7: call void @fn_emit(ptr @.str7610) %t41 = load ptr, ptr %t1 call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str7611) %t42 = load ptr, ptr %t32 call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str7612) %t43 = load ptr, ptr %t2 call void @fn_emit(ptr %t43) call void @fn_emit(ptr @.str7613) br label %ifend8 ifend8: %t44 = load i32, ptr @g_g_iok %t45 = call ptr @fn_itoa(i32 %t44) %t46 = call ptr @fn_str_concat(ptr @.str7614, ptr %t45) store ptr %t46, ptr %t47 call void @fn_emit(ptr @.str7615) %t48 = load ptr, ptr %t47 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str7616) %t49 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t49) call void @fn_emit(ptr @.str7617) %t50 = load ptr, ptr %t2 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str7618) %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 %t43 = alloca i32 %t70 = alloca ptr %t74 = alloca ptr store ptr %arg_fn2, ptr %t0 store i32 0, ptr @g_g_iok store ptr @.str7619, 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 @.str7620, ptr @.str7621) %t4 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t4, ptr @.str7622, ptr @.str7623) call void @fn_emit(ptr @.str7624) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) call void @fn_emit(ptr @.str7625) %t6 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t6, ptr @.str7626, ptr @.str7627) %t7 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t7, ptr @.str7628, ptr @.str7629) %t8 = load ptr, ptr %t0 call void @fn_emit_io(ptr %t8, ptr @.str7630, ptr @.str7631) %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 @.str7632, ptr @.str7633) 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 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0 %t22 = load ptr, ptr %t21 %t23 = load i32, ptr %t12 %t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23 %t25 = load ptr, ptr %t24 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 0 %t27 = load i32, ptr %t26 %t28 = icmp eq i32 %t27, 2 %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then6, label %ifend8 then6: %t31 = load ptr, ptr %t0 %t32 = load ptr, ptr @g_prog %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = load i32, ptr %t12 %t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 %t40 = call ptr @fn_str_concat(ptr @.str7634, ptr %t39) call void @fn_emit_io(ptr %t31, ptr %t40, ptr @.str7635) br label %ifend8 ifend8: %t41 = load i32, ptr %t12 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t12 br label %wcond3 wend5: store i32 0, ptr %t43 store i32 0, ptr %t12 br label %wcond9 wcond9: %t44 = load i32, ptr %t12 %t45 = load ptr, ptr @g_prog %t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp slt i32 %t44, %t47 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %wbody10, label %wend11 wbody10: %t51 = load ptr, ptr @g_prog %t52 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 0 %t53 = load ptr, ptr %t52 %t54 = load i32, ptr %t12 %t55 = getelementptr inbounds ptr, ptr %t53, i32 %t54 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 0 %t58 = load i32, ptr %t57 %t59 = icmp eq i32 %t58, 8 %t60 = zext i1 %t59 to i32 %t61 = icmp ne i32 %t60, 0 br i1 %t61, label %then12, label %ifend14 then12: %t62 = load ptr, ptr @g_prog %t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0 %t64 = load ptr, ptr %t63 %t65 = load i32, ptr %t12 %t66 = getelementptr inbounds ptr, ptr %t64, i32 %t65 %t67 = load ptr, ptr %t66 %t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 1 %t69 = load ptr, ptr %t68 store ptr %t69, ptr %t70 %t71 = load i32, ptr %t43 %t72 = call ptr @fn_itoa(i32 %t71) %t73 = call ptr @fn_str_concat(ptr @.str7636, ptr %t72) store ptr %t73, ptr %t74 call void @fn_emit(ptr @.str7637) %t75 = load ptr, ptr %t74 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str7638) %t76 = load ptr, ptr %t70 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str7639) %t77 = load ptr, ptr %t2 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str7640) %t78 = load ptr, ptr %t0 %t79 = load ptr, ptr %t70 %t80 = call ptr @fn_str_concat(ptr @.str7641, ptr %t79) %t81 = load ptr, ptr %t74 call void @fn_emit_io(ptr %t78, ptr %t80, ptr %t81) %t82 = load ptr, ptr %t0 %t83 = load ptr, ptr %t70 %t84 = call ptr @fn_str_concat(ptr @.str7642, ptr %t83) %t85 = load ptr, ptr %t2 call void @fn_emit_io(ptr %t82, ptr %t84, ptr %t85) %t86 = load i32, ptr %t43 %t87 = add i32 %t86, 1 store i32 %t87, ptr %t43 br label %ifend14 ifend14: %t88 = load i32, ptr %t12 %t89 = add i32 %t88, 1 store i32 %t89, ptr %t12 br label %wcond9 wend11: 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 @.str7643, ptr @g_g_snap_mode call void @fn_emith(ptr @.str7644) call void @fn_emith(ptr @.str7645) call void @fn_emith(ptr @.str7646) %t0 = call ptr @fn_find_fn(ptr @.str7647) %t1 = icmp ne ptr %t0, null %t2 = zext i1 %t1 to i32 store i32 %t2, ptr %t3 %t4 = call ptr @fn_find_fn(ptr @.str7648) %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t7 call void @fn_emit(ptr @.str7649) call void @fn_emit(ptr @.str7650) call void @fn_emit(ptr @.str7651) call void @fn_emit(ptr @.str7652) call void @fn_emit_snapshot_blocks(ptr @.str7653) %t8 = load i32, ptr %t3 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: call void @fn_emit(ptr @.str7654) br label %ifend2 ifend2: call void @fn_emit(ptr @.str7655) call void @fn_emit(ptr @.str7656) call void @fn_emit(ptr @.str7657) call void @fn_emit(ptr @.str7658) call void @fn_emit(ptr @.str7659) call void @fn_emit_snapshot_blocks(ptr @.str7660) %t10 = load i32, ptr %t7 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: call void @fn_emit(ptr @.str7661) br label %ifend5 ifend5: call void @fn_emit(ptr @.str7662) call void @fn_emit(ptr @.str7663) store ptr @.str7664, ptr @g_g_snap_mode call void @fn_emit_snapshot_blocks(ptr @.str7665) %t12 = load i32, ptr @g_g_iok %t13 = call ptr @fn_itoa(i32 %t12) %t14 = call ptr @fn_str_concat(ptr @.str7666, ptr %t13) store ptr %t14, ptr %t15 call void @fn_emit(ptr @.str7667) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) call void @fn_emit(ptr @.str7668) %t17 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str7669) call void @fn_emit(ptr @.str7670) %t18 = load ptr, ptr %t15 call void @fn_emit(ptr %t18) call void @fn_emit(ptr @.str7671) call void @fn_emit(ptr @.str7672) store ptr @.str7673, ptr @g_g_snap_mode call void @fn_emit_snapshot_blocks(ptr @.str7674) call void @fn_emit(ptr @.str7675) call void @fn_emit(ptr @.str7676) store ptr @.str7677, ptr @g_g_snap_mode call void @fn_emit_snapshot_blocks(ptr @.str7678) %t19 = load i32, ptr @g_g_iok %t20 = call ptr @fn_itoa(i32 %t19) %t21 = call ptr @fn_str_concat(ptr @.str7679, ptr %t20) store ptr %t21, ptr %t22 call void @fn_emit(ptr @.str7680) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) call void @fn_emit(ptr @.str7681) %t24 = load ptr, ptr @g_g_off call void @fn_emit(ptr %t24) call void @fn_emit(ptr @.str7682) call void @fn_emit(ptr @.str7683) %t25 = load ptr, ptr %t22 call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str7684) store ptr @.str7685, 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 @fn_str_eq(ptr %t2, ptr @.str7686) %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 @fn_str_eq(ptr %t2, ptr @.str7687) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: store ptr @.str7688, ptr %retval br label %ret ifend2: store ptr @.str7689, 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 %t36 = alloca ptr %t41 = 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 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0 %t16 = load ptr, ptr %t15 %t17 = load i32, ptr %t2 %t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17 %t19 = load ptr, ptr %t18 %t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 2 %t21 = load i32, ptr %t20 %t22 = icmp eq i32 %t21, 1 %t23 = zext i1 %t22 to i32 %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then3, label %ifend5 then3: %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 = load i32, ptr %t2 %t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 %t35 = call ptr @fn_find_comp(ptr %t34) store ptr %t35, ptr %t36 %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 %then6, label %ifend8 then6: store i32 0, ptr %t41 br label %wcond9 wcond9: %t42 = load i32, ptr %t41 %t43 = load ptr, ptr %t36 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 7 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1 %t47 = load i32, ptr %t46 %t48 = icmp slt i32 %t42, %t47 %t49 = zext i1 %t48 to i32 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %wbody10, label %wend11 wbody10: %t51 = load ptr, ptr %t36 %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 0 %t55 = load ptr, ptr %t54 %t56 = load i32, ptr %t41 %t57 = getelementptr inbounds ptr, ptr %t55, i32 %t56 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 2 %t60 = load i32, ptr %t59 %t61 = icmp eq i32 %t60, 1 %t62 = zext i1 %t61 to i32 %t63 = icmp ne i32 %t62, 0 br i1 %t63, label %then12, label %ifend14 then12: %t64 = load i32, ptr %t1 %t65 = load ptr, ptr %t36 %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 = load i32, ptr %t41 %t71 = getelementptr inbounds ptr, ptr %t69, i32 %t70 %t72 = load ptr, ptr %t71 %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 3 %t74 = load ptr, ptr %t73 %t75 = call i32 @fn_net_field_ibytes(ptr %t74) %t76 = add i32 %t64, %t75 store i32 %t76, ptr %t1 br label %ifend14 ifend14: %t77 = load i32, ptr %t41 %t78 = add i32 %t77, 1 store i32 %t78, ptr %t41 br label %wcond9 wend11: br label %ifend8 ifend8: br label %ifend5 ifend5: %t79 = load i32, ptr %t2 %t80 = add i32 %t79, 1 store i32 %t80, ptr %t2 br label %wcond0 wend2: %t81 = load i32, ptr %t1 store i32 %t81, ptr %retval br label %ret ret: %t82 = load i32, ptr %retval ret i32 %t82 } 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %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, 10 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load ptr, ptr @g_prog %t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t0 %t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22 %t24 = load ptr, ptr %t23 %t25 = call i32 @fn_net_model_syncs(ptr %t24) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %ifend8 then6: store i32 1, ptr %retval br label %ret ifend8: br label %ifend5 ifend5: %t27 = load i32, ptr %t0 %t28 = add i32 %t27, 1 store i32 %t28, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t29 = load i32, ptr %retval ret i32 %t29 } 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t0 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0 %t16 = load i32, ptr %t15 %t17 = icmp eq i32 %t16, 10 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t8 br i1 %t19, label %sc3, label %scend4 sc3: %t21 = load ptr, ptr @g_prog %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 2 %t28 = load i32, ptr %t27 %t29 = icmp eq i32 %t28, 1 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t8 br label %scend4 scend4: %t33 = load i32, ptr %t8 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret 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_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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t0 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0 %t16 = load i32, ptr %t15 %t17 = icmp eq i32 %t16, 9 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t8 br i1 %t19, label %sc3, label %scend4 sc3: %t21 = load ptr, ptr @g_prog %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 2 %t28 = load i32, ptr %t27 %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t8 br label %scend4 scend4: %t33 = load i32, ptr %t8 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret 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_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 @.str7690, 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 @.str7691, 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 %t25 = alloca ptr %t26 = alloca i32 %t59 = alloca ptr %t62 = alloca ptr %t67 = alloca i32 %t68 = 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %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, 10 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: %t19 = load ptr, ptr @g_prog %t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t0 %t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22 %t24 = load ptr, ptr %t23 store ptr %t24, ptr %t25 store i32 0, ptr %t26 br label %wcond6 wcond6: %t27 = load i32, ptr %t26 %t28 = load ptr, ptr %t25 %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 %wbody7, label %wend8 wbody7: %t36 = load ptr, ptr %t25 %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 = load i32, ptr %t26 %t42 = getelementptr inbounds ptr, ptr %t40, i32 %t41 %t43 = load ptr, ptr %t42 %t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 2 %t45 = load i32, ptr %t44 %t46 = icmp eq i32 %t45, 1 %t47 = zext i1 %t46 to i32 %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then9, label %ifend11 then9: %t49 = load ptr, ptr %t25 %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 0 %t53 = load ptr, ptr %t52 %t54 = load i32, ptr %t26 %t55 = getelementptr inbounds ptr, ptr %t53, i32 %t54 %t56 = load ptr, ptr %t55 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 %t58 = load ptr, ptr %t57 store ptr %t58, ptr %t59 %t60 = load ptr, ptr %t59 %t61 = call ptr @fn_find_comp(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 %t64 = icmp ne ptr %t63, null %t65 = zext i1 %t64 to i32 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then12, label %ifend14 then12: store i32 0, ptr %t67 store i32 0, ptr %t68 br label %wcond15 wcond15: %t69 = load i32, ptr %t68 %t70 = load ptr, ptr %t62 %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 1 %t74 = load i32, ptr %t73 %t75 = icmp slt i32 %t69, %t74 %t76 = zext i1 %t75 to i32 %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %wbody16, label %wend17 wbody16: %t78 = load ptr, ptr %t62 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 7 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 0 %t82 = load ptr, ptr %t81 %t83 = load i32, ptr %t68 %t84 = getelementptr inbounds ptr, ptr %t82, i32 %t83 %t85 = load ptr, ptr %t84 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 2 %t87 = load i32, ptr %t86 %t88 = icmp eq i32 %t87, 1 %t89 = zext i1 %t88 to i32 %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then18, label %ifend20 then18: store i32 1, ptr %t67 %t91 = load ptr, ptr %t62 %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 = load i32, ptr %t68 %t97 = getelementptr inbounds ptr, ptr %t95, i32 %t96 %t98 = load ptr, ptr %t97 %t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 3 %t100 = load ptr, ptr %t99 %t101 = call ptr @fn_llty(ptr %t100) %t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str7692) %t103 = icmp ne i32 %t102, 0 br i1 %t103, label %then21, label %ifend23 then21: %t104 = load ptr, ptr %t59 %t105 = call ptr @fn_str_concat(ptr @.str7693, ptr %t104) %t106 = call ptr @fn_str_concat(ptr %t105, ptr @.str7694) %t107 = load ptr, ptr %t62 %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 = load i32, ptr %t68 %t113 = getelementptr inbounds ptr, ptr %t111, i32 %t112 %t114 = load ptr, ptr %t113 %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 1 %t116 = load ptr, ptr %t115 %t117 = call ptr @fn_str_concat(ptr %t106, ptr %t116) %t118 = call ptr @fn_str_concat(ptr %t117, ptr @.str7695) call void @fn_perr(ptr %t118) br label %ifend23 ifend23: br label %ifend20 ifend20: %t119 = load i32, ptr %t68 %t120 = add i32 %t119, 1 store i32 %t120, ptr %t68 br label %wcond15 wend17: %t121 = load i32, ptr %t67 %t122 = icmp eq i32 %t121, 0 %t123 = zext i1 %t122 to i32 %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then24, label %ifend26 then24: %t125 = load ptr, ptr %t25 %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 1 %t127 = load ptr, ptr %t126 %t128 = call ptr @fn_str_concat(ptr @.str7696, ptr %t127) %t129 = call ptr @fn_str_concat(ptr %t128, ptr @.str7697) %t130 = load ptr, ptr %t59 %t131 = call ptr @fn_str_concat(ptr %t129, ptr %t130) %t132 = call ptr @fn_str_concat(ptr %t131, ptr @.str7698) call void @fn_net_warn(ptr %t132) br label %ifend26 ifend26: br label %ifend14 ifend14: br label %ifend11 ifend11: %t133 = load i32, ptr %t26 %t134 = add i32 %t133, 1 store i32 %t134, ptr %t26 br label %wcond6 wend8: br label %ifend5 ifend5: %t135 = load i32, ptr %t0 %t136 = add i32 %t135, 1 store i32 %t136, 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 %t40 = alloca ptr %t43 = alloca ptr %t49 = alloca ptr %t54 = alloca i32 %t88 = alloca ptr %t90 = alloca ptr %t97 = 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 @.str7699) %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 @.str7700) 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 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t7 %t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 2 %t26 = load i32, ptr %t25 %t27 = icmp eq i32 %t26, 1 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then3, label %ifend5 then3: %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 = load i32, ptr %t7 %t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_find_comp(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = icmp ne ptr %t44, null %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then6, label %ifend8 then6: %t48 = call ptr @fn_nreg() store ptr %t48, ptr %t49 call void @fn_emit(ptr @.str7701) %t50 = load ptr, ptr %t49 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str7702) %t51 = load ptr, ptr %t2 call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str7703) %t52 = load ptr, ptr %t40 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str7704) %t53 = load ptr, ptr %t40 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str7705) store i32 0, ptr %t54 br label %wcond9 wcond9: %t55 = load i32, ptr %t54 %t56 = load ptr, ptr %t43 %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 %wbody10, label %wend11 wbody10: %t64 = load ptr, ptr %t43 %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 = load i32, ptr %t54 %t70 = getelementptr inbounds ptr, ptr %t68, i32 %t69 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 2 %t73 = load i32, ptr %t72 %t74 = icmp eq i32 %t73, 1 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then12, label %ifend14 then12: %t77 = load ptr, ptr %t43 %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 = load i32, ptr %t54 %t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 3 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_net_field_bytes(ptr %t86) store ptr %t87, ptr %t88 %t89 = call ptr @fn_nreg() store ptr %t89, ptr %t90 call void @fn_emit(ptr @.str7706) %t91 = load ptr, ptr %t90 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str7707) %t92 = load ptr, ptr %t40 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str7708) %t93 = load ptr, ptr %t49 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str7709) %t94 = load i32, ptr %t54 %t95 = call ptr @fn_itoa(i32 %t94) call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str7710) %t96 = call ptr @fn_nreg() store ptr %t96, ptr %t97 call void @fn_emit(ptr @.str7711) %t98 = load ptr, ptr %t97 call void @fn_emit(ptr %t98) call void @fn_emit(ptr @.str7712) %t99 = load i32, ptr %t6 %t100 = call ptr @fn_itoa(i32 %t99) call void @fn_emit(ptr %t100) call void @fn_emit(ptr @.str7713) call void @fn_emit(ptr @.str7714) %t101 = load ptr, ptr %t97 call void @fn_emit(ptr %t101) call void @fn_emit(ptr @.str7715) %t102 = load ptr, ptr %t90 call void @fn_emit(ptr %t102) call void @fn_emit(ptr @.str7716) %t103 = load ptr, ptr %t88 call void @fn_emit(ptr %t103) call void @fn_emit(ptr @.str7717) %t104 = load i32, ptr %t6 %t105 = load ptr, ptr %t43 %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 = load i32, ptr %t54 %t111 = getelementptr inbounds ptr, ptr %t109, i32 %t110 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 3 %t114 = load ptr, ptr %t113 %t115 = call i32 @fn_net_field_ibytes(ptr %t114) %t116 = add i32 %t104, %t115 store i32 %t116, ptr %t6 br label %ifend14 ifend14: %t117 = load i32, ptr %t54 %t118 = add i32 %t117, 1 store i32 %t118, ptr %t54 br label %wcond9 wend11: br label %ifend8 ifend8: br label %ifend5 ifend5: %t119 = load i32, ptr %t7 %t120 = add i32 %t119, 1 store i32 %t120, ptr %t7 br label %wcond0 wend2: call void @fn_emit(ptr @.str7718) %t121 = load i32, ptr %t6 %t122 = call ptr @fn_itoa(i32 %t121) call void @fn_emit(ptr %t122) call void @fn_emit(ptr @.str7719) 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 %t40 = alloca ptr %t43 = alloca ptr %t49 = alloca ptr %t54 = alloca i32 %t88 = alloca ptr %t90 = alloca ptr %t97 = 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 @.str7720) %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 @.str7721) 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 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0 %t21 = load ptr, ptr %t20 %t22 = load i32, ptr %t7 %t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 2 %t26 = load i32, ptr %t25 %t27 = icmp eq i32 %t26, 1 %t28 = zext i1 %t27 to i32 %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then3, label %ifend5 then3: %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 = load i32, ptr %t7 %t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35 %t37 = load ptr, ptr %t36 %t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1 %t39 = load ptr, ptr %t38 store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 %t42 = call ptr @fn_find_comp(ptr %t41) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 %t45 = icmp ne ptr %t44, null %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then6, label %ifend8 then6: %t48 = call ptr @fn_nreg() store ptr %t48, ptr %t49 call void @fn_emit(ptr @.str7722) %t50 = load ptr, ptr %t49 call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str7723) %t51 = load ptr, ptr %t2 call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str7724) %t52 = load ptr, ptr %t40 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str7725) %t53 = load ptr, ptr %t40 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str7726) store i32 0, ptr %t54 br label %wcond9 wcond9: %t55 = load i32, ptr %t54 %t56 = load ptr, ptr %t43 %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 %wbody10, label %wend11 wbody10: %t64 = load ptr, ptr %t43 %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 = load i32, ptr %t54 %t70 = getelementptr inbounds ptr, ptr %t68, i32 %t69 %t71 = load ptr, ptr %t70 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 2 %t73 = load i32, ptr %t72 %t74 = icmp eq i32 %t73, 1 %t75 = zext i1 %t74 to i32 %t76 = icmp ne i32 %t75, 0 br i1 %t76, label %then12, label %ifend14 then12: %t77 = load ptr, ptr %t43 %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 = load i32, ptr %t54 %t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82 %t84 = load ptr, ptr %t83 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 3 %t86 = load ptr, ptr %t85 %t87 = call ptr @fn_net_field_bytes(ptr %t86) store ptr %t87, ptr %t88 %t89 = call ptr @fn_nreg() store ptr %t89, ptr %t90 call void @fn_emit(ptr @.str7727) %t91 = load ptr, ptr %t90 call void @fn_emit(ptr %t91) call void @fn_emit(ptr @.str7728) %t92 = load ptr, ptr %t40 call void @fn_emit(ptr %t92) call void @fn_emit(ptr @.str7729) %t93 = load ptr, ptr %t49 call void @fn_emit(ptr %t93) call void @fn_emit(ptr @.str7730) %t94 = load i32, ptr %t54 %t95 = call ptr @fn_itoa(i32 %t94) call void @fn_emit(ptr %t95) call void @fn_emit(ptr @.str7731) %t96 = call ptr @fn_nreg() store ptr %t96, ptr %t97 call void @fn_emit(ptr @.str7732) %t98 = load ptr, ptr %t97 call void @fn_emit(ptr %t98) call void @fn_emit(ptr @.str7733) %t99 = load i32, ptr %t6 %t100 = call ptr @fn_itoa(i32 %t99) call void @fn_emit(ptr %t100) call void @fn_emit(ptr @.str7734) call void @fn_emit(ptr @.str7735) %t101 = load ptr, ptr %t90 call void @fn_emit(ptr %t101) call void @fn_emit(ptr @.str7736) %t102 = load ptr, ptr %t97 call void @fn_emit(ptr %t102) call void @fn_emit(ptr @.str7737) %t103 = load ptr, ptr %t88 call void @fn_emit(ptr %t103) call void @fn_emit(ptr @.str7738) %t104 = load i32, ptr %t6 %t105 = load ptr, ptr %t43 %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 = load i32, ptr %t54 %t111 = getelementptr inbounds ptr, ptr %t109, i32 %t110 %t112 = load ptr, ptr %t111 %t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 3 %t114 = load ptr, ptr %t113 %t115 = call i32 @fn_net_field_ibytes(ptr %t114) %t116 = add i32 %t104, %t115 store i32 %t116, ptr %t6 br label %ifend14 ifend14: %t117 = load i32, ptr %t54 %t118 = add i32 %t117, 1 store i32 %t118, ptr %t54 br label %wcond9 wend11: br label %ifend8 ifend8: br label %ifend5 ifend5: %t119 = load i32, ptr %t7 %t120 = add i32 %t119, 1 store i32 %t120, ptr %t7 br label %wcond0 wend2: call void @fn_emit(ptr @.str7739) 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 %t44 = alloca ptr %t47 = alloca ptr %t72 = alloca i32 %t104 = alloca ptr %t107 = alloca ptr %t130 = alloca i32 %t162 = alloca ptr %t165 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 call void @fn_emit(ptr @.str7740) call void @fn_emit(ptr @.str7741) %t2 = load ptr, ptr %t1 call void @fn_emit(ptr %t2) call void @fn_emit(ptr @.str7742) 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 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0 %t15 = load ptr, ptr %t14 %t16 = load i32, ptr %t4 %t17 = getelementptr inbounds ptr, ptr %t15, i32 %t16 %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 %t12 br i1 %t23, label %sc3, label %scend4 sc3: %t25 = load ptr, ptr @g_prog %t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0 %t27 = load ptr, ptr %t26 %t28 = load i32, ptr %t4 %t29 = getelementptr inbounds ptr, ptr %t27, i32 %t28 %t30 = load ptr, ptr %t29 %t31 = call i32 @fn_net_model_syncs(ptr %t30) %t32 = icmp ne i32 %t31, 0 %t33 = zext i1 %t32 to i32 store i32 %t33, ptr %t12 br label %scend4 scend4: %t34 = load i32, ptr %t12 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then5, label %ifend7 then5: %t36 = load ptr, ptr @g_prog %t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0 %t38 = load ptr, ptr %t37 %t39 = load i32, ptr %t4 %t40 = getelementptr inbounds ptr, ptr %t38, i32 %t39 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1 %t43 = load ptr, ptr %t42 store ptr %t43, ptr %t44 %t45 = load i32, ptr %t3 %t46 = call ptr @fn_itoa(i32 %t45) store ptr %t46, ptr %t47 call void @fn_emit(ptr @.str7743) %t48 = load ptr, ptr %t47 call void @fn_emit(ptr %t48) call void @fn_emit(ptr @.str7744) %t49 = load ptr, ptr %t44 %t50 = call i32 @fn_find_arch_id(ptr %t49) %t51 = call ptr @fn_itoa(i32 %t50) call void @fn_emit(ptr %t51) call void @fn_emit(ptr @.str7745) call void @fn_emit(ptr @.str7746) %t52 = load ptr, ptr %t47 call void @fn_emit(ptr %t52) call void @fn_emit(ptr @.str7747) %t53 = load ptr, ptr %t47 call void @fn_emit(ptr %t53) call void @fn_emit(ptr @.str7748) %t54 = load ptr, ptr %t47 call void @fn_emit(ptr %t54) call void @fn_emit(ptr @.str7749) call void @fn_emit(ptr @.str7750) %t55 = load ptr, ptr %t47 call void @fn_emit(ptr %t55) call void @fn_emit(ptr @.str7751) %t56 = load ptr, ptr %t47 call void @fn_emit(ptr %t56) call void @fn_emit(ptr @.str7752) %t57 = load ptr, ptr %t44 call void @fn_emit(ptr %t57) call void @fn_emit(ptr @.str7753) %t58 = load ptr, ptr %t47 call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str7754) call void @fn_emit(ptr @.str7755) %t59 = load ptr, ptr %t47 call void @fn_emit(ptr %t59) call void @fn_emit(ptr @.str7756) %t60 = load i32, ptr %t3 %t61 = add i32 %t60, 1 store i32 %t61, ptr %t3 br label %ifend7 ifend7: %t62 = load i32, ptr %t4 %t63 = add i32 %t62, 1 store i32 %t63, ptr %t4 br label %wcond0 wend2: call void @fn_emit(ptr @.str7757) call void @fn_emit(ptr @.str7758) call void @fn_emit(ptr @.str7759) %t64 = load ptr, ptr %t1 call void @fn_emit(ptr %t64) call void @fn_emit(ptr @.str7760) store i32 0, ptr %t3 store i32 0, ptr %t4 br label %wcond8 wcond8: %t65 = load i32, ptr %t4 %t66 = load ptr, ptr @g_prog %t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t68 = load i32, ptr %t67 %t69 = icmp slt i32 %t65, %t68 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %wbody9, label %wend10 wbody9: %t73 = load ptr, ptr @g_prog %t74 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 0 %t75 = load ptr, ptr %t74 %t76 = load i32, ptr %t4 %t77 = getelementptr inbounds ptr, ptr %t75, i32 %t76 %t78 = load ptr, ptr %t77 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 0 %t80 = load i32, ptr %t79 %t81 = icmp eq i32 %t80, 10 %t82 = zext i1 %t81 to i32 %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t72 br i1 %t83, label %sc11, label %scend12 sc11: %t85 = load ptr, ptr @g_prog %t86 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0 %t87 = load ptr, ptr %t86 %t88 = load i32, ptr %t4 %t89 = getelementptr inbounds ptr, ptr %t87, i32 %t88 %t90 = load ptr, ptr %t89 %t91 = call i32 @fn_net_model_syncs(ptr %t90) %t92 = icmp ne i32 %t91, 0 %t93 = zext i1 %t92 to i32 store i32 %t93, ptr %t72 br label %scend12 scend12: %t94 = load i32, ptr %t72 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then13, label %ifend15 then13: %t96 = load ptr, ptr @g_prog %t97 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0 %t98 = load ptr, ptr %t97 %t99 = load i32, ptr %t4 %t100 = getelementptr inbounds ptr, ptr %t98, i32 %t99 %t101 = load ptr, ptr %t100 %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1 %t103 = load ptr, ptr %t102 store ptr %t103, ptr %t104 %t105 = load i32, ptr %t3 %t106 = call ptr @fn_itoa(i32 %t105) store ptr %t106, ptr %t107 call void @fn_emit(ptr @.str7761) %t108 = load ptr, ptr %t107 call void @fn_emit(ptr %t108) call void @fn_emit(ptr @.str7762) %t109 = load ptr, ptr %t104 %t110 = call i32 @fn_find_arch_id(ptr %t109) %t111 = call ptr @fn_itoa(i32 %t110) call void @fn_emit(ptr %t111) call void @fn_emit(ptr @.str7763) call void @fn_emit(ptr @.str7764) %t112 = load ptr, ptr %t107 call void @fn_emit(ptr %t112) call void @fn_emit(ptr @.str7765) %t113 = load ptr, ptr %t107 call void @fn_emit(ptr %t113) call void @fn_emit(ptr @.str7766) %t114 = load ptr, ptr %t107 call void @fn_emit(ptr %t114) call void @fn_emit(ptr @.str7767) call void @fn_emit(ptr @.str7768) %t115 = load ptr, ptr %t107 call void @fn_emit(ptr %t115) call void @fn_emit(ptr @.str7769) %t116 = load ptr, ptr %t104 call void @fn_emit(ptr %t116) call void @fn_emit(ptr @.str7770) call void @fn_emit(ptr @.str7771) %t117 = load ptr, ptr %t107 call void @fn_emit(ptr %t117) call void @fn_emit(ptr @.str7772) %t118 = load i32, ptr %t3 %t119 = add i32 %t118, 1 store i32 %t119, ptr %t3 br label %ifend15 ifend15: %t120 = load i32, ptr %t4 %t121 = add i32 %t120, 1 store i32 %t121, ptr %t4 br label %wcond8 wend10: call void @fn_emit(ptr @.str7773) call void @fn_emit(ptr @.str7774) call void @fn_emit(ptr @.str7775) %t122 = load ptr, ptr %t1 call void @fn_emit(ptr %t122) call void @fn_emit(ptr @.str7776) store i32 0, ptr %t3 store i32 0, ptr %t4 br label %wcond16 wcond16: %t123 = load i32, ptr %t4 %t124 = load ptr, ptr @g_prog %t125 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 1 %t126 = load i32, ptr %t125 %t127 = icmp slt i32 %t123, %t126 %t128 = zext i1 %t127 to i32 %t129 = icmp ne i32 %t128, 0 br i1 %t129, label %wbody17, label %wend18 wbody17: %t131 = load ptr, ptr @g_prog %t132 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 0 %t133 = load ptr, ptr %t132 %t134 = load i32, ptr %t4 %t135 = getelementptr inbounds ptr, ptr %t133, i32 %t134 %t136 = load ptr, ptr %t135 %t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 0 %t138 = load i32, ptr %t137 %t139 = icmp eq i32 %t138, 10 %t140 = zext i1 %t139 to i32 %t141 = icmp ne i32 %t140, 0 %t142 = zext i1 %t141 to i32 store i32 %t142, ptr %t130 br i1 %t141, label %sc19, label %scend20 sc19: %t143 = load ptr, ptr @g_prog %t144 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 %t146 = load i32, ptr %t4 %t147 = getelementptr inbounds ptr, ptr %t145, i32 %t146 %t148 = load ptr, ptr %t147 %t149 = call i32 @fn_net_model_syncs(ptr %t148) %t150 = icmp ne i32 %t149, 0 %t151 = zext i1 %t150 to i32 store i32 %t151, ptr %t130 br label %scend20 scend20: %t152 = load i32, ptr %t130 %t153 = icmp ne i32 %t152, 0 br i1 %t153, label %then21, label %ifend23 then21: %t154 = load ptr, ptr @g_prog %t155 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 0 %t156 = load ptr, ptr %t155 %t157 = load i32, ptr %t4 %t158 = getelementptr inbounds ptr, ptr %t156, i32 %t157 %t159 = load ptr, ptr %t158 %t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 1 %t161 = load ptr, ptr %t160 store ptr %t161, ptr %t162 %t163 = load i32, ptr %t3 %t164 = call ptr @fn_itoa(i32 %t163) store ptr %t164, ptr %t165 call void @fn_emit(ptr @.str7777) %t166 = load ptr, ptr %t165 call void @fn_emit(ptr %t166) call void @fn_emit(ptr @.str7778) %t167 = load ptr, ptr %t162 %t168 = call i32 @fn_find_arch_id(ptr %t167) %t169 = call ptr @fn_itoa(i32 %t168) call void @fn_emit(ptr %t169) call void @fn_emit(ptr @.str7779) call void @fn_emit(ptr @.str7780) %t170 = load ptr, ptr %t165 call void @fn_emit(ptr %t170) call void @fn_emit(ptr @.str7781) %t171 = load ptr, ptr %t165 call void @fn_emit(ptr %t171) call void @fn_emit(ptr @.str7782) %t172 = load ptr, ptr %t165 call void @fn_emit(ptr %t172) call void @fn_emit(ptr @.str7783) call void @fn_emit(ptr @.str7784) %t173 = load ptr, ptr %t165 call void @fn_emit(ptr %t173) call void @fn_emit(ptr @.str7785) %t174 = load ptr, ptr @g_prog %t175 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 0 %t176 = load ptr, ptr %t175 %t177 = load i32, ptr %t4 %t178 = getelementptr inbounds ptr, ptr %t176, i32 %t177 %t179 = load ptr, ptr %t178 %t180 = call i32 @fn_net_model_bytes(ptr %t179) %t181 = call ptr @fn_itoa(i32 %t180) call void @fn_emit(ptr %t181) call void @fn_emit(ptr @.str7786) call void @fn_emit(ptr @.str7787) %t182 = load ptr, ptr %t165 call void @fn_emit(ptr %t182) call void @fn_emit(ptr @.str7788) %t183 = load i32, ptr %t3 %t184 = add i32 %t183, 1 store i32 %t184, ptr %t3 br label %ifend23 ifend23: %t185 = load i32, ptr %t4 %t186 = add i32 %t185, 1 store i32 %t186, ptr %t4 br label %wcond16 wend18: call void @fn_emit(ptr @.str7789) 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 @.str7790) call void @fn_emit(ptr @.str7791) %t2 = load ptr, ptr %t1 call void @fn_emit(ptr %t2) call void @fn_emit(ptr @.str7792) call void @fn_emit(ptr @.str7793) call void @fn_emit(ptr @.str7794) %t3 = load ptr, ptr %t1 call void @fn_emit(ptr %t3) call void @fn_emit(ptr @.str7795) call void @fn_emit(ptr @.str7796) call void @fn_emit(ptr @.str7797) %t4 = load ptr, ptr %t1 call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str7798) call void @fn_emit(ptr @.str7799) br label %ret ret: ret void } define void @fn_emit_loopback() { entry: call void @fn_emith(ptr @.str7800) call void @fn_emith(ptr @.str7801) call void @fn_emith(ptr @.str7802) call void @fn_emith(ptr @.str7803) call void @fn_emit(ptr @.str7804) call void @fn_emit(ptr @.str7805) call void @fn_emit(ptr @.str7806) call void @fn_emit(ptr @.str7807) call void @fn_emit(ptr @.str7808) call void @fn_emit(ptr @.str7809) call void @fn_emit(ptr @.str7810) call void @fn_emit(ptr @.str7811) call void @fn_emit(ptr @.str7812) call void @fn_emit(ptr @.str7813) call void @fn_emit(ptr @.str7814) call void @fn_emit(ptr @.str7815) call void @fn_emit(ptr @.str7816) call void @fn_emit(ptr @.str7817) call void @fn_emit(ptr @.str7818) call void @fn_emit(ptr @.str7819) call void @fn_emit(ptr @.str7820) call void @fn_emit(ptr @.str7821) call void @fn_emit(ptr @.str7822) call void @fn_emit(ptr @.str7823) call void @fn_emit(ptr @.str7824) call void @fn_emit(ptr @.str7825) 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %t13 = load ptr, ptr %t12 %t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 3 %t15 = load ptr, ptr %t14 %t16 = icmp ne ptr %t15, null %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 %t0 %t20 = add i32 %t19, 1 store i32 %t20, ptr %t0 br label %wcond0 wend2: store i32 0, ptr %retval br label %ret ret: %t21 = load i32, ptr %retval ret i32 %t21 } 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t1 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1 %t16 = load ptr, ptr %t15 %t17 = load ptr, ptr %t0 %t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load i32, ptr %t1 store i32 %t20, ptr %retval br label %ret ifend5: %t21 = load i32, ptr %t1 %t22 = add i32 %t21, 1 store i32 %t22, ptr %t1 br label %wcond0 wend2: %t23 = sub i32 0, 1 store i32 %t23, ptr %retval br label %ret ret: %t24 = load i32, ptr %retval ret i32 %t24 } define ptr @fn_net_send_sym() { entry: %retval = alloca ptr %t1 = alloca ptr %t0 = call ptr @fn_find_extern(ptr @.str7826) 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 @.str7827, 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 @.str7828) 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 @.str7829, 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 %t21 = alloca ptr %t30 = alloca ptr %t41 = alloca i32 %t42 = alloca i32 %t44 = alloca ptr %t65 = alloca ptr %t71 = alloca ptr call void @fn_emith(ptr @.str7830) %t0 = call ptr @fn_find_extern(ptr @.str7831) %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 @.str7832) call void @fn_emit(ptr @.str7833) %t6 = load ptr, ptr %t5 call void @fn_emit(ptr %t6) call void @fn_emit(ptr @.str7834) call void @fn_emit(ptr @.str7835) call void @fn_emit(ptr @.str7836) 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 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0 %t17 = load ptr, ptr %t16 %t18 = load i32, ptr %t7 %t19 = getelementptr inbounds ptr, ptr %t17, i32 %t18 %t20 = load ptr, ptr %t19 store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 3 %t24 = load ptr, ptr %t23 %t25 = icmp ne ptr %t24, null %t26 = zext i1 %t25 to i32 %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: %t28 = load i32, ptr %t7 %t29 = call ptr @fn_itoa(i32 %t28) store ptr %t29, ptr %t30 call void @fn_emit(ptr @.str7837) %t31 = load ptr, ptr %t30 call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str7838) %t32 = load ptr, ptr %t21 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 %t35 = call i32 @fn_net_event_id(ptr %t34) %t36 = call ptr @fn_itoa(i32 %t35) call void @fn_emit(ptr %t36) call void @fn_emit(ptr @.str7839) call void @fn_emit(ptr @.str7840) %t37 = load ptr, ptr %t30 call void @fn_emit(ptr %t37) call void @fn_emit(ptr @.str7841) %t38 = load ptr, ptr %t30 call void @fn_emit(ptr %t38) call void @fn_emit(ptr @.str7842) %t39 = load ptr, ptr %t30 call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str7843) call void @fn_emit(ptr @.str7844) %t40 = load ptr, ptr %t30 call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str7845) store i32 4, ptr %t41 store i32 0, ptr %t42 %t43 = call ptr @fn_buf_new() store ptr %t43, ptr %t44 br label %wcond9 wcond9: %t45 = load i32, ptr %t42 %t46 = load ptr, ptr %t21 %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 %wbody10, label %wend11 wbody10: %t54 = load ptr, ptr %t21 %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 = load i32, ptr %t42 %t60 = getelementptr inbounds ptr, ptr %t58, i32 %t59 %t61 = load ptr, ptr %t60 %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 3 %t63 = load ptr, ptr %t62 %t64 = call ptr @fn_llty(ptr %t63) store ptr %t64, ptr %t65 %t66 = load ptr, ptr %t30 %t67 = call ptr @fn_str_concat(ptr %t66, ptr @.str7846) %t68 = load i32, ptr %t42 %t69 = call ptr @fn_itoa(i32 %t68) %t70 = call ptr @fn_str_concat(ptr %t67, ptr %t69) store ptr %t70, ptr %t71 call void @fn_emit(ptr @.str7847) %t72 = load ptr, ptr %t71 call void @fn_emit(ptr %t72) call void @fn_emit(ptr @.str7848) %t73 = load i32, ptr %t41 %t74 = call ptr @fn_itoa(i32 %t73) call void @fn_emit(ptr %t74) call void @fn_emit(ptr @.str7849) call void @fn_emit(ptr @.str7850) %t75 = load ptr, ptr %t71 call void @fn_emit(ptr %t75) call void @fn_emit(ptr @.str7851) %t76 = load ptr, ptr %t65 call void @fn_emit(ptr %t76) call void @fn_emit(ptr @.str7852) %t77 = load ptr, ptr %t71 call void @fn_emit(ptr %t77) call void @fn_emit(ptr @.str7853) %t78 = load i32, ptr %t42 %t79 = icmp sgt i32 %t78, 0 %t80 = zext i1 %t79 to i32 %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then12, label %ifend14 then12: %t82 = load ptr, ptr %t44 call void @fn_buf_puts(ptr %t82, ptr @.str7854) br label %ifend14 ifend14: %t83 = load ptr, ptr %t44 %t84 = load ptr, ptr %t65 call void @fn_buf_puts(ptr %t83, ptr %t84) %t85 = load ptr, ptr %t44 call void @fn_buf_puts(ptr %t85, ptr @.str7855) %t86 = load ptr, ptr %t44 %t87 = load ptr, ptr %t71 call void @fn_buf_puts(ptr %t86, ptr %t87) %t88 = load i32, ptr %t41 %t89 = load ptr, ptr %t21 %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 = load i32, ptr %t42 %t95 = getelementptr inbounds ptr, ptr %t93, i32 %t94 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 3 %t98 = load ptr, ptr %t97 %t99 = call i32 @fn_net_field_ibytes(ptr %t98) %t100 = add i32 %t88, %t99 store i32 %t100, ptr %t41 %t101 = load i32, ptr %t42 %t102 = add i32 %t101, 1 store i32 %t102, ptr %t42 br label %wcond9 wend11: call void @fn_emit(ptr @.str7856) %t103 = load ptr, ptr %t21 %t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 1 %t105 = load ptr, ptr %t104 call void @fn_emit(ptr %t105) call void @fn_emit(ptr @.str7857) %t106 = load ptr, ptr %t44 %t107 = call ptr @fn_buf_str(ptr %t106) call void @fn_emit(ptr %t107) call void @fn_emit(ptr @.str7858) call void @fn_emit(ptr @.str7859) call void @fn_emit(ptr @.str7860) %t108 = load ptr, ptr %t30 call void @fn_emit(ptr %t108) call void @fn_emit(ptr @.str7861) br label %ifend8 ifend8: %t109 = load i32, ptr %t7 %t110 = add i32 %t109, 1 store i32 %t110, ptr %t7 br label %wcond3 wend5: call void @fn_emit(ptr @.str7862) call void @fn_emit(ptr @.str7863) 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 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr %t2 %t15 = getelementptr inbounds ptr, ptr %t13, i32 %t14 %t16 = load ptr, ptr %t15 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0 %t18 = load i32, ptr %t17 %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 %t10 br i1 %t21, label %sc6, label %scend7 sc6: %t23 = load ptr, ptr @g_prog %t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = load i32, ptr %t2 %t27 = getelementptr inbounds ptr, ptr %t25, i32 %t26 %t28 = load ptr, ptr %t27 %t29 = call i32 @fn_net_model_syncs(ptr %t28) %t30 = icmp ne i32 %t29, 0 %t31 = zext i1 %t30 to i32 store i32 %t31, ptr %t10 br label %scend7 scend7: %t32 = load i32, ptr %t10 %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then8, label %ifend10 then8: %t34 = load ptr, ptr @g_prog %t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0 %t36 = load ptr, ptr %t35 %t37 = load i32, ptr %t2 %t38 = getelementptr inbounds ptr, ptr %t36, i32 %t37 %t39 = load ptr, ptr %t38 call void @fn_emit_net_serialize(ptr %t39) %t40 = load ptr, ptr @g_prog %t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 %t43 = load i32, ptr %t2 %t44 = getelementptr inbounds ptr, ptr %t42, i32 %t43 %t45 = load ptr, ptr %t44 call void @fn_emit_net_apply(ptr %t45) br label %ifend10 ifend10: %t46 = load i32, ptr %t2 %t47 = add i32 %t46, 1 store i32 %t47, ptr %t2 br label %wcond3 wend5: call void @fn_emit_net_dispatch() br label %ifend2 ifend2: %t48 = call i32 @fn_net_has_owned() %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then11, label %ifend13 then11: call void @fn_emit_net_owner() br label %ifend13 ifend13: %t50 = call i32 @fn_net_has_remote() %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then14, label %ifend16 then14: call void @fn_emith(ptr @.str7864) call void @fn_emit_net_pump() br label %ifend16 ifend16: 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 @fn_str_eq(ptr %t5, ptr @.str7865) %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 @fn_str_eq(ptr %t8, ptr @.str7866) %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 @fn_str_eq(ptr %t11, ptr @.str7867) %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 @fn_str_eq(ptr %t14, ptr @.str7868) %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 @fn_str_eq(ptr %t17, ptr @.str7869) %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 @fn_str_eq(ptr %t20, ptr @.str7870) %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 @fn_str_eq(ptr %t23, ptr @.str7871) %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 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t2 %t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21 %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 @fn_str_eq(ptr %t25, ptr %t26) %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 5 %t31 = load ptr, ptr %t30 %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 = load i32, ptr %t2 %t37 = getelementptr inbounds ptr, ptr %t35, i32 %t36 %t38 = load ptr, ptr %t37 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 4 %t40 = load ptr, ptr %t39 store ptr %t40, ptr %retval br label %ret ifend5: %t41 = load i32, ptr %t2 %t42 = add i32 %t41, 1 store i32 %t42, ptr %t2 br label %wcond0 wend2: store ptr null, ptr %retval br label %ret ret: %t43 = load ptr, ptr %retval ret ptr %t43 } 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 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1 %t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 2 %t9 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0 %t10 = load i32, ptr %t7 %t11 = load i32, ptr %t8 %t12 = icmp sge i32 %t10, %t11 br i1 %t12, label %grow0, label %put1 grow0: %t13 = mul i32 %t11, 2 %t14 = icmp eq i32 %t11, 0 %t15 = select i1 %t14, i32 8, i32 %t13 %t16 = getelementptr ptr, ptr null, i32 1 %t17 = ptrtoint ptr %t16 to i64 %t18 = zext i32 %t15 to i64 %t19 = mul i64 %t18, %t17 %t20 = load ptr, ptr %t9 %t21 = call ptr @realloc(ptr %t20, i64 %t19) store ptr %t21, ptr %t9 store i32 %t15, ptr %t8 br label %put1 put1: %t22 = load ptr, ptr %t0 %t23 = load ptr, ptr %t9 %t24 = getelementptr inbounds ptr, ptr %t23, i32 %t10 store ptr %t22, ptr %t24 %t25 = add i32 %t10, 1 store i32 %t25, ptr %t7 %t26 = load ptr, ptr @g_uiw_parent %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 %grow2, label %put3 grow2: %t33 = mul i32 %t31, 2 %t34 = icmp eq i32 %t31, 0 %t35 = select i1 %t34, i32 8, i32 %t33 %t36 = getelementptr i32, 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 %put3 put3: %t42 = load i32, ptr %t1 %t43 = load ptr, ptr %t29 %t44 = getelementptr inbounds i32, ptr %t43, i32 %t30 store i32 %t42, ptr %t44 %t45 = add i32 %t30, 1 store i32 %t45, ptr %t27 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 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0 %t60 = load ptr, ptr %t59 %t61 = load i32, ptr %t46 %t62 = getelementptr inbounds ptr, ptr %t60, i32 %t61 %t63 = load ptr, ptr %t62 %t64 = load i32, ptr %t5 call void @fn_ui_flatten(ptr %t63, i32 %t64) %t65 = load i32, ptr %t46 %t66 = add i32 %t65, 1 store i32 %t66, 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 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 %t30 = load i32, ptr %t18 %t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 0 %t34 = load i32, ptr %t33 %t35 = icmp eq i32 %t34, 12 %t36 = zext i1 %t35 to i32 %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t26 br i1 %t37, label %sc3, label %scend4 sc3: %t39 = load ptr, ptr @g_prog %t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = load i32, ptr %t18 %t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 2 %t46 = load i32, ptr %t45 %t47 = icmp eq i32 %t46, 1 %t48 = zext i1 %t47 to i32 %t49 = icmp ne i32 %t48, 0 %t50 = zext i1 %t49 to i32 store i32 %t50, ptr %t26 br label %scend4 scend4: %t51 = load i32, ptr %t26 %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then5, label %ifend7 then5: %t53 = load ptr, ptr @g_ui_roots %t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1 %t55 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 2 %t56 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0 %t57 = load i32, ptr %t54 %t58 = load i32, ptr %t55 %t59 = icmp sge i32 %t57, %t58 br i1 %t59, label %grow8, label %put9 grow8: %t60 = mul i32 %t58, 2 %t61 = icmp eq i32 %t58, 0 %t62 = select i1 %t61, i32 8, i32 %t60 %t63 = getelementptr i32, 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 %put9 put9: %t69 = load ptr, ptr @g_uiw %t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1 %t71 = load i32, ptr %t70 %t72 = load ptr, ptr %t56 %t73 = getelementptr inbounds i32, ptr %t72, i32 %t57 store i32 %t71, ptr %t73 %t74 = add i32 %t57, 1 store i32 %t74, ptr %t54 %t75 = load ptr, ptr @g_prog %t76 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = load i32, ptr %t18 %t79 = getelementptr inbounds ptr, ptr %t77, i32 %t78 %t80 = load ptr, ptr %t79 %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 4 %t82 = load ptr, ptr %t81 %t83 = sub i32 0, 1 call void @fn_ui_flatten(ptr %t82, i32 %t83) br label %ifend7 ifend7: %t84 = load i32, ptr %t18 %t85 = add i32 %t84, 1 store i32 %t85, 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 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0 %t11 = load ptr, ptr %t10 %t12 = load i32, ptr %t0 %t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12 %t14 = load ptr, ptr %t13 %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0 %t16 = load i32, ptr %t15 %t17 = icmp eq i32 %t16, 12 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t8 br i1 %t19, label %sc3, label %scend4 sc3: %t21 = load ptr, ptr @g_prog %t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 %t24 = load i32, ptr %t0 %t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24 %t26 = load ptr, ptr %t25 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 2 %t28 = load i32, ptr %t27 %t29 = icmp eq i32 %t28, 1 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 store i32 %t32, ptr %t8 br label %scend4 scend4: %t33 = load i32, ptr %t8 %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: store i32 1, ptr %retval br label %ret 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_ui_index_of(ptr %arg_nm) { entry: %retval = alloca i32 %t0 = alloca ptr %t6 = alloca ptr %t7 = alloca i32 %t8 = alloca i32 %t9 = alloca i32 %t17 = alloca i32 %t79 = alloca ptr %t84 = alloca i32 store ptr %arg_nm, 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 @fn_str_slice(ptr %t1, i32 3, i32 %t4) store ptr %t5, ptr %t6 store i32 0, ptr %t7 store i32 0, ptr %t8 store i32 0, ptr %t9 br label %wcond0 wcond0: %t10 = load i32, ptr %t9 %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 br i1 %t16, label %wbody1, label %wend2 wbody1: %t18 = load ptr, ptr @g_prog %t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t9 %t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21 %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, 12 %t27 = zext i1 %t26 to i32 %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t17 br i1 %t28, label %sc3, label %scend4 sc3: %t30 = load ptr, ptr @g_prog %t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = load i32, ptr %t9 %t34 = getelementptr inbounds ptr, ptr %t32, i32 %t33 %t35 = load ptr, ptr %t34 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 2 %t37 = load i32, ptr %t36 %t38 = icmp eq i32 %t37, 1 %t39 = zext i1 %t38 to i32 %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t17 br label %scend4 scend4: %t42 = load i32, ptr %t17 %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then5, label %ifend7 then5: %t44 = load ptr, ptr @g_prog %t45 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0 %t46 = load ptr, ptr %t45 %t47 = load i32, ptr %t9 %t48 = getelementptr inbounds ptr, ptr %t46, i32 %t47 %t49 = load ptr, ptr %t48 %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1 %t51 = load ptr, ptr %t50 %t52 = load ptr, ptr %t6 %t53 = call i32 @fn_str_eq(ptr %t51, ptr %t52) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then8, label %ifend10 then8: %t55 = load ptr, ptr @g_ui_roots %t56 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0 %t57 = load ptr, ptr %t56 %t58 = load i32, ptr %t8 %t59 = getelementptr inbounds i32, ptr %t57, i32 %t58 %t60 = load i32, ptr %t59 store i32 %t60, ptr %retval br label %ret ifend10: %t61 = load i32, ptr %t8 %t62 = add i32 %t61, 1 store i32 %t62, ptr %t8 br label %ifend7 ifend7: %t63 = load i32, ptr %t9 %t64 = add i32 %t63, 1 store i32 %t64, ptr %t9 br label %wcond0 wend2: store i32 0, ptr %t9 br label %wcond11 wcond11: %t65 = load i32, ptr %t9 %t66 = load ptr, ptr @g_uiw %t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1 %t68 = load i32, ptr %t67 %t69 = icmp slt i32 %t65, %t68 %t70 = zext i1 %t69 to i32 %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %wbody12, label %wend13 wbody12: %t72 = load ptr, ptr @g_uiw %t73 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = load i32, ptr %t9 %t76 = getelementptr inbounds ptr, ptr %t74, i32 %t75 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_ui_prop(ptr %t77, ptr @.str7872) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t79 %t81 = icmp ne ptr %t80, null %t82 = zext i1 %t81 to i32 %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then14, label %ifend16 then14: %t85 = load ptr, ptr %t79 %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 0 %t87 = load i32, ptr %t86 %t88 = icmp eq i32 %t87, 33 %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 %sc17, label %scend18 sc17: %t92 = load ptr, ptr %t79 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 1 %t94 = load ptr, ptr %t93 %t95 = load ptr, ptr %t6 %t96 = call i32 @fn_str_eq(ptr %t94, ptr %t95) %t97 = icmp ne i32 %t96, 0 %t98 = zext i1 %t97 to i32 store i32 %t98, ptr %t84 br label %scend18 scend18: %t99 = load i32, ptr %t84 %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then19, label %ifend21 then19: %t101 = load i32, ptr %t9 store i32 %t101, ptr %retval br label %ret ifend21: br label %ifend16 ifend16: %t102 = load i32, ptr %t9 %t103 = add i32 %t102, 1 store i32 %t103, ptr %t9 br label %wcond11 wend13: store i32 0, ptr %retval br label %ret ret: %t104 = load i32, ptr %retval ret i32 %t104 } 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 @.str7873) %t3 = load i32, ptr %t0 %t4 = call ptr @fn_itoa(i32 %t3) call void @fn_emit(ptr %t4) call void @fn_emit(ptr @.str7874) %t5 = load i32, ptr %t1 %t6 = call ptr @fn_itoa(i32 %t5) call void @fn_emit(ptr %t6) call void @fn_emit(ptr @.str7875) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) call void @fn_emit(ptr @.str7876) 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 @fn_str_eq(ptr %t1, ptr @.str7877) %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 @fn_str_eq(ptr %t4, ptr @.str7878) %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 @fn_str_eq(ptr %t7, ptr @.str7879) %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 @fn_str_eq(ptr %t10, ptr @.str7880) %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 @fn_str_eq(ptr %t13, ptr @.str7881) %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 @fn_str_eq(ptr %t16, ptr @.str7882) %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 @fn_str_eq(ptr %t19, ptr @.str7883) %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 @fn_str_eq(ptr %t22, ptr @.str7884) %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 @fn_str_eq(ptr %t25, ptr @.str7885) %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 @fn_str_eq(ptr %t28, ptr @.str7886) %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 @fn_str_eq(ptr %t31, ptr @.str7887) %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 @fn_str_eq(ptr %t34, ptr @.str7888) %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 @fn_str_eq(ptr %t37, ptr @.str7889) %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 @fn_str_eq(ptr %t40, ptr @.str7890) %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 %t24 = alloca ptr %t27 = alloca i32 %t44 = alloca i32 %t66 = alloca ptr %t70 = alloca ptr %t74 = alloca ptr %t85 = alloca ptr %t91 = alloca i32 %t104 = alloca ptr %t111 = alloca ptr %t128 = alloca i32 %t144 = alloca ptr %t151 = alloca i32 %t158 = alloca ptr %t164 = 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 @.str7891) %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 @.str7892) 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 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 %t21 = load i32, ptr %t10 %t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21 %t23 = load ptr, ptr %t22 store ptr %t23, ptr %t24 %t25 = load ptr, ptr %t24 %t26 = call i32 @fn_ui_wtype(ptr %t25) store i32 %t26, ptr %t27 %t28 = load i32, ptr %t10 %t29 = load i32, ptr %t27 %t30 = call ptr @fn_itoa(i32 %t29) call void @fn_ll_ui_set(i32 %t28, i32 0, ptr %t30) %t31 = load i32, ptr %t10 %t32 = load ptr, ptr @g_uiw_parent %t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0 %t34 = load ptr, ptr %t33 %t35 = load i32, ptr %t10 %t36 = getelementptr inbounds i32, ptr %t34, i32 %t35 %t37 = load i32, ptr %t36 %t38 = call ptr @fn_itoa(i32 %t37) call void @fn_ll_ui_set(i32 %t31, i32 1, ptr %t38) %t39 = load i32, ptr %t27 %t40 = icmp eq i32 %t39, 4 %t41 = zext i1 %t40 to i32 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then3, label %ifend5 then3: %t43 = load i32, ptr %t10 call void @fn_ll_ui_set(i32 %t43, i32 17, ptr @.str7893) br label %ifend5 ifend5: store i32 0, ptr %t44 br label %wcond6 wcond6: %t45 = load i32, ptr %t44 %t46 = load ptr, ptr %t24 %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 5 %t48 = load ptr, ptr %t47 %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 %t45, %t52 %t54 = zext i1 %t53 to i32 %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %wbody7, label %wend8 wbody7: %t56 = load ptr, ptr %t24 %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 5 %t58 = load ptr, ptr %t57 %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 = load i32, ptr %t44 %t64 = getelementptr inbounds ptr, ptr %t62, i32 %t63 %t65 = load ptr, ptr %t64 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 %t68 store ptr %t69, ptr %t70 %t71 = load ptr, ptr %t66 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4 %t73 = load ptr, ptr %t72 store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t70 %t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str7894) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then9, label %ifend11 then9: %t78 = load i32, ptr %t44 %t79 = add i32 %t78, 1 store i32 %t79, ptr %t44 br label %wcond6 ifend11: %t80 = load ptr, ptr %t70 %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str7895) %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %then12, label %else13 then12: %t83 = load ptr, ptr %t74 %t84 = call ptr @fn_emit_expr(ptr %t83) store ptr %t84, ptr %t85 call void @fn_emit(ptr @.str7896) %t86 = load i32, ptr %t10 %t87 = call ptr @fn_itoa(i32 %t86) call void @fn_emit(ptr %t87) call void @fn_emit(ptr @.str7897) %t88 = load ptr, ptr %t85 %t89 = getelementptr inbounds %Cmp_Val, ptr %t88, i32 0, i32 0 %t90 = load ptr, ptr %t89 call void @fn_emit(ptr %t90) call void @fn_emit(ptr @.str7898) br label %ifend14 else13: %t92 = load ptr, ptr %t70 %t93 = call i32 @fn_str_eq(ptr %t92, ptr @.str7899) %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t91 br i1 %t94, label %scend16, label %sc15 sc15: %t96 = load ptr, ptr %t70 %t97 = call i32 @fn_str_eq(ptr %t96, ptr @.str7900) %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t91 br label %scend16 scend16: %t100 = load i32, ptr %t91 %t101 = icmp ne i32 %t100, 0 br i1 %t101, label %then17, label %else18 then17: %t102 = load ptr, ptr %t74 %t103 = call ptr @fn_emit_expr(ptr %t102) store ptr %t103, ptr %t104 %t105 = load ptr, ptr %t104 %t106 = getelementptr inbounds %Cmp_Val, ptr %t105, i32 0, i32 0 %t107 = load ptr, ptr %t106 %t108 = call ptr @fn_str_concat(ptr @.str7901, ptr %t107) %t109 = call ptr @fn_str_concat(ptr %t108, ptr @.str7902) %t110 = call ptr @fn_emit_bind(ptr %t109) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t70 %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str7903) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then20, label %else21 then20: %t115 = load i32, ptr %t10 %t116 = load ptr, ptr %t111 call void @fn_ll_ui_set(i32 %t115, i32 20, ptr %t116) br label %ifend22 else21: %t117 = load i32, ptr %t10 %t118 = load ptr, ptr %t111 call void @fn_ll_ui_set(i32 %t117, i32 19, ptr %t118) br label %ifend22 ifend22: br label %ifend19 else18: %t119 = load ptr, ptr %t70 %t120 = call i32 @fn_str_eq(ptr %t119, ptr @.str7904) %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then23, label %else24 then23: %t122 = load ptr, ptr %t74 %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 0 %t124 = load i32, ptr %t123 %t125 = icmp eq i32 %t124, 33 %t126 = zext i1 %t125 to i32 %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then26, label %else27 then26: store i32 0, ptr %t128 %t129 = load ptr, ptr %t74 %t130 = getelementptr inbounds %Cmp_Node, ptr %t129, i32 0, i32 1 %t131 = load ptr, ptr %t130 %t132 = call i32 @fn_str_eq(ptr %t131, ptr @.str7905) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then29, label %ifend31 then29: store i32 1, ptr %t128 br label %ifend31 ifend31: %t134 = load ptr, ptr %t74 %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 1 %t136 = load ptr, ptr %t135 %t137 = call i32 @fn_str_eq(ptr %t136, ptr @.str7906) %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then32, label %ifend34 then32: store i32 2, ptr %t128 br label %ifend34 ifend34: %t139 = load i32, ptr %t10 %t140 = load i32, ptr %t128 %t141 = call ptr @fn_itoa(i32 %t140) call void @fn_ll_ui_set(i32 %t139, i32 12, ptr %t141) br label %ifend28 else27: %t142 = load ptr, ptr %t74 %t143 = call ptr @fn_emit_expr(ptr %t142) store ptr %t143, ptr %t144 %t145 = load i32, ptr %t10 %t146 = load ptr, ptr %t144 %t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0 %t148 = load ptr, ptr %t147 call void @fn_ll_ui_set(i32 %t145, i32 12, ptr %t148) br label %ifend28 ifend28: br label %ifend25 else24: %t149 = load ptr, ptr %t70 %t150 = call i32 @fn_ui_prop_key(ptr %t149) store i32 %t150, ptr %t151 %t152 = load i32, ptr %t151 %t153 = icmp sge i32 %t152, 0 %t154 = zext i1 %t153 to i32 %t155 = icmp ne i32 %t154, 0 br i1 %t155, label %then35, label %ifend37 then35: %t156 = load ptr, ptr %t74 %t157 = call ptr @fn_emit_expr(ptr %t156) store ptr %t157, ptr %t158 %t159 = load i32, ptr %t10 %t160 = load i32, ptr %t151 %t161 = load ptr, ptr %t158 %t162 = getelementptr inbounds %Cmp_Val, ptr %t161, i32 0, i32 0 %t163 = load ptr, ptr %t162 call void @fn_ll_ui_set(i32 %t159, i32 %t160, ptr %t163) %t165 = load i32, ptr %t151 %t166 = icmp eq i32 %t165, 4 %t167 = zext i1 %t166 to i32 %t168 = icmp ne i32 %t167, 0 %t169 = zext i1 %t168 to i32 store i32 %t169, ptr %t164 br i1 %t168, label %scend39, label %sc38 sc38: %t170 = load i32, ptr %t151 %t171 = icmp eq i32 %t170, 5 %t172 = zext i1 %t171 to i32 %t173 = icmp ne i32 %t172, 0 %t174 = zext i1 %t173 to i32 store i32 %t174, ptr %t164 br label %scend39 scend39: %t175 = load i32, ptr %t164 %t176 = icmp ne i32 %t175, 0 br i1 %t176, label %then40, label %ifend42 then40: %t177 = load i32, ptr %t10 call void @fn_ll_ui_set(i32 %t177, i32 6, ptr @.str7907) br label %ifend42 ifend42: br label %ifend37 ifend37: br label %ifend25 ifend25: br label %ifend19 ifend19: br label %ifend14 ifend14: %t178 = load i32, ptr %t44 %t179 = add i32 %t178, 1 store i32 %t179, ptr %t44 br label %wcond6 wend8: %t180 = load i32, ptr %t10 %t181 = add i32 %t180, 1 store i32 %t181, ptr %t10 br label %wcond0 wend2: %t182 = load ptr, ptr %t4 store ptr %t182, ptr @g_code call void @fn_emit(ptr @.str7908) %t183 = load ptr, ptr @g_falloc %t184 = call ptr @fn_buf_str(ptr %t183) call void @fn_emit(ptr %t184) %t185 = load ptr, ptr %t1 %t186 = call ptr @fn_buf_str(ptr %t185) call void @fn_emit(ptr %t186) call void @fn_emit(ptr @.str7909) 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 @.str7910) 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 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0 %t19 = load ptr, ptr %t18 %t20 = load i32, ptr %t1 %t21 = getelementptr inbounds ptr, ptr %t19, i32 %t20 %t22 = load ptr, ptr %t21 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 3 %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_llty(ptr %t24) call void @fn_emit(ptr %t25) call void @fn_emit(ptr @.str7911) %t26 = load ptr, ptr %t0 %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 = load i32, ptr %t1 %t32 = getelementptr inbounds ptr, ptr %t30, i32 %t31 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 call void @fn_emit(ptr %t35) %t36 = load i32, ptr %t1 %t37 = add i32 %t36, 1 store i32 %t37, ptr %t1 br label %wcond0 wend2: br label %ret ret: ret void } define void @fn_emit_fn(ptr %arg_d) { entry: %t0 = alloca ptr %t5 = alloca ptr %t8 = alloca ptr %t12 = alloca ptr %t22 = alloca i32 %t40 = alloca ptr %t46 = alloca ptr %t78 = 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 3 %t3 = load ptr, ptr %t2 store ptr %t3, 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 %t10 = load ptr, ptr @g_ret_ty %t11 = call ptr @fn_llty(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str7912) %t15 = icmp eq i32 %t14, 0 %t16 = zext i1 %t15 to i32 %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then0, label %ifend2 then0: %t18 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t18, ptr @.str7913) %t19 = load ptr, ptr @g_falloc %t20 = load ptr, ptr %t12 call void @fn_buf_puts(ptr %t19, ptr %t20) %t21 = load ptr, ptr @g_falloc call void @fn_buf_puts(ptr %t21, ptr @.str7914) br label %ifend2 ifend2: store i32 0, ptr %t22 br label %wcond3 wcond3: %t23 = load i32, ptr %t22 %t24 = load ptr, ptr %t0 %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 = icmp slt i32 %t23, %t28 %t30 = zext i1 %t29 to i32 %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %wbody4, label %wend5 wbody4: %t32 = load ptr, ptr %t0 %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 = load i32, ptr %t22 %t38 = getelementptr inbounds ptr, ptr %t36, i32 %t37 %t39 = load ptr, ptr %t38 store ptr %t39, ptr %t40 %t41 = load ptr, ptr %t40 %t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 3 %t43 = load ptr, ptr %t42 %t44 = call ptr @fn_llty(ptr %t43) %t45 = call ptr @fn_emit_alloca(ptr %t44) store ptr %t45, ptr %t46 call void @fn_emit(ptr @.str7915) %t47 = load ptr, ptr %t40 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3 %t49 = load ptr, ptr %t48 %t50 = call ptr @fn_llty(ptr %t49) call void @fn_emit(ptr %t50) call void @fn_emit(ptr @.str7916) %t51 = load ptr, ptr %t40 %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 @.str7917) %t54 = load ptr, ptr %t46 call void @fn_emit(ptr %t54) call void @fn_emit(ptr @.str7918) %t55 = load ptr, ptr %t40 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 1 %t57 = load ptr, ptr %t56 %t58 = load ptr, ptr %t46 %t59 = load ptr, ptr %t40 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 3 %t61 = load ptr, ptr %t60 call void @fn_loc_push(ptr %t57, ptr %t58, ptr %t61) %t62 = load i32, ptr %t22 %t63 = add i32 %t62, 1 store i32 %t63, ptr %t22 br label %wcond3 wend5: %t64 = load ptr, ptr %t0 %t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 4 %t66 = load ptr, ptr %t65 call void @fn_emit_block(ptr %t66) %t67 = load i32, ptr @g_g_term %t68 = icmp eq i32 %t67, 0 %t69 = zext i1 %t68 to i32 %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then6, label %ifend8 then6: call void @fn_emit(ptr @.str7919) br label %ifend8 ifend8: call void @fn_emit(ptr @.str7920) %t71 = load ptr, ptr %t12 %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str7921) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then9, label %else10 then9: call void @fn_emit(ptr @.str7922) br label %ifend11 else10: %t74 = load ptr, ptr %t12 %t75 = call ptr @fn_str_concat(ptr @.str7923, ptr %t74) %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str7924) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 call void @fn_emit(ptr @.str7925) %t79 = load ptr, ptr %t12 call void @fn_emit(ptr %t79) call void @fn_emit(ptr @.str7926) %t80 = load ptr, ptr %t78 call void @fn_emit(ptr %t80) call void @fn_emit(ptr @.str7927) br label %ifend11 ifend11: %t81 = load ptr, ptr %t8 store ptr %t81, ptr @g_code call void @fn_emit(ptr @.str7928) %t82 = load ptr, ptr %t12 call void @fn_emit(ptr %t82) call void @fn_emit(ptr @.str7929) %t83 = load ptr, ptr %t0 %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 @.str7930) %t86 = load ptr, ptr %t0 call void @fn_emit_params_sig(ptr %t86) call void @fn_emit(ptr @.str7931) %t87 = load ptr, ptr @g_falloc %t88 = call ptr @fn_buf_str(ptr %t87) call void @fn_emit(ptr %t88) %t89 = load ptr, ptr %t5 %t90 = call ptr @fn_buf_str(ptr %t89) call void @fn_emit(ptr %t90) call void @fn_emit(ptr @.str7932) br label %ret ret: ret void } define void @fn_emit_main(ptr %arg_d) { entry: %t0 = alloca ptr %t2 = alloca ptr %t5 = alloca ptr %t16 = 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 @.str7933, 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 @.str7934) call void @fn_emit(ptr @.str7935) call void @fn_emit(ptr @.str7936) call void @fn_emit(ptr @.str7937) %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 @.str7938) br label %ifend2 ifend2: call void @fn_emit(ptr @.str7939) %t15 = call ptr @fn_emit_bind(ptr @.str7940) store ptr %t15, ptr %t16 call void @fn_emit(ptr @.str7941) %t17 = load ptr, ptr %t16 call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str7942) %t18 = load ptr, ptr %t5 store ptr %t18, ptr @g_code call void @fn_emit(ptr @.str7943) %t19 = load ptr, ptr @g_falloc %t20 = call ptr @fn_buf_str(ptr %t19) call void @fn_emit(ptr %t20) %t21 = load ptr, ptr %t2 %t22 = call ptr @fn_buf_str(ptr %t21) call void @fn_emit(ptr %t22) call void @fn_emit(ptr @.str7944) 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 @.str7945, 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 @.str7946) br label %ifend2 ifend2: call void @fn_emit(ptr @.str7947) %t15 = load ptr, ptr %t6 store ptr %t15, ptr @g_code call void @fn_emit(ptr @.str7948) %t16 = load i32, ptr %t1 %t17 = call ptr @fn_itoa(i32 %t16) call void @fn_emit(ptr %t17) call void @fn_emit(ptr @.str7949) %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 @.str7950) br label %ret ret: ret void } define void @fn_emit_test_runner() { entry: %t0 = alloca i32 %t38 = alloca ptr %t49 = alloca ptr %t55 = alloca ptr %t60 = alloca ptr %t62 = alloca ptr %t64 = alloca ptr %t66 = alloca ptr %t87 = alloca ptr %t92 = alloca ptr %t107 = alloca ptr %t117 = alloca ptr %t128 = alloca ptr %t133 = alloca ptr call void @fn_emith(ptr @.str7951) call void @fn_emith(ptr @.str7952) 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 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0 %t10 = load ptr, ptr %t9 %t11 = load i32, ptr %t0 %t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11 %t13 = load ptr, ptr %t12 %t14 = load i32, ptr %t0 call void @fn_emit_test_fn(ptr %t13, i32 %t14) %t15 = load i32, ptr %t0 %t16 = add i32 %t15, 1 store i32 %t16, ptr %t0 br label %wcond0 wend2: %t17 = load i32, ptr @g_g_uses_expect %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then3, label %ifend5 then3: call void @fn_emith(ptr @.str7953) br label %ifend5 ifend5: store i32 0, ptr @g_ll_t store i32 0, ptr @g_ll_lbl call void @fn_emit(ptr @.str7954) call void @fn_emit(ptr @.str7955) call void @fn_emit(ptr @.str7956) call void @fn_emit(ptr @.str7957) %t19 = call i32 @fn_has_ecs() %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then6, label %ifend8 then6: call void @fn_emit(ptr @.str7958) br label %ifend8 ifend8: store i32 0, ptr %t0 br label %wcond9 wcond9: %t21 = load i32, ptr %t0 %t22 = load ptr, ptr @g_g_tests %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 %wbody10, label %wend11 wbody10: %t28 = load ptr, ptr @g_g_tests %t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0 %t30 = load ptr, ptr %t29 %t31 = load i32, ptr %t0 %t32 = getelementptr inbounds ptr, ptr %t30, i32 %t31 %t33 = load ptr, ptr %t32 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_str_concat(ptr @.str7959, ptr %t35) %t37 = call ptr @fn_emit_str_const(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr @g_g_tests %t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0 %t41 = load ptr, ptr %t40 %t42 = load i32, ptr %t0 %t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42 %t44 = load ptr, ptr %t43 %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1 %t46 = load ptr, ptr %t45 %t47 = call ptr @fn_str_concat(ptr @.str7960, ptr %t46) %t48 = call ptr @fn_emit_str_const(ptr %t47) store ptr %t48, ptr %t49 call void @fn_emit(ptr @.str7961) %t50 = load i32, ptr %t0 %t51 = call ptr @fn_itoa(i32 %t50) %t52 = call ptr @fn_str_concat(ptr @.str7962, ptr %t51) %t53 = call ptr @fn_str_concat(ptr %t52, ptr @.str7963) call void @fn_emit(ptr %t53) %t54 = call ptr @fn_emit_bind(ptr @.str7964) store ptr %t54, ptr %t55 %t56 = load ptr, ptr %t55 %t57 = call ptr @fn_str_concat(ptr @.str7965, ptr %t56) %t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str7966) %t59 = call ptr @fn_emit_bind(ptr %t58) store ptr %t59, ptr %t60 %t61 = call ptr @fn_lbl(ptr @.str7967) store ptr %t61, ptr %t62 %t63 = call ptr @fn_lbl(ptr @.str7968) store ptr %t63, ptr %t64 %t65 = call ptr @fn_lbl(ptr @.str7969) store ptr %t65, ptr %t66 %t67 = load ptr, ptr %t60 %t68 = call ptr @fn_str_concat(ptr @.str7970, ptr %t67) %t69 = call ptr @fn_str_concat(ptr %t68, ptr @.str7971) %t70 = load ptr, ptr %t64 %t71 = call ptr @fn_str_concat(ptr %t69, ptr %t70) %t72 = call ptr @fn_str_concat(ptr %t71, ptr @.str7972) %t73 = load ptr, ptr %t62 %t74 = call ptr @fn_str_concat(ptr %t72, ptr %t73) %t75 = call ptr @fn_str_concat(ptr %t74, ptr @.str7973) call void @fn_emit(ptr %t75) %t76 = load ptr, ptr %t62 %t77 = call ptr @fn_str_concat(ptr %t76, ptr @.str7974) call void @fn_emit(ptr %t77) %t78 = load ptr, ptr %t38 %t79 = call ptr @fn_str_concat(ptr @.str7975, ptr %t78) %t80 = call ptr @fn_str_concat(ptr %t79, ptr @.str7976) call void @fn_emit(ptr %t80) %t81 = load ptr, ptr %t66 %t82 = call ptr @fn_str_concat(ptr @.str7977, ptr %t81) %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str7978) call void @fn_emit(ptr %t83) %t84 = load ptr, ptr %t64 %t85 = call ptr @fn_str_concat(ptr %t84, ptr @.str7979) call void @fn_emit(ptr %t85) %t86 = call ptr @fn_emit_bind(ptr @.str7980) store ptr %t86, ptr %t87 %t88 = load ptr, ptr %t87 %t89 = call ptr @fn_str_concat(ptr @.str7981, ptr %t88) %t90 = call ptr @fn_str_concat(ptr %t89, ptr @.str7982) %t91 = call ptr @fn_emit_bind(ptr %t90) store ptr %t91, ptr %t92 %t93 = load ptr, ptr %t92 %t94 = call ptr @fn_str_concat(ptr @.str7983, ptr %t93) %t95 = call ptr @fn_str_concat(ptr %t94, ptr @.str7984) call void @fn_emit(ptr %t95) %t96 = load ptr, ptr %t49 %t97 = call ptr @fn_str_concat(ptr @.str7985, ptr %t96) %t98 = call ptr @fn_str_concat(ptr %t97, ptr @.str7986) call void @fn_emit(ptr %t98) %t99 = load ptr, ptr %t66 %t100 = call ptr @fn_str_concat(ptr @.str7987, ptr %t99) %t101 = call ptr @fn_str_concat(ptr %t100, ptr @.str7988) call void @fn_emit(ptr %t101) %t102 = load ptr, ptr %t66 %t103 = call ptr @fn_str_concat(ptr %t102, ptr @.str7989) call void @fn_emit(ptr %t103) %t104 = load i32, ptr %t0 %t105 = add i32 %t104, 1 store i32 %t105, ptr %t0 br label %wcond9 wend11: %t106 = call ptr @fn_emit_bind(ptr @.str7990) store ptr %t106, ptr %t107 %t108 = load ptr, ptr @g_g_tests %t109 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1 %t110 = load i32, ptr %t109 %t111 = call ptr @fn_itoa(i32 %t110) %t112 = call ptr @fn_str_concat(ptr @.str7991, ptr %t111) %t113 = call ptr @fn_str_concat(ptr %t112, ptr @.str7992) %t114 = load ptr, ptr %t107 %t115 = call ptr @fn_str_concat(ptr %t113, ptr %t114) %t116 = call ptr @fn_emit_bind(ptr %t115) store ptr %t116, ptr %t117 %t118 = load ptr, ptr %t117 %t119 = call ptr @fn_str_concat(ptr @.str7993, ptr %t118) %t120 = call ptr @fn_str_concat(ptr %t119, ptr @.str7994) %t121 = load ptr, ptr %t107 %t122 = call ptr @fn_str_concat(ptr %t120, ptr %t121) %t123 = call ptr @fn_str_concat(ptr %t122, ptr @.str7995) call void @fn_emit(ptr %t123) %t124 = load ptr, ptr %t107 %t125 = call ptr @fn_str_concat(ptr @.str7996, ptr %t124) %t126 = call ptr @fn_str_concat(ptr %t125, ptr @.str7997) %t127 = call ptr @fn_emit_bind(ptr %t126) store ptr %t127, ptr %t128 %t129 = load ptr, ptr %t128 %t130 = call ptr @fn_str_concat(ptr @.str7998, ptr %t129) %t131 = call ptr @fn_str_concat(ptr %t130, ptr @.str7999) %t132 = call ptr @fn_emit_bind(ptr %t131) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t133 %t135 = call ptr @fn_str_concat(ptr @.str8000, ptr %t134) %t136 = call ptr @fn_str_concat(ptr %t135, ptr @.str8001) call void @fn_emit(ptr %t136) br label %ret ret: ret void } define void @fn_emit_program() { entry: %t52 = alloca i32 %t85 = alloca i32 %t89 = alloca i32 %t90 = alloca i32 %t126 = alloca i32 %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_strslice store i32 0, ptr @g_g_uses_loopback store i32 0, ptr @g_g_uses_expect %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_loc_name %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_loc_reg %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_loc_ty %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_mut %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_brk_lbl %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_cnt_lbl %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_self_stk %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_mach_stk call void @fn_emit_header() call void @fn_emit_extern_decls() %t50 = call i32 @fn_has_ecs() %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then0, label %ifend2 then0: call void @fn_emit_ecs_storage() br label %ifend2 ifend2: store i32 0, ptr %t52 br label %wcond3 wcond3: %t53 = load i32, ptr %t52 %t54 = load ptr, ptr @g_prog %t55 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 1 %t56 = load i32, ptr %t55 %t57 = icmp slt i32 %t53, %t56 %t58 = zext i1 %t57 to i32 %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %wbody4, label %wend5 wbody4: %t60 = load ptr, ptr @g_prog %t61 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = load i32, ptr %t52 %t64 = getelementptr inbounds ptr, ptr %t62, i32 %t63 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 0 %t67 = load i32, ptr %t66 %t68 = icmp eq i32 %t67, 4 %t69 = zext i1 %t68 to i32 %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then6, label %ifend8 then6: %t71 = load ptr, ptr @g_prog %t72 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0 %t73 = load ptr, ptr %t72 %t74 = load i32, ptr %t52 %t75 = getelementptr inbounds ptr, ptr %t73, i32 %t74 %t76 = load ptr, ptr %t75 call void @fn_emit_fn(ptr %t76) br label %ifend8 ifend8: %t77 = load i32, ptr %t52 %t78 = add i32 %t77, 1 store i32 %t78, ptr %t52 br label %wcond3 wend5: %t79 = load ptr, ptr @g_g_events %t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 1 %t81 = load i32, ptr %t80 %t82 = icmp sgt i32 %t81, 0 %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then9, label %ifend11 then9: call void @fn_emit_event_fns() br label %ifend11 ifend11: %t86 = call i32 @fn_has_ecs() %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t85 br i1 %t87, label %sc12, label %scend13 sc12: %t91 = load ptr, ptr @g_g_events %t92 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 1 %t93 = load i32, ptr %t92 %t94 = icmp sgt 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 %t90 br i1 %t96, label %scend15, label %sc14 sc14: %t98 = load i32, ptr @g_g_uses_query %t99 = icmp ne i32 %t98, 0 %t100 = zext i1 %t99 to i32 store i32 %t100, ptr %t90 br label %scend15 scend15: %t101 = load i32, ptr %t90 %t102 = icmp ne i32 %t101, 0 %t103 = zext i1 %t102 to i32 store i32 %t103, ptr %t89 br i1 %t102, label %scend17, label %sc16 sc16: %t104 = load i32, ptr @g_g_uses_reflect %t105 = icmp ne i32 %t104, 0 %t106 = zext i1 %t105 to i32 store i32 %t106, ptr %t89 br label %scend17 scend17: %t107 = load i32, ptr %t89 %t108 = icmp ne i32 %t107, 0 %t109 = zext i1 %t108 to i32 store i32 %t109, ptr %t85 br label %scend13 scend13: %t110 = load i32, ptr %t85 %t111 = icmp ne i32 %t110, 0 br i1 %t111, label %then18, label %ifend20 then18: call void @fn_emit_world_table() br label %ifend20 ifend20: %t112 = call i32 @fn_has_ecs() %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then21, label %ifend23 then21: call void @fn_emit_ecs_allocator() call void @fn_emit_snapshot() br label %ifend23 ifend23: %t114 = call i32 @fn_has_ecs() %t115 = icmp ne i32 %t114, 0 br i1 %t115, label %then24, label %ifend26 then24: call void @fn_emit_net() br label %ifend26 ifend26: %t116 = call i32 @fn_has_ui() %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then27, label %ifend29 then27: call void @fn_emit_ui_build() br label %ifend29 ifend29: %t118 = load ptr, ptr @g_g_tests %t119 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 1 %t120 = load i32, ptr %t119 %t121 = icmp sgt i32 %t120, 0 %t122 = zext i1 %t121 to i32 %t123 = icmp ne i32 %t122, 0 br i1 %t123, label %then30, label %else31 then30: %t124 = call i32 @fn_has_systems() %t125 = icmp ne i32 %t124, 0 br i1 %t125, label %then33, label %ifend35 then33: call void @fn_emit_game_defs() br label %ifend35 ifend35: call void @fn_emit_test_runner() br label %ifend32 else31: %t127 = call i32 @fn_has_systems() %t128 = icmp ne i32 %t127, 0 %t129 = zext i1 %t128 to i32 store i32 %t129, ptr %t126 br i1 %t128, label %sc36, label %scend37 sc36: %t130 = call i32 @fn_has_entry() %t131 = icmp ne i32 %t130, 0 %t132 = zext i1 %t131 to i32 store i32 %t132, ptr %t126 br label %scend37 scend37: %t133 = load i32, ptr %t126 %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then38, label %else39 then38: call void @fn_emit_game_defs() store i32 0, ptr %t52 br label %wcond41 wcond41: %t135 = load i32, ptr %t52 %t136 = load ptr, ptr @g_prog %t137 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 1 %t138 = load i32, ptr %t137 %t139 = icmp slt i32 %t135, %t138 %t140 = zext i1 %t139 to i32 %t141 = icmp ne i32 %t140, 0 br i1 %t141, label %wbody42, label %wend43 wbody42: %t142 = load ptr, ptr @g_prog %t143 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 0 %t144 = load ptr, ptr %t143 %t145 = load i32, ptr %t52 %t146 = getelementptr inbounds ptr, ptr %t144, i32 %t145 %t147 = load ptr, ptr %t146 %t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 0 %t149 = load i32, ptr %t148 %t150 = icmp eq i32 %t149, 6 %t151 = zext i1 %t150 to i32 %t152 = icmp ne i32 %t151, 0 br i1 %t152, label %then44, label %ifend46 then44: %t153 = load ptr, ptr @g_prog %t154 = getelementptr inbounds %LSlice, ptr %t153, i32 0, i32 0 %t155 = load ptr, ptr %t154 %t156 = load i32, ptr %t52 %t157 = getelementptr inbounds ptr, ptr %t155, i32 %t156 %t158 = load ptr, ptr %t157 call void @fn_emit_main(ptr %t158) br label %ifend46 ifend46: %t159 = load i32, ptr %t52 %t160 = add i32 %t159, 1 store i32 %t160, ptr %t52 br label %wcond41 wend43: br label %ifend40 else39: %t161 = call i32 @fn_has_systems() %t162 = icmp ne i32 %t161, 0 br i1 %t162, label %then47, label %else48 then47: call void @fn_emit_game_main() br label %ifend49 else48: store i32 0, ptr %t52 br label %wcond50 wcond50: %t163 = load i32, ptr %t52 %t164 = load ptr, ptr @g_prog %t165 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 1 %t166 = load i32, ptr %t165 %t167 = icmp slt i32 %t163, %t166 %t168 = zext i1 %t167 to i32 %t169 = icmp ne i32 %t168, 0 br i1 %t169, label %wbody51, label %wend52 wbody51: %t170 = load ptr, ptr @g_prog %t171 = getelementptr inbounds %LSlice, ptr %t170, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = load i32, ptr %t52 %t174 = getelementptr inbounds ptr, ptr %t172, i32 %t173 %t175 = load ptr, ptr %t174 %t176 = getelementptr inbounds %Cmp_Node, ptr %t175, i32 0, i32 0 %t177 = load i32, ptr %t176 %t178 = icmp eq i32 %t177, 6 %t179 = zext i1 %t178 to i32 %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then53, label %ifend55 then53: %t181 = load ptr, ptr @g_prog %t182 = getelementptr inbounds %LSlice, ptr %t181, i32 0, i32 0 %t183 = load ptr, ptr %t182 %t184 = load i32, ptr %t52 %t185 = getelementptr inbounds ptr, ptr %t183, i32 %t184 %t186 = load ptr, ptr %t185 call void @fn_emit_main(ptr %t186) br label %ifend55 ifend55: %t187 = load i32, ptr %t52 %t188 = add i32 %t187, 1 store i32 %t188, ptr %t52 br label %wcond50 wend52: br label %ifend49 ifend49: br label %ifend40 ifend40: br label %ifend32 ifend32: %t189 = load i32, ptr @g_g_uses_loopback %t190 = icmp ne i32 %t189, 0 br i1 %t190, label %then56, label %ifend58 then56: call void @fn_emit_loopback() br label %ifend58 ifend58: %t191 = load i32, ptr @g_g_uses_str %t192 = icmp ne i32 %t191, 0 br i1 %t192, label %then59, label %ifend61 then59: call void @fn_emit_str_prelude() br label %ifend61 ifend61: %t193 = load i32, ptr @g_g_uses_intstr %t194 = icmp ne i32 %t193, 0 br i1 %t194, label %then62, label %ifend64 then62: call void @fn_emit_int_str() br label %ifend64 ifend64: %t195 = load i32, ptr @g_g_uses_longstr %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %then65, label %ifend67 then65: call void @fn_emit_long_str() br label %ifend67 ifend67: %t197 = load i32, ptr @g_g_uses_strslice %t198 = icmp ne i32 %t197, 0 br i1 %t198, label %then68, label %ifend70 then68: call void @fn_emit_str_slice() br label %ifend70 ifend70: %t199 = load i32, ptr @g_g_uses_mathrt %t200 = icmp ne i32 %t199, 0 br i1 %t200, label %then71, label %ifend73 then71: call void @fn_emit_math_prelude() br label %ifend73 ifend73: %t201 = load i32, ptr @g_g_uses_textrt %t202 = icmp ne i32 %t201, 0 br i1 %t202, label %then74, label %ifend76 then74: call void @fn_emit_text_prelude() br label %ifend76 ifend76: %t203 = load i32, ptr @g_g_uses_textrt2 %t204 = icmp ne i32 %t203, 0 br i1 %t204, label %then77, label %ifend79 then77: call void @fn_emit_text2_prelude() br label %ifend79 ifend79: %t205 = load i32, ptr @g_g_uses_hashrt %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then80, label %ifend82 then80: call void @fn_emit_hash_prelude() br label %ifend82 ifend82: %t207 = load i32, ptr @g_g_uses_cryptort %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %then83, label %ifend85 then83: call void @fn_emit_crypto_prelude() br label %ifend85 ifend85: %t209 = load i32, ptr @g_g_uses_uuidrt %t210 = icmp ne i32 %t209, 0 br i1 %t210, label %then86, label %ifend88 then86: call void @fn_emit_uuid_prelude() br label %ifend88 ifend88: %t211 = load i32, ptr @g_g_uses_noisert %t212 = icmp ne i32 %t211, 0 br i1 %t212, label %then89, label %ifend91 then89: call void @fn_emit_noise_prelude() br label %ifend91 ifend91: %t213 = load i32, ptr @g_g_uses_logrt %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %then92, label %ifend94 then92: call void @fn_emit_log_prelude() br label %ifend94 ifend94: %t215 = load i32, ptr @g_g_uses_osrt %t216 = icmp ne i32 %t215, 0 br i1 %t216, label %then95, label %ifend97 then95: call void @fn_emit_os_prelude() br label %ifend97 ifend97: %t217 = load i32, ptr @g_g_uses_unicodert %t218 = icmp ne i32 %t217, 0 br i1 %t218, label %then98, label %ifend100 then98: call void @fn_emit_unicode_prelude() br label %ifend100 ifend100: %t219 = load i32, ptr @g_g_uses_fsrt %t220 = icmp ne i32 %t219, 0 br i1 %t220, label %then101, label %ifend103 then101: call void @fn_emit_fs_prelude() br label %ifend103 ifend103: %t221 = load i32, ptr @g_g_uses_datert %t222 = icmp ne i32 %t221, 0 br i1 %t222, label %then104, label %ifend106 then104: call void @fn_emit_datetime_prelude() br label %ifend106 ifend106: 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 @fopen(ptr %t29, ptr @.str8002) 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 = icmp eq i32 %t16, 47 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then3, label %ifend5 then3: %t20 = load i32, ptr %t3 store i32 %t20, ptr %t2 br label %ifend5 ifend5: %t21 = load i32, ptr %t3 %t22 = add i32 %t21, 1 store i32 %t22, ptr %t3 br label %wcond0 wend2: %t23 = load ptr, ptr %t0 %t24 = load i32, ptr %t2 %t25 = add i32 %t24, 1 %t26 = load i32, ptr %t3 %t27 = call ptr @fn_str_slice(ptr %t23, i32 %t25, i32 %t26) store ptr %t27, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval ret ptr %t28 } 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 @fn_str_slice(ptr %t9, i32 %t11, i32 %t12) %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str8003) %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 @fn_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 @fn_str_concat(ptr %t20, ptr @.str8004) 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 @fn_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 void @fn_show_version() { entry: %t6 = alloca ptr %t10 = alloca ptr %t0 = load ptr, ptr @L_argv %t1 = getelementptr ptr, ptr %t0, i32 0 %t2 = load ptr, ptr %t1 %t3 = call ptr @fn_dir_of(ptr %t2) %t4 = call ptr @fn_getenv_or(ptr @.str8005, ptr %t3) %t5 = call ptr @fn_ensure_slash(ptr %t4) store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 %t8 = call ptr @fn_path_join(ptr %t7, ptr @.str8006) %t9 = call ptr @fn_read_file(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 %else1 then0: call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr @.str8007) br label %ifend2 else1: %t15 = load ptr, ptr %t10 %t16 = call ptr @fn_chomp(ptr %t15) %t17 = call ptr @fn_str_concat(ptr @.str8008, ptr %t16) call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr %t17) br label %ifend2 ifend2: call void @exit(i32 0) unreachable ret: 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 %t13 = alloca i32 %t23 = alloca ptr %t69 = alloca ptr %t87 = alloca ptr %t99 = alloca i32 %t109 = alloca i32 %t118 = alloca i32 %t135 = alloca i32 %t152 = alloca ptr %t164 = alloca ptr %t171 = alloca ptr %t178 = alloca ptr %t183 = alloca ptr %t188 = alloca ptr %t200 = alloca i32 %t216 = alloca i32 store i32 %argc, ptr @L_argc store ptr %argv, ptr @L_argv store i32 0, ptr %retval 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 %t7 = load ptr, ptr @L_argv %t8 = getelementptr ptr, ptr %t7, i32 0 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_base_name(ptr %t9) %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str8009) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: store i32 1, ptr %t6 br label %ifend2 ifend2: store i32 1, ptr %t13 br label %wcond3 wcond3: %t14 = load i32, ptr %t13 %t15 = load i32, ptr @L_argc %t16 = icmp slt i32 %t14, %t15 %t17 = zext i1 %t16 to i32 %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %wbody4, label %wend5 wbody4: %t19 = load i32, ptr %t13 %t20 = load ptr, ptr @L_argv %t21 = getelementptr ptr, ptr %t20, i32 %t19 %t22 = load ptr, ptr %t21 store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 %t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str8010) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %else7 then6: call void @fn_show_version() br label %ifend8 else7: %t27 = load ptr, ptr %t23 %t28 = call i32 @fn_str_eq(ptr %t27, ptr @.str8011) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then9, label %else10 then9: store i32 1, ptr %t2 br label %ifend11 else10: %t30 = load ptr, ptr %t23 %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str8012) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then12, label %else13 then12: store i32 2, ptr %t2 br label %ifend14 else13: %t33 = load ptr, ptr %t23 %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str8013) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then15, label %else16 then15: store i32 1, ptr %t3 br label %ifend17 else16: %t36 = load ptr, ptr %t23 %t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str8014) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then18, label %else19 then18: store i32 1, ptr %t4 br label %ifend20 else19: %t39 = load ptr, ptr %t23 %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str8015) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then21, label %else22 then21: store i32 1, ptr %t5 br label %ifend23 else22: %t42 = load ptr, ptr %t23 %t43 = call i32 @fn_str_eq(ptr %t42, ptr @.str8016) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then24, label %else25 then24: store i32 1, ptr %t6 br label %ifend26 else25: %t45 = load ptr, ptr %t23 %t46 = call i32 @fn_str_eq(ptr %t45, ptr @.str8017) %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %then27, label %else28 then27: %t48 = load i32, ptr %t13 %t49 = add i32 %t48, 1 store i32 %t49, ptr %t13 %t50 = load i32, ptr %t13 %t51 = load i32, ptr @L_argc %t52 = icmp slt i32 %t50, %t51 %t53 = zext i1 %t52 to i32 %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then30, label %ifend32 then30: %t55 = load i32, ptr %t13 %t56 = load ptr, ptr @L_argv %t57 = getelementptr ptr, ptr %t56, i32 %t55 %t58 = load ptr, ptr %t57 store ptr %t58, ptr %t1 br label %ifend32 ifend32: br label %ifend29 else28: %t59 = load ptr, ptr %t23 %t60 = getelementptr inbounds i8, ptr %t59, i32 0 %t61 = load i8, ptr %t60 %t62 = zext i8 %t61 to i32 %t63 = icmp eq i32 %t62, 45 %t64 = zext i1 %t63 to i32 %t65 = icmp ne i32 %t64, 0 br i1 %t65, label %then33, label %else34 then33: %t66 = load ptr, ptr %t23 %t67 = call ptr @fn_str_concat(ptr @.str8018, ptr %t66) %t68 = call ptr @fn_str_concat(ptr %t67, ptr @.str8019) store ptr %t68, ptr %t69 %t70 = load ptr, ptr @__stderrp %t71 = load ptr, ptr %t69 %t72 = load ptr, ptr %t69 %t73 = call i64 @strlen(ptr %t72) %t74 = trunc i64 %t73 to i32 %t75 = zext i32 %t74 to i64 %t76 = call i64 @fwrite(ptr %t71, i64 1, i64 %t75, ptr %t70) %t77 = trunc i64 %t76 to i32 br label %ifend35 else34: %t78 = load ptr, ptr %t23 store ptr %t78, ptr %t0 br label %ifend35 ifend35: 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: %t79 = load i32, ptr %t13 %t80 = add i32 %t79, 1 store i32 %t80, ptr %t13 br label %wcond3 wend5: %t81 = load ptr, ptr %t0 %t82 = icmp eq ptr %t81, null %t83 = zext i1 %t82 to i32 %t84 = icmp ne i32 %t83, 0 br i1 %t84, label %then36, label %ifend38 then36: call void @fn_die(ptr @.str8020) br label %ifend38 ifend38: %t85 = load ptr, ptr %t0 %t86 = call ptr @fn_read_file(ptr %t85) store ptr %t86, ptr %t87 %t88 = load ptr, ptr %t87 %t89 = icmp eq ptr %t88, null %t90 = zext i1 %t89 to i32 %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then39, label %ifend41 then39: call void @fn_die(ptr @.str8021) br label %ifend41 ifend41: %t92 = load ptr, ptr %t0 %t93 = call ptr @fn_dir_of(ptr %t92) store ptr %t93, ptr @g_cur_dir %t94 = load ptr, ptr %t0 %t95 = call ptr @fn_base_name(ptr %t94) store ptr %t95, ptr @g_g_src_name %t96 = load ptr, ptr %t87 call void @fn_lex(ptr %t96) call void @fn_parse_program() %t97 = load i32, ptr %t4 %t98 = icmp ne i32 %t97, 0 br i1 %t98, label %then42, label %ifend44 then42: call void @exit(i32 0) unreachable ifend44: call void @fn_maybe_splice_runtime() %t100 = load i32, ptr %t6 %t101 = icmp ne i32 %t100, 0 %t102 = zext i1 %t101 to i32 store i32 %t102, ptr %t99 br i1 %t101, label %scend46, label %sc45 sc45: %t103 = load ptr, ptr %t1 %t104 = icmp ne ptr %t103, null %t105 = zext i1 %t104 to i32 %t106 = icmp ne i32 %t105, 0 %t107 = zext i1 %t106 to i32 store i32 %t107, ptr %t99 br label %scend46 scend46: %t108 = load i32, ptr %t99 store i32 %t108, ptr %t109 %t110 = load i32, ptr %t2 %t111 = icmp eq i32 %t110, 1 %t112 = zext i1 %t111 to i32 %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %then47, label %else48 then47: store i32 1, ptr @g_g_windowed br label %ifend49 else48: %t114 = load i32, ptr %t2 %t115 = icmp eq i32 %t114, 2 %t116 = zext i1 %t115 to i32 %t117 = icmp ne i32 %t116, 0 br i1 %t117, label %then50, label %else51 then50: store i32 0, ptr @g_g_windowed br label %ifend52 else51: %t119 = load i32, ptr %t109 %t120 = icmp ne i32 %t119, 0 %t121 = zext i1 %t120 to i32 store i32 %t121, ptr %t118 br i1 %t120, label %sc53, label %scend54 sc53: %t122 = call i32 @fn_has_systems() %t123 = icmp ne i32 %t122, 0 %t124 = zext i1 %t123 to i32 store i32 %t124, ptr %t118 br label %scend54 scend54: %t125 = load i32, ptr %t118 store i32 %t125, ptr @g_g_windowed br label %ifend52 ifend52: br label %ifend49 ifend49: call void @fn_emit_program() %t126 = load i32, ptr %t3 %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then55, label %ifend57 then55: %t128 = load ptr, ptr %t1 %t129 = call i32 @fn_ir_flush(ptr %t128) br label %ret ifend57: %t130 = load i32, ptr %t109 %t131 = icmp eq i32 %t130, 0 %t132 = zext i1 %t131 to i32 %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then58, label %ifend60 then58: %t134 = call i32 @fn_ir_flush(ptr null) br label %ret ifend60: %t136 = load i32, ptr %t6 %t137 = icmp ne i32 %t136, 0 %t138 = zext i1 %t137 to i32 store i32 %t138, ptr %t135 br i1 %t137, label %sc61, label %scend62 sc61: %t139 = load ptr, ptr %t1 %t140 = icmp eq ptr %t139, null %t141 = zext i1 %t140 to i32 %t142 = icmp ne i32 %t141, 0 %t143 = zext i1 %t142 to i32 store i32 %t143, ptr %t135 br label %scend62 scend62: %t144 = load i32, ptr %t135 %t145 = icmp ne i32 %t144, 0 br i1 %t145, label %then63, label %ifend65 then63: %t146 = load ptr, ptr %t0 %t147 = call ptr @fn_base_name(ptr %t146) %t148 = call ptr @fn_strip_ludic(ptr %t147) %t149 = call ptr @fn_str_concat(ptr @.str8022, ptr %t148) store ptr %t149, ptr %t1 br label %ifend65 ifend65: %t150 = load ptr, ptr %t1 %t151 = call ptr @fn_dir_of(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t152 %t154 = call i64 @strlen(ptr %t153) %t155 = trunc i64 %t154 to i32 %t156 = icmp sgt i32 %t155, 0 %t157 = zext i1 %t156 to i32 %t158 = icmp ne i32 %t157, 0 br i1 %t158, label %then66, label %ifend68 then66: %t159 = load ptr, ptr %t152 %t160 = call ptr @fn_str_concat(ptr @.str8023, ptr %t159) %t161 = call i32 @system(ptr %t160) br label %ifend68 ifend68: %t162 = load ptr, ptr %t1 %t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str8024) store ptr %t163, ptr %t164 %t165 = load ptr, ptr %t164 %t166 = call i32 @fn_ir_flush(ptr %t165) %t167 = icmp eq i32 %t166, 0 %t168 = zext i1 %t167 to i32 %t169 = icmp ne i32 %t168, 0 br i1 %t169, label %then69, label %ifend71 then69: call void @fn_die(ptr @.str8025) br label %ifend71 ifend71: %t170 = call ptr @fn_getenv_or(ptr @.str8026, ptr @.str8027) store ptr %t170, ptr %t171 %t172 = load ptr, ptr @L_argv %t173 = getelementptr ptr, ptr %t172, i32 0 %t174 = load ptr, ptr %t173 %t175 = call ptr @fn_dir_of(ptr %t174) %t176 = call ptr @fn_getenv_or(ptr @.str8028, ptr %t175) %t177 = call ptr @fn_ensure_slash(ptr %t176) store ptr %t177, ptr %t178 %t179 = load ptr, ptr %t171 %t180 = call ptr @fn_str_concat(ptr %t179, ptr @.str8029) %t181 = load ptr, ptr %t164 %t182 = call ptr @fn_str_concat(ptr %t180, ptr %t181) store ptr %t182, ptr %t183 %t184 = load i32, ptr @g_g_windowed %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then72, label %ifend74 then72: %t186 = load ptr, ptr %t178 %t187 = call ptr @fn_path_join(ptr %t186, ptr @.str8030) store ptr %t187, ptr %t188 %t189 = load ptr, ptr %t183 %t190 = call ptr @fn_str_concat(ptr %t189, ptr @.str8031) %t191 = load ptr, ptr %t188 %t192 = call ptr @fn_str_concat(ptr %t190, ptr %t191) %t193 = call ptr @fn_str_concat(ptr %t192, ptr @.str8032) store ptr %t193, ptr %t183 br label %ifend74 ifend74: %t194 = load ptr, ptr %t183 %t195 = call ptr @fn_str_concat(ptr %t194, ptr @.str8033) %t196 = load ptr, ptr %t1 %t197 = call ptr @fn_str_concat(ptr %t195, ptr %t196) store ptr %t197, ptr %t183 %t198 = load ptr, ptr %t183 %t199 = call i32 @system(ptr %t198) store i32 %t199, ptr %t200 %t201 = load i32, ptr %t5 %t202 = icmp eq i32 %t201, 0 %t203 = zext i1 %t202 to i32 %t204 = icmp ne i32 %t203, 0 br i1 %t204, label %then75, label %ifend77 then75: %t205 = load ptr, ptr %t164 %t206 = call ptr @fn_str_concat(ptr @.str8034, ptr %t205) %t207 = call i32 @system(ptr %t206) br label %ifend77 ifend77: %t208 = load i32, ptr %t200 %t209 = icmp ne i32 %t208, 0 %t210 = zext i1 %t209 to i32 %t211 = icmp ne i32 %t210, 0 br i1 %t211, label %then78, label %ifend80 then78: call void @fn_die(ptr @.str8035) br label %ifend80 ifend80: %t212 = load i32, ptr %t6 %t213 = icmp ne i32 %t212, 0 br i1 %t213, label %then81, label %ifend83 then81: %t214 = load ptr, ptr %t1 %t215 = call i32 @system(ptr %t214) store i32 %t215, ptr %t216 %t217 = load i32, ptr %t216 %t218 = lshr i32 %t217, 8 %t219 = and i32 %t218, 255 call void @exit(i32 %t219) unreachable ifend83: br label %ret ret: %t220 = load i32, ptr %retval ret i32 %t220 }