Skip to content

Instantly share code, notes, and snippets.

@yiannist
Created September 17, 2012 16:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yiannist/3738404 to your computer and use it in GitHub Desktop.
Save yiannist/3738404 to your computer and use it in GitHub Desktop.
Label address (taken with blockaddress) not exported to .s
define {i64, i64, i64} @zip.get_cd_loop.5(i64 %hp_in, i64 %p_in, i64 %v19, i64 %v20, i64 %v21, i64 %v22, i64 %v23) nounwind noredzone {
Entry:
%exception_sync = alloca double
%hp_reg_var = alloca i64
store i64 %hp_in, i64* %hp_reg_var
%p_reg_var = alloca i64
store i64 %p_in, i64* %p_reg_var
%vr23 = alloca i64
%vr22 = alloca i64
%vr21 = alloca i64
%vr20 = alloca i64
%vr19 = alloca i64
%vr259 = alloca i64
%vr258 = alloca i64
%vr171 = alloca i64
%vr170 = alloca i64
store i64 -5, i64* %vr170
%vr169 = alloca i64
%vr132 = alloca i64
%vr131 = alloca i64
%vr130 = alloca i64
store i64 -5, i64* %vr130
%vr129 = alloca i64
%vr124 = alloca i64
%vr123 = alloca i64
store i64 -5, i64* %vr123
%vr122 = alloca i64
%vr117 = alloca i64
%vr116 = alloca i64
%vr115 = alloca i64
%vr114 = alloca i64
%vr112 = alloca i64
%vr111 = alloca i64
%vr108 = alloca i64
store i64 -5, i64* %vr108
%vr107 = alloca i64
%t21 = bitcast i64* %vr107 to i8**
store i64 -5, i64* %vr107
%vr106 = alloca i64
store i64 -5, i64* %vr106
%vr105 = alloca i64
%vr104 = alloca i64
store i64 -5, i64* %vr104
%vr103 = alloca i64
%vr101 = alloca i64
%vr100 = alloca i64
%vr98 = alloca i64
store i64 -5, i64* %vr98
%vr97 = alloca i64
%vr94 = alloca i64
store i64 -5, i64* %vr94
%vr93 = alloca i64
%vr92 = alloca i64
store i64 -5, i64* %vr92
%vr90 = alloca i64
%vr89 = alloca i64
%vr87 = alloca i64
store i64 -5, i64* %vr87
%vr86 = alloca i64
store i64 -5, i64* %vr86
%vr85 = alloca i64
store i64 -5, i64* %vr85
%vr84 = alloca i64
store i64 -5, i64* %vr84
%vr77 = alloca i64
%vr73 = alloca i64
%vr72 = alloca i64
%vr71 = alloca i64
%vr69 = alloca i64
%vr59 = alloca i64
%vr53 = alloca i64
%vr44 = alloca i64
%vr43 = alloca i64
store i64 -5, i64* %vr43
%vr42 = alloca i64
store i64 -5, i64* %vr42
%vr40 = alloca i64
%vr39 = alloca i64
%vr37 = alloca i64
store i64 -5, i64* %vr37
%vr36 = alloca i64
%vr33 = alloca i64
%vr32 = alloca i64
store i64 -5, i64* %vr32
%vr31 = alloca i64
store i64 -5, i64* %vr31
%vr30 = alloca i64
store i64 -5, i64* %vr30
%vr29 = alloca i64
store i64 -5, i64* %vr29
%vr28 = alloca i64
%vr27 = alloca i64
%vr26 = alloca i64
store i64 -5, i64* %vr26
%vr25 = alloca i64
store i64 -5, i64* %vr25
%vr24 = alloca i64
%r189 = alloca i64
%r179 = alloca i64
%r178 = alloca i64
%r177 = alloca i64
%r176 = alloca i64
%r175 = alloca i64
%r174 = alloca i64
%r173 = alloca i64
%r172 = alloca i64
%r168 = alloca i64
%r167 = alloca i64
%r166 = alloca i64
%r165 = alloca i64
%r164 = alloca i64
%r163 = alloca i64
%r162 = alloca i64
%r161 = alloca i64
%r160 = alloca i64
%r159 = alloca i64
%r158 = alloca i64
%r157 = alloca i64
%r156 = alloca i64
%r155 = alloca i64
%r154 = alloca i64
%r153 = alloca i64
%r152 = alloca i64
%r151 = alloca i64
%r150 = alloca i64
%r149 = alloca i64
%r146 = alloca i64
%r145 = alloca i64
%r144 = alloca i64
%r143 = alloca i64
%r142 = alloca i64
%r141 = alloca i64
%r140 = alloca i64
%r139 = alloca i64
%r138 = alloca i64
%r137 = alloca i64
%r136 = alloca i64
%r135 = alloca i64
%r134 = alloca i64
%r133 = alloca i64
%r128 = alloca i64
%r127 = alloca i64
%r126 = alloca i64
%r125 = alloca i64
%r121 = alloca i64
%r120 = alloca i64
%r119 = alloca i64
%r118 = alloca i64
%r110 = alloca i64
%r109 = alloca i64
%r102 = alloca i64
%r99 = alloca i64
%r96 = alloca i64
%r95 = alloca i64
%r91 = alloca i64
%r88 = alloca i64
%r83 = alloca i64
%r82 = alloca i64
%r81 = alloca i64
%r80 = alloca i64
%r79 = alloca i64
%r78 = alloca i64
%r76 = alloca i64
%r75 = alloca i64
%r74 = alloca i64
%r70 = alloca i64
%r68 = alloca i64
%r67 = alloca i64
%r66 = alloca i64
%r65 = alloca i64
%r64 = alloca i64
%r63 = alloca i64
%r62 = alloca i64
%r61 = alloca i64
%r60 = alloca i64
%r58 = alloca i64
%r57 = alloca i64
%r56 = alloca i64
%r55 = alloca i64
%r54 = alloca i64
%r52 = alloca i64
%r51 = alloca i64
%r50 = alloca i64
%r49 = alloca i64
%r48 = alloca i64
%r47 = alloca i64
%r46 = alloca i64
%r45 = alloca i64
%r41 = alloca i64
%r38 = alloca i64
%r35 = alloca i64
%r34 = alloca i64
%atom_badarity_var = ptrtoint i64* @atom_badarity to i64
%atom_bad_central_directory_var = ptrtoint i64* @atom_bad_central_directory to i64
%atom_read_var = ptrtoint i64* @atom_read to i64
%atom_badmatch_var = ptrtoint i64* @atom_badmatch to i64
%DL0_var = ptrtoint i8* @DL0 to i64
store i64 %v19, i64* %vr19
store i64 %v20, i64* %vr20
store i64 %v21, i64* %vr21
store i64 %v22, i64* %vr22
store i64 %v23, i64* %vr23
br label %L95
L95:
%t26 = load i64* %vr23
store i64 %t26, i64* %vr24
%t27 = load i64* %vr22
store i64 %t27, i64* %vr25
%t28 = load i64* %vr21
store i64 %t28, i64* %vr26
%t29 = load i64* %vr20
store i64 %t29, i64* %vr27
%t30 = load i64* %vr19
store i64 %t30, i64* %vr28
%t31 = load i64* %vr28
store i64 %t31, i64* %vr31
%t32 = load i64* %vr27
store i64 %t32, i64* %vr30
%t33 = load i64* %vr24
store i64 %t33, i64* %vr29
br label %L2
L2:
; get_fcalls
%t35 = load i64* %p_reg_var
%t36 = inttoptr i64 %t35 to i64*
%t37 = getelementptr inbounds i64* %t36, i64 30
%t38 = load i64* %t37
%t34 = sub i64 %t38, 1
%t39 = load i64* %p_reg_var
%t40 = inttoptr i64 %t39 to i64*
%t41 = getelementptr inbounds i64* %t40, i64 30
store i64 %t34, i64* %t41
%t42 = load i64* %p_reg_var
%t43 = inttoptr i64 %t42 to i64*
%t44 = getelementptr inbounds i64* %t43, i64 30
%t45 = load i64* %t44
%t46 = icmp slt i64 %t45, 0
br i1 %t46, label %L4, label %L6, !prof !1
L4:
%p49 = load i64* %p_reg_var
%hp48 = load i64* %hp_reg_var
%t50 = call {i64, i64, i64} @suspend_0(i64 %hp48, i64 %p49)
%p52 = extractvalue {i64, i64, i64} %t50, 1
%hp51 = extractvalue {i64, i64, i64} %t50, 0
store i64 %p52, i64* %p_reg_var
store i64 %hp51, i64* %hp_reg_var
br label %L6
L6:
%t53 = load i64* %vr31
%t54 = icmp eq i64 %t53, 15
br i1 %t54, label %L7, label %L8
L7:
%t56 = load i64* %vr29
store i64 -5, i64* %vr29
%p58 = load i64* %p_reg_var
%hp57 = load i64* %hp_reg_var
%t59 = call {i64, i64, i64} @lists.reverse.1(i64 %hp57, i64 %p58, i64 %t56)
%p61 = extractvalue {i64, i64, i64} %t59, 1
%hp60 = extractvalue {i64, i64, i64} %t59, 0
store i64 %p61, i64* %p_reg_var
store i64 %hp60, i64* %hp_reg_var
%t55 = extractvalue {i64, i64, i64} %t59, 2
store i64 %t55, i64* %vr32
; get_heap_pointer
; get_heap_limit
%t63 = load i64* %p_reg_var
%t64 = inttoptr i64 %t63 to i64*
%t65 = getelementptr inbounds i64* %t64, i64 1
%t66 = load i64* %t65
%t67 = load i64* %hp_reg_var
%t62 = sub i64 %t66, %t67
store i64 %t62, i64* %r172
%t68 = load i64* %r172
%t69 = icmp slt i64 %t68, 24
br i1 %t69, label %L115, label %L114, !prof !1
L115:
%p72 = load i64* %p_reg_var
%hp71 = load i64* %hp_reg_var
%t73 = call {i64, i64, i64} @gc_1(i64 %hp71, i64 %p72, i64 63)
%p75 = extractvalue {i64, i64, i64} %t73, 1
%hp74 = extractvalue {i64, i64, i64} %t73, 0
store i64 %p75, i64* %p_reg_var
store i64 %hp74, i64* %hp_reg_var
br label %L114
L114:
; get_heap_pointer
%t76 = load i64* %hp_reg_var
%t77 = add i64 %t76, 0
%t78 = inttoptr i64 %t77 to i64*
store i64 128, i64* %t78
%t79 = load i64* %hp_reg_var
%t80 = load i64* %vr32
store i64 -5, i64* %vr32
%t81 = add i64 %t79, 8
%t82 = inttoptr i64 %t81 to i64*
store i64 %t80, i64* %t82
%t83 = load i64* %hp_reg_var
%t84 = load i64* %vr30
store i64 -5, i64* %vr30
%t85 = add i64 %t83, 16
%t86 = inttoptr i64 %t85 to i64*
store i64 %t84, i64* %t86
%t88 = load i64* %hp_reg_var
%t87 = add i64 %t88, 2
store i64 %t87, i64* %vr33
%t90 = load i64* %hp_reg_var
%t89 = add i64 %t90, 24
store i64 %t89, i64* %hp_reg_var
; put_heap_pointer
%t91 = load i64* %vr33
%p93 = load i64* %p_reg_var
%hp92 = load i64* %hp_reg_var
%t94 = insertvalue {i64, i64, i64} undef, i64 %hp92, 0
%t95 = insertvalue {i64, i64, i64} %t94, i64 %p93, 1
%t96 = insertvalue {i64, i64, i64} %t95, i64 %t91, 2
ret {i64, i64, i64} %t96
L8:
%t98 = load i64* %vr25
%t97 = and i64 %t98, 1
store i64 %t97, i64* %r34
%t99 = load i64* %r34
%t100 = icmp eq i64 %t99, 0
br i1 %t100, label %L18, label %L13, !prof !0
L18:
%t102 = load i64* %vr25
%t103 = add i64 %t102, -2
%t104 = inttoptr i64 %t103 to i64*
%t101 = load i64* %t104
store i64 %t101, i64* %r165
%t106 = load i64* %r165
%t105 = and i64 %t106, 63
store i64 %t105, i64* %r166
%t107 = load i64* %r166
%t108 = icmp eq i64 %t107, 20
br i1 %t108, label %L17, label %L13, !prof !0
L17:
%t110 = load i64* %vr25
%t111 = add i64 %t110, 30
%t112 = inttoptr i64 %t111 to i64*
%t109 = load i64* %t112
store i64 %t109, i64* %r167
%t114 = load i64* %vr25
%t115 = add i64 %t114, 22
%t116 = inttoptr i64 %t115 to i64*
%t113 = load i64* %t116
store i64 %t113, i64* %r168
%t117 = load i64* %r167
%t118 = icmp eq i64 %t117, 2
br i1 %t118, label %L19, label %L15, !prof !0
L19:
store i64 %DL0_var, i64* %vr258
%t120 = load i64* %vr258
%t121 = load i64* %vr30
store i64 -5, i64* %vr30
%t122 = load i64* %vr25
%p124 = load i64* %p_reg_var
%hp123 = load i64* %hp_reg_var
%t126 = load i64* %r168
%t125 = inttoptr i64 %t126 to i64*
%t127 = bitcast i64* %t125 to {i64, i64, i64} (i64, i64, i64, i64, i64)*
%t128 = call {i64, i64, i64} %t127(i64 %hp123, i64 %p124, i64 %t120, i64 %t121, i64 %t122)
%p130 = extractvalue {i64, i64, i64} %t128, 1
%hp129 = extractvalue {i64, i64, i64} %t128, 0
store i64 %p130, i64* %p_reg_var
store i64 %hp129, i64* %hp_reg_var
%t119 = extractvalue {i64, i64, i64} %t128, 2
store i64 %t119, i64* %vr169
%t131 = load i64* %vr169
store i64 %t131, i64* %vr37
br label %L12
L12:
%t133 = load i64* %vr37
%t132 = and i64 %t133, 1
store i64 %t132, i64* %r38
%t134 = load i64* %r38
%t135 = icmp eq i64 %t134, 0
br i1 %t135, label %L22, label %L21
L22:
%t137 = load i64* %vr37
%t138 = add i64 %t137, -2
%t139 = inttoptr i64 %t138 to i64*
%t136 = load i64* %t139
store i64 %t136, i64* %r41
%t140 = load i64* %r41
%t141 = icmp eq i64 %t140, 128
br i1 %t141, label %L20, label %L21
L20:
%t143 = load i64* %vr37
%t144 = add i64 %t143, 6
%t145 = inttoptr i64 %t144 to i64*
%t142 = load i64* %t145
store i64 %t142, i64* %vr42
%t147 = load i64* %vr37
store i64 -5, i64* %vr37
%t148 = add i64 %t147, 14
%t149 = inttoptr i64 %t148 to i64*
%t146 = load i64* %t149
store i64 %t146, i64* %vr43
%t150 = load i64* %vr42
store i64 %t150, i64* %vr44
%t152 = load i64* %vr42
%t151 = and i64 %t152, 1
store i64 %t151, i64* %r45
%t153 = load i64* %r45
%t154 = icmp eq i64 %t153, 0
br i1 %t154, label %L29, label %L28, !prof !0
L29:
%t156 = load i64* %vr42
%t157 = add i64 %t156, -2
%t158 = inttoptr i64 %t157 to i64*
%t155 = load i64* %t158
store i64 %t155, i64* %r189
%t159 = load i64* %r189
store i64 %t159, i64* %r162
%t161 = load i64* %r162
%t160 = and i64 %t161, 63
store i64 %t160, i64* %r163
%t162 = load i64* %r163
%t163 = icmp eq i64 %t162, 4
br i1 %t163, label %L27, label %L28, !prof !0
L27:
%t165 = load i64* %vr44
%t166 = add i64 %t165, 22
%t167 = inttoptr i64 %t166 to i64*
%t164 = load i64* %t167
store i64 %t164, i64* %r164
%t168 = load i64* %vr44
%t169 = load i64* %r164
%t170 = add i64 %t168, 38
%t171 = inttoptr i64 %t170 to i64*
store i64 %t169, i64* %t171
%t172 = load i64* %vr44
store i64 %t172, i64* %vr73
br label %L26
L26:
%t174 = load i64* %vr73
%t175 = add i64 %t174, 22
%t176 = inttoptr i64 %t175 to i64*
%t173 = load i64* %t176
store i64 %t173, i64* %r74
%t178 = load i64* %vr73
%t179 = add i64 %t178, 30
%t180 = inttoptr i64 %t179 to i64*
%t177 = load i64* %t180
store i64 %t177, i64* %r75
%t182 = load i64* %vr73
%t183 = add i64 %t182, 14
%t184 = inttoptr i64 %t183 to i64*
%t181 = load i64* %t184
store i64 %t181, i64* %r76
%t185 = load i64* %vr73
store i64 %t185, i64* %vr77
%t186 = load i64* %r74
%t188 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %t186, i64 32)
%t187 = extractvalue {i64, i1} %t188, 0
store i64 %t187, i64* %r78
%t189 = extractvalue {i64, i1} %t188, 1
br i1 %t189, label %L25, label %L43
L25:
store i64 %atom_bad_central_directory_var, i64* %vr72
%t191 = load i64* %vr72
%p193 = load i64* %p_reg_var
%hp192 = load i64* %hp_reg_var
%t194 = call {i64, i64, i64} @erlang.throw.1(i64 %hp192, i64 %p193, i64 %t191)
%p196 = extractvalue {i64, i64, i64} %t194, 1
%hp195 = extractvalue {i64, i64, i64} %t194, 0
store i64 %p196, i64* %p_reg_var
store i64 %hp195, i64* %hp_reg_var
%p198 = load i64* %p_reg_var
%hp197 = load i64* %hp_reg_var
%t199 = insertvalue {i64, i64, i64} undef, i64 %hp197, 0
%t200 = insertvalue {i64, i64, i64} %t199, i64 %p198, 1
%t201 = insertvalue {i64, i64, i64} %t200, i64 15, 2
ret {i64, i64, i64} %t201
L43:
%t202 = load i64* %r78
%t203 = load i64* %r75
%t204 = icmp ule i64 %t202, %t203
br i1 %t204, label %L40, label %L25, !prof !0
L40:
%t206 = load i64* %r74
%t205 = and i64 %t206, 7
store i64 %t205, i64* %r79
%t207 = load i64* %r79
%t208 = icmp eq i64 %t207, 0
br i1 %t208, label %L41, label %L42
L41:
%t210 = load i64* %r74
%t209 = lshr i64 %t210, 3
store i64 %t209, i64* %r133
%t212 = load i64* %r76
%t213 = load i64* %r133
%t214 = add i64 %t212, %t213
%t215 = inttoptr i64 %t214 to i8*
%t216 = load i8* %t215
%t211 = zext i8 %t216 to i64
store i64 %t211, i64* %r134
%t218 = load i64* %r133
%t217 = add i64 %t218, 1
store i64 %t217, i64* %r135
%t220 = load i64* %r134
%t219 = shl i64 %t220, 8
store i64 %t219, i64* %r136
%t222 = load i64* %r76
%t223 = load i64* %r135
%t224 = add i64 %t222, %t223
%t225 = inttoptr i64 %t224 to i8*
%t226 = load i8* %t225
%t221 = zext i8 %t226 to i64
store i64 %t221, i64* %r137
%t228 = load i64* %r136
%t229 = load i64* %r137
%t227 = or i64 %t228, %t229
store i64 %t227, i64* %r138
%t231 = load i64* %r135
%t230 = add i64 %t231, 1
store i64 %t230, i64* %r139
%t233 = load i64* %r138
%t232 = shl i64 %t233, 8
store i64 %t232, i64* %r140
%t235 = load i64* %r76
%t236 = load i64* %r139
%t237 = add i64 %t235, %t236
%t238 = inttoptr i64 %t237 to i8*
%t239 = load i8* %t238
%t234 = zext i8 %t239 to i64
store i64 %t234, i64* %r141
%t241 = load i64* %r140
%t242 = load i64* %r141
%t240 = or i64 %t241, %t242
store i64 %t240, i64* %r142
%t244 = load i64* %r139
%t243 = add i64 %t244, 1
store i64 %t243, i64* %r143
%t246 = load i64* %r142
%t245 = shl i64 %t246, 8
store i64 %t245, i64* %r144
%t248 = load i64* %r76
%t249 = load i64* %r143
%t250 = add i64 %t248, %t249
%t251 = inttoptr i64 %t250 to i8*
%t252 = load i8* %t251
%t247 = zext i8 %t252 to i64
store i64 %t247, i64* %r145
%t254 = load i64* %r144
%t255 = load i64* %r145
%t253 = or i64 %t254, %t255
store i64 %t253, i64* %r146
%t256 = load i64* %r146
%t257 = icmp eq i64 %t256, 1347092738
br i1 %t257, label %L44, label %L25
L44:
%t258 = load i64* %vr77
%t259 = load i64* %r78
%t260 = add i64 %t258, 22
%t261 = inttoptr i64 %t260 to i64*
store i64 %t259, i64* %t261
br label %L39
L39:
%t263 = load i64* %vr77
%t264 = add i64 %t263, 22
%t265 = inttoptr i64 %t264 to i64*
%t262 = load i64* %t265
store i64 %t262, i64* %r80
%t267 = load i64* %vr77
%t268 = add i64 %t267, 30
%t269 = inttoptr i64 %t268 to i64*
%t266 = load i64* %t269
store i64 %t266, i64* %r81
%t271 = load i64* %r81
%t272 = load i64* %r80
%t270 = sub i64 %t271, %t272
store i64 %t270, i64* %r82
%t274 = load i64* %r82
%t273 = and i64 %t274, 7
store i64 %t273, i64* %r83
%t275 = load i64* %r83
%t276 = icmp eq i64 %t275, 0
br i1 %t276, label %L51, label %L25
L51:
%t278 = load i64* %vr77
%p280 = load i64* %p_reg_var
%hp279 = load i64* %hp_reg_var
%t281 = call {i64, i64, i64} @zip.cd_file_header_from_bin.1(i64 %hp279, i64 %p280, i64 %t278)
%p283 = extractvalue {i64, i64, i64} %t281, 1
%hp282 = extractvalue {i64, i64, i64} %t281, 0
store i64 %p283, i64* %p_reg_var
store i64 %hp282, i64* %hp_reg_var
%t277 = extractvalue {i64, i64, i64} %t281, 2
store i64 %t277, i64* %vr84
%t285 = load i64* %vr84
%t286 = add i64 %t285, 86
%t287 = inttoptr i64 %t286 to i64*
%t284 = load i64* %t287
store i64 %t284, i64* %vr85
%t289 = load i64* %vr84
%t290 = add i64 %t289, 94
%t291 = inttoptr i64 %t290 to i64*
%t288 = load i64* %t291
store i64 %t288, i64* %vr86
%t293 = load i64* %vr84
%t294 = add i64 %t293, 102
%t295 = inttoptr i64 %t294 to i64*
%t292 = load i64* %t295
store i64 %t292, i64* %vr87
%t297 = load i64* %vr86
%t296 = sub i64 %t297, 15
store i64 %t296, i64* %r88
%t298 = load i64* %vr85
%t299 = load i64* %r88
%t301 = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %t298, i64 %t299)
%t300 = extractvalue {i64, i1} %t301, 0
store i64 %t300, i64* %vr89
%t302 = extractvalue {i64, i1} %t301, 1
br i1 %t302, label %L57, label %L108
L108:
%t303 = load i64* %vr89
store i64 %t303, i64* %vr90
br label %L56
L56:
%t305 = load i64* %vr87
%t304 = sub i64 %t305, 15
store i64 %t304, i64* %r91
%t307 = load i64* %vr90
%t308 = load i64* %r91
%t306 = add i64 %t307, %t308
store i64 %t306, i64* %vr92
; get_heap_pointer
; get_heap_limit
%t310 = load i64* %p_reg_var
%t311 = inttoptr i64 %t310 to i64*
%t312 = getelementptr inbounds i64* %t311, i64 1
%t313 = load i64* %t312
%t314 = load i64* %hp_reg_var
%t309 = sub i64 %t313, %t314
store i64 %t309, i64* %r173
%t315 = load i64* %r173
%t316 = icmp slt i64 %t315, 24
br i1 %t316, label %L117, label %L116, !prof !1
L117:
%p319 = load i64* %p_reg_var
%hp318 = load i64* %hp_reg_var
%t320 = call {i64, i64, i64} @gc_1(i64 %hp318, i64 %p319, i64 63)
%p322 = extractvalue {i64, i64, i64} %t320, 1
%hp321 = extractvalue {i64, i64, i64} %t320, 0
store i64 %p322, i64* %p_reg_var
store i64 %hp321, i64* %hp_reg_var
br label %L116
L116:
store i64 %atom_read_var, i64* %vr93
; get_heap_pointer
%t323 = load i64* %hp_reg_var
%t324 = add i64 %t323, 0
%t325 = inttoptr i64 %t324 to i64*
store i64 128, i64* %t325
%t326 = load i64* %hp_reg_var
%t327 = load i64* %vr93
%t328 = add i64 %t326, 8
%t329 = inttoptr i64 %t328 to i64*
store i64 %t327, i64* %t329
%t330 = load i64* %hp_reg_var
%t331 = load i64* %vr92
store i64 -5, i64* %vr92
%t332 = add i64 %t330, 16
%t333 = inttoptr i64 %t332 to i64*
store i64 %t331, i64* %t333
%t335 = load i64* %hp_reg_var
%t334 = add i64 %t335, 2
store i64 %t334, i64* %vr94
%t337 = load i64* %hp_reg_var
%t336 = add i64 %t337, 24
store i64 %t336, i64* %hp_reg_var
; put_heap_pointer
%t339 = load i64* %vr25
%t338 = and i64 %t339, 1
store i64 %t338, i64* %r95
%t340 = load i64* %r95
%t341 = icmp eq i64 %t340, 0
br i1 %t341, label %L68, label %L63, !prof !0
L68:
%t343 = load i64* %vr25
%t344 = add i64 %t343, -2
%t345 = inttoptr i64 %t344 to i64*
%t342 = load i64* %t345
store i64 %t342, i64* %r125
%t347 = load i64* %r125
%t346 = and i64 %t347, 63
store i64 %t346, i64* %r126
%t348 = load i64* %r126
%t349 = icmp eq i64 %t348, 20
br i1 %t349, label %L67, label %L63, !prof !0
L67:
%t351 = load i64* %vr25
%t352 = add i64 %t351, 30
%t353 = inttoptr i64 %t352 to i64*
%t350 = load i64* %t353
store i64 %t350, i64* %r127
%t355 = load i64* %vr25
%t356 = add i64 %t355, 22
%t357 = inttoptr i64 %t356 to i64*
%t354 = load i64* %t357
store i64 %t354, i64* %r128
%t358 = load i64* %r127
%t359 = icmp eq i64 %t358, 2
br i1 %t359, label %L69, label %L65, !prof !0
L69:
%t361 = load i64* %vr94
store i64 -5, i64* %vr94
%t362 = load i64* %vr43
store i64 -5, i64* %vr43
%t363 = load i64* %vr25
%p365 = load i64* %p_reg_var
%hp364 = load i64* %hp_reg_var
%t367 = load i64* %r128
%t366 = inttoptr i64 %t367 to i64*
%t368 = bitcast i64* %t366 to {i64, i64, i64} (i64, i64, i64, i64, i64)*
%t369 = call {i64, i64, i64} %t368(i64 %hp364, i64 %p365, i64 %t361, i64 %t362, i64 %t363)
%p371 = extractvalue {i64, i64, i64} %t369, 1
%hp370 = extractvalue {i64, i64, i64} %t369, 0
store i64 %p371, i64* %p_reg_var
store i64 %hp370, i64* %hp_reg_var
%t360 = extractvalue {i64, i64, i64} %t369, 2
store i64 %t360, i64* %vr129
%t372 = load i64* %vr129
store i64 %t372, i64* %vr98
br label %L62
L62:
%t374 = load i64* %vr98
%t373 = and i64 %t374, 1
store i64 %t373, i64* %r99
%t375 = load i64* %r99
%t376 = icmp eq i64 %t375, 0
br i1 %t376, label %L72, label %L71
L72:
%t378 = load i64* %vr98
%t379 = add i64 %t378, -2
%t380 = inttoptr i64 %t379 to i64*
%t377 = load i64* %t380
store i64 %t377, i64* %r102
%t381 = load i64* %r102
%t382 = icmp eq i64 %t381, 128
br i1 %t382, label %L70, label %L71
L70:
%t384 = load i64* %vr98
%t385 = add i64 %t384, 6
%t386 = inttoptr i64 %t385 to i64*
%t383 = load i64* %t386
store i64 %t383, i64* %vr103
%t388 = load i64* %vr98
store i64 -5, i64* %vr98
%t389 = add i64 %t388, 14
%t390 = inttoptr i64 %t389 to i64*
%t387 = load i64* %t390
store i64 %t387, i64* %vr104
%t392 = load i64* %vr103
%t393 = load i64* %vr85
store i64 -5, i64* %vr85
%t394 = load i64* %vr86
store i64 -5, i64* %vr86
%t395 = load i64* %vr87
store i64 -5, i64* %vr87
%p397 = load i64* %p_reg_var
%hp396 = load i64* %hp_reg_var
%t398 = call {i64, i64, i64} @zip.get_name_extra_comment.4(i64 %hp396, i64 %p397, i64 %t392, i64 %t393, i64 %t394, i64 %t395)
%p400 = extractvalue {i64, i64, i64} %t398, 1
%hp399 = extractvalue {i64, i64, i64} %t398, 0
store i64 %p400, i64* %p_reg_var
store i64 %hp399, i64* %hp_reg_var
%t391 = extractvalue {i64, i64, i64} %t398, 2
store i64 %t391, i64* %vr105
%t402 = load i64* %vr105
%t403 = add i64 %t402, 6
%t404 = inttoptr i64 %t403 to i64*
%t401 = load i64* %t404
store i64 %t401, i64* %vr106
%t406 = load i64* %vr105
%t407 = add i64 %t406, 14
%t408 = inttoptr i64 %t407 to i64*
%t405 = load i64* %t408
store i64 %t405, i64* %vr107
%t410 = load i64* %vr105
%t411 = add i64 %t410, 22
%t412 = inttoptr i64 %t411 to i64*
%t409 = load i64* %t412
store i64 %t409, i64* %vr108
%t414 = load i64* %vr26
%t413 = and i64 %t414, 1
store i64 %t413, i64* %r109
%t415 = load i64* %r109
%t416 = icmp eq i64 %t415, 0
br i1 %t416, label %L85, label %L80, !prof !0
L85:
%t418 = load i64* %vr26
%t419 = add i64 %t418, -2
%t420 = inttoptr i64 %t419 to i64*
%t417 = load i64* %t420
store i64 %t417, i64* %r118
%t422 = load i64* %r118
%t421 = and i64 %t422, 63
store i64 %t421, i64* %r119
%t423 = load i64* %r119
%t424 = icmp eq i64 %t423, 20
br i1 %t424, label %L84, label %L80, !prof !0
L84:
%t426 = load i64* %vr26
%t427 = add i64 %t426, 30
%t428 = inttoptr i64 %t427 to i64*
%t425 = load i64* %t428
store i64 %t425, i64* %r120
%t430 = load i64* %vr26
%t431 = add i64 %t430, 22
%t432 = inttoptr i64 %t431 to i64*
%t429 = load i64* %t432
store i64 %t429, i64* %r121
%t433 = load i64* %r120
%t434 = icmp eq i64 %t433, 5
br i1 %t434, label %L86, label %L82, !prof !0
L86:
br label %L130
L130:
%t436 = load i64* %vr84
store i64 -5, i64* %vr84
%t437 = load i64* %vr106
store i64 -5, i64* %vr106
%t438 = load i64* %vr107
store i64 -5, i64* %vr107
%t439 = load i64* %vr108
store i64 -5, i64* %vr108
%t440 = load i64* %vr29
store i64 -5, i64* %vr29
%t441 = load i64* %vr26
%p443 = load i64* %p_reg_var
%hp442 = load i64* %hp_reg_var
%t445 = load i64* %r121
%t444 = inttoptr i64 %t445 to i64*
%t446 = bitcast i64* %t444 to {i64, i64, i64} (i64, i64, i64, i64, i64, i64, i64, i64)*
%t447 = call {i64, i64, i64} %t446(i64 %hp442, i64 %p443, i64 %t436, i64 %t437, i64 %t438, i64 %t439, i64 %t441, i64 %t440)
%p449 = extractvalue {i64, i64, i64} %t447, 1
%hp448 = extractvalue {i64, i64, i64} %t447, 0
store i64 %p449, i64* %p_reg_var
store i64 %hp448, i64* %hp_reg_var
%t435 = extractvalue {i64, i64, i64} %t447, 2
store i64 %t435, i64* %vr122
%t450 = load i64* %vr122
store i64 %t450, i64* %vr112
br label %L79
L79:
%t452 = load i64* %vr31
%t451 = sub i64 %t452, 16
store i64 %t451, i64* %vr114
%t453 = load i64* %vr112
store i64 %t453, i64* %vr115
%t454 = load i64* %vr104
store i64 -5, i64* %vr104
store i64 %t454, i64* %vr116
%t455 = load i64* %vr114
store i64 %t455, i64* %vr117
%t456 = load i64* %vr117
store i64 %t456, i64* %vr31
%t457 = load i64* %vr116
store i64 %t457, i64* %vr30
%t458 = load i64* %vr115
store i64 %t458, i64* %vr29
br label %L2
L82:
store i64 %atom_badarity_var, i64* %vr123
; get_heap_pointer
; get_heap_limit
%t460 = load i64* %p_reg_var
%t461 = inttoptr i64 %t460 to i64*
%t462 = getelementptr inbounds i64* %t461, i64 1
%t463 = load i64* %t462
%t464 = load i64* %hp_reg_var
%t459 = sub i64 %t463, %t464
store i64 %t459, i64* %r174
%t465 = load i64* %r174
%t466 = icmp slt i64 %t465, 24
br i1 %t466, label %L119, label %L118, !prof !1
L119:
%p469 = load i64* %p_reg_var
%hp468 = load i64* %hp_reg_var
%t470 = call {i64, i64, i64} @gc_1(i64 %hp468, i64 %p469, i64 63)
%p472 = extractvalue {i64, i64, i64} %t470, 1
%hp471 = extractvalue {i64, i64, i64} %t470, 0
store i64 %p472, i64* %p_reg_var
store i64 %hp471, i64* %hp_reg_var
br label %L118
L118:
; get_heap_pointer
%t473 = load i64* %hp_reg_var
%t474 = add i64 %t473, 0
%t475 = inttoptr i64 %t474 to i64*
store i64 128, i64* %t475
%t476 = load i64* %hp_reg_var
%t477 = load i64* %vr123
store i64 -5, i64* %vr123
%t478 = add i64 %t476, 8
%t479 = inttoptr i64 %t478 to i64*
store i64 %t477, i64* %t479
%t480 = load i64* %hp_reg_var
%t481 = load i64* %vr26
store i64 -5, i64* %vr26
%t482 = add i64 %t480, 16
%t483 = inttoptr i64 %t482 to i64*
store i64 %t481, i64* %t483
%t485 = load i64* %hp_reg_var
%t484 = add i64 %t485, 2
store i64 %t484, i64* %vr124
%t487 = load i64* %hp_reg_var
%t486 = add i64 %t487, 24
store i64 %t486, i64* %hp_reg_var
; put_heap_pointer
%t489 = load i64* %vr124
%p491 = load i64* %p_reg_var
%hp490 = load i64* %hp_reg_var
%t492 = call {i64, i64, i64} @erlang.error.1(i64 %hp490, i64 %p491, i64 %t489)
%p494 = extractvalue {i64, i64, i64} %t492, 1
%hp493 = extractvalue {i64, i64, i64} %t492, 0
store i64 %p494, i64* %p_reg_var
store i64 %hp493, i64* %hp_reg_var
%p496 = load i64* %p_reg_var
%hp495 = load i64* %hp_reg_var
%t497 = insertvalue {i64, i64, i64} undef, i64 %hp495, 0
%t498 = insertvalue {i64, i64, i64} %t497, i64 %p496, 1
%t499 = insertvalue {i64, i64, i64} %t498, i64 15, 2
ret {i64, i64, i64} %t499
L80:
%t501 = load i64* %vr26
%p503 = load i64* %p_reg_var
%hp502 = load i64* %hp_reg_var
%t504 = call {i64, i64, i64} @nonclosure_address(i64 %hp502, i64 %p503, i64 %t501, i64 5)
%p506 = extractvalue {i64, i64, i64} %t504, 1
%hp505 = extractvalue {i64, i64, i64} %t504, 0
store i64 %p506, i64* %p_reg_var
store i64 %hp505, i64* %hp_reg_var
%t500 = extractvalue {i64, i64, i64} %t504, 2
store i64 %t500, i64* %r110
br label %L131
L131:
%t508 = load i64* %vr84
store i64 -5, i64* %vr84
%t509 = load i64* %vr106
store i64 -5, i64* %vr106
%t510 = load i64* %vr107
store i64 -5, i64* %vr107
%t511 = load i64* %vr108
store i64 -5, i64* %vr108
%t512 = load i64* %vr29
store i64 -5, i64* %vr29
%p514 = load i64* %p_reg_var
%hp513 = load i64* %hp_reg_var
%t516 = load i64* %r110
%t515 = inttoptr i64 %t516 to i64*
%t517 = bitcast i64* %t515 to {i64, i64, i64} (i64, i64, i64, i64, i64, i64, i64)*
%t518 = call {i64, i64, i64} %t517(i64 %hp513, i64 %p514, i64 %t508, i64 %t509, i64 %t510, i64 %t511, i64 %t512)
%p520 = extractvalue {i64, i64, i64} %t518, 1
%hp519 = extractvalue {i64, i64, i64} %t518, 0
store i64 %p520, i64* %p_reg_var
store i64 %hp519, i64* %hp_reg_var
%t507 = extractvalue {i64, i64, i64} %t518, 2
store i64 %t507, i64* %vr111
%t521 = load i64* %vr111
store i64 %t521, i64* %vr112
br label %L79
L71:
; get_heap_pointer
; get_heap_limit
%t523 = load i64* %p_reg_var
%t524 = inttoptr i64 %t523 to i64*
%t525 = getelementptr inbounds i64* %t524, i64 1
%t526 = load i64* %t525
%t527 = load i64* %hp_reg_var
%t522 = sub i64 %t526, %t527
store i64 %t522, i64* %r175
%t528 = load i64* %r175
%t529 = icmp slt i64 %t528, 24
br i1 %t529, label %L121, label %L120, !prof !1
L121:
%p532 = load i64* %p_reg_var
%hp531 = load i64* %hp_reg_var
%t533 = call {i64, i64, i64} @gc_1(i64 %hp531, i64 %p532, i64 63)
%p535 = extractvalue {i64, i64, i64} %t533, 1
%hp534 = extractvalue {i64, i64, i64} %t533, 0
store i64 %p535, i64* %p_reg_var
store i64 %hp534, i64* %hp_reg_var
br label %L120
L120:
store i64 %atom_badmatch_var, i64* %vr100
; get_heap_pointer
%t536 = load i64* %hp_reg_var
%t537 = add i64 %t536, 0
%t538 = inttoptr i64 %t537 to i64*
store i64 128, i64* %t538
%t539 = load i64* %hp_reg_var
%t540 = load i64* %vr100
%t541 = add i64 %t539, 8
%t542 = inttoptr i64 %t541 to i64*
store i64 %t540, i64* %t542
%t543 = load i64* %hp_reg_var
%t544 = load i64* %vr98
store i64 -5, i64* %vr98
%t545 = add i64 %t543, 16
%t546 = inttoptr i64 %t545 to i64*
store i64 %t544, i64* %t546
%t548 = load i64* %hp_reg_var
%t547 = add i64 %t548, 2
store i64 %t547, i64* %vr101
%t550 = load i64* %hp_reg_var
%t549 = add i64 %t550, 24
store i64 %t549, i64* %hp_reg_var
; put_heap_pointer
%t552 = load i64* %vr101
%p554 = load i64* %p_reg_var
%hp553 = load i64* %hp_reg_var
%t555 = call {i64, i64, i64} @erlang.error.1(i64 %hp553, i64 %p554, i64 %t552)
%p557 = extractvalue {i64, i64, i64} %t555, 1
%hp556 = extractvalue {i64, i64, i64} %t555, 0
store i64 %p557, i64* %p_reg_var
store i64 %hp556, i64* %hp_reg_var
%p559 = load i64* %p_reg_var
%hp558 = load i64* %hp_reg_var
%t560 = insertvalue {i64, i64, i64} undef, i64 %hp558, 0
%t561 = insertvalue {i64, i64, i64} %t560, i64 %p559, 1
%t562 = insertvalue {i64, i64, i64} %t561, i64 15, 2
ret {i64, i64, i64} %t562
L65:
store i64 %atom_badarity_var, i64* %vr130
; get_heap_pointer
; get_heap_limit
%t564 = load i64* %p_reg_var
%t565 = inttoptr i64 %t564 to i64*
%t566 = getelementptr inbounds i64* %t565, i64 1
%t567 = load i64* %t566
%t568 = load i64* %hp_reg_var
%t563 = sub i64 %t567, %t568
store i64 %t563, i64* %r176
%t569 = load i64* %r176
%t570 = icmp slt i64 %t569, 24
br i1 %t570, label %L123, label %L122, !prof !1
L123:
%p573 = load i64* %p_reg_var
%hp572 = load i64* %hp_reg_var
%t574 = call {i64, i64, i64} @gc_1(i64 %hp572, i64 %p573, i64 63)
%p576 = extractvalue {i64, i64, i64} %t574, 1
%hp575 = extractvalue {i64, i64, i64} %t574, 0
store i64 %p576, i64* %p_reg_var
store i64 %hp575, i64* %hp_reg_var
br label %L122
L122:
; get_heap_pointer
%t577 = load i64* %hp_reg_var
%t578 = add i64 %t577, 0
%t579 = inttoptr i64 %t578 to i64*
store i64 128, i64* %t579
%t580 = load i64* %hp_reg_var
%t581 = load i64* %vr130
store i64 -5, i64* %vr130
%t582 = add i64 %t580, 8
%t583 = inttoptr i64 %t582 to i64*
store i64 %t581, i64* %t583
%t584 = load i64* %hp_reg_var
%t585 = load i64* %vr25
store i64 -5, i64* %vr25
%t586 = add i64 %t584, 16
%t587 = inttoptr i64 %t586 to i64*
store i64 %t585, i64* %t587
%t589 = load i64* %hp_reg_var
%t588 = add i64 %t589, 2
store i64 %t588, i64* %vr131
%t591 = load i64* %hp_reg_var
%t590 = add i64 %t591, 24
store i64 %t590, i64* %hp_reg_var
; put_heap_pointer
%t593 = load i64* %vr131
%p595 = load i64* %p_reg_var
%hp594 = load i64* %hp_reg_var
%t596 = call {i64, i64, i64} @erlang.error.1(i64 %hp594, i64 %p595, i64 %t593)
%p598 = extractvalue {i64, i64, i64} %t596, 1
%hp597 = extractvalue {i64, i64, i64} %t596, 0
store i64 %p598, i64* %p_reg_var
store i64 %hp597, i64* %hp_reg_var
%p600 = load i64* %p_reg_var
%hp599 = load i64* %hp_reg_var
%t601 = insertvalue {i64, i64, i64} undef, i64 %hp599, 0
%t602 = insertvalue {i64, i64, i64} %t601, i64 %p600, 1
%t603 = insertvalue {i64, i64, i64} %t602, i64 15, 2
ret {i64, i64, i64} %t603
L63:
%t605 = load i64* %vr25
%p607 = load i64* %p_reg_var
%hp606 = load i64* %hp_reg_var
%t608 = call {i64, i64, i64} @nonclosure_address(i64 %hp606, i64 %p607, i64 %t605, i64 2)
%p610 = extractvalue {i64, i64, i64} %t608, 1
%hp609 = extractvalue {i64, i64, i64} %t608, 0
store i64 %p610, i64* %p_reg_var
store i64 %hp609, i64* %hp_reg_var
%t604 = extractvalue {i64, i64, i64} %t608, 2
store i64 %t604, i64* %r96
%t612 = load i64* %vr94
store i64 -5, i64* %vr94
%t613 = load i64* %vr43
store i64 -5, i64* %vr43
%p615 = load i64* %p_reg_var
%hp614 = load i64* %hp_reg_var
%t617 = load i64* %r96
%t616 = inttoptr i64 %t617 to i64*
%t618 = bitcast i64* %t616 to {i64, i64, i64} (i64, i64, i64, i64)*
%t619 = call {i64, i64, i64} %t618(i64 %hp614, i64 %p615, i64 %t612, i64 %t613)
%p621 = extractvalue {i64, i64, i64} %t619, 1
%hp620 = extractvalue {i64, i64, i64} %t619, 0
store i64 %p621, i64* %p_reg_var
store i64 %hp620, i64* %hp_reg_var
%t611 = extractvalue {i64, i64, i64} %t619, 2
store i64 %t611, i64* %vr97
%t622 = load i64* %vr97
store i64 %t622, i64* %vr98
br label %L62
L57:
%t624 = load i64* %vr85
%t625 = load i64* %vr86
%p627 = load i64* %p_reg_var
%hp626 = load i64* %hp_reg_var
%t628 = call {i64, i64, i64} @bif_add(i64 %hp626, i64 %p627, i64 %t624, i64 %t625)
%p630 = extractvalue {i64, i64, i64} %t628, 1
%hp629 = extractvalue {i64, i64, i64} %t628, 0
store i64 %p630, i64* %p_reg_var
store i64 %hp629, i64* %hp_reg_var
%t623 = extractvalue {i64, i64, i64} %t628, 2
store i64 %t623, i64* %vr132
%t631 = load i64* %vr132
store i64 %t631, i64* %vr90
br label %L56
L42:
%t633 = load i64* %r74
%t632 = lshr i64 %t633, 3
store i64 %t632, i64* %r149
%t635 = load i64* %r149
%t634 = add i64 %t635, 5
store i64 %t634, i64* %r150
%t637 = load i64* %r76
%t638 = load i64* %r149
%t639 = add i64 %t637, %t638
%t640 = inttoptr i64 %t639 to i8*
%t641 = load i8* %t640
%t636 = zext i8 %t641 to i64
store i64 %t636, i64* %r151
%t643 = load i64* %r149
%t642 = add i64 %t643, 1
store i64 %t642, i64* %r152
%t644 = load i64* %r151
store i64 %t644, i64* %r154
%t645 = load i64* %r152
store i64 %t645, i64* %r153
br label %L48
L48:
%t647 = load i64* %r76
%t648 = load i64* %r153
%t649 = add i64 %t647, %t648
%t650 = inttoptr i64 %t649 to i8*
%t651 = load i8* %t650
%t646 = zext i8 %t651 to i64
store i64 %t646, i64* %r155
%t653 = load i64* %r153
%t652 = add i64 %t653, 1
store i64 %t652, i64* %r156
%t655 = load i64* %r154
%t654 = shl i64 %t655, 8
store i64 %t654, i64* %r157
%t657 = load i64* %r157
%t658 = load i64* %r155
%t656 = or i64 %t657, %t658
store i64 %t656, i64* %r158
%t659 = load i64* %r156
%t660 = load i64* %r150
%t661 = icmp slt i64 %t659, %t660
br i1 %t661, label %L107, label %L49
L107:
%t662 = load i64* %r158
store i64 %t662, i64* %r154
%t663 = load i64* %r156
store i64 %t663, i64* %r153
br label %L48
L49:
%t665 = load i64* %r79
%t664 = add i64 %t665, 24
store i64 %t664, i64* %r159
%t667 = load i64* %r158
%t668 = load i64* %r159
%t666 = shl i64 %t667, %t668
store i64 %t666, i64* %r160
%t670 = load i64* %r160
%t669 = lshr i64 %t670, 32
store i64 %t669, i64* %r161
%t671 = load i64* %r161
%t672 = icmp eq i64 %t671, 1347092738
br i1 %t672, label %L50, label %L25
L50:
%t673 = load i64* %vr77
%t674 = load i64* %r78
%t675 = add i64 %t673, 22
%t676 = inttoptr i64 %t675 to i64*
store i64 %t674, i64* %t676
br label %L39
L28:
; get_heap_pointer
; get_heap_limit
%t678 = load i64* %p_reg_var
%t679 = inttoptr i64 %t678 to i64*
%t680 = getelementptr inbounds i64* %t679, i64 1
%t681 = load i64* %t680
%t682 = load i64* %hp_reg_var
%t677 = sub i64 %t681, %t682
store i64 %t677, i64* %r177
%t683 = load i64* %r177
%t684 = icmp slt i64 %t683, 48
br i1 %t684, label %L125, label %L124, !prof !1
L125:
%p687 = load i64* %p_reg_var
%hp686 = load i64* %hp_reg_var
%t688 = call {i64, i64, i64} @gc_1(i64 %hp686, i64 %p687, i64 111)
%p690 = extractvalue {i64, i64, i64} %t688, 1
%hp689 = extractvalue {i64, i64, i64} %t688, 0
store i64 %p690, i64* %p_reg_var
store i64 %hp689, i64* %hp_reg_var
br label %L124
L124:
%t692 = load i64* %vr42
%t691 = and i64 %t692, 1
store i64 %t691, i64* %r46
%t693 = load i64* %r46
%t694 = icmp eq i64 %t693, 0
br i1 %t694, label %L35, label %L25, !prof !0
L35:
%t696 = load i64* %vr42
%t697 = add i64 %t696, -2
%t698 = inttoptr i64 %t697 to i64*
%t695 = load i64* %t698
store i64 %t695, i64* %r189
%t699 = load i64* %r189
store i64 %t699, i64* %r47
%t701 = load i64* %r47
%t700 = and i64 %t701, 51
store i64 %t700, i64* %r48
%t702 = load i64* %r48
%t703 = icmp eq i64 %t702, 32
br i1 %t703, label %L31, label %L25, !prof !0
L31:
%t705 = load i64* %vr42
%t706 = add i64 %t705, 6
%t707 = inttoptr i64 %t706 to i64*
%t704 = load i64* %t707
store i64 %t704, i64* %r49
%t709 = load i64* %r49
%t708 = shl i64 %t709, 3
store i64 %t708, i64* %r50
%t710 = load i64* %r189
store i64 %t710, i64* %r51
%t712 = load i64* %r51
%t711 = and i64 %t712, 63
store i64 %t711, i64* %r52
%t713 = load i64* %r52
%t714 = icmp eq i64 %t713, 40
br i1 %t714, label %L32, label %L33
L32:
%t716 = load i64* %vr42
%t717 = add i64 %t716, 14
%t718 = inttoptr i64 %t717 to i64*
%t715 = load i64* %t718
store i64 %t715, i64* %r62
%t720 = load i64* %r62
%t719 = shl i64 %t720, 3
store i64 %t719, i64* %r63
%t722 = load i64* %vr42
%t723 = add i64 %t722, 23
%t724 = inttoptr i64 %t723 to i8*
%t725 = load i8* %t724
%t721 = zext i8 %t725 to i64
store i64 %t721, i64* %r64
%t727 = load i64* %r63
%t728 = load i64* %r64
%t726 = add i64 %t727, %t728
store i64 %t726, i64* %r65
%t730 = load i64* %vr42
%t731 = add i64 %t730, 22
%t732 = inttoptr i64 %t731 to i8*
%t733 = load i8* %t732
%t729 = zext i8 %t733 to i64
store i64 %t729, i64* %r66
%t735 = load i64* %r50
%t736 = load i64* %r65
%t734 = add i64 %t735, %t736
store i64 %t734, i64* %r67
%t738 = load i64* %r67
%t739 = load i64* %r66
%t737 = add i64 %t738, %t739
store i64 %t737, i64* %r68
%t741 = load i64* %vr42
store i64 -5, i64* %vr42
%t742 = add i64 %t741, 30
%t743 = inttoptr i64 %t742 to i64*
%t740 = load i64* %t743
store i64 %t740, i64* %vr69
%t744 = load i64* %vr69
store i64 %t744, i64* %vr53
%t745 = load i64* %r65
store i64 %t745, i64* %r54
%t746 = load i64* %r68
store i64 %t746, i64* %r55
br label %L34
L34:
%t748 = load i64* %vr53
%t749 = add i64 %t748, -2
%t750 = inttoptr i64 %t749 to i64*
%t747 = load i64* %t750
store i64 %t747, i64* %r56
%t752 = load i64* %r56
%t751 = and i64 %t752, 63
store i64 %t751, i64* %r57
%t753 = load i64* %r57
%t754 = icmp eq i64 %t753, 36
br i1 %t754, label %L36, label %L37
L36:
%t756 = load i64* %vr53
%t755 = add i64 %t756, 14
store i64 %t755, i64* %r60
%t757 = load i64* %r60
store i64 %t757, i64* %r58
br label %L38
L38:
; get_heap_pointer
%t759 = load i64* %hp_reg_var
%t758 = add i64 %t759, 2
store i64 %t758, i64* %vr59
%t760 = load i64* %vr59
%t761 = add i64 %t760, -2
%t762 = inttoptr i64 %t761 to i64*
store i64 324, i64* %t762
%t763 = load i64* %vr59
%t764 = load i64* %vr53
%t765 = add i64 %t763, 6
%t766 = inttoptr i64 %t765 to i64*
store i64 %t764, i64* %t766
%t767 = load i64* %vr59
%t768 = load i64* %r58
%t769 = add i64 %t767, 14
%t770 = inttoptr i64 %t769 to i64*
store i64 %t768, i64* %t770
%t771 = load i64* %vr59
%t772 = load i64* %r55
%t773 = add i64 %t771, 30
%t774 = inttoptr i64 %t773 to i64*
store i64 %t772, i64* %t774
%t775 = load i64* %vr59
%t776 = load i64* %r54
%t777 = add i64 %t775, 22
%t778 = inttoptr i64 %t777 to i64*
store i64 %t776, i64* %t778
%t779 = load i64* %vr59
%t780 = load i64* %r54
%t781 = add i64 %t779, 38
%t782 = inttoptr i64 %t781 to i64*
store i64 %t780, i64* %t782
%t784 = load i64* %hp_reg_var
%t783 = add i64 %t784, 48
store i64 %t783, i64* %hp_reg_var
; put_heap_pointer
%t785 = load i64* %vr59
store i64 %t785, i64* %vr73
br label %L26
L37:
%t787 = load i64* %vr53
%t788 = add i64 %t787, 30
%t789 = inttoptr i64 %t788 to i64*
%t786 = load i64* %t789
store i64 %t786, i64* %r61
%t790 = load i64* %r61
store i64 %t790, i64* %r58
br label %L38
L33:
store i64 0, i64* %r70
%t791 = load i64* %vr42
store i64 -5, i64* %vr42
store i64 %t791, i64* %vr71
%t792 = load i64* %vr71
store i64 %t792, i64* %vr53
%t793 = load i64* %r70
store i64 %t793, i64* %r54
%t794 = load i64* %r50
store i64 %t794, i64* %r55
br label %L34
L21:
; get_heap_pointer
; get_heap_limit
%t796 = load i64* %p_reg_var
%t797 = inttoptr i64 %t796 to i64*
%t798 = getelementptr inbounds i64* %t797, i64 1
%t799 = load i64* %t798
%t800 = load i64* %hp_reg_var
%t795 = sub i64 %t799, %t800
store i64 %t795, i64* %r178
%t801 = load i64* %r178
%t802 = icmp slt i64 %t801, 24
br i1 %t802, label %L127, label %L126, !prof !1
L127:
%p805 = load i64* %p_reg_var
%hp804 = load i64* %hp_reg_var
%t806 = call {i64, i64, i64} @gc_1(i64 %hp804, i64 %p805, i64 63)
%p808 = extractvalue {i64, i64, i64} %t806, 1
%hp807 = extractvalue {i64, i64, i64} %t806, 0
store i64 %p808, i64* %p_reg_var
store i64 %hp807, i64* %hp_reg_var
br label %L126
L126:
store i64 %atom_badmatch_var, i64* %vr39
; get_heap_pointer
%t809 = load i64* %hp_reg_var
%t810 = add i64 %t809, 0
%t811 = inttoptr i64 %t810 to i64*
store i64 128, i64* %t811
%t812 = load i64* %hp_reg_var
%t813 = load i64* %vr39
%t814 = add i64 %t812, 8
%t815 = inttoptr i64 %t814 to i64*
store i64 %t813, i64* %t815
%t816 = load i64* %hp_reg_var
%t817 = load i64* %vr37
store i64 -5, i64* %vr37
%t818 = add i64 %t816, 16
%t819 = inttoptr i64 %t818 to i64*
store i64 %t817, i64* %t819
%t821 = load i64* %hp_reg_var
%t820 = add i64 %t821, 2
store i64 %t820, i64* %vr40
%t823 = load i64* %hp_reg_var
%t822 = add i64 %t823, 24
store i64 %t822, i64* %hp_reg_var
; put_heap_pointer
%t825 = load i64* %vr40
%p827 = load i64* %p_reg_var
%hp826 = load i64* %hp_reg_var
%t828 = call {i64, i64, i64} @erlang.error.1(i64 %hp826, i64 %p827, i64 %t825)
%p830 = extractvalue {i64, i64, i64} %t828, 1
%hp829 = extractvalue {i64, i64, i64} %t828, 0
store i64 %p830, i64* %p_reg_var
store i64 %hp829, i64* %hp_reg_var
%p832 = load i64* %p_reg_var
%hp831 = load i64* %hp_reg_var
%t833 = insertvalue {i64, i64, i64} undef, i64 %hp831, 0
%t834 = insertvalue {i64, i64, i64} %t833, i64 %p832, 1
%t835 = insertvalue {i64, i64, i64} %t834, i64 15, 2
ret {i64, i64, i64} %t835
L15:
store i64 %atom_badarity_var, i64* %vr170
; get_heap_pointer
; get_heap_limit
%t837 = load i64* %p_reg_var
%t838 = inttoptr i64 %t837 to i64*
%t839 = getelementptr inbounds i64* %t838, i64 1
%t840 = load i64* %t839
%t841 = load i64* %hp_reg_var
%t836 = sub i64 %t840, %t841
store i64 %t836, i64* %r179
%t842 = load i64* %r179
%t843 = icmp slt i64 %t842, 24
br i1 %t843, label %L129, label %L128, !prof !1
L129:
%p846 = load i64* %p_reg_var
%hp845 = load i64* %hp_reg_var
%t847 = call {i64, i64, i64} @gc_1(i64 %hp845, i64 %p846, i64 63)
%p849 = extractvalue {i64, i64, i64} %t847, 1
%hp848 = extractvalue {i64, i64, i64} %t847, 0
store i64 %p849, i64* %p_reg_var
store i64 %hp848, i64* %hp_reg_var
br label %L128
L128:
; get_heap_pointer
%t850 = load i64* %hp_reg_var
%t851 = add i64 %t850, 0
%t852 = inttoptr i64 %t851 to i64*
store i64 128, i64* %t852
%t853 = load i64* %hp_reg_var
%t854 = load i64* %vr170
store i64 -5, i64* %vr170
%t855 = add i64 %t853, 8
%t856 = inttoptr i64 %t855 to i64*
store i64 %t854, i64* %t856
%t857 = load i64* %hp_reg_var
%t858 = load i64* %vr25
store i64 -5, i64* %vr25
%t859 = add i64 %t857, 16
%t860 = inttoptr i64 %t859 to i64*
store i64 %t858, i64* %t860
%t862 = load i64* %hp_reg_var
%t861 = add i64 %t862, 2
store i64 %t861, i64* %vr171
%t864 = load i64* %hp_reg_var
%t863 = add i64 %t864, 24
store i64 %t863, i64* %hp_reg_var
; put_heap_pointer
%t866 = load i64* %vr171
%p868 = load i64* %p_reg_var
%hp867 = load i64* %hp_reg_var
%t869 = call {i64, i64, i64} @erlang.error.1(i64 %hp867, i64 %p868, i64 %t866)
%p871 = extractvalue {i64, i64, i64} %t869, 1
%hp870 = extractvalue {i64, i64, i64} %t869, 0
store i64 %p871, i64* %p_reg_var
store i64 %hp870, i64* %hp_reg_var
%p873 = load i64* %p_reg_var
%hp872 = load i64* %hp_reg_var
%t874 = insertvalue {i64, i64, i64} undef, i64 %hp872, 0
%t875 = insertvalue {i64, i64, i64} %t874, i64 %p873, 1
%t876 = insertvalue {i64, i64, i64} %t875, i64 15, 2
ret {i64, i64, i64} %t876
L13:
%t878 = load i64* %vr25
%p880 = load i64* %p_reg_var
%hp879 = load i64* %hp_reg_var
%t881 = call {i64, i64, i64} @nonclosure_address(i64 %hp879, i64 %p880, i64 %t878, i64 2)
%p883 = extractvalue {i64, i64, i64} %t881, 1
%hp882 = extractvalue {i64, i64, i64} %t881, 0
store i64 %p883, i64* %p_reg_var
store i64 %hp882, i64* %hp_reg_var
%t877 = extractvalue {i64, i64, i64} %t881, 2
store i64 %t877, i64* %r35
store i64 %DL0_var, i64* %vr259
%t885 = load i64* %vr259
%t886 = load i64* %vr30
store i64 -5, i64* %vr30
%p888 = load i64* %p_reg_var
%hp887 = load i64* %hp_reg_var
%t890 = load i64* %r35
%t889 = inttoptr i64 %t890 to i64*
%t891 = bitcast i64* %t889 to {i64, i64, i64} (i64, i64, i64, i64)*
%t892 = call {i64, i64, i64} %t891(i64 %hp887, i64 %p888, i64 %t885, i64 %t886)
%p894 = extractvalue {i64, i64, i64} %t892, 1
%hp893 = extractvalue {i64, i64, i64} %t892, 0
store i64 %p894, i64* %p_reg_var
store i64 %hp893, i64* %hp_reg_var
%t884 = extractvalue {i64, i64, i64} %t892, 2
store i64 %t884, i64* %vr36
%t895 = load i64* %vr36
store i64 %t895, i64* %vr37
br label %L12
}
@atom_badarity = external constant i64
@atom_bad_central_directory = external constant i64
@atom_read = external constant i64
@atom_badmatch = external constant i64
@DL0 = external constant i8
declare i32 @__gcc_personality_v0(i32, i64, i8*, i8*)
declare {i64, i64, i64} @hipe_bifs.llvm_fix_pinned_regs.0()
@gc_metadata = external constant i8
declare {i64, i64, i64} @lists.reverse.1(i64, i64, i64)
declare {i64, i64, i64} @zip.get_name_extra_comment.4(i64, i64, i64, i64, i64, i64)
declare {i64, i64, i64} @suspend_0(i64, i64)
declare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64)
declare {i64, i64, i64} @gc_1(i64, i64, i64)
declare {i64, i64, i64} @erlang.throw.1(i64, i64, i64)
declare {i64, i64, i64} @erlang.error.1(i64, i64, i64)
declare {i64, i64, i64} @zip.cd_file_header_from_bin.1(i64, i64, i64)
declare {i64, i64, i64} @bif_add(i64, i64, i64, i64)
declare {i64, i1} @llvm.sadd.with.overflow.i64(i64, i64)
declare {i64, i64, i64} @nonclosure_address(i64, i64, i64, i64)
@table_closures = constant [2 x i8*] [
i8* blockaddress(@zip.get_cd_loop.5, %L130),
i8* blockaddress(@zip.get_cd_loop.5, %L131)
]
!0 = metadata !{metadata !"branch_weights",
i32 99, i32 1}
!1 = metadata !{metadata !"branch_weights",
i32 1, i32 99}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment