; LLVM IR from libxsmm/libxsmm :: tests (math)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@__const.main.npot = external hidden unnamed_addr constant [11 x i32], align 16
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.inp = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.1 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.2 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.3 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.4 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.5 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.6 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.7 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.8 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.test = external hidden unnamed_addr constant [15 x i32], align 16
@__const.main.test.9 = external hidden unnamed_addr constant [15 x i64], align 16

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i64, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca float, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca double, align 8
  %20 = alloca i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca [11 x i32], align 16
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca [7 x i64], align 16
  %37 = alloca [7 x i64], align 16
  %38 = alloca [7 x i64], align 16
  %39 = alloca i32, align 4
  %40 = alloca [6 x i32], align 16
  %41 = alloca [6 x i32], align 16
  %42 = alloca i32, align 4
  %43 = alloca [6 x i32], align 16
  %44 = alloca [6 x i32], align 16
  %45 = alloca i32, align 4
  %46 = alloca [6 x i32], align 16
  %47 = alloca [6 x i32], align 16
  %48 = alloca i32, align 4
  %49 = alloca [6 x i32], align 16
  %50 = alloca [6 x i32], align 16
  %51 = alloca i32, align 4
  %52 = alloca [6 x i32], align 16
  %53 = alloca [6 x i32], align 16
  %54 = alloca i32, align 4
  %55 = alloca [5 x i64], align 16
  %56 = alloca [5 x i64], align 16
  %57 = alloca [5 x i64], align 16
  %58 = alloca i32, align 4
  %59 = alloca [15 x i32], align 16
  %60 = alloca i32, align 4
  %61 = alloca [32 x i32], align 16
  %62 = alloca i32, align 4
  %63 = alloca [15 x i64], align 16
  %64 = alloca i32, align 4
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  store i64 8589934595, ptr %6, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  store i32 1, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  store i32 0, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  store i32 0, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %69 = load i32, ptr %4, align 4, !tbaa !5
  %70 = load ptr, ptr %5, align 8, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %71

71:                                               ; preds = %86, %2
  %72 = load i32, ptr %10, align 4, !tbaa !5
  %73 = icmp slt i32 %72, 256
  br i1 %73, label %74, label %89

74:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %75 = load i32, ptr %10, align 4, !tbaa !5
  %76 = trunc i32 %75 to i8
  %77 = call float @libxsmm_sexp2_u8(i8 noundef zeroext %76)
  store float %77, ptr %12, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %78 = load i32, ptr %10, align 4, !tbaa !5
  %79 = sitofp i32 %78 to float
  %80 = call float @exp2f(float noundef %79) #9
  store float %80, ptr %13, align 4, !tbaa !13
  %81 = load float, ptr %12, align 4, !tbaa !13
  %82 = load float, ptr %13, align 4, !tbaa !13
  %83 = fcmp une float %81, %82
  br i1 %83, label %84, label %85

84:                                               ; preds = %74
  call void @exit(i32 noundef 1) #10
  unreachable

85:                                               ; preds = %74
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %86

86:                                               ; preds = %85
  %87 = load i32, ptr %10, align 4, !tbaa !5
  %88 = add nsw i32 %87, 1
  store i32 %88, ptr %10, align 4, !tbaa !5
  br label %71, !llvm.loop !15

89:                                               ; preds = %71
  store i32 -128, ptr %10, align 4, !tbaa !5
  br label %90

90:                                               ; preds = %112, %89
  %91 = load i32, ptr %10, align 4, !tbaa !5
  %92 = icmp slt i32 %91, 127
  br i1 %92, label %93, label %115

93:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %94 = load i32, ptr %10, align 4, !tbaa !5
  %95 = trunc i32 %94 to i8
  %96 = call float @libxsmm_sexp2_i8(i8 noundef signext %95)
  store float %96, ptr %14, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %97 = load i32, ptr %10, align 4, !tbaa !5
  %98 = call float @libxsmm_sexp2_i8i(i32 noundef %97)
  store float %98, ptr %15, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %99 = load i32, ptr %10, align 4, !tbaa !5
  %100 = sitofp i32 %99 to float
  %101 = call float @exp2f(float noundef %100) #9
  store float %101, ptr %16, align 4, !tbaa !13
  %102 = load float, ptr %14, align 4, !tbaa !13
  %103 = load float, ptr %16, align 4, !tbaa !13
  %104 = fcmp une float %102, %103
  br i1 %104, label %105, label %106

105:                                              ; preds = %93
  call void @exit(i32 noundef 1) #10
  unreachable

106:                                              ; preds = %93
  %107 = load float, ptr %15, align 4, !tbaa !13
  %108 = load float, ptr %16, align 4, !tbaa !13
  %109 = fcmp une float %107, %108
  br i1 %109, label %110, label %111

110:                                              ; preds = %106
  call void @exit(i32 noundef 1) #10
  unreachable

111:                                              ; preds = %106
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %112

112:                                              ; preds = %111
  %113 = load i32, ptr %10, align 4, !tbaa !5
  %114 = add nsw i32 %113, 1
  store i32 %114, ptr %10, align 4, !tbaa !5
  br label %90, !llvm.loop !17

115:                                              ; preds = %90
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %116

116:                                              ; preds = %1494, %115
  %117 = load i32, ptr %10, align 4, !tbaa !5
  %118 = icmp slt i32 %117, 1000000
  br i1 %118, label %119, label %1497

119:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %120 = load i32, ptr %10, align 4, !tbaa !5
  %121 = icmp ne i32 0, %120
  br i1 %121, label %122, label %124

122:                                              ; preds = %119
  %123 = call i32 @rand() #9
  br label %125

124:                                              ; preds = %119
  br label %125

125:                                              ; preds = %124, %122
  %126 = phi i32 [ %123, %122 ], [ 0, %124 ]
  store i32 %126, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %127 = load i32, ptr %10, align 4, !tbaa !5
  %128 = icmp slt i32 1, %127
  br i1 %128, label %129, label %131

129:                                              ; preds = %125
  %130 = call i32 @rand() #9
  br label %132

131:                                              ; preds = %125
  br label %132

132:                                              ; preds = %131, %129
  %133 = phi i32 [ %130, %129 ], [ 0, %131 ]
  store i32 %133, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  %134 = load i32, ptr %17, align 4, !tbaa !5
  %135 = load i32, ptr %18, align 4, !tbaa !5
  %136 = sub nsw i32 %135, 1073741823
  %137 = mul nsw i32 %134, %136
  %138 = sitofp i32 %137 to double
  %139 = fmul double 2.000000e+00, %138
  %140 = fdiv double %139, 0x41DFFFFFFFC00000
  store double %140, ptr %19, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %141 = load i32, ptr %17, align 4, !tbaa !5
  %142 = sext i32 %141 to i64
  %143 = mul i64 8589934595, %142
  store i64 %143, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %144 = load i32, ptr %17, align 4, !tbaa !5
  %145 = mul i32 1, %144
  store i32 %145, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %146 = load i32, ptr %17, align 4, !tbaa !5
  %147 = sitofp i32 %146 to double
  %148 = call double @llvm.round.f64(double %147)
  %149 = load i32, ptr %17, align 4, !tbaa !5
  %150 = sitofp i32 %149 to double
  %151 = fcmp ole double 0.000000e+00, %150
  br i1 %151, label %152, label %156

152:                                              ; preds = %132
  %153 = load i32, ptr %17, align 4, !tbaa !5
  %154 = sitofp i32 %153 to double
  %155 = fadd double %154, 5.000000e-01
  br label %160

156:                                              ; preds = %132
  %157 = load i32, ptr %17, align 4, !tbaa !5
  %158 = sitofp i32 %157 to double
  %159 = fsub double %158, 5.000000e-01
  br label %160

160:                                              ; preds = %156, %152
  %161 = phi double [ %155, %152 ], [ %159, %156 ]
  %162 = fptosi double %161 to i64
  %163 = sitofp i64 %162 to double
  %164 = fcmp une double %148, %163
  br i1 %164, label %165, label %166

165:                                              ; preds = %160
  call void @exit(i32 noundef 1) #10
  unreachable

166:                                              ; preds = %160
  %167 = load i32, ptr %18, align 4, !tbaa !5
  %168 = sitofp i32 %167 to double
  %169 = call double @llvm.round.f64(double %168)
  %170 = load i32, ptr %18, align 4, !tbaa !5
  %171 = sitofp i32 %170 to double
  %172 = fcmp ole double 0.000000e+00, %171
  br i1 %172, label %173, label %177

173:                                              ; preds = %166
  %174 = load i32, ptr %18, align 4, !tbaa !5
  %175 = sitofp i32 %174 to double
  %176 = fadd double %175, 5.000000e-01
  br label %181

177:                                              ; preds = %166
  %178 = load i32, ptr %18, align 4, !tbaa !5
  %179 = sitofp i32 %178 to double
  %180 = fsub double %179, 5.000000e-01
  br label %181

181:                                              ; preds = %177, %173
  %182 = phi double [ %176, %173 ], [ %180, %177 ]
  %183 = fptosi double %182 to i64
  %184 = sitofp i64 %183 to double
  %185 = fcmp une double %169, %184
  br i1 %185, label %186, label %187

186:                                              ; preds = %181
  call void @exit(i32 noundef 1) #10
  unreachable

187:                                              ; preds = %181
  %188 = load double, ptr %19, align 8, !tbaa !18
  %189 = call double @llvm.round.f64(double %188)
  %190 = load double, ptr %19, align 8, !tbaa !18
  %191 = fcmp ole double 0.000000e+00, %190
  br i1 %191, label %192, label %195

192:                                              ; preds = %187
  %193 = load double, ptr %19, align 8, !tbaa !18
  %194 = fadd double %193, 5.000000e-01
  br label %198

195:                                              ; preds = %187
  %196 = load double, ptr %19, align 8, !tbaa !18
  %197 = fsub double %196, 5.000000e-01
  br label %198

198:                                              ; preds = %195, %192
  %199 = phi double [ %194, %192 ], [ %197, %195 ]
  %200 = fptosi double %199 to i64
  %201 = sitofp i64 %200 to double
  %202 = fcmp une double %189, %201
  br i1 %202, label %203, label %204

203:                                              ; preds = %198
  call void @exit(i32 noundef 1) #10
  unreachable

204:                                              ; preds = %198
  %205 = load i32, ptr %17, align 4, !tbaa !5
  %206 = sitofp i32 %205 to float
  %207 = call float @llvm.round.f32(float %206)
  %208 = load i32, ptr %17, align 4, !tbaa !5
  %209 = sitofp i32 %208 to float
  %210 = fcmp ole float 0.000000e+00, %209
  br i1 %210, label %211, label %216

211:                                              ; preds = %204
  %212 = load i32, ptr %17, align 4, !tbaa !5
  %213 = sitofp i32 %212 to float
  %214 = fpext float %213 to double
  %215 = fadd double %214, 5.000000e-01
  br label %221

216:                                              ; preds = %204
  %217 = load i32, ptr %17, align 4, !tbaa !5
  %218 = sitofp i32 %217 to float
  %219 = fpext float %218 to double
  %220 = fsub double %219, 5.000000e-01
  br label %221

221:                                              ; preds = %216, %211
  %222 = phi double [ %215, %211 ], [ %220, %216 ]
  %223 = fptosi double %222 to i64
  %224 = sitofp i64 %223 to float
  %225 = fcmp une float %207, %224
  br i1 %225, label %226, label %227

226:                                              ; preds = %221
  call void @exit(i32 noundef 1) #10
  unreachable

227:                                              ; preds = %221
  %228 = load i32, ptr %18, align 4, !tbaa !5
  %229 = sitofp i32 %228 to float
  %230 = call float @llvm.round.f32(float %229)
  %231 = load i32, ptr %18, align 4, !tbaa !5
  %232 = sitofp i32 %231 to float
  %233 = fcmp ole float 0.000000e+00, %232
  br i1 %233, label %234, label %239

234:                                              ; preds = %227
  %235 = load i32, ptr %18, align 4, !tbaa !5
  %236 = sitofp i32 %235 to float
  %237 = fpext float %236 to double
  %238 = fadd double %237, 5.000000e-01
  br label %244

239:                                              ; preds = %227
  %240 = load i32, ptr %18, align 4, !tbaa !5
  %241 = sitofp i32 %240 to float
  %242 = fpext float %241 to double
  %243 = fsub double %242, 5.000000e-01
  br label %244

244:                                              ; preds = %239, %234
  %245 = phi double [ %238, %234 ], [ %243, %239 ]
  %246 = fptosi double %245 to i64
  %247 = sitofp i64 %246 to float
  %248 = fcmp une float %230, %247
  br i1 %248, label %249, label %250

249:                                              ; preds = %244
  call void @exit(i32 noundef 1) #10
  unreachable

250:                                              ; preds = %244
  %251 = load double, ptr %19, align 8, !tbaa !18
  %252 = fptrunc double %251 to float
  %253 = call float @llvm.round.f32(float %252)
  %254 = load double, ptr %19, align 8, !tbaa !18
  %255 = fptrunc double %254 to float
  %256 = fcmp ole float 0.000000e+00, %255
  br i1 %256, label %257, label %262

257:                                              ; preds = %250
  %258 = load double, ptr %19, align 8, !tbaa !18
  %259 = fptrunc double %258 to float
  %260 = fpext float %259 to double
  %261 = fadd double %260, 5.000000e-01
  br label %267

262:                                              ; preds = %250
  %263 = load double, ptr %19, align 8, !tbaa !18
  %264 = fptrunc double %263 to float
  %265 = fpext float %264 to double
  %266 = fsub double %265, 5.000000e-01
  br label %267

267:                                              ; preds = %262, %257
  %268 = phi double [ %261, %257 ], [ %266, %262 ]
  %269 = fptosi double %268 to i64
  %270 = sitofp i64 %269 to float
  %271 = fcmp une float %253, %270
  br i1 %271, label %272, label %273

272:                                              ; preds = %267
  call void @exit(i32 noundef 1) #10
  unreachable

273:                                              ; preds = %267
  %274 = load double, ptr %19, align 8, !tbaa !18
  %275 = fptrunc double %274 to float
  %276 = call float @libxsmm_sexp2(float noundef %275)
  %277 = fpext float %276 to double
  store double %277, ptr %22, align 8, !tbaa !18
  %278 = load double, ptr %19, align 8, !tbaa !18
  %279 = fptrunc double %278 to float
  %280 = call float @exp2f(float noundef %279) #9
  %281 = fpext float %280 to double
  store double %281, ptr %23, align 8, !tbaa !18
  %282 = load double, ptr %22, align 8, !tbaa !18
  %283 = load double, ptr %23, align 8, !tbaa !18
  %284 = fsub double %282, %283
  %285 = call double @llvm.fabs.f64(double %284)
  store double %285, ptr %24, align 8, !tbaa !18
  %286 = load double, ptr %23, align 8, !tbaa !18
  %287 = call double @llvm.fabs.f64(double %286)
  store double %287, ptr %25, align 8, !tbaa !18
  %288 = load double, ptr %25, align 8, !tbaa !18
  %289 = fcmp olt double 0.000000e+00, %288
  br i1 %289, label %290, label %294

290:                                              ; preds = %273
  %291 = load double, ptr %24, align 8, !tbaa !18
  %292 = load double, ptr %25, align 8, !tbaa !18
  %293 = fdiv double %291, %292
  br label %295

294:                                              ; preds = %273
  br label %295

295:                                              ; preds = %294, %290
  %296 = phi double [ %293, %290 ], [ 0.000000e+00, %294 ]
  store double %296, ptr %26, align 8, !tbaa !18
  %297 = load double, ptr %24, align 8, !tbaa !18
  %298 = load double, ptr %26, align 8, !tbaa !18
  %299 = fcmp olt double %297, %298
  br i1 %299, label %300, label %302

300:                                              ; preds = %295
  %301 = load double, ptr %24, align 8, !tbaa !18
  br label %304

302:                                              ; preds = %295
  %303 = load double, ptr %26, align 8, !tbaa !18
  br label %304

304:                                              ; preds = %302, %300
  %305 = phi double [ %301, %300 ], [ %303, %302 ]
  %306 = fcmp olt double 1.000000e-04, %305
  br i1 %306, label %307, label %308

307:                                              ; preds = %304
  call void @exit(i32 noundef 1) #10
  unreachable

308:                                              ; preds = %304
  %309 = load i32, ptr %21, align 4, !tbaa !5
  %310 = call i32 @libxsmm_isqrt_u32(i32 noundef %309)
  store i32 %310, ptr %27, align 4, !tbaa !5
  %311 = load i32, ptr %21, align 4, !tbaa !5
  %312 = call i32 @ref_isqrt_u32(i32 noundef %311)
  store i32 %312, ptr %28, align 4, !tbaa !5
  %313 = load i32, ptr %27, align 4, !tbaa !5
  %314 = load i32, ptr %28, align 4, !tbaa !5
  %315 = icmp ne i32 %313, %314
  br i1 %315, label %316, label %317

316:                                              ; preds = %308
  call void @exit(i32 noundef 1) #10
  unreachable

317:                                              ; preds = %308
  %318 = load i64, ptr %20, align 8, !tbaa !11
  %319 = call i32 @libxsmm_isqrt_u64(i64 noundef %318)
  store i32 %319, ptr %27, align 4, !tbaa !5
  %320 = load i64, ptr %20, align 8, !tbaa !11
  %321 = call i32 @ref_isqrt_u64(i64 noundef %320)
  store i32 %321, ptr %28, align 4, !tbaa !5
  %322 = load i32, ptr %27, align 4, !tbaa !5
  %323 = load i32, ptr %28, align 4, !tbaa !5
  %324 = icmp ne i32 %322, %323
  br i1 %324, label %325, label %326

325:                                              ; preds = %317
  call void @exit(i32 noundef 1) #10
  unreachable

326:                                              ; preds = %317
  %327 = load double, ptr %19, align 8, !tbaa !18
  %328 = call double @llvm.fabs.f64(double %327)
  %329 = fptrunc double %328 to float
  %330 = call float @libxsmm_ssqrt(float noundef %329)
  %331 = fpext float %330 to double
  store double %331, ptr %22, align 8, !tbaa !18
  %332 = load double, ptr %22, align 8, !tbaa !18
  %333 = load double, ptr %22, align 8, !tbaa !18
  %334 = load double, ptr %19, align 8, !tbaa !18
  %335 = call double @llvm.fabs.f64(double %334)
  %336 = fneg double %335
  %337 = call double @llvm.fmuladd.f64(double %332, double %333, double %336)
  %338 = call double @llvm.fabs.f64(double %337)
  store double %338, ptr %24, align 8, !tbaa !18
  %339 = load double, ptr %19, align 8, !tbaa !18
  %340 = call double @llvm.fabs.f64(double %339)
  %341 = fptrunc double %340 to float
  %342 = call float @sqrtf(float noundef %341) #9
  %343 = fpext float %342 to double
  store double %343, ptr %23, align 8, !tbaa !18
  %344 = load double, ptr %23, align 8, !tbaa !18
  %345 = load double, ptr %23, align 8, !tbaa !18
  %346 = load double, ptr %19, align 8, !tbaa !18
  %347 = call double @llvm.fabs.f64(double %346)
  %348 = fneg double %347
  %349 = call double @llvm.fmuladd.f64(double %344, double %345, double %348)
  %350 = call double @llvm.fabs.f64(double %349)
  store double %350, ptr %25, align 8, !tbaa !18
  %351 = load double, ptr %25, align 8, !tbaa !18
  %352 = load double, ptr %24, align 8, !tbaa !18
  %353 = fcmp olt double %351, %352
  br i1 %353, label %354, label %385

354:                                              ; preds = %326
  %355 = load double, ptr %25, align 8, !tbaa !18
  %356 = fcmp olt double 0.000000e+00, %355
  br i1 %356, label %357, label %361

357:                                              ; preds = %354
  %358 = load double, ptr %24, align 8, !tbaa !18
  %359 = load double, ptr %25, align 8, !tbaa !18
  %360 = fdiv double %358, %359
  br label %362

361:                                              ; preds = %354
  br label %362

362:                                              ; preds = %361, %357
  %363 = phi double [ %360, %357 ], [ 0.000000e+00, %361 ]
  store double %363, ptr %26, align 8, !tbaa !18
  %364 = load double, ptr %24, align 8, !tbaa !18
  %365 = load double, ptr %25, align 8, !tbaa !18
  %366 = fsub double %364, %365
  %367 = call double @llvm.fabs.f64(double %366)
  %368 = load double, ptr %26, align 8, !tbaa !18
  %369 = fcmp olt double %367, %368
  br i1 %369, label %370, label %375

370:                                              ; preds = %362
  %371 = load double, ptr %24, align 8, !tbaa !18
  %372 = load double, ptr %25, align 8, !tbaa !18
  %373 = fsub double %371, %372
  %374 = call double @llvm.fabs.f64(double %373)
  br label %377

375:                                              ; preds = %362
  %376 = load double, ptr %26, align 8, !tbaa !18
  br label %377

377:                                              ; preds = %375, %370
  %378 = phi double [ %374, %370 ], [ %376, %375 ]
  %379 = fcmp ogt double 1.000000e-02, %378
  br i1 %379, label %380, label %383

380:                                              ; preds = %377
  %381 = load i32, ptr %9, align 4, !tbaa !5
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr %9, align 4, !tbaa !5
  br label %384

383:                                              ; preds = %377
  call void @exit(i32 noundef 1) #10
  unreachable

384:                                              ; preds = %380
  br label %385

385:                                              ; preds = %384, %326
  %386 = load double, ptr %19, align 8, !tbaa !18
  %387 = call double @llvm.fabs.f64(double %386)
  %388 = call double @libxsmm_dsqrt(double noundef %387)
  store double %388, ptr %22, align 8, !tbaa !18
  %389 = load double, ptr %22, align 8, !tbaa !18
  %390 = load double, ptr %22, align 8, !tbaa !18
  %391 = load double, ptr %19, align 8, !tbaa !18
  %392 = call double @llvm.fabs.f64(double %391)
  %393 = fneg double %392
  %394 = call double @llvm.fmuladd.f64(double %389, double %390, double %393)
  %395 = call double @llvm.fabs.f64(double %394)
  store double %395, ptr %24, align 8, !tbaa !18
  %396 = load double, ptr %19, align 8, !tbaa !18
  %397 = call double @llvm.fabs.f64(double %396)
  %398 = call double @sqrt(double noundef %397) #9
  store double %398, ptr %23, align 8, !tbaa !18
  %399 = load double, ptr %23, align 8, !tbaa !18
  %400 = load double, ptr %23, align 8, !tbaa !18
  %401 = load double, ptr %19, align 8, !tbaa !18
  %402 = call double @llvm.fabs.f64(double %401)
  %403 = fneg double %402
  %404 = call double @llvm.fmuladd.f64(double %399, double %400, double %403)
  %405 = call double @llvm.fabs.f64(double %404)
  store double %405, ptr %25, align 8, !tbaa !18
  %406 = load double, ptr %25, align 8, !tbaa !18
  %407 = load double, ptr %24, align 8, !tbaa !18
  %408 = fcmp olt double %406, %407
  br i1 %408, label %409, label %440

409:                                              ; preds = %385
  %410 = load double, ptr %25, align 8, !tbaa !18
  %411 = fcmp olt double 0.000000e+00, %410
  br i1 %411, label %412, label %416

412:                                              ; preds = %409
  %413 = load double, ptr %24, align 8, !tbaa !18
  %414 = load double, ptr %25, align 8, !tbaa !18
  %415 = fdiv double %413, %414
  br label %417

416:                                              ; preds = %409
  br label %417

417:                                              ; preds = %416, %412
  %418 = phi double [ %415, %412 ], [ 0.000000e+00, %416 ]
  store double %418, ptr %26, align 8, !tbaa !18
  %419 = load double, ptr %24, align 8, !tbaa !18
  %420 = load double, ptr %25, align 8, !tbaa !18
  %421 = fsub double %419, %420
  %422 = call double @llvm.fabs.f64(double %421)
  %423 = load double, ptr %26, align 8, !tbaa !18
  %424 = fcmp olt double %422, %423
  br i1 %424, label %425, label %430

425:                                              ; preds = %417
  %426 = load double, ptr %24, align 8, !tbaa !18
  %427 = load double, ptr %25, align 8, !tbaa !18
  %428 = fsub double %426, %427
  %429 = call double @llvm.fabs.f64(double %428)
  br label %432

430:                                              ; preds = %417
  %431 = load double, ptr %26, align 8, !tbaa !18
  br label %432

432:                                              ; preds = %430, %425
  %433 = phi double [ %429, %425 ], [ %431, %430 ]
  %434 = fcmp ogt double 0x3DA5FD7FE1796495, %433
  br i1 %434, label %435, label %438

435:                                              ; preds = %432
  %436 = load i32, ptr %8, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr %8, align 4, !tbaa !5
  br label %439

438:                                              ; preds = %432
  call void @exit(i32 noundef 1) #10
  unreachable

439:                                              ; preds = %435
  br label %440

440:                                              ; preds = %439, %385
  %441 = call float @sqrtf(float noundef 2.800000e+01) #9
  %442 = fdiv float 1.000000e+00, %441
  %443 = fpext float %442 to double
  store double %443, ptr %22, align 8, !tbaa !18
  %444 = load double, ptr %22, align 8, !tbaa !18
  %445 = load double, ptr %22, align 8, !tbaa !18
  %446 = fmul double %444, %445
  %447 = fdiv double 1.000000e+00, %446
  %448 = fsub double %447, 2.800000e+01
  %449 = call double @llvm.fabs.f64(double %448)
  store double %449, ptr %24, align 8, !tbaa !18
  %450 = call double @sqrt(double noundef 2.800000e+01) #9
  %451 = fdiv double 1.000000e+00, %450
  store double %451, ptr %23, align 8, !tbaa !18
  %452 = load double, ptr %23, align 8, !tbaa !18
  %453 = load double, ptr %23, align 8, !tbaa !18
  %454 = fmul double %452, %453
  %455 = fdiv double 1.000000e+00, %454
  %456 = fsub double %455, 2.800000e+01
  %457 = call double @llvm.fabs.f64(double %456)
  store double %457, ptr %25, align 8, !tbaa !18
  %458 = load double, ptr %25, align 8, !tbaa !18
  %459 = load double, ptr %24, align 8, !tbaa !18
  %460 = fcmp olt double %458, %459
  br i1 %460, label %461, label %489

461:                                              ; preds = %440
  %462 = load double, ptr %25, align 8, !tbaa !18
  %463 = fcmp olt double 0.000000e+00, %462
  br i1 %463, label %464, label %468

464:                                              ; preds = %461
  %465 = load double, ptr %24, align 8, !tbaa !18
  %466 = load double, ptr %25, align 8, !tbaa !18
  %467 = fdiv double %465, %466
  br label %469

468:                                              ; preds = %461
  br label %469

469:                                              ; preds = %468, %464
  %470 = phi double [ %467, %464 ], [ 0.000000e+00, %468 ]
  store double %470, ptr %26, align 8, !tbaa !18
  %471 = load double, ptr %24, align 8, !tbaa !18
  %472 = load double, ptr %25, align 8, !tbaa !18
  %473 = fsub double %471, %472
  %474 = call double @llvm.fabs.f64(double %473)
  %475 = load double, ptr %26, align 8, !tbaa !18
  %476 = fcmp olt double %474, %475
  br i1 %476, label %477, label %482

477:                                              ; preds = %469
  %478 = load double, ptr %24, align 8, !tbaa !18
  %479 = load double, ptr %25, align 8, !tbaa !18
  %480 = fsub double %478, %479
  %481 = call double @llvm.fabs.f64(double %480)
  br label %484

482:                                              ; preds = %469
  %483 = load double, ptr %26, align 8, !tbaa !18
  br label %484

484:                                              ; preds = %482, %477
  %485 = phi double [ %481, %477 ], [ %483, %482 ]
  %486 = fcmp olt double 4.000000e-06, %485
  br i1 %486, label %487, label %488

487:                                              ; preds = %484
  call void @exit(i32 noundef 1) #10
  unreachable

488:                                              ; preds = %484
  br label %489

489:                                              ; preds = %488, %440
  %490 = load i32, ptr %21, align 4, !tbaa !5
  %491 = call i32 @libxsmm_icbrt_u32(i32 noundef %490)
  store i32 %491, ptr %27, align 4, !tbaa !5
  %492 = load i32, ptr %21, align 4, !tbaa !5
  %493 = call i32 @ref_icbrt_u32(i32 noundef %492)
  store i32 %493, ptr %28, align 4, !tbaa !5
  %494 = load i32, ptr %27, align 4, !tbaa !5
  %495 = load i32, ptr %28, align 4, !tbaa !5
  %496 = icmp ne i32 %494, %495
  br i1 %496, label %497, label %498

497:                                              ; preds = %489
  call void @exit(i32 noundef 1) #10
  unreachable

498:                                              ; preds = %489
  %499 = load i64, ptr %20, align 8, !tbaa !11
  %500 = call i32 @libxsmm_icbrt_u64(i64 noundef %499)
  store i32 %500, ptr %27, align 4, !tbaa !5
  %501 = load i64, ptr %20, align 8, !tbaa !11
  %502 = call i32 @ref_icbrt_u64(i64 noundef %501)
  store i32 %502, ptr %28, align 4, !tbaa !5
  %503 = load i32, ptr %27, align 4, !tbaa !5
  %504 = load i32, ptr %28, align 4, !tbaa !5
  %505 = icmp ne i32 %503, %504
  br i1 %505, label %506, label %507

506:                                              ; preds = %498
  call void @exit(i32 noundef 1) #10
  unreachable

507:                                              ; preds = %498
  %508 = load i32, ptr %21, align 4, !tbaa !5
  %509 = icmp ne i32 0, %508
  %510 = zext i1 %509 to i32
  %511 = load i32, ptr %21, align 4, !tbaa !5
  %512 = call i32 @llvm.cttz.i32(i32 %511, i1 true)
  %513 = mul nsw i32 %510, %512
  store i32 %513, ptr %27, align 4, !tbaa !5
  %514 = load i32, ptr %21, align 4, !tbaa !5
  %515 = call i32 @LIBXSMM_INTRINSICS_BITSCANFWD32_SW(i32 noundef %514)
  store i32 %515, ptr %28, align 4, !tbaa !5
  %516 = load i32, ptr %27, align 4, !tbaa !5
  %517 = load i32, ptr %28, align 4, !tbaa !5
  %518 = icmp ne i32 %516, %517
  br i1 %518, label %519, label %520

519:                                              ; preds = %507
  call void @exit(i32 noundef 1) #10
  unreachable

520:                                              ; preds = %507
  %521 = load i32, ptr %21, align 4, !tbaa !5
  %522 = icmp ne i32 0, %521
  %523 = zext i1 %522 to i32
  %524 = load i32, ptr %21, align 4, !tbaa !5
  %525 = call i32 @llvm.ctlz.i32(i32 %524, i1 true)
  %526 = sub nsw i32 31, %525
  %527 = mul nsw i32 %523, %526
  store i32 %527, ptr %27, align 4, !tbaa !5
  %528 = load i32, ptr %21, align 4, !tbaa !5
  %529 = and i32 %528, -65536
  %530 = icmp ne i32 0, %529
  br i1 %530, label %531, label %661

531:                                              ; preds = %520
  %532 = load i32, ptr %21, align 4, !tbaa !5
  %533 = lshr i32 %532, 16
  %534 = and i32 %533, 65280
  %535 = icmp ne i32 0, %534
  br i1 %535, label %536, label %601

536:                                              ; preds = %531
  %537 = load i32, ptr %21, align 4, !tbaa !5
  %538 = lshr i32 %537, 16
  %539 = lshr i32 %538, 8
  %540 = and i32 %539, 240
  %541 = icmp ne i32 0, %540
  br i1 %541, label %542, label %572

542:                                              ; preds = %536
  %543 = load i32, ptr %21, align 4, !tbaa !5
  %544 = lshr i32 %543, 16
  %545 = lshr i32 %544, 8
  %546 = lshr i32 %545, 4
  %547 = and i32 %546, 12
  %548 = icmp ne i32 0, %547
  br i1 %548, label %549, label %560

549:                                              ; preds = %542
  %550 = load i32, ptr %21, align 4, !tbaa !5
  %551 = lshr i32 %550, 16
  %552 = lshr i32 %551, 8
  %553 = lshr i32 %552, 4
  %554 = lshr i32 %553, 2
  %555 = and i32 %554, 2
  %556 = icmp ne i32 0, %555
  %557 = zext i1 %556 to i64
  %558 = select i1 %556, i32 1, i32 0
  %559 = or i32 2, %558
  br label %569

560:                                              ; preds = %542
  %561 = load i32, ptr %21, align 4, !tbaa !5
  %562 = lshr i32 %561, 16
  %563 = lshr i32 %562, 8
  %564 = lshr i32 %563, 4
  %565 = and i32 %564, 2
  %566 = icmp ne i32 0, %565
  %567 = zext i1 %566 to i64
  %568 = select i1 %566, i32 1, i32 0
  br label %569

569:                                              ; preds = %560, %549
  %570 = phi i32 [ %559, %549 ], [ %568, %560 ]
  %571 = or i32 4, %570
  br label %598

572:                                              ; preds = %536
  %573 = load i32, ptr %21, align 4, !tbaa !5
  %574 = lshr i32 %573, 16
  %575 = lshr i32 %574, 8
  %576 = and i32 %575, 12
  %577 = icmp ne i32 0, %576
  br i1 %577, label %578, label %588

578:                                              ; preds = %572
  %579 = load i32, ptr %21, align 4, !tbaa !5
  %580 = lshr i32 %579, 16
  %581 = lshr i32 %580, 8
  %582 = lshr i32 %581, 2
  %583 = and i32 %582, 2
  %584 = icmp ne i32 0, %583
  %585 = zext i1 %584 to i64
  %586 = select i1 %584, i32 1, i32 0
  %587 = or i32 2, %586
  br label %596

588:                                              ; preds = %572
  %589 = load i32, ptr %21, align 4, !tbaa !5
  %590 = lshr i32 %589, 16
  %591 = lshr i32 %590, 8
  %592 = and i32 %591, 2
  %593 = icmp ne i32 0, %592
  %594 = zext i1 %593 to i64
  %595 = select i1 %593, i32 1, i32 0
  br label %596

596:                                              ; preds = %588, %578
  %597 = phi i32 [ %587, %578 ], [ %595, %588 ]
  br label %598

598:                                              ; preds = %596, %569
  %599 = phi i32 [ %571, %569 ], [ %597, %596 ]
  %600 = or i32 8, %599
  br label %658

601:                                              ; preds = %531
  %602 = load i32, ptr %21, align 4, !tbaa !5
  %603 = lshr i32 %602, 16
  %604 = and i32 %603, 240
  %605 = icmp ne i32 0, %604
  br i1 %605, label %606, label %633

606:                                              ; preds = %601
  %607 = load i32, ptr %21, align 4, !tbaa !5
  %608 = lshr i32 %607, 16
  %609 = lshr i32 %608, 4
  %610 = and i32 %609, 12
  %611 = icmp ne i32 0, %610
  br i1 %611, label %612, label %622

612:                                              ; preds = %606
  %613 = load i32, ptr %21, align 4, !tbaa !5
  %614 = lshr i32 %613, 16
  %615 = lshr i32 %614, 4
  %616 = lshr i32 %615, 2
  %617 = and i32 %616, 2
  %618 = icmp ne i32 0, %617
  %619 = zext i1 %618 to i64
  %620 = select i1 %618, i32 1, i32 0
  %621 = or i32 2, %620
  br label %630

622:                                              ; preds = %606
  %623 = load i32, ptr %21, align 4, !tbaa !5
  %624 = lshr i32 %623, 16
  %625 = lshr i32 %624, 4
  %626 = and i32 %625, 2
  %627 = icmp ne i32 0, %626
  %628 = zext i1 %627 to i64
  %629 = select i1 %627, i32 1, i32 0
  br label %630

630:                                              ; preds = %622, %612
  %631 = phi i32 [ %621, %612 ], [ %629, %622 ]
  %632 = or i32 4, %631
  br label %656

633:                                              ; preds = %601
  %634 = load i32, ptr %21, align 4, !tbaa !5
  %635 = lshr i32 %634, 16
  %636 = and i32 %635, 12
  %637 = icmp ne i32 0, %636
  br i1 %637, label %638, label %647

638:                                              ; preds = %633
  %639 = load i32, ptr %21, align 4, !tbaa !5
  %640 = lshr i32 %639, 16
  %641 = lshr i32 %640, 2
  %642 = and i32 %641, 2
  %643 = icmp ne i32 0, %642
  %644 = zext i1 %643 to i64
  %645 = select i1 %643, i32 1, i32 0
  %646 = or i32 2, %645
  br label %654

647:                                              ; preds = %633
  %648 = load i32, ptr %21, align 4, !tbaa !5
  %649 = lshr i32 %648, 16
  %650 = and i32 %649, 2
  %651 = icmp ne i32 0, %650
  %652 = zext i1 %651 to i64
  %653 = select i1 %651, i32 1, i32 0
  br label %654

654:                                              ; preds = %647, %638
  %655 = phi i32 [ %646, %638 ], [ %653, %647 ]
  br label %656

656:                                              ; preds = %654, %630
  %657 = phi i32 [ %632, %630 ], [ %655, %654 ]
  br label %658

658:                                              ; preds = %656, %598
  %659 = phi i32 [ %600, %598 ], [ %657, %656 ]
  %660 = or i32 16, %659
  br label %775

661:                                              ; preds = %520
  %662 = load i32, ptr %21, align 4, !tbaa !5
  %663 = and i32 %662, 65280
  %664 = icmp ne i32 0, %663
  br i1 %664, label %665, label %723

665:                                              ; preds = %661
  %666 = load i32, ptr %21, align 4, !tbaa !5
  %667 = lshr i32 %666, 8
  %668 = and i32 %667, 240
  %669 = icmp ne i32 0, %668
  br i1 %669, label %670, label %697

670:                                              ; preds = %665
  %671 = load i32, ptr %21, align 4, !tbaa !5
  %672 = lshr i32 %671, 8
  %673 = lshr i32 %672, 4
  %674 = and i32 %673, 12
  %675 = icmp ne i32 0, %674
  br i1 %675, label %676, label %686

676:                                              ; preds = %670
  %677 = load i32, ptr %21, align 4, !tbaa !5
  %678 = lshr i32 %677, 8
  %679 = lshr i32 %678, 4
  %680 = lshr i32 %679, 2
  %681 = and i32 %680, 2
  %682 = icmp ne i32 0, %681
  %683 = zext i1 %682 to i64
  %684 = select i1 %682, i32 1, i32 0
  %685 = or i32 2, %684
  br label %694

686:                                              ; preds = %670
  %687 = load i32, ptr %21, align 4, !tbaa !5
  %688 = lshr i32 %687, 8
  %689 = lshr i32 %688, 4
  %690 = and i32 %689, 2
  %691 = icmp ne i32 0, %690
  %692 = zext i1 %691 to i64
  %693 = select i1 %691, i32 1, i32 0
  br label %694

694:                                              ; preds = %686, %676
  %695 = phi i32 [ %685, %676 ], [ %693, %686 ]
  %696 = or i32 4, %695
  br label %720

697:                                              ; preds = %665
  %698 = load i32, ptr %21, align 4, !tbaa !5
  %699 = lshr i32 %698, 8
  %700 = and i32 %699, 12
  %701 = icmp ne i32 0, %700
  br i1 %701, label %702, label %711

702:                                              ; preds = %697
  %703 = load i32, ptr %21, align 4, !tbaa !5
  %704 = lshr i32 %703, 8
  %705 = lshr i32 %704, 2
  %706 = and i32 %705, 2
  %707 = icmp ne i32 0, %706
  %708 = zext i1 %707 to i64
  %709 = select i1 %707, i32 1, i32 0
  %710 = or i32 2, %709
  br label %718

711:                                              ; preds = %697
  %712 = load i32, ptr %21, align 4, !tbaa !5
  %713 = lshr i32 %712, 8
  %714 = and i32 %713, 2
  %715 = icmp ne i32 0, %714
  %716 = zext i1 %715 to i64
  %717 = select i1 %715, i32 1, i32 0
  br label %718

718:                                              ; preds = %711, %702
  %719 = phi i32 [ %710, %702 ], [ %717, %711 ]
  br label %720

720:                                              ; preds = %718, %694
  %721 = phi i32 [ %696, %694 ], [ %719, %718 ]
  %722 = or i32 8, %721
  br label %773

723:                                              ; preds = %661
  %724 = load i32, ptr %21, align 4, !tbaa !5
  %725 = and i32 %724, 240
  %726 = icmp ne i32 0, %725
  br i1 %726, label %727, label %751

727:                                              ; preds = %723
  %728 = load i32, ptr %21, align 4, !tbaa !5
  %729 = lshr i32 %728, 4
  %730 = and i32 %729, 12
  %731 = icmp ne i32 0, %730
  br i1 %731, label %732, label %741

732:                                              ; preds = %727
  %733 = load i32, ptr %21, align 4, !tbaa !5
  %734 = lshr i32 %733, 4
  %735 = lshr i32 %734, 2
  %736 = and i32 %735, 2
  %737 = icmp ne i32 0, %736
  %738 = zext i1 %737 to i64
  %739 = select i1 %737, i32 1, i32 0
  %740 = or i32 2, %739
  br label %748

741:                                              ; preds = %727
  %742 = load i32, ptr %21, align 4, !tbaa !5
  %743 = lshr i32 %742, 4
  %744 = and i32 %743, 2
  %745 = icmp ne i32 0, %744
  %746 = zext i1 %745 to i64
  %747 = select i1 %745, i32 1, i32 0
  br label %748

748:                                              ; preds = %741, %732
  %749 = phi i32 [ %740, %732 ], [ %747, %741 ]
  %750 = or i32 4, %749
  br label %771

751:                                              ; preds = %723
  %752 = load i32, ptr %21, align 4, !tbaa !5
  %753 = and i32 %752, 12
  %754 = icmp ne i32 0, %753
  br i1 %754, label %755, label %763

755:                                              ; preds = %751
  %756 = load i32, ptr %21, align 4, !tbaa !5
  %757 = lshr i32 %756, 2
  %758 = and i32 %757, 2
  %759 = icmp ne i32 0, %758
  %760 = zext i1 %759 to i64
  %761 = select i1 %759, i32 1, i32 0
  %762 = or i32 2, %761
  br label %769

763:                                              ; preds = %751
  %764 = load i32, ptr %21, align 4, !tbaa !5
  %765 = and i32 %764, 2
  %766 = icmp ne i32 0, %765
  %767 = zext i1 %766 to i64
  %768 = select i1 %766, i32 1, i32 0
  br label %769

769:                                              ; preds = %763, %755
  %770 = phi i32 [ %762, %755 ], [ %768, %763 ]
  br label %771

771:                                              ; preds = %769, %748
  %772 = phi i32 [ %750, %748 ], [ %770, %769 ]
  br label %773

773:                                              ; preds = %771, %720
  %774 = phi i32 [ %722, %720 ], [ %772, %771 ]
  br label %775

775:                                              ; preds = %773, %658
  %776 = phi i32 [ %660, %658 ], [ %774, %773 ]
  store i32 %776, ptr %28, align 4, !tbaa !5
  %777 = load i32, ptr %27, align 4, !tbaa !5
  %778 = load i32, ptr %28, align 4, !tbaa !5
  %779 = icmp ne i32 %777, %778
  br i1 %779, label %780, label %781

780:                                              ; preds = %775
  call void @exit(i32 noundef 1) #10
  unreachable

781:                                              ; preds = %775
  %782 = load i64, ptr %20, align 8, !tbaa !11
  %783 = icmp ne i64 0, %782
  %784 = zext i1 %783 to i32
  %785 = load i64, ptr %20, align 8, !tbaa !11
  %786 = call i64 @llvm.cttz.i64(i64 %785, i1 true)
  %787 = trunc i64 %786 to i32
  %788 = mul nsw i32 %784, %787
  store i32 %788, ptr %27, align 4, !tbaa !5
  %789 = load i64, ptr %20, align 8, !tbaa !11
  %790 = call i32 @LIBXSMM_INTRINSICS_BITSCANFWD64_SW(i64 noundef %789)
  store i32 %790, ptr %28, align 4, !tbaa !5
  %791 = load i32, ptr %27, align 4, !tbaa !5
  %792 = load i32, ptr %28, align 4, !tbaa !5
  %793 = icmp ne i32 %791, %792
  br i1 %793, label %794, label %795

794:                                              ; preds = %781
  call void @exit(i32 noundef 1) #10
  unreachable

795:                                              ; preds = %781
  %796 = load i64, ptr %20, align 8, !tbaa !11
  %797 = icmp ne i64 0, %796
  %798 = zext i1 %797 to i32
  %799 = load i64, ptr %20, align 8, !tbaa !11
  %800 = call i64 @llvm.ctlz.i64(i64 %799, i1 true)
  %801 = trunc i64 %800 to i32
  %802 = sub nsw i32 63, %801
  %803 = mul nsw i32 %798, %802
  store i32 %803, ptr %27, align 4, !tbaa !5
  %804 = load i64, ptr %20, align 8, !tbaa !11
  %805 = and i64 %804, -4294967296
  %806 = icmp ne i64 0, %805
  br i1 %806, label %807, label %1089

807:                                              ; preds = %795
  %808 = load i64, ptr %20, align 8, !tbaa !11
  %809 = lshr i64 %808, 32
  %810 = and i64 %809, 4294901760
  %811 = icmp ne i64 0, %810
  br i1 %811, label %812, label %957

812:                                              ; preds = %807
  %813 = load i64, ptr %20, align 8, !tbaa !11
  %814 = lshr i64 %813, 32
  %815 = lshr i64 %814, 16
  %816 = and i64 %815, 65280
  %817 = icmp ne i64 0, %816
  br i1 %817, label %818, label %890

818:                                              ; preds = %812
  %819 = load i64, ptr %20, align 8, !tbaa !11
  %820 = lshr i64 %819, 32
  %821 = lshr i64 %820, 16
  %822 = lshr i64 %821, 8
  %823 = and i64 %822, 240
  %824 = icmp ne i64 0, %823
  br i1 %824, label %825, label %858

825:                                              ; preds = %818
  %826 = load i64, ptr %20, align 8, !tbaa !11
  %827 = lshr i64 %826, 32
  %828 = lshr i64 %827, 16
  %829 = lshr i64 %828, 8
  %830 = lshr i64 %829, 4
  %831 = and i64 %830, 12
  %832 = icmp ne i64 0, %831
  br i1 %832, label %833, label %845

833:                                              ; preds = %825
  %834 = load i64, ptr %20, align 8, !tbaa !11
  %835 = lshr i64 %834, 32
  %836 = lshr i64 %835, 16
  %837 = lshr i64 %836, 8
  %838 = lshr i64 %837, 4
  %839 = lshr i64 %838, 2
  %840 = and i64 %839, 2
  %841 = icmp ne i64 0, %840
  %842 = zext i1 %841 to i64
  %843 = select i1 %841, i32 1, i32 0
  %844 = or i32 2, %843
  br label %855

845:                                              ; preds = %825
  %846 = load i64, ptr %20, align 8, !tbaa !11
  %847 = lshr i64 %846, 32
  %848 = lshr i64 %847, 16
  %849 = lshr i64 %848, 8
  %850 = lshr i64 %849, 4
  %851 = and i64 %850, 2
  %852 = icmp ne i64 0, %851
  %853 = zext i1 %852 to i64
  %854 = select i1 %852, i32 1, i32 0
  br label %855

855:                                              ; preds = %845, %833
  %856 = phi i32 [ %844, %833 ], [ %854, %845 ]
  %857 = or i32 4, %856
  br label %887

858:                                              ; preds = %818
  %859 = load i64, ptr %20, align 8, !tbaa !11
  %860 = lshr i64 %859, 32
  %861 = lshr i64 %860, 16
  %862 = lshr i64 %861, 8
  %863 = and i64 %862, 12
  %864 = icmp ne i64 0, %863
  br i1 %864, label %865, label %876

865:                                              ; preds = %858
  %866 = load i64, ptr %20, align 8, !tbaa !11
  %867 = lshr i64 %866, 32
  %868 = lshr i64 %867, 16
  %869 = lshr i64 %868, 8
  %870 = lshr i64 %869, 2
  %871 = and i64 %870, 2
  %872 = icmp ne i64 0, %871
  %873 = zext i1 %872 to i64
  %874 = select i1 %872, i32 1, i32 0
  %875 = or i32 2, %874
  br label %885

876:                                              ; preds = %858
  %877 = load i64, ptr %20, align 8, !tbaa !11
  %878 = lshr i64 %877, 32
  %879 = lshr i64 %878, 16
  %880 = lshr i64 %879, 8
  %881 = and i64 %880, 2
  %882 = icmp ne i64 0, %881
  %883 = zext i1 %882 to i64
  %884 = select i1 %882, i32 1, i32 0
  br label %885

885:                                              ; preds = %876, %865
  %886 = phi i32 [ %875, %865 ], [ %884, %876 ]
  br label %887

887:                                              ; preds = %885, %855
  %888 = phi i32 [ %857, %855 ], [ %886, %885 ]
  %889 = or i32 8, %888
  br label %954

890:                                              ; preds = %812
  %891 = load i64, ptr %20, align 8, !tbaa !11
  %892 = lshr i64 %891, 32
  %893 = lshr i64 %892, 16
  %894 = and i64 %893, 240
  %895 = icmp ne i64 0, %894
  br i1 %895, label %896, label %926

896:                                              ; preds = %890
  %897 = load i64, ptr %20, align 8, !tbaa !11
  %898 = lshr i64 %897, 32
  %899 = lshr i64 %898, 16
  %900 = lshr i64 %899, 4
  %901 = and i64 %900, 12
  %902 = icmp ne i64 0, %901
  br i1 %902, label %903, label %914

903:                                              ; preds = %896
  %904 = load i64, ptr %20, align 8, !tbaa !11
  %905 = lshr i64 %904, 32
  %906 = lshr i64 %905, 16
  %907 = lshr i64 %906, 4
  %908 = lshr i64 %907, 2
  %909 = and i64 %908, 2
  %910 = icmp ne i64 0, %909
  %911 = zext i1 %910 to i64
  %912 = select i1 %910, i32 1, i32 0
  %913 = or i32 2, %912
  br label %923

914:                                              ; preds = %896
  %915 = load i64, ptr %20, align 8, !tbaa !11
  %916 = lshr i64 %915, 32
  %917 = lshr i64 %916, 16
  %918 = lshr i64 %917, 4
  %919 = and i64 %918, 2
  %920 = icmp ne i64 0, %919
  %921 = zext i1 %920 to i64
  %922 = select i1 %920, i32 1, i32 0
  br label %923

923:                                              ; preds = %914, %903
  %924 = phi i32 [ %913, %903 ], [ %922, %914 ]
  %925 = or i32 4, %924
  br label %952

926:                                              ; preds = %890
  %927 = load i64, ptr %20, align 8, !tbaa !11
  %928 = lshr i64 %927, 32
  %929 = lshr i64 %928, 16
  %930 = and i64 %929, 12
  %931 = icmp ne i64 0, %930
  br i1 %931, label %932, label %942

932:                                              ; preds = %926
  %933 = load i64, ptr %20, align 8, !tbaa !11
  %934 = lshr i64 %933, 32
  %935 = lshr i64 %934, 16
  %936 = lshr i64 %935, 2
  %937 = and i64 %936, 2
  %938 = icmp ne i64 0, %937
  %939 = zext i1 %938 to i64
  %940 = select i1 %938, i32 1, i32 0
  %941 = or i32 2, %940
  br label %950

942:                                              ; preds = %926
  %943 = load i64, ptr %20, align 8, !tbaa !11
  %944 = lshr i64 %943, 32
  %945 = lshr i64 %944, 16
  %946 = and i64 %945, 2
  %947 = icmp ne i64 0, %946
  %948 = zext i1 %947 to i64
  %949 = select i1 %947, i32 1, i32 0
  br label %950

950:                                              ; preds = %942, %932
  %951 = phi i32 [ %941, %932 ], [ %949, %942 ]
  br label %952

952:                                              ; preds = %950, %923
  %953 = phi i32 [ %925, %923 ], [ %951, %950 ]
  br label %954

954:                                              ; preds = %952, %887
  %955 = phi i32 [ %889, %887 ], [ %953, %952 ]
  %956 = or i32 16, %955
  br label %1086

957:                                              ; preds = %807
  %958 = load i64, ptr %20, align 8, !tbaa !11
  %959 = lshr i64 %958, 32
  %960 = and i64 %959, 65280
  %961 = icmp ne i64 0, %960
  br i1 %961, label %962, label %1027

962:                                              ; preds = %957
  %963 = load i64, ptr %20, align 8, !tbaa !11
  %964 = lshr i64 %963, 32
  %965 = lshr i64 %964, 8
  %966 = and i64 %965, 240
  %967 = icmp ne i64 0, %966
  br i1 %967, label %968, label %998

968:                                              ; preds = %962
  %969 = load i64, ptr %20, align 8, !tbaa !11
  %970 = lshr i64 %969, 32
  %971 = lshr i64 %970, 8
  %972 = lshr i64 %971, 4
  %973 = and i64 %972, 12
  %974 = icmp ne i64 0, %973
  br i1 %974, label %975, label %986

975:                                              ; preds = %968
  %976 = load i64, ptr %20, align 8, !tbaa !11
  %977 = lshr i64 %976, 32
  %978 = lshr i64 %977, 8
  %979 = lshr i64 %978, 4
  %980 = lshr i64 %979, 2
  %981 = and i64 %980, 2
  %982 = icmp ne i64 0, %981
  %983 = zext i1 %982 to i64
  %984 = select i1 %982, i32 1, i32 0
  %985 = or i32 2, %984
  br label %995

986:                                              ; preds = %968
  %987 = load i64, ptr %20, align 8, !tbaa !11
  %988 = lshr i64 %987, 32
  %989 = lshr i64 %988, 8
  %990 = lshr i64 %989, 4
  %991 = and i64 %990, 2
  %992 = icmp ne i64 0, %991
  %993 = zext i1 %992 to i64
  %994 = select i1 %992, i32 1, i32 0
  br label %995

995:                                              ; preds = %986, %975
  %996 = phi i32 [ %985, %975 ], [ %994, %986 ]
  %997 = or i32 4, %996
  br label %1024

998:                                              ; preds = %962
  %999 = load i64, ptr %20, align 8, !tbaa !11
  %1000 = lshr i64 %999, 32
  %1001 = lshr i64 %1000, 8
  %1002 = and i64 %1001, 12
  %1003 = icmp ne i64 0, %1002
  br i1 %1003, label %1004, label %1014

1004:                                             ; preds = %998
  %1005 = load i64, ptr %20, align 8, !tbaa !11
  %1006 = lshr i64 %1005, 32
  %1007 = lshr i64 %1006, 8
  %1008 = lshr i64 %1007, 2
  %1009 = and i64 %1008, 2
  %1010 = icmp ne i64 0, %1009
  %1011 = zext i1 %1010 to i64
  %1012 = select i1 %1010, i32 1, i32 0
  %1013 = or i32 2, %1012
  br label %1022

1014:                                             ; preds = %998
  %1015 = load i64, ptr %20, align 8, !tbaa !11
  %1016 = lshr i64 %1015, 32
  %1017 = lshr i64 %1016, 8
  %1018 = and i64 %1017, 2
  %1019 = icmp ne i64 0, %1018
  %1020 = zext i1 %1019 to i64
  %1021 = select i1 %1019, i32 1, i32 0
  br label %1022

1022:                                             ; preds = %1014, %1004
  %1023 = phi i32 [ %1013, %1004 ], [ %1021, %1014 ]
  br label %1024

1024:                                             ; preds = %1022, %995
  %1025 = phi i32 [ %997, %995 ], [ %1023, %1022 ]
  %1026 = or i32 8, %1025
  br label %1084

1027:                                             ; preds = %957
  %1028 = load i64, ptr %20, align 8, !tbaa !11
  %1029 = lshr i64 %1028, 32
  %1030 = and i64 %1029, 240
  %1031 = icmp ne i64 0, %1030
  br i1 %1031, label %1032, label %1059

1032:                                             ; preds = %1027
  %1033 = load i64, ptr %20, align 8, !tbaa !11
  %1034 = lshr i64 %1033, 32
  %1035 = lshr i64 %1034, 4
  %1036 = and i64 %1035, 12
  %1037 = icmp ne i64 0, %1036
  br i1 %1037, label %1038, label %1048

1038:                                             ; preds = %1032
  %1039 = load i64, ptr %20, align 8, !tbaa !11
  %1040 = lshr i64 %1039, 32
  %1041 = lshr i64 %1040, 4
  %1042 = lshr i64 %1041, 2
  %1043 = and i64 %1042, 2
  %1044 = icmp ne i64 0, %1043
  %1045 = zext i1 %1044 to i64
  %1046 = select i1 %1044, i32 1, i32 0
  %1047 = or i32 2, %1046
  br label %1056

1048:                                             ; preds = %1032
  %1049 = load i64, ptr %20, align 8, !tbaa !11
  %1050 = lshr i64 %1049, 32
  %1051 = lshr i64 %1050, 4
  %1052 = and i64 %1051, 2
  %1053 = icmp ne i64 0, %1052
  %1054 = zext i1 %1053 to i64
  %1055 = select i1 %1053, i32 1, i32 0
  br label %1056

1056:                                             ; preds = %1048, %1038
  %1057 = phi i32 [ %1047, %1038 ], [ %1055, %1048 ]
  %1058 = or i32 4, %1057
  br label %1082

1059:                                             ; preds = %1027
  %1060 = load i64, ptr %20, align 8, !tbaa !11
  %1061 = lshr i64 %1060, 32
  %1062 = and i64 %1061, 12
  %1063 = icmp ne i64 0, %1062
  br i1 %1063, label %1064, label %1073

1064:                                             ; preds = %1059
  %1065 = load i64, ptr %20, align 8, !tbaa !11
  %1066 = lshr i64 %1065, 32
  %1067 = lshr i64 %1066, 2
  %1068 = and i64 %1067, 2
  %1069 = icmp ne i64 0, %1068
  %1070 = zext i1 %1069 to i64
  %1071 = select i1 %1069, i32 1, i32 0
  %1072 = or i32 2, %1071
  br label %1080

1073:                                             ; preds = %1059
  %1074 = load i64, ptr %20, align 8, !tbaa !11
  %1075 = lshr i64 %1074, 32
  %1076 = and i64 %1075, 2
  %1077 = icmp ne i64 0, %1076
  %1078 = zext i1 %1077 to i64
  %1079 = select i1 %1077, i32 1, i32 0
  br label %1080

1080:                                             ; preds = %1073, %1064
  %1081 = phi i32 [ %1072, %1064 ], [ %1079, %1073 ]
  br label %1082

1082:                                             ; preds = %1080, %1056
  %1083 = phi i32 [ %1058, %1056 ], [ %1081, %1080 ]
  br label %1084

1084:                                             ; preds = %1082, %1024
  %1085 = phi i32 [ %1026, %1024 ], [ %1083, %1082 ]
  br label %1086

1086:                                             ; preds = %1084, %954
  %1087 = phi i32 [ %956, %954 ], [ %1085, %1084 ]
  %1088 = or i32 32, %1087
  br label %1339

1089:                                             ; preds = %795
  %1090 = load i64, ptr %20, align 8, !tbaa !11
  %1091 = and i64 %1090, 4294901760
  %1092 = icmp ne i64 0, %1091
  br i1 %1092, label %1093, label %1223

1093:                                             ; preds = %1089
  %1094 = load i64, ptr %20, align 8, !tbaa !11
  %1095 = lshr i64 %1094, 16
  %1096 = and i64 %1095, 65280
  %1097 = icmp ne i64 0, %1096
  br i1 %1097, label %1098, label %1163

1098:                                             ; preds = %1093
  %1099 = load i64, ptr %20, align 8, !tbaa !11
  %1100 = lshr i64 %1099, 16
  %1101 = lshr i64 %1100, 8
  %1102 = and i64 %1101, 240
  %1103 = icmp ne i64 0, %1102
  br i1 %1103, label %1104, label %1134

1104:                                             ; preds = %1098
  %1105 = load i64, ptr %20, align 8, !tbaa !11
  %1106 = lshr i64 %1105, 16
  %1107 = lshr i64 %1106, 8
  %1108 = lshr i64 %1107, 4
  %1109 = and i64 %1108, 12
  %1110 = icmp ne i64 0, %1109
  br i1 %1110, label %1111, label %1122

1111:                                             ; preds = %1104
  %1112 = load i64, ptr %20, align 8, !tbaa !11
  %1113 = lshr i64 %1112, 16
  %1114 = lshr i64 %1113, 8
  %1115 = lshr i64 %1114, 4
  %1116 = lshr i64 %1115, 2
  %1117 = and i64 %1116, 2
  %1118 = icmp ne i64 0, %1117
  %1119 = zext i1 %1118 to i64
  %1120 = select i1 %1118, i32 1, i32 0
  %1121 = or i32 2, %1120
  br label %1131

1122:                                             ; preds = %1104
  %1123 = load i64, ptr %20, align 8, !tbaa !11
  %1124 = lshr i64 %1123, 16
  %1125 = lshr i64 %1124, 8
  %1126 = lshr i64 %1125, 4
  %1127 = and i64 %1126, 2
  %1128 = icmp ne i64 0, %1127
  %1129 = zext i1 %1128 to i64
  %1130 = select i1 %1128, i32 1, i32 0
  br label %1131

1131:                                             ; preds = %1122, %1111
  %1132 = phi i32 [ %1121, %1111 ], [ %1130, %1122 ]
  %1133 = or i32 4, %1132
  br label %1160

1134:                                             ; preds = %1098
  %1135 = load i64, ptr %20, align 8, !tbaa !11
  %1136 = lshr i64 %1135, 16
  %1137 = lshr i64 %1136, 8
  %1138 = and i64 %1137, 12
  %1139 = icmp ne i64 0, %1138
  br i1 %1139, label %1140, label %1150

1140:                                             ; preds = %1134
  %1141 = load i64, ptr %20, align 8, !tbaa !11
  %1142 = lshr i64 %1141, 16
  %1143 = lshr i64 %1142, 8
  %1144 = lshr i64 %1143, 2
  %1145 = and i64 %1144, 2
  %1146 = icmp ne i64 0, %1145
  %1147 = zext i1 %1146 to i64
  %1148 = select i1 %1146, i32 1, i32 0
  %1149 = or i32 2, %1148
  br label %1158

1150:                                             ; preds = %1134
  %1151 = load i64, ptr %20, align 8, !tbaa !11
  %1152 = lshr i64 %1151, 16
  %1153 = lshr i64 %1152, 8
  %1154 = and i64 %1153, 2
  %1155 = icmp ne i64 0, %1154
  %1156 = zext i1 %1155 to i64
  %1157 = select i1 %1155, i32 1, i32 0
  br label %1158

1158:                                             ; preds = %1150, %1140
  %1159 = phi i32 [ %1149, %1140 ], [ %1157, %1150 ]
  br label %1160

1160:                                             ; preds = %1158, %1131
  %1161 = phi i32 [ %1133, %1131 ], [ %1159, %1158 ]
  %1162 = or i32 8, %1161
  br label %1220

1163:                                             ; preds = %1093
  %1164 = load i64, ptr %20, align 8, !tbaa !11
  %1165 = lshr i64 %1164, 16
  %1166 = and i64 %1165, 240
  %1167 = icmp ne i64 0, %1166
  br i1 %1167, label %1168, label %1195

1168:                                             ; preds = %1163
  %1169 = load i64, ptr %20, align 8, !tbaa !11
  %1170 = lshr i64 %1169, 16
  %1171 = lshr i64 %1170, 4
  %1172 = and i64 %1171, 12
  %1173 = icmp ne i64 0, %1172
  br i1 %1173, label %1174, label %1184

1174:                                             ; preds = %1168
  %1175 = load i64, ptr %20, align 8, !tbaa !11
  %1176 = lshr i64 %1175, 16
  %1177 = lshr i64 %1176, 4
  %1178 = lshr i64 %1177, 2
  %1179 = and i64 %1178, 2
  %1180 = icmp ne i64 0, %1179
  %1181 = zext i1 %1180 to i64
  %1182 = select i1 %1180, i32 1, i32 0
  %1183 = or i32 2, %1182
  br label %1192

1184:                                             ; preds = %1168
  %1185 = load i64, ptr %20, align 8, !tbaa !11
  %1186 = lshr i64 %1185, 16
  %1187 = lshr i64 %1186, 4
  %1188 = and i64 %1187, 2
  %1189 = icmp ne i64 0, %1188
  %1190 = zext i1 %1189 to i64
  %1191 = select i1 %1189, i32 1, i32 0
  br label %1192

1192:                                             ; preds = %1184, %1174
  %1193 = phi i32 [ %1183, %1174 ], [ %1191, %1184 ]
  %1194 = or i32 4, %1193
  br label %1218

1195:                                             ; preds = %1163
  %1196 = load i64, ptr %20, align 8, !tbaa !11
  %1197 = lshr i64 %1196, 16
  %1198 = and i64 %1197, 12
  %1199 = icmp ne i64 0, %1198
  br i1 %1199, label %1200, label %1209

1200:                                             ; preds = %1195
  %1201 = load i64, ptr %20, align 8, !tbaa !11
  %1202 = lshr i64 %1201, 16
  %1203 = lshr i64 %1202, 2
  %1204 = and i64 %1203, 2
  %1205 = icmp ne i64 0, %1204
  %1206 = zext i1 %1205 to i64
  %1207 = select i1 %1205, i32 1, i32 0
  %1208 = or i32 2, %1207
  br label %1216

1209:                                             ; preds = %1195
  %1210 = load i64, ptr %20, align 8, !tbaa !11
  %1211 = lshr i64 %1210, 16
  %1212 = and i64 %1211, 2
  %1213 = icmp ne i64 0, %1212
  %1214 = zext i1 %1213 to i64
  %1215 = select i1 %1213, i32 1, i32 0
  br label %1216

1216:                                             ; preds = %1209, %1200
  %1217 = phi i32 [ %1208, %1200 ], [ %1215, %1209 ]
  br label %1218

1218:                                             ; preds = %1216, %1192
  %1219 = phi i32 [ %1194, %1192 ], [ %1217, %1216 ]
  br label %1220

1220:                                             ; preds = %1218, %1160
  %1221 = phi i32 [ %1162, %1160 ], [ %1219, %1218 ]
  %1222 = or i32 16, %1221
  br label %1337

1223:                                             ; preds = %1089
  %1224 = load i64, ptr %20, align 8, !tbaa !11
  %1225 = and i64 %1224, 65280
  %1226 = icmp ne i64 0, %1225
  br i1 %1226, label %1227, label %1285

1227:                                             ; preds = %1223
  %1228 = load i64, ptr %20, align 8, !tbaa !11
  %1229 = lshr i64 %1228, 8
  %1230 = and i64 %1229, 240
  %1231 = icmp ne i64 0, %1230
  br i1 %1231, label %1232, label %1259

1232:                                             ; preds = %1227
  %1233 = load i64, ptr %20, align 8, !tbaa !11
  %1234 = lshr i64 %1233, 8
  %1235 = lshr i64 %1234, 4
  %1236 = and i64 %1235, 12
  %1237 = icmp ne i64 0, %1236
  br i1 %1237, label %1238, label %1248

1238:                                             ; preds = %1232
  %1239 = load i64, ptr %20, align 8, !tbaa !11
  %1240 = lshr i64 %1239, 8
  %1241 = lshr i64 %1240, 4
  %1242 = lshr i64 %1241, 2
  %1243 = and i64 %1242, 2
  %1244 = icmp ne i64 0, %1243
  %1245 = zext i1 %1244 to i64
  %1246 = select i1 %1244, i32 1, i32 0
  %1247 = or i32 2, %1246
  br label %1256

1248:                                             ; preds = %1232
  %1249 = load i64, ptr %20, align 8, !tbaa !11
  %1250 = lshr i64 %1249, 8
  %1251 = lshr i64 %1250, 4
  %1252 = and i64 %1251, 2
  %1253 = icmp ne i64 0, %1252
  %1254 = zext i1 %1253 to i64
  %1255 = select i1 %1253, i32 1, i32 0
  br label %1256

1256:                                             ; preds = %1248, %1238
  %1257 = phi i32 [ %1247, %1238 ], [ %1255, %1248 ]
  %1258 = or i32 4, %1257
  br label %1282

1259:                                             ; preds = %1227
  %1260 = load i64, ptr %20, align 8, !tbaa !11
  %1261 = lshr i64 %1260, 8
  %1262 = and i64 %1261, 12
  %1263 = icmp ne i64 0, %1262
  br i1 %1263, label %1264, label %1273

1264:                                             ; preds = %1259
  %1265 = load i64, ptr %20, align 8, !tbaa !11
  %1266 = lshr i64 %1265, 8
  %1267 = lshr i64 %1266, 2
  %1268 = and i64 %1267, 2
  %1269 = icmp ne i64 0, %1268
  %1270 = zext i1 %1269 to i64
  %1271 = select i1 %1269, i32 1, i32 0
  %1272 = or i32 2, %1271
  br label %1280

1273:                                             ; preds = %1259
  %1274 = load i64, ptr %20, align 8, !tbaa !11
  %1275 = lshr i64 %1274, 8
  %1276 = and i64 %1275, 2
  %1277 = icmp ne i64 0, %1276
  %1278 = zext i1 %1277 to i64
  %1279 = select i1 %1277, i32 1, i32 0
  br label %1280

1280:                                             ; preds = %1273, %1264
  %1281 = phi i32 [ %1272, %1264 ], [ %1279, %1273 ]
  br label %1282

1282:                                             ; preds = %1280, %1256
  %1283 = phi i32 [ %1258, %1256 ], [ %1281, %1280 ]
  %1284 = or i32 8, %1283
  br label %1335

1285:                                             ; preds = %1223
  %1286 = load i64, ptr %20, align 8, !tbaa !11
  %1287 = and i64 %1286, 240
  %1288 = icmp ne i64 0, %1287
  br i1 %1288, label %1289, label %1313

1289:                                             ; preds = %1285
  %1290 = load i64, ptr %20, align 8, !tbaa !11
  %1291 = lshr i64 %1290, 4
  %1292 = and i64 %1291, 12
  %1293 = icmp ne i64 0, %1292
  br i1 %1293, label %1294, label %1303

1294:                                             ; preds = %1289
  %1295 = load i64, ptr %20, align 8, !tbaa !11
  %1296 = lshr i64 %1295, 4
  %1297 = lshr i64 %1296, 2
  %1298 = and i64 %1297, 2
  %1299 = icmp ne i64 0, %1298
  %1300 = zext i1 %1299 to i64
  %1301 = select i1 %1299, i32 1, i32 0
  %1302 = or i32 2, %1301
  br label %1310

1303:                                             ; preds = %1289
  %1304 = load i64, ptr %20, align 8, !tbaa !11
  %1305 = lshr i64 %1304, 4
  %1306 = and i64 %1305, 2
  %1307 = icmp ne i64 0, %1306
  %1308 = zext i1 %1307 to i64
  %1309 = select i1 %1307, i32 1, i32 0
  br label %1310

1310:                                             ; preds = %1303, %1294
  %1311 = phi i32 [ %1302, %1294 ], [ %1309, %1303 ]
  %1312 = or i32 4, %1311
  br label %1333

1313:                                             ; preds = %1285
  %1314 = load i64, ptr %20, align 8, !tbaa !11
  %1315 = and i64 %1314, 12
  %1316 = icmp ne i64 0, %1315
  br i1 %1316, label %1317, label %1325

1317:                                             ; preds = %1313
  %1318 = load i64, ptr %20, align 8, !tbaa !11
  %1319 = lshr i64 %1318, 2
  %1320 = and i64 %1319, 2
  %1321 = icmp ne i64 0, %1320
  %1322 = zext i1 %1321 to i64
  %1323 = select i1 %1321, i32 1, i32 0
  %1324 = or i32 2, %1323
  br label %1331

1325:                                             ; preds = %1313
  %1326 = load i64, ptr %20, align 8, !tbaa !11
  %1327 = and i64 %1326, 2
  %1328 = icmp ne i64 0, %1327
  %1329 = zext i1 %1328 to i64
  %1330 = select i1 %1328, i32 1, i32 0
  br label %1331

1331:                                             ; preds = %1325, %1317
  %1332 = phi i32 [ %1324, %1317 ], [ %1330, %1325 ]
  br label %1333

1333:                                             ; preds = %1331, %1310
  %1334 = phi i32 [ %1312, %1310 ], [ %1332, %1331 ]
  br label %1335

1335:                                             ; preds = %1333, %1282
  %1336 = phi i32 [ %1284, %1282 ], [ %1334, %1333 ]
  br label %1337

1337:                                             ; preds = %1335, %1220
  %1338 = phi i32 [ %1222, %1220 ], [ %1336, %1335 ]
  br label %1339

1339:                                             ; preds = %1337, %1086
  %1340 = phi i32 [ %1088, %1086 ], [ %1338, %1337 ]
  store i32 %1340, ptr %28, align 4, !tbaa !5
  %1341 = load i32, ptr %27, align 4, !tbaa !5
  %1342 = load i32, ptr %28, align 4, !tbaa !5
  %1343 = icmp ne i32 %1341, %1342
  br i1 %1343, label %1344, label %1345

1344:                                             ; preds = %1339
  call void @exit(i32 noundef 1) #10
  unreachable

1345:                                             ; preds = %1339
  %1346 = load i32, ptr %10, align 4, !tbaa !5
  %1347 = sext i32 %1346 to i64
  %1348 = call i32 @LIBXSMM_ILOG2(i64 noundef %1347)
  store i32 %1348, ptr %27, align 4, !tbaa !5
  %1349 = load i32, ptr %10, align 4, !tbaa !5
  %1350 = call i32 @ref_ilog2_u32(i32 noundef %1349)
  store i32 %1350, ptr %28, align 4, !tbaa !5
  %1351 = load i32, ptr %10, align 4, !tbaa !5
  %1352 = icmp ne i32 0, %1351
  br i1 %1352, label %1353, label %1358

1353:                                             ; preds = %1345
  %1354 = load i32, ptr %27, align 4, !tbaa !5
  %1355 = load i32, ptr %28, align 4, !tbaa !5
  %1356 = icmp ne i32 %1354, %1355
  br i1 %1356, label %1357, label %1358

1357:                                             ; preds = %1353
  call void @exit(i32 noundef 1) #10
  unreachable

1358:                                             ; preds = %1353, %1345
  %1359 = load i32, ptr %21, align 4, !tbaa !5
  %1360 = zext i32 %1359 to i64
  %1361 = call i32 @LIBXSMM_ILOG2(i64 noundef %1360)
  store i32 %1361, ptr %27, align 4, !tbaa !5
  %1362 = load i32, ptr %21, align 4, !tbaa !5
  %1363 = call i32 @ref_ilog2_u32(i32 noundef %1362)
  store i32 %1363, ptr %28, align 4, !tbaa !5
  %1364 = load i32, ptr %21, align 4, !tbaa !5
  %1365 = icmp ne i32 0, %1364
  br i1 %1365, label %1366, label %1371

1366:                                             ; preds = %1358
  %1367 = load i32, ptr %27, align 4, !tbaa !5
  %1368 = load i32, ptr %28, align 4, !tbaa !5
  %1369 = icmp ne i32 %1367, %1368
  br i1 %1369, label %1370, label %1371

1370:                                             ; preds = %1366
  call void @exit(i32 noundef 1) #10
  unreachable

1371:                                             ; preds = %1366, %1358
  %1372 = load i32, ptr %10, align 4, !tbaa !5
  %1373 = icmp ne i32 0, %1372
  %1374 = zext i1 %1373 to i32
  %1375 = load i32, ptr %10, align 4, !tbaa !5
  %1376 = sext i32 %1375 to i64
  %1377 = call i64 @llvm.ctlz.i64(i64 %1376, i1 true)
  %1378 = trunc i64 %1377 to i32
  %1379 = sub nsw i32 63, %1378
  %1380 = mul nsw i32 %1374, %1379
  %1381 = load i32, ptr %10, align 4, !tbaa !5
  %1382 = icmp slt i32 1, %1381
  br i1 %1382, label %1383, label %1384

1383:                                             ; preds = %1371
  br label %1386

1384:                                             ; preds = %1371
  %1385 = load i32, ptr %10, align 4, !tbaa !5
  br label %1386

1386:                                             ; preds = %1384, %1383
  %1387 = phi i32 [ 1, %1383 ], [ %1385, %1384 ]
  %1388 = add nsw i32 %1380, %1387
  %1389 = ashr i32 %1388, 1
  %1390 = zext i32 %1389 to i64
  %1391 = shl i64 1, %1390
  %1392 = trunc i64 %1391 to i32
  store i32 %1392, ptr %27, align 4, !tbaa !5
  %1393 = load i32, ptr %10, align 4, !tbaa !5
  %1394 = call i32 @libxsmm_isqrt_u32(i32 noundef %1393)
  store i32 %1394, ptr %28, align 4, !tbaa !5
  %1395 = load i32, ptr %27, align 4, !tbaa !5
  %1396 = load i32, ptr %27, align 4, !tbaa !5
  %1397 = load i32, ptr %28, align 4, !tbaa !5
  %1398 = icmp ult i32 %1396, %1397
  br i1 %1398, label %1399, label %1403

1399:                                             ; preds = %1386
  %1400 = load i32, ptr %28, align 4, !tbaa !5
  %1401 = load i32, ptr %27, align 4, !tbaa !5
  %1402 = sub i32 %1400, %1401
  br label %1407

1403:                                             ; preds = %1386
  %1404 = load i32, ptr %27, align 4, !tbaa !5
  %1405 = load i32, ptr %28, align 4, !tbaa !5
  %1406 = sub i32 %1404, %1405
  br label %1407

1407:                                             ; preds = %1403, %1399
  %1408 = phi i32 [ %1402, %1399 ], [ %1406, %1403 ]
  %1409 = icmp ult i32 %1395, %1408
  br i1 %1409, label %1410, label %1411

1410:                                             ; preds = %1407
  call void @exit(i32 noundef 1) #10
  unreachable

1411:                                             ; preds = %1407
  %1412 = load i32, ptr %21, align 4, !tbaa !5
  %1413 = icmp ne i32 0, %1412
  %1414 = zext i1 %1413 to i32
  %1415 = load i32, ptr %21, align 4, !tbaa !5
  %1416 = zext i32 %1415 to i64
  %1417 = call i64 @llvm.ctlz.i64(i64 %1416, i1 true)
  %1418 = trunc i64 %1417 to i32
  %1419 = sub nsw i32 63, %1418
  %1420 = mul nsw i32 %1414, %1419
  %1421 = load i32, ptr %21, align 4, !tbaa !5
  %1422 = icmp ult i32 1, %1421
  br i1 %1422, label %1423, label %1424

1423:                                             ; preds = %1411
  br label %1426

1424:                                             ; preds = %1411
  %1425 = load i32, ptr %21, align 4, !tbaa !5
  br label %1426

1426:                                             ; preds = %1424, %1423
  %1427 = phi i32 [ 1, %1423 ], [ %1425, %1424 ]
  %1428 = add i32 %1420, %1427
  %1429 = lshr i32 %1428, 1
  %1430 = zext i32 %1429 to i64
  %1431 = shl i64 1, %1430
  %1432 = trunc i64 %1431 to i32
  store i32 %1432, ptr %27, align 4, !tbaa !5
  %1433 = load i32, ptr %21, align 4, !tbaa !5
  %1434 = call i32 @libxsmm_isqrt_u32(i32 noundef %1433)
  store i32 %1434, ptr %28, align 4, !tbaa !5
  %1435 = load i32, ptr %27, align 4, !tbaa !5
  %1436 = load i32, ptr %27, align 4, !tbaa !5
  %1437 = load i32, ptr %28, align 4, !tbaa !5
  %1438 = icmp ult i32 %1436, %1437
  br i1 %1438, label %1439, label %1443

1439:                                             ; preds = %1426
  %1440 = load i32, ptr %28, align 4, !tbaa !5
  %1441 = load i32, ptr %27, align 4, !tbaa !5
  %1442 = sub i32 %1440, %1441
  br label %1447

1443:                                             ; preds = %1426
  %1444 = load i32, ptr %27, align 4, !tbaa !5
  %1445 = load i32, ptr %28, align 4, !tbaa !5
  %1446 = sub i32 %1444, %1445
  br label %1447

1447:                                             ; preds = %1443, %1439
  %1448 = phi i32 [ %1442, %1439 ], [ %1446, %1443 ]
  %1449 = icmp ult i32 %1435, %1448
  br i1 %1449, label %1450, label %1451

1450:                                             ; preds = %1447
  call void @exit(i32 noundef 1) #10
  unreachable

1451:                                             ; preds = %1447
  %1452 = load i64, ptr %20, align 8, !tbaa !11
  %1453 = icmp ne i64 0, %1452
  %1454 = zext i1 %1453 to i32
  %1455 = load i64, ptr %20, align 8, !tbaa !11
  %1456 = call i64 @llvm.ctlz.i64(i64 %1455, i1 true)
  %1457 = trunc i64 %1456 to i32
  %1458 = sub nsw i32 63, %1457
  %1459 = mul nsw i32 %1454, %1458
  %1460 = sext i32 %1459 to i64
  %1461 = load i64, ptr %20, align 8, !tbaa !11
  %1462 = icmp ult i64 1, %1461
  br i1 %1462, label %1463, label %1464

1463:                                             ; preds = %1451
  br label %1466

1464:                                             ; preds = %1451
  %1465 = load i64, ptr %20, align 8, !tbaa !11
  br label %1466

1466:                                             ; preds = %1464, %1463
  %1467 = phi i64 [ 1, %1463 ], [ %1465, %1464 ]
  %1468 = add i64 %1460, %1467
  %1469 = lshr i64 %1468, 1
  %1470 = shl i64 1, %1469
  %1471 = trunc i64 %1470 to i32
  store i32 %1471, ptr %27, align 4, !tbaa !5
  %1472 = load i64, ptr %20, align 8, !tbaa !11
  %1473 = call i32 @libxsmm_isqrt_u64(i64 noundef %1472)
  store i32 %1473, ptr %28, align 4, !tbaa !5
  %1474 = load i32, ptr %27, align 4, !tbaa !5
  %1475 = icmp ne i32 0, %1474
  br i1 %1475, label %1476, label %1493

1476:                                             ; preds = %1466
  %1477 = load i32, ptr %27, align 4, !tbaa !5
  %1478 = load i32, ptr %27, align 4, !tbaa !5
  %1479 = load i32, ptr %28, align 4, !tbaa !5
  %1480 = icmp ult i32 %1478, %1479
  br i1 %1480, label %1481, label %1485

1481:                                             ; preds = %1476
  %1482 = load i32, ptr %28, align 4, !tbaa !5
  %1483 = load i32, ptr %27, align 4, !tbaa !5
  %1484 = sub i32 %1482, %1483
  br label %1489

1485:                                             ; preds = %1476
  %1486 = load i32, ptr %27, align 4, !tbaa !5
  %1487 = load i32, ptr %28, align 4, !tbaa !5
  %1488 = sub i32 %1486, %1487
  br label %1489

1489:                                             ; preds = %1485, %1481
  %1490 = phi i32 [ %1484, %1481 ], [ %1488, %1485 ]
  %1491 = icmp ult i32 %1477, %1490
  br i1 %1491, label %1492, label %1493

1492:                                             ; preds = %1489
  call void @exit(i32 noundef 1) #10
  unreachable

1493:                                             ; preds = %1489, %1466
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %1494

1494:                                             ; preds = %1493
  %1495 = load i32, ptr %10, align 4, !tbaa !5
  %1496 = add nsw i32 %1495, 1
  store i32 %1496, ptr %10, align 4, !tbaa !5
  br label %116, !llvm.loop !20

1497:                                             ; preds = %116
  call void @llvm.lifetime.start.p0(i64 44, ptr %29) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %29, ptr align 16 @__const.main.npot, i64 44, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  store i32 11, ptr %30, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %1498

1498:                                             ; preds = %1528, %1497
  %1499 = load i32, ptr %10, align 4, !tbaa !5
  %1500 = icmp slt i32 %1499, 11
  br i1 %1500, label %1501, label %1531

1501:                                             ; preds = %1498
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1502 = load i32, ptr %10, align 4, !tbaa !5
  %1503 = sext i32 %1502 to i64
  %1504 = getelementptr inbounds [11 x i32], ptr %29, i64 0, i64 %1503
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  store i32 %1505, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1506 = load i32, ptr %31, align 4, !tbaa !5
  %1507 = icmp ne i32 0, %1506
  %1508 = zext i1 %1507 to i32
  %1509 = load i32, ptr %31, align 4, !tbaa !5
  %1510 = call i32 @llvm.ctlz.i32(i32 %1509, i1 true)
  %1511 = sub nsw i32 31, %1510
  %1512 = mul nsw i32 %1508, %1511
  store i32 %1512, ptr %32, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1513 = load i32, ptr %32, align 4, !tbaa !5
  %1514 = load i32, ptr %31, align 4, !tbaa !5
  %1515 = icmp slt i32 %1513, %1514
  br i1 %1515, label %1516, label %1519

1516:                                             ; preds = %1501
  %1517 = load i32, ptr %32, align 4, !tbaa !5
  %1518 = shl i32 1, %1517
  br label %1521

1519:                                             ; preds = %1501
  %1520 = load i32, ptr %32, align 4, !tbaa !5
  br label %1521

1521:                                             ; preds = %1519, %1516
  %1522 = phi i32 [ %1518, %1516 ], [ %1520, %1519 ]
  store i32 %1522, ptr %33, align 4, !tbaa !5
  %1523 = load i32, ptr %31, align 4, !tbaa !5
  %1524 = load i32, ptr %33, align 4, !tbaa !5
  %1525 = icmp ne i32 %1523, %1524
  br i1 %1525, label %1526, label %1527

1526:                                             ; preds = %1521
  call void @exit(i32 noundef 1) #10
  unreachable

1527:                                             ; preds = %1521
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1528

1528:                                             ; preds = %1527
  %1529 = load i32, ptr %10, align 4, !tbaa !5
  %1530 = add nsw i32 %1529, 1
  store i32 %1530, ptr %10, align 4, !tbaa !5
  br label %1498, !llvm.loop !21

1531:                                             ; preds = %1498
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 44, ptr %29) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 5, ptr %34, align 4, !tbaa !5
  %1532 = call i32 @LIBXSMM_INTRINSICS_BITSCANFWD64_SW(i64 noundef 46912508653024)
  store i32 %1532, ptr %35, align 4, !tbaa !5
  %1533 = load i32, ptr %34, align 4, !tbaa !5
  %1534 = load i32, ptr %35, align 4, !tbaa !5
  %1535 = icmp ne i32 %1533, %1534
  br i1 %1535, label %1536, label %1537

1536:                                             ; preds = %1531
  call void @exit(i32 noundef 1) #10
  unreachable

1537:                                             ; preds = %1531
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  %1538 = load i32, ptr %9, align 4, !tbaa !5
  %1539 = icmp slt i32 0, %1538
  br i1 %1539, label %1543, label %1540

1540:                                             ; preds = %1537
  %1541 = load i32, ptr %8, align 4, !tbaa !5
  %1542 = icmp slt i32 0, %1541
  br i1 %1542, label %1543, label %1558

1543:                                             ; preds = %1540, %1537
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr %9, align 4, !tbaa !5
  %1546 = load i32, ptr %8, align 4, !tbaa !5
  %1547 = icmp slt i32 %1545, %1546
  br i1 %1547, label %1548, label %1550

1548:                                             ; preds = %1543
  %1549 = load i32, ptr %8, align 4, !tbaa !5
  br label %1552

1550:                                             ; preds = %1543
  %1551 = load i32, ptr %9, align 4, !tbaa !5
  br label %1552

1552:                                             ; preds = %1550, %1548
  %1553 = phi i32 [ %1549, %1548 ], [ %1551, %1550 ]
  %1554 = sitofp i32 %1553 to double
  %1555 = fmul double 1.000000e+02, %1554
  %1556 = fdiv double %1555, 1.000000e+06
  %1557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef @.str, double noundef %1556) #9
  br label %1558

1558:                                             ; preds = %1552, %1540
  call void @llvm.lifetime.start.p0(i64 56, ptr %36) #9
  call void @llvm.memset.p0.i64(ptr align 16 %36, i8 0, i64 56, i1 false)
  %1559 = getelementptr inbounds [7 x i64], ptr %36, i32 0, i32 1
  store i64 1, ptr %1559, align 8
  %1560 = getelementptr inbounds [7 x i64], ptr %36, i32 0, i32 2
  store i64 10, ptr %1560, align 16
  %1561 = getelementptr inbounds [7 x i64], ptr %36, i32 0, i32 3
  store i64 100, ptr %1561, align 8
  %1562 = getelementptr inbounds [7 x i64], ptr %36, i32 0, i32 4
  store i64 127, ptr %1562, align 16
  %1563 = getelementptr inbounds [7 x i64], ptr %36, i32 0, i32 5
  store i64 128, ptr %1563, align 8
  %1564 = getelementptr inbounds [7 x i64], ptr %36, i32 0, i32 6
  store i64 129, ptr %1564, align 16
  call void @llvm.lifetime.start.p0(i64 56, ptr %37) #9
  call void @llvm.memset.p0.i64(ptr align 16 %37, i8 0, i64 56, i1 false)
  %1565 = getelementptr inbounds [7 x i64], ptr %37, i32 0, i32 1
  store i64 1, ptr %1565, align 8
  %1566 = getelementptr inbounds [7 x i64], ptr %37, i32 0, i32 2
  store i64 16, ptr %1566, align 16
  %1567 = getelementptr inbounds [7 x i64], ptr %37, i32 0, i32 3
  store i64 128, ptr %1567, align 8
  %1568 = getelementptr inbounds [7 x i64], ptr %37, i32 0, i32 4
  store i64 128, ptr %1568, align 16
  %1569 = getelementptr inbounds [7 x i64], ptr %37, i32 0, i32 5
  store i64 128, ptr %1569, align 8
  %1570 = getelementptr inbounds [7 x i64], ptr %37, i32 0, i32 6
  store i64 256, ptr %1570, align 16
  call void @llvm.lifetime.start.p0(i64 56, ptr %38) #9
  call void @llvm.memset.p0.i64(ptr align 16 %38, i8 0, i64 56, i1 false)
  %1571 = getelementptr inbounds [7 x i64], ptr %38, i32 0, i32 1
  store i64 1, ptr %1571, align 8
  %1572 = getelementptr inbounds [7 x i64], ptr %38, i32 0, i32 2
  store i64 8, ptr %1572, align 16
  %1573 = getelementptr inbounds [7 x i64], ptr %38, i32 0, i32 3
  store i64 64, ptr %1573, align 8
  %1574 = getelementptr inbounds [7 x i64], ptr %38, i32 0, i32 4
  store i64 64, ptr %1574, align 16
  %1575 = getelementptr inbounds [7 x i64], ptr %38, i32 0, i32 5
  store i64 128, ptr %1575, align 8
  %1576 = getelementptr inbounds [7 x i64], ptr %38, i32 0, i32 6
  store i64 128, ptr %1576, align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 7, ptr %39, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %1577

1577:                                             ; preds = %8831, %1558
  %1578 = load i32, ptr %10, align 4, !tbaa !5
  %1579 = icmp slt i32 %1578, 7
  br i1 %1579, label %1580, label %8834

1580:                                             ; preds = %1577
  %1581 = load i32, ptr %10, align 4, !tbaa !5
  %1582 = sext i32 %1581 to i64
  %1583 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1582
  %1584 = load i64, ptr %1583, align 8, !tbaa !22
  %1585 = load i32, ptr %10, align 4, !tbaa !5
  %1586 = sext i32 %1585 to i64
  %1587 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1586
  %1588 = load i64, ptr %1587, align 8, !tbaa !22
  %1589 = icmp ult i64 1, %1588
  br i1 %1589, label %1590, label %1591

1590:                                             ; preds = %1580
  br label %1596

1591:                                             ; preds = %1580
  %1592 = load i32, ptr %10, align 4, !tbaa !5
  %1593 = sext i32 %1592 to i64
  %1594 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1593
  %1595 = load i64, ptr %1594, align 8, !tbaa !22
  br label %1596

1596:                                             ; preds = %1591, %1590
  %1597 = phi i64 [ 1, %1590 ], [ %1595, %1591 ]
  %1598 = sub i64 %1584, %1597
  %1599 = load i32, ptr %10, align 4, !tbaa !5
  %1600 = sext i32 %1599 to i64
  %1601 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1600
  %1602 = load i64, ptr %1601, align 8, !tbaa !22
  %1603 = load i32, ptr %10, align 4, !tbaa !5
  %1604 = sext i32 %1603 to i64
  %1605 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1604
  %1606 = load i64, ptr %1605, align 8, !tbaa !22
  %1607 = icmp ult i64 1, %1606
  br i1 %1607, label %1608, label %1609

1608:                                             ; preds = %1596
  br label %1614

1609:                                             ; preds = %1596
  %1610 = load i32, ptr %10, align 4, !tbaa !5
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1611
  %1613 = load i64, ptr %1612, align 8, !tbaa !22
  br label %1614

1614:                                             ; preds = %1609, %1608
  %1615 = phi i64 [ 1, %1608 ], [ %1613, %1609 ]
  %1616 = sub i64 %1602, %1615
  %1617 = lshr i64 %1616, 1
  %1618 = or i64 %1598, %1617
  %1619 = load i32, ptr %10, align 4, !tbaa !5
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1620
  %1622 = load i64, ptr %1621, align 8, !tbaa !22
  %1623 = load i32, ptr %10, align 4, !tbaa !5
  %1624 = sext i32 %1623 to i64
  %1625 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1624
  %1626 = load i64, ptr %1625, align 8, !tbaa !22
  %1627 = icmp ult i64 1, %1626
  br i1 %1627, label %1628, label %1629

1628:                                             ; preds = %1614
  br label %1634

1629:                                             ; preds = %1614
  %1630 = load i32, ptr %10, align 4, !tbaa !5
  %1631 = sext i32 %1630 to i64
  %1632 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1631
  %1633 = load i64, ptr %1632, align 8, !tbaa !22
  br label %1634

1634:                                             ; preds = %1629, %1628
  %1635 = phi i64 [ 1, %1628 ], [ %1633, %1629 ]
  %1636 = sub i64 %1622, %1635
  %1637 = load i32, ptr %10, align 4, !tbaa !5
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1638
  %1640 = load i64, ptr %1639, align 8, !tbaa !22
  %1641 = load i32, ptr %10, align 4, !tbaa !5
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1642
  %1644 = load i64, ptr %1643, align 8, !tbaa !22
  %1645 = icmp ult i64 1, %1644
  br i1 %1645, label %1646, label %1647

1646:                                             ; preds = %1634
  br label %1652

1647:                                             ; preds = %1634
  %1648 = load i32, ptr %10, align 4, !tbaa !5
  %1649 = sext i32 %1648 to i64
  %1650 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1649
  %1651 = load i64, ptr %1650, align 8, !tbaa !22
  br label %1652

1652:                                             ; preds = %1647, %1646
  %1653 = phi i64 [ 1, %1646 ], [ %1651, %1647 ]
  %1654 = sub i64 %1640, %1653
  %1655 = lshr i64 %1654, 1
  %1656 = or i64 %1636, %1655
  %1657 = lshr i64 %1656, 2
  %1658 = or i64 %1618, %1657
  %1659 = load i32, ptr %10, align 4, !tbaa !5
  %1660 = sext i32 %1659 to i64
  %1661 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1660
  %1662 = load i64, ptr %1661, align 8, !tbaa !22
  %1663 = load i32, ptr %10, align 4, !tbaa !5
  %1664 = sext i32 %1663 to i64
  %1665 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1664
  %1666 = load i64, ptr %1665, align 8, !tbaa !22
  %1667 = icmp ult i64 1, %1666
  br i1 %1667, label %1668, label %1669

1668:                                             ; preds = %1652
  br label %1674

1669:                                             ; preds = %1652
  %1670 = load i32, ptr %10, align 4, !tbaa !5
  %1671 = sext i32 %1670 to i64
  %1672 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1671
  %1673 = load i64, ptr %1672, align 8, !tbaa !22
  br label %1674

1674:                                             ; preds = %1669, %1668
  %1675 = phi i64 [ 1, %1668 ], [ %1673, %1669 ]
  %1676 = sub i64 %1662, %1675
  %1677 = load i32, ptr %10, align 4, !tbaa !5
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1678
  %1680 = load i64, ptr %1679, align 8, !tbaa !22
  %1681 = load i32, ptr %10, align 4, !tbaa !5
  %1682 = sext i32 %1681 to i64
  %1683 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1682
  %1684 = load i64, ptr %1683, align 8, !tbaa !22
  %1685 = icmp ult i64 1, %1684
  br i1 %1685, label %1686, label %1687

1686:                                             ; preds = %1674
  br label %1692

1687:                                             ; preds = %1674
  %1688 = load i32, ptr %10, align 4, !tbaa !5
  %1689 = sext i32 %1688 to i64
  %1690 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1689
  %1691 = load i64, ptr %1690, align 8, !tbaa !22
  br label %1692

1692:                                             ; preds = %1687, %1686
  %1693 = phi i64 [ 1, %1686 ], [ %1691, %1687 ]
  %1694 = sub i64 %1680, %1693
  %1695 = lshr i64 %1694, 1
  %1696 = or i64 %1676, %1695
  %1697 = load i32, ptr %10, align 4, !tbaa !5
  %1698 = sext i32 %1697 to i64
  %1699 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1698
  %1700 = load i64, ptr %1699, align 8, !tbaa !22
  %1701 = load i32, ptr %10, align 4, !tbaa !5
  %1702 = sext i32 %1701 to i64
  %1703 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1702
  %1704 = load i64, ptr %1703, align 8, !tbaa !22
  %1705 = icmp ult i64 1, %1704
  br i1 %1705, label %1706, label %1707

1706:                                             ; preds = %1692
  br label %1712

1707:                                             ; preds = %1692
  %1708 = load i32, ptr %10, align 4, !tbaa !5
  %1709 = sext i32 %1708 to i64
  %1710 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1709
  %1711 = load i64, ptr %1710, align 8, !tbaa !22
  br label %1712

1712:                                             ; preds = %1707, %1706
  %1713 = phi i64 [ 1, %1706 ], [ %1711, %1707 ]
  %1714 = sub i64 %1700, %1713
  %1715 = load i32, ptr %10, align 4, !tbaa !5
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1716
  %1718 = load i64, ptr %1717, align 8, !tbaa !22
  %1719 = load i32, ptr %10, align 4, !tbaa !5
  %1720 = sext i32 %1719 to i64
  %1721 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1720
  %1722 = load i64, ptr %1721, align 8, !tbaa !22
  %1723 = icmp ult i64 1, %1722
  br i1 %1723, label %1724, label %1725

1724:                                             ; preds = %1712
  br label %1730

1725:                                             ; preds = %1712
  %1726 = load i32, ptr %10, align 4, !tbaa !5
  %1727 = sext i32 %1726 to i64
  %1728 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1727
  %1729 = load i64, ptr %1728, align 8, !tbaa !22
  br label %1730

1730:                                             ; preds = %1725, %1724
  %1731 = phi i64 [ 1, %1724 ], [ %1729, %1725 ]
  %1732 = sub i64 %1718, %1731
  %1733 = lshr i64 %1732, 1
  %1734 = or i64 %1714, %1733
  %1735 = lshr i64 %1734, 2
  %1736 = or i64 %1696, %1735
  %1737 = lshr i64 %1736, 4
  %1738 = or i64 %1658, %1737
  %1739 = load i32, ptr %10, align 4, !tbaa !5
  %1740 = sext i32 %1739 to i64
  %1741 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1740
  %1742 = load i64, ptr %1741, align 8, !tbaa !22
  %1743 = load i32, ptr %10, align 4, !tbaa !5
  %1744 = sext i32 %1743 to i64
  %1745 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1744
  %1746 = load i64, ptr %1745, align 8, !tbaa !22
  %1747 = icmp ult i64 1, %1746
  br i1 %1747, label %1748, label %1749

1748:                                             ; preds = %1730
  br label %1754

1749:                                             ; preds = %1730
  %1750 = load i32, ptr %10, align 4, !tbaa !5
  %1751 = sext i32 %1750 to i64
  %1752 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1751
  %1753 = load i64, ptr %1752, align 8, !tbaa !22
  br label %1754

1754:                                             ; preds = %1749, %1748
  %1755 = phi i64 [ 1, %1748 ], [ %1753, %1749 ]
  %1756 = sub i64 %1742, %1755
  %1757 = load i32, ptr %10, align 4, !tbaa !5
  %1758 = sext i32 %1757 to i64
  %1759 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1758
  %1760 = load i64, ptr %1759, align 8, !tbaa !22
  %1761 = load i32, ptr %10, align 4, !tbaa !5
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1762
  %1764 = load i64, ptr %1763, align 8, !tbaa !22
  %1765 = icmp ult i64 1, %1764
  br i1 %1765, label %1766, label %1767

1766:                                             ; preds = %1754
  br label %1772

1767:                                             ; preds = %1754
  %1768 = load i32, ptr %10, align 4, !tbaa !5
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1769
  %1771 = load i64, ptr %1770, align 8, !tbaa !22
  br label %1772

1772:                                             ; preds = %1767, %1766
  %1773 = phi i64 [ 1, %1766 ], [ %1771, %1767 ]
  %1774 = sub i64 %1760, %1773
  %1775 = lshr i64 %1774, 1
  %1776 = or i64 %1756, %1775
  %1777 = load i32, ptr %10, align 4, !tbaa !5
  %1778 = sext i32 %1777 to i64
  %1779 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1778
  %1780 = load i64, ptr %1779, align 8, !tbaa !22
  %1781 = load i32, ptr %10, align 4, !tbaa !5
  %1782 = sext i32 %1781 to i64
  %1783 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1782
  %1784 = load i64, ptr %1783, align 8, !tbaa !22
  %1785 = icmp ult i64 1, %1784
  br i1 %1785, label %1786, label %1787

1786:                                             ; preds = %1772
  br label %1792

1787:                                             ; preds = %1772
  %1788 = load i32, ptr %10, align 4, !tbaa !5
  %1789 = sext i32 %1788 to i64
  %1790 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1789
  %1791 = load i64, ptr %1790, align 8, !tbaa !22
  br label %1792

1792:                                             ; preds = %1787, %1786
  %1793 = phi i64 [ 1, %1786 ], [ %1791, %1787 ]
  %1794 = sub i64 %1780, %1793
  %1795 = load i32, ptr %10, align 4, !tbaa !5
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1796
  %1798 = load i64, ptr %1797, align 8, !tbaa !22
  %1799 = load i32, ptr %10, align 4, !tbaa !5
  %1800 = sext i32 %1799 to i64
  %1801 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1800
  %1802 = load i64, ptr %1801, align 8, !tbaa !22
  %1803 = icmp ult i64 1, %1802
  br i1 %1803, label %1804, label %1805

1804:                                             ; preds = %1792
  br label %1810

1805:                                             ; preds = %1792
  %1806 = load i32, ptr %10, align 4, !tbaa !5
  %1807 = sext i32 %1806 to i64
  %1808 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1807
  %1809 = load i64, ptr %1808, align 8, !tbaa !22
  br label %1810

1810:                                             ; preds = %1805, %1804
  %1811 = phi i64 [ 1, %1804 ], [ %1809, %1805 ]
  %1812 = sub i64 %1798, %1811
  %1813 = lshr i64 %1812, 1
  %1814 = or i64 %1794, %1813
  %1815 = lshr i64 %1814, 2
  %1816 = or i64 %1776, %1815
  %1817 = load i32, ptr %10, align 4, !tbaa !5
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1818
  %1820 = load i64, ptr %1819, align 8, !tbaa !22
  %1821 = load i32, ptr %10, align 4, !tbaa !5
  %1822 = sext i32 %1821 to i64
  %1823 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1822
  %1824 = load i64, ptr %1823, align 8, !tbaa !22
  %1825 = icmp ult i64 1, %1824
  br i1 %1825, label %1826, label %1827

1826:                                             ; preds = %1810
  br label %1832

1827:                                             ; preds = %1810
  %1828 = load i32, ptr %10, align 4, !tbaa !5
  %1829 = sext i32 %1828 to i64
  %1830 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1829
  %1831 = load i64, ptr %1830, align 8, !tbaa !22
  br label %1832

1832:                                             ; preds = %1827, %1826
  %1833 = phi i64 [ 1, %1826 ], [ %1831, %1827 ]
  %1834 = sub i64 %1820, %1833
  %1835 = load i32, ptr %10, align 4, !tbaa !5
  %1836 = sext i32 %1835 to i64
  %1837 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1836
  %1838 = load i64, ptr %1837, align 8, !tbaa !22
  %1839 = load i32, ptr %10, align 4, !tbaa !5
  %1840 = sext i32 %1839 to i64
  %1841 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1840
  %1842 = load i64, ptr %1841, align 8, !tbaa !22
  %1843 = icmp ult i64 1, %1842
  br i1 %1843, label %1844, label %1845

1844:                                             ; preds = %1832
  br label %1850

1845:                                             ; preds = %1832
  %1846 = load i32, ptr %10, align 4, !tbaa !5
  %1847 = sext i32 %1846 to i64
  %1848 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1847
  %1849 = load i64, ptr %1848, align 8, !tbaa !22
  br label %1850

1850:                                             ; preds = %1845, %1844
  %1851 = phi i64 [ 1, %1844 ], [ %1849, %1845 ]
  %1852 = sub i64 %1838, %1851
  %1853 = lshr i64 %1852, 1
  %1854 = or i64 %1834, %1853
  %1855 = load i32, ptr %10, align 4, !tbaa !5
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1856
  %1858 = load i64, ptr %1857, align 8, !tbaa !22
  %1859 = load i32, ptr %10, align 4, !tbaa !5
  %1860 = sext i32 %1859 to i64
  %1861 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1860
  %1862 = load i64, ptr %1861, align 8, !tbaa !22
  %1863 = icmp ult i64 1, %1862
  br i1 %1863, label %1864, label %1865

1864:                                             ; preds = %1850
  br label %1870

1865:                                             ; preds = %1850
  %1866 = load i32, ptr %10, align 4, !tbaa !5
  %1867 = sext i32 %1866 to i64
  %1868 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1867
  %1869 = load i64, ptr %1868, align 8, !tbaa !22
  br label %1870

1870:                                             ; preds = %1865, %1864
  %1871 = phi i64 [ 1, %1864 ], [ %1869, %1865 ]
  %1872 = sub i64 %1858, %1871
  %1873 = load i32, ptr %10, align 4, !tbaa !5
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1874
  %1876 = load i64, ptr %1875, align 8, !tbaa !22
  %1877 = load i32, ptr %10, align 4, !tbaa !5
  %1878 = sext i32 %1877 to i64
  %1879 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1878
  %1880 = load i64, ptr %1879, align 8, !tbaa !22
  %1881 = icmp ult i64 1, %1880
  br i1 %1881, label %1882, label %1883

1882:                                             ; preds = %1870
  br label %1888

1883:                                             ; preds = %1870
  %1884 = load i32, ptr %10, align 4, !tbaa !5
  %1885 = sext i32 %1884 to i64
  %1886 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1885
  %1887 = load i64, ptr %1886, align 8, !tbaa !22
  br label %1888

1888:                                             ; preds = %1883, %1882
  %1889 = phi i64 [ 1, %1882 ], [ %1887, %1883 ]
  %1890 = sub i64 %1876, %1889
  %1891 = lshr i64 %1890, 1
  %1892 = or i64 %1872, %1891
  %1893 = lshr i64 %1892, 2
  %1894 = or i64 %1854, %1893
  %1895 = lshr i64 %1894, 4
  %1896 = or i64 %1816, %1895
  %1897 = lshr i64 %1896, 8
  %1898 = or i64 %1738, %1897
  %1899 = load i32, ptr %10, align 4, !tbaa !5
  %1900 = sext i32 %1899 to i64
  %1901 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1900
  %1902 = load i64, ptr %1901, align 8, !tbaa !22
  %1903 = load i32, ptr %10, align 4, !tbaa !5
  %1904 = sext i32 %1903 to i64
  %1905 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1904
  %1906 = load i64, ptr %1905, align 8, !tbaa !22
  %1907 = icmp ult i64 1, %1906
  br i1 %1907, label %1908, label %1909

1908:                                             ; preds = %1888
  br label %1914

1909:                                             ; preds = %1888
  %1910 = load i32, ptr %10, align 4, !tbaa !5
  %1911 = sext i32 %1910 to i64
  %1912 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1911
  %1913 = load i64, ptr %1912, align 8, !tbaa !22
  br label %1914

1914:                                             ; preds = %1909, %1908
  %1915 = phi i64 [ 1, %1908 ], [ %1913, %1909 ]
  %1916 = sub i64 %1902, %1915
  %1917 = load i32, ptr %10, align 4, !tbaa !5
  %1918 = sext i32 %1917 to i64
  %1919 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1918
  %1920 = load i64, ptr %1919, align 8, !tbaa !22
  %1921 = load i32, ptr %10, align 4, !tbaa !5
  %1922 = sext i32 %1921 to i64
  %1923 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1922
  %1924 = load i64, ptr %1923, align 8, !tbaa !22
  %1925 = icmp ult i64 1, %1924
  br i1 %1925, label %1926, label %1927

1926:                                             ; preds = %1914
  br label %1932

1927:                                             ; preds = %1914
  %1928 = load i32, ptr %10, align 4, !tbaa !5
  %1929 = sext i32 %1928 to i64
  %1930 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1929
  %1931 = load i64, ptr %1930, align 8, !tbaa !22
  br label %1932

1932:                                             ; preds = %1927, %1926
  %1933 = phi i64 [ 1, %1926 ], [ %1931, %1927 ]
  %1934 = sub i64 %1920, %1933
  %1935 = lshr i64 %1934, 1
  %1936 = or i64 %1916, %1935
  %1937 = load i32, ptr %10, align 4, !tbaa !5
  %1938 = sext i32 %1937 to i64
  %1939 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1938
  %1940 = load i64, ptr %1939, align 8, !tbaa !22
  %1941 = load i32, ptr %10, align 4, !tbaa !5
  %1942 = sext i32 %1941 to i64
  %1943 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1942
  %1944 = load i64, ptr %1943, align 8, !tbaa !22
  %1945 = icmp ult i64 1, %1944
  br i1 %1945, label %1946, label %1947

1946:                                             ; preds = %1932
  br label %1952

1947:                                             ; preds = %1932
  %1948 = load i32, ptr %10, align 4, !tbaa !5
  %1949 = sext i32 %1948 to i64
  %1950 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1949
  %1951 = load i64, ptr %1950, align 8, !tbaa !22
  br label %1952

1952:                                             ; preds = %1947, %1946
  %1953 = phi i64 [ 1, %1946 ], [ %1951, %1947 ]
  %1954 = sub i64 %1940, %1953
  %1955 = load i32, ptr %10, align 4, !tbaa !5
  %1956 = sext i32 %1955 to i64
  %1957 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1956
  %1958 = load i64, ptr %1957, align 8, !tbaa !22
  %1959 = load i32, ptr %10, align 4, !tbaa !5
  %1960 = sext i32 %1959 to i64
  %1961 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1960
  %1962 = load i64, ptr %1961, align 8, !tbaa !22
  %1963 = icmp ult i64 1, %1962
  br i1 %1963, label %1964, label %1965

1964:                                             ; preds = %1952
  br label %1970

1965:                                             ; preds = %1952
  %1966 = load i32, ptr %10, align 4, !tbaa !5
  %1967 = sext i32 %1966 to i64
  %1968 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1967
  %1969 = load i64, ptr %1968, align 8, !tbaa !22
  br label %1970

1970:                                             ; preds = %1965, %1964
  %1971 = phi i64 [ 1, %1964 ], [ %1969, %1965 ]
  %1972 = sub i64 %1958, %1971
  %1973 = lshr i64 %1972, 1
  %1974 = or i64 %1954, %1973
  %1975 = lshr i64 %1974, 2
  %1976 = or i64 %1936, %1975
  %1977 = load i32, ptr %10, align 4, !tbaa !5
  %1978 = sext i32 %1977 to i64
  %1979 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1978
  %1980 = load i64, ptr %1979, align 8, !tbaa !22
  %1981 = load i32, ptr %10, align 4, !tbaa !5
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1982
  %1984 = load i64, ptr %1983, align 8, !tbaa !22
  %1985 = icmp ult i64 1, %1984
  br i1 %1985, label %1986, label %1987

1986:                                             ; preds = %1970
  br label %1992

1987:                                             ; preds = %1970
  %1988 = load i32, ptr %10, align 4, !tbaa !5
  %1989 = sext i32 %1988 to i64
  %1990 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1989
  %1991 = load i64, ptr %1990, align 8, !tbaa !22
  br label %1992

1992:                                             ; preds = %1987, %1986
  %1993 = phi i64 [ 1, %1986 ], [ %1991, %1987 ]
  %1994 = sub i64 %1980, %1993
  %1995 = load i32, ptr %10, align 4, !tbaa !5
  %1996 = sext i32 %1995 to i64
  %1997 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %1996
  %1998 = load i64, ptr %1997, align 8, !tbaa !22
  %1999 = load i32, ptr %10, align 4, !tbaa !5
  %2000 = sext i32 %1999 to i64
  %2001 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2000
  %2002 = load i64, ptr %2001, align 8, !tbaa !22
  %2003 = icmp ult i64 1, %2002
  br i1 %2003, label %2004, label %2005

2004:                                             ; preds = %1992
  br label %2010

2005:                                             ; preds = %1992
  %2006 = load i32, ptr %10, align 4, !tbaa !5
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2007
  %2009 = load i64, ptr %2008, align 8, !tbaa !22
  br label %2010

2010:                                             ; preds = %2005, %2004
  %2011 = phi i64 [ 1, %2004 ], [ %2009, %2005 ]
  %2012 = sub i64 %1998, %2011
  %2013 = lshr i64 %2012, 1
  %2014 = or i64 %1994, %2013
  %2015 = load i32, ptr %10, align 4, !tbaa !5
  %2016 = sext i32 %2015 to i64
  %2017 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2016
  %2018 = load i64, ptr %2017, align 8, !tbaa !22
  %2019 = load i32, ptr %10, align 4, !tbaa !5
  %2020 = sext i32 %2019 to i64
  %2021 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2020
  %2022 = load i64, ptr %2021, align 8, !tbaa !22
  %2023 = icmp ult i64 1, %2022
  br i1 %2023, label %2024, label %2025

2024:                                             ; preds = %2010
  br label %2030

2025:                                             ; preds = %2010
  %2026 = load i32, ptr %10, align 4, !tbaa !5
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2027
  %2029 = load i64, ptr %2028, align 8, !tbaa !22
  br label %2030

2030:                                             ; preds = %2025, %2024
  %2031 = phi i64 [ 1, %2024 ], [ %2029, %2025 ]
  %2032 = sub i64 %2018, %2031
  %2033 = load i32, ptr %10, align 4, !tbaa !5
  %2034 = sext i32 %2033 to i64
  %2035 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2034
  %2036 = load i64, ptr %2035, align 8, !tbaa !22
  %2037 = load i32, ptr %10, align 4, !tbaa !5
  %2038 = sext i32 %2037 to i64
  %2039 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2038
  %2040 = load i64, ptr %2039, align 8, !tbaa !22
  %2041 = icmp ult i64 1, %2040
  br i1 %2041, label %2042, label %2043

2042:                                             ; preds = %2030
  br label %2048

2043:                                             ; preds = %2030
  %2044 = load i32, ptr %10, align 4, !tbaa !5
  %2045 = sext i32 %2044 to i64
  %2046 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2045
  %2047 = load i64, ptr %2046, align 8, !tbaa !22
  br label %2048

2048:                                             ; preds = %2043, %2042
  %2049 = phi i64 [ 1, %2042 ], [ %2047, %2043 ]
  %2050 = sub i64 %2036, %2049
  %2051 = lshr i64 %2050, 1
  %2052 = or i64 %2032, %2051
  %2053 = lshr i64 %2052, 2
  %2054 = or i64 %2014, %2053
  %2055 = lshr i64 %2054, 4
  %2056 = or i64 %1976, %2055
  %2057 = load i32, ptr %10, align 4, !tbaa !5
  %2058 = sext i32 %2057 to i64
  %2059 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2058
  %2060 = load i64, ptr %2059, align 8, !tbaa !22
  %2061 = load i32, ptr %10, align 4, !tbaa !5
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2062
  %2064 = load i64, ptr %2063, align 8, !tbaa !22
  %2065 = icmp ult i64 1, %2064
  br i1 %2065, label %2066, label %2067

2066:                                             ; preds = %2048
  br label %2072

2067:                                             ; preds = %2048
  %2068 = load i32, ptr %10, align 4, !tbaa !5
  %2069 = sext i32 %2068 to i64
  %2070 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2069
  %2071 = load i64, ptr %2070, align 8, !tbaa !22
  br label %2072

2072:                                             ; preds = %2067, %2066
  %2073 = phi i64 [ 1, %2066 ], [ %2071, %2067 ]
  %2074 = sub i64 %2060, %2073
  %2075 = load i32, ptr %10, align 4, !tbaa !5
  %2076 = sext i32 %2075 to i64
  %2077 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2076
  %2078 = load i64, ptr %2077, align 8, !tbaa !22
  %2079 = load i32, ptr %10, align 4, !tbaa !5
  %2080 = sext i32 %2079 to i64
  %2081 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2080
  %2082 = load i64, ptr %2081, align 8, !tbaa !22
  %2083 = icmp ult i64 1, %2082
  br i1 %2083, label %2084, label %2085

2084:                                             ; preds = %2072
  br label %2090

2085:                                             ; preds = %2072
  %2086 = load i32, ptr %10, align 4, !tbaa !5
  %2087 = sext i32 %2086 to i64
  %2088 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2087
  %2089 = load i64, ptr %2088, align 8, !tbaa !22
  br label %2090

2090:                                             ; preds = %2085, %2084
  %2091 = phi i64 [ 1, %2084 ], [ %2089, %2085 ]
  %2092 = sub i64 %2078, %2091
  %2093 = lshr i64 %2092, 1
  %2094 = or i64 %2074, %2093
  %2095 = load i32, ptr %10, align 4, !tbaa !5
  %2096 = sext i32 %2095 to i64
  %2097 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2096
  %2098 = load i64, ptr %2097, align 8, !tbaa !22
  %2099 = load i32, ptr %10, align 4, !tbaa !5
  %2100 = sext i32 %2099 to i64
  %2101 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2100
  %2102 = load i64, ptr %2101, align 8, !tbaa !22
  %2103 = icmp ult i64 1, %2102
  br i1 %2103, label %2104, label %2105

2104:                                             ; preds = %2090
  br label %2110

2105:                                             ; preds = %2090
  %2106 = load i32, ptr %10, align 4, !tbaa !5
  %2107 = sext i32 %2106 to i64
  %2108 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2107
  %2109 = load i64, ptr %2108, align 8, !tbaa !22
  br label %2110

2110:                                             ; preds = %2105, %2104
  %2111 = phi i64 [ 1, %2104 ], [ %2109, %2105 ]
  %2112 = sub i64 %2098, %2111
  %2113 = load i32, ptr %10, align 4, !tbaa !5
  %2114 = sext i32 %2113 to i64
  %2115 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2114
  %2116 = load i64, ptr %2115, align 8, !tbaa !22
  %2117 = load i32, ptr %10, align 4, !tbaa !5
  %2118 = sext i32 %2117 to i64
  %2119 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2118
  %2120 = load i64, ptr %2119, align 8, !tbaa !22
  %2121 = icmp ult i64 1, %2120
  br i1 %2121, label %2122, label %2123

2122:                                             ; preds = %2110
  br label %2128

2123:                                             ; preds = %2110
  %2124 = load i32, ptr %10, align 4, !tbaa !5
  %2125 = sext i32 %2124 to i64
  %2126 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2125
  %2127 = load i64, ptr %2126, align 8, !tbaa !22
  br label %2128

2128:                                             ; preds = %2123, %2122
  %2129 = phi i64 [ 1, %2122 ], [ %2127, %2123 ]
  %2130 = sub i64 %2116, %2129
  %2131 = lshr i64 %2130, 1
  %2132 = or i64 %2112, %2131
  %2133 = lshr i64 %2132, 2
  %2134 = or i64 %2094, %2133
  %2135 = load i32, ptr %10, align 4, !tbaa !5
  %2136 = sext i32 %2135 to i64
  %2137 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2136
  %2138 = load i64, ptr %2137, align 8, !tbaa !22
  %2139 = load i32, ptr %10, align 4, !tbaa !5
  %2140 = sext i32 %2139 to i64
  %2141 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2140
  %2142 = load i64, ptr %2141, align 8, !tbaa !22
  %2143 = icmp ult i64 1, %2142
  br i1 %2143, label %2144, label %2145

2144:                                             ; preds = %2128
  br label %2150

2145:                                             ; preds = %2128
  %2146 = load i32, ptr %10, align 4, !tbaa !5
  %2147 = sext i32 %2146 to i64
  %2148 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2147
  %2149 = load i64, ptr %2148, align 8, !tbaa !22
  br label %2150

2150:                                             ; preds = %2145, %2144
  %2151 = phi i64 [ 1, %2144 ], [ %2149, %2145 ]
  %2152 = sub i64 %2138, %2151
  %2153 = load i32, ptr %10, align 4, !tbaa !5
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2154
  %2156 = load i64, ptr %2155, align 8, !tbaa !22
  %2157 = load i32, ptr %10, align 4, !tbaa !5
  %2158 = sext i32 %2157 to i64
  %2159 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2158
  %2160 = load i64, ptr %2159, align 8, !tbaa !22
  %2161 = icmp ult i64 1, %2160
  br i1 %2161, label %2162, label %2163

2162:                                             ; preds = %2150
  br label %2168

2163:                                             ; preds = %2150
  %2164 = load i32, ptr %10, align 4, !tbaa !5
  %2165 = sext i32 %2164 to i64
  %2166 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2165
  %2167 = load i64, ptr %2166, align 8, !tbaa !22
  br label %2168

2168:                                             ; preds = %2163, %2162
  %2169 = phi i64 [ 1, %2162 ], [ %2167, %2163 ]
  %2170 = sub i64 %2156, %2169
  %2171 = lshr i64 %2170, 1
  %2172 = or i64 %2152, %2171
  %2173 = load i32, ptr %10, align 4, !tbaa !5
  %2174 = sext i32 %2173 to i64
  %2175 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2174
  %2176 = load i64, ptr %2175, align 8, !tbaa !22
  %2177 = load i32, ptr %10, align 4, !tbaa !5
  %2178 = sext i32 %2177 to i64
  %2179 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2178
  %2180 = load i64, ptr %2179, align 8, !tbaa !22
  %2181 = icmp ult i64 1, %2180
  br i1 %2181, label %2182, label %2183

2182:                                             ; preds = %2168
  br label %2188

2183:                                             ; preds = %2168
  %2184 = load i32, ptr %10, align 4, !tbaa !5
  %2185 = sext i32 %2184 to i64
  %2186 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2185
  %2187 = load i64, ptr %2186, align 8, !tbaa !22
  br label %2188

2188:                                             ; preds = %2183, %2182
  %2189 = phi i64 [ 1, %2182 ], [ %2187, %2183 ]
  %2190 = sub i64 %2176, %2189
  %2191 = load i32, ptr %10, align 4, !tbaa !5
  %2192 = sext i32 %2191 to i64
  %2193 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2192
  %2194 = load i64, ptr %2193, align 8, !tbaa !22
  %2195 = load i32, ptr %10, align 4, !tbaa !5
  %2196 = sext i32 %2195 to i64
  %2197 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2196
  %2198 = load i64, ptr %2197, align 8, !tbaa !22
  %2199 = icmp ult i64 1, %2198
  br i1 %2199, label %2200, label %2201

2200:                                             ; preds = %2188
  br label %2206

2201:                                             ; preds = %2188
  %2202 = load i32, ptr %10, align 4, !tbaa !5
  %2203 = sext i32 %2202 to i64
  %2204 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2203
  %2205 = load i64, ptr %2204, align 8, !tbaa !22
  br label %2206

2206:                                             ; preds = %2201, %2200
  %2207 = phi i64 [ 1, %2200 ], [ %2205, %2201 ]
  %2208 = sub i64 %2194, %2207
  %2209 = lshr i64 %2208, 1
  %2210 = or i64 %2190, %2209
  %2211 = lshr i64 %2210, 2
  %2212 = or i64 %2172, %2211
  %2213 = lshr i64 %2212, 4
  %2214 = or i64 %2134, %2213
  %2215 = lshr i64 %2214, 8
  %2216 = or i64 %2056, %2215
  %2217 = lshr i64 %2216, 16
  %2218 = or i64 %1898, %2217
  %2219 = load i32, ptr %10, align 4, !tbaa !5
  %2220 = sext i32 %2219 to i64
  %2221 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2220
  %2222 = load i64, ptr %2221, align 8, !tbaa !22
  %2223 = load i32, ptr %10, align 4, !tbaa !5
  %2224 = sext i32 %2223 to i64
  %2225 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2224
  %2226 = load i64, ptr %2225, align 8, !tbaa !22
  %2227 = icmp ult i64 1, %2226
  br i1 %2227, label %2228, label %2229

2228:                                             ; preds = %2206
  br label %2234

2229:                                             ; preds = %2206
  %2230 = load i32, ptr %10, align 4, !tbaa !5
  %2231 = sext i32 %2230 to i64
  %2232 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2231
  %2233 = load i64, ptr %2232, align 8, !tbaa !22
  br label %2234

2234:                                             ; preds = %2229, %2228
  %2235 = phi i64 [ 1, %2228 ], [ %2233, %2229 ]
  %2236 = sub i64 %2222, %2235
  %2237 = load i32, ptr %10, align 4, !tbaa !5
  %2238 = sext i32 %2237 to i64
  %2239 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2238
  %2240 = load i64, ptr %2239, align 8, !tbaa !22
  %2241 = load i32, ptr %10, align 4, !tbaa !5
  %2242 = sext i32 %2241 to i64
  %2243 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2242
  %2244 = load i64, ptr %2243, align 8, !tbaa !22
  %2245 = icmp ult i64 1, %2244
  br i1 %2245, label %2246, label %2247

2246:                                             ; preds = %2234
  br label %2252

2247:                                             ; preds = %2234
  %2248 = load i32, ptr %10, align 4, !tbaa !5
  %2249 = sext i32 %2248 to i64
  %2250 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2249
  %2251 = load i64, ptr %2250, align 8, !tbaa !22
  br label %2252

2252:                                             ; preds = %2247, %2246
  %2253 = phi i64 [ 1, %2246 ], [ %2251, %2247 ]
  %2254 = sub i64 %2240, %2253
  %2255 = lshr i64 %2254, 1
  %2256 = or i64 %2236, %2255
  %2257 = load i32, ptr %10, align 4, !tbaa !5
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2258
  %2260 = load i64, ptr %2259, align 8, !tbaa !22
  %2261 = load i32, ptr %10, align 4, !tbaa !5
  %2262 = sext i32 %2261 to i64
  %2263 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2262
  %2264 = load i64, ptr %2263, align 8, !tbaa !22
  %2265 = icmp ult i64 1, %2264
  br i1 %2265, label %2266, label %2267

2266:                                             ; preds = %2252
  br label %2272

2267:                                             ; preds = %2252
  %2268 = load i32, ptr %10, align 4, !tbaa !5
  %2269 = sext i32 %2268 to i64
  %2270 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2269
  %2271 = load i64, ptr %2270, align 8, !tbaa !22
  br label %2272

2272:                                             ; preds = %2267, %2266
  %2273 = phi i64 [ 1, %2266 ], [ %2271, %2267 ]
  %2274 = sub i64 %2260, %2273
  %2275 = load i32, ptr %10, align 4, !tbaa !5
  %2276 = sext i32 %2275 to i64
  %2277 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2276
  %2278 = load i64, ptr %2277, align 8, !tbaa !22
  %2279 = load i32, ptr %10, align 4, !tbaa !5
  %2280 = sext i32 %2279 to i64
  %2281 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2280
  %2282 = load i64, ptr %2281, align 8, !tbaa !22
  %2283 = icmp ult i64 1, %2282
  br i1 %2283, label %2284, label %2285

2284:                                             ; preds = %2272
  br label %2290

2285:                                             ; preds = %2272
  %2286 = load i32, ptr %10, align 4, !tbaa !5
  %2287 = sext i32 %2286 to i64
  %2288 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2287
  %2289 = load i64, ptr %2288, align 8, !tbaa !22
  br label %2290

2290:                                             ; preds = %2285, %2284
  %2291 = phi i64 [ 1, %2284 ], [ %2289, %2285 ]
  %2292 = sub i64 %2278, %2291
  %2293 = lshr i64 %2292, 1
  %2294 = or i64 %2274, %2293
  %2295 = lshr i64 %2294, 2
  %2296 = or i64 %2256, %2295
  %2297 = load i32, ptr %10, align 4, !tbaa !5
  %2298 = sext i32 %2297 to i64
  %2299 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2298
  %2300 = load i64, ptr %2299, align 8, !tbaa !22
  %2301 = load i32, ptr %10, align 4, !tbaa !5
  %2302 = sext i32 %2301 to i64
  %2303 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2302
  %2304 = load i64, ptr %2303, align 8, !tbaa !22
  %2305 = icmp ult i64 1, %2304
  br i1 %2305, label %2306, label %2307

2306:                                             ; preds = %2290
  br label %2312

2307:                                             ; preds = %2290
  %2308 = load i32, ptr %10, align 4, !tbaa !5
  %2309 = sext i32 %2308 to i64
  %2310 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2309
  %2311 = load i64, ptr %2310, align 8, !tbaa !22
  br label %2312

2312:                                             ; preds = %2307, %2306
  %2313 = phi i64 [ 1, %2306 ], [ %2311, %2307 ]
  %2314 = sub i64 %2300, %2313
  %2315 = load i32, ptr %10, align 4, !tbaa !5
  %2316 = sext i32 %2315 to i64
  %2317 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2316
  %2318 = load i64, ptr %2317, align 8, !tbaa !22
  %2319 = load i32, ptr %10, align 4, !tbaa !5
  %2320 = sext i32 %2319 to i64
  %2321 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2320
  %2322 = load i64, ptr %2321, align 8, !tbaa !22
  %2323 = icmp ult i64 1, %2322
  br i1 %2323, label %2324, label %2325

2324:                                             ; preds = %2312
  br label %2330

2325:                                             ; preds = %2312
  %2326 = load i32, ptr %10, align 4, !tbaa !5
  %2327 = sext i32 %2326 to i64
  %2328 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2327
  %2329 = load i64, ptr %2328, align 8, !tbaa !22
  br label %2330

2330:                                             ; preds = %2325, %2324
  %2331 = phi i64 [ 1, %2324 ], [ %2329, %2325 ]
  %2332 = sub i64 %2318, %2331
  %2333 = lshr i64 %2332, 1
  %2334 = or i64 %2314, %2333
  %2335 = load i32, ptr %10, align 4, !tbaa !5
  %2336 = sext i32 %2335 to i64
  %2337 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2336
  %2338 = load i64, ptr %2337, align 8, !tbaa !22
  %2339 = load i32, ptr %10, align 4, !tbaa !5
  %2340 = sext i32 %2339 to i64
  %2341 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2340
  %2342 = load i64, ptr %2341, align 8, !tbaa !22
  %2343 = icmp ult i64 1, %2342
  br i1 %2343, label %2344, label %2345

2344:                                             ; preds = %2330
  br label %2350

2345:                                             ; preds = %2330
  %2346 = load i32, ptr %10, align 4, !tbaa !5
  %2347 = sext i32 %2346 to i64
  %2348 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2347
  %2349 = load i64, ptr %2348, align 8, !tbaa !22
  br label %2350

2350:                                             ; preds = %2345, %2344
  %2351 = phi i64 [ 1, %2344 ], [ %2349, %2345 ]
  %2352 = sub i64 %2338, %2351
  %2353 = load i32, ptr %10, align 4, !tbaa !5
  %2354 = sext i32 %2353 to i64
  %2355 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2354
  %2356 = load i64, ptr %2355, align 8, !tbaa !22
  %2357 = load i32, ptr %10, align 4, !tbaa !5
  %2358 = sext i32 %2357 to i64
  %2359 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2358
  %2360 = load i64, ptr %2359, align 8, !tbaa !22
  %2361 = icmp ult i64 1, %2360
  br i1 %2361, label %2362, label %2363

2362:                                             ; preds = %2350
  br label %2368

2363:                                             ; preds = %2350
  %2364 = load i32, ptr %10, align 4, !tbaa !5
  %2365 = sext i32 %2364 to i64
  %2366 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2365
  %2367 = load i64, ptr %2366, align 8, !tbaa !22
  br label %2368

2368:                                             ; preds = %2363, %2362
  %2369 = phi i64 [ 1, %2362 ], [ %2367, %2363 ]
  %2370 = sub i64 %2356, %2369
  %2371 = lshr i64 %2370, 1
  %2372 = or i64 %2352, %2371
  %2373 = lshr i64 %2372, 2
  %2374 = or i64 %2334, %2373
  %2375 = lshr i64 %2374, 4
  %2376 = or i64 %2296, %2375
  %2377 = load i32, ptr %10, align 4, !tbaa !5
  %2378 = sext i32 %2377 to i64
  %2379 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2378
  %2380 = load i64, ptr %2379, align 8, !tbaa !22
  %2381 = load i32, ptr %10, align 4, !tbaa !5
  %2382 = sext i32 %2381 to i64
  %2383 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2382
  %2384 = load i64, ptr %2383, align 8, !tbaa !22
  %2385 = icmp ult i64 1, %2384
  br i1 %2385, label %2386, label %2387

2386:                                             ; preds = %2368
  br label %2392

2387:                                             ; preds = %2368
  %2388 = load i32, ptr %10, align 4, !tbaa !5
  %2389 = sext i32 %2388 to i64
  %2390 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2389
  %2391 = load i64, ptr %2390, align 8, !tbaa !22
  br label %2392

2392:                                             ; preds = %2387, %2386
  %2393 = phi i64 [ 1, %2386 ], [ %2391, %2387 ]
  %2394 = sub i64 %2380, %2393
  %2395 = load i32, ptr %10, align 4, !tbaa !5
  %2396 = sext i32 %2395 to i64
  %2397 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2396
  %2398 = load i64, ptr %2397, align 8, !tbaa !22
  %2399 = load i32, ptr %10, align 4, !tbaa !5
  %2400 = sext i32 %2399 to i64
  %2401 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2400
  %2402 = load i64, ptr %2401, align 8, !tbaa !22
  %2403 = icmp ult i64 1, %2402
  br i1 %2403, label %2404, label %2405

2404:                                             ; preds = %2392
  br label %2410

2405:                                             ; preds = %2392
  %2406 = load i32, ptr %10, align 4, !tbaa !5
  %2407 = sext i32 %2406 to i64
  %2408 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2407
  %2409 = load i64, ptr %2408, align 8, !tbaa !22
  br label %2410

2410:                                             ; preds = %2405, %2404
  %2411 = phi i64 [ 1, %2404 ], [ %2409, %2405 ]
  %2412 = sub i64 %2398, %2411
  %2413 = lshr i64 %2412, 1
  %2414 = or i64 %2394, %2413
  %2415 = load i32, ptr %10, align 4, !tbaa !5
  %2416 = sext i32 %2415 to i64
  %2417 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2416
  %2418 = load i64, ptr %2417, align 8, !tbaa !22
  %2419 = load i32, ptr %10, align 4, !tbaa !5
  %2420 = sext i32 %2419 to i64
  %2421 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2420
  %2422 = load i64, ptr %2421, align 8, !tbaa !22
  %2423 = icmp ult i64 1, %2422
  br i1 %2423, label %2424, label %2425

2424:                                             ; preds = %2410
  br label %2430

2425:                                             ; preds = %2410
  %2426 = load i32, ptr %10, align 4, !tbaa !5
  %2427 = sext i32 %2426 to i64
  %2428 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2427
  %2429 = load i64, ptr %2428, align 8, !tbaa !22
  br label %2430

2430:                                             ; preds = %2425, %2424
  %2431 = phi i64 [ 1, %2424 ], [ %2429, %2425 ]
  %2432 = sub i64 %2418, %2431
  %2433 = load i32, ptr %10, align 4, !tbaa !5
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2434
  %2436 = load i64, ptr %2435, align 8, !tbaa !22
  %2437 = load i32, ptr %10, align 4, !tbaa !5
  %2438 = sext i32 %2437 to i64
  %2439 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2438
  %2440 = load i64, ptr %2439, align 8, !tbaa !22
  %2441 = icmp ult i64 1, %2440
  br i1 %2441, label %2442, label %2443

2442:                                             ; preds = %2430
  br label %2448

2443:                                             ; preds = %2430
  %2444 = load i32, ptr %10, align 4, !tbaa !5
  %2445 = sext i32 %2444 to i64
  %2446 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2445
  %2447 = load i64, ptr %2446, align 8, !tbaa !22
  br label %2448

2448:                                             ; preds = %2443, %2442
  %2449 = phi i64 [ 1, %2442 ], [ %2447, %2443 ]
  %2450 = sub i64 %2436, %2449
  %2451 = lshr i64 %2450, 1
  %2452 = or i64 %2432, %2451
  %2453 = lshr i64 %2452, 2
  %2454 = or i64 %2414, %2453
  %2455 = load i32, ptr %10, align 4, !tbaa !5
  %2456 = sext i32 %2455 to i64
  %2457 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2456
  %2458 = load i64, ptr %2457, align 8, !tbaa !22
  %2459 = load i32, ptr %10, align 4, !tbaa !5
  %2460 = sext i32 %2459 to i64
  %2461 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2460
  %2462 = load i64, ptr %2461, align 8, !tbaa !22
  %2463 = icmp ult i64 1, %2462
  br i1 %2463, label %2464, label %2465

2464:                                             ; preds = %2448
  br label %2470

2465:                                             ; preds = %2448
  %2466 = load i32, ptr %10, align 4, !tbaa !5
  %2467 = sext i32 %2466 to i64
  %2468 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2467
  %2469 = load i64, ptr %2468, align 8, !tbaa !22
  br label %2470

2470:                                             ; preds = %2465, %2464
  %2471 = phi i64 [ 1, %2464 ], [ %2469, %2465 ]
  %2472 = sub i64 %2458, %2471
  %2473 = load i32, ptr %10, align 4, !tbaa !5
  %2474 = sext i32 %2473 to i64
  %2475 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2474
  %2476 = load i64, ptr %2475, align 8, !tbaa !22
  %2477 = load i32, ptr %10, align 4, !tbaa !5
  %2478 = sext i32 %2477 to i64
  %2479 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2478
  %2480 = load i64, ptr %2479, align 8, !tbaa !22
  %2481 = icmp ult i64 1, %2480
  br i1 %2481, label %2482, label %2483

2482:                                             ; preds = %2470
  br label %2488

2483:                                             ; preds = %2470
  %2484 = load i32, ptr %10, align 4, !tbaa !5
  %2485 = sext i32 %2484 to i64
  %2486 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2485
  %2487 = load i64, ptr %2486, align 8, !tbaa !22
  br label %2488

2488:                                             ; preds = %2483, %2482
  %2489 = phi i64 [ 1, %2482 ], [ %2487, %2483 ]
  %2490 = sub i64 %2476, %2489
  %2491 = lshr i64 %2490, 1
  %2492 = or i64 %2472, %2491
  %2493 = load i32, ptr %10, align 4, !tbaa !5
  %2494 = sext i32 %2493 to i64
  %2495 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2494
  %2496 = load i64, ptr %2495, align 8, !tbaa !22
  %2497 = load i32, ptr %10, align 4, !tbaa !5
  %2498 = sext i32 %2497 to i64
  %2499 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2498
  %2500 = load i64, ptr %2499, align 8, !tbaa !22
  %2501 = icmp ult i64 1, %2500
  br i1 %2501, label %2502, label %2503

2502:                                             ; preds = %2488
  br label %2508

2503:                                             ; preds = %2488
  %2504 = load i32, ptr %10, align 4, !tbaa !5
  %2505 = sext i32 %2504 to i64
  %2506 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2505
  %2507 = load i64, ptr %2506, align 8, !tbaa !22
  br label %2508

2508:                                             ; preds = %2503, %2502
  %2509 = phi i64 [ 1, %2502 ], [ %2507, %2503 ]
  %2510 = sub i64 %2496, %2509
  %2511 = load i32, ptr %10, align 4, !tbaa !5
  %2512 = sext i32 %2511 to i64
  %2513 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2512
  %2514 = load i64, ptr %2513, align 8, !tbaa !22
  %2515 = load i32, ptr %10, align 4, !tbaa !5
  %2516 = sext i32 %2515 to i64
  %2517 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2516
  %2518 = load i64, ptr %2517, align 8, !tbaa !22
  %2519 = icmp ult i64 1, %2518
  br i1 %2519, label %2520, label %2521

2520:                                             ; preds = %2508
  br label %2526

2521:                                             ; preds = %2508
  %2522 = load i32, ptr %10, align 4, !tbaa !5
  %2523 = sext i32 %2522 to i64
  %2524 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2523
  %2525 = load i64, ptr %2524, align 8, !tbaa !22
  br label %2526

2526:                                             ; preds = %2521, %2520
  %2527 = phi i64 [ 1, %2520 ], [ %2525, %2521 ]
  %2528 = sub i64 %2514, %2527
  %2529 = lshr i64 %2528, 1
  %2530 = or i64 %2510, %2529
  %2531 = lshr i64 %2530, 2
  %2532 = or i64 %2492, %2531
  %2533 = lshr i64 %2532, 4
  %2534 = or i64 %2454, %2533
  %2535 = lshr i64 %2534, 8
  %2536 = or i64 %2376, %2535
  %2537 = load i32, ptr %10, align 4, !tbaa !5
  %2538 = sext i32 %2537 to i64
  %2539 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2538
  %2540 = load i64, ptr %2539, align 8, !tbaa !22
  %2541 = load i32, ptr %10, align 4, !tbaa !5
  %2542 = sext i32 %2541 to i64
  %2543 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2542
  %2544 = load i64, ptr %2543, align 8, !tbaa !22
  %2545 = icmp ult i64 1, %2544
  br i1 %2545, label %2546, label %2547

2546:                                             ; preds = %2526
  br label %2552

2547:                                             ; preds = %2526
  %2548 = load i32, ptr %10, align 4, !tbaa !5
  %2549 = sext i32 %2548 to i64
  %2550 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2549
  %2551 = load i64, ptr %2550, align 8, !tbaa !22
  br label %2552

2552:                                             ; preds = %2547, %2546
  %2553 = phi i64 [ 1, %2546 ], [ %2551, %2547 ]
  %2554 = sub i64 %2540, %2553
  %2555 = load i32, ptr %10, align 4, !tbaa !5
  %2556 = sext i32 %2555 to i64
  %2557 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2556
  %2558 = load i64, ptr %2557, align 8, !tbaa !22
  %2559 = load i32, ptr %10, align 4, !tbaa !5
  %2560 = sext i32 %2559 to i64
  %2561 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2560
  %2562 = load i64, ptr %2561, align 8, !tbaa !22
  %2563 = icmp ult i64 1, %2562
  br i1 %2563, label %2564, label %2565

2564:                                             ; preds = %2552
  br label %2570

2565:                                             ; preds = %2552
  %2566 = load i32, ptr %10, align 4, !tbaa !5
  %2567 = sext i32 %2566 to i64
  %2568 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2567
  %2569 = load i64, ptr %2568, align 8, !tbaa !22
  br label %2570

2570:                                             ; preds = %2565, %2564
  %2571 = phi i64 [ 1, %2564 ], [ %2569, %2565 ]
  %2572 = sub i64 %2558, %2571
  %2573 = lshr i64 %2572, 1
  %2574 = or i64 %2554, %2573
  %2575 = load i32, ptr %10, align 4, !tbaa !5
  %2576 = sext i32 %2575 to i64
  %2577 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2576
  %2578 = load i64, ptr %2577, align 8, !tbaa !22
  %2579 = load i32, ptr %10, align 4, !tbaa !5
  %2580 = sext i32 %2579 to i64
  %2581 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2580
  %2582 = load i64, ptr %2581, align 8, !tbaa !22
  %2583 = icmp ult i64 1, %2582
  br i1 %2583, label %2584, label %2585

2584:                                             ; preds = %2570
  br label %2590

2585:                                             ; preds = %2570
  %2586 = load i32, ptr %10, align 4, !tbaa !5
  %2587 = sext i32 %2586 to i64
  %2588 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2587
  %2589 = load i64, ptr %2588, align 8, !tbaa !22
  br label %2590

2590:                                             ; preds = %2585, %2584
  %2591 = phi i64 [ 1, %2584 ], [ %2589, %2585 ]
  %2592 = sub i64 %2578, %2591
  %2593 = load i32, ptr %10, align 4, !tbaa !5
  %2594 = sext i32 %2593 to i64
  %2595 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2594
  %2596 = load i64, ptr %2595, align 8, !tbaa !22
  %2597 = load i32, ptr %10, align 4, !tbaa !5
  %2598 = sext i32 %2597 to i64
  %2599 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2598
  %2600 = load i64, ptr %2599, align 8, !tbaa !22
  %2601 = icmp ult i64 1, %2600
  br i1 %2601, label %2602, label %2603

2602:                                             ; preds = %2590
  br label %2608

2603:                                             ; preds = %2590
  %2604 = load i32, ptr %10, align 4, !tbaa !5
  %2605 = sext i32 %2604 to i64
  %2606 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2605
  %2607 = load i64, ptr %2606, align 8, !tbaa !22
  br label %2608

2608:                                             ; preds = %2603, %2602
  %2609 = phi i64 [ 1, %2602 ], [ %2607, %2603 ]
  %2610 = sub i64 %2596, %2609
  %2611 = lshr i64 %2610, 1
  %2612 = or i64 %2592, %2611
  %2613 = lshr i64 %2612, 2
  %2614 = or i64 %2574, %2613
  %2615 = load i32, ptr %10, align 4, !tbaa !5
  %2616 = sext i32 %2615 to i64
  %2617 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2616
  %2618 = load i64, ptr %2617, align 8, !tbaa !22
  %2619 = load i32, ptr %10, align 4, !tbaa !5
  %2620 = sext i32 %2619 to i64
  %2621 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2620
  %2622 = load i64, ptr %2621, align 8, !tbaa !22
  %2623 = icmp ult i64 1, %2622
  br i1 %2623, label %2624, label %2625

2624:                                             ; preds = %2608
  br label %2630

2625:                                             ; preds = %2608
  %2626 = load i32, ptr %10, align 4, !tbaa !5
  %2627 = sext i32 %2626 to i64
  %2628 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2627
  %2629 = load i64, ptr %2628, align 8, !tbaa !22
  br label %2630

2630:                                             ; preds = %2625, %2624
  %2631 = phi i64 [ 1, %2624 ], [ %2629, %2625 ]
  %2632 = sub i64 %2618, %2631
  %2633 = load i32, ptr %10, align 4, !tbaa !5
  %2634 = sext i32 %2633 to i64
  %2635 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2634
  %2636 = load i64, ptr %2635, align 8, !tbaa !22
  %2637 = load i32, ptr %10, align 4, !tbaa !5
  %2638 = sext i32 %2637 to i64
  %2639 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2638
  %2640 = load i64, ptr %2639, align 8, !tbaa !22
  %2641 = icmp ult i64 1, %2640
  br i1 %2641, label %2642, label %2643

2642:                                             ; preds = %2630
  br label %2648

2643:                                             ; preds = %2630
  %2644 = load i32, ptr %10, align 4, !tbaa !5
  %2645 = sext i32 %2644 to i64
  %2646 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2645
  %2647 = load i64, ptr %2646, align 8, !tbaa !22
  br label %2648

2648:                                             ; preds = %2643, %2642
  %2649 = phi i64 [ 1, %2642 ], [ %2647, %2643 ]
  %2650 = sub i64 %2636, %2649
  %2651 = lshr i64 %2650, 1
  %2652 = or i64 %2632, %2651
  %2653 = load i32, ptr %10, align 4, !tbaa !5
  %2654 = sext i32 %2653 to i64
  %2655 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2654
  %2656 = load i64, ptr %2655, align 8, !tbaa !22
  %2657 = load i32, ptr %10, align 4, !tbaa !5
  %2658 = sext i32 %2657 to i64
  %2659 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2658
  %2660 = load i64, ptr %2659, align 8, !tbaa !22
  %2661 = icmp ult i64 1, %2660
  br i1 %2661, label %2662, label %2663

2662:                                             ; preds = %2648
  br label %2668

2663:                                             ; preds = %2648
  %2664 = load i32, ptr %10, align 4, !tbaa !5
  %2665 = sext i32 %2664 to i64
  %2666 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2665
  %2667 = load i64, ptr %2666, align 8, !tbaa !22
  br label %2668

2668:                                             ; preds = %2663, %2662
  %2669 = phi i64 [ 1, %2662 ], [ %2667, %2663 ]
  %2670 = sub i64 %2656, %2669
  %2671 = load i32, ptr %10, align 4, !tbaa !5
  %2672 = sext i32 %2671 to i64
  %2673 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2672
  %2674 = load i64, ptr %2673, align 8, !tbaa !22
  %2675 = load i32, ptr %10, align 4, !tbaa !5
  %2676 = sext i32 %2675 to i64
  %2677 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2676
  %2678 = load i64, ptr %2677, align 8, !tbaa !22
  %2679 = icmp ult i64 1, %2678
  br i1 %2679, label %2680, label %2681

2680:                                             ; preds = %2668
  br label %2686

2681:                                             ; preds = %2668
  %2682 = load i32, ptr %10, align 4, !tbaa !5
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2683
  %2685 = load i64, ptr %2684, align 8, !tbaa !22
  br label %2686

2686:                                             ; preds = %2681, %2680
  %2687 = phi i64 [ 1, %2680 ], [ %2685, %2681 ]
  %2688 = sub i64 %2674, %2687
  %2689 = lshr i64 %2688, 1
  %2690 = or i64 %2670, %2689
  %2691 = lshr i64 %2690, 2
  %2692 = or i64 %2652, %2691
  %2693 = lshr i64 %2692, 4
  %2694 = or i64 %2614, %2693
  %2695 = load i32, ptr %10, align 4, !tbaa !5
  %2696 = sext i32 %2695 to i64
  %2697 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2696
  %2698 = load i64, ptr %2697, align 8, !tbaa !22
  %2699 = load i32, ptr %10, align 4, !tbaa !5
  %2700 = sext i32 %2699 to i64
  %2701 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2700
  %2702 = load i64, ptr %2701, align 8, !tbaa !22
  %2703 = icmp ult i64 1, %2702
  br i1 %2703, label %2704, label %2705

2704:                                             ; preds = %2686
  br label %2710

2705:                                             ; preds = %2686
  %2706 = load i32, ptr %10, align 4, !tbaa !5
  %2707 = sext i32 %2706 to i64
  %2708 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2707
  %2709 = load i64, ptr %2708, align 8, !tbaa !22
  br label %2710

2710:                                             ; preds = %2705, %2704
  %2711 = phi i64 [ 1, %2704 ], [ %2709, %2705 ]
  %2712 = sub i64 %2698, %2711
  %2713 = load i32, ptr %10, align 4, !tbaa !5
  %2714 = sext i32 %2713 to i64
  %2715 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2714
  %2716 = load i64, ptr %2715, align 8, !tbaa !22
  %2717 = load i32, ptr %10, align 4, !tbaa !5
  %2718 = sext i32 %2717 to i64
  %2719 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2718
  %2720 = load i64, ptr %2719, align 8, !tbaa !22
  %2721 = icmp ult i64 1, %2720
  br i1 %2721, label %2722, label %2723

2722:                                             ; preds = %2710
  br label %2728

2723:                                             ; preds = %2710
  %2724 = load i32, ptr %10, align 4, !tbaa !5
  %2725 = sext i32 %2724 to i64
  %2726 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2725
  %2727 = load i64, ptr %2726, align 8, !tbaa !22
  br label %2728

2728:                                             ; preds = %2723, %2722
  %2729 = phi i64 [ 1, %2722 ], [ %2727, %2723 ]
  %2730 = sub i64 %2716, %2729
  %2731 = lshr i64 %2730, 1
  %2732 = or i64 %2712, %2731
  %2733 = load i32, ptr %10, align 4, !tbaa !5
  %2734 = sext i32 %2733 to i64
  %2735 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2734
  %2736 = load i64, ptr %2735, align 8, !tbaa !22
  %2737 = load i32, ptr %10, align 4, !tbaa !5
  %2738 = sext i32 %2737 to i64
  %2739 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2738
  %2740 = load i64, ptr %2739, align 8, !tbaa !22
  %2741 = icmp ult i64 1, %2740
  br i1 %2741, label %2742, label %2743

2742:                                             ; preds = %2728
  br label %2748

2743:                                             ; preds = %2728
  %2744 = load i32, ptr %10, align 4, !tbaa !5
  %2745 = sext i32 %2744 to i64
  %2746 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2745
  %2747 = load i64, ptr %2746, align 8, !tbaa !22
  br label %2748

2748:                                             ; preds = %2743, %2742
  %2749 = phi i64 [ 1, %2742 ], [ %2747, %2743 ]
  %2750 = sub i64 %2736, %2749
  %2751 = load i32, ptr %10, align 4, !tbaa !5
  %2752 = sext i32 %2751 to i64
  %2753 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2752
  %2754 = load i64, ptr %2753, align 8, !tbaa !22
  %2755 = load i32, ptr %10, align 4, !tbaa !5
  %2756 = sext i32 %2755 to i64
  %2757 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2756
  %2758 = load i64, ptr %2757, align 8, !tbaa !22
  %2759 = icmp ult i64 1, %2758
  br i1 %2759, label %2760, label %2761

2760:                                             ; preds = %2748
  br label %2766

2761:                                             ; preds = %2748
  %2762 = load i32, ptr %10, align 4, !tbaa !5
  %2763 = sext i32 %2762 to i64
  %2764 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2763
  %2765 = load i64, ptr %2764, align 8, !tbaa !22
  br label %2766

2766:                                             ; preds = %2761, %2760
  %2767 = phi i64 [ 1, %2760 ], [ %2765, %2761 ]
  %2768 = sub i64 %2754, %2767
  %2769 = lshr i64 %2768, 1
  %2770 = or i64 %2750, %2769
  %2771 = lshr i64 %2770, 2
  %2772 = or i64 %2732, %2771
  %2773 = load i32, ptr %10, align 4, !tbaa !5
  %2774 = sext i32 %2773 to i64
  %2775 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2774
  %2776 = load i64, ptr %2775, align 8, !tbaa !22
  %2777 = load i32, ptr %10, align 4, !tbaa !5
  %2778 = sext i32 %2777 to i64
  %2779 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2778
  %2780 = load i64, ptr %2779, align 8, !tbaa !22
  %2781 = icmp ult i64 1, %2780
  br i1 %2781, label %2782, label %2783

2782:                                             ; preds = %2766
  br label %2788

2783:                                             ; preds = %2766
  %2784 = load i32, ptr %10, align 4, !tbaa !5
  %2785 = sext i32 %2784 to i64
  %2786 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2785
  %2787 = load i64, ptr %2786, align 8, !tbaa !22
  br label %2788

2788:                                             ; preds = %2783, %2782
  %2789 = phi i64 [ 1, %2782 ], [ %2787, %2783 ]
  %2790 = sub i64 %2776, %2789
  %2791 = load i32, ptr %10, align 4, !tbaa !5
  %2792 = sext i32 %2791 to i64
  %2793 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2792
  %2794 = load i64, ptr %2793, align 8, !tbaa !22
  %2795 = load i32, ptr %10, align 4, !tbaa !5
  %2796 = sext i32 %2795 to i64
  %2797 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2796
  %2798 = load i64, ptr %2797, align 8, !tbaa !22
  %2799 = icmp ult i64 1, %2798
  br i1 %2799, label %2800, label %2801

2800:                                             ; preds = %2788
  br label %2806

2801:                                             ; preds = %2788
  %2802 = load i32, ptr %10, align 4, !tbaa !5
  %2803 = sext i32 %2802 to i64
  %2804 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2803
  %2805 = load i64, ptr %2804, align 8, !tbaa !22
  br label %2806

2806:                                             ; preds = %2801, %2800
  %2807 = phi i64 [ 1, %2800 ], [ %2805, %2801 ]
  %2808 = sub i64 %2794, %2807
  %2809 = lshr i64 %2808, 1
  %2810 = or i64 %2790, %2809
  %2811 = load i32, ptr %10, align 4, !tbaa !5
  %2812 = sext i32 %2811 to i64
  %2813 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2812
  %2814 = load i64, ptr %2813, align 8, !tbaa !22
  %2815 = load i32, ptr %10, align 4, !tbaa !5
  %2816 = sext i32 %2815 to i64
  %2817 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2816
  %2818 = load i64, ptr %2817, align 8, !tbaa !22
  %2819 = icmp ult i64 1, %2818
  br i1 %2819, label %2820, label %2821

2820:                                             ; preds = %2806
  br label %2826

2821:                                             ; preds = %2806
  %2822 = load i32, ptr %10, align 4, !tbaa !5
  %2823 = sext i32 %2822 to i64
  %2824 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2823
  %2825 = load i64, ptr %2824, align 8, !tbaa !22
  br label %2826

2826:                                             ; preds = %2821, %2820
  %2827 = phi i64 [ 1, %2820 ], [ %2825, %2821 ]
  %2828 = sub i64 %2814, %2827
  %2829 = load i32, ptr %10, align 4, !tbaa !5
  %2830 = sext i32 %2829 to i64
  %2831 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2830
  %2832 = load i64, ptr %2831, align 8, !tbaa !22
  %2833 = load i32, ptr %10, align 4, !tbaa !5
  %2834 = sext i32 %2833 to i64
  %2835 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2834
  %2836 = load i64, ptr %2835, align 8, !tbaa !22
  %2837 = icmp ult i64 1, %2836
  br i1 %2837, label %2838, label %2839

2838:                                             ; preds = %2826
  br label %2844

2839:                                             ; preds = %2826
  %2840 = load i32, ptr %10, align 4, !tbaa !5
  %2841 = sext i32 %2840 to i64
  %2842 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2841
  %2843 = load i64, ptr %2842, align 8, !tbaa !22
  br label %2844

2844:                                             ; preds = %2839, %2838
  %2845 = phi i64 [ 1, %2838 ], [ %2843, %2839 ]
  %2846 = sub i64 %2832, %2845
  %2847 = lshr i64 %2846, 1
  %2848 = or i64 %2828, %2847
  %2849 = lshr i64 %2848, 2
  %2850 = or i64 %2810, %2849
  %2851 = lshr i64 %2850, 4
  %2852 = or i64 %2772, %2851
  %2853 = lshr i64 %2852, 8
  %2854 = or i64 %2694, %2853
  %2855 = lshr i64 %2854, 16
  %2856 = or i64 %2536, %2855
  %2857 = lshr i64 %2856, 32
  %2858 = or i64 %2218, %2857
  %2859 = load i32, ptr %10, align 4, !tbaa !5
  %2860 = sext i32 %2859 to i64
  %2861 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2860
  %2862 = load i64, ptr %2861, align 8, !tbaa !22
  %2863 = icmp ult i64 1, %2862
  br i1 %2863, label %2864, label %2865

2864:                                             ; preds = %2844
  br label %2870

2865:                                             ; preds = %2844
  %2866 = load i32, ptr %10, align 4, !tbaa !5
  %2867 = sext i32 %2866 to i64
  %2868 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2867
  %2869 = load i64, ptr %2868, align 8, !tbaa !22
  br label %2870

2870:                                             ; preds = %2865, %2864
  %2871 = phi i64 [ 1, %2864 ], [ %2869, %2865 ]
  %2872 = add i64 %2858, %2871
  %2873 = load i32, ptr %10, align 4, !tbaa !5
  %2874 = sext i32 %2873 to i64
  %2875 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %2874
  %2876 = load i64, ptr %2875, align 8, !tbaa !22
  %2877 = icmp ne i64 %2872, %2876
  br i1 %2877, label %2878, label %2879

2878:                                             ; preds = %2870
  call void @exit(i32 noundef 1) #10
  unreachable

2879:                                             ; preds = %2870
  %2880 = load i32, ptr %10, align 4, !tbaa !5
  %2881 = sext i32 %2880 to i64
  %2882 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2881
  %2883 = load i64, ptr %2882, align 8, !tbaa !22
  %2884 = lshr i64 %2883, 1
  %2885 = load i32, ptr %10, align 4, !tbaa !5
  %2886 = sext i32 %2885 to i64
  %2887 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2886
  %2888 = load i64, ptr %2887, align 8, !tbaa !22
  %2889 = lshr i64 %2888, 1
  %2890 = lshr i64 %2889, 1
  %2891 = or i64 %2884, %2890
  %2892 = load i32, ptr %10, align 4, !tbaa !5
  %2893 = sext i32 %2892 to i64
  %2894 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2893
  %2895 = load i64, ptr %2894, align 8, !tbaa !22
  %2896 = lshr i64 %2895, 1
  %2897 = load i32, ptr %10, align 4, !tbaa !5
  %2898 = sext i32 %2897 to i64
  %2899 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2898
  %2900 = load i64, ptr %2899, align 8, !tbaa !22
  %2901 = lshr i64 %2900, 1
  %2902 = lshr i64 %2901, 1
  %2903 = or i64 %2896, %2902
  %2904 = lshr i64 %2903, 2
  %2905 = or i64 %2891, %2904
  %2906 = load i32, ptr %10, align 4, !tbaa !5
  %2907 = sext i32 %2906 to i64
  %2908 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2907
  %2909 = load i64, ptr %2908, align 8, !tbaa !22
  %2910 = lshr i64 %2909, 1
  %2911 = load i32, ptr %10, align 4, !tbaa !5
  %2912 = sext i32 %2911 to i64
  %2913 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2912
  %2914 = load i64, ptr %2913, align 8, !tbaa !22
  %2915 = lshr i64 %2914, 1
  %2916 = lshr i64 %2915, 1
  %2917 = or i64 %2910, %2916
  %2918 = load i32, ptr %10, align 4, !tbaa !5
  %2919 = sext i32 %2918 to i64
  %2920 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2919
  %2921 = load i64, ptr %2920, align 8, !tbaa !22
  %2922 = lshr i64 %2921, 1
  %2923 = load i32, ptr %10, align 4, !tbaa !5
  %2924 = sext i32 %2923 to i64
  %2925 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2924
  %2926 = load i64, ptr %2925, align 8, !tbaa !22
  %2927 = lshr i64 %2926, 1
  %2928 = lshr i64 %2927, 1
  %2929 = or i64 %2922, %2928
  %2930 = lshr i64 %2929, 2
  %2931 = or i64 %2917, %2930
  %2932 = lshr i64 %2931, 4
  %2933 = or i64 %2905, %2932
  %2934 = load i32, ptr %10, align 4, !tbaa !5
  %2935 = sext i32 %2934 to i64
  %2936 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2935
  %2937 = load i64, ptr %2936, align 8, !tbaa !22
  %2938 = lshr i64 %2937, 1
  %2939 = load i32, ptr %10, align 4, !tbaa !5
  %2940 = sext i32 %2939 to i64
  %2941 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2940
  %2942 = load i64, ptr %2941, align 8, !tbaa !22
  %2943 = lshr i64 %2942, 1
  %2944 = lshr i64 %2943, 1
  %2945 = or i64 %2938, %2944
  %2946 = load i32, ptr %10, align 4, !tbaa !5
  %2947 = sext i32 %2946 to i64
  %2948 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2947
  %2949 = load i64, ptr %2948, align 8, !tbaa !22
  %2950 = lshr i64 %2949, 1
  %2951 = load i32, ptr %10, align 4, !tbaa !5
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2952
  %2954 = load i64, ptr %2953, align 8, !tbaa !22
  %2955 = lshr i64 %2954, 1
  %2956 = lshr i64 %2955, 1
  %2957 = or i64 %2950, %2956
  %2958 = lshr i64 %2957, 2
  %2959 = or i64 %2945, %2958
  %2960 = load i32, ptr %10, align 4, !tbaa !5
  %2961 = sext i32 %2960 to i64
  %2962 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2961
  %2963 = load i64, ptr %2962, align 8, !tbaa !22
  %2964 = lshr i64 %2963, 1
  %2965 = load i32, ptr %10, align 4, !tbaa !5
  %2966 = sext i32 %2965 to i64
  %2967 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2966
  %2968 = load i64, ptr %2967, align 8, !tbaa !22
  %2969 = lshr i64 %2968, 1
  %2970 = lshr i64 %2969, 1
  %2971 = or i64 %2964, %2970
  %2972 = load i32, ptr %10, align 4, !tbaa !5
  %2973 = sext i32 %2972 to i64
  %2974 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2973
  %2975 = load i64, ptr %2974, align 8, !tbaa !22
  %2976 = lshr i64 %2975, 1
  %2977 = load i32, ptr %10, align 4, !tbaa !5
  %2978 = sext i32 %2977 to i64
  %2979 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2978
  %2980 = load i64, ptr %2979, align 8, !tbaa !22
  %2981 = lshr i64 %2980, 1
  %2982 = lshr i64 %2981, 1
  %2983 = or i64 %2976, %2982
  %2984 = lshr i64 %2983, 2
  %2985 = or i64 %2971, %2984
  %2986 = lshr i64 %2985, 4
  %2987 = or i64 %2959, %2986
  %2988 = lshr i64 %2987, 8
  %2989 = or i64 %2933, %2988
  %2990 = load i32, ptr %10, align 4, !tbaa !5
  %2991 = sext i32 %2990 to i64
  %2992 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2991
  %2993 = load i64, ptr %2992, align 8, !tbaa !22
  %2994 = lshr i64 %2993, 1
  %2995 = load i32, ptr %10, align 4, !tbaa !5
  %2996 = sext i32 %2995 to i64
  %2997 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %2996
  %2998 = load i64, ptr %2997, align 8, !tbaa !22
  %2999 = lshr i64 %2998, 1
  %3000 = lshr i64 %2999, 1
  %3001 = or i64 %2994, %3000
  %3002 = load i32, ptr %10, align 4, !tbaa !5
  %3003 = sext i32 %3002 to i64
  %3004 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3003
  %3005 = load i64, ptr %3004, align 8, !tbaa !22
  %3006 = lshr i64 %3005, 1
  %3007 = load i32, ptr %10, align 4, !tbaa !5
  %3008 = sext i32 %3007 to i64
  %3009 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3008
  %3010 = load i64, ptr %3009, align 8, !tbaa !22
  %3011 = lshr i64 %3010, 1
  %3012 = lshr i64 %3011, 1
  %3013 = or i64 %3006, %3012
  %3014 = lshr i64 %3013, 2
  %3015 = or i64 %3001, %3014
  %3016 = load i32, ptr %10, align 4, !tbaa !5
  %3017 = sext i32 %3016 to i64
  %3018 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3017
  %3019 = load i64, ptr %3018, align 8, !tbaa !22
  %3020 = lshr i64 %3019, 1
  %3021 = load i32, ptr %10, align 4, !tbaa !5
  %3022 = sext i32 %3021 to i64
  %3023 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3022
  %3024 = load i64, ptr %3023, align 8, !tbaa !22
  %3025 = lshr i64 %3024, 1
  %3026 = lshr i64 %3025, 1
  %3027 = or i64 %3020, %3026
  %3028 = load i32, ptr %10, align 4, !tbaa !5
  %3029 = sext i32 %3028 to i64
  %3030 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3029
  %3031 = load i64, ptr %3030, align 8, !tbaa !22
  %3032 = lshr i64 %3031, 1
  %3033 = load i32, ptr %10, align 4, !tbaa !5
  %3034 = sext i32 %3033 to i64
  %3035 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3034
  %3036 = load i64, ptr %3035, align 8, !tbaa !22
  %3037 = lshr i64 %3036, 1
  %3038 = lshr i64 %3037, 1
  %3039 = or i64 %3032, %3038
  %3040 = lshr i64 %3039, 2
  %3041 = or i64 %3027, %3040
  %3042 = lshr i64 %3041, 4
  %3043 = or i64 %3015, %3042
  %3044 = load i32, ptr %10, align 4, !tbaa !5
  %3045 = sext i32 %3044 to i64
  %3046 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3045
  %3047 = load i64, ptr %3046, align 8, !tbaa !22
  %3048 = lshr i64 %3047, 1
  %3049 = load i32, ptr %10, align 4, !tbaa !5
  %3050 = sext i32 %3049 to i64
  %3051 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3050
  %3052 = load i64, ptr %3051, align 8, !tbaa !22
  %3053 = lshr i64 %3052, 1
  %3054 = lshr i64 %3053, 1
  %3055 = or i64 %3048, %3054
  %3056 = load i32, ptr %10, align 4, !tbaa !5
  %3057 = sext i32 %3056 to i64
  %3058 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3057
  %3059 = load i64, ptr %3058, align 8, !tbaa !22
  %3060 = lshr i64 %3059, 1
  %3061 = load i32, ptr %10, align 4, !tbaa !5
  %3062 = sext i32 %3061 to i64
  %3063 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3062
  %3064 = load i64, ptr %3063, align 8, !tbaa !22
  %3065 = lshr i64 %3064, 1
  %3066 = lshr i64 %3065, 1
  %3067 = or i64 %3060, %3066
  %3068 = lshr i64 %3067, 2
  %3069 = or i64 %3055, %3068
  %3070 = load i32, ptr %10, align 4, !tbaa !5
  %3071 = sext i32 %3070 to i64
  %3072 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3071
  %3073 = load i64, ptr %3072, align 8, !tbaa !22
  %3074 = lshr i64 %3073, 1
  %3075 = load i32, ptr %10, align 4, !tbaa !5
  %3076 = sext i32 %3075 to i64
  %3077 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3076
  %3078 = load i64, ptr %3077, align 8, !tbaa !22
  %3079 = lshr i64 %3078, 1
  %3080 = lshr i64 %3079, 1
  %3081 = or i64 %3074, %3080
  %3082 = load i32, ptr %10, align 4, !tbaa !5
  %3083 = sext i32 %3082 to i64
  %3084 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3083
  %3085 = load i64, ptr %3084, align 8, !tbaa !22
  %3086 = lshr i64 %3085, 1
  %3087 = load i32, ptr %10, align 4, !tbaa !5
  %3088 = sext i32 %3087 to i64
  %3089 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3088
  %3090 = load i64, ptr %3089, align 8, !tbaa !22
  %3091 = lshr i64 %3090, 1
  %3092 = lshr i64 %3091, 1
  %3093 = or i64 %3086, %3092
  %3094 = lshr i64 %3093, 2
  %3095 = or i64 %3081, %3094
  %3096 = lshr i64 %3095, 4
  %3097 = or i64 %3069, %3096
  %3098 = lshr i64 %3097, 8
  %3099 = or i64 %3043, %3098
  %3100 = lshr i64 %3099, 16
  %3101 = or i64 %2989, %3100
  %3102 = load i32, ptr %10, align 4, !tbaa !5
  %3103 = sext i32 %3102 to i64
  %3104 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3103
  %3105 = load i64, ptr %3104, align 8, !tbaa !22
  %3106 = lshr i64 %3105, 1
  %3107 = load i32, ptr %10, align 4, !tbaa !5
  %3108 = sext i32 %3107 to i64
  %3109 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3108
  %3110 = load i64, ptr %3109, align 8, !tbaa !22
  %3111 = lshr i64 %3110, 1
  %3112 = lshr i64 %3111, 1
  %3113 = or i64 %3106, %3112
  %3114 = load i32, ptr %10, align 4, !tbaa !5
  %3115 = sext i32 %3114 to i64
  %3116 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3115
  %3117 = load i64, ptr %3116, align 8, !tbaa !22
  %3118 = lshr i64 %3117, 1
  %3119 = load i32, ptr %10, align 4, !tbaa !5
  %3120 = sext i32 %3119 to i64
  %3121 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3120
  %3122 = load i64, ptr %3121, align 8, !tbaa !22
  %3123 = lshr i64 %3122, 1
  %3124 = lshr i64 %3123, 1
  %3125 = or i64 %3118, %3124
  %3126 = lshr i64 %3125, 2
  %3127 = or i64 %3113, %3126
  %3128 = load i32, ptr %10, align 4, !tbaa !5
  %3129 = sext i32 %3128 to i64
  %3130 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3129
  %3131 = load i64, ptr %3130, align 8, !tbaa !22
  %3132 = lshr i64 %3131, 1
  %3133 = load i32, ptr %10, align 4, !tbaa !5
  %3134 = sext i32 %3133 to i64
  %3135 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3134
  %3136 = load i64, ptr %3135, align 8, !tbaa !22
  %3137 = lshr i64 %3136, 1
  %3138 = lshr i64 %3137, 1
  %3139 = or i64 %3132, %3138
  %3140 = load i32, ptr %10, align 4, !tbaa !5
  %3141 = sext i32 %3140 to i64
  %3142 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3141
  %3143 = load i64, ptr %3142, align 8, !tbaa !22
  %3144 = lshr i64 %3143, 1
  %3145 = load i32, ptr %10, align 4, !tbaa !5
  %3146 = sext i32 %3145 to i64
  %3147 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3146
  %3148 = load i64, ptr %3147, align 8, !tbaa !22
  %3149 = lshr i64 %3148, 1
  %3150 = lshr i64 %3149, 1
  %3151 = or i64 %3144, %3150
  %3152 = lshr i64 %3151, 2
  %3153 = or i64 %3139, %3152
  %3154 = lshr i64 %3153, 4
  %3155 = or i64 %3127, %3154
  %3156 = load i32, ptr %10, align 4, !tbaa !5
  %3157 = sext i32 %3156 to i64
  %3158 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3157
  %3159 = load i64, ptr %3158, align 8, !tbaa !22
  %3160 = lshr i64 %3159, 1
  %3161 = load i32, ptr %10, align 4, !tbaa !5
  %3162 = sext i32 %3161 to i64
  %3163 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3162
  %3164 = load i64, ptr %3163, align 8, !tbaa !22
  %3165 = lshr i64 %3164, 1
  %3166 = lshr i64 %3165, 1
  %3167 = or i64 %3160, %3166
  %3168 = load i32, ptr %10, align 4, !tbaa !5
  %3169 = sext i32 %3168 to i64
  %3170 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3169
  %3171 = load i64, ptr %3170, align 8, !tbaa !22
  %3172 = lshr i64 %3171, 1
  %3173 = load i32, ptr %10, align 4, !tbaa !5
  %3174 = sext i32 %3173 to i64
  %3175 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3174
  %3176 = load i64, ptr %3175, align 8, !tbaa !22
  %3177 = lshr i64 %3176, 1
  %3178 = lshr i64 %3177, 1
  %3179 = or i64 %3172, %3178
  %3180 = lshr i64 %3179, 2
  %3181 = or i64 %3167, %3180
  %3182 = load i32, ptr %10, align 4, !tbaa !5
  %3183 = sext i32 %3182 to i64
  %3184 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3183
  %3185 = load i64, ptr %3184, align 8, !tbaa !22
  %3186 = lshr i64 %3185, 1
  %3187 = load i32, ptr %10, align 4, !tbaa !5
  %3188 = sext i32 %3187 to i64
  %3189 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3188
  %3190 = load i64, ptr %3189, align 8, !tbaa !22
  %3191 = lshr i64 %3190, 1
  %3192 = lshr i64 %3191, 1
  %3193 = or i64 %3186, %3192
  %3194 = load i32, ptr %10, align 4, !tbaa !5
  %3195 = sext i32 %3194 to i64
  %3196 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3195
  %3197 = load i64, ptr %3196, align 8, !tbaa !22
  %3198 = lshr i64 %3197, 1
  %3199 = load i32, ptr %10, align 4, !tbaa !5
  %3200 = sext i32 %3199 to i64
  %3201 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3200
  %3202 = load i64, ptr %3201, align 8, !tbaa !22
  %3203 = lshr i64 %3202, 1
  %3204 = lshr i64 %3203, 1
  %3205 = or i64 %3198, %3204
  %3206 = lshr i64 %3205, 2
  %3207 = or i64 %3193, %3206
  %3208 = lshr i64 %3207, 4
  %3209 = or i64 %3181, %3208
  %3210 = lshr i64 %3209, 8
  %3211 = or i64 %3155, %3210
  %3212 = load i32, ptr %10, align 4, !tbaa !5
  %3213 = sext i32 %3212 to i64
  %3214 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3213
  %3215 = load i64, ptr %3214, align 8, !tbaa !22
  %3216 = lshr i64 %3215, 1
  %3217 = load i32, ptr %10, align 4, !tbaa !5
  %3218 = sext i32 %3217 to i64
  %3219 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3218
  %3220 = load i64, ptr %3219, align 8, !tbaa !22
  %3221 = lshr i64 %3220, 1
  %3222 = lshr i64 %3221, 1
  %3223 = or i64 %3216, %3222
  %3224 = load i32, ptr %10, align 4, !tbaa !5
  %3225 = sext i32 %3224 to i64
  %3226 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3225
  %3227 = load i64, ptr %3226, align 8, !tbaa !22
  %3228 = lshr i64 %3227, 1
  %3229 = load i32, ptr %10, align 4, !tbaa !5
  %3230 = sext i32 %3229 to i64
  %3231 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3230
  %3232 = load i64, ptr %3231, align 8, !tbaa !22
  %3233 = lshr i64 %3232, 1
  %3234 = lshr i64 %3233, 1
  %3235 = or i64 %3228, %3234
  %3236 = lshr i64 %3235, 2
  %3237 = or i64 %3223, %3236
  %3238 = load i32, ptr %10, align 4, !tbaa !5
  %3239 = sext i32 %3238 to i64
  %3240 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3239
  %3241 = load i64, ptr %3240, align 8, !tbaa !22
  %3242 = lshr i64 %3241, 1
  %3243 = load i32, ptr %10, align 4, !tbaa !5
  %3244 = sext i32 %3243 to i64
  %3245 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3244
  %3246 = load i64, ptr %3245, align 8, !tbaa !22
  %3247 = lshr i64 %3246, 1
  %3248 = lshr i64 %3247, 1
  %3249 = or i64 %3242, %3248
  %3250 = load i32, ptr %10, align 4, !tbaa !5
  %3251 = sext i32 %3250 to i64
  %3252 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3251
  %3253 = load i64, ptr %3252, align 8, !tbaa !22
  %3254 = lshr i64 %3253, 1
  %3255 = load i32, ptr %10, align 4, !tbaa !5
  %3256 = sext i32 %3255 to i64
  %3257 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3256
  %3258 = load i64, ptr %3257, align 8, !tbaa !22
  %3259 = lshr i64 %3258, 1
  %3260 = lshr i64 %3259, 1
  %3261 = or i64 %3254, %3260
  %3262 = lshr i64 %3261, 2
  %3263 = or i64 %3249, %3262
  %3264 = lshr i64 %3263, 4
  %3265 = or i64 %3237, %3264
  %3266 = load i32, ptr %10, align 4, !tbaa !5
  %3267 = sext i32 %3266 to i64
  %3268 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3267
  %3269 = load i64, ptr %3268, align 8, !tbaa !22
  %3270 = lshr i64 %3269, 1
  %3271 = load i32, ptr %10, align 4, !tbaa !5
  %3272 = sext i32 %3271 to i64
  %3273 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3272
  %3274 = load i64, ptr %3273, align 8, !tbaa !22
  %3275 = lshr i64 %3274, 1
  %3276 = lshr i64 %3275, 1
  %3277 = or i64 %3270, %3276
  %3278 = load i32, ptr %10, align 4, !tbaa !5
  %3279 = sext i32 %3278 to i64
  %3280 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3279
  %3281 = load i64, ptr %3280, align 8, !tbaa !22
  %3282 = lshr i64 %3281, 1
  %3283 = load i32, ptr %10, align 4, !tbaa !5
  %3284 = sext i32 %3283 to i64
  %3285 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3284
  %3286 = load i64, ptr %3285, align 8, !tbaa !22
  %3287 = lshr i64 %3286, 1
  %3288 = lshr i64 %3287, 1
  %3289 = or i64 %3282, %3288
  %3290 = lshr i64 %3289, 2
  %3291 = or i64 %3277, %3290
  %3292 = load i32, ptr %10, align 4, !tbaa !5
  %3293 = sext i32 %3292 to i64
  %3294 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3293
  %3295 = load i64, ptr %3294, align 8, !tbaa !22
  %3296 = lshr i64 %3295, 1
  %3297 = load i32, ptr %10, align 4, !tbaa !5
  %3298 = sext i32 %3297 to i64
  %3299 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3298
  %3300 = load i64, ptr %3299, align 8, !tbaa !22
  %3301 = lshr i64 %3300, 1
  %3302 = lshr i64 %3301, 1
  %3303 = or i64 %3296, %3302
  %3304 = load i32, ptr %10, align 4, !tbaa !5
  %3305 = sext i32 %3304 to i64
  %3306 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3305
  %3307 = load i64, ptr %3306, align 8, !tbaa !22
  %3308 = lshr i64 %3307, 1
  %3309 = load i32, ptr %10, align 4, !tbaa !5
  %3310 = sext i32 %3309 to i64
  %3311 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3310
  %3312 = load i64, ptr %3311, align 8, !tbaa !22
  %3313 = lshr i64 %3312, 1
  %3314 = lshr i64 %3313, 1
  %3315 = or i64 %3308, %3314
  %3316 = lshr i64 %3315, 2
  %3317 = or i64 %3303, %3316
  %3318 = lshr i64 %3317, 4
  %3319 = or i64 %3291, %3318
  %3320 = lshr i64 %3319, 8
  %3321 = or i64 %3265, %3320
  %3322 = lshr i64 %3321, 16
  %3323 = or i64 %3211, %3322
  %3324 = lshr i64 %3323, 32
  %3325 = or i64 %3101, %3324
  %3326 = load i32, ptr %10, align 4, !tbaa !5
  %3327 = sext i32 %3326 to i64
  %3328 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3327
  %3329 = load i64, ptr %3328, align 8, !tbaa !22
  %3330 = icmp ult i64 1, %3329
  br i1 %3330, label %3331, label %3332

3331:                                             ; preds = %2879
  br label %3337

3332:                                             ; preds = %2879
  %3333 = load i32, ptr %10, align 4, !tbaa !5
  %3334 = sext i32 %3333 to i64
  %3335 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3334
  %3336 = load i64, ptr %3335, align 8, !tbaa !22
  br label %3337

3337:                                             ; preds = %3332, %3331
  %3338 = phi i64 [ 1, %3331 ], [ %3336, %3332 ]
  %3339 = add i64 %3325, %3338
  %3340 = load i32, ptr %10, align 4, !tbaa !5
  %3341 = sext i32 %3340 to i64
  %3342 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %3341
  %3343 = load i64, ptr %3342, align 8, !tbaa !22
  %3344 = icmp ne i64 %3339, %3343
  br i1 %3344, label %3345, label %3346

3345:                                             ; preds = %3337
  call void @exit(i32 noundef 1) #10
  unreachable

3346:                                             ; preds = %3337
  %3347 = load i32, ptr %10, align 4, !tbaa !5
  %3348 = sext i32 %3347 to i64
  %3349 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3348
  %3350 = load i64, ptr %3349, align 8, !tbaa !22
  %3351 = icmp ne i64 0, %3350
  br i1 %3351, label %3352, label %3365

3352:                                             ; preds = %3346
  %3353 = load i32, ptr %10, align 4, !tbaa !5
  %3354 = sext i32 %3353 to i64
  %3355 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3354
  %3356 = load i64, ptr %3355, align 8, !tbaa !22
  %3357 = load i32, ptr %10, align 4, !tbaa !5
  %3358 = sext i32 %3357 to i64
  %3359 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3358
  %3360 = load i64, ptr %3359, align 8, !tbaa !22
  %3361 = sub i64 %3360, 1
  %3362 = and i64 %3356, %3361
  %3363 = icmp ne i64 %3362, 0
  %3364 = xor i1 %3363, true
  br label %3365

3365:                                             ; preds = %3352, %3346
  %3366 = phi i1 [ false, %3346 ], [ %3364, %3352 ]
  %3367 = zext i1 %3366 to i32
  %3368 = load i32, ptr %10, align 4, !tbaa !5
  %3369 = sext i32 %3368 to i64
  %3370 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3369
  %3371 = load i64, ptr %3370, align 8, !tbaa !22
  %3372 = icmp ne i64 0, %3371
  br i1 %3372, label %3373, label %4671

3373:                                             ; preds = %3365
  %3374 = load i32, ptr %10, align 4, !tbaa !5
  %3375 = sext i32 %3374 to i64
  %3376 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3375
  %3377 = load i64, ptr %3376, align 8, !tbaa !22
  %3378 = load i32, ptr %10, align 4, !tbaa !5
  %3379 = sext i32 %3378 to i64
  %3380 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3379
  %3381 = load i64, ptr %3380, align 8, !tbaa !22
  %3382 = load i32, ptr %10, align 4, !tbaa !5
  %3383 = sext i32 %3382 to i64
  %3384 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3383
  %3385 = load i64, ptr %3384, align 8, !tbaa !22
  %3386 = icmp ult i64 1, %3385
  br i1 %3386, label %3387, label %3388

3387:                                             ; preds = %3373
  br label %3393

3388:                                             ; preds = %3373
  %3389 = load i32, ptr %10, align 4, !tbaa !5
  %3390 = sext i32 %3389 to i64
  %3391 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3390
  %3392 = load i64, ptr %3391, align 8, !tbaa !22
  br label %3393

3393:                                             ; preds = %3388, %3387
  %3394 = phi i64 [ 1, %3387 ], [ %3392, %3388 ]
  %3395 = sub i64 %3381, %3394
  %3396 = load i32, ptr %10, align 4, !tbaa !5
  %3397 = sext i32 %3396 to i64
  %3398 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3397
  %3399 = load i64, ptr %3398, align 8, !tbaa !22
  %3400 = load i32, ptr %10, align 4, !tbaa !5
  %3401 = sext i32 %3400 to i64
  %3402 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3401
  %3403 = load i64, ptr %3402, align 8, !tbaa !22
  %3404 = icmp ult i64 1, %3403
  br i1 %3404, label %3405, label %3406

3405:                                             ; preds = %3393
  br label %3411

3406:                                             ; preds = %3393
  %3407 = load i32, ptr %10, align 4, !tbaa !5
  %3408 = sext i32 %3407 to i64
  %3409 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3408
  %3410 = load i64, ptr %3409, align 8, !tbaa !22
  br label %3411

3411:                                             ; preds = %3406, %3405
  %3412 = phi i64 [ 1, %3405 ], [ %3410, %3406 ]
  %3413 = sub i64 %3399, %3412
  %3414 = lshr i64 %3413, 1
  %3415 = or i64 %3395, %3414
  %3416 = load i32, ptr %10, align 4, !tbaa !5
  %3417 = sext i32 %3416 to i64
  %3418 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3417
  %3419 = load i64, ptr %3418, align 8, !tbaa !22
  %3420 = load i32, ptr %10, align 4, !tbaa !5
  %3421 = sext i32 %3420 to i64
  %3422 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3421
  %3423 = load i64, ptr %3422, align 8, !tbaa !22
  %3424 = icmp ult i64 1, %3423
  br i1 %3424, label %3425, label %3426

3425:                                             ; preds = %3411
  br label %3431

3426:                                             ; preds = %3411
  %3427 = load i32, ptr %10, align 4, !tbaa !5
  %3428 = sext i32 %3427 to i64
  %3429 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3428
  %3430 = load i64, ptr %3429, align 8, !tbaa !22
  br label %3431

3431:                                             ; preds = %3426, %3425
  %3432 = phi i64 [ 1, %3425 ], [ %3430, %3426 ]
  %3433 = sub i64 %3419, %3432
  %3434 = load i32, ptr %10, align 4, !tbaa !5
  %3435 = sext i32 %3434 to i64
  %3436 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3435
  %3437 = load i64, ptr %3436, align 8, !tbaa !22
  %3438 = load i32, ptr %10, align 4, !tbaa !5
  %3439 = sext i32 %3438 to i64
  %3440 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3439
  %3441 = load i64, ptr %3440, align 8, !tbaa !22
  %3442 = icmp ult i64 1, %3441
  br i1 %3442, label %3443, label %3444

3443:                                             ; preds = %3431
  br label %3449

3444:                                             ; preds = %3431
  %3445 = load i32, ptr %10, align 4, !tbaa !5
  %3446 = sext i32 %3445 to i64
  %3447 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3446
  %3448 = load i64, ptr %3447, align 8, !tbaa !22
  br label %3449

3449:                                             ; preds = %3444, %3443
  %3450 = phi i64 [ 1, %3443 ], [ %3448, %3444 ]
  %3451 = sub i64 %3437, %3450
  %3452 = lshr i64 %3451, 1
  %3453 = or i64 %3433, %3452
  %3454 = lshr i64 %3453, 2
  %3455 = or i64 %3415, %3454
  %3456 = load i32, ptr %10, align 4, !tbaa !5
  %3457 = sext i32 %3456 to i64
  %3458 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3457
  %3459 = load i64, ptr %3458, align 8, !tbaa !22
  %3460 = load i32, ptr %10, align 4, !tbaa !5
  %3461 = sext i32 %3460 to i64
  %3462 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3461
  %3463 = load i64, ptr %3462, align 8, !tbaa !22
  %3464 = icmp ult i64 1, %3463
  br i1 %3464, label %3465, label %3466

3465:                                             ; preds = %3449
  br label %3471

3466:                                             ; preds = %3449
  %3467 = load i32, ptr %10, align 4, !tbaa !5
  %3468 = sext i32 %3467 to i64
  %3469 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3468
  %3470 = load i64, ptr %3469, align 8, !tbaa !22
  br label %3471

3471:                                             ; preds = %3466, %3465
  %3472 = phi i64 [ 1, %3465 ], [ %3470, %3466 ]
  %3473 = sub i64 %3459, %3472
  %3474 = load i32, ptr %10, align 4, !tbaa !5
  %3475 = sext i32 %3474 to i64
  %3476 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3475
  %3477 = load i64, ptr %3476, align 8, !tbaa !22
  %3478 = load i32, ptr %10, align 4, !tbaa !5
  %3479 = sext i32 %3478 to i64
  %3480 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3479
  %3481 = load i64, ptr %3480, align 8, !tbaa !22
  %3482 = icmp ult i64 1, %3481
  br i1 %3482, label %3483, label %3484

3483:                                             ; preds = %3471
  br label %3489

3484:                                             ; preds = %3471
  %3485 = load i32, ptr %10, align 4, !tbaa !5
  %3486 = sext i32 %3485 to i64
  %3487 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3486
  %3488 = load i64, ptr %3487, align 8, !tbaa !22
  br label %3489

3489:                                             ; preds = %3484, %3483
  %3490 = phi i64 [ 1, %3483 ], [ %3488, %3484 ]
  %3491 = sub i64 %3477, %3490
  %3492 = lshr i64 %3491, 1
  %3493 = or i64 %3473, %3492
  %3494 = load i32, ptr %10, align 4, !tbaa !5
  %3495 = sext i32 %3494 to i64
  %3496 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3495
  %3497 = load i64, ptr %3496, align 8, !tbaa !22
  %3498 = load i32, ptr %10, align 4, !tbaa !5
  %3499 = sext i32 %3498 to i64
  %3500 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3499
  %3501 = load i64, ptr %3500, align 8, !tbaa !22
  %3502 = icmp ult i64 1, %3501
  br i1 %3502, label %3503, label %3504

3503:                                             ; preds = %3489
  br label %3509

3504:                                             ; preds = %3489
  %3505 = load i32, ptr %10, align 4, !tbaa !5
  %3506 = sext i32 %3505 to i64
  %3507 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3506
  %3508 = load i64, ptr %3507, align 8, !tbaa !22
  br label %3509

3509:                                             ; preds = %3504, %3503
  %3510 = phi i64 [ 1, %3503 ], [ %3508, %3504 ]
  %3511 = sub i64 %3497, %3510
  %3512 = load i32, ptr %10, align 4, !tbaa !5
  %3513 = sext i32 %3512 to i64
  %3514 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3513
  %3515 = load i64, ptr %3514, align 8, !tbaa !22
  %3516 = load i32, ptr %10, align 4, !tbaa !5
  %3517 = sext i32 %3516 to i64
  %3518 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3517
  %3519 = load i64, ptr %3518, align 8, !tbaa !22
  %3520 = icmp ult i64 1, %3519
  br i1 %3520, label %3521, label %3522

3521:                                             ; preds = %3509
  br label %3527

3522:                                             ; preds = %3509
  %3523 = load i32, ptr %10, align 4, !tbaa !5
  %3524 = sext i32 %3523 to i64
  %3525 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3524
  %3526 = load i64, ptr %3525, align 8, !tbaa !22
  br label %3527

3527:                                             ; preds = %3522, %3521
  %3528 = phi i64 [ 1, %3521 ], [ %3526, %3522 ]
  %3529 = sub i64 %3515, %3528
  %3530 = lshr i64 %3529, 1
  %3531 = or i64 %3511, %3530
  %3532 = lshr i64 %3531, 2
  %3533 = or i64 %3493, %3532
  %3534 = lshr i64 %3533, 4
  %3535 = or i64 %3455, %3534
  %3536 = load i32, ptr %10, align 4, !tbaa !5
  %3537 = sext i32 %3536 to i64
  %3538 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3537
  %3539 = load i64, ptr %3538, align 8, !tbaa !22
  %3540 = load i32, ptr %10, align 4, !tbaa !5
  %3541 = sext i32 %3540 to i64
  %3542 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3541
  %3543 = load i64, ptr %3542, align 8, !tbaa !22
  %3544 = icmp ult i64 1, %3543
  br i1 %3544, label %3545, label %3546

3545:                                             ; preds = %3527
  br label %3551

3546:                                             ; preds = %3527
  %3547 = load i32, ptr %10, align 4, !tbaa !5
  %3548 = sext i32 %3547 to i64
  %3549 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3548
  %3550 = load i64, ptr %3549, align 8, !tbaa !22
  br label %3551

3551:                                             ; preds = %3546, %3545
  %3552 = phi i64 [ 1, %3545 ], [ %3550, %3546 ]
  %3553 = sub i64 %3539, %3552
  %3554 = load i32, ptr %10, align 4, !tbaa !5
  %3555 = sext i32 %3554 to i64
  %3556 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3555
  %3557 = load i64, ptr %3556, align 8, !tbaa !22
  %3558 = load i32, ptr %10, align 4, !tbaa !5
  %3559 = sext i32 %3558 to i64
  %3560 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3559
  %3561 = load i64, ptr %3560, align 8, !tbaa !22
  %3562 = icmp ult i64 1, %3561
  br i1 %3562, label %3563, label %3564

3563:                                             ; preds = %3551
  br label %3569

3564:                                             ; preds = %3551
  %3565 = load i32, ptr %10, align 4, !tbaa !5
  %3566 = sext i32 %3565 to i64
  %3567 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3566
  %3568 = load i64, ptr %3567, align 8, !tbaa !22
  br label %3569

3569:                                             ; preds = %3564, %3563
  %3570 = phi i64 [ 1, %3563 ], [ %3568, %3564 ]
  %3571 = sub i64 %3557, %3570
  %3572 = lshr i64 %3571, 1
  %3573 = or i64 %3553, %3572
  %3574 = load i32, ptr %10, align 4, !tbaa !5
  %3575 = sext i32 %3574 to i64
  %3576 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3575
  %3577 = load i64, ptr %3576, align 8, !tbaa !22
  %3578 = load i32, ptr %10, align 4, !tbaa !5
  %3579 = sext i32 %3578 to i64
  %3580 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3579
  %3581 = load i64, ptr %3580, align 8, !tbaa !22
  %3582 = icmp ult i64 1, %3581
  br i1 %3582, label %3583, label %3584

3583:                                             ; preds = %3569
  br label %3589

3584:                                             ; preds = %3569
  %3585 = load i32, ptr %10, align 4, !tbaa !5
  %3586 = sext i32 %3585 to i64
  %3587 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3586
  %3588 = load i64, ptr %3587, align 8, !tbaa !22
  br label %3589

3589:                                             ; preds = %3584, %3583
  %3590 = phi i64 [ 1, %3583 ], [ %3588, %3584 ]
  %3591 = sub i64 %3577, %3590
  %3592 = load i32, ptr %10, align 4, !tbaa !5
  %3593 = sext i32 %3592 to i64
  %3594 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3593
  %3595 = load i64, ptr %3594, align 8, !tbaa !22
  %3596 = load i32, ptr %10, align 4, !tbaa !5
  %3597 = sext i32 %3596 to i64
  %3598 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3597
  %3599 = load i64, ptr %3598, align 8, !tbaa !22
  %3600 = icmp ult i64 1, %3599
  br i1 %3600, label %3601, label %3602

3601:                                             ; preds = %3589
  br label %3607

3602:                                             ; preds = %3589
  %3603 = load i32, ptr %10, align 4, !tbaa !5
  %3604 = sext i32 %3603 to i64
  %3605 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3604
  %3606 = load i64, ptr %3605, align 8, !tbaa !22
  br label %3607

3607:                                             ; preds = %3602, %3601
  %3608 = phi i64 [ 1, %3601 ], [ %3606, %3602 ]
  %3609 = sub i64 %3595, %3608
  %3610 = lshr i64 %3609, 1
  %3611 = or i64 %3591, %3610
  %3612 = lshr i64 %3611, 2
  %3613 = or i64 %3573, %3612
  %3614 = load i32, ptr %10, align 4, !tbaa !5
  %3615 = sext i32 %3614 to i64
  %3616 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3615
  %3617 = load i64, ptr %3616, align 8, !tbaa !22
  %3618 = load i32, ptr %10, align 4, !tbaa !5
  %3619 = sext i32 %3618 to i64
  %3620 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3619
  %3621 = load i64, ptr %3620, align 8, !tbaa !22
  %3622 = icmp ult i64 1, %3621
  br i1 %3622, label %3623, label %3624

3623:                                             ; preds = %3607
  br label %3629

3624:                                             ; preds = %3607
  %3625 = load i32, ptr %10, align 4, !tbaa !5
  %3626 = sext i32 %3625 to i64
  %3627 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3626
  %3628 = load i64, ptr %3627, align 8, !tbaa !22
  br label %3629

3629:                                             ; preds = %3624, %3623
  %3630 = phi i64 [ 1, %3623 ], [ %3628, %3624 ]
  %3631 = sub i64 %3617, %3630
  %3632 = load i32, ptr %10, align 4, !tbaa !5
  %3633 = sext i32 %3632 to i64
  %3634 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3633
  %3635 = load i64, ptr %3634, align 8, !tbaa !22
  %3636 = load i32, ptr %10, align 4, !tbaa !5
  %3637 = sext i32 %3636 to i64
  %3638 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3637
  %3639 = load i64, ptr %3638, align 8, !tbaa !22
  %3640 = icmp ult i64 1, %3639
  br i1 %3640, label %3641, label %3642

3641:                                             ; preds = %3629
  br label %3647

3642:                                             ; preds = %3629
  %3643 = load i32, ptr %10, align 4, !tbaa !5
  %3644 = sext i32 %3643 to i64
  %3645 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3644
  %3646 = load i64, ptr %3645, align 8, !tbaa !22
  br label %3647

3647:                                             ; preds = %3642, %3641
  %3648 = phi i64 [ 1, %3641 ], [ %3646, %3642 ]
  %3649 = sub i64 %3635, %3648
  %3650 = lshr i64 %3649, 1
  %3651 = or i64 %3631, %3650
  %3652 = load i32, ptr %10, align 4, !tbaa !5
  %3653 = sext i32 %3652 to i64
  %3654 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3653
  %3655 = load i64, ptr %3654, align 8, !tbaa !22
  %3656 = load i32, ptr %10, align 4, !tbaa !5
  %3657 = sext i32 %3656 to i64
  %3658 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3657
  %3659 = load i64, ptr %3658, align 8, !tbaa !22
  %3660 = icmp ult i64 1, %3659
  br i1 %3660, label %3661, label %3662

3661:                                             ; preds = %3647
  br label %3667

3662:                                             ; preds = %3647
  %3663 = load i32, ptr %10, align 4, !tbaa !5
  %3664 = sext i32 %3663 to i64
  %3665 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3664
  %3666 = load i64, ptr %3665, align 8, !tbaa !22
  br label %3667

3667:                                             ; preds = %3662, %3661
  %3668 = phi i64 [ 1, %3661 ], [ %3666, %3662 ]
  %3669 = sub i64 %3655, %3668
  %3670 = load i32, ptr %10, align 4, !tbaa !5
  %3671 = sext i32 %3670 to i64
  %3672 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3671
  %3673 = load i64, ptr %3672, align 8, !tbaa !22
  %3674 = load i32, ptr %10, align 4, !tbaa !5
  %3675 = sext i32 %3674 to i64
  %3676 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3675
  %3677 = load i64, ptr %3676, align 8, !tbaa !22
  %3678 = icmp ult i64 1, %3677
  br i1 %3678, label %3679, label %3680

3679:                                             ; preds = %3667
  br label %3685

3680:                                             ; preds = %3667
  %3681 = load i32, ptr %10, align 4, !tbaa !5
  %3682 = sext i32 %3681 to i64
  %3683 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3682
  %3684 = load i64, ptr %3683, align 8, !tbaa !22
  br label %3685

3685:                                             ; preds = %3680, %3679
  %3686 = phi i64 [ 1, %3679 ], [ %3684, %3680 ]
  %3687 = sub i64 %3673, %3686
  %3688 = lshr i64 %3687, 1
  %3689 = or i64 %3669, %3688
  %3690 = lshr i64 %3689, 2
  %3691 = or i64 %3651, %3690
  %3692 = lshr i64 %3691, 4
  %3693 = or i64 %3613, %3692
  %3694 = lshr i64 %3693, 8
  %3695 = or i64 %3535, %3694
  %3696 = load i32, ptr %10, align 4, !tbaa !5
  %3697 = sext i32 %3696 to i64
  %3698 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3697
  %3699 = load i64, ptr %3698, align 8, !tbaa !22
  %3700 = load i32, ptr %10, align 4, !tbaa !5
  %3701 = sext i32 %3700 to i64
  %3702 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3701
  %3703 = load i64, ptr %3702, align 8, !tbaa !22
  %3704 = icmp ult i64 1, %3703
  br i1 %3704, label %3705, label %3706

3705:                                             ; preds = %3685
  br label %3711

3706:                                             ; preds = %3685
  %3707 = load i32, ptr %10, align 4, !tbaa !5
  %3708 = sext i32 %3707 to i64
  %3709 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3708
  %3710 = load i64, ptr %3709, align 8, !tbaa !22
  br label %3711

3711:                                             ; preds = %3706, %3705
  %3712 = phi i64 [ 1, %3705 ], [ %3710, %3706 ]
  %3713 = sub i64 %3699, %3712
  %3714 = load i32, ptr %10, align 4, !tbaa !5
  %3715 = sext i32 %3714 to i64
  %3716 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3715
  %3717 = load i64, ptr %3716, align 8, !tbaa !22
  %3718 = load i32, ptr %10, align 4, !tbaa !5
  %3719 = sext i32 %3718 to i64
  %3720 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3719
  %3721 = load i64, ptr %3720, align 8, !tbaa !22
  %3722 = icmp ult i64 1, %3721
  br i1 %3722, label %3723, label %3724

3723:                                             ; preds = %3711
  br label %3729

3724:                                             ; preds = %3711
  %3725 = load i32, ptr %10, align 4, !tbaa !5
  %3726 = sext i32 %3725 to i64
  %3727 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3726
  %3728 = load i64, ptr %3727, align 8, !tbaa !22
  br label %3729

3729:                                             ; preds = %3724, %3723
  %3730 = phi i64 [ 1, %3723 ], [ %3728, %3724 ]
  %3731 = sub i64 %3717, %3730
  %3732 = lshr i64 %3731, 1
  %3733 = or i64 %3713, %3732
  %3734 = load i32, ptr %10, align 4, !tbaa !5
  %3735 = sext i32 %3734 to i64
  %3736 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3735
  %3737 = load i64, ptr %3736, align 8, !tbaa !22
  %3738 = load i32, ptr %10, align 4, !tbaa !5
  %3739 = sext i32 %3738 to i64
  %3740 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3739
  %3741 = load i64, ptr %3740, align 8, !tbaa !22
  %3742 = icmp ult i64 1, %3741
  br i1 %3742, label %3743, label %3744

3743:                                             ; preds = %3729
  br label %3749

3744:                                             ; preds = %3729
  %3745 = load i32, ptr %10, align 4, !tbaa !5
  %3746 = sext i32 %3745 to i64
  %3747 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3746
  %3748 = load i64, ptr %3747, align 8, !tbaa !22
  br label %3749

3749:                                             ; preds = %3744, %3743
  %3750 = phi i64 [ 1, %3743 ], [ %3748, %3744 ]
  %3751 = sub i64 %3737, %3750
  %3752 = load i32, ptr %10, align 4, !tbaa !5
  %3753 = sext i32 %3752 to i64
  %3754 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3753
  %3755 = load i64, ptr %3754, align 8, !tbaa !22
  %3756 = load i32, ptr %10, align 4, !tbaa !5
  %3757 = sext i32 %3756 to i64
  %3758 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3757
  %3759 = load i64, ptr %3758, align 8, !tbaa !22
  %3760 = icmp ult i64 1, %3759
  br i1 %3760, label %3761, label %3762

3761:                                             ; preds = %3749
  br label %3767

3762:                                             ; preds = %3749
  %3763 = load i32, ptr %10, align 4, !tbaa !5
  %3764 = sext i32 %3763 to i64
  %3765 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3764
  %3766 = load i64, ptr %3765, align 8, !tbaa !22
  br label %3767

3767:                                             ; preds = %3762, %3761
  %3768 = phi i64 [ 1, %3761 ], [ %3766, %3762 ]
  %3769 = sub i64 %3755, %3768
  %3770 = lshr i64 %3769, 1
  %3771 = or i64 %3751, %3770
  %3772 = lshr i64 %3771, 2
  %3773 = or i64 %3733, %3772
  %3774 = load i32, ptr %10, align 4, !tbaa !5
  %3775 = sext i32 %3774 to i64
  %3776 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3775
  %3777 = load i64, ptr %3776, align 8, !tbaa !22
  %3778 = load i32, ptr %10, align 4, !tbaa !5
  %3779 = sext i32 %3778 to i64
  %3780 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3779
  %3781 = load i64, ptr %3780, align 8, !tbaa !22
  %3782 = icmp ult i64 1, %3781
  br i1 %3782, label %3783, label %3784

3783:                                             ; preds = %3767
  br label %3789

3784:                                             ; preds = %3767
  %3785 = load i32, ptr %10, align 4, !tbaa !5
  %3786 = sext i32 %3785 to i64
  %3787 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3786
  %3788 = load i64, ptr %3787, align 8, !tbaa !22
  br label %3789

3789:                                             ; preds = %3784, %3783
  %3790 = phi i64 [ 1, %3783 ], [ %3788, %3784 ]
  %3791 = sub i64 %3777, %3790
  %3792 = load i32, ptr %10, align 4, !tbaa !5
  %3793 = sext i32 %3792 to i64
  %3794 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3793
  %3795 = load i64, ptr %3794, align 8, !tbaa !22
  %3796 = load i32, ptr %10, align 4, !tbaa !5
  %3797 = sext i32 %3796 to i64
  %3798 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3797
  %3799 = load i64, ptr %3798, align 8, !tbaa !22
  %3800 = icmp ult i64 1, %3799
  br i1 %3800, label %3801, label %3802

3801:                                             ; preds = %3789
  br label %3807

3802:                                             ; preds = %3789
  %3803 = load i32, ptr %10, align 4, !tbaa !5
  %3804 = sext i32 %3803 to i64
  %3805 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3804
  %3806 = load i64, ptr %3805, align 8, !tbaa !22
  br label %3807

3807:                                             ; preds = %3802, %3801
  %3808 = phi i64 [ 1, %3801 ], [ %3806, %3802 ]
  %3809 = sub i64 %3795, %3808
  %3810 = lshr i64 %3809, 1
  %3811 = or i64 %3791, %3810
  %3812 = load i32, ptr %10, align 4, !tbaa !5
  %3813 = sext i32 %3812 to i64
  %3814 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3813
  %3815 = load i64, ptr %3814, align 8, !tbaa !22
  %3816 = load i32, ptr %10, align 4, !tbaa !5
  %3817 = sext i32 %3816 to i64
  %3818 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3817
  %3819 = load i64, ptr %3818, align 8, !tbaa !22
  %3820 = icmp ult i64 1, %3819
  br i1 %3820, label %3821, label %3822

3821:                                             ; preds = %3807
  br label %3827

3822:                                             ; preds = %3807
  %3823 = load i32, ptr %10, align 4, !tbaa !5
  %3824 = sext i32 %3823 to i64
  %3825 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3824
  %3826 = load i64, ptr %3825, align 8, !tbaa !22
  br label %3827

3827:                                             ; preds = %3822, %3821
  %3828 = phi i64 [ 1, %3821 ], [ %3826, %3822 ]
  %3829 = sub i64 %3815, %3828
  %3830 = load i32, ptr %10, align 4, !tbaa !5
  %3831 = sext i32 %3830 to i64
  %3832 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3831
  %3833 = load i64, ptr %3832, align 8, !tbaa !22
  %3834 = load i32, ptr %10, align 4, !tbaa !5
  %3835 = sext i32 %3834 to i64
  %3836 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3835
  %3837 = load i64, ptr %3836, align 8, !tbaa !22
  %3838 = icmp ult i64 1, %3837
  br i1 %3838, label %3839, label %3840

3839:                                             ; preds = %3827
  br label %3845

3840:                                             ; preds = %3827
  %3841 = load i32, ptr %10, align 4, !tbaa !5
  %3842 = sext i32 %3841 to i64
  %3843 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3842
  %3844 = load i64, ptr %3843, align 8, !tbaa !22
  br label %3845

3845:                                             ; preds = %3840, %3839
  %3846 = phi i64 [ 1, %3839 ], [ %3844, %3840 ]
  %3847 = sub i64 %3833, %3846
  %3848 = lshr i64 %3847, 1
  %3849 = or i64 %3829, %3848
  %3850 = lshr i64 %3849, 2
  %3851 = or i64 %3811, %3850
  %3852 = lshr i64 %3851, 4
  %3853 = or i64 %3773, %3852
  %3854 = load i32, ptr %10, align 4, !tbaa !5
  %3855 = sext i32 %3854 to i64
  %3856 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3855
  %3857 = load i64, ptr %3856, align 8, !tbaa !22
  %3858 = load i32, ptr %10, align 4, !tbaa !5
  %3859 = sext i32 %3858 to i64
  %3860 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3859
  %3861 = load i64, ptr %3860, align 8, !tbaa !22
  %3862 = icmp ult i64 1, %3861
  br i1 %3862, label %3863, label %3864

3863:                                             ; preds = %3845
  br label %3869

3864:                                             ; preds = %3845
  %3865 = load i32, ptr %10, align 4, !tbaa !5
  %3866 = sext i32 %3865 to i64
  %3867 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3866
  %3868 = load i64, ptr %3867, align 8, !tbaa !22
  br label %3869

3869:                                             ; preds = %3864, %3863
  %3870 = phi i64 [ 1, %3863 ], [ %3868, %3864 ]
  %3871 = sub i64 %3857, %3870
  %3872 = load i32, ptr %10, align 4, !tbaa !5
  %3873 = sext i32 %3872 to i64
  %3874 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3873
  %3875 = load i64, ptr %3874, align 8, !tbaa !22
  %3876 = load i32, ptr %10, align 4, !tbaa !5
  %3877 = sext i32 %3876 to i64
  %3878 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3877
  %3879 = load i64, ptr %3878, align 8, !tbaa !22
  %3880 = icmp ult i64 1, %3879
  br i1 %3880, label %3881, label %3882

3881:                                             ; preds = %3869
  br label %3887

3882:                                             ; preds = %3869
  %3883 = load i32, ptr %10, align 4, !tbaa !5
  %3884 = sext i32 %3883 to i64
  %3885 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3884
  %3886 = load i64, ptr %3885, align 8, !tbaa !22
  br label %3887

3887:                                             ; preds = %3882, %3881
  %3888 = phi i64 [ 1, %3881 ], [ %3886, %3882 ]
  %3889 = sub i64 %3875, %3888
  %3890 = lshr i64 %3889, 1
  %3891 = or i64 %3871, %3890
  %3892 = load i32, ptr %10, align 4, !tbaa !5
  %3893 = sext i32 %3892 to i64
  %3894 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3893
  %3895 = load i64, ptr %3894, align 8, !tbaa !22
  %3896 = load i32, ptr %10, align 4, !tbaa !5
  %3897 = sext i32 %3896 to i64
  %3898 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3897
  %3899 = load i64, ptr %3898, align 8, !tbaa !22
  %3900 = icmp ult i64 1, %3899
  br i1 %3900, label %3901, label %3902

3901:                                             ; preds = %3887
  br label %3907

3902:                                             ; preds = %3887
  %3903 = load i32, ptr %10, align 4, !tbaa !5
  %3904 = sext i32 %3903 to i64
  %3905 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3904
  %3906 = load i64, ptr %3905, align 8, !tbaa !22
  br label %3907

3907:                                             ; preds = %3902, %3901
  %3908 = phi i64 [ 1, %3901 ], [ %3906, %3902 ]
  %3909 = sub i64 %3895, %3908
  %3910 = load i32, ptr %10, align 4, !tbaa !5
  %3911 = sext i32 %3910 to i64
  %3912 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3911
  %3913 = load i64, ptr %3912, align 8, !tbaa !22
  %3914 = load i32, ptr %10, align 4, !tbaa !5
  %3915 = sext i32 %3914 to i64
  %3916 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3915
  %3917 = load i64, ptr %3916, align 8, !tbaa !22
  %3918 = icmp ult i64 1, %3917
  br i1 %3918, label %3919, label %3920

3919:                                             ; preds = %3907
  br label %3925

3920:                                             ; preds = %3907
  %3921 = load i32, ptr %10, align 4, !tbaa !5
  %3922 = sext i32 %3921 to i64
  %3923 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3922
  %3924 = load i64, ptr %3923, align 8, !tbaa !22
  br label %3925

3925:                                             ; preds = %3920, %3919
  %3926 = phi i64 [ 1, %3919 ], [ %3924, %3920 ]
  %3927 = sub i64 %3913, %3926
  %3928 = lshr i64 %3927, 1
  %3929 = or i64 %3909, %3928
  %3930 = lshr i64 %3929, 2
  %3931 = or i64 %3891, %3930
  %3932 = load i32, ptr %10, align 4, !tbaa !5
  %3933 = sext i32 %3932 to i64
  %3934 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3933
  %3935 = load i64, ptr %3934, align 8, !tbaa !22
  %3936 = load i32, ptr %10, align 4, !tbaa !5
  %3937 = sext i32 %3936 to i64
  %3938 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3937
  %3939 = load i64, ptr %3938, align 8, !tbaa !22
  %3940 = icmp ult i64 1, %3939
  br i1 %3940, label %3941, label %3942

3941:                                             ; preds = %3925
  br label %3947

3942:                                             ; preds = %3925
  %3943 = load i32, ptr %10, align 4, !tbaa !5
  %3944 = sext i32 %3943 to i64
  %3945 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3944
  %3946 = load i64, ptr %3945, align 8, !tbaa !22
  br label %3947

3947:                                             ; preds = %3942, %3941
  %3948 = phi i64 [ 1, %3941 ], [ %3946, %3942 ]
  %3949 = sub i64 %3935, %3948
  %3950 = load i32, ptr %10, align 4, !tbaa !5
  %3951 = sext i32 %3950 to i64
  %3952 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3951
  %3953 = load i64, ptr %3952, align 8, !tbaa !22
  %3954 = load i32, ptr %10, align 4, !tbaa !5
  %3955 = sext i32 %3954 to i64
  %3956 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3955
  %3957 = load i64, ptr %3956, align 8, !tbaa !22
  %3958 = icmp ult i64 1, %3957
  br i1 %3958, label %3959, label %3960

3959:                                             ; preds = %3947
  br label %3965

3960:                                             ; preds = %3947
  %3961 = load i32, ptr %10, align 4, !tbaa !5
  %3962 = sext i32 %3961 to i64
  %3963 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3962
  %3964 = load i64, ptr %3963, align 8, !tbaa !22
  br label %3965

3965:                                             ; preds = %3960, %3959
  %3966 = phi i64 [ 1, %3959 ], [ %3964, %3960 ]
  %3967 = sub i64 %3953, %3966
  %3968 = lshr i64 %3967, 1
  %3969 = or i64 %3949, %3968
  %3970 = load i32, ptr %10, align 4, !tbaa !5
  %3971 = sext i32 %3970 to i64
  %3972 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3971
  %3973 = load i64, ptr %3972, align 8, !tbaa !22
  %3974 = load i32, ptr %10, align 4, !tbaa !5
  %3975 = sext i32 %3974 to i64
  %3976 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3975
  %3977 = load i64, ptr %3976, align 8, !tbaa !22
  %3978 = icmp ult i64 1, %3977
  br i1 %3978, label %3979, label %3980

3979:                                             ; preds = %3965
  br label %3985

3980:                                             ; preds = %3965
  %3981 = load i32, ptr %10, align 4, !tbaa !5
  %3982 = sext i32 %3981 to i64
  %3983 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3982
  %3984 = load i64, ptr %3983, align 8, !tbaa !22
  br label %3985

3985:                                             ; preds = %3980, %3979
  %3986 = phi i64 [ 1, %3979 ], [ %3984, %3980 ]
  %3987 = sub i64 %3973, %3986
  %3988 = load i32, ptr %10, align 4, !tbaa !5
  %3989 = sext i32 %3988 to i64
  %3990 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3989
  %3991 = load i64, ptr %3990, align 8, !tbaa !22
  %3992 = load i32, ptr %10, align 4, !tbaa !5
  %3993 = sext i32 %3992 to i64
  %3994 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %3993
  %3995 = load i64, ptr %3994, align 8, !tbaa !22
  %3996 = icmp ult i64 1, %3995
  br i1 %3996, label %3997, label %3998

3997:                                             ; preds = %3985
  br label %4003

3998:                                             ; preds = %3985
  %3999 = load i32, ptr %10, align 4, !tbaa !5
  %4000 = sext i32 %3999 to i64
  %4001 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4000
  %4002 = load i64, ptr %4001, align 8, !tbaa !22
  br label %4003

4003:                                             ; preds = %3998, %3997
  %4004 = phi i64 [ 1, %3997 ], [ %4002, %3998 ]
  %4005 = sub i64 %3991, %4004
  %4006 = lshr i64 %4005, 1
  %4007 = or i64 %3987, %4006
  %4008 = lshr i64 %4007, 2
  %4009 = or i64 %3969, %4008
  %4010 = lshr i64 %4009, 4
  %4011 = or i64 %3931, %4010
  %4012 = lshr i64 %4011, 8
  %4013 = or i64 %3853, %4012
  %4014 = lshr i64 %4013, 16
  %4015 = or i64 %3695, %4014
  %4016 = load i32, ptr %10, align 4, !tbaa !5
  %4017 = sext i32 %4016 to i64
  %4018 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4017
  %4019 = load i64, ptr %4018, align 8, !tbaa !22
  %4020 = load i32, ptr %10, align 4, !tbaa !5
  %4021 = sext i32 %4020 to i64
  %4022 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4021
  %4023 = load i64, ptr %4022, align 8, !tbaa !22
  %4024 = icmp ult i64 1, %4023
  br i1 %4024, label %4025, label %4026

4025:                                             ; preds = %4003
  br label %4031

4026:                                             ; preds = %4003
  %4027 = load i32, ptr %10, align 4, !tbaa !5
  %4028 = sext i32 %4027 to i64
  %4029 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4028
  %4030 = load i64, ptr %4029, align 8, !tbaa !22
  br label %4031

4031:                                             ; preds = %4026, %4025
  %4032 = phi i64 [ 1, %4025 ], [ %4030, %4026 ]
  %4033 = sub i64 %4019, %4032
  %4034 = load i32, ptr %10, align 4, !tbaa !5
  %4035 = sext i32 %4034 to i64
  %4036 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4035
  %4037 = load i64, ptr %4036, align 8, !tbaa !22
  %4038 = load i32, ptr %10, align 4, !tbaa !5
  %4039 = sext i32 %4038 to i64
  %4040 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4039
  %4041 = load i64, ptr %4040, align 8, !tbaa !22
  %4042 = icmp ult i64 1, %4041
  br i1 %4042, label %4043, label %4044

4043:                                             ; preds = %4031
  br label %4049

4044:                                             ; preds = %4031
  %4045 = load i32, ptr %10, align 4, !tbaa !5
  %4046 = sext i32 %4045 to i64
  %4047 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4046
  %4048 = load i64, ptr %4047, align 8, !tbaa !22
  br label %4049

4049:                                             ; preds = %4044, %4043
  %4050 = phi i64 [ 1, %4043 ], [ %4048, %4044 ]
  %4051 = sub i64 %4037, %4050
  %4052 = lshr i64 %4051, 1
  %4053 = or i64 %4033, %4052
  %4054 = load i32, ptr %10, align 4, !tbaa !5
  %4055 = sext i32 %4054 to i64
  %4056 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4055
  %4057 = load i64, ptr %4056, align 8, !tbaa !22
  %4058 = load i32, ptr %10, align 4, !tbaa !5
  %4059 = sext i32 %4058 to i64
  %4060 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4059
  %4061 = load i64, ptr %4060, align 8, !tbaa !22
  %4062 = icmp ult i64 1, %4061
  br i1 %4062, label %4063, label %4064

4063:                                             ; preds = %4049
  br label %4069

4064:                                             ; preds = %4049
  %4065 = load i32, ptr %10, align 4, !tbaa !5
  %4066 = sext i32 %4065 to i64
  %4067 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4066
  %4068 = load i64, ptr %4067, align 8, !tbaa !22
  br label %4069

4069:                                             ; preds = %4064, %4063
  %4070 = phi i64 [ 1, %4063 ], [ %4068, %4064 ]
  %4071 = sub i64 %4057, %4070
  %4072 = load i32, ptr %10, align 4, !tbaa !5
  %4073 = sext i32 %4072 to i64
  %4074 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4073
  %4075 = load i64, ptr %4074, align 8, !tbaa !22
  %4076 = load i32, ptr %10, align 4, !tbaa !5
  %4077 = sext i32 %4076 to i64
  %4078 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4077
  %4079 = load i64, ptr %4078, align 8, !tbaa !22
  %4080 = icmp ult i64 1, %4079
  br i1 %4080, label %4081, label %4082

4081:                                             ; preds = %4069
  br label %4087

4082:                                             ; preds = %4069
  %4083 = load i32, ptr %10, align 4, !tbaa !5
  %4084 = sext i32 %4083 to i64
  %4085 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4084
  %4086 = load i64, ptr %4085, align 8, !tbaa !22
  br label %4087

4087:                                             ; preds = %4082, %4081
  %4088 = phi i64 [ 1, %4081 ], [ %4086, %4082 ]
  %4089 = sub i64 %4075, %4088
  %4090 = lshr i64 %4089, 1
  %4091 = or i64 %4071, %4090
  %4092 = lshr i64 %4091, 2
  %4093 = or i64 %4053, %4092
  %4094 = load i32, ptr %10, align 4, !tbaa !5
  %4095 = sext i32 %4094 to i64
  %4096 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4095
  %4097 = load i64, ptr %4096, align 8, !tbaa !22
  %4098 = load i32, ptr %10, align 4, !tbaa !5
  %4099 = sext i32 %4098 to i64
  %4100 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4099
  %4101 = load i64, ptr %4100, align 8, !tbaa !22
  %4102 = icmp ult i64 1, %4101
  br i1 %4102, label %4103, label %4104

4103:                                             ; preds = %4087
  br label %4109

4104:                                             ; preds = %4087
  %4105 = load i32, ptr %10, align 4, !tbaa !5
  %4106 = sext i32 %4105 to i64
  %4107 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4106
  %4108 = load i64, ptr %4107, align 8, !tbaa !22
  br label %4109

4109:                                             ; preds = %4104, %4103
  %4110 = phi i64 [ 1, %4103 ], [ %4108, %4104 ]
  %4111 = sub i64 %4097, %4110
  %4112 = load i32, ptr %10, align 4, !tbaa !5
  %4113 = sext i32 %4112 to i64
  %4114 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4113
  %4115 = load i64, ptr %4114, align 8, !tbaa !22
  %4116 = load i32, ptr %10, align 4, !tbaa !5
  %4117 = sext i32 %4116 to i64
  %4118 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4117
  %4119 = load i64, ptr %4118, align 8, !tbaa !22
  %4120 = icmp ult i64 1, %4119
  br i1 %4120, label %4121, label %4122

4121:                                             ; preds = %4109
  br label %4127

4122:                                             ; preds = %4109
  %4123 = load i32, ptr %10, align 4, !tbaa !5
  %4124 = sext i32 %4123 to i64
  %4125 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4124
  %4126 = load i64, ptr %4125, align 8, !tbaa !22
  br label %4127

4127:                                             ; preds = %4122, %4121
  %4128 = phi i64 [ 1, %4121 ], [ %4126, %4122 ]
  %4129 = sub i64 %4115, %4128
  %4130 = lshr i64 %4129, 1
  %4131 = or i64 %4111, %4130
  %4132 = load i32, ptr %10, align 4, !tbaa !5
  %4133 = sext i32 %4132 to i64
  %4134 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4133
  %4135 = load i64, ptr %4134, align 8, !tbaa !22
  %4136 = load i32, ptr %10, align 4, !tbaa !5
  %4137 = sext i32 %4136 to i64
  %4138 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4137
  %4139 = load i64, ptr %4138, align 8, !tbaa !22
  %4140 = icmp ult i64 1, %4139
  br i1 %4140, label %4141, label %4142

4141:                                             ; preds = %4127
  br label %4147

4142:                                             ; preds = %4127
  %4143 = load i32, ptr %10, align 4, !tbaa !5
  %4144 = sext i32 %4143 to i64
  %4145 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4144
  %4146 = load i64, ptr %4145, align 8, !tbaa !22
  br label %4147

4147:                                             ; preds = %4142, %4141
  %4148 = phi i64 [ 1, %4141 ], [ %4146, %4142 ]
  %4149 = sub i64 %4135, %4148
  %4150 = load i32, ptr %10, align 4, !tbaa !5
  %4151 = sext i32 %4150 to i64
  %4152 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4151
  %4153 = load i64, ptr %4152, align 8, !tbaa !22
  %4154 = load i32, ptr %10, align 4, !tbaa !5
  %4155 = sext i32 %4154 to i64
  %4156 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4155
  %4157 = load i64, ptr %4156, align 8, !tbaa !22
  %4158 = icmp ult i64 1, %4157
  br i1 %4158, label %4159, label %4160

4159:                                             ; preds = %4147
  br label %4165

4160:                                             ; preds = %4147
  %4161 = load i32, ptr %10, align 4, !tbaa !5
  %4162 = sext i32 %4161 to i64
  %4163 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4162
  %4164 = load i64, ptr %4163, align 8, !tbaa !22
  br label %4165

4165:                                             ; preds = %4160, %4159
  %4166 = phi i64 [ 1, %4159 ], [ %4164, %4160 ]
  %4167 = sub i64 %4153, %4166
  %4168 = lshr i64 %4167, 1
  %4169 = or i64 %4149, %4168
  %4170 = lshr i64 %4169, 2
  %4171 = or i64 %4131, %4170
  %4172 = lshr i64 %4171, 4
  %4173 = or i64 %4093, %4172
  %4174 = load i32, ptr %10, align 4, !tbaa !5
  %4175 = sext i32 %4174 to i64
  %4176 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4175
  %4177 = load i64, ptr %4176, align 8, !tbaa !22
  %4178 = load i32, ptr %10, align 4, !tbaa !5
  %4179 = sext i32 %4178 to i64
  %4180 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4179
  %4181 = load i64, ptr %4180, align 8, !tbaa !22
  %4182 = icmp ult i64 1, %4181
  br i1 %4182, label %4183, label %4184

4183:                                             ; preds = %4165
  br label %4189

4184:                                             ; preds = %4165
  %4185 = load i32, ptr %10, align 4, !tbaa !5
  %4186 = sext i32 %4185 to i64
  %4187 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4186
  %4188 = load i64, ptr %4187, align 8, !tbaa !22
  br label %4189

4189:                                             ; preds = %4184, %4183
  %4190 = phi i64 [ 1, %4183 ], [ %4188, %4184 ]
  %4191 = sub i64 %4177, %4190
  %4192 = load i32, ptr %10, align 4, !tbaa !5
  %4193 = sext i32 %4192 to i64
  %4194 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4193
  %4195 = load i64, ptr %4194, align 8, !tbaa !22
  %4196 = load i32, ptr %10, align 4, !tbaa !5
  %4197 = sext i32 %4196 to i64
  %4198 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4197
  %4199 = load i64, ptr %4198, align 8, !tbaa !22
  %4200 = icmp ult i64 1, %4199
  br i1 %4200, label %4201, label %4202

4201:                                             ; preds = %4189
  br label %4207

4202:                                             ; preds = %4189
  %4203 = load i32, ptr %10, align 4, !tbaa !5
  %4204 = sext i32 %4203 to i64
  %4205 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4204
  %4206 = load i64, ptr %4205, align 8, !tbaa !22
  br label %4207

4207:                                             ; preds = %4202, %4201
  %4208 = phi i64 [ 1, %4201 ], [ %4206, %4202 ]
  %4209 = sub i64 %4195, %4208
  %4210 = lshr i64 %4209, 1
  %4211 = or i64 %4191, %4210
  %4212 = load i32, ptr %10, align 4, !tbaa !5
  %4213 = sext i32 %4212 to i64
  %4214 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4213
  %4215 = load i64, ptr %4214, align 8, !tbaa !22
  %4216 = load i32, ptr %10, align 4, !tbaa !5
  %4217 = sext i32 %4216 to i64
  %4218 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4217
  %4219 = load i64, ptr %4218, align 8, !tbaa !22
  %4220 = icmp ult i64 1, %4219
  br i1 %4220, label %4221, label %4222

4221:                                             ; preds = %4207
  br label %4227

4222:                                             ; preds = %4207
  %4223 = load i32, ptr %10, align 4, !tbaa !5
  %4224 = sext i32 %4223 to i64
  %4225 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4224
  %4226 = load i64, ptr %4225, align 8, !tbaa !22
  br label %4227

4227:                                             ; preds = %4222, %4221
  %4228 = phi i64 [ 1, %4221 ], [ %4226, %4222 ]
  %4229 = sub i64 %4215, %4228
  %4230 = load i32, ptr %10, align 4, !tbaa !5
  %4231 = sext i32 %4230 to i64
  %4232 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4231
  %4233 = load i64, ptr %4232, align 8, !tbaa !22
  %4234 = load i32, ptr %10, align 4, !tbaa !5
  %4235 = sext i32 %4234 to i64
  %4236 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4235
  %4237 = load i64, ptr %4236, align 8, !tbaa !22
  %4238 = icmp ult i64 1, %4237
  br i1 %4238, label %4239, label %4240

4239:                                             ; preds = %4227
  br label %4245

4240:                                             ; preds = %4227
  %4241 = load i32, ptr %10, align 4, !tbaa !5
  %4242 = sext i32 %4241 to i64
  %4243 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4242
  %4244 = load i64, ptr %4243, align 8, !tbaa !22
  br label %4245

4245:                                             ; preds = %4240, %4239
  %4246 = phi i64 [ 1, %4239 ], [ %4244, %4240 ]
  %4247 = sub i64 %4233, %4246
  %4248 = lshr i64 %4247, 1
  %4249 = or i64 %4229, %4248
  %4250 = lshr i64 %4249, 2
  %4251 = or i64 %4211, %4250
  %4252 = load i32, ptr %10, align 4, !tbaa !5
  %4253 = sext i32 %4252 to i64
  %4254 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4253
  %4255 = load i64, ptr %4254, align 8, !tbaa !22
  %4256 = load i32, ptr %10, align 4, !tbaa !5
  %4257 = sext i32 %4256 to i64
  %4258 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4257
  %4259 = load i64, ptr %4258, align 8, !tbaa !22
  %4260 = icmp ult i64 1, %4259
  br i1 %4260, label %4261, label %4262

4261:                                             ; preds = %4245
  br label %4267

4262:                                             ; preds = %4245
  %4263 = load i32, ptr %10, align 4, !tbaa !5
  %4264 = sext i32 %4263 to i64
  %4265 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4264
  %4266 = load i64, ptr %4265, align 8, !tbaa !22
  br label %4267

4267:                                             ; preds = %4262, %4261
  %4268 = phi i64 [ 1, %4261 ], [ %4266, %4262 ]
  %4269 = sub i64 %4255, %4268
  %4270 = load i32, ptr %10, align 4, !tbaa !5
  %4271 = sext i32 %4270 to i64
  %4272 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4271
  %4273 = load i64, ptr %4272, align 8, !tbaa !22
  %4274 = load i32, ptr %10, align 4, !tbaa !5
  %4275 = sext i32 %4274 to i64
  %4276 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4275
  %4277 = load i64, ptr %4276, align 8, !tbaa !22
  %4278 = icmp ult i64 1, %4277
  br i1 %4278, label %4279, label %4280

4279:                                             ; preds = %4267
  br label %4285

4280:                                             ; preds = %4267
  %4281 = load i32, ptr %10, align 4, !tbaa !5
  %4282 = sext i32 %4281 to i64
  %4283 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4282
  %4284 = load i64, ptr %4283, align 8, !tbaa !22
  br label %4285

4285:                                             ; preds = %4280, %4279
  %4286 = phi i64 [ 1, %4279 ], [ %4284, %4280 ]
  %4287 = sub i64 %4273, %4286
  %4288 = lshr i64 %4287, 1
  %4289 = or i64 %4269, %4288
  %4290 = load i32, ptr %10, align 4, !tbaa !5
  %4291 = sext i32 %4290 to i64
  %4292 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4291
  %4293 = load i64, ptr %4292, align 8, !tbaa !22
  %4294 = load i32, ptr %10, align 4, !tbaa !5
  %4295 = sext i32 %4294 to i64
  %4296 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4295
  %4297 = load i64, ptr %4296, align 8, !tbaa !22
  %4298 = icmp ult i64 1, %4297
  br i1 %4298, label %4299, label %4300

4299:                                             ; preds = %4285
  br label %4305

4300:                                             ; preds = %4285
  %4301 = load i32, ptr %10, align 4, !tbaa !5
  %4302 = sext i32 %4301 to i64
  %4303 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4302
  %4304 = load i64, ptr %4303, align 8, !tbaa !22
  br label %4305

4305:                                             ; preds = %4300, %4299
  %4306 = phi i64 [ 1, %4299 ], [ %4304, %4300 ]
  %4307 = sub i64 %4293, %4306
  %4308 = load i32, ptr %10, align 4, !tbaa !5
  %4309 = sext i32 %4308 to i64
  %4310 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4309
  %4311 = load i64, ptr %4310, align 8, !tbaa !22
  %4312 = load i32, ptr %10, align 4, !tbaa !5
  %4313 = sext i32 %4312 to i64
  %4314 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4313
  %4315 = load i64, ptr %4314, align 8, !tbaa !22
  %4316 = icmp ult i64 1, %4315
  br i1 %4316, label %4317, label %4318

4317:                                             ; preds = %4305
  br label %4323

4318:                                             ; preds = %4305
  %4319 = load i32, ptr %10, align 4, !tbaa !5
  %4320 = sext i32 %4319 to i64
  %4321 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4320
  %4322 = load i64, ptr %4321, align 8, !tbaa !22
  br label %4323

4323:                                             ; preds = %4318, %4317
  %4324 = phi i64 [ 1, %4317 ], [ %4322, %4318 ]
  %4325 = sub i64 %4311, %4324
  %4326 = lshr i64 %4325, 1
  %4327 = or i64 %4307, %4326
  %4328 = lshr i64 %4327, 2
  %4329 = or i64 %4289, %4328
  %4330 = lshr i64 %4329, 4
  %4331 = or i64 %4251, %4330
  %4332 = lshr i64 %4331, 8
  %4333 = or i64 %4173, %4332
  %4334 = load i32, ptr %10, align 4, !tbaa !5
  %4335 = sext i32 %4334 to i64
  %4336 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4335
  %4337 = load i64, ptr %4336, align 8, !tbaa !22
  %4338 = load i32, ptr %10, align 4, !tbaa !5
  %4339 = sext i32 %4338 to i64
  %4340 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4339
  %4341 = load i64, ptr %4340, align 8, !tbaa !22
  %4342 = icmp ult i64 1, %4341
  br i1 %4342, label %4343, label %4344

4343:                                             ; preds = %4323
  br label %4349

4344:                                             ; preds = %4323
  %4345 = load i32, ptr %10, align 4, !tbaa !5
  %4346 = sext i32 %4345 to i64
  %4347 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4346
  %4348 = load i64, ptr %4347, align 8, !tbaa !22
  br label %4349

4349:                                             ; preds = %4344, %4343
  %4350 = phi i64 [ 1, %4343 ], [ %4348, %4344 ]
  %4351 = sub i64 %4337, %4350
  %4352 = load i32, ptr %10, align 4, !tbaa !5
  %4353 = sext i32 %4352 to i64
  %4354 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4353
  %4355 = load i64, ptr %4354, align 8, !tbaa !22
  %4356 = load i32, ptr %10, align 4, !tbaa !5
  %4357 = sext i32 %4356 to i64
  %4358 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4357
  %4359 = load i64, ptr %4358, align 8, !tbaa !22
  %4360 = icmp ult i64 1, %4359
  br i1 %4360, label %4361, label %4362

4361:                                             ; preds = %4349
  br label %4367

4362:                                             ; preds = %4349
  %4363 = load i32, ptr %10, align 4, !tbaa !5
  %4364 = sext i32 %4363 to i64
  %4365 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4364
  %4366 = load i64, ptr %4365, align 8, !tbaa !22
  br label %4367

4367:                                             ; preds = %4362, %4361
  %4368 = phi i64 [ 1, %4361 ], [ %4366, %4362 ]
  %4369 = sub i64 %4355, %4368
  %4370 = lshr i64 %4369, 1
  %4371 = or i64 %4351, %4370
  %4372 = load i32, ptr %10, align 4, !tbaa !5
  %4373 = sext i32 %4372 to i64
  %4374 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4373
  %4375 = load i64, ptr %4374, align 8, !tbaa !22
  %4376 = load i32, ptr %10, align 4, !tbaa !5
  %4377 = sext i32 %4376 to i64
  %4378 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4377
  %4379 = load i64, ptr %4378, align 8, !tbaa !22
  %4380 = icmp ult i64 1, %4379
  br i1 %4380, label %4381, label %4382

4381:                                             ; preds = %4367
  br label %4387

4382:                                             ; preds = %4367
  %4383 = load i32, ptr %10, align 4, !tbaa !5
  %4384 = sext i32 %4383 to i64
  %4385 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4384
  %4386 = load i64, ptr %4385, align 8, !tbaa !22
  br label %4387

4387:                                             ; preds = %4382, %4381
  %4388 = phi i64 [ 1, %4381 ], [ %4386, %4382 ]
  %4389 = sub i64 %4375, %4388
  %4390 = load i32, ptr %10, align 4, !tbaa !5
  %4391 = sext i32 %4390 to i64
  %4392 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4391
  %4393 = load i64, ptr %4392, align 8, !tbaa !22
  %4394 = load i32, ptr %10, align 4, !tbaa !5
  %4395 = sext i32 %4394 to i64
  %4396 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4395
  %4397 = load i64, ptr %4396, align 8, !tbaa !22
  %4398 = icmp ult i64 1, %4397
  br i1 %4398, label %4399, label %4400

4399:                                             ; preds = %4387
  br label %4405

4400:                                             ; preds = %4387
  %4401 = load i32, ptr %10, align 4, !tbaa !5
  %4402 = sext i32 %4401 to i64
  %4403 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4402
  %4404 = load i64, ptr %4403, align 8, !tbaa !22
  br label %4405

4405:                                             ; preds = %4400, %4399
  %4406 = phi i64 [ 1, %4399 ], [ %4404, %4400 ]
  %4407 = sub i64 %4393, %4406
  %4408 = lshr i64 %4407, 1
  %4409 = or i64 %4389, %4408
  %4410 = lshr i64 %4409, 2
  %4411 = or i64 %4371, %4410
  %4412 = load i32, ptr %10, align 4, !tbaa !5
  %4413 = sext i32 %4412 to i64
  %4414 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4413
  %4415 = load i64, ptr %4414, align 8, !tbaa !22
  %4416 = load i32, ptr %10, align 4, !tbaa !5
  %4417 = sext i32 %4416 to i64
  %4418 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4417
  %4419 = load i64, ptr %4418, align 8, !tbaa !22
  %4420 = icmp ult i64 1, %4419
  br i1 %4420, label %4421, label %4422

4421:                                             ; preds = %4405
  br label %4427

4422:                                             ; preds = %4405
  %4423 = load i32, ptr %10, align 4, !tbaa !5
  %4424 = sext i32 %4423 to i64
  %4425 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4424
  %4426 = load i64, ptr %4425, align 8, !tbaa !22
  br label %4427

4427:                                             ; preds = %4422, %4421
  %4428 = phi i64 [ 1, %4421 ], [ %4426, %4422 ]
  %4429 = sub i64 %4415, %4428
  %4430 = load i32, ptr %10, align 4, !tbaa !5
  %4431 = sext i32 %4430 to i64
  %4432 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4431
  %4433 = load i64, ptr %4432, align 8, !tbaa !22
  %4434 = load i32, ptr %10, align 4, !tbaa !5
  %4435 = sext i32 %4434 to i64
  %4436 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4435
  %4437 = load i64, ptr %4436, align 8, !tbaa !22
  %4438 = icmp ult i64 1, %4437
  br i1 %4438, label %4439, label %4440

4439:                                             ; preds = %4427
  br label %4445

4440:                                             ; preds = %4427
  %4441 = load i32, ptr %10, align 4, !tbaa !5
  %4442 = sext i32 %4441 to i64
  %4443 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4442
  %4444 = load i64, ptr %4443, align 8, !tbaa !22
  br label %4445

4445:                                             ; preds = %4440, %4439
  %4446 = phi i64 [ 1, %4439 ], [ %4444, %4440 ]
  %4447 = sub i64 %4433, %4446
  %4448 = lshr i64 %4447, 1
  %4449 = or i64 %4429, %4448
  %4450 = load i32, ptr %10, align 4, !tbaa !5
  %4451 = sext i32 %4450 to i64
  %4452 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4451
  %4453 = load i64, ptr %4452, align 8, !tbaa !22
  %4454 = load i32, ptr %10, align 4, !tbaa !5
  %4455 = sext i32 %4454 to i64
  %4456 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4455
  %4457 = load i64, ptr %4456, align 8, !tbaa !22
  %4458 = icmp ult i64 1, %4457
  br i1 %4458, label %4459, label %4460

4459:                                             ; preds = %4445
  br label %4465

4460:                                             ; preds = %4445
  %4461 = load i32, ptr %10, align 4, !tbaa !5
  %4462 = sext i32 %4461 to i64
  %4463 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4462
  %4464 = load i64, ptr %4463, align 8, !tbaa !22
  br label %4465

4465:                                             ; preds = %4460, %4459
  %4466 = phi i64 [ 1, %4459 ], [ %4464, %4460 ]
  %4467 = sub i64 %4453, %4466
  %4468 = load i32, ptr %10, align 4, !tbaa !5
  %4469 = sext i32 %4468 to i64
  %4470 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4469
  %4471 = load i64, ptr %4470, align 8, !tbaa !22
  %4472 = load i32, ptr %10, align 4, !tbaa !5
  %4473 = sext i32 %4472 to i64
  %4474 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4473
  %4475 = load i64, ptr %4474, align 8, !tbaa !22
  %4476 = icmp ult i64 1, %4475
  br i1 %4476, label %4477, label %4478

4477:                                             ; preds = %4465
  br label %4483

4478:                                             ; preds = %4465
  %4479 = load i32, ptr %10, align 4, !tbaa !5
  %4480 = sext i32 %4479 to i64
  %4481 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4480
  %4482 = load i64, ptr %4481, align 8, !tbaa !22
  br label %4483

4483:                                             ; preds = %4478, %4477
  %4484 = phi i64 [ 1, %4477 ], [ %4482, %4478 ]
  %4485 = sub i64 %4471, %4484
  %4486 = lshr i64 %4485, 1
  %4487 = or i64 %4467, %4486
  %4488 = lshr i64 %4487, 2
  %4489 = or i64 %4449, %4488
  %4490 = lshr i64 %4489, 4
  %4491 = or i64 %4411, %4490
  %4492 = load i32, ptr %10, align 4, !tbaa !5
  %4493 = sext i32 %4492 to i64
  %4494 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4493
  %4495 = load i64, ptr %4494, align 8, !tbaa !22
  %4496 = load i32, ptr %10, align 4, !tbaa !5
  %4497 = sext i32 %4496 to i64
  %4498 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4497
  %4499 = load i64, ptr %4498, align 8, !tbaa !22
  %4500 = icmp ult i64 1, %4499
  br i1 %4500, label %4501, label %4502

4501:                                             ; preds = %4483
  br label %4507

4502:                                             ; preds = %4483
  %4503 = load i32, ptr %10, align 4, !tbaa !5
  %4504 = sext i32 %4503 to i64
  %4505 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4504
  %4506 = load i64, ptr %4505, align 8, !tbaa !22
  br label %4507

4507:                                             ; preds = %4502, %4501
  %4508 = phi i64 [ 1, %4501 ], [ %4506, %4502 ]
  %4509 = sub i64 %4495, %4508
  %4510 = load i32, ptr %10, align 4, !tbaa !5
  %4511 = sext i32 %4510 to i64
  %4512 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4511
  %4513 = load i64, ptr %4512, align 8, !tbaa !22
  %4514 = load i32, ptr %10, align 4, !tbaa !5
  %4515 = sext i32 %4514 to i64
  %4516 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4515
  %4517 = load i64, ptr %4516, align 8, !tbaa !22
  %4518 = icmp ult i64 1, %4517
  br i1 %4518, label %4519, label %4520

4519:                                             ; preds = %4507
  br label %4525

4520:                                             ; preds = %4507
  %4521 = load i32, ptr %10, align 4, !tbaa !5
  %4522 = sext i32 %4521 to i64
  %4523 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4522
  %4524 = load i64, ptr %4523, align 8, !tbaa !22
  br label %4525

4525:                                             ; preds = %4520, %4519
  %4526 = phi i64 [ 1, %4519 ], [ %4524, %4520 ]
  %4527 = sub i64 %4513, %4526
  %4528 = lshr i64 %4527, 1
  %4529 = or i64 %4509, %4528
  %4530 = load i32, ptr %10, align 4, !tbaa !5
  %4531 = sext i32 %4530 to i64
  %4532 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4531
  %4533 = load i64, ptr %4532, align 8, !tbaa !22
  %4534 = load i32, ptr %10, align 4, !tbaa !5
  %4535 = sext i32 %4534 to i64
  %4536 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4535
  %4537 = load i64, ptr %4536, align 8, !tbaa !22
  %4538 = icmp ult i64 1, %4537
  br i1 %4538, label %4539, label %4540

4539:                                             ; preds = %4525
  br label %4545

4540:                                             ; preds = %4525
  %4541 = load i32, ptr %10, align 4, !tbaa !5
  %4542 = sext i32 %4541 to i64
  %4543 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4542
  %4544 = load i64, ptr %4543, align 8, !tbaa !22
  br label %4545

4545:                                             ; preds = %4540, %4539
  %4546 = phi i64 [ 1, %4539 ], [ %4544, %4540 ]
  %4547 = sub i64 %4533, %4546
  %4548 = load i32, ptr %10, align 4, !tbaa !5
  %4549 = sext i32 %4548 to i64
  %4550 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4549
  %4551 = load i64, ptr %4550, align 8, !tbaa !22
  %4552 = load i32, ptr %10, align 4, !tbaa !5
  %4553 = sext i32 %4552 to i64
  %4554 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4553
  %4555 = load i64, ptr %4554, align 8, !tbaa !22
  %4556 = icmp ult i64 1, %4555
  br i1 %4556, label %4557, label %4558

4557:                                             ; preds = %4545
  br label %4563

4558:                                             ; preds = %4545
  %4559 = load i32, ptr %10, align 4, !tbaa !5
  %4560 = sext i32 %4559 to i64
  %4561 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4560
  %4562 = load i64, ptr %4561, align 8, !tbaa !22
  br label %4563

4563:                                             ; preds = %4558, %4557
  %4564 = phi i64 [ 1, %4557 ], [ %4562, %4558 ]
  %4565 = sub i64 %4551, %4564
  %4566 = lshr i64 %4565, 1
  %4567 = or i64 %4547, %4566
  %4568 = lshr i64 %4567, 2
  %4569 = or i64 %4529, %4568
  %4570 = load i32, ptr %10, align 4, !tbaa !5
  %4571 = sext i32 %4570 to i64
  %4572 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4571
  %4573 = load i64, ptr %4572, align 8, !tbaa !22
  %4574 = load i32, ptr %10, align 4, !tbaa !5
  %4575 = sext i32 %4574 to i64
  %4576 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4575
  %4577 = load i64, ptr %4576, align 8, !tbaa !22
  %4578 = icmp ult i64 1, %4577
  br i1 %4578, label %4579, label %4580

4579:                                             ; preds = %4563
  br label %4585

4580:                                             ; preds = %4563
  %4581 = load i32, ptr %10, align 4, !tbaa !5
  %4582 = sext i32 %4581 to i64
  %4583 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4582
  %4584 = load i64, ptr %4583, align 8, !tbaa !22
  br label %4585

4585:                                             ; preds = %4580, %4579
  %4586 = phi i64 [ 1, %4579 ], [ %4584, %4580 ]
  %4587 = sub i64 %4573, %4586
  %4588 = load i32, ptr %10, align 4, !tbaa !5
  %4589 = sext i32 %4588 to i64
  %4590 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4589
  %4591 = load i64, ptr %4590, align 8, !tbaa !22
  %4592 = load i32, ptr %10, align 4, !tbaa !5
  %4593 = sext i32 %4592 to i64
  %4594 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4593
  %4595 = load i64, ptr %4594, align 8, !tbaa !22
  %4596 = icmp ult i64 1, %4595
  br i1 %4596, label %4597, label %4598

4597:                                             ; preds = %4585
  br label %4603

4598:                                             ; preds = %4585
  %4599 = load i32, ptr %10, align 4, !tbaa !5
  %4600 = sext i32 %4599 to i64
  %4601 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4600
  %4602 = load i64, ptr %4601, align 8, !tbaa !22
  br label %4603

4603:                                             ; preds = %4598, %4597
  %4604 = phi i64 [ 1, %4597 ], [ %4602, %4598 ]
  %4605 = sub i64 %4591, %4604
  %4606 = lshr i64 %4605, 1
  %4607 = or i64 %4587, %4606
  %4608 = load i32, ptr %10, align 4, !tbaa !5
  %4609 = sext i32 %4608 to i64
  %4610 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4609
  %4611 = load i64, ptr %4610, align 8, !tbaa !22
  %4612 = load i32, ptr %10, align 4, !tbaa !5
  %4613 = sext i32 %4612 to i64
  %4614 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4613
  %4615 = load i64, ptr %4614, align 8, !tbaa !22
  %4616 = icmp ult i64 1, %4615
  br i1 %4616, label %4617, label %4618

4617:                                             ; preds = %4603
  br label %4623

4618:                                             ; preds = %4603
  %4619 = load i32, ptr %10, align 4, !tbaa !5
  %4620 = sext i32 %4619 to i64
  %4621 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4620
  %4622 = load i64, ptr %4621, align 8, !tbaa !22
  br label %4623

4623:                                             ; preds = %4618, %4617
  %4624 = phi i64 [ 1, %4617 ], [ %4622, %4618 ]
  %4625 = sub i64 %4611, %4624
  %4626 = load i32, ptr %10, align 4, !tbaa !5
  %4627 = sext i32 %4626 to i64
  %4628 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4627
  %4629 = load i64, ptr %4628, align 8, !tbaa !22
  %4630 = load i32, ptr %10, align 4, !tbaa !5
  %4631 = sext i32 %4630 to i64
  %4632 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4631
  %4633 = load i64, ptr %4632, align 8, !tbaa !22
  %4634 = icmp ult i64 1, %4633
  br i1 %4634, label %4635, label %4636

4635:                                             ; preds = %4623
  br label %4641

4636:                                             ; preds = %4623
  %4637 = load i32, ptr %10, align 4, !tbaa !5
  %4638 = sext i32 %4637 to i64
  %4639 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4638
  %4640 = load i64, ptr %4639, align 8, !tbaa !22
  br label %4641

4641:                                             ; preds = %4636, %4635
  %4642 = phi i64 [ 1, %4635 ], [ %4640, %4636 ]
  %4643 = sub i64 %4629, %4642
  %4644 = lshr i64 %4643, 1
  %4645 = or i64 %4625, %4644
  %4646 = lshr i64 %4645, 2
  %4647 = or i64 %4607, %4646
  %4648 = lshr i64 %4647, 4
  %4649 = or i64 %4569, %4648
  %4650 = lshr i64 %4649, 8
  %4651 = or i64 %4491, %4650
  %4652 = lshr i64 %4651, 16
  %4653 = or i64 %4333, %4652
  %4654 = lshr i64 %4653, 32
  %4655 = or i64 %4015, %4654
  %4656 = load i32, ptr %10, align 4, !tbaa !5
  %4657 = sext i32 %4656 to i64
  %4658 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4657
  %4659 = load i64, ptr %4658, align 8, !tbaa !22
  %4660 = icmp ult i64 1, %4659
  br i1 %4660, label %4661, label %4662

4661:                                             ; preds = %4641
  br label %4667

4662:                                             ; preds = %4641
  %4663 = load i32, ptr %10, align 4, !tbaa !5
  %4664 = sext i32 %4663 to i64
  %4665 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4664
  %4666 = load i64, ptr %4665, align 8, !tbaa !22
  br label %4667

4667:                                             ; preds = %4662, %4661
  %4668 = phi i64 [ 1, %4661 ], [ %4666, %4662 ]
  %4669 = add i64 %4655, %4668
  %4670 = icmp eq i64 %3377, %4669
  br label %4671

4671:                                             ; preds = %4667, %3365
  %4672 = phi i1 [ false, %3365 ], [ %4670, %4667 ]
  %4673 = zext i1 %4672 to i32
  %4674 = icmp ne i32 %3367, %4673
  br i1 %4674, label %4675, label %4676

4675:                                             ; preds = %4671
  call void @exit(i32 noundef 1) #10
  unreachable

4676:                                             ; preds = %4671
  %4677 = load i32, ptr %10, align 4, !tbaa !5
  %4678 = sext i32 %4677 to i64
  %4679 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4678
  %4680 = load i64, ptr %4679, align 8, !tbaa !22
  %4681 = icmp ne i64 0, %4680
  br i1 %4681, label %4682, label %4695

4682:                                             ; preds = %4676
  %4683 = load i32, ptr %10, align 4, !tbaa !5
  %4684 = sext i32 %4683 to i64
  %4685 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4684
  %4686 = load i64, ptr %4685, align 8, !tbaa !22
  %4687 = load i32, ptr %10, align 4, !tbaa !5
  %4688 = sext i32 %4687 to i64
  %4689 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4688
  %4690 = load i64, ptr %4689, align 8, !tbaa !22
  %4691 = sub i64 %4690, 1
  %4692 = and i64 %4686, %4691
  %4693 = icmp ne i64 %4692, 0
  %4694 = xor i1 %4693, true
  br label %4695

4695:                                             ; preds = %4682, %4676
  %4696 = phi i1 [ false, %4676 ], [ %4694, %4682 ]
  %4697 = zext i1 %4696 to i32
  %4698 = load i32, ptr %10, align 4, !tbaa !5
  %4699 = sext i32 %4698 to i64
  %4700 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4699
  %4701 = load i64, ptr %4700, align 8, !tbaa !22
  %4702 = icmp ne i64 0, %4701
  br i1 %4702, label %4703, label %5169

4703:                                             ; preds = %4695
  %4704 = load i32, ptr %10, align 4, !tbaa !5
  %4705 = sext i32 %4704 to i64
  %4706 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4705
  %4707 = load i64, ptr %4706, align 8, !tbaa !22
  %4708 = load i32, ptr %10, align 4, !tbaa !5
  %4709 = sext i32 %4708 to i64
  %4710 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4709
  %4711 = load i64, ptr %4710, align 8, !tbaa !22
  %4712 = lshr i64 %4711, 1
  %4713 = load i32, ptr %10, align 4, !tbaa !5
  %4714 = sext i32 %4713 to i64
  %4715 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4714
  %4716 = load i64, ptr %4715, align 8, !tbaa !22
  %4717 = lshr i64 %4716, 1
  %4718 = lshr i64 %4717, 1
  %4719 = or i64 %4712, %4718
  %4720 = load i32, ptr %10, align 4, !tbaa !5
  %4721 = sext i32 %4720 to i64
  %4722 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4721
  %4723 = load i64, ptr %4722, align 8, !tbaa !22
  %4724 = lshr i64 %4723, 1
  %4725 = load i32, ptr %10, align 4, !tbaa !5
  %4726 = sext i32 %4725 to i64
  %4727 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4726
  %4728 = load i64, ptr %4727, align 8, !tbaa !22
  %4729 = lshr i64 %4728, 1
  %4730 = lshr i64 %4729, 1
  %4731 = or i64 %4724, %4730
  %4732 = lshr i64 %4731, 2
  %4733 = or i64 %4719, %4732
  %4734 = load i32, ptr %10, align 4, !tbaa !5
  %4735 = sext i32 %4734 to i64
  %4736 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4735
  %4737 = load i64, ptr %4736, align 8, !tbaa !22
  %4738 = lshr i64 %4737, 1
  %4739 = load i32, ptr %10, align 4, !tbaa !5
  %4740 = sext i32 %4739 to i64
  %4741 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4740
  %4742 = load i64, ptr %4741, align 8, !tbaa !22
  %4743 = lshr i64 %4742, 1
  %4744 = lshr i64 %4743, 1
  %4745 = or i64 %4738, %4744
  %4746 = load i32, ptr %10, align 4, !tbaa !5
  %4747 = sext i32 %4746 to i64
  %4748 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4747
  %4749 = load i64, ptr %4748, align 8, !tbaa !22
  %4750 = lshr i64 %4749, 1
  %4751 = load i32, ptr %10, align 4, !tbaa !5
  %4752 = sext i32 %4751 to i64
  %4753 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4752
  %4754 = load i64, ptr %4753, align 8, !tbaa !22
  %4755 = lshr i64 %4754, 1
  %4756 = lshr i64 %4755, 1
  %4757 = or i64 %4750, %4756
  %4758 = lshr i64 %4757, 2
  %4759 = or i64 %4745, %4758
  %4760 = lshr i64 %4759, 4
  %4761 = or i64 %4733, %4760
  %4762 = load i32, ptr %10, align 4, !tbaa !5
  %4763 = sext i32 %4762 to i64
  %4764 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4763
  %4765 = load i64, ptr %4764, align 8, !tbaa !22
  %4766 = lshr i64 %4765, 1
  %4767 = load i32, ptr %10, align 4, !tbaa !5
  %4768 = sext i32 %4767 to i64
  %4769 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4768
  %4770 = load i64, ptr %4769, align 8, !tbaa !22
  %4771 = lshr i64 %4770, 1
  %4772 = lshr i64 %4771, 1
  %4773 = or i64 %4766, %4772
  %4774 = load i32, ptr %10, align 4, !tbaa !5
  %4775 = sext i32 %4774 to i64
  %4776 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4775
  %4777 = load i64, ptr %4776, align 8, !tbaa !22
  %4778 = lshr i64 %4777, 1
  %4779 = load i32, ptr %10, align 4, !tbaa !5
  %4780 = sext i32 %4779 to i64
  %4781 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4780
  %4782 = load i64, ptr %4781, align 8, !tbaa !22
  %4783 = lshr i64 %4782, 1
  %4784 = lshr i64 %4783, 1
  %4785 = or i64 %4778, %4784
  %4786 = lshr i64 %4785, 2
  %4787 = or i64 %4773, %4786
  %4788 = load i32, ptr %10, align 4, !tbaa !5
  %4789 = sext i32 %4788 to i64
  %4790 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4789
  %4791 = load i64, ptr %4790, align 8, !tbaa !22
  %4792 = lshr i64 %4791, 1
  %4793 = load i32, ptr %10, align 4, !tbaa !5
  %4794 = sext i32 %4793 to i64
  %4795 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4794
  %4796 = load i64, ptr %4795, align 8, !tbaa !22
  %4797 = lshr i64 %4796, 1
  %4798 = lshr i64 %4797, 1
  %4799 = or i64 %4792, %4798
  %4800 = load i32, ptr %10, align 4, !tbaa !5
  %4801 = sext i32 %4800 to i64
  %4802 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4801
  %4803 = load i64, ptr %4802, align 8, !tbaa !22
  %4804 = lshr i64 %4803, 1
  %4805 = load i32, ptr %10, align 4, !tbaa !5
  %4806 = sext i32 %4805 to i64
  %4807 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4806
  %4808 = load i64, ptr %4807, align 8, !tbaa !22
  %4809 = lshr i64 %4808, 1
  %4810 = lshr i64 %4809, 1
  %4811 = or i64 %4804, %4810
  %4812 = lshr i64 %4811, 2
  %4813 = or i64 %4799, %4812
  %4814 = lshr i64 %4813, 4
  %4815 = or i64 %4787, %4814
  %4816 = lshr i64 %4815, 8
  %4817 = or i64 %4761, %4816
  %4818 = load i32, ptr %10, align 4, !tbaa !5
  %4819 = sext i32 %4818 to i64
  %4820 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4819
  %4821 = load i64, ptr %4820, align 8, !tbaa !22
  %4822 = lshr i64 %4821, 1
  %4823 = load i32, ptr %10, align 4, !tbaa !5
  %4824 = sext i32 %4823 to i64
  %4825 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4824
  %4826 = load i64, ptr %4825, align 8, !tbaa !22
  %4827 = lshr i64 %4826, 1
  %4828 = lshr i64 %4827, 1
  %4829 = or i64 %4822, %4828
  %4830 = load i32, ptr %10, align 4, !tbaa !5
  %4831 = sext i32 %4830 to i64
  %4832 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4831
  %4833 = load i64, ptr %4832, align 8, !tbaa !22
  %4834 = lshr i64 %4833, 1
  %4835 = load i32, ptr %10, align 4, !tbaa !5
  %4836 = sext i32 %4835 to i64
  %4837 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4836
  %4838 = load i64, ptr %4837, align 8, !tbaa !22
  %4839 = lshr i64 %4838, 1
  %4840 = lshr i64 %4839, 1
  %4841 = or i64 %4834, %4840
  %4842 = lshr i64 %4841, 2
  %4843 = or i64 %4829, %4842
  %4844 = load i32, ptr %10, align 4, !tbaa !5
  %4845 = sext i32 %4844 to i64
  %4846 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4845
  %4847 = load i64, ptr %4846, align 8, !tbaa !22
  %4848 = lshr i64 %4847, 1
  %4849 = load i32, ptr %10, align 4, !tbaa !5
  %4850 = sext i32 %4849 to i64
  %4851 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4850
  %4852 = load i64, ptr %4851, align 8, !tbaa !22
  %4853 = lshr i64 %4852, 1
  %4854 = lshr i64 %4853, 1
  %4855 = or i64 %4848, %4854
  %4856 = load i32, ptr %10, align 4, !tbaa !5
  %4857 = sext i32 %4856 to i64
  %4858 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4857
  %4859 = load i64, ptr %4858, align 8, !tbaa !22
  %4860 = lshr i64 %4859, 1
  %4861 = load i32, ptr %10, align 4, !tbaa !5
  %4862 = sext i32 %4861 to i64
  %4863 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4862
  %4864 = load i64, ptr %4863, align 8, !tbaa !22
  %4865 = lshr i64 %4864, 1
  %4866 = lshr i64 %4865, 1
  %4867 = or i64 %4860, %4866
  %4868 = lshr i64 %4867, 2
  %4869 = or i64 %4855, %4868
  %4870 = lshr i64 %4869, 4
  %4871 = or i64 %4843, %4870
  %4872 = load i32, ptr %10, align 4, !tbaa !5
  %4873 = sext i32 %4872 to i64
  %4874 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4873
  %4875 = load i64, ptr %4874, align 8, !tbaa !22
  %4876 = lshr i64 %4875, 1
  %4877 = load i32, ptr %10, align 4, !tbaa !5
  %4878 = sext i32 %4877 to i64
  %4879 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4878
  %4880 = load i64, ptr %4879, align 8, !tbaa !22
  %4881 = lshr i64 %4880, 1
  %4882 = lshr i64 %4881, 1
  %4883 = or i64 %4876, %4882
  %4884 = load i32, ptr %10, align 4, !tbaa !5
  %4885 = sext i32 %4884 to i64
  %4886 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4885
  %4887 = load i64, ptr %4886, align 8, !tbaa !22
  %4888 = lshr i64 %4887, 1
  %4889 = load i32, ptr %10, align 4, !tbaa !5
  %4890 = sext i32 %4889 to i64
  %4891 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4890
  %4892 = load i64, ptr %4891, align 8, !tbaa !22
  %4893 = lshr i64 %4892, 1
  %4894 = lshr i64 %4893, 1
  %4895 = or i64 %4888, %4894
  %4896 = lshr i64 %4895, 2
  %4897 = or i64 %4883, %4896
  %4898 = load i32, ptr %10, align 4, !tbaa !5
  %4899 = sext i32 %4898 to i64
  %4900 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4899
  %4901 = load i64, ptr %4900, align 8, !tbaa !22
  %4902 = lshr i64 %4901, 1
  %4903 = load i32, ptr %10, align 4, !tbaa !5
  %4904 = sext i32 %4903 to i64
  %4905 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4904
  %4906 = load i64, ptr %4905, align 8, !tbaa !22
  %4907 = lshr i64 %4906, 1
  %4908 = lshr i64 %4907, 1
  %4909 = or i64 %4902, %4908
  %4910 = load i32, ptr %10, align 4, !tbaa !5
  %4911 = sext i32 %4910 to i64
  %4912 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4911
  %4913 = load i64, ptr %4912, align 8, !tbaa !22
  %4914 = lshr i64 %4913, 1
  %4915 = load i32, ptr %10, align 4, !tbaa !5
  %4916 = sext i32 %4915 to i64
  %4917 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4916
  %4918 = load i64, ptr %4917, align 8, !tbaa !22
  %4919 = lshr i64 %4918, 1
  %4920 = lshr i64 %4919, 1
  %4921 = or i64 %4914, %4920
  %4922 = lshr i64 %4921, 2
  %4923 = or i64 %4909, %4922
  %4924 = lshr i64 %4923, 4
  %4925 = or i64 %4897, %4924
  %4926 = lshr i64 %4925, 8
  %4927 = or i64 %4871, %4926
  %4928 = lshr i64 %4927, 16
  %4929 = or i64 %4817, %4928
  %4930 = load i32, ptr %10, align 4, !tbaa !5
  %4931 = sext i32 %4930 to i64
  %4932 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4931
  %4933 = load i64, ptr %4932, align 8, !tbaa !22
  %4934 = lshr i64 %4933, 1
  %4935 = load i32, ptr %10, align 4, !tbaa !5
  %4936 = sext i32 %4935 to i64
  %4937 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4936
  %4938 = load i64, ptr %4937, align 8, !tbaa !22
  %4939 = lshr i64 %4938, 1
  %4940 = lshr i64 %4939, 1
  %4941 = or i64 %4934, %4940
  %4942 = load i32, ptr %10, align 4, !tbaa !5
  %4943 = sext i32 %4942 to i64
  %4944 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4943
  %4945 = load i64, ptr %4944, align 8, !tbaa !22
  %4946 = lshr i64 %4945, 1
  %4947 = load i32, ptr %10, align 4, !tbaa !5
  %4948 = sext i32 %4947 to i64
  %4949 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4948
  %4950 = load i64, ptr %4949, align 8, !tbaa !22
  %4951 = lshr i64 %4950, 1
  %4952 = lshr i64 %4951, 1
  %4953 = or i64 %4946, %4952
  %4954 = lshr i64 %4953, 2
  %4955 = or i64 %4941, %4954
  %4956 = load i32, ptr %10, align 4, !tbaa !5
  %4957 = sext i32 %4956 to i64
  %4958 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4957
  %4959 = load i64, ptr %4958, align 8, !tbaa !22
  %4960 = lshr i64 %4959, 1
  %4961 = load i32, ptr %10, align 4, !tbaa !5
  %4962 = sext i32 %4961 to i64
  %4963 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4962
  %4964 = load i64, ptr %4963, align 8, !tbaa !22
  %4965 = lshr i64 %4964, 1
  %4966 = lshr i64 %4965, 1
  %4967 = or i64 %4960, %4966
  %4968 = load i32, ptr %10, align 4, !tbaa !5
  %4969 = sext i32 %4968 to i64
  %4970 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4969
  %4971 = load i64, ptr %4970, align 8, !tbaa !22
  %4972 = lshr i64 %4971, 1
  %4973 = load i32, ptr %10, align 4, !tbaa !5
  %4974 = sext i32 %4973 to i64
  %4975 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4974
  %4976 = load i64, ptr %4975, align 8, !tbaa !22
  %4977 = lshr i64 %4976, 1
  %4978 = lshr i64 %4977, 1
  %4979 = or i64 %4972, %4978
  %4980 = lshr i64 %4979, 2
  %4981 = or i64 %4967, %4980
  %4982 = lshr i64 %4981, 4
  %4983 = or i64 %4955, %4982
  %4984 = load i32, ptr %10, align 4, !tbaa !5
  %4985 = sext i32 %4984 to i64
  %4986 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4985
  %4987 = load i64, ptr %4986, align 8, !tbaa !22
  %4988 = lshr i64 %4987, 1
  %4989 = load i32, ptr %10, align 4, !tbaa !5
  %4990 = sext i32 %4989 to i64
  %4991 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4990
  %4992 = load i64, ptr %4991, align 8, !tbaa !22
  %4993 = lshr i64 %4992, 1
  %4994 = lshr i64 %4993, 1
  %4995 = or i64 %4988, %4994
  %4996 = load i32, ptr %10, align 4, !tbaa !5
  %4997 = sext i32 %4996 to i64
  %4998 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %4997
  %4999 = load i64, ptr %4998, align 8, !tbaa !22
  %5000 = lshr i64 %4999, 1
  %5001 = load i32, ptr %10, align 4, !tbaa !5
  %5002 = sext i32 %5001 to i64
  %5003 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5002
  %5004 = load i64, ptr %5003, align 8, !tbaa !22
  %5005 = lshr i64 %5004, 1
  %5006 = lshr i64 %5005, 1
  %5007 = or i64 %5000, %5006
  %5008 = lshr i64 %5007, 2
  %5009 = or i64 %4995, %5008
  %5010 = load i32, ptr %10, align 4, !tbaa !5
  %5011 = sext i32 %5010 to i64
  %5012 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5011
  %5013 = load i64, ptr %5012, align 8, !tbaa !22
  %5014 = lshr i64 %5013, 1
  %5015 = load i32, ptr %10, align 4, !tbaa !5
  %5016 = sext i32 %5015 to i64
  %5017 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5016
  %5018 = load i64, ptr %5017, align 8, !tbaa !22
  %5019 = lshr i64 %5018, 1
  %5020 = lshr i64 %5019, 1
  %5021 = or i64 %5014, %5020
  %5022 = load i32, ptr %10, align 4, !tbaa !5
  %5023 = sext i32 %5022 to i64
  %5024 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5023
  %5025 = load i64, ptr %5024, align 8, !tbaa !22
  %5026 = lshr i64 %5025, 1
  %5027 = load i32, ptr %10, align 4, !tbaa !5
  %5028 = sext i32 %5027 to i64
  %5029 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5028
  %5030 = load i64, ptr %5029, align 8, !tbaa !22
  %5031 = lshr i64 %5030, 1
  %5032 = lshr i64 %5031, 1
  %5033 = or i64 %5026, %5032
  %5034 = lshr i64 %5033, 2
  %5035 = or i64 %5021, %5034
  %5036 = lshr i64 %5035, 4
  %5037 = or i64 %5009, %5036
  %5038 = lshr i64 %5037, 8
  %5039 = or i64 %4983, %5038
  %5040 = load i32, ptr %10, align 4, !tbaa !5
  %5041 = sext i32 %5040 to i64
  %5042 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5041
  %5043 = load i64, ptr %5042, align 8, !tbaa !22
  %5044 = lshr i64 %5043, 1
  %5045 = load i32, ptr %10, align 4, !tbaa !5
  %5046 = sext i32 %5045 to i64
  %5047 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5046
  %5048 = load i64, ptr %5047, align 8, !tbaa !22
  %5049 = lshr i64 %5048, 1
  %5050 = lshr i64 %5049, 1
  %5051 = or i64 %5044, %5050
  %5052 = load i32, ptr %10, align 4, !tbaa !5
  %5053 = sext i32 %5052 to i64
  %5054 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5053
  %5055 = load i64, ptr %5054, align 8, !tbaa !22
  %5056 = lshr i64 %5055, 1
  %5057 = load i32, ptr %10, align 4, !tbaa !5
  %5058 = sext i32 %5057 to i64
  %5059 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5058
  %5060 = load i64, ptr %5059, align 8, !tbaa !22
  %5061 = lshr i64 %5060, 1
  %5062 = lshr i64 %5061, 1
  %5063 = or i64 %5056, %5062
  %5064 = lshr i64 %5063, 2
  %5065 = or i64 %5051, %5064
  %5066 = load i32, ptr %10, align 4, !tbaa !5
  %5067 = sext i32 %5066 to i64
  %5068 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5067
  %5069 = load i64, ptr %5068, align 8, !tbaa !22
  %5070 = lshr i64 %5069, 1
  %5071 = load i32, ptr %10, align 4, !tbaa !5
  %5072 = sext i32 %5071 to i64
  %5073 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5072
  %5074 = load i64, ptr %5073, align 8, !tbaa !22
  %5075 = lshr i64 %5074, 1
  %5076 = lshr i64 %5075, 1
  %5077 = or i64 %5070, %5076
  %5078 = load i32, ptr %10, align 4, !tbaa !5
  %5079 = sext i32 %5078 to i64
  %5080 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5079
  %5081 = load i64, ptr %5080, align 8, !tbaa !22
  %5082 = lshr i64 %5081, 1
  %5083 = load i32, ptr %10, align 4, !tbaa !5
  %5084 = sext i32 %5083 to i64
  %5085 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5084
  %5086 = load i64, ptr %5085, align 8, !tbaa !22
  %5087 = lshr i64 %5086, 1
  %5088 = lshr i64 %5087, 1
  %5089 = or i64 %5082, %5088
  %5090 = lshr i64 %5089, 2
  %5091 = or i64 %5077, %5090
  %5092 = lshr i64 %5091, 4
  %5093 = or i64 %5065, %5092
  %5094 = load i32, ptr %10, align 4, !tbaa !5
  %5095 = sext i32 %5094 to i64
  %5096 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5095
  %5097 = load i64, ptr %5096, align 8, !tbaa !22
  %5098 = lshr i64 %5097, 1
  %5099 = load i32, ptr %10, align 4, !tbaa !5
  %5100 = sext i32 %5099 to i64
  %5101 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5100
  %5102 = load i64, ptr %5101, align 8, !tbaa !22
  %5103 = lshr i64 %5102, 1
  %5104 = lshr i64 %5103, 1
  %5105 = or i64 %5098, %5104
  %5106 = load i32, ptr %10, align 4, !tbaa !5
  %5107 = sext i32 %5106 to i64
  %5108 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5107
  %5109 = load i64, ptr %5108, align 8, !tbaa !22
  %5110 = lshr i64 %5109, 1
  %5111 = load i32, ptr %10, align 4, !tbaa !5
  %5112 = sext i32 %5111 to i64
  %5113 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5112
  %5114 = load i64, ptr %5113, align 8, !tbaa !22
  %5115 = lshr i64 %5114, 1
  %5116 = lshr i64 %5115, 1
  %5117 = or i64 %5110, %5116
  %5118 = lshr i64 %5117, 2
  %5119 = or i64 %5105, %5118
  %5120 = load i32, ptr %10, align 4, !tbaa !5
  %5121 = sext i32 %5120 to i64
  %5122 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5121
  %5123 = load i64, ptr %5122, align 8, !tbaa !22
  %5124 = lshr i64 %5123, 1
  %5125 = load i32, ptr %10, align 4, !tbaa !5
  %5126 = sext i32 %5125 to i64
  %5127 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5126
  %5128 = load i64, ptr %5127, align 8, !tbaa !22
  %5129 = lshr i64 %5128, 1
  %5130 = lshr i64 %5129, 1
  %5131 = or i64 %5124, %5130
  %5132 = load i32, ptr %10, align 4, !tbaa !5
  %5133 = sext i32 %5132 to i64
  %5134 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5133
  %5135 = load i64, ptr %5134, align 8, !tbaa !22
  %5136 = lshr i64 %5135, 1
  %5137 = load i32, ptr %10, align 4, !tbaa !5
  %5138 = sext i32 %5137 to i64
  %5139 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5138
  %5140 = load i64, ptr %5139, align 8, !tbaa !22
  %5141 = lshr i64 %5140, 1
  %5142 = lshr i64 %5141, 1
  %5143 = or i64 %5136, %5142
  %5144 = lshr i64 %5143, 2
  %5145 = or i64 %5131, %5144
  %5146 = lshr i64 %5145, 4
  %5147 = or i64 %5119, %5146
  %5148 = lshr i64 %5147, 8
  %5149 = or i64 %5093, %5148
  %5150 = lshr i64 %5149, 16
  %5151 = or i64 %5039, %5150
  %5152 = lshr i64 %5151, 32
  %5153 = or i64 %4929, %5152
  %5154 = load i32, ptr %10, align 4, !tbaa !5
  %5155 = sext i32 %5154 to i64
  %5156 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5155
  %5157 = load i64, ptr %5156, align 8, !tbaa !22
  %5158 = icmp ult i64 1, %5157
  br i1 %5158, label %5159, label %5160

5159:                                             ; preds = %4703
  br label %5165

5160:                                             ; preds = %4703
  %5161 = load i32, ptr %10, align 4, !tbaa !5
  %5162 = sext i32 %5161 to i64
  %5163 = getelementptr inbounds [7 x i64], ptr %36, i64 0, i64 %5162
  %5164 = load i64, ptr %5163, align 8, !tbaa !22
  br label %5165

5165:                                             ; preds = %5160, %5159
  %5166 = phi i64 [ 1, %5159 ], [ %5164, %5160 ]
  %5167 = add i64 %5153, %5166
  %5168 = icmp eq i64 %4707, %5167
  br label %5169

5169:                                             ; preds = %5165, %4695
  %5170 = phi i1 [ false, %4695 ], [ %5168, %5165 ]
  %5171 = zext i1 %5170 to i32
  %5172 = icmp ne i32 %4697, %5171
  br i1 %5172, label %5173, label %5174

5173:                                             ; preds = %5169
  call void @exit(i32 noundef 1) #10
  unreachable

5174:                                             ; preds = %5169
  %5175 = load i32, ptr %10, align 4, !tbaa !5
  %5176 = sext i32 %5175 to i64
  %5177 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5176
  %5178 = load i64, ptr %5177, align 8, !tbaa !22
  %5179 = icmp ne i64 0, %5178
  br i1 %5179, label %5180, label %5193

5180:                                             ; preds = %5174
  %5181 = load i32, ptr %10, align 4, !tbaa !5
  %5182 = sext i32 %5181 to i64
  %5183 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5182
  %5184 = load i64, ptr %5183, align 8, !tbaa !22
  %5185 = load i32, ptr %10, align 4, !tbaa !5
  %5186 = sext i32 %5185 to i64
  %5187 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5186
  %5188 = load i64, ptr %5187, align 8, !tbaa !22
  %5189 = sub i64 %5188, 1
  %5190 = and i64 %5184, %5189
  %5191 = icmp ne i64 %5190, 0
  %5192 = xor i1 %5191, true
  br label %5193

5193:                                             ; preds = %5180, %5174
  %5194 = phi i1 [ false, %5174 ], [ %5192, %5180 ]
  %5195 = zext i1 %5194 to i32
  %5196 = load i32, ptr %10, align 4, !tbaa !5
  %5197 = sext i32 %5196 to i64
  %5198 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5197
  %5199 = load i64, ptr %5198, align 8, !tbaa !22
  %5200 = icmp ne i64 0, %5199
  br i1 %5200, label %5201, label %6499

5201:                                             ; preds = %5193
  %5202 = load i32, ptr %10, align 4, !tbaa !5
  %5203 = sext i32 %5202 to i64
  %5204 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5203
  %5205 = load i64, ptr %5204, align 8, !tbaa !22
  %5206 = load i32, ptr %10, align 4, !tbaa !5
  %5207 = sext i32 %5206 to i64
  %5208 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5207
  %5209 = load i64, ptr %5208, align 8, !tbaa !22
  %5210 = load i32, ptr %10, align 4, !tbaa !5
  %5211 = sext i32 %5210 to i64
  %5212 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5211
  %5213 = load i64, ptr %5212, align 8, !tbaa !22
  %5214 = icmp ult i64 1, %5213
  br i1 %5214, label %5215, label %5216

5215:                                             ; preds = %5201
  br label %5221

5216:                                             ; preds = %5201
  %5217 = load i32, ptr %10, align 4, !tbaa !5
  %5218 = sext i32 %5217 to i64
  %5219 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5218
  %5220 = load i64, ptr %5219, align 8, !tbaa !22
  br label %5221

5221:                                             ; preds = %5216, %5215
  %5222 = phi i64 [ 1, %5215 ], [ %5220, %5216 ]
  %5223 = sub i64 %5209, %5222
  %5224 = load i32, ptr %10, align 4, !tbaa !5
  %5225 = sext i32 %5224 to i64
  %5226 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5225
  %5227 = load i64, ptr %5226, align 8, !tbaa !22
  %5228 = load i32, ptr %10, align 4, !tbaa !5
  %5229 = sext i32 %5228 to i64
  %5230 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5229
  %5231 = load i64, ptr %5230, align 8, !tbaa !22
  %5232 = icmp ult i64 1, %5231
  br i1 %5232, label %5233, label %5234

5233:                                             ; preds = %5221
  br label %5239

5234:                                             ; preds = %5221
  %5235 = load i32, ptr %10, align 4, !tbaa !5
  %5236 = sext i32 %5235 to i64
  %5237 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5236
  %5238 = load i64, ptr %5237, align 8, !tbaa !22
  br label %5239

5239:                                             ; preds = %5234, %5233
  %5240 = phi i64 [ 1, %5233 ], [ %5238, %5234 ]
  %5241 = sub i64 %5227, %5240
  %5242 = lshr i64 %5241, 1
  %5243 = or i64 %5223, %5242
  %5244 = load i32, ptr %10, align 4, !tbaa !5
  %5245 = sext i32 %5244 to i64
  %5246 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5245
  %5247 = load i64, ptr %5246, align 8, !tbaa !22
  %5248 = load i32, ptr %10, align 4, !tbaa !5
  %5249 = sext i32 %5248 to i64
  %5250 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5249
  %5251 = load i64, ptr %5250, align 8, !tbaa !22
  %5252 = icmp ult i64 1, %5251
  br i1 %5252, label %5253, label %5254

5253:                                             ; preds = %5239
  br label %5259

5254:                                             ; preds = %5239
  %5255 = load i32, ptr %10, align 4, !tbaa !5
  %5256 = sext i32 %5255 to i64
  %5257 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5256
  %5258 = load i64, ptr %5257, align 8, !tbaa !22
  br label %5259

5259:                                             ; preds = %5254, %5253
  %5260 = phi i64 [ 1, %5253 ], [ %5258, %5254 ]
  %5261 = sub i64 %5247, %5260
  %5262 = load i32, ptr %10, align 4, !tbaa !5
  %5263 = sext i32 %5262 to i64
  %5264 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5263
  %5265 = load i64, ptr %5264, align 8, !tbaa !22
  %5266 = load i32, ptr %10, align 4, !tbaa !5
  %5267 = sext i32 %5266 to i64
  %5268 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5267
  %5269 = load i64, ptr %5268, align 8, !tbaa !22
  %5270 = icmp ult i64 1, %5269
  br i1 %5270, label %5271, label %5272

5271:                                             ; preds = %5259
  br label %5277

5272:                                             ; preds = %5259
  %5273 = load i32, ptr %10, align 4, !tbaa !5
  %5274 = sext i32 %5273 to i64
  %5275 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5274
  %5276 = load i64, ptr %5275, align 8, !tbaa !22
  br label %5277

5277:                                             ; preds = %5272, %5271
  %5278 = phi i64 [ 1, %5271 ], [ %5276, %5272 ]
  %5279 = sub i64 %5265, %5278
  %5280 = lshr i64 %5279, 1
  %5281 = or i64 %5261, %5280
  %5282 = lshr i64 %5281, 2
  %5283 = or i64 %5243, %5282
  %5284 = load i32, ptr %10, align 4, !tbaa !5
  %5285 = sext i32 %5284 to i64
  %5286 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5285
  %5287 = load i64, ptr %5286, align 8, !tbaa !22
  %5288 = load i32, ptr %10, align 4, !tbaa !5
  %5289 = sext i32 %5288 to i64
  %5290 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5289
  %5291 = load i64, ptr %5290, align 8, !tbaa !22
  %5292 = icmp ult i64 1, %5291
  br i1 %5292, label %5293, label %5294

5293:                                             ; preds = %5277
  br label %5299

5294:                                             ; preds = %5277
  %5295 = load i32, ptr %10, align 4, !tbaa !5
  %5296 = sext i32 %5295 to i64
  %5297 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5296
  %5298 = load i64, ptr %5297, align 8, !tbaa !22
  br label %5299

5299:                                             ; preds = %5294, %5293
  %5300 = phi i64 [ 1, %5293 ], [ %5298, %5294 ]
  %5301 = sub i64 %5287, %5300
  %5302 = load i32, ptr %10, align 4, !tbaa !5
  %5303 = sext i32 %5302 to i64
  %5304 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5303
  %5305 = load i64, ptr %5304, align 8, !tbaa !22
  %5306 = load i32, ptr %10, align 4, !tbaa !5
  %5307 = sext i32 %5306 to i64
  %5308 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5307
  %5309 = load i64, ptr %5308, align 8, !tbaa !22
  %5310 = icmp ult i64 1, %5309
  br i1 %5310, label %5311, label %5312

5311:                                             ; preds = %5299
  br label %5317

5312:                                             ; preds = %5299
  %5313 = load i32, ptr %10, align 4, !tbaa !5
  %5314 = sext i32 %5313 to i64
  %5315 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5314
  %5316 = load i64, ptr %5315, align 8, !tbaa !22
  br label %5317

5317:                                             ; preds = %5312, %5311
  %5318 = phi i64 [ 1, %5311 ], [ %5316, %5312 ]
  %5319 = sub i64 %5305, %5318
  %5320 = lshr i64 %5319, 1
  %5321 = or i64 %5301, %5320
  %5322 = load i32, ptr %10, align 4, !tbaa !5
  %5323 = sext i32 %5322 to i64
  %5324 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5323
  %5325 = load i64, ptr %5324, align 8, !tbaa !22
  %5326 = load i32, ptr %10, align 4, !tbaa !5
  %5327 = sext i32 %5326 to i64
  %5328 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5327
  %5329 = load i64, ptr %5328, align 8, !tbaa !22
  %5330 = icmp ult i64 1, %5329
  br i1 %5330, label %5331, label %5332

5331:                                             ; preds = %5317
  br label %5337

5332:                                             ; preds = %5317
  %5333 = load i32, ptr %10, align 4, !tbaa !5
  %5334 = sext i32 %5333 to i64
  %5335 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5334
  %5336 = load i64, ptr %5335, align 8, !tbaa !22
  br label %5337

5337:                                             ; preds = %5332, %5331
  %5338 = phi i64 [ 1, %5331 ], [ %5336, %5332 ]
  %5339 = sub i64 %5325, %5338
  %5340 = load i32, ptr %10, align 4, !tbaa !5
  %5341 = sext i32 %5340 to i64
  %5342 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5341
  %5343 = load i64, ptr %5342, align 8, !tbaa !22
  %5344 = load i32, ptr %10, align 4, !tbaa !5
  %5345 = sext i32 %5344 to i64
  %5346 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5345
  %5347 = load i64, ptr %5346, align 8, !tbaa !22
  %5348 = icmp ult i64 1, %5347
  br i1 %5348, label %5349, label %5350

5349:                                             ; preds = %5337
  br label %5355

5350:                                             ; preds = %5337
  %5351 = load i32, ptr %10, align 4, !tbaa !5
  %5352 = sext i32 %5351 to i64
  %5353 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5352
  %5354 = load i64, ptr %5353, align 8, !tbaa !22
  br label %5355

5355:                                             ; preds = %5350, %5349
  %5356 = phi i64 [ 1, %5349 ], [ %5354, %5350 ]
  %5357 = sub i64 %5343, %5356
  %5358 = lshr i64 %5357, 1
  %5359 = or i64 %5339, %5358
  %5360 = lshr i64 %5359, 2
  %5361 = or i64 %5321, %5360
  %5362 = lshr i64 %5361, 4
  %5363 = or i64 %5283, %5362
  %5364 = load i32, ptr %10, align 4, !tbaa !5
  %5365 = sext i32 %5364 to i64
  %5366 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5365
  %5367 = load i64, ptr %5366, align 8, !tbaa !22
  %5368 = load i32, ptr %10, align 4, !tbaa !5
  %5369 = sext i32 %5368 to i64
  %5370 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5369
  %5371 = load i64, ptr %5370, align 8, !tbaa !22
  %5372 = icmp ult i64 1, %5371
  br i1 %5372, label %5373, label %5374

5373:                                             ; preds = %5355
  br label %5379

5374:                                             ; preds = %5355
  %5375 = load i32, ptr %10, align 4, !tbaa !5
  %5376 = sext i32 %5375 to i64
  %5377 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5376
  %5378 = load i64, ptr %5377, align 8, !tbaa !22
  br label %5379

5379:                                             ; preds = %5374, %5373
  %5380 = phi i64 [ 1, %5373 ], [ %5378, %5374 ]
  %5381 = sub i64 %5367, %5380
  %5382 = load i32, ptr %10, align 4, !tbaa !5
  %5383 = sext i32 %5382 to i64
  %5384 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5383
  %5385 = load i64, ptr %5384, align 8, !tbaa !22
  %5386 = load i32, ptr %10, align 4, !tbaa !5
  %5387 = sext i32 %5386 to i64
  %5388 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5387
  %5389 = load i64, ptr %5388, align 8, !tbaa !22
  %5390 = icmp ult i64 1, %5389
  br i1 %5390, label %5391, label %5392

5391:                                             ; preds = %5379
  br label %5397

5392:                                             ; preds = %5379
  %5393 = load i32, ptr %10, align 4, !tbaa !5
  %5394 = sext i32 %5393 to i64
  %5395 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5394
  %5396 = load i64, ptr %5395, align 8, !tbaa !22
  br label %5397

5397:                                             ; preds = %5392, %5391
  %5398 = phi i64 [ 1, %5391 ], [ %5396, %5392 ]
  %5399 = sub i64 %5385, %5398
  %5400 = lshr i64 %5399, 1
  %5401 = or i64 %5381, %5400
  %5402 = load i32, ptr %10, align 4, !tbaa !5
  %5403 = sext i32 %5402 to i64
  %5404 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5403
  %5405 = load i64, ptr %5404, align 8, !tbaa !22
  %5406 = load i32, ptr %10, align 4, !tbaa !5
  %5407 = sext i32 %5406 to i64
  %5408 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5407
  %5409 = load i64, ptr %5408, align 8, !tbaa !22
  %5410 = icmp ult i64 1, %5409
  br i1 %5410, label %5411, label %5412

5411:                                             ; preds = %5397
  br label %5417

5412:                                             ; preds = %5397
  %5413 = load i32, ptr %10, align 4, !tbaa !5
  %5414 = sext i32 %5413 to i64
  %5415 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5414
  %5416 = load i64, ptr %5415, align 8, !tbaa !22
  br label %5417

5417:                                             ; preds = %5412, %5411
  %5418 = phi i64 [ 1, %5411 ], [ %5416, %5412 ]
  %5419 = sub i64 %5405, %5418
  %5420 = load i32, ptr %10, align 4, !tbaa !5
  %5421 = sext i32 %5420 to i64
  %5422 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5421
  %5423 = load i64, ptr %5422, align 8, !tbaa !22
  %5424 = load i32, ptr %10, align 4, !tbaa !5
  %5425 = sext i32 %5424 to i64
  %5426 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5425
  %5427 = load i64, ptr %5426, align 8, !tbaa !22
  %5428 = icmp ult i64 1, %5427
  br i1 %5428, label %5429, label %5430

5429:                                             ; preds = %5417
  br label %5435

5430:                                             ; preds = %5417
  %5431 = load i32, ptr %10, align 4, !tbaa !5
  %5432 = sext i32 %5431 to i64
  %5433 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5432
  %5434 = load i64, ptr %5433, align 8, !tbaa !22
  br label %5435

5435:                                             ; preds = %5430, %5429
  %5436 = phi i64 [ 1, %5429 ], [ %5434, %5430 ]
  %5437 = sub i64 %5423, %5436
  %5438 = lshr i64 %5437, 1
  %5439 = or i64 %5419, %5438
  %5440 = lshr i64 %5439, 2
  %5441 = or i64 %5401, %5440
  %5442 = load i32, ptr %10, align 4, !tbaa !5
  %5443 = sext i32 %5442 to i64
  %5444 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5443
  %5445 = load i64, ptr %5444, align 8, !tbaa !22
  %5446 = load i32, ptr %10, align 4, !tbaa !5
  %5447 = sext i32 %5446 to i64
  %5448 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5447
  %5449 = load i64, ptr %5448, align 8, !tbaa !22
  %5450 = icmp ult i64 1, %5449
  br i1 %5450, label %5451, label %5452

5451:                                             ; preds = %5435
  br label %5457

5452:                                             ; preds = %5435
  %5453 = load i32, ptr %10, align 4, !tbaa !5
  %5454 = sext i32 %5453 to i64
  %5455 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5454
  %5456 = load i64, ptr %5455, align 8, !tbaa !22
  br label %5457

5457:                                             ; preds = %5452, %5451
  %5458 = phi i64 [ 1, %5451 ], [ %5456, %5452 ]
  %5459 = sub i64 %5445, %5458
  %5460 = load i32, ptr %10, align 4, !tbaa !5
  %5461 = sext i32 %5460 to i64
  %5462 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5461
  %5463 = load i64, ptr %5462, align 8, !tbaa !22
  %5464 = load i32, ptr %10, align 4, !tbaa !5
  %5465 = sext i32 %5464 to i64
  %5466 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5465
  %5467 = load i64, ptr %5466, align 8, !tbaa !22
  %5468 = icmp ult i64 1, %5467
  br i1 %5468, label %5469, label %5470

5469:                                             ; preds = %5457
  br label %5475

5470:                                             ; preds = %5457
  %5471 = load i32, ptr %10, align 4, !tbaa !5
  %5472 = sext i32 %5471 to i64
  %5473 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5472
  %5474 = load i64, ptr %5473, align 8, !tbaa !22
  br label %5475

5475:                                             ; preds = %5470, %5469
  %5476 = phi i64 [ 1, %5469 ], [ %5474, %5470 ]
  %5477 = sub i64 %5463, %5476
  %5478 = lshr i64 %5477, 1
  %5479 = or i64 %5459, %5478
  %5480 = load i32, ptr %10, align 4, !tbaa !5
  %5481 = sext i32 %5480 to i64
  %5482 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5481
  %5483 = load i64, ptr %5482, align 8, !tbaa !22
  %5484 = load i32, ptr %10, align 4, !tbaa !5
  %5485 = sext i32 %5484 to i64
  %5486 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5485
  %5487 = load i64, ptr %5486, align 8, !tbaa !22
  %5488 = icmp ult i64 1, %5487
  br i1 %5488, label %5489, label %5490

5489:                                             ; preds = %5475
  br label %5495

5490:                                             ; preds = %5475
  %5491 = load i32, ptr %10, align 4, !tbaa !5
  %5492 = sext i32 %5491 to i64
  %5493 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5492
  %5494 = load i64, ptr %5493, align 8, !tbaa !22
  br label %5495

5495:                                             ; preds = %5490, %5489
  %5496 = phi i64 [ 1, %5489 ], [ %5494, %5490 ]
  %5497 = sub i64 %5483, %5496
  %5498 = load i32, ptr %10, align 4, !tbaa !5
  %5499 = sext i32 %5498 to i64
  %5500 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5499
  %5501 = load i64, ptr %5500, align 8, !tbaa !22
  %5502 = load i32, ptr %10, align 4, !tbaa !5
  %5503 = sext i32 %5502 to i64
  %5504 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5503
  %5505 = load i64, ptr %5504, align 8, !tbaa !22
  %5506 = icmp ult i64 1, %5505
  br i1 %5506, label %5507, label %5508

5507:                                             ; preds = %5495
  br label %5513

5508:                                             ; preds = %5495
  %5509 = load i32, ptr %10, align 4, !tbaa !5
  %5510 = sext i32 %5509 to i64
  %5511 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5510
  %5512 = load i64, ptr %5511, align 8, !tbaa !22
  br label %5513

5513:                                             ; preds = %5508, %5507
  %5514 = phi i64 [ 1, %5507 ], [ %5512, %5508 ]
  %5515 = sub i64 %5501, %5514
  %5516 = lshr i64 %5515, 1
  %5517 = or i64 %5497, %5516
  %5518 = lshr i64 %5517, 2
  %5519 = or i64 %5479, %5518
  %5520 = lshr i64 %5519, 4
  %5521 = or i64 %5441, %5520
  %5522 = lshr i64 %5521, 8
  %5523 = or i64 %5363, %5522
  %5524 = load i32, ptr %10, align 4, !tbaa !5
  %5525 = sext i32 %5524 to i64
  %5526 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5525
  %5527 = load i64, ptr %5526, align 8, !tbaa !22
  %5528 = load i32, ptr %10, align 4, !tbaa !5
  %5529 = sext i32 %5528 to i64
  %5530 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5529
  %5531 = load i64, ptr %5530, align 8, !tbaa !22
  %5532 = icmp ult i64 1, %5531
  br i1 %5532, label %5533, label %5534

5533:                                             ; preds = %5513
  br label %5539

5534:                                             ; preds = %5513
  %5535 = load i32, ptr %10, align 4, !tbaa !5
  %5536 = sext i32 %5535 to i64
  %5537 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5536
  %5538 = load i64, ptr %5537, align 8, !tbaa !22
  br label %5539

5539:                                             ; preds = %5534, %5533
  %5540 = phi i64 [ 1, %5533 ], [ %5538, %5534 ]
  %5541 = sub i64 %5527, %5540
  %5542 = load i32, ptr %10, align 4, !tbaa !5
  %5543 = sext i32 %5542 to i64
  %5544 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5543
  %5545 = load i64, ptr %5544, align 8, !tbaa !22
  %5546 = load i32, ptr %10, align 4, !tbaa !5
  %5547 = sext i32 %5546 to i64
  %5548 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5547
  %5549 = load i64, ptr %5548, align 8, !tbaa !22
  %5550 = icmp ult i64 1, %5549
  br i1 %5550, label %5551, label %5552

5551:                                             ; preds = %5539
  br label %5557

5552:                                             ; preds = %5539
  %5553 = load i32, ptr %10, align 4, !tbaa !5
  %5554 = sext i32 %5553 to i64
  %5555 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5554
  %5556 = load i64, ptr %5555, align 8, !tbaa !22
  br label %5557

5557:                                             ; preds = %5552, %5551
  %5558 = phi i64 [ 1, %5551 ], [ %5556, %5552 ]
  %5559 = sub i64 %5545, %5558
  %5560 = lshr i64 %5559, 1
  %5561 = or i64 %5541, %5560
  %5562 = load i32, ptr %10, align 4, !tbaa !5
  %5563 = sext i32 %5562 to i64
  %5564 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5563
  %5565 = load i64, ptr %5564, align 8, !tbaa !22
  %5566 = load i32, ptr %10, align 4, !tbaa !5
  %5567 = sext i32 %5566 to i64
  %5568 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5567
  %5569 = load i64, ptr %5568, align 8, !tbaa !22
  %5570 = icmp ult i64 1, %5569
  br i1 %5570, label %5571, label %5572

5571:                                             ; preds = %5557
  br label %5577

5572:                                             ; preds = %5557
  %5573 = load i32, ptr %10, align 4, !tbaa !5
  %5574 = sext i32 %5573 to i64
  %5575 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5574
  %5576 = load i64, ptr %5575, align 8, !tbaa !22
  br label %5577

5577:                                             ; preds = %5572, %5571
  %5578 = phi i64 [ 1, %5571 ], [ %5576, %5572 ]
  %5579 = sub i64 %5565, %5578
  %5580 = load i32, ptr %10, align 4, !tbaa !5
  %5581 = sext i32 %5580 to i64
  %5582 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5581
  %5583 = load i64, ptr %5582, align 8, !tbaa !22
  %5584 = load i32, ptr %10, align 4, !tbaa !5
  %5585 = sext i32 %5584 to i64
  %5586 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5585
  %5587 = load i64, ptr %5586, align 8, !tbaa !22
  %5588 = icmp ult i64 1, %5587
  br i1 %5588, label %5589, label %5590

5589:                                             ; preds = %5577
  br label %5595

5590:                                             ; preds = %5577
  %5591 = load i32, ptr %10, align 4, !tbaa !5
  %5592 = sext i32 %5591 to i64
  %5593 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5592
  %5594 = load i64, ptr %5593, align 8, !tbaa !22
  br label %5595

5595:                                             ; preds = %5590, %5589
  %5596 = phi i64 [ 1, %5589 ], [ %5594, %5590 ]
  %5597 = sub i64 %5583, %5596
  %5598 = lshr i64 %5597, 1
  %5599 = or i64 %5579, %5598
  %5600 = lshr i64 %5599, 2
  %5601 = or i64 %5561, %5600
  %5602 = load i32, ptr %10, align 4, !tbaa !5
  %5603 = sext i32 %5602 to i64
  %5604 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5603
  %5605 = load i64, ptr %5604, align 8, !tbaa !22
  %5606 = load i32, ptr %10, align 4, !tbaa !5
  %5607 = sext i32 %5606 to i64
  %5608 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5607
  %5609 = load i64, ptr %5608, align 8, !tbaa !22
  %5610 = icmp ult i64 1, %5609
  br i1 %5610, label %5611, label %5612

5611:                                             ; preds = %5595
  br label %5617

5612:                                             ; preds = %5595
  %5613 = load i32, ptr %10, align 4, !tbaa !5
  %5614 = sext i32 %5613 to i64
  %5615 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5614
  %5616 = load i64, ptr %5615, align 8, !tbaa !22
  br label %5617

5617:                                             ; preds = %5612, %5611
  %5618 = phi i64 [ 1, %5611 ], [ %5616, %5612 ]
  %5619 = sub i64 %5605, %5618
  %5620 = load i32, ptr %10, align 4, !tbaa !5
  %5621 = sext i32 %5620 to i64
  %5622 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5621
  %5623 = load i64, ptr %5622, align 8, !tbaa !22
  %5624 = load i32, ptr %10, align 4, !tbaa !5
  %5625 = sext i32 %5624 to i64
  %5626 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5625
  %5627 = load i64, ptr %5626, align 8, !tbaa !22
  %5628 = icmp ult i64 1, %5627
  br i1 %5628, label %5629, label %5630

5629:                                             ; preds = %5617
  br label %5635

5630:                                             ; preds = %5617
  %5631 = load i32, ptr %10, align 4, !tbaa !5
  %5632 = sext i32 %5631 to i64
  %5633 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5632
  %5634 = load i64, ptr %5633, align 8, !tbaa !22
  br label %5635

5635:                                             ; preds = %5630, %5629
  %5636 = phi i64 [ 1, %5629 ], [ %5634, %5630 ]
  %5637 = sub i64 %5623, %5636
  %5638 = lshr i64 %5637, 1
  %5639 = or i64 %5619, %5638
  %5640 = load i32, ptr %10, align 4, !tbaa !5
  %5641 = sext i32 %5640 to i64
  %5642 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5641
  %5643 = load i64, ptr %5642, align 8, !tbaa !22
  %5644 = load i32, ptr %10, align 4, !tbaa !5
  %5645 = sext i32 %5644 to i64
  %5646 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5645
  %5647 = load i64, ptr %5646, align 8, !tbaa !22
  %5648 = icmp ult i64 1, %5647
  br i1 %5648, label %5649, label %5650

5649:                                             ; preds = %5635
  br label %5655

5650:                                             ; preds = %5635
  %5651 = load i32, ptr %10, align 4, !tbaa !5
  %5652 = sext i32 %5651 to i64
  %5653 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5652
  %5654 = load i64, ptr %5653, align 8, !tbaa !22
  br label %5655

5655:                                             ; preds = %5650, %5649
  %5656 = phi i64 [ 1, %5649 ], [ %5654, %5650 ]
  %5657 = sub i64 %5643, %5656
  %5658 = load i32, ptr %10, align 4, !tbaa !5
  %5659 = sext i32 %5658 to i64
  %5660 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5659
  %5661 = load i64, ptr %5660, align 8, !tbaa !22
  %5662 = load i32, ptr %10, align 4, !tbaa !5
  %5663 = sext i32 %5662 to i64
  %5664 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5663
  %5665 = load i64, ptr %5664, align 8, !tbaa !22
  %5666 = icmp ult i64 1, %5665
  br i1 %5666, label %5667, label %5668

5667:                                             ; preds = %5655
  br label %5673

5668:                                             ; preds = %5655
  %5669 = load i32, ptr %10, align 4, !tbaa !5
  %5670 = sext i32 %5669 to i64
  %5671 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5670
  %5672 = load i64, ptr %5671, align 8, !tbaa !22
  br label %5673

5673:                                             ; preds = %5668, %5667
  %5674 = phi i64 [ 1, %5667 ], [ %5672, %5668 ]
  %5675 = sub i64 %5661, %5674
  %5676 = lshr i64 %5675, 1
  %5677 = or i64 %5657, %5676
  %5678 = lshr i64 %5677, 2
  %5679 = or i64 %5639, %5678
  %5680 = lshr i64 %5679, 4
  %5681 = or i64 %5601, %5680
  %5682 = load i32, ptr %10, align 4, !tbaa !5
  %5683 = sext i32 %5682 to i64
  %5684 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5683
  %5685 = load i64, ptr %5684, align 8, !tbaa !22
  %5686 = load i32, ptr %10, align 4, !tbaa !5
  %5687 = sext i32 %5686 to i64
  %5688 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5687
  %5689 = load i64, ptr %5688, align 8, !tbaa !22
  %5690 = icmp ult i64 1, %5689
  br i1 %5690, label %5691, label %5692

5691:                                             ; preds = %5673
  br label %5697

5692:                                             ; preds = %5673
  %5693 = load i32, ptr %10, align 4, !tbaa !5
  %5694 = sext i32 %5693 to i64
  %5695 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5694
  %5696 = load i64, ptr %5695, align 8, !tbaa !22
  br label %5697

5697:                                             ; preds = %5692, %5691
  %5698 = phi i64 [ 1, %5691 ], [ %5696, %5692 ]
  %5699 = sub i64 %5685, %5698
  %5700 = load i32, ptr %10, align 4, !tbaa !5
  %5701 = sext i32 %5700 to i64
  %5702 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5701
  %5703 = load i64, ptr %5702, align 8, !tbaa !22
  %5704 = load i32, ptr %10, align 4, !tbaa !5
  %5705 = sext i32 %5704 to i64
  %5706 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5705
  %5707 = load i64, ptr %5706, align 8, !tbaa !22
  %5708 = icmp ult i64 1, %5707
  br i1 %5708, label %5709, label %5710

5709:                                             ; preds = %5697
  br label %5715

5710:                                             ; preds = %5697
  %5711 = load i32, ptr %10, align 4, !tbaa !5
  %5712 = sext i32 %5711 to i64
  %5713 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5712
  %5714 = load i64, ptr %5713, align 8, !tbaa !22
  br label %5715

5715:                                             ; preds = %5710, %5709
  %5716 = phi i64 [ 1, %5709 ], [ %5714, %5710 ]
  %5717 = sub i64 %5703, %5716
  %5718 = lshr i64 %5717, 1
  %5719 = or i64 %5699, %5718
  %5720 = load i32, ptr %10, align 4, !tbaa !5
  %5721 = sext i32 %5720 to i64
  %5722 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5721
  %5723 = load i64, ptr %5722, align 8, !tbaa !22
  %5724 = load i32, ptr %10, align 4, !tbaa !5
  %5725 = sext i32 %5724 to i64
  %5726 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5725
  %5727 = load i64, ptr %5726, align 8, !tbaa !22
  %5728 = icmp ult i64 1, %5727
  br i1 %5728, label %5729, label %5730

5729:                                             ; preds = %5715
  br label %5735

5730:                                             ; preds = %5715
  %5731 = load i32, ptr %10, align 4, !tbaa !5
  %5732 = sext i32 %5731 to i64
  %5733 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5732
  %5734 = load i64, ptr %5733, align 8, !tbaa !22
  br label %5735

5735:                                             ; preds = %5730, %5729
  %5736 = phi i64 [ 1, %5729 ], [ %5734, %5730 ]
  %5737 = sub i64 %5723, %5736
  %5738 = load i32, ptr %10, align 4, !tbaa !5
  %5739 = sext i32 %5738 to i64
  %5740 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5739
  %5741 = load i64, ptr %5740, align 8, !tbaa !22
  %5742 = load i32, ptr %10, align 4, !tbaa !5
  %5743 = sext i32 %5742 to i64
  %5744 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5743
  %5745 = load i64, ptr %5744, align 8, !tbaa !22
  %5746 = icmp ult i64 1, %5745
  br i1 %5746, label %5747, label %5748

5747:                                             ; preds = %5735
  br label %5753

5748:                                             ; preds = %5735
  %5749 = load i32, ptr %10, align 4, !tbaa !5
  %5750 = sext i32 %5749 to i64
  %5751 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5750
  %5752 = load i64, ptr %5751, align 8, !tbaa !22
  br label %5753

5753:                                             ; preds = %5748, %5747
  %5754 = phi i64 [ 1, %5747 ], [ %5752, %5748 ]
  %5755 = sub i64 %5741, %5754
  %5756 = lshr i64 %5755, 1
  %5757 = or i64 %5737, %5756
  %5758 = lshr i64 %5757, 2
  %5759 = or i64 %5719, %5758
  %5760 = load i32, ptr %10, align 4, !tbaa !5
  %5761 = sext i32 %5760 to i64
  %5762 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5761
  %5763 = load i64, ptr %5762, align 8, !tbaa !22
  %5764 = load i32, ptr %10, align 4, !tbaa !5
  %5765 = sext i32 %5764 to i64
  %5766 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5765
  %5767 = load i64, ptr %5766, align 8, !tbaa !22
  %5768 = icmp ult i64 1, %5767
  br i1 %5768, label %5769, label %5770

5769:                                             ; preds = %5753
  br label %5775

5770:                                             ; preds = %5753
  %5771 = load i32, ptr %10, align 4, !tbaa !5
  %5772 = sext i32 %5771 to i64
  %5773 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5772
  %5774 = load i64, ptr %5773, align 8, !tbaa !22
  br label %5775

5775:                                             ; preds = %5770, %5769
  %5776 = phi i64 [ 1, %5769 ], [ %5774, %5770 ]
  %5777 = sub i64 %5763, %5776
  %5778 = load i32, ptr %10, align 4, !tbaa !5
  %5779 = sext i32 %5778 to i64
  %5780 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5779
  %5781 = load i64, ptr %5780, align 8, !tbaa !22
  %5782 = load i32, ptr %10, align 4, !tbaa !5
  %5783 = sext i32 %5782 to i64
  %5784 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5783
  %5785 = load i64, ptr %5784, align 8, !tbaa !22
  %5786 = icmp ult i64 1, %5785
  br i1 %5786, label %5787, label %5788

5787:                                             ; preds = %5775
  br label %5793

5788:                                             ; preds = %5775
  %5789 = load i32, ptr %10, align 4, !tbaa !5
  %5790 = sext i32 %5789 to i64
  %5791 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5790
  %5792 = load i64, ptr %5791, align 8, !tbaa !22
  br label %5793

5793:                                             ; preds = %5788, %5787
  %5794 = phi i64 [ 1, %5787 ], [ %5792, %5788 ]
  %5795 = sub i64 %5781, %5794
  %5796 = lshr i64 %5795, 1
  %5797 = or i64 %5777, %5796
  %5798 = load i32, ptr %10, align 4, !tbaa !5
  %5799 = sext i32 %5798 to i64
  %5800 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5799
  %5801 = load i64, ptr %5800, align 8, !tbaa !22
  %5802 = load i32, ptr %10, align 4, !tbaa !5
  %5803 = sext i32 %5802 to i64
  %5804 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5803
  %5805 = load i64, ptr %5804, align 8, !tbaa !22
  %5806 = icmp ult i64 1, %5805
  br i1 %5806, label %5807, label %5808

5807:                                             ; preds = %5793
  br label %5813

5808:                                             ; preds = %5793
  %5809 = load i32, ptr %10, align 4, !tbaa !5
  %5810 = sext i32 %5809 to i64
  %5811 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5810
  %5812 = load i64, ptr %5811, align 8, !tbaa !22
  br label %5813

5813:                                             ; preds = %5808, %5807
  %5814 = phi i64 [ 1, %5807 ], [ %5812, %5808 ]
  %5815 = sub i64 %5801, %5814
  %5816 = load i32, ptr %10, align 4, !tbaa !5
  %5817 = sext i32 %5816 to i64
  %5818 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5817
  %5819 = load i64, ptr %5818, align 8, !tbaa !22
  %5820 = load i32, ptr %10, align 4, !tbaa !5
  %5821 = sext i32 %5820 to i64
  %5822 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5821
  %5823 = load i64, ptr %5822, align 8, !tbaa !22
  %5824 = icmp ult i64 1, %5823
  br i1 %5824, label %5825, label %5826

5825:                                             ; preds = %5813
  br label %5831

5826:                                             ; preds = %5813
  %5827 = load i32, ptr %10, align 4, !tbaa !5
  %5828 = sext i32 %5827 to i64
  %5829 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5828
  %5830 = load i64, ptr %5829, align 8, !tbaa !22
  br label %5831

5831:                                             ; preds = %5826, %5825
  %5832 = phi i64 [ 1, %5825 ], [ %5830, %5826 ]
  %5833 = sub i64 %5819, %5832
  %5834 = lshr i64 %5833, 1
  %5835 = or i64 %5815, %5834
  %5836 = lshr i64 %5835, 2
  %5837 = or i64 %5797, %5836
  %5838 = lshr i64 %5837, 4
  %5839 = or i64 %5759, %5838
  %5840 = lshr i64 %5839, 8
  %5841 = or i64 %5681, %5840
  %5842 = lshr i64 %5841, 16
  %5843 = or i64 %5523, %5842
  %5844 = load i32, ptr %10, align 4, !tbaa !5
  %5845 = sext i32 %5844 to i64
  %5846 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5845
  %5847 = load i64, ptr %5846, align 8, !tbaa !22
  %5848 = load i32, ptr %10, align 4, !tbaa !5
  %5849 = sext i32 %5848 to i64
  %5850 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5849
  %5851 = load i64, ptr %5850, align 8, !tbaa !22
  %5852 = icmp ult i64 1, %5851
  br i1 %5852, label %5853, label %5854

5853:                                             ; preds = %5831
  br label %5859

5854:                                             ; preds = %5831
  %5855 = load i32, ptr %10, align 4, !tbaa !5
  %5856 = sext i32 %5855 to i64
  %5857 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5856
  %5858 = load i64, ptr %5857, align 8, !tbaa !22
  br label %5859

5859:                                             ; preds = %5854, %5853
  %5860 = phi i64 [ 1, %5853 ], [ %5858, %5854 ]
  %5861 = sub i64 %5847, %5860
  %5862 = load i32, ptr %10, align 4, !tbaa !5
  %5863 = sext i32 %5862 to i64
  %5864 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5863
  %5865 = load i64, ptr %5864, align 8, !tbaa !22
  %5866 = load i32, ptr %10, align 4, !tbaa !5
  %5867 = sext i32 %5866 to i64
  %5868 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5867
  %5869 = load i64, ptr %5868, align 8, !tbaa !22
  %5870 = icmp ult i64 1, %5869
  br i1 %5870, label %5871, label %5872

5871:                                             ; preds = %5859
  br label %5877

5872:                                             ; preds = %5859
  %5873 = load i32, ptr %10, align 4, !tbaa !5
  %5874 = sext i32 %5873 to i64
  %5875 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5874
  %5876 = load i64, ptr %5875, align 8, !tbaa !22
  br label %5877

5877:                                             ; preds = %5872, %5871
  %5878 = phi i64 [ 1, %5871 ], [ %5876, %5872 ]
  %5879 = sub i64 %5865, %5878
  %5880 = lshr i64 %5879, 1
  %5881 = or i64 %5861, %5880
  %5882 = load i32, ptr %10, align 4, !tbaa !5
  %5883 = sext i32 %5882 to i64
  %5884 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5883
  %5885 = load i64, ptr %5884, align 8, !tbaa !22
  %5886 = load i32, ptr %10, align 4, !tbaa !5
  %5887 = sext i32 %5886 to i64
  %5888 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5887
  %5889 = load i64, ptr %5888, align 8, !tbaa !22
  %5890 = icmp ult i64 1, %5889
  br i1 %5890, label %5891, label %5892

5891:                                             ; preds = %5877
  br label %5897

5892:                                             ; preds = %5877
  %5893 = load i32, ptr %10, align 4, !tbaa !5
  %5894 = sext i32 %5893 to i64
  %5895 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5894
  %5896 = load i64, ptr %5895, align 8, !tbaa !22
  br label %5897

5897:                                             ; preds = %5892, %5891
  %5898 = phi i64 [ 1, %5891 ], [ %5896, %5892 ]
  %5899 = sub i64 %5885, %5898
  %5900 = load i32, ptr %10, align 4, !tbaa !5
  %5901 = sext i32 %5900 to i64
  %5902 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5901
  %5903 = load i64, ptr %5902, align 8, !tbaa !22
  %5904 = load i32, ptr %10, align 4, !tbaa !5
  %5905 = sext i32 %5904 to i64
  %5906 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5905
  %5907 = load i64, ptr %5906, align 8, !tbaa !22
  %5908 = icmp ult i64 1, %5907
  br i1 %5908, label %5909, label %5910

5909:                                             ; preds = %5897
  br label %5915

5910:                                             ; preds = %5897
  %5911 = load i32, ptr %10, align 4, !tbaa !5
  %5912 = sext i32 %5911 to i64
  %5913 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5912
  %5914 = load i64, ptr %5913, align 8, !tbaa !22
  br label %5915

5915:                                             ; preds = %5910, %5909
  %5916 = phi i64 [ 1, %5909 ], [ %5914, %5910 ]
  %5917 = sub i64 %5903, %5916
  %5918 = lshr i64 %5917, 1
  %5919 = or i64 %5899, %5918
  %5920 = lshr i64 %5919, 2
  %5921 = or i64 %5881, %5920
  %5922 = load i32, ptr %10, align 4, !tbaa !5
  %5923 = sext i32 %5922 to i64
  %5924 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5923
  %5925 = load i64, ptr %5924, align 8, !tbaa !22
  %5926 = load i32, ptr %10, align 4, !tbaa !5
  %5927 = sext i32 %5926 to i64
  %5928 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5927
  %5929 = load i64, ptr %5928, align 8, !tbaa !22
  %5930 = icmp ult i64 1, %5929
  br i1 %5930, label %5931, label %5932

5931:                                             ; preds = %5915
  br label %5937

5932:                                             ; preds = %5915
  %5933 = load i32, ptr %10, align 4, !tbaa !5
  %5934 = sext i32 %5933 to i64
  %5935 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5934
  %5936 = load i64, ptr %5935, align 8, !tbaa !22
  br label %5937

5937:                                             ; preds = %5932, %5931
  %5938 = phi i64 [ 1, %5931 ], [ %5936, %5932 ]
  %5939 = sub i64 %5925, %5938
  %5940 = load i32, ptr %10, align 4, !tbaa !5
  %5941 = sext i32 %5940 to i64
  %5942 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5941
  %5943 = load i64, ptr %5942, align 8, !tbaa !22
  %5944 = load i32, ptr %10, align 4, !tbaa !5
  %5945 = sext i32 %5944 to i64
  %5946 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5945
  %5947 = load i64, ptr %5946, align 8, !tbaa !22
  %5948 = icmp ult i64 1, %5947
  br i1 %5948, label %5949, label %5950

5949:                                             ; preds = %5937
  br label %5955

5950:                                             ; preds = %5937
  %5951 = load i32, ptr %10, align 4, !tbaa !5
  %5952 = sext i32 %5951 to i64
  %5953 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5952
  %5954 = load i64, ptr %5953, align 8, !tbaa !22
  br label %5955

5955:                                             ; preds = %5950, %5949
  %5956 = phi i64 [ 1, %5949 ], [ %5954, %5950 ]
  %5957 = sub i64 %5943, %5956
  %5958 = lshr i64 %5957, 1
  %5959 = or i64 %5939, %5958
  %5960 = load i32, ptr %10, align 4, !tbaa !5
  %5961 = sext i32 %5960 to i64
  %5962 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5961
  %5963 = load i64, ptr %5962, align 8, !tbaa !22
  %5964 = load i32, ptr %10, align 4, !tbaa !5
  %5965 = sext i32 %5964 to i64
  %5966 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5965
  %5967 = load i64, ptr %5966, align 8, !tbaa !22
  %5968 = icmp ult i64 1, %5967
  br i1 %5968, label %5969, label %5970

5969:                                             ; preds = %5955
  br label %5975

5970:                                             ; preds = %5955
  %5971 = load i32, ptr %10, align 4, !tbaa !5
  %5972 = sext i32 %5971 to i64
  %5973 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5972
  %5974 = load i64, ptr %5973, align 8, !tbaa !22
  br label %5975

5975:                                             ; preds = %5970, %5969
  %5976 = phi i64 [ 1, %5969 ], [ %5974, %5970 ]
  %5977 = sub i64 %5963, %5976
  %5978 = load i32, ptr %10, align 4, !tbaa !5
  %5979 = sext i32 %5978 to i64
  %5980 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5979
  %5981 = load i64, ptr %5980, align 8, !tbaa !22
  %5982 = load i32, ptr %10, align 4, !tbaa !5
  %5983 = sext i32 %5982 to i64
  %5984 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5983
  %5985 = load i64, ptr %5984, align 8, !tbaa !22
  %5986 = icmp ult i64 1, %5985
  br i1 %5986, label %5987, label %5988

5987:                                             ; preds = %5975
  br label %5993

5988:                                             ; preds = %5975
  %5989 = load i32, ptr %10, align 4, !tbaa !5
  %5990 = sext i32 %5989 to i64
  %5991 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %5990
  %5992 = load i64, ptr %5991, align 8, !tbaa !22
  br label %5993

5993:                                             ; preds = %5988, %5987
  %5994 = phi i64 [ 1, %5987 ], [ %5992, %5988 ]
  %5995 = sub i64 %5981, %5994
  %5996 = lshr i64 %5995, 1
  %5997 = or i64 %5977, %5996
  %5998 = lshr i64 %5997, 2
  %5999 = or i64 %5959, %5998
  %6000 = lshr i64 %5999, 4
  %6001 = or i64 %5921, %6000
  %6002 = load i32, ptr %10, align 4, !tbaa !5
  %6003 = sext i32 %6002 to i64
  %6004 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6003
  %6005 = load i64, ptr %6004, align 8, !tbaa !22
  %6006 = load i32, ptr %10, align 4, !tbaa !5
  %6007 = sext i32 %6006 to i64
  %6008 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6007
  %6009 = load i64, ptr %6008, align 8, !tbaa !22
  %6010 = icmp ult i64 1, %6009
  br i1 %6010, label %6011, label %6012

6011:                                             ; preds = %5993
  br label %6017

6012:                                             ; preds = %5993
  %6013 = load i32, ptr %10, align 4, !tbaa !5
  %6014 = sext i32 %6013 to i64
  %6015 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6014
  %6016 = load i64, ptr %6015, align 8, !tbaa !22
  br label %6017

6017:                                             ; preds = %6012, %6011
  %6018 = phi i64 [ 1, %6011 ], [ %6016, %6012 ]
  %6019 = sub i64 %6005, %6018
  %6020 = load i32, ptr %10, align 4, !tbaa !5
  %6021 = sext i32 %6020 to i64
  %6022 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6021
  %6023 = load i64, ptr %6022, align 8, !tbaa !22
  %6024 = load i32, ptr %10, align 4, !tbaa !5
  %6025 = sext i32 %6024 to i64
  %6026 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6025
  %6027 = load i64, ptr %6026, align 8, !tbaa !22
  %6028 = icmp ult i64 1, %6027
  br i1 %6028, label %6029, label %6030

6029:                                             ; preds = %6017
  br label %6035

6030:                                             ; preds = %6017
  %6031 = load i32, ptr %10, align 4, !tbaa !5
  %6032 = sext i32 %6031 to i64
  %6033 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6032
  %6034 = load i64, ptr %6033, align 8, !tbaa !22
  br label %6035

6035:                                             ; preds = %6030, %6029
  %6036 = phi i64 [ 1, %6029 ], [ %6034, %6030 ]
  %6037 = sub i64 %6023, %6036
  %6038 = lshr i64 %6037, 1
  %6039 = or i64 %6019, %6038
  %6040 = load i32, ptr %10, align 4, !tbaa !5
  %6041 = sext i32 %6040 to i64
  %6042 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6041
  %6043 = load i64, ptr %6042, align 8, !tbaa !22
  %6044 = load i32, ptr %10, align 4, !tbaa !5
  %6045 = sext i32 %6044 to i64
  %6046 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6045
  %6047 = load i64, ptr %6046, align 8, !tbaa !22
  %6048 = icmp ult i64 1, %6047
  br i1 %6048, label %6049, label %6050

6049:                                             ; preds = %6035
  br label %6055

6050:                                             ; preds = %6035
  %6051 = load i32, ptr %10, align 4, !tbaa !5
  %6052 = sext i32 %6051 to i64
  %6053 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6052
  %6054 = load i64, ptr %6053, align 8, !tbaa !22
  br label %6055

6055:                                             ; preds = %6050, %6049
  %6056 = phi i64 [ 1, %6049 ], [ %6054, %6050 ]
  %6057 = sub i64 %6043, %6056
  %6058 = load i32, ptr %10, align 4, !tbaa !5
  %6059 = sext i32 %6058 to i64
  %6060 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6059
  %6061 = load i64, ptr %6060, align 8, !tbaa !22
  %6062 = load i32, ptr %10, align 4, !tbaa !5
  %6063 = sext i32 %6062 to i64
  %6064 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6063
  %6065 = load i64, ptr %6064, align 8, !tbaa !22
  %6066 = icmp ult i64 1, %6065
  br i1 %6066, label %6067, label %6068

6067:                                             ; preds = %6055
  br label %6073

6068:                                             ; preds = %6055
  %6069 = load i32, ptr %10, align 4, !tbaa !5
  %6070 = sext i32 %6069 to i64
  %6071 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6070
  %6072 = load i64, ptr %6071, align 8, !tbaa !22
  br label %6073

6073:                                             ; preds = %6068, %6067
  %6074 = phi i64 [ 1, %6067 ], [ %6072, %6068 ]
  %6075 = sub i64 %6061, %6074
  %6076 = lshr i64 %6075, 1
  %6077 = or i64 %6057, %6076
  %6078 = lshr i64 %6077, 2
  %6079 = or i64 %6039, %6078
  %6080 = load i32, ptr %10, align 4, !tbaa !5
  %6081 = sext i32 %6080 to i64
  %6082 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6081
  %6083 = load i64, ptr %6082, align 8, !tbaa !22
  %6084 = load i32, ptr %10, align 4, !tbaa !5
  %6085 = sext i32 %6084 to i64
  %6086 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6085
  %6087 = load i64, ptr %6086, align 8, !tbaa !22
  %6088 = icmp ult i64 1, %6087
  br i1 %6088, label %6089, label %6090

6089:                                             ; preds = %6073
  br label %6095

6090:                                             ; preds = %6073
  %6091 = load i32, ptr %10, align 4, !tbaa !5
  %6092 = sext i32 %6091 to i64
  %6093 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6092
  %6094 = load i64, ptr %6093, align 8, !tbaa !22
  br label %6095

6095:                                             ; preds = %6090, %6089
  %6096 = phi i64 [ 1, %6089 ], [ %6094, %6090 ]
  %6097 = sub i64 %6083, %6096
  %6098 = load i32, ptr %10, align 4, !tbaa !5
  %6099 = sext i32 %6098 to i64
  %6100 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6099
  %6101 = load i64, ptr %6100, align 8, !tbaa !22
  %6102 = load i32, ptr %10, align 4, !tbaa !5
  %6103 = sext i32 %6102 to i64
  %6104 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6103
  %6105 = load i64, ptr %6104, align 8, !tbaa !22
  %6106 = icmp ult i64 1, %6105
  br i1 %6106, label %6107, label %6108

6107:                                             ; preds = %6095
  br label %6113

6108:                                             ; preds = %6095
  %6109 = load i32, ptr %10, align 4, !tbaa !5
  %6110 = sext i32 %6109 to i64
  %6111 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6110
  %6112 = load i64, ptr %6111, align 8, !tbaa !22
  br label %6113

6113:                                             ; preds = %6108, %6107
  %6114 = phi i64 [ 1, %6107 ], [ %6112, %6108 ]
  %6115 = sub i64 %6101, %6114
  %6116 = lshr i64 %6115, 1
  %6117 = or i64 %6097, %6116
  %6118 = load i32, ptr %10, align 4, !tbaa !5
  %6119 = sext i32 %6118 to i64
  %6120 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6119
  %6121 = load i64, ptr %6120, align 8, !tbaa !22
  %6122 = load i32, ptr %10, align 4, !tbaa !5
  %6123 = sext i32 %6122 to i64
  %6124 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6123
  %6125 = load i64, ptr %6124, align 8, !tbaa !22
  %6126 = icmp ult i64 1, %6125
  br i1 %6126, label %6127, label %6128

6127:                                             ; preds = %6113
  br label %6133

6128:                                             ; preds = %6113
  %6129 = load i32, ptr %10, align 4, !tbaa !5
  %6130 = sext i32 %6129 to i64
  %6131 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6130
  %6132 = load i64, ptr %6131, align 8, !tbaa !22
  br label %6133

6133:                                             ; preds = %6128, %6127
  %6134 = phi i64 [ 1, %6127 ], [ %6132, %6128 ]
  %6135 = sub i64 %6121, %6134
  %6136 = load i32, ptr %10, align 4, !tbaa !5
  %6137 = sext i32 %6136 to i64
  %6138 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6137
  %6139 = load i64, ptr %6138, align 8, !tbaa !22
  %6140 = load i32, ptr %10, align 4, !tbaa !5
  %6141 = sext i32 %6140 to i64
  %6142 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6141
  %6143 = load i64, ptr %6142, align 8, !tbaa !22
  %6144 = icmp ult i64 1, %6143
  br i1 %6144, label %6145, label %6146

6145:                                             ; preds = %6133
  br label %6151

6146:                                             ; preds = %6133
  %6147 = load i32, ptr %10, align 4, !tbaa !5
  %6148 = sext i32 %6147 to i64
  %6149 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6148
  %6150 = load i64, ptr %6149, align 8, !tbaa !22
  br label %6151

6151:                                             ; preds = %6146, %6145
  %6152 = phi i64 [ 1, %6145 ], [ %6150, %6146 ]
  %6153 = sub i64 %6139, %6152
  %6154 = lshr i64 %6153, 1
  %6155 = or i64 %6135, %6154
  %6156 = lshr i64 %6155, 2
  %6157 = or i64 %6117, %6156
  %6158 = lshr i64 %6157, 4
  %6159 = or i64 %6079, %6158
  %6160 = lshr i64 %6159, 8
  %6161 = or i64 %6001, %6160
  %6162 = load i32, ptr %10, align 4, !tbaa !5
  %6163 = sext i32 %6162 to i64
  %6164 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6163
  %6165 = load i64, ptr %6164, align 8, !tbaa !22
  %6166 = load i32, ptr %10, align 4, !tbaa !5
  %6167 = sext i32 %6166 to i64
  %6168 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6167
  %6169 = load i64, ptr %6168, align 8, !tbaa !22
  %6170 = icmp ult i64 1, %6169
  br i1 %6170, label %6171, label %6172

6171:                                             ; preds = %6151
  br label %6177

6172:                                             ; preds = %6151
  %6173 = load i32, ptr %10, align 4, !tbaa !5
  %6174 = sext i32 %6173 to i64
  %6175 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6174
  %6176 = load i64, ptr %6175, align 8, !tbaa !22
  br label %6177

6177:                                             ; preds = %6172, %6171
  %6178 = phi i64 [ 1, %6171 ], [ %6176, %6172 ]
  %6179 = sub i64 %6165, %6178
  %6180 = load i32, ptr %10, align 4, !tbaa !5
  %6181 = sext i32 %6180 to i64
  %6182 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6181
  %6183 = load i64, ptr %6182, align 8, !tbaa !22
  %6184 = load i32, ptr %10, align 4, !tbaa !5
  %6185 = sext i32 %6184 to i64
  %6186 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6185
  %6187 = load i64, ptr %6186, align 8, !tbaa !22
  %6188 = icmp ult i64 1, %6187
  br i1 %6188, label %6189, label %6190

6189:                                             ; preds = %6177
  br label %6195

6190:                                             ; preds = %6177
  %6191 = load i32, ptr %10, align 4, !tbaa !5
  %6192 = sext i32 %6191 to i64
  %6193 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6192
  %6194 = load i64, ptr %6193, align 8, !tbaa !22
  br label %6195

6195:                                             ; preds = %6190, %6189
  %6196 = phi i64 [ 1, %6189 ], [ %6194, %6190 ]
  %6197 = sub i64 %6183, %6196
  %6198 = lshr i64 %6197, 1
  %6199 = or i64 %6179, %6198
  %6200 = load i32, ptr %10, align 4, !tbaa !5
  %6201 = sext i32 %6200 to i64
  %6202 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6201
  %6203 = load i64, ptr %6202, align 8, !tbaa !22
  %6204 = load i32, ptr %10, align 4, !tbaa !5
  %6205 = sext i32 %6204 to i64
  %6206 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6205
  %6207 = load i64, ptr %6206, align 8, !tbaa !22
  %6208 = icmp ult i64 1, %6207
  br i1 %6208, label %6209, label %6210

6209:                                             ; preds = %6195
  br label %6215

6210:                                             ; preds = %6195
  %6211 = load i32, ptr %10, align 4, !tbaa !5
  %6212 = sext i32 %6211 to i64
  %6213 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6212
  %6214 = load i64, ptr %6213, align 8, !tbaa !22
  br label %6215

6215:                                             ; preds = %6210, %6209
  %6216 = phi i64 [ 1, %6209 ], [ %6214, %6210 ]
  %6217 = sub i64 %6203, %6216
  %6218 = load i32, ptr %10, align 4, !tbaa !5
  %6219 = sext i32 %6218 to i64
  %6220 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6219
  %6221 = load i64, ptr %6220, align 8, !tbaa !22
  %6222 = load i32, ptr %10, align 4, !tbaa !5
  %6223 = sext i32 %6222 to i64
  %6224 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6223
  %6225 = load i64, ptr %6224, align 8, !tbaa !22
  %6226 = icmp ult i64 1, %6225
  br i1 %6226, label %6227, label %6228

6227:                                             ; preds = %6215
  br label %6233

6228:                                             ; preds = %6215
  %6229 = load i32, ptr %10, align 4, !tbaa !5
  %6230 = sext i32 %6229 to i64
  %6231 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6230
  %6232 = load i64, ptr %6231, align 8, !tbaa !22
  br label %6233

6233:                                             ; preds = %6228, %6227
  %6234 = phi i64 [ 1, %6227 ], [ %6232, %6228 ]
  %6235 = sub i64 %6221, %6234
  %6236 = lshr i64 %6235, 1
  %6237 = or i64 %6217, %6236
  %6238 = lshr i64 %6237, 2
  %6239 = or i64 %6199, %6238
  %6240 = load i32, ptr %10, align 4, !tbaa !5
  %6241 = sext i32 %6240 to i64
  %6242 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6241
  %6243 = load i64, ptr %6242, align 8, !tbaa !22
  %6244 = load i32, ptr %10, align 4, !tbaa !5
  %6245 = sext i32 %6244 to i64
  %6246 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6245
  %6247 = load i64, ptr %6246, align 8, !tbaa !22
  %6248 = icmp ult i64 1, %6247
  br i1 %6248, label %6249, label %6250

6249:                                             ; preds = %6233
  br label %6255

6250:                                             ; preds = %6233
  %6251 = load i32, ptr %10, align 4, !tbaa !5
  %6252 = sext i32 %6251 to i64
  %6253 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6252
  %6254 = load i64, ptr %6253, align 8, !tbaa !22
  br label %6255

6255:                                             ; preds = %6250, %6249
  %6256 = phi i64 [ 1, %6249 ], [ %6254, %6250 ]
  %6257 = sub i64 %6243, %6256
  %6258 = load i32, ptr %10, align 4, !tbaa !5
  %6259 = sext i32 %6258 to i64
  %6260 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6259
  %6261 = load i64, ptr %6260, align 8, !tbaa !22
  %6262 = load i32, ptr %10, align 4, !tbaa !5
  %6263 = sext i32 %6262 to i64
  %6264 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6263
  %6265 = load i64, ptr %6264, align 8, !tbaa !22
  %6266 = icmp ult i64 1, %6265
  br i1 %6266, label %6267, label %6268

6267:                                             ; preds = %6255
  br label %6273

6268:                                             ; preds = %6255
  %6269 = load i32, ptr %10, align 4, !tbaa !5
  %6270 = sext i32 %6269 to i64
  %6271 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6270
  %6272 = load i64, ptr %6271, align 8, !tbaa !22
  br label %6273

6273:                                             ; preds = %6268, %6267
  %6274 = phi i64 [ 1, %6267 ], [ %6272, %6268 ]
  %6275 = sub i64 %6261, %6274
  %6276 = lshr i64 %6275, 1
  %6277 = or i64 %6257, %6276
  %6278 = load i32, ptr %10, align 4, !tbaa !5
  %6279 = sext i32 %6278 to i64
  %6280 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6279
  %6281 = load i64, ptr %6280, align 8, !tbaa !22
  %6282 = load i32, ptr %10, align 4, !tbaa !5
  %6283 = sext i32 %6282 to i64
  %6284 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6283
  %6285 = load i64, ptr %6284, align 8, !tbaa !22
  %6286 = icmp ult i64 1, %6285
  br i1 %6286, label %6287, label %6288

6287:                                             ; preds = %6273
  br label %6293

6288:                                             ; preds = %6273
  %6289 = load i32, ptr %10, align 4, !tbaa !5
  %6290 = sext i32 %6289 to i64
  %6291 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6290
  %6292 = load i64, ptr %6291, align 8, !tbaa !22
  br label %6293

6293:                                             ; preds = %6288, %6287
  %6294 = phi i64 [ 1, %6287 ], [ %6292, %6288 ]
  %6295 = sub i64 %6281, %6294
  %6296 = load i32, ptr %10, align 4, !tbaa !5
  %6297 = sext i32 %6296 to i64
  %6298 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6297
  %6299 = load i64, ptr %6298, align 8, !tbaa !22
  %6300 = load i32, ptr %10, align 4, !tbaa !5
  %6301 = sext i32 %6300 to i64
  %6302 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6301
  %6303 = load i64, ptr %6302, align 8, !tbaa !22
  %6304 = icmp ult i64 1, %6303
  br i1 %6304, label %6305, label %6306

6305:                                             ; preds = %6293
  br label %6311

6306:                                             ; preds = %6293
  %6307 = load i32, ptr %10, align 4, !tbaa !5
  %6308 = sext i32 %6307 to i64
  %6309 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6308
  %6310 = load i64, ptr %6309, align 8, !tbaa !22
  br label %6311

6311:                                             ; preds = %6306, %6305
  %6312 = phi i64 [ 1, %6305 ], [ %6310, %6306 ]
  %6313 = sub i64 %6299, %6312
  %6314 = lshr i64 %6313, 1
  %6315 = or i64 %6295, %6314
  %6316 = lshr i64 %6315, 2
  %6317 = or i64 %6277, %6316
  %6318 = lshr i64 %6317, 4
  %6319 = or i64 %6239, %6318
  %6320 = load i32, ptr %10, align 4, !tbaa !5
  %6321 = sext i32 %6320 to i64
  %6322 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6321
  %6323 = load i64, ptr %6322, align 8, !tbaa !22
  %6324 = load i32, ptr %10, align 4, !tbaa !5
  %6325 = sext i32 %6324 to i64
  %6326 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6325
  %6327 = load i64, ptr %6326, align 8, !tbaa !22
  %6328 = icmp ult i64 1, %6327
  br i1 %6328, label %6329, label %6330

6329:                                             ; preds = %6311
  br label %6335

6330:                                             ; preds = %6311
  %6331 = load i32, ptr %10, align 4, !tbaa !5
  %6332 = sext i32 %6331 to i64
  %6333 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6332
  %6334 = load i64, ptr %6333, align 8, !tbaa !22
  br label %6335

6335:                                             ; preds = %6330, %6329
  %6336 = phi i64 [ 1, %6329 ], [ %6334, %6330 ]
  %6337 = sub i64 %6323, %6336
  %6338 = load i32, ptr %10, align 4, !tbaa !5
  %6339 = sext i32 %6338 to i64
  %6340 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6339
  %6341 = load i64, ptr %6340, align 8, !tbaa !22
  %6342 = load i32, ptr %10, align 4, !tbaa !5
  %6343 = sext i32 %6342 to i64
  %6344 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6343
  %6345 = load i64, ptr %6344, align 8, !tbaa !22
  %6346 = icmp ult i64 1, %6345
  br i1 %6346, label %6347, label %6348

6347:                                             ; preds = %6335
  br label %6353

6348:                                             ; preds = %6335
  %6349 = load i32, ptr %10, align 4, !tbaa !5
  %6350 = sext i32 %6349 to i64
  %6351 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6350
  %6352 = load i64, ptr %6351, align 8, !tbaa !22
  br label %6353

6353:                                             ; preds = %6348, %6347
  %6354 = phi i64 [ 1, %6347 ], [ %6352, %6348 ]
  %6355 = sub i64 %6341, %6354
  %6356 = lshr i64 %6355, 1
  %6357 = or i64 %6337, %6356
  %6358 = load i32, ptr %10, align 4, !tbaa !5
  %6359 = sext i32 %6358 to i64
  %6360 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6359
  %6361 = load i64, ptr %6360, align 8, !tbaa !22
  %6362 = load i32, ptr %10, align 4, !tbaa !5
  %6363 = sext i32 %6362 to i64
  %6364 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6363
  %6365 = load i64, ptr %6364, align 8, !tbaa !22
  %6366 = icmp ult i64 1, %6365
  br i1 %6366, label %6367, label %6368

6367:                                             ; preds = %6353
  br label %6373

6368:                                             ; preds = %6353
  %6369 = load i32, ptr %10, align 4, !tbaa !5
  %6370 = sext i32 %6369 to i64
  %6371 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6370
  %6372 = load i64, ptr %6371, align 8, !tbaa !22
  br label %6373

6373:                                             ; preds = %6368, %6367
  %6374 = phi i64 [ 1, %6367 ], [ %6372, %6368 ]
  %6375 = sub i64 %6361, %6374
  %6376 = load i32, ptr %10, align 4, !tbaa !5
  %6377 = sext i32 %6376 to i64
  %6378 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6377
  %6379 = load i64, ptr %6378, align 8, !tbaa !22
  %6380 = load i32, ptr %10, align 4, !tbaa !5
  %6381 = sext i32 %6380 to i64
  %6382 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6381
  %6383 = load i64, ptr %6382, align 8, !tbaa !22
  %6384 = icmp ult i64 1, %6383
  br i1 %6384, label %6385, label %6386

6385:                                             ; preds = %6373
  br label %6391

6386:                                             ; preds = %6373
  %6387 = load i32, ptr %10, align 4, !tbaa !5
  %6388 = sext i32 %6387 to i64
  %6389 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6388
  %6390 = load i64, ptr %6389, align 8, !tbaa !22
  br label %6391

6391:                                             ; preds = %6386, %6385
  %6392 = phi i64 [ 1, %6385 ], [ %6390, %6386 ]
  %6393 = sub i64 %6379, %6392
  %6394 = lshr i64 %6393, 1
  %6395 = or i64 %6375, %6394
  %6396 = lshr i64 %6395, 2
  %6397 = or i64 %6357, %6396
  %6398 = load i32, ptr %10, align 4, !tbaa !5
  %6399 = sext i32 %6398 to i64
  %6400 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6399
  %6401 = load i64, ptr %6400, align 8, !tbaa !22
  %6402 = load i32, ptr %10, align 4, !tbaa !5
  %6403 = sext i32 %6402 to i64
  %6404 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6403
  %6405 = load i64, ptr %6404, align 8, !tbaa !22
  %6406 = icmp ult i64 1, %6405
  br i1 %6406, label %6407, label %6408

6407:                                             ; preds = %6391
  br label %6413

6408:                                             ; preds = %6391
  %6409 = load i32, ptr %10, align 4, !tbaa !5
  %6410 = sext i32 %6409 to i64
  %6411 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6410
  %6412 = load i64, ptr %6411, align 8, !tbaa !22
  br label %6413

6413:                                             ; preds = %6408, %6407
  %6414 = phi i64 [ 1, %6407 ], [ %6412, %6408 ]
  %6415 = sub i64 %6401, %6414
  %6416 = load i32, ptr %10, align 4, !tbaa !5
  %6417 = sext i32 %6416 to i64
  %6418 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6417
  %6419 = load i64, ptr %6418, align 8, !tbaa !22
  %6420 = load i32, ptr %10, align 4, !tbaa !5
  %6421 = sext i32 %6420 to i64
  %6422 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6421
  %6423 = load i64, ptr %6422, align 8, !tbaa !22
  %6424 = icmp ult i64 1, %6423
  br i1 %6424, label %6425, label %6426

6425:                                             ; preds = %6413
  br label %6431

6426:                                             ; preds = %6413
  %6427 = load i32, ptr %10, align 4, !tbaa !5
  %6428 = sext i32 %6427 to i64
  %6429 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6428
  %6430 = load i64, ptr %6429, align 8, !tbaa !22
  br label %6431

6431:                                             ; preds = %6426, %6425
  %6432 = phi i64 [ 1, %6425 ], [ %6430, %6426 ]
  %6433 = sub i64 %6419, %6432
  %6434 = lshr i64 %6433, 1
  %6435 = or i64 %6415, %6434
  %6436 = load i32, ptr %10, align 4, !tbaa !5
  %6437 = sext i32 %6436 to i64
  %6438 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6437
  %6439 = load i64, ptr %6438, align 8, !tbaa !22
  %6440 = load i32, ptr %10, align 4, !tbaa !5
  %6441 = sext i32 %6440 to i64
  %6442 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6441
  %6443 = load i64, ptr %6442, align 8, !tbaa !22
  %6444 = icmp ult i64 1, %6443
  br i1 %6444, label %6445, label %6446

6445:                                             ; preds = %6431
  br label %6451

6446:                                             ; preds = %6431
  %6447 = load i32, ptr %10, align 4, !tbaa !5
  %6448 = sext i32 %6447 to i64
  %6449 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6448
  %6450 = load i64, ptr %6449, align 8, !tbaa !22
  br label %6451

6451:                                             ; preds = %6446, %6445
  %6452 = phi i64 [ 1, %6445 ], [ %6450, %6446 ]
  %6453 = sub i64 %6439, %6452
  %6454 = load i32, ptr %10, align 4, !tbaa !5
  %6455 = sext i32 %6454 to i64
  %6456 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6455
  %6457 = load i64, ptr %6456, align 8, !tbaa !22
  %6458 = load i32, ptr %10, align 4, !tbaa !5
  %6459 = sext i32 %6458 to i64
  %6460 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6459
  %6461 = load i64, ptr %6460, align 8, !tbaa !22
  %6462 = icmp ult i64 1, %6461
  br i1 %6462, label %6463, label %6464

6463:                                             ; preds = %6451
  br label %6469

6464:                                             ; preds = %6451
  %6465 = load i32, ptr %10, align 4, !tbaa !5
  %6466 = sext i32 %6465 to i64
  %6467 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6466
  %6468 = load i64, ptr %6467, align 8, !tbaa !22
  br label %6469

6469:                                             ; preds = %6464, %6463
  %6470 = phi i64 [ 1, %6463 ], [ %6468, %6464 ]
  %6471 = sub i64 %6457, %6470
  %6472 = lshr i64 %6471, 1
  %6473 = or i64 %6453, %6472
  %6474 = lshr i64 %6473, 2
  %6475 = or i64 %6435, %6474
  %6476 = lshr i64 %6475, 4
  %6477 = or i64 %6397, %6476
  %6478 = lshr i64 %6477, 8
  %6479 = or i64 %6319, %6478
  %6480 = lshr i64 %6479, 16
  %6481 = or i64 %6161, %6480
  %6482 = lshr i64 %6481, 32
  %6483 = or i64 %5843, %6482
  %6484 = load i32, ptr %10, align 4, !tbaa !5
  %6485 = sext i32 %6484 to i64
  %6486 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6485
  %6487 = load i64, ptr %6486, align 8, !tbaa !22
  %6488 = icmp ult i64 1, %6487
  br i1 %6488, label %6489, label %6490

6489:                                             ; preds = %6469
  br label %6495

6490:                                             ; preds = %6469
  %6491 = load i32, ptr %10, align 4, !tbaa !5
  %6492 = sext i32 %6491 to i64
  %6493 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6492
  %6494 = load i64, ptr %6493, align 8, !tbaa !22
  br label %6495

6495:                                             ; preds = %6490, %6489
  %6496 = phi i64 [ 1, %6489 ], [ %6494, %6490 ]
  %6497 = add i64 %6483, %6496
  %6498 = icmp eq i64 %5205, %6497
  br label %6499

6499:                                             ; preds = %6495, %5193
  %6500 = phi i1 [ false, %5193 ], [ %6498, %6495 ]
  %6501 = zext i1 %6500 to i32
  %6502 = icmp ne i32 %5195, %6501
  br i1 %6502, label %6503, label %6504

6503:                                             ; preds = %6499
  call void @exit(i32 noundef 1) #10
  unreachable

6504:                                             ; preds = %6499
  %6505 = load i32, ptr %10, align 4, !tbaa !5
  %6506 = sext i32 %6505 to i64
  %6507 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6506
  %6508 = load i64, ptr %6507, align 8, !tbaa !22
  %6509 = icmp ne i64 0, %6508
  br i1 %6509, label %6510, label %6523

6510:                                             ; preds = %6504
  %6511 = load i32, ptr %10, align 4, !tbaa !5
  %6512 = sext i32 %6511 to i64
  %6513 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6512
  %6514 = load i64, ptr %6513, align 8, !tbaa !22
  %6515 = load i32, ptr %10, align 4, !tbaa !5
  %6516 = sext i32 %6515 to i64
  %6517 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6516
  %6518 = load i64, ptr %6517, align 8, !tbaa !22
  %6519 = sub i64 %6518, 1
  %6520 = and i64 %6514, %6519
  %6521 = icmp ne i64 %6520, 0
  %6522 = xor i1 %6521, true
  br label %6523

6523:                                             ; preds = %6510, %6504
  %6524 = phi i1 [ false, %6504 ], [ %6522, %6510 ]
  %6525 = zext i1 %6524 to i32
  %6526 = load i32, ptr %10, align 4, !tbaa !5
  %6527 = sext i32 %6526 to i64
  %6528 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6527
  %6529 = load i64, ptr %6528, align 8, !tbaa !22
  %6530 = icmp ne i64 0, %6529
  br i1 %6530, label %6531, label %6997

6531:                                             ; preds = %6523
  %6532 = load i32, ptr %10, align 4, !tbaa !5
  %6533 = sext i32 %6532 to i64
  %6534 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6533
  %6535 = load i64, ptr %6534, align 8, !tbaa !22
  %6536 = load i32, ptr %10, align 4, !tbaa !5
  %6537 = sext i32 %6536 to i64
  %6538 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6537
  %6539 = load i64, ptr %6538, align 8, !tbaa !22
  %6540 = lshr i64 %6539, 1
  %6541 = load i32, ptr %10, align 4, !tbaa !5
  %6542 = sext i32 %6541 to i64
  %6543 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6542
  %6544 = load i64, ptr %6543, align 8, !tbaa !22
  %6545 = lshr i64 %6544, 1
  %6546 = lshr i64 %6545, 1
  %6547 = or i64 %6540, %6546
  %6548 = load i32, ptr %10, align 4, !tbaa !5
  %6549 = sext i32 %6548 to i64
  %6550 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6549
  %6551 = load i64, ptr %6550, align 8, !tbaa !22
  %6552 = lshr i64 %6551, 1
  %6553 = load i32, ptr %10, align 4, !tbaa !5
  %6554 = sext i32 %6553 to i64
  %6555 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6554
  %6556 = load i64, ptr %6555, align 8, !tbaa !22
  %6557 = lshr i64 %6556, 1
  %6558 = lshr i64 %6557, 1
  %6559 = or i64 %6552, %6558
  %6560 = lshr i64 %6559, 2
  %6561 = or i64 %6547, %6560
  %6562 = load i32, ptr %10, align 4, !tbaa !5
  %6563 = sext i32 %6562 to i64
  %6564 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6563
  %6565 = load i64, ptr %6564, align 8, !tbaa !22
  %6566 = lshr i64 %6565, 1
  %6567 = load i32, ptr %10, align 4, !tbaa !5
  %6568 = sext i32 %6567 to i64
  %6569 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6568
  %6570 = load i64, ptr %6569, align 8, !tbaa !22
  %6571 = lshr i64 %6570, 1
  %6572 = lshr i64 %6571, 1
  %6573 = or i64 %6566, %6572
  %6574 = load i32, ptr %10, align 4, !tbaa !5
  %6575 = sext i32 %6574 to i64
  %6576 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6575
  %6577 = load i64, ptr %6576, align 8, !tbaa !22
  %6578 = lshr i64 %6577, 1
  %6579 = load i32, ptr %10, align 4, !tbaa !5
  %6580 = sext i32 %6579 to i64
  %6581 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6580
  %6582 = load i64, ptr %6581, align 8, !tbaa !22
  %6583 = lshr i64 %6582, 1
  %6584 = lshr i64 %6583, 1
  %6585 = or i64 %6578, %6584
  %6586 = lshr i64 %6585, 2
  %6587 = or i64 %6573, %6586
  %6588 = lshr i64 %6587, 4
  %6589 = or i64 %6561, %6588
  %6590 = load i32, ptr %10, align 4, !tbaa !5
  %6591 = sext i32 %6590 to i64
  %6592 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6591
  %6593 = load i64, ptr %6592, align 8, !tbaa !22
  %6594 = lshr i64 %6593, 1
  %6595 = load i32, ptr %10, align 4, !tbaa !5
  %6596 = sext i32 %6595 to i64
  %6597 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6596
  %6598 = load i64, ptr %6597, align 8, !tbaa !22
  %6599 = lshr i64 %6598, 1
  %6600 = lshr i64 %6599, 1
  %6601 = or i64 %6594, %6600
  %6602 = load i32, ptr %10, align 4, !tbaa !5
  %6603 = sext i32 %6602 to i64
  %6604 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6603
  %6605 = load i64, ptr %6604, align 8, !tbaa !22
  %6606 = lshr i64 %6605, 1
  %6607 = load i32, ptr %10, align 4, !tbaa !5
  %6608 = sext i32 %6607 to i64
  %6609 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6608
  %6610 = load i64, ptr %6609, align 8, !tbaa !22
  %6611 = lshr i64 %6610, 1
  %6612 = lshr i64 %6611, 1
  %6613 = or i64 %6606, %6612
  %6614 = lshr i64 %6613, 2
  %6615 = or i64 %6601, %6614
  %6616 = load i32, ptr %10, align 4, !tbaa !5
  %6617 = sext i32 %6616 to i64
  %6618 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6617
  %6619 = load i64, ptr %6618, align 8, !tbaa !22
  %6620 = lshr i64 %6619, 1
  %6621 = load i32, ptr %10, align 4, !tbaa !5
  %6622 = sext i32 %6621 to i64
  %6623 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6622
  %6624 = load i64, ptr %6623, align 8, !tbaa !22
  %6625 = lshr i64 %6624, 1
  %6626 = lshr i64 %6625, 1
  %6627 = or i64 %6620, %6626
  %6628 = load i32, ptr %10, align 4, !tbaa !5
  %6629 = sext i32 %6628 to i64
  %6630 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6629
  %6631 = load i64, ptr %6630, align 8, !tbaa !22
  %6632 = lshr i64 %6631, 1
  %6633 = load i32, ptr %10, align 4, !tbaa !5
  %6634 = sext i32 %6633 to i64
  %6635 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6634
  %6636 = load i64, ptr %6635, align 8, !tbaa !22
  %6637 = lshr i64 %6636, 1
  %6638 = lshr i64 %6637, 1
  %6639 = or i64 %6632, %6638
  %6640 = lshr i64 %6639, 2
  %6641 = or i64 %6627, %6640
  %6642 = lshr i64 %6641, 4
  %6643 = or i64 %6615, %6642
  %6644 = lshr i64 %6643, 8
  %6645 = or i64 %6589, %6644
  %6646 = load i32, ptr %10, align 4, !tbaa !5
  %6647 = sext i32 %6646 to i64
  %6648 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6647
  %6649 = load i64, ptr %6648, align 8, !tbaa !22
  %6650 = lshr i64 %6649, 1
  %6651 = load i32, ptr %10, align 4, !tbaa !5
  %6652 = sext i32 %6651 to i64
  %6653 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6652
  %6654 = load i64, ptr %6653, align 8, !tbaa !22
  %6655 = lshr i64 %6654, 1
  %6656 = lshr i64 %6655, 1
  %6657 = or i64 %6650, %6656
  %6658 = load i32, ptr %10, align 4, !tbaa !5
  %6659 = sext i32 %6658 to i64
  %6660 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6659
  %6661 = load i64, ptr %6660, align 8, !tbaa !22
  %6662 = lshr i64 %6661, 1
  %6663 = load i32, ptr %10, align 4, !tbaa !5
  %6664 = sext i32 %6663 to i64
  %6665 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6664
  %6666 = load i64, ptr %6665, align 8, !tbaa !22
  %6667 = lshr i64 %6666, 1
  %6668 = lshr i64 %6667, 1
  %6669 = or i64 %6662, %6668
  %6670 = lshr i64 %6669, 2
  %6671 = or i64 %6657, %6670
  %6672 = load i32, ptr %10, align 4, !tbaa !5
  %6673 = sext i32 %6672 to i64
  %6674 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6673
  %6675 = load i64, ptr %6674, align 8, !tbaa !22
  %6676 = lshr i64 %6675, 1
  %6677 = load i32, ptr %10, align 4, !tbaa !5
  %6678 = sext i32 %6677 to i64
  %6679 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6678
  %6680 = load i64, ptr %6679, align 8, !tbaa !22
  %6681 = lshr i64 %6680, 1
  %6682 = lshr i64 %6681, 1
  %6683 = or i64 %6676, %6682
  %6684 = load i32, ptr %10, align 4, !tbaa !5
  %6685 = sext i32 %6684 to i64
  %6686 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6685
  %6687 = load i64, ptr %6686, align 8, !tbaa !22
  %6688 = lshr i64 %6687, 1
  %6689 = load i32, ptr %10, align 4, !tbaa !5
  %6690 = sext i32 %6689 to i64
  %6691 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6690
  %6692 = load i64, ptr %6691, align 8, !tbaa !22
  %6693 = lshr i64 %6692, 1
  %6694 = lshr i64 %6693, 1
  %6695 = or i64 %6688, %6694
  %6696 = lshr i64 %6695, 2
  %6697 = or i64 %6683, %6696
  %6698 = lshr i64 %6697, 4
  %6699 = or i64 %6671, %6698
  %6700 = load i32, ptr %10, align 4, !tbaa !5
  %6701 = sext i32 %6700 to i64
  %6702 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6701
  %6703 = load i64, ptr %6702, align 8, !tbaa !22
  %6704 = lshr i64 %6703, 1
  %6705 = load i32, ptr %10, align 4, !tbaa !5
  %6706 = sext i32 %6705 to i64
  %6707 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6706
  %6708 = load i64, ptr %6707, align 8, !tbaa !22
  %6709 = lshr i64 %6708, 1
  %6710 = lshr i64 %6709, 1
  %6711 = or i64 %6704, %6710
  %6712 = load i32, ptr %10, align 4, !tbaa !5
  %6713 = sext i32 %6712 to i64
  %6714 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6713
  %6715 = load i64, ptr %6714, align 8, !tbaa !22
  %6716 = lshr i64 %6715, 1
  %6717 = load i32, ptr %10, align 4, !tbaa !5
  %6718 = sext i32 %6717 to i64
  %6719 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6718
  %6720 = load i64, ptr %6719, align 8, !tbaa !22
  %6721 = lshr i64 %6720, 1
  %6722 = lshr i64 %6721, 1
  %6723 = or i64 %6716, %6722
  %6724 = lshr i64 %6723, 2
  %6725 = or i64 %6711, %6724
  %6726 = load i32, ptr %10, align 4, !tbaa !5
  %6727 = sext i32 %6726 to i64
  %6728 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6727
  %6729 = load i64, ptr %6728, align 8, !tbaa !22
  %6730 = lshr i64 %6729, 1
  %6731 = load i32, ptr %10, align 4, !tbaa !5
  %6732 = sext i32 %6731 to i64
  %6733 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6732
  %6734 = load i64, ptr %6733, align 8, !tbaa !22
  %6735 = lshr i64 %6734, 1
  %6736 = lshr i64 %6735, 1
  %6737 = or i64 %6730, %6736
  %6738 = load i32, ptr %10, align 4, !tbaa !5
  %6739 = sext i32 %6738 to i64
  %6740 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6739
  %6741 = load i64, ptr %6740, align 8, !tbaa !22
  %6742 = lshr i64 %6741, 1
  %6743 = load i32, ptr %10, align 4, !tbaa !5
  %6744 = sext i32 %6743 to i64
  %6745 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6744
  %6746 = load i64, ptr %6745, align 8, !tbaa !22
  %6747 = lshr i64 %6746, 1
  %6748 = lshr i64 %6747, 1
  %6749 = or i64 %6742, %6748
  %6750 = lshr i64 %6749, 2
  %6751 = or i64 %6737, %6750
  %6752 = lshr i64 %6751, 4
  %6753 = or i64 %6725, %6752
  %6754 = lshr i64 %6753, 8
  %6755 = or i64 %6699, %6754
  %6756 = lshr i64 %6755, 16
  %6757 = or i64 %6645, %6756
  %6758 = load i32, ptr %10, align 4, !tbaa !5
  %6759 = sext i32 %6758 to i64
  %6760 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6759
  %6761 = load i64, ptr %6760, align 8, !tbaa !22
  %6762 = lshr i64 %6761, 1
  %6763 = load i32, ptr %10, align 4, !tbaa !5
  %6764 = sext i32 %6763 to i64
  %6765 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6764
  %6766 = load i64, ptr %6765, align 8, !tbaa !22
  %6767 = lshr i64 %6766, 1
  %6768 = lshr i64 %6767, 1
  %6769 = or i64 %6762, %6768
  %6770 = load i32, ptr %10, align 4, !tbaa !5
  %6771 = sext i32 %6770 to i64
  %6772 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6771
  %6773 = load i64, ptr %6772, align 8, !tbaa !22
  %6774 = lshr i64 %6773, 1
  %6775 = load i32, ptr %10, align 4, !tbaa !5
  %6776 = sext i32 %6775 to i64
  %6777 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6776
  %6778 = load i64, ptr %6777, align 8, !tbaa !22
  %6779 = lshr i64 %6778, 1
  %6780 = lshr i64 %6779, 1
  %6781 = or i64 %6774, %6780
  %6782 = lshr i64 %6781, 2
  %6783 = or i64 %6769, %6782
  %6784 = load i32, ptr %10, align 4, !tbaa !5
  %6785 = sext i32 %6784 to i64
  %6786 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6785
  %6787 = load i64, ptr %6786, align 8, !tbaa !22
  %6788 = lshr i64 %6787, 1
  %6789 = load i32, ptr %10, align 4, !tbaa !5
  %6790 = sext i32 %6789 to i64
  %6791 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6790
  %6792 = load i64, ptr %6791, align 8, !tbaa !22
  %6793 = lshr i64 %6792, 1
  %6794 = lshr i64 %6793, 1
  %6795 = or i64 %6788, %6794
  %6796 = load i32, ptr %10, align 4, !tbaa !5
  %6797 = sext i32 %6796 to i64
  %6798 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6797
  %6799 = load i64, ptr %6798, align 8, !tbaa !22
  %6800 = lshr i64 %6799, 1
  %6801 = load i32, ptr %10, align 4, !tbaa !5
  %6802 = sext i32 %6801 to i64
  %6803 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6802
  %6804 = load i64, ptr %6803, align 8, !tbaa !22
  %6805 = lshr i64 %6804, 1
  %6806 = lshr i64 %6805, 1
  %6807 = or i64 %6800, %6806
  %6808 = lshr i64 %6807, 2
  %6809 = or i64 %6795, %6808
  %6810 = lshr i64 %6809, 4
  %6811 = or i64 %6783, %6810
  %6812 = load i32, ptr %10, align 4, !tbaa !5
  %6813 = sext i32 %6812 to i64
  %6814 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6813
  %6815 = load i64, ptr %6814, align 8, !tbaa !22
  %6816 = lshr i64 %6815, 1
  %6817 = load i32, ptr %10, align 4, !tbaa !5
  %6818 = sext i32 %6817 to i64
  %6819 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6818
  %6820 = load i64, ptr %6819, align 8, !tbaa !22
  %6821 = lshr i64 %6820, 1
  %6822 = lshr i64 %6821, 1
  %6823 = or i64 %6816, %6822
  %6824 = load i32, ptr %10, align 4, !tbaa !5
  %6825 = sext i32 %6824 to i64
  %6826 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6825
  %6827 = load i64, ptr %6826, align 8, !tbaa !22
  %6828 = lshr i64 %6827, 1
  %6829 = load i32, ptr %10, align 4, !tbaa !5
  %6830 = sext i32 %6829 to i64
  %6831 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6830
  %6832 = load i64, ptr %6831, align 8, !tbaa !22
  %6833 = lshr i64 %6832, 1
  %6834 = lshr i64 %6833, 1
  %6835 = or i64 %6828, %6834
  %6836 = lshr i64 %6835, 2
  %6837 = or i64 %6823, %6836
  %6838 = load i32, ptr %10, align 4, !tbaa !5
  %6839 = sext i32 %6838 to i64
  %6840 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6839
  %6841 = load i64, ptr %6840, align 8, !tbaa !22
  %6842 = lshr i64 %6841, 1
  %6843 = load i32, ptr %10, align 4, !tbaa !5
  %6844 = sext i32 %6843 to i64
  %6845 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6844
  %6846 = load i64, ptr %6845, align 8, !tbaa !22
  %6847 = lshr i64 %6846, 1
  %6848 = lshr i64 %6847, 1
  %6849 = or i64 %6842, %6848
  %6850 = load i32, ptr %10, align 4, !tbaa !5
  %6851 = sext i32 %6850 to i64
  %6852 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6851
  %6853 = load i64, ptr %6852, align 8, !tbaa !22
  %6854 = lshr i64 %6853, 1
  %6855 = load i32, ptr %10, align 4, !tbaa !5
  %6856 = sext i32 %6855 to i64
  %6857 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6856
  %6858 = load i64, ptr %6857, align 8, !tbaa !22
  %6859 = lshr i64 %6858, 1
  %6860 = lshr i64 %6859, 1
  %6861 = or i64 %6854, %6860
  %6862 = lshr i64 %6861, 2
  %6863 = or i64 %6849, %6862
  %6864 = lshr i64 %6863, 4
  %6865 = or i64 %6837, %6864
  %6866 = lshr i64 %6865, 8
  %6867 = or i64 %6811, %6866
  %6868 = load i32, ptr %10, align 4, !tbaa !5
  %6869 = sext i32 %6868 to i64
  %6870 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6869
  %6871 = load i64, ptr %6870, align 8, !tbaa !22
  %6872 = lshr i64 %6871, 1
  %6873 = load i32, ptr %10, align 4, !tbaa !5
  %6874 = sext i32 %6873 to i64
  %6875 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6874
  %6876 = load i64, ptr %6875, align 8, !tbaa !22
  %6877 = lshr i64 %6876, 1
  %6878 = lshr i64 %6877, 1
  %6879 = or i64 %6872, %6878
  %6880 = load i32, ptr %10, align 4, !tbaa !5
  %6881 = sext i32 %6880 to i64
  %6882 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6881
  %6883 = load i64, ptr %6882, align 8, !tbaa !22
  %6884 = lshr i64 %6883, 1
  %6885 = load i32, ptr %10, align 4, !tbaa !5
  %6886 = sext i32 %6885 to i64
  %6887 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6886
  %6888 = load i64, ptr %6887, align 8, !tbaa !22
  %6889 = lshr i64 %6888, 1
  %6890 = lshr i64 %6889, 1
  %6891 = or i64 %6884, %6890
  %6892 = lshr i64 %6891, 2
  %6893 = or i64 %6879, %6892
  %6894 = load i32, ptr %10, align 4, !tbaa !5
  %6895 = sext i32 %6894 to i64
  %6896 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6895
  %6897 = load i64, ptr %6896, align 8, !tbaa !22
  %6898 = lshr i64 %6897, 1
  %6899 = load i32, ptr %10, align 4, !tbaa !5
  %6900 = sext i32 %6899 to i64
  %6901 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6900
  %6902 = load i64, ptr %6901, align 8, !tbaa !22
  %6903 = lshr i64 %6902, 1
  %6904 = lshr i64 %6903, 1
  %6905 = or i64 %6898, %6904
  %6906 = load i32, ptr %10, align 4, !tbaa !5
  %6907 = sext i32 %6906 to i64
  %6908 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6907
  %6909 = load i64, ptr %6908, align 8, !tbaa !22
  %6910 = lshr i64 %6909, 1
  %6911 = load i32, ptr %10, align 4, !tbaa !5
  %6912 = sext i32 %6911 to i64
  %6913 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6912
  %6914 = load i64, ptr %6913, align 8, !tbaa !22
  %6915 = lshr i64 %6914, 1
  %6916 = lshr i64 %6915, 1
  %6917 = or i64 %6910, %6916
  %6918 = lshr i64 %6917, 2
  %6919 = or i64 %6905, %6918
  %6920 = lshr i64 %6919, 4
  %6921 = or i64 %6893, %6920
  %6922 = load i32, ptr %10, align 4, !tbaa !5
  %6923 = sext i32 %6922 to i64
  %6924 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6923
  %6925 = load i64, ptr %6924, align 8, !tbaa !22
  %6926 = lshr i64 %6925, 1
  %6927 = load i32, ptr %10, align 4, !tbaa !5
  %6928 = sext i32 %6927 to i64
  %6929 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6928
  %6930 = load i64, ptr %6929, align 8, !tbaa !22
  %6931 = lshr i64 %6930, 1
  %6932 = lshr i64 %6931, 1
  %6933 = or i64 %6926, %6932
  %6934 = load i32, ptr %10, align 4, !tbaa !5
  %6935 = sext i32 %6934 to i64
  %6936 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6935
  %6937 = load i64, ptr %6936, align 8, !tbaa !22
  %6938 = lshr i64 %6937, 1
  %6939 = load i32, ptr %10, align 4, !tbaa !5
  %6940 = sext i32 %6939 to i64
  %6941 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6940
  %6942 = load i64, ptr %6941, align 8, !tbaa !22
  %6943 = lshr i64 %6942, 1
  %6944 = lshr i64 %6943, 1
  %6945 = or i64 %6938, %6944
  %6946 = lshr i64 %6945, 2
  %6947 = or i64 %6933, %6946
  %6948 = load i32, ptr %10, align 4, !tbaa !5
  %6949 = sext i32 %6948 to i64
  %6950 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6949
  %6951 = load i64, ptr %6950, align 8, !tbaa !22
  %6952 = lshr i64 %6951, 1
  %6953 = load i32, ptr %10, align 4, !tbaa !5
  %6954 = sext i32 %6953 to i64
  %6955 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6954
  %6956 = load i64, ptr %6955, align 8, !tbaa !22
  %6957 = lshr i64 %6956, 1
  %6958 = lshr i64 %6957, 1
  %6959 = or i64 %6952, %6958
  %6960 = load i32, ptr %10, align 4, !tbaa !5
  %6961 = sext i32 %6960 to i64
  %6962 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6961
  %6963 = load i64, ptr %6962, align 8, !tbaa !22
  %6964 = lshr i64 %6963, 1
  %6965 = load i32, ptr %10, align 4, !tbaa !5
  %6966 = sext i32 %6965 to i64
  %6967 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6966
  %6968 = load i64, ptr %6967, align 8, !tbaa !22
  %6969 = lshr i64 %6968, 1
  %6970 = lshr i64 %6969, 1
  %6971 = or i64 %6964, %6970
  %6972 = lshr i64 %6971, 2
  %6973 = or i64 %6959, %6972
  %6974 = lshr i64 %6973, 4
  %6975 = or i64 %6947, %6974
  %6976 = lshr i64 %6975, 8
  %6977 = or i64 %6921, %6976
  %6978 = lshr i64 %6977, 16
  %6979 = or i64 %6867, %6978
  %6980 = lshr i64 %6979, 32
  %6981 = or i64 %6757, %6980
  %6982 = load i32, ptr %10, align 4, !tbaa !5
  %6983 = sext i32 %6982 to i64
  %6984 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6983
  %6985 = load i64, ptr %6984, align 8, !tbaa !22
  %6986 = icmp ult i64 1, %6985
  br i1 %6986, label %6987, label %6988

6987:                                             ; preds = %6531
  br label %6993

6988:                                             ; preds = %6531
  %6989 = load i32, ptr %10, align 4, !tbaa !5
  %6990 = sext i32 %6989 to i64
  %6991 = getelementptr inbounds [7 x i64], ptr %37, i64 0, i64 %6990
  %6992 = load i64, ptr %6991, align 8, !tbaa !22
  br label %6993

6993:                                             ; preds = %6988, %6987
  %6994 = phi i64 [ 1, %6987 ], [ %6992, %6988 ]
  %6995 = add i64 %6981, %6994
  %6996 = icmp eq i64 %6535, %6995
  br label %6997

6997:                                             ; preds = %6993, %6523
  %6998 = phi i1 [ false, %6523 ], [ %6996, %6993 ]
  %6999 = zext i1 %6998 to i32
  %7000 = icmp ne i32 %6525, %6999
  br i1 %7000, label %7001, label %7002

7001:                                             ; preds = %6997
  call void @exit(i32 noundef 1) #10
  unreachable

7002:                                             ; preds = %6997
  %7003 = load i32, ptr %10, align 4, !tbaa !5
  %7004 = sext i32 %7003 to i64
  %7005 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7004
  %7006 = load i64, ptr %7005, align 8, !tbaa !22
  %7007 = icmp ne i64 0, %7006
  br i1 %7007, label %7008, label %7021

7008:                                             ; preds = %7002
  %7009 = load i32, ptr %10, align 4, !tbaa !5
  %7010 = sext i32 %7009 to i64
  %7011 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7010
  %7012 = load i64, ptr %7011, align 8, !tbaa !22
  %7013 = load i32, ptr %10, align 4, !tbaa !5
  %7014 = sext i32 %7013 to i64
  %7015 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7014
  %7016 = load i64, ptr %7015, align 8, !tbaa !22
  %7017 = sub i64 %7016, 1
  %7018 = and i64 %7012, %7017
  %7019 = icmp ne i64 %7018, 0
  %7020 = xor i1 %7019, true
  br label %7021

7021:                                             ; preds = %7008, %7002
  %7022 = phi i1 [ false, %7002 ], [ %7020, %7008 ]
  %7023 = zext i1 %7022 to i32
  %7024 = load i32, ptr %10, align 4, !tbaa !5
  %7025 = sext i32 %7024 to i64
  %7026 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7025
  %7027 = load i64, ptr %7026, align 8, !tbaa !22
  %7028 = icmp ne i64 0, %7027
  br i1 %7028, label %7029, label %8327

7029:                                             ; preds = %7021
  %7030 = load i32, ptr %10, align 4, !tbaa !5
  %7031 = sext i32 %7030 to i64
  %7032 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7031
  %7033 = load i64, ptr %7032, align 8, !tbaa !22
  %7034 = load i32, ptr %10, align 4, !tbaa !5
  %7035 = sext i32 %7034 to i64
  %7036 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7035
  %7037 = load i64, ptr %7036, align 8, !tbaa !22
  %7038 = load i32, ptr %10, align 4, !tbaa !5
  %7039 = sext i32 %7038 to i64
  %7040 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7039
  %7041 = load i64, ptr %7040, align 8, !tbaa !22
  %7042 = icmp ult i64 1, %7041
  br i1 %7042, label %7043, label %7044

7043:                                             ; preds = %7029
  br label %7049

7044:                                             ; preds = %7029
  %7045 = load i32, ptr %10, align 4, !tbaa !5
  %7046 = sext i32 %7045 to i64
  %7047 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7046
  %7048 = load i64, ptr %7047, align 8, !tbaa !22
  br label %7049

7049:                                             ; preds = %7044, %7043
  %7050 = phi i64 [ 1, %7043 ], [ %7048, %7044 ]
  %7051 = sub i64 %7037, %7050
  %7052 = load i32, ptr %10, align 4, !tbaa !5
  %7053 = sext i32 %7052 to i64
  %7054 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7053
  %7055 = load i64, ptr %7054, align 8, !tbaa !22
  %7056 = load i32, ptr %10, align 4, !tbaa !5
  %7057 = sext i32 %7056 to i64
  %7058 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7057
  %7059 = load i64, ptr %7058, align 8, !tbaa !22
  %7060 = icmp ult i64 1, %7059
  br i1 %7060, label %7061, label %7062

7061:                                             ; preds = %7049
  br label %7067

7062:                                             ; preds = %7049
  %7063 = load i32, ptr %10, align 4, !tbaa !5
  %7064 = sext i32 %7063 to i64
  %7065 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7064
  %7066 = load i64, ptr %7065, align 8, !tbaa !22
  br label %7067

7067:                                             ; preds = %7062, %7061
  %7068 = phi i64 [ 1, %7061 ], [ %7066, %7062 ]
  %7069 = sub i64 %7055, %7068
  %7070 = lshr i64 %7069, 1
  %7071 = or i64 %7051, %7070
  %7072 = load i32, ptr %10, align 4, !tbaa !5
  %7073 = sext i32 %7072 to i64
  %7074 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7073
  %7075 = load i64, ptr %7074, align 8, !tbaa !22
  %7076 = load i32, ptr %10, align 4, !tbaa !5
  %7077 = sext i32 %7076 to i64
  %7078 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7077
  %7079 = load i64, ptr %7078, align 8, !tbaa !22
  %7080 = icmp ult i64 1, %7079
  br i1 %7080, label %7081, label %7082

7081:                                             ; preds = %7067
  br label %7087

7082:                                             ; preds = %7067
  %7083 = load i32, ptr %10, align 4, !tbaa !5
  %7084 = sext i32 %7083 to i64
  %7085 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7084
  %7086 = load i64, ptr %7085, align 8, !tbaa !22
  br label %7087

7087:                                             ; preds = %7082, %7081
  %7088 = phi i64 [ 1, %7081 ], [ %7086, %7082 ]
  %7089 = sub i64 %7075, %7088
  %7090 = load i32, ptr %10, align 4, !tbaa !5
  %7091 = sext i32 %7090 to i64
  %7092 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7091
  %7093 = load i64, ptr %7092, align 8, !tbaa !22
  %7094 = load i32, ptr %10, align 4, !tbaa !5
  %7095 = sext i32 %7094 to i64
  %7096 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7095
  %7097 = load i64, ptr %7096, align 8, !tbaa !22
  %7098 = icmp ult i64 1, %7097
  br i1 %7098, label %7099, label %7100

7099:                                             ; preds = %7087
  br label %7105

7100:                                             ; preds = %7087
  %7101 = load i32, ptr %10, align 4, !tbaa !5
  %7102 = sext i32 %7101 to i64
  %7103 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7102
  %7104 = load i64, ptr %7103, align 8, !tbaa !22
  br label %7105

7105:                                             ; preds = %7100, %7099
  %7106 = phi i64 [ 1, %7099 ], [ %7104, %7100 ]
  %7107 = sub i64 %7093, %7106
  %7108 = lshr i64 %7107, 1
  %7109 = or i64 %7089, %7108
  %7110 = lshr i64 %7109, 2
  %7111 = or i64 %7071, %7110
  %7112 = load i32, ptr %10, align 4, !tbaa !5
  %7113 = sext i32 %7112 to i64
  %7114 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7113
  %7115 = load i64, ptr %7114, align 8, !tbaa !22
  %7116 = load i32, ptr %10, align 4, !tbaa !5
  %7117 = sext i32 %7116 to i64
  %7118 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7117
  %7119 = load i64, ptr %7118, align 8, !tbaa !22
  %7120 = icmp ult i64 1, %7119
  br i1 %7120, label %7121, label %7122

7121:                                             ; preds = %7105
  br label %7127

7122:                                             ; preds = %7105
  %7123 = load i32, ptr %10, align 4, !tbaa !5
  %7124 = sext i32 %7123 to i64
  %7125 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7124
  %7126 = load i64, ptr %7125, align 8, !tbaa !22
  br label %7127

7127:                                             ; preds = %7122, %7121
  %7128 = phi i64 [ 1, %7121 ], [ %7126, %7122 ]
  %7129 = sub i64 %7115, %7128
  %7130 = load i32, ptr %10, align 4, !tbaa !5
  %7131 = sext i32 %7130 to i64
  %7132 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7131
  %7133 = load i64, ptr %7132, align 8, !tbaa !22
  %7134 = load i32, ptr %10, align 4, !tbaa !5
  %7135 = sext i32 %7134 to i64
  %7136 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7135
  %7137 = load i64, ptr %7136, align 8, !tbaa !22
  %7138 = icmp ult i64 1, %7137
  br i1 %7138, label %7139, label %7140

7139:                                             ; preds = %7127
  br label %7145

7140:                                             ; preds = %7127
  %7141 = load i32, ptr %10, align 4, !tbaa !5
  %7142 = sext i32 %7141 to i64
  %7143 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7142
  %7144 = load i64, ptr %7143, align 8, !tbaa !22
  br label %7145

7145:                                             ; preds = %7140, %7139
  %7146 = phi i64 [ 1, %7139 ], [ %7144, %7140 ]
  %7147 = sub i64 %7133, %7146
  %7148 = lshr i64 %7147, 1
  %7149 = or i64 %7129, %7148
  %7150 = load i32, ptr %10, align 4, !tbaa !5
  %7151 = sext i32 %7150 to i64
  %7152 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7151
  %7153 = load i64, ptr %7152, align 8, !tbaa !22
  %7154 = load i32, ptr %10, align 4, !tbaa !5
  %7155 = sext i32 %7154 to i64
  %7156 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7155
  %7157 = load i64, ptr %7156, align 8, !tbaa !22
  %7158 = icmp ult i64 1, %7157
  br i1 %7158, label %7159, label %7160

7159:                                             ; preds = %7145
  br label %7165

7160:                                             ; preds = %7145
  %7161 = load i32, ptr %10, align 4, !tbaa !5
  %7162 = sext i32 %7161 to i64
  %7163 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7162
  %7164 = load i64, ptr %7163, align 8, !tbaa !22
  br label %7165

7165:                                             ; preds = %7160, %7159
  %7166 = phi i64 [ 1, %7159 ], [ %7164, %7160 ]
  %7167 = sub i64 %7153, %7166
  %7168 = load i32, ptr %10, align 4, !tbaa !5
  %7169 = sext i32 %7168 to i64
  %7170 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7169
  %7171 = load i64, ptr %7170, align 8, !tbaa !22
  %7172 = load i32, ptr %10, align 4, !tbaa !5
  %7173 = sext i32 %7172 to i64
  %7174 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7173
  %7175 = load i64, ptr %7174, align 8, !tbaa !22
  %7176 = icmp ult i64 1, %7175
  br i1 %7176, label %7177, label %7178

7177:                                             ; preds = %7165
  br label %7183

7178:                                             ; preds = %7165
  %7179 = load i32, ptr %10, align 4, !tbaa !5
  %7180 = sext i32 %7179 to i64
  %7181 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7180
  %7182 = load i64, ptr %7181, align 8, !tbaa !22
  br label %7183

7183:                                             ; preds = %7178, %7177
  %7184 = phi i64 [ 1, %7177 ], [ %7182, %7178 ]
  %7185 = sub i64 %7171, %7184
  %7186 = lshr i64 %7185, 1
  %7187 = or i64 %7167, %7186
  %7188 = lshr i64 %7187, 2
  %7189 = or i64 %7149, %7188
  %7190 = lshr i64 %7189, 4
  %7191 = or i64 %7111, %7190
  %7192 = load i32, ptr %10, align 4, !tbaa !5
  %7193 = sext i32 %7192 to i64
  %7194 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7193
  %7195 = load i64, ptr %7194, align 8, !tbaa !22
  %7196 = load i32, ptr %10, align 4, !tbaa !5
  %7197 = sext i32 %7196 to i64
  %7198 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7197
  %7199 = load i64, ptr %7198, align 8, !tbaa !22
  %7200 = icmp ult i64 1, %7199
  br i1 %7200, label %7201, label %7202

7201:                                             ; preds = %7183
  br label %7207

7202:                                             ; preds = %7183
  %7203 = load i32, ptr %10, align 4, !tbaa !5
  %7204 = sext i32 %7203 to i64
  %7205 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7204
  %7206 = load i64, ptr %7205, align 8, !tbaa !22
  br label %7207

7207:                                             ; preds = %7202, %7201
  %7208 = phi i64 [ 1, %7201 ], [ %7206, %7202 ]
  %7209 = sub i64 %7195, %7208
  %7210 = load i32, ptr %10, align 4, !tbaa !5
  %7211 = sext i32 %7210 to i64
  %7212 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7211
  %7213 = load i64, ptr %7212, align 8, !tbaa !22
  %7214 = load i32, ptr %10, align 4, !tbaa !5
  %7215 = sext i32 %7214 to i64
  %7216 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7215
  %7217 = load i64, ptr %7216, align 8, !tbaa !22
  %7218 = icmp ult i64 1, %7217
  br i1 %7218, label %7219, label %7220

7219:                                             ; preds = %7207
  br label %7225

7220:                                             ; preds = %7207
  %7221 = load i32, ptr %10, align 4, !tbaa !5
  %7222 = sext i32 %7221 to i64
  %7223 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7222
  %7224 = load i64, ptr %7223, align 8, !tbaa !22
  br label %7225

7225:                                             ; preds = %7220, %7219
  %7226 = phi i64 [ 1, %7219 ], [ %7224, %7220 ]
  %7227 = sub i64 %7213, %7226
  %7228 = lshr i64 %7227, 1
  %7229 = or i64 %7209, %7228
  %7230 = load i32, ptr %10, align 4, !tbaa !5
  %7231 = sext i32 %7230 to i64
  %7232 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7231
  %7233 = load i64, ptr %7232, align 8, !tbaa !22
  %7234 = load i32, ptr %10, align 4, !tbaa !5
  %7235 = sext i32 %7234 to i64
  %7236 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7235
  %7237 = load i64, ptr %7236, align 8, !tbaa !22
  %7238 = icmp ult i64 1, %7237
  br i1 %7238, label %7239, label %7240

7239:                                             ; preds = %7225
  br label %7245

7240:                                             ; preds = %7225
  %7241 = load i32, ptr %10, align 4, !tbaa !5
  %7242 = sext i32 %7241 to i64
  %7243 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7242
  %7244 = load i64, ptr %7243, align 8, !tbaa !22
  br label %7245

7245:                                             ; preds = %7240, %7239
  %7246 = phi i64 [ 1, %7239 ], [ %7244, %7240 ]
  %7247 = sub i64 %7233, %7246
  %7248 = load i32, ptr %10, align 4, !tbaa !5
  %7249 = sext i32 %7248 to i64
  %7250 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7249
  %7251 = load i64, ptr %7250, align 8, !tbaa !22
  %7252 = load i32, ptr %10, align 4, !tbaa !5
  %7253 = sext i32 %7252 to i64
  %7254 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7253
  %7255 = load i64, ptr %7254, align 8, !tbaa !22
  %7256 = icmp ult i64 1, %7255
  br i1 %7256, label %7257, label %7258

7257:                                             ; preds = %7245
  br label %7263

7258:                                             ; preds = %7245
  %7259 = load i32, ptr %10, align 4, !tbaa !5
  %7260 = sext i32 %7259 to i64
  %7261 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7260
  %7262 = load i64, ptr %7261, align 8, !tbaa !22
  br label %7263

7263:                                             ; preds = %7258, %7257
  %7264 = phi i64 [ 1, %7257 ], [ %7262, %7258 ]
  %7265 = sub i64 %7251, %7264
  %7266 = lshr i64 %7265, 1
  %7267 = or i64 %7247, %7266
  %7268 = lshr i64 %7267, 2
  %7269 = or i64 %7229, %7268
  %7270 = load i32, ptr %10, align 4, !tbaa !5
  %7271 = sext i32 %7270 to i64
  %7272 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7271
  %7273 = load i64, ptr %7272, align 8, !tbaa !22
  %7274 = load i32, ptr %10, align 4, !tbaa !5
  %7275 = sext i32 %7274 to i64
  %7276 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7275
  %7277 = load i64, ptr %7276, align 8, !tbaa !22
  %7278 = icmp ult i64 1, %7277
  br i1 %7278, label %7279, label %7280

7279:                                             ; preds = %7263
  br label %7285

7280:                                             ; preds = %7263
  %7281 = load i32, ptr %10, align 4, !tbaa !5
  %7282 = sext i32 %7281 to i64
  %7283 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7282
  %7284 = load i64, ptr %7283, align 8, !tbaa !22
  br label %7285

7285:                                             ; preds = %7280, %7279
  %7286 = phi i64 [ 1, %7279 ], [ %7284, %7280 ]
  %7287 = sub i64 %7273, %7286
  %7288 = load i32, ptr %10, align 4, !tbaa !5
  %7289 = sext i32 %7288 to i64
  %7290 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7289
  %7291 = load i64, ptr %7290, align 8, !tbaa !22
  %7292 = load i32, ptr %10, align 4, !tbaa !5
  %7293 = sext i32 %7292 to i64
  %7294 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7293
  %7295 = load i64, ptr %7294, align 8, !tbaa !22
  %7296 = icmp ult i64 1, %7295
  br i1 %7296, label %7297, label %7298

7297:                                             ; preds = %7285
  br label %7303

7298:                                             ; preds = %7285
  %7299 = load i32, ptr %10, align 4, !tbaa !5
  %7300 = sext i32 %7299 to i64
  %7301 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7300
  %7302 = load i64, ptr %7301, align 8, !tbaa !22
  br label %7303

7303:                                             ; preds = %7298, %7297
  %7304 = phi i64 [ 1, %7297 ], [ %7302, %7298 ]
  %7305 = sub i64 %7291, %7304
  %7306 = lshr i64 %7305, 1
  %7307 = or i64 %7287, %7306
  %7308 = load i32, ptr %10, align 4, !tbaa !5
  %7309 = sext i32 %7308 to i64
  %7310 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7309
  %7311 = load i64, ptr %7310, align 8, !tbaa !22
  %7312 = load i32, ptr %10, align 4, !tbaa !5
  %7313 = sext i32 %7312 to i64
  %7314 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7313
  %7315 = load i64, ptr %7314, align 8, !tbaa !22
  %7316 = icmp ult i64 1, %7315
  br i1 %7316, label %7317, label %7318

7317:                                             ; preds = %7303
  br label %7323

7318:                                             ; preds = %7303
  %7319 = load i32, ptr %10, align 4, !tbaa !5
  %7320 = sext i32 %7319 to i64
  %7321 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7320
  %7322 = load i64, ptr %7321, align 8, !tbaa !22
  br label %7323

7323:                                             ; preds = %7318, %7317
  %7324 = phi i64 [ 1, %7317 ], [ %7322, %7318 ]
  %7325 = sub i64 %7311, %7324
  %7326 = load i32, ptr %10, align 4, !tbaa !5
  %7327 = sext i32 %7326 to i64
  %7328 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7327
  %7329 = load i64, ptr %7328, align 8, !tbaa !22
  %7330 = load i32, ptr %10, align 4, !tbaa !5
  %7331 = sext i32 %7330 to i64
  %7332 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7331
  %7333 = load i64, ptr %7332, align 8, !tbaa !22
  %7334 = icmp ult i64 1, %7333
  br i1 %7334, label %7335, label %7336

7335:                                             ; preds = %7323
  br label %7341

7336:                                             ; preds = %7323
  %7337 = load i32, ptr %10, align 4, !tbaa !5
  %7338 = sext i32 %7337 to i64
  %7339 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7338
  %7340 = load i64, ptr %7339, align 8, !tbaa !22
  br label %7341

7341:                                             ; preds = %7336, %7335
  %7342 = phi i64 [ 1, %7335 ], [ %7340, %7336 ]
  %7343 = sub i64 %7329, %7342
  %7344 = lshr i64 %7343, 1
  %7345 = or i64 %7325, %7344
  %7346 = lshr i64 %7345, 2
  %7347 = or i64 %7307, %7346
  %7348 = lshr i64 %7347, 4
  %7349 = or i64 %7269, %7348
  %7350 = lshr i64 %7349, 8
  %7351 = or i64 %7191, %7350
  %7352 = load i32, ptr %10, align 4, !tbaa !5
  %7353 = sext i32 %7352 to i64
  %7354 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7353
  %7355 = load i64, ptr %7354, align 8, !tbaa !22
  %7356 = load i32, ptr %10, align 4, !tbaa !5
  %7357 = sext i32 %7356 to i64
  %7358 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7357
  %7359 = load i64, ptr %7358, align 8, !tbaa !22
  %7360 = icmp ult i64 1, %7359
  br i1 %7360, label %7361, label %7362

7361:                                             ; preds = %7341
  br label %7367

7362:                                             ; preds = %7341
  %7363 = load i32, ptr %10, align 4, !tbaa !5
  %7364 = sext i32 %7363 to i64
  %7365 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7364
  %7366 = load i64, ptr %7365, align 8, !tbaa !22
  br label %7367

7367:                                             ; preds = %7362, %7361
  %7368 = phi i64 [ 1, %7361 ], [ %7366, %7362 ]
  %7369 = sub i64 %7355, %7368
  %7370 = load i32, ptr %10, align 4, !tbaa !5
  %7371 = sext i32 %7370 to i64
  %7372 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7371
  %7373 = load i64, ptr %7372, align 8, !tbaa !22
  %7374 = load i32, ptr %10, align 4, !tbaa !5
  %7375 = sext i32 %7374 to i64
  %7376 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7375
  %7377 = load i64, ptr %7376, align 8, !tbaa !22
  %7378 = icmp ult i64 1, %7377
  br i1 %7378, label %7379, label %7380

7379:                                             ; preds = %7367
  br label %7385

7380:                                             ; preds = %7367
  %7381 = load i32, ptr %10, align 4, !tbaa !5
  %7382 = sext i32 %7381 to i64
  %7383 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7382
  %7384 = load i64, ptr %7383, align 8, !tbaa !22
  br label %7385

7385:                                             ; preds = %7380, %7379
  %7386 = phi i64 [ 1, %7379 ], [ %7384, %7380 ]
  %7387 = sub i64 %7373, %7386
  %7388 = lshr i64 %7387, 1
  %7389 = or i64 %7369, %7388
  %7390 = load i32, ptr %10, align 4, !tbaa !5
  %7391 = sext i32 %7390 to i64
  %7392 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7391
  %7393 = load i64, ptr %7392, align 8, !tbaa !22
  %7394 = load i32, ptr %10, align 4, !tbaa !5
  %7395 = sext i32 %7394 to i64
  %7396 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7395
  %7397 = load i64, ptr %7396, align 8, !tbaa !22
  %7398 = icmp ult i64 1, %7397
  br i1 %7398, label %7399, label %7400

7399:                                             ; preds = %7385
  br label %7405

7400:                                             ; preds = %7385
  %7401 = load i32, ptr %10, align 4, !tbaa !5
  %7402 = sext i32 %7401 to i64
  %7403 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7402
  %7404 = load i64, ptr %7403, align 8, !tbaa !22
  br label %7405

7405:                                             ; preds = %7400, %7399
  %7406 = phi i64 [ 1, %7399 ], [ %7404, %7400 ]
  %7407 = sub i64 %7393, %7406
  %7408 = load i32, ptr %10, align 4, !tbaa !5
  %7409 = sext i32 %7408 to i64
  %7410 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7409
  %7411 = load i64, ptr %7410, align 8, !tbaa !22
  %7412 = load i32, ptr %10, align 4, !tbaa !5
  %7413 = sext i32 %7412 to i64
  %7414 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7413
  %7415 = load i64, ptr %7414, align 8, !tbaa !22
  %7416 = icmp ult i64 1, %7415
  br i1 %7416, label %7417, label %7418

7417:                                             ; preds = %7405
  br label %7423

7418:                                             ; preds = %7405
  %7419 = load i32, ptr %10, align 4, !tbaa !5
  %7420 = sext i32 %7419 to i64
  %7421 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7420
  %7422 = load i64, ptr %7421, align 8, !tbaa !22
  br label %7423

7423:                                             ; preds = %7418, %7417
  %7424 = phi i64 [ 1, %7417 ], [ %7422, %7418 ]
  %7425 = sub i64 %7411, %7424
  %7426 = lshr i64 %7425, 1
  %7427 = or i64 %7407, %7426
  %7428 = lshr i64 %7427, 2
  %7429 = or i64 %7389, %7428
  %7430 = load i32, ptr %10, align 4, !tbaa !5
  %7431 = sext i32 %7430 to i64
  %7432 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7431
  %7433 = load i64, ptr %7432, align 8, !tbaa !22
  %7434 = load i32, ptr %10, align 4, !tbaa !5
  %7435 = sext i32 %7434 to i64
  %7436 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7435
  %7437 = load i64, ptr %7436, align 8, !tbaa !22
  %7438 = icmp ult i64 1, %7437
  br i1 %7438, label %7439, label %7440

7439:                                             ; preds = %7423
  br label %7445

7440:                                             ; preds = %7423
  %7441 = load i32, ptr %10, align 4, !tbaa !5
  %7442 = sext i32 %7441 to i64
  %7443 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7442
  %7444 = load i64, ptr %7443, align 8, !tbaa !22
  br label %7445

7445:                                             ; preds = %7440, %7439
  %7446 = phi i64 [ 1, %7439 ], [ %7444, %7440 ]
  %7447 = sub i64 %7433, %7446
  %7448 = load i32, ptr %10, align 4, !tbaa !5
  %7449 = sext i32 %7448 to i64
  %7450 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7449
  %7451 = load i64, ptr %7450, align 8, !tbaa !22
  %7452 = load i32, ptr %10, align 4, !tbaa !5
  %7453 = sext i32 %7452 to i64
  %7454 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7453
  %7455 = load i64, ptr %7454, align 8, !tbaa !22
  %7456 = icmp ult i64 1, %7455
  br i1 %7456, label %7457, label %7458

7457:                                             ; preds = %7445
  br label %7463

7458:                                             ; preds = %7445
  %7459 = load i32, ptr %10, align 4, !tbaa !5
  %7460 = sext i32 %7459 to i64
  %7461 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7460
  %7462 = load i64, ptr %7461, align 8, !tbaa !22
  br label %7463

7463:                                             ; preds = %7458, %7457
  %7464 = phi i64 [ 1, %7457 ], [ %7462, %7458 ]
  %7465 = sub i64 %7451, %7464
  %7466 = lshr i64 %7465, 1
  %7467 = or i64 %7447, %7466
  %7468 = load i32, ptr %10, align 4, !tbaa !5
  %7469 = sext i32 %7468 to i64
  %7470 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7469
  %7471 = load i64, ptr %7470, align 8, !tbaa !22
  %7472 = load i32, ptr %10, align 4, !tbaa !5
  %7473 = sext i32 %7472 to i64
  %7474 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7473
  %7475 = load i64, ptr %7474, align 8, !tbaa !22
  %7476 = icmp ult i64 1, %7475
  br i1 %7476, label %7477, label %7478

7477:                                             ; preds = %7463
  br label %7483

7478:                                             ; preds = %7463
  %7479 = load i32, ptr %10, align 4, !tbaa !5
  %7480 = sext i32 %7479 to i64
  %7481 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7480
  %7482 = load i64, ptr %7481, align 8, !tbaa !22
  br label %7483

7483:                                             ; preds = %7478, %7477
  %7484 = phi i64 [ 1, %7477 ], [ %7482, %7478 ]
  %7485 = sub i64 %7471, %7484
  %7486 = load i32, ptr %10, align 4, !tbaa !5
  %7487 = sext i32 %7486 to i64
  %7488 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7487
  %7489 = load i64, ptr %7488, align 8, !tbaa !22
  %7490 = load i32, ptr %10, align 4, !tbaa !5
  %7491 = sext i32 %7490 to i64
  %7492 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7491
  %7493 = load i64, ptr %7492, align 8, !tbaa !22
  %7494 = icmp ult i64 1, %7493
  br i1 %7494, label %7495, label %7496

7495:                                             ; preds = %7483
  br label %7501

7496:                                             ; preds = %7483
  %7497 = load i32, ptr %10, align 4, !tbaa !5
  %7498 = sext i32 %7497 to i64
  %7499 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7498
  %7500 = load i64, ptr %7499, align 8, !tbaa !22
  br label %7501

7501:                                             ; preds = %7496, %7495
  %7502 = phi i64 [ 1, %7495 ], [ %7500, %7496 ]
  %7503 = sub i64 %7489, %7502
  %7504 = lshr i64 %7503, 1
  %7505 = or i64 %7485, %7504
  %7506 = lshr i64 %7505, 2
  %7507 = or i64 %7467, %7506
  %7508 = lshr i64 %7507, 4
  %7509 = or i64 %7429, %7508
  %7510 = load i32, ptr %10, align 4, !tbaa !5
  %7511 = sext i32 %7510 to i64
  %7512 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7511
  %7513 = load i64, ptr %7512, align 8, !tbaa !22
  %7514 = load i32, ptr %10, align 4, !tbaa !5
  %7515 = sext i32 %7514 to i64
  %7516 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7515
  %7517 = load i64, ptr %7516, align 8, !tbaa !22
  %7518 = icmp ult i64 1, %7517
  br i1 %7518, label %7519, label %7520

7519:                                             ; preds = %7501
  br label %7525

7520:                                             ; preds = %7501
  %7521 = load i32, ptr %10, align 4, !tbaa !5
  %7522 = sext i32 %7521 to i64
  %7523 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7522
  %7524 = load i64, ptr %7523, align 8, !tbaa !22
  br label %7525

7525:                                             ; preds = %7520, %7519
  %7526 = phi i64 [ 1, %7519 ], [ %7524, %7520 ]
  %7527 = sub i64 %7513, %7526
  %7528 = load i32, ptr %10, align 4, !tbaa !5
  %7529 = sext i32 %7528 to i64
  %7530 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7529
  %7531 = load i64, ptr %7530, align 8, !tbaa !22
  %7532 = load i32, ptr %10, align 4, !tbaa !5
  %7533 = sext i32 %7532 to i64
  %7534 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7533
  %7535 = load i64, ptr %7534, align 8, !tbaa !22
  %7536 = icmp ult i64 1, %7535
  br i1 %7536, label %7537, label %7538

7537:                                             ; preds = %7525
  br label %7543

7538:                                             ; preds = %7525
  %7539 = load i32, ptr %10, align 4, !tbaa !5
  %7540 = sext i32 %7539 to i64
  %7541 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7540
  %7542 = load i64, ptr %7541, align 8, !tbaa !22
  br label %7543

7543:                                             ; preds = %7538, %7537
  %7544 = phi i64 [ 1, %7537 ], [ %7542, %7538 ]
  %7545 = sub i64 %7531, %7544
  %7546 = lshr i64 %7545, 1
  %7547 = or i64 %7527, %7546
  %7548 = load i32, ptr %10, align 4, !tbaa !5
  %7549 = sext i32 %7548 to i64
  %7550 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7549
  %7551 = load i64, ptr %7550, align 8, !tbaa !22
  %7552 = load i32, ptr %10, align 4, !tbaa !5
  %7553 = sext i32 %7552 to i64
  %7554 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7553
  %7555 = load i64, ptr %7554, align 8, !tbaa !22
  %7556 = icmp ult i64 1, %7555
  br i1 %7556, label %7557, label %7558

7557:                                             ; preds = %7543
  br label %7563

7558:                                             ; preds = %7543
  %7559 = load i32, ptr %10, align 4, !tbaa !5
  %7560 = sext i32 %7559 to i64
  %7561 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7560
  %7562 = load i64, ptr %7561, align 8, !tbaa !22
  br label %7563

7563:                                             ; preds = %7558, %7557
  %7564 = phi i64 [ 1, %7557 ], [ %7562, %7558 ]
  %7565 = sub i64 %7551, %7564
  %7566 = load i32, ptr %10, align 4, !tbaa !5
  %7567 = sext i32 %7566 to i64
  %7568 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7567
  %7569 = load i64, ptr %7568, align 8, !tbaa !22
  %7570 = load i32, ptr %10, align 4, !tbaa !5
  %7571 = sext i32 %7570 to i64
  %7572 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7571
  %7573 = load i64, ptr %7572, align 8, !tbaa !22
  %7574 = icmp ult i64 1, %7573
  br i1 %7574, label %7575, label %7576

7575:                                             ; preds = %7563
  br label %7581

7576:                                             ; preds = %7563
  %7577 = load i32, ptr %10, align 4, !tbaa !5
  %7578 = sext i32 %7577 to i64
  %7579 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7578
  %7580 = load i64, ptr %7579, align 8, !tbaa !22
  br label %7581

7581:                                             ; preds = %7576, %7575
  %7582 = phi i64 [ 1, %7575 ], [ %7580, %7576 ]
  %7583 = sub i64 %7569, %7582
  %7584 = lshr i64 %7583, 1
  %7585 = or i64 %7565, %7584
  %7586 = lshr i64 %7585, 2
  %7587 = or i64 %7547, %7586
  %7588 = load i32, ptr %10, align 4, !tbaa !5
  %7589 = sext i32 %7588 to i64
  %7590 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7589
  %7591 = load i64, ptr %7590, align 8, !tbaa !22
  %7592 = load i32, ptr %10, align 4, !tbaa !5
  %7593 = sext i32 %7592 to i64
  %7594 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7593
  %7595 = load i64, ptr %7594, align 8, !tbaa !22
  %7596 = icmp ult i64 1, %7595
  br i1 %7596, label %7597, label %7598

7597:                                             ; preds = %7581
  br label %7603

7598:                                             ; preds = %7581
  %7599 = load i32, ptr %10, align 4, !tbaa !5
  %7600 = sext i32 %7599 to i64
  %7601 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7600
  %7602 = load i64, ptr %7601, align 8, !tbaa !22
  br label %7603

7603:                                             ; preds = %7598, %7597
  %7604 = phi i64 [ 1, %7597 ], [ %7602, %7598 ]
  %7605 = sub i64 %7591, %7604
  %7606 = load i32, ptr %10, align 4, !tbaa !5
  %7607 = sext i32 %7606 to i64
  %7608 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7607
  %7609 = load i64, ptr %7608, align 8, !tbaa !22
  %7610 = load i32, ptr %10, align 4, !tbaa !5
  %7611 = sext i32 %7610 to i64
  %7612 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7611
  %7613 = load i64, ptr %7612, align 8, !tbaa !22
  %7614 = icmp ult i64 1, %7613
  br i1 %7614, label %7615, label %7616

7615:                                             ; preds = %7603
  br label %7621

7616:                                             ; preds = %7603
  %7617 = load i32, ptr %10, align 4, !tbaa !5
  %7618 = sext i32 %7617 to i64
  %7619 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7618
  %7620 = load i64, ptr %7619, align 8, !tbaa !22
  br label %7621

7621:                                             ; preds = %7616, %7615
  %7622 = phi i64 [ 1, %7615 ], [ %7620, %7616 ]
  %7623 = sub i64 %7609, %7622
  %7624 = lshr i64 %7623, 1
  %7625 = or i64 %7605, %7624
  %7626 = load i32, ptr %10, align 4, !tbaa !5
  %7627 = sext i32 %7626 to i64
  %7628 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7627
  %7629 = load i64, ptr %7628, align 8, !tbaa !22
  %7630 = load i32, ptr %10, align 4, !tbaa !5
  %7631 = sext i32 %7630 to i64
  %7632 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7631
  %7633 = load i64, ptr %7632, align 8, !tbaa !22
  %7634 = icmp ult i64 1, %7633
  br i1 %7634, label %7635, label %7636

7635:                                             ; preds = %7621
  br label %7641

7636:                                             ; preds = %7621
  %7637 = load i32, ptr %10, align 4, !tbaa !5
  %7638 = sext i32 %7637 to i64
  %7639 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7638
  %7640 = load i64, ptr %7639, align 8, !tbaa !22
  br label %7641

7641:                                             ; preds = %7636, %7635
  %7642 = phi i64 [ 1, %7635 ], [ %7640, %7636 ]
  %7643 = sub i64 %7629, %7642
  %7644 = load i32, ptr %10, align 4, !tbaa !5
  %7645 = sext i32 %7644 to i64
  %7646 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7645
  %7647 = load i64, ptr %7646, align 8, !tbaa !22
  %7648 = load i32, ptr %10, align 4, !tbaa !5
  %7649 = sext i32 %7648 to i64
  %7650 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7649
  %7651 = load i64, ptr %7650, align 8, !tbaa !22
  %7652 = icmp ult i64 1, %7651
  br i1 %7652, label %7653, label %7654

7653:                                             ; preds = %7641
  br label %7659

7654:                                             ; preds = %7641
  %7655 = load i32, ptr %10, align 4, !tbaa !5
  %7656 = sext i32 %7655 to i64
  %7657 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7656
  %7658 = load i64, ptr %7657, align 8, !tbaa !22
  br label %7659

7659:                                             ; preds = %7654, %7653
  %7660 = phi i64 [ 1, %7653 ], [ %7658, %7654 ]
  %7661 = sub i64 %7647, %7660
  %7662 = lshr i64 %7661, 1
  %7663 = or i64 %7643, %7662
  %7664 = lshr i64 %7663, 2
  %7665 = or i64 %7625, %7664
  %7666 = lshr i64 %7665, 4
  %7667 = or i64 %7587, %7666
  %7668 = lshr i64 %7667, 8
  %7669 = or i64 %7509, %7668
  %7670 = lshr i64 %7669, 16
  %7671 = or i64 %7351, %7670
  %7672 = load i32, ptr %10, align 4, !tbaa !5
  %7673 = sext i32 %7672 to i64
  %7674 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7673
  %7675 = load i64, ptr %7674, align 8, !tbaa !22
  %7676 = load i32, ptr %10, align 4, !tbaa !5
  %7677 = sext i32 %7676 to i64
  %7678 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7677
  %7679 = load i64, ptr %7678, align 8, !tbaa !22
  %7680 = icmp ult i64 1, %7679
  br i1 %7680, label %7681, label %7682

7681:                                             ; preds = %7659
  br label %7687

7682:                                             ; preds = %7659
  %7683 = load i32, ptr %10, align 4, !tbaa !5
  %7684 = sext i32 %7683 to i64
  %7685 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7684
  %7686 = load i64, ptr %7685, align 8, !tbaa !22
  br label %7687

7687:                                             ; preds = %7682, %7681
  %7688 = phi i64 [ 1, %7681 ], [ %7686, %7682 ]
  %7689 = sub i64 %7675, %7688
  %7690 = load i32, ptr %10, align 4, !tbaa !5
  %7691 = sext i32 %7690 to i64
  %7692 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7691
  %7693 = load i64, ptr %7692, align 8, !tbaa !22
  %7694 = load i32, ptr %10, align 4, !tbaa !5
  %7695 = sext i32 %7694 to i64
  %7696 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7695
  %7697 = load i64, ptr %7696, align 8, !tbaa !22
  %7698 = icmp ult i64 1, %7697
  br i1 %7698, label %7699, label %7700

7699:                                             ; preds = %7687
  br label %7705

7700:                                             ; preds = %7687
  %7701 = load i32, ptr %10, align 4, !tbaa !5
  %7702 = sext i32 %7701 to i64
  %7703 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7702
  %7704 = load i64, ptr %7703, align 8, !tbaa !22
  br label %7705

7705:                                             ; preds = %7700, %7699
  %7706 = phi i64 [ 1, %7699 ], [ %7704, %7700 ]
  %7707 = sub i64 %7693, %7706
  %7708 = lshr i64 %7707, 1
  %7709 = or i64 %7689, %7708
  %7710 = load i32, ptr %10, align 4, !tbaa !5
  %7711 = sext i32 %7710 to i64
  %7712 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7711
  %7713 = load i64, ptr %7712, align 8, !tbaa !22
  %7714 = load i32, ptr %10, align 4, !tbaa !5
  %7715 = sext i32 %7714 to i64
  %7716 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7715
  %7717 = load i64, ptr %7716, align 8, !tbaa !22
  %7718 = icmp ult i64 1, %7717
  br i1 %7718, label %7719, label %7720

7719:                                             ; preds = %7705
  br label %7725

7720:                                             ; preds = %7705
  %7721 = load i32, ptr %10, align 4, !tbaa !5
  %7722 = sext i32 %7721 to i64
  %7723 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7722
  %7724 = load i64, ptr %7723, align 8, !tbaa !22
  br label %7725

7725:                                             ; preds = %7720, %7719
  %7726 = phi i64 [ 1, %7719 ], [ %7724, %7720 ]
  %7727 = sub i64 %7713, %7726
  %7728 = load i32, ptr %10, align 4, !tbaa !5
  %7729 = sext i32 %7728 to i64
  %7730 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7729
  %7731 = load i64, ptr %7730, align 8, !tbaa !22
  %7732 = load i32, ptr %10, align 4, !tbaa !5
  %7733 = sext i32 %7732 to i64
  %7734 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7733
  %7735 = load i64, ptr %7734, align 8, !tbaa !22
  %7736 = icmp ult i64 1, %7735
  br i1 %7736, label %7737, label %7738

7737:                                             ; preds = %7725
  br label %7743

7738:                                             ; preds = %7725
  %7739 = load i32, ptr %10, align 4, !tbaa !5
  %7740 = sext i32 %7739 to i64
  %7741 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7740
  %7742 = load i64, ptr %7741, align 8, !tbaa !22
  br label %7743

7743:                                             ; preds = %7738, %7737
  %7744 = phi i64 [ 1, %7737 ], [ %7742, %7738 ]
  %7745 = sub i64 %7731, %7744
  %7746 = lshr i64 %7745, 1
  %7747 = or i64 %7727, %7746
  %7748 = lshr i64 %7747, 2
  %7749 = or i64 %7709, %7748
  %7750 = load i32, ptr %10, align 4, !tbaa !5
  %7751 = sext i32 %7750 to i64
  %7752 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7751
  %7753 = load i64, ptr %7752, align 8, !tbaa !22
  %7754 = load i32, ptr %10, align 4, !tbaa !5
  %7755 = sext i32 %7754 to i64
  %7756 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7755
  %7757 = load i64, ptr %7756, align 8, !tbaa !22
  %7758 = icmp ult i64 1, %7757
  br i1 %7758, label %7759, label %7760

7759:                                             ; preds = %7743
  br label %7765

7760:                                             ; preds = %7743
  %7761 = load i32, ptr %10, align 4, !tbaa !5
  %7762 = sext i32 %7761 to i64
  %7763 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7762
  %7764 = load i64, ptr %7763, align 8, !tbaa !22
  br label %7765

7765:                                             ; preds = %7760, %7759
  %7766 = phi i64 [ 1, %7759 ], [ %7764, %7760 ]
  %7767 = sub i64 %7753, %7766
  %7768 = load i32, ptr %10, align 4, !tbaa !5
  %7769 = sext i32 %7768 to i64
  %7770 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7769
  %7771 = load i64, ptr %7770, align 8, !tbaa !22
  %7772 = load i32, ptr %10, align 4, !tbaa !5
  %7773 = sext i32 %7772 to i64
  %7774 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7773
  %7775 = load i64, ptr %7774, align 8, !tbaa !22
  %7776 = icmp ult i64 1, %7775
  br i1 %7776, label %7777, label %7778

7777:                                             ; preds = %7765
  br label %7783

7778:                                             ; preds = %7765
  %7779 = load i32, ptr %10, align 4, !tbaa !5
  %7780 = sext i32 %7779 to i64
  %7781 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7780
  %7782 = load i64, ptr %7781, align 8, !tbaa !22
  br label %7783

7783:                                             ; preds = %7778, %7777
  %7784 = phi i64 [ 1, %7777 ], [ %7782, %7778 ]
  %7785 = sub i64 %7771, %7784
  %7786 = lshr i64 %7785, 1
  %7787 = or i64 %7767, %7786
  %7788 = load i32, ptr %10, align 4, !tbaa !5
  %7789 = sext i32 %7788 to i64
  %7790 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7789
  %7791 = load i64, ptr %7790, align 8, !tbaa !22
  %7792 = load i32, ptr %10, align 4, !tbaa !5
  %7793 = sext i32 %7792 to i64
  %7794 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7793
  %7795 = load i64, ptr %7794, align 8, !tbaa !22
  %7796 = icmp ult i64 1, %7795
  br i1 %7796, label %7797, label %7798

7797:                                             ; preds = %7783
  br label %7803

7798:                                             ; preds = %7783
  %7799 = load i32, ptr %10, align 4, !tbaa !5
  %7800 = sext i32 %7799 to i64
  %7801 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7800
  %7802 = load i64, ptr %7801, align 8, !tbaa !22
  br label %7803

7803:                                             ; preds = %7798, %7797
  %7804 = phi i64 [ 1, %7797 ], [ %7802, %7798 ]
  %7805 = sub i64 %7791, %7804
  %7806 = load i32, ptr %10, align 4, !tbaa !5
  %7807 = sext i32 %7806 to i64
  %7808 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7807
  %7809 = load i64, ptr %7808, align 8, !tbaa !22
  %7810 = load i32, ptr %10, align 4, !tbaa !5
  %7811 = sext i32 %7810 to i64
  %7812 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7811
  %7813 = load i64, ptr %7812, align 8, !tbaa !22
  %7814 = icmp ult i64 1, %7813
  br i1 %7814, label %7815, label %7816

7815:                                             ; preds = %7803
  br label %7821

7816:                                             ; preds = %7803
  %7817 = load i32, ptr %10, align 4, !tbaa !5
  %7818 = sext i32 %7817 to i64
  %7819 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7818
  %7820 = load i64, ptr %7819, align 8, !tbaa !22
  br label %7821

7821:                                             ; preds = %7816, %7815
  %7822 = phi i64 [ 1, %7815 ], [ %7820, %7816 ]
  %7823 = sub i64 %7809, %7822
  %7824 = lshr i64 %7823, 1
  %7825 = or i64 %7805, %7824
  %7826 = lshr i64 %7825, 2
  %7827 = or i64 %7787, %7826
  %7828 = lshr i64 %7827, 4
  %7829 = or i64 %7749, %7828
  %7830 = load i32, ptr %10, align 4, !tbaa !5
  %7831 = sext i32 %7830 to i64
  %7832 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7831
  %7833 = load i64, ptr %7832, align 8, !tbaa !22
  %7834 = load i32, ptr %10, align 4, !tbaa !5
  %7835 = sext i32 %7834 to i64
  %7836 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7835
  %7837 = load i64, ptr %7836, align 8, !tbaa !22
  %7838 = icmp ult i64 1, %7837
  br i1 %7838, label %7839, label %7840

7839:                                             ; preds = %7821
  br label %7845

7840:                                             ; preds = %7821
  %7841 = load i32, ptr %10, align 4, !tbaa !5
  %7842 = sext i32 %7841 to i64
  %7843 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7842
  %7844 = load i64, ptr %7843, align 8, !tbaa !22
  br label %7845

7845:                                             ; preds = %7840, %7839
  %7846 = phi i64 [ 1, %7839 ], [ %7844, %7840 ]
  %7847 = sub i64 %7833, %7846
  %7848 = load i32, ptr %10, align 4, !tbaa !5
  %7849 = sext i32 %7848 to i64
  %7850 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7849
  %7851 = load i64, ptr %7850, align 8, !tbaa !22
  %7852 = load i32, ptr %10, align 4, !tbaa !5
  %7853 = sext i32 %7852 to i64
  %7854 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7853
  %7855 = load i64, ptr %7854, align 8, !tbaa !22
  %7856 = icmp ult i64 1, %7855
  br i1 %7856, label %7857, label %7858

7857:                                             ; preds = %7845
  br label %7863

7858:                                             ; preds = %7845
  %7859 = load i32, ptr %10, align 4, !tbaa !5
  %7860 = sext i32 %7859 to i64
  %7861 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7860
  %7862 = load i64, ptr %7861, align 8, !tbaa !22
  br label %7863

7863:                                             ; preds = %7858, %7857
  %7864 = phi i64 [ 1, %7857 ], [ %7862, %7858 ]
  %7865 = sub i64 %7851, %7864
  %7866 = lshr i64 %7865, 1
  %7867 = or i64 %7847, %7866
  %7868 = load i32, ptr %10, align 4, !tbaa !5
  %7869 = sext i32 %7868 to i64
  %7870 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7869
  %7871 = load i64, ptr %7870, align 8, !tbaa !22
  %7872 = load i32, ptr %10, align 4, !tbaa !5
  %7873 = sext i32 %7872 to i64
  %7874 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7873
  %7875 = load i64, ptr %7874, align 8, !tbaa !22
  %7876 = icmp ult i64 1, %7875
  br i1 %7876, label %7877, label %7878

7877:                                             ; preds = %7863
  br label %7883

7878:                                             ; preds = %7863
  %7879 = load i32, ptr %10, align 4, !tbaa !5
  %7880 = sext i32 %7879 to i64
  %7881 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7880
  %7882 = load i64, ptr %7881, align 8, !tbaa !22
  br label %7883

7883:                                             ; preds = %7878, %7877
  %7884 = phi i64 [ 1, %7877 ], [ %7882, %7878 ]
  %7885 = sub i64 %7871, %7884
  %7886 = load i32, ptr %10, align 4, !tbaa !5
  %7887 = sext i32 %7886 to i64
  %7888 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7887
  %7889 = load i64, ptr %7888, align 8, !tbaa !22
  %7890 = load i32, ptr %10, align 4, !tbaa !5
  %7891 = sext i32 %7890 to i64
  %7892 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7891
  %7893 = load i64, ptr %7892, align 8, !tbaa !22
  %7894 = icmp ult i64 1, %7893
  br i1 %7894, label %7895, label %7896

7895:                                             ; preds = %7883
  br label %7901

7896:                                             ; preds = %7883
  %7897 = load i32, ptr %10, align 4, !tbaa !5
  %7898 = sext i32 %7897 to i64
  %7899 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7898
  %7900 = load i64, ptr %7899, align 8, !tbaa !22
  br label %7901

7901:                                             ; preds = %7896, %7895
  %7902 = phi i64 [ 1, %7895 ], [ %7900, %7896 ]
  %7903 = sub i64 %7889, %7902
  %7904 = lshr i64 %7903, 1
  %7905 = or i64 %7885, %7904
  %7906 = lshr i64 %7905, 2
  %7907 = or i64 %7867, %7906
  %7908 = load i32, ptr %10, align 4, !tbaa !5
  %7909 = sext i32 %7908 to i64
  %7910 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7909
  %7911 = load i64, ptr %7910, align 8, !tbaa !22
  %7912 = load i32, ptr %10, align 4, !tbaa !5
  %7913 = sext i32 %7912 to i64
  %7914 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7913
  %7915 = load i64, ptr %7914, align 8, !tbaa !22
  %7916 = icmp ult i64 1, %7915
  br i1 %7916, label %7917, label %7918

7917:                                             ; preds = %7901
  br label %7923

7918:                                             ; preds = %7901
  %7919 = load i32, ptr %10, align 4, !tbaa !5
  %7920 = sext i32 %7919 to i64
  %7921 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7920
  %7922 = load i64, ptr %7921, align 8, !tbaa !22
  br label %7923

7923:                                             ; preds = %7918, %7917
  %7924 = phi i64 [ 1, %7917 ], [ %7922, %7918 ]
  %7925 = sub i64 %7911, %7924
  %7926 = load i32, ptr %10, align 4, !tbaa !5
  %7927 = sext i32 %7926 to i64
  %7928 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7927
  %7929 = load i64, ptr %7928, align 8, !tbaa !22
  %7930 = load i32, ptr %10, align 4, !tbaa !5
  %7931 = sext i32 %7930 to i64
  %7932 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7931
  %7933 = load i64, ptr %7932, align 8, !tbaa !22
  %7934 = icmp ult i64 1, %7933
  br i1 %7934, label %7935, label %7936

7935:                                             ; preds = %7923
  br label %7941

7936:                                             ; preds = %7923
  %7937 = load i32, ptr %10, align 4, !tbaa !5
  %7938 = sext i32 %7937 to i64
  %7939 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7938
  %7940 = load i64, ptr %7939, align 8, !tbaa !22
  br label %7941

7941:                                             ; preds = %7936, %7935
  %7942 = phi i64 [ 1, %7935 ], [ %7940, %7936 ]
  %7943 = sub i64 %7929, %7942
  %7944 = lshr i64 %7943, 1
  %7945 = or i64 %7925, %7944
  %7946 = load i32, ptr %10, align 4, !tbaa !5
  %7947 = sext i32 %7946 to i64
  %7948 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7947
  %7949 = load i64, ptr %7948, align 8, !tbaa !22
  %7950 = load i32, ptr %10, align 4, !tbaa !5
  %7951 = sext i32 %7950 to i64
  %7952 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7951
  %7953 = load i64, ptr %7952, align 8, !tbaa !22
  %7954 = icmp ult i64 1, %7953
  br i1 %7954, label %7955, label %7956

7955:                                             ; preds = %7941
  br label %7961

7956:                                             ; preds = %7941
  %7957 = load i32, ptr %10, align 4, !tbaa !5
  %7958 = sext i32 %7957 to i64
  %7959 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7958
  %7960 = load i64, ptr %7959, align 8, !tbaa !22
  br label %7961

7961:                                             ; preds = %7956, %7955
  %7962 = phi i64 [ 1, %7955 ], [ %7960, %7956 ]
  %7963 = sub i64 %7949, %7962
  %7964 = load i32, ptr %10, align 4, !tbaa !5
  %7965 = sext i32 %7964 to i64
  %7966 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7965
  %7967 = load i64, ptr %7966, align 8, !tbaa !22
  %7968 = load i32, ptr %10, align 4, !tbaa !5
  %7969 = sext i32 %7968 to i64
  %7970 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7969
  %7971 = load i64, ptr %7970, align 8, !tbaa !22
  %7972 = icmp ult i64 1, %7971
  br i1 %7972, label %7973, label %7974

7973:                                             ; preds = %7961
  br label %7979

7974:                                             ; preds = %7961
  %7975 = load i32, ptr %10, align 4, !tbaa !5
  %7976 = sext i32 %7975 to i64
  %7977 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7976
  %7978 = load i64, ptr %7977, align 8, !tbaa !22
  br label %7979

7979:                                             ; preds = %7974, %7973
  %7980 = phi i64 [ 1, %7973 ], [ %7978, %7974 ]
  %7981 = sub i64 %7967, %7980
  %7982 = lshr i64 %7981, 1
  %7983 = or i64 %7963, %7982
  %7984 = lshr i64 %7983, 2
  %7985 = or i64 %7945, %7984
  %7986 = lshr i64 %7985, 4
  %7987 = or i64 %7907, %7986
  %7988 = lshr i64 %7987, 8
  %7989 = or i64 %7829, %7988
  %7990 = load i32, ptr %10, align 4, !tbaa !5
  %7991 = sext i32 %7990 to i64
  %7992 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7991
  %7993 = load i64, ptr %7992, align 8, !tbaa !22
  %7994 = load i32, ptr %10, align 4, !tbaa !5
  %7995 = sext i32 %7994 to i64
  %7996 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %7995
  %7997 = load i64, ptr %7996, align 8, !tbaa !22
  %7998 = icmp ult i64 1, %7997
  br i1 %7998, label %7999, label %8000

7999:                                             ; preds = %7979
  br label %8005

8000:                                             ; preds = %7979
  %8001 = load i32, ptr %10, align 4, !tbaa !5
  %8002 = sext i32 %8001 to i64
  %8003 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8002
  %8004 = load i64, ptr %8003, align 8, !tbaa !22
  br label %8005

8005:                                             ; preds = %8000, %7999
  %8006 = phi i64 [ 1, %7999 ], [ %8004, %8000 ]
  %8007 = sub i64 %7993, %8006
  %8008 = load i32, ptr %10, align 4, !tbaa !5
  %8009 = sext i32 %8008 to i64
  %8010 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8009
  %8011 = load i64, ptr %8010, align 8, !tbaa !22
  %8012 = load i32, ptr %10, align 4, !tbaa !5
  %8013 = sext i32 %8012 to i64
  %8014 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8013
  %8015 = load i64, ptr %8014, align 8, !tbaa !22
  %8016 = icmp ult i64 1, %8015
  br i1 %8016, label %8017, label %8018

8017:                                             ; preds = %8005
  br label %8023

8018:                                             ; preds = %8005
  %8019 = load i32, ptr %10, align 4, !tbaa !5
  %8020 = sext i32 %8019 to i64
  %8021 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8020
  %8022 = load i64, ptr %8021, align 8, !tbaa !22
  br label %8023

8023:                                             ; preds = %8018, %8017
  %8024 = phi i64 [ 1, %8017 ], [ %8022, %8018 ]
  %8025 = sub i64 %8011, %8024
  %8026 = lshr i64 %8025, 1
  %8027 = or i64 %8007, %8026
  %8028 = load i32, ptr %10, align 4, !tbaa !5
  %8029 = sext i32 %8028 to i64
  %8030 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8029
  %8031 = load i64, ptr %8030, align 8, !tbaa !22
  %8032 = load i32, ptr %10, align 4, !tbaa !5
  %8033 = sext i32 %8032 to i64
  %8034 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8033
  %8035 = load i64, ptr %8034, align 8, !tbaa !22
  %8036 = icmp ult i64 1, %8035
  br i1 %8036, label %8037, label %8038

8037:                                             ; preds = %8023
  br label %8043

8038:                                             ; preds = %8023
  %8039 = load i32, ptr %10, align 4, !tbaa !5
  %8040 = sext i32 %8039 to i64
  %8041 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8040
  %8042 = load i64, ptr %8041, align 8, !tbaa !22
  br label %8043

8043:                                             ; preds = %8038, %8037
  %8044 = phi i64 [ 1, %8037 ], [ %8042, %8038 ]
  %8045 = sub i64 %8031, %8044
  %8046 = load i32, ptr %10, align 4, !tbaa !5
  %8047 = sext i32 %8046 to i64
  %8048 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8047
  %8049 = load i64, ptr %8048, align 8, !tbaa !22
  %8050 = load i32, ptr %10, align 4, !tbaa !5
  %8051 = sext i32 %8050 to i64
  %8052 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8051
  %8053 = load i64, ptr %8052, align 8, !tbaa !22
  %8054 = icmp ult i64 1, %8053
  br i1 %8054, label %8055, label %8056

8055:                                             ; preds = %8043
  br label %8061

8056:                                             ; preds = %8043
  %8057 = load i32, ptr %10, align 4, !tbaa !5
  %8058 = sext i32 %8057 to i64
  %8059 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8058
  %8060 = load i64, ptr %8059, align 8, !tbaa !22
  br label %8061

8061:                                             ; preds = %8056, %8055
  %8062 = phi i64 [ 1, %8055 ], [ %8060, %8056 ]
  %8063 = sub i64 %8049, %8062
  %8064 = lshr i64 %8063, 1
  %8065 = or i64 %8045, %8064
  %8066 = lshr i64 %8065, 2
  %8067 = or i64 %8027, %8066
  %8068 = load i32, ptr %10, align 4, !tbaa !5
  %8069 = sext i32 %8068 to i64
  %8070 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8069
  %8071 = load i64, ptr %8070, align 8, !tbaa !22
  %8072 = load i32, ptr %10, align 4, !tbaa !5
  %8073 = sext i32 %8072 to i64
  %8074 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8073
  %8075 = load i64, ptr %8074, align 8, !tbaa !22
  %8076 = icmp ult i64 1, %8075
  br i1 %8076, label %8077, label %8078

8077:                                             ; preds = %8061
  br label %8083

8078:                                             ; preds = %8061
  %8079 = load i32, ptr %10, align 4, !tbaa !5
  %8080 = sext i32 %8079 to i64
  %8081 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8080
  %8082 = load i64, ptr %8081, align 8, !tbaa !22
  br label %8083

8083:                                             ; preds = %8078, %8077
  %8084 = phi i64 [ 1, %8077 ], [ %8082, %8078 ]
  %8085 = sub i64 %8071, %8084
  %8086 = load i32, ptr %10, align 4, !tbaa !5
  %8087 = sext i32 %8086 to i64
  %8088 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8087
  %8089 = load i64, ptr %8088, align 8, !tbaa !22
  %8090 = load i32, ptr %10, align 4, !tbaa !5
  %8091 = sext i32 %8090 to i64
  %8092 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8091
  %8093 = load i64, ptr %8092, align 8, !tbaa !22
  %8094 = icmp ult i64 1, %8093
  br i1 %8094, label %8095, label %8096

8095:                                             ; preds = %8083
  br label %8101

8096:                                             ; preds = %8083
  %8097 = load i32, ptr %10, align 4, !tbaa !5
  %8098 = sext i32 %8097 to i64
  %8099 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8098
  %8100 = load i64, ptr %8099, align 8, !tbaa !22
  br label %8101

8101:                                             ; preds = %8096, %8095
  %8102 = phi i64 [ 1, %8095 ], [ %8100, %8096 ]
  %8103 = sub i64 %8089, %8102
  %8104 = lshr i64 %8103, 1
  %8105 = or i64 %8085, %8104
  %8106 = load i32, ptr %10, align 4, !tbaa !5
  %8107 = sext i32 %8106 to i64
  %8108 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8107
  %8109 = load i64, ptr %8108, align 8, !tbaa !22
  %8110 = load i32, ptr %10, align 4, !tbaa !5
  %8111 = sext i32 %8110 to i64
  %8112 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8111
  %8113 = load i64, ptr %8112, align 8, !tbaa !22
  %8114 = icmp ult i64 1, %8113
  br i1 %8114, label %8115, label %8116

8115:                                             ; preds = %8101
  br label %8121

8116:                                             ; preds = %8101
  %8117 = load i32, ptr %10, align 4, !tbaa !5
  %8118 = sext i32 %8117 to i64
  %8119 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8118
  %8120 = load i64, ptr %8119, align 8, !tbaa !22
  br label %8121

8121:                                             ; preds = %8116, %8115
  %8122 = phi i64 [ 1, %8115 ], [ %8120, %8116 ]
  %8123 = sub i64 %8109, %8122
  %8124 = load i32, ptr %10, align 4, !tbaa !5
  %8125 = sext i32 %8124 to i64
  %8126 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8125
  %8127 = load i64, ptr %8126, align 8, !tbaa !22
  %8128 = load i32, ptr %10, align 4, !tbaa !5
  %8129 = sext i32 %8128 to i64
  %8130 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8129
  %8131 = load i64, ptr %8130, align 8, !tbaa !22
  %8132 = icmp ult i64 1, %8131
  br i1 %8132, label %8133, label %8134

8133:                                             ; preds = %8121
  br label %8139

8134:                                             ; preds = %8121
  %8135 = load i32, ptr %10, align 4, !tbaa !5
  %8136 = sext i32 %8135 to i64
  %8137 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8136
  %8138 = load i64, ptr %8137, align 8, !tbaa !22
  br label %8139

8139:                                             ; preds = %8134, %8133
  %8140 = phi i64 [ 1, %8133 ], [ %8138, %8134 ]
  %8141 = sub i64 %8127, %8140
  %8142 = lshr i64 %8141, 1
  %8143 = or i64 %8123, %8142
  %8144 = lshr i64 %8143, 2
  %8145 = or i64 %8105, %8144
  %8146 = lshr i64 %8145, 4
  %8147 = or i64 %8067, %8146
  %8148 = load i32, ptr %10, align 4, !tbaa !5
  %8149 = sext i32 %8148 to i64
  %8150 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8149
  %8151 = load i64, ptr %8150, align 8, !tbaa !22
  %8152 = load i32, ptr %10, align 4, !tbaa !5
  %8153 = sext i32 %8152 to i64
  %8154 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8153
  %8155 = load i64, ptr %8154, align 8, !tbaa !22
  %8156 = icmp ult i64 1, %8155
  br i1 %8156, label %8157, label %8158

8157:                                             ; preds = %8139
  br label %8163

8158:                                             ; preds = %8139
  %8159 = load i32, ptr %10, align 4, !tbaa !5
  %8160 = sext i32 %8159 to i64
  %8161 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8160
  %8162 = load i64, ptr %8161, align 8, !tbaa !22
  br label %8163

8163:                                             ; preds = %8158, %8157
  %8164 = phi i64 [ 1, %8157 ], [ %8162, %8158 ]
  %8165 = sub i64 %8151, %8164
  %8166 = load i32, ptr %10, align 4, !tbaa !5
  %8167 = sext i32 %8166 to i64
  %8168 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8167
  %8169 = load i64, ptr %8168, align 8, !tbaa !22
  %8170 = load i32, ptr %10, align 4, !tbaa !5
  %8171 = sext i32 %8170 to i64
  %8172 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8171
  %8173 = load i64, ptr %8172, align 8, !tbaa !22
  %8174 = icmp ult i64 1, %8173
  br i1 %8174, label %8175, label %8176

8175:                                             ; preds = %8163
  br label %8181

8176:                                             ; preds = %8163
  %8177 = load i32, ptr %10, align 4, !tbaa !5
  %8178 = sext i32 %8177 to i64
  %8179 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8178
  %8180 = load i64, ptr %8179, align 8, !tbaa !22
  br label %8181

8181:                                             ; preds = %8176, %8175
  %8182 = phi i64 [ 1, %8175 ], [ %8180, %8176 ]
  %8183 = sub i64 %8169, %8182
  %8184 = lshr i64 %8183, 1
  %8185 = or i64 %8165, %8184
  %8186 = load i32, ptr %10, align 4, !tbaa !5
  %8187 = sext i32 %8186 to i64
  %8188 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8187
  %8189 = load i64, ptr %8188, align 8, !tbaa !22
  %8190 = load i32, ptr %10, align 4, !tbaa !5
  %8191 = sext i32 %8190 to i64
  %8192 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8191
  %8193 = load i64, ptr %8192, align 8, !tbaa !22
  %8194 = icmp ult i64 1, %8193
  br i1 %8194, label %8195, label %8196

8195:                                             ; preds = %8181
  br label %8201

8196:                                             ; preds = %8181
  %8197 = load i32, ptr %10, align 4, !tbaa !5
  %8198 = sext i32 %8197 to i64
  %8199 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8198
  %8200 = load i64, ptr %8199, align 8, !tbaa !22
  br label %8201

8201:                                             ; preds = %8196, %8195
  %8202 = phi i64 [ 1, %8195 ], [ %8200, %8196 ]
  %8203 = sub i64 %8189, %8202
  %8204 = load i32, ptr %10, align 4, !tbaa !5
  %8205 = sext i32 %8204 to i64
  %8206 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8205
  %8207 = load i64, ptr %8206, align 8, !tbaa !22
  %8208 = load i32, ptr %10, align 4, !tbaa !5
  %8209 = sext i32 %8208 to i64
  %8210 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8209
  %8211 = load i64, ptr %8210, align 8, !tbaa !22
  %8212 = icmp ult i64 1, %8211
  br i1 %8212, label %8213, label %8214

8213:                                             ; preds = %8201
  br label %8219

8214:                                             ; preds = %8201
  %8215 = load i32, ptr %10, align 4, !tbaa !5
  %8216 = sext i32 %8215 to i64
  %8217 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8216
  %8218 = load i64, ptr %8217, align 8, !tbaa !22
  br label %8219

8219:                                             ; preds = %8214, %8213
  %8220 = phi i64 [ 1, %8213 ], [ %8218, %8214 ]
  %8221 = sub i64 %8207, %8220
  %8222 = lshr i64 %8221, 1
  %8223 = or i64 %8203, %8222
  %8224 = lshr i64 %8223, 2
  %8225 = or i64 %8185, %8224
  %8226 = load i32, ptr %10, align 4, !tbaa !5
  %8227 = sext i32 %8226 to i64
  %8228 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8227
  %8229 = load i64, ptr %8228, align 8, !tbaa !22
  %8230 = load i32, ptr %10, align 4, !tbaa !5
  %8231 = sext i32 %8230 to i64
  %8232 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8231
  %8233 = load i64, ptr %8232, align 8, !tbaa !22
  %8234 = icmp ult i64 1, %8233
  br i1 %8234, label %8235, label %8236

8235:                                             ; preds = %8219
  br label %8241

8236:                                             ; preds = %8219
  %8237 = load i32, ptr %10, align 4, !tbaa !5
  %8238 = sext i32 %8237 to i64
  %8239 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8238
  %8240 = load i64, ptr %8239, align 8, !tbaa !22
  br label %8241

8241:                                             ; preds = %8236, %8235
  %8242 = phi i64 [ 1, %8235 ], [ %8240, %8236 ]
  %8243 = sub i64 %8229, %8242
  %8244 = load i32, ptr %10, align 4, !tbaa !5
  %8245 = sext i32 %8244 to i64
  %8246 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8245
  %8247 = load i64, ptr %8246, align 8, !tbaa !22
  %8248 = load i32, ptr %10, align 4, !tbaa !5
  %8249 = sext i32 %8248 to i64
  %8250 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8249
  %8251 = load i64, ptr %8250, align 8, !tbaa !22
  %8252 = icmp ult i64 1, %8251
  br i1 %8252, label %8253, label %8254

8253:                                             ; preds = %8241
  br label %8259

8254:                                             ; preds = %8241
  %8255 = load i32, ptr %10, align 4, !tbaa !5
  %8256 = sext i32 %8255 to i64
  %8257 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8256
  %8258 = load i64, ptr %8257, align 8, !tbaa !22
  br label %8259

8259:                                             ; preds = %8254, %8253
  %8260 = phi i64 [ 1, %8253 ], [ %8258, %8254 ]
  %8261 = sub i64 %8247, %8260
  %8262 = lshr i64 %8261, 1
  %8263 = or i64 %8243, %8262
  %8264 = load i32, ptr %10, align 4, !tbaa !5
  %8265 = sext i32 %8264 to i64
  %8266 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8265
  %8267 = load i64, ptr %8266, align 8, !tbaa !22
  %8268 = load i32, ptr %10, align 4, !tbaa !5
  %8269 = sext i32 %8268 to i64
  %8270 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8269
  %8271 = load i64, ptr %8270, align 8, !tbaa !22
  %8272 = icmp ult i64 1, %8271
  br i1 %8272, label %8273, label %8274

8273:                                             ; preds = %8259
  br label %8279

8274:                                             ; preds = %8259
  %8275 = load i32, ptr %10, align 4, !tbaa !5
  %8276 = sext i32 %8275 to i64
  %8277 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8276
  %8278 = load i64, ptr %8277, align 8, !tbaa !22
  br label %8279

8279:                                             ; preds = %8274, %8273
  %8280 = phi i64 [ 1, %8273 ], [ %8278, %8274 ]
  %8281 = sub i64 %8267, %8280
  %8282 = load i32, ptr %10, align 4, !tbaa !5
  %8283 = sext i32 %8282 to i64
  %8284 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8283
  %8285 = load i64, ptr %8284, align 8, !tbaa !22
  %8286 = load i32, ptr %10, align 4, !tbaa !5
  %8287 = sext i32 %8286 to i64
  %8288 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8287
  %8289 = load i64, ptr %8288, align 8, !tbaa !22
  %8290 = icmp ult i64 1, %8289
  br i1 %8290, label %8291, label %8292

8291:                                             ; preds = %8279
  br label %8297

8292:                                             ; preds = %8279
  %8293 = load i32, ptr %10, align 4, !tbaa !5
  %8294 = sext i32 %8293 to i64
  %8295 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8294
  %8296 = load i64, ptr %8295, align 8, !tbaa !22
  br label %8297

8297:                                             ; preds = %8292, %8291
  %8298 = phi i64 [ 1, %8291 ], [ %8296, %8292 ]
  %8299 = sub i64 %8285, %8298
  %8300 = lshr i64 %8299, 1
  %8301 = or i64 %8281, %8300
  %8302 = lshr i64 %8301, 2
  %8303 = or i64 %8263, %8302
  %8304 = lshr i64 %8303, 4
  %8305 = or i64 %8225, %8304
  %8306 = lshr i64 %8305, 8
  %8307 = or i64 %8147, %8306
  %8308 = lshr i64 %8307, 16
  %8309 = or i64 %7989, %8308
  %8310 = lshr i64 %8309, 32
  %8311 = or i64 %7671, %8310
  %8312 = load i32, ptr %10, align 4, !tbaa !5
  %8313 = sext i32 %8312 to i64
  %8314 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8313
  %8315 = load i64, ptr %8314, align 8, !tbaa !22
  %8316 = icmp ult i64 1, %8315
  br i1 %8316, label %8317, label %8318

8317:                                             ; preds = %8297
  br label %8323

8318:                                             ; preds = %8297
  %8319 = load i32, ptr %10, align 4, !tbaa !5
  %8320 = sext i32 %8319 to i64
  %8321 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8320
  %8322 = load i64, ptr %8321, align 8, !tbaa !22
  br label %8323

8323:                                             ; preds = %8318, %8317
  %8324 = phi i64 [ 1, %8317 ], [ %8322, %8318 ]
  %8325 = add i64 %8311, %8324
  %8326 = icmp eq i64 %7033, %8325
  br label %8327

8327:                                             ; preds = %8323, %7021
  %8328 = phi i1 [ false, %7021 ], [ %8326, %8323 ]
  %8329 = zext i1 %8328 to i32
  %8330 = icmp ne i32 %7023, %8329
  br i1 %8330, label %8331, label %8332

8331:                                             ; preds = %8327
  call void @exit(i32 noundef 1) #10
  unreachable

8332:                                             ; preds = %8327
  %8333 = load i32, ptr %10, align 4, !tbaa !5
  %8334 = sext i32 %8333 to i64
  %8335 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8334
  %8336 = load i64, ptr %8335, align 8, !tbaa !22
  %8337 = icmp ne i64 0, %8336
  br i1 %8337, label %8338, label %8351

8338:                                             ; preds = %8332
  %8339 = load i32, ptr %10, align 4, !tbaa !5
  %8340 = sext i32 %8339 to i64
  %8341 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8340
  %8342 = load i64, ptr %8341, align 8, !tbaa !22
  %8343 = load i32, ptr %10, align 4, !tbaa !5
  %8344 = sext i32 %8343 to i64
  %8345 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8344
  %8346 = load i64, ptr %8345, align 8, !tbaa !22
  %8347 = sub i64 %8346, 1
  %8348 = and i64 %8342, %8347
  %8349 = icmp ne i64 %8348, 0
  %8350 = xor i1 %8349, true
  br label %8351

8351:                                             ; preds = %8338, %8332
  %8352 = phi i1 [ false, %8332 ], [ %8350, %8338 ]
  %8353 = zext i1 %8352 to i32
  %8354 = load i32, ptr %10, align 4, !tbaa !5
  %8355 = sext i32 %8354 to i64
  %8356 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8355
  %8357 = load i64, ptr %8356, align 8, !tbaa !22
  %8358 = icmp ne i64 0, %8357
  br i1 %8358, label %8359, label %8825

8359:                                             ; preds = %8351
  %8360 = load i32, ptr %10, align 4, !tbaa !5
  %8361 = sext i32 %8360 to i64
  %8362 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8361
  %8363 = load i64, ptr %8362, align 8, !tbaa !22
  %8364 = load i32, ptr %10, align 4, !tbaa !5
  %8365 = sext i32 %8364 to i64
  %8366 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8365
  %8367 = load i64, ptr %8366, align 8, !tbaa !22
  %8368 = lshr i64 %8367, 1
  %8369 = load i32, ptr %10, align 4, !tbaa !5
  %8370 = sext i32 %8369 to i64
  %8371 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8370
  %8372 = load i64, ptr %8371, align 8, !tbaa !22
  %8373 = lshr i64 %8372, 1
  %8374 = lshr i64 %8373, 1
  %8375 = or i64 %8368, %8374
  %8376 = load i32, ptr %10, align 4, !tbaa !5
  %8377 = sext i32 %8376 to i64
  %8378 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8377
  %8379 = load i64, ptr %8378, align 8, !tbaa !22
  %8380 = lshr i64 %8379, 1
  %8381 = load i32, ptr %10, align 4, !tbaa !5
  %8382 = sext i32 %8381 to i64
  %8383 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8382
  %8384 = load i64, ptr %8383, align 8, !tbaa !22
  %8385 = lshr i64 %8384, 1
  %8386 = lshr i64 %8385, 1
  %8387 = or i64 %8380, %8386
  %8388 = lshr i64 %8387, 2
  %8389 = or i64 %8375, %8388
  %8390 = load i32, ptr %10, align 4, !tbaa !5
  %8391 = sext i32 %8390 to i64
  %8392 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8391
  %8393 = load i64, ptr %8392, align 8, !tbaa !22
  %8394 = lshr i64 %8393, 1
  %8395 = load i32, ptr %10, align 4, !tbaa !5
  %8396 = sext i32 %8395 to i64
  %8397 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8396
  %8398 = load i64, ptr %8397, align 8, !tbaa !22
  %8399 = lshr i64 %8398, 1
  %8400 = lshr i64 %8399, 1
  %8401 = or i64 %8394, %8400
  %8402 = load i32, ptr %10, align 4, !tbaa !5
  %8403 = sext i32 %8402 to i64
  %8404 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8403
  %8405 = load i64, ptr %8404, align 8, !tbaa !22
  %8406 = lshr i64 %8405, 1
  %8407 = load i32, ptr %10, align 4, !tbaa !5
  %8408 = sext i32 %8407 to i64
  %8409 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8408
  %8410 = load i64, ptr %8409, align 8, !tbaa !22
  %8411 = lshr i64 %8410, 1
  %8412 = lshr i64 %8411, 1
  %8413 = or i64 %8406, %8412
  %8414 = lshr i64 %8413, 2
  %8415 = or i64 %8401, %8414
  %8416 = lshr i64 %8415, 4
  %8417 = or i64 %8389, %8416
  %8418 = load i32, ptr %10, align 4, !tbaa !5
  %8419 = sext i32 %8418 to i64
  %8420 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8419
  %8421 = load i64, ptr %8420, align 8, !tbaa !22
  %8422 = lshr i64 %8421, 1
  %8423 = load i32, ptr %10, align 4, !tbaa !5
  %8424 = sext i32 %8423 to i64
  %8425 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8424
  %8426 = load i64, ptr %8425, align 8, !tbaa !22
  %8427 = lshr i64 %8426, 1
  %8428 = lshr i64 %8427, 1
  %8429 = or i64 %8422, %8428
  %8430 = load i32, ptr %10, align 4, !tbaa !5
  %8431 = sext i32 %8430 to i64
  %8432 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8431
  %8433 = load i64, ptr %8432, align 8, !tbaa !22
  %8434 = lshr i64 %8433, 1
  %8435 = load i32, ptr %10, align 4, !tbaa !5
  %8436 = sext i32 %8435 to i64
  %8437 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8436
  %8438 = load i64, ptr %8437, align 8, !tbaa !22
  %8439 = lshr i64 %8438, 1
  %8440 = lshr i64 %8439, 1
  %8441 = or i64 %8434, %8440
  %8442 = lshr i64 %8441, 2
  %8443 = or i64 %8429, %8442
  %8444 = load i32, ptr %10, align 4, !tbaa !5
  %8445 = sext i32 %8444 to i64
  %8446 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8445
  %8447 = load i64, ptr %8446, align 8, !tbaa !22
  %8448 = lshr i64 %8447, 1
  %8449 = load i32, ptr %10, align 4, !tbaa !5
  %8450 = sext i32 %8449 to i64
  %8451 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8450
  %8452 = load i64, ptr %8451, align 8, !tbaa !22
  %8453 = lshr i64 %8452, 1
  %8454 = lshr i64 %8453, 1
  %8455 = or i64 %8448, %8454
  %8456 = load i32, ptr %10, align 4, !tbaa !5
  %8457 = sext i32 %8456 to i64
  %8458 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8457
  %8459 = load i64, ptr %8458, align 8, !tbaa !22
  %8460 = lshr i64 %8459, 1
  %8461 = load i32, ptr %10, align 4, !tbaa !5
  %8462 = sext i32 %8461 to i64
  %8463 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8462
  %8464 = load i64, ptr %8463, align 8, !tbaa !22
  %8465 = lshr i64 %8464, 1
  %8466 = lshr i64 %8465, 1
  %8467 = or i64 %8460, %8466
  %8468 = lshr i64 %8467, 2
  %8469 = or i64 %8455, %8468
  %8470 = lshr i64 %8469, 4
  %8471 = or i64 %8443, %8470
  %8472 = lshr i64 %8471, 8
  %8473 = or i64 %8417, %8472
  %8474 = load i32, ptr %10, align 4, !tbaa !5
  %8475 = sext i32 %8474 to i64
  %8476 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8475
  %8477 = load i64, ptr %8476, align 8, !tbaa !22
  %8478 = lshr i64 %8477, 1
  %8479 = load i32, ptr %10, align 4, !tbaa !5
  %8480 = sext i32 %8479 to i64
  %8481 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8480
  %8482 = load i64, ptr %8481, align 8, !tbaa !22
  %8483 = lshr i64 %8482, 1
  %8484 = lshr i64 %8483, 1
  %8485 = or i64 %8478, %8484
  %8486 = load i32, ptr %10, align 4, !tbaa !5
  %8487 = sext i32 %8486 to i64
  %8488 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8487
  %8489 = load i64, ptr %8488, align 8, !tbaa !22
  %8490 = lshr i64 %8489, 1
  %8491 = load i32, ptr %10, align 4, !tbaa !5
  %8492 = sext i32 %8491 to i64
  %8493 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8492
  %8494 = load i64, ptr %8493, align 8, !tbaa !22
  %8495 = lshr i64 %8494, 1
  %8496 = lshr i64 %8495, 1
  %8497 = or i64 %8490, %8496
  %8498 = lshr i64 %8497, 2
  %8499 = or i64 %8485, %8498
  %8500 = load i32, ptr %10, align 4, !tbaa !5
  %8501 = sext i32 %8500 to i64
  %8502 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8501
  %8503 = load i64, ptr %8502, align 8, !tbaa !22
  %8504 = lshr i64 %8503, 1
  %8505 = load i32, ptr %10, align 4, !tbaa !5
  %8506 = sext i32 %8505 to i64
  %8507 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8506
  %8508 = load i64, ptr %8507, align 8, !tbaa !22
  %8509 = lshr i64 %8508, 1
  %8510 = lshr i64 %8509, 1
  %8511 = or i64 %8504, %8510
  %8512 = load i32, ptr %10, align 4, !tbaa !5
  %8513 = sext i32 %8512 to i64
  %8514 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8513
  %8515 = load i64, ptr %8514, align 8, !tbaa !22
  %8516 = lshr i64 %8515, 1
  %8517 = load i32, ptr %10, align 4, !tbaa !5
  %8518 = sext i32 %8517 to i64
  %8519 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8518
  %8520 = load i64, ptr %8519, align 8, !tbaa !22
  %8521 = lshr i64 %8520, 1
  %8522 = lshr i64 %8521, 1
  %8523 = or i64 %8516, %8522
  %8524 = lshr i64 %8523, 2
  %8525 = or i64 %8511, %8524
  %8526 = lshr i64 %8525, 4
  %8527 = or i64 %8499, %8526
  %8528 = load i32, ptr %10, align 4, !tbaa !5
  %8529 = sext i32 %8528 to i64
  %8530 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8529
  %8531 = load i64, ptr %8530, align 8, !tbaa !22
  %8532 = lshr i64 %8531, 1
  %8533 = load i32, ptr %10, align 4, !tbaa !5
  %8534 = sext i32 %8533 to i64
  %8535 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8534
  %8536 = load i64, ptr %8535, align 8, !tbaa !22
  %8537 = lshr i64 %8536, 1
  %8538 = lshr i64 %8537, 1
  %8539 = or i64 %8532, %8538
  %8540 = load i32, ptr %10, align 4, !tbaa !5
  %8541 = sext i32 %8540 to i64
  %8542 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8541
  %8543 = load i64, ptr %8542, align 8, !tbaa !22
  %8544 = lshr i64 %8543, 1
  %8545 = load i32, ptr %10, align 4, !tbaa !5
  %8546 = sext i32 %8545 to i64
  %8547 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8546
  %8548 = load i64, ptr %8547, align 8, !tbaa !22
  %8549 = lshr i64 %8548, 1
  %8550 = lshr i64 %8549, 1
  %8551 = or i64 %8544, %8550
  %8552 = lshr i64 %8551, 2
  %8553 = or i64 %8539, %8552
  %8554 = load i32, ptr %10, align 4, !tbaa !5
  %8555 = sext i32 %8554 to i64
  %8556 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8555
  %8557 = load i64, ptr %8556, align 8, !tbaa !22
  %8558 = lshr i64 %8557, 1
  %8559 = load i32, ptr %10, align 4, !tbaa !5
  %8560 = sext i32 %8559 to i64
  %8561 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8560
  %8562 = load i64, ptr %8561, align 8, !tbaa !22
  %8563 = lshr i64 %8562, 1
  %8564 = lshr i64 %8563, 1
  %8565 = or i64 %8558, %8564
  %8566 = load i32, ptr %10, align 4, !tbaa !5
  %8567 = sext i32 %8566 to i64
  %8568 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8567
  %8569 = load i64, ptr %8568, align 8, !tbaa !22
  %8570 = lshr i64 %8569, 1
  %8571 = load i32, ptr %10, align 4, !tbaa !5
  %8572 = sext i32 %8571 to i64
  %8573 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8572
  %8574 = load i64, ptr %8573, align 8, !tbaa !22
  %8575 = lshr i64 %8574, 1
  %8576 = lshr i64 %8575, 1
  %8577 = or i64 %8570, %8576
  %8578 = lshr i64 %8577, 2
  %8579 = or i64 %8565, %8578
  %8580 = lshr i64 %8579, 4
  %8581 = or i64 %8553, %8580
  %8582 = lshr i64 %8581, 8
  %8583 = or i64 %8527, %8582
  %8584 = lshr i64 %8583, 16
  %8585 = or i64 %8473, %8584
  %8586 = load i32, ptr %10, align 4, !tbaa !5
  %8587 = sext i32 %8586 to i64
  %8588 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8587
  %8589 = load i64, ptr %8588, align 8, !tbaa !22
  %8590 = lshr i64 %8589, 1
  %8591 = load i32, ptr %10, align 4, !tbaa !5
  %8592 = sext i32 %8591 to i64
  %8593 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8592
  %8594 = load i64, ptr %8593, align 8, !tbaa !22
  %8595 = lshr i64 %8594, 1
  %8596 = lshr i64 %8595, 1
  %8597 = or i64 %8590, %8596
  %8598 = load i32, ptr %10, align 4, !tbaa !5
  %8599 = sext i32 %8598 to i64
  %8600 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8599
  %8601 = load i64, ptr %8600, align 8, !tbaa !22
  %8602 = lshr i64 %8601, 1
  %8603 = load i32, ptr %10, align 4, !tbaa !5
  %8604 = sext i32 %8603 to i64
  %8605 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8604
  %8606 = load i64, ptr %8605, align 8, !tbaa !22
  %8607 = lshr i64 %8606, 1
  %8608 = lshr i64 %8607, 1
  %8609 = or i64 %8602, %8608
  %8610 = lshr i64 %8609, 2
  %8611 = or i64 %8597, %8610
  %8612 = load i32, ptr %10, align 4, !tbaa !5
  %8613 = sext i32 %8612 to i64
  %8614 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8613
  %8615 = load i64, ptr %8614, align 8, !tbaa !22
  %8616 = lshr i64 %8615, 1
  %8617 = load i32, ptr %10, align 4, !tbaa !5
  %8618 = sext i32 %8617 to i64
  %8619 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8618
  %8620 = load i64, ptr %8619, align 8, !tbaa !22
  %8621 = lshr i64 %8620, 1
  %8622 = lshr i64 %8621, 1
  %8623 = or i64 %8616, %8622
  %8624 = load i32, ptr %10, align 4, !tbaa !5
  %8625 = sext i32 %8624 to i64
  %8626 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8625
  %8627 = load i64, ptr %8626, align 8, !tbaa !22
  %8628 = lshr i64 %8627, 1
  %8629 = load i32, ptr %10, align 4, !tbaa !5
  %8630 = sext i32 %8629 to i64
  %8631 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8630
  %8632 = load i64, ptr %8631, align 8, !tbaa !22
  %8633 = lshr i64 %8632, 1
  %8634 = lshr i64 %8633, 1
  %8635 = or i64 %8628, %8634
  %8636 = lshr i64 %8635, 2
  %8637 = or i64 %8623, %8636
  %8638 = lshr i64 %8637, 4
  %8639 = or i64 %8611, %8638
  %8640 = load i32, ptr %10, align 4, !tbaa !5
  %8641 = sext i32 %8640 to i64
  %8642 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8641
  %8643 = load i64, ptr %8642, align 8, !tbaa !22
  %8644 = lshr i64 %8643, 1
  %8645 = load i32, ptr %10, align 4, !tbaa !5
  %8646 = sext i32 %8645 to i64
  %8647 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8646
  %8648 = load i64, ptr %8647, align 8, !tbaa !22
  %8649 = lshr i64 %8648, 1
  %8650 = lshr i64 %8649, 1
  %8651 = or i64 %8644, %8650
  %8652 = load i32, ptr %10, align 4, !tbaa !5
  %8653 = sext i32 %8652 to i64
  %8654 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8653
  %8655 = load i64, ptr %8654, align 8, !tbaa !22
  %8656 = lshr i64 %8655, 1
  %8657 = load i32, ptr %10, align 4, !tbaa !5
  %8658 = sext i32 %8657 to i64
  %8659 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8658
  %8660 = load i64, ptr %8659, align 8, !tbaa !22
  %8661 = lshr i64 %8660, 1
  %8662 = lshr i64 %8661, 1
  %8663 = or i64 %8656, %8662
  %8664 = lshr i64 %8663, 2
  %8665 = or i64 %8651, %8664
  %8666 = load i32, ptr %10, align 4, !tbaa !5
  %8667 = sext i32 %8666 to i64
  %8668 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8667
  %8669 = load i64, ptr %8668, align 8, !tbaa !22
  %8670 = lshr i64 %8669, 1
  %8671 = load i32, ptr %10, align 4, !tbaa !5
  %8672 = sext i32 %8671 to i64
  %8673 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8672
  %8674 = load i64, ptr %8673, align 8, !tbaa !22
  %8675 = lshr i64 %8674, 1
  %8676 = lshr i64 %8675, 1
  %8677 = or i64 %8670, %8676
  %8678 = load i32, ptr %10, align 4, !tbaa !5
  %8679 = sext i32 %8678 to i64
  %8680 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8679
  %8681 = load i64, ptr %8680, align 8, !tbaa !22
  %8682 = lshr i64 %8681, 1
  %8683 = load i32, ptr %10, align 4, !tbaa !5
  %8684 = sext i32 %8683 to i64
  %8685 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8684
  %8686 = load i64, ptr %8685, align 8, !tbaa !22
  %8687 = lshr i64 %8686, 1
  %8688 = lshr i64 %8687, 1
  %8689 = or i64 %8682, %8688
  %8690 = lshr i64 %8689, 2
  %8691 = or i64 %8677, %8690
  %8692 = lshr i64 %8691, 4
  %8693 = or i64 %8665, %8692
  %8694 = lshr i64 %8693, 8
  %8695 = or i64 %8639, %8694
  %8696 = load i32, ptr %10, align 4, !tbaa !5
  %8697 = sext i32 %8696 to i64
  %8698 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8697
  %8699 = load i64, ptr %8698, align 8, !tbaa !22
  %8700 = lshr i64 %8699, 1
  %8701 = load i32, ptr %10, align 4, !tbaa !5
  %8702 = sext i32 %8701 to i64
  %8703 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8702
  %8704 = load i64, ptr %8703, align 8, !tbaa !22
  %8705 = lshr i64 %8704, 1
  %8706 = lshr i64 %8705, 1
  %8707 = or i64 %8700, %8706
  %8708 = load i32, ptr %10, align 4, !tbaa !5
  %8709 = sext i32 %8708 to i64
  %8710 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8709
  %8711 = load i64, ptr %8710, align 8, !tbaa !22
  %8712 = lshr i64 %8711, 1
  %8713 = load i32, ptr %10, align 4, !tbaa !5
  %8714 = sext i32 %8713 to i64
  %8715 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8714
  %8716 = load i64, ptr %8715, align 8, !tbaa !22
  %8717 = lshr i64 %8716, 1
  %8718 = lshr i64 %8717, 1
  %8719 = or i64 %8712, %8718
  %8720 = lshr i64 %8719, 2
  %8721 = or i64 %8707, %8720
  %8722 = load i32, ptr %10, align 4, !tbaa !5
  %8723 = sext i32 %8722 to i64
  %8724 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8723
  %8725 = load i64, ptr %8724, align 8, !tbaa !22
  %8726 = lshr i64 %8725, 1
  %8727 = load i32, ptr %10, align 4, !tbaa !5
  %8728 = sext i32 %8727 to i64
  %8729 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8728
  %8730 = load i64, ptr %8729, align 8, !tbaa !22
  %8731 = lshr i64 %8730, 1
  %8732 = lshr i64 %8731, 1
  %8733 = or i64 %8726, %8732
  %8734 = load i32, ptr %10, align 4, !tbaa !5
  %8735 = sext i32 %8734 to i64
  %8736 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8735
  %8737 = load i64, ptr %8736, align 8, !tbaa !22
  %8738 = lshr i64 %8737, 1
  %8739 = load i32, ptr %10, align 4, !tbaa !5
  %8740 = sext i32 %8739 to i64
  %8741 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8740
  %8742 = load i64, ptr %8741, align 8, !tbaa !22
  %8743 = lshr i64 %8742, 1
  %8744 = lshr i64 %8743, 1
  %8745 = or i64 %8738, %8744
  %8746 = lshr i64 %8745, 2
  %8747 = or i64 %8733, %8746
  %8748 = lshr i64 %8747, 4
  %8749 = or i64 %8721, %8748
  %8750 = load i32, ptr %10, align 4, !tbaa !5
  %8751 = sext i32 %8750 to i64
  %8752 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8751
  %8753 = load i64, ptr %8752, align 8, !tbaa !22
  %8754 = lshr i64 %8753, 1
  %8755 = load i32, ptr %10, align 4, !tbaa !5
  %8756 = sext i32 %8755 to i64
  %8757 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8756
  %8758 = load i64, ptr %8757, align 8, !tbaa !22
  %8759 = lshr i64 %8758, 1
  %8760 = lshr i64 %8759, 1
  %8761 = or i64 %8754, %8760
  %8762 = load i32, ptr %10, align 4, !tbaa !5
  %8763 = sext i32 %8762 to i64
  %8764 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8763
  %8765 = load i64, ptr %8764, align 8, !tbaa !22
  %8766 = lshr i64 %8765, 1
  %8767 = load i32, ptr %10, align 4, !tbaa !5
  %8768 = sext i32 %8767 to i64
  %8769 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8768
  %8770 = load i64, ptr %8769, align 8, !tbaa !22
  %8771 = lshr i64 %8770, 1
  %8772 = lshr i64 %8771, 1
  %8773 = or i64 %8766, %8772
  %8774 = lshr i64 %8773, 2
  %8775 = or i64 %8761, %8774
  %8776 = load i32, ptr %10, align 4, !tbaa !5
  %8777 = sext i32 %8776 to i64
  %8778 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8777
  %8779 = load i64, ptr %8778, align 8, !tbaa !22
  %8780 = lshr i64 %8779, 1
  %8781 = load i32, ptr %10, align 4, !tbaa !5
  %8782 = sext i32 %8781 to i64
  %8783 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8782
  %8784 = load i64, ptr %8783, align 8, !tbaa !22
  %8785 = lshr i64 %8784, 1
  %8786 = lshr i64 %8785, 1
  %8787 = or i64 %8780, %8786
  %8788 = load i32, ptr %10, align 4, !tbaa !5
  %8789 = sext i32 %8788 to i64
  %8790 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8789
  %8791 = load i64, ptr %8790, align 8, !tbaa !22
  %8792 = lshr i64 %8791, 1
  %8793 = load i32, ptr %10, align 4, !tbaa !5
  %8794 = sext i32 %8793 to i64
  %8795 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8794
  %8796 = load i64, ptr %8795, align 8, !tbaa !22
  %8797 = lshr i64 %8796, 1
  %8798 = lshr i64 %8797, 1
  %8799 = or i64 %8792, %8798
  %8800 = lshr i64 %8799, 2
  %8801 = or i64 %8787, %8800
  %8802 = lshr i64 %8801, 4
  %8803 = or i64 %8775, %8802
  %8804 = lshr i64 %8803, 8
  %8805 = or i64 %8749, %8804
  %8806 = lshr i64 %8805, 16
  %8807 = or i64 %8695, %8806
  %8808 = lshr i64 %8807, 32
  %8809 = or i64 %8585, %8808
  %8810 = load i32, ptr %10, align 4, !tbaa !5
  %8811 = sext i32 %8810 to i64
  %8812 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8811
  %8813 = load i64, ptr %8812, align 8, !tbaa !22
  %8814 = icmp ult i64 1, %8813
  br i1 %8814, label %8815, label %8816

8815:                                             ; preds = %8359
  br label %8821

8816:                                             ; preds = %8359
  %8817 = load i32, ptr %10, align 4, !tbaa !5
  %8818 = sext i32 %8817 to i64
  %8819 = getelementptr inbounds [7 x i64], ptr %38, i64 0, i64 %8818
  %8820 = load i64, ptr %8819, align 8, !tbaa !22
  br label %8821

8821:                                             ; preds = %8816, %8815
  %8822 = phi i64 [ 1, %8815 ], [ %8820, %8816 ]
  %8823 = add i64 %8809, %8822
  %8824 = icmp eq i64 %8363, %8823
  br label %8825

8825:                                             ; preds = %8821, %8351
  %8826 = phi i1 [ false, %8351 ], [ %8824, %8821 ]
  %8827 = zext i1 %8826 to i32
  %8828 = icmp ne i32 %8353, %8827
  br i1 %8828, label %8829, label %8830

8829:                                             ; preds = %8825
  call void @exit(i32 noundef 1) #10
  unreachable

8830:                                             ; preds = %8825
  br label %8831

8831:                                             ; preds = %8830
  %8832 = load i32, ptr %10, align 4, !tbaa !5
  %8833 = add nsw i32 %8832, 1
  store i32 %8833, ptr %10, align 4, !tbaa !5
  br label %1577, !llvm.loop !24

8834:                                             ; preds = %1577
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %36) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %40, ptr align 16 @__const.main.inp, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %41) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %41, ptr align 16 @__const.main.out, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  store i32 6, ptr %42, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %8835

8835:                                             ; preds = %8852, %8834
  %8836 = load i32, ptr %10, align 4, !tbaa !5
  %8837 = icmp slt i32 %8836, 6
  br i1 %8837, label %8838, label %8855

8838:                                             ; preds = %8835
  %8839 = load i32, ptr %10, align 4, !tbaa !5
  %8840 = sext i32 %8839 to i64
  %8841 = getelementptr inbounds [6 x i32], ptr %40, i64 0, i64 %8840
  %8842 = load i32, ptr %8841, align 4, !tbaa !5
  %8843 = add nsw i32 %8842, 6
  %8844 = sdiv i32 %8843, 7
  %8845 = load i32, ptr %10, align 4, !tbaa !5
  %8846 = sext i32 %8845 to i64
  %8847 = getelementptr inbounds [6 x i32], ptr %41, i64 0, i64 %8846
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = icmp ne i32 %8844, %8848
  br i1 %8849, label %8850, label %8851

8850:                                             ; preds = %8838
  call void @exit(i32 noundef 1) #10
  unreachable

8851:                                             ; preds = %8838
  br label %8852

8852:                                             ; preds = %8851
  %8853 = load i32, ptr %10, align 4, !tbaa !5
  %8854 = add nsw i32 %8853, 1
  store i32 %8854, ptr %10, align 4, !tbaa !5
  br label %8835, !llvm.loop !25

8855:                                             ; preds = %8835
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %43, ptr align 16 @__const.main.inp.1, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %44, ptr align 16 @__const.main.out.2, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store i32 6, ptr %45, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %8856

8856:                                             ; preds = %8874, %8855
  %8857 = load i32, ptr %10, align 4, !tbaa !5
  %8858 = icmp slt i32 %8857, 6
  br i1 %8858, label %8859, label %8877

8859:                                             ; preds = %8856
  %8860 = load i32, ptr %10, align 4, !tbaa !5
  %8861 = sext i32 %8860 to i64
  %8862 = getelementptr inbounds [6 x i32], ptr %43, i64 0, i64 %8861
  %8863 = load i32, ptr %8862, align 4, !tbaa !5
  %8864 = add nsw i32 %8863, 6
  %8865 = sdiv i32 %8864, 7
  %8866 = mul nsw i32 %8865, 7
  %8867 = load i32, ptr %10, align 4, !tbaa !5
  %8868 = sext i32 %8867 to i64
  %8869 = getelementptr inbounds [6 x i32], ptr %44, i64 0, i64 %8868
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  %8871 = icmp ne i32 %8866, %8870
  br i1 %8871, label %8872, label %8873

8872:                                             ; preds = %8859
  call void @exit(i32 noundef 1) #10
  unreachable

8873:                                             ; preds = %8859
  br label %8874

8874:                                             ; preds = %8873
  %8875 = load i32, ptr %10, align 4, !tbaa !5
  %8876 = add nsw i32 %8875, 1
  store i32 %8876, ptr %10, align 4, !tbaa !5
  br label %8856, !llvm.loop !26

8877:                                             ; preds = %8856
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %46, ptr align 16 @__const.main.inp.3, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %47, ptr align 16 @__const.main.out.4, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  store i32 6, ptr %48, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %8878

8878:                                             ; preds = %8894, %8877
  %8879 = load i32, ptr %10, align 4, !tbaa !5
  %8880 = icmp slt i32 %8879, 6
  br i1 %8880, label %8881, label %8897

8881:                                             ; preds = %8878
  %8882 = load i32, ptr %10, align 4, !tbaa !5
  %8883 = sext i32 %8882 to i64
  %8884 = getelementptr inbounds [6 x i32], ptr %46, i64 0, i64 %8883
  %8885 = load i32, ptr %8884, align 4, !tbaa !5
  %8886 = and i32 %8885, -8
  %8887 = load i32, ptr %10, align 4, !tbaa !5
  %8888 = sext i32 %8887 to i64
  %8889 = getelementptr inbounds [6 x i32], ptr %47, i64 0, i64 %8888
  %8890 = load i32, ptr %8889, align 4, !tbaa !5
  %8891 = icmp ne i32 %8886, %8890
  br i1 %8891, label %8892, label %8893

8892:                                             ; preds = %8881
  call void @exit(i32 noundef 1) #10
  unreachable

8893:                                             ; preds = %8881
  br label %8894

8894:                                             ; preds = %8893
  %8895 = load i32, ptr %10, align 4, !tbaa !5
  %8896 = add nsw i32 %8895, 1
  store i32 %8896, ptr %10, align 4, !tbaa !5
  br label %8878, !llvm.loop !27

8897:                                             ; preds = %8878
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %49, ptr align 16 @__const.main.inp.5, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %50, ptr align 16 @__const.main.out.6, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  store i32 6, ptr %51, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %8898

8898:                                             ; preds = %8915, %8897
  %8899 = load i32, ptr %10, align 4, !tbaa !5
  %8900 = icmp slt i32 %8899, 6
  br i1 %8900, label %8901, label %8918

8901:                                             ; preds = %8898
  %8902 = load i32, ptr %10, align 4, !tbaa !5
  %8903 = sext i32 %8902 to i64
  %8904 = getelementptr inbounds [6 x i32], ptr %49, i64 0, i64 %8903
  %8905 = load i32, ptr %8904, align 4, !tbaa !5
  %8906 = add nsw i32 %8905, 7
  %8907 = and i32 %8906, -8
  %8908 = load i32, ptr %10, align 4, !tbaa !5
  %8909 = sext i32 %8908 to i64
  %8910 = getelementptr inbounds [6 x i32], ptr %50, i64 0, i64 %8909
  %8911 = load i32, ptr %8910, align 4, !tbaa !5
  %8912 = icmp ne i32 %8907, %8911
  br i1 %8912, label %8913, label %8914

8913:                                             ; preds = %8901
  call void @exit(i32 noundef 1) #10
  unreachable

8914:                                             ; preds = %8901
  br label %8915

8915:                                             ; preds = %8914
  %8916 = load i32, ptr %10, align 4, !tbaa !5
  %8917 = add nsw i32 %8916, 1
  store i32 %8917, ptr %10, align 4, !tbaa !5
  br label %8898, !llvm.loop !28

8918:                                             ; preds = %8898
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %52) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %52, ptr align 16 @__const.main.inp.7, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %53, ptr align 16 @__const.main.out.8, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  store i32 6, ptr %54, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %8919

8919:                                             ; preds = %8945, %8918
  %8920 = load i32, ptr %10, align 4, !tbaa !5
  %8921 = icmp slt i32 %8920, 6
  br i1 %8921, label %8922, label %8948

8922:                                             ; preds = %8919
  %8923 = load i32, ptr %10, align 4, !tbaa !5
  %8924 = sext i32 %8923 to i64
  %8925 = getelementptr inbounds [6 x i32], ptr %52, i64 0, i64 %8924
  %8926 = load i32, ptr %8925, align 4, !tbaa !5
  %8927 = mul nsw i32 %8926, 103
  %8928 = sdiv i32 %8927, 100
  %8929 = load i32, ptr %10, align 4, !tbaa !5
  %8930 = sext i32 %8929 to i64
  %8931 = getelementptr inbounds [6 x i32], ptr %53, i64 0, i64 %8930
  %8932 = load i32, ptr %8931, align 4, !tbaa !5
  %8933 = icmp ne i32 %8928, %8932
  br i1 %8933, label %8934, label %8935

8934:                                             ; preds = %8922
  call void @exit(i32 noundef 1) #10
  unreachable

8935:                                             ; preds = %8922
  %8936 = load i32, ptr %10, align 4, !tbaa !5
  %8937 = sext i32 %8936 to i64
  %8938 = getelementptr inbounds [6 x i32], ptr %52, i64 0, i64 %8937
  %8939 = load i32, ptr %8938, align 4, !tbaa !5
  %8940 = mul nsw i32 %8939, 0
  %8941 = sdiv i32 %8940, 100
  %8942 = icmp ne i32 %8941, 0
  br i1 %8942, label %8943, label %8944

8943:                                             ; preds = %8935
  call void @exit(i32 noundef 1) #10
  unreachable

8944:                                             ; preds = %8935
  br label %8945

8945:                                             ; preds = %8944
  %8946 = load i32, ptr %10, align 4, !tbaa !5
  %8947 = add nsw i32 %8946, 1
  store i32 %8947, ptr %10, align 4, !tbaa !5
  br label %8919, !llvm.loop !29

8948:                                             ; preds = %8919
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %55) #9
  call void @llvm.memset.p0.i64(ptr align 16 %55, i8 0, i64 40, i1 false)
  %8949 = getelementptr inbounds [5 x i64], ptr %55, i32 0, i32 1
  store i64 1, ptr %8949, align 8
  %8950 = getelementptr inbounds [5 x i64], ptr %55, i32 0, i32 3
  store i64 100, ptr %8950, align 8
  %8951 = getelementptr inbounds [5 x i64], ptr %55, i32 0, i32 4
  store i64 10, ptr %8951, align 16
  call void @llvm.lifetime.start.p0(i64 40, ptr %56) #9
  call void @llvm.memset.p0.i64(ptr align 16 %56, i8 0, i64 40, i1 false)
  %8952 = getelementptr inbounds [5 x i64], ptr %56, i32 0, i32 2
  store i64 2, ptr %8952, align 16
  %8953 = getelementptr inbounds [5 x i64], ptr %56, i32 0, i32 3
  store i64 10, ptr %8953, align 8
  %8954 = getelementptr inbounds [5 x i64], ptr %56, i32 0, i32 4
  store i64 100, ptr %8954, align 16
  call void @llvm.lifetime.start.p0(i64 40, ptr %57) #9
  call void @llvm.memset.p0.i64(ptr align 16 %57, i8 0, i64 40, i1 false)
  %8955 = getelementptr inbounds [5 x i64], ptr %57, i32 0, i32 0
  store i64 1, ptr %8955, align 16
  %8956 = getelementptr inbounds [5 x i64], ptr %57, i32 0, i32 1
  store i64 1, ptr %8956, align 8
  %8957 = getelementptr inbounds [5 x i64], ptr %57, i32 0, i32 2
  store i64 2, ptr %8957, align 16
  %8958 = getelementptr inbounds [5 x i64], ptr %57, i32 0, i32 3
  store i64 10, ptr %8958, align 8
  %8959 = getelementptr inbounds [5 x i64], ptr %57, i32 0, i32 4
  store i64 10, ptr %8959, align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  store i32 5, ptr %58, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %8960

8960:                                             ; preds = %8996, %8948
  %8961 = load i32, ptr %10, align 4, !tbaa !5
  %8962 = icmp slt i32 %8961, 5
  br i1 %8962, label %8963, label %8999

8963:                                             ; preds = %8960
  %8964 = load i32, ptr %10, align 4, !tbaa !5
  %8965 = sext i32 %8964 to i64
  %8966 = getelementptr inbounds [5 x i64], ptr %55, i64 0, i64 %8965
  %8967 = load i64, ptr %8966, align 8, !tbaa !22
  %8968 = load i32, ptr %10, align 4, !tbaa !5
  %8969 = sext i32 %8968 to i64
  %8970 = getelementptr inbounds [5 x i64], ptr %56, i64 0, i64 %8969
  %8971 = load i64, ptr %8970, align 8, !tbaa !22
  %8972 = call i64 @libxsmm_gcd(i64 noundef %8967, i64 noundef %8971)
  %8973 = load i32, ptr %10, align 4, !tbaa !5
  %8974 = sext i32 %8973 to i64
  %8975 = getelementptr inbounds [5 x i64], ptr %57, i64 0, i64 %8974
  %8976 = load i64, ptr %8975, align 8, !tbaa !22
  %8977 = icmp ne i64 %8972, %8976
  br i1 %8977, label %8978, label %8979

8978:                                             ; preds = %8963
  call void @exit(i32 noundef 1) #10
  unreachable

8979:                                             ; preds = %8963
  %8980 = load i32, ptr %10, align 4, !tbaa !5
  %8981 = sext i32 %8980 to i64
  %8982 = getelementptr inbounds [5 x i64], ptr %56, i64 0, i64 %8981
  %8983 = load i64, ptr %8982, align 8, !tbaa !22
  %8984 = load i32, ptr %10, align 4, !tbaa !5
  %8985 = sext i32 %8984 to i64
  %8986 = getelementptr inbounds [5 x i64], ptr %55, i64 0, i64 %8985
  %8987 = load i64, ptr %8986, align 8, !tbaa !22
  %8988 = call i64 @libxsmm_gcd(i64 noundef %8983, i64 noundef %8987)
  %8989 = load i32, ptr %10, align 4, !tbaa !5
  %8990 = sext i32 %8989 to i64
  %8991 = getelementptr inbounds [5 x i64], ptr %57, i64 0, i64 %8990
  %8992 = load i64, ptr %8991, align 8, !tbaa !22
  %8993 = icmp ne i64 %8988, %8992
  br i1 %8993, label %8994, label %8995

8994:                                             ; preds = %8979
  call void @exit(i32 noundef 1) #10
  unreachable

8995:                                             ; preds = %8979
  br label %8996

8996:                                             ; preds = %8995
  %8997 = load i32, ptr %10, align 4, !tbaa !5
  %8998 = add nsw i32 %8997, 1
  store i32 %8998, ptr %10, align 4, !tbaa !5
  br label %8960, !llvm.loop !30

8999:                                             ; preds = %8960
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 60, ptr %59) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %59, ptr align 16 @__const.main.test, i64 60, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 15, ptr %60, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 128, ptr %61) #9
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %9000

9000:                                             ; preds = %9038, %8999
  %9001 = load i32, ptr %10, align 4, !tbaa !5
  %9002 = icmp slt i32 %9001, 15
  br i1 %9002, label %9003, label %9041

9003:                                             ; preds = %9000
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %9004 = load i32, ptr %10, align 4, !tbaa !5
  %9005 = sext i32 %9004 to i64
  %9006 = getelementptr inbounds [15 x i32], ptr %59, i64 0, i64 %9005
  %9007 = load i32, ptr %9006, align 4, !tbaa !5
  %9008 = getelementptr inbounds [32 x i32], ptr %61, i64 0, i64 0
  %9009 = call i32 @libxsmm_primes_u32(i32 noundef %9007, ptr noundef %9008)
  store i32 %9009, ptr %62, align 4, !tbaa !5
  store i32 1, ptr %11, align 4, !tbaa !5
  br label %9010

9010:                                             ; preds = %9022, %9003
  %9011 = load i32, ptr %11, align 4, !tbaa !5
  %9012 = load i32, ptr %62, align 4, !tbaa !5
  %9013 = icmp slt i32 %9011, %9012
  br i1 %9013, label %9014, label %9025

9014:                                             ; preds = %9010
  %9015 = load i32, ptr %11, align 4, !tbaa !5
  %9016 = sext i32 %9015 to i64
  %9017 = getelementptr inbounds [32 x i32], ptr %61, i64 0, i64 %9016
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  %9019 = getelementptr inbounds [32 x i32], ptr %61, i64 0, i64 0
  %9020 = load i32, ptr %9019, align 16, !tbaa !5
  %9021 = mul i32 %9020, %9018
  store i32 %9021, ptr %9019, align 16, !tbaa !5
  br label %9022

9022:                                             ; preds = %9014
  %9023 = load i32, ptr %11, align 4, !tbaa !5
  %9024 = add nsw i32 %9023, 1
  store i32 %9024, ptr %11, align 4, !tbaa !5
  br label %9010, !llvm.loop !31

9025:                                             ; preds = %9010
  %9026 = load i32, ptr %62, align 4, !tbaa !5
  %9027 = icmp slt i32 0, %9026
  br i1 %9027, label %9028, label %9037

9028:                                             ; preds = %9025
  %9029 = getelementptr inbounds [32 x i32], ptr %61, i64 0, i64 0
  %9030 = load i32, ptr %9029, align 16, !tbaa !5
  %9031 = load i32, ptr %10, align 4, !tbaa !5
  %9032 = sext i32 %9031 to i64
  %9033 = getelementptr inbounds [15 x i32], ptr %59, i64 0, i64 %9032
  %9034 = load i32, ptr %9033, align 4, !tbaa !5
  %9035 = icmp ne i32 %9030, %9034
  br i1 %9035, label %9036, label %9037

9036:                                             ; preds = %9028
  call void @exit(i32 noundef 1) #10
  unreachable

9037:                                             ; preds = %9028, %9025
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %9038

9038:                                             ; preds = %9037
  %9039 = load i32, ptr %10, align 4, !tbaa !5
  %9040 = add nsw i32 %9039, 1
  store i32 %9040, ptr %10, align 4, !tbaa !5
  br label %9000, !llvm.loop !32

9041:                                             ; preds = %9000
  call void @llvm.lifetime.end.p0(i64 128, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 60, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 120, ptr %63) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %63, ptr align 16 @__const.main.test.9, i64 120, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  store i32 15, ptr %64, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %9042

9042:                                             ; preds = %9092, %9041
  %9043 = load i32, ptr %10, align 4, !tbaa !5
  %9044 = icmp slt i32 %9043, 15
  br i1 %9044, label %9045, label %9095

9045:                                             ; preds = %9042
  store i32 0, ptr %11, align 4, !tbaa !5
  br label %9046

9046:                                             ; preds = %9088, %9045
  %9047 = load i32, ptr %11, align 4, !tbaa !5
  %9048 = sext i32 %9047 to i64
  %9049 = load i32, ptr %10, align 4, !tbaa !5
  %9050 = sext i32 %9049 to i64
  %9051 = getelementptr inbounds [15 x i64], ptr %63, i64 0, i64 %9050
  %9052 = load i64, ptr %9051, align 8, !tbaa !22
  %9053 = icmp ule i64 %9048, %9052
  br i1 %9053, label %9054, label %9091

9054:                                             ; preds = %9046
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %9055 = load i32, ptr %10, align 4, !tbaa !5
  %9056 = sext i32 %9055 to i64
  %9057 = getelementptr inbounds [15 x i64], ptr %63, i64 0, i64 %9056
  %9058 = load i64, ptr %9057, align 8, !tbaa !22
  %9059 = load i32, ptr %11, align 4, !tbaa !5
  %9060 = sext i32 %9059 to i64
  %9061 = call i64 @libxsmm_coprime(i64 noundef %9058, i64 noundef %9060)
  store i64 %9061, ptr %65, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %9062 = load i64, ptr %65, align 8, !tbaa !22
  %9063 = load i32, ptr %10, align 4, !tbaa !5
  %9064 = sext i32 %9063 to i64
  %9065 = getelementptr inbounds [15 x i64], ptr %63, i64 0, i64 %9064
  %9066 = load i64, ptr %9065, align 8, !tbaa !22
  %9067 = call i64 @libxsmm_gcd(i64 noundef %9062, i64 noundef %9066)
  store i64 %9067, ptr %66, align 8, !tbaa !22
  %9068 = load i64, ptr %65, align 8, !tbaa !22
  %9069 = icmp ne i64 0, %9068
  br i1 %9069, label %9076, label %9070

9070:                                             ; preds = %9054
  %9071 = load i32, ptr %10, align 4, !tbaa !5
  %9072 = sext i32 %9071 to i64
  %9073 = getelementptr inbounds [15 x i64], ptr %63, i64 0, i64 %9072
  %9074 = load i64, ptr %9073, align 8, !tbaa !22
  %9075 = icmp ult i64 1, %9074
  br i1 %9075, label %9076, label %9087

9076:                                             ; preds = %9070, %9054
  %9077 = load i32, ptr %10, align 4, !tbaa !5
  %9078 = sext i32 %9077 to i64
  %9079 = getelementptr inbounds [15 x i64], ptr %63, i64 0, i64 %9078
  %9080 = load i64, ptr %9079, align 8, !tbaa !22
  %9081 = load i64, ptr %65, align 8, !tbaa !22
  %9082 = icmp ule i64 %9080, %9081
  br i1 %9082, label %9086, label %9083

9083:                                             ; preds = %9076
  %9084 = load i64, ptr %66, align 8, !tbaa !22
  %9085 = icmp ne i64 1, %9084
  br i1 %9085, label %9086, label %9087

9086:                                             ; preds = %9083, %9076
  call void @exit(i32 noundef 1) #10
  unreachable

9087:                                             ; preds = %9083, %9070
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %9088

9088:                                             ; preds = %9087
  %9089 = load i32, ptr %11, align 4, !tbaa !5
  %9090 = add nsw i32 %9089, 1
  store i32 %9090, ptr %11, align 4, !tbaa !5
  br label %9046, !llvm.loop !33

9091:                                             ; preds = %9046
  br label %9092

9092:                                             ; preds = %9091
  %9093 = load i32, ptr %10, align 4, !tbaa !5
  %9094 = add nsw i32 %9093, 1
  store i32 %9094, ptr %10, align 4, !tbaa !5
  br label %9042, !llvm.loop !34

9095:                                             ; preds = %9042
  %9096 = call i64 @libxsmm_coprime2(i64 noundef 65423)
  %9097 = icmp ne i64 %9096, 32711
  br i1 %9097, label %9098, label %9099

9098:                                             ; preds = %9095
  call void @exit(i32 noundef 1) #10
  unreachable

9099:                                             ; preds = %9095
  %9100 = call i64 @libxsmm_coprime2(i64 noundef 1030)
  %9101 = icmp ne i64 %9100, 513
  br i1 %9101, label %9102, label %9103

9102:                                             ; preds = %9099
  call void @exit(i32 noundef 1) #10
  unreachable

9103:                                             ; preds = %9099
  %9104 = call i64 @libxsmm_coprime2(i64 noundef 1029)
  %9105 = icmp ne i64 %9104, 514
  br i1 %9105, label %9106, label %9107

9106:                                             ; preds = %9103
  call void @exit(i32 noundef 1) #10
  unreachable

9107:                                             ; preds = %9103
  %9108 = call i64 @libxsmm_coprime2(i64 noundef 1028)
  %9109 = icmp ne i64 %9108, 513
  br i1 %9109, label %9110, label %9111

9110:                                             ; preds = %9107
  call void @exit(i32 noundef 1) #10
  unreachable

9111:                                             ; preds = %9107
  %9112 = call i64 @libxsmm_coprime2(i64 noundef 1027)
  %9113 = icmp ne i64 %9112, 513
  br i1 %9113, label %9114, label %9115

9114:                                             ; preds = %9111
  call void @exit(i32 noundef 1) #10
  unreachable

9115:                                             ; preds = %9111
  %9116 = call i64 @libxsmm_coprime2(i64 noundef 1026)
  %9117 = icmp ne i64 %9116, 511
  br i1 %9117, label %9118, label %9119

9118:                                             ; preds = %9115
  call void @exit(i32 noundef 1) #10
  unreachable

9119:                                             ; preds = %9115
  %9120 = call i64 @libxsmm_coprime2(i64 noundef 1025)
  %9121 = icmp ne i64 %9120, 512
  br i1 %9121, label %9122, label %9123

9122:                                             ; preds = %9119
  call void @exit(i32 noundef 1) #10
  unreachable

9123:                                             ; preds = %9119
  %9124 = call i64 @libxsmm_coprime2(i64 noundef 1024)
  %9125 = icmp ne i64 %9124, 511
  br i1 %9125, label %9126, label %9127

9126:                                             ; preds = %9123
  call void @exit(i32 noundef 1) #10
  unreachable

9127:                                             ; preds = %9123
  %9128 = call i64 @libxsmm_coprime2(i64 noundef 1000)
  %9129 = icmp ne i64 %9128, 499
  br i1 %9129, label %9130, label %9131

9130:                                             ; preds = %9127
  call void @exit(i32 noundef 1) #10
  unreachable

9131:                                             ; preds = %9127
  %9132 = call i64 @libxsmm_coprime2(i64 noundef 997)
  %9133 = icmp ne i64 %9132, 498
  br i1 %9133, label %9134, label %9135

9134:                                             ; preds = %9131
  call void @exit(i32 noundef 1) #10
  unreachable

9135:                                             ; preds = %9131
  %9136 = call i64 @libxsmm_coprime2(i64 noundef 24)
  %9137 = icmp ne i64 %9136, 11
  br i1 %9137, label %9138, label %9139

9138:                                             ; preds = %9135
  call void @exit(i32 noundef 1) #10
  unreachable

9139:                                             ; preds = %9135
  %9140 = call i64 @libxsmm_coprime2(i64 noundef 5)
  %9141 = icmp ne i64 %9140, 2
  br i1 %9141, label %9142, label %9143

9142:                                             ; preds = %9139
  call void @exit(i32 noundef 1) #10
  unreachable

9143:                                             ; preds = %9139
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  store i32 512, ptr %67, align 4, !tbaa !5
  %9144 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef %67, ptr noundef null)
  %9145 = icmp ne i32 %9144, 416
  br i1 %9145, label %9146, label %9147

9146:                                             ; preds = %9143
  call void @exit(i32 noundef 1) #10
  unreachable

9147:                                             ; preds = %9143
  store i32 4, ptr %68, align 4, !tbaa !5
  %9148 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef null, ptr noundef %68)
  %9149 = icmp ne i32 %9148, 96
  br i1 %9149, label %9150, label %9151

9150:                                             ; preds = %9147
  call void @exit(i32 noundef 1) #10
  unreachable

9151:                                             ; preds = %9147
  store i32 1, ptr %68, align 4, !tbaa !5
  %9152 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef %67, ptr noundef %68)
  %9153 = icmp ne i32 %9152, 416
  br i1 %9153, label %9154, label %9155

9154:                                             ; preds = %9151
  call void @exit(i32 noundef 1) #10
  unreachable

9155:                                             ; preds = %9151
  store i32 32, ptr %67, align 4, !tbaa !5
  %9156 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef %67, ptr noundef null)
  %9157 = icmp ne i32 %9156, 24
  br i1 %9157, label %9158, label %9159

9158:                                             ; preds = %9155
  call void @exit(i32 noundef 1) #10
  unreachable

9159:                                             ; preds = %9155
  store i32 23, ptr %67, align 4, !tbaa !5
  %9160 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef %67, ptr noundef null)
  %9161 = icmp ne i32 %9160, 184
  br i1 %9161, label %9162, label %9163

9162:                                             ; preds = %9159
  call void @exit(i32 noundef 1) #10
  unreachable

9163:                                             ; preds = %9159
  store i32 4, ptr %67, align 4, !tbaa !5
  %9164 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef %67, ptr noundef null)
  %9165 = icmp ne i32 %9164, 184
  br i1 %9165, label %9166, label %9167

9166:                                             ; preds = %9163
  call void @exit(i32 noundef 1) #10
  unreachable

9167:                                             ; preds = %9163
  store i32 1, ptr %68, align 4, !tbaa !5
  %9168 = call i32 @libxsmm_remainder(i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef %68)
  %9169 = icmp ne i32 %9168, 0
  br i1 %9169, label %9170, label %9171

9170:                                             ; preds = %9167
  call void @exit(i32 noundef 1) #10
  unreachable

9171:                                             ; preds = %9167
  %9172 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef null, ptr noundef null)
  %9173 = icmp ne i32 %9172, 736
  br i1 %9173, label %9174, label %9175

9174:                                             ; preds = %9171
  call void @exit(i32 noundef 1) #10
  unreachable

9175:                                             ; preds = %9171
  %9176 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef null, ptr noundef null)
  %9177 = icmp ne i32 %9176, 184
  br i1 %9177, label %9178, label %9179

9178:                                             ; preds = %9175
  call void @exit(i32 noundef 1) #10
  unreachable

9179:                                             ; preds = %9175
  %9180 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef null, ptr noundef null)
  %9181 = icmp ne i32 %9180, 184
  br i1 %9181, label %9182, label %9183

9182:                                             ; preds = %9179
  call void @exit(i32 noundef 1) #10
  unreachable

9183:                                             ; preds = %9179
  %9184 = call i32 @libxsmm_remainder(i32 noundef 0, i32 noundef 32, ptr noundef null, ptr noundef null)
  %9185 = icmp ne i32 %9184, 0
  br i1 %9185, label %9186, label %9187

9186:                                             ; preds = %9183
  call void @exit(i32 noundef 1) #10
  unreachable

9187:                                             ; preds = %9183
  %9188 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 0, ptr noundef null, ptr noundef null)
  %9189 = icmp ne i32 %9188, 0
  br i1 %9189, label %9190, label %9191

9190:                                             ; preds = %9187
  call void @exit(i32 noundef 1) #10
  unreachable

9191:                                             ; preds = %9187
  %9192 = call i32 @libxsmm_remainder(i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef null)
  %9193 = icmp ne i32 %9192, 0
  br i1 %9193, label %9194, label %9195

9194:                                             ; preds = %9191
  call void @exit(i32 noundef 1) #10
  unreachable

9195:                                             ; preds = %9191
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  %9196 = call i32 @libxsmm_product_limit(i32 noundef 1021020, i32 noundef 231, i32 noundef 0)
  %9197 = icmp ne i32 %9196, 231
  br i1 %9197, label %9198, label %9199

9198:                                             ; preds = %9195
  call void @exit(i32 noundef 1) #10
  unreachable

9199:                                             ; preds = %9195
  %9200 = call i32 @libxsmm_product_limit(i32 noundef 420, i32 noundef 32, i32 noundef 0)
  %9201 = icmp ne i32 %9200, 30
  br i1 %9201, label %9202, label %9203

9202:                                             ; preds = %9199
  call void @exit(i32 noundef 1) #10
  unreachable

9203:                                             ; preds = %9199
  %9204 = call i32 @libxsmm_product_limit(i32 noundef 156, i32 noundef 13, i32 noundef 0)
  %9205 = icmp ne i32 %9204, 13
  br i1 %9205, label %9206, label %9207

9206:                                             ; preds = %9203
  call void @exit(i32 noundef 1) #10
  unreachable

9207:                                             ; preds = %9203
  %9208 = call i32 @libxsmm_product_limit(i32 noundef 12, i32 noundef 6, i32 noundef 0)
  %9209 = icmp ne i32 %9208, 6
  br i1 %9209, label %9210, label %9211

9210:                                             ; preds = %9207
  call void @exit(i32 noundef 1) #10
  unreachable

9211:                                             ; preds = %9207
  %9212 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 48, i32 noundef 0)
  %9213 = icmp ne i32 %9212, 0
  br i1 %9213, label %9214, label %9215

9214:                                             ; preds = %9211
  call void @exit(i32 noundef 1) #10
  unreachable

9215:                                             ; preds = %9211
  %9216 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %9217 = icmp ne i32 %9216, 0
  br i1 %9217, label %9218, label %9219

9218:                                             ; preds = %9215
  call void @exit(i32 noundef 1) #10
  unreachable

9219:                                             ; preds = %9215
  %9220 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %9221 = icmp ne i32 %9220, 0
  br i1 %9221, label %9222, label %9223

9222:                                             ; preds = %9219
  call void @exit(i32 noundef 1) #10
  unreachable

9223:                                             ; preds = %9219
  %9224 = call i32 @libxsmm_product_limit(i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %9225 = icmp ne i32 %9224, 0
  br i1 %9225, label %9226, label %9227

9226:                                             ; preds = %9223
  call void @exit(i32 noundef 1) #10
  unreachable

9227:                                             ; preds = %9223
  %9228 = call i32 @libxsmm_product_limit(i32 noundef 1021020, i32 noundef 231, i32 noundef 1)
  %9229 = icmp ne i32 %9228, 231
  br i1 %9229, label %9230, label %9231

9230:                                             ; preds = %9227
  call void @exit(i32 noundef 1) #10
  unreachable

9231:                                             ; preds = %9227
  %9232 = call i32 @libxsmm_product_limit(i32 noundef 420, i32 noundef 36, i32 noundef 1)
  %9233 = icmp ne i32 %9232, 70
  br i1 %9233, label %9234, label %9235

9234:                                             ; preds = %9231
  call void @exit(i32 noundef 1) #10
  unreachable

9235:                                             ; preds = %9231
  %9236 = call i32 @libxsmm_product_limit(i32 noundef 23, i32 noundef 32, i32 noundef 1)
  %9237 = icmp ne i32 %9236, 46
  br i1 %9237, label %9238, label %9239

9238:                                             ; preds = %9235
  call void @exit(i32 noundef 1) #10
  unreachable

9239:                                             ; preds = %9235
  %9240 = call i32 @libxsmm_product_limit(i32 noundef 12, i32 noundef 32, i32 noundef 1)
  %9241 = icmp ne i32 %9240, 36
  br i1 %9241, label %9242, label %9243

9242:                                             ; preds = %9239
  call void @exit(i32 noundef 1) #10
  unreachable

9243:                                             ; preds = %9239
  %9244 = call i32 @libxsmm_product_limit(i32 noundef 156, i32 noundef 13, i32 noundef 1)
  %9245 = icmp ne i32 %9244, 13
  br i1 %9245, label %9246, label %9247

9246:                                             ; preds = %9243
  call void @exit(i32 noundef 1) #10
  unreachable

9247:                                             ; preds = %9243
  %9248 = call i32 @libxsmm_product_limit(i32 noundef 320, i32 noundef 300, i32 noundef 1)
  %9249 = icmp ne i32 %9248, 320
  br i1 %9249, label %9250, label %9251

9250:                                             ; preds = %9247
  call void @exit(i32 noundef 1) #10
  unreachable

9251:                                             ; preds = %9247
  %9252 = call i32 @libxsmm_product_limit(i32 noundef 320, i32 noundef 65, i32 noundef 1)
  %9253 = icmp ne i32 %9252, 80
  br i1 %9253, label %9254, label %9255

9254:                                             ; preds = %9251
  call void @exit(i32 noundef 1) #10
  unreachable

9255:                                             ; preds = %9251
  %9256 = call i32 @libxsmm_product_limit(i32 noundef 320, i32 noundef 33, i32 noundef 1)
  %9257 = icmp ne i32 %9256, 64
  br i1 %9257, label %9258, label %9259

9258:                                             ; preds = %9255
  call void @exit(i32 noundef 1) #10
  unreachable

9259:                                             ; preds = %9255
  %9260 = call i32 @libxsmm_product_limit(i32 noundef 1000, i32 noundef 6, i32 noundef 1)
  %9261 = icmp ne i32 %9260, 10
  br i1 %9261, label %9262, label %9263

9262:                                             ; preds = %9259
  call void @exit(i32 noundef 1) #10
  unreachable

9263:                                             ; preds = %9259
  %9264 = call i32 @libxsmm_product_limit(i32 noundef 1000, i32 noundef 9, i32 noundef 1)
  %9265 = icmp ne i32 %9264, 10
  br i1 %9265, label %9266, label %9267

9266:                                             ; preds = %9263
  call void @exit(i32 noundef 1) #10
  unreachable

9267:                                             ; preds = %9263
  %9268 = call i32 @libxsmm_product_limit(i32 noundef 12, i32 noundef 7, i32 noundef 1)
  %9269 = icmp ne i32 %9268, 12
  br i1 %9269, label %9270, label %9271

9270:                                             ; preds = %9267
  call void @exit(i32 noundef 1) #10
  unreachable

9271:                                             ; preds = %9267
  %9272 = call i32 @libxsmm_product_limit(i32 noundef 5, i32 noundef 2, i32 noundef 1)
  %9273 = icmp ne i32 %9272, 5
  br i1 %9273, label %9274, label %9275

9274:                                             ; preds = %9271
  call void @exit(i32 noundef 1) #10
  unreachable

9275:                                             ; preds = %9271
  %9276 = call i32 @libxsmm_product_limit(i32 noundef 5, i32 noundef 2, i32 noundef 0)
  %9277 = icmp ne i32 %9276, 1
  br i1 %9277, label %9278, label %9279

9278:                                             ; preds = %9275
  call void @exit(i32 noundef 1) #10
  unreachable

9279:                                             ; preds = %9275
  %9280 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 1, i32 noundef 1)
  %9281 = icmp ne i32 %9280, 0
  br i1 %9281, label %9282, label %9283

9282:                                             ; preds = %9279
  call void @exit(i32 noundef 1) #10
  unreachable

9283:                                             ; preds = %9279
  %9284 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %9285 = icmp ne i32 %9284, 0
  br i1 %9285, label %9286, label %9287

9286:                                             ; preds = %9283
  call void @exit(i32 noundef 1) #10
  unreachable

9287:                                             ; preds = %9283
  %9288 = call i32 @libxsmm_product_limit(i32 noundef 1, i32 noundef 0, i32 noundef 1)
  %9289 = icmp ne i32 %9288, 0
  br i1 %9289, label %9290, label %9291

9290:                                             ; preds = %9287
  call void @exit(i32 noundef 1) #10
  unreachable

9291:                                             ; preds = %9287
  %9292 = call i32 @libxsmm_isqrt2_u32(i32 noundef 1024)
  %9293 = mul i32 %9292, 32
  %9294 = icmp ne i32 %9293, 1024
  br i1 %9294, label %9295, label %9296

9295:                                             ; preds = %9291
  call void @exit(i32 noundef 1) #10
  unreachable

9296:                                             ; preds = %9291
  %9297 = call i32 @libxsmm_isqrt2_u32(i32 noundef 1981)
  %9298 = mul i32 %9297, 283
  %9299 = icmp ne i32 %9298, 1981
  br i1 %9299, label %9300, label %9301

9300:                                             ; preds = %9296
  call void @exit(i32 noundef 1) #10
  unreachable

9301:                                             ; preds = %9296
  %9302 = call i32 @libxsmm_isqrt2_u32(i32 noundef 2507)
  %9303 = mul i32 %9302, 109
  %9304 = icmp ne i32 %9303, 2507
  br i1 %9304, label %9305, label %9306

9305:                                             ; preds = %9301
  call void @exit(i32 noundef 1) #10
  unreachable

9306:                                             ; preds = %9301
  %9307 = call i32 @libxsmm_isqrt2_u32(i32 noundef 1975)
  %9308 = mul i32 %9307, 79
  %9309 = icmp ne i32 %9308, 1975
  br i1 %9309, label %9310, label %9311

9310:                                             ; preds = %9306
  call void @exit(i32 noundef 1) #10
  unreachable

9311:                                             ; preds = %9306
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  ret i32 0
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

declare float @libxsmm_sexp2_u8(i8 noundef zeroext) #2

; Function Attrs: nounwind
declare float @exp2f(float noundef) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #4

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

declare float @libxsmm_sexp2_i8(i8 noundef signext) #2

declare float @libxsmm_sexp2_i8i(i32 noundef) #2

; Function Attrs: nounwind
declare i32 @rand() #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.round.f64(double) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.round.f32(float) #5

declare float @libxsmm_sexp2(float noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #5

declare i32 @libxsmm_isqrt_u32(i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_isqrt_u32(i32 noundef) #6

declare i32 @libxsmm_isqrt_u64(i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_isqrt_u64(i64 noundef) #6

declare float @libxsmm_ssqrt(float noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

; Function Attrs: nounwind
declare float @sqrtf(float noundef) #3

declare double @libxsmm_dsqrt(double noundef) #2

; Function Attrs: nounwind
declare double @sqrt(double noundef) #3

declare i32 @libxsmm_icbrt_u32(i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_icbrt_u32(i32 noundef) #6

declare i32 @libxsmm_icbrt_u64(i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_icbrt_u64(i64 noundef) #6

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.cttz.i32(i32, i1 immarg) #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @LIBXSMM_INTRINSICS_BITSCANFWD32_SW(i32 noundef) #6

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.ctlz.i32(i32, i1 immarg) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.cttz.i64(i64, i1 immarg) #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @LIBXSMM_INTRINSICS_BITSCANFWD64_SW(i64 noundef) #6

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.ctlz.i64(i64, i1 immarg) #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @LIBXSMM_ILOG2(i64 noundef) #6

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_ilog2_u32(i32 noundef) #6

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare i64 @libxsmm_gcd(i64 noundef, i64 noundef) #2

declare i32 @libxsmm_primes_u32(i32 noundef, ptr noundef) #2

declare i64 @libxsmm_coprime(i64 noundef, i64 noundef) #2

declare i64 @libxsmm_coprime2(i64 noundef) #2

declare i32 @libxsmm_remainder(i32 noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare i32 @libxsmm_product_limit(i32 noundef, i32 noundef, i32 noundef) #2

declare i32 @libxsmm_isqrt2_u32(i32 noundef) #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind }
attributes #10 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"float", !7, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{!19, !19, i64 0}
!19 = !{!"double", !7, i64 0}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = !{!23, !23, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = distinct !{!34, !16}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@__const.main.npot = external hidden unnamed_addr constant [11 x i32], align 16
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.inp = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.1 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.2 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.3 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.4 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.5 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.6 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.inp.7 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.out.8 = external hidden unnamed_addr constant [6 x i32], align 16
@__const.main.test = external hidden unnamed_addr constant [15 x i32], align 16
@__const.main.test.9 = external hidden unnamed_addr constant [15 x i64], align 16

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [7 x i64], align 16
  %4 = alloca [7 x i64], align 16
  %5 = alloca [7 x i64], align 16
  %6 = alloca [32 x i32], align 16
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  br label %11

9:                                                ; preds = %11
  %10 = add nuw nsw i32 %.014402033, 1
  %exitcond.not = icmp eq i32 %10, 256
  br i1 %exitcond.not, label %.preheader1988, label %11, !llvm.loop !5

11:                                               ; preds = %2, %9
  %.014402033 = phi i32 [ 0, %2 ], [ %10, %9 ]
  %12 = trunc nuw i32 %.014402033 to i8
  %13 = tail call float @libxsmm_sexp2_u8(i8 noundef zeroext %12) #12
  %14 = uitofp nneg i32 %.014402033 to float
  %15 = tail call float @exp2f(float noundef %14) #12
  %16 = fcmp une float %13, %15
  br i1 %16, label %17, label %9

17:                                               ; preds = %11
  tail call void @exit(i32 noundef 1) #13
  unreachable

18:                                               ; preds = %25
  %19 = add nsw i32 %.114412034, 1
  %exitcond2078.not = icmp eq i32 %19, 127
  br i1 %exitcond2078.not, label %.preheader1987, label %.preheader1988, !llvm.loop !7

.preheader1988:                                   ; preds = %9, %18
  %.114412034 = phi i32 [ %19, %18 ], [ -128, %9 ]
  %20 = trunc i32 %.114412034 to i8
  %21 = tail call float @libxsmm_sexp2_i8(i8 noundef signext %20) #12
  %22 = tail call float @libxsmm_sexp2_i8i(i32 noundef %.114412034) #12
  %ldexpf = tail call float @ldexpf(float 1.000000e+00, i32 %.114412034) #12
  %23 = fcmp une float %21, %ldexpf
  br i1 %23, label %24, label %25

24:                                               ; preds = %.preheader1988
  tail call void @exit(i32 noundef 1) #13
  unreachable

25:                                               ; preds = %.preheader1988
  %26 = fcmp une float %22, %ldexpf
  br i1 %26, label %27, label %18

27:                                               ; preds = %25
  tail call void @exit(i32 noundef 1) #13
  unreachable

.preheader1986:                                   ; preds = %480
  %28 = load i32, ptr @__const.main.npot, align 16, !tbaa !8
  %.not1844 = icmp eq i32 %28, 0
  %29 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %28, i1 true)
  %30 = xor i32 %29, 31
  %31 = select i1 %.not1844, i32 0, i32 %30
  %32 = icmp slt i32 %31, %28
  %33 = shl nuw i32 1, %31
  %34 = select i1 %32, i32 %33, i32 %31
  %.not1845 = icmp eq i32 %28, %34
  br i1 %.not1845, label %481, label %563

.preheader1987:                                   ; preds = %18, %480
  %indvars.iv = phi i64 [ %indvars.iv.next, %480 ], [ 0, %18 ]
  %.02037 = phi i32 [ %.1, %480 ], [ 0, %18 ]
  %.014382036 = phi i32 [ %.11439, %480 ], [ 0, %18 ]
  %.not1952 = icmp eq i64 %indvars.iv, 0
  br i1 %.not1952, label %.thread, label %35

35:                                               ; preds = %.preheader1987
  %36 = tail call i32 @rand() #12
  %.not1975 = icmp eq i64 %indvars.iv, 1
  br i1 %.not1975, label %.thread, label %37

37:                                               ; preds = %35
  %38 = tail call i32 @rand() #12
  br label %.thread

.thread:                                          ; preds = %.preheader1987, %35, %37
  %39 = phi i32 [ %36, %37 ], [ %36, %35 ], [ 0, %.preheader1987 ]
  %40 = phi i32 [ %38, %37 ], [ 0, %35 ], [ 0, %.preheader1987 ]
  %.fr = freeze i32 %39
  %41 = add nsw i32 %40, -1073741823
  %42 = mul nsw i32 %41, %.fr
  %43 = sitofp i32 %42 to double
  %44 = fmul double %43, 2.000000e+00
  %45 = fdiv double %44, 0x41DFFFFFFFC00000
  %46 = sext i32 %.fr to i64
  %47 = mul i64 %46, 8589934595
  %48 = sitofp i32 %.fr to double
  %49 = icmp sgt i32 %.fr, -1
  %50 = select i1 %49, double 5.000000e-01, double -5.000000e-01
  %51 = fadd double %50, %48
  %52 = fptosi double %51 to i64
  %53 = sitofp i64 %52 to double
  %54 = fcmp une double %48, %53
  br i1 %54, label %55, label %56

55:                                               ; preds = %.thread
  tail call void @exit(i32 noundef 1) #13
  unreachable

56:                                               ; preds = %.thread
  %57 = sitofp i32 %40 to double
  %58 = icmp sgt i32 %40, -1
  %.v1977 = select i1 %58, double 5.000000e-01, double -5.000000e-01
  %59 = fadd double %.v1977, %57
  %60 = fptosi double %59 to i64
  %61 = sitofp i64 %60 to double
  %62 = fcmp une double %57, %61
  br i1 %62, label %63, label %64

63:                                               ; preds = %56
  tail call void @exit(i32 noundef 1) #13
  unreachable

64:                                               ; preds = %56
  %65 = tail call double @llvm.round.f64(double %45)
  %66 = fcmp oge double %45, 0.000000e+00
  %.v = select i1 %66, double 5.000000e-01, double -5.000000e-01
  %67 = fadd double %45, %.v
  %68 = fptosi double %67 to i64
  %69 = sitofp i64 %68 to double
  %70 = fcmp une double %65, %69
  br i1 %70, label %71, label %72

71:                                               ; preds = %64
  tail call void @exit(i32 noundef 1) #13
  unreachable

72:                                               ; preds = %64
  %73 = sitofp i32 %.fr to float
  %74 = fpext float %73 to double
  %75 = fadd double %50, %74
  %76 = fptosi double %75 to i64
  %77 = sitofp i64 %76 to float
  %78 = fcmp une float %73, %77
  br i1 %78, label %79, label %80

79:                                               ; preds = %72
  tail call void @exit(i32 noundef 1) #13
  unreachable

80:                                               ; preds = %72
  %81 = sitofp i32 %40 to float
  %82 = fpext float %81 to double
  %83 = fadd double %.v1977, %82
  %84 = fptosi double %83 to i64
  %85 = sitofp i64 %84 to float
  %86 = fcmp une float %81, %85
  br i1 %86, label %87, label %88

87:                                               ; preds = %80
  tail call void @exit(i32 noundef 1) #13
  unreachable

88:                                               ; preds = %80
  %89 = fptrunc double %45 to float
  %90 = tail call float @llvm.round.f32(float %89)
  %91 = fcmp ult float %89, 0.000000e+00
  %92 = fpext float %89 to double
  %.v1980 = select i1 %91, double -5.000000e-01, double 5.000000e-01
  %93 = fadd double %.v1980, %92
  %94 = fptosi double %93 to i64
  %95 = sitofp i64 %94 to float
  %96 = fcmp une float %90, %95
  br i1 %96, label %97, label %98

97:                                               ; preds = %88
  tail call void @exit(i32 noundef 1) #13
  unreachable

98:                                               ; preds = %88
  %99 = tail call float @libxsmm_sexp2(float noundef %89) #12
  %100 = fpext float %99 to double
  %101 = tail call float @exp2f(float noundef %89) #12
  %102 = fpext float %101 to double
  %103 = fsub double %100, %102
  %104 = tail call double @llvm.fabs.f64(double %103)
  %105 = fcmp one float %101, 0.000000e+00
  %106 = fdiv double %103, %102
  %107 = tail call double @llvm.fabs.f64(double %106)
  %108 = select i1 %105, double %107, double 0.000000e+00
  %109 = fcmp olt double %104, %108
  %110 = select i1 %109, double %104, double %108
  %111 = fcmp ogt double %110, 1.000000e-04
  br i1 %111, label %112, label %113

112:                                              ; preds = %98
  tail call void @exit(i32 noundef 1) #13
  unreachable

113:                                              ; preds = %98
  %114 = tail call i32 @libxsmm_isqrt_u32(i32 noundef %.fr) #12
  %115 = tail call i32 @ref_isqrt_u32(i32 noundef %.fr)
  %.not1846 = icmp eq i32 %114, %115
  br i1 %.not1846, label %117, label %116

116:                                              ; preds = %113
  tail call void @exit(i32 noundef 1) #13
  unreachable

117:                                              ; preds = %113
  %118 = tail call i32 @libxsmm_isqrt_u64(i64 noundef %47) #12
  %119 = tail call i32 @ref_isqrt_u64(i64 noundef %47)
  %.not1847 = icmp eq i32 %118, %119
  br i1 %.not1847, label %121, label %120

120:                                              ; preds = %117
  tail call void @exit(i32 noundef 1) #13
  unreachable

121:                                              ; preds = %117
  %122 = tail call double @llvm.fabs.f64(double %45)
  %123 = fptrunc double %122 to float
  %124 = tail call float @libxsmm_ssqrt(float noundef %123) #12
  %125 = fneg double %122
  %sqrt = tail call float @llvm.sqrt.f32(float %123)
  %126 = insertelement <2 x float> poison, float %sqrt, i64 0
  %127 = insertelement <2 x float> %126, float %124, i64 1
  %128 = fpext <2 x float> %127 to <2 x double>
  %129 = insertelement <2 x double> poison, double %125, i64 0
  %130 = shufflevector <2 x double> %129, <2 x double> poison, <2 x i32> zeroinitializer
  %131 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %128, <2 x double> %130)
  %132 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %131)
  %133 = extractelement <2 x double> %132, i64 0
  %134 = extractelement <2 x double> %132, i64 1
  %135 = fcmp olt double %133, %134
  br i1 %135, label %136, label %148

136:                                              ; preds = %121
  %137 = extractelement <2 x double> %131, i64 0
  %138 = fcmp one double %137, 0.000000e+00
  %139 = fdiv double %134, %133
  %140 = select i1 %138, double %139, double 0.000000e+00
  %141 = fsub double %134, %133
  %142 = tail call double @llvm.fabs.f64(double %141)
  %143 = fcmp olt double %142, %140
  %. = select i1 %143, double %142, double %140
  %144 = fcmp olt double %., 1.000000e-02
  br i1 %144, label %145, label %147

145:                                              ; preds = %136
  %146 = add nsw i32 %.014382036, 1
  br label %148

147:                                              ; preds = %136
  tail call void @exit(i32 noundef 1) #13
  unreachable

148:                                              ; preds = %145, %121
  %.11439 = phi i32 [ %146, %145 ], [ %.014382036, %121 ]
  %149 = tail call double @libxsmm_dsqrt(double noundef %122) #12
  %sqrt1981 = tail call double @llvm.sqrt.f64(double %122)
  %150 = insertelement <2 x double> poison, double %sqrt1981, i64 0
  %151 = insertelement <2 x double> %150, double %149, i64 1
  %152 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %151, <2 x double> %151, <2 x double> %130)
  %153 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %152)
  %154 = extractelement <2 x double> %153, i64 0
  %155 = extractelement <2 x double> %153, i64 1
  %156 = fcmp olt double %154, %155
  br i1 %156, label %157, label %169

157:                                              ; preds = %148
  %158 = extractelement <2 x double> %152, i64 0
  %159 = fcmp one double %158, 0.000000e+00
  %160 = fdiv double %155, %154
  %161 = select i1 %159, double %160, double 0.000000e+00
  %162 = fsub double %155, %154
  %163 = tail call double @llvm.fabs.f64(double %162)
  %164 = fcmp olt double %163, %161
  %.1955 = select i1 %164, double %163, double %161
  %165 = fcmp olt double %.1955, 0x3DA5FD7FE1796495
  br i1 %165, label %166, label %168

166:                                              ; preds = %157
  %167 = add nsw i32 %.02037, 1
  br label %169

168:                                              ; preds = %157
  tail call void @exit(i32 noundef 1) #13
  unreachable

169:                                              ; preds = %166, %148
  %.1 = phi i32 [ %167, %166 ], [ %.02037, %148 ]
  %170 = tail call i32 @libxsmm_icbrt_u32(i32 noundef %.fr) #12
  %171 = tail call i32 @ref_icbrt_u32(i32 noundef %.fr)
  %.not1848 = icmp eq i32 %170, %171
  br i1 %.not1848, label %173, label %172

172:                                              ; preds = %169
  tail call void @exit(i32 noundef 1) #13
  unreachable

173:                                              ; preds = %169
  %174 = tail call i32 @libxsmm_icbrt_u64(i64 noundef %47) #12
  %175 = tail call i32 @ref_icbrt_u64(i64 noundef %47)
  %.not1849 = icmp eq i32 %174, %175
  br i1 %.not1849, label %177, label %176

176:                                              ; preds = %173
  tail call void @exit(i32 noundef 1) #13
  unreachable

177:                                              ; preds = %173
  %.not1953 = icmp eq i32 %.fr, 0
  %178 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %.fr, i1 true)
  %179 = select i1 %.not1953, i32 0, i32 %178
  %180 = tail call i32 @LIBXSMM_INTRINSICS_BITSCANFWD32_SW(i32 noundef %.fr)
  %.not1850 = icmp eq i32 %179, %180
  br i1 %.not1850, label %182, label %181

181:                                              ; preds = %177
  tail call void @exit(i32 noundef 1) #13
  unreachable

182:                                              ; preds = %177
  %183 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %.fr, i1 true)
  %184 = xor i32 %183, 31
  %185 = select i1 %.not1953, i32 0, i32 %184
  %.not1851 = icmp ult i32 %.fr, 65536
  br i1 %.not1851, label %221, label %186

186:                                              ; preds = %182
  %.not1867 = icmp ult i32 %.fr, 16777216
  br i1 %.not1867, label %202, label %187

187:                                              ; preds = %186
  %.not1875 = icmp ult i32 %.fr, 268435456
  br i1 %.not1875, label %193, label %188

188:                                              ; preds = %187
  %.not1879 = icmp ult i32 %.fr, 1073741824
  %.lobit = lshr i32 %.fr, 31
  %189 = or disjoint i32 %.lobit, 2
  %.not1880 = icmp ugt i32 %.fr, 536870911
  %190 = zext i1 %.not1880 to i32
  %191 = select i1 %.not1879, i32 %190, i32 %189
  %192 = or disjoint i32 %191, 4
  br label %199

193:                                              ; preds = %187
  %.not1876 = icmp ult i32 %.fr, 67108864
  br i1 %.not1876, label %197, label %194

194:                                              ; preds = %193
  %.not1878 = icmp ugt i32 %.fr, 134217727
  %195 = zext i1 %.not1878 to i32
  %196 = or disjoint i32 %195, 2
  br label %199

197:                                              ; preds = %193
  %.not1877 = icmp ugt i32 %.fr, 33554431
  %198 = zext i1 %.not1877 to i32
  br label %199

199:                                              ; preds = %194, %197, %188
  %200 = phi i32 [ %192, %188 ], [ %196, %194 ], [ %198, %197 ]
  %201 = or i32 %200, 8
  br label %218

202:                                              ; preds = %186
  %.not1868 = icmp ult i32 %.fr, 1048576
  br i1 %.not1868, label %212, label %203

203:                                              ; preds = %202
  %.not1872 = icmp ult i32 %.fr, 4194304
  br i1 %.not1872, label %207, label %204

204:                                              ; preds = %203
  %.not1874 = icmp ugt i32 %.fr, 8388607
  %205 = zext i1 %.not1874 to i32
  %206 = or disjoint i32 %205, 2
  br label %209

207:                                              ; preds = %203
  %.not1873 = icmp ugt i32 %.fr, 2097151
  %208 = zext i1 %.not1873 to i32
  br label %209

209:                                              ; preds = %207, %204
  %210 = phi i32 [ %206, %204 ], [ %208, %207 ]
  %211 = or i32 %210, 4
  br label %218

212:                                              ; preds = %202
  %.not1869 = icmp ult i32 %.fr, 262144
  br i1 %.not1869, label %216, label %213

213:                                              ; preds = %212
  %.not1871 = icmp ugt i32 %.fr, 524287
  %214 = zext i1 %.not1871 to i32
  %215 = or disjoint i32 %214, 2
  br label %218

216:                                              ; preds = %212
  %.not1870 = icmp ugt i32 %.fr, 131071
  %217 = zext i1 %.not1870 to i32
  br label %218

218:                                              ; preds = %209, %216, %213, %199
  %219 = phi i32 [ %201, %199 ], [ %211, %209 ], [ %215, %213 ], [ %217, %216 ]
  %220 = or i32 %219, 16
  br label %257

221:                                              ; preds = %182
  %.not1852 = icmp ult i32 %.fr, 256
  br i1 %.not1852, label %241, label %222

222:                                              ; preds = %221
  %.not1860 = icmp ult i32 %.fr, 4096
  br i1 %.not1860, label %232, label %223

223:                                              ; preds = %222
  %.not1864 = icmp ult i32 %.fr, 16384
  br i1 %.not1864, label %227, label %224

224:                                              ; preds = %223
  %.not1866 = icmp ugt i32 %.fr, 32767
  %225 = zext i1 %.not1866 to i32
  %226 = or disjoint i32 %225, 2
  br label %229

227:                                              ; preds = %223
  %.not1865 = icmp ugt i32 %.fr, 8191
  %228 = zext i1 %.not1865 to i32
  br label %229

229:                                              ; preds = %227, %224
  %230 = phi i32 [ %226, %224 ], [ %228, %227 ]
  %231 = or i32 %230, 4
  br label %238

232:                                              ; preds = %222
  %.not1861 = icmp ult i32 %.fr, 1024
  br i1 %.not1861, label %236, label %233

233:                                              ; preds = %232
  %.not1863 = icmp ugt i32 %.fr, 2047
  %234 = zext i1 %.not1863 to i32
  %235 = or disjoint i32 %234, 2
  br label %238

236:                                              ; preds = %232
  %.not1862 = icmp ugt i32 %.fr, 511
  %237 = zext i1 %.not1862 to i32
  br label %238

238:                                              ; preds = %233, %236, %229
  %239 = phi i32 [ %231, %229 ], [ %235, %233 ], [ %237, %236 ]
  %240 = or i32 %239, 8
  br label %257

241:                                              ; preds = %221
  %.not1853 = icmp ult i32 %.fr, 16
  br i1 %.not1853, label %251, label %242

242:                                              ; preds = %241
  %.not1857 = icmp ult i32 %.fr, 64
  br i1 %.not1857, label %246, label %243

243:                                              ; preds = %242
  %.not1859 = icmp ugt i32 %.fr, 127
  %244 = zext i1 %.not1859 to i32
  %245 = or disjoint i32 %244, 2
  br label %248

246:                                              ; preds = %242
  %.not1858 = icmp ugt i32 %.fr, 31
  %247 = zext i1 %.not1858 to i32
  br label %248

248:                                              ; preds = %246, %243
  %249 = phi i32 [ %245, %243 ], [ %247, %246 ]
  %250 = or i32 %249, 4
  br label %257

251:                                              ; preds = %241
  %.not1854 = icmp ult i32 %.fr, 4
  br i1 %.not1854, label %255, label %252

252:                                              ; preds = %251
  %.not1856 = icmp ugt i32 %.fr, 7
  %253 = zext i1 %.not1856 to i32
  %254 = or disjoint i32 %253, 2
  br label %257

255:                                              ; preds = %251
  %.not1855 = icmp ugt i32 %.fr, 1
  %256 = zext i1 %.not1855 to i32
  br label %257

257:                                              ; preds = %238, %252, %255, %248, %218
  %258 = phi i32 [ %220, %218 ], [ %240, %238 ], [ %250, %248 ], [ %254, %252 ], [ %256, %255 ]
  %.not1882 = icmp eq i32 %185, %258
  br i1 %.not1882, label %260, label %259

259:                                              ; preds = %257
  tail call void @exit(i32 noundef 1) #13
  unreachable

260:                                              ; preds = %257
  %261 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %47, i1 true)
  %262 = trunc nuw nsw i64 %261 to i32
  %263 = select i1 %.not1953, i32 0, i32 %262
  %264 = tail call i32 @LIBXSMM_INTRINSICS_BITSCANFWD64_SW(i64 noundef %47)
  %.not1883 = icmp eq i32 %263, %264
  br i1 %.not1883, label %266, label %265

265:                                              ; preds = %260
  tail call void @exit(i32 noundef 1) #13
  unreachable

266:                                              ; preds = %260
  %267 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %47, i1 true)
  %268 = trunc nuw nsw i64 %267 to i32
  %269 = xor i32 %268, 63
  %270 = select i1 %.not1953, i32 0, i32 %269
  %.not1885 = icmp ult i64 %47, 4294967296
  br i1 %.not1885, label %347, label %271

271:                                              ; preds = %266
  %.not1917 = icmp ult i64 %47, 281474976710656
  br i1 %.not1917, label %308, label %272

272:                                              ; preds = %271
  %.not1933 = icmp ult i64 %47, 72057594037927936
  br i1 %.not1933, label %289, label %273

273:                                              ; preds = %272
  %.not1941 = icmp ult i64 %47, 1152921504606846976
  br i1 %.not1941, label %280, label %274

274:                                              ; preds = %273
  %.not1945 = icmp ult i64 %47, 4611686018427387904
  %.lobit1948 = lshr i64 %47, 63
  %275 = trunc nuw nsw i64 %.lobit1948 to i32
  %276 = or disjoint i32 %275, 2
  %.not1946 = icmp ugt i64 %47, 2305843009213693951
  %277 = zext i1 %.not1946 to i32
  %278 = select i1 %.not1945, i32 %277, i32 %276
  %279 = or disjoint i32 %278, 4
  br label %286

280:                                              ; preds = %273
  %.not1942 = icmp ult i64 %47, 288230376151711744
  br i1 %.not1942, label %284, label %281

281:                                              ; preds = %280
  %.not1944 = icmp ugt i64 %47, 576460752303423487
  %282 = zext i1 %.not1944 to i32
  %283 = or disjoint i32 %282, 2
  br label %286

284:                                              ; preds = %280
  %.not1943 = icmp ugt i64 %47, 144115188075855871
  %285 = zext i1 %.not1943 to i32
  br label %286

286:                                              ; preds = %281, %284, %274
  %287 = phi i32 [ %279, %274 ], [ %283, %281 ], [ %285, %284 ]
  %288 = or i32 %287, 8
  br label %305

289:                                              ; preds = %272
  %.not1934 = icmp ult i64 %47, 4503599627370496
  br i1 %.not1934, label %299, label %290

290:                                              ; preds = %289
  %.not1938 = icmp ult i64 %47, 18014398509481984
  br i1 %.not1938, label %294, label %291

291:                                              ; preds = %290
  %.not1940 = icmp ugt i64 %47, 36028797018963967
  %292 = zext i1 %.not1940 to i32
  %293 = or disjoint i32 %292, 2
  br label %296

294:                                              ; preds = %290
  %.not1939 = icmp ugt i64 %47, 9007199254740991
  %295 = zext i1 %.not1939 to i32
  br label %296

296:                                              ; preds = %294, %291
  %297 = phi i32 [ %293, %291 ], [ %295, %294 ]
  %298 = or i32 %297, 4
  br label %305

299:                                              ; preds = %289
  %.not1935 = icmp ult i64 %47, 1125899906842624
  br i1 %.not1935, label %303, label %300

300:                                              ; preds = %299
  %.not1937 = icmp ugt i64 %47, 2251799813685247
  %301 = zext i1 %.not1937 to i32
  %302 = or disjoint i32 %301, 2
  br label %305

303:                                              ; preds = %299
  %.not1936 = icmp ugt i64 %47, 562949953421311
  %304 = zext i1 %.not1936 to i32
  br label %305

305:                                              ; preds = %296, %303, %300, %286
  %306 = phi i32 [ %288, %286 ], [ %298, %296 ], [ %302, %300 ], [ %304, %303 ]
  %307 = or i32 %306, 16
  br label %344

308:                                              ; preds = %271
  %.not1918 = icmp ult i64 %47, 1099511627776
  br i1 %.not1918, label %328, label %309

309:                                              ; preds = %308
  %.not1926 = icmp ult i64 %47, 17592186044416
  br i1 %.not1926, label %319, label %310

310:                                              ; preds = %309
  %.not1930 = icmp ult i64 %47, 70368744177664
  br i1 %.not1930, label %314, label %311

311:                                              ; preds = %310
  %.not1932 = icmp ugt i64 %47, 140737488355327
  %312 = zext i1 %.not1932 to i32
  %313 = or disjoint i32 %312, 2
  br label %316

314:                                              ; preds = %310
  %.not1931 = icmp ugt i64 %47, 35184372088831
  %315 = zext i1 %.not1931 to i32
  br label %316

316:                                              ; preds = %314, %311
  %317 = phi i32 [ %313, %311 ], [ %315, %314 ]
  %318 = or i32 %317, 4
  br label %325

319:                                              ; preds = %309
  %.not1927 = icmp ult i64 %47, 4398046511104
  br i1 %.not1927, label %323, label %320

320:                                              ; preds = %319
  %.not1929 = icmp ugt i64 %47, 8796093022207
  %321 = zext i1 %.not1929 to i32
  %322 = or disjoint i32 %321, 2
  br label %325

323:                                              ; preds = %319
  %.not1928 = icmp ugt i64 %47, 2199023255551
  %324 = zext i1 %.not1928 to i32
  br label %325

325:                                              ; preds = %320, %323, %316
  %326 = phi i32 [ %318, %316 ], [ %322, %320 ], [ %324, %323 ]
  %327 = or i32 %326, 8
  br label %344

328:                                              ; preds = %308
  %.not1919 = icmp ult i64 %47, 68719476736
  br i1 %.not1919, label %338, label %329

329:                                              ; preds = %328
  %.not1923 = icmp ult i64 %47, 274877906944
  br i1 %.not1923, label %333, label %330

330:                                              ; preds = %329
  %.not1925 = icmp ugt i64 %47, 549755813887
  %331 = zext i1 %.not1925 to i32
  %332 = or disjoint i32 %331, 2
  br label %335

333:                                              ; preds = %329
  %.not1924 = icmp ugt i64 %47, 137438953471
  %334 = zext i1 %.not1924 to i32
  br label %335

335:                                              ; preds = %333, %330
  %336 = phi i32 [ %332, %330 ], [ %334, %333 ]
  %337 = or i32 %336, 4
  br label %344

338:                                              ; preds = %328
  %.not1920 = icmp ult i64 %47, 17179869184
  br i1 %.not1920, label %342, label %339

339:                                              ; preds = %338
  %.not1922 = icmp ugt i64 %47, 34359738367
  %340 = zext i1 %.not1922 to i32
  %341 = or disjoint i32 %340, 2
  br label %344

342:                                              ; preds = %338
  %.not1921 = icmp ugt i64 %47, 8589934591
  %343 = zext i1 %.not1921 to i32
  br label %344

344:                                              ; preds = %325, %339, %342, %335, %305
  %345 = phi i32 [ %307, %305 ], [ %327, %325 ], [ %337, %335 ], [ %341, %339 ], [ %343, %342 ]
  %346 = or i32 %345, 32
  br label %423

347:                                              ; preds = %266
  %.not1886 = icmp ult i64 %47, 65536
  br i1 %.not1886, label %387, label %348

348:                                              ; preds = %347
  %.not1902 = icmp ult i64 %47, 16777216
  br i1 %.not1902, label %368, label %349

349:                                              ; preds = %348
  %.not1910 = icmp ult i64 %47, 268435456
  br i1 %.not1910, label %359, label %350

350:                                              ; preds = %349
  %.not1914 = icmp ult i64 %47, 1073741824
  br i1 %.not1914, label %354, label %351

351:                                              ; preds = %350
  %.not1916 = icmp ugt i64 %47, 2147483647
  %352 = zext i1 %.not1916 to i32
  %353 = or disjoint i32 %352, 2
  br label %356

354:                                              ; preds = %350
  %.not1915 = icmp ugt i64 %47, 536870911
  %355 = zext i1 %.not1915 to i32
  br label %356

356:                                              ; preds = %354, %351
  %357 = phi i32 [ %353, %351 ], [ %355, %354 ]
  %358 = or i32 %357, 4
  br label %365

359:                                              ; preds = %349
  %.not1911 = icmp ult i64 %47, 67108864
  br i1 %.not1911, label %363, label %360

360:                                              ; preds = %359
  %.not1913 = icmp ugt i64 %47, 134217727
  %361 = zext i1 %.not1913 to i32
  %362 = or disjoint i32 %361, 2
  br label %365

363:                                              ; preds = %359
  %.not1912 = icmp ugt i64 %47, 33554431
  %364 = zext i1 %.not1912 to i32
  br label %365

365:                                              ; preds = %360, %363, %356
  %366 = phi i32 [ %358, %356 ], [ %362, %360 ], [ %364, %363 ]
  %367 = or i32 %366, 8
  br label %384

368:                                              ; preds = %348
  %.not1903 = icmp ult i64 %47, 1048576
  br i1 %.not1903, label %378, label %369

369:                                              ; preds = %368
  %.not1907 = icmp ult i64 %47, 4194304
  br i1 %.not1907, label %373, label %370

370:                                              ; preds = %369
  %.not1909 = icmp ugt i64 %47, 8388607
  %371 = zext i1 %.not1909 to i32
  %372 = or disjoint i32 %371, 2
  br label %375

373:                                              ; preds = %369
  %.not1908 = icmp ugt i64 %47, 2097151
  %374 = zext i1 %.not1908 to i32
  br label %375

375:                                              ; preds = %373, %370
  %376 = phi i32 [ %372, %370 ], [ %374, %373 ]
  %377 = or i32 %376, 4
  br label %384

378:                                              ; preds = %368
  %.not1904 = icmp ult i64 %47, 262144
  br i1 %.not1904, label %382, label %379

379:                                              ; preds = %378
  %.not1906 = icmp ugt i64 %47, 524287
  %380 = zext i1 %.not1906 to i32
  %381 = or disjoint i32 %380, 2
  br label %384

382:                                              ; preds = %378
  %.not1905 = icmp ugt i64 %47, 131071
  %383 = zext i1 %.not1905 to i32
  br label %384

384:                                              ; preds = %375, %382, %379, %365
  %385 = phi i32 [ %367, %365 ], [ %377, %375 ], [ %381, %379 ], [ %383, %382 ]
  %386 = or i32 %385, 16
  br label %423

387:                                              ; preds = %347
  %.not1887 = icmp ult i64 %47, 256
  br i1 %.not1887, label %407, label %388

388:                                              ; preds = %387
  %.not1895 = icmp ult i64 %47, 4096
  br i1 %.not1895, label %398, label %389

389:                                              ; preds = %388
  %.not1899 = icmp ult i64 %47, 16384
  br i1 %.not1899, label %393, label %390

390:                                              ; preds = %389
  %.not1901 = icmp ugt i64 %47, 32767
  %391 = zext i1 %.not1901 to i32
  %392 = or disjoint i32 %391, 2
  br label %395

393:                                              ; preds = %389
  %.not1900 = icmp ugt i64 %47, 8191
  %394 = zext i1 %.not1900 to i32
  br label %395

395:                                              ; preds = %393, %390
  %396 = phi i32 [ %392, %390 ], [ %394, %393 ]
  %397 = or i32 %396, 4
  br label %404

398:                                              ; preds = %388
  %.not1896 = icmp ult i64 %47, 1024
  br i1 %.not1896, label %402, label %399

399:                                              ; preds = %398
  %.not1898 = icmp ugt i64 %47, 2047
  %400 = zext i1 %.not1898 to i32
  %401 = or disjoint i32 %400, 2
  br label %404

402:                                              ; preds = %398
  %.not1897 = icmp ugt i64 %47, 511
  %403 = zext i1 %.not1897 to i32
  br label %404

404:                                              ; preds = %399, %402, %395
  %405 = phi i32 [ %397, %395 ], [ %401, %399 ], [ %403, %402 ]
  %406 = or i32 %405, 8
  br label %423

407:                                              ; preds = %387
  %.not1888 = icmp ult i64 %47, 16
  br i1 %.not1888, label %417, label %408

408:                                              ; preds = %407
  %.not1892 = icmp ult i64 %47, 64
  br i1 %.not1892, label %412, label %409

409:                                              ; preds = %408
  %.not1894 = icmp ugt i64 %47, 127
  %410 = zext i1 %.not1894 to i32
  %411 = or disjoint i32 %410, 2
  br label %414

412:                                              ; preds = %408
  %.not1893 = icmp ugt i64 %47, 31
  %413 = zext i1 %.not1893 to i32
  br label %414

414:                                              ; preds = %412, %409
  %415 = phi i32 [ %411, %409 ], [ %413, %412 ]
  %416 = or i32 %415, 4
  br label %423

417:                                              ; preds = %407
  %.not1889 = icmp ult i64 %47, 4
  br i1 %.not1889, label %421, label %418

418:                                              ; preds = %417
  %.not1891 = icmp ugt i64 %47, 7
  %419 = zext i1 %.not1891 to i32
  %420 = or disjoint i32 %419, 2
  br label %423

421:                                              ; preds = %417
  %.not1890 = icmp ugt i64 %47, 1
  %422 = zext i1 %.not1890 to i32
  br label %423

423:                                              ; preds = %384, %414, %421, %418, %404, %344
  %424 = phi i32 [ %346, %344 ], [ %386, %384 ], [ %406, %404 ], [ %416, %414 ], [ %420, %418 ], [ %422, %421 ]
  %.not1949 = icmp eq i32 %270, %424
  br i1 %.not1949, label %426, label %425

425:                                              ; preds = %423
  tail call void @exit(i32 noundef 1) #13
  unreachable

426:                                              ; preds = %423
  %427 = tail call i32 @LIBXSMM_ILOG2(i64 noundef %indvars.iv)
  %428 = trunc nuw nsw i64 %indvars.iv to i32
  %429 = tail call i32 @ref_ilog2_u32(i32 noundef %428)
  %.not1950 = icmp eq i32 %427, %429
  %or.cond1956 = select i1 %.not1952, i1 true, i1 %.not1950
  br i1 %or.cond1956, label %431, label %430

430:                                              ; preds = %426
  tail call void @exit(i32 noundef 1) #13
  unreachable

431:                                              ; preds = %426
  %432 = zext i32 %.fr to i64
  %433 = tail call i32 @LIBXSMM_ILOG2(i64 noundef %432)
  %434 = tail call i32 @ref_ilog2_u32(i32 noundef %.fr)
  %.not1951 = icmp eq i32 %433, %434
  %or.cond1957 = select i1 %.not1953, i1 true, i1 %.not1951
  br i1 %or.cond1957, label %436, label %435

435:                                              ; preds = %431
  tail call void @exit(i32 noundef 1) #13
  unreachable

436:                                              ; preds = %431
  %437 = tail call range(i32 12, 33) i32 @llvm.ctlz.i32(i32 %428, i1 true)
  %438 = xor i32 %437, 31
  %439 = select i1 %.not1952, i32 0, i32 %438
  %440 = icmp ne i64 %indvars.iv, 0
  %441 = zext i1 %440 to i32
  %442 = add nuw nsw i32 %439, %441
  %443 = lshr i32 %442, 1
  %444 = shl nuw nsw i32 1, %443
  %445 = tail call i32 @libxsmm_isqrt_u32(i32 noundef %428) #12
  %446 = icmp ult i32 %444, %445
  %447 = sub i32 %445, %444
  %448 = sub i32 %444, %445
  %449 = select i1 %446, i32 %447, i32 %448
  %450 = icmp ult i32 %444, %449
  br i1 %450, label %451, label %452

451:                                              ; preds = %436
  tail call void @exit(i32 noundef 1) #13
  unreachable

452:                                              ; preds = %436
  %453 = icmp ne i32 %.fr, 0
  %454 = zext i1 %453 to i32
  %455 = add nuw nsw i32 %185, %454
  %456 = lshr i32 %455, 1
  %457 = shl nuw nsw i32 1, %456
  %458 = tail call i32 @libxsmm_isqrt_u32(i32 noundef %.fr) #12
  %459 = icmp ult i32 %457, %458
  %460 = sub i32 %458, %457
  %461 = sub i32 %457, %458
  %462 = select i1 %459, i32 %460, i32 %461
  %463 = icmp ult i32 %457, %462
  br i1 %463, label %464, label %465

464:                                              ; preds = %452
  tail call void @exit(i32 noundef 1) #13
  unreachable

465:                                              ; preds = %452
  %466 = zext nneg i32 %270 to i64
  %467 = zext i1 %453 to i64
  %468 = add nuw nsw i64 %466, %467
  %469 = tail call i32 @libxsmm_isqrt_u64(i64 noundef %47) #12
  %.not1954 = icmp ugt i64 %468, 63
  br i1 %.not1954, label %480, label %470

470:                                              ; preds = %465
  %471 = lshr i64 %468, 1
  %472 = shl nuw nsw i64 1, %471
  %473 = trunc nuw i64 %472 to i32
  %474 = icmp ugt i32 %469, %473
  %475 = sub i32 %469, %473
  %476 = sub i32 %473, %469
  %477 = select i1 %474, i32 %475, i32 %476
  %478 = icmp ugt i32 %477, %473
  br i1 %478, label %479, label %480

479:                                              ; preds = %470
  tail call void @exit(i32 noundef 1) #13
  unreachable

480:                                              ; preds = %470, %465
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond2080.not = icmp eq i64 %indvars.iv.next, 1000000
  br i1 %exitcond2080.not, label %.preheader1986, label %.preheader1987, !llvm.loop !12

481:                                              ; preds = %.preheader1986
  %482 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 4), align 4, !tbaa !8
  %.not1844.1 = icmp eq i32 %482, 0
  %483 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %482, i1 true)
  %484 = xor i32 %483, 31
  %485 = select i1 %.not1844.1, i32 0, i32 %484
  %486 = icmp slt i32 %485, %482
  %487 = shl nuw i32 1, %485
  %488 = select i1 %486, i32 %487, i32 %485
  %.not1845.1 = icmp eq i32 %482, %488
  br i1 %.not1845.1, label %489, label %563

489:                                              ; preds = %481
  %490 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 8), align 8, !tbaa !8
  %.not1844.2 = icmp eq i32 %490, 0
  %491 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %490, i1 true)
  %492 = xor i32 %491, 31
  %493 = select i1 %.not1844.2, i32 0, i32 %492
  %494 = icmp slt i32 %493, %490
  %495 = shl nuw i32 1, %493
  %496 = select i1 %494, i32 %495, i32 %493
  %.not1845.2 = icmp eq i32 %490, %496
  br i1 %.not1845.2, label %497, label %563

497:                                              ; preds = %489
  %498 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 12), align 4, !tbaa !8
  %.not1844.3 = icmp eq i32 %498, 0
  %499 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %498, i1 true)
  %500 = xor i32 %499, 31
  %501 = select i1 %.not1844.3, i32 0, i32 %500
  %502 = icmp slt i32 %501, %498
  %503 = shl nuw i32 1, %501
  %504 = select i1 %502, i32 %503, i32 %501
  %.not1845.3 = icmp eq i32 %498, %504
  br i1 %.not1845.3, label %505, label %563

505:                                              ; preds = %497
  %506 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 16), align 16, !tbaa !8
  %.not1844.4 = icmp eq i32 %506, 0
  %507 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %506, i1 true)
  %508 = xor i32 %507, 31
  %509 = select i1 %.not1844.4, i32 0, i32 %508
  %510 = icmp slt i32 %509, %506
  %511 = shl nuw i32 1, %509
  %512 = select i1 %510, i32 %511, i32 %509
  %.not1845.4 = icmp eq i32 %506, %512
  br i1 %.not1845.4, label %513, label %563

513:                                              ; preds = %505
  %514 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 20), align 4, !tbaa !8
  %.not1844.5 = icmp eq i32 %514, 0
  %515 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %514, i1 true)
  %516 = xor i32 %515, 31
  %517 = select i1 %.not1844.5, i32 0, i32 %516
  %518 = icmp slt i32 %517, %514
  %519 = shl nuw i32 1, %517
  %520 = select i1 %518, i32 %519, i32 %517
  %.not1845.5 = icmp eq i32 %514, %520
  br i1 %.not1845.5, label %521, label %563

521:                                              ; preds = %513
  %522 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 24), align 8, !tbaa !8
  %.not1844.6 = icmp eq i32 %522, 0
  %523 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %522, i1 true)
  %524 = xor i32 %523, 31
  %525 = select i1 %.not1844.6, i32 0, i32 %524
  %526 = icmp slt i32 %525, %522
  %527 = shl nuw i32 1, %525
  %528 = select i1 %526, i32 %527, i32 %525
  %.not1845.6 = icmp eq i32 %522, %528
  br i1 %.not1845.6, label %529, label %563

529:                                              ; preds = %521
  %530 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 28), align 4, !tbaa !8
  %.not1844.7 = icmp eq i32 %530, 0
  %531 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %530, i1 true)
  %532 = xor i32 %531, 31
  %533 = select i1 %.not1844.7, i32 0, i32 %532
  %534 = icmp slt i32 %533, %530
  %535 = shl nuw i32 1, %533
  %536 = select i1 %534, i32 %535, i32 %533
  %.not1845.7 = icmp eq i32 %530, %536
  br i1 %.not1845.7, label %537, label %563

537:                                              ; preds = %529
  %538 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 32), align 16, !tbaa !8
  %.not1844.8 = icmp eq i32 %538, 0
  %539 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %538, i1 true)
  %540 = xor i32 %539, 31
  %541 = select i1 %.not1844.8, i32 0, i32 %540
  %542 = icmp slt i32 %541, %538
  %543 = shl nuw i32 1, %541
  %544 = select i1 %542, i32 %543, i32 %541
  %.not1845.8 = icmp eq i32 %538, %544
  br i1 %.not1845.8, label %545, label %563

545:                                              ; preds = %537
  %546 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 36), align 4, !tbaa !8
  %.not1844.9 = icmp eq i32 %546, 0
  %547 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %546, i1 true)
  %548 = xor i32 %547, 31
  %549 = select i1 %.not1844.9, i32 0, i32 %548
  %550 = icmp slt i32 %549, %546
  %551 = shl nuw i32 1, %549
  %552 = select i1 %550, i32 %551, i32 %549
  %.not1845.9 = icmp eq i32 %546, %552
  br i1 %.not1845.9, label %553, label %563

553:                                              ; preds = %545
  %554 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.npot, i64 40), align 8, !tbaa !8
  %.not1844.10 = icmp eq i32 %554, 0
  %555 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %554, i1 true)
  %556 = xor i32 %555, 31
  %557 = select i1 %.not1844.10, i32 0, i32 %556
  %558 = icmp slt i32 %557, %554
  %559 = shl nuw i32 1, %557
  %560 = select i1 %558, i32 %559, i32 %557
  %.not1845.10 = icmp eq i32 %554, %560
  br i1 %.not1845.10, label %561, label %563

561:                                              ; preds = %553
  %562 = tail call i32 @LIBXSMM_INTRINSICS_BITSCANFWD64_SW(i64 noundef 46912508653024)
  %.not = icmp eq i32 %562, 5
  br i1 %.not, label %565, label %564

563:                                              ; preds = %553, %545, %537, %529, %521, %513, %505, %497, %489, %481, %.preheader1986
  tail call void @exit(i32 noundef 1) #13
  unreachable

564:                                              ; preds = %561
  tail call void @exit(i32 noundef 1) #13
  unreachable

565:                                              ; preds = %561
  %566 = icmp sgt i32 %.11439, 0
  %567 = icmp sgt i32 %.1, 0
  %or.cond = select i1 %566, i1 true, i1 %567
  br i1 %or.cond, label %568, label %575

568:                                              ; preds = %565
  %569 = load ptr, ptr @stderr, align 8, !tbaa !13
  %570 = tail call i32 @llvm.smax.i32(i32 %.11439, i32 %.1)
  %571 = sitofp i32 %570 to double
  %572 = fmul double %571, 1.000000e+02
  %573 = fdiv double %572, 1.000000e+06
  %574 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef nonnull @.str, double noundef %573) #14
  br label %575

575:                                              ; preds = %565, %568
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(56) %3, i8 0, i64 16, i1 false)
  %576 = getelementptr inbounds i8, ptr %3, i64 8
  store i64 1, ptr %576, align 8
  %577 = getelementptr inbounds i8, ptr %3, i64 16
  store i64 10, ptr %577, align 16
  %578 = getelementptr inbounds i8, ptr %3, i64 24
  store i64 100, ptr %578, align 8
  %579 = getelementptr inbounds i8, ptr %3, i64 32
  store i64 127, ptr %579, align 16
  %580 = getelementptr inbounds i8, ptr %3, i64 40
  store i64 128, ptr %580, align 8
  %581 = getelementptr inbounds i8, ptr %3, i64 48
  store i64 129, ptr %581, align 16
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(56) %4, i8 0, i64 16, i1 false)
  %582 = getelementptr inbounds i8, ptr %4, i64 8
  store i64 1, ptr %582, align 8
  %583 = getelementptr inbounds i8, ptr %4, i64 16
  store i64 16, ptr %583, align 16
  %584 = getelementptr inbounds i8, ptr %4, i64 24
  store i64 128, ptr %584, align 8
  %585 = getelementptr inbounds i8, ptr %4, i64 32
  store i64 128, ptr %585, align 16
  %586 = getelementptr inbounds i8, ptr %4, i64 40
  store i64 128, ptr %586, align 8
  %587 = getelementptr inbounds i8, ptr %4, i64 48
  store i64 256, ptr %587, align 16
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(56) %5, i8 0, i64 16, i1 false)
  %588 = getelementptr inbounds i8, ptr %5, i64 8
  store i64 1, ptr %588, align 8
  %589 = getelementptr inbounds i8, ptr %5, i64 16
  store i64 8, ptr %589, align 16
  %590 = getelementptr inbounds i8, ptr %5, i64 24
  store i64 64, ptr %590, align 8
  %591 = getelementptr inbounds i8, ptr %5, i64 32
  store i64 64, ptr %591, align 16
  %592 = getelementptr inbounds i8, ptr %5, i64 40
  store i64 128, ptr %592, align 8
  %593 = getelementptr inbounds i8, ptr %5, i64 48
  store i64 128, ptr %593, align 16
  br label %594

594:                                              ; preds = %575, %.thread1972
  %indvars.iv2085 = phi i64 [ 0, %575 ], [ %indvars.iv.next2086, %.thread1972 ]
  %595 = getelementptr inbounds [7 x i64], ptr %3, i64 0, i64 %indvars.iv2085
  %596 = load i64, ptr %595, align 8, !tbaa !15
  %597 = icmp ne i64 %596, 0
  %spec.select = zext i1 %597 to i64
  %598 = sub i64 %596, %spec.select
  %599 = lshr i64 %598, 1
  %600 = lshr i64 %598, 3
  %601 = lshr i64 %598, 2
  %602 = or i64 %600, %601
  %603 = or i64 %602, %599
  %604 = or i64 %603, %598
  %605 = lshr i64 %604, 4
  %606 = lshr i64 %604, 12
  %607 = lshr i64 %604, 8
  %608 = or i64 %606, %607
  %609 = or i64 %608, %605
  %610 = or i64 %609, %604
  %611 = lshr i64 %610, 16
  %612 = lshr i64 %610, 48
  %613 = lshr i64 %610, 32
  %614 = or i64 %612, %613
  %615 = or i64 %614, %611
  %616 = or i64 %615, %610
  %617 = add i64 %616, %spec.select
  %618 = getelementptr inbounds [7 x i64], ptr %4, i64 0, i64 %indvars.iv2085
  %619 = load i64, ptr %618, align 8, !tbaa !15
  %.not1812 = icmp eq i64 %617, %619
  br i1 %.not1812, label %621, label %620

620:                                              ; preds = %594
  tail call void @exit(i32 noundef 1) #13
  unreachable

621:                                              ; preds = %594
  %622 = lshr i64 %596, 1
  %623 = lshr i64 %596, 2
  %624 = or i64 %622, %623
  %625 = lshr i64 %624, 2
  %626 = or i64 %625, %624
  %627 = lshr i64 %626, 4
  %628 = or i64 %627, %626
  %629 = lshr i64 %628, 8
  %630 = or i64 %629, %628
  %631 = lshr i64 %630, 16
  %632 = or i64 %631, %630
  %633 = lshr i64 %632, 32
  %634 = or i64 %633, %632
  %635 = add nuw i64 %634, %spec.select
  %636 = getelementptr inbounds [7 x i64], ptr %5, i64 0, i64 %indvars.iv2085
  %637 = load i64, ptr %636, align 8, !tbaa !15
  %.not1813 = icmp eq i64 %635, %637
  br i1 %.not1813, label %639, label %638

638:                                              ; preds = %621
  tail call void @exit(i32 noundef 1) #13
  unreachable

639:                                              ; preds = %621
  %.not1814 = icmp eq i64 %596, 0
  br i1 %.not1814, label %.thread1966, label %640

640:                                              ; preds = %639
  %641 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %596)
  %.not1815 = icmp ult i64 %641, 2
  %642 = add i64 %596, -1
  %643 = or i64 %599, %642
  %644 = or i64 %643, %602
  %645 = or i64 %644, %605
  %646 = or i64 %645, %608
  %647 = or i64 %646, %611
  %648 = or i64 %647, %614
  %649 = add i64 %648, %spec.select
  %650 = icmp eq i64 %596, %649
  %651 = xor i1 %.not1815, %650
  br i1 %651, label %652, label %653

652:                                              ; preds = %640
  tail call void @exit(i32 noundef 1) #13
  unreachable

653:                                              ; preds = %640
  %654 = add nuw i64 %634, 1
  %655 = icmp eq i64 %596, %654
  %656 = xor i1 %.not1815, %655
  br i1 %656, label %657, label %.thread1966

657:                                              ; preds = %653
  tail call void @exit(i32 noundef 1) #13
  unreachable

.thread1966:                                      ; preds = %639, %653
  %.not1824 = icmp eq i64 %617, 0
  br i1 %.not1824, label %.thread1969, label %658

658:                                              ; preds = %.thread1966
  %659 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %617)
  %.not1825 = icmp ult i64 %659, 2
  %660 = add i64 %617, -1
  %661 = lshr i64 %660, 1
  %662 = lshr i64 %660, 3
  %663 = lshr i64 %660, 2
  %664 = or i64 %662, %663
  %665 = or i64 %664, %661
  %666 = or i64 %665, %660
  %667 = lshr i64 %666, 4
  %668 = lshr i64 %666, 12
  %669 = lshr i64 %666, 8
  %670 = or i64 %668, %669
  %671 = or i64 %670, %667
  %672 = or i64 %671, %666
  %673 = lshr i64 %672, 16
  %674 = lshr i64 %672, 48
  %675 = lshr i64 %672, 32
  %676 = or i64 %673, %675
  %677 = or i64 %676, %674
  %678 = or i64 %677, %660
  %679 = or i64 %678, %661
  %680 = or i64 %679, %664
  %681 = or i64 %680, %667
  %682 = or i64 %681, %670
  %683 = add i64 %682, 1
  %684 = icmp eq i64 %617, %683
  %685 = xor i1 %.not1825, %684
  br i1 %685, label %686, label %687

686:                                              ; preds = %658
  tail call void @exit(i32 noundef 1) #13
  unreachable

687:                                              ; preds = %658
  %688 = lshr i64 %617, 1
  %689 = lshr i64 %617, 2
  %690 = or i64 %688, %689
  %691 = lshr i64 %690, 2
  %692 = or i64 %691, %690
  %693 = lshr i64 %692, 4
  %694 = or i64 %693, %692
  %695 = lshr i64 %694, 8
  %696 = or i64 %695, %694
  %697 = lshr i64 %696, 16
  %698 = or i64 %697, %696
  %699 = lshr i64 %698, 32
  %700 = or i64 %699, %698
  %701 = add nuw i64 %700, 1
  %702 = icmp eq i64 %617, %701
  %703 = xor i1 %.not1825, %702
  br i1 %703, label %704, label %.thread1969

704:                                              ; preds = %687
  tail call void @exit(i32 noundef 1) #13
  unreachable

.thread1969:                                      ; preds = %.thread1966, %687
  %.not1834 = icmp eq i64 %635, 0
  br i1 %.not1834, label %.thread1972, label %705

705:                                              ; preds = %.thread1969
  %706 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %635)
  %.not1835 = icmp ult i64 %706, 2
  %707 = add i64 %635, -1
  %708 = lshr i64 %707, 1
  %709 = lshr i64 %707, 3
  %710 = lshr i64 %707, 2
  %711 = or i64 %709, %710
  %712 = or i64 %711, %708
  %713 = or i64 %712, %707
  %714 = lshr i64 %713, 4
  %715 = lshr i64 %713, 12
  %716 = lshr i64 %713, 8
  %717 = or i64 %715, %716
  %718 = or i64 %717, %714
  %719 = or i64 %718, %713
  %720 = lshr i64 %719, 16
  %721 = lshr i64 %719, 48
  %722 = lshr i64 %719, 32
  %723 = or i64 %720, %722
  %724 = or i64 %723, %721
  %725 = or i64 %724, %707
  %726 = or i64 %725, %708
  %727 = or i64 %726, %711
  %728 = or i64 %727, %714
  %729 = or i64 %728, %717
  %730 = add nuw i64 %729, 1
  %731 = icmp eq i64 %635, %730
  %732 = xor i1 %.not1835, %731
  br i1 %732, label %733, label %734

733:                                              ; preds = %705
  tail call void @exit(i32 noundef 1) #13
  unreachable

734:                                              ; preds = %705
  %735 = lshr i64 %635, 1
  %736 = lshr i64 %635, 2
  %737 = or i64 %735, %736
  %738 = lshr i64 %737, 2
  %739 = or i64 %738, %737
  %740 = lshr i64 %739, 4
  %741 = or i64 %740, %739
  %742 = lshr i64 %741, 8
  %743 = or i64 %742, %741
  %744 = lshr i64 %743, 16
  %745 = or i64 %744, %743
  %746 = lshr i64 %745, 32
  %747 = or i64 %746, %745
  %748 = add nuw i64 %747, 1
  %749 = icmp eq i64 %635, %748
  %750 = xor i1 %.not1835, %749
  br i1 %750, label %751, label %.thread1972

751:                                              ; preds = %734
  tail call void @exit(i32 noundef 1) #13
  unreachable

.thread1972:                                      ; preds = %.thread1969, %734
  %indvars.iv.next2086 = add nuw nsw i64 %indvars.iv2085, 1
  %exitcond2088.not = icmp eq i64 %indvars.iv.next2086, 7
  br i1 %exitcond2088.not, label %752, label %594, !llvm.loop !17

752:                                              ; preds = %.thread1972
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %3) #12
  %753 = load i32, ptr @__const.main.inp, align 16, !tbaa !8
  %754 = add nsw i32 %753, 6
  %755 = sdiv i32 %754, 7
  %756 = load i32, ptr @__const.main.out, align 16, !tbaa !8
  %.not1811 = icmp eq i32 %755, %756
  br i1 %.not1811, label %757, label %787

757:                                              ; preds = %752
  %758 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp, i64 4), align 4, !tbaa !8
  %759 = add nsw i32 %758, 6
  %760 = sdiv i32 %759, 7
  %761 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out, i64 4), align 4, !tbaa !8
  %.not1811.1 = icmp eq i32 %760, %761
  br i1 %.not1811.1, label %762, label %787

762:                                              ; preds = %757
  %763 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp, i64 8), align 8, !tbaa !8
  %764 = add nsw i32 %763, 6
  %765 = sdiv i32 %764, 7
  %766 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out, i64 8), align 8, !tbaa !8
  %.not1811.2 = icmp eq i32 %765, %766
  br i1 %.not1811.2, label %767, label %787

767:                                              ; preds = %762
  %768 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp, i64 12), align 4, !tbaa !8
  %769 = add nsw i32 %768, 6
  %770 = sdiv i32 %769, 7
  %771 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out, i64 12), align 4, !tbaa !8
  %.not1811.3 = icmp eq i32 %770, %771
  br i1 %.not1811.3, label %772, label %787

772:                                              ; preds = %767
  %773 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp, i64 16), align 16, !tbaa !8
  %774 = add nsw i32 %773, 6
  %775 = sdiv i32 %774, 7
  %776 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out, i64 16), align 16, !tbaa !8
  %.not1811.4 = icmp eq i32 %775, %776
  br i1 %.not1811.4, label %777, label %787

777:                                              ; preds = %772
  %778 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp, i64 20), align 4, !tbaa !8
  %779 = add nsw i32 %778, 6
  %780 = sdiv i32 %779, 7
  %781 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out, i64 20), align 4, !tbaa !8
  %.not1811.5 = icmp eq i32 %780, %781
  br i1 %.not1811.5, label %.preheader1985.preheader, label %787

.preheader1985.preheader:                         ; preds = %777
  %782 = load i32, ptr @__const.main.inp.1, align 16, !tbaa !8
  %.fr1809 = freeze i32 %782
  %783 = add i32 %.fr1809, 6
  %784 = srem i32 %783, 7
  %785 = sub nsw i32 %783, %784
  %786 = load i32, ptr @__const.main.out.2, align 16, !tbaa !8
  %.not1810 = icmp eq i32 %785, %786
  br i1 %.not1810, label %.preheader1985.1, label %816

787:                                              ; preds = %777, %772, %767, %762, %757, %752
  tail call void @exit(i32 noundef 1) #13
  unreachable

.preheader1985.1:                                 ; preds = %.preheader1985.preheader
  %788 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.1, i64 4), align 4, !tbaa !8
  %.fr1809.1 = freeze i32 %788
  %789 = add i32 %.fr1809.1, 6
  %790 = srem i32 %789, 7
  %791 = sub nsw i32 %789, %790
  %792 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.2, i64 4), align 4, !tbaa !8
  %.not1810.1 = icmp eq i32 %791, %792
  br i1 %.not1810.1, label %.preheader1985.2, label %816

.preheader1985.2:                                 ; preds = %.preheader1985.1
  %793 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.1, i64 8), align 8, !tbaa !8
  %.fr1809.2 = freeze i32 %793
  %794 = add i32 %.fr1809.2, 6
  %795 = srem i32 %794, 7
  %796 = sub nsw i32 %794, %795
  %797 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.2, i64 8), align 8, !tbaa !8
  %.not1810.2 = icmp eq i32 %796, %797
  br i1 %.not1810.2, label %.preheader1985.3, label %816

.preheader1985.3:                                 ; preds = %.preheader1985.2
  %798 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.1, i64 12), align 4, !tbaa !8
  %.fr1809.3 = freeze i32 %798
  %799 = add i32 %.fr1809.3, 6
  %800 = srem i32 %799, 7
  %801 = sub nsw i32 %799, %800
  %802 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.2, i64 12), align 4, !tbaa !8
  %.not1810.3 = icmp eq i32 %801, %802
  br i1 %.not1810.3, label %.preheader1985.4, label %816

.preheader1985.4:                                 ; preds = %.preheader1985.3
  %803 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.1, i64 16), align 16, !tbaa !8
  %.fr1809.4 = freeze i32 %803
  %804 = add i32 %.fr1809.4, 6
  %805 = srem i32 %804, 7
  %806 = sub nsw i32 %804, %805
  %807 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.2, i64 16), align 16, !tbaa !8
  %.not1810.4 = icmp eq i32 %806, %807
  br i1 %.not1810.4, label %.preheader1985.5, label %816

.preheader1985.5:                                 ; preds = %.preheader1985.4
  %808 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.1, i64 20), align 4, !tbaa !8
  %.fr1809.5 = freeze i32 %808
  %809 = add i32 %.fr1809.5, 6
  %810 = srem i32 %809, 7
  %811 = sub nsw i32 %809, %810
  %812 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.2, i64 20), align 4, !tbaa !8
  %.not1810.5 = icmp eq i32 %811, %812
  br i1 %.not1810.5, label %.preheader1984.preheader, label %816

.preheader1984.preheader:                         ; preds = %.preheader1985.5
  %813 = load i32, ptr @__const.main.inp.3, align 16, !tbaa !8
  %814 = and i32 %813, -8
  %815 = load i32, ptr @__const.main.out.4, align 16, !tbaa !8
  %.not1808 = icmp eq i32 %814, %815
  br i1 %.not1808, label %.preheader1984.1, label %836

816:                                              ; preds = %.preheader1985.5, %.preheader1985.4, %.preheader1985.3, %.preheader1985.2, %.preheader1985.1, %.preheader1985.preheader
  tail call void @exit(i32 noundef 1) #13
  unreachable

.preheader1984.1:                                 ; preds = %.preheader1984.preheader
  %817 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.3, i64 4), align 4, !tbaa !8
  %818 = and i32 %817, -8
  %819 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.4, i64 4), align 4, !tbaa !8
  %.not1808.1 = icmp eq i32 %818, %819
  br i1 %.not1808.1, label %.preheader1984.2, label %836

.preheader1984.2:                                 ; preds = %.preheader1984.1
  %820 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.3, i64 8), align 8, !tbaa !8
  %821 = and i32 %820, -8
  %822 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.4, i64 8), align 8, !tbaa !8
  %.not1808.2 = icmp eq i32 %821, %822
  br i1 %.not1808.2, label %.preheader1984.3, label %836

.preheader1984.3:                                 ; preds = %.preheader1984.2
  %823 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.3, i64 12), align 4, !tbaa !8
  %824 = and i32 %823, -8
  %825 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.4, i64 12), align 4, !tbaa !8
  %.not1808.3 = icmp eq i32 %824, %825
  br i1 %.not1808.3, label %.preheader1984.4, label %836

.preheader1984.4:                                 ; preds = %.preheader1984.3
  %826 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.3, i64 16), align 16, !tbaa !8
  %827 = and i32 %826, -8
  %828 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.4, i64 16), align 16, !tbaa !8
  %.not1808.4 = icmp eq i32 %827, %828
  br i1 %.not1808.4, label %.preheader1984.5, label %836

.preheader1984.5:                                 ; preds = %.preheader1984.4
  %829 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.3, i64 20), align 4, !tbaa !8
  %830 = and i32 %829, -8
  %831 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.4, i64 20), align 4, !tbaa !8
  %.not1808.5 = icmp eq i32 %830, %831
  br i1 %.not1808.5, label %.preheader1983.preheader, label %836

.preheader1983.preheader:                         ; preds = %.preheader1984.5
  %832 = load i32, ptr @__const.main.inp.5, align 16, !tbaa !8
  %833 = add nsw i32 %832, 7
  %834 = and i32 %833, -8
  %835 = load i32, ptr @__const.main.out.6, align 16, !tbaa !8
  %.not1807 = icmp eq i32 %834, %835
  br i1 %.not1807, label %.preheader1983.1, label %861

836:                                              ; preds = %.preheader1984.5, %.preheader1984.4, %.preheader1984.3, %.preheader1984.2, %.preheader1984.1, %.preheader1984.preheader
  tail call void @exit(i32 noundef 1) #13
  unreachable

.preheader1983.1:                                 ; preds = %.preheader1983.preheader
  %837 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.5, i64 4), align 4, !tbaa !8
  %838 = add nsw i32 %837, 7
  %839 = and i32 %838, -8
  %840 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.6, i64 4), align 4, !tbaa !8
  %.not1807.1 = icmp eq i32 %839, %840
  br i1 %.not1807.1, label %.preheader1983.2, label %861

.preheader1983.2:                                 ; preds = %.preheader1983.1
  %841 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.5, i64 8), align 8, !tbaa !8
  %842 = add nsw i32 %841, 7
  %843 = and i32 %842, -8
  %844 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.6, i64 8), align 8, !tbaa !8
  %.not1807.2 = icmp eq i32 %843, %844
  br i1 %.not1807.2, label %.preheader1983.3, label %861

.preheader1983.3:                                 ; preds = %.preheader1983.2
  %845 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.5, i64 12), align 4, !tbaa !8
  %846 = add nsw i32 %845, 7
  %847 = and i32 %846, -8
  %848 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.6, i64 12), align 4, !tbaa !8
  %.not1807.3 = icmp eq i32 %847, %848
  br i1 %.not1807.3, label %.preheader1983.4, label %861

.preheader1983.4:                                 ; preds = %.preheader1983.3
  %849 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.5, i64 16), align 16, !tbaa !8
  %850 = add nsw i32 %849, 7
  %851 = and i32 %850, -8
  %852 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.6, i64 16), align 16, !tbaa !8
  %.not1807.4 = icmp eq i32 %851, %852
  br i1 %.not1807.4, label %.preheader1983.5, label %861

.preheader1983.5:                                 ; preds = %.preheader1983.4
  %853 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.5, i64 20), align 4, !tbaa !8
  %854 = add nsw i32 %853, 7
  %855 = and i32 %854, -8
  %856 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.6, i64 20), align 4, !tbaa !8
  %.not1807.5 = icmp eq i32 %855, %856
  br i1 %.not1807.5, label %.preheader1982.preheader, label %861

.preheader1982.preheader:                         ; preds = %.preheader1983.5
  %857 = load i32, ptr @__const.main.inp.7, align 16, !tbaa !8
  %858 = mul nsw i32 %857, 103
  %859 = sdiv i32 %858, 100
  %860 = load i32, ptr @__const.main.out.8, align 16, !tbaa !8
  %.not1806 = icmp eq i32 %859, %860
  br i1 %.not1806, label %.preheader1982.1, label %884

861:                                              ; preds = %.preheader1983.5, %.preheader1983.4, %.preheader1983.3, %.preheader1983.2, %.preheader1983.1, %.preheader1983.preheader
  tail call void @exit(i32 noundef 1) #13
  unreachable

.preheader1982.1:                                 ; preds = %.preheader1982.preheader
  %862 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.7, i64 4), align 4, !tbaa !8
  %863 = mul nsw i32 %862, 103
  %864 = sdiv i32 %863, 100
  %865 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.8, i64 4), align 4, !tbaa !8
  %.not1806.1 = icmp eq i32 %864, %865
  br i1 %.not1806.1, label %.preheader1982.2, label %884

.preheader1982.2:                                 ; preds = %.preheader1982.1
  %866 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.7, i64 8), align 8, !tbaa !8
  %867 = mul nsw i32 %866, 103
  %868 = sdiv i32 %867, 100
  %869 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.8, i64 8), align 8, !tbaa !8
  %.not1806.2 = icmp eq i32 %868, %869
  br i1 %.not1806.2, label %.preheader1982.3, label %884

.preheader1982.3:                                 ; preds = %.preheader1982.2
  %870 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.7, i64 12), align 4, !tbaa !8
  %871 = mul nsw i32 %870, 103
  %872 = sdiv i32 %871, 100
  %873 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.8, i64 12), align 4, !tbaa !8
  %.not1806.3 = icmp eq i32 %872, %873
  br i1 %.not1806.3, label %.preheader1982.4, label %884

.preheader1982.4:                                 ; preds = %.preheader1982.3
  %874 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.7, i64 16), align 16, !tbaa !8
  %875 = mul nsw i32 %874, 103
  %876 = sdiv i32 %875, 100
  %877 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.8, i64 16), align 16, !tbaa !8
  %.not1806.4 = icmp eq i32 %876, %877
  br i1 %.not1806.4, label %.preheader1982.5, label %884

.preheader1982.5:                                 ; preds = %.preheader1982.4
  %878 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.inp.7, i64 20), align 4, !tbaa !8
  %879 = mul nsw i32 %878, 103
  %880 = sdiv i32 %879, 100
  %881 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.out.8, i64 20), align 4, !tbaa !8
  %.not1806.5 = icmp eq i32 %880, %881
  br i1 %.not1806.5, label %882, label %884

882:                                              ; preds = %.preheader1982.5
  %883 = tail call i64 @libxsmm_gcd(i64 noundef 0, i64 noundef 0) #12
  %.not1804 = icmp eq i64 %883, 1
  br i1 %.not1804, label %903, label %902

884:                                              ; preds = %.preheader1982.5, %.preheader1982.4, %.preheader1982.3, %.preheader1982.2, %.preheader1982.1, %.preheader1982.preheader
  tail call void @exit(i32 noundef 1) #13
  unreachable

885:                                              ; preds = %903
  %886 = tail call i64 @libxsmm_gcd(i64 noundef 1, i64 noundef 0) #12
  %.not1804.1 = icmp eq i64 %886, 1
  br i1 %.not1804.1, label %887, label %902

887:                                              ; preds = %885
  %888 = tail call i64 @libxsmm_gcd(i64 noundef 0, i64 noundef 1) #12
  %.not1805.1 = icmp eq i64 %888, 1
  br i1 %.not1805.1, label %889, label %905

889:                                              ; preds = %887
  %890 = tail call i64 @libxsmm_gcd(i64 noundef 0, i64 noundef 2) #12
  %.not1804.2 = icmp eq i64 %890, 2
  br i1 %.not1804.2, label %891, label %902

891:                                              ; preds = %889
  %892 = tail call i64 @libxsmm_gcd(i64 noundef 2, i64 noundef 0) #12
  %.not1805.2 = icmp eq i64 %892, 2
  br i1 %.not1805.2, label %893, label %905

893:                                              ; preds = %891
  %894 = tail call i64 @libxsmm_gcd(i64 noundef 100, i64 noundef 10) #12
  %.not1804.3 = icmp eq i64 %894, 10
  br i1 %.not1804.3, label %895, label %902

895:                                              ; preds = %893
  %896 = tail call i64 @libxsmm_gcd(i64 noundef 10, i64 noundef 100) #12
  %.not1805.3 = icmp eq i64 %896, 10
  br i1 %.not1805.3, label %897, label %905

897:                                              ; preds = %895
  %898 = tail call i64 @libxsmm_gcd(i64 noundef 10, i64 noundef 100) #12
  %.not1804.4 = icmp eq i64 %898, 10
  br i1 %.not1804.4, label %899, label %902

899:                                              ; preds = %897
  %900 = tail call i64 @libxsmm_gcd(i64 noundef 100, i64 noundef 10) #12
  %.not1805.4 = icmp eq i64 %900, 10
  br i1 %.not1805.4, label %901, label %905

901:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %6) #12
  br label %907

902:                                              ; preds = %897, %893, %889, %885, %882
  tail call void @exit(i32 noundef 1) #13
  unreachable

903:                                              ; preds = %882
  %904 = tail call i64 @libxsmm_gcd(i64 noundef 0, i64 noundef 0) #12
  %.not1805 = icmp eq i64 %904, 1
  br i1 %.not1805, label %885, label %905

905:                                              ; preds = %899, %895, %891, %887, %903
  tail call void @exit(i32 noundef 1) #13
  unreachable

906:                                              ; preds = %924
  %indvars.iv.next2118 = add nuw nsw i64 %indvars.iv2117, 1
  %exitcond2120.not = icmp eq i64 %indvars.iv.next2118, 15
  br i1 %exitcond2120.not, label %928, label %907, !llvm.loop !18

907:                                              ; preds = %901, %906
  %indvars.iv2117 = phi i64 [ 0, %901 ], [ %indvars.iv.next2118, %906 ]
  %908 = getelementptr inbounds [15 x i32], ptr @__const.main.test, i64 0, i64 %indvars.iv2117
  %909 = load i32, ptr %908, align 4, !tbaa !8
  %910 = call i32 @libxsmm_primes_u32(i32 noundef %909, ptr noundef nonnull %6) #12
  %.promoted = load i32, ptr %6, align 16
  %911 = icmp sgt i32 %910, 1
  br i1 %911, label %.lr.ph.preheader, label %924

.lr.ph.preheader:                                 ; preds = %907
  %wide.trip.count = zext nneg i32 %910 to i64
  %912 = add nsw i64 %wide.trip.count, -1
  %min.iters.check = icmp ult i32 %910, 9
  br i1 %min.iters.check, label %.lr.ph.preheader2195, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %912, -8
  %ind.end = or disjoint i64 %n.vec, 1
  %913 = insertelement <4 x i32> <i32 poison, i32 1, i32 1, i32 1>, i32 %.promoted, i64 0
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.phi = phi <4 x i32> [ %913, %vector.ph ], [ %916, %vector.body ]
  %vec.phi2191 = phi <4 x i32> [ <i32 1, i32 1, i32 1, i32 1>, %vector.ph ], [ %917, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %914 = getelementptr inbounds [32 x i32], ptr %6, i64 0, i64 %offset.idx
  %915 = getelementptr inbounds i8, ptr %914, i64 16
  %wide.load = load <4 x i32>, ptr %914, align 4, !tbaa !8
  %wide.load2192 = load <4 x i32>, ptr %915, align 4, !tbaa !8
  %916 = mul <4 x i32> %vec.phi, %wide.load
  %917 = mul <4 x i32> %vec.phi2191, %wide.load2192
  %index.next = add nuw i64 %index, 8
  %918 = icmp eq i64 %index.next, %n.vec
  br i1 %918, label %middle.block, label %vector.body, !llvm.loop !19

middle.block:                                     ; preds = %vector.body
  %bin.rdx = mul <4 x i32> %917, %916
  %919 = call i32 @llvm.vector.reduce.mul.v4i32(<4 x i32> %bin.rdx)
  %cmp.n = icmp eq i64 %912, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader2195

.lr.ph.preheader2195:                             ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv2113.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %.ph = phi i32 [ %.promoted, %.lr.ph.preheader ], [ %919, %middle.block ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader2195, %.lr.ph
  %indvars.iv2113 = phi i64 [ %indvars.iv.next2114, %.lr.ph ], [ %indvars.iv2113.ph, %.lr.ph.preheader2195 ]
  %920 = phi i32 [ %923, %.lr.ph ], [ %.ph, %.lr.ph.preheader2195 ]
  %921 = getelementptr inbounds [32 x i32], ptr %6, i64 0, i64 %indvars.iv2113
  %922 = load i32, ptr %921, align 4, !tbaa !8
  %923 = mul i32 %920, %922
  %indvars.iv.next2114 = add nuw nsw i64 %indvars.iv2113, 1
  %exitcond2116.not = icmp eq i64 %indvars.iv.next2114, %wide.trip.count
  br i1 %exitcond2116.not, label %._crit_edge, label %.lr.ph, !llvm.loop !22

._crit_edge:                                      ; preds = %.lr.ph, %middle.block
  %.lcssa = phi i32 [ %919, %middle.block ], [ %923, %.lr.ph ]
  store i32 %.lcssa, ptr %6, align 16, !tbaa !8
  br label %924

924:                                              ; preds = %._crit_edge, %907
  %925 = phi i32 [ %.lcssa, %._crit_edge ], [ %.promoted, %907 ]
  %926 = icmp slt i32 %910, 1
  %.not1803 = icmp eq i32 %925, %909
  %or.cond1973 = select i1 %926, i1 true, i1 %.not1803
  br i1 %or.cond1973, label %906, label %927

927:                                              ; preds = %924
  call void @exit(i32 noundef 1) #13
  unreachable

928:                                              ; preds = %906
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %6) #12
  br label %.preheader

.preheader:                                       ; preds = %928, %.split2050.us
  %indvars.iv2129 = phi i64 [ 0, %928 ], [ %indvars.iv.next2130, %.split2050.us ]
  %929 = getelementptr inbounds [15 x i64], ptr @__const.main.test.9, i64 0, i64 %indvars.iv2129
  %930 = load i64, ptr %929, align 8, !tbaa !15
  %.fr2052 = freeze i64 %930
  %931 = icmp ugt i64 %.fr2052, 1
  br i1 %931, label %.preheader.split.us, label %.preheader.split

.preheader.split.us:                              ; preds = %.preheader, %936
  %indvars.iv2125 = phi i64 [ %indvars.iv.next2126, %936 ], [ 0, %.preheader ]
  %932 = call i64 @libxsmm_coprime(i64 noundef %.fr2052, i64 noundef %indvars.iv2125) #12
  %933 = call i64 @libxsmm_gcd(i64 noundef %932, i64 noundef %.fr2052) #12
  %934 = icmp ule i64 %.fr2052, %932
  %935 = icmp ne i64 %933, 1
  %or.cond3.us = select i1 %934, i1 true, i1 %935
  br i1 %or.cond3.us, label %.split.us, label %936

936:                                              ; preds = %.preheader.split.us
  %indvars.iv.next2126 = add nuw i64 %indvars.iv2125, 1
  %exitcond2128 = icmp eq i64 %indvars.iv2125, %.fr2052
  br i1 %exitcond2128, label %.split2050.us, label %.preheader.split.us, !llvm.loop !23

.preheader.split:                                 ; preds = %.preheader, %942
  %indvars.iv2121 = phi i64 [ %indvars.iv.next2122, %942 ], [ 0, %.preheader ]
  %937 = call i64 @libxsmm_coprime(i64 noundef %.fr2052, i64 noundef %indvars.iv2121) #12
  %938 = call i64 @libxsmm_gcd(i64 noundef %937, i64 noundef %.fr2052) #12
  %.not1802.not = icmp eq i64 %937, 0
  br i1 %.not1802.not, label %942, label %939

939:                                              ; preds = %.preheader.split
  %940 = icmp ule i64 %.fr2052, %937
  %941 = icmp ne i64 %938, 1
  %or.cond3 = select i1 %940, i1 true, i1 %941
  br i1 %or.cond3, label %.split.us, label %942

.split.us:                                        ; preds = %939, %.preheader.split.us
  call void @exit(i32 noundef 1) #13
  unreachable

942:                                              ; preds = %.preheader.split, %939
  %indvars.iv.next2122 = add nuw i64 %indvars.iv2121, 1
  %exitcond2124 = icmp eq i64 %indvars.iv2121, %.fr2052
  br i1 %exitcond2124, label %.split2050.us, label %.preheader.split, !llvm.loop !23

.split2050.us:                                    ; preds = %942, %936
  %indvars.iv.next2130 = add nuw nsw i64 %indvars.iv2129, 1
  %exitcond2132.not = icmp eq i64 %indvars.iv.next2130, 15
  br i1 %exitcond2132.not, label %943, label %.preheader, !llvm.loop !24

943:                                              ; preds = %.split2050.us
  %944 = call i64 @libxsmm_coprime2(i64 noundef 65423) #12
  %.not1748 = icmp eq i64 %944, 32711
  br i1 %.not1748, label %946, label %945

945:                                              ; preds = %943
  call void @exit(i32 noundef 1) #13
  unreachable

946:                                              ; preds = %943
  %947 = call i64 @libxsmm_coprime2(i64 noundef 1030) #12
  %.not1749 = icmp eq i64 %947, 513
  br i1 %.not1749, label %949, label %948

948:                                              ; preds = %946
  call void @exit(i32 noundef 1) #13
  unreachable

949:                                              ; preds = %946
  %950 = call i64 @libxsmm_coprime2(i64 noundef 1029) #12
  %.not1750 = icmp eq i64 %950, 514
  br i1 %.not1750, label %952, label %951

951:                                              ; preds = %949
  call void @exit(i32 noundef 1) #13
  unreachable

952:                                              ; preds = %949
  %953 = call i64 @libxsmm_coprime2(i64 noundef 1028) #12
  %.not1751 = icmp eq i64 %953, 513
  br i1 %.not1751, label %955, label %954

954:                                              ; preds = %952
  call void @exit(i32 noundef 1) #13
  unreachable

955:                                              ; preds = %952
  %956 = call i64 @libxsmm_coprime2(i64 noundef 1027) #12
  %.not1752 = icmp eq i64 %956, 513
  br i1 %.not1752, label %958, label %957

957:                                              ; preds = %955
  call void @exit(i32 noundef 1) #13
  unreachable

958:                                              ; preds = %955
  %959 = call i64 @libxsmm_coprime2(i64 noundef 1026) #12
  %.not1753 = icmp eq i64 %959, 511
  br i1 %.not1753, label %961, label %960

960:                                              ; preds = %958
  call void @exit(i32 noundef 1) #13
  unreachable

961:                                              ; preds = %958
  %962 = call i64 @libxsmm_coprime2(i64 noundef 1025) #12
  %.not1754 = icmp eq i64 %962, 512
  br i1 %.not1754, label %964, label %963

963:                                              ; preds = %961
  call void @exit(i32 noundef 1) #13
  unreachable

964:                                              ; preds = %961
  %965 = call i64 @libxsmm_coprime2(i64 noundef 1024) #12
  %.not1755 = icmp eq i64 %965, 511
  br i1 %.not1755, label %967, label %966

966:                                              ; preds = %964
  call void @exit(i32 noundef 1) #13
  unreachable

967:                                              ; preds = %964
  %968 = call i64 @libxsmm_coprime2(i64 noundef 1000) #12
  %.not1756 = icmp eq i64 %968, 499
  br i1 %.not1756, label %970, label %969

969:                                              ; preds = %967
  call void @exit(i32 noundef 1) #13
  unreachable

970:                                              ; preds = %967
  %971 = call i64 @libxsmm_coprime2(i64 noundef 997) #12
  %.not1757 = icmp eq i64 %971, 498
  br i1 %.not1757, label %973, label %972

972:                                              ; preds = %970
  call void @exit(i32 noundef 1) #13
  unreachable

973:                                              ; preds = %970
  %974 = call i64 @libxsmm_coprime2(i64 noundef 24) #12
  %.not1758 = icmp eq i64 %974, 11
  br i1 %.not1758, label %976, label %975

975:                                              ; preds = %973
  call void @exit(i32 noundef 1) #13
  unreachable

976:                                              ; preds = %973
  %977 = call i64 @libxsmm_coprime2(i64 noundef 5) #12
  %.not1759 = icmp eq i64 %977, 2
  br i1 %.not1759, label %979, label %978

978:                                              ; preds = %976
  call void @exit(i32 noundef 1) #13
  unreachable

979:                                              ; preds = %976
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #12
  store i32 512, ptr %7, align 4, !tbaa !8
  %980 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef nonnull %7, ptr noundef null) #12
  %.not1760 = icmp eq i32 %980, 416
  br i1 %.not1760, label %982, label %981

981:                                              ; preds = %979
  call void @exit(i32 noundef 1) #13
  unreachable

982:                                              ; preds = %979
  store i32 4, ptr %8, align 4, !tbaa !8
  %983 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef null, ptr noundef nonnull %8) #12
  %.not1761 = icmp eq i32 %983, 96
  br i1 %.not1761, label %985, label %984

984:                                              ; preds = %982
  call void @exit(i32 noundef 1) #13
  unreachable

985:                                              ; preds = %982
  store i32 1, ptr %8, align 4, !tbaa !8
  %986 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef nonnull %7, ptr noundef nonnull %8) #12
  %.not1762 = icmp eq i32 %986, 416
  br i1 %.not1762, label %988, label %987

987:                                              ; preds = %985
  call void @exit(i32 noundef 1) #13
  unreachable

988:                                              ; preds = %985
  store i32 32, ptr %7, align 4, !tbaa !8
  %989 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef nonnull %7, ptr noundef null) #12
  %.not1763 = icmp eq i32 %989, 24
  br i1 %.not1763, label %991, label %990

990:                                              ; preds = %988
  call void @exit(i32 noundef 1) #13
  unreachable

991:                                              ; preds = %988
  store i32 23, ptr %7, align 4, !tbaa !8
  %992 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef nonnull %7, ptr noundef null) #12
  %.not1764 = icmp eq i32 %992, 184
  br i1 %.not1764, label %994, label %993

993:                                              ; preds = %991
  call void @exit(i32 noundef 1) #13
  unreachable

994:                                              ; preds = %991
  store i32 4, ptr %7, align 4, !tbaa !8
  %995 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef nonnull %7, ptr noundef null) #12
  %.not1765 = icmp eq i32 %995, 184
  br i1 %.not1765, label %997, label %996

996:                                              ; preds = %994
  call void @exit(i32 noundef 1) #13
  unreachable

997:                                              ; preds = %994
  store i32 1, ptr %8, align 4, !tbaa !8
  %998 = call i32 @libxsmm_remainder(i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef nonnull %8) #12
  %.not1766 = icmp eq i32 %998, 0
  br i1 %.not1766, label %1000, label %999

999:                                              ; preds = %997
  call void @exit(i32 noundef 1) #13
  unreachable

1000:                                             ; preds = %997
  %1001 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 32, ptr noundef null, ptr noundef null) #12
  %.not1767 = icmp eq i32 %1001, 736
  br i1 %.not1767, label %1003, label %1002

1002:                                             ; preds = %1000
  call void @exit(i32 noundef 1) #13
  unreachable

1003:                                             ; preds = %1000
  %1004 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef null, ptr noundef null) #12
  %.not1768 = icmp eq i32 %1004, 184
  br i1 %.not1768, label %1006, label %1005

1005:                                             ; preds = %1003
  call void @exit(i32 noundef 1) #13
  unreachable

1006:                                             ; preds = %1003
  %1007 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 8, ptr noundef null, ptr noundef null) #12
  %.not1769 = icmp eq i32 %1007, 184
  br i1 %.not1769, label %1009, label %1008

1008:                                             ; preds = %1006
  call void @exit(i32 noundef 1) #13
  unreachable

1009:                                             ; preds = %1006
  %1010 = call i32 @libxsmm_remainder(i32 noundef 0, i32 noundef 32, ptr noundef null, ptr noundef null) #12
  %.not1770 = icmp eq i32 %1010, 0
  br i1 %.not1770, label %1012, label %1011

1011:                                             ; preds = %1009
  call void @exit(i32 noundef 1) #13
  unreachable

1012:                                             ; preds = %1009
  %1013 = call i32 @libxsmm_remainder(i32 noundef 23, i32 noundef 0, ptr noundef null, ptr noundef null) #12
  %.not1771 = icmp eq i32 %1013, 0
  br i1 %.not1771, label %1015, label %1014

1014:                                             ; preds = %1012
  call void @exit(i32 noundef 1) #13
  unreachable

1015:                                             ; preds = %1012
  %1016 = call i32 @libxsmm_remainder(i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef null) #12
  %.not1772 = icmp eq i32 %1016, 0
  br i1 %.not1772, label %1018, label %1017

1017:                                             ; preds = %1015
  call void @exit(i32 noundef 1) #13
  unreachable

1018:                                             ; preds = %1015
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #12
  %1019 = call i32 @libxsmm_product_limit(i32 noundef 1021020, i32 noundef 231, i32 noundef 0) #12
  %.not1773 = icmp eq i32 %1019, 231
  br i1 %.not1773, label %1021, label %1020

1020:                                             ; preds = %1018
  call void @exit(i32 noundef 1) #13
  unreachable

1021:                                             ; preds = %1018
  %1022 = call i32 @libxsmm_product_limit(i32 noundef 420, i32 noundef 32, i32 noundef 0) #12
  %.not1774 = icmp eq i32 %1022, 30
  br i1 %.not1774, label %1024, label %1023

1023:                                             ; preds = %1021
  call void @exit(i32 noundef 1) #13
  unreachable

1024:                                             ; preds = %1021
  %1025 = call i32 @libxsmm_product_limit(i32 noundef 156, i32 noundef 13, i32 noundef 0) #12
  %.not1775 = icmp eq i32 %1025, 13
  br i1 %.not1775, label %1027, label %1026

1026:                                             ; preds = %1024
  call void @exit(i32 noundef 1) #13
  unreachable

1027:                                             ; preds = %1024
  %1028 = call i32 @libxsmm_product_limit(i32 noundef 12, i32 noundef 6, i32 noundef 0) #12
  %.not1776 = icmp eq i32 %1028, 6
  br i1 %.not1776, label %1030, label %1029

1029:                                             ; preds = %1027
  call void @exit(i32 noundef 1) #13
  unreachable

1030:                                             ; preds = %1027
  %1031 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 48, i32 noundef 0) #12
  %.not1777 = icmp eq i32 %1031, 0
  br i1 %.not1777, label %1033, label %1032

1032:                                             ; preds = %1030
  call void @exit(i32 noundef 1) #13
  unreachable

1033:                                             ; preds = %1030
  %1034 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 1, i32 noundef 0) #12
  %.not1778 = icmp eq i32 %1034, 0
  br i1 %.not1778, label %1036, label %1035

1035:                                             ; preds = %1033
  call void @exit(i32 noundef 1) #13
  unreachable

1036:                                             ; preds = %1033
  %1037 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 0, i32 noundef 0) #12
  %.not1779 = icmp eq i32 %1037, 0
  br i1 %.not1779, label %1039, label %1038

1038:                                             ; preds = %1036
  call void @exit(i32 noundef 1) #13
  unreachable

1039:                                             ; preds = %1036
  %1040 = call i32 @libxsmm_product_limit(i32 noundef 1, i32 noundef 0, i32 noundef 0) #12
  %.not1780 = icmp eq i32 %1040, 0
  br i1 %.not1780, label %1042, label %1041

1041:                                             ; preds = %1039
  call void @exit(i32 noundef 1) #13
  unreachable

1042:                                             ; preds = %1039
  %1043 = call i32 @libxsmm_product_limit(i32 noundef 1021020, i32 noundef 231, i32 noundef 1) #12
  %.not1781 = icmp eq i32 %1043, 231
  br i1 %.not1781, label %1045, label %1044

1044:                                             ; preds = %1042
  call void @exit(i32 noundef 1) #13
  unreachable

1045:                                             ; preds = %1042
  %1046 = call i32 @libxsmm_product_limit(i32 noundef 420, i32 noundef 36, i32 noundef 1) #12
  %.not1782 = icmp eq i32 %1046, 70
  br i1 %.not1782, label %1048, label %1047

1047:                                             ; preds = %1045
  call void @exit(i32 noundef 1) #13
  unreachable

1048:                                             ; preds = %1045
  %1049 = call i32 @libxsmm_product_limit(i32 noundef 23, i32 noundef 32, i32 noundef 1) #12
  %.not1783 = icmp eq i32 %1049, 46
  br i1 %.not1783, label %1051, label %1050

1050:                                             ; preds = %1048
  call void @exit(i32 noundef 1) #13
  unreachable

1051:                                             ; preds = %1048
  %1052 = call i32 @libxsmm_product_limit(i32 noundef 12, i32 noundef 32, i32 noundef 1) #12
  %.not1784 = icmp eq i32 %1052, 36
  br i1 %.not1784, label %1054, label %1053

1053:                                             ; preds = %1051
  call void @exit(i32 noundef 1) #13
  unreachable

1054:                                             ; preds = %1051
  %1055 = call i32 @libxsmm_product_limit(i32 noundef 156, i32 noundef 13, i32 noundef 1) #12
  %.not1785 = icmp eq i32 %1055, 13
  br i1 %.not1785, label %1057, label %1056

1056:                                             ; preds = %1054
  call void @exit(i32 noundef 1) #13
  unreachable

1057:                                             ; preds = %1054
  %1058 = call i32 @libxsmm_product_limit(i32 noundef 320, i32 noundef 300, i32 noundef 1) #12
  %.not1786 = icmp eq i32 %1058, 320
  br i1 %.not1786, label %1060, label %1059

1059:                                             ; preds = %1057
  call void @exit(i32 noundef 1) #13
  unreachable

1060:                                             ; preds = %1057
  %1061 = call i32 @libxsmm_product_limit(i32 noundef 320, i32 noundef 65, i32 noundef 1) #12
  %.not1787 = icmp eq i32 %1061, 80
  br i1 %.not1787, label %1063, label %1062

1062:                                             ; preds = %1060
  call void @exit(i32 noundef 1) #13
  unreachable

1063:                                             ; preds = %1060
  %1064 = call i32 @libxsmm_product_limit(i32 noundef 320, i32 noundef 33, i32 noundef 1) #12
  %.not1788 = icmp eq i32 %1064, 64
  br i1 %.not1788, label %1066, label %1065

1065:                                             ; preds = %1063
  call void @exit(i32 noundef 1) #13
  unreachable

1066:                                             ; preds = %1063
  %1067 = call i32 @libxsmm_product_limit(i32 noundef 1000, i32 noundef 6, i32 noundef 1) #12
  %.not1789 = icmp eq i32 %1067, 10
  br i1 %.not1789, label %1069, label %1068

1068:                                             ; preds = %1066
  call void @exit(i32 noundef 1) #13
  unreachable

1069:                                             ; preds = %1066
  %1070 = call i32 @libxsmm_product_limit(i32 noundef 1000, i32 noundef 9, i32 noundef 1) #12
  %.not1790 = icmp eq i32 %1070, 10
  br i1 %.not1790, label %1072, label %1071

1071:                                             ; preds = %1069
  call void @exit(i32 noundef 1) #13
  unreachable

1072:                                             ; preds = %1069
  %1073 = call i32 @libxsmm_product_limit(i32 noundef 12, i32 noundef 7, i32 noundef 1) #12
  %.not1791 = icmp eq i32 %1073, 12
  br i1 %.not1791, label %1075, label %1074

1074:                                             ; preds = %1072
  call void @exit(i32 noundef 1) #13
  unreachable

1075:                                             ; preds = %1072
  %1076 = call i32 @libxsmm_product_limit(i32 noundef 5, i32 noundef 2, i32 noundef 1) #12
  %.not1792 = icmp eq i32 %1076, 5
  br i1 %.not1792, label %1078, label %1077

1077:                                             ; preds = %1075
  call void @exit(i32 noundef 1) #13
  unreachable

1078:                                             ; preds = %1075
  %1079 = call i32 @libxsmm_product_limit(i32 noundef 5, i32 noundef 2, i32 noundef 0) #12
  %.not1793 = icmp eq i32 %1079, 1
  br i1 %.not1793, label %1081, label %1080

1080:                                             ; preds = %1078
  call void @exit(i32 noundef 1) #13
  unreachable

1081:                                             ; preds = %1078
  %1082 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 1, i32 noundef 1) #12
  %.not1794 = icmp eq i32 %1082, 0
  br i1 %.not1794, label %1084, label %1083

1083:                                             ; preds = %1081
  call void @exit(i32 noundef 1) #13
  unreachable

1084:                                             ; preds = %1081
  %1085 = call i32 @libxsmm_product_limit(i32 noundef 0, i32 noundef 0, i32 noundef 1) #12
  %.not1795 = icmp eq i32 %1085, 0
  br i1 %.not1795, label %1087, label %1086

1086:                                             ; preds = %1084
  call void @exit(i32 noundef 1) #13
  unreachable

1087:                                             ; preds = %1084
  %1088 = call i32 @libxsmm_product_limit(i32 noundef 1, i32 noundef 0, i32 noundef 1) #12
  %.not1796 = icmp eq i32 %1088, 0
  br i1 %.not1796, label %1090, label %1089

1089:                                             ; preds = %1087
  call void @exit(i32 noundef 1) #13
  unreachable

1090:                                             ; preds = %1087
  %1091 = call i32 @libxsmm_isqrt2_u32(i32 noundef 1024) #12
  %.mask = and i32 %1091, 134217727
  %.not1797 = icmp eq i32 %.mask, 32
  br i1 %.not1797, label %1093, label %1092

1092:                                             ; preds = %1090
  call void @exit(i32 noundef 1) #13
  unreachable

1093:                                             ; preds = %1090
  %1094 = call i32 @libxsmm_isqrt2_u32(i32 noundef 1981) #12
  %.not1798 = icmp eq i32 %1094, 7
  br i1 %.not1798, label %1096, label %1095

1095:                                             ; preds = %1093
  call void @exit(i32 noundef 1) #13
  unreachable

1096:                                             ; preds = %1093
  %1097 = call i32 @libxsmm_isqrt2_u32(i32 noundef 2507) #12
  %.not1799 = icmp eq i32 %1097, 23
  br i1 %.not1799, label %1099, label %1098

1098:                                             ; preds = %1096
  call void @exit(i32 noundef 1) #13
  unreachable

1099:                                             ; preds = %1096
  %1100 = call i32 @libxsmm_isqrt2_u32(i32 noundef 1975) #12
  %.not1800 = icmp eq i32 %1100, 25
  br i1 %.not1800, label %1102, label %1101

1101:                                             ; preds = %1099
  call void @exit(i32 noundef 1) #13
  unreachable

1102:                                             ; preds = %1099
  ret i32 0
}

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

declare float @libxsmm_sexp2_u8(i8 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @exp2f(float noundef) local_unnamed_addr #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

declare float @libxsmm_sexp2_i8(i8 noundef signext) local_unnamed_addr #2

declare float @libxsmm_sexp2_i8i(i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #5

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.round.f64(double) #6

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.round.f32(float) #6

declare float @libxsmm_sexp2(float noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #6

declare i32 @libxsmm_isqrt_u32(i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_isqrt_u32(i32 noundef) local_unnamed_addr #7

declare i32 @libxsmm_isqrt_u64(i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_isqrt_u64(i64 noundef) local_unnamed_addr #7

declare float @libxsmm_ssqrt(float noundef) local_unnamed_addr #2

declare double @libxsmm_dsqrt(double noundef) local_unnamed_addr #2

declare i32 @libxsmm_icbrt_u32(i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_icbrt_u32(i32 noundef) local_unnamed_addr #7

declare i32 @libxsmm_icbrt_u64(i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_icbrt_u64(i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.cttz.i32(i32, i1 immarg) #6

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @LIBXSMM_INTRINSICS_BITSCANFWD32_SW(i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.ctlz.i32(i32, i1 immarg) #6

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.cttz.i64(i64, i1 immarg) #6

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @LIBXSMM_INTRINSICS_BITSCANFWD64_SW(i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.ctlz.i64(i64, i1 immarg) #6

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @LIBXSMM_ILOG2(i64 noundef) local_unnamed_addr #7

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ref_ilog2_u32(i32 noundef) local_unnamed_addr #7

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #8

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

declare i64 @libxsmm_gcd(i64 noundef, i64 noundef) local_unnamed_addr #2

declare i32 @libxsmm_primes_u32(i32 noundef, ptr noundef) local_unnamed_addr #2

declare i64 @libxsmm_coprime(i64 noundef, i64 noundef) local_unnamed_addr #2

declare i64 @libxsmm_coprime2(i64 noundef) local_unnamed_addr #2

declare i32 @libxsmm_remainder(i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @libxsmm_product_limit(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @libxsmm_isqrt2_u32(i32 noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.ctpop.i64(i64) #10

; Function Attrs: nofree willreturn
declare float @ldexpf(float, i32) local_unnamed_addr #11

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.sqrt.f32(float) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.mul.v4i32(<4 x i32>) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fabs.v2f64(<2 x double>) #10

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { nofree willreturn }
attributes #12 = { nounwind }
attributes #13 = { noreturn nounwind }
attributes #14 = { cold nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = distinct !{!7, !6}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C/C++ TBAA"}
!12 = distinct !{!12, !6}
!13 = !{!14, !14, i64 0}
!14 = !{!"any pointer", !10, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !10, i64 0}
!17 = distinct !{!17, !6}
!18 = distinct !{!18, !6}
!19 = distinct !{!19, !6, !20, !21}
!20 = !{!"llvm.loop.isvectorized", i32 1}
!21 = !{!"llvm.loop.unroll.runtime.disable"}
!22 = distinct !{!22, !6, !21, !20}
!23 = distinct !{!23, !6}
!24 = distinct !{!24, !6}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass