Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
This file has been truncated, but you can view the full file.
; ModuleID = '8cc.c.eir.ll'
source_filename = "8cc.c.eir.ll"
@a = common local_unnamed_addr global i32 0, align 4
@b = common local_unnamed_addr global i32 0, align 4
@c = common local_unnamed_addr global i32 0, align 4
@d = common local_unnamed_addr global i32 0, align 4
@bp = common local_unnamed_addr global i32 0, align 4
@sp = common local_unnamed_addr global i32 0, align 4
@pc = common local_unnamed_addr global i32 0, align 4
@mem = common local_unnamed_addr global [16777216 x i32] zeroinitializer, align 16
define void @func0() local_unnamed_addr {
%.pr = load i32, i32* @pc, align 4
%1 = icmp ult i32 %.pr, 512
br i1 %1, label %switch_top.preheader, label %func_bottom
switch_top.preheader: ; preds = %0
br label %switch_top
; <label>:2: ; preds = %switch_top
store i32 4874, i32* @pc, align 4
br label %case_bottom
; <label>:3: ; preds = %switch_top
%4 = load i32, i32* @sp, align 4
%5 = add i32 %4, 16777215
%6 = and i32 %5, 16777215
%7 = load i32, i32* @bp, align 4
%8 = zext i32 %6 to i64
%9 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %8
store i32 %7, i32* %9, align 4
store i32 %6, i32* @bp, align 4
%10 = add i32 %4, 1
%11 = and i32 %10, 16777215
%12 = zext i32 %11 to i64
%13 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %12
%14 = load i32, i32* %13, align 4
%15 = add i32 %4, 16777214
%16 = and i32 %15, 16777215
store i32 %16, i32* @d, align 4
%17 = zext i32 %16 to i64
%18 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %17
store i32 %14, i32* %18, align 4
store i32 %6, i32* @sp, align 4
%19 = icmp eq i32 %14, 12
%20 = zext i1 %19 to i32
store i32 %20, i32* @a, align 4
store i32 1, i32* @b, align 4
br i1 %19, label %21, label %case_bottom
; <label>:21: ; preds = %3
store i32 2, i32* @pc, align 4
br label %case_bottom
; <label>:22: ; preds = %switch_top
%23 = load i32, i32* @bp, align 4
%24 = add i32 %23, 2
%25 = and i32 %24, 16777215
%26 = zext i32 %25 to i64
%27 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %26
%28 = load i32, i32* %27, align 4
%29 = load i32, i32* @sp, align 4
%30 = add i32 %29, 16777215
%31 = and i32 %30, 16777215
store i32 %31, i32* @d, align 4
%32 = zext i32 %31 to i64
%33 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %32
store i32 %28, i32* %33, align 4
%34 = and i32 %29, 16777215
store i32 %34, i32* @sp, align 4
%35 = icmp eq i32 %28, 10
%36 = zext i1 %35 to i32
store i32 %36, i32* @a, align 4
store i32 %36, i32* @b, align 4
br label %case_bottom
; <label>:37: ; preds = %switch_top
%38 = load i32, i32* @b, align 4
store i32 %38, i32* @a, align 4
store i32 1, i32* @b, align 4
%39 = icmp eq i32 %38, 0
br i1 %39, label %case_bottom, label %40
; <label>:40: ; preds = %37
store i32 4, i32* @pc, align 4
br label %case_bottom
; <label>:41: ; preds = %switch_top
%42 = load i32, i32* @bp, align 4
%43 = add i32 %42, 2
%44 = and i32 %43, 16777215
%45 = zext i32 %44 to i64
%46 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %45
%47 = load i32, i32* %46, align 4
%48 = load i32, i32* @sp, align 4
%49 = add i32 %48, 16777215
%50 = and i32 %49, 16777215
store i32 %50, i32* @d, align 4
%51 = zext i32 %50 to i64
%52 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %51
store i32 %47, i32* %52, align 4
%53 = and i32 %48, 16777215
store i32 %53, i32* @sp, align 4
%54 = icmp eq i32 %47, 13
%55 = zext i1 %54 to i32
store i32 %55, i32* @a, align 4
store i32 %55, i32* @b, align 4
br label %case_bottom
; <label>:56: ; preds = %switch_top
%57 = load i32, i32* @b, align 4
store i32 %57, i32* @a, align 4
store i32 1, i32* @b, align 4
%58 = icmp eq i32 %57, 0
br i1 %58, label %case_bottom, label %59
; <label>:59: ; preds = %56
store i32 6, i32* @pc, align 4
br label %case_bottom
; <label>:60: ; preds = %switch_top
%61 = load i32, i32* @bp, align 4
%62 = add i32 %61, 2
%63 = and i32 %62, 16777215
%64 = zext i32 %63 to i64
%65 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %64
%66 = load i32, i32* %65, align 4
%67 = load i32, i32* @sp, align 4
%68 = add i32 %67, 16777215
%69 = and i32 %68, 16777215
store i32 %69, i32* @d, align 4
%70 = zext i32 %69 to i64
%71 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %70
store i32 %66, i32* %71, align 4
%72 = and i32 %67, 16777215
store i32 %72, i32* @sp, align 4
%73 = icmp eq i32 %66, 9
%74 = zext i1 %73 to i32
store i32 %74, i32* @a, align 4
store i32 %74, i32* @b, align 4
br label %case_bottom
; <label>:75: ; preds = %switch_top
%76 = load i32, i32* @b, align 4
store i32 %76, i32* @a, align 4
store i32 1, i32* @b, align 4
%77 = icmp eq i32 %76, 0
br i1 %77, label %case_bottom, label %78
; <label>:78: ; preds = %75
store i32 8, i32* @pc, align 4
br label %case_bottom
; <label>:79: ; preds = %switch_top
%80 = load i32, i32* @bp, align 4
%81 = add i32 %80, 2
%82 = and i32 %81, 16777215
%83 = zext i32 %82 to i64
%84 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %83
%85 = load i32, i32* %84, align 4
%86 = load i32, i32* @sp, align 4
%87 = add i32 %86, 16777215
%88 = and i32 %87, 16777215
store i32 %88, i32* @d, align 4
%89 = zext i32 %88 to i64
%90 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %89
store i32 %85, i32* %90, align 4
%91 = and i32 %86, 16777215
store i32 %91, i32* @sp, align 4
%92 = icmp eq i32 %85, 11
%93 = zext i1 %92 to i32
store i32 %93, i32* @a, align 4
store i32 %93, i32* @b, align 4
br label %case_bottom
; <label>:94: ; preds = %switch_top
%95 = load i32, i32* @b, align 4
store i32 %95, i32* @a, align 4
store i32 1, i32* @b, align 4
%96 = icmp eq i32 %95, 0
br i1 %96, label %case_bottom, label %97
; <label>:97: ; preds = %94
store i32 10, i32* @pc, align 4
br label %case_bottom
; <label>:98: ; preds = %switch_top
%99 = load i32, i32* @bp, align 4
%100 = add i32 %99, 2
%101 = and i32 %100, 16777215
%102 = zext i32 %101 to i64
%103 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %102
%104 = load i32, i32* %103, align 4
%105 = load i32, i32* @sp, align 4
%106 = add i32 %105, 16777215
%107 = and i32 %106, 16777215
store i32 %107, i32* @d, align 4
%108 = zext i32 %107 to i64
%109 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %108
store i32 %104, i32* %109, align 4
%110 = and i32 %105, 16777215
store i32 %110, i32* @sp, align 4
%111 = icmp eq i32 %104, 32
%112 = zext i1 %111 to i32
store i32 %112, i32* @a, align 4
store i32 %112, i32* @b, align 4
br label %case_bottom
; <label>:113: ; preds = %switch_top
%114 = load i32, i32* @bp, align 4
%115 = zext i32 %114 to i64
%116 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %115
%117 = load i32, i32* %116, align 4
%118 = add i32 %114, 1
%119 = and i32 %118, 16777215
store i32 %117, i32* @bp, align 4
%120 = zext i32 %119 to i64
%121 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %120
%122 = load i32, i32* %121, align 4
store i32 %122, i32* @a, align 4
%123 = add i32 %114, 2
%124 = and i32 %123, 16777215
store i32 %124, i32* @sp, align 4
%125 = add i32 %122, -1
store i32 %125, i32* @pc, align 4
br label %case_bottom
; <label>:126: ; preds = %switch_top
%127 = load i32, i32* @bp, align 4
%128 = zext i32 %127 to i64
%129 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %128
%130 = load i32, i32* %129, align 4
%131 = add i32 %127, 1
%132 = and i32 %131, 16777215
store i32 %130, i32* @bp, align 4
%133 = zext i32 %132 to i64
%134 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %133
%135 = load i32, i32* %134, align 4
store i32 %135, i32* @a, align 4
%136 = add i32 %127, 2
%137 = and i32 %136, 16777215
store i32 %137, i32* @sp, align 4
%138 = add i32 %135, -1
store i32 %138, i32* @pc, align 4
br label %case_bottom
; <label>:139: ; preds = %switch_top
%140 = load i32, i32* @sp, align 4
%141 = add i32 %140, 16777215
%142 = and i32 %141, 16777215
%143 = load i32, i32* @bp, align 4
%144 = zext i32 %142 to i64
%145 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %144
store i32 %143, i32* %145, align 4
store i32 %142, i32* @bp, align 4
%146 = add i32 %140, 16777214
%147 = and i32 %146, 16777215
store i32 %147, i32* @d, align 4
%148 = zext i32 %147 to i64
%149 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %148
store i32 48, i32* %149, align 4
%150 = add i32 %140, 1
%151 = and i32 %150, 16777215
%152 = zext i32 %151 to i64
%153 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %152
%154 = load i32, i32* %153, align 4
%155 = add i32 %140, 16777215
%156 = and i32 %155, 16777215
store i32 %156, i32* @sp, align 4
%157 = icmp ugt i32 %154, 47
%158 = zext i1 %157 to i32
store i32 %158, i32* @a, align 4
store i32 0, i32* @b, align 4
br i1 %157, label %case_bottom, label %159
; <label>:159: ; preds = %139
store i32 14, i32* @pc, align 4
br label %case_bottom
; <label>:160: ; preds = %switch_top
%161 = load i32, i32* @bp, align 4
%162 = add i32 %161, 2
%163 = and i32 %162, 16777215
%164 = zext i32 %163 to i64
%165 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %164
%166 = load i32, i32* %165, align 4
%167 = load i32, i32* @sp, align 4
%168 = add i32 %167, 16777215
%169 = and i32 %168, 16777215
store i32 %169, i32* @d, align 4
%170 = zext i32 %169 to i64
%171 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %170
store i32 %166, i32* %171, align 4
%172 = and i32 %167, 16777215
store i32 %172, i32* @sp, align 4
%173 = icmp ult i32 %166, 58
%174 = zext i1 %173 to i32
store i32 %174, i32* @a, align 4
store i32 %174, i32* @b, align 4
br label %case_bottom
; <label>:175: ; preds = %switch_top
%176 = load i32, i32* @bp, align 4
%177 = zext i32 %176 to i64
%178 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %177
%179 = load i32, i32* %178, align 4
%180 = add i32 %176, 1
%181 = and i32 %180, 16777215
store i32 %179, i32* @bp, align 4
%182 = zext i32 %181 to i64
%183 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %182
%184 = load i32, i32* %183, align 4
store i32 %184, i32* @a, align 4
%185 = add i32 %176, 2
%186 = and i32 %185, 16777215
store i32 %186, i32* @sp, align 4
%187 = add i32 %184, -1
store i32 %187, i32* @pc, align 4
br label %case_bottom
; <label>:188: ; preds = %switch_top
%189 = load i32, i32* @bp, align 4
%190 = zext i32 %189 to i64
%191 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %190
%192 = load i32, i32* %191, align 4
%193 = add i32 %189, 1
%194 = and i32 %193, 16777215
store i32 %192, i32* @bp, align 4
%195 = zext i32 %194 to i64
%196 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %195
%197 = load i32, i32* %196, align 4
store i32 %197, i32* @a, align 4
%198 = add i32 %189, 2
%199 = and i32 %198, 16777215
store i32 %199, i32* @sp, align 4
%200 = add i32 %197, -1
store i32 %200, i32* @pc, align 4
br label %case_bottom
; <label>:201: ; preds = %switch_top
%202 = load i32, i32* @sp, align 4
%203 = add i32 %202, 16777215
%204 = and i32 %203, 16777215
%205 = load i32, i32* @bp, align 4
%206 = zext i32 %204 to i64
%207 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %206
store i32 %205, i32* %207, align 4
store i32 %204, i32* @bp, align 4
%208 = add i32 %202, 1
%209 = and i32 %208, 16777215
store i32 %209, i32* @b, align 4
%210 = zext i32 %209 to i64
%211 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %210
%212 = load i32, i32* %211, align 4
%213 = add i32 %202, 16777214
%214 = and i32 %213, 16777215
%215 = zext i32 %214 to i64
%216 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %215
store i32 %212, i32* %216, align 4
store i32 18, i32* @a, align 4
%217 = add i32 %202, 16777213
%218 = and i32 %217, 16777215
store i32 %218, i32* @d, align 4
%219 = zext i32 %218 to i64
%220 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %219
store i32 18, i32* %220, align 4
store i32 %218, i32* @sp, align 4
store i32 12, i32* @pc, align 4
br label %case_bottom
; <label>:221: ; preds = %switch_top
%222 = load i32, i32* @b, align 4
store i32 %222, i32* @a, align 4
%223 = load i32, i32* @sp, align 4
%224 = add i32 %223, 1
%225 = and i32 %224, 16777215
store i32 %225, i32* @sp, align 4
store i32 1, i32* @b, align 4
%226 = icmp eq i32 %222, 0
br i1 %226, label %case_bottom, label %227
; <label>:227: ; preds = %221
store i32 21, i32* @pc, align 4
br label %case_bottom
; <label>:228: ; preds = %switch_top
%229 = load i32, i32* @sp, align 4
%230 = add i32 %229, 16777215
%231 = and i32 %230, 16777215
store i32 %231, i32* @d, align 4
%232 = zext i32 %231 to i64
%233 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %232
store i32 97, i32* %233, align 4
%234 = load i32, i32* @bp, align 4
%235 = add i32 %234, 2
%236 = and i32 %235, 16777215
%237 = zext i32 %236 to i64
%238 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %237
%239 = load i32, i32* %238, align 4
%240 = and i32 %229, 16777215
store i32 %240, i32* @sp, align 4
%241 = icmp ugt i32 %239, 96
%242 = zext i1 %241 to i32
store i32 %242, i32* @a, align 4
store i32 0, i32* @b, align 4
br i1 %241, label %case_bottom, label %243
; <label>:243: ; preds = %228
store i32 20, i32* @pc, align 4
br label %case_bottom
; <label>:244: ; preds = %switch_top
%245 = load i32, i32* @bp, align 4
%246 = add i32 %245, 2
%247 = and i32 %246, 16777215
%248 = zext i32 %247 to i64
%249 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %248
%250 = load i32, i32* %249, align 4
%251 = load i32, i32* @sp, align 4
%252 = add i32 %251, 16777215
%253 = and i32 %252, 16777215
store i32 %253, i32* @d, align 4
%254 = zext i32 %253 to i64
%255 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %254
store i32 %250, i32* %255, align 4
%256 = and i32 %251, 16777215
store i32 %256, i32* @sp, align 4
%257 = icmp ult i32 %250, 103
%258 = zext i1 %257 to i32
store i32 %258, i32* @a, align 4
store i32 %258, i32* @b, align 4
br label %case_bottom
; <label>:259: ; preds = %switch_top
%260 = load i32, i32* @b, align 4
store i32 %260, i32* @a, align 4
%261 = icmp ne i32 %260, 0
%262 = zext i1 %261 to i32
store i32 %262, i32* @b, align 4
br label %case_bottom
; <label>:263: ; preds = %switch_top
%264 = load i32, i32* @b, align 4
store i32 %264, i32* @a, align 4
store i32 1, i32* @b, align 4
%265 = icmp eq i32 %264, 0
br i1 %265, label %case_bottom, label %266
; <label>:266: ; preds = %263
store i32 25, i32* @pc, align 4
br label %case_bottom
; <label>:267: ; preds = %switch_top
%268 = load i32, i32* @sp, align 4
%269 = add i32 %268, 16777215
%270 = and i32 %269, 16777215
store i32 %270, i32* @d, align 4
%271 = zext i32 %270 to i64
%272 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %271
store i32 65, i32* %272, align 4
%273 = load i32, i32* @bp, align 4
%274 = add i32 %273, 2
%275 = and i32 %274, 16777215
%276 = zext i32 %275 to i64
%277 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %276
%278 = load i32, i32* %277, align 4
%279 = and i32 %268, 16777215
store i32 %279, i32* @sp, align 4
%280 = icmp ugt i32 %278, 64
%281 = zext i1 %280 to i32
store i32 %281, i32* @a, align 4
store i32 0, i32* @b, align 4
br i1 %280, label %case_bottom, label %282
; <label>:282: ; preds = %267
store i32 24, i32* @pc, align 4
br label %case_bottom
; <label>:283: ; preds = %switch_top
%284 = load i32, i32* @bp, align 4
%285 = add i32 %284, 2
%286 = and i32 %285, 16777215
%287 = zext i32 %286 to i64
%288 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %287
%289 = load i32, i32* %288, align 4
%290 = load i32, i32* @sp, align 4
%291 = add i32 %290, 16777215
%292 = and i32 %291, 16777215
store i32 %292, i32* @d, align 4
%293 = zext i32 %292 to i64
%294 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %293
store i32 %289, i32* %294, align 4
%295 = and i32 %290, 16777215
store i32 %295, i32* @sp, align 4
%296 = icmp ult i32 %289, 71
%297 = zext i1 %296 to i32
store i32 %297, i32* @a, align 4
store i32 %297, i32* @b, align 4
br label %case_bottom
; <label>:298: ; preds = %switch_top
%299 = load i32, i32* @b, align 4
store i32 %299, i32* @a, align 4
%300 = icmp ne i32 %299, 0
%301 = zext i1 %300 to i32
store i32 %301, i32* @b, align 4
br label %case_bottom
; <label>:302: ; preds = %switch_top
%303 = load i32, i32* @bp, align 4
%304 = zext i32 %303 to i64
%305 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %304
%306 = load i32, i32* %305, align 4
%307 = add i32 %303, 1
%308 = and i32 %307, 16777215
store i32 %306, i32* @bp, align 4
%309 = zext i32 %308 to i64
%310 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %309
%311 = load i32, i32* %310, align 4
store i32 %311, i32* @a, align 4
%312 = add i32 %303, 2
%313 = and i32 %312, 16777215
store i32 %313, i32* @sp, align 4
%314 = add i32 %311, -1
store i32 %314, i32* @pc, align 4
br label %case_bottom
; <label>:315: ; preds = %switch_top
%316 = load i32, i32* @bp, align 4
%317 = zext i32 %316 to i64
%318 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %317
%319 = load i32, i32* %318, align 4
%320 = add i32 %316, 1
%321 = and i32 %320, 16777215
store i32 %319, i32* @bp, align 4
%322 = zext i32 %321 to i64
%323 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %322
%324 = load i32, i32* %323, align 4
store i32 %324, i32* @a, align 4
%325 = add i32 %316, 2
%326 = and i32 %325, 16777215
store i32 %326, i32* @sp, align 4
%327 = add i32 %324, -1
store i32 %327, i32* @pc, align 4
br label %case_bottom
; <label>:328: ; preds = %switch_top
%329 = load i32, i32* @sp, align 4
%330 = add i32 %329, 16777215
%331 = and i32 %330, 16777215
%332 = load i32, i32* @bp, align 4
%333 = zext i32 %331 to i64
%334 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %333
store i32 %332, i32* %334, align 4
store i32 %331, i32* @bp, align 4
%335 = add i32 %329, 16777214
%336 = and i32 %335, 16777215
store i32 %336, i32* @d, align 4
%337 = zext i32 %336 to i64
%338 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %337
store i32 65, i32* %338, align 4
%339 = add i32 %329, 1
%340 = and i32 %339, 16777215
%341 = zext i32 %340 to i64
%342 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %341
%343 = load i32, i32* %342, align 4
%344 = add i32 %329, 16777215
%345 = and i32 %344, 16777215
store i32 %345, i32* @sp, align 4
%346 = icmp ugt i32 %343, 64
%347 = zext i1 %346 to i32
store i32 %347, i32* @a, align 4
store i32 0, i32* @b, align 4
br i1 %346, label %case_bottom, label %348
; <label>:348: ; preds = %328
store i32 29, i32* @pc, align 4
br label %case_bottom
; <label>:349: ; preds = %switch_top
%350 = load i32, i32* @bp, align 4
%351 = add i32 %350, 2
%352 = and i32 %351, 16777215
%353 = zext i32 %352 to i64
%354 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %353
%355 = load i32, i32* %354, align 4
%356 = load i32, i32* @sp, align 4
%357 = add i32 %356, 16777215
%358 = and i32 %357, 16777215
store i32 %358, i32* @d, align 4
%359 = zext i32 %358 to i64
%360 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %359
store i32 %355, i32* %360, align 4
%361 = and i32 %356, 16777215
store i32 %361, i32* @sp, align 4
%362 = icmp ult i32 %355, 91
%363 = zext i1 %362 to i32
store i32 %363, i32* @a, align 4
store i32 %363, i32* @b, align 4
br label %case_bottom
; <label>:364: ; preds = %switch_top
%365 = load i32, i32* @bp, align 4
%366 = zext i32 %365 to i64
%367 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %366
%368 = load i32, i32* %367, align 4
%369 = add i32 %365, 1
%370 = and i32 %369, 16777215
store i32 %368, i32* @bp, align 4
%371 = zext i32 %370 to i64
%372 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %371
%373 = load i32, i32* %372, align 4
store i32 %373, i32* @a, align 4
%374 = add i32 %365, 2
%375 = and i32 %374, 16777215
store i32 %375, i32* @sp, align 4
%376 = add i32 %373, -1
store i32 %376, i32* @pc, align 4
br label %case_bottom
; <label>:377: ; preds = %switch_top
%378 = load i32, i32* @bp, align 4
%379 = zext i32 %378 to i64
%380 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %379
%381 = load i32, i32* %380, align 4
%382 = add i32 %378, 1
%383 = and i32 %382, 16777215
store i32 %381, i32* @bp, align 4
%384 = zext i32 %383 to i64
%385 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %384
%386 = load i32, i32* %385, align 4
store i32 %386, i32* @a, align 4
%387 = add i32 %378, 2
%388 = and i32 %387, 16777215
store i32 %388, i32* @sp, align 4
%389 = add i32 %386, -1
store i32 %389, i32* @pc, align 4
br label %case_bottom
; <label>:390: ; preds = %switch_top
%391 = load i32, i32* @sp, align 4
%392 = add i32 %391, 16777215
%393 = and i32 %392, 16777215
%394 = load i32, i32* @bp, align 4
%395 = zext i32 %393 to i64
%396 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %395
store i32 %394, i32* %396, align 4
store i32 %393, i32* @bp, align 4
%397 = add i32 %391, 16777214
%398 = and i32 %397, 16777215
store i32 %398, i32* @d, align 4
%399 = zext i32 %398 to i64
%400 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %399
store i32 97, i32* %400, align 4
%401 = add i32 %391, 1
%402 = and i32 %401, 16777215
%403 = zext i32 %402 to i64
%404 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %403
%405 = load i32, i32* %404, align 4
%406 = add i32 %391, 16777215
%407 = and i32 %406, 16777215
store i32 %407, i32* @sp, align 4
%408 = icmp ugt i32 %405, 96
%409 = zext i1 %408 to i32
store i32 %409, i32* @a, align 4
store i32 0, i32* @b, align 4
br i1 %408, label %case_bottom, label %410
; <label>:410: ; preds = %390
store i32 33, i32* @pc, align 4
br label %case_bottom
; <label>:411: ; preds = %switch_top
%412 = load i32, i32* @bp, align 4
%413 = add i32 %412, 2
%414 = and i32 %413, 16777215
%415 = zext i32 %414 to i64
%416 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %415
%417 = load i32, i32* %416, align 4
%418 = load i32, i32* @sp, align 4
%419 = add i32 %418, 16777215
%420 = and i32 %419, 16777215
store i32 %420, i32* @d, align 4
%421 = zext i32 %420 to i64
%422 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %421
store i32 %417, i32* %422, align 4
%423 = and i32 %418, 16777215
store i32 %423, i32* @sp, align 4
%424 = icmp ult i32 %417, 123
%425 = zext i1 %424 to i32
store i32 %425, i32* @a, align 4
store i32 %425, i32* @b, align 4
br label %case_bottom
; <label>:426: ; preds = %switch_top
%427 = load i32, i32* @b, align 4
store i32 %427, i32* @a, align 4
store i32 1, i32* @b, align 4
%428 = icmp eq i32 %427, 0
br i1 %428, label %case_bottom, label %429
; <label>:429: ; preds = %426
store i32 37, i32* @pc, align 4
br label %case_bottom
; <label>:430: ; preds = %switch_top
%431 = load i32, i32* @sp, align 4
%432 = add i32 %431, 16777215
%433 = and i32 %432, 16777215
store i32 %433, i32* @d, align 4
%434 = zext i32 %433 to i64
%435 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %434
store i32 65, i32* %435, align 4
%436 = load i32, i32* @bp, align 4
%437 = add i32 %436, 2
%438 = and i32 %437, 16777215
%439 = zext i32 %438 to i64
%440 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %439
%441 = load i32, i32* %440, align 4
%442 = and i32 %431, 16777215
store i32 %442, i32* @sp, align 4
%443 = icmp ugt i32 %441, 64
%444 = zext i1 %443 to i32
store i32 %444, i32* @a, align 4
store i32 0, i32* @b, align 4
br i1 %443, label %case_bottom, label %445
; <label>:445: ; preds = %430
store i32 36, i32* @pc, align 4
br label %case_bottom
; <label>:446: ; preds = %switch_top
%447 = load i32, i32* @bp, align 4
%448 = add i32 %447, 2
%449 = and i32 %448, 16777215
%450 = zext i32 %449 to i64
%451 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %450
%452 = load i32, i32* %451, align 4
%453 = load i32, i32* @sp, align 4
%454 = add i32 %453, 16777215
%455 = and i32 %454, 16777215
store i32 %455, i32* @d, align 4
%456 = zext i32 %455 to i64
%457 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %456
store i32 %452, i32* %457, align 4
%458 = and i32 %453, 16777215
store i32 %458, i32* @sp, align 4
%459 = icmp ult i32 %452, 91
%460 = zext i1 %459 to i32
store i32 %460, i32* @a, align 4
store i32 %460, i32* @b, align 4
br label %case_bottom
; <label>:461: ; preds = %switch_top
%462 = load i32, i32* @b, align 4
store i32 %462, i32* @a, align 4
%463 = icmp ne i32 %462, 0
%464 = zext i1 %463 to i32
store i32 %464, i32* @b, align 4
br label %case_bottom
; <label>:465: ; preds = %switch_top
%466 = load i32, i32* @bp, align 4
%467 = zext i32 %466 to i64
%468 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %467
%469 = load i32, i32* %468, align 4
%470 = add i32 %466, 1
%471 = and i32 %470, 16777215
store i32 %469, i32* @bp, align 4
%472 = zext i32 %471 to i64
%473 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %472
%474 = load i32, i32* %473, align 4
store i32 %474, i32* @a, align 4
%475 = add i32 %466, 2
%476 = and i32 %475, 16777215
store i32 %476, i32* @sp, align 4
%477 = add i32 %474, -1
store i32 %477, i32* @pc, align 4
br label %case_bottom
; <label>:478: ; preds = %switch_top
%479 = load i32, i32* @bp, align 4
%480 = zext i32 %479 to i64
%481 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %480
%482 = load i32, i32* %481, align 4
%483 = add i32 %479, 1
%484 = and i32 %483, 16777215
store i32 %482, i32* @bp, align 4
%485 = zext i32 %484 to i64
%486 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %485
%487 = load i32, i32* %486, align 4
store i32 %487, i32* @a, align 4
%488 = add i32 %479, 2
%489 = and i32 %488, 16777215
store i32 %489, i32* @sp, align 4
%490 = add i32 %487, -1
store i32 %490, i32* @pc, align 4
br label %case_bottom
; <label>:491: ; preds = %switch_top
%492 = load i32, i32* @sp, align 4
%493 = add i32 %492, 16777215
%494 = and i32 %493, 16777215
%495 = load i32, i32* @bp, align 4
%496 = zext i32 %494 to i64
%497 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %496
store i32 %495, i32* %497, align 4
store i32 %494, i32* @bp, align 4
%498 = add i32 %492, 1
%499 = and i32 %498, 16777215
store i32 %499, i32* @b, align 4
%500 = zext i32 %499 to i64
%501 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %500
%502 = load i32, i32* %501, align 4
%503 = add i32 %492, 16777214
%504 = and i32 %503, 16777215
%505 = zext i32 %504 to i64
%506 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %505
store i32 %502, i32* %506, align 4
store i32 41, i32* @a, align 4
%507 = add i32 %492, 16777213
%508 = and i32 %507, 16777215
store i32 %508, i32* @d, align 4
%509 = zext i32 %508 to i64
%510 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %509
store i32 41, i32* %510, align 4
store i32 %508, i32* @sp, align 4
store i32 31, i32* @pc, align 4
br label %case_bottom
; <label>:511: ; preds = %switch_top
%512 = load i32, i32* @b, align 4
store i32 %512, i32* @a, align 4
%513 = load i32, i32* @sp, align 4
%514 = add i32 %513, 1
%515 = and i32 %514, 16777215
store i32 %515, i32* @sp, align 4
store i32 1, i32* @b, align 4
%516 = icmp eq i32 %512, 0
br i1 %516, label %case_bottom, label %517
; <label>:517: ; preds = %511
store i32 43, i32* @pc, align 4
br label %case_bottom
; <label>:518: ; preds = %switch_top
%519 = load i32, i32* @bp, align 4
%520 = add i32 %519, 2
%521 = and i32 %520, 16777215
store i32 %521, i32* @b, align 4
%522 = zext i32 %521 to i64
%523 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %522
%524 = load i32, i32* %523, align 4
%525 = load i32, i32* @sp, align 4
%526 = add i32 %525, 16777215
%527 = and i32 %526, 16777215
%528 = zext i32 %527 to i64
%529 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %528
store i32 %524, i32* %529, align 4
store i32 43, i32* @a, align 4
%530 = add i32 %525, 16777214
%531 = and i32 %530, 16777215
store i32 %531, i32* @d, align 4
%532 = zext i32 %531 to i64
%533 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %532
store i32 43, i32* %533, align 4
store i32 %531, i32* @sp, align 4
store i32 12, i32* @pc, align 4
br label %case_bottom
; <label>:534: ; preds = %switch_top
%535 = load i32, i32* @b, align 4
store i32 %535, i32* @a, align 4
%536 = load i32, i32* @sp, align 4
%537 = add i32 %536, 1
%538 = and i32 %537, 16777215
store i32 %538, i32* @sp, align 4
%539 = icmp ne i32 %535, 0
%540 = zext i1 %539 to i32
store i32 %540, i32* @b, align 4
br label %case_bottom
; <label>:541: ; preds = %switch_top
%542 = load i32, i32* @bp, align 4
%543 = zext i32 %542 to i64
%544 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %543
%545 = load i32, i32* %544, align 4
%546 = add i32 %542, 1
%547 = and i32 %546, 16777215
store i32 %545, i32* @bp, align 4
%548 = zext i32 %547 to i64
%549 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %548
%550 = load i32, i32* %549, align 4
store i32 %550, i32* @a, align 4
%551 = add i32 %542, 2
%552 = and i32 %551, 16777215
store i32 %552, i32* @sp, align 4
%553 = add i32 %550, -1
store i32 %553, i32* @pc, align 4
br label %case_bottom
; <label>:554: ; preds = %switch_top
%555 = load i32, i32* @bp, align 4
%556 = zext i32 %555 to i64
%557 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %556
%558 = load i32, i32* %557, align 4
%559 = add i32 %555, 1
%560 = and i32 %559, 16777215
store i32 %558, i32* @bp, align 4
%561 = zext i32 %560 to i64
%562 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %561
%563 = load i32, i32* %562, align 4
store i32 %563, i32* @a, align 4
%564 = add i32 %555, 2
%565 = and i32 %564, 16777215
store i32 %565, i32* @sp, align 4
%566 = add i32 %563, -1
store i32 %566, i32* @pc, align 4
br label %case_bottom
; <label>:567: ; preds = %switch_top
%568 = load i32, i32* @sp, align 4
%569 = add i32 %568, 16777215
%570 = and i32 %569, 16777215
%571 = load i32, i32* @bp, align 4
%572 = zext i32 %570 to i64
%573 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %572
store i32 %571, i32* %573, align 4
store i32 %570, i32* @bp, align 4
%574 = add i32 %568, 1
%575 = and i32 %574, 16777215
store i32 %575, i32* @b, align 4
%576 = zext i32 %575 to i64
%577 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %576
%578 = load i32, i32* %577, align 4
%579 = add i32 %568, 16777214
%580 = and i32 %579, 16777215
%581 = zext i32 %580 to i64
%582 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %581
store i32 %578, i32* %582, align 4
store i32 47, i32* @a, align 4
%583 = add i32 %568, 16777213
%584 = and i32 %583, 16777215
store i32 %584, i32* @d, align 4
%585 = zext i32 %584 to i64
%586 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %585
store i32 47, i32* %586, align 4
store i32 %584, i32* @sp, align 4
store i32 0, i32* @pc, align 4
br label %case_bottom
; <label>:587: ; preds = %switch_top
%588 = load i32, i32* @b, align 4
store i32 %588, i32* @a, align 4
%589 = load i32, i32* @sp, align 4
%590 = add i32 %589, 1
%591 = and i32 %590, 16777215
store i32 %591, i32* @sp, align 4
store i32 1, i32* @b, align 4
%592 = icmp eq i32 %588, 0
br i1 %592, label %case_bottom, label %593
; <label>:593: ; preds = %587
store i32 50, i32* @pc, align 4
br label %case_bottom
; <label>:594: ; preds = %switch_top
%595 = load i32, i32* @sp, align 4
%596 = add i32 %595, 16777215
%597 = and i32 %596, 16777215
store i32 %597, i32* @d, align 4
%598 = zext i32 %597 to i64
%599 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %598
store i32 32, i32* %599, align 4
%600 = load i32, i32* @bp, align 4
%601 = add i32 %600, 2
%602 = and i32 %601, 16777215
%603 = zext i32 %602 to i64
%604 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %603
%605 = load i32, i32* %604, align 4
%606 = and i32 %595, 16777215
store i32 %606, i32* @sp, align 4
%607 = icmp ugt i32 %605, 31
%608 = zext i1 %607 to i32
store i32 %608, i32* @a, align 4
store i32 0, i32* @b, align 4
br i1 %607, label %case_bottom, label %609
; <label>:609: ; preds = %594
store i32 49, i32* @pc, align 4
br label %case_bottom
; <label>:610: ; preds = %switch_top
%611 = load i32, i32* @bp, align 4
%612 = add i32 %611, 2
%613 = and i32 %612, 16777215
%614 = zext i32 %613 to i64
%615 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %614
%616 = load i32, i32* %615, align 4
%617 = load i32, i32* @sp, align 4
%618 = add i32 %617, 16777215
%619 = and i32 %618, 16777215
store i32 %619, i32* @d, align 4
%620 = zext i32 %619 to i64
%621 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %620
store i32 %616, i32* %621, align 4
%622 = and i32 %617, 16777215
store i32 %622, i32* @sp, align 4
%623 = icmp ult i32 %616, 127
%624 = zext i1 %623 to i32
store i32 %624, i32* @a, align 4
store i32 %624, i32* @b, align 4
br label %case_bottom
; <label>:625: ; preds = %switch_top
%626 = load i32, i32* @b, align 4
store i32 %626, i32* @a, align 4
%627 = icmp ne i32 %626, 0
%628 = zext i1 %627 to i32
store i32 %628, i32* @b, align 4
br label %case_bottom
; <label>:629: ; preds = %switch_top
%630 = load i32, i32* @bp, align 4
%631 = zext i32 %630 to i64
%632 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %631
%633 = load i32, i32* %632, align 4
%634 = add i32 %630, 1
%635 = and i32 %634, 16777215
store i32 %633, i32* @bp, align 4
%636 = zext i32 %635 to i64
%637 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %636
%638 = load i32, i32* %637, align 4
store i32 %638, i32* @a, align 4
%639 = add i32 %630, 2
%640 = and i32 %639, 16777215
store i32 %640, i32* @sp, align 4
%641 = add i32 %638, -1
store i32 %641, i32* @pc, align 4
br label %case_bottom
; <label>:642: ; preds = %switch_top
%643 = load i32, i32* @bp, align 4
%644 = zext i32 %643 to i64
%645 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %644
%646 = load i32, i32* %645, align 4
%647 = add i32 %643, 1
%648 = and i32 %647, 16777215
store i32 %646, i32* @bp, align 4
%649 = zext i32 %648 to i64
%650 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %649
%651 = load i32, i32* %650, align 4
store i32 %651, i32* @a, align 4
%652 = add i32 %643, 2
%653 = and i32 %652, 16777215
store i32 %653, i32* @sp, align 4
%654 = add i32 %651, -1
store i32 %654, i32* @pc, align 4
br label %case_bottom
; <label>:655: ; preds = %switch_top
%656 = load i32, i32* @sp, align 4
%657 = add i32 %656, 16777215
%658 = and i32 %657, 16777215
%659 = load i32, i32* @bp, align 4
%660 = zext i32 %658 to i64
%661 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %660
store i32 %659, i32* %661, align 4
store i32 %658, i32* @bp, align 4
%662 = add i32 %656, 16777162
%663 = and i32 %662, 16777215
%664 = zext i32 %663 to i64
%665 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %664
store i32 1, i32* %665, align 4
%666 = add i32 %656, 16777167
%667 = and i32 %666, 16777215
%668 = add i32 %656, 16777161
%669 = and i32 %668, 16777215
%670 = load i32, i32* @b, align 4
%671 = zext i32 %669 to i64
%672 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %671
store i32 %670, i32* %672, align 4
%673 = add i32 %656, 16777160
%674 = and i32 %673, 16777215
store i32 %674, i32* @d, align 4
%675 = zext i32 %674 to i64
%676 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %675
store i32 %667, i32* %676, align 4
%677 = add i32 %656, 16777162
%678 = and i32 %677, 16777215
store i32 %667, i32* @c, align 4
%679 = zext i32 %678 to i64
%680 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %679
%681 = load i32, i32* %680, align 4
%682 = zext i32 %667 to i64
%683 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %682
store i32 %681, i32* %683, align 4
%684 = add i32 %656, 16777163
%685 = and i32 %684, 16777215
store i32 %685, i32* @sp, align 4
store i32 0, i32* @a, align 4
%686 = add i32 %656, 16777166
%687 = and i32 %686, 16777215
store i32 %687, i32* @b, align 4
%688 = zext i32 %687 to i64
%689 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %688
store i32 0, i32* %689, align 4
br label %case_bottom
; <label>:690: ; preds = %switch_top
%691 = load i32, i32* @bp, align 4
%692 = add i32 %691, 3
%693 = and i32 %692, 16777215
%694 = zext i32 %693 to i64
%695 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %694
%696 = load i32, i32* %695, align 4
%697 = load i32, i32* @sp, align 4
%698 = add i32 %697, 16777215
%699 = and i32 %698, 16777215
%700 = zext i32 %699 to i64
%701 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %700
store i32 %696, i32* %701, align 4
%702 = add i32 %691, 16777192
%703 = and i32 %702, 16777215
%704 = add i32 %697, 16777214
%705 = and i32 %704, 16777215
%706 = zext i32 %705 to i64
%707 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %706
store i32 %693, i32* %707, align 4
%708 = add i32 %697, 16777213
%709 = and i32 %708, 16777215
%710 = zext i32 %709 to i64
%711 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %710
store i32 %703, i32* %711, align 4
%712 = add i32 %691, 16777167
%713 = and i32 %712, 16777215
%714 = zext i32 %713 to i64
%715 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %714
%716 = load i32, i32* %715, align 4
%717 = add i32 %716, %702
%718 = and i32 %717, 16777215
%719 = add i32 %697, 16777215
%720 = and i32 %719, 16777215
store i32 %718, i32* @c, align 4
%721 = zext i32 %720 to i64
%722 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %721
%723 = load i32, i32* %722, align 4
%724 = zext i32 %718 to i64
%725 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %724
store i32 %723, i32* %725, align 4
%726 = load i32, i32* %695, align 4
%727 = add i32 %697, 16777215
%728 = and i32 %727, 16777215
%729 = zext i32 %728 to i64
%730 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %729
store i32 %726, i32* %730, align 4
%731 = load i32, i32* %695, align 4
%732 = add i32 %731, %726
%733 = and i32 %732, 16777215
%734 = add i32 %691, 16777166
%735 = and i32 %734, 16777215
%736 = zext i32 %735 to i64
%737 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %736
store i32 %733, i32* %737, align 4
%738 = load i32, i32* @bp, align 4
%739 = add i32 %738, 2
%740 = and i32 %739, 16777215
%741 = zext i32 %740 to i64
%742 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %741
%743 = load i32, i32* %742, align 4
%744 = add i32 %697, 16777215
%745 = and i32 %744, 16777215
store i32 %745, i32* @d, align 4
%746 = zext i32 %745 to i64
%747 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %746
store i32 %743, i32* %747, align 4
%748 = add i32 %738, 16777166
%749 = and i32 %748, 16777215
%750 = zext i32 %749 to i64
%751 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %750
%752 = load i32, i32* %751, align 4
%753 = and i32 %697, 16777215
store i32 %753, i32* @sp, align 4
%754 = icmp ult i32 %743, %752
%755 = zext i1 %754 to i32
store i32 %755, i32* @a, align 4
store i32 1, i32* @b, align 4
br i1 %754, label %756, label %case_bottom
; <label>:756: ; preds = %690
store i32 55, i32* @pc, align 4
br label %case_bottom
; <label>:757: ; preds = %switch_top
%758 = load i32, i32* @bp, align 4
%759 = add i32 %758, 16777166
%760 = and i32 %759, 16777215
%761 = zext i32 %760 to i64
%762 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %761
%763 = load i32, i32* %762, align 4
%764 = load i32, i32* @sp, align 4
%765 = add i32 %764, 16777215
%766 = and i32 %765, 16777215
store i32 %766, i32* @d, align 4
%767 = zext i32 %766 to i64
%768 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %767
store i32 %763, i32* %768, align 4
%769 = add i32 %758, 3
%770 = and i32 %769, 16777215
%771 = zext i32 %770 to i64
%772 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %771
%773 = load i32, i32* %772, align 4
%774 = and i32 %764, 16777215
store i32 %774, i32* @sp, align 4
%775 = icmp ult i32 %763, %773
%776 = zext i1 %775 to i32
store i32 %776, i32* @a, align 4
store i32 %776, i32* @b, align 4
br label %case_bottom
; <label>:777: ; preds = %switch_top
%778 = load i32, i32* @b, align 4
store i32 %778, i32* @a, align 4
%779 = icmp eq i32 %778, 0
br i1 %779, label %780, label %case_bottom
; <label>:780: ; preds = %777
store i32 57, i32* @pc, align 4
br label %case_bottom
; <label>:781: ; preds = %switch_top
store i32 59, i32* @pc, align 4
br label %case_bottom
; <label>:782: ; preds = %switch_top
%783 = load i32, i32* @bp, align 4
%784 = add i32 %783, 16777168
%785 = and i32 %784, 16777215
%786 = load i32, i32* @sp, align 4
%787 = add i32 %786, 16777215
%788 = and i32 %787, 16777215
%789 = load i32, i32* @b, align 4
%790 = zext i32 %788 to i64
%791 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %790
store i32 %789, i32* %791, align 4
%792 = add i32 %786, 16777214
%793 = and i32 %792, 16777215
%794 = zext i32 %793 to i64
%795 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %794
store i32 %785, i32* %795, align 4
%796 = add i32 %783, 16777167
%797 = and i32 %796, 16777215
%798 = zext i32 %797 to i64
%799 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %798
%800 = load i32, i32* %799, align 4
%801 = add i32 %800, %784
%802 = and i32 %801, 16777215
%803 = zext i32 %802 to i64
%804 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %803
%805 = load i32, i32* %804, align 4
%806 = add i32 %786, 16777215
%807 = and i32 %806, 16777215
%808 = zext i32 %807 to i64
%809 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %808
store i32 %805, i32* %809, align 4
%810 = add i32 %786, 16777214
%811 = and i32 %810, 16777215
%812 = zext i32 %811 to i64
%813 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %812
store i32 %802, i32* %813, align 4
%814 = add i32 %786, 16777213
%815 = and i32 %814, 16777215
%816 = zext i32 %815 to i64
%817 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %816
store i32 %785, i32* %817, align 4
%818 = load i32, i32* %799, align 4
%819 = add i32 %818, %784
%820 = and i32 %819, 16777215
%821 = add i32 %786, 16777215
%822 = and i32 %821, 16777215
%823 = zext i32 %820 to i64
%824 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %823
%825 = load i32, i32* %824, align 4
%826 = zext i32 %822 to i64
%827 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %826
%828 = load i32, i32* %827, align 4
%829 = add i32 %825, %828
%830 = and i32 %829, 16777215
store i32 %830, i32* %827, align 4
%831 = load i32, i32* @bp, align 4
%832 = add i32 %831, 16777168
%833 = and i32 %832, 16777215
%834 = add i32 %786, 16777214
%835 = and i32 %834, 16777215
%836 = zext i32 %835 to i64
%837 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %836
store i32 %825, i32* %837, align 4
%838 = add i32 %786, 16777213
%839 = and i32 %838, 16777215
%840 = zext i32 %839 to i64
%841 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %840
store i32 %833, i32* %841, align 4
%842 = add i32 %831, 16777167
%843 = and i32 %842, 16777215
%844 = zext i32 %843 to i64
%845 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %844
%846 = load i32, i32* %845, align 4
%847 = add i32 %786, 16777212
%848 = and i32 %847, 16777215
store i32 %848, i32* @d, align 4
%849 = zext i32 %848 to i64
%850 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %849
store i32 %846, i32* %850, align 4
%851 = add i32 %846, 1
%852 = load i32, i32* %841, align 4
%853 = add i32 %851, %852
%854 = and i32 %853, 16777215
%855 = add i32 %786, 16777215
%856 = and i32 %855, 16777215
store i32 %854, i32* @c, align 4
%857 = zext i32 %856 to i64
%858 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %857
%859 = load i32, i32* %858, align 4
%860 = zext i32 %854 to i64
%861 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %860
store i32 %859, i32* %861, align 4
%862 = and i32 %786, 16777215
store i32 %862, i32* @sp, align 4
%863 = add i32 %831, 16777166
%864 = and i32 %863, 16777215
%865 = zext i32 %864 to i64
%866 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %865
%867 = load i32, i32* %866, align 4
store i32 %867, i32* @a, align 4
%868 = add i32 %831, 3
%869 = and i32 %868, 16777215
store i32 %869, i32* @b, align 4
%870 = zext i32 %869 to i64
%871 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %870
store i32 %867, i32* %871, align 4
br label %case_bottom
; <label>:872: ; preds = %switch_top
%873 = load i32, i32* @bp, align 4
%874 = add i32 %873, 16777167
%875 = and i32 %874, 16777215
%876 = zext i32 %875 to i64
%877 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %876
%878 = load i32, i32* %877, align 4
%879 = load i32, i32* @sp, align 4
%880 = add i32 %879, 16777215
%881 = and i32 %880, 16777215
store i32 %881, i32* @d, align 4
%882 = zext i32 %881 to i64
%883 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %882
store i32 %878, i32* %883, align 4
%884 = add i32 %878, 1
%885 = and i32 %884, 16777215
store i32 %875, i32* @b, align 4
store i32 %885, i32* %877, align 4
%886 = load i32, i32* %883, align 4
store i32 %886, i32* @a, align 4
%887 = and i32 %879, 16777215
store i32 %887, i32* @sp, align 4
store i32 53, i32* @pc, align 4
br label %case_bottom
; <label>:888: ; preds = %switch_top
%889 = load i32, i32* @bp, align 4
%890 = add i32 %889, 16777165
%891 = and i32 %890, 16777215
store i32 %891, i32* @b, align 4
store i32 0, i32* @a, align 4
%892 = zext i32 %891 to i64
%893 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %892
store i32 0, i32* %893, align 4
br label %case_bottom
; <label>:894: ; preds = %switch_top
%895 = load i32, i32* @sp, align 4
%896 = load i32, i32* @bp, align 4
%897 = add i32 %896, 16777192
%898 = and i32 %897, 16777215
%899 = add i32 %895, 16777215
%900 = and i32 %899, 16777215
%901 = zext i32 %900 to i64
%902 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %901
store i32 %895, i32* %902, align 4
%903 = add i32 %895, 16777214
%904 = and i32 %903, 16777215
%905 = zext i32 %904 to i64
%906 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %905
store i32 %898, i32* %906, align 4
%907 = add i32 %896, 16777167
%908 = and i32 %907, 16777215
%909 = zext i32 %908 to i64
%910 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %909
%911 = load i32, i32* %910, align 4
%912 = add i32 %911, %897
%913 = and i32 %912, 16777215
store i32 %913, i32* @c, align 4
%914 = zext i32 %913 to i64
%915 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %914
%916 = load i32, i32* %915, align 4
%917 = add i32 %896, 16777164
%918 = and i32 %917, 16777215
%919 = zext i32 %918 to i64
%920 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %919
store i32 %916, i32* %920, align 4
%921 = add i32 %895, 16777215
%922 = and i32 %921, 16777215
store i32 %922, i32* @d, align 4
%923 = zext i32 %922 to i64
%924 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %923
store i32 %916, i32* %924, align 4
%925 = add i32 %896, 2
%926 = and i32 %925, 16777215
%927 = zext i32 %926 to i64
%928 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %927
%929 = load i32, i32* %928, align 4
store i32 %929, i32* @b, align 4
%930 = and i32 %895, 16777215
store i32 %930, i32* @sp, align 4
%931 = icmp ule i32 %916, %929
%932 = zext i1 %931 to i32
store i32 %932, i32* @a, align 4
br i1 %931, label %case_bottom, label %933
; <label>:933: ; preds = %894
store i32 62, i32* @pc, align 4
br label %case_bottom
; <label>:934: ; preds = %switch_top
%935 = load i32, i32* @bp, align 4
%936 = add i32 %935, 16777165
%937 = and i32 %936, 16777215
%938 = zext i32 %937 to i64
%939 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %938
%940 = load i32, i32* %939, align 4
%941 = load i32, i32* @sp, align 4
%942 = add i32 %941, 16777215
%943 = and i32 %942, 16777215
%944 = zext i32 %943 to i64
%945 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %944
store i32 %940, i32* %945, align 4
%946 = add i32 %935, 16777168
%947 = and i32 %946, 16777215
%948 = add i32 %941, 16777214
%949 = and i32 %948, 16777215
%950 = zext i32 %949 to i64
%951 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %950
store i32 %937, i32* %951, align 4
%952 = add i32 %941, 16777213
%953 = and i32 %952, 16777215
%954 = zext i32 %953 to i64
%955 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %954
store i32 %947, i32* %955, align 4
%956 = add i32 %935, 16777167
%957 = and i32 %956, 16777215
%958 = zext i32 %957 to i64
%959 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %958
%960 = load i32, i32* %959, align 4
%961 = add i32 %960, %946
%962 = and i32 %961, 16777215
store i32 %962, i32* @c, align 4
%963 = add i32 %941, 16777215
%964 = and i32 %963, 16777215
%965 = zext i32 %962 to i64
%966 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %965
%967 = load i32, i32* %966, align 4
%968 = zext i32 %964 to i64
%969 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %968
%970 = load i32, i32* %969, align 4
%971 = add i32 %967, %970
%972 = and i32 %971, 16777215
store i32 %972, i32* %939, align 4
%973 = add i32 %935, 2
%974 = and i32 %973, 16777215
%975 = zext i32 %974 to i64
%976 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %975
%977 = load i32, i32* %976, align 4
%978 = add i32 %941, 16777215
%979 = and i32 %978, 16777215
store i32 %979, i32* @d, align 4
%980 = zext i32 %979 to i64
%981 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %980
store i32 %977, i32* %981, align 4
%982 = add i32 %935, 16777164
%983 = and i32 %982, 16777215
%984 = zext i32 %983 to i64
%985 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %984
%986 = load i32, i32* %985, align 4
%987 = and i32 %941, 16777215
store i32 %987, i32* @sp, align 4
%988 = sub i32 %977, %986
%989 = and i32 %988, 16777215
store i32 %989, i32* @a, align 4
%990 = load i32, i32* @bp, align 4
%991 = add i32 %990, 2
%992 = and i32 %991, 16777215
store i32 %992, i32* @b, align 4
%993 = zext i32 %992 to i64
%994 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %993
store i32 %989, i32* %994, align 4
br label %case_bottom
; <label>:995: ; preds = %switch_top
%996 = load i32, i32* @bp, align 4
%997 = add i32 %996, 16777167
%998 = and i32 %997, 16777215
%999 = zext i32 %998 to i64
%1000 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %999
%1001 = load i32, i32* %1000, align 4
%1002 = load i32, i32* @sp, align 4
%1003 = add i32 %1002, 16777215
%1004 = and i32 %1003, 16777215
store i32 %1004, i32* @d, align 4
%1005 = zext i32 %1004 to i64
%1006 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1005
store i32 %1001, i32* %1006, align 4
store i32 0, i32* @b, align 4
%1007 = and i32 %1002, 16777215
store i32 %1007, i32* @sp, align 4
%1008 = icmp eq i32 %1001, 0
%1009 = zext i1 %1008 to i32
store i32 %1009, i32* @a, align 4
br i1 %1008, label %case_bottom, label %1010
; <label>:1010: ; preds = %995
store i32 64, i32* @pc, align 4
br label %case_bottom
; <label>:1011: ; preds = %switch_top
store i32 65, i32* @pc, align 4
br label %case_bottom
; <label>:1012: ; preds = %switch_top
%1013 = load i32, i32* @bp, align 4
%1014 = add i32 %1013, 16777167
%1015 = and i32 %1014, 16777215
%1016 = zext i32 %1015 to i64
%1017 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1016
%1018 = load i32, i32* %1017, align 4
%1019 = load i32, i32* @sp, align 4
%1020 = add i32 %1019, 16777215
%1021 = and i32 %1020, 16777215
store i32 %1021, i32* @d, align 4
%1022 = zext i32 %1021 to i64
%1023 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1022
store i32 %1018, i32* %1023, align 4
%1024 = add i32 %1018, 16777215
%1025 = and i32 %1024, 16777215
store i32 %1015, i32* @b, align 4
store i32 %1025, i32* %1017, align 4
%1026 = load i32, i32* %1023, align 4
store i32 %1026, i32* @a, align 4
%1027 = and i32 %1019, 16777215
store i32 %1027, i32* @sp, align 4
store i32 60, i32* @pc, align 4
br label %case_bottom
; <label>:1028: ; preds = %switch_top
%1029 = load i32, i32* @bp, align 4
%1030 = add i32 %1029, 16777165
%1031 = and i32 %1030, 16777215
%1032 = zext i32 %1031 to i64
%1033 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1032
%1034 = load i32, i32* %1033, align 4
%1035 = load i32, i32* @sp, align 4
%1036 = add i32 %1035, 16777215
%1037 = and i32 %1036, 16777215
%1038 = zext i32 %1037 to i64
%1039 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1038
store i32 %1034, i32* %1039, align 4
%1040 = add i32 %1029, 4
%1041 = and i32 %1040, 16777215
%1042 = zext i32 %1041 to i64
%1043 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1042
%1044 = load i32, i32* %1043, align 4
%1045 = zext i32 %1044 to i64
%1046 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1045
store i32 %1034, i32* %1046, align 4
%1047 = add i32 %1029, 2
%1048 = and i32 %1047, 16777215
%1049 = zext i32 %1048 to i64
%1050 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1049
%1051 = load i32, i32* %1050, align 4
%1052 = add i32 %1035, 16777215
%1053 = and i32 %1052, 16777215
store i32 %1053, i32* @d, align 4
%1054 = zext i32 %1053 to i64
%1055 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1054
store i32 %1051, i32* %1055, align 4
%1056 = load i32, i32* %1043, align 4
store i32 %1056, i32* @c, align 4
store i32 %1051, i32* @b, align 4
%1057 = add i32 %1056, 1
%1058 = and i32 %1057, 16777215
%1059 = zext i32 %1058 to i64
%1060 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1059
store i32 %1051, i32* %1060, align 4
%1061 = zext i32 %1029 to i64
%1062 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1061
%1063 = load i32, i32* %1062, align 4
%1064 = add i32 %1029, 1
%1065 = and i32 %1064, 16777215
store i32 %1063, i32* @bp, align 4
%1066 = zext i32 %1065 to i64
%1067 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1066
%1068 = load i32, i32* %1067, align 4
store i32 %1068, i32* @a, align 4
store i32 %1048, i32* @sp, align 4
%1069 = add i32 %1068, -1
store i32 %1069, i32* @pc, align 4
br label %case_bottom
; <label>:1070: ; preds = %switch_top
%1071 = load i32, i32* @sp, align 4
%1072 = add i32 %1071, 16777215
%1073 = and i32 %1072, 16777215
%1074 = load i32, i32* @bp, align 4
%1075 = zext i32 %1073 to i64
%1076 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1075
store i32 %1074, i32* %1076, align 4
store i32 %1073, i32* @bp, align 4
%1077 = add i32 %1071, 1
%1078 = and i32 %1077, 16777215
%1079 = zext i32 %1078 to i64
%1080 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1079
%1081 = load i32, i32* %1080, align 4
%1082 = add i32 %1071, 16777161
%1083 = and i32 %1082, 16777215
store i32 %1083, i32* @d, align 4
%1084 = zext i32 %1083 to i64
%1085 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1084
store i32 %1081, i32* %1085, align 4
%1086 = add i32 %1071, 2
%1087 = and i32 %1086, 16777215
%1088 = zext i32 %1087 to i64
%1089 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1088
%1090 = load i32, i32* %1089, align 4
store i32 %1090, i32* @b, align 4
%1091 = add i32 %1071, 16777162
%1092 = and i32 %1091, 16777215
store i32 %1092, i32* @sp, align 4
%1093 = icmp ult i32 %1081, %1090
%1094 = zext i1 %1093 to i32
store i32 %1094, i32* @a, align 4
br i1 %1093, label %case_bottom, label %1095
; <label>:1095: ; preds = %1070
store i32 68, i32* @pc, align 4
br label %case_bottom
; <label>:1096: ; preds = %switch_top
%1097 = load i32, i32* @bp, align 4
%1098 = add i32 %1097, 2
%1099 = and i32 %1098, 16777215
%1100 = zext i32 %1099 to i64
%1101 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1100
%1102 = load i32, i32* %1101, align 4
%1103 = add i32 %1097, 16777213
%1104 = and i32 %1103, 16777215
%1105 = zext i32 %1104 to i64
%1106 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1105
store i32 %1102, i32* %1106, align 4
%1107 = add i32 %1097, 3
%1108 = and i32 %1107, 16777215
%1109 = zext i32 %1108 to i64
%1110 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1109
%1111 = load i32, i32* %1110, align 4
store i32 %1111, i32* %1101, align 4
%1112 = load i32, i32* %1106, align 4
store i32 %1112, i32* @a, align 4
store i32 %1108, i32* @b, align 4
store i32 %1112, i32* %1110, align 4
br label %case_bottom
; <label>:1113: ; preds = %switch_top
%1114 = load i32, i32* @bp, align 4
%1115 = add i32 %1114, 3
%1116 = and i32 %1115, 16777215
%1117 = zext i32 %1116 to i64
%1118 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1117
%1119 = load i32, i32* %1118, align 4
%1120 = load i32, i32* @sp, align 4
%1121 = add i32 %1120, 16777215
%1122 = and i32 %1121, 16777215
store i32 %1122, i32* @d, align 4
%1123 = zext i32 %1122 to i64
%1124 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1123
store i32 %1119, i32* %1124, align 4
store i32 1, i32* @b, align 4
%1125 = and i32 %1120, 16777215
store i32 %1125, i32* @sp, align 4
%1126 = icmp eq i32 %1119, 1
%1127 = zext i1 %1126 to i32
store i32 %1127, i32* @a, align 4
br i1 %1126, label %case_bottom, label %1128
; <label>:1128: ; preds = %1113
store i32 70, i32* @pc, align 4
br label %case_bottom
; <label>:1129: ; preds = %switch_top
%1130 = load i32, i32* @bp, align 4
%1131 = add i32 %1130, 2
%1132 = and i32 %1131, 16777215
%1133 = zext i32 %1132 to i64
%1134 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1133
%1135 = load i32, i32* %1134, align 4
store i32 %1135, i32* @b, align 4
%1136 = zext i32 %1130 to i64
%1137 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1136
%1138 = load i32, i32* %1137, align 4
%1139 = add i32 %1130, 1
%1140 = and i32 %1139, 16777215
store i32 %1138, i32* @bp, align 4
%1141 = zext i32 %1140 to i64
%1142 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1141
%1143 = load i32, i32* %1142, align 4
store i32 %1143, i32* @a, align 4
store i32 %1132, i32* @sp, align 4
%1144 = add i32 %1143, -1
store i32 %1144, i32* @pc, align 4
br label %case_bottom
; <label>:1145: ; preds = %switch_top
%1146 = load i32, i32* @bp, align 4
%1147 = add i32 %1146, 3
%1148 = and i32 %1147, 16777215
%1149 = zext i32 %1148 to i64
%1150 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1149
%1151 = load i32, i32* %1150, align 4
%1152 = load i32, i32* @sp, align 4
%1153 = add i32 %1152, 16777215
%1154 = and i32 %1153, 16777215
store i32 %1154, i32* @d, align 4
%1155 = zext i32 %1154 to i64
%1156 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1155
store i32 %1151, i32* %1156, align 4
store i32 0, i32* @b, align 4
%1157 = and i32 %1152, 16777215
store i32 %1157, i32* @sp, align 4
%1158 = icmp eq i32 %1151, 0
%1159 = zext i1 %1158 to i32
store i32 %1159, i32* @a, align 4
br i1 %1158, label %case_bottom, label %1160
; <label>:1160: ; preds = %1145
store i32 72, i32* @pc, align 4
br label %case_bottom
; <label>:1161: ; preds = %switch_top
store i32 0, i32* @b, align 4
%1162 = load i32, i32* @bp, align 4
%1163 = zext i32 %1162 to i64
%1164 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1163
%1165 = load i32, i32* %1164, align 4
%1166 = add i32 %1162, 1
%1167 = and i32 %1166, 16777215
store i32 %1165, i32* @bp, align 4
%1168 = zext i32 %1167 to i64
%1169 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1168
%1170 = load i32, i32* %1169, align 4
store i32 %1170, i32* @a, align 4
%1171 = add i32 %1162, 2
%1172 = and i32 %1171, 16777215
store i32 %1172, i32* @sp, align 4
%1173 = add i32 %1170, -1
store i32 %1173, i32* @pc, align 4
br label %case_bottom
; <label>:1174: ; preds = %switch_top
%1175 = load i32, i32* @bp, align 4
%1176 = add i32 %1175, 16777215
%1177 = and i32 %1176, 16777215
%1178 = zext i32 %1177 to i64
%1179 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1178
store i32 0, i32* %1179, align 4
%1180 = add i32 %1175, 16777214
%1181 = and i32 %1180, 16777215
%1182 = zext i32 %1181 to i64
%1183 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1182
store i32 1, i32* %1183, align 4
%1184 = add i32 %1175, 2
%1185 = and i32 %1184, 16777215
%1186 = zext i32 %1185 to i64
%1187 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1186
%1188 = load i32, i32* %1187, align 4
store i32 %1188, i32* @a, align 4
%1189 = add i32 %1175, 16777213
%1190 = and i32 %1189, 16777215
store i32 %1190, i32* @b, align 4
%1191 = zext i32 %1190 to i64
%1192 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1191
store i32 %1188, i32* %1192, align 4
br label %case_bottom
; <label>:1193: ; preds = %switch_top
%1194 = load i32, i32* @bp, align 4
%1195 = add i32 %1194, 16777213
%1196 = and i32 %1195, 16777215
%1197 = zext i32 %1196 to i64
%1198 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1197
%1199 = load i32, i32* %1198, align 4
%1200 = load i32, i32* @sp, align 4
%1201 = add i32 %1200, 16777215
%1202 = and i32 %1201, 16777215
%1203 = zext i32 %1202 to i64
%1204 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1203
store i32 %1199, i32* %1204, align 4
%1205 = add i32 %1194, 16777189
%1206 = and i32 %1205, 16777215
%1207 = add i32 %1200, 16777214
%1208 = and i32 %1207, 16777215
%1209 = zext i32 %1208 to i64
%1210 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1209
store i32 %1196, i32* %1210, align 4
%1211 = add i32 %1200, 16777213
%1212 = and i32 %1211, 16777215
%1213 = zext i32 %1212 to i64
%1214 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1213
store i32 %1206, i32* %1214, align 4
%1215 = add i32 %1194, 16777215
%1216 = and i32 %1215, 16777215
%1217 = zext i32 %1216 to i64
%1218 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1217
%1219 = load i32, i32* %1218, align 4
%1220 = add i32 %1219, %1205
%1221 = and i32 %1220, 16777215
%1222 = add i32 %1200, 16777215
%1223 = and i32 %1222, 16777215
%1224 = zext i32 %1223 to i64
%1225 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1224
%1226 = load i32, i32* %1225, align 4
%1227 = zext i32 %1221 to i64
%1228 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1227
store i32 %1226, i32* %1228, align 4
%1229 = add i32 %1194, 16777214
%1230 = and i32 %1229, 16777215
%1231 = zext i32 %1230 to i64
%1232 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1231
%1233 = load i32, i32* %1232, align 4
%1234 = add i32 %1200, 16777215
%1235 = and i32 %1234, 16777215
%1236 = zext i32 %1235 to i64
%1237 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1236
store i32 %1233, i32* %1237, align 4
%1238 = add i32 %1194, 16777165
%1239 = and i32 %1238, 16777215
%1240 = add i32 %1200, 16777214
%1241 = and i32 %1240, 16777215
%1242 = zext i32 %1241 to i64
%1243 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1242
store i32 %1230, i32* %1243, align 4
%1244 = add i32 %1200, 16777213
%1245 = and i32 %1244, 16777215
%1246 = zext i32 %1245 to i64
%1247 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1246
store i32 %1239, i32* %1247, align 4
%1248 = load i32, i32* @bp, align 4
%1249 = add i32 %1248, 16777215
%1250 = and i32 %1249, 16777215
%1251 = zext i32 %1250 to i64
%1252 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1251
%1253 = load i32, i32* %1252, align 4
%1254 = add i32 %1253, %1238
%1255 = and i32 %1254, 16777215
%1256 = add i32 %1200, 16777215
%1257 = and i32 %1256, 16777215
store i32 %1255, i32* @c, align 4
%1258 = zext i32 %1257 to i64
%1259 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1258
%1260 = load i32, i32* %1259, align 4
%1261 = zext i32 %1255 to i64
%1262 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1261
store i32 %1260, i32* %1262, align 4
%1263 = add i32 %1248, 16777213
%1264 = and i32 %1263, 16777215
%1265 = zext i32 %1264 to i64
%1266 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1265
%1267 = load i32, i32* %1266, align 4
%1268 = add i32 %1200, 16777215
%1269 = and i32 %1268, 16777215
%1270 = zext i32 %1269 to i64
%1271 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1270
store i32 %1267, i32* %1271, align 4
%1272 = load i32, i32* %1266, align 4
%1273 = add i32 %1272, %1267
%1274 = and i32 %1273, 16777215
store i32 %1274, i32* %1266, align 4
%1275 = add i32 %1248, 16777214
%1276 = and i32 %1275, 16777215
%1277 = zext i32 %1276 to i64
%1278 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1277
%1279 = load i32, i32* %1278, align 4
%1280 = add i32 %1200, 16777215
%1281 = and i32 %1280, 16777215
%1282 = zext i32 %1281 to i64
%1283 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1282
store i32 %1279, i32* %1283, align 4
%1284 = load i32, i32* %1278, align 4
%1285 = add i32 %1284, %1279
%1286 = and i32 %1285, 16777215
%1287 = add i32 %1248, 16777164
%1288 = and i32 %1287, 16777215
%1289 = zext i32 %1288 to i64
%1290 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1289
store i32 %1286, i32* %1290, align 4
%1291 = load i32, i32* @bp, align 4
%1292 = add i32 %1291, 16777164
%1293 = and i32 %1292, 16777215
%1294 = zext i32 %1293 to i64
%1295 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1294
%1296 = load i32, i32* %1295, align 4
%1297 = add i32 %1200, 16777215
%1298 = and i32 %1297, 16777215
store i32 %1298, i32* @d, align 4
%1299 = zext i32 %1298 to i64
%1300 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1299
store i32 %1296, i32* %1300, align 4
%1301 = add i32 %1291, 16777214
%1302 = and i32 %1301, 16777215
%1303 = zext i32 %1302 to i64
%1304 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1303
%1305 = load i32, i32* %1304, align 4
%1306 = and i32 %1200, 16777215
store i32 %1306, i32* @sp, align 4
%1307 = icmp ult i32 %1296, %1305
%1308 = zext i1 %1307 to i32
store i32 %1308, i32* @a, align 4
store i32 1, i32* @b, align 4
br i1 %1307, label %1309, label %case_bottom
; <label>:1309: ; preds = %1193
store i32 75, i32* @pc, align 4
br label %case_bottom
; <label>:1310: ; preds = %switch_top
%1311 = load i32, i32* @bp, align 4
%1312 = add i32 %1311, 3
%1313 = and i32 %1312, 16777215
%1314 = zext i32 %1313 to i64
%1315 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1314
%1316 = load i32, i32* %1315, align 4
%1317 = load i32, i32* @sp, align 4
%1318 = add i32 %1317, 16777215
%1319 = and i32 %1318, 16777215
store i32 %1319, i32* @d, align 4
%1320 = zext i32 %1319 to i64
%1321 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1320
store i32 %1316, i32* %1321, align 4
%1322 = add i32 %1311, 16777164
%1323 = and i32 %1322, 16777215
%1324 = zext i32 %1323 to i64
%1325 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1324
%1326 = load i32, i32* %1325, align 4
%1327 = and i32 %1317, 16777215
store i32 %1327, i32* @sp, align 4
%1328 = icmp ult i32 %1316, %1326
%1329 = zext i1 %1328 to i32
store i32 %1329, i32* @a, align 4
store i32 %1329, i32* @b, align 4
br label %case_bottom
; <label>:1330: ; preds = %switch_top
%1331 = load i32, i32* @b, align 4
store i32 %1331, i32* @a, align 4
%1332 = icmp eq i32 %1331, 0
br i1 %1332, label %1333, label %case_bottom
; <label>:1333: ; preds = %1330
store i32 77, i32* @pc, align 4
br label %case_bottom
; <label>:1334: ; preds = %switch_top
store i32 79, i32* @pc, align 4
br label %case_bottom
; <label>:1335: ; preds = %switch_top
%1336 = load i32, i32* @bp, align 4
%1337 = add i32 %1336, 16777164
%1338 = and i32 %1337, 16777215
%1339 = zext i32 %1338 to i64
%1340 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1339
%1341 = load i32, i32* %1340, align 4
store i32 %1341, i32* @a, align 4
%1342 = add i32 %1336, 16777214
%1343 = and i32 %1342, 16777215
store i32 %1343, i32* @b, align 4
%1344 = zext i32 %1343 to i64
%1345 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1344
store i32 %1341, i32* %1345, align 4
br label %case_bottom
; <label>:1346: ; preds = %switch_top
%1347 = load i32, i32* @bp, align 4
%1348 = add i32 %1347, 16777215
%1349 = and i32 %1348, 16777215
%1350 = zext i32 %1349 to i64
%1351 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1350
%1352 = load i32, i32* %1351, align 4
%1353 = load i32, i32* @sp, align 4
%1354 = add i32 %1353, 16777215
%1355 = and i32 %1354, 16777215
store i32 %1355, i32* @d, align 4
%1356 = zext i32 %1355 to i64
%1357 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1356
store i32 %1352, i32* %1357, align 4
%1358 = add i32 %1352, 1
%1359 = and i32 %1358, 16777215
store i32 %1349, i32* @b, align 4
store i32 %1359, i32* %1351, align 4
%1360 = load i32, i32* %1357, align 4
store i32 %1360, i32* @a, align 4
%1361 = and i32 %1353, 16777215
store i32 %1361, i32* @sp, align 4
store i32 73, i32* @pc, align 4
br label %case_bottom
; <label>:1362: ; preds = %switch_top
%1363 = load i32, i32* @bp, align 4
%1364 = add i32 %1363, 16777163
%1365 = and i32 %1364, 16777215
store i32 %1365, i32* @b, align 4
store i32 0, i32* @a, align 4
%1366 = zext i32 %1365 to i64
%1367 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1366
store i32 0, i32* %1367, align 4
br label %case_bottom
; <label>:1368: ; preds = %switch_top
%1369 = load i32, i32* @bp, align 4
%1370 = add i32 %1369, 16777165
%1371 = and i32 %1370, 16777215
%1372 = load i32, i32* @sp, align 4
%1373 = add i32 %1372, 16777215
%1374 = and i32 %1373, 16777215
%1375 = load i32, i32* @b, align 4
%1376 = zext i32 %1374 to i64
%1377 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1376
store i32 %1375, i32* %1377, align 4
%1378 = add i32 %1372, 16777214
%1379 = and i32 %1378, 16777215
%1380 = zext i32 %1379 to i64
%1381 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1380
store i32 %1371, i32* %1381, align 4
%1382 = add i32 %1369, 16777215
%1383 = and i32 %1382, 16777215
%1384 = zext i32 %1383 to i64
%1385 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1384
%1386 = load i32, i32* %1385, align 4
%1387 = add i32 %1386, %1370
%1388 = and i32 %1387, 16777215
store i32 %1388, i32* @c, align 4
%1389 = zext i32 %1388 to i64
%1390 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1389
%1391 = load i32, i32* %1390, align 4
%1392 = add i32 %1372, 16777215
%1393 = and i32 %1392, 16777215
store i32 %1393, i32* @d, align 4
%1394 = zext i32 %1393 to i64
%1395 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1394
store i32 %1391, i32* %1395, align 4
%1396 = add i32 %1369, 3
%1397 = and i32 %1396, 16777215
%1398 = zext i32 %1397 to i64
%1399 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1398
%1400 = load i32, i32* %1399, align 4
store i32 %1400, i32* @b, align 4
%1401 = and i32 %1372, 16777215
store i32 %1401, i32* @sp, align 4
%1402 = icmp ule i32 %1391, %1400
%1403 = zext i1 %1402 to i32
store i32 %1403, i32* @a, align 4
br i1 %1402, label %case_bottom, label %1404
; <label>:1404: ; preds = %1368
store i32 82, i32* @pc, align 4
br label %case_bottom
; <label>:1405: ; preds = %switch_top
%1406 = load i32, i32* @bp, align 4
%1407 = add i32 %1406, 16777163
%1408 = and i32 %1407, 16777215
%1409 = zext i32 %1408 to i64
%1410 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1409
%1411 = load i32, i32* %1410, align 4
%1412 = load i32, i32* @sp, align 4
%1413 = add i32 %1412, 16777215
%1414 = and i32 %1413, 16777215
%1415 = zext i32 %1414 to i64
%1416 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1415
store i32 %1411, i32* %1416, align 4
%1417 = add i32 %1406, 16777189
%1418 = and i32 %1417, 16777215
%1419 = add i32 %1412, 16777214
%1420 = and i32 %1419, 16777215
%1421 = zext i32 %1420 to i64
%1422 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1421
store i32 %1408, i32* %1422, align 4
%1423 = add i32 %1412, 16777213
%1424 = and i32 %1423, 16777215
%1425 = zext i32 %1424 to i64
%1426 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1425
store i32 %1418, i32* %1426, align 4
%1427 = add i32 %1406, 16777215
%1428 = and i32 %1427, 16777215
%1429 = zext i32 %1428 to i64
%1430 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1429
%1431 = load i32, i32* %1430, align 4
%1432 = add i32 %1431, %1417
%1433 = and i32 %1432, 16777215
%1434 = add i32 %1412, 16777215
%1435 = and i32 %1434, 16777215
%1436 = zext i32 %1433 to i64
%1437 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1436
%1438 = load i32, i32* %1437, align 4
%1439 = zext i32 %1435 to i64
%1440 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1439
%1441 = load i32, i32* %1440, align 4
%1442 = add i32 %1438, %1441
%1443 = and i32 %1442, 16777215
store i32 %1443, i32* %1410, align 4
%1444 = add i32 %1406, 3
%1445 = and i32 %1444, 16777215
%1446 = zext i32 %1445 to i64
%1447 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1446
%1448 = load i32, i32* %1447, align 4
%1449 = add i32 %1412, 16777215
%1450 = and i32 %1449, 16777215
%1451 = zext i32 %1450 to i64
%1452 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1451
store i32 %1448, i32* %1452, align 4
%1453 = add i32 %1406, 16777165
%1454 = and i32 %1453, 16777215
%1455 = add i32 %1412, 16777214
%1456 = and i32 %1455, 16777215
%1457 = zext i32 %1456 to i64
%1458 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1457
store i32 %1445, i32* %1458, align 4
%1459 = add i32 %1412, 16777213
%1460 = and i32 %1459, 16777215
store i32 %1460, i32* @d, align 4
%1461 = zext i32 %1460 to i64
%1462 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1461
store i32 %1454, i32* %1462, align 4
%1463 = load i32, i32* @bp, align 4
%1464 = add i32 %1463, 16777215
%1465 = and i32 %1464, 16777215
%1466 = zext i32 %1465 to i64
%1467 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1466
%1468 = load i32, i32* %1467, align 4
%1469 = add i32 %1468, %1453
%1470 = and i32 %1469, 16777215
store i32 %1470, i32* @c, align 4
%1471 = add i32 %1412, 16777215
%1472 = and i32 %1471, 16777215
%1473 = zext i32 %1470 to i64
%1474 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1473
%1475 = load i32, i32* %1474, align 4
%1476 = zext i32 %1472 to i64
%1477 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1476
%1478 = load i32, i32* %1477, align 4
%1479 = and i32 %1412, 16777215
store i32 %1479, i32* @sp, align 4
%1480 = sub i32 %1478, %1475
%1481 = and i32 %1480, 16777215
store i32 %1481, i32* @a, align 4
%1482 = add i32 %1463, 3
%1483 = and i32 %1482, 16777215
store i32 %1483, i32* @b, align 4
%1484 = zext i32 %1483 to i64
%1485 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1484
store i32 %1481, i32* %1485, align 4
br label %case_bottom
; <label>:1486: ; preds = %switch_top
%1487 = load i32, i32* @bp, align 4
%1488 = add i32 %1487, 16777215
%1489 = and i32 %1488, 16777215
%1490 = zext i32 %1489 to i64
%1491 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1490
%1492 = load i32, i32* %1491, align 4
%1493 = load i32, i32* @sp, align 4
%1494 = add i32 %1493, 16777215
%1495 = and i32 %1494, 16777215
store i32 %1495, i32* @d, align 4
%1496 = zext i32 %1495 to i64
%1497 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1496
store i32 %1492, i32* %1497, align 4
store i32 0, i32* @b, align 4
%1498 = and i32 %1493, 16777215
store i32 %1498, i32* @sp, align 4
%1499 = icmp eq i32 %1492, 0
%1500 = zext i1 %1499 to i32
store i32 %1500, i32* @a, align 4
br i1 %1499, label %case_bottom, label %1501
; <label>:1501: ; preds = %1486
store i32 84, i32* @pc, align 4
br label %case_bottom
; <label>:1502: ; preds = %switch_top
store i32 85, i32* @pc, align 4
br label %case_bottom
; <label>:1503: ; preds = %switch_top
%1504 = load i32, i32* @bp, align 4
%1505 = add i32 %1504, 16777215
%1506 = and i32 %1505, 16777215
%1507 = zext i32 %1506 to i64
%1508 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1507
%1509 = load i32, i32* %1508, align 4
%1510 = load i32, i32* @sp, align 4
%1511 = add i32 %1510, 16777215
%1512 = and i32 %1511, 16777215
store i32 %1512, i32* @d, align 4
%1513 = zext i32 %1512 to i64
%1514 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1513
store i32 %1509, i32* %1514, align 4
%1515 = add i32 %1509, 16777215
%1516 = and i32 %1515, 16777215
store i32 %1506, i32* @b, align 4
store i32 %1516, i32* %1508, align 4
%1517 = load i32, i32* %1514, align 4
store i32 %1517, i32* @a, align 4
%1518 = and i32 %1510, 16777215
store i32 %1518, i32* @sp, align 4
store i32 80, i32* @pc, align 4
br label %case_bottom
; <label>:1519: ; preds = %switch_top
%1520 = load i32, i32* @bp, align 4
%1521 = add i32 %1520, 16777163
%1522 = and i32 %1521, 16777215
%1523 = zext i32 %1522 to i64
%1524 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1523
%1525 = load i32, i32* %1524, align 4
store i32 %1525, i32* @b, align 4
%1526 = zext i32 %1520 to i64
%1527 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1526
%1528 = load i32, i32* %1527, align 4
%1529 = add i32 %1520, 1
%1530 = and i32 %1529, 16777215
store i32 %1528, i32* @bp, align 4
%1531 = zext i32 %1530 to i64
%1532 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1531
%1533 = load i32, i32* %1532, align 4
store i32 %1533, i32* @a, align 4
%1534 = add i32 %1520, 2
%1535 = and i32 %1534, 16777215
store i32 %1535, i32* @sp, align 4
%1536 = add i32 %1533, -1
store i32 %1536, i32* @pc, align 4
br label %case_bottom
; <label>:1537: ; preds = %switch_top
%1538 = load i32, i32* @bp, align 4
%1539 = zext i32 %1538 to i64
%1540 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1539
%1541 = load i32, i32* %1540, align 4
%1542 = add i32 %1538, 1
%1543 = and i32 %1542, 16777215
store i32 %1541, i32* @bp, align 4
%1544 = zext i32 %1543 to i64
%1545 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1544
%1546 = load i32, i32* %1545, align 4
store i32 %1546, i32* @a, align 4
%1547 = add i32 %1538, 2
%1548 = and i32 %1547, 16777215
store i32 %1548, i32* @sp, align 4
%1549 = add i32 %1546, -1
store i32 %1549, i32* @pc, align 4
br label %case_bottom
; <label>:1550: ; preds = %switch_top
%1551 = load i32, i32* @sp, align 4
%1552 = add i32 %1551, 16777215
%1553 = and i32 %1552, 16777215
%1554 = load i32, i32* @bp, align 4
%1555 = zext i32 %1553 to i64
%1556 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1555
store i32 %1554, i32* %1556, align 4
store i32 %1553, i32* @bp, align 4
%1557 = add i32 %1551, 16777213
%1558 = and i32 %1557, 16777215
%1559 = add i32 %1551, 2
%1560 = and i32 %1559, 16777215
%1561 = zext i32 %1560 to i64
%1562 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1561
%1563 = load i32, i32* %1562, align 4
%1564 = add i32 %1551, 16777212
%1565 = and i32 %1564, 16777215
store i32 %1565, i32* @d, align 4
%1566 = zext i32 %1565 to i64
%1567 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1566
store i32 %1563, i32* %1567, align 4
store i32 1, i32* @b, align 4
store i32 %1558, i32* @sp, align 4
%1568 = icmp eq i32 %1563, 1
%1569 = zext i1 %1568 to i32
store i32 %1569, i32* @a, align 4
br i1 %1568, label %case_bottom, label %1570
; <label>:1570: ; preds = %1550
store i32 89, i32* @pc, align 4
br label %case_bottom
; <label>:1571: ; preds = %switch_top
%1572 = load i32, i32* @bp, align 4
%1573 = add i32 %1572, 2
%1574 = and i32 %1573, 16777215
%1575 = zext i32 %1574 to i64
%1576 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1575
%1577 = load i32, i32* %1576, align 4
store i32 %1577, i32* @b, align 4
%1578 = zext i32 %1572 to i64
%1579 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1578
%1580 = load i32, i32* %1579, align 4
%1581 = add i32 %1572, 1
%1582 = and i32 %1581, 16777215
store i32 %1580, i32* @bp, align 4
%1583 = zext i32 %1582 to i64
%1584 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1583
%1585 = load i32, i32* %1584, align 4
store i32 %1585, i32* @a, align 4
store i32 %1574, i32* @sp, align 4
%1586 = add i32 %1585, -1
store i32 %1586, i32* @pc, align 4
br label %case_bottom
; <label>:1587: ; preds = %switch_top
%1588 = load i32, i32* @bp, align 4
%1589 = add i32 %1588, 16777214
%1590 = and i32 %1589, 16777215
%1591 = load i32, i32* @sp, align 4
%1592 = add i32 %1591, 16777215
%1593 = and i32 %1592, 16777215
%1594 = zext i32 %1593 to i64
%1595 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1594
store i32 %1590, i32* %1595, align 4
%1596 = add i32 %1588, 3
%1597 = and i32 %1596, 16777215
%1598 = zext i32 %1597 to i64
%1599 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1598
%1600 = load i32, i32* %1599, align 4
%1601 = add i32 %1591, 16777214
%1602 = and i32 %1601, 16777215
%1603 = zext i32 %1602 to i64
%1604 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1603
store i32 %1600, i32* %1604, align 4
%1605 = add i32 %1588, 2
%1606 = and i32 %1605, 16777215
store i32 %1606, i32* @b, align 4
%1607 = zext i32 %1606 to i64
%1608 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1607
%1609 = load i32, i32* %1608, align 4
%1610 = add i32 %1591, 16777213
%1611 = and i32 %1610, 16777215
%1612 = zext i32 %1611 to i64
%1613 = getelementptr inbounds [16777216 x i32], [16777216 x i32]* @mem, i64 0, i64 %1612
store i32 %1609, i32* %1613, align 4